Vagrant 1.1.4 のebuildを作成(バイナリパッケージ)

1.x はgemでリリースされないそうなので、ダウンロードページにあるバイナリパッケージ的なもののebuildを esminc/esm-overlay で公開しました。

emerge vagrant-binでインストールできます。

https://github.com/esminc/esm-overlay/pull/3 にもあるようにちょっとよくわからない警告がでるのですが、とりあえずvagrant upは問題なくできているので大丈夫ですかね…

公式の方でも、1.1系がマスクされた状態であるので、それまでの繋ぎとしてお使いください。

VagrantのFuntoo Base Boxを公開しています

最近流行ってますねVagrant。

とにかく簡単にVMが作れちゃうので「これを機にGentooデビューしちゃおっかなー」という人が沢山いるということは想像に難くないところですし、「Funtooにしちゃおっかなー☆」という人も一定数いるに違いありませんよね。

ただ、VagrantUp - www.funtoo.orgでリンクされているBase Boxはportage treeが1年前くらい前の物な上に、emerge --sync; emerge -uDN worldするともれなく数時間コース、そして2、3回つまずくところがって、さらにgrubのメジャーバージョンが挙がってしまうという3重苦のような感じで、ここでも初めて使う人を寄せつけない感じになっております。

そこで数日前(20130307)に更新したBase BoxをDropboxで公開してみました。

https://dl.dropbox.com/u/268888/funtoo-current-20130307.box

変更点は、以下の通りです。

  • 20130307時点のportage treeにsyncしてemerge -uDN world
  • なぜかMAKE_OPTS = -j9となっていたのでMAKE_OPTS = -j3
  • eixが入っている

さくっとfuntooを試してみたい方はvagrant box add funtoo https://dl.dropbox.com/u/268888/funtoo-current-20130307.boxという感じでご利用ください。

今はknife-soloでごにょごにょやろうとしているんですが、knife-soloは/etc/issueを見てディストリビューションを判断する仕組みになっていて、funtooは/etc/issueが無いのでそのままで使えずに、面倒だからveeweeで作りなおすかーということころまでヤクの毛刈りが進んでいるところです。

大江戸Ruby会議03に参加してきた

角谷さんが「ぼくは、地域Ruby会議ってこういうのをやりたかったのでだいぶ満足! #odrk03」と言っていたけれど、その言葉の通り、すばらしい会場と講演者、講演内容でした。

@makoto_inoueさんの話では、同じ受託開発を生業としている会社として興味深いところだらけで、沢山ヒントを貰えた気がします。(特に、数十名の規模で研究開発というか基盤整備みたいな人を配置できるってすごいことですよね)

あとすごく心を動かされたのは、@yotii23さんのRailsGirlsについての話でした。というのも、大学時代の後悔というか、どうしたらよかったのかと今でも悩んでいることが一つあって、その解がRailsGirlsなのかもしれないと思ったのです。

(ここから昔話)

いろいろ縁があって、学部3年から大学院を出るまでの計4年くらいSA、TAをやらせてもらっていたんですが、その中で(それほどプログラミングができるわけではなかった)ある女性に「プログラミングって、Suicaのシステムとか作れるの?すごいじゃん!それならもっと真剣に勉強してたかも…」と言われたことがあって…

言葉尻だけを捉えると「何言ってんのwww」みたいなかんじなんですが、どうやったらその人にプログラミングの可能性というか、楽しみを伝えることができたのかなぁと今でも考えちゃうんですよね。

頭のいい子だったので、プログラミングの楽しさをちゃんと伝えることができたら別の道があったんじゃないかなぁと今でも考えています。

(ここまで)

最後の@nari3の講演はネタのそうじゃないところのバランスが絶妙で、あっという間に終わってしまった、という感じでした。もっと楽しんで、それを仕事にしていきたいですね!

いやーすばらしい会場と講演者、講演内容でした!大切なことなので2回書いておきます。

あと、RubyKaigi2013のLTはEnglish ONLYであるという発表があり、社内SNSに「LTやりたい」と書いてしまった私には、心とトークの準備をする時間が余分に確保できてよかったです…

追記

@makoto_inoueさんからコメントを頂いたのに、諸事情で消えてしまたのでここに転記させていただきます。

