2012年11月

頭の体操

別段、特別な理由も、使う目的もあるわけではありませんが、頭の体操的にプログラミング言語を考えています。

これが結構難しい。新しさや変わったものである感じ、読みやすさ、書きやすさ、処理系での処理のしやすさとか、そのバランスとかが難しい。既存のプログラミング言語とほぼ一緒なら、頭の体操的にもあまり意味はありませんし。考えてるだけでも、計算モデルとかの勉強になリますね。そこそこおもしろいです。

本来なら、計算モデルあたりから考えて、そのモデルの試験的実現として処理系を作るという流れがいいのでしょうけど。でもそれでは面倒だし。まぁ、頭の体操的なものだし。

例えば、concatenativeな言語ということで考えてみます。Concatenativeな言語を例に挙げるのは別に特別な理由はありません。なんとなく思いついただけです。

Factorのif文はこんな感じになります。
10 3 < [ "Math is broken" print ] [ "Math is good" print ] if
Joyのif文はこんな感じ。
[1000 >] [2 /] [3 *] ifte
Concatenativeの元祖みたいなFORTHのif文はこんな感じ。
条件式 IF 真文 THEN
とか
条件式 IF 真文 ELSE 偽文 THEN
まぁ、それぞれですが、Concatenativeであることとか、スタック型とか、RPN的であるとかを突き詰めると、FactorやJoyみたいな感じになる。でも、これって、条件が真の時や偽の時の処理内容が長くなると、あるいはそうでなくとも、どこからどこまでがif文の範囲なのかが分かりにくい気がする。というか、読んでいて、これは一体何が書かれているのかが、あとの方にならないと分からない。Forthの場合、IFとかは実は処理をしてない感じ。条件の真偽はすでにスタック上にあるので、その段階でIFがなにかするような必要は特にない(実際には真偽によってジャンプしたりしなかったりという処理を行なっている)。中身が無い命令というか、単に「IFブロックですよ」というラベルみたいなものを書くというのは、なんか気持ちが悪い気もする。でも、読みやすさを考えると、FORTHの方がよさそうな気もする。

あとは、Ruby的にいろいろな書き方ができる方が好きか、Pascal的あるいはPython的に特定の書き方しか認めない方が好きかとか。

プログラミング言語を考えるのは、いろいろな条件が絡み合っていて、頭の体操としては面白い。実際に処理系を作るのは面倒だけど。何かに処理系を組み込むことになったら、既存の言語に新たに必要な分を組み込んだ処理系を使うと思う。

ディスプレイ

どうも、新しいディスプレイでの表示の見えやすさの調整が難しいなぁという感じでした。

で、マニュアルを読んでみたところ、ICC(国際カラーコンソーシアム)が規定しているICCプロファイル(*.iccというファイルみたい)が使えるとのこと。メーカーのページからダウンロードできるようなので、早速ダウンロードしました。Linuxのドライバが対応してるかどうかの不安はありましたが。

ダウンロードの後、findでそれっぽいディレクトリを探して、そこに放り込んだところ、LinuxというかFedoraというかGNOMEというかの設定プログラムでもそのICCプロファイルを認識している様子。早速、そのプロファイルを選んでやりました。ドライバも反応している様子。

結果として、確かに、無いより使う方が良い感じがします。例えばですが、gmailのスターで、多色というかなんというかを使えるようなオプションを使っているのですが、その例で。iccプロファイルを読み込む前は、赤いスターの色が黒ずんでいるような感じでした。どうにかならないかなと思っていたのですが、ICCプロファイルを読み込んだ後では、なんか良い感じの赤になってます。

まぁ、色の再現性の問題は根深いので、ICCプロファイルみたいなもので調整が必要なのだとは思います。でも、ディスプレイで、先の赤のように、ICCプロファイルがないと色の加減がどうにもおかしいというのはいかがなものか。こちらはディスプレイにそれほど色の再現性は求めていないということもありますが、ICCプロファイルがなくてもデフォルトとかでそれなりに良い感じになってくれるのが良いと思うのですが。

あとは、人や目的にもよると思いますが、くっきりはっきり表示されるのが好きとか思って、ディスプレイ自体の設定で、シャープネスあたりの設定をきつくしすぎると、却って見えにくくなるというのも経験しました。このあたりはメーカーや製品でいくらか違いはあるでしょうけど。

快適に使うには、もう少しディスプレイの設定をいじってみるといいのかもしれません。

DokuWiki

久しぶりにDokuWikiをアップデート。

