僕は発展途上技術者

「WEBrickの非公開ファイルにアクセスされる脆弱性」を実際に確認してみた

「WEBrickの非公開ファイルにアクセスされる脆弱性」を確認する機会があったので以下のエントリーを書きました。


» On the Rails 「WEBrickの非公開ファイルにアクセスされる脆弱性」を実際に確認してみた


Safari プラグイン Keywurl でいろいろなものを素早く検索

» Firefox から Safari へ移行する方法 : 僕は発展途上技術者


でも書いた通り、ブラウザを Safari にスイッチしてかなり快適だ。


なかでもプラグインの Keywurl が僕にとってのキラーアプリ。上記エントリーでも少し触れているが、もう少し詳しく紹介しよう。


インストールするにはSIMBL が必要だが、以下のリンク先からダウンロードできるパッケージの中にも含まれている。


» Keywurl


Keywurl を使えば、アドレス入力欄に例えば g keywurl と入力してリターンキーを押すことで、keywurl を Google 検索できる。


g ... を Google 検索するための URL に変換しているのだが、この変換パターンを自由に追加できるので、よく使うサイトの検索パターンをかたっぱしから追加することで快適に情報検索できるようになる。


以下、僕が登録している検索パターンの一部をさらしておく。
















































KeywordExpansionNote
defaulthttp://www.google.co.jp/search?q=$$$デフォルト。キーワードだけ入力した場合の検索パターン。Google 検索
ahttp://www.amazon.co.jp/exec/obidos/search-handle-url/index%3Dblended%26field-keywords%3D@@@Amazon 検索
bhttp://b.hatena.ne.jp/jishiha/?word=@@@はてなブックマークを検索
ghttp://www.google.com/search?hl=en&q=@@@Google 検索(検索結果を英語の情報だけにしぼる)
gjhttp://www.google.co.jp/search?q=@@@Google 検索
mhttp://maps.google.co.jp/maps?oi=map&q=@@@Google Maps で検索
whttp://ja.wikipedia.org/wiki/Special:Search?search=@@@&go=GoWikipedia を検索
yhttp://youtube.com/results?search_query=@@@YouTube を検索

ポイントは、キーワードをなるべく短くしてタイプ量を抑えているところ。「m 東京駅」とタイプするだけで Google Maps 上に東京駅を表示します。僕にとって y は Yahoo 検索でなく YouTube 検索なのです。


⌘(Command) + l(小文字のL) でアドレス欄にジャンプできることを覚えておくと、さらに快適に操作できる。


上記のなかで、特に気に入っているのが g と gj の使い分け。


最新の技術的な情報など、始めから英語の情報だけ検索したいというときがある。http://www.google.com にアクセスしても親切にも http://www.google.co.jp にリダイレクトされてしまうので、いままではフッターの Google.com in English をクリックして切り替える、という面倒な操作をしていた。


Keywurl に上記設定を追加しておけば、g keywurl で Keywurl の英語情報だけ検索できるし、日本語の情報も検索したいという場合には gj keywurl と入力すればよい。


Safari + Keywurl の環境に一度慣れてしまうと、もうそれなしでのブラウジングはありえない。


アカデミーヒルズのカフェ貸切時間を Google Calendar に表示

六本木ヒルズにある会員制の図書館、アカデミーヒルズを利用している。


» アカデミーヒルズ


コミュニティメンバー



  • 入会金:10,500円(税込)

  • 月会費:9,450円(税込) ※年一括の場合は105,000円(税込)


という、さすがヒルズとビビるお値段だが、実は僕のようにノートパソコンさえあればどこでも職場にできる人にとっては結構お得。


7:00から0:00まで利用でき、無線LAN完備、打ち合わせも可能なカフェスペースがあるので、僕にとってはいわば家賃9,450円の一人オフィス。しかも眺め最高です。


メンバーと一緒なら通常2000円のワンデーチケットが1000円なので、ゲストを呼んで、打ち合わせスペースとしても利用できます。


ただ、たまにカフェスペースが貸切になっていて、知らずに行ってしまい、しまったーという思いをしたことがある。


Web サイトをチェックすればいい話なのだが、予定を立てるときにいちいちサイトを見るのも面倒。


そこでカフェ貸切時間を iCal 形式にして Google Calendar に表示するようにしてみました。


表示のさせ方は簡単。


Google Calendar の左下メニューで追加 > URLで追加 を選択。


ical.png


公開カレンダーのURLのところに以下のように



を入力し「追加」ボタンを押せば、


ical2.png


こんな感じ↓ に貸し切りの時間帯が表示されるようになります。(日本語だといろいろ問題が起こるので、表示は英語にしました)


ical4.png


たぶん Google Calendar とか好きそうな他のメンバーの方でも利用できるよう、運営している「あとで行く」に間借りして公開しておきます。


