2010年12月31日金曜日

rspec本を読みながら

コードの部分は理解できるというか実際に自分の手で入力すればいいわけだから、rspec本のとおりに試してみよう、と思い始めました。ただ、さすがに今日は大晦日なのであまりiMacの前にいる暇はなかったので、明後日あたりから始めよう。

明日もお正月ですから、実家まわりとかで暇はなさそう。

rspec本、現在36ページあたり。rspecとcucumberのHelloを書く、というあたり。その次の章から手を動かしながら読もうっと。

2010年を振り返る

もうすぐ新年。簡単に本年を振り返ってみる。

今年の収穫はなんといってもrailsとruby。まだまだわかんないことばかりだけど、プログラミングの面白さを久しぶりに堪能させてもらえた。ruby単体でちゃんとtool作れるようになりたいな。

それに匹敵する出来事はもうないな。(^^;)今年特にうれしかったことは・・・冬道の運転に慣れてきたことか。

もう50近いおやぢでずっと北海道で生活しているので冬道の運転くらい毎年のことなんですが、スタッドレスタイヤになってからずーっと恐怖心が消えなかったんですね。小さな町で生活していたので、運転時間が5分とかでした。だから正月に実家に帰る、みたいな時は大変。1~2時間の運転が苦痛で仕方なかったです。

だいたい、歩行者が横断歩道を渡るのに何度も転びそうになるような凍結道路を、どうして車がまともに走れるのか不思議でしょうがなかったです。(^^;)いつすべるか、もうドキドキしっぱなし。

それが現在の町に転勤してきて、通勤時間30分。これを毎日運転していると、慣れてきました。40キロ程度でまっすぐ前をみて運転していれば、めったに怖いことは起きない、ということがわかってきたわけです。

昨年購入したブリジストンのスタッドレスタイヤの性能が高い、というせいもあるでしょう。(以前、他の某メーカー製のスタッドレスをはいていたときは、横滑りがよく起きて怖かった・・・)

というわけでなんだかしまらない感じでございますが、これにて2010年終了。

2010年12月30日木曜日

苦闘記録(^^;)

お休みだからひまな時はiMacの前に座ってプログラミング。というかcucumberの勉強。

本日、はまった点が二つ。

1,cucumber、capybara、cucumber-railsの組み合わせで「select_datetime」系のmethodが使えない

rspec本で「select_field関係はselect_dateとかが使えるよ」と書いてあったので試してみたらどーも使えない。cucumber-railsの0.4.0から実装されているみたいだけど、Gemfileに
gem 'cucumber-rails','0.4.0.beta.1
って書いたら
rails g cucumber:install
が通らない状態でした。(まっさらのプロジェクトを作って試しても同じだった)

じゃあ、ってんで該当するソースだけコピーしたり、そのソースのもとになったらしいソースをコピーしてみたりしたけどどうもうまくいかない。日付選択はテストしない、という結論がでるまで2時間くらいかかってしまった・・・。

2,redirectはどうやるの?
deviseはsign_in後に指定の「root」ページにリダイレクトされます。しかしそのつもりでfeature書いても通らない。sign_inのページで「Sign in」ボタン押してもcucumber的にはリダイレクトされないようで、いくら「~が表示されていること」とか「~ページを表示している」とか書いてもテストが失敗する。capybaraには「visit」ってーmethodがあるようなので、それを使え、ということのようだ。

とまあ、cucumberを使って「BDD」することが苦痛になるくらい苦労してますが、それでもいちいちブラウザで手であれこれ入力する「テスト」よりははるかに合理的だと思います。でもねー、feature通らないけど手でテストしたら普通に動いてるのをみるとがっくりきますね、自分の技術のなさに。

emacsをやっと使えるようになってきておもしろくなっているように、cucumberもcapybaraも使い続けることできっと面白みがわかってくるのだろう、と期待しております。ほんとかな・・・。

2010年12月29日水曜日

kindleやめる

昨夜、酔った勢いでkindleを注文してしまいました。(^^;)ポチッた、というわけですね。その余韻の幸せな気分で眠りについて、本日注文確認のメールを読んでみて驚愕。shippingは2011の1月19日あたり・・・これでかなり醒めました。冷静に考えてみたわけです、本当に必要なのか?

本当に必要なのか?いるものなのか?
というわけで注文はキャンセル。(^^;)amazon.comのブラックリストに載ってしまうような行動だったかしらん。

注文は特急便になっていて当然お金がかかって160ドルくらいでした。それで1月19日・・・。その程度も待てないのか、というと私は待てないんです、はい。待てない程度の「必要感のなさ」だった、というべきか。

amazon.co.jpで扱うようになったら、すなわち日本のkindle storeがオープンしたら、きっと買うと思います。PDFを表示すると不安定だ、とか、PDFはfont埋め込んでないと日本語がでない、とか、まだまだ日本語での使用は苦労があるらしいし。

ちょっとさびしい気分になってたわけですが、いつかお茶の間ネットマシン、兼ベッドでのリーダーマシンとしてairを買ってやる!と心に決めて自分を慰めました。

本日の作業記録

cucumber本読みながら、日報アプリに手をつけました。
日報アプリの仕様を簡単に書きだすと、

1,行事予定を表示する
2,ユーザが入力した連絡を表示する
3,表示は日付ごと。「日」「週」「月」の3つの表示方式をとれる

基本的にこれだけ。まずとりあえず連絡を日付ごとに切りだして表示するところまで行き着きたい。

本日は
・deviseでemailなしの認証を可能にする
・「連絡」を入力して表示する
ところまでいってますが、なんのことない、cucumber本の4章くらいまでをなぞっただけですね。

deviseは1.1系だとemailなしの認証はできないので(1.1.5ならできると思って作業したら、全然だめであせりました)、
gem 'devise",'1.2.rc'
と書くのが吉のようです。cucumberでの検証を日本語で全部やりたいので翻訳ファイルのattributes.ymlを用意したり、あれこれやっているうちにあっという間に自由時間終了。

「連絡」は
rails g scaffold message
しただけで、これからfeature書こうか、という感じ。cucumber本との違いはすでにuserへのリファレンスがある状態でテストすること。ここからは明日。

相変わらずrspecについては理解が進んでません。英語の壁は厚いよなあ。日本語の情報も参照しながらよたよた読み進んでますねー。

routes.rbの書き方の勉強とかもしないとな。

気づけば

emacsを起動したらrailsのお勉強開始。

C-x C-cでお勉強終了、という感じでこのところemacsを使っている。おお、オレってemacs使えてるじゃん!と自分で驚いています。ま、C-yは知ってたけど、ESC-wは今日はじめて知った、というレベルなんですけどね。

墓場に行くまではもう少し使いこなせるようになるんじゃないかと思います。(^^;)bufferってGUIエディタでいうところの「タブ」なんだ、と理解してから話が早くなってきました。(今までそれがどーしてもわからなかったわけですね、悲しいことに)

rinariがなかなか便利で(特にrinari-rgrepとか)、C-c,vでfeatureやrspecを実行できて、hamlもscssもerbも全く問題なく表示できて便利な編集モードが使えて、なんかすごくいいエディタなんだなあ、とわかってまいりましたよ。

今のところcucumberのfeatureを書いてみる→検証する→featureやymlやviewをいじる、の繰り返し。まだあまり自分でコードを書くところまで行ってませんねえ。

2010年12月28日火曜日

お休み

本日はお休みをとって世間様よりひと足早く正月休みに突入。学校には仕事納めなんちゅー行事はありません。(・・・あるところも、あるのかな。教員になって25年、経験5校ですが12月28日にみんなでそろって何か、というのはやったことがない。忘年会でそれは終了、という感じです)

平日にしか済ませられない用事ってたくさんあるではないですか。郵便局、とか銀行、とか不要になった電気製品を無料で引きとってくれる業者に持ち込む、とか。本日はそういった家庭の用事をあれこれやった。

その他お母ちゃんの職場分の年賀状を依頼されたり(つまり児童向けに出す年賀状を作った、と)、バイトに行く娘を送り迎えしてあげたり、愛犬と散歩したりしているうちにあっという間に1日終了。こりゃ正月休みなんかあっという間に終わっちゃうな。

cucumberやrspecは「bugのないきれいなコードを書くためのテスト環境」だからことちゃんと身につけたい、と思うわけですが、rubyやrailsのコードを書く経験がまだとっても不十分な自分としては実際に動くプログラムをいくつか書いてみたい、と強く思います。だからBDDの勉強は一生懸命するとしても、現実世界で動くコードも書きたいなあ。正月休みで日報アプリをでっち上げたいなあ。できるかなあ。今日みたいな感じで過ごすなら、できそうにないぞ・・・。

kindle調べる


うーむ、買わないとは思いますが・・・。PDFで英和辞書引けないと私の用途には合わないから。

ただ寝転がってPDF読みたい、とは思うんですよねえ。kindleってすごく薄くて小さくて軽いようなので、ハードウェアのPDFリーダとしてはかなり良さそうです。勢いでamazon.comのアカウントまで作ったはいいとして、買わないほうがいいだろうなあ。でもwifi版で139ドルですからねえ。

139ドル、一万円ちょっとだな、ということでgoogle様に為替レートを聞いてみる。


はっはっは、139ドルの検索結果はkindle一色でした。

ちょっと調べたところzip化した画像集(スキャンしたマンガとか)も表示できるみたいですね。
わ、なんてこった、英辞郎(一発でこれを変換するgoogle日本語入力、恐るべし)kindle版ならLookup機能ありかい。1400円ならお値頃感。

うーむ、うーむ・・・。とりあえず今日はもう寝るぞ(^^;)。

2010年12月27日月曜日

ちょっとテスト

twitterfeedの利用をやめてみたのでテスト。

Excel、奥が深い

いや、単に私の知識が浅いだけなんですけどね。

本日、冬休みが始まったばかりの職員室で、みんなでセコセコ事務仕事をしていたら(教室のそうじとか作品の整理とか、もっぱら教室にいる人も多いんだけど、私の主な仕事はパソコンがらみ)、斜め向かいに座ってる教務の人が「Excelでさー、セルをクリックしたら1とか2とか入力できる方法ない?」と聞いてきた。

そういう時は「Googleさまに質問しなさい」が私の答え。Excelのマクロや関数に関しては、分厚い書籍を買うより絶対ググッたほうが速く、かつ詳しく、かつ深ーい答えを得ることができる、と思う。分厚い書籍を買ったことないけど。

教務の人はググるのも若干不自由ならしく、困り顔だったのでかわりに「Excel、マウスクリックで入力」てな感じでググってみる。おお、出た出た。すぐ出てくるじゃん!とか言いながらworksheet_beforeDoubleClickなる関数の説明を読む。あらまー、便利だわこれ。セルをダブルクリックするたびにいろいろな文字やら記号やらを入力するマクロがすぐ書ける。

