タグ

ブックマーク / rosylilly.hatenablog.com (13)

  • Gondler という bundler for golang を作った - 鳩舎

    2番煎じ乙。 Gondler という Bundler みたいなツールを go 向けに作りました。gom という先行実装があるのでもう作らんでもええかな感があったのですが、Ruby っぽいけど Ruby じゃない Gomfile とか、bundle exec 相当の機能がないとか、そういう理由でわざわざ自作しました。 基的には bundler なので、バージョン、というよりコミットハッシュとかをロックするのに使います。 fork 元の gom との違いは インストール先ディレクトリがデフォルトでは .gondler になっている(変更可能(gom は変えられない)) Gondler 環境下の repl が起動できる(gondler repl) Gomfile を自動生成する機能はない Travis 用の yml を自動生成する機能はない bundle exec 相当の gondler ex

    Gondler という bundler for golang を作った - 鳩舎
    syanbi
    syanbi 2013/09/29
    おお
  • RubyKaigi 1 日目 - 鳩舎

    ルビー会議楽しいですね。 ということで RubyKaigi はおいておいて、メソッドキャッシュの話をしましょう。笹田さんの発表の最後で出てきたやつです。僕は一人で感動に打ち震えていましたが、 IRC に書いたのは『Charlis++』とか書いててですね、ちげーよ Charlie だよみたいなことを家に帰ってから気づいて、アーオって気持ちになりました。 そんなこんなで問題のチケットはこちら。もうチケット名みただけでヨダレ垂らしながら転げまわりたくなりますね。やったぜクラスヒエラルキーメソッドキャッシュサイコー。 ちょっと関係ないコミットとかも混ざって出てるんですけど Github でどういう変更がなされたかが見れます。さらっと流し読みしながらどう変わったかを見てみましょう。 bye bye ruby_vm_global_state_version メソッドキャッシュに使われていた ruby_

    RubyKaigi 1 日目 - 鳩舎
    syanbi
    syanbi 2013/05/30
    Rubyのソースコード読むポイントとかあるのだろうか...(目的によって違うんだろうけど...)
  • プログラミングの話 - 鳩舎

    この辺見て、いつも思ってること。 プログラミングはアプリを作ることの手段なのか - 銀の人のメモ帳 プログラミングはそれ自体が目的であっていい - mizchi log プログラミングを勉強したい人が勉強する前にすべきこと - もとまか日記 プログラミングは手段です。僕にとっては。 「動けばいいコード」は糞コードだ でしょうね。としか言い様がないです。 あえて例え話にして、プログラミングを車の運転だとします。プログラマは運転手です。 でまぁ、アプリを作るってのが伊豆の旅館に行くことだとしましょう。この時、僕の運転する目的は伊豆に行くことです。間違っても運転することは目的じゃないです。なので別に運転に特に気を使うことはありません。 そこに突然 F1 ドライバーがやってきて、『お前のカーブの曲がり方は下手くそだ』とか『もっといいルート選択がある』とか『こんな運転の仕方じゃガソリン代がもったいな

    プログラミングの話 - 鳩舎
  • 適切な名前がつかないモデル - 鳩舎

    ちょっと目についたので。Dis りたい訳じゃないです。 これ適切な名前が見つからないとき困るんだよなぁ。あとで思いついて変更なんて作業はしたくないし。割り切ってRoomUser式に統一した方が気が楽だと思う。 http://b.hatena.ne.jp/kensatou/20130512#bookmark-145186810 id:kensatou さんの言う『適切な名前が見つからない時』がわからないのでなんとも言いがたいのですが、割りきって RoomUser 式に統一は悪手だと僕は思っています。 大体からして何らかの案件なり要望なり青写真なりをモデルに落とし込んでいる時に『名前がつかないモデル』が出てくるということは、それは何かが噛み合っていない状況のアラートだと思っています。 ぱっと思いつく状況だと 英語力が足りない: 僕は大抵このパターンなので辞書を引きます。それでもわかんなかったら

    適切な名前がつかないモデル - 鳩舎
  • 関連モデルの命名 - 鳩舎

    今日は Rails での『関連モデル』の名前について考える。 構造としてはこんな感じ。 ・ルーム(Room)に所属するユーザー(User) ・ルーム(Room)での管理者権限を持つユーザー(User) どちらの関連も N:N の関連。いわゆる has_may な感じ。 で、こういう時の命名って Room モデルと User モデルだから RoomUser とか UserRoom とかっていうモデルやテーブルを作りがちなのだけれど、今回は同様の形態の関連が2つあるのでちょっと微妙な事になりそう。 っていうか、まずもって RoomUser モデルってなんだよ。なんのモデルだよそれ。って感じなので名前を考える。 ルーム(Room)に所属するユーザー(User) 関連モデルのデータは大抵2つのフィールドを持っている。 Migration あたりから抜き出すと t.references :room

    関連モデルの命名 - 鳩舎
    syanbi
    syanbi 2013/05/11
    Managerとすると支配人となり、それこそ何を支配するんだよってことだから管理する権限を持つという明確な表現があるし、こういう形で分けていく意識を保ちたい... 大変参考になります。
  • #extend が遅い問題 - 鳩舎

    ここで「#extend 遅い!DCI 狂ってる!」というような話があった。 DCI の例でよく出てくる Object#extend でメソッドを呼び出すとすげー遅いね、どうすんのこれという話で、じゃあまぁ妥当にモデルにいろんなものを include したほうがいいんじゃねという話になってくる。 それも一個の解決方法だと思うし、いいと思うんだけど、僕としては実装を別のところに切り出しておきたいので、どうするか考えた結果、 SimpleDelegator とか使って Delegate すればいいじゃないかと思って実装してみたんだけど、 SimpleDelegator って言ってみれば method_missing なのでそれもまぁ重い。 んで Forwardable で実装すればもうちょい早いのではみたいなことでそうやってみた。 結果はこんな感じ(僕の実装は Dicer) benchmark:

    #extend が遅い問題 - 鳩舎
  • DCI の話をした - 鳩舎

    超重要追記 まじで鳩さんのスライドでDCIについて理解したつもりになるの危険だからやめた方がいいです。せめて d.hatena.ne.jp/digitalsoul/20… を読みましょう。DCIはエンドユーザのメンタルモデルを実装に落とし込むための設計パラダイムです— Naoto Takai (@takai) December 27, 2012 とのことなので、このスライドを参考にするのはやめてください。 元記事 会社で DCI の話をしました。 資料はこちらです。 いろんな人から全然便利そうじゃないと評判でした。俺の伝え方が悪い……

    DCI の話をした - 鳩舎
    syanbi
    syanbi 2012/12/25
    DCIについて、太ったmodelをスリムにしようという流れで説明。
  • DCI を考える - 鳩舎

    追記 まじで鳩さんのスライドでDCIについて理解したつもりになるの危険だからやめた方がいいです。せめて d.hatena.ne.jp/digitalsoul/20… を読みましょう。DCIはエンドユーザのメンタルモデルを実装に落とし込むための設計パラダイムです— Naoto Takai (@takai) December 27, 2012 ということで、以下の内容はすべて間違いである可能性が高いです。 元記事 Data - Context - Interaction いわゆる DCI が最近の人気らしい。 DCI そのものの説明をこのエントリでする気はないので、 Sapporo Ruby Kaigi の角谷さんのプレゼンなどを見るとよい。 Rails の場合、 Data はまぁ ActiveRecord / Mongoid などのいわゆる MVC におけるモデル、であっていると思う。これに

    DCI を考える - 鳩舎
    syanbi
    syanbi 2012/12/23
    DCIについて。助かる。
  • Ruby 2.0.0 で WAF を作ってみた - 鳩舎

    Rack にのる WAF を Ruby 2.0.0 の機能を使って実装してみた。無理に 2.0 の機能を使おうとして逆にひどいことになってる箇所とか結構あるので、あんまり満足してないけどとりあえずやりたかったことはできたし満足してる。 コードは Github にある。名前は Lote にした。 Living on the Edge 。そのまま。 rubygems.org に上がる予定はゼロです。そんなに作りこむ気もない。 もの自体は clone して rackup すると起動する。先に bundle install しないとダメか。当たり前だけど Ruby 2.0.0-preview1 以外で動作検証はしてない。 やりたかったこと Refinements を使ってみたい keyword arguments を使ってみたい という2点のみが動機。テスト全然書いてなくて Write and R

    Ruby 2.0.0 で WAF を作ってみた - 鳩舎
    syanbi
    syanbi 2012/11/25
    Refinements興味あるのでlib/lote/util.rb、見る
  • repl がザコなので reel を作った - 鳩舎

    昔 brew install repl 便利 - 鳩舎 で repl というのを紹介したけど、これの補完が貧弱すぎて git なんかだとオプションがわからなくて実用に耐えなくてクソザコだったので reel というのを風邪を直したリハビリがてら書いた。まだ rubygems にあげてない。 git の補完が書き終わったらあげる。 Github: rosylilly/reel 使い方は README に書いてある通り。オプションまわりがちょっとめんどくさいので治したい気分。補完を書くのが大変なので、このへんを誰かにやらせたい。Rakefile の補完とかキャッシュできるので高速に動いて便利だと思う。Rails も。 補完に甘やかされた今時のゆとりに補完のない環境を与えると死ぬ。

    repl がザコなので reel を作った - 鳩舎
  • 転職した - 鳩舎

    こんばんは、みなさんお忘れでしょうが、ニコニコ大会議 in 台湾にてエンジニア代表で登壇して喋ったりしてました、青い頭の男、ロージーです。 ということで 10/31 付でドワンゴの子会社である株式会社キテラスをやめて、11/1 付でクックパッド株式会社に転職しました。 まぁもうちょっと言い方を変えると、ニコニコの人からレシピの人になりました。 転職の理由 確固たる大きな理由というのはまだ整理がついてない。細かい理由ならいくらでもあるけど、自らの中で何が一番大きなものであったかについては上手に説明出来ないです。 まぁ、俺はアレルギーがひどくてえないものが多く、そういう意味でについてエンジニアリングの観点からアプローチ出来る場というのは理想的ではあった。とかそういうのもある。 個別で興味がある人は連絡ください。答えます。 キテラスについて 掛け値なしにいい会社だった。一切の不満はない。

    転職した - 鳩舎
    syanbi
    syanbi 2012/11/03
    転職おめでとうございます!
  • イケメンになった - 鳩舎

    syanbi
    syanbi 2012/10/31
    テクノロジー男子
  • brew install repl 便利 - 鳩舎

    replという便利なソフトウェアを発見したので共有します。 repl(1) -- sometimes you need a repl $ repl git git>> _ repl コマンド名で起動すると、そのコマンドのオプションを入力させられ、その結果を表示します。参考になるページを読むといいです。 マッカーな人向け $ brew install repl Rubyistな人向け $ gem install repl Linuxな人 $ export REPL_BIN=~/bin/repl $ curl -s https://raw.github.com/defunkt/repl/latest/bin/repl > $REPL_BIN $ chmod 755 $REPL_BIN 便利な活用方法 iTermを開く railsプロジェクトのディレクトリへ 画面を分割して、 repl rail

    brew install repl 便利 - 鳩舎
    syanbi
    syanbi 2012/01/26
    コマンド入力受付をloop化して・・・という発想いいわー
  • 1