» あとで行く - 行きたい場所を簡単登録、もう忘れない


iCal 形式が認識できるアプリケーションなら、実は何でも使えます。Mac の iCal とか。


iCal 形式に吐き出し、Google Calendar に読み込ませるのはそんなに難しくないだろうと甘く見ていたのだが、結構はまった。


以下の記事を参考にさせてもらいました。


» Miles Barr » Blog Archive » icalendar and Rails

» RubyでiCalendarを利用する - What is Normal 〜 もはや普通がわからない 〜


公衆無線LANサービスの検索に便利な「モバイルマップ」リリース

「日経パソコン」のオンラインサイト「PC Online」のリニューアルに伴い、開発を担当した「モバイルマップ」がリリースされました。


» モバイルマップ|PC Online ビジネスパーソンのパソコン活用情報サイト


FREESPOT、BBモバイルポイント、FON(含livedoor Wireless) 、Mzone、フレッツ・スポット、ホットスポットの各種無線LANサービスのアクセスポイントを検索できるので、ノートパソコンを持ち歩き外出先が仕事場だ、という方には便利なサービスだと思います。


忙しいビジネスマンをイメージし、サッと使えるよう、使い勝手の良さを意識しました。


選択項目に応じてすぐに更新されるリストや、スルスルッとスクロールするところなどキャプチャ画像だけだと伝わりにくい部分もあるので、Jing というキャプチャソフトを使って動画を撮ってみました。


Mobile Map


Mash up Award 3rd が縁で知り合った ONGMAP の直鳥さん(7ns.jp)と一緒に開発を進めたので、Google Maps API まわりではいろいろとノウハウを教えていただきました。


また、これまた Mash up Award つながりで、開発環境に関して Sun Microsystems の渡辺様・河原様にアドバイスをいただき支援していただきました。ありがとうございました。


開発には Ruby on Rails を使用しています。ユーザーが触れるページは1ページだけですが、裏では各サービスから提供していただいた異なる形式のデータをインポート・変換したり、表示項目を変更できる一種のコンテンツ管理システムが動いています。管理側の画面についても使い勝手を重視し、編集部の方に実際に使っていただきながら、システムを改善していきました。Rails を使うことで、柔軟に要望に対応できたと思います。


7ns.jp 企画で、ONGMAP でも使用されている Ext JS を使った製品データベースも同時リリースなので、よろしかったらこちらもどうぞ。


» 日経BP社「PC Online」、モバイルマップ、商品検索DB


富士の見える席

今日は良い席が取れました。


photo.jpg


剣術修行のために江戸へ向かう途中、富士山を見て坂本龍馬が言う。



「しかし一瞬でもこの絶景をみて心のうちがわくわくする人間と、そうでない人間とは違う」


「龍馬がゆく(1)」(司馬遼太郎)


龍馬のように「日本一の男になりたい」などと大それたことは思いませんが、「頑張っていいWebサービス作ろう」程度は思うのでした。



竜馬がゆく〈1〉 (文春文庫)



司馬 遼太郎
文藝春秋
売り上げランキング: 588


おすすめ度の平均: 5.0

5 柔軟な思考と先見の明を兼ね備えた偉大な人物
5 新年に最高
5 政治とは何か、人が生きるのは何のためなのか
5 バイブル
5 ☆5つ






Firefox から Safari へ移行する方法

Safari 3.1 が速くて快適という話をあちこちで聞くので、この機会に移行しました。


Mac に移行しても Firefox を使い続けていたのは、Add-on や様々な便利機能と同等なことが Safari でもできるのかしら、と思っていたからです。


Firefox で愛用し、Safari に移行しても最低限欲しいと思っていた機能は以下の通り。



  1. マウスジェスチャー

  2. QuickSilverからのブックマーク呼び出し

  3. Greasemonkey、とくに AutoPagerize と、自作し愛用している

    » Amazonに調布市立図書館の蔵書検索リンクを追加するGreasemonkeyスクリプト : 僕は発展途上技術者


  4. Google はじめ Amazon など様々なサイトを呼び出せる検索バー


Firefox から Safari に移行し、これらの機能を Safari でも使えるようにする方法を紹介します。


0. ブックマークの移行


» 林檎はいかがですか? | FirefoxからSafariへのブックマーク移行方法<追記>


で解説されている方法で移行できました。


1. マウスジェスチャー


Firefox では


» All-in-One Gestures :: Firefox Add-ons


を使っていました。


Safari にマウスジェスチャー機能を追加する


» CocoaSuite


があり、一時はインストールすることを考えたのですが、よく考えたら僕が使うのは、「次のページへ進む」か「前のページへ戻る」ジェスチャーだけ。


