サワーの飲み方

テーマ:

最近は暑くて、飲む酒はサワーにすることが多い。


まあビールだと尿酸値とかが気になるなあってのもあるのだけど、グラスにロックアイスを大量に入れて飲むサワーってうまいよね。暑い夏の夜はこれがたまらなくうまい。


で、飲むサワーなのだけど、なるべくならレモンサワーとかグレープフルーツとかの、カロリーの低そうなものにしたい。でもレモンサワーとかってのは、安い甲類焼酎の味がもろに感じられてちょっとうまくないときがある。これが悩みどころだ。(とくにアルコール度数高めでドライをうたっているようなやつが、そういうときが多い)


やっぱし焼酎のうまいまずいは値段に比例するというか、安物の甲類はぼくはちょっと苦手なのだけど、そーいう安い焼酎の味がちょっとしてしまうのだな。値段ちょっと高めでもいいから、もうちょっといい焼酎使ったサワーとか出してくれないかなあ、と思う。


自分でそこそこの値段の焼酎買って作ればいいのかなあと思ってやってみたのだけどこれもなんかイマイチなんだよね。なぜなのかはわからんけど。


ピーチとかグレープとかの、果物系のサワーだとあまり感じないので、そういったサワーを飲むこともあるのだけど、最近、いい方法を発見した。それは、ワインで割るというものだ。


グラスにロックアイスを山盛りにしてサワーを注いだ後、1センチくらい赤ワインを注ぎ足す、という飲み方だ。まあワイン好きの人に言わせれば邪道かもしれないのだけど、いい感じでワインの香りがついて、甲類焼酎のいやなにおいも消えておいしいです。おすすめ。サワーはなんでもいいので、カロリー低めのレモンサワーとかがいいでしょう。


ワインはスーパーで売ってるやっすいやつで十分。じつはぼくは安赤ワインも苦手なのだけど(甘ったるかったり、渋みとかがまったく無く単調にすっぱいだけだったりするから。ちなみに赤ワインは大好き)、これに使うと安赤ワインでもおいしく飲めて一石二鳥。おすすめです。だれもやらんと思うけど。



AD

すげえとおもう技術者

テーマ:

世の中にはすげえとおもう技術者はいっぱいいて、OSCとか参加すると、それはまたすごいひとにいっぱい出会うもんだ。自分は井の中の蛙だなあ、とつくづく感じさせられる。


で、僕がこの人はほんとすげーなーとおもうのは、まずはリチャードストールマンかなあ。ぼくはGNUの信奉者というわけではないが、ストールマンは業績もすごいけど、その信念というか納得いかなかったらとことんまでっていう反骨精神というかバイタリティがすごいよね。


あとはC言語の生みの親のカーニハンとリッチーとか、Linuxのリーナストーバルズとか、Perlのラリーウォールとかもすごいなあとおもう。日本だとRubyのまつもとゆきひろさんとか、TRONの坂村健大先生とかかなあ。なんにせよ、既存のものでは飽き足らずに自分で作っちまえという考えには刺激を受けるものがある。

このひとはすげえなあと思う人というのは、その技術力もすげえんだけどそれだけがすごいというだけではなく、なんつーか信念というか反骨精神というか、考え方がすごいよね。普通のひととは考え方が違うというか。。。そーいう部分に刺激を受けるもんだ。


アイディアも斬新ですごかったりするのだけど、すごいアイディアというのは単なるひらめきではなくて、実はそういった自分で作っちまえという基本的な信念から生まれるものが多いと思う。自分で作るという考えがふだんからあるからこそ、ふだんから物事を根本から考えるので、そういうすごいアイディアが出るのだと思う。アイディアというのは天才的なひらめきで一瞬にして出るものではなく(まあそういう天才も中にはいるだろうが)、普段から一生懸命考えているからこそ、生まれるものだと思う。


