最近、まわりでCoffeeScriptがすごいという声が。

CoffeeScriptって?

Javascriptを洗練させてPythonやRubyライクな文法で書ける言語。
コンパイルするとクロスブラウザでJS Lintも通るJavascriptになるというもの。
某WebベースのTwitterクライアントも、JS部分はこれで書いてるとか。

CoffeeScript - sappari wiki
https://sites.google.com/site/sappariwiki/coffeescript

CoffeeScriptについては、日本語だと、ここがよくまとまってます。

さっそく、CoffeeScritptを入れて、Titaniumの最初のコード(プロジェクトを新規作成するとできるやつ)をCoffeeScriptで書きなおしました。

https://gist.github.com/764343

JSファイルにコンパイルして、Titaniumでビルド。ドキドキ。
ちゃんと動きました! かなりすっきり書ける印象。

で、CoffeeScriptのコンパイルを前回のTitaniumのビルドを簡単にするスクリプトに組み込んでみる。

https://gist.github.com/767905

これでスクリプトを叩けば、自動的にCoffeeScriptがコンパイルされて、iPhoneアプリがビルドされる。

CoffeeScript -> JavaScript -> (Titanium) -> ObjectiveC

というすごい階層構造に。
CoffeeScriptで書いてて、たまに生成されたJSを見るとJavascriptが低レイヤーのアセンブラのように思えますw

クラス化してみる

Titanium公式のカプセル化は若干使いにくいので、どうしようかなぁと思ってたのですが、CoffeeScriptはクラスも使えるらしい。

https://gist.github.com/767545

さきほどのサンプルコードをクラスを使って書き直してみました。
ちょっと冗長かもしれないけど。。
まだ理解が浅いですが充分使えますね。

個人的には、thisをクロージャーやイベントリスナーに渡せるFunction bindingがあるのが便利。
functionを書かなくていいのも。これでタイポから解放される?

https://gist.github.com/767613

実際にコンパイルで生成されたJSはこんな感じ。

変数は最初にまとめて定義されていて、bindやfor ~ of などに使われる関数も定義されてます。
jQueryなどのライブラリを読み込むのと違って、必要なコードしか生成されないので、パフォーマンス的にもよさそう。
クラスはJSのprototypeベースのクラス化をわかりやすく使えるというかんじ。

ということで、CoffeeScriptかなりいいかも。

各エディタ向けの入力支援ツール

defunkt/coffee-mode - GitHub
https://github.com/defunkt/coffee-modeemacs
emacs使いの人はここ。

kchmck/vim-coffee-script - GitHub
https://github.com/kchmck/vim-coffee-script
Vim使いの人はここ。

jashkenas/coffee-script-tmbundle - GitHub
https://github.com/jashkenas/coffee-script-tmbundle
最近、Macに乗り換えてTextMate使いになったので、これを入れた。

Vim-users.jp - Hack #164: JavaScript開発環境 その2 CoffeeScriptを使う
http://vim-users.jp/2010/07/hack164/

非常にマニアックな考察がされていますw
今回の記事は、UjihisaくんからCoffeeScriptすごいよ!と教えてもらったのがきっかけで書きました。

Thanks. Ujihisa!

そろそろiPhoneアプリに手を出そうということで、最近、話題になっているTitaniumを使って、JavascriptでiPhoneアプリを作ってみています。

titanium-mobile-doc-ja - Project Hosting on Google
http://code.google.com/p/titanium-mobile-doc-ja/

日本のTitaniumの情報はここが詳しい。

http://tidocs.com/mobile/latest/

リファレンスは↑が公式より探しやすくてGood

ただ、しばらく開発してみると、毎回Titanium Developerからビルドするのが面倒。
JS開発におけるオートリロードみたいな方法はないものか?

TitaniumのコードをGUIなしでエディタからすばやくbuildする - はこべにっき
http://d.hatena.ne.jp/hakobe932/20101125/1290694032

あったー。hakobe++

ただ、CPANをインストールしてライブラリを入れないといけないのがperl使いじゃない人には若干面倒。

そこで、なにも入れなくてもいいRubyで書き直してみました。

使い方はまったく同じ。

Titaniumのプロジェクトフォルダにbuild.rbを置いて、ターミナルから

ruby build.rb

サーバーが立ち上がるので、http://127.0.0.1:9090/run を叩けば、buildが始まります。
ターミナル上でログを見ることができます。

Ruby初心者なので、わりと適当だと思います。
Macで動作確認してます。Windowsで動かすには若干変更が必要かも。

エディタから呼び出す方法は、それぞれやり方があると思うのですが

キーボードで呼び出せてどのエディタでも使える方法。

Automator->"アプリケーション"->"シェルスクリプトを実行"->"curl http://127.0.0.1:9090/run"

でアプリを作って、"rebuild_titanium"などと名前を付けて保存。Spotlightで呼び出して実行するだけ。
キーボードだけで操作できて快適になります。

Spotlightのショートカットは個人的には使いにくいので、LaunchBarをCommand+Spaceで呼び出すようにしています。
LaunchBar、慣れれば使いやすいのでオススメです。

Twitterの「おすすめユーザー」がうっとおしいので消したいという話があったので、Google Chrome限定ですが、簡単なスクリプトを書いてみました。


hide_recommended_users.user.js

Google Chrome で↑のリンクをクリックすると


↑のような表示がでるので続行を押して、インストールを選んでください。

この機能を解除するには、Chromeの拡張機能管理画面でアンインストールしてください。

簡単につくったので、「おすすめユーザー」が最初一瞬表示されてしまいますが、ご容赦を。
全国4300館の蔵書検索ができるカーリルが公開されて、まわりが「図書館!図書館!」言うので、
「なんか最近、図書館熱いよね。」「図書館をもっと便利に使いたい。」
ってことで、図書館関連の便利な、おもしろいツール&サービスを12個選んでみました。