@makoto_inoueです。私の講演で何か得るものがあったようで、大変うれしいです。一点訂正ですが、「数十名の規模で研究開発というか基盤整備みたいな人を配置」とありますが、うちは全社員20人の会社で、そのうち2人がBatmanになるよう定期的にまわすようにしています(といってもこのこころみが始まってからまだ3ヶ月しかたっていないのでまわしていませんが)。誤解を招くような表現をしてしまったようで申し訳ないです。

規模に関してはすみません。完全に誤解していました。(すみません)

それでも、そういう試みを始めることができて、3ヶ月は続いているというのはすごいことだなぁと思いました。

カプセルホテルデビュー

人生初めてのカプセルホテル。

社会勉強になりました。

散髪ログ

ひなまつりに散髪。美容院のカードによると前回は12月頭だったので三ヶ月ぶり。 だいぶ大変なことになっていたのですっきりして快適。

autojumpからzに乗り変えた

だいぶ前からzに乗り換えてみたかったんですが、公式のportage treeにはなかなか入らないようなので、esm-overlayに追加して使い始めました。

emerge zでインストールできますが、実際は/usr/share/z/z.shを入れるだけで、自分で. /usr/share/z/z.shをしないといけなくなっています。

autojumpは/etc/profile.d/につっこむので何もしなくても使えたんですが、zでは_Z_CMD=jなどの設定をsourceする前に行わないといけないため、このようになっています。

今まで「emergeできないから使ってなかった」という方は是非ご利用ください。

TwitterのアーカイブをダウンロードしてGitHubに

Twitterのアーカイブをダウンロードする権利がようやく付与されたようなので、さっそくダウンロードしてgithub pagesに突っ込みました。

kenchan/tweet

リポジトリを作って、gh-pagesブランチに全部展開してpushして終わり。よくできてますね!

https://diary.shu-cream.net/tweet

DCI meetup

DCI meetupに参加してきたような。

Copeから直接DCIの話を聞ける機会だというのに、残念な英語力により撃沈。

外タレがメインのイベントでは質問をするというマイルール(アジャイルサムライのセミナーのときに決めた)に従って質問をしたものの、やっぱり自分の伝えたいこと、聞きたいことを表現するのは不可能であった…

参加費分くらいは恥しい思いをしたと思うので、またこれを糧にがんばっていこうと思ったのでした。

RunningLeanを買いました

twilogによると去年の11月21日に角さんのRunningLeanワークショップを社内で開催してもらったのですが、本を買うのを忘れていたのでした。

ビジネスモデルキャンバスさえろくに知らない自分にとっては、非常に楽しめるワークショップでした。(私のチームは若干テーマ選択をあやまった感がありましたが) 終了後のアンケートにも書きましたが、半日コースだけじゃなくて一日コースがあるともっと楽しめるんじゃないかなぁと思いました。

次回のワークショップの予定はまだないようですが、まだ受けてない人はここに登録しておくといいのではないでしょうか。 Running Lean Workshop

(そして今日もロトの紋章15巻を手に入れることができずに帰路につくのであった…)

2013年仕事始め

今年の一字は「守」にしました。

昨年末から、お仕事ではいままで余り経験のないことをやらせてもらっているんですが、そういう時こそ先人の知恵をもっとしっかり守ってやらないといけないと感じています。

来年は「破」にできるように今年はしっかり地に足をつけてやっていこうと思います。

あけましておめでとうございます

あけましておめでとうございます。

昨年は8月を最後にWeb日記力が底辺まで落ちてしまいましたので、今年は少しずつ回復させていきたいと思っております。

皆様今年も宜くお願い致します。

「AWS クラウドデザインパターン」を読みました

AWSとか今まで無縁だったのですが、そうも言ってられなくなってきたところで丁度よさそうな本が出たの読んでみました。

「AWSとかよくわからん」という人にもオススメ

クラウドデザインパターンという名前は付いていますが、クラウド環境でなくても普通に使えるインフラのパターンも沢山載っています。(もちろんクラウドだからこそのパターンもあります)

その上で、それをAWS上で実現するならどういうサービスを使って、どのように構成すればいいかというのが書かれており

  • クラウドかどうかに関係ないインフラを設計する上でのパターン
  • それをAWSで実現する方法