たとえば昔、料理の鉄人って番組があったじゃあないですか。いきなりお題を出されて1時間で料理を作るっていうやつ。あれですげえなあって思うのは、どんなお題を出されても、1時間できちんと作り上げることだ。これは、単なるひらめきとかで作っているのではなく、普段から様々な食材についていろいろ考えているからこそ、いざ1時間で作るってことになっても作ることができるんだとおもう。

そーいう部分がすごいのだ。そしてそれは、自分も見習うことができる部分だから、刺激を受けるのだ。(ひらめきが天才的というだけだったら、それは見習って真似することはできないけど、普段から「自分が作る」という考えで根本から考えている、という考え方は、見習って真似することができるので)


で、マジメな話はさておいて、この人もすげえなあとおもう技術者がいる。一番に思うのは、トチローだ。あの「キャプテンハーロック」のトチローです。


なんせ彼はあのでかいアルカディア号を一人で作ってしまっている。ひとりで、でだよ。戦艦を、だよ。


戦艦なんて、きっと国家規模の技術の集大成だろうから、彼は機械やコンピュータだけの知識じゃなく、ありとあらゆる工学技術を一人で持っているんだろうなあ。造船とか建築とかの技術もあるわけだ。それとは別に、溶接とか玉がけ(クレーンのフックに荷物をひっかける作業)とかといった現場の技術も持っていることになる。すげえよなあ。


あとすげえなあと思うのは、ドロンボーのボヤッキーだ。(まあ最近ヤッターマンが映画化されて流行りだしね)


彼のすごいところは、毎週毎週ロボットを作っているけど、前の週のものとはまったく違ったロボットを作ってくることだ。普通は前に作ったものを機能拡張したりコストダウンしたりして、改良して作るよね。しかし彼は、ぜんぜん違ったものを作ってくるのだ。きっと自分が前に作ったものには、もう興味がないんだろうなあ。これってすげえ天才肌だよなあ。技術者という視点から見ると、主人公のヤッターマンよりはるかにかっちょいい。


しかもそのロボットの製作資金は、毎週毎週なんか商売をしてもうけた金をあてているんだよね。


まあサギまがい、っていうかサギな商売なのだけど。でもそれでもロボット1体作るだけの資金を稼いでしまうんだから、ビジネスセンスもきちんとあるわけだ。ものづくりは得意なのだけどビジネス感覚に薄いという、多くの技術者にありがちな欠点を持っている僕としては、尊敬に値する部分だ。ロボット作るのやめれば一生食っていけるんじゃないの?とも思うのだけど、きっと技術者魂が作ることをやめさせないんだろうなあ。そういうプライドもあるわけだ。たぶん。


さらに毎週どくろべえにこっぴどくおしおきを受けてもまったくめげない根性。っていうかまったく気にしてないし。こういう「(いい意味で)あまり気にしない性格」って現場ではけっこう大切だったりするけれど、精神的な強さも持っているわけだ。こういう部分は見習わないといかん。


うーん、すげえひとはいっぱいいるなあって話でした。(ボヤッキーに刺激を受けてるってどうよ!とも思うが、それで頑張るならばそれはそれでよし)

AD

すっぱいキムチ

テーマ:

発酵食品が非常にすきなのだが、最近はマイルドなものが多くて困る。


納豆とか、臭いほうがうまいと思うのだけど、「におわなっとう」みたいなものとかあったりして。まあべつにそういうのがあるのはいいし否定はしないのだけれど、「におわなっとう」があるのならば「におうなっとう」とか「くさいなっとう」とかがあってもいいのになーと思う。(納豆メーカーさん、どうですか?「男前納豆」とか)


カレーとか、「辛さ10倍!」とかあるよね。納豆とかも「臭さ2倍!」とかあればいいのに。


で、キムチとか納豆とかすきなのだけど、最近、キムチとかはスーパーで買ってきてそのまますぐに食べるのじゃあなく、しばらくおいといてすっぱくなったのがうまいというか好きになってしまった。


よく、スーパーでキムチ売ってるじゃあないですか。パックになっていて、普通にどこのスーパーでも売ってるようなやつ。あれを冷蔵庫なら賞味期限過ぎて1ヶ月くらいほっとくのです。するとスッぱーくなるのだけど、これがうまい!と思うのだな。僕だけかもしれんけど。