なんか、ディレクトリとかのオーナーとかパーミッションとか、こんなに面倒だっけという気がする。本家のページを確認せずに適当にアップデートしたせいかも。

あと、ちょっと長いテキストのページを作ったら、リンクは生きているんだけど、そこをクリックしてもそのテキストが表示されない。なんか時間はかかるんだけど、そのテキストというかDokuWikiとしてのページが表示されない。うーん、何がいけないんだろう? 何か見落としているんだろうな。

まぁ、DokuWikiは、他のWikiの記法に比べると、昔からのPlain Textでのイタリック属性とか強調とかの書き方に似たたりするんで、ちょっとお気に入り。開発も続いてるし。

まぁ、自分のDokuwikiに、いろいろ秘密のファイルが有ったりする。Google Docsでもいいんだけどね。シンプルにHTML文書に変換することを考えると、むしろDokuWiki(とか他のWiki)の方が、スクリプトでどうこうできそうなので楽かも。

Rot Ring クリーナー

あまりいい事じゃないんだけど。安い万年筆に顔料系インクを入れていたら、ついつい乾燥させてしまった。

水に漬けといてもダメ。まぁいくらかインクが出てくるようにはなるんだけど、今ひとつ。

そこで、「こういう時には、とりあえずRot Ringの洗浄液かな?」と思い、ペン先とかペン軸(?)を希釈したRot Ringのクリーナーにチャプチャプ。とりあえず拭き取らず、一応キャップをしてから、ほんのしばらく放置。

で、試し書きしてみたら、インクがドバドバ出てくる。すごいな、Rot Ringのクリーナー。どんだけ洗浄力というか、インクの分子間(?)に浸透する力が強いんだ。逆に万年筆の材質が大丈夫なのか不安になるくらいすごい。

もっとも、本来、顔料系インクをペン先とかで感想させること自体がよろしくないので、偉そうなことは言えませんが。

Rot Ringクリーナ用の容器も持ってるけど、コレ、万年筆の首だけを入れるのにはちょっと不便。容器は、もともと万年筆はネントに無い設計みたいだけど。

乾燥させることは良くないという前提の上で、それを忘れないという条件の元で、Rot Ringのクリーナーは持っていると安心かも。

Journal

amazon.co.jpで、Roma Lussa Leather Journal ChocolateというJournalを売ってる。在庫が少ないみたいだけど。定価(?)が¥5808で、売値が¥3345。結構な値引き。

amazon.comで似たのを検索すると、Cavallini Roma Lussa Leather Journal, 5x7 inch, Hand Made in Italyってのがある。こっちは定価(?)が$82.95で、売値が$64.19。

前者はA5くらいの大きさで、後者はもっと小さい。比較すると、前者は結構お買い得かも。小口がマーブル柄(?)で染色されてるのがいまいち好きになれないけど。

これまで何年かClairefontaineのAgebagの手帳を使ってた。まぁ、これはこれで使い続けるけど、amazon.co.jpのjournalにも食指が動く。ClaiefontaineのAgebagの手帳は、やっぱ小さいから、まとまったものを書くのにはいまいち向かない。Agebagもじゃ、A5サイズのもあるので、そっちは使えという話もあるけど。なんかClairefontaineがQuoVadisの傘下に入って、日本の代理店だとAgebagの方眼の取り扱いが終わってたりする。他に直輸入している店で方眼のも手に入るんだけど。表紙が厚紙なので、永く持ち歩くとボッチくなりそうだし。製本はしっかりしてるので、手帳の方はお気に入りなんだけど。

ンーでも、amazon.comの方から推定されるページ数には魅力を感じる。

ホントのことを言うとItalian Leather Journals with Extra Thick Pagesの6x9(A5よりちょっと大きいのかな?)みたいな古い本みたいな製本のノートが好きなんだけど、なんかちょうどいいサイズがあまり無かったり、高かったり。1万円は軽く超えるし、送料も5000円くらいかかるみたい。日本でもリフィル式のはグッビオが扱ってるけど、製本されてるのはないというかページ数が少ないみたいだし。持ち歩くるには、古い感じの製本だと重かったり場所をとったりするし。そっちは諦めるかなぁ。

コンピュータ犯罪への民間協力

日経にこんな記事があった。そのうち消えるだろうけど。
 「匿名化の対策、民間協力必要」 警察庁の有識者会議

なんかずれてる気がする。匿名化と、これまでのIPアドレス依存の捜査、そして今回の誤認逮捕は別物だと思う。

