トップ 追記

いらんこと。


2012-02-24 [長年日記]

_ [日記]公務員たる自覚とはなんぞや

昔の海外旅行は「それが国益に繋がる」と判断された時のみ認可された。貴重な国内の物的人的資源を海外に放り出すわけだから、それくらいのことはしなきゃやってらんない、日本にもそういう時代があった。今、その気になれば自分らは合法的に国外に脱出することができる。それだけの恵まれた「国」であることに感謝の気持ちはある。

あいも変わらず、貧困にあえぐ国がある。生まれたばかりの子供が餓えで死んでしまうような国がたくさんある。そういうのをテレビで眺め、「かわいそうだね」と言えるのは、今自分らが住んでいる「国」が、経済的に(それなりに)豊かだからだ。そういう「国」に対しての感謝の気持ちを、自分だって持っている。

が、強要される愛国ってそりゃなんだ?歴史を曲げてまで守らなきゃいけない「国の誇り」や国歌への愛着の強要っていうのは、上に挙げた「システムとしての国」とどう連関があるというのか。そんなことを「教育」する前に、教師という人たちは、「なぜ世界では貧困にあえぐ国があるのに日本は大丈夫なのか」という命題を妙な情念をまじえずに子供に伝えるべきだっただろう。海外旅行すなわちジャパンマネーの流出であるという社会の構造を語るべきだっただろう。

そういうことをせずの「国歌強要」だから腑に落ちないのだよ。「大日本帝国」の匂いを嗅ぎとってしまうのだよ。

たぶん、処分されるような先生は自分と世代が近い。戦中派を親に持ち、「もう戦争はこりごり」と言い聞かされて育った世代だ。そのくせ酔っ払った親たちが集まると軍歌なんか歌い出す情景に素朴な疑問を感じて来た世代だ。だから、戦争の時点でオカネモチだった連中が戦後すぐは大人しく、当時を知る世代がどんどん死んでいくにしたがってでかいつらするようになって行った経緯を知っている。今「日本人の誇り」なんて言葉を宣伝してる人たちの多くがその手のオカネモチ(つまり前線に送られもせず疎開も経験せず)のおぼっちゃんおじょうちゃんの成れの果てであることを知っている。だから気持ちは痛いほどよく分かる。その場に突然立たされれば自分だって起立を拒否すると思う。

けど、今自分らがいるあたりまえの景色にどれだけ「国」の恩恵があるか、そういうことを妙な情念を交えずに子供に伝えてきていたなら、たぶん今回の魔女狩りのごとき反動はなかったと思っている。いくらジョンレノンが「Imagine, there's no country」なんて歌っていたからって、ラブアンドピースの世界に憧れを持っていたからって、自分らがそうあれたのはやっぱり日本という国家に生まれた幸運ゆえなんだ。

多分オレは「愛国」なんて平気でヌかす輩には死ぬまでツバを吐くと思う。けど、自分は、科学万能なんて言われた頃に育ったわけだから、「国」という仕組みが自分に与えてくれているものを冷静に受け止めることができる。

その上で言わせてもらおう。

「橋下さん、あんた根本的にカンチガイ」


2012-02-13 最新と文化財 [長年日記]

_ [KDE][Qt]QSplitterとか

エディタをつくるってえことでとりあえずxyzzyのGUI部品をしげしげと眺めてみたら、ミニバッファの部分のテキストボックスはQtで言うところのQLineEditではなく、複数行入力できるQPlainTextEdit的なものをQSplitterで一行分の高さに縮めたものだった。別にC-x 2で分かれるウインドウがミニバッファになるわけじゃないわけだが、これを実現したくてごにょごにょやってたら、Qtというのはイレギュラーなことをしようとすると大変なライブラリで、

1)QSplitter::setSizes()ではまともに調整できない。

2)SizePolicyの問題かとミニバッファ部分のSizePolicyをIgnoredにしてもダメ。

3)恥ずかしながら2chで質問。ミニバッファをsetMinimumSizeするの忘れてた。

したらsetSizes()で大丈夫だった。

4)予定どおりの表示を実現。しかしメインウインドウをリサイズするとミニバッファの縦幅も広がる。

5)QSplitter::setStretchFactorの第二引数を0にするとリサイズを固定できると知る。

ここまで5日間orz。特に最後のsetStretchFactorは、リファレンスでは「こんなよくないものを使うな」とまともな説明もせず、コード例にsetSizesなんざ載せてくださる。ちなみにQt3まではsetResizeMode()なるメソッドが用意されていたという情報がますます足を引っ張りやがった。

