■ [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
■ [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リポジトリを新規作成す
■ [ruby] Ruby用のPEGパーサParslet via @frsyuki http://kschiess.github.com/parslet/index.html Ruby用のPEGパーサには既にTreetopがあるけど、エラー表示が改善されてたりするようだ。 Treetopは独自の文法だったけど、ParsletはRubyの内部DSLになっている。 また、Treetopは文法と同じところにアクションも書くけれど、Parsletは「Parser」と「Transformer」を別々に定義して組み合わせるというAPIになっている。 チュートリアルを見れば雰囲気はだいたい分かると思う。 とりあえず電卓(足し算だけだけど)。 Parserは構文木をHashとして返す。"1"@0みたいなのはParslet::Sliceのインスタンスで、0行目にある"1"という文字列を表している。.as(:
■ [vim] Ubuntu 10.10でVim 7.3をコンパイルする http://d.hatena.ne.jp/hosikiti/20100910/1284079341 この手順通りにやったら普通にコンパイルできました。 ■ [ruby] rak 1.0を1.9に対応させる方法 gems/rak-1.0/bin/rakを直接編集して以下のパッチを当てるととりあえずエラーは出なくなる。 https://github.com/danlucraft/rak/commit/08a9bd1cfb407a37c49152009b3086a342a5560e 「これが最善かどうか分からないから」という理由でマージされてないけど。 まあ、オプションでエンコーディングを指定できるようにするのが良いんでしょうね。 デフォルトはEncoding.default_externalで。 ■ [ruby] Ra
■ [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' と書く
■ [ruby][vim] Gemfileをvimで色付けする方法 http://iain.nl/2010/09/gemfile-vim-syntax-file/ 普通にRubyなファイルとして扱ってもいいけど、Gemfile専用のsyntaxを公開してる人がいるのでそれを使う手も。手順は以下。 wget -O ~/.vim/syntax/Gemfile.vim http://github.com/iain/osx_settings/raw/master/.vim/syntax/Gemfile.vim wget -O ~/.vim/ftdetect/Gemfile.vim http://github.com/iain/osx_settings/raw/master/.vim/ftdetect/Gemfile.vim ■ [mobile] 端末識別番号による認証「かんたんログイン」は何が問題
XML::NodeSetクラスのリファレンスです。 mapとかfindとかfind_allなど、Enumerableモジュールのメソッドは全て使えます。 まあNodeクラスの配列みたいなもんだと思えばいい。 NodeSetクラスはNodeクラスとの継承関係はありません。 中身の要素を取得したい empty?() Is this NodeSet? empty? each() {|self[x]| ...} Iterate over each node, yielding to block first() Get the first element of the NodeSet?. last() Get the last element of the NodeSet?. size() document このNodeSetが含まれているDocumentを返す。 再検索 /(*p
■ [esolang] プロのesolang作家としてデビューしました 「Rubyで作る奇妙なプログラミング言語」の上梓から1年。Esoteric Languageの概念も人口に膾炙したと判断し、奇妙なプログラミング言語を有償で製作する事業を開始いたしました。いわゆるプロesolang作家です。 4839927847 第一弾となる「ModanShogi」がgihyo.jpのサイトで公開されています。お楽しみ下さい。 将棋をモチーフにしたプログラミング言語「ModanShogi」が公開!|gihyo.jp … 技術評論社 今後は後輩の育成に励み、日本esolang作者協会を設立して利権で儲けるなどしたいと思います。よろしくお願いします。
■ [rails] Rails3に関するさまざまないろいろ Rails勉強会@東京です(講師:松田さん) 準備 $ gem install rails3b $ gem install rails --pre $ gem update プロジェクト作る $ rails books --edge Gemfileに、依存ライブラリ(gem)の情報を書くように。Bundler --edgeなので、「gem "rails", :git => "git://github.com/rails/rails.git"」になっている script/*がscript/railsに 単にrailsでもいい(カレントのscript/railsが呼ばれる) rails_head/railties/bin/railsを参照 rails generate あるいはrails g config/environment.rb
■ [ruby] わかりにくいバグ わかりました 以下のコード、どこがバグか分かるだろうか? class Foo def initialize(path) @path = path end def src @src ||= File.read(@path) end def save! File.open(@path, "w"){|f| f.write modify(src)} end private def modify(s) s.gsub(/hello/, "Hello") # 例 end end Foo.new("tmp.txt").save! 正解は「modifyに空文字列が渡る」でした。なんでこうなるんだろう? (追記:コメント欄で指摘いただきましたが、File.openを呼んだ時点でファイルの内容がクリアされるからでした。 寝不足はデバッグの敵!) ■ [ruby][event]
■ [rails] Rails 3 Beta リリースノートと和訳 最近(ついに)BetaがリリースされたRails 3のリリースノートです。 英: Rails 3.0: Release Notes 日: [rails] Rails3 リリースノート全文和訳 (ただし適当) - うっかりプログラミング日誌 Rails 3.0 リリースノート和訳 - 前編 - おもしろWEBサービス開発日記 さらに、guides.rails.infoで、Rails 3のチュートリアルが始まっているようですよ。 http://guides.rails.info/getting_started.html 18 http://goo.gl/e8EbV 14 http://reader.livedoor.com/reader/ 9 http://www.google.co.jp/reader/view/ 5 htt
■ [misc] yhara.jpに移転しました 夏頃からこっちの更新が無かったですが、実はドメインを取って、ブログエンジンの自作をして、そっちで記事を書いていたりしました。 まだ見た目が素っ気ないですが機能的には一応、やっていける感じになったので、以降は以下のページの方を更新していきます。 http://yhara.jp このブログのRSSもそのうち自動でリダイレクトするようにしようかな。 ■ [scheme] Fomentを読む(5) 前回からだいぶ間が空いた。ちょっと別にやりたいことができたので、実を言うとこっちは休載しようと思っていたのだけど、月一ペースで更新するというのもありかもしれない。一回分の更新にはそれほど時間がかからないし、考えたことは全て文字に落としているから思い出すのもそれほど難しくないし。 前回はExpandSyntaxRulesの他にCompileSyntaxRu
■ [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
■ [ruby] irbで自動で再requireしたい irbでrequire 'foo.rb'する エディタでfoo.rbを書き換える irbでプロンプトを表示するタイミングで、foo.rbが書き換わってたらload foo.rbする みたいな仕組みを作ると試行錯誤がやりやすくて良さそうな気がした。 ■ [ruby][event] Ruby Advent Calendar jp: 2009 まとめ 無事終了しました。参加された皆さんと、読んでくれた皆さんに感謝。 Ruby Advent Calendar jp: 2009 : ATND いま数えたら、全記事トータルで438ブックマークですよ。凄いね。 どんな記事があったかおさらいしてみましょう。 Day 1 - Standards: Write Implementation and Spec on the Same File [Test]
■ [linux] Ubuntu 9.10はSCIMがiBusになってるらしい iBus の風評被害を抑えるよう活動していきたい - Ghosthacks なんでそんな新しいものを入れちゃったの?と思ったけど、メンテナ不在かぁ。 ■ [book] 技術書のPDF販売を提供する「達人出版会」始まる 日本Rubyの会の高橋会長による新プロジェクト。札幌Ruby会議02のLTで発表があったらしい。 達人出版会:技術系電子出版・電子書籍 メモ PDFを販売する。(pragmatic bookshelfみたいな感じ) 売り上げは著者とシステム側で折半*1。pragprogがそうなのと、システム側で新しいことをやる余力のために50%にする予定 再配布自由(CC)な本も売りたい(対価というより、お布施的なモデル) 余裕が出来たらなんか書いてみたいなぁ。 続きは: 達人出版会日記
■ [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 このように、短くなりま
■ [smalltalk] GNU Smalltalkのクラス階層をグラフ化した 世間の流行りを無視してSmalltalkネタ。 今日はGNU Smalltalkの組み込みクラスの 継承関係をGraphvizでプロットしてみました。(拡大: 560KB) ソースは http://gist.github.com/233727 感想 Rubyと比べると、モジュールがないのでシンプル。 しかし多重継承もないのか。だからArrayやStringはComparable(もとい、Magnitude)じゃないんだ。 小クラス主義(と思って良いですか?)なので階層が深い。 例えば Array > ArrayedCollection > SequencableCollection > Collection > iterable > Object とかなってて凄い 仮想クラスは色を変えてみました が、判定方法
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く