MacBook Air ではタッチパッド上に指三本を置き、右にあるいは左にサッと払う swipe という動作で「進む」と「戻る」ができ、これで十分です。


2. QuickSilverからのブックマーク呼び出し


Mac のランチャーソフト QuickSilver を愛用しています。


» Blacktree


よりダウンロードできます


補完がきくので、たとえば Safari なら「sa」まで入力すると起動できたりするのですが、Firefox のブックマークも直接呼び出せて便利。


Safari のブックマークもバンドル済みのプラグインを有効にすることで使えるようになります。


3. Greasemonkey


Safari でも Greasemonkey 用ユーザースクリプトが使える


» GreaseKit - User Scripting for all WebKit applications


をインストールします。


これなしのブラウジングが考えられない AutoPagerize が動かず一瞬あせりましたが、代わりに


» Safari3 * GreaseKit1.4 でoAutoPagerize - 0x集積蔵


をインストールすればまったく問題なしです。


4. 検索バーの代わり Keywurl


Safari の検索バーは Google 検索しかできず、不満でしたが、


Keywurl


で代用できます。


以下のように定義済みのキーワードを Amazon -> a のように短くしたり、はてなブックマークを検索できるようにして使っています。


keywurl.png


Ruby Waves を Mac OS X Leopard 上で動かしてみた

昨日Railsワークショップ@新橋に参加しました。


Ruby の新しいフレームワークで Rails よりも軽くて早いという Waves を、チュートリアルに沿いながら動かそうとしてみたのですが、いきなり大いにはまりました。しかし「乗りかけた船」だったので、頑張ってなんとか動かすところまではこぎつけました。


» Ruby Waves: Home

» Ruby Waves: Tutorial, Part 1


インストールは簡単。


% sudo gem install waves


で入りますが、ずらずらっと10以上の依存しているパッケージがインストールされました。


で、しょっぱなの


% rake schema:migration name=initial_schema


のところで


Could not load mysql adapter:

no such file to load -- mysql


というエラーが出て、いきなりつまずきました。


調べたら、どうやら gem の mysql パッケージがインストールされていることが前提であることがわかりました。


ところが、Mac OS X Leopard だと、


% sudo gem install mysql


とやっても


ERROR: While executing gem ... (Gem::Installer::ExtensionBuildError)

ERROR: Failed to build gem native extension.


というエラーが表示され、インストールできないのです。


しばしはまるのですが、結局


» Nullcreations | Installing ruby mysql gem in OSX 10.5 (Leopard)


にあった解決法でうまくいきました。


% sudo su

% ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-dir=/usr/local/mysql

% install_name_tool -change /usr/local/mysql/lib/mysql/libmysqlclient.15.dylib /usr/local/mysql/lib/libmysqlclient.15.dylib /Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle


これで無事マイグレーションファイルを作成することができ、その後は順調にチュートリアルを進めることができました。


以下チュートリアルをやってみた感想です。



  • Controller と Model のコードをなかなかいじらない。つまり何も書かなくてもある程度のことができてしまうところが Rails と違う。

  • generator が Rake タスクであるところが、なんとなく美しいと思った。こういうタスクっぽいものは Rake から、と覚えておけば済むので、覚えることが少ない。

  • REST の概念に慣れてないととっつきにくいかも。

  • view がわかりにくい。チュートリアルでは Markaby というテンプレートを使用しているが、うーん、僕はちょっととっつきにくいかな、と感じました。これはデザイナとの協業に苦労しそう。

  • チュートリアル3の最後の方、@comments.map{ |c| c }.sort_by( &:created_on ).each do |comment| の .map{ |c| c } の部分が汚い、というかよくわからない。Sequel’s MySQL adapter の Limitation らしい。

  • エラーが発生したときに表示されるデバッグ用画面が Rails より綺麗。

  • チュートリアルでは jQuery を使っている。Rails のような Prototype.js との密な連携がまだ見られないが、連携するとしたらたぶん jQuery だろうことが予想される。jQuery はまだあまり詳しくはないのだけど、まわりの評判は Prototype.js よりも良いので、まあこれはいいことなのであろう。


まだできたてホヤホヤ。当然 Rails の方がはるかに完成されたフレームワークなので、いますぐ移行しようとは思わない。しかし、こうして新しいフレームワークに触れてみると、いままで「Rails すばらし過ぎる。Rails 以上のフレームワークなんて作るの無理だろう。欠点なんてみつけられない」と少なからず思っていたのが、「いやいやそうでもない。Rails にもまだまだ改善できそうな点がある」という、まあこれが正常な状態だと思いますが、そういう思考に戻されました。


気になるパフォーマンスですが、apache 付属のベンチマーク測定ツール apache bench を使って Rails の方は mongrel と比較してみました。Rails の方は Waves のチュートリアルで作ったものとほぼ同じようなテストアプリを作成して比較しています。


