Home > article

article Archive

IRCでミサワをいつも側に…

このエントリーはRuby逆引きレシピAdvent Calendarの参加エントリです。担当は12月24日です。前日のエントリは@kei-sさんの Ruby逆引きレシピで作る、忙しい人のための『地獄のミサワの「女に惚れさす名言集」』- 札幌市西区です。

さて、私達プログラマが使うソフトウェアの中で最も起動時間の長いものは多分エディタでしょう。では次はなんでしょうか?そう、IRCですね!今回は逆引きレシピの中から「レシピ109 IRC botを作りたい」を紹介します。

レシピのサンプルコードを参考に「ミサワ」のキーワードに反応して地獄っぽい返答をするBOTを作ってみました。これでいつでもミサワ先輩のありがたい御言葉を頂戴することができますね!


上記のコードだとありがたい御言葉がハードコーディングされていますね。ミサワ先輩のありがたい御言葉はたくさんありますから全て書くのはあまり効率的ではありません。なのでRuby逆引きレシピAdvent Calendarの12月17日を担当した@june29さんの地獄のRuby札幌の「女に惚れさす逆引きレシピ集」 – 準二級.jpを参考に御言葉のかわりに画像へのパーマリンクを取得しておいて返答するという方法もありだと思います。

このエントリを書きはじめたのは火曜日でしたが、前日の@kei-sさんがまさかのミサワネタ。「おいおい天丼なんてレベルじゃねーぞ」状態でも動じない。それが俺の流儀だ。

さて、ミサワ先輩以上に偉大なレシピ先輩ですが、@noplansさんに頂いてから「○○やるにはどうするんだっけ」と思ったらレシピ先輩に聞くようになりました。Rubyのコードを書くときは横に置いておきたい一冊です!ありがとうございます!

うっかりnetwork-manager-gnomeを消してネット繋がらなくなった

xubuntuを以前インストールしててもういらねーやと思って色々消してたら、気づいたらnetwork-manager-gnomeも消えていてインターネットに繋がらなくなったでござる。

とりあえず手元のHT-03Aで適当にぐぐった結果、Ubuntu日本語フォーラム / [Ubuntu 9.10] ネットワーク・マネジャーを復元したいが見つかったので試してみるもそれっぽいパッケージがCDから見つからず挫折。

んじゃ、コマンドラインからなんかネット接続する方法があればなんとかなるかな?と思ってこれまた適当にぐぐるとUbuntu/emobile-H11HW接続方法 – Felix-labo's Wikiが見つかったので試した結果なんとかインターネット接続成功。

あとは Ubuntu Packages Searchからnetwork-manager-gnomeのdebパッケージを落としてきて、recovery consoleからaptitudeでインストールで無事終了。

「問題→解決→原因調査→開発プロセスに組込む」 それアジャイルだよ

普段、イテレーションの終わり(ちなみに1週間)にKPTをやって問題点をだして、それを解決すべくTryを実践してはいる。けれど、短期的な解決で落ち着いてしまってしばらくすると似たような問題が発生する。 結局のところ、問題が発生したらその場の解決だけではなく、問題の原因を検証して、自分達の開発プロセスに再発防止の仕組みを組込まなければならないなと思った次第。

そんなことをFaceBookやTwitterに書き込んでいたら、諸先輩方(@kdmsnrさん、@nawotoさんありがとうございます)から「それがアジャイル」みたいなことを言われてしまった。確かに言われてみればそうだ。一定のプロセスにこだわらないからこそ、柔軟に問題・変化に合わせてプロセスを変えていけるのがアジャイルなんだよね。うーむ、勉強不足。

今までやってきたことを繰り返したところで結果は同じなのは当然。今までのやり方で「何かうまくいっていない」と思ったら、やり方を変える必要がある。その辺りの検証が今のチームには不足してるなぁ。

あとは開発の遅れやバグの発生などが開発チームの問題として捉えられがちだけど、結構開発プロセスが上手くまわってなかったり、プロジェクト関係者のコミニュケーションロスが原因で発生してるものもある。そういう意味でちゃんと開発メンバー外のプロジェクトに関わる人を全員まきこんでやっていかないといけないわけだけど現状出来てないなぁ。そろそろアジャイルごっこから抜けだすべき時期なのかもしれない。(アジャイルな見積りと計画づくりの訳者あとがき)

その辺もなぜコミニュケーションが上手くいっていないのか、なぜデモ直前のテストで問題が多発するのかとか、ちゃんと原因を調べてプロセスに組み込んでいかないといけないなぁ。

ちなみに僕が再発防止の仕組みをプロセスに組込まないなといけないなと思ったのはリーン開発の本質 ソフトウエア開発に活かす7つの原則がきっかけ。リーンが何かと言うのはまだまだちゃんと理解しきれていないけれど、現状を色々考えさせてくれるいい本でした。

RSpec日本語化計画