初めてExcelを触ったのは・・・えーとあれは「oh!PC」誌にWindows2.11の体験版が付録としてついてきたころだから、1990年ころかなあ。ExcelとWordも体験版が付録でついてきた号があったはず。CDROMはまだ普及してなかったから、きっとFDだったんでしょうねえ。

本格的に使い始めたのはWin95以降なので、15年くらいは使ってますね。マクロを触り始めて10年くらいか。まだまだ、新しい知識が山のように出てきます。MSが世に送り出した製品の中で、一番役立っているのがExcelなのでは、と思ってしまった年末でした。

Rspec本、読み継ぐ

電子書籍をPDFで読もう、という気になったのもやはりiMac効果でしょうか。液晶がとにかくきれいでデカイから、快適です。1ページだけ表示、にしておけば、まわりにターミナルや辞書のウィンドウを置いても邪魔にならない感じ。

Rspec本、21〜22章あたりはcucumber本で得た知識があればかなり楽に読み進むことができました。Direct Model Access stepというのはcucumber本でいえば5章あたりの内容ですね。とあるシナリオだけテストしたい場合は@つきのtagをシナリオの前に書くのか・・・なるほど。

Rspecがこの絵のどこにはまるかはもう少しあとのお楽しみだよ、と筆者のコラムにあったので、楽しんで読み進めよう。

とにかくRspec、cucumber、ruby、railsのことしか書いてないんだ、と自分に言い聞かせながらなんとか読んでおります。辞書.appとの連携も快調。PDF上で調べたい単語を右クリックすると、その単語を選択状態にしてコンテクストメニューがでるので、「2クリック辞書」であることが本日わかりました。

電子書籍の欠点は、私の場合はやはりパソコンの前に座って読むしかない、ことでしょうか。ベッドに寝っ転がって読むのがサイコーなんですけどね。(最近はすぐ寝落ちしちゃうけど)
iPad買うならMacBook Airのほうがいいなー。そのうちOSXでiOSのアプリ使えるような仕組みができる、のではなかったですか?

iOSだと、技術書読みながら、「あ、これは実際に試してみよう」がすぐにできない気がする。ターミナルとかエディタとか、rubyとかrailsとか(^^;)。

2010年12月26日日曜日

今年の3冊

今朝の北海道新聞の読書欄は、様々な人による「今年の3冊」でした。大森望氏のあげた3冊が魅力的だったなあ。特に

異星人の郷 上 (創元SF文庫)
マイクル・フリン
東京創元社
売り上げランキング: 4656

これは買うか借りるかして必ず読まなければ。最近本を読んでないからなあ。

さて、道新をまねして自分も今年の3冊を考えてみる。

まずフィクション。考えるまでもなくこの本。

未亡人の一年〈上〉 (John Irving collection 1989-1998)
ジョン アーヴィング
新潮社
売り上げランキング: 364774

今年はj・アーヴィングに出会えた幸せな年だった。この作家の作品を読まずに死んでしまうのはあまりにも惜しすぎる。近年の作品はひと通り読んで、一番印象に残ったのが「未亡人の一年」でした。最後が泣けるんですよねえ。

技術書ではダントツでこれ。

RailsによるアジャイルWebアプリケーション開発
Sam Ruby David Heinemeier Hansson Dave Thomas
オーム社
売り上げランキング: 12961

rails勉強するなら必読ではないでしょうか。今だに何かわからないことがあったらまずこの本をあたります。rails3対応の改訂版が出ても買うと思います。

さて、もう1冊。せめて3冊目くらいは今年読んだ本、ではなくて「今年に出て、読んだ本」にしたいですねえ。うー、今年はあんまり本を読んでないからなあ。お、そうだこれだ!


生まれてはじめて買った、電子書籍、ということで。達人出版会にははげしく期待しています。初心者を中級レベルに押し上げるようなruby本をぜひ。

mule

おそらく今年最後の図書館通い。
この本を借りた。

入門Mule (Ascii books)
入門Mule (Ascii books)
posted with amazlet at 10.12.26
大木 敦雄
アスキー
売り上げランキング: 1321843

手にとって目次をみて、「かんなによる日本語入力」に1章がさかれているのを知り、棚に戻そうかと思ったけれど、本文中の図版を見て借りる気になった。初版発行が1996年。220ページで1,800円・・・高いなあ。今の感覚でも高いぜ。

図版のほとんどはターミナルで起動したmule(Emacs)なので新鮮味はないのですが、最初の方に2点だけ挙げられているXの画面、ウィンドウマネージャがtwmでした。1996年当時ってーと、おそらく私も初めて買った「DOS/V」機(本当にDOS/V上でWin3.1を動かしていましたよ)にslacwareをインストールしてみたりしていた時期ですねえ。Xを立ち上げられた、というだけで大感動したのをおぼえています。(その後enlightenmentの0.16を自分でmakeして起動できたときの感動・・・涙ものでした)

その当時で日常的にUNIX使っていた人が書いた本でしょうから、筆者はワークステーションか何かを使う仕事だったのかな。筑波大学にお勤めのようだけど・・。ググったら筆者のページをみつけた。

Emacsに慣れてきたとはいえ、基本的な編集のコマンドとか検索とか置換とか、知らないことばかりなので古い本でも予想したよりずっと役に立ちそう。

実は
Emacsテクニックバイブル ~作業効率をカイゼンする200の技~
るびきち
技術評論社
売り上げランキング: 4562
この本を買おうかな、なんて思っていたけれど、私のレベルには

入門 GNU Emacs 第3版
入門 GNU Emacs 第3版
posted with amazlet at 10.12.26
Debra Cameron James Elliott Marc Loy Eric Raymond Bill Rosenblatt
オライリー・ジャパン
売り上げランキング: 79810
こっちのほうがあっているのかな。

奥付を読んでこれまたびっくり。「本書の内容に関する質問は、小社スーパーアスキー編集まで、封書(返信用切手同封のこと)にてお願い致します。」とある。スーパーアスキー!!封書!!返信用切手!!スーパーアスキーは唯一、創刊号と最終号を買うことのできたパソコン雑誌なので思い出深い。(ちなみに創刊号の表紙は初代NextStepの写真でした・・・)

昔はオライリー本がアスキーから出てたんだよなあ。(って言う表現でいいのかな)

deviseを日本語化して使う

夕方からdeviseをいじり始める。
今のところのsign_in.featureは以下のとおり。

# language: ja

フィーチャ:ログインしてユーザを識別できる
  ユーザとして
  自分の情報を識別したい
  なぜなら、予定などを自分のものとして区別したいからだ。

シナリオ:ユーザ登録してログインする
  前提  "新規ユーザ登録"ページを表示している
  もし  "Eメール"に"nis@gmail.com"と入力する
  かつ  "パスワード"に"123456"と入力する
  かつ  "パスワード確認"に"123456"と入力する
  かつ  "サインアップ"ボタンをクリックする

  ならば "自分のプロフィール"ページを表示している

"自分のプロフィール"ページを表示している、が現在のところ予定通り失敗して終了。userにhas_oneのprofileを作ろうか考え中です。

devise日本語化といってもたいしたことはしておらず、基本は Ruby on Rails 3.0 日記 さんの「第16回: Devise によるユーザー認証機能の日本語化(2)」あたりを参照しただけです。cucumber本で知ったrails-i18nで
rails g i18n ja
とすればja.ymlもいれてもらえるし。

「サインアップ」ボタンだけはずるをしてnew.html.hamlに直書き(^^;)。
devise使うの久しぶりだったため、自分で書いた過去記事が役に立ちました。(^^;)

やはりcucumber本をなぞって試していくほうがずっと短時間で済むようです。
rails g devise:views users -e haml
でviewを生成して、それがレンダリングできるまでにえらい時間がかかりましたよ。

でもやっぱり自分で考えて自分で書くって勉強になるなあ。なんといってもおもしろいです。今日はこんなところかな。

OSX PDFを読みながら辞書を引く

rspec本をちょっと読む。いきなり19章から。railsでBDD、という内容。それからrspecそのものの解説に戻る予定。

PDFでダウンロードしているので、とりあえずAdobeのReaderで開いてみたが、わからない単語を調べるのに

1,単語をコピー
2,辞書.appにペースト

とやるのがだるい。(けっこう辞書.app使う頻度が高いからなおさら)

もっとうまいことできないか、と少し試して以下のようにやることにしてみた。

1,プレビュー.appを使ってPDFを開く
2,辞書.appの設定で「コンテキストメニュー→辞書パネルを開く」を選択

3,これでプレビュー.appで単語を選択して右クリックして出てくるメニューから「辞書で調べる」を選択

4,そうすると次の画像のように辞書がポップアップする

マウスオーバー辞書、とはいかないけれど、単語をダブルクリックすれば選択できるので「マウス3クリック辞書」にはなった。

む?キーボードからだとどうやるんだろ。少し調べてみよう。

2010年12月25日土曜日

最低気温-15℃

本日の最低気温は-15℃だったらしい。それより最高気温が-7℃ってのが笑える。どうりで寒かったわけだ。

それでもまだ今シーズンは自分の部屋のストーブ(正確に書くと、セントラルヒーティングの子機)を一度も炊いていない。外断熱のマンションなのでけっこう暖かいのと、ユニクロのフリース製品で身を固めているせいと思われます。

朝の散歩で、愛犬は-10度を超えると「足が冷たくてもう歩けません」というアピールをする。しばらく足踏みしたあと、「待て」のポーズで歩道に座り込んでしまうわけです。ちょっとの間抱っこしてやると、また元気を取り戻して歩き始めます。

雪国だと、犬も大変ですね。

Rsepc本購入


へっへっへ、ついに購入。24ドルならおよそ2,000円。いくらなんでも家計を圧迫するような買い物でもないので買いました。

英語が最大の難関ですが、なんとかがんばって読みましょう。

日本語の本でも技術書は平気で3,000円とか4,000円とかしていて、それを買ってけっこう積ん読してあったりするので、現在一番興味のある分野の一番くわしそうな書籍を買って満足。

購入にはpaypalを利用しました。paypalから一度PragmaticBookshelfのサイトに飛んで、住所とかいろいろ入力したあとやっと購入となりました。で、なんとtwitterで「もうダウンロードできるよ」と告知されてびっくり。

便利な世の中になりましたねえ。

あと2,3冊、電子書籍を購入したら、きっとiPadかMacBookが欲しくなるなあ。(^^;)

deviseとcucumber

cucumber本の3,4章をもう1回読み返して、ユーザ認証はこの際deviseでやってみることにした。すでにcucumber本をそのまま入力する作業は中断ですな。(^_^;)

本をそのまま入力して自分のtypoで苦しむのも、いろいろ調べながらdevise使ってみるのも消費する時間はあまり変わりなさそうなので、前から構想だけはある「日報アプリ」につなげるつもりで自分で書いてみよう、と。

