2007-02-27
How much money do i need to buy Geisha girl?
2007-02-26
Currency conversion from Edo era
一両っていくら? 一文っていくら? 江戸時代の通貨の価値はどうなっていたのかということが、ふと気になった。そこで、軽く調べてみたが、どうやら物事は、それほど単純ではないようだ。
まず、貨幣であるが、金貨、銀貨、銭貨(材質は銅)という、三種類の金属製の貨幣があったようだ。参ったことに、この貨幣は、それぞれ別物らしい。というのも、時代によって為替相場が、かなり変動するのだ。つまり、円とドルとユーロが、各々並行して使われていたとでも言うべきだろうか。あるいは、米ドルとカナダドルと香港ドルぐらいだろうか。
まず価値については、金貨>銀貨>銭貨 である。
銭貨について述べる。これは、一文、二文と数える。千文集めて、一貫文と言う。
銀貨はちょっと分かりづらい。まず、丁銀という銀貨がある。この価値は変動するのだが、だいたい五十乃至は六十匁である。その下に、五匁銀というものがある。これは、文字通り五匁である。さらにその下に、一分銀という貨幣がある。一分銀が4枚で、五匁銀である。また、二朱銀と一朱銀があり、十六朱で五匁銀になる。まとめると、次のようになる
1 丁銀 = 12 五匁銀 = 4 一分銀 = 8 二朱銀 = 16 一朱銀
さて、金貨はどうなのか。まずおなじみの小判、一両、二両と数える。その下に、二分金、一分金、二朱金、一朱金がある。銀貨の場合と同じく、一両 = 四分 = 十六朱 である。
さて、変動為替相場がやっかいだ。小判一枚が何文に相当するのか。ちょっと調べた限りでは、4000~6000文といったところだった。かなり曖昧だ。金貨と銀貨は、一両が50~60匁に相当するようだ。これもかなり開きがある。
さて、交換比率はいいとして、実際に、一両は何円なのかが知りたいところだ。時代劇でよくある、悪代官の袖の下に、切り餅(25両)を通すところなど、実際いくらぐらいなのかが知りたい。とはいえ、そもそも時代が違うのである。物価も大きく違っているのだ。通貨の価値を比較するには、たとえば実際の物資で比較するのが分かりやすいが、何で比較するかによって、だいぶ違う。たとえば、砂糖や菜種油は、かなり高い。特に、砂糖の高さは、現代から考えると異常である。つまり、現代と昔では、砂糖に対する価値が違うので、砂糖を基準にしてしまうと、一両の価値は、数千円になってしまう。米を基準とした場合と一桁違う。物資ではなく、サービスでも同様である。たとえば髪結いだが、現在床屋が2~3千円、美容院は6千円以上はする。ところが、江戸時代では、せいぜい数十文である。髪結いを基準にすると、一両は百万近くにまで跳ね上がってしまう。どうやら、昔と今を単純に比較することはできないようだ。
まあ、私の結論としては、一両は5~10万ぐらい、一文は10円強というあたりの認識にしておいた。すると、切り餅は150万円ぐらいというところだろうか。
参考:
http://www1.u-netsurf.ne.jp/~sirakawa/J029.htm
http://hirose-gawa.web.infoseek.co.jp/mame/kahei.html
http://plaza.across.or.jp/~akira-f/jd-koban/koban.html
C++0x(x == 9) or a in hex?
2007-02-24
I can read! I CAN READ IT!
Boost.Function is the magic to me
2007-02-23
Unicode has SHOGI PIECE
2007-02-21
smartphone
2007-02-20
Inside Boost.Any
int main() { std::vector<boost::any> v ; for (int i = 0 ; i != 20 ; ++i) { switch(rand()%5) { case 0 : // int型の値 v.push_back(int(123456)) ; break ; case 1 : //円周率でも入れてみよう v.push_back(float(3.14f)) ; break ; case 2 : //精度が高くても大丈夫だろう v.push_back(double(3.141592)) ; break ; case 3 : //std::stringはどうかな v.push_back(std::string("hello,world")) ; break ; case 4 : //vectorなんていれてみたりして v.push_back(std::vector<int>(10, 0)) ; } } for (std::vector<boost::any>::iterator iter = v.begin(), end = v.end() ; iter != end ; ++iter) { std::type_info const & t = iter->type() ; if (t == typeid(int)) { std::cout << "int : " << boost::any_cast<int>(*iter) << std::endl ; } else if (t == typeid(float) ) { std::cout << "float : " << boost::any_cast<float>(*iter) << std::endl ; } else if (t == typeid(double)) { std::cout << "double : " << boost::any_cast<double>(*iter) << std::endl ; } else if (t == typeid(std::string)) { std::cout << "string : " << boost::any_cast<std::string>(*iter) << std::endl ; } else if (t == typeid(std::vector<int>)) { std::cout << "std::vector size : " << boost::any_cast< std::vector<int> >(*iter).size() << std::endl ; } } }
これが、あの型に厳しいC++のコードだろうか。見ての通り、anyには、ほぼどんな型でも入れることができる。(CopyConstructibleで、例外を投げないAssignableで、例外を投げないデストラクタでさえあれば)
なにしろ、かの変態的なBoostのライブラリである。さぞかし不可思議なコードになっていることであろうと考えてしまうかもしれないが、実は違う。ものすごく、コロンブスの卵的な、単純なコードで実現されている。どうもanyの実装に関する日本語のWebサイトが引っかからないので、この際、ここで解説を試みる。おそらくは、私のようにanyの実装が気になっていて、自分では実装方法がわからない人は、日本にひとりぐらいはいると思われる。うむ、居るのではないかな。居るかもしれない。
とはいっても、仕組みを知ってしまうと、解説する気さえ失せてしまうのだが。
型を無視したい場合、一体どうするか。たとえば、オブジェクトへのポインタを、void *型にキャストしてしまう方法がある。環境によっては、うまくいくだろうが、これではあまりにも貧弱すぎる。第一、anyのように、どんな型でも入れられるような機能を実装しようとすると、今何を入れているのか、把握しておかなければならない。ではどうするか。
ところで、C++には仮想関数という便利な仕組みが存在する。Baseクラスで純粋仮想関数を定義しておき、それを継承したクラスを作る。そして、Baseクラスのポインタとして呼び出すと、なんと、自分の型の関数が呼ばれるという、なんとも便利な機能だ。
class Dwarf { public : virtual void show_yourself(void) = 0 ; } ; class Dwalin : public Dwarf { public : virtual void show_yourself(void) { std::cout << "Dwalin at your service!" << std::endl ; } } ; class Balin : public Dwarf { public : virtual void show_yourself(void) { std::cout << "Balin at your service!" << std::endl ; } } ; class Kili : public Dwarf { public : virtual void show_yourself(void) { std::cout << "Kili at your service!" << std::endl ; } } ;
このように、ドワーフクラスを継承した、各ドワーフ達に、挨拶をさせることができる。
しかし悲しいかな、現実は、往々にしてうまくいかないものだ。既存のドワーフクラスがあり、それらを再利用したいとする。それぞれ、てんでばらばらである。共通のベースクラスを継承しているなどということはない。ただし、show_yourselfメンバ関数で、挨拶をすることだけは、共通している。
// 汚い既存の現実のコード // それぞれ、異なる思想で設計されている。 // ただし、show_yourself関数だけは共通 class Dwalin { public : void show_yourself(void) { std::cout << "Dwalin at your service!" << std::endl ; } } ; class Balin { public : int a, b, c, d, e, f, g ; void show_yourself(void) { std::cout << "Balin at your service!" << std::endl ; } } ; class Kili : class CommonObject { public : virtual void CommonWhat() ; virtual void CommonFunc() ; virtual void show_yourself(void) { std::cout << "Kili at your service!" << std::endl ; } } ;
中つ国の住人ならば既にお気づきかと思われるが、これはホビットの冒険に出てくるドワーフ達である。つまり、こんなクラスが13個もあるのだ(ドワーフは13人いる) このクラスのオブジェクトを管理し。show_yourself関数を呼び出したいとする。実行時にオブジェクトを管理しなければならないので、コンパイル時に型が決まってしまうテンプレートでは役不足である。実行時にドワーフを入れ替えたいのだ。さて、どうしよう。
こういうとき、どんなドワーフでも代入できる、any_dwarfなるクラスがあれば便利だ。早速作ってみよう。
実装のミソは、仮想関数である。
class placeholder { public : virtual void show_yourself(void) = 0 ; } ; template < typename DwarfType > class holder { public : holder(DwarfType const & dwarf) : held(dwarf) { } virtual void show_yourself(void) { held.show_yourself() ; } private : DwarfType held ; } ;基本はこれ。
class Dwalin { public : void show_yourself(void) { std::cout << "Dwalin at your service!" << std::endl ; } } ; class Balin { public : void show_yourself(void) { std::cout << "Balin at your service!" << std::endl ; } } ; class Kili { public : virtual void show_yourself(void) { std::cout << "Kili at your service!" << std::endl ; } } ; class any_dwarf { private : class placeholder { public : // structers virtual ~placeholder(){} public : // queries virtual placeholder * clone(void) = 0 ; public : // member function virtual void show_yourself(void) = 0 ; } ; template < typename DwarfType > class holder : public placeholder { public : explicit holder(DwarfType const & dwarf) : held(dwarf) { } virtual placeholder * clone(void) { return new holder(held) ; } virtual void show_yourself(void) { held.show_yourself() ; } private : DwarfType held ; } ; public : template < typename DwarfType > any_dwarf(DwarfType const & dwarf) : content(new holder<DwarfType>(dwarf) ) { } any_dwarf(any_dwarf const & other) : content(other.content.get() ? other.content->clone() : 0) { } any_dwarf & operator = (any_dwarf const & rhs) { if (this != &rhs) { content.reset(rhs.content->clone()) ; } return *this ; } template < typename DwarfType > any_dwarf & operator = (DwarfType const & rhs) { content.reset(new holder<DwarfType>(rhs)) ; return *this ; } void show_yourself(void) { content->show_yourself() ; } private : std::auto_ptr<placeholder> content ; } ; int main() { std::vector<any_dwarf> v ; for (int i = 0 ; i != 20 ; ++i) { switch(rand()%3) { case 0 : v.push_back(Dwalin()) ; break ; case 1 : v.push_back(Balin()) ; break ; case 2 : v.push_back(Kili()) ; break ; } } for (std::vector<any_dwarf>::iterator iter = v.begin(), end = v.end() ; iter != end ; ++iter ) { iter->show_yourself() ; } }
まず、placeholderという抽象クラスがある。これを継承するテンプレートなクラス、holderが、それぞれの型のオブジェクトを持つ。any_dwarf自体は、holderへのポインタを持てばよい。こうすることによって、実行時に型を変えることができる。そして、仮想関数のディスパッチによって、正しいshow_yourself関数が呼ばれることになる。
Boostのanyも、これと同じ実装である。
実際にコードを示したほうが分かりやすいと思ったが、まさかこんな例を使うことになるとは思わなかった。しかし、Type Erasureは、よくよく考えると当たり前の挙動だ。何故今まで思いつかなかったのだろう。実装も実にたやすい。コードも短い。
肝心のany_iteratorだが、なんだか結構複雑だ。何故あんなに複雑なのだろう。確かにイテレータには、種類があるとしても、何故だろう。今なら、any_iteratorのコードも読めそうな気がする。
それにしても、まさか自分で、anyを実装できるようになるとは思わなかった。C++ Template Metaprogrammingという本はすばらしい。
参考:C++ Template Metaprogramming
2007-02-19
Otogi-zoushi by Dazai Osamu
2007-02-18
about any_iteretor
2007-02-16
May the fate favored you
Die sutpid smoker who does not belong in modern society!!
2007-02-15
Japanese news paper ie funny joke paper
インターネットで商品を競売するネットオークションに個人として大量に出品している人の96%が、特定商取引法に違反していたことが経済産業省の調査で分かった。 同法は、販売業者に住所や電話番号の表示を義務づけているが、個人は対象外で、IDだけを表示する“匿名出品”も可能。しかし、大量出品者は販売業者とみなされ、氏名や電話番号の表示義務が課される。 この定めに基づき、経産省は「ヤフー・オークション」「楽天オークション」「ビッダーズ」の大手3サイトを対象に、昨年7月から、個人として参加している出品者の中に販売業者とみなされるケースがないかを継続調査してきた。 その結果、出品者4121人のうち、11%にあたる452人が販売業者の条件を満たす大量出品者とみなされ、そのうち96%にあたる433人に表示義務違反が認められたという。大半は経産省からの注意メールを受けて是正したが、是正しない場合などには、毎月、同省がホームページ上でIDを公表している。 2月上旬には25の出品者がIDを公表されたが、すべてヤフー・オークションへの出品者だった。ヤフーでは「出品者が法令を順守することが望ましいのは言うまでもないが、我々が業者か個人かを見極めるのは難しい」と話している。 (2007年2月14日14時37分 読売新聞)すばらしく誤解させるタイトルだ。本当に、日本の新聞というのは、ジョークにしか思えない。このタイトルでは、出品者のほぼ全員が違反していると解釈される恐れがある。いや、少なくともエスパー能力のない自分は、そう解釈した。96%とは、特定商取引法で業者とみなされる出品者のうちの96%である。まあ、彼等は皆、法解釈上「個人」で出品していると思い込んでいるのだから、公開していなくても不思議はない。 しかし、どのくらい出品すると、業者とみなされるのだろう。 まあ、笑いたいときは、日本の新聞を読むに限る。ジョークの宝庫だ。
2007-02-14
2007-02-13
Vistaのカーネルについて
2007-02-12
XHTMLとCSSは本当に難しい
正規表現は楽しい
正規表現は面白い。rubyを用いると、次のような感じだ。
text = 'C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off.' ;
re1 = /C\+{1}/ ;
re2 = /y.*f/ ;
re = /#{re1}.*#{re2}/ ;
re.match(text) ;
p(text) ;
p(re) ;
p($&) ;
なるほど、正規表現は確かに面白い。しかしこれは、他人の書いた正規表現は読めそうにない。たとえば、次のようなもの
IPv4にマッチする正規表現はどう書くか?
RFC2822に準拠する、メアドにマッチする正規表現
HTTP URLにマッチする正規表現
こんなもの、誰も読めるわけがない。
2007-02-11
2007-02-10
今年の目標
1. 俺様言語を作る。
C言語のインタプリタというのは無謀かな。
2. DirectX9で何かゲームを作る。
本音を言うと、DX9など使いたくはない。最低でも9.0L……、理想はDX10を使いたい。デバイスがロストするなどもってのほかだ。
3. 体調を崩さぬようにする。
これがある意味、一番重要。去年は酷かった。
来年の目標
1. 一発成功して、数十億ぐらい稼ぎ、田舎に隠居する。
それもひとつの幸せな人生だと思う。
2. ひとつの力の指輪所有者になる。
ひとつの指輪はすべてを統べ、一つの指輪はすべてを見つけ、暗闇の中につなぎとめる。影横たわるモルドールの国に。
3. 鬼を笑わせる。
来年のことを言うと何とやら。
2007-02-07
性差によるシャワー使用の違いについて
http://www.youtube.com/watch?v=Qehxjub5lyo
Lesson One
レッスン1
How to shower Like a Woman
女のシャワーの浴び方
take off clothing.
服を脱ぐ。
Place it in sectioned laundry hamper according to lights and darks
洗濯カゴに、色物に分けて入れる。
Walk to bathroom wearing long dressing gown.
ガウンを着て、風呂場まで歩く。
If you see husband along the way. cover up any exposed areas.
もし、夫に出会う場合、秘所は慎み深く隠す。
Look at your womanly physique in the mirror.
鏡で自分の体を確認する。
Make mental note to do more sit-ups, leg-lifts, etc.
もうすこし腹筋や<a href="http://www.dcdoctor.com/pages/rightpages_wellnesscenter/homeexercises/back/exercises/exer_abd_leglifts.html">レッグリフト</a>等をするように心に誓う。
Adjust breasts.
胸を確認する。
Turn on shower.
シャワーを出す。
Wash your face with crushed apricot facial scrub for 10 minutes until red.
アプリコットオイルで、顔面が赤くなるまで、10分間ほどよく擦る。
Use face cloth, arm cloth, leg cloth, long loofah, wide loofah and pumice stone.
顔用手拭、腕用手拭、脚用手拭、長いヘチマ、広いヘチマ、軽石を使い分ける。
Wash your hair once with cucumber and sage shampoo with 43 added vitamins.
キュウリとセージの43種類のビタミン配合シャンプーで、髪を一度洗う。
Wash your hair again to make sure it's clean.
もう一度髪を洗い、確実に汚れを落とす。
Condition your hair with grapefruit mint conditioner enhanced with real passionfruit.
グレープフルーツにパッションフルーツを加えたコンディショナーで髪に香りを付ける。
Rinse conditioner off hair.
コンディショナーをすすぎ落とす。
Shave armpits and legs.
脇と脚の無駄毛を剃る。
Get out of shower and stand directly on bathmat.
風呂場から上がり、バスマットの上に立つ。
Dry with towel the size of a small country.
偉大なるタオルで体を拭く。
Spray mold spots with Tilex.
ティレックス社のカビ落としスプレーをかける。
Squeegee off all wet surfaces in shower.
シャワーの曇りをすべてふき取る。
Return to bedroom wearing long dressing gown and towel on head.
ガウンを着、タオルを頭に載せて、風呂場を後にする。
How to shower Like a Man
男のシャワーの浴び方
Take off clothes while sitting on the edge of the bed and leave them in a pile.
ベッドに座って服を脱ぎ、そのまま脱ぎ散らかしておく。
Walk to the bathroom naked.
裸のまま風呂場まで行く。
If you see wife along the way, shake wiener at her making the 'woo-woo' sound.
もし、妻に出会う場合、ウインナーをぶらぶらと揺らして、キャーキャー言わせる。
Admire the size of your wiener and scratch your ass.
自分のウインナーの大きさを褒め称え、ケツを掻く。
Look at your manly physique in the mirror.
自分の体を鏡で確認する。
turn on shower. Wash face.
シャワーを出し、顔を洗う。
Spend majority of time washing privates.
秘所を洗うことに、シャワー時間の大半を費やす。
Blow your nose in your hands and let the water rinse them off.
手バナをかみ、シャワーで洗い流す。
Fart and laugh at how loud it sounds.
屁をこき、その音の大きさに笑う。
Wash your hair.
髪を洗う。
Make a Shampoo mohawk.
髪型をモヒカンにして遊ぶ。
Wash your butt, leaving those coarse butt hairs stuck on the soap.
ケツを洗う。野太いケツ毛は、石鹸に張り付くがままにしておく。
Pee.
小便
Rinse off and get out of shower. Avoid bathmat.
体をすすぎ、風呂場から出る。バスマットは避ける。
Dry off forearms and butt only.
腕とケツだけは拭く。
Draw a penis on the mirror.
鏡にチンポを描く。
Then draw boobs so you feel manly.
おっぱいを描く。男らしさを感じる。
Shake weiner and watch water fly off.
ウインナーをぶらぶらと振り、水が羽飛ぶさまを観察する。
If you pass wife, pull off towel, shake wiener at her and make the 'woo-woo' sound again.
風呂上りに妻に出会った場合、タオルを取って、ウインナーをぶらぶらと振り、もう一度キャーキャー言わせる。
なんという偏見に満ちた動画だろう。実に面白い。
2007-02-06
Vistaは腐ってやがる。早すぎたんだ
Vistaがどのようなものかを体験するために、ソフマップへ行ってきた。とりあえず、メーカ製のPCが売られているところへ行く。そこには、確かにWindows Vistaがあった。擦りガラスのようなウインドウが有効になっているので、まさにAeroが動いていると言える。
さて、店頭での展示品を少し触ったが、売り文句のひとつ、3Dフリップの仕方が分からなかったので、店員を呼び止めてみた。問う、「Vistaの3Dフリップ機能、これ如何」と。店員答えて曰く、「ウインドウズキー+Eなり。DirectXを使うウインドウ及び、複数の動画再生ある場合にても、Vistaこれを悉く表示す。あるいは、タスクバーから操作すれば、キーを押し続けなくてもこれ機能す」と。
なるほど、本来排他的にGPUを使うはずだったDirectXでの描画が、複数のプロセスで問題なく使われているのは、気分がいい。DX10では、ドライバが停止したとか、デバイスが物理的に外されたなどという場合以外では、デバイスはロストしない。これはとても楽だ。
さて、さようなら善良なる我、そしてこんにちは、悪霊なる我。いざVistaに試練を与えんとす。
まず、ウインドウズキー+Eを数秒間押し続けてみることにした。50個ほどのエクスプローラが開き、操作しがたいほど、Windowsの反応が遅くなった。これはおかしい。メーカ製とはいえ、このPCのCPUはC3Dである。私のAthlonXPですら、50個程度のエクスプローラを一度に開いた程度では、特になんともないのに、どういうことだろう。エクスプローラを消すと、元に戻ったが、何かがおかしい。3Dフリップが機能していない。不思議に思っていると、あの特徴的な擦りガラスのウインドウでなく、不透明なウインドウになっている。これはどうしたことか。
どうやら、ウインドウを開きすぎると、VRAMが足りないため、Aeroが自動的に無効になるらしい。後で考えてみると、これは当然だ。3Dフリップなどの機能を提供するためには、個々のウインドウをすべて描画させておいて、最終的なデスクトップにまとめて描画せねばならない。ひとつのウインドウにつき、そのサイズのテクスチャ、つまりはVRAMが必要になるはずだ。1024x768のウインドウひとつにつき、3MBのVRAMを消費する。開いたエクスプローラは、その程度のウインドウサイズであった。それが50個ということは、150MBである。そのPCに積まれているGPUは、マザーボード内蔵のATIのもので、VRAMは、システムメモリから、200MB割り当てであった。そもそも足りなさ過ぎるのだ。Vistaでは、VRAMとシステムメモリの間でスワップがあるが、いずれにせよ、足りないものは足りない。また、貧弱なVAIOなどでためすと、ユーザが操作不可能になってしまった。単にウインドウズキー+Eを数秒間押し続けただけである。
GEEKでない者がVistaを購入したとしよう。彼等が購入するのは、決まってメーカ製のPCである。使い方がわからず、キーボードを適当に叩く。そのとき、Windowsキー+Eを数秒押し続けるだけで、もうPCが使えなくなる。「なんだ。ボタンを適当に押し続けただけで、パソコンがバグったぞ。だからパソコンは難しくて嫌いなんだ。f*** M$」と悪態をつくこと必定である。
さて、これはどちらが悪いのか。あまりにも公スペックを要求するMS Vistaか。あるいは、ぼったくりの低スペックなメーカ製PCか。私は、メーカにも多少責任があると考える。とにかくGPUを軽視しすぎている。C2D、メモリ512MB、IntelのGPU、これだけで18万はする。メモリが1GBになると、20万を超える。ぼったくりにもほどがある。これらのメーカに、Vista Home Basic以外を載せる選択肢はない。
Valentine's Day in japan
I just write it to improve my English skill. Yes, Valentine's Day is well known in japan. but it is bit different. Valentine's Day is a day on which woman give chocolates to men. There are two types of chocolate. honmei-choco (本命チョコ : literally the favorite chocolate) this is gave to man she really like. giri-choco (義理チョコ: literally social obligation chocolate) this is gave to men such as friends, co-workers, families. Now, there are many men who got no chocolate. what a shame! we have to do something! Looking for girl is tedious. it is waste of time and resources. And you know, there aren't many good-looking girls in the world. Most of them are stupid dirty bitch! But as i said, no chocolate is shame. So what to do... just fake it! This great site explain all we need to do. If you are a man who got no chocolate in your life, you will know you got no chocolate this year too. Because every year, you had hoped for chocolates and got none of them. Is that OK for you? Of course not! Number of Chocolate you got does not mesure man's worth, and you are not the man who live with such mesurement. But... All right. it's time to fake it. You just buy some. So, the problem is where to buy chocolate. There are 3 shops which sell chocolates. 1. convenience store 2. special sale event in supermarket 3. store specializing in chocolate It's all hard to buy for men like ours. Convenience store is more ease than buy porn. But they don't sell high grade of chocolate. There are real girls in 2 and 3 shops so we need big courage, and bit expensive too. You have to determine where to buy it. Let's assume we could buy chocolate. (You really buy it? really you could?) But it don't fake it all. You have to make it known that you got a chocolate from girl. Buying a chocolate is just fill your satisfaction. What important most is you can't simply said "e;I got a chocolate from girl! hehe."e; Because if someone ask you who gave it to you, you can't answer it. if you lied, say "e;Naomi gave to me."e; Naomi herself deny it, your lie would broken out. So you can't let it be known yourself, and use another approach. How to do it. Here is sample. Put chocolate into a bag and change the bag's shape as if chocolate in it. Your friend notice it and ask you what is that. you just said. "Nothing." "Nothing? Surely there is something in it! what that?" "it's... just a chocolate. Don't tell others." "Oh! Really? Who gave it to you?" "I cant tell you." Bingo! you don't need to tell who gave it to you.
あまりに稚拙なので消そうかと思ったが、まあ、黒歴史で一応残しておく。
2007-02-05
電波ソングが売り切れ
これらのCDを買いに行こうとメロンブックスに行ったが、売り切れていた。東方風櫻宴だけは、かろうじて残っていた。確かにこれは電波じゃないから、売れ行きもそれほどではなかったのだろうか。これも捨てたものではないと思うのだけれど。今回は、通販で買うことにした。
2007-02-04
二年間、ハードウェアを勉強して分かったこと
結論:私はハードに向いていない。
もうハードウェアはうんざりだ。動かない。動く気配がない。何故動くかは理解できるが、何故動かないかは理解できないし、誰も教えてくれない。どこかが間違っているのだが、どこが間違っているかは分からない。それが配線を間違えたなどというミスならまだしも、トランジスタを変えたら動いたなどというのは勘弁して欲しい。何故まったく同じトランジスタに、100倍以上もの特性の開きが仕様なのか。そんな精度でいいのか。
もういい。私なんぞは、土方か交通整理か、ド田舎で畑でも耕している方が、よほど性にあっているのかもしらん。まったく変化のない日常を生き、平凡に死ぬのもひとつの道だ。何ぞ自ら苦を求めんや。所詮は人間など、百年も生きられないのだ。
今思う最高の生活とは、こうだ。のんびりと昼頃に出勤し、定時に帰る。妻子を持たぬため、収入は多くなくていい。のんびりと読書をしたり、プログラミングをして時間をつぶす。
すばらしい。問題は、孤独に耐えられるかどうかであるが。
2007-02-03
VistaのDRMについて
どうも、VistaにはDRMがあるから不買すべきだという人がいるらしい。DRMがいやなら、使わなければいいだけの話ではないのだろうか。不買すべきなのはVistaではなく、DRMを付加してコンテンツを販売している業者ではないのか。
なぜITunes Storeは叩かれていないのだろう。実に不思議だ。
しかし、DRMの際の保護モードが、新たなセキュリティ上の問題を引き起こすという懸念がある。これはちょっと困るかな。
2007-02-02
ハリーポッター最終巻の発売日が決定
ハリーポッター最終巻、Deathly Hallowsの発売日が決定された。2007年、7月21日、土曜日、0時1分である。これはBSTなので、JSTに直すと、2007年、7月21日、土曜日、8時1分になる。
ソースはオフィシャルサイトだ。
あと5ヶ月もあるとは、待ち遠しい限りだ。いよいよハリーポッターも完結となる。うれしいような悲しいような。
2007-02-01
XHTMLについて
XHTMLは面白い。いままで、HTMLを適当に扱っていたが、この機会に、しっかりとした、XHTMLを覚えようかと思う。デザインを自由に変えられるかどうかという懸念であるが、Bloggerは、なかなかいい。ちなみに、新しいテンプレートの、詳しいドキュメントは、ヘルプにあった。Google Help > Blogger Help >Working with Blogger > Layoutsだ。ところで、OperaでWYSIWYGで投稿しようとすると、リンクがうまく機能しない。結局、自分で直接XHTMLを書いたほうが楽だ。