やっぱ僕達は日本人なので仕様記述的と言うからには日本語で書きたい。とりあえずRubyは日本語を一応識別子に使えるのでその辺で適当にやってみた。shouldが鬼門すぎるのだがどうしたもんか。「it should_not 空であること」って明らかにおかしすぎる。@takaiさんが少し修正してくれた。

本当はもっとちゃんとした記事を書くつもりだったんだけどなんか脇道にそれてしまった。

札幌Ruby会議03に行ってきました

札幌Ruby会議03、お疲れ様でした!本当にいい会議でした、ありがとうございます。

すごいざっくりと感想を言うと「感極まった」とだけ言っておく。あの場にいた時の気持ちはなかなか文章にしづらい。個々の発表で行くと気になるトピックがどうだったとか、この話が良かった、あの話よくわからんみたいなことは言えるのだけど、「札幌Ruby会議」のあの場に居て思ったことはうまく言い表せないんだなー。とは言え「感極まった」で止まってては話にならんので、今後どう行動していくかだな。

ちょっと過去の話になるけど、札幌Ruby会議03に参加したきっかけとしては、やっぱりRubyKaigi2010でスタッフやったことかな。RubyKaigiスタッフで札幌なNiceな人達と会って「札幌RubyKaigiやるよ」と言われて、素直に「行きたい!」と思えたので参加を決めた。更にRubyKaigiのスタッフをやるきっかけとしては東京RubyKaigi03のスタッフをやったことで、そのスタッフをやったきっかけも更に前の〜と遡っていく。

結局あの時あの場にいたってことはそれまでの積み重ねがあってそれが1本の道になってるんだなと。「今後どう行動していくか」ってのも結局は「今やれること、やるべきこと、やりたいこと」をやっていくしかないなと改めって思った次第。

ところで話は少し変わって、島田さんの発表に僕の発表が影響を与えられていたようで良かったです。大抵、自分がなにかを発表したときはあの場にいた人やまわりにどう思ってもらえたのだろう?と不安になる部分は少なからずあるのでこう言ってもらえるのはとてもうれしいです。

j, k, u, m
みんながオブジェクト倶楽部の夏イベントでした発表は、コードや技術、自分自身に等身大で向き合ったとても良い発表でした。あの時の発表に対して自分だったらどんな発表をしただろうか、というのが発表の筋の入り口になりました。ありがとう。
『Rubyの教えてくれたこと』 – but it's up to us to change(2010-12-04)

最後に、札幌Ruby会議03に参加できたことは僕の中で非常に大きなことだったと思います。単純なモチベアップだけでなく、今後自分がどうしていくか考えるきっかけになりました。本当にありがとうございます。

札幌観光

北海道は幼少のころに2回ほど来てるけどあまり記憶がないので実質初めて。なので滞在3日目(12/5)はひとりで適当に観光。本当はたいやき部の方に参加するつもりだったけど、午前中若干二日酔いですぐ動けなさそうだったのと、ツアーにスープカレーが含まれてた(辛いの苦手)ので断念。たいやきは食べたいのでそれはまたの機会に。

観光は札幌周辺と小樽をノープランで。北海道は食べ物がおいしくて素晴しい。次は函館行きたいなぁ。

pathogen.vimとneocomplcache.vimのスニペット機能

vimの環境を少し整理した。

pathogen.vimを使うことにした

tpope's vim-pathogen at master – GitHub

我らがtpope先生のプラグイン、pathogen.vimを使ってプラグインを管理するようにした。.vim/bundleにあるプラグインに対してruntimepathを追加してくれるので、今まで.vim以下のautoloadやpluginsとかにバラバラになってたプラグインを1つにまとめたまま管理できる。

1つにまとめられると、githubとかにあるプラグインはgitのsubmoduleで扱うことが出来るので便利。特にgithubにあがってるようなプラグインは更新が速いものが多いのでなおさら便利(unite.vimとか)。これで主要なプラグインの更新はgit submodule updateで済む。

ちなみに今のディレクトリ構成はこんな感じ。
.vim/bundle at master from ukstudio's config – GitHub

ちなみにこういうことをしていて、プラグインの自動更新とかがデフォルトでないvimもいい加減レガシーな環境だよなぁと思うのであった。

neocomplcache.vimのsnippets機能を使いはじめた

何となくなじめなかったsnippets機能だけど、neocomplcacheにいつのまにか実装されてたので試すことにした。とりあえず、rspecまわりをいくつか追加したけど思いの他便利である。補完で候補がでてくるのとsnippetsの編集がラクなのがとてもいい。

.vim/snippets/rspec.snip at master from ukstudio's config – GitHub

RailsDevCon2010で話してきました

RailsDevCon2010、お疲れ様でした。主催かつ発表のお声をくれた@ysakakiさん、スタッフの方々、スピーカー、発表を聞いてくれたみなさま、どうもありがとうございました。