Gemfileに gem 'devise'とかいてbundleしたら、devise-1.1.5になってました。9月にいろいろ触っていたのが1.1.3なので、着実に進歩しているんですねー。

ASCIIcastのdevise関係のエピソードを読んだり、deviseのwikiの「How To: Test with Cucumber 」を読んだりして、勉強勉強。

本日はこんなfeatureファイルをかいてrake cucumberしてみる。

# language: ja

フィーチャ:ログインしてユーザを識別できる
  ユーザとして
  自分の情報を識別したい
  なぜなら、予定などを自分のものとして区別したいからだ。

シナリオ:ユーザ登録してログインする
  前提  "新規ユーザ登録"ページを表示している
  もし  "Email"に"nis@gmail.com"と入力する
  かつ  "Password"に"123456"と入力する
  かつ  "Password confirmation"に"123456"と入力する
  かつ  "Sign up"ボタンをクリックする

  ならば "個人ホーム一覧"ページを表示している

日本語化していません。明日以降ですな。だからcucumber本でいえば第2章状態。(進歩しない)
「個人ホーム一覧」は手を抜いてscaffoldで作ったモデル一式のindexページなので、ここを明日以降、ユーザの「個人設定ページ」にしていきたい。本日はdeviseをインストールして、ブラウザ上での動作を確認しながらfeatureを書いただけでした。

それでも「deviseのhelperってどんなんだっけ」とか「viewのカスタマイズは」とか、あれこれ調べたり考えたりするのはやはり楽しいですね。本を見ながらでなく自分で考えるのはコーフンします。

というわけで明日の課題は「日本語化」と「サインアップ後のページ遷移」です。なんちゃって明日は全然ちがうことをするかもしれないけど。

2010年12月24日金曜日

twitter feed 設定を変更してみる

twitterへの出力をタイトルのみにしてみる。しかしせっかくblog使っても120文字以内に収まるような内容なら、はじめからtwitterにつぶやいたほうが早いじゃん。

なんかこう、根本的に「blogを書く姿勢」つーのを考え直すべきかも。(^^;)なんちゃって。どーでもいいんですが、こんな田舎のblogは。

なるほど

twitter feedの出力を確認。なるほどねー。こういうふうに表示されるのか。うーむ、あんまり長く使わないかも(^^;)。

twitter feed 今さら

今さら感200%ですがtwitter feedというサービスを試してみる。

あんまりtwitterにつぶやかなくなっているので、blog書いた時くらい何かごそごそ言うようにしてみよう、と。

twitterはもっぱら、夜フクロウで検索タブをいくつか作ってそれをチェックする感じで使うようになってます。TLはあんまり追わなくなりました。だって時間がなくなるから。

cucumber本 やり直し(^^;)

第4章でどうもうまくいかなくなったので、もう1回やり直してみる。

新しくプロジェクトを作るところから。ど素人なので、ちょっとpluginを試しただけのプロジェクトが山のようにできてしまいます。いつになったら「railsの勉強」をまた始められるのか・・・。

cucumberのinstallからしてすでに忘れている。rails3では
rails g cucumber:install ja --capybara --rspec
でした。

とりあえず第2章、「message」モデル関連はmessage.featureが緑色になりました。よかったよかった。cucumber本との相違は、routesのエラーが出るべきところで、viewがないから「Text」が見つからない、と言われるくらいでしょうか。おそらくrails3のroutesの挙動の違いなんでしょう。

本日はここまで。あとはemacsの勉強でもしますかね。

2010年12月23日木曜日

freindfeed

freindfeedの設定を変更したのでtest。

MacUIM

思うところあってMacUIMをインストール。.dmgが90M超えていてびっくり。

uim経由で使えるimがひと通り入っている。というわけでデフォルトはprime-uimにしてみる。(^^;)

ハードウエアの進歩でprimeの実行速度は全く気になりません。予測変換もなかなか。
でもやっぱりgoogle日本語入力に慣れているので、そっちをつかってしまうなあ。

ちなみにgeditはうんともすんともいいませんね、uimでも。右クリックして出てくるimputmethod選択メニューに、日本語関係が表示されてきません。ビルドの問題かな。

自分でビルドは・・・ちょっとしんどいかも。

cucumber本第4章続ける

emacsのrinari-modeにもけっこう慣れてきたので、cucumber本の勉強を続ける。新規ユーザとしてloginする、というところ。

うーむ、なぜかsetup_and_login.featureがなかなか通らない。なぜだろう。

おもしろいもので、うまくいかないとなんとか解決しようといろいろ調べてあっという間に時間がすぎる。

忘年会

昨夜は忘年会。11時過ぎに帰宅。2次会まで幹事なのでつきあったが、カラオケボックスに1時間もいたら頭が痛くなってきたので帰らせてもらった。この辺は50近い年齢だとわがままがききますな。

本日はなんだか気分がすぐれず、夕方までだらだらして過ごす。疲れですよ疲れ。

夕方からやっと気力が湧いて、emacsをちょぼちょぼいじったりした。愛犬と遊んだり散歩したりが一番気が安らぎますな。

2010年12月21日火曜日

ELPA

Emacs Lisp Package Archive、の略。本家はこっち。ver24からはemacs本体に標準で入っている、みたい。

便利な「パッケージ管理システム」と理解しています。ELPA経由でインストールした.elのパッケージは、特に設定ファイルに何も記述せずにすぐ使い始めることができる。

これがどんな仕組みで、なぜこのように動くのか、誰か日本語で説明してくれ、って感じ。(他力本願)プロの人達ならソースを読んで理解するんでしょうねー。

starter-kitとの関係とか、ほんとにもう全然わかんない。わかんないけど「素人でも便利に使える」ことは確かです。それでいいんでしょうね。贅沢言っても仕方ないや。

rvm.el

cucumber.elっていうかfeature-mode.elの続き。
C-c , v
でfeatureファイルを実行(rake cucumber)してくれるであろうことは、feature-mode.elのソースを眺めてみても予測できます。Lispは読めないけど、コメントを読むとそのようなことが書いてあるみたい。

いよいよ?がつのり、エラーメッセージが
Equal: Symbol's function definition is void: rspec-parent-directory
ってことなのでrspec-modeも使ってみる。といっても自動生成されている.specファイルを表示して
M-x rinari-test
と打つだけですが。

そうするとエラーメッセージが「bundlerがない!」みたいな感じで、こりゃもしかするとrvmのrubyを拾ってもらっていないかも・・。ということで「rvm emacs」でググったらrvm.elという「rvmとemacsを統一」みたいな.elがあり、しかもELPAからインストールできて、さらにすでにインストールしてあった、と(^^;)

ただ、
M-x rvm-use-default
と打ち込まないといけない、とわかったのが大収穫。このこのコマンドを実行したら、
C-c , v
で無事、emacs上で
rake cucumber
ができました。ばんざい。

featureファイルもhamlもerbも、さらに日本語も、スムーズに使えるのって便利ですねえ。改めてemacs尊敬。もっと勉強しよう。

ただ、現在のところ
  • Ruby
  • rails
  • cucumber
  • emacs
を同時進行で勉強していることになり、ちょっと苦しい。ほぼ限界だな。本当はrubyでなにかひとつ、簡単なツールを書いてみたい、とも思ってるんですが。

2010年12月20日月曜日

OSXでGedit(未完)

emacsはELPAからパッケージを導入しています。で、starterkitってパッケージも入っていまして、これのおかげでbufferの操作とかかなり素人でも楽にできるようになってます。うまく書けないけど。

ただGUIなeditorでできればオープンソースなアプリも試したい。OSXだと「あまり」数がないですね。(あくまでもLinuxに比べれば、の話です。)

で、けっこう使い慣れているGeditを導入してみたんですが、これがシステムフォントの設定がおかしいらしくてちょっと残念な感じ。日本語入力できないんですが、これってもしかしたらuimを入れる?

このへんも今後の課題。

emacsのcucumber.elをいじる

.featureを編集するのにemacsを使うとして、あまりに私の現状ではシンタックスハイライトでさえ貧弱なのをなんとかしようと考える。

日本語でのシンタックスハイライトは
(setq feature-default-i18n-file "/path/to/gherkin/gem/i18n.yml")
を.emacs(に相当するファイル・・・私の場合は~/.emacs.d/ユーザ名.el、でございますな。どーしてこうなっているのかは記憶が定かではない(^^;))に記述すればいいだけ、のはずなんですが。

ちなみにi18.ymlの日本語関連部分は以下のようになっている。
"ja":
  name: Japanese
  native: 日本語
  feature: フィーチャ|機能
  background: 背景
  scenario: シナリオ
  scenario_outline: シナリオアウトライン|シナリオテンプレート|テンプレ|シナリオテンプレ
  examples: 例|サンプル
  given: "*|前提<"
  when: "*|もし<"
  then: "*|ならば<"
  and: "*|かつ<"
  but: "*|しかし<|但し<|ただし<"
うーん、他の言語の部分を見ると、「<」はついてないぞ。というわけで単語のあとの「<」を削除したら、なんとなく納得のいく(^^;)シンタックスハイライトができた。これでいいのかなあ?


ま、結果オーライでいくしかない。こんなんで今日の自由時間はおしまい。(^^;)
おっとおしまいじゃなかった。cucumber.elのreadmeを読めば、
C-c , v
とか
C-c , f
と入力するとシナリオやフィーチャーを検証してくれる(つまりrake cucumberしてくれる?)らしいんですが、これが今だにうまくいかない。もう少し調査が必要。

というわけで、なかなかcucumberそのものの勉強は進みません。rspecになんかいつ行き着くんだろう。

2010年12月19日日曜日

redcarが落ちるタイミング

all save pluginを入れてからredcarが頻繁に落ちるようになりました。saveできないようなページ(たとえばインストールされているBundle一覧とか)が一番手前に表示されていて、フォーカスを失うとほぼ落ちます。フォーカスを失ったタイミングで全部のtabをsaveする、というpliginなので、こいつがきっと犯人。

その他、cucumberのfeatureを編集していて気づいたのですが、1行に1byte文字と2byte文字が混在しているとカーソルの動き、デリートの動作が変ですね。
"Save"ボタンを押す
といった行で、SaveのSをsに変更しようとすると、ダブルクォーテーションまで一緒に削除されます。2byte分デリーとされてしまう、ということらしい。

この辺はまだまだ進行中のプロジェクトなので仕方ありません。使うほうが注意していかなければ。でも日本語がまじるファイルの時はEmacs使うという手もあるな。

PDFで読む

OSX上で、PDFを表示して、かつマウスオーバー辞書が効くアプリってないのかなあ。翻訳までしてくれなくてもいいから、全然見たこともない単語をしゃらっと辞書引きしてくれるかわいいツールがないかなあ。acrobatのpluginとかでないのかな。

しかないのでしばらくはコピー&ペーストで辞書.appを使いますか。

