GNU archのnaming conventions

2006-11-22T01:16:00 / prog / comment

GNU archのnaming conventions、初めて見たときは何故あんな名前にするのかさっぱり分からなかったのですが、実際に使ってみたところ、これは熟慮の上に決定されていることが分かりました。要点は上記のページに書かれている通りなのですが、やはり使ってみないと実感できませんね。

でも実際にはarchは使ってません。他のプロジェクトで作業するときに、試しにあの慣例を使っただけです。archは無闇に長いリポジトリ関連の名前のせいで事実上使用不能ですから……

(本当はGNU makeのpattern rulesを書くときにちょっと引っかかった点があったので、それについて書こうと思っていたのですが、この記事を書くためにマニュアルを見直していたら解決できそうな感じになってきました。よって保留)

ネタ: TrayIcon Shuffle (2)

2006-11-20T22:37:00 / prog, windows / comment

ネタ: TrayIcon Shuffle」の続き。タスクバーもウィンドウの一種であることには違いない。という訳でまずは手始めにウィンドウクラス等を調べてみた (正確には昔調べたときのメモが残ってた)。調査対象はWindows XP。結果は次の通り (クラス名等にはオーナーウィンドウのものもコロン(:)で区切って前置している)。

タスクバー
==========

CLASS:  C:\WINDOWS\Explorer.EXE:Shell_TrayWnd
TITLE:  C:\WINDOWS\Explorer.EXE:


通知領域 (トレイ)
=================

CLASS:  C:\WINDOWS\Explorer.EXE:Shell_TrayWnd:TrayNotifyWnd
TITLE:  C:\WINDOWS\Explorer.EXE::

CLASS:  C:\WINDOWS\Explorer.EXE:Shell_TrayWnd:TrayNotifyWnd:SysPager:ToolbarWindow32
TITLE:  C:\WINDOWS\Explorer.EXE::::通知領域

CLASS:  C:\WINDOWS\Explorer.EXE:Shell_TrayWnd:TrayNotifyWnd:TrayClockWClass
TITLE:  C:\WINDOWS\Explorer.EXE:::22:54


アプリケーションの一覧
======================

CLASS:  C:\WINDOWS\Explorer.EXE:Shell_TrayWnd:ReBarWindow32
TITLE:  C:\WINDOWS\Explorer.EXE::

CLASS:  C:\WINDOWS\Explorer.EXE:Shell_TrayWnd:ReBarWindow32:MSTaskSwWClass:ToolbarWindow32
TITLE:  C:\WINDOWS\Explorer.EXE:::実行中のアプリケーション:実行中のアプリケーション


デスクトップ
============

CLASS:  C:\WINDOWS\Explorer.EXE:Progman:SHELLDLL_DefView:SysListView32
TITLE:  C:\WINDOWS\Explorer.EXE:Program Manager::FolderView

ポイントはToolbarWindow32。これはcommctrl.hで定義されているTOOLBARCLASSNAMEの実際の値。で、TOOLBARCLASSNAMEToolbar controlのクラス名。Toolbarに関してはAPIが揃っているので、情報の取得・変更はできますね。他の部分についても同様のことが言えるでしょう。

これでタスクバーの内容の入れ替えができそうだということは確定。後はインターフェースさえ作れば完了ですね。ドラッグアンドドロップが直感的でいいと思いますけど、単一プロセス内で完結しているならともかく、他プロセスにちょっかいを出さなければならないので面倒だなぁ……

「黒歴史ウェア」という単語を思いついた

2006-11-20T22:18:00 / prog, etc / comment

「黒歴史ウェア」という単語を思いついた。主にもう二度と振り返りたくはない自作のソフトウェアを指す……んじゃないかな。何となく思いついただけで特に深い意味はない。

ネタ: TrayIcon Shuffle

2006-11-12T21:11:00 / prog, windows / comment

Taskbar Shuffle (via ベイダー日記 - Taskbar Shuffle) というツールを見て思った。トレイのアイコンを入れ替えるTrayIcon Shuffleはどうだろう? ……二番煎じな上に多分既に誰かやってそうな気がする。

それはさておいて、Taskbar Shuffleはどうやってタスクバー上の位置を入れ替えてるんだろう? タスクバーに関する情報を得るのもどうやっているのか気になる。気が向いたときに調べよう。

Lua: UTF-8化とファイル関係APIとインターポジショニング

2006-11-12T08:01:00 / prog, lua / comment

最近はLuaを色々と弄っています。諸事情によりUnicodeな文字列を扱いたいため、内部での文字列のエンコーディングはUTF-8に固定し、外部との入出力が起きる場合は適宜変換するようにしました。

これ自体は特に難しいことではなかったのですが、ファイル名が関連するAPIを全くチェックしていないことに気付きました。基本的にはファイルを開く箇所で、ファイル名を表す文字列のエンコーディングを適宜変換すればいいだけなのですが、具体的にはどうしましょう?

今までUTF-8化で要修正だったAPIはLua本体とは直接関係のない部分だったため、Lua本体のソースは弄らずに済んでいましたが、今回は修正対象にLuaのAPIも含まれます。でも、できればLua本体のソースを弄りたくはありません。とはいえ、普通に考えたら本体に手を加えるしか方法はない。でも本体は弄りたくないし……(以下ループ)