今回、「Railsプロジェクトを成功させるために現場ができること」というタイトルで話したけどびっくりするぐらいRailsに関係のない話。オマケ程度にちょこっと。以下、資料です。

テーマとしては、@ysakakiさんから声をかけて頂いた時に、[Railsの現場でまだまだバージョン管理すらしてないところあるよね。そういう基本的なところを改めて赤松さんの方から話して欲しい」と言うことだったので、個人的に基本的な所と言うと「TDD」と「バージョン管理」(できれば継続インテグレーションもいれたい)だったので、その変も踏まえて技術的負債というトピックを扱った。

具体的な話をしても、スクリーン上じゃコード読みづらいし、わかりにくいかなと思ったので少しぼかした形で発表したわけだけど、全体的にふわふわと掴みどころのない話になってしまったかもしれない。次どこかで発表する時、もしくはブログにでももっと具体的なコードレベルのことを書きたいな。

懇親会は二次会まで参加した。久しぶりに同世代の人と話せたのは楽しかった。ぜひぜひこれからも頑張ってほしい。

UbuntuでMacOSのpbcopyっぽいことをする

普段ブログ書くとき、ローカルのvimで記事を書いてからそれをWordPressの記事作成画面にコピペしている。Macの時はpbcopyを使っていたけど、それと同じことをUbuntuでするにはxselというのを使えばよさそうだ。

$ sudo aptitude install xsel
$ cat hoge.txt | xsel -ib

MacからUbuntuに乗り換えた

最近メインで使っているMacBookが調子悪かったので新しいマシンを買うことにした。元々、Core i7&メモリ8GBでMacBook Proの15インチを買うつもりだったけど、Lenovoが18周年記念でThinkPadが安かったので以前から考えていたLinuxマシンに手を出すことにした。

X201sをCore i7&メモリ8GBで

基本的にほぼ毎日パソコンを持ち歩くので比較的重さが軽めのX201sを選択。CPUとメモリは元々予定してたi7と8GBを選択。HDDとSSDで迷ったけど、500GB HDDから128GB SSDへの変更で +6万円だったのでSSDは自分で換装することにしとりあえずはHDDを選択。キーボードは当然英字配列。

X201sが届いて最初にやったことは電源を入れることではなく、SSDへの換装。HDDを引っこぬいてSSDを挿すだけだったのですぐに終了。ちなみに使用したSSDはまわりに聞いて評価の高かったIntel SSD 160GB SATA 2.5 SSDSA2MH160G2C1。Ubuntuは10.10の日本語RemixをCDに焼いてそれでインストール。

立ち上がりの速さに感動

起動して最初に思ったのが、立ち上がりの速さ。ログインするまでが本当に速い。普段起動時間が長いのを嫌ってノートPCの電源は基本的に落さないタイプだけどこれならちゃんと電源落してもいいかなと思える。Firefoxも待ち時間がほとんどなく立ち上がる。素晴しい。

セットアップ

とりあえずキーボードレイアウトからCapsLockをCtrlにする設定をした。次にSKKを使うためにuim-skkをaptitudeでインストール。Sands(Space長押しでShiftにするやつ)は結構設定がめんどうな感じだったのでとりあえず諦め。

ChromeやCompiz、xchat、Sylpheedなど必要そうなものをインストール。Chromeは同期機能のおかげでMacの方のChromeから特別なにもしなくてもほとんど移行できた。Compizは余計なアニメーションとかさせなければ結構便利。

IRCはxchatをとりあえずインストール。@ursmさんからquasselという奴をおすすめされたけど使い方がよくわからないのでとりあえず保留。おもしろそうな感じはするのでそのうちゆっくり試してみよう。

EvernoteはUbuntu用のアプリケーションがないのでNevernoteやWine上でWindowsのEvernoteを動かしてみたけど日本語が文字化けして使い物にならないのでとりあえずWebで我慢。

後は開発ツールまわりをインストール。vim、rvm、MySQL、screen(git://git.savannah.gnu.org/screen.git)、zshあたりをインストール。なんちゃらrc系全部githubに置いてあるのでこの辺りもさくっと移行完了。

まとめ

なによりUbuntu + SSDは本当に快適で素晴しい。これだけでも買い替えてよかったと思える。Linuxはデスクトップマシンとして使うのは初めてだけど、Ubuntuは一昔前じゃ考えられないぐらい洗練されていて何も不自由を感じない。プリンタなどのハードウェアまわりで不安がないわけじゃないけれど、とりあえずは何とかなるだろう。

参考にしたところ

scopeでお手軽検索

Rails3.0のscope(2系で言うnamed_scope)を使ったお手軽検索。モデルにextendして使う。やってることは渡されたパラメータのkeyのscopeを呼び出して、それらを全部チェインさせるだけ。お手軽だけど、scopeを定義するだけなので結構融通が効くし便利。

Home > article

Feeds
Meta
Others

Return to page top