Ruby Best Practices

そんなんでネットの中をあちこちさまよってRspecの情報をたどる。なぜか

Rubyベストプラクティス -プロフェッショナルによるコードとテクニック
Gregory Brown
オライリージャパン
売り上げランキング: 78417

この本の原著がPDFで公開されているのを知る。
さっそく落として、読んでみてます。この本で調子よければRspec本も買おうかな、と。

The RSpec Book どうする

The RSpec BookをThe Pragmatic Bookshelfのカートの中にずっと入れていて、いつPaypalで支払おうかと考え中。迷う理由はやはり英語。サンプルページを読んでみた限りでは「歯がたたない」ことはなさそうだけど、やはりさくさく理解するというわけにはいかない。

分かりやすい日本語で書かれたCucumber本でさえ、手を動かしながら読むのには難儀しているというのに、これが英語となると400ページ超の書籍を読みこなしていけるかすごく疑問。

無駄なお金はびた一文使いたかないぜ、という体質なので、同じお金で例えば

メタプログラミングRuby
Paolo Perrotta
アスキー・メディアワークス
売り上げランキング: 97358

この本を買ったほうがよほど身のため、という気もする。両方買っちゃえばいいんですけどね。
PDFの本を買ったらさらに

Apple iPad Wi-Fiモデル 32GB MB293J/A
Apple Computer
売り上げランキング: 12121

こいつまで買ってしまいそうで怖い。(^^;)

Cucumber本のmessage.featureとrails3

結局Cucumber本の3章以降のmessage.featureは以下のように書きなおしたら無事に終了する。
# -*- encoding: utf-8 -*-
# language: ja

フィーチャ: 短いメッセージを投稿する
  ユーザとして、
  短いメッセージを投稿したい。
  なぜなら、ちょっとした考えや日々の細かいことを気軽に情報発信したいからだ。

  シナリオ: メッセージを投稿すると、一覧に表示される
    前提    言語は"en-US"
    前提    "新規メッセージ"ページを表示している
    もし    "message_text"に"こんにちはCucumber"と入力する
    かつ    "message_submit"ボタンをクリックする
    ならば  "こんにちはCucumber"と表示されていること
  
  シナリオ:日本語のブラウザ設定でアクセスすると、日本語のラベルで投稿できる
    前提    "新規メッセージ"ページを表示している
    もし    "テキスト"に"こんにちはCucumber"と入力する
    かつ    "保存"ボタンをクリックする
    ならば   "こんにちはCucumber"と表示されていること
環境はruby-1.9.2、rails-3.0.3。書籍では1.8.7と2.3.10を使っているので「書いてある通りにならない!」などと文句は言えない。あえてチャレンジしているのでこういう苦労もいいわけだけど、果たしてこれで正しいのかどうか、自分で判断できないのが悲しい。
テキストフィールドやsubmiボタンの名前をブラウザのソースでみつけたid名にしたみたわけなんだけど。

でもここまでで、Cucumberの便利さというかテスト駆動の便利さが分かってきた。すぐに間違いを発見できるんだからすごいなあ。もっと勉強しよう。

2010年12月18日土曜日

土曜

考えてみると土曜日ってあんまり「やりたいこと」に集中していない気がする。疲労回復モード、ということか。今日は全然エディタを立ち上げていないもんな。ターミナルも起動していない。

iMac上ではせいぜいブラウザと夜フクロウを眺めていたくらいかなー。
ばりばりプログラミングしたい、とは思うんだけど気力がわかず。1日寝ていたみたいなもんですな。

年賀状

この時期になって年賀状作り。
だいたい私のお仲間は、2学期が終了してから作成→ひとこと→投函、という人が多くて、最近は元旦に届かない賀状が増えてます。私のもきっと3日あたりに届いてるんだろうなあ。

ま、自分の分が遅くなる理由は親の分も請け負っているからで、両方の実家の年賀状を私が制作(^^;)。本日はかあちゃんの実家の分終了。デザインさえ決まれば早いわけですが、おかあちゃんがなかなか決めないので結局夜になってしまった。

賀状作成は8年も前の「筆王」を使ってます。iMacのBootcampのWin7にはインストールしてないので本日入れました。全く問題なくインストールできて、かつ使えてます。

その一方、おかあちゃんがコンビニで買ってきた賀状用Mookで「筆まめver20ベーシック版」がインストールできるということなのでこっちも試してみる。インストールを選択するとネット越しにバイナリを落とすという仕様で、初めての人が簡単にできるのか疑問(^^;)。それはともかく、最低機能版と思われる「筆まめ」、「筆王」の住所録も変換できたりするからなかなかの優れものです。

ただ、8年前の筆王が非常にさくさく動くのに対し、筆まめは遅い。住所録編集とか文面編集とか印刷とか、作業のシーンを替える時に異常に時間がかかる。「ベーシック版」だから我慢しますが、お金を出して買ったアプリなら怒髪天状態になる感じです。

開発者の方だって当然この「不審な挙動」はわかってるはずだと思うんですが・・・直そうと思わなかったのか。

ま、市販の筆まめが同じ挙動をしていないことを祈るのみ。

2010年12月17日金曜日

cucumber本第4章

週末のお疲れモードのためけっこう遅くなってからcucumber本を開く。

第4章のuser認証ですな。

しかしいきなり、
rails g i18n_scaffold
でつまずく。Can not find generaterって言われてしまって途方にくれてます。ググってみたけれど今イチよくわからず。やはりrails3での勉強はつらいのか。

この章は読むだけにして、i18nが関係しない章に飛ぶべきかなあ。それもちょっと悔しい。

2010年12月16日木曜日

今日は

疲れたのでこの後は読書。

といってもこれ。

プログラミング言語 Ruby
まつもと ゆきひろ David Flanagan
オライリージャパン
売り上げランキング: 145363

まだまだ全然Rubyについてわかってないぞ。勉強しがいがあるというものだ。

忙中閑

さすがに仕事が忙しい。本日も家で仕事。
この時期は勤務時間内にすべての仕事を終わらせるのはとても無理ですな。

やっぱOSX版のOffice買おうかな(弱気)

2010年12月15日水曜日

-7℃

本日の最低気温は何度だったのだろう。とりあえず、出勤途中にいつもチェックする街角の温度計では、朝7時すぎは-7℃だった。

で、帰って来る時も-7℃。ひょっとして一日中-7℃だったのか?

さすがに夕方の散歩は寒かった。愛犬は元気だったけど。朝ならそれほど寒く感じないんですけどね。

雪がうっすら降り続く中、雪景色の散歩道を愛犬と歩く。ついこの前まで全く雪がなかったけれど、一度降り始めればあっという間に真冬です。降れば振ったで体も心も「冬モード」になるのは・・・さすがに半生記近く北海道に住んでるからだろうなあ。

cucumber本第3章

ふー、ふー、やっと第3章終了。headerなんてしらないよ、というエラーが出て???の嵐。

作者さんのRials3対応ソースを落として疑問解決。page.driver.headerに変わっていたみたい。

こういうことがあると、果たして自分でfeatureファイル書いていけるのかな、と不安になるけれど、絶対できるようになる、と思い込まないとだめですな。パラパラっと4章も読んでみて、今日は終了です。おやぢの勉強の速度は遅いぜ。

今後、きっと難儀すると思えるのは性器表現、あわわちがったちがった正規表現でしょうねえ。これもPC98上でTurboC++勉強した昔から「存在は知っているけれど敬して遠ざけていた」カテゴリだからなあ。

・・・絶対わかるようになる

お粗末でした。

2010年12月14日火曜日

redcarで.featureファイル

やはり手馴れてきたredcarを使う。ファイルの切替をタブでできる安心感ってありますねー、GUI野郎には。C-x C-bでバッファを表示して、というのが若干まどろっこしい。マウスにすぐ手がのびるしな。

それはともかく、.featureファイルの編集をredcarでやってみたところ、日本語入力してもシンタックスハイライトすることが判明。ダブルクォーテーションで囲まれた文字列が白いままだったりするので、完全ではありませんが。

50でも

まだ49歳です。でも、人生半分以上過ぎてるな、という実感はひしひし。

たとえば、給食の後片付けが終わったあたりで、足腰が立たないくらい疲れを感じる毎日。
人の名前を簡単に忘れる。
言葉がとっさに出ないことがある。

・・・すべて老化現象ですな。

今日の出勤中、ラジオのインタビューでノーベル化学賞を受賞した根岸氏が「まだまだ新しい発見をしたい、できると思っている」と言っているのを聞く。70歳超えてますよね根岸博士。

ふむ、それに比べればまだ50前。加齢を嘆いてもいられません。rubyについて、railsについて、全部知りたい勉強したい、という気持ちがふつふつを湧いてくる。明日もがんばろうっと。

i18n_generators

Cucumber本第3章。i18n_generatorsを導入。Gemfileに記述しました。

なるほど、便利な仕組みですねー。もうちょっとmodelとかveiwとか書いてから導入したら、もっと翻訳してもらえるのかな。

少しずつしか進みませんが、Cucumber本おもしろいです。今度はRspecだなあ。英語の本、ちゃんとよめるかしらん。

2010年12月13日月曜日

不思議

TextMateにcucumberのBundleを入れる。要は
git clone git://github.com/aslakhellesoy/cucumber-tmbundle.git Cucumber.tmbundle
これだけですね。そうすると
こんな感じの表示になります。ちなみにTextMate、日本語用の設定は一切していないのでfontの表示が変ですねー。

このBundleをredcarにコピーすればredcarでも同じことができるはず、と思ってコピーしようとしたら、「もう同じ名前のディレクトリがあるよ」と言われてしまった。なるほど、たしかに同じ名前のBundleがある。古い、というかデフォルトで入っていたBundleなのかと思ったら、なぜか作成日付が本日になっている。TextMateに入れたら、自動的にredcarにもコピーされた、ということか?いつからそんなことになってるんだろう。

ま、とりあえずredcarでもこうなった。


ふむ、redcar、日本語とロシア語には弱いみたいなんだけど、そこが克服されたらすごくいいエディタになるかも。

hamlとcucumber

疑問のその2はhaml。Gemfileに

gem 'sqlite3-ruby', :require => 'sqlite3'
gem 'haml'
gem 'haml-rails'
gem 'hpricot'
gem 'ruby_parser'
gem 'mongrel', '1.2.0.pre2'
gem 'capybara'
gem 'database_cleaner'
gem 'cucumber-rails'
gem 'cucumber'
gem 'rspec-rails'
gem 'spork'
gem 'launchy' 
この順番だとfeatureが通らない。エラーは(Capybara::ElementNotFound)、でテキストフィールドがない、と言われた気がする。

