宇宙線

宇宙線に弱そうなデバイス

2012-05-12

mount_doc という gem を公開しました

こんばんは、ニコニコ静画(電子書籍)でマンキンが無料で読めます!

さて、ということで社内で使っていたモジュールをもうちょい一般化した、mount_docというgemをリリースしました。

https://rubygems.org/gems/mount_doc

これは何をするのかいまいちぱっとわからない方向けに、サンプルのRailsアプリを作っておいたので、そちらを参考にしつつ読んでいただけると幸いです。

https://github.com/rosylilly/mount_doc_sample

git clone して bundle install して rails s してください。

なにをするのか

Railsアプリのコントローラのアクションに書かれたコメントからURLベースのドキュメントを生成します。

URLに紐付くドキュメント生成ツールがなかったのと、チームのエンジニアにwikiかけって言ってもホントに書くかわかんないし、人の書いたドキュメントをちゃんと読むかわからないし……(いや読んでくれるんですけど、そういうの強要するのエンジニアリングとして正しいんか?というのもあり)ということで、ならソースコードに埋め込んだれや、ということで作りました。

基本的にはYARD(yet another ruby documentation)の記法を元にしており、doc以下のファイルも読み込んで表示するので、Rails標準の rake doc と相性が悪いです。

あと、RailsってWAFなんだし、そのアプリ上にマウントして見れるようになってりゃいいじゃん。ということで routes.rb でマウントしています。現在独立して動くようにはなっていないので、それは考えどころだなぁ、という感覚。

とりあえずドキュメントを書かない・読まないのは不健全だと思うので、出来れば書くように、しかも勝手に目に入るようにしよう!ということでできたgemでした。

2012-05-05

git-助けてというすごく便利なエイリアスを作った

こんばんは!暑い!

ということで今日はgitのすごく便利なエイリアスを作りました。

Git-助けて https://github.com/rosylilly/git-tasukete という、超便利コマンド集です。

使い方はホームディレクトリあたりにクローンしてきて、パスを通しておくだけです。

するとあら不思議、ターミナルに

$ git 助けて

と打つだけで、助かりたい時の場合がリストで出てきます。

後はそのうち、目的の状況のモノをターミナルにコピペするだけです。ほらね

$ git mergeを取り消したい

はい、マージが取り消せました。よかったよかったー!

こんな困った場合にも対応してください!というのはGitHubのissueか、コメント欄にて受け付けてます!

2012-05-03

ウィークリーマンションによる合宿所のススメ

こんにちは!今起きた!

さて、今日はエンジニアディレクター諸氏に向けたお話です。もちろんエンジニアの方も参考になさってください。
ところで皆さん、突然研修などで遠くにエンジニアを移動させなきゃいけないタイミング、ないでしょうか。

  • 突然決まった社の研修、土日の二日間郊外の施設で研修
  • なんかSuperな会議がある

そういった場合、エンジニアに「朝早起きして来い!」と言ってもなかなか難しい、というかモチベーションが下がって、次の週からまともに開発してくれなくなるかもしれないリスクは恐ろしいものです。

エンジニアディレクターである限り、もちろんエンジニアから恨まれつつ仕事を回すのはしょうがないとしても、なるべく好かれていたいですよね。

そんな時、割とすぐ浮かぶのはビジネスホテルだったりする訳ですが、大きなイベントとかぶっていたりすると、まずホテルは取れません。

そういう時に便利なのがウィークリーマンション・マンスリーマンションです。

今回僕が用意した物件はウィークリーマンションで、1週間3万8千円と、1週間使うには低コストな感じで、ヘタなホテルを抑えるより魅力的です。

かつ、完全に個室ですからホテルほど窮屈でもない。部屋の広さは6畳半程なので、ゆったりできます。

洗濯機などの家電も備え付けで置いてある場合が多いので、洗濯や料理もしたかったら出来る、といった具合で、まさしく部屋です。

また、研修期間が短くても、残りの期間は開発合宿的用途で昼間集まって利用したり出来るので、よりよい!

ヘタにホテルを抑える前に、ウィークリーマンション物件が近くにないか探してみるとよいと思います。契約も簡単で結構すぐ抑えられるので、エンジニアに嫌われたくないエンジニアディレクターの皆さんはご検討ください。