常温ならば、1週間くらい放置かなあ。目安として、発酵によるガスでパックがぱんぱんにふくれているくらいがおすすめです。いや賞味期限はとっくに過ぎているので、おすすめではなく自己責任でどうぞということになるのですが。でもうまい、と思う。(すっぱいですが)


よくキムチってほっとくとすっぱくなってしまうので食べごろはいつだとかっていうけど、そのすっぱいのがうまいと思うんだけどなー。なーんて僕だけかなあ。


ちなみにヨーグルトは常温で1週間くらい放置して汁気がなくなった感じのが僕は好き。あ、やるんなら1回食べきりのパックになっているやつね。1回封をあけてしまうと、さすがにカビると思うので。発酵食品に賞味期限はあってないようなものなので、賞味期限過ぎてもぜんぜん大丈夫だと思います。(発酵食品の賞味期限は所詮、食べごろはいつかってくらいの目安程度なので、好きなタイミングで食べればいいと思う)


納豆は冷蔵庫で1週間くらいかなあ。でも納豆は、放置してもあまり変わらない感じもするんだよね。あと納豆はほっとくとかびやすいので注意。


AD
(注意)このブログは本家のほうの文章部分のみの転載です.ソースコードの配布,画像などについては本家のほうを参照してください.文章中のリンク先は面倒なのですべて本家のほうに変換してしまっているのでご注意ください.

7/10(金)~11(土)に京都駅近くの京都コンピュータ学院 京都駅前校で開催された,オープンソースカンファレンス2009 Kaisaiに出展してきました.前回とは異なり,単独ブースでの出展です.

いやいや,楽しかったですね.いろいろな人に話を聞いていただけました.わたしの説明に時間を割いていただいた方々,どうもありがとうございました.応援していただいたり,いろいろアドバイスなどもいただけで感謝です.他のコミュニティの方々ともいろいろ話せました.

で,KOZOSなのだけど,現在ちょっと本業が忙しいのと,週末はこっちの連載を書くので手一杯状態なのでちょっと開発が進んでいません...OSC関西でKOZOSの説明を聞いていただいていまこのページを見ているかた,ごめんなさい.

とりあえずOSC関西で紹介したPowerPCボードへの移植ですが,Interface誌の記事についてきちんと情報公開していなかったので,雑誌記事についてはこっちに書いておきました.ソースコードも公開してあります.あとはPowerPCへの移植については,「独自OSを作ってみよう!」の下のほうの「移植編」を見てみてください.まあ思っていることは,こことかここにいろいろ書いてあります.

で,ちょっとOSCで思ったこととして...

やっぱしデモが地味だね.なにかマイコンボードとかに移植して,実機で動作しているところを展示できたらいいなあ.次回のOSCは名古屋に出展する予定だけど,秋月のH8ボードか,Interface誌の付属ARM基板あたりに移植できたらいいなあ.

あと,説明を聞いてくれたかたのひとりに学生さんがいて,「組み込みOS自作って興味ありますか?」という言葉に目をキラキラと輝かせて「はい!」と返事をしてくれたかたがいた.いやー,いいねえ.こういう人達と話をすると,やっぱしもうちょい頑張って作ろうかなって思います.(昔の自分を見ているようだ)

他にも新社会人のかたとか,専門学校のかたとかで,興味を持ってもらえて積極的に質問してくれたかたもいた.で,そーいうかたたちと話をして思うことなのだけど,やっぱし組み込みOSって,興味のある人はけっこういる.これは,OSCの短い日程の中だけでもそういう何人かと出会うわけなので,実際にけっこういるのだと思う.

