RubyHiroba 2014へ行ってきた

ここ1年はTwitterやfacebbookばかり使っていたが、メモ代わりに使うにはブログの方が都合が良いので、RubyHirobaで気になった事、後で詳細を調べるかもしれないことをメモしておく。後で振り返るときがあるか不明だが。

それにしても去年のRubyHirobaで知ったことはすっかり忘れているが、楽しかったのは覚えている。今年のRubyHirobaは去年以上にいろいろ新しく知ったことが多くて、楽しかった。

あと Module#prepend の使用例が参考になった。特別対応で既存メソッドを無効にするような使い方は微妙だというコミッタの意見もあったが、一時的かつ少数の適応箇所なら有りかなと個人的には思う。もう一つの使い方で、ログを出すために、新たに定義したメソッド内でsuperを利用するというのはいつか使えそうな気がする…けど、忘れてしまいそうだ。

MacをMountain Lionにアップデートしたらフリーズするようになった

Mac Book ProをSnow LeopardからMoutain Lionにアップデートして後に、たまにOS毎フリーズするようになった。今週末は1日半で6回もフリーズ。以前ググって調べてたのとは違う情報を見ていると、これが怪しそう。

Trackpad is sometimes not working on MBP … - Apple Community

と思ってよく読むとTrackpad関連でキーボードやマウスがフリーズするとのことなのでちょっと違ってた。ただ、下記のようなメッセージが大量に出るのは一緒なんだよなぁ。

2013/05/19 12:44:48.000 kernel[0]: AppleUSBMultitouchDriver::_deviceGetReport - DeviceRequest for reportID 0x0 returned with result 0xe000404f - retrying

とりあえず、Google関連のサービスが怪しいのと、ディスクのアクセス権の問題だという情報があった。一番簡単そうなディスクのアクセス権をOS付属のユーティリティで検証してみると、いくつか本来想定されているアクセス権と異なるディレクトリやファイルが大量に表示された。ひとまず、ツール上からアクセス権を修復してみて様子見。これでも駄目ならGoogleのプロセスについて調査しよう。

MacからJenkinsをアンインストールする

Mac用のJenkinsを何も考えずにインストールしたら、勝手にデーモンとして登録されてしまった。これはこれで便利なのだが、必要なときのみ手軽に起動したい場合だとwarファイルから直接起動する方が便利そうなので、とりあえずアンインストールすることにした。

ディレクトリ毎削除すればいいかと思ってたが、よくよく考えるとデーモン関連の設定も変更したり、不必要なファイルは削除したいので正式なアンインストール方法についてググってみた。まぁ、公式ドキュメントを見るのが普通じゃないかと思ったが、まぁ、変な情報は無いだろうからと気楽に考えることにした。

検索結果から以下を参照。

アンインストールコマンドがあるらしいので試しに探したら本当にあった。コマンドは普通のシェルスクリプトだった。

#!/bin/bash                                                                              
echo
echo
echo "Jenkins uninstallation script"
echo
echo "The following commands are executed using sudo, so you need to be logged"
echo "in as an administrator. Please provide your password when prompted."
echo
set -x
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
sudo rm /Library/LaunchDaemons/org.jenkins-ci.plist
sudo rm -rf /Applications/Jenkins "/Library/Application Support/Jenkins" /Library/Docume\
ntation/Jenkins
sudo rm -rf /Users/Shared/Jenkins
sudo rm -rf /var/log/jenkins
sudo dscl . -delete /Users/jenkins
sudo dscl . -delete /Groups/jenkins
pkgutil --pkgs | grep 'org\.jenkins-ci\.' | xargs -n 1 sudo pkgutil --forget
set +x
echo
echo "Jenkins has been uninstalled."

以下を実行して無事アンインストールは完了。

$ bash /Library/Application\ Support/Jenkins/Uninstall.command  

またYahoo! JAPANに外部からの不正アクセス