豆知識

「あの、これ、1人用で僕が契約するんですけど、例えば2日間だけ、4人くらい家で寝てたりしても大丈夫ですか?」
「ご友人がお泊りになるということでしょうか……?」
「あ、はい、そうです。荷物少し置いたり……」
「本来ならご人数分料金をいただかないといけないんですが……」
「が?」
「お貸ししたお部屋に『ご友人が遊びに来る』分には、当社といたしましても感知できませんので……」
「あ、な、なるほど?」
「お部屋の壁があまり厚くありませんので、騒音などには注意していただいてですね」
「はい」
「トラブルなどなければ、おそらく退去時にも当社は複数人いたことには気が付かないので、料金を請求させていただくことができませんね……」
「そうですか、ありがとうございます」

世の中って難しいですね。

2012-05-02

リリース先輩というIRCボットを作った

こんにちは、皆さんgit使いこなしてますか?僕は全然です。

ところでgit個人的に使う分にはいいですけど、会社の許可取るのとかは大変ですよね。できる限りSVNで管理したい。

ということでとあるチームではgitで基本的にソースコードを管理して、デプロイ時はsvnに置く、というようなことをしています。なんだか二度手間な感じもしますが、まぁやっておけばいいのであればやっておきましょう。

ところがどっこいgit-svnはとてもめんどくさい。めんどくさいしgitに慣れきった人間はsvnでコミットすることができない。できないなら機械に任せよう。

ということでどうせ毎回同じ事をするので「リリース先輩」というIRCボットを作って、先輩によろしくやってもらうことにしました。

リリース先輩

IRC

rosylilly: release_senpai: 先輩、リリースの準備お願いします!
release_senpai: ちょいまち
... 処理中 ...
release_senpai: 用意できた。投入内容をここに書け んでdiffはこっち

というような、簡単なやりとりでgitのmasterブランチからリリースタグを切ったりsvnに同期したりといろんなことをしてリリースの下準備をしてくれるのが、このリリース先輩です。

本番同期がIRCで出来るのはさすがに危険なので、そんな機能は積んでいません。

わざわざIRCボットにする理由

誰かがリリースタグを切ったという事実を認識するのも大事ですが、それ以上に僕は「リリースはなんとなく楽しいものでなくてはならない」と思っています。

だからこそ自動化して達成感への到達を最短にするのだし、わざわざ話しかけるような書き方でも反応するようなボットにしました。

リリース先輩は簡単なキーワードに反応して動いているだけなので、実際のところキーワードの単語だけ投げてもいいのですが、あえて口語にして、反応もそれとなく砕けた感じにして、わざわざ「先輩」なんて名前をつけることで、ちょっぴり楽しくしてしまおうということです。

リリース権限の付与ももちろんIRC上から出来るようになっており、このやりとりも機械的なものではないようにしました。

member: release_senpai: 新しく加入した新人です!今後よろしくお願いします!
release_senpai: こいつ誰? > rosylilly
rosylilly: release_senpai: あ、そいつは後輩のmemberッス。面倒みてやってください!
release_senpai: そうなん?じゃあよろしく

というような流れで先輩にmemberくんを覚えてもらうことで、memberくんのリリースコマンドが今後実行されるようになります。ぶっちゃけちょっぴりめんどくさい手続きですが、なんとなく面通しっぽくて楽しいので、これでいいのです。

なかでやってること

  • git clone repo_uri --depth 1
  • git ls-files | xargs cp svn_dir
  • svn commit
  • svn cp trunk branche
  • git tag release

みたいなことやってます。

ということで

RubyやNode.jsを使えば簡単にIRCボットが作れるので、ぜひチャレンジしてみてくださいね!

2012-04-22

RSpecでテスト書きながらRailsのプラグインを開発する

こんにちは。Railsのプラグインが作りたいです。

ということでRailsプラグインの作り方を調べていたのですが、id:sora_hから

$ rails plugin new plugin_name

でひな形出来るよと聞いて喜びいさんでやってみたらテストがTest::Unitで出来ていた時の僕の絶望は筆舌に尽くし難かったです。

ということでRSpecでテストしたかった。ついでにいうとRailsでRSpec使うときみたいにしたかった。