を一気に学ぶことができます。

AWSの強力さも実感できる

特にELB、ElasticIP、CloudWatch、CloudFormationあたりの組み合わせは圧巻です。

これと同じことを自前でやれと言われたら頭が痛くなってしまいますね…

また、2章ではEC2が1つのWordPressにパターンを適用していってかっこいいインフラにする過程が紹介されていて、AWSの利点を非常にイメージしやすいと感じました。

とりあえず教養として読んでおくといい

「AWSバリバリ使ってるぜー」という人はともかく、そうじゃない人は一般教養として読んでおくといいんじゃないでしょうか。

札幌Ruby会議のスポンサーセッションで発表します

札幌Ruby会議のスポンサーセッションで「ふつうのソーシャルコーディング」というタイトルで発表させていただきます。

サイトからの引用になりますが概要は以下の通りです。

日本Ruby会議2010のHead First ふつうのシステム開発から2年が経ち、私たちの開発を支える環境も変化してきました。
GitHubのOrganizationアカウントを導入してソーシャルコーディングを実践し、CIサーバとしてTravis CIを利用するようになりました。また、アプリケーションの運用環境としてHerokuの採用も積極的に行っています。 一方で、Pivotal TrackerやIRCなど、2年前と変わらず利用し続けているものもあります。
これらのサービス、ツールを組み合わせた、永和システムマネジメントの受託開発プロジェクトにおける「ふつうのシステム開発」の姿を紹介します。

今回はライブコーディングはやらない予定ですが、その分、私達が普段の開発で大切にしているものが皆さんに伝わるように頑張りますので、札幌でお会いしましょう!

https://sapporo.rubykaigi.org/2012/ja/schedule/details/P01.html

Ember.js勉強会を開催しました(60min.第8回)

最近@ursmが興味を持っているJavaScriptフレームワークであるEmber.jsについて社内勉強会を開催しました。

まずは定番のTodoアプリでもと思ったら、ちょうどいいチュートリアルがあったのでこれを写経して、その後わからないところをursmに聞く or みんなで考えるという感じでした。

チュートリアルと本家ドキュメントをちゃんと見れば、Todoアプリの動作については理解できるようになっているので丁度いい難易度でした。

以下に出た質問とか。

ArrayControllerにcontent? contentsじゃなくて?

Controllerから見れば一つのcontentだからいいんじゃないですかね。

メソッドの後ろについてるpropertyって?

Computed propertiesの宣言ですね。その中のプロパティが変わったら、こっちも変わるようになる。 @each.isDoneみたいなのは「contentの全要素のisDoneというプロパティ」という感じ。

remainingBinding: 'Todos.todosController.remaining'って何これ?

以下の省略記法だと思ってもらえれば。

remaining: function() {
  return Todos.todosController.get('remaining');
}.property('Todos.todosController.remaining'),

Qiitaにtappの記事を投稿してみました

QiitaRuby開発環境アドベントカレンダーなるものが行われていたので、tappについて投稿してみました。(1日遅れてすみませんでした…)

tappでプリントデバッグを便利に行う

ここを読んでくれている方は「あれ?」と思ったかもしれませんがtappについてそろそろ一言言っておくかの焼き直しです。ちょっと違う層にも届くといいなぁと思って書いてみました。

CentOS 5系からrpmとyumを消してしまった話

すごく悲しい出来事が起きたのでご報告。

そもそもはcapybara-webkitを入れるためにQtの環境を作ろうとしたところ、ドキュメントにはCentOS 6.2の話しかないので試しに同じ手順でやってみたのです。

そうすると、rpmで入っているsqlite3のバージョンが古くてうまくいかなかったので、sqlite3をアップグレードしようとしたのがよくなかった。

単純にアップグレードしようとしても「コンフリクトするよー」と言われてしまい、じゃあ消せばいいかとyum remove sqlite3を…いろいろ巻き添えになって消されそうだったんだけど、まあこの際一回パッケージを綺麗にしようとyを押してしまったら最後、rpmとyumまで消えてしまったのでした…

