2008年4月アーカイブ

「貼ってはがせるふせん」あなたの使い方教えて! : <ポスト・イット>ノートのツボ

というイベントを見つけたので応募するエントリー。

私の使い方は、専門書への書き込み用です。

よく喫茶店でプログラミング関連の専門書を読みながら勉強します。家の方がPCが使えるので効率がよいだろうと思われるかも知れませんが、PCがあると、すぐにRSSリーダーを見に行ってしまい、気付いたら数時間経っていることが多い。一通り通しで専門書を読んで全体のアタリを付けるには喫茶店が最高です。(もちろんファミレスとか類するところならどこでも)

すぐにPCを使って試せない分、その時に気付いたことや疑問点、載っている技術を使ったアイディアなどを、75mm四方のポストイットに書いて、そのページに貼り付けておきます。

IMGP3292.JPG
ノートを取るのも良いのですが、専門書だけでも重いのでそれ以外の荷物は出来るだけ減らしたいですし、ノートを持って出るのは結構忘れます。また断片だけ取ったノートは後で見返しても役に立たなかったりします。ポストイットに書いてある断片は、貼ってあるページに関係があるので内容をすぐに思い出せます。

ポストイットは持って出るのを忘れないのかといえば、やっぱり忘れるんです(笑)。なので、できるだけ専門書を買って帰ってきたらすぐに表紙の裏側に数枚、貼っておくようにしています。専門書を持って出れば自動的にポストイットも付いてくるという訳です。

IMGP3291.JPG
本自体に直接書き込むという手もあるとは思うんですが、A型の特質か私にはできません。
よく電車とかで本にラインを引きながら読んでいる人がいますが、凄いなぁと思います。本に直接何かを書くのは、なんだか本を汚している気がしてしまう(大袈裟)

