[C#] 実行ファイルと同名のINIファイルのパスを生成する

参考サイト

@IT:.NET TIPS 実行ファイルのパスを取得するには? – C#
http://www.atmarkit.co.jp/fdotnet/dotnettips/016exepath/exepath.html

@IT:.NET TIPS パス名やファイル名からベース名と拡張子を取得するには? – C# VB.NET
http://www.atmarkit.co.jp/fdotnet/dotnettips/293extension/extension.html

パス文字列からディレクトリ・パス部分を取り出すには? - @IT
http://www.atmarkit.co.jp/fdotnet/dotnettips/498getdirectoryname/getdirectoryname.html

[Webサイト制作] マウスホバーでツールチップを表示する

ITスキルが高くない管理者が運営する想定のウェブサービスの開発で、引渡し時に使い方をどうやって教えるか、ちょっと悩む。現場教育してもその場限りだろうし、マニュアルを用意しても読まないだろうし。一番効果的なのは操作画面に説明をちりばめることかなと思う。だけど入力欄ごとに何行も説明書きがあるのは、使い慣れるに従ってうざく感じられようになるに違いない。

思いついたのは、マウスをホバーしたときにツールチップを表示すること。

guidance

非常に原始的な方法だけど、使い方に迷ったときにはマウスでポイントすればヘルプが出るのは悪くない。ウェブアプリに大げさな仕組みを組み込みたくないので、フロントエンドのテンプレートだけで、それもJSとか使わずにHTMLだけで実現できるのも都合が良い。ツールチップの表示スタイルはブラウザ依存だけど、管理者が使うブラウザは限定されているので問題ないだろう。

参考サイト

HTML5/グローバル属性/title属性 要素に補足情報を付ける – TAG index Webサイト
http://www.tagindex.com/html5/attribute/title.html

[CakePHP] orderでnullを最後にするには

まずSQLでどう書けるのか。以下のページの説明が明解。

【SQL】ORDER BY で NULL を最後にする場合の注意点 | 雪の天秤
http://yukiten.com/blog/info-tec/sql-order-by-null/

例えばSQLで以下のように書けるなら

このままCakePHPで指定すればよい。

[Webサービス] Project Dolphin

昨日のエントリがらみで、2002年ごろ密かに盛り上がっていたProject Dolphinというプロジェクトを思い出した。当時、主宰者にコンタクトして、承諾をもらって日本語ガイド的なサイトを作っていた覚えがある。

既にプロジェクトは消滅しているけど、ネットを検索したら記事が見つかったのでリンクしておく。

タスクトレイに常駐してキータッチ数をカウントするソフト「Pulse」を使い、結果をネット上にUploadして、キーボードの打鍵数を個人別・国別・チーム別に順位を競う全世界的プロジェクト。

常駐ソフトは結果をUploadする機会を日ごと(Day)、時間ごと(Hour)、ユーザが送信したい時(I Pulse the server manually)で選択できるので、常時接続でなくても結果送信時だけインターネットに接続する使い方も可能。

Project Dolphinとは – はてなキーワード
http://d.hatena.ne.jp/keyword/Project%20Dolphin

[Windows] キータイプ数をカウントするには

キータイプ数をカウントしたい理由

自分が思うに、PCでの作業はインプットとアウトプットに大別できる。例えば、サイトや動画を閲覧するような受身の作業がインプット、文書作成やコーディングなど成果物がある作業がアウトプットである。これを前提に考えれば、自分が積極的にアウトプットしたかどうかを判定するには、キータイプ数を計測すればいい、ということになる。かなり強引だけど、あながち間違っていないと思う。

キータイプ数をカウントできるソフトを探す

ネットを検索したら、とりあえず2つ見つかった。

【レビュー】PCを利用した時間帯を把握するのに便利なキー入力のカウントツール「KeyCounter」 – 窓の杜
http://www.forest.impress.co.jp/docs/review/20150911_720779.html

窓の杜 – 【NEWS】1日のキー入力数をカウントして折れ線グラフを表示する「タイプ数カウンター」
http://www.forest.impress.co.jp/article/2006/05/24/typecounter.html

前者はシンプル、後者は多機能なソフト。ダウンロードして試してみたところ、共に時間当たりのタイプ数はグラフで表示されるものの、残念ながら数値で得ることはできなかった。

キータイプ数をカウントする仕組み

キータイプ数をカウントするソフトを作るのは難しくない。Windowsのグローバルフックの仕組みを使ってキー入力をフックすればよい。

ネットを探すとC言語のサンプルが見つかったけど、C言語はちょっとだるい。

グローバルフックを使ってみた – Gobble up pudding
http://fa11enprince.hatenablog.com/entry/2015/04/10/051454

C#のサンプルも発見。これはよさげ。

Low-Level Keyboard Hook in C# – Stephen Toub – Site Home – MSDN Blogs
http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx

これらサンプルを参考に、時間ごとのキータイプ数をカウントするソフトを書いてみようと思う。

[Webサービス] 1TB以上のクラウドストレージまとめ

業務で扱う大容量データをストレージにバックアップできないか?という話が出たので、参考までに1TB単位で利用できるクラウドストレージの値段を調べてみた。

Dropbox
https://www.dropbox.com/
1TB $9.99/mo+tax

Google Drive
https://www.google.com/intl/en/drive/
1TB $9.99/mo
10TB $99.99/mo
20TB $199.99/mo
30TB $299.99/mo

Microsoft OneDrive
https://onedrive.live.com/about/en-us/
1TB $6.99/mo

MediaFire
https://www.mediafire.com/
1TB $4.99/mo
100TB $49.99

以下はバックアップに特化したクラウドストレージサービス。

AWS | Amazon Glacier
https://aws.amazon.com/glacier/?nc1=f_ls

Cloud Storage Nearline | Google Cloud Platform
https://cloud.google.com/storage-nearline/

[Nagios] タイムゾーンを変更する

Nagiosの時刻表示がずれている模様。

  • 現在時刻 02:58am
  • 表示時刻 05:58am

3時間進んでいるので調整する。

/usr/local/nagios/etc/nagios.cfg

/etc/httpd/conf.d/nagios.conf

サービスの再起動

確認する。

  • 現在時刻 03:14am
  • 表示時刻 03:14am

[Apache] IIS7とポート80が競合したときのメッセージ

XAMPPがインストールされているマシンにIIS7をインストールしてしまったときに、80番のポートが競合してXAMPP Control Panelに表示されたメッセージをメモ。

IIS7を停めればApacheは問題なく動くので、IIS7のインストーラは特に悪さしていない模様。

[仕事術] フリーランサーが生き残るために必要なこと

面白い記事があったのでリンク。

ここ3年で僕の周りでいなくなったフリーランサーや事業主の共通点 – 制作と広告とお酒と私
http://minmin.hatenadiary.jp/entry/2015/10/12/135421

  • 新しい技術を勉強しない
  • 元気がない
  • 適正価格の設定ができない
  • 寂しさから心が折れる/やりたいことができない
  • 特定の案件に依存する
  • 変なメディアや事業を作ろうとしてしまう
  • 月額課金ビジネスを羨む
  • 「なんか良い話ない?」が口癖になる
  • 多芸多趣味

実に的を射てるねーと納得。

[Nagios] PingのRTA閾値を調整する

Nagiosの設定ファイルは、ネットの記事を参考にして、とりあえず以下のようにしている。

しかし、DigitalOceanのSan Franciscoリージョンから日本の共有サーバーをチェックすると、RTAは実測で110m程度となり、結果としてNginxはWARNINGのステータスを通知してしまう。

これは異常では無く、単純に距離が離れているせいなので、コマンドパラメータを以下のように修正して様子を見ることにする。

以上覚え書き。