rpmがsqlite3に依存していて、yumがrpmに依存しているので結局ほぼ統べてのパッケージが消えてしまい、数分ほど放心状態に(テスト環境でホントによかった)(本番ではそんな雑に作業しないつもりだけど)。

とりあえずGoogle先生からCentOS6.0でrpmをインストールする方法というページを教えていただき、同じバージョンのCI環境をつかってrpmやyumを復旧したのでした。

で、結局capybara-webkitは普通にqt4-develを入れればよかったという落ちで、ほんとに涙目でした。みなさんもパッケージを消すときは気をつけましょう。

(ここから愚痴) そうはいっても、やっぱりパッケージ管理システムが切腹できちゃまずいと思うんですよ。ちゃんと見ろとか、ダブルチェックとかそういう話にしてもしょうがないと思うんですよ。 たとえば、Gentooなら

$ sudo emerge -C portage
 * This action can remove important packages! In order to be safer, use
 * `emerge -pv --depclean <atom>` to check for reverse dependencies before
 * removing packages.
 * Not unmerging package sys-apps/portage-2.3.4-r4 since there is no valid
 * reason for Portage to unmerge itself.

という感じでそもそも消せないわけで、また一つCentOSが嫌いになったのでした。

生誕 3 & 30 周年記念イベントに行ってきました。

各種SNSでコメントをくださったみなさま、ありがとうございました!

みなさんご存知のことかと思いますが、息子と私は誕生日が一緒で、私とウィリアム王子と高校の同級生は年まで一緒なわけです。

そんな私の生誕30周年、息子は生誕3周年の記念日だったので、スカイツリーの下まで散歩に行ってきました。

ちなみにプレゼントは365日いつでも受け付けておりますよ!

https://amzn.to/kenchan-wl

Seleniumで立ち上がるFirefoxに画面を占有されたくない人のawesomeの設定

capybara-seleniumを使ったテストがあると、急にブラウザが立ち上がって(タイル型WMだと特に)邪魔なので、Awesomeの設定でFirefoxの起動する場所を決め打ちすることにしました。

設定自体は、デフォルトのrc.luaにコメントアウトされた状態で存在しているので、そのコメントを外してあげればだいたいできます。

awful.rules.rules = {
  { rule = { class = "Firefox" },
    properties = { tag = tags[1][9] } }
    -- 1番ディスプレイの9番タグで起動する
}

これだと、単純にFirefoxを使いたいときも9番に起動してしまうんですが、Firefoxを使いたいことなんて滅多にないので問題ありませんよね。

散髪

前回から3ヶ月くらい。昔は2ヶ月で我慢できなくなってたのに最近は3ヶ月持つようになってしまった。

気にしなくなったのか、のびる速度が遅くなったのか!?

社内リーンスタートアップ読書会はじめました

Lean Startup Camp Tokyo Spring 2012に行ってだいぶ意識が高まっていたのですが、ようやく第1回を開催しました。 初回なので、なんでこの本の読書会をやりたいと思ったのかを伝えてから、1部の終わりまでざっと進めました。

かなり物語が多いので、一字一句読み合わせるというよりは、パラパラ読みながらみんなの認識を合わせていく(ここはこういうことだよね?)感じでやってみましたが、まずまずだったのではないでしょうか。

1周して終わりという本ではないので、「集まった人が気になっているところを、どこでも何回でも読む」というルールで進めていこうと思います。

リーン・スタートアップ  ―ムダのない起業プロセスでイノベーションを生みだす
リーン・スタートアップ ―ムダのない起業プロセスでイノベーションを生みだす

FFXI 10周年

みたいです。

PS2のベータテストでおなか一杯になってしまって、サービス開始では課金しなかったんですが、ひょんなことからアトルガン前くらいから再開(?)することになったような記憶があります。

最近は、先々週くらいに新ナイズルで@1ミリで100層クリアを逃がしてから、強化魔法スキル500のための装備を揃えるのに?00万ギルほどつぎ込んだのでいたのでした。(ピアス買ってないけどピアス買ったほうが安かった…)(失敗したときは480くらい) リゲインが1多かったらその時クリアできたのかわからないけど、不安材料は少しでも減らしたほうがいいですからね。(と心に言いきかせている)

というわけで、もうしばらくFFにはお世話になるつもりなので、これからもよろしくお願いします。