しかし、書いている内に、非常につまらないエントリーの様な気がしてきたな(;´Д`)

あれ?書いたのはいいが、トラックバックをどこにして良いのか分らない。あぁ、分った。最初のエントリーか。そういうのは応募方法のところにも書いておいてくれないと…

電車の中でふっと思いついて、はてな認証APIを使ってMTのコメントを書けるようにしたいと思った。
MTだからPerlでプログラムを書けば出来そうだなぁと考えながら帰ってきたのだが、ちょっとググったらやはりもう存在していました。

はてなIDでMovable Type 4ベースのブログにコメントを -- Kickstart my heart

おぉ、このお方には、はてなスターの時にもお世話になっているのであった。しかもすぐ隣のエントリーだったとは。私の目は節穴だったようです。

はてなスターと同様、はてな認証でのコメントも非常に簡単に組み込めました。素晴らしい!
Emacs(Meadowだけど)のcolor-themeは色のセットを切り替えるのが非常にラクチンで気に入っています。
標準で大量に色テーマが用意されているので簡単に気分転換ができて嬉しい。

今はJonadabian Slateというテーマを使っているのですが、emacs-railsで文法エラー時、ピンクの背景に薄い文字色で非常に見えづらかった。

確認しながら変える方法を見つけたので晒しておきます。

まず
M-x color-theme-select
そして、使っているテーマの行にカーソルを移動して“f”。

これでそのテーマのカラーセットが別バッファに表示されるので、右側の色合いを見ながら変更すべき行を探します。
私が変えたかったのは「flymake-errline」だったので、カーソルがその行にある状態で「ENTER」を押します。
Customize Faceというバッファが開きます。
customize_color-theme.jpg 背景色を変えたいので、Background のチェックボックスにカーソルを合わせて「ENTER」を押すと、現在の設定がその行の右に表示されます。

カーソルを右の色名の上に移動して「ENTER」を押すと、ミニバッファに入力を求められるので、変更したい色名を入力します。

今は、見辛いピンクの背景を変えたかったので「dark red」を指定しました。色名の入力はコンプリーションも効くので、「dark」まで入力して「TAB」などとすると、別バッファに候補がたくさん出てきて便利です。

気に入った設定が見つかったら、C-x C-sで保存すると適用されます。C-x kでカラーセットの一覧に戻ると、カーソルの行が設定通りに変わっているはずです。

なんとなく、他にもっと良い方法がある気もしますが、今のところ文法エラーの行の表示を見やすくしたかっただけなので満足しています。


客先トラブルでイタタな感じで直帰し、Twitterを見たらはまちや2氏の発言が目に入る。

確かに面白いなぁ。

Twitterには、ほとんど自分で発言することは無いのですが、やってみると。
気持ち悪 風呂が充実 してました iwazer 水府
わははは。良い感じに微妙!自動生成の魔力を感じます。

全く意味不明な場合もありますが、「やり直し」ボタンでどんどん変更できます。
3個目で出たのが上。

パーマネントリンクのページは、フォントも凝ったらもっと素敵なんじゃないかと思いますねぇ。

ざっと見た中で目に入ったお気に入りはこれ。
夢を見た 台無しやんけ 目が覚めて
saeko 卍

すげーなぁー
@Reqを入力し、Ctrl+Spaceを押せと書いてある。何も起こらない。
って分ってて言ってるんですが、私はEmacsキーバインドに設定してあるので、Alt+/です。Emacs使いの層はあまり読まない系統の本ではあるのでいいんですが。
(48P辺り)

エラーメッセージを日本語化するためにリソースファイルlabel.propertiesを作るとありますが、国際化のためにはlabel_ja.propertiesなのではないかと思い、そうしてもちゃんと動いた。
(57P辺り)

ぐは!<input />タグが表示されない!と10分くらいハマったが、ラベルに付けるidを id="userNameLabel" とせず、<input />と同じにしていたからだった。本にもちゃんと「label.propertiesのキー+Labelにする」と書いてあるし、そもそもidが重複してはいけないのはHTML的初歩だった。
(58P辺り)

画面遷移をするのに、遷移先のクラスを返すインターフェースは、使ったことがないので違和感があるなぁ。nullを返すと遷移しないというのも含めて。
(66P辺り)

id="goNextPagen" にするとPageクラスのメソッドは呼ばれずにnextPage.htmlに遷移。その際、バリデーションは行われる。
(67P辺り)

id="jumpNextPage" にすると単にnextPage.htmlに移動するだけ。バリデーションも行われない。
(68P辺り)

initialize()メソッド説明ではイマイチ良くわからないがGETで飛んできたら呼ばれるという事かしら?対してprerender()は常に呼ばれる。
(73P辺り)

HTMLエスケープ処理が簡単に行えるteeda/extensionについて。
(77P辺り)

選択リストの選ばれた値を覚える規約について。
しかしサンプルがgenericで書かれていないのでEclipseの警告がウザ。その割にautoboxingは普通に使われていたりするサンプル。
(83P辺り)

複数選択リストの選ばれた値を覚える規約について。前節と殆ど同じ。
サンプルの警告を取るのが面倒になってきた(負)
(87P辺り)


さてと飽きてきた。実際簡単すぎるんだな。やっぱりこの内容で2400円はちょっと高いんじゃないかなぁと思われます。
簡単なのは、確かにTeedaの設計思想が簡単開発を目指しているので、目的通りであって何も非難される謂れはないとも言えるのかもしれません。
しかしこの内容ならタイトルに「サルでも」とか「図解」とか付けといてくれた方がありがたいなぁ。間違っても買わないから。内容を確認しなかった自分が悪いんですが。

こいつは本当の初心者向けの本です。

少し昼寝したので、早速続き行きます。

足し算をするhtmlとPageクラスの作成です。新人研修の様なノリになって参りました。

30PにあるURLから載っているコードがダウンロード出来るので、利用しています。
そのadd.htmlの <span id="result"/> というのがEcliseのエディタで警告になる。
正確には <span id="result" /> じゃないかとか、<span id="result"></span> ではないかとか思いますが、後者じゃないとEclipse君が納得してくれない。私はエディタに警告が出ている状態が大嫌いなので、そのように書き直します。

続いてDoltengのPageクラスを作成するダイアログを表示してフィールド情報の設定をしますが、最初に入っている java.lang.String を java.lang.Integer に変更するだけの簡単なお仕事があります。なのにココで罠。

いちいちドロップダウンリストから選択していたら面倒なので、一番上の1行だけドロップダウンリストから選択し、後の2行はコピペしました。コンボになってたから。こりゃ楽で良いなと思って。Pageクラスを作成して実行してみると… 1 + 1 = 11。
このPC、幼稚園児か!と思ったらフィールドの型が最初のだけIntegerになっていて、あとはStringのままだ。

コピペ出来ないならドロップダウンリストだけ使える様にして欲しい…

再び編集しようともう一度Doltengのフィールド編集ダイアログを出そうと思うのだが、出し方が分らない…仕方なくPageクラスを一度削除してからもう一度やる(ここは何か方法があるのだろう。後で出てくることを期待)
あぁ、よく見ると先ほどの問題は、コピペは禁止されてないが無視されていてペーストしてもjava.lang.Stringのままだったわ…
そしてチマチマ選ぶのめちゃめちゃ面倒くさいです!(´・ω・`)
今はサンプルで3個しかフィールドが無いから良いですが、30個とかになったら嫌になりそうだ。コピペさせて~