% ab -c 10 -n 1000 http://127.0.0.1:3000/entries


waves の結果が


Requests per second: 23.97 [#/sec] (mean)

Time per request: 417.104 [ms] (mean)

Time per request: 41.710 [ms] (mean, across all concurrent requests)

Transfer rate: 21.27 [Kbytes/sec] received


mongrel が


Requests per second: 8.70 [#/sec] (mean)

Time per request: 1148.924 [ms] (mean)

Time per request: 114.892 [ms] (mean, across all concurrent requests)

Transfer rate: 11.65 [Kbytes/sec] received


でした。


Requests per second が約 2.7 倍。


サーバーを動かしている同じマシンから測定しているのでちゃんと測定とは言えないですし、非常に簡単な構成ですから一概には言えないと思いますが、実際にブラウザで操作している感触でも、確かに waves の方がサクサク動く感じがしました。


せっかくなので、もう一つはまりどころを情報共有しておきます。


ベンチマークを計るときに waves server をデーモンで起動しようと、


% waves-server -d


と実行したところ、


/Library/Ruby/Gems/1.8/gems/waves-0.7.2/lib/runtime/server.rb:32:in `daemonize': uninitialized constant Waves::Server::Daemonize (NameError)


というエラーが出ました。


mongrel のデーモン起動のところの似たような処理の部分を参考にして、/Library/Ruby/Gems/1.8/gems/waves-0.7.2/lib/runtime/server.rb の31行目に以下の通り require 文を追加。




30 def daemonize
31 require 'daemons/daemonize' #この部分を追加
32 pwd = Dir.pwd
33 Daemonize.daemonize( Waves::Logger.output )


あと、アプリケーションのトップフォルダ直下に


% mkdir log


で log ディレクトリを作っておきます。


これで無事デーモンで起動できるようになりました。


rake のオブション

すぐ忘れてしまうのでメモ。


rake のタスクの一覧を表示するには、


rake -T


これはいいのだ、覚えてる。


このとき、各タスクの詳細説明が一行しか表示されない。


特定のタスクの詳細をもっとみたい場合は、


rake -D [タスク名]


これ、いつも忘れてしまうけど、ブログに書いたのでもう大丈夫。


つくるぶガイドブログ: 失敗しない Rails が動かせるホスティングサービス選びと環境構築

» つくるぶガイドブログ: 失敗しない Rails が動かせるホスティングサービス選びと環境構築


を書きました。


ソーシャル「OSを入れた後にインストールする10のアプリケーション」(仮) を作る過程をレポートしてきましたが、10回目の今回をもって終わりとさせていただきます。


最後は、いよいよリリースしようという段階で必要な、ホスティングサービス選びと環境構築について書きたいと思います。


自分の勉強にもなったのでやって非常に良かったですが、実況中継ブログは大変でした。


ホスティングサービス Slicehost のドキュメントがすばらしい

自分のサービスの一部をSlicehostというホスティングサービスに移行し始めている。


知っているアメリカ人のRailsエンジニアにすすめられ、Webで調べると評判が良かったので使い始めてみた。サインアップや管理画面のインターフェースがシンプルで使いやすく、使いはじめから好感触だった。


Ubuntu LTS で環境構築中なのだが、ApacheやPHP、Ruby on Railsなどのインストールを説明した環境構築のためのドキュメントが非常に充実していてすばらしい。


たとえば、


» Slicehost Articles: Ubuntu LTS setup - page 1(英語)


では、セキュアな ssh 環境の構築方法がシンプルにわかりやすく書かれている。


このドキュメントをみつける前に ssh 環境の構築方法について書かれた日本語の情報がないかと、結構検索してみてまわったのだが、これほど的確に必要十分な情報を提供している記事はみつからなかった。


Debian や CentOS などほかにサポートしている OS のためのガイドも用意されている。別に Slicehost を使わなくても、そうした OS のサーバー構築のための良質なドキュメントとして参照できる。


» Slicehost VPS tutorials and articles


よくわかっている人が書くドキュメントは説明が的確で、読んでいてフラストレーションがたまらない。これまでどっちかというとサーバー構築はあまり好きなほうではなかったのだけれど、もしかしたらそれは良質な情報に触れていなかったからなのかもしれない。Slicehost のドキュメントを読んでいると正しい知識が身についていく感触が気持ちよく、楽しんでサーバー構築ができる。


まだ使い始めで実際にサービスを運営してみないとわからない部分もあるが、いまのところは好感触。ホスティング先として VPS を考えている方におすすめしておきます。(もちろん、英語に抵抗なければですが)


» Slicehost


プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Scratchで楽しく学ぶ アート&サイエンスRaspberry Piではじめる どきどきプログラミングを書きました。

オンラインコンテンツ: 大人のためのScratch

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