兼雑記

なにやら先生と紛らわしいそうで生まれてきてすいません。あばうと
<< 2006/03 >>
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

| サイト本体 | 昔の更新履歴兼雑記 | タイトル一覧 |

分類は アーカイブ任せにした方がいいのかも。


 | 

2006-03-19

[][] RubyFS 01:55

今日の呑み会ネタ実装。 Ruby の世界をファイルに抽象化します。なんでもファイル。

http://shinh.skr.jp/ttyplay/rubyfs.html

i@u /mnt/tmp> cat Time/now
Sun Mar 19 01:41:00 JST 2006
i@u /mnt/tmp> cat Array/new > @a=
i@u /mnt/tmp> echo '"foo"' '"bar"' '"baz"' > @a/push
i@u /mnt/tmp> cat @a/push
["foo", "bar", "baz"]
i@u /mnt/tmp> cat @a/size
3
i@u /mnt/tmp> cat @a/pop
"baz"
i@u /mnt/tmp> cat @a/size
2

FUSERuby FUSE を用いて作りました。

100 行足らずでぼくにもかけたふぁいるしすてむ。

http://shinh.skr.jp/dat_dir/rubyfs.rb

ただこの仕組みは Lua とか JS とかの方が向いてそうだなぁ… Ruby はややこしすぎる。

追記をいろいろ。色々な補足を。

  • ls Time でメソッド一覧が出るのは地味に便利。shell由来の補完も普通に効くし。
  • refefs とか作ってその場所を http で公開ってのはどうですかねぇ。
  • 本当は echo args > object/method; cat object/method というインターフェースより、 ./object/method args の方がいいと思います。しかしそれには ./object/method はちゃんと実行できるファイルを見せなければならず、かつこれは rubyfs.rb 本体とプロセス間通信できなければなりません。
  • この場合は標準入力も使えるのが魅力です。 rubyfs をマウントした部分を公開すればそれだけで分散オブジェクト、みたいな。
  • 言語を前提としてそれに協力する OS を作れば幸せすぎるのではと話していました。
  • .NetFS とか。
  • to_yaml はたまたま消し忘れてた require 'yaml' があったためできたのでした。
  • pyfs を見るに cp rubyfs/Array/new pyfs/array とかで言語間通信できるといいなとか思いました。
  • というかそういえば mount hoge.rb /mnt/tmp とかするとヘンで良いという話でしたね。
  • OSC で見せてもらった Plan9sh で ptrace できるっぽいとかいうのを見て妄想していたのでした。
  • Ruby FUSE には sqlfs だの yamlfs だの夢一杯なものが入っています。
 | 
1970 | 01 |
2003 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 12 |
2011 | 01 | 02 | 03 | 04 | 06 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 |
(1709139 since 04.04.21)
なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h