しかし本日別のプロジェクトを作ってGemfileを
gem 'sqlite3-ruby', :require => 'sqlite3'
gem 'mongrel', '1.2.0.pre2'
gem 'capybara'
gem 'database_cleaner'
gem 'cucumber-rails'
gem 'cucumber'
gem 'rspec-rails'
gem 'spork'
gem 'launchy' 
gem 'haml'
gem 'haml-rails'
この順番にしたら、無事通った。うーん、でもやっぱりなにかのtypoの可能性も高いなあ。
もう少しいじってみないとわからないところです。こんなことばかりで、本日はcucumber本、読んだだけで手は動かしていないのが残念。

cucumber.el

emacsにcucmber.elを入れ直す。readameよく読め、という話だった。(^^;)

ただ、featureファイルの表示がちょっとさびしい。


こんな風にしかならないのはやっぱり設定がだめ?

2010年12月12日日曜日

cucumber試す

というわけでcucumberをゆっくり試している。

hamlの時はどうするんだ?という疑問はきっといつか解決されるにちがいない。(^^;)

emacsにcucumber-modeというかfeature-modeを入れようとしてまだうまくいかない。この手の設定がblogのネタになってしまうところにemacsの面倒くささというか素人を寄せつけない部分があるな。

しかしredcarだと日本語入力するとハイライトが消えるだけでなく、カーソルの動きがちょっと変だ、とか、ダブルクォーテーションの削除の動作が変、とか細かいけれど我慢しがたい不具合があるし。ここはがんばってemacsを使い続けるしかないか。

購入 「はじめる! Cucumber」

はじめる! Cucumberを本 日購入してみた。

考えていたとおり、iMacだと大変読みやすい。(2ページ見開きにして余裕で表 示できる)

字を大きくして読めるから楽だな。ただパソコンに向かってなくては読めない のが残念。iPad買うか?(^^;)

4回目(^^;)

e-blog なるほど、今度はうまくLinkをつけられたでしょう。

strongはどうーよ。

3回目のテスト

e-blog

test2

e-blog Linkをつけることができるかな。

test

emacs用blogger投稿ツール、e-blogのテストです。 うまく投稿できるかしらん。

2010年12月11日土曜日

図書館で借りる

実は本日図書館でこの本を借りた。

vi入門―UNIX Text Processing (NUTSHELL HANDBOOKS)
リンダ ラム
アスキー
売り上げランキング: 344542
古いほうです。新しいのはこっちだけど、それでも2002年出版ですか。

入門vi 第6版
入門vi 第6版
posted with amazlet at 10.12.11
リンダ ラム アーノルド ロビンス
オライリー・ジャパン
売り上げランキング: 23134

viは間違って起動したら
ZZ
と打って逃げる、を繰り返していたんですが、少しだけ興味があったので借りて読んでます。

macvimもインストールしてみたけど、今のところウィンドウの初期の大きささえカスタマイズできそうにもないので、使えるかどうかは疑問。

homebrew

久しぶりにhomebrewに触ったので、気になっていた「どれくらいのパッケージがインストール可能か」を調べてみた。
brew info --all
をすればよかったのね。知らなかった。知ることができてうれしい。

で、出力されたリストをテキストに保存してemacsで開いて、「not installed」という単語の数をカウントすればだいたいの利用可能パッケージがわかるだろう(installedなパッケージが少数なので)と思ったんですが、数え方がわからない。(^^;)

うーん、すごくたくさん、というブッシュマン的な解答で現在は満足しておこう。

ざーっと見たところ、なぜかoでリストが切れている。何かエラーがあったらしい。この辺りは明日以降。

emacs 24.0.50.2

以前、野良ビルドしたemacsで勉強再開。
Emacs23 (Cocoa Emacs) 入門から中毒までさんを一応再チェック。rinariはelpa経由で入れたなとか思い出してELPAのページへ。

package.el (from ELPA) will be added to vanilla GnuEmacs, version 24. As of 2010-06-18, package.el has been merged with the development version of Emacs, and an ELPA repository has been set up at http://elpa.gnu.org/.

と書いてあって目を剥く。よし、ってんでもう1回ソース落として野良ビルドをすることに。(・・・まったく何をやってんだか、と自分でも思いますね。)

わ、svnじゃなくbazaarでcloneかい、とびっくりしたわりに、
brew install bazaar
と打ったらもうインストール済みだった。orz、前に同じことやってるんだ。これだから中年はいかん、忘れっぽくていかん、と自分で怒りながら
bzr checkout -v --lightweight http://bzr.savannah.gnu.org/r/emacs/trunk emacs

それからいつもの

configure --with-ns --without-x
make bootstrap
make install
で無事できましたemacs。一応.emacs.dをリネームして退避させてから起動してみる。あらま、なにもしなくても
M-x package-list-packages
できますね。本当に統合されているんだELPA。
しかしemacsのビルド、iMacなら速いなあ。ソース落とす時間のほうが長いや。zaurusでなら日中いっぱいかかってたなあ。(^^;)

2010年12月10日金曜日

.haml .scss .erbが混在するプロジェクトに一番いいのは?

.hamlがちゃんとシンタックスハイライトされて、日本語も扱えて、インデントとかも快適に編集できるエディタは、結局現在のところredcar、という結論になりました。(^^;)

いや・・・本当はEmacsですね。GUIなエディタに慣れた身にはつらいところがたくさんあるわけですが、同じソースを編集してみればEmacsが一番理にかなった動きをするようです。

うーん、やっぱ勉強するか。無理にでも使っていくうちに慣れる、と信じて。

aptana studio 3 beta 日本語化

aptanaの日本語化そのものはあちこちに書かれているけど、基本的にeclipseと同じだからこちらの情報で足りるでしょう。

特にOSX用の情報にあるとおり、
-javaagent:/usr/share/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
だけだと
Error opening zip file or JAR manifest missing : plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
と言われてしまうので、

/Applications/Aptana Studio 3/AptanaStudio3.app/Contents/MacOS/AptanaStudio3.ini

に以下のように記述したら無事日本語化されて起動する。
-javaagent:../../../plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

しかし・・・起動してエディタのタブを何回か切り替えると必ずaptanaが死亡する。なぜだ・・・。

まあUIの日本語化はそれほど必要ではないのであきらめはつくけど、その後触ったところではなぜかhamlのシンタックスハイライトが効かない。変だなあ。

2010年12月9日木曜日

Excel

来年度以降、学習指導要領が改訂されるため学校現場の書類仕事のあらゆる場面に影響が出る。

今まで手書きでやっていた仕事の多くは、最近はExcelのドキュメント化されていることが多い。(これは市町村、学校によって差がありますね)例えばExcelで通知表を作る場合、各学年向けの原版を1つ作っておけば、あとは各担任がデータを入力するだけでいい、という状態になっています。すべてを手書きしていた10年くらい前までに比べれば格段の進歩であります。

教員の仕事は、ほとんどが子どもと直接相対することで占められているので、事務的な仕事にかかる時間は短ければ短いほどいい。もっともっとExcel化して事務的に「楽ができる」状態になりたいものです。

ただ、原版を作る人がかならずいるわけで、これは大変ですね。そして私の仕事はこの原版づくり。(^^;)

この冬休みは「各教科年間指導計画」、「指導要録」、「通知表」の改訂の作業があるので、むちゃ忙しいことになりそう。iMacで仕事するのが一番効率的なので、やっぱOSX版Office買ったほうがいいかなあ。(弱気)

aptana

aptana studio 3 betaをインストールしてみた。

Eclipsベース、ということで起動が遅いのかなと思ったらそうでもない。(さすがに初回起動はけっこうかかるけど、iMacなら許容範囲でしょう)

NetBeansがあくまでもIDEなのに対し(projectベース、ということで)、aptanaはけっこう単体fileのエディタとして使うという用途にも向くような。

多少使ってみた範囲では、もう少し使ってみようかな、と思わせますね。

こんなんで本日の自由時間は終了。1日が短いな。

2010年12月8日水曜日

TextMate

nanocを触るのにTextmateもいじる。・・本当にデフォルトで日本語使えないんだ。(^^;)

で、ここから少しTextMateと日本語について調べる。うーむ、あまりこのエディタで日本語を使うとも思えないけど、ここまで不自由なのはどうよ?ですね。

redcarはJrubyなんで素直に日本語を入力できるんですが、入力した途端にコードのハイライトがすべて無効になってしまうbugは相変わらず。これもけっこうつらいなあ。aptanaも試してみようかな。

しかし

学校は保守的です。いやいや右翼っていうことではなく、「前例踏襲」が基本風土です。

たとえば私が学校のHPをホームページビルダー以外のアプリで作ったと知れたら、「誰が引き継ぐんだ」という話がきっと出る。あんまり跳ね返ったことをしたら、次の人が困るだろ、という。つまり「お前のベストは尽くさないでいい」という発想ですね。みんなと同じことをやれ、です。

なかなか、お前の好きなようにやれ、そのかわりベストを尽くせ、という環境はないですね。だから日本の教育はよくならないのかしらん。いーや、一番悪いのは**省だよな。ひとつも自分のやってきたことの責任取らないんだから。

幸い、パソコンに関してはあまり詳しくない人が多いので、ベストを尽くす努力はできるな。(^^;)

nanoc チュートリアルをやってみる

チュートリアルそのものはとても簡単。
gem install nanoc
でインストール終了。それから適当に
nanoc create_site nanoc_test
とかでテスト用のサイトを作る。そして
nanoc compile
とすると静的なサイトができあがる、と。

adsfを入れてあればここで
nanoc view
とするとrails sと同じ状態になりますね。localhost:3000をブラウザで開くとこうなる。

このページを表示しているindex.htmlはこんな感じ。


  
    
    A Brand New nanoc Site - Home
    
    
  
  
    

A Brand New nanoc Site

You’ve just created a new nanoc site. The page you are looking at right now is the home page for your site. To get started, consider replacing this default homepage with your own customized homepage. Some pointers on how to do so:

  • Change this page’s content by editing the “index.html” file in the “content” directory. This is the actual page content, and therefore doesn’t include the header, sidebar or style information (those are part of the layout).

  • Change the layout, which is the “default.html” file in the “layouts” directory, and create something unique (and hopefully less bland).

If you need any help with customizing your nanoc web site, be sure to check out the documentation (see sidebar), and be sure to subscribe to the discussion group (also see sidebar). Enjoy!


nanoc compileされているのはcontent/inde.htmlで、こっちは
--- 
title: Home
---

A Brand New nanoc Site

You’ve just created a new nanoc site. The page you are looking at right now is the home page for your site. To get started, consider replacing this default homepage with your own customized homepage. Some pointers on how to do so:

  • Change this page’s content by editing the “index.html” file in the “content” directory. This is the actual page content, and therefore doesn’t include the header, sidebar or style information (those are part of the layout).

  • Change the layout, which is the “default.html” file in the “layouts” directory, and create something unique (and hopefully less bland).

If you need any help with customizing your nanoc web site, be sure to check out the documentation (see sidebar), and be sure to subscribe to the discussion group (also see sidebar). Enjoy!