と暫く悩んでいたのですが、今朝になって解決策を思いつきました。インターポジショニングを使えば……ああ、いや、やっぱ止めた。普通だったら「既存のAPIにラッパーを被せたいのに、既存のAPIを置き換えてどうする」となるところなのですが、今回は回避策があります。でも、インターポジショニング以外の手段がないわけではないし、後々困りそうな気がするので止めておいた方がいいですね。

考え直してみたら、Lua部分は一旦共有ライブラリにまとめてから使っているので、インターポジショニングのしようがなかった。今回は問題になる関数をラッパーにマップさせて回避。

最近の検索ワード: shell alternative windows

2006-11-11T19:55:00 / site / comment

ここ一ヶ月の間、検索エンジンからこのサイトへのアクセスで、三日に二回は検索ワードに「shell」「alternative」「windows」を含むものがあります。以前もときどきあったのですが、せいぜい一週間に一回あるかないかくらいのペースでした。

何でだろうと思い、試しに「alternative shell」でぐぐってみたら凄い結果が出て吹いた。既に一部からは黒歴史化と苛められるのに、Googleにまで苛められるとは。

これはもう開き直って更新するしかないのか……?!

新モニター到着

2006-11-04T12:35:00 / diary / comment

新しいモニターが到着しました。購入したのはFlexScan S1731-SABK。必要な条件を満たすものが他になかったのでこれにしました。値段は五万少々と安いものではなく、購入前は安物で我慢して浮いた分を他に使おうかと思っていたのですが、使用頻度がトップのモニターにケチっても仕方がないと思って購入しました。

早速取り替えてみたのですが、今のところはかなり良い感じに思えます。液晶周りの枠が細いことと黒がちゃんと黒く見えるところが特に良い。少々コントラストがきつい感じがするけれど、その辺は後で適当に調整するかな。それにドット欠け等もありませんでした。

ああ、何かこの調子だとお金で買える幸せに目覚めそうです。次はキーボードとトラックボールかしら……!

センサーで周囲の明るさを感知して自動的に輝度を調整してくれるのですが、これが意外と良い。ただ、ちょっとしたことでセンサー部分に影が入ることでも自動調整が働いてしまうので、モニターの位置が不味いと逆に不便でしょうね。

近況 (2006-10)

2006-11-02T00:31:00 / diary, popn, bm2dx, ddr / comment

結論: 10月は忙しかった。11月からはもっと忙しい。

モニター
新しいのを(ようやく)注文しました。多分今週末には届くのではないかと思います。
個人的に解像度が1280*1024はないと辛い。1024*768以下は窮屈。1600*1200以上のものはリアルデスクトップのスペース的に難しいし、自分の条件に見合うものがなかったので諦めました。
現在使っている代替モニターの解像度は1024*768なのですが、高い解像度が生産性を向上させるというのは事実だと思いました。そういえば昔98を使っていた頃でも、表示行数を25行から30行に変更しただけで大分違うと感じたなぁ。
財政的に余裕があればマルチモニターにしてみたいですね。サブモニターがあればコーディングしている最中でもブラウザの内容が見れる、とか。でも本当に出費に見合うリターンがあるのか不安なので挑戦できません。
トラックボール
唐突にKensington Expert Mouse 7が欲しくなってきました。
でも使用する時間を考えるとポインティングデバイスよりもキーボードにお金をかけるべきなんですよね。実際、図を書くときかダラダラとWebをブラウズするときでないと使いませんし。
pop'n music
一ヶ月ぶりくらいにプレイしたら何故か不気味なくらいオブジェを見切れるようになってた。
Lv30の曲を初クリア。調子に乗って再度プレイしたら落ちた。
Lv26の曲でパーフェクト……をGOOD1出して逃した。
beatmaniaIIDX
中3がそこそこ使えるようになってきた。でも焦ってると使えない。
中5は面白いくらいできない。何をどう工夫したら押せるんだ?
今まで全然できなかった同色二個同時押しの階段(1+3 - 2+4 - 3+5 - 4+6 - 5+7等)ができるようになった。三個でもOK。捌き方は階段の配置で変える。温い配置か低BPMなら白鍵を親薬、黒鍵を人中で押せば間に合う。指を連続して使わざるをえない配置か高BPMなら単体で見たときの同時押しと同じように押すが、指は素早く次の鍵盤へ移動させる。
Lv9……B4U(H)クリア。Love Is Eternity(H)できそうでできない。
Lv8……SPACE FIGHT(H)HARDクリア。rottel-da-sun(H)HARDクリア(まぐれ)、BRIGHTNESS DARKNESS(H)クリア(HARDでもいけるかも知れない)。
AC DistorteD SP六段挑戦。Colors <radio edit>(H)のテケテー地帯をゲージ一桁で抜けたが、直後のドラムロールの最後の最後でガシャーン。
次の課題は脱力。難しい部分になると何故か次第に力んでしまい、無駄に体力を消耗して押せなくなる。
DanceDanceRevolution
Lv4〜Lv5くらいの曲をゆるゆるとプレイしていると楽しい。Lv6はできたりできなかったり。
(多分)体のバランスを取るのが下手。長時間or多数のフリーズアローが絡んだり、ジャンプ(←↑ - ↓→等)が絡むと、かなりの確率でこけそうになる。実際にこけたことはないですよ?
Ciliegia
第一部・完。kana先生の次回作にご期待ください。
という冗談はさておき、二度とやる気が起きそうにないことと、他の方面に興味が移っていることから、実質弄るのは止めてます。
黒歴史扱いは大体合っていますが、あんまりそんなことを言って苛めていると報復しますよ。例えばそのハンドルネームの由来で。