んでソース見てみたんですがなんかやりにくそうだし嫌だなぁと思ってたんですが、案外さっぱりできました。

ようするにダミーのRailsアプリケーションを作ってそいつは開発中のgemを読み込んでダミーRailsアプリに向かってテストすればいいだけです。

ちょっともう眠いのであんまり長くまとめられませんが、だいたいどうすればいいかはGitのログを見るとわかると思います。

https://github.com/rosylilly/rails_plugin_with_rspec

bundle gemでgemのひな形を作って、RSpecでテストさせるだけです。簡単。Gemfileのsqlite3なんかは、テストしたいORMやらによって変わります。

これでRSpecでテストしながらプラグインが開発できるようになりました。やったぜ!

2012-04-01

結婚しました

どうも、ロージーです。この度結婚しましたのでご報告させて頂きます。

家内とさんざん協議した結果、今日入籍にしようということで、3/31(僕の誕生日)の夜中に二人で婚姻届をかき上げて先ほど役所に提出しました。書類不備で突き返されないかと怯える日々です。

結婚を決意した理由

正直に言うと、僕はあまり結婚というものに感慨をいだいていなくて、側にいるのは側にいるんだし、別に結婚してよーがしてなかろーが大差ないじゃん、とも思っています。

そんな僕が結婚しようと思ったのは単純な話で「ああ、この人が他の人のところへいってしまったらすごくいやだな」と感じたからです。完全に束縛男ですね。乙。

あと、5月くらいから心を壊して休職してたんですが、その時にさんざん支えられてこの人なしじゃ俺無理だわ。と思ったのとか、あとずっと同棲してて全然嫌じゃない(気にならない?)こととか。そんな日々の積み重ねから、結婚を決意しました。

プロポーズについて

恥ずかしいのでラノベっぽく書きます。

僕が成人式を終えて東京に戻り、家に帰ってだらついていると、彼女が擦り寄ってきて、にやけたつらで言いました。

「成人祝い、何欲しい?」

バカにされている、これは一発意趣返しをせねばならない。僕は決意して、震える喉を押さえて言いってやった。

「苗字。キミの苗字頂戴」

続きは有料です。ニコニコ静画(電子書籍)での配信をお待ちください。

さいごに

春の始まりの日の4/1に入籍できてよかったな、と思っています。婚姻届を出しに行くのって案外緊張するものだな、とか、勉強になりました。

お互いの生活とお互いの意志を尊重して、二人で嘘をつかずに仲良く暮らしていこうと思います。

追記

エイプリルフールが終わったので改めて追記しておきますが、上記の内容に偽りの内容はなく、すべて事実です。

2012-03-29

そういや本が出ました

完全に発売日失念してた上に届いた献本を関係各位に送りつける業務も滞ってます。マジすいません。

リックテレコムさんのスキル向上のためのHTML5テクニカルレビュー Web標準の進化系(Web to Go)という本のコラムでHTML5 Videoについて書かせて頂きました。

僕の書いた部分は置いといて他の方のかかれた部分は本気でプロダクションでHTML5使う気がある人は読んでおいて損しないと思います。

HTML5はまだ若い技術のうちだと思っていますし、どこででも使えるほど枯れてもいません。むしろ本のコラムまで書いといてなんですが僕はHTML5を使いたいならスマホの上だけでやれと思っているぐらいです。PCはまだFlashでいい。

でもそれは劇的な変化をするときだけの話であって、劇的でない変化、例えば使える機能だけHTML5で置き換えてしまう、なんてのも全然ありだと思います。もしくはHTML5が使えないブラウザでも見ても問題ないような作りにするとかね。

そういうのも含めて、プロダクションで使うときに気をつけるべきこと、何が使えて何が使えないのかという点についてはお役に立てる本なのではと思っています。僕の書いた箇所にかんしては、HTML5 Videoをプロダクションで使うというのはどういうことかという話を結構真面目に書いてるのでもしHTML5 Videoで動画サイトとかつくろうと思ってる人がいるなら読んでおくとよいのではないでしょうか。

ちなみに上のリンクはアフィリエイトコード入ってるので、僕に稼ぎを出させるなんてまっぴらごめんという方はAmazonで検索するか、なんなりで本を買いましょう。