あれ?サイドバーはどこ?とチュートリアルを読み進めたら、layout/default.htmlちゅーファイルがあって、


  
    
    A Brand New nanoc Site - <%= @item[:title] %>
    
    
  
  
    
<%= yield %>
oh!yeah! erbだ。<%= yield %>があるじゃん。

ということで、サーバ上でrailsがダイナミックにやっていることを、ローカルでやっちゃってからサーバにupする、ということらしい。おもしろいアプローチだなあ。職場のHPにいいなあ。もう少し勉強しよう。

寄り道だらけ

昨日知ったnanocについて勉強してみる。

まずはインストール、それからチュートリアル、と読み進むうちに、「へ?kramdown?」とか「は?adsf?」とかいちいち知らないツールが出てくるとググってしまう。ちなみにadsfをググルとこんな感じになる。


世の中広いですな。(^^;)「全日本競技ダンス連盟」ですか。all dance ・・・とか考えていたら正式名称は「Asian DanceSport Federation」らしい。

てな感じでぜんぜん前に進みません。素人はこれだからいけませんなー。ま、いいんだけど。
この他、nanocの本家サイトの

「Requirements」に使われているfontがかっこいいなあ、なんていうfontかなあ、とサイトのソースを眺めたらWebFontらしいってんでそれを調べたりして。全然チュートリアルを実際にやってみるまで行き着かない。

2010年12月7日火曜日

nanoc

本日、偶然にnanocを知る。ruby界隈をいっそググってあちこち覗いて歩いているのだが、まだまだ奥が深い。私なんか入門者だから、知らないことばかり。

ローカルでいろいろとDSLでつくりこんで、それをHTMLに変換することでどんなサーバ上でも動くCMS、ということらしい。

おおっ、となったのは、職場のホームページ作るのにいいかな、と思ったから。CGIも動かないサーバにupしないといけないので、もしかしたら使えるのかも。この週末あたりで試せたらいいなあ。

Steam

たまにはゲームをしたくなったりもする。でもOSX上のゲームは全然わからない。どこにいって探せばいいんだろう、とりあえずフリーのゲームは。

SteamがOSXに対応して一時期話題になったけれど、現在のところ遊べるゲームはそんなにない、というかあまり買う気が起こらないものが多い。Win上で購入したゲームのうち、HL2系以外は私の場合ほぼ全滅状態。Torchlightがインストールできるか。

よーし、ちょいとゲームの森を探索してみますか、どーせ一杯飲んでるし。

Mac用Officeを買わないかわりに

夜9時まではWin7。それからOSXに戻る。

Win7、というよりExcelですかね。Excelしか使わないから。こういう使い方っておもしろくねー。仕事だから仕方ないけど。ただ、おかげさんでExcel2007のUIにはかなり慣れた。悪評高いリボンインターフェースもデータ入力ばかりしている分には関係ないし。

OSX上でOffice使えたらリブートする必要がないから楽だよなー、とは思うけれど、みすみす17,000円超をまたまたMSに支払うのは噴飯モノである、と思い直した。(けど、安くなりましたなあ、Office)

それだけのお金があるなら、もっと楽しいことにつながらる本やソフトが買えるぞ、ということで。

以下自分用WishList。

2010年12月6日月曜日

NetNewsWire

GoogleReaderはほとんどfirefoxから読んでいるけれど、ときたま「このサイトの直近の過去の記事が読みたい。」と思うことがある。

と、ここまで書いて、直近の過去の記事ならブラウザ上でも読める気がして調べてみたけど、すでにお酒を飲んでいるので発見出来ない感じ。(^^;)やっぱりできなかったかな?

とりあえずそういう時に使う、という使い方でNetNewsWireを便利に使っている。

ちょっと話題になってるOSX上のReader.appより、私は好きですねー。まだ研究中。マウスゼスチャが効けば最高なんだけど。

The Rspec Book

The Pragmatic Bookshelf | The RSpec Book

TDDとかBDDとか、どーせ素人だから関係ないだろ、と開きたくなる気持ちが半分、ちゃんと勉強してみたい、という気持ちが半分。testなんて書いたことないからなあ。それをいうならVCSだってcloneするばっかりで(mtnとか、使いましたなあzaurusで)pushするとは夢にも思わなんだわけで、なんでもやってみなければわからない。

で、手元に多少自由に使えるお金があるもんで、appleTV買おうかな、とかRspecBookも買おうかなとか考えてます。

定価24ドル。googleさまに聞いたところ、2010年12月5日現在、

なんだそうで、2000円切れるらしい。(クレジットカードのレートはわかんないけど)この程度なら買っておいてもいいか。試しに立ち読みできるファイルを落としてみたら、けっこうスカスカで読みやすいかも。あとはPDFでも使えるマウスオーバー辞書があれば最高なんだが。(ざっと探したけど見つからない)

2010年12月5日日曜日

Matz?

この写真は・・・。

来年は、札幌Ruby会議に出かけてみたいぞ。

Ruby界隈

amazonに中を「おすすめ」とかにふらふらつられてあちこちさまよう。

で、この本にたどり着く。
Rubyベストプラクティス -プロフェッショナルによるコードとテクニック
Gregory Brown
オライリージャパン
売り上げランキング: 149978

次に買う本はこれかなー、どれどれカスタマーレビューをよもう、とスクロールしたら、いきなりこの人のレビューだった。

Ruby界隈で仕事するのもなかなか厳しいですのお。(^^;)

Tower

で、帰ってきてネットをチェックしたらこの記事に遭遇してしまった。

バージョン管理システム『Git』をGUIにするアプリ『Tower』 : ライフハッカー[日本版]

あらまー、なんてタイミング。Win上では「すぐ使える」ものとしてはGUI付きのgitしかなかったのでそんなに違和感はないわけで、素人だからこのソフトを使うのがいいのではなかろうか。

というわけでインストール・・・ってOSXの場合、zip解凍したら.appがもょんと出てきて、それをどっかにおけ、というが多いですね。

herokuにおいていあるLokkaサイトのソースをさっそくローカルリポジトリとして登録してみる。

  

実は昨日pushしたthemeの一部分がまともに動かないことが判明していて(DISQUSのpluginをいたずらした時にちょっとだけthemeをいじった)、ついでにそれを修正してcommit、pushしてみる。

うーん、GUIのボタン?を押すだけでいいんだからたしかに手軽です。よし、しばらくこいつを使わせてもらおう。

ちなみに下は修正履歴の表示画面。おもしろー。

買ってみた

大型書店に行きたい、と娘が言い出したので、大喜びで郊外大型書店へ。パソコン関連書籍が充実している本屋はステキだ。

で、買ったのがこれ。

実用Git
実用Git
posted with amazlet at 10.12.05
Jon Loeliger
オライリージャパン
売り上げランキング: 107818

ネットの中をあちこち調べたらたいていのことはわかるんだろうし、本家のドキュメント読め、という話なんだろうけど、手元に1冊、ちゃんとした書籍が欲しかったので買った。Github入門、なんて章もあってうれしい。

Railsを勉強し始めたとき、結局目の前の雲がパーっと吹き飛んでものすごくきれいな青空が見えた気分になったのは、

RailsによるアジャイルWebアプリケーション開発
Sam Ruby David Heinemeier Hansson Dave Thomas
オーム社
売り上げランキング: 63144

この本を読んだ時でした。だからやっぱり書籍は必要。少なくても英語苦手なおやぢにとっては。

なんと

ぐーぐる にほんご うんたらと正確に書くと、twitterで勝手につぶやかれるとはしらなんだ。

他にもそういう事がありそう。Evernoteとか。(^^;)

2010年12月4日土曜日

午前中

午前中から夕方にかけてWin7で仕事。自分に課したノルマを達成するまでは、osxに戻らないぞ、と誓う。

google日本語入力だけ導入してみた。うむうむ、やっぱりこれで仕事がはかどりだした。

Win7がひどく使いづらいわけではないけれど・・・なんと言ったらいいのでしょうかねえ。osxって魅力的ですねえ。

Syntax Highlighter実地で試す

仕事が一段落したので、夜は遊ぶ。

とりあえず気になっていたsyntaxhighlighterのpluginの実地検査。

heroku上のLokkaサイトに、実際に
git push heroku mastaer
してみる、と。

ところがgitに関する基本的な知識がないものだから、そこから勉強となりました。(^^;)

安全のためheroku上のサイトを git cloneして、そこからaddしてcommitしてpushする、か。

