タグ

ブックマーク / r7kamura.hatenablog.com (30)

  • Casual CI server - ✘╹◡╹✘

    r7kamura/altria https://github.com/r7kamura/altria ここ最近、Altriaっていう名前でCasual CI serverを開発してる。 まだまだ発展途上で、実質的には登録しておいたシェルスクリプトを実行するCron程度の能力しかない。 簡単に説明すると、AltriaはRails 4で作ったJenkins cloneで、Rubyでプラグインを書けるようになっている。 プラグインはRails Pluginの仕組みをそのまま使っていて、Gemにしてアプリに入れられる。幾つか試作品でプラグインを作ってみていて、 Gitと連携させたり、 認証を付けたり、 ジョブ実行後に指定したジョブを実行させたり、 ビルド毎の処理時間をグラフで表示したり、 カバレッジと連携させたり、という機能をそれぞれプラグインで提供できるようになっている。 体にREST API

    ainame
    ainame 2013/07/17
  • 家の実装 - ✘╹◡╹✘

    家にインターネットが来たのでAmazonでポチッたりして色々と環境を整えた。 ダイニングテーブル みんなでごはんべるのに大きいテーブルが欲しかったので、とりあえず卓球台ポチった。 後とか軽く運動したいときにすぐ打てて便利。 AppleTV リビングに良さ気なTVがあるのでAppleTVを導入してみたところ、想像以上に文化的な生活になった。 SoundCloudの音楽を流したり、YouTube見たり、AirPlayでMacの画面を流したりするのに使ってる。 ハッカソンとかやる時はプレゼンしたりするのに便利かもしれない。社のラウンジにもこれあったらいいのに。 MacはMountain Lion以降だとAirPlayが使えるようになるけれど、2011年より古いMacGPUは対応していない。 普段TV見ないけど音が無いのは寂しいので、適当なコンテンツが流れ続けるソリューションがあると良い。

    ainame
    ainame 2013/07/16
  • 卓球ハウスに引っ越した - ✘╹◡╹✘

    友人と一軒家を借りて引越した。 3月頃からインターネットから人が集まって物件を探し始め、 5月頃に物件が決まり部屋の退去届を出すも物件がキャンセルされ住む場所が無くなり、 ちょっと高いけど良さ気な物件を見付け、もうこれ以上良い物件は出ないだろうということで6月に契約を進めて先週末に引越した。 地下室とか屋根裏とか面白スペースがあってめっちゃいい。 引越し初日にはインターネットの方から人間が沢山やってきて、蕎麦粉と綿棒と秒速5cmを差し入れて頂いた。 引越し初日でまともな包丁が無かったのでMacbookAirで蕎麦を切った。 住人間で家の情報をまとめるのにGitHubを使ってみてる。 ウォーターサーバー欲しいとか家賃徴収とかのIssueをどんどん登録して、適当にラベリングしたりMilestone作ったりして遊んでる。 家計簿を取るのにはZaimを調べてみたものの、複数人での管理が難しくて結局

    ainame
    ainame 2013/07/02
    まだ引っ越せてない
  • Boxenを実行すると何が起こるのか - ✘╹◡╹✘

    http://boxen.github.com/ https://github.com/boxen/boxen https://github.com/boxen/our-boxen スゴイスゴイと言われていて誰も使っていないBoxenだけど、昨日の朝コードを読んでみた。折角なので、boxenコマンドを実行すると何が起こるのかというのを、Rubyのメソッド単位のコールグラフという形で簡単に説明する。 処理の流れ 1. レポジトリをgit-pullで更新 2. 環境変数や前回実行時に保存しておいたJSONから設定を読み込み 3. 前処理 4. コマンドライン引数に応じて 4-A. puppet-applyを実行 → 後処理 4-B. その他便利コマンドを実行 → 終了 Puppetの扱い librarian-puppetという仕組みが利用されていて、Puppetfile(=Puppet版Gem

    Boxenを実行すると何が起こるのか - ✘╹◡╹✘
  • Haah Doccoy - ✘╹◡╹✘

    http://r7kamura.github.com/mmd.js/docs/parser.html https://github.com/r7kamura/mmd.js/blob/master/coffee/mmd/parser.coffee CoffeeScriptで開発しているmmd.js にドキュメントを書こうと思って色々ツールを探した結果、Doccoが良かった。 書くコストが低く、ある程度フォーマットが統一され、 エディタとブラウザでそれぞれに適したフォーマットで読める、というものを探していた。 他にはJSDoc、YUIDoc等を見た。 Doccoは新しく覚えることが少ない点が良かった。 HTML形式で出力してくれる奴は、github-pagesとも相性が良い。 コードリーディングの時に過程を残しておく用途にも良いかもしれない。 $ npm install -g docco $

    ainame
    ainame 2013/04/04
    これ良い。
  • Nyanko - ✘╹◡╹✘

    https://github.com/r7kamura/nyanko _ ∧ ∧___ /(*゚ー゚) /\ Nyanko is a Rails extension framework, /| ̄ ∪∪  ̄|\/ which is deeply inspired from Chanko | |/ and has same API and clean implementation as Chanko.  ̄ ̄ ̄ ̄ ̄ https://github.com/cookpad/chanko 金曜初めてChankoのコードを読んだので、練習のつもりでNyankoという名前で再実装してみた。New Chankoを縮めてNyankoとしたのだけど、語感が可愛いので開発のモチベーションがちょっと上がった。雰囲気的には鍋みたいな感じです。Chankoは黒魔術を駆使してつくられているけど、非常に深く考慮しながら設

    Nyanko - ✘╹◡╹✘
  • beとdoを分離する - ✘╹◡╹✘

    http://clean-ruby.com/ The classes that we begin to define should represent data or model the behavior of the data object, but *not both* 札幌でおっさんっぽい人達がDCI、DCIって言って盛り上がってたから、最近DCIについて触れるためにClean Rubyってをゆっくり読んでみてたんだけど、筆者がこういう主張をしてて、ナルホディウス、ナルホディウスですぞーって思ってた。どう在るかというのと、どう振舞うかというのは、それぞれ別の箇所でまとめて定義されているべきとのこと。実装としては、Userみたいなclassがデータ(=どう在るか:be)を定義していて、XXXableとかXXXerみたいなmoduleが処理(=どう振る舞うか:do)を定義していて、Us

    beとdoを分離する - ✘╹◡╹✘
  • DRY原則とテストの可読性 - ✘╹◡╹✘

    DRY原則に従おうとするほど、テストコードがどんどん読みづらくなる。 The RSpec Bookに答えがあるかと思って読んでみたものの、「あるある」と一言述べているだけだった。辛い。 テストコードが読みづらくなる例を示すために、1つRubyのライブラリをつくった。 値とパターンを与えてValidationを行う機能を提供するライブラリ。 実装60行、テスト120行なので、詳しく見たければすぐ読めると思う。 最近不意ながらキラキラネームの命名力が上がってきたと思う。 avalon - A validator implementation for Ruby https://github.com/r7kamura/avalon 冗長だが読みやすい例 letもsubjectもローカル変数も何も用いずに率直に書いたテストコード例がこちら。 冗長だが読みやすく、テストコードを見ればライブラリの使い

    DRY原則とテストの可読性 - ✘╹◡╹✘
    ainame
    ainame 2012/09/03
    読みやすいテストのパターンが欲しい
  • 最近のPerlのデバッグ - ✘╹◡╹✘

    Perlよく分からないけど最近こうやってデバッグするようにしてる。 Data::Printer これまで値の確認にはData::Dumperを利用していたけど、程良く整形して色付けしてくれるData::Printerを使うようになった。use Data::Printerの代わりにuse DDPというエイリアスでも利用できる。useするとpという整形出力用メソッドを提供してくれる。Rubyで言うと、ppを利用していたのがap(=awesome_print)を利用するようになったというイメージ。これは適当にSelenium::Remote::Driverクラスのインスタンスをpメソッドで出してみた図。 Carp::REPL REPLはコード中で処理を止めてPerlの対話環境を開くやつ。これまで使ってなかったけど、良さそうという話をTLで見かけたので、適当にData::Printer入れて値確認

  • Ruby合宿2011に参加した - ✘╹◡╹✘

    目次 きっかけ 僕は重度の臆病者で 人に教えること 複数人でつくること 1番大事にしたいこと おしまい 出来るだけ素直に書こうとしたら、文体が中学生っぽくなったので注意して読んで。 8月8日から8月12日までの5日間、僕は島根県で行われるRuby合宿というイベントに参加した。これは島根県主催で行われてるイベントで、5日間でRubyを基礎から学べる合宿だった。県としては島根県内IT企業への就職機会を増やすという目的もあったんだけど、参加者の目的の大部分はやはり、プログラミング言語Rubyの習得にあった。 きっかけ 僕もその1人で、Rubyのことを知るためにこの合宿に参加した。僕は普段、少しだけRuby on Railsを使ったことがあって、その中で使われているRubyという言語に興味があった。僕がRailsに出会ったのは2年ほど前のことで、当時の僕はまだプログラミングを知らなかった。大学でた

    ainame
    ainame 2011/08/15