2007-01-01から1年間の記事一覧

おかしなひとたち

http://www.ioccc.org/years.html 名前は知ってたけど中身は初めて見た。あきれるしかない。 関係ないけどMulticsのソースコードが公開されたらしい↓ http://web.mit.edu/multics-history/source/Multics_Internet_Server/Multics_sources.html

プログラミングとは何か

プログラミングとは文字列を操作することである。 プログラミングとはプログラミングができる環境を作ることである。 プログラミングとはバイト列をやりとりすることである。 プログラミングとはメモリを書き換えることである。

keepalive

今やっていること: WikiForme Wikiを開発中 原始的なところはできた。ムダに抽象化しすぎなので設計変える。バックアップとかとか。衝突検知は見なかったことにする方向で。S6が公式公開になる前に作ってやるぞ!なんて思っていたりいなかったり。 ARMでVIV…

ARMにVIVER COREの件2

いける。 玄箱PRO+サインはVGAでもLinuxフレームバッファが使えるらしい。フレームバッファが使えればTiny Xが使える。これでサクッとVNCでもrdesktopでも動く。CPUがキツイ? とりあえずはbuildrootに付いてくるTiny Xを使うけど、ちょっと頑張ってX.orgを…

WikiFormeでS6記法を作ってみた

S6 公開に関する方針 - IT戦記 プレゼンテーションツールS6。これはスゴイ! というわけでWiki記法でS6プレゼンテーションを書けるようにしてみた。どう考えてもフライング(笑) ソースはWikiForme@CodeReposに。 WikiFormeの構文ツリーからXPathを作るのが…

ARMにVIVER COREの件

VIVER COREをARMに移植したらおもしろい?の続き。 u-bootやRedBootは最初からネットワーク経由でカーネルを持ってこれるということに気付いた。というわけで結構簡単にいけるんじゃないか。カーネルは製品に付いてくるやつを使えばいいさな。 一番の問題は…

ファイルシステム on ファイルシステム と ファイルシステム on DBM

ユーザーランドでP2P分散ファイルシステムを実装してFUSEでマウントするとき、バックエンドはファイルシステムの方が速いのか、DBMの方が速いのか。 ファイルシステムはファイルシステムとして使うのに適したデータ構造になっているはずなので、ファイルシス…

WikiFormeのGUI

またひたすらにWikiForme中。今回はUIに注力。 CUIはほぼ完成。(あとは例外処理) [user@host]$ wikiforme article:html test.txt # test.txtをarticleを使ってHTMLに変換してtest.htmlに出力 [user@host]$ wikiforme article:html test.txt -o - # test.tx…

RubyでHTMLを自動整形する

HTMLと言うかXMLの自動インデント。1行でべたっと書かれたXMLに、かしこく改行とインデントを付ける。StringScannerが便利。 require 'strscan' src = %[<html><body><h1>chapter</h1><div><dl><dt>hoge</dt><dl>fuga</dl></dl></div><p>pi<img src="piyo.png"/>yo</p></body></html>] no_indent_tag = %w[html head body] # インデントしない要素 indent_str = ' '…

どこまでもHashが出てくるHash

Rubyで。 class InfinityHash < Hash def initialize super {|hash,key| hash[key] = InfinityHash.new } end end hash = InfinityHash.new p hash[1][2][3][4][5][6][7][8] #=> {}

「○日で×を作るプロジェクト」を開始したい

候補: 2週間でWikiForme新版を作るプロジェクト もう2週間でGUIまでつくるプロジェクト もう1週間で記法を作りまくるプロジェクト 1ヶ月で分散ブロックデバイスを作るプロジェクト(ファイルシステムは1ヶ月では間違いなくムリ) 3週間で次期RUNESを…

分散ファイルシステム設計メモ

コネクション 全部TCP パッシブコネクションとアクティブコネクション こちらからリクエストを投げるときはアクティブコネクションを使う パッシブコネクションは待ち受け専用 通信の衝突が起きないのでスケーラビリティが良くなる コネクションは贅沢に張る…

libpioの件

初版は8月27日に作ったものだったりする。mixiに貼ってある。2ヶ月前の着想をここに来て実装。 非同期IOでスループットがどうのとベンチマークをしてもちょっと視点がずれていると思うのだけど、実はあまりスループットも落ちていないんじゃないか。ソース…

V-FIELDのメモ

Makefile:33: grep -n -E "XXX|FIXME|TODO" `hg locate` > memo argparser.cc:16: // FIXME: このメッセージは適切でない argparser.h:159: // FIXME: メッセージが微妙 argparser.h:185: // FIXME: メッセージが微妙 common/bufferedreq.h:13:// TODO: メモ…

VIVER COREをARMに移植したらおもしろい?

GLANTANKとか玄箱PROとかとか。いわゆるシンクライアント? 玄箱PROに至ってはPCI-Express x1が付いていて普通にVGAも使えそうだし、特にがんばらなくても動きそう。PXEは使えないから、カーネルとinitramfsは内蔵させるか、Etherbootを焼くか。 画面転送型…

VIVER CORE Server残り

