Practical TLA+はとてもいい

はてなダイアリーとはてなブログの区別はついていなかったのですが、いままでつかってたほうがなくなるらしいのでもう一つの方に引っ越しました。 で、久々の記事です。 www.apress.com そういえばこのブログはTLA+ネタを中心に書いてたこともあったな、なん…

試して理解 LINUXのしくみ を読んだよ。

@satoru_takeuchiさんという方が書いた本。ダジャレをつぶやくアカウントだと思っていたのだが、Linux系のすごい人らしい。で、せっかくなので書評というか、感想ですね。Linuxへの深い理解に基づく解説と、丁寧な実験結果を用いて、OSの基礎を学べる本。OS…

学院の地理の小川先生

すでに故人となってしまったが、高校時代のインパクトの強い先生の一人、小川先生。授業は基本的に成立しておらず、先頭中央の席に座っている学生と世間話をして一年が終わっていた。一応テストの範囲は知らされて、いざ期末テスト。問題用紙が配られ、一問…

普通の人でもわかる Paxos

スライドにまとめてみたよ。Tweetは流れて消えていくし、こっちの日記は訪問者ほぼ0なので、いずれにせよネットの大海に消えてく感じはありますが、一応ログとして。http://www.slideshare.net/tyonekura/paxos-63835103

分散プログラミングモデルおよびデザインパターンの考察

分散システムバトンが回ってきていないので、僕も書いてみることにしました。が、先生方とは違い、私は全くの素人なので、俺俺分散論で行きたいと思います。 はじめに(予防線) 私は分散ファイルシステムを開発している部門で働いていますが、幸か不幸かあ…

テストコードの品質

はじめに 私はテストを書くのは素人なので、「こいつなんにもわかってない」と思われるかもしれませんが、そういう人はスルーしていただければと思います。また、テスト駆動開発とか、アジャイルとか、いまいちわかっていません。この記事は、あくまでも分散…

TLA+本、CHAPTER 3

結論から言うと、山火事問題はまだまだ荷が重い課題でした。これまでPlusCAL中心で来ていきなりTLA+の複雑な記述に挑むのは結構辛い。なので、一旦TLA+本に戻ります。Chapter 3です。送信機、受信機がval(値受け渡し用)、rdy(SYN用)、ack(ACK用)の3本の電…

山火事問題

前回2フェーズコミットを試した後、他の例として出てくるPaxosと、もう一つの問題(本件)がありました。PaxosはPlusCALで書かれていて記述自体はシンプルなものの、アルゴリズム自体が難しい点、pdf上にざっくりと載っているだけで、動くスペックにするの…

PlusCALで2フェーズコミット

PlusCAL Manualは、実は読み終わったのですが、後半はわりとつまらないのでここには書きません。Hyperbook は時間があれば読み進める予定。iPadで読みにくいのが難点。さて、実践編その1としまして、AWSの人が書いた2フェーズコミットのブログ記事があるの…

C Manual (PlusCAL) つづき。3章。

Cマニュアル、意外によみやすいのでこのまま続けて読むことにした。3は言語仕様。 3.2.1 Assignment := はわかる。けど、-> と |-> の違いがいまいちわかってない。S->Tは写像(集合と集合のマッピング)と理解できそうだけど、それだけだとしっくりこない使…

C Manual (PlusCAL)に浮気

