さとやn Blog

試合はRuby,勝負はC#!

2009年01月

ClamXav

Linuxで有名なオープンソースのウィルス対策ソフトのMac版があるとのことなので、早速使ってみました。
Firefoxのダウンロードディレクトリ(ネットワークドライブで他のWindowsマシンと共有)をスキャンかけてみたら、2つのファイルが感染していると報告されました。うそっ!?って感じでよく見てみると、2つとも自分で作成して公開しているソフトのセットアップファイルではありませんか!



Trojan.Shutdown-2 という名前からマシンの電源を切るようなコードが入っている、ということだと思います。
多分.NET Framework2.0がインストールされていない場合は、インストールするようにしてあるので、その際に再起動がかかるためのと思われます。これはMicrosoftの開発ツールで.NET Framework2.0を使用するように設定して作成されたセットアッププログラムはすべてこれに引っかかってしまいます!
ですので、これは明らかに誤検出です。。。
実際にWeb上で複数のウィルス対策ソフトでファイルを調べてくれるサイトがあるのでそこで調べてみても、39種類の対策ソフトの中で、私の自作ソフトのセットアップファイルをウィルスと認識したのはClavXavしかありません。



※念のため調査結果は http://www.virustotal.com/jp/analisis/5a76bcddcf49ec4e03c18fdedc37ef58 で見られます。

ウィルスを混入したセットアップファイルなど、絶対に配布はしていませんので、どうかご安心ください。


jQuery