IDのみのファイルが生成され、IDのみが流出したという事になっているみたい。しかし、侵入者が欲しいのはIDだけではないはずなので、IDだけのファイルを生成して満足したとは考えにくい。ただ単純にパスワードなど他の情報を抜き取るのに失敗して、抜き取りに成功したのがIDだけと言う可能性も否定できない。あるいは、IDのみを一旦抽出してファイルに出力。それを読み込み、そのIDを利用して他の情報を取得してファイルを生成せず外部に直接転送していたかもしれない。ただ、後者の方法はプログラムの動作が遅くなるからありえないかな。

とりあえず、外部との通信内容が確認できていない限り他の情報も漏れていたと考えてパスワードはまたまた変更した方が良い気がする。

それにしてもYahoo! JAPANにはスーパーエンジニアがたくさんいるのだから、動作していた不正なプログラムを発見して解析し、どのような情報を抜き取ろうとしていたのか、抜き取られていたのかは簡単に把握できる気がする。その辺りの情報は公表してくれないのかな。

ハニーポットを用意してそこに誘導してあげる方が不正アクセス対策として良いのだろうか。

Sinatraのフレームワーク

Sinatra自体がフレームワークだろうと思うが、そのSinatra向けにPadrinoというフレームワークがあるらしい。


http://jp.padrinorb.com/


少し前に仕事で初めてSinatraでテスト用のWebアプリを作ったのだが、思っていたよりもさくさく機能を実装できて感動した。当然起動もRailsと比較して圧倒的に早い。Herokuの無料枠を使うにはRailsだと起動遅いからなぁと気になっていたのでSinatraで作るのも悪くないかも。

ただいろいろ機能を追加していくと最終的にはRailsを使った方が便利なことが多いのではないかと思ってた。このPadrinoが使えそうなら試してみよう。自分の性格を考えると、思うだけで実際にアプリ作ることは可能性薄いが。

Ruby on Railsのデバッグにはいろいろなgemがあった

QA@ITで見たRuby on Railsデバッグの質問が役立ちそうなので、自分用にメモしておくことにした。

Ruby on Railsのデバッグ方法。何かいい方法ありませんか? - QA@IT

今のプロジェクトにすぐに導入できないかもしれないが、有用そうなモノを調べで導入を試みよう。

本来こんなのは専用の箇所にまとめておいた方が良いのだが。gistにでも書いておくべきか。

JJUG CCC 2013 Springに行ってきた

先日 Java API for RESTful Services (JAX-RS) で書かれたJavaのコードを見て感動したというか、Javaらしくない短いコードが使えるのを知らなくてショックを受けた。最近のJavaネタに全然ついて行けないなと思ってたらタイミング良く JJUG CCC 2013 Spring が開催されるとのことで行ってきた。

久々に新宿に行って、雨の中会場へ到着。既にセッションは始まっていたけど、主に聞きたかったのは午後のセッション。Java FXは面白そうだけどGUIは面倒そうで仕事で使うにはちょっと避けたい。ただ、HTMLの方が楽なのかというと、それはそれでブラウザ地獄が待っている。

午後のJavaの話は既に知っているネタが多かった。役に立ちそうなのはJavaのチューニングで、-XX:MaxInlineSizeの値を調整することかな。30がデフォルトっぽいが、80ぐらいにすると良いらしい。当然ベンチーマークなどで期待通りの結果になるか確認の必要があるが。

直接関係ないけど、gituhubで静的ページを作成するには Github Pages や jekyll を使うと良いらしい。知らなかったなぁ。

あと、BitBucketではプライベートリポジトリを無料で作成できるというのも知らなかったので、そのうち使ってみよう。

しかし、しばらく新しいJavaを使う予定が無いとは言え、振り返るとProject lambdaのセッションを逃したのが惜しい。まぁ、他に注力すべき事があるのでJavaにこだわらなくてもいいのだけど。