ruby

Arrayを継承したクラスの表示

Arrayだけハミ子なのねしらんかったしらんかった。というか汚い。 irb(main):001:0> module PTest irb(main):002:1> def to_s; "to_s" end irb(main):003:1> def inspect; "inspect" end irb(main):004:1> end => nil irb(main):005:0> class A ; include PT…

BlankSlateってなんですか?

Builder::XmlMarkup使っててふとBuilderのconstantsを見たら :BlankSlateとか言うのがあってなんだこれ???となる なんだこれ??? XmlMarkupはmethod_missingを使って irb(main):002:0> Builder::XmlMarkup.new.small {|xml| xml.medium {|xml| xml.big(…

TAILCALL optimization

そうそう、なんでdecoratorなんか、、、ってのは実はid:wasabizさんのみて感動したので、それrubyでもって感じで。 Pythonで末尾再帰最適化をする。 - IT系で覚醒めたい 戦略 さっきつくったdecoratorでそのまんまやるぞ、と。 書いてみた def tail_recursiv…

rubyでそれっぽいdecorator

pythonのdecoratorかっこいいなあとか。rubyでも欲しい。普通にrubyッぽくやるなら多分privateとかのようにシンボル与えてそれを繋ぐように書くんだろうけど、pythonっぽく前置したいなあとか。こないだmethod_addedとか覚えたのでそれ使ってみようと。とか…

class.inherited

こんな機能あったのか irb(main):007:0> class M irb(main):008:1> def self.inherited(subclass) irb(main):009:2> p "inherited by #{subclass}" irb(main):010:2> end irb(main):011:1> end => nil irb(main):012:0> class B < M irb(main):013:1> end "i…

polyglotって?

なんとなく Rails3を勉強してみようかな、とインストール後、ふと目に入った polyglotが気になる*1。 英語の意味としては多国語(を解する人、で書かれた文)的な意味なんだけど、これなに? customez require と調べてみると、requireを拡張して、ファイル…

Fixnumの割り算とか

ついついFixnumな値を割り算するところをそのまま a/b とか書いてしまって、「あれれ何この不思議ちゃんエラー」なこと数多だったのだけれど .to_fするのも面倒くさいし、とか思っていたらmathn.rbとか言うものの存在を知った。我ながら無知だ。 irb(main):0…

イテレータとかブロックとかジェネレータとか

タイトル付け損ねた・・・orz http://d.hatena.ne.jp/yukichanko/20090803/1249296394 irb(main):001:0> def foo (&block) irb(main):002:1> 10.times { block.call(rand(100)) } irb(main):003:1> end => nil irb(main):004:0> foo {|val| p val} 63 46 68 …

class local instance variable

yuyaさんにクラスローカルインスタンス変数を教えてもらったは良いけれど、ネットで調べてみてもいろんな記述があって訳ワカメ。どうかくのが正しいのか良くわかんない。Smalltalkだとまんま ... class instanceVariableNames: '...' があるのだけれど・・・…

バグ修正 というか仕様くらいよもう Befunge

全然読んでなかった(爆) http://catseye.tc/projects/befunge93/doc/befunge93.html A Befunge-93 program is treated as an 80x25 torusなんて馬鹿なんだおいら。というわけで修正しました。 def load_program(prog) @prog = prog.split("\n") @width = 8…

バグ修正 Befunge

http://d.hatena.ne.jp/tkuro/20081224/1230129169 ちょっと前のトピなんだけど、befungeのruby実装について、いわもとさんからバグ報告もらった。使ってみてくれただけでもうれしいのに、これはとてもうれしい。 コードが書かれていない位置にput(p)すると…

順列 in 有限と微小のパン

分厚い辞典のような本、森博嗣さんの「有限と微小のパン」を読んだ。有限と微小のパン (講談社文庫)作者: 森博嗣出版社/メーカー: 講談社発売日: 2001/11/15メディア: 文庫購入: 3人 クリック: 37回この商品を含むブログ (181件) を見るその中で塙理生哉どの…

いきたい!

2月5日(木)18時30分開場 19時 開演 まつもとゆきひろ × 卜部昌平 「プログラミング言語Ruby」出版記念トーク いいなあ。僕も行きたい・・・けど平日は厳しいでござるよTT しかもきっと出張で関西にいなさそうな日程。毎回食い物に釣られてpythonごはんの会…

Befunge

前回勢いで書いてしまった奴は全然イケテナカッタみたいで、仕様は洩れまくり。コンマとピリオドの違いもちゃんと実装していなかったし、文字列指定"の動作も間違っていて、文字列中に befunge文法要素が出てしまうとそっちを実行してしまうひどいもんだった…

yharaさんトークショー

yharaさんのRubyで作る奇妙なプログラミング言語 ~Esoteric Language~作者: 原悠出版社/メーカー: 毎日コミュニケーションズ発売日: 2008/12/20メディア: 単行本(ソフトカバー)購入: 8人 クリック: 148回この商品を含むブログ (69件) を見るの発売を記念し…

文字列をn文字ずつに分割する3

rubyのほうも。http://www.kt.rim.or.jp/%7ekbk/zakkicho/08/zakkicho0807b.html#D20080718-9おお、なるほど。scan()ってのがまさしく欲しい奴でした。 sikibu:~ kuro$ ruby -e 'puts ARGV[0].scan(/../).inject(0) {|t,v| t+= v.hex}.to_s(16)' cafebabe 34…

文字列をn文字ずつに分割する

hexファイルやmotファイルとかでチェックサムとる為に、16進文字列を2文字ずつに区切って加算するってやつ。 Perl perlなら listコンテキストに正規表現置いて quartz:pts/3% perl -E 'foreach $i (shift =~ /../g) { $sum += hex($i); } say sprintf "%x", …

alias

以前、rubyのsuperのことでinstance_methodsを使う方法を教えてもらったんだけども、 http://d.hatena.ne.jp/tkuro/20080628/1214668731 昨日aliasというものを覚えて、これ使えば同じようなことはできるんだ、と知った。 class Parent def foo puts "parent…

圧縮アルゴリズム or 暗号アルゴリズム

なぜか文芸的プログラミングを読んでいたら 圧縮か 暗号の勉強をしたくなってきた。 ので可変長ビットいじるものをrubyでなんとなく作ってみた。 class Bit include Math attr_accessor :value, :bits def initialize(value=0, bits=0) if bits == 0 and val…

第 27 回 Ruby/Rails 勉強会の感想

第 27 回 Ruby/Rails 勉強会 遅くなってしまいましたが感想です。 無線が(というよりはDHCPから情報がこなかった)うまく動かず、最初はネットにつながらなかったのですが、その後は順調でした。 関数型言語 Ruby by keisuken さん Rubyにて(結構無理をして…

第 27 回 Ruby/Rails 勉強会 の演習問題

ボーナスは給料の4倍と書いてあるんだけど実行例を見ると 基本給の4倍になってる。 でも給料の4倍の方が面白いのでそのままやってみた。 shacho1.rb $KCODE = "u" require "Shain1" #p = eval("#{ARGV[0]}.new") p = Object.const_get(ARGV[0]).new p.sta…

superとか不明点

勉強会の時もLingrで聞いてみたんだけど、rubyで 親クラスのメソッドAを子クラスでオーバライドした状態で、子クラスの別のメソッドBから親クラスのメソッドAを呼び出す方法ってないんだろうか? pythonでいうと class Parent(object): def foo(self): print…

第 27 回 Ruby/Rails 勉強会 いきます

第 27 回 Ruby/Rails 勉強会 悩んでたけど、やっぱ行きます。自分がダメだって事が体で分かるだけでも意義ある。

いこうかどうしようか -- 第27回 Ruby勉強会@関西

むう。現状の僕のレベルだとついていけない鴨・・・

Hashのデフォルト値

Hash.new()するときに引数与えとくと未定義のときにその値になる、、、なんてのは基本中の基本なんだろうけれども、なんか書くときに僕の中のpython脳が活性化していたらしく Hash.new(default=0) とか余計なことをしていた。 しかも、悪いことにTYPOってい…

tainted?

tmpfileを読んでたらハマッタ。セキュリティモデルについて勉強中。 [methods] taint 汚染する untaint 汚染解除 tainted? チェック $SAFE セキュリティレベル。 セキュリティレベル [レベル0] デフォルトのレベル 汚染条件: IOや環境変数、コマンドライン…

第 26 回 Ruby/Rails 勉強会

第26回 Ruby/Rails勉強会@関西 レベル高すぎてほとんど理解できなかったんだけれども、ものすごい刺激は受けたしキーワードは沢山もらったのでこれからぐぁんばる。本当に行っただけの価値はあった。 Ruby off Rails ストヤンさんの発表。Railsなしならどう…

第 26 回 Ruby/Rails 勉強会

にいってきます。こういうのに行くの久しぶりだから少しキンチョー。 まあ楽しんできます。

Ruby勉強会に参加してみたくなってきた

5/17か。。。 第26回 Ruby勉強会@関西(運営:Ruby 関西) 勉強会ってほとんど参加したことないんだけど、出てみようかな。

Rubyソースコード完全解説

よくわかる解説がありました 第3章 名前と名前表 おお!すっごいわかりやすい! 他のページも読んでみよう。amachang ありがとう。