民間協力というのは、掲示板などのサービス提供者とプロバイダに依存した、IPアドレス(と、多分MACアドレス)による捜査は緩いということは今回の誤認逮捕で周知となった。では、民間協力と言って何を指しているのかわからない。PCのキャッシュやらなにやらの解析に民間の協力が必要ということかもしれない。それで、逮捕などがより間違いなく行えるようになる可能性は無いではないと思う。

以下、規格の立案者や委員会、各ハードメーカ、ソフトメーカ、OSSのコントリビュータの協力も必要になる話です。

もっと厳しくしようとすれば、例えば世界中の人に、ユニークな個人識別のためのIDが入ったICカードとリーダを配り、PCなどからネットにIPパケットを送るたびに、ICカードからIDを読み取り、そのIDかフィンガープリントをパケットに入れる方法もありうる。IDをリーダから読み取れない場合にはパケットの送信ができないものとする。そして、IDは絶対にキャッシュしないとする。すると、ユニークな個人識別のIDが必ずパケットに含まれることになる。

おお、これで解決…するわけがない。

踏み台にされているPCの正規のユーザが、そのPCを使っている最中であれば、当然ICカードもリーダに置いているだろう。その条件下では、クラッカーが、踏み台にされているPCの正規のユーザのIDをパケットに入れる形でパケットを送信できるだろう。もちろん、この場合、正規のユーザがリーダからICカードを外している場合には、その踏み台になっているPCからはパケットを発信できない。その分はいくらかマシかもしれない。

あとは、ログをどうするかという問題がある。まぁ、IDかフィンガープリントを入れるのはIPパケットでなくても構わないんだけど。ともかくパケットを確実にログに記録しておかなければならない。

よし、ログも確実に残しておけば問題解決…するわけがない。

仮にこの方法を使うにせよ、動きっぱなし、通信しっぱなしのPCやらサーバってのが存在する。それにどういうIDをICカードで割り当てるにせよ、常に読めるような状態にしとかないといけない。まぁ、そういうのは個人のPCよりもセキュアになってるだろうけど。

でも、そこのログにはクラッカーのIDが残る。おお、今度こそ解決…しない。

踏み台は1台とは限らない。踏み台ごとに別のIDでパケットを送っていたら…。IPアドレスでも掲示板などのサービス提供者とプロバイダの協力があれば、家までは追跡できる。ログを調べれば、踏み台をいくつ経由していても、理屈の上では最初の発信者の家に辿り着ける。IDを埋め込む方法でも、結局は原理的には同じ事。踏み台をいくつ経由していても、理屈の上では最初の発信者に辿り着ける。問題は、ログをキチンと解析し、追うことができるかどうか。

IPv6のパケットにIDを埋め込むとして、ヘッダに余裕はあるのかな? 拡張ヘッダが使えないことはないだろうけど、拡張ヘッダの番号が、今、どれくらい埋まっているのかな。それに、RFCを書いてもらったり、各ハードやソフトメーカ、OSSのコントリビュータにちゃんと対応してもらわないとね。IPsecに対立することになったりしないかな?

でも、ログをキチンと追えれば問題は解決…しない。

さて、世の中にはbotというものがあって、botネットというものが存在する。最初のパケットの発信は1台のPC、一人のユーザ(with ID)としても、世界中のbotに対して命令を発信できたらどうなるか。あるいは、botに向けての直接の通信でなくてもいい。botはどっかの掲示板か何かを監視していて、そこに botに対する命令とは分かりにくいような命令文が書き込まれたとしたら。更には、複数の掲示板かなにかに分割されて書き込まれた、命令とは分かりにくいような命令文を読み取り、命令文として再構成して実行したら。bot同士で多重の踏み台としての通信をした上での結果としての犯行となったら。もちろん、踏み台にされたPCを押収して、そこにbotのバイナリがあれば、どこの掲示板を監視していたかなどなどのデータは得られる。

おお、世界中の警察が協力すれば、問題は解決…するワケがない。

昔、ノートPCのHDDかなにかの容量が小さかった頃から、実行形式のバイナリを圧縮しておき、そのバイナリの実行が指示されたら、自分で解凍しながら実行するという技術がある。その場合は圧縮だったが、じゃぁ暗号化されていたら? 復号鍵は必要だけど、これもうまく隠せる方法があるんじゃないかな(眠くて考えるのが面倒になった(笑))。

いろいろ書いたけど、そもそも偽造ICカードが出たら、苦労しても無駄ですけど。