1.野田市立図書館

まず目に付くのが各種ブラウザ用の検索プラグイン。
新着雑誌記事速報にGoogle AJAX Feed API使ってたり、新着図書のRSSがあったり。
公共の図書館ですが、新しい技術を積極的に取り入れてます。



2.図書館活用便利ツール - 読書学 -図書館徹底活用-

さいたま市図書館限定ですが、新刊のTwitter Bot にAmazon上で図書館の蔵書をチェックできる各ブラウザ用のユーザースクリプトがあります。

こういう便利なのがもっと多くの図書館で使えるものがあるといいですよね。


3.図書犬

Amazon上で蔵書情報を確認できる各図書館用のGreasemonkeyスクリプトを生成してくれるサービスです。
対応図書館も多く、大学図書館にも対応していて、なかなか実用的です。





4.Shizuku 2.0

本を対象にしたつぶやきサービス。
少し前からクローズドベータに入っています。
少しわかりにくいところもありますが、
本についてつぶやくというのはおもしろい。
可能性を感じさせるサービスです。

サービス名のShizkuはジブリ映画「耳をすませば」から来てるとか。


普通のホームページですが、そこに込められた熱量が半端じゃないサイトをひとつ。


5.東京図書館制覇!

この情報量。ひとりで運営されてるとは思えないくらい圧倒的。

ランキング&リスト 東京図書館制覇!

このランキングとか手作業で作ってるのですか!?という感じです。


モバイル系はどうでしょうか?



6.Android アプリ Libraroid - 図書館予約 -

Amazonの検索結果から設定した図書館の蔵書情報を調べることができるアプリです。
対応図書館は少ないですが、モバイル系の図書館アプリとしてかなり早くからでていました。




対応図書館と言えば、先日カーリルがAPIを公開して、全国各地の図書館の蔵書情報を利用したアプリケーションを作ることが可能になりました。


7.「図書館検索」を作ってみた。

そのカーリルのAPIを使ったAndroidアプリがリリースされてました。
県による図書館検索、現在地による図書館検索、ISBNによる書籍検索、ISBNによる蔵書検索などが可能です。
アイコン募集中みたいです。






だが、しかし。Andoroidを持ってない><
じゃあ、iPhone用はないの?
ありました。


8.すぐカーリル

GPS情報を登録して、Amazonの検索ができ、検索結果から近くの図書館の蔵書情報を見ることができます。
Safari上で動きます。
とてもシンプルだけど使える!







9.Libron - 無料で本が読めるライフハック

Amazon上で図書館の蔵書情報をチェックできるGreasemonkeyスクリプトとChromeエクステンション。
これもカーリルのAPIを使ってLibron2.0登場。
もともと、多くの人が協力して、各地の図書館に対応していましたが、今回のバージョンアップで一気に対応図書館が増えました。


いっぽう同じAPIを使いAmazonに対応してるものながら、この発想はなかったわ。と思ったのがこのスクリプト。


10.Amazonの書籍Linkにカーリル(図書館検索)のもくっつけるgrasemonkey「Add_calil's_link_to_amazon's_link」

Amazonへのリンクすべてにカーリルへのリンクを追加しています。





他にもSkypeについてた電話番号ぽい数字すべてにSkypeへのcall:リンクをつけるブラウザ拡張みたいに
ISBNっぽい数字すべてにリンクをつけることができるとおもしろいかもしれませんね。



11.Calil for NDL

こちらはカーリル公式のGreasemonkeyスクリプト、Chromeエクステンション。
国立国会図書館の蔵書検索に、Amazonの書影と各地の図書館の蔵書情報を表示する機能を追加するもの。
サンプルですが、国立国会図書館の職員さんも見て驚いたとか。





12.Next-L Enju

最後はいまベンダー系ばかりの図書館システムに一石を投じるオープンソースの図書館システム。
こういうのが普及したら、各図書館のAPIなども公開可能になってより便利なサービスが生まれてくるんじゃないかなぁと思います。


おわりに

最後に「これはとてもいい文章。」と、おすすめされたので。

図書館の自由に関する宣言


図書館をインターネットに置き換えても読めてしまいますね。
ああ、そういえば大学の時に図書館学を取っていたのでした。
いまになって再びこの文章に出会うのはなにか不思議な感じがします。


駆け足で書きましたが、いかがだったでしょうか?
他にもおもしろいサービスがあればぜひ教えてください!


はてなブックマークに追加 Twitterでつぶやく


久しぶりの更新です。

FirefoxからChromeに移行する際に、ネックだったのが、FireBugがないことと、RakuCopyやCopyUrl+に相当するページのタイトルとURLをクリップボードにコピーしてくれる機能拡張が見当たらないことでした。

そこで、他の機能拡張を参考にしながら簡単なものを作って、しばらく使っていました。
普通に使えてるので公開することにしました。

One Key Copy - Google Chrome extension gallery
https://chrome.google.com/extensions/detail/pjbanhcnijokhfehelpnnfofgfjkbeml

CキーでページのタイトルとURLをクリップボードにコピーします。
キーは固定です。
コピーするとページの右上にcopiedと表示がでます。

テキストエリアにある場合は、テキスト入力に干渉しないように動作しないようになっています。

Skypeなどのチャットや、Twitterでurlをつぶやきたいときに使うと便利です。

ソフトウェア

アーカイブ


amzlsh amazon search with Flash

BlogPeople

このページをBlogPeopleに登録

RSS feed meter for http://a-h.parfe.jp/einfach/

Bloglinesに登録