後はどんな機能を追加するか。 VIVER CORE breakpoint ブートログの転送 NBDサポート iSCSIサポート Fake NFS-Root 無線LANサポート Serverパッケージ WOL送信ツール pxelinux.cfg/を書きやすくするツール NBD Server iSCSI Target Capistrano Nagios とか H…

分散ファイルシステムで中間プロトコルに9pを使うアイディア

9pは非常にシンプルで素晴らしい。 LinuxのDocument/filesystems/9p.txtを読むと、マウントオプションにrfdno=nとwfdno=nというのがある。 rfdno=n the file descriptor for reading with proto=fd wfdno=n the file descriptor for writing with proto=fd p…

Gentoo+OpenVZをインストール中…

お騒がせしております。残念ながらデータはほぼすべて無事ですよ。SolarisとFreeBSDのディスクイメージが無くなったくらいで。 バックアップ重要。 そんなこんなで、ただいまGentooをインストール中…は終わって、OpenVZなカーネルをコンパイル中。ホスト: Ge…

sendfile()はsplice()で実装されるようになったらしい

…この英語が良く理解できない…ぁぁ… http://kernelnewbies.org/Linux_2_6_23#head-c8fd2455c44d9559429c0f72dbc85cd54a62470d For the particular case of sending the data from a file descriptor to a fd socket, there's been always the sendfile() sys…

mDNS+DNS-SDで分散メタネームサーバを作るアイディア

またしても書きながら考えるメモ。dRuby+Ringか、mDNS+DNS-SDか。今はDNS-SDの方が良さそうな気がしている。なんというか普通にDNS-SDそのもの。ただしSRVレコードは勝手に定義。そう堅いこと言わずに。 mDNSは、DNSをマルチキャストで行う。いわゆるクライ…

問題は山積している

整理する。書きながら考えるメモ。 まず、VIVER CORE Serverに入れるファイルサーバー。適当なネットワークファイルシステムが見つからない。ファイルが共有できないと、いろいろできない。と言うか、何もできない。 現状、500MB超のシステムをメモリのぶち…

codaの全自動インストールスクリプト

#!/bin/sh dest=$HOME/self/test/coda # dep # readline-devel # lwp wget http://www.coda.cs.cmu.edu/pub/coda/src/lwp-2.3.tar.gz || exit 1 tar zxvf lwp-2.3.tar.gz || exit 1 cd lwp-2.3 || exit 1 ./configure --prefix=$dest || exit 1 make -j3 || …

Cluster File Systems, Inc.がSunに

Webサイトをのぞいてみたら、Sunになってた。 http://www.clusterfs.com/ http://www.sun.com/software/clusterfs/index.xmlSunはマジか?あるいはネタか気まぐれか? Cluster File Systems, Inc.と言えばLustre。Solarisに搭載する気かな?普通にHPC向けだ…

VMware Virtual Applianceを使うアイディア

VMware Virtual Applianceには、インストール済みのVMware用ディスクイメージがたくさん置いてある。サーバーOSから組み込みアプライアンス、Linux、FreeBSDと幅広い。 それから、rBuilder Onlineには、rBuilderで作られたディストリビューションのインスト…

DHCPに触らずにPXE

できた。4011/udpは待ち受けなくてもいいらしい。67/udpに飛んできたDHCPDISCOVERに対して、Vendor Optionsのtag 6(PXE_DISCOVERY_CONTROL)に8(第3ビットが1)を指定して、filenameとsiaddrにTFTPサーバーのアドレスを指定したDHCPOFFERを返すと、動いた…

CORE

昨日VIVER CORE Server 0.0.1をリリース。土日月の3日で書いた!やればできるモンだ。実は本体のコード自体はかなり短い。全部で800行程度。 苦労したのは本体のコードではなく、クロスコンパイル環境の構築をMakefileで自動化すること。しかしおかげで、私…

initramfsにrubyを入れる

入れても752KBくらい。 /bin/busybox 424KB /usr/bin/ruby 612KB /lib/libuClibc 262KB /lib/libpthread 48KB /lib/libcrypt 12KB /lib/libdl 12KB /lib/libm 44KB 諸々と合計 1,640KB これをgzipで圧縮すると752KB。uClibc&builcrootスバラシ。このinitram…

Wiresharkのチェックサムエラー検出

NICで"checksum offloading"とやらが有効になっていると、Wiresharkでチェックサムが合ってないよーというエラーメッセージが出るらしい。というわけでこれはエラーではない。よかったよかった。 カーネルが新しくなってコレが有効になったっぽい。

カーネルがエラーパケット大量生産

PXE関連でパケットキャプチャしていて、なにやらチェックサムがおかしいUDPパケットがたくさん飛んでるなーと思って調べていたら、SCPでファイルを転送するとカーネルパニック。再現性アリ。カーネルを古いバージョンに戻したら直った。うへ。 最近カーネル…

使えるProxyDHCPサーバーを実装しようじゃないか

誰かが実装したっていいじゃないかと。DHCPサーバーにPXEをやらせるのは、ちょっと違う気がする。万全のDHCP + PXEサーバー(ProxyDHCP + TFTP)が本来じゃぁないか。DHCPサーバーとProxyDHCPサーバーを同じホストで動かそうとするとややこしいけど、同じホ…