そんなこんなで、めでたく足し算が出来るようになりました。
(46P辺り)

仕事でSeasarを使える環境なら、新人研修にはとても良い本かも知れない。

今読ミ(imayomi)を作り始めるときに、開発環境の候補としては

  • Ruby on Rails
  • Seasar2 (Teeda + S2Dao)
  • Perl + なにかフレームワーク
を検討しました。(PHP はその当時仕事で使っていたし、あんまり好きじゃないので一番無難だけどスルー)

最初はほとんど Seasar2 で始めるつもりになってたんですが、過去のエントリーを見直してみると開発を始めた去年のGWに入ってから急にRuby on Railsに決まってます。私の技量不足もあるのですが、Seasar2ってなんか思い通りに行かないことが多かったのです。一応Javaが一番得意な言語なんですが(汗) Javaというより、開発環境がまだこなれてなかった気がします。

先月末にSeasarひが やすをさんが自身で解説本「Seasar2によるスーパーアジャイルなWeb開発」を出されたので、これを機に、再開するかとAmazonで買ったのが昨日届きました。 思っていた(Oreillyみたいなの(?)希望)のとかなり違っていて、失敗したなと思ったのですが、逆にすぐに終わりそうだと思い直し、読み進めながらやってみることにした。

最初の概要は雑誌 WEB+DB でも何度か読んだことあるので知っているしざっと斜め読み。
(26Pまで)