一応まとめて置くと、QWidgetのレイアウトに関するパラメータは、QSizePolicyとQSizeHintとMaximumSize/MinumumSize、QBoxLayoutの数々そしてQSplitterが絡む場合はStretchFactorがひしめき合って決まっていて、それぞれの指定に矛盾があるとまともな表示にならないということ。CSSでのレイアウトそっくりで、ユーザーが直で指定するsetSizes()みたいなメソッドも、上のものたちに断りを入れておかないとシカトされる。常識的なレイアウトでは何も考えずに済むのはそのためだが、コードに明示的に指定したことがいきなり無視されるというのはなかなかない気がするなあ。

setStretchFactor()も補足。縦に並んだ二つのウィジェットをQSplitterで分けると、QSplitterから見たウェジットはindexに入った0から始まる整数で指定されるから上がindex==0のウェジット、下がindex==0となるのはいいとして、その(この場合)縦の比率は基本的に一定に保たれる。メインウインドウがでかくなれば両者ともに大きくなるわけ。これのうち下のウェジットだけは縦サイズを固定(かつマウスでスプリッタを動かせばちゃんと動く)したければ、こう書く。

m_splitter->setStretchFactor(0,1);

m_splitter->setStretchFactor(1,0);

第一引数がindex。第二引数がゼロならメインウインドウの拡大縮小に釣られたサイズ変更をしない。1ならする。技評のサイトで見ると第二引数で大きさの割合をパーセントで指定できるそうだが(試してない)、0と1の場合はこういう特殊な指定となるようで。

どうなのよこの仕組み。

_ [日記]nkfのソースとか

Qtは基本的にどんなエンコーディングも扱える。ただし明示的に指定した場合に限るらしく、テキストエディタの評価を大きく分ける「自動認識」の仕組みは用意されていないらすい。というわけで、自動認識といえばnkfだよなあ、あれのライブラリを使わせてもらおうと/usr/lib64をうろうろしたんだが、nkfは/usr/binにあるバイナリだけなのだった。しょうがないんでライブラリ化させてもらおうとソースを覗くとビルド環境分けのための#ifdefと#endifのアメアラレ。こりゃすごいです。最初まともに読む気すら失せかけましたから。

考えてみればこいつが生まれた1987年というのは、まだまだ8ビットの「マイコン」が現役張ってた時期なわけで、そんな頃に、研究者や一部企業しか使えなかったUNIXで、そのまた一部しか分からなかったCで、こういうのを書いたんだものなあ。しかもそれをありとあらゆる環境で使えるようとんでもない場合分けがあったんだよなあ。

ちょっと感動。説明書を読み読みでしか使えないQtから、「普通のC」を久々にいじった開放感も手伝って。


2012-02-08 おそるべし [長年日記]

_ [KDE][Qt]Qt4のQPlainTextEditが凄すぎる件

出たばかりのQt Creatorで遊んだことを思い出して、せっかくデフォ環境をLinuxに戻したのだからといろいろ遊んでいる。どうもQtもQt Creatorもそれを取り巻く環境も、当時とは雲泥の差になっている模様。日本語の記事が大量に増えているし、ユーザーも(Windowsでの使用を中心に)明らかに増加。Nokiaが頑張ったというより、やはり簡単Rad環境の登場がでかいのだろう。GUIエディタに全力で目をつぶれば、Qtプログラミングにこれ以上ない開発環境だよ。まじで。使いやすいわ。

で、いろいろいじっててとりわけ驚いたのがQPlainTextEdit。Delphiのチュートリアルにあったような、フォームにQPlainTextEditを貼りつけただけのテキストエディタもどきをビルドして、容量46MBのUTF-8なテキストファイルを読み込ませたところ、ものの一秒くらいですんなりと表示してしまった。書き込みもほとんどタイムラグを感じさせないくらいだった。

これ、本当にウェジットまかせで本格的なテキストエディタができちゃう。なんとかバッファとかのデータ構造に悩む必要も、それを表示させるビュー部分の工夫も必要ない。なんてこった。

ちなみに同じファイルを他のエディタで開いたところ、kateやkeditなどQtを使っているエディタはほぼ同様の軽さ(当たり前)。xyzzyも同様。Emacs23は「でかいファイルだけど開いちゃっていいの?」と聞いてくるが、開く時は一瞬。Windowsのメモ帳は十秒近く経ってからやっと表示される。ひどいのはgeditとwordpad(Winの)で、しばらく待ってやっと表示されたと思ったら、スクロールバーがぐにぐに縮み続けていて、一番下まで持っていくと、まだまだ読み込みの真っ最中、てな具合が数十秒続く。おいGTK+よりQtの方が全般重いなんて誰がヌカしたデマなの?

もちろん46MBのテキストファイルなんてまず使わない。使わないからこそ、QPlainTextEditは絶対信頼できる。フォントをでかくしたりするとやはり読み込み速度は落ちるわけだが、こんなんがあるんだからもう、C++ができる人は自分でエディタつくっちゃえよ、と思う次第。

つーことで、つくりはじめますた。


README/日記の書き方