まとめると、民間の協力は、押収したPCのログやキャッシュの解析に対するものか、botを使っているか否かにかかわらず、怪しい通信が行われていないかの監視に対するもののどっちかになるんでしょうね。一応後者の技術はなんたらいう名前でシステムが存在してますし。「エヴァっぽい」みたいな印象で噂になったやつとか。ただ、これは掲示板に書き込みとかまで捕捉できるのかは知りませんが。

欲しいノート

Jenni Bick Bookbindingの
Handmade Italian Distressed Leather Journal - Deckled Pages
とか、
Legatura: The World's Thickest Italian Leather Journal
あたりが欲しいなぁ。2つめhそんなにページ数があってどうするんだって話もあるけど。
1つめのは、今使ってるメモ帳を基準にすると2年くらいしか持たないからなぁ。
その意味では2つまめの方が欲しい。

ディスプレイ設置

Windows用に使ってたディスプレイが壊れたのは書きました。で、先に新しいディスプレイと、ディスプレイを設置するアームを買っておきました。新しいディスプレイは27inchで、これはLinux用。前にLinux用に使っていた24inchをWindows用に移動。

で、アームですが、机がOAテーブルとかいうの(?)で、背面にカバー付きでケーブルを通せるようになっています。アームの設置場所に悩んだのですが、背面のカバーをちょっと動かしてみると、固定できそうなスペースが確保できました。

アームも固定して、ディスプレイも2つとも固定できました。アームの長さも、設置の幅も少しばかり余裕がないですが。とりあえず、OK。

でも、スピーカーの片方が完全に2つのディスプレイに隠れてしまう。さて、これはどうしたものか。2つのディスプレイをはさむ形で左右のスピーカを配置すると、近距離で聞くので、微妙かもしれない。スピーカを置くための簡単な台みたいなのを買ったほうがいいかもしれない。でも今使ってるスピーカはねじ止めできないし。あ、なんか粘着のシートというか何かがあるから、それを使えばいいか。それはそれとして、試しに、新しいディスプレイに内臓されているスピーカで聞いてみたら、どうも音が変。慣れの問題かもしれませんが、TV用のディスプレイのスピーカの方が音がましですよね。そういえば、PC用もTV用もHDMI端子で接続だし、ドット数もたぶん違わないし、PC用のディスプレイとTV用のとの違いは何なんでしょうね? なんか違いがあるんだとは思いますが。

それにしても、ディスプレイをアームに設置できるというのは時代が変わりましたね。CRT時代にはアームに固定とかたぶん無理だったでしょうし。アームの先にCRTを乗せる台がついていたのは存在したかも。でも重いからアームとかその辺が耐えられたかなぁ? むしろラックが使われてたような気がする。

Max Headroom

先日買ったMax HeadroomのDVDを少しづつ見てる。昔見たのがVHSで劣化したテープだから、DVDだと意外に絵も綺麗に見える。

吹き替えも字幕も無いけど、結構昔の字幕を思い出して見えるものだ。

ABC版だけど、光や影とかスモークとかの使い方がうまいなぁ。

Neuromancerが1986年。Max Headroomはイギリス版が1984年。アメリカ版が1987年。というか英国版はちゃんとした番組にはならなかったのかな? なんにせよ、NeuromancerとMax Headroomが私のサイバーパンクの原点かも。Max Headroomがサイバーパンクかというと異論もあるかもしれないけど。

Fedora16 カーネルのアップデート

しばらく前に、Fedora16のカーネルを普通にアップデートしたところ、*.imgファイルが導入されず、新しいカーネルで起動しようとするとpanicを出して止まってしまっていた。仕方ないので、少し古いカーネルで起動してた。

検索して、いくつか方法を試したけど、どうにもうまくいかない。yum reinstall kernelでもupdateレポジトリからはなんかうまく再インストールしてくれない。

仕方ないので、yum install kernelを試してみた。ヘタすれば、起動できてるバージョンのカーネルが消えて、新しいカーネルも起動できないままかもしれないとも思いつつ。

結果として、うまく新しいカーネルをインストールできた。

話は変わるけど、しばらく前にwindowsで使ってたディスプレイが壊れた。バックライトのLEDか蛍光管が切れたのかと思う。仕方ないので新しいディスプレイを買った。ついでに、ディスプレイを付けるアームも買った。アームは、つける場所が問題だなぁと思いつつ。

今日、アームをつける場所を確認したら、やはり微妙。なんとかつけられるかもというところ。明日は、すでに設置してあるディスプレイをどかして、アームを設置&アームにディスプレイ取り付けを試してみようと思う。うまい場所にディスプレイを配置できればいいけど。
記事検索
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

livedoor プロフィール
QRコード
QRコード
  • ライブドアブログ