タグ

ブックマーク / route477.net (41)

  • Route 477(2014-06-06)

    ■ [prog] コメントの話 去年くらいから仕事のコードでは、privateも含めて全部のメソッドに「何をするメソッドか」という簡単な説明を書くように心がけています。 こういうやつですね。 # このレコードの種類を文字列で返す # 種類が未定義の場合はnilを返す def type_name FOO_NAMES[self.foo_type] end 理由をメモ的にまとめておきます。 1. コメントがあると読む人が助かる バグ修正や機能追加とかで、コードを読む機会というのはけっこうある。そういうときにメソッド単位でコメントがあるとすごく助かる。*1 1行書いておくだけで情報共有のコストが下がるなら、充分良い投資ではないかと思います。 あるいはメソッドを短くして適切なメソッド名を付ければ、コメントは要らないのではと考えたこともあるけど、当に意図がソースから自明になることって少ないんですよね

    Route 477(2014-06-06)
    hitode909
    hitode909 2014/06/08
    いい話
  • Route 477(2013-01-26)

    ■ [book] 『iPodは何を変えたのか?』(スティーブン・レヴィ) iPodは、「成功」という言葉ではとうてい表現しきれないほどの大勝利を収めた。 [p.7より引用] 4797334150 今では「iPhoneiPadの会社」として認知されたりしてそうなAppleだが、書はそれらの元となったiPodについて、社会に与えた影響をさまざまな角度から記したものだ。 著者がITジャーナリストということで、スティーブ・ジョブズのインフォーマルなコメントが各所に挟まれているのが興味深い。 原著の出版は2006年。iPod classic, shuffle, nanoが世の中に出まわっていて、iPhoneが発表される前年だ。 以下おもしろかったとこ。 第一章 パーフェクト p.18 "「つまり…一千曲分をポケットで持ち運べる、それがiPodだ。」" iPodの最初の発表会。しかし、399ドル(

    Route 477(2013-01-26)
    hitode909
    hitode909 2013/01/29
  • JSXでunderscore.jsを使ってみた - Route 477

    ■ [jsx] JSXでunderscore.jsを使ってみた JSXを触ってみたのだけど、二次元配列を初期化するのにforループ回すのが面倒だと感じる体になってしまったので、 underscore.jsを呼んだりできないか試してみた。 https://github.com/yhara/underscore.jsx 「native class」というキーワードを使うと外部モジュールの型を記述できるらしいので、それでなんとか動いた。 まだ_.rangeと_.zipくらいしかないけど。 _.zipの型は static function zip(...arrays:variant): variant[]; ではなく static function zip(...arrays:variant[]): variant[]; のような気がするが、こう書くと_.zip([1,2],[3,4])がno f

    JSXでunderscore.jsを使ってみた - Route 477
    hitode909
    hitode909 2012/09/26
  • Enumerable#lazy @松江RubyKaigi03

    hitode909
    hitode909 2011/11/30
  • Route 477(2011-10-25)

    ■ [ruby] gistを使って小さなgemを公開する方法 http://jeffkreeftmeijer.com/2011/microgems-five-minute-rubygems/ 「bundlerがあれば、rubygems.orgにアップロードしなくても公開gitリポジトリさえあればgemとしてインストールできる」 「gistにはgitコマンドでファイルをチェックアウトする機能がある」 1.2.より、gistを使えばrubygems.orgにアップロードしなくてもgemを公開できる という話。 サンプルはこちら:https://gist.github.com/1232884 Gemfileに以下のように書けば、bundle installでこのgemがインストールされる。 gem 'bang', :git => 'git://gist.github.com/1232884.gi

    Route 477(2011-10-25)
    hitode909
    hitode909 2011/10/25
  • Route 477(2011-01-13)

    ■ [git][ruby] github gemからgit-hub gemに乗り換えた 自作のプロジェクトgithubで公開するとき、わざわざWeb画面からリポジトリを新規作成していませんか?hubコマンドをインストールすれば、「hub create」一発でできますよ。 githubのリポジトリをコマンドラインから操作するのにgithubコマンド(github gem)を使っていたのだが、ある時からcreate-from-localが動かなくなってたり、Ruby 1.9に未だに対応してなかったりするので おかしいなと思ったら、もっと新しいツールがあったらしい。 https://github.com/defunkt/hub $ gem install git-hub でインストールすると、hubというコマンドが使えるようになる。例えば現在のディレクトリからgithubリポジトリを新規作成す

    Route 477(2011-01-13)
  • Route 477(2010-11-16)

    ■ [ruby] Seattle.rb推奨の「gem名の命名規則」 http://blog.segment7.net/articles/2010/11/15/how-to-name-gems 基的にアンダースコアで単語を区切る 既存のgemに機能を追加するもの(autotest-growlとか)の場合のみ、ハイフンで区切る 大文字は使わない(case-insensitiveなOSのため) 最後の理由は、例えばWindows上だとrequire 'ZenTest'をrequire 'zentest'と書いても通っちゃうみたいに、初心者が意図せずプラットフォーム依存なコードを書いてしまう危険性があるからとのこと。 Rubyの標準添付ライブラリも、そろそろ命名規則を統一した方がいいんじゃないかと思ったりもする(tempfileとtmpdirとか)。 ■ [golang][book] 「はじめて

    Route 477(2010-11-16)
    hitode909
    hitode909 2010/11/17
    へー
  • Route 477(2010-10-22)

    ■ [linux][ruby] RVMでUbuntu 10.10上にRuby環境を構築する それ「aptitude install ruby」でできるよ、っていう話なんだけど、 個人的な理由でrvm使ってインストールすることにする。 普段は1.9.2でいいんだけど、一応非常用に1.8.7にも切り替えられるようにしておきたい Rails2とRails3を切り替えて使ったりしたい*1 手順は以下。 1. aptitudeのインストール aptitudeって最初から入ってないんだっけ? $ sudo apt-get install aptitude 2. curlのインストール rvmのインストールに必要 $ sudo aptitude install curl 3. rvmのインストール http://rvm.beginrescueend.com/rvm/install/ 「git HEADを

    Route 477(2010-10-22)
  • ■ [ruby] FiberをRuby 1.8にバックポートするfiber18

    ■ [ruby] FiberをRuby 1.8にバックポートするfiber18 Ruby 1.9のFiberを、1.8のThreadを使って実装したものらしい。 http://github.com/tmm1/fiber18 1.9のThreadはネイティブスレッドだけど、1.8のThreadはグリーンスレッド(自前実装)なので、実は1.9のFiberとよく似てるのである。 違いと言えば、Threadは勝手に切り替わるけど、Fiberは明示的にFiber.yieldを呼ばないと切り替わらない。後者で前者を実装することはできないが、逆は可能であると。 ソースはこちら: http://github.com/tmm1/fiber18/blob/master/lib/fiber18.rb threadライブラリのQueueクラスを使っているようだ。 Queueは、ただのキューではなく、空のときにpo

    ■ [ruby] FiberをRuby 1.8にバックポートするfiber18
    hitode909
    hitode909 2010/07/30
  • Route 477(2010-05-24)

    ■ [lisp][scheme] 社内勉強会でLisp概論的な話をした (以下、わりと適当な資料) Lispといえば? 最初の動的言語 最初のGC付き処理系 人工知能研究の言語として活躍 括弧 マクロ 1957年 FORTRAN 1958年 ALGOL58, LISP 1960年 COBOL 1964年 BASIC LISP戦国時代 方言の乱立 LISP二大政党時代 Common Lisp (1984-) 方言の統一 標準規格が存在 (ANSI CL) http://www.lispworks.com/documentation/HyperSpec/Front/Contents.htm SBCL, Clisp, Allegro CL(商用), ... LISP-2 tとnil マルチパラダイム、コンパイラ、リーダマクロ、パッケージ、CLOS Scheme (1975-) ミニマリズム 処理

    Route 477(2010-05-24)
    hitode909
    hitode909 2010/05/24
  • Route 477(2010-04-28)

    ■ [presen] プレゼンテーションのスライドに顔文字を使うというアイデア 顔文字っていうかemoticonですか。 「これはいいことなのか、悪いことなのか」が直感的に分かるのでいいかも。 from とりあえず僕のスライドを公開 - あどけない話 ■ [ruby] rvmを使うと、複数のRubyを共存したり、Rails 2/3を共存したりできる という話がRuby Freaks Loungeに上がってましたね(丸投げ)。 Ruby Freaks Lounge:第39回 RVM(Ruby Version Manager)による環境構築|gihyo.jp … 技術評論社 Ruby Freaks Lounge:第40回 RVM(Ruby Version Manager)による環境構築(2)|gihyo.jp … 技術評論社 今のところMacPortsのruby 1.8.7を普段使いとして、自

    Route 477(2010-04-28)
    hitode909
    hitode909 2010/04/28
  • Route 477(2010-04-16)

    ■ [rails] Rails2/3用の認証プラグイン「devise」 http://github.com/plataformatec/devise Railscastsに簡単な紹介が上がってますのでそちらをどうぞ。 動画:Railscasts - Introducing Devise テキスト起こし:ASCIIcasts - “Episode 209 - Introducing Devise” 特徴は 必要なモデル・コントローラはUserのみ (Sessionは使わず、/user/sign_in とか create_user_session_path とかを使う) 認証周りのいろいろな機能がそれぞれモジュール化されている (confirmable, :recoverable, :rememberable...) とか。 Ruby Toolboxの他のプラグインとの比較は: Authlog

    Route 477(2010-04-16)
    hitode909
    hitode909 2010/04/17
  • Route 477(2010-04-04)

    ■ [ruby][book] Rubyを使いこなすための一冊、『Rubyベストプラクティス』 「Ruby Best Practices」の和訳がオライリーから出て、読みたいなーと思っていたらなんと献をいただいてしまった。 有り難いことです。 4873114454 内容を一言でまとめると、「実践Ruby」あるいは「Ruby中級者レッスン」という感じ。 4873113008の方とはちょっと毛色が違ってて、Rubyの正しい書き方というより、 Rubyを実践的に使う際のさまざまなトピックについて解説されている。 Rubyでプログラムを書き始めた人から、Rubyを長く使っている人まで、読めばなにかしら得るものがあるだろう。 僕も(まだところどころしか読んでないが)いくつか「なるほど」と思うことがあった。 1章はテストについて。 2章はRubyでのAPI設計について(引数・ブロックとかね)。 3章は

    Route 477(2010-04-04)
    hitode909
    hitode909 2010/04/05
  • Route 477 - Ruby 1.9.2のリリースプランが発表 (7月末リリース予定)

    ■ [ruby] Hashのデフォルト値にHashを設定しようとしてはまった話 h = {} ary.each do |x, y, z| h[x] ||= {} h[x][y] = z end をもっと短くしようとして、 h = Hash.new{ {} } ary.each do |x, y, z| h[x][y] = z end としたら上手く動かない。あれっ? デフォルト値が{}じゃなくて数値の場合、例えば h = Hash.new{ 0 } ary.each do |x| h[x] += 1 end みたいのはちゃんと動くわけです。上のとどう違う? h[x][y] = z はどういう動作になるか考えてみよう。 hにxというキーがある場合: h[x]というハッシュに、(y, z)のペアを保存。 hにxというキーがない場合: ブロックが呼ばれて、その値が返る。返り値であるハッシュに、(

    Route 477 - Ruby 1.9.2のリリースプランが発表 (7月末リリース予定)
    hitode909
    hitode909 2010/03/19
  • Route 477(2010-03-16)

    ■ [ruby] Ruby meets Manpage manは、Unix系OSで一般的に使われているドキュメントシステムだ。 これを、Rubyのgemに対しても応用できないかという試みが現れた。 その名もgem-man。 gem install gem-man とすると、 gem man <gem名> でそのgemの説明が見られるようになる。例えば gem man gem-man とか。 ライブラリ作者の側では、gemを作る際にman/以下にmanのファイルを置けばいい。 manファイルの作り方はman whatが参考になりそう (ronnを使う例が載っている)。 おまけ http://man.cx/ruby : ネットでmanを引けるサイト。

    Route 477(2010-03-16)
    hitode909
    hitode909 2010/03/16
  • Route 477(2010-03-02)

    ■ [git] githubで任意の2点間のdiffが取れるようになったぞ (from Introducing GitHub Compare View - GitHub) 例1: http://github.com/magnetised/mongomapper/compare/master...proxy_owner compareの後に、始点と終点を書く。 例2: http://github.com/jquery/jquery/compare/omgrequire ブランチ名だけでもOK。 例3: http://github.com/sinatra/sinatra/compare/0.9.3...0.9.4 タグ名を使った例。リリース間の変更点が見られる。 32 https://www.google.co.jp/ 23 http://reader.livedoor.com/reader/

    Route 477(2010-03-02)
    hitode909
    hitode909 2010/03/03
  • Route 477 - Ruby基礎文法最速マスター&Ruby書籍紹介

    Perl基礎文法最速マスターをだいたいそのまま、Rubyに置き換えてみました。 他の言語をある程度知っている人はこれを読めばRubyの基礎をマスターしてRubyを書くことができるようになる…かも知れません。無保証です。 参考: オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (1.9.2) オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (1.8.7) ■ 1. 基礎 インタラクティブRuby (irb) irbを使うと、Rubyのプログラムを簡単に練習することができます。 /Users/yhara $ irb irb(main):001:0> puts "hello" hello => nil irb(main):002:0> 1 + 1 => 2 以下の説明は、irbを起動して、自分で試しながら読むと習得が早いと思います。 表示 (print,

    Route 477 - Ruby基礎文法最速マスター&Ruby書籍紹介
    hitode909
    hitode909 2010/01/25
  • Route 477 - shinhさんの迷路ゴルフ解読した

    ■ [ruby] shinhさんの迷路ゴルフ解読した ビフォー: q=gets(p)*1,~/S/ (a,i,*q=q a[i]<?S&&a[i]=?$ 4.times{|x|q+=[a*1,x]if$_[x=-~x%3*-~~/$/-~/$/+-x/2+i]!=$_[x]=?*})while/G/ puts a http://shinh.skr.jp/m/?date=20100113#p06 アフター: seen = gets(nil) queue = [[seen.dup, ~/S/]] wid = ~/$/ while seen =~ /G/ maze, here = *queue.shift maze[here] = ?$ unless maze[here] == ?S 4.times{|k| d = (k+1) % 3 n = here + (d-1)*wid + (d + -k

    Route 477 - shinhさんの迷路ゴルフ解読した
    hitode909
    hitode909 2010/01/17
  • Route 477(2009-12-02)

    ■ [ruby] Ruby 1.9ではハッシュをJavaScriptっぽく書けます (※12月の1日から25日まで、日替わりでRubyのTipsを紹介するイベント、Ruby Advent Calendar jp: 2009参加記事です。) ご存じない(あるいは、忘れている…)方もいると思いますが、Ruby 1.9ではハッシュリテラルをJavaScriptのオブジェクトリテラルのように簡潔に書ける 文法が追加されています。 例えば、 {:a => 1, :b => 2} の代わりに {a: 1, b: 2} と書くことができます。キーはSymbol限定とはいえ、これは短い! Railsでよくあるオプションなんかも: has_many :moves_from, :class_name => "Move", :foreign_key => :account_id_from このように、短くなりま

    Route 477(2009-12-02)
    hitode909
    hitode909 2009/12/02
  • Route 477

    GitHubindexHello source: index.md View on github | Report issue Generated by middleman 3.1.6. Powered by Ruby 2.2.2.