そして多くの場合,興味はあるのだけど,実際どうやって勉強したらいいか,作るとしたらいったい何をすればいいのかわからない,ということがハードルになってしまって手が出ない,という人が多いようだ.KOZOSの開発をもっと進めることで,なんとかそのへんの解決になればなあ,と思う.なにせKOZOSのような単純なサンプルOSは,自分自身が組み込みOSを独学で勉強し始めたときに,ものすごーくほしかったものだからだ.
(注意)このブログは本家のほうの文章部分のみの転載です.ソースコードの配布,画像などについては本家のほうを参照してください.文章中のリンク先は面倒なのですべて本家のほうに変換してしまっているのでご注意ください.

ちょっといまさらなのだけど,CQ出版「Interface」の2009/02号から「実践的PowerPC活用テクニック」という連載を書いていて,第12回の2009/07号で,KOZOSが紹介されています.5月末の発売なので,ホントいまさらですな.(読みたい人はバックナンバーを買って!買うときには「KOZOSの記事が読みたくて」と出版社に言ってね!)

内容は,BLANCAのPowerPCオプションボードにKOZOSを移植する,というものです.ついでに次の号では,KOZOSをベースにGDBスタブ移植してGDB対応しています.

KOZOSのソースコードは雑誌掲載用に必要最低限の内容にしぼってあります.で,連載のサンプルプログラムをダウンロードできるようにするのをすっかりさぼっていたのだけど,ここからダウンロードできるようにしときました.興味ある人は見てみてください.KOZOSの移植のソースコードは,「第12回(2009/07号)のサンプルプログラム」というやつです.あと第13回のほうでもGDBスタブ実装のためにKOZOSを利用しているので,そっちも参考になるかも.

ちなみに上記ソースコードなのだけど,連載の以前の回のファイルもそのまま残ってしまっているので,ちょっといろいろあります.が,pci.[ch]やled.[ch]などはKOZOSの動作にはとくに無くてもいいもので,KOZOSのコア部分だけに関してならばだいたい700行くらいです.

% ls
KL-01 crti.c led.c memory.c startup.s
LICENSE crtn.c led.h memory.h syscall.c
Makefile extintr.c lib.c pci.c syscall.h
command.c idle.c lib.h pci.h thread.c
configure.h kozos.h main.c serial.c thread.h
crt1.c ld.scr make.sh serial.h
% cat kozos.h memory.[ch] startup.s syscall.[ch] thread.[ch] | wc -l
698
%

で,ここで言いたいのは「KOZOSは小さくてすごいでしょ!」ということではなくて(小さいとは思うが,すごいとは思わないので...),「OSってたったのこれだけでも書けてしまうんです」ということです.まあこのへんのことはこっちでいろいろ書いているのでそっちも読んでほしいのだけど,こんだけでいいなら,OSってもしかしたら自分でも作れちゃうんじゃないの?とかいう気になるでしょ?

どの程度の機能があればOSと呼べるのか? VGA無いのでは話にならん!ネットワーク機能も無いのでは実用にならん!ファイルシステムは必須だろう!といった意見は多々ある.しかし,それらって別にOSの機能ではないと思う(UNIXはファイルシステムOSなので,動作のためにファイルシステムが必須だが,それはUNIXがそうなだけであって,OS一般の話ではない).これはぼくの勝手な持論なのだけど,スレッド管理とメモリ管理とデバイス管理だけあればOSと呼べると思う.というのはコンピュータ・システムの3大要素がCPUとメモリとI/Oであるので,その3つを管理できれば,コンピュータ・システムを管理しているといっていいと思うからだ.

会社の若手とかがちょっと志を持って,個人的にOS勉強してみたいなーと思ったり,大学生やもしくは高校のパソコン部とかで,自分らで独自OS作ることはできないかと挑戦してみたくなったときに,サンプルとしてLinuxとかμiTRONとかを見てしまうと,巨大すぎてたいていはまあ己の無力さを感じるだけの結果となってしまうと思う.(それでも「作ってやるぜ!」と思うような人はこのページを見なくても勝手に作ると思うので,それはそれでいいですが)

しかしたとえば今回のKOZOSの移植例のように,たったの700行ていどなら「自分でも作れるのではないか?」「少なくとも,頑張ってソースコード読めば全貌を理解できるだろう」と思えるじゃあないですか.