先日、デザインチームのメンバーに質問されたのですが、jQueryを使っていて、イベントハンドラ(ボタンがクリックされた時とかに呼ばれる関数のこと)の中で、thisを参照すると、なんかおかしい、ということでした。
結構これではまる人がいるのではないかと思い、ちょっと書いてみようと思いました。
JavaScriptではprototypeでクラスのようなものを定義できますが(別にprototypeを使わなくてもできますが、、)、他のオブジェクト指向言語(C#、Javat等)になれている人は、ついその中で定義されている関数内ではthisの参照は常に自分自身のクラスのインスタンスだと思ってしまいます。
が、JavaScriptではそうはいかず、以下のようなクラス(と呼ばせてください)を定義した場合、

function MyClass(){
? //button1のクリックイベントハンドラを設定
? $('#button1').bind('click', this.onButtonClicked);
}

MyClass.prototype = {
? //button1をクリックするとこの関数が呼ばれます
? onButtonClicked : function(e){
??? this.sayHello();
? },

? sayHello : function(){
??? alert('hello world!!');
? }
}

一見、button1をクリックすれば 'hello world!!' 当メッセージが表示されるかと思いますが、実際にはundefined エラーになってしまいます。
これは、onButtonClicked関数内で this が参照するのは、 MyClassのインスタンスではなく、button1そのものだからです。これはJavaScriptの仕組み上変えられません。
では、onButton1Clickedの中でMyClassのインスタンスを参照するにはどうすればいいのかというと、イベントを設定する時に、自分自身(this)への参照をイベントハンドラに渡してやる必要があります。
jQueryではイベントを設定する関数 bind の第2パラメータで任意の情報を設定することができるので、そこで設定してやります。

? $('#button1').bind('click', {"self" : this},? this.onButtonClicked);

のように、第2パラメータでJSON形式で自由にデータを設定できます。ここでは self という名前で thisへの参照を設定しています。
で、これをイベントハンドラの中で参照する場合は、

? onButtonClicked : function(e){
??? e.data.self.sayHello();
? }

って感じで、イベント引数の data プロパティ経由で参照できます。
ここで、e.data.self というのは、先ほど指定した、 "self" : this のことなので、つまりMyClassのインスタンスを指しています。
多分jQueryではこんな感じで参照を保持するしか方法がないかと思われます。※間違っていたらおしえてください。
これは、対抗馬のPrototypeフレームワークでは、イベントを設定する際に、
bindAsEventListener(this)
とすることで、素直にイベントハンドラ内で this を参照してもちゃんと期待通りに MyClassのインスタンスにアクセスできます。
何故この辺をjQueryがサポートしないのか、ちょっと不思議なのですが、、、、。
私も本当はjQueryを使いたいのですが、なんか、この辺が引っかかって、まだPrototypeの方を使っています。
これは、単に私のjQueryの理解が足りないせいかもしれませんので、誰か、詳しい方がいれば、是非教えてください。




これからはRspecでやろう

以前にもRspecについてちょっと書きましたが、結局既存Railsプロジェクトで作成した大量のrUnitテストを移行するのは難しいと判明したため、しばらく触れる機会がありませんでした。
※移行ツールはあったのですが、実際にやってみると、いろいろだめな部分があるみたいで、結局使えませんでした。

今回、新規に主に携帯向けの簡単なサービスを作ってみようと思い、じゃあ、今度こそRspecで行こう、ということで早速やってまたら、やっぱりこっちの方が「テストで仕様を表現する」という言葉がぴったり当てはまるような気がしました。
実際に、ログインコントローラのログイン、ログアウトの部分を手始めに書いてみました。
※ちょっと見づらいです

google

googleカレンダーを最近使い始めたのですが、外国で作られたサービスなので日本の祝祭日が登録されていません。
これってかなり不便ですよね。
ということで、ググったらやっぱり出てきたで、早速設定しておきました。
カレンダーのページ開いて「設定」 → カレンダータブ → 「カレンダーを追加」 → 「一覧から探す」 → 「日本の祝日」
で簡単にできました。
これでだいぶ便利になった。。。。
あとはiCalとの同期なんだけど、なんか今故障中らしくてできないみたいですね。。。。
早く直してください。


piclooks.com

つい昨日、仕事仲間の友人からLiveメッセンジャーにへんなURLだけのメッセージが届いていました。

1時間くらい前にやりとりしていたいこともあり、なんか言い忘れたことでもあるのかな、と思い見てみると、どうもこのサイトを見てくれ、といいたいらしい(そういう場合って、たいていURLだけを送ったりしますね?)
「なんだ、面白いサイトでも見つけたのかな?」と思いクリックしてみると、MSNのアカウントでログインしてくれ、みたいなページが表示されました。※スクリーンショットを載せようと思い、サイトを見ようとしたら、現在はつながらない状態でした。

「ああ、知人だけがアクセスできるようにしてるのか」と思いLiveIDのログイン情報を入力してログインを実行しました。
変な外人の写真だらけのページが表示されました。

「外人の知り合いなどいるはずがないのに、、、、。何故?」

と思うと同時に、ああ、これは非常にやばそうだ!、と強い疑念を抱きました。

ググってみてもつい1〜2日前に世に出たばかりなのかどうかわかりませんが、情報が少なくて、でも間違いなくフィッシング詐欺サイトだ、とほぼ確信したので、そっこーでLiveIDのパスワードを変更した。
ので、まあ、大丈夫だろう、とは思いますが、こんなものにうかうかと引っかかったのはおそらく初めてのことで、非常に怒りを感じています。知らない人からのメールやメッセは確かにうかつに開いたり、ということはまずありませんが、知人からの、しかも、メッセの場合は油断してしまいます。
どうも、そのサイトにログインしてしまうと、メッセに登録してある知人に同様のメッセージを送ってしまうようです。
思い当たる方は、LiveIDのパスワードを変更しておいた方がいいと思います。





ロゴを下取りに出す

ほぼ10年乗ってきた愛車「ホンダ ロゴ」を処分しました。
値段がつかないため、逆に1万いくら払って廃棄する必要がある、とか言われたのですが、部品として買い取ってもらうという形にすれば1000円もらうことができる、とのことで、そうしてもらいました。
昨年(2008年)の自動車税が未納だったので、そちらを払う必要もある、とのことでしたが、払い込むための用紙を役所の方に請求するため電話で問い合わせたら、後ほど、長野県の県税事務所から電話があって、まずとっくに車検が切れていることと、廃車する、もしくは松本ナンバー(長野県松本市)を使わないのであれば、払う必要はないとのことでした。
何故長野県かというと、ロゴを購入した時は長野県は松本市に住民票があったためで、千葉に住民票を移してからも自動車の方の手続きは何もしていなかったためです。
まあ、そんなこんなで、しばらくは自転車に活躍してもらう予定です。
ああ、はやく豊田でもホンダでも三菱自動車でもいいからハイブリッド車か電気自動車ほしい。


Windows7

Windows7でSilverlightの開発をしようと思い、VisualStudio2008をインストールしたまではよかったのですが、追加のSilverlightToolsのインストールでIE8ではだめ、みたいなことを言われて、インストールが進みませんでした。
Vistaは嫌なので、早くIE8でも大丈夫なようにしてください! MSさん。
別にIE8が使いたいわけじゃないのに、、、。



Windows7

毎日10分くらい試しているWindows7ですが、新しい機能を発見しました。
Mac上で動かしているためキーボート配列の違いからよく間違った組み合わせのキーを押してしまうのですが、そこで発見した機能です。
マックのcommandキー(WindowsだとWindowsキーに当たるのかな?)とカーソルキーの組み合わせで、アクティブになっているウィンドウの左寄せ、右寄せ、最大化、最小化、元に戻す、という一連の操作ができることを発見しました。

以下一連の操作。

これは普通にウィンドウを開いている状態です。

ここで command + <-- キーを押すと、ウィンドウが左半分にぴったりくっつきます。


次に command + --> キーを押すと、右半分にぴたっとくっつきます。



今度は command + ↑ きーを押すと、最大化します。



元に戻す場合は、 command + ↓ で最大化から元の状態に戻りますが、さらにもう一回同じキーを押すと、最小化します。



このウィンドウの配置の機能はすでにいろんなサイトで紹介されてますが、ショートカットキーでの紹介はないみたいなので、書いてみました。
まあ、そんなに使うかどうか、問われれば、??ですが、やっぱりMacよりWindowsのほうがキーボードでいろいろできますね。
マックはOS標準のアプリでさえ、マウスでしかアクセスできないメニューがあったりするし。。。。。もうちょっと何とかしてほしい。。。。Linuxなんだから。。。。
でも、Windows7、これはいいかもしれないです。さすがにXPはもう飽きたし。。。。





ゴールデンスランバー

なんか、ちょっと、切なくなるお話でした。
特に、ラストが、、、、。
面白かったですよ。


タイトルゴールデンスランバー
著者/監督/Artist伊坂 幸太郎
価格, 出版¥ 1,680 新潮社
評価★★★★★

2009-01-08

【「BOOK」データベースより】
仙台で金田首相の凱旋パレードが行われている、ちょうどその時、青柳雅春は、旧友の森田森吾に、何年かぶりで呼び出されていた。昔話をしたいわけでもないようで、森田の様子はどこかおかしい。訝る青柳に、森田は「おまえは、陥れられている。今も、その最中だ」「金田はパレード中に暗殺される」「逃げろ!オズワルドにされるぞ」と、鬼気迫る調子で訴えた。と、遠くで爆音がし、折しも現れた警官は、青柳に向かって拳銃を構えた―。精緻極まる伏線、忘れがたい会話、構築度の高い物語世界―、伊坂幸太郎のエッセンスを濃密にちりばめた、現時点での集大成。


自転車でメガロス柏に行ってきた

4年くらい前から、体力維持のためにスポーツクラブ(メガロス柏)に通い始めました。
だいたい3〜4日/週のペースで通ってます。ちなみに自宅は新松戸。JR常磐線で柏まで3駅という距離です。
平日夜は車で、土日は電車で行くというパターンが多かったのですが、10年近く乗ってきた愛車ホンダのロゴの車検が切れてしまったため、自転車で行ってみよう!と思い立ち、早速本日自転車で行ってきました。
車だと平日夜なら20分で行ける距離でしたが、自転車で行っても30分かかりませんでした。
土日なら明らかに自転車の方が速い計算になります。
何故、土日は車の方が遅いかというと、国道6号沿いに2,3年前にできたジャスコ!に行く車の右折渋滞が発生するからです。
40分以上かかるのはざらです。あれはほんとにいい迷惑です。ちなみに私は一度も行ったことはありません。。。。

で、自転車の方ですが、この寒さ、ちょっと無謀かなとも思ったのですが、ついた時には汗かいてました。。。
まあ、がっちり防寒はしたのですが、、、。
でも、これで、自転車も可能、ということがわかったので、節約&エコの観点からもこれからは雨の時以外は自転車で行こう、と決意した次第です。


プロフィール

さとやn

C#が好きだけど仕事はRubyばかりな開発者。
最近はDockerとか関数型言語とかAngularJSにハマっている。
武蔵小杉とか田町とか柏とかに出没。

QRコード
QRコード
  • ライブドアブログ