トップ «前の日記(2008-06-30) 最新 次の日記(2008-07-02)» 編集

Route 477



2008-07-01

[mac] MacBookのバッテリーを最高の状態にする方法

要するに、たまにバッテリーを空にしてやるといいらしい。

んで、

このとき、PowerBook G4 (15-inch Double-Layer SD)(および MacBook、MacBook Pro)コンピュータに組み込まれた“セーフスリープ機能”により、コンピュータのメモリ内容はハードディスクドライブに保存されます。

と書いてあったので、特にアプリケーションを終了したりせずバッテリが切れるまで待ってたら、ごく普通に再起動した。

なんという罠…間違いなくジョブズは現代の孔明

[vim] F2を押すと現在時刻を入力するvimscriptを書いた

こんなのを.vimrcに書いておく。

" 時間挿入
function! GetCurrentTime()
  return strftime(" @%H:%M", localtime())
endfunction
noremap <F2> a<C-R>=GetCurrentTime()<CR><Esc>

と、コマンドモードでF2を押すことで「@14:40」のような文字列が入力される。

作業ログを書くときに便利。

[javascript] Rails風のJavaScriptフレームワーク、SproutCoreを試してみた

SproutCoreの特徴:

  • JavaScriptで、デスクトップアプリみたいなGUIを持ったWebアプリを作るためのフレームワーク
  • ユーザが書くのはJavaScriptのみ
  • だけど、開発環境はRails風
  • GUI部分はMac OS XのCocoaの影響を受けている

アップルのMobileMeの実装にも使われているとか…。

インストール

RubyGemsから簡単にインストールできる。

gem install sproutcore

merb-coreとか入るんだ。へぇ。

Helloチュートリアル

本家のHello Worldチュートリアルをやってみるよ。

まずはプロジェクト作成。

$ sproutcore hello_world

カレントディレクトリにhello_worldというディレクトリができる。 サーバを起動してみよう。

$ cd hello_world
$ sc-server

こんな画面が表示されます。

686a36ce5a11de168d3b0990fc7a3908.png

次は実際にファイルを書き換えてみる。hello_world/clients/hello_world/english.lproj/body.rhtml に一行追加する。

 <div class="message">
     <%= label_view :my_label, :tag => 'h1', :inner_html => 'Hello World!' %>
     ...

ページをリロードすると、「Hello World!」と大きく表示されてるはず。

コントローラとビュー

次に、hello_world/ 以下に戻って、コントローラを作ってみる。

$ sc-gen controller hello_world/app

clients/hello_world/controllers/app.jsを書き換えて、コントローラオブジェクトに情報を追加してみる。

 // TODO: Add your own code here.
   greeting: "Hello Sprout!"       //この行を追加

でもって、ビューの方でこれを参照するように変更する。hello_world/clients/hello_world/english.lproj/body.rhtml を以下のように書き換える。

 <div class="message">
     <%= label_view :my_label, :tag => 'h1', :bind => { :value => 'HelloWorld.appController.greeting' } %>
     ...

ページをリロードすると、「Hello World!」が「Hello Sprout!」に変わったはず。

ちなみに:bindを使うと、コントローラの保持する値はビューに自動的に反映される。 もしFirefox上でFirebugを使ってるなら、コンソールで以下のJavaScriptを実行してみてほしい。

HelloWorld.appController.set('greeting', 'I am changing!')

表示が変わったはずだ!

つづく?

とまあ、今日のところはここまで。本家ではこのあと「ボタンを付けてみよう」に続くよ。

[ruby][event] RejectKaigi & RejectRejectKaigi2008 発表者まとめ

まとめてみた。

RejectKaigi

ニコニコ動画: 前半, 後半

タイトル発表者発表資料
1.8.5 追悼 卜部
Redmine と Ruby 1.9.1 への道 yugui blog
Ramaze マイクル(Michael Fellinger) Ramazeの中の人らしい。
変なネットサービスが出来るまで 星暁雄
reposh - ハッカーのためのリポジトリシェル yhara blog
String#succ 田中哲 blog
音プログラミング takkaw
illustrator プレゼンテーション 志村 blog
infix to postfix shinh blog
NDD (Niconico Driven Devevlopment) 井上泰之 blog
TechTalk.jp と、あとニコニコ動画もよろしくね coji
KaigiFreaks しまだ slideshare
やる夫で学ぶJRuby最適化 高井 blog
Regional RubyKaigi の御提案 かくたに blog

RejectRejectKaigi

ニコニコ動画: 前半, 後半

タイトル発表者発表資料
3の実装の時にアホになるRuby Yoshiori
Decimal 斎藤ただし Decimal
ひとばんでつくるRuby+Greasemonkey+Safari 加藤和良
Arawd on RailsのCMをさせてください id:technohippy スライド
Gauche on Rails id:yuum3 blog
Hash::mapが僕にとってアフォーダンスに優れていない件について ミムラ(id:takkan_m)
私はいかにしてRubyKaigiを私物化したか ただただし blog
RubyでIdenticon swdyh blog, quilt, identicon.relucks.org
tDiaryとHikiで使うBayesFilter 黒田拓 malagma
Rubyで作ろう 二次元プログラミング言語「ず」コンパイラ naoya_t blog
YARVを偲んで(YARVはゴールではなく始まり) ささだ nadoka, Rabbit
Rubyバイトコードで遊ぼう赤井駿平 スライド(rd), Rimple
require 'future' cho45 Resh
本日のツッコミ(全6件) [ツッコミを入れる]
hoge1e3 (2008-07-01 20:24)

サンプルをみると,ほんとにJSからSQLまで発行しているみたいですね.へんなクエリを投げられてもデータが破壊されない仕組みとかはあるのでしょうか.<br><br>http://github.com/sproutit/sproutcore-samples/tree/master/clients/photos/main.js

yhara (2008-07-02 01:40)

ほんとだw これはちょっとぎょっとしますね。<br>入力内容はexecuteSqlがチェックしてくれるんでしょうけど、「任意のJavaScriptが実行される脆弱性」が存在した際の被害が大きそうだなぁ。

かくたに (2008-07-02 09:56)

Michael FellingerはRamazeの中の人なので、ramaze.net か http://manveru.net/ でしょうか。

dara (2008-07-02 17:24)

しまださんによるKaigiFreaksの資料はここにあります: http://www.slideshare.net/snoozer05/20080622-reject-kaigi2008-kaigi-freaks/

yhara (2008-07-02 17:25)

かくたにさん、daraさん:<br>情報ありがとうございます。<br>中の人だったのか、全然分かってなかったorz

かくたに (2008-07-03 09:44)

わかっててramaze-usersを用意したのかと思ってました :-D