日記に残しておかないといけない4月の出来事

2つほど今日処理しましたが、まだまだあるので書いておきます。

  • Lean Startup Camp Tokyo Spring 2012に行った
  • リーンスタートアップ読んだ
  • Rails Tutorialのいいところ
  • 新人がやってきた
  • AndroidのZaimを1ヶ月使ってみたけどこりゃだめだ
  • 未来日記最終回の数日後になぜか家に漫画がたくさんあった
  • hsbtにWeb日記勉強会をやってもらった

Rails勉強会@東京に参加しました

子供を連れてきてうるさくしていたのが私です…本当にすみませんでした…

もうちょっと持つかなぁと思ったのですが、子供1人は無理ですね。次回はみんな子供を連れてくればいいのでは?(ごめんなさい)

参加したセッションは、「Rails Engine」と「テストについて」の2つでした。

Rails Engine

Rails Engineについて一家言あるような人はいなかったので、RAILSCAST #277 Mountable Enginesを淡々を写経しながら議論していました。

Q. EngineにするのとRailtieを継承したクラスを作ることの違いは?

EngineはRailtieを継承している。そして、EngineになるとRackのミドルウェアになる。 なので、Generatorを拡張するようなものはEngineにせずにRailtieを継承して作るのもあり。

Q. assetsの下が他のEngineのassetsに影響したりしないの?

明示的に読みこまない限りない。たとえば、RailsAdminはbootstrapを使っているけど、それがRailsアプリケーションに影響を与えたら大変なことになる (今はアプリケーション自体もEngineとして動作している)

Q. exception_handler.rb のファイルパスが間違ってますよね?

ascii castの日本語版だと間違ってるみたいです。あと、ファイルの中の改行もそのままだとsyntax errorなので一行に書きましょう。 (原文では正しくなってます)

おまけ

Engineをrails newしたあと、.gitignoreにGemfile.lockが足されていたほうがいいような気がするんですがどうなんでしょ。

テストについて

だいたいmoroへの質問コーナーになってしまっていて、もうちょっとやりようがあるんじゃないかなぁと思ったのでした。

まとめ

実は初参加だったのですが、勉強会らしい勉強会に久し振りに参加したような気がします。 進行役 & 会場係の@takkanmありがとうございました。

WEB+DB PRESS Vol.68が届きました

いつもありがとうございます!今号は連載終了と連載開始がたくさんあって、年度の変わりを感じました。

Rubyわくわくナビはかなり好きだったのに終わってしまうのですね。お二人の次回作に期待しております!

WEB+DB PRESS Vol.68
WEB+DB PRESS Vol.68

Jenkins Plugin(JRuby)の勉強会をしました

昨年から細々と続けている社内勉強会の60分一本勝負で、(デブサミで川口さんとnahiさんからいろいろ聞いてきた)hsbtにJenkinsプラグインをJRubyで書く方法について教えてもらいました。

私はそもそもJavaが入ってなかったので次のような感じでいろいろ入れるところからスタート。

最後に入れているjpiがJRubyでJenkins Pluginを作るためのgemだそうな。

手順としては、

  • jpi new hogehgoeで雛形を生成
  • jpi generate hogehoge fugafugaとしてできたファイルを編集
  • jpi buildでパッケージング
  • jpi serverで作ったプラグインが入ったJenkinsが起動

という感じで、generate hogehogeがけっこう肝な感じでした。

Generatorは、いまのところ次の6つがあるんですが、後半はhsbtもよくわからないとのこと。

  • publisher (設定画面で「ビルド後の処理」に入るもの)
  • builder (設定画面で「ビルド」に入るもの)
  • wrapper (設定画面で「ビルド環境」に入るもの)
  • node_property
  • run_listener
  • computer_listener

まずは、上の3つをいろいろ使ってみたり、いまのところJRubyで書かれた唯一のプラグインであるrvm-pluginを見ながらエスパーしたり、「Rubyで書けるならこう書きたい!」みたいなのを考えてみようかという話をしていました。

あとは、Gentooでjpi serverが動かない問題を調査して、pull requestはhsbt(と奥さんの英語力)に託したりと、なかなか有意義な勉強会でした。