新しい本なのに推奨開発環境がちょっと古くないかなぁ?特にEclipseのダウンロードURLなんて、もうリンク切れしてますよ(´Д`)

わざわざ探してまで古いのを入れたくないので Eclipse3.3 にしてみたがCore だけだと apache xerces が無くて Seasar plugin がインストール出来ない。それだけ入れる方法を探すのが面倒だったのでデカイけどJ2EE版を取ってきたら入った。
(28P辺り)

これでサクサク行けるかと思いきや、言うとおりに新規プロジェクトを作ろうとするも「Chura Project」というのが見つからない。プラグインを入れ忘れたかとupdates/3.3のアップデートも入れてみるが出てこない。

Churaの代わりにDoltengというのが出てくるので、最近はそっちなのかなぁ~と選んでみたらそれっぽい。それっぽいが結構ダイアログが違う。

Project Typeに「Super Agile(Teeda + S2Dao)」ってのが選べないので、Persistenceに「S2Dao」、Presentationに「Teeda (Page only)」を選んでみる。

本にはないServer Managementという選択があり、「Sysdeo Tomcat Plugin」、「WTP (Servlet 2.4)」、「WTP (Servlet 2.5)」が選べる。本ではSysdeoで解説されているので、こっちが安全なのかなと思わないでもなかったが、ここまで数ページ進んだだけで全く指示通りに出来ていないので、もう趣味で良いだろうと「WTP (Servlet 2.4)」を選んでしまう私(爆)。せっかくJ2EE版を入れたのでWTPを使いたいじゃないですか!
(31P辺り)

そんなでもちゃんとプロジェクトは作成され、Tomcat起動。Hello Worldキター(汗)
(34Pまで 2章おしまい)

ページクラスを作るも、メソッドの戻り値の Class 型宣言に generic 警告が表示されてウザー。あまりお勧めできないがプロジェクト設定で警告をOFFに(汗)

Seasar2の売り中の売り、Hot Deployを試すべくPageクラスを変更しては、ブラウザで再表示をするが、タイミングが微妙…。早すぎるとDeploy前だったり、サーバーエラーになったりする。なにか設定が間違っているのだろうか。もっとサクサクできるかな?
(39P辺り)

とりあえずココまで。さて、続くのか?
Shell History | Weboo! Returns.

おぉ、面白そうな企画です。恥ずかしいコマンド(?)が並んだらどうしようと思いましたが… わりとありきたりな結果に(汗)
やはり cd と ls は多いのだなぁ。tail もログを見てたりするので多い。

script/imayomi っていうのが謎ですが、実は今読ミ(imayomi)の再起動スクリプトなのでした。Rails プロジェクトの script ディレクトリ内に作りました。svn update してから script/imayomi を実行するという流れで今読ミの本番更新をしているというわけです。これが cd, ls, tail に次いで私が多く打つコマンドになっていると。つまり最近はほとんど今読ミの更新時にしか、このシェルを使ってないってことだ。

ちなみに、script/imayomi は、こんな Ruby スクリプトです。 …はい、そうです。ps -ef | grep 'mongrel_rails start' を打って、プロセスIDを調べて、kill -TERM するだけ。シェルスクリプトでいいじゃん!と思われるでしょうが、これを書いた当初は何でもRubyで書きたかったんです。Rubyスキルがまだまだ低いので、かなり無理無駄がありそうですが、まぁ便利に使ってます。
読むと分る通り、実はまだ分散してません。ユーザーが少ないのを良いことに 1 Rails サーバーで動かしちゃってます。よく言われますが、Rubyは本番環境を作るのが難しいですよね。たぶん mod_proxy_balancer で複数の mongrel_rails アプリケーションサーバーに分散する方法が一番使われているのかなぁ。
先週、mod_railsというのも知ったので、要チェックです!

完全に脱線しました。次のコマンドに行きましょう。
su が多い。これは良くない習慣だと思います。やはり山下さんの様に sudo すべきですよね。

次は exit 。私はいきなりターミナルエミュレーターをバッテンで殺すのは嫌いなので、抜けるときは大抵、律儀に exit を打ちます。

次が less に vi。ターミナルエミュレーターでは、テキストファイルの参照は less、編集は vi です。コード書きはEmacs派ですが、設定ファイル程度なら vi で編集します。
ちなみにサーバでの作業は、いつもWindows からPoderosaで接続しています。

最後に top。あまり起動している記憶はないので意外です。まぁ、サーバは基本、ほったらかしなので 12 回でもランクインしてしまいました。

ちなみにスーパーユーザーでも、ほぼ同じ。svn, script/imayomi, su の代わりに、ps, grep, apachectl などがランクインする感じでした
久しぶりに休みなので、今読ミ(imayomi)に手を入れました。

アクティブなユーザーさんが増えたおかげで、本のバリエーションも増えてきて、データを色々と別の括りで見ると面白そう。Amazonから自動で取れる著者のデータを、タグで使っているのと同じ仕組み(acts_as_taggable_on_steroids)で持つようにして、著者クラウドなるページを作ってみました。

imayomi_author_tag.jpg著者名は普通に本のテーブルの属性として持っていたので、DB変更も含むちょっとした大改造になってしまいましたが、なんとか完成したので気分上々であります。

こういう機能追加をすると、RailsのMigrationがとてもありがたい。スキーマ変更とデータのコンバートやインサートをRubyで書いておけるので、開発環境で何度も移行のシミュレーションしておけて、本番環境ではまずしくじらない。

どんな開発環境でも同じようなことは出来るのであるけれど、最初から、こう書くべしと指定されていると、手順通りやれば良いので余計なことを考えず、本来の追加するカラムやコンバートするコードに集中出来るのが良いのだと思う。

先日、読んだ「最少の時間と労力で最大の成果を出す「仕組み」仕事術」に書いてあるのはそう言うことなんだと思いました。

話が逸れてしまいましたが、これからも機能を追加していきますので、ご期待ください。

今読ミの開発エディタをEclipseからEmacsに変えて半月少し経ちましたが、Emacsやっぱりいい。

ただSubversion関連の操作は、EclipseのSubclipse Plug-inが非常に慣れてて使いやすかったのですが、そのためだけに
Eclipseを立ち上げるのもナンですし、コマンドラインではいささか面倒ですし、Windows Exprolerに組み込むタイプのTortoiseSVNを使っています。

TortoiseSVN、悪くはないんですがインターフェースがもうひとつと言うところ。それにプラグラマーに取ってはいつも編集しているエディタから離れると、遠回りな感じがします。

そこに、ナイス情報が。

Emacs の vc-annotate - Hatena::Diary::naoya

おぉ!と思いemacs-lispはどこだ?とリンクを探したがない。ググりそうになったが、ひょっとしてと、エントリーに書いているとおり、C-x v gと押してみると…(・∀・)…使えた。

emacs_vc-annotate.jpg





















そういえば、昔仕事でずっとUnixを使ってた頃はVCを使ってなかったので全く知らなかった。
一人で開発してるので編集者が全部自分なのが笑えますが。

紹介されているのはコードの履歴表示機能だけですが、他にも便利なのがないかな。




先日受けてきたつくるぶ連載インタビュー「WHO'S NEXT」が掲載されました!

私の発言はもっと散漫な感じだったと自覚しているのですが、インタビュアー・ライターさんがうまくまとめてくれて、なんだかそれっぽい事を言っております。

来週いっぱい、仕事でデスマーチ必至の有様なので、今読ミの大きめの開発が出来なさそうなのが残念なのですが(>ω<)

このアーカイブについて

このページには、2008年4月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年3月です。

次のアーカイブは2008年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。