Ruby

Rubyを使ってなけりゃRubyistじゃねぇとでも?

Rubyist近況 Advent Calendar 2021 2日目です。 一日目はtatsuoSakuraiさんでした。 さて、なんとこれ当ブログ6年ぶりの更新らしいです。近況を書くのに相応しいような、6年はそもそも「近」ではないような*1、そんなことよりお前はそもそもRubyistではない…

pry-parsecom作りました

最近お仕事でParseを使っています。parse.comはいわゆるBaaSで、多言語のライブラリやブラウザから使える管理ツールも揃ってて手っ取り早く動くものを公開したいときにはとても便利なんですが*1、運用でデータストアをどうこうしたいときは基本ブラウザ上で…

LLVMで作る日本語プログラミング言語

https://github.com/technohippy/Kaleidoscope.ja以前から日本語プログラミング言語って作ってみたくて、でもただのトランスレーターならともかく、まっとうにコンパイル出来てネイティブでサクサク動くようなのはどうやって作ったらいいか分からないどころ…

きつねさんはおしえてくれないruby-llvm

今年のテーマ(の一つ*1)はLLVMにしようと思い立ってちびちびお勉強してたんだけど、タイムリーなことに本日達人出版会さんから素晴らしい本が出版されまして。さすが達人出版会。いいとこついてくるわー。ていうか一週間前に欲しいってtweetしたばっかだわ…

Smalltalk風Ruby

https://twitter.com/technohippy/status/291697606638305280とか言うことをつぶやきつつ考えたんですが、","に目を瞑ればRubyは1.9から key:val 形式のHashリテラルをキーワード引数っぽく使えるし、->{...} 形式のProcリテラルもあるしで、これってすでに…

クリスマスRuby

というような経緯があり、今年はRubyでPerlをぶっ潰すことにしました。具体的には今年はRubyを弄るかわりにRubyっぽくPerlを書くためのツールを作ってみました。これでPerlプログラムを生まれる前に消し去りたい。なんか近頃そういうの流行ってるっぽいし。o…

RubyでGraphDBごっこ

NoSQLの一つにGraphDBとかいうのがあるんですが、なんかもうJava(というかJVM)に席巻されまくってて他の選択肢が見当たらない勢い。その状況がちょっとさみしかったのと、後はまぁ勉強がてらRubyでそれっぽいものを作ってみました。*1https://github.com/t…

Object#to_bool

「Why Every Ruby Developer Should Learn Smalltalk(なぜ全てのRuby開発者がSmalltalkを学ぶべきなのか)」っていう文章がtwitterで流れてきたので読んでみた。概ね同意。みんなSmalltalkを学ぶべき。で、その中にこんな一文があった。 みんなよくRubyでは…

闇Rubyの作り方

これが私の得た答え、闇patchです。 *** ruby-1.9.3-p0/parse.y 2011-09-24 14:21:19.000000000 +0900 --- yami_ruby/parse.y 2011-12-29 18:09:22.000000000 +0900 *************** *** 6661,6673 **** command_start = FALSE; retry: last_state = lex_sta…

闇ましておめでとうござます

闇Rubyという頓狂な単語を目にして以来、ずっと考えていました。「闇Rubyという名にふさわしいオレオレRubyとはどういうものだろうか」そしてこの疑問は必然的に次の疑問に至ります。「闇とは何か」闇とは何か、そして光とは。答えを求めて闇ルビヰ會議2011…

デコレータRubyの作り方

長いけど例によって基本コピペ。相変わらず一度動けばおkって感じで結構ひどいですね。大枠は node.hで RNodeにnd_annotationsていうの追加してstruct RNode *nd_annotations; parse.yで @{...} をデコレータ?とみなしてannotation : '@' tLBRACE method_c…

Rubyをクリスマスデコレーションしよう!