そーいう意味でKOZOSはあまり機能追加してコード量を多くはしたくないし,将来的にデバッグ機能とかを追加していくとしても,それは別コードとして独立させて,簡略化してあるソースコードはちゃんと残したいと思う.多CPU対応するときもそうで,本来ならハードウエアを仮想化して移植性を高くしてソースコード共通化する,という話になるのだけれど,KOZOSの場合はCPUごとにソースコードを独立させて,シンプルさを確保したいと思っている.

というのは「ハードウエアを仮想化してソースコード共通化する」というのはプログラムの書き方の勉強であって,OSの本質の勉強とはあまり関係の無いことであり,そっちはそっちで別に勉強すべきことだと思うからだ.

これに関しては反論多そうなので一応書いておくけど,「勉強しなくていい」という意味ではないよ.ただOSの勉強したいときに,OSの本来の動作(スレッド切替えとか,割り込み処理とか)の部分のソースコードが難しくてわかりにくいというのはしょうがない.それはOSを知るためにはそれを理解することが必要,ということだからだ.しかしソースコード共通化などの別原因で(#defineの定義や関数呼び出しが深くなってしまい)ソースコードが追いにくくなっていて,本来やりたい「OSの内部構造の勉強」の妨げになるのはよくないと思う,という僕の考えだ.矛先が違うということだ.

で,そのようなあまり関係の無いことのために読みにくくなってしまい,「OSの内部構造を知りたい」という本来の目的から離れてしまうのは避けたい.もしもそのような書き方が必要なら,必要となった人が必要なときにそう書けばよいだけのことだ.

もちろん,700行程度でできることは少なくて,雑誌掲載用にシステムコールも必要最低限だけにしぼってある.だけどこれは「機能が貧弱なので実用的でない」ということではなく,「機能は最低限しか無いので,ほしいサービスがあればシステムコールを自分で追加してみたらどうだろう」「そもそも機能が貧弱すぎてKOZOSはダメだと思うならば,自分でスクラッチで書いてみてはどうでしょう」という僕のメッセージだと受け取ってほしい.

KOZOSでのシステムコールの追加は簡単だ.syscall.[ch]にシステムコールの入口があるのでそこにてきとうに追加して,実際の処理を thread.c に書くだけだ.セマフォとかほしければ,簡単に実装できると思う.改造しやすい,機能追加しやすいということは,KOZOSの最大の魅力のひとつだと思う(中身をたいして読まなくても,誰でも改造できます).いろいろお試しで機能を入れてみて実験するためのベースOSにするというのはとてもいい使いかただと思う.なにせ僕自身が,たとえばGDBスタブ実装の実験とか,GDBスタブのスレッド対応の実験とかのベースOSとして使っているので.

組み込みOSの勉強をしたいとき,いちばん手っ取り早いのは,何かてきとうなOSを拾ってきて動かしてみることだ.で,いろいろ実験してみるのがいいのだけど,その実験用にまあその拾ってきたOSを使ってもいいが,実験用のベースOSとして自作OSをひとつ持っておくと,いろいろと試すときにとても便利だ.

「KOZOSなんて貧弱だしダメだよ」と思ってもらっても構わないが,そのような人は自分で作ればいいだけのことだ.僕はべつに,KOZOSを実用OSとしてそのまま使ってほしいというわけではない.ただ「OS自作は難しい」というイメージを払拭し,OS自作のハードル(技術的なハードルというより,「難しそう」という意識的なハードル)を下げたいだけだ.

自分自身,個人的興味だけで組み込みOSを勉強したいと思ったが教えてくれる人はいなくて,独学でいろいろやってきたが,読解しやすくて試しやすいサンプルが無いことが一番のハードルではあった.

自分のそーいう経験が,ほかの似たような人のために役立てられればいいなあ,と思う.だからKOZOSは,OSの専門知識を持っている人や大学できちんと教わることができた人やμiTRONの勉強をきちんとした人だけが理解できるというものではなく,OSを何も知らない人でも,一生懸命読めば理解できるし簡単に試せる,というものにしたい.