タグ

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

  • gemを作るときに実行ファイルをbin/以下ではなくexe/以下に置くことについて - Route 477(2015-09-14)

    ■ [ruby] gemを作るときに実行ファイルをbin/以下ではなくexe/以下に置くことについて 例えばあなたがコマンドラインからピザを注文するようなRubyGemsを書いているとすると、今まではbin/order_pizzaに実行用のファイルを置いていたと思うけど、それがexe/order_pizzaに変わるかもしれない、という話。 仕様変更なの? 実行ファイルをどこに置くかというのは完全に慣習の話で、.gemspecの仕様上は好きなところに置けるようになっている。なので既存のgemが動かなくなるという話ではない。 ただbundle gemコマンドでgemを新規生成したときに、以前のBundlerでは.gemspecが以下のようになっていたのに対し、 spec.bindir = "bin" spec.executables = spec.files.grep(%r{^bin/}) {

    gemを作るときに実行ファイルをbin/以下ではなくexe/以下に置くことについて - Route 477(2015-09-14)
    Watson
    Watson 2015/09/15
    新規で gem を作る時に気をつけたい
  • 型推論のある言語作った - Route 477(2014-06-05)

    ■ [types] 型推論のある言語作った まだλ計算に毛が生えたようなものなので、Hello Worldくらいしか動かないですが。 https://github.com/yhara/boom TAPLを読んだからには*1静的型付け言語の一つでも作らなければならないと思って、とりあえず動くとこまで実装した。Boomという名前は適当に付けたのであとで変えるかもしれない。 最初はTAPLのfullreconをベースにしようと思ったのだけど、動かしてみたらこいつは多相型が実装されてなくて(練習問題になってた)、pi8027さんのtypeinferをベースにすることにした。 動かし方 Ruby 2.1が必要*2。 $ git clone https://github.com/yhara/boom $ gem i bundler $ bundle install $ bundle exec rspe

    型推論のある言語作った - Route 477(2014-06-05)
  • Route 477 - UXを重視したプログラミング言語

    ■ [ruby] UXを重視したプログラミング言語 Rubyが生まれたのは今から20年前のことだ。Rubyの肩書きは「オブジェクト指向スクリプト言語」であるが、実のところRubyにしかない特徴的な機能というものは特になく、いろんな言語から良いところを寄せ集めてきたというのはまつもとさんも各所で書かれている通りだ。 その代わり、Rubyはプログラムの書きやすさを常に念頭に置いてデザインされてきた。 それはプログラミング時の脳の負担を最小にする、と表現されることもあるし、楽しくプログラミングできる、のように表現されることもある。 人によっては、プログラミング言語にとって構文は質的ではない、という向きもあるだろう。それに対して、 構文やメソッド名を工夫することはプログラミング言語の使用感に結構な影響を与えるし、「触りごこちの良さ」は重要なことである、というのがRubyの思想である。 最近、UI

    Route 477 - UXを重視したプログラミング言語
    Watson
    Watson 2013/02/25
  • Route 477 - なぜRubyMotionは「半分オープンソース・半分プロプライエタリ」なのか

    ■ [ruby][prog] なぜRubyMotionは「半分オープンソース・半分プロプライエタリ」なのか というところが特に面白かった。 Pat Shaughnessy「rubymotionクリエータに一問一答(前編)」 - 以下斜め読んだ内容 RubyMotionはRubyでiOSアプリを書けるシステムだが、このように需要とチャレンジのしがいがあるが、フルタイムに近い作業量が必要となるプロジェクトを遂行するにはどうすれば良いか。仕事の片手間にOSSとして開発するのでは、何年もかかってしまうだろう。一方でスポンサーを募って開発を行う方法だと、スポンサーがいなくなったタイミングでまた新しいスポンサーを探す必要が突如として発生する恐れがある。 そこで、RubyMotionはコンパイラとランタイムの部分はクローズドソースで、2万円弱/年という値段で販売している。 (年額といっても1年で使えなく

    Route 477 - なぜRubyMotionは「半分オープンソース・半分プロプライエタリ」なのか
  • Rubyのpデバッグは「p x: x」のようにすると良い

    ■ [ruby] Rubyのpデバッグは「p x: x」のようにすると良い Rubyプログラムのデバッグ中はpメソッドで変数の値を表示したりしますが、普通に「p x」とか書くと、画面に 3 とだけ表示されたりして、何が3なのか分からなくなってデバッグが進まない…みたいなことありますよね。 そこで、Ruby 1.9から導入されたハッシュの記法を使って p x: x みたいに書くと、これは p({:x => x}) と同じ意味なので、デバッグ出力が {:x => 3} みたいになって、ああ変数xに3が入ってるんだなと分かりやすくなります(かつタイプ数もそれほど増えない)。*1 変数が複数のときは p x: x, y: y みたいにします。

    Rubyのpデバッグは「p x: x」のようにすると良い
  • Route 477(2012-02-15)

    ■ [ruby] 例のリファレンスマニュアルのやつ いまこんな感じになってます。 http://blazing-ice-2849.herokuapp.com/ja/Array/%2B 右上のセレクトボックスで英語と日語を切り替えられます。 検索ボックスはまだダミーです。 内容はまだいろいろバグってます。 デザインはmiyamaeさんのchm風のやつをとても参考にしています。 何をやろうとしているのか 英語・日語のリファレンスマニュアルが両方見れるWebサイトを作ろうとしています。 Rubyのリファレンスも、php.netみたいに言語を切り替えて表示できるべきじゃね? そしたら日英以外の言語へ翻訳するモチベも上がるんじゃね?っていう話です。 Rubyのリファレンスは、歴史的経緯で、日英が全然別のツールで書かれてるんですよね。英語は、Rubyのソースコード中にrdoc形式で埋め込まれている

    Route 477(2012-02-15)
    Watson
    Watson 2012/02/18
  • Rubyの次世代リファレンスマニュアルを構想する会をやりました

    ■ [ruby][event] Rubyの次世代リファレンスマニュアルを構想する会をやりました 参加者のみなさまありがとうございました。 http://partake.in/events/eb5eeeff-8d60-406d-a4e5-ac3c479a4b88 以下は議論のメモです。(まだぜんぜん整理できてなくて混沌としていますが…) とりあえず1/31が「中間報告」なので、それまでに何か動いて見せられるようなものを作りたいと思います。ソースはgithubに置きます。 ゴール 1. 日英以外への翻訳をやりやすくしたい * 何から始めれば良いかわかること * 一時的に翻訳して終わりではなく、最新版に追従していくのを助ける手段があること * 成果物が便利な形で利用できること(web, cli等) 2. 日英版を「統一」したい * 現状は、リファレンスサイトに何か機能を追加する場合に (例えば、

    Rubyの次世代リファレンスマニュアルを構想する会をやりました
  • Enumerable#lazy @松江RubyKaigi03

    Watson
    Watson 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)
  • RubyKaigi2011「Rubyマスターへの道」 - BiwaSlide

  • Route 477(2011-06-16)

    ■ [book] 自著が絶版になりました Amazonでずっと在庫切れだと思っていたら、絶版になったようです。 4839927847 お求めになれる中古品は4000円とかになってますが、大きめの書店の店頭にはまだあると思います。 オンラインでも、例えばジュンク堂のネットストアでは普通の値段で買えます。 買おうか迷ってた人は、RHGみたいに伝説的な値段になる前に確保してください(笑)。 4844317210 (聞いた話ですが、出版社の中でも編集の人はできるだけ絶版にしたくなくて、倉庫とかを管理する側の人は適当なところで絶版にしたがるという綱引きがあるそうです。) 89 http://b.hatena.ne.jp/ 69 http://twitter.com/ 65 http://reader.livedoor.com/reader/ 49 http://www.kt.rim.or.jp/~k

    Route 477(2011-06-16)
  • Route 477 - Macのメニュー項目をRubyで作れる「mynu」

    ■ [mac][ruby] Macのメニュー項目をRubyで作れる「mynu」 via RubyWeekly mynu (まいにゅー?) は、Macのメニュー項目を簡単なDSLで作れるMacRuby用のライブラリだ。 https://github.com/RobertLowe/mynu rvmを使っている場合は、こんな感じ:(要snow leopard) $ rvm install macruby ... $ rvm macruby $ gem install mynu ... $ git clone git://github.com/RobertLowe/mynu.git $ cd mynu $ ruby examples/workflow.rb これで、メニューバーに黄色いアイコンが出る。Ctrl-Cで終了。 MacGUIアプリを作る際はもちろん、メニューバーだけで完結する簡単なアプ

    Route 477 - Macのメニュー項目をRubyで作れる「mynu」
  • Route 477(2011-05-30)

    ■ [ruby] ruby-dev translationというサイトを立ち上げました Rubyの開発用メーリングリストは、日語のruby-devと、英語ruby-coreがあります。 このため英語圏の人から「なんかruby-devでだけやりとりされる重要な情報があるのではないか」という印象を持たれたりして(実際にそうかはともかく)、 ruby-dev translationは、これをコミュニティベースでなんとかできないかという試みです。 といっても、全部のメールを翻訳するのはリソース的に大変だと思うので*1、 英語圏の人がサブジェクトを見て、「これは読みたい」と思ったメールに★が付けられるようになっています。 これによって、需要のあるメールだけを重点的に翻訳できるのではないか、そうなればいいな、という淡い期待を抱いています(弱気)。 http://ruby-dev.route477.

    Route 477(2011-05-30)
  • Route 477(2011-04-21)

    ■ [english] コミットログを英語で書くためのテンプレ githubに上げるコードは、可能なら英語でコミットログを書いたほうが良いです。なんか面白そうなプロジェクト見つけたとして、コミットログがロシア語とかアラビア語だったら困るよねという話です。 英語とか難しいと思うかも知れないですが、だいたい何か追加したか直したか変更したかのどれかなのでわりとパターン化できます。読めない言語で書かれている場合の可読性=0なので、英単語を適当に並べるだけで可読性が無限大パーセント改善されます。やった! 僕がよく使うのはこんな感じです(英語的に正しいかは知りません)。 new: xx new: added (some) xx fix: xx did not work fix: xx was wrong fix: xx should (not) yy changed xx to yy removed

    Route 477(2011-04-21)
  • Route 477(2010-12-01)

    ■ [ruby][rails] Hamlを越えるシンプルさを実現したテンプレートエンジン、Slim 今日から始まるRuby Advent Calendar jp: 2010参加記事です。 http://slim-lang.com/ Rails界隈ではHTML(ERB)よりシンプルなテンプレートエンジンとしてHamlが人気ですが、SlimはHamlからさらに記号を減らしたようなテンプレートエンジンです。 ! doctype html html head title Hello Slim body h1 Hello, Slim! div id="main" | これはSlimのサンプルです。 | シンプルでしょう? p.note | Hamlのように「#」や「.」を使うこともできます。 Rails 3で使う場合、 gem 'slim', :require => 'slim/rails' と書く

    Route 477(2010-12-01)
    Watson
    Watson 2010/12/01
  • 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)
    Watson
    Watson 2010/11/17
  • Route 477 - deviseのメッセージを日本語化しました

    ■ [ruby] Sinatra 1.0がRuby 1.9.2で動かない問題 1.9.2でSinatraを動かすと、何も言わずに終了してしまうんだけど enable :run と一行入れればOK。 http://ruby.about.com/b/2010/09/08/sinatra-not-working-on-1-9-2.htm ■ [rails] deviseのメッセージを日語化しました Rails3の定番となりそうな認証プラグイン、deviseの日語用ロケールファイルを作りました。 http://gist.github.com/606476 deviseの翻訳はリポジトリに取り込むわけじゃなくて、「gistに投稿してwikiに貼ってね」という緩い方式らしいので、追加しておきました。 http://github.com/plataformatec/devise/wiki/I18n

    Route 477 - deviseのメッセージを日本語化しました
    Watson
    Watson 2010/10/17
  • Route 477(2010-10-04)

    ■ [ruby] ローカルのgemのドキュメントを見る簡単な方法(2010秋) The 3 Step Guide to Slick Local Documentation for all your Ruby Gems 1. $ gem install yard 2. $ yard server --gems 3. http://localhost:8808/ を開く これは便利。特に、普段--no-rdocしててrdocがない場合でも、動的にrdocを生成してくれるところが。 165 http://d.hatena.ne.jp/willnet/20111006/1317877272 49 http://reader.livedoor.com/reader/ 27 http://blog.willnet.in/entry/20111006/1317877272 14 https://www.

    Route 477(2010-10-04)
  • Route 477

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

  • ■ [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
    Watson
    Watson 2010/08/01