今日はクリスマス。巷はクリスマスイルミネーションで溢れかえっていることでしょう。街を様々に彩るイルミネーションの瞬きを見ていると思いませんか?この聖夜、私たちの愛するRubyもデコレーションしたいと!ということでやってみました。 class Klass @{…

Rubyで複数行コメント

残念ながらRubyには複数行コメントがありません。いや、RDコメントはあるけど、RDとして抽出することを期待してないときもあるし、っていうか期待してないことのほうが多いし。行の途中でも使いたいし。と言うことで試しにやってみました。#{...} が複数行コ…

クリスマスRubyをつくろう!

12月になりました。最後のRubyKaigiで私は「クリスマスは自分なりのRubyをmatz&コミッターの人たちに贈ろう」と提案したわけですが、みなさん準備の方はいかがでしょうか。[18S01] Parse.y Famtour (ja) from ogi on Vimeo.え、全然進んでないどころか、そん…

諦めたけど試合終了しなかった件

Jokeカテゴリに投稿したOptionally Typed Ruby、一週間コメントがなかったのでself-rejectをキメたら、カテゴリを変えてまさかの復活。せっかくなので真面目に考えてみることにしたけど、なかなかいいの思いつかない。指摘のあった「:」がキーワード引数と衝…

YAML Ruby

ruby-core MLに素敵な提案が。http://redmine.ruby-lang.org/issues/5578 Embedded YAML for Ruby 2.0 Added by Thomas Sawyer 6 days ago. Updated 3 minutes ago. Way cool would be support for embedded YAML. data = --- a: 1 b: 2 c: 3 ... これは放っ…

Optionally Typed Ruby

先日GoogleからDartという言語が公開されて、なにかRubyに取り込んで遊べる面白い機能ないかなと仕様見てみたんですが、なんだか全部どこかで見たような機能ばっかりで非常にがっかり。こんなんじゃネタにならないよ、と愚痴ってたら@makoto_inoueさんから要…

irbでennnnndを使えるようにするパッチ書いた

おまえまだそれ引き摺ってんのかよと言われたら、はいそうですと答えるしかない。残念ながらcloseされてしまったというか、してしまったennnnndだけど、Ruby本体はともかくirbにあったら実際便利な気もします。ということで作ってみました。 *** ruby-1.9.2-…

Rruuubbyyyy作った

ennnndをFeature Requestしたら思いの外反響が大きいというか、特に外国人にはクソミソに言われまくりで、その中の一人は Rruuubbyyyy とか言ってた。で、意味はわかんないけどたぶん作って欲しいんだなと思ったので、とりあえずその Rruuubbyyyy を作ってみ…

yylexの歩き方

RubyKaigiの「parse.yの歩き方」で「ennnnndっていうのをやりたかったけどできませんでした」って話をしたら、CRubyもJRubyも次のセッションが終わる前には実装終わってんの。一応オレ二晩くらいは考えてから諦めたんだけども・・・15分とかで・・・。ああ、…

最後のRuby会議のタイムテーブルが公開されました

http://rubykaigi.org/2011/ja/schedule/details/18S01 なんかしゃべります。まだ資料作ってないけど。どちらかと言えば技術系というよりもネタ系になりそう。許されるんだろうか・・・。しかも日本Rubyの会のセッションの裏。こんな感じになりそうで不安だ…

俺はカリスマを引退しようと思ったらいつのまにかカリスマじゃなくなっていた

な・・・何を言ってるのかわからねーと思うが、TokyuRuby会議03の話。 そんなわけで最後まで話せなかったので資料置いておきますね。

RubyKaigi2011に発表が採択されました

日本Ruby会議2011 CFP虎の巻はガチだった!心の中の仙人と会話しながら提案を書いたら、去年没になったネタなのに通ったよ!・・・ はじまりはじまり 弟子:うーん、うーん仙人:どうした、弟子よ。何を悩んどる?弟子:あ、これは仙人さま。今、RubyKaigiの…

RejectTokyoRubyKaigi

TokyoRubyKaigi05にはリジェクトどころか応募したかどうかすら定かではないけど、とにかくそのTokyoRubyKaigi05に参加お断りされた人だけが参加できるヤケクソな集まりであるRejectTokyoRubyKaigiに参加してきた。本家に参加お断りされるだけあってヤクザ者…

RubiniusでBinding.of_caller的な

かつてActiveSupportにあったけど、Ruby1.8.5の登場で惜しまれつつ亡くなったBinding.of_callerが、Rubiniusだと簡単に実現できるとか。 # http://gihyo.jp/news/report/01/rubykaigi2008/0001 class Binding def self.of_caller Binding.setup MethodContex…

アンダースコアだけで Ruby プログラムを書く2

requireされたときに以降のコードを好きなように解釈して勝手に終了するの、よく考えたらネタプログラミング用に汎用性が高いことに気がついたので超絶技巧の人の「アンダースコアだけで Ruby プログラムを書くライブラリ _ - まめめも」をその方式でやって…

打ち初め

第27回Smalltalk勉強会で話してきました 過去に「SmallTalk R4.1チャレンジ」というのをやったことがありますが、今年最後のネタふりとして、「super super, sub subチャレンジ」「マルチラインクラス・メソッドチャレンジ」というのを挙げておこうと思いま…

URubyの作り方

ホントは他に作りたいものがあったんだけど、どうしても動かなくて諦めました。間に合わせででっち上げたのでかなり手抜き・・・。variable.c static void mod_av_set(VALUE klass, ID id, VALUE val, int isconst) { // ..snip.. if ((VALUE)value == Qunde…

URubyリリース!

Merry Christmatz!!*1今年もクリスマスRubyの季節がやって来ました。今回のRubyは「U」です。・・・RubyとSmalltalkの関係についてはいろんな受け取り方があるようですが、利用感がなんとなく似てるのは事実でしょう。しかし我々Rubyistにとっては残念なこと…

Access an array in more readable way

Although this is an old topic, I'd like to introduce the library which I've written for rubyists all over the world anyway.Someone may remember DHH's legendary commit to the rails repository.https://github.com/rails/rails/commit/22af62cf48…