Hyperbookの4.9に入ったら、Lamport先生我慢できなくなったのか、「でもやっぱり数学的証明も必要だよね」みたいなかんじで証明モードに入ったため、ややゲッソリして PlusCALのC Manualをつまみ食い。(PlusCALには、Cっぽい文法とPascalっぽい文法の2通り…

4.3-4.8 ユークリッド法続き

4.3 は、ユークリッド法での最大公約数の求め方。以前PlusCALを試してみよう - みょらみょらPython日記で同じことを試したのが、少しは役立っている。基本的にはテキストにそっていけばよいのだが、実行しても「エラーが起きない」だけで肝心の最大公約数は…

TLA+ : Hyperbookを使って仕切り直し

せっかく Chapter 1と Chapter 2を終わって動かしてみたものの、なんだかずいぶん進めにくいなー、と思って、ふとHyperbook (前回 TLA+の本、と紹介した横にあったもの。最初HTML形式のオンライン物だと思ってて、避けてた)を読んでみたら、なにこれわかり…

Chapter 2 Specifying a Simple Clock

2.1 Behaviors 「コンピュータシステムにおいて、状態の変化は非連続のステップで起こると仮定できるので、システムの実行をstatesのシーケンスと表すことができる。ここで、stateとはvalueをvariableにアサインすること。システムをpossible behaviorsの集…

Chapter 1 A Little Simple Math

1.1 Propositional Logic /\ (and) => (implies、日本語だとなんだっけ?ならば、とか?) \/ (or) (is equivalent to) ~ (not) このへんはまだTLA+関係ないので余裕。 1.2 Sets 集合ね。。大学一年の時、集合と位相の授業で人生初の赤点をとった苦い記憶が蘇…

Part 1

このブログはアメブロよりもさらに読者が少ないので、ひっそりと一人輪読(というかただの読書)のまとめをかいていくことにする。英語のままだと何回読んでも頭に入ってこない。TLA+の本 http://research.microsoft.com/en-us/um/people/lamport/tla/book.h…

Chapter 2 実習

こんな簡単な例でも、読んだだけでは「ふーん、そう」という感じで、いまいちわかってない。問題は、この本をずっと読み進めていっても、いつまでたっても実際の使い方にたどり着かないことだ。(PlusCALのマニュアルはその点、少しだけ親切。それをもとにPl…

あー、PlusCALね

ひさびさにこっちのブログ書いたら思い出したよ。そうそう、PlusCAL、やろうやろうと思ってるんだけどねー。MSR閉鎖されて、らんぱーとさんどうしてるのかねー。まだ働いてるみたいだけど。

Googleで年6千万円稼ぐソフトウェアエンジニアはどんな人?の記事が自分の中で話題に。

これ、日本語になってないので、せっかくなので紹介。こういう翻訳系って勝手にやっていいもんなの?わかんないので、概要のみ意訳。 What kind of jobs do the software engineers who earn $500K a year do? http://www.aminariana.com/essays/million-dol…

ストレージベンチマーク初歩

(PlusCALはあんまり進んでないです。。)さてさて、そろそろ夏休みも終わりです。自由研究何にしようか悩んでいる人も多いのではないでしょうか。今回は、自由研究のテーマとして人気のストレージのベンチマークについて取り上げてみたいと思います。例によ…

PlusCALを試してみよう

世の中で話題沸騰のTLA+およびPlusCAL、僕も試してみようかな、と思い立った。 お、ぐぐっても日本人試してないじゃん。というか、記事書いてないじゃん。 一番乗り!っていうだけのノリです、すみません。仕事でバリバリ使えたらかっこいいんですが、今のと…

ストレージあれこれ

前置き 僕は実はそんなにストレージのテクニカルな部分には詳しくないので、素人の戯言です。また、今の会社とも親会社様ともあんまり関係ない個人の感想です。もう8年も分散NASというものを売ったり作ったりテストしたりしている。そのまえは、シングルコン…

[続きと訂正]python で file.writeで書き込むのと、os.writeで書き込むのってどう違うの?

前回の話を社内でちゃんとプログラミングが分かる人(私、わからない人。)に聞いてみたら、おま、何言ってんねん、と言われたので訂正。社員A:「サイズは1だけど、fwriteは内部でちゃんとやってるよ。」 size_t fwrite(buf, size, count, fp) ... uio.uio…

pythonの file.write と os.write の違い

python で file.writeで書き込むのと、os.writeで書き込むのってどう違うの? 私は、ファイルを開いて書き込むとき、ライブラリで file objectを渡す時があるから f = open() で呼び出して、それをos.writeに渡すのは f.fileno()しなきゃいけないから面倒だ…

用途を変えてみました。

ちょろっと何かブログ書きたいな、でもgithub上にblog作るのもだるいし、 どうすっかなー、あ、そうだ、昔はてなに微妙な非公式ブログ作ってたよな、 あれの内容変えちゃえばいっか。 と、いうことで、これまでアイシロンの中の人としてアイシロンっぽい内容…

だいぶ時間がたってしまいましたが

アイシロンの中の人日記といいつつ、日本にいたためぎりぎり外から見て有用そうな情報の提供を考えていたのですが、このたびシアトルに転属になった関係であまり書くことがなくなってしまいました。なので、しばらくおやすみということで。。

Isilon IQのランダム性能続き

あれ?なんか新しいのでました?http://www.isilon.com/press-release/emc-isilon-delivers-breakthrough-performance-big-data私、まだ日本の組織に属してるので、日本での発表まではあんまりしゃべれないんですが、 開発中のバージョンでちらっと測った値…

Isilon IQのランダム性能は、低い?高い?

#おっと、以前の題名と似たような題名に。。Isilon IQは、非構造化データ、今風の言葉で言うとBig Dataを高速で処理するために設計されたストレージです。そのため、構造化データ、いわゆるOracleのDBファイルなどをおいて使う場合には、そちらが得意なSAN…

年も変わって、色々変わる?

さて、アイシロンはEMCの1部門となり新たな出発となりました。IQの開発についてはシアトルのままリソースを拡充していくみたいですね。よいことです。EMC の18日の発表も楽しみですね。The Registerの記事の通りの内容かは、私ごときにはわかりません。 M…

ファイルサイズの話(5年目の真実)

〜〜〜前置き〜〜〜100MBのファイルを3台のIQに書き込むとします。すると、ノード1に50MBのデータ、ノード2に50MBのデータ、ノード3に50MBのパリティと(言うイメージで)書き込まれます。これで、筐体をまたいだRAID5のような保護になります。*1100MBのファ…