何日か何週間かあとの自分のために、ちゃんと書いておこうっと。(^^ゞお、Google日本語入力、顔文字が入力できるってのは本当だったな。

pluginのフォルダをcloneしたフォルダにコピーして、
git add .
してから、
git commit -m 'add syntaxhighlighter plugin'
などとして、
git push heroku master
と。

pushしてテストしてみたら、既存のテーマだとpreが定義されているため、syntaxhighlighterのcssが効かないみたい。あー、この辺はちゃんと確かめてなかったよ。

で、仕方なく手元でテキトーに作った(というか、p0tにいい加減に手を入れただけの)テーマをpush。

その結果がこれ。

実はpushしてから間違いに気づいて修正してます。
pluginは元々はplugin内にsyntaxhighlighterのscriptやcssをコピーしていましたが、herokuにpushするにあたってsyntaxhighlighter本家が公開しているネット上のソースを使うように改変しました。ローカルで実験してみて、それほど遅い、と感じ無かったので。そのあたりの修正がうまくいっていない部分がございまして、素人らしい間違いをしてしまった。

2010年12月3日金曜日

Win7いらつく

いやなにいらつく原因は環境整備をしていないからなんですが。Ecxelで仕事に使う、という目的でBootcampしているのですから、あれこれ楽しいアプリを入れるわけにはいかない・・・けれど、仕事ばっかりってのも疲れる。

iMacにしてからずっと日本語入力はGoogle製を使っていて、けっこうこれがこなれてきた感じ。しかしWin7ではms-imeのまま。変換がアホで(使用期間が短いのだから当然といえば当然)いらつきもする。せめてここだけはGoogleのIMEにしておくか。

変換効率はGooleIME、高いと感じます。私は好きですね。ATOKより相性が合うと思う。職場のXPのではATOKのえーと18だか19だったかを使っておりますが、iMac上のGoogleIMEのほうが快適。ATOKにはずいぶん辞書学習やら単語取得やらをさせているのですが。

肉体疲労で劣化

いやー、今週は疲れた。やはり45を超えてから、肉体的につらくなりますなあ。月曜日の一斉下校で子どもたちといっしょにけっこうな距離を歩いた疲れがきつかった。

毎日朝夕と犬の散歩をしているので歩くのは慣れているのだけれど、月曜は雪がふってしかも歩道の除雪が全く入っていないザクザク状態だったのが疲れの原因でしょう。

本日も自宅で仕事をするつもりだったけどあまり進まず。

2010年12月2日木曜日

zenback

zenbackというサービスをこのblogに貼りつけて使えるようにしてみた。

お手軽・簡単にブログやWebサイトを拡張出来そうなWebサービスいろいろ - かちびと.netを読んで、あー、そういえばこんな表示があちこちのサイトで出てたなあ、と思ったのが運の尽き。

Bloggerにzenbackを美しく導入する方法-swordsmith

このサイトの頼りにcodeを貼りつけたら、無事動いているみたい。個別エントリ表示で出てきます。

DISQUSといいzenbackといい、個別エントリ表示にするといろいろ恥ずかしい状態になってきたなあ。好奇心だけで設置してますからねー。

2010年12月1日水曜日

そうそう

Win7を起動してから、リブートしてOSXにもどると、MicroSoftのマウスの調子がおかしくなります。ドライバがどうにかなるのかな。

スクロールホィールを回すと、ありえない速さでスクロールしてしまうようになります。使いづらいことおびただしい。こんな小さなことだけど、Win7起動する気にならない大きな原因だったりします。次回起動時に治るので、いちいち設定し直さなければいけないのが腹立たしい。

プログラミングはお休み

仕事モードに入ったのでプログラミングはしばらくお休み。

あまりにもおもしろすぎるので、仕事するときはプログラミングについて考えるのは止めるようにしています。

キーボード

Win7をイマイチ使う気にならないのは、iMacのキーボードがWinと相性悪い感じがあるせいか。そりゃWinで使いやすくなんてつくりませんわね、Mac標準キーボード。

ただ入力する感じがとてもすきなので、いまさらDELLのカスカスのキーボードは使いたくないんだなあ。

OSXの各種ショートカットにも慣れ始めていて、ウィンドウを閉じようとしてcommandボタン+Qを押しそうになるんだなあ。ctrl+数字キーでデスクトップの切替をしそうになるし。

家で仕事

本日から家でも仕事モード。ありていに言えば通知表づくりに着手、ですな。

通知表そのものは昨年からExcel化されました。(ってその作業をしたのは私だけど)だからExcelが使えないと仕事にならない。OSX用のOfficeは今のところ買っていないので、当然Winを起動します。

Win7はあまりカスタマイズしていません。そんなひまあったらOSXの中にいたい。だから必要最小限のセットアップしかしていなくて、まあ、仕事をするには最適とも言える。(^^;)

でも仕事をするためにWin7を起動するのも、なんかだるいなあ。Excelだけで済むなら18,000円くらいの出資で仕事Mac化も完成なんですが・・・PTAの広報が「パーソナル編集長」だからなあ。

今年から印刷屋さんに頼んでいた分も学校で編集・印刷してしまうことにしたので、inDesign買ってもらえるくらいの余裕はあるかもしれないけれど・・・そうすると家用のOSX版とが学校用のWin版が必要になるし、そうなるとMac版は自腹で買うしかないなあ。およそ3万円(アカデミック版)。

うーん、Office+inDesignで5万円かいな。Office+appleTVなら、現在のへそくりで買えそうなんだけど。

OSX用の、安価なDTPアプリってないのかなー。

2010年11月30日火曜日

asciicastsのsyntaxhighlighter

けっこうしつこい性格(のわりに面倒なことがきらいな大雑把野郎なんですけど)なので、asciicastsのsyntaxhighlighについて調べる。といってもソースを表示してみただけですが。

結果から言うと、やはりSyntaxHighlighterでした。ただし、rubyのコードにほぼ限定されるサイトなので、それ用にカスタマイズされた.jsと.cssを作ってますね。

なるほどなあ。

「ありがとう」って伝えたい無料アプリ50選(2010年版) : ライフハッカー[日本版]

「ありがとう」って伝えたい無料アプリ50選(2010年版) : ライフハッカー[日本版]

興味深く拝読。

知らないツールがたくさんあった。Notational Velocityとか。他のサイトでの説明丸投げにしているのはP2P系?

EverNote使用量

今月の「サイクル残り」ってつまり使い始めた日から「サイクル」が始まるということか。

とりあえずあと22日あって、使用量122K・・・(^^;)。Webクリップならあと270回程度できるということは、毎日10回以上Webクリップできるのか。問題はそんなにclipする情報に出会わないことだな。

達人たちはどんなふうにつかってるのかなあ。今度解説本でも立ち読みしますか。

herokuを使ってみるぞ計画

Lokkaのおかげでherokuって意外に簡単に使えるもんだ、ということがわかったので、自分でも何か作ってpushしたいな、と思っています。

これから12月の繁忙期を迎えるので、年末年始のお休みを利用して何かやってみようかな、と。

楽しいことばかりでありますな。ネットの上は。

Javascript版が正解か

rubyのSyntaxHighlightライブラリ(ツールもありますな)をあれこれ調べる。でも結局、Lokkaの場合ならテーマ側で出力するときに対応する必要があるわけで、やはりplugin化するならJavascriptを埋め込むのが正解みたいだ。

あとはスクリプト本体をpluginの中に置くか、ネット上の公開ソースを参照するか、程度の選択肢でしょうか。速さとスペースのどちらをとるか。ローカルで実行している限りはjavascriptをplugin内に持たせるとむちゃ速いですわね。

heroku上においたときはどうなるのかな。こんど実験してみよう。

NASA - NASA Sets News Conference on Astrobiology

NASA - NASA Sets News Conference on Astrobiology Discovery; Science Journal Has Embargoed Details Until 2 p.m. EST On Dec. 2

「実は我々は2年前から地球外生命体とコンタクトを取っていた・・・」とかだったら・・・すごいなあ。完全にSFじゃ。それでもってものすごい技術がすでに実用出来る状態になっていて、たとえばそれは「どこでもドア」だったりして、明日から宇宙の中のどこにでも瞬時に行けますよ、なんていう、「バラ色の大変化」が起きたら楽しいだろうなあ。

反対に「We are alone」だったりしたらそれまた大ショックですが。

とにかく楽しみです。

私は普段ほとんどTVを見ないし、リビングのTVにスイッチが入るのはたいてい夜の9時以降なんですが、この日だけは朝から見ようと思います。

2010年11月29日月曜日

なんてこったい

syntax highlight ruby
でググッたら、いろいろ出てくること・・・orz調べ方が足りなかった。


まだまだたくさん出てきそう。Javascript読み込むより、gemをinstallしてrubyで処理するほうがいいのかなあ。

ま、これも勉強ですね。

ちょいと勉強

ASCIIcastsのここここで、railsアプリでtwitter経由のログインを勉強してみる。

うむ、おもしろそうだからこんどやってみよう。

ASCIIcastsのsyntaxhighlightってすてきだな。

2010年11月28日日曜日

昼過ぎから暴風雪。すでに地面は真っ白。道路も凍結している模様。

いよいよ、冬が来るなあ。明日から靴を替えなきゃ。スニーカーだと寒すぎるし滑るので危険。コロンビアというメーカーの、−30度までは平気で過ごせる、というトレッキングシューズでこのところ過ごしている。足先や手先が冷たいのつらいからなあ。
現行モデルだとこれが一番近いかな。もうちょっと高かったような気がするけど。

ちなみのこの靴だと、どんなに冷え込んだ日でも犬の散歩に支障はない。サバイバルの基本は「足を濡らさないこと」だそうだ。冬の北海道で靴の中に雪を入れたらつらいよー。

DISQUS

たしかLokkaにDISQUSを入れた、という人がいたはずなんだけど・・・herokuから削除しているみたいですね。

ruby用のgemがすでにあって、
gem install disqus
でインストール。あとは
Disqus::defaults[:account]=MY_DISQUS_ACCOUNT
で基本の設定終了。って簡単すぎないか?あとはテーマのentry.hamlに
=disqus_thread
とか
= disqus_combo(:color => "blue", :hide_mods => false, :num_items => 20)
と書けばいいらしい。ためにし手元のローカルなLokkaでやってみましたが、DISQUSからのインストール作業をちゃんとやれていないためか、コメントへのリンクをクリックするとDISQUSのダッシュボードに飛ばされてしまいます。gemのdisqusには「developer」モードがあって、それをtrueにしておくとローカルでも動くという仕組み。

ま、こんなところまでやってみたけど、これ以上はいいか、という根気のない素人でございます。

Lokka SyntaxHighlighter plugin いちおう完成

というわけで、朝方目覚めた時からうつらうつらとpluginのことを考えてしまった。

LokkaのHelpersの「select_field」のソース、commentのform.hamlを読む。・・・うーん、つまり、モデルに対応していないselectを自分で作るしかないのか。

それなら、とやってみたのが以下のコード。
module Helpers
    def select_tag(name,select,values = [], options = {})
      attrs = ''
      options.each do |key, value|
        attrs += %Q( #{key}="#{value}")
      end

      html = %Q('
    end
  end
index.hamlから
= select_tag('theme',Option.sh_theme,[["shThemeDefault","default"],...
と呼び出して、
     app.put '/admin/plugins/syntaxhighlighter' do
        Option.sh_theme = params[:theme]
        flash[:notice] = 'Updated.'
        redirect '/admin/plugins/syntaxhighlighter'
      end
値を保存すれば、ちゃんと動きました。うーむ、うれしい。

2010年11月27日土曜日

コメントを

このblogのコメントを「DISQUS」にしてみた。
どんなことになるんだかよくわかんないだけど、Lokkaも「どーせDISQUSとか使うだろうからコメントは力が入ってない」と作者さんが言っているので、それなら使ってみようか、と。

このあとコメントの練習をしてみよう。

Lokkaのselect_field

そこでいよいよpluginの管理画面を作る。といってもsyntaxhighlighterのテーマファイルを指定するだけの機能しかない。

pluginそのものの有効無効の切替えはそのうちLokka本体のほうで対応するんだと思います。

inputでテーマ名を直接入力して切り替えるのはすぐできた。1文字でも間違えるとテーマがなくなるおそろしい仕様だけど。(^^;)

できればselectフィールドで選択できるようにしたい。というわけでLokkaのhelperに定義されているselect_fieldを使うことにしたんだけど、素人には厳しかった。まだできてません。今日はも無理。

.field
    %label{:for=>'theme_title'} Select Theme
    %br
    = select_field(Option,'sh_theme',[["shThemeDefaul","Default"],["shThemeDjango","Django"],["shThemeEclipse","Eclipse"]])
こんなふうに書いてみたら、ま、selectフィールドそのものは表示される。でも選択肢をかえても「Option.sh_theme」に反映されていないようなんだあ。
pugin本体側のsyntaxhighlighter.rbでは
def self.registered(app)
      app.get '/admin/plugins/syntaxhighlighter' do
        haml :"plugin/lokka-syntaxhighlighter/views/index", :layout => :"admin/layout"
      end
      app.put '/admin/plugins/syntaxhighlighter' do
        Option.sh_theme = params[:sh_theme]
        flash[:notice] = 'Updated.'
        redirect '/admin/plugins/syntaxhighlighter'
      end
とやっている。「app.put」の最初の
Option.sh_theme = params[:sh_theme]
でparams[:sh_theme]を拾っているわけですが、ここでselect_fieldの選択した値を拾えるようにしたい。でもどうやるか、よくわかんなかったです。

ま、また明日がんばってみよう。作者さんに直接聞くのが早いか。

Syntax Highlighterのautoloader

syntaxhighlighterのplugin化をシコシコとやってみる。

本家サイトでは


 

こんな感じで「autoloader」を使え、と書いてあるんですが、そのとおりやってもちゃんと動かない。
brushをずらずらと読み込ませるようにすると順調に動くんだけど・・・。しかし使わない言語のbrushを常に読み込むのは仕様としてかっこ悪いので、ここはautoloaderを使えるようにしたい。

本家のforumとかも調べてみたら、head部分に書いたらautoloaderはまともに動かない、と書いている人がいる。
では、ということで
content_for :footer do
 s
end

できた・・・。なんなんだろう、いったい。(^^;)
とりあえず、javascriptを読み込んでコードを見やすくハイライトするところまではOK。

2010年11月26日金曜日

lokkaも

シンタックスハイライタをいじっているけど、なんだか今日はダメダメの日でした。あんまり進まない。

autoloaderがうまく動かないのはなぜだろう・・・。

ま、brushをずらずら並べてもautoloaderを書いてもheaderに挿入されるコードの量はそうそう変わらないので、動く方法でいい、としよう。

次はadminのindex.hamlだなあ。これが・・・またまた私には難物だなあ。

redcar-0.9.0

redcarがupdate。0.9.0になった、と。

日本語を入力するとコードのハイライトが消えてしまう、というbugは相変わらず、日本語とロシア語だけで起こる現象のようなので、fixにも力が入らないのもうなずける。(^^;)

gemでinstallするんですが、その後に
redcar install
という手順を踏むので、15MばかりのJava関連のファイルが必ず落ちてくる。古いgemを消さないとけっこう容量食うなあ。

2010年11月25日木曜日

Lokka SyntaxHighlighter plugin化

とりあえずチャレンジということで、plugin化をやってみた。

結果的にまずは成功。


しかし・・・この程度のことにここまで時間がかかるか、という・・・orz
単に
module Lokka
  module Syntaxhighlighter
    def self.registered(app)
      app.before do
        s=''
        s+=''
        s+=''
        s+=''
        s+=''
 
        content_for :header do
          s
        end
      end
    end
  end
end
これだけ書いて無事動くようになるまで、今日の自由時間と寝酒時間のかなりを使ってしまった。
できれば管理画面でpluginの有効無効を切り替えるフォーム、それとcssを選ぶフォームを付け加えたいわけだけど、この分だといつできるのかわかんないなあ。

2010年11月24日水曜日

続きを読むの続き

本職の方のコードってきれいだなあ。とつくづく感心しました。

こんなふうにすぐ書けるようになりたいな。死ぬまで無理か、もう50だから(^^;)。

Lokka SyntaxHighlighter 試した

自前のコードだと効率が悪い(^^;)ので、SyntaxHighlighterをlayout.hamlに組み込む方針でとりあえず試してみた。

%script{:src => "#{@theme.path}/shjs/shCore.js" ,:type=>"text/javascript"}
    %link{:rel => 'stylesheet', :href => "#{@theme.path}/shcss/shCore.css",:type=>'text/css'}
    %link{:rel => 'stylesheet', :href => "#{@theme.path}/shcss/shThemeMidnight.css",:type=>'text/css'}
    %script{:src => "#{@theme.path}/shjs/shBrushRuby.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shAS3.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushApplescript.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushbash.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushCSharp.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushCpp.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushCss.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushDelphi.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushDiff.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushErlang.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushGroovy.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushJScript.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushJava.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushJavaFX.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushPhp.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushPlain.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushPowerShell.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushPython.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushSass.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushScala.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushSql.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushVb.js" ,:type=>"text/javascript"}
    %script{:src => "#{@theme.path}/shjs/shBrushXml.js" ,:type=>"text/javascript"}

    
    :javascript
      SyntaxHighlighter.defaults['toolbar']=true;
      SyntaxHighlighter.config.strings.viewSource ="copy to clipboard";
      SyntaxHighlighter.all();

こんなコードをlayoutに埋め込んでみる。
そうすると、

こんなふうに表示することができる。でもこれだとtheme内でしか表示できないので、plugin化したほうがいいような気がする。

作者さんの最近のblogに、theme側でheaderを持っていれば色々挿入できる、と書いてあるので、content_for :header doでjavascript埋め込んでやればplugin化ができるのかな。

明日以降のチャレンジということで。

2010年11月23日火曜日

coderay

rubyでプログラミングのコードをhighlightしてくれるライブラリ、CodeRay

Lokkaで使えるようにできないかなあ、と考えていたのを、本日のハイな状態でやってみました。(^^;)

ただ、Post全体を検索して、code部分をcoderayでscanして差し替える、というところまでは行き着いていないです。とりあえず、最初に出てくる「pre」tagをHpricotで抜き出して、それをCodeRay.highlightで処理する、というところまでです。

def coder(body)
      doc=Hpricot(body)
      coded=(doc/'pre').first.inner_text
      coded=CodeRay.highlight(coded,:ruby)
    end

書いたコードはたったこれだけ。で、viewの中で
= coder(post.body)
を記述してみると、

えーとこれは
coderay-stylesheet
で生成される.cssを適用している状態です。タブの入り方が変ですねえ。

自前でやるより、このサイトで使わせてもらっているhighlighterを組み込んだほうがいいような気がするなあ。

落ち込む

午前中はrailsをいじっていたというか、いじるために勉強をしていた。
しかし、いくらあちこち調べてもなんだかよくわからないし、勉強した結果を形にしたくてもうまく手が動かないし、いくら勉強してもそれが何かを生み出すこともなさそうだし、という思考の負のスパイラルに落ち込んだ。もういいや、rails使えるようにならなくても死なないし、とかふてくされていた。伊藤計劃の本でも読もう、と思った矢先に、twitter上でこんなRTを見てしまった。

何も成し遂げない人は「できるだろうかできないだろうか」と考える。成し遂げる人は「どうやったらできるか」しか考えない。(大意)

なるほどー。というわけで、午後から元気を出してLokkaをいじり始めたわけですね。どーせ素人だし、仕事じゃないんだし、その時一番おもしろい、と思えることをやればいいんですよね。

「続きを読む記法」も全然大したことじゃないし、世のため人のためにもならないけれど、「できた」と思えたときの充実感がすごいわけで、やはりヘタでもヘタレでもだめだめでもど素人でも、しばらくプログラミングの勉強を続けよう。

Lokkaをいじる

Lokkaのコミッタさんのひとり、nkmrshnさんの日記に触発されて、Lokkaで「続きを読む記法」ができるかどうか試してみた。

内容はLokkaサイトに書いておいたので省略。
pluginでhelper関数を準備しておいて、テーマ側で関数を呼び出す仕様なら、かなりあれこれできますね。

この前ちょこちょこやってみたサイドバーのカレンダー表示も、テーマのレイアアウトの中でplugin側のパーシャル呼び出すような感じでできるのでは、とつらつらと考える。む?よく考えるとまだちゃんと理解していないぞ、そのあたり。

2010年11月22日月曜日

ぜえぜえ

うーん、こんだけ書いてもこれくらいの分量にしかならないのか。

私は毎日、手書きで学級通信を書いています。原稿用紙でおよそ2枚程度。その日によりますがだいたい1000文字程度だと思います。

なるほど、それを書くのに実質30〜40分程度かかる。このblogの1アーティクルにかかる時間は10分以下だな。そうか、もっと時間をかけないと読み応えのある記事は書けないのか。

なんだか納得がいった。ちなみにこの記事は3分くらいですな。

セイバーへーゲン

フレッド・セイバーヘーゲンをご存知か。バーサーカー皆殺し軍団
バーサーカー皆殺し軍団 (ハヤカワ文庫 SF 126)
フレッド・セイバーヘーゲン
早川書房
売り上げランキング: 499738
が日本では一番有名な、北欧のSF作家でございます。

この作家の長編に「東の帝国」という3部作(日本で3分冊、というべきか。早川がよくこれをやります。デューンも本当は1冊なのに4分冊でしたっけ)があり、かなりマイナーな作品なのであまり話題にのぼることなく現在に至っていますが、私はこれが大好きでした。全編を彩る生頼範義氏のイラスト(ウルフガイもかくや、という)、一歩間違いえばバカSFと化すアイディアの数々、そしてけっこうだるいストーリィ展開、なかでも一番しびれたのが、古代の戦車を動かすために「魔法使い」のみなさんが、うんうんと何時間もうなって呪文を唱えるところですかね。

ネタバレにならないように(そんな心配いらないか(^^;))書けば、魔法使いは現代で言うところのプログラマでして、古代の戦車を動かすためにターミナルからコマンドを入力しているんですね、思考だけで。

このあたりのディテールの楽しさは読んでみないとわからないわけですが、えーとたしか高校生くらいの時に読んで、セイバーヘーゲンすごいじゃん!!としみじみわかったのが30過ぎてからでした。(^^;)実際にプログラミングしたことのある人にしかわからない苦しみと楽しさがあるわけで、そのへんを妙にリアルに描いていたようなきがします。

ちなみにamazonでも手に入らないみたいですね、SF文庫。

長文(について)

なぜかblogだとちゃっちゃっと書くくせがあって、あまり長文のアーティクルを書いたことがない。

その割に、読む方では読み応えのあるアーティクルが好き。書く分量が多いということは、言いたいことが多いということだからか。

だいたい寝酒をいっぱいやりながらblogの更新をするので、長い文章は無理だなあ。面倒くさくなるから。明日は休みだから、少し長めの文章を書けるようがんばってみようかな。

rails勉強する

手っ取り早くuserと小奇麗な見た目を得るためnifty-generatorsを使う。

userはemail関係の記述を削除して、名前とpassだけでloginできるようにした。それからeventのmodel追加。

routes.rbに
root :to => "events#index"
とかも追加しておく。

しかしnifty..が作ってくれるapplication.html.hamlでいろいろはまる。hamlまだ慣れていないから、どうもうまく使えない。ここはぐっと我慢してがんばる。

nifty..は--hamlオプションをつけるとviewを全部hamlで出力してくれて、デフォルトのcssもちゃんとpublic/css/sass/application.sassを作ってくれている。ありがたや。これを
sass-convert aplicastion.sass applivcation.scss
と打ち込んで.scssファイルに変換しておくとsass的最前線。

ま、ここからが本番なんですけどね。