Author Archives: misohena

2012-09-15

CSS transformプロパティ

感心すると言えば、transformプロパティもなかなかのものだ。

要素に任意の2D、または、3D変形を掛けられるというプロパティだ。

行列を指定することも出来るのだから、JavaScriptで色々計算した結果を反映させるのも容易だろう。

昔自分でアセンブラやC++のコードで書いたようなことが、今ブラウザで簡単にできてしまうと言うのは良い時代になったものだと思う反面、なにやら悔しいような寂しいような気もしてしまうのだった。

2012-09-15

CSS opacityプロパティ

最近のCSSは本当にいろんな事が出来るなと感心するばかりだ。

例えばopacityというプロパティがある。要素の不透明度を指定するプロパティだ。

これの素晴らしいところは、子孫を含めた要素全体の不透明度を指定できる点だ。つまり、要素全体をいったん一つのオフスクリーンバッファに描画し、それを指定された不透明度で要素の外と合成する形になる。これによって、複雑な要素全体を簡単に半透明にしたり、タイマーを使ってフェードイン・アウトさせたりできるようになる。これが子孫を含まない指定した要素単体にしか適用されなかったとしたら、どれほど大変か考えてみて欲しい。

2012-08-31

piclist

画像のサムネイルをリスト表示するだけのプログラムを作りました。

機能はいたってシンプルで、piclist.exe *.pngのようにコマンドラインから実行すると、ワイルドカードにマッチするファイルをファイル名と共にリスト表示してくれるというものです。

ウィンドウ名をつける機能があって、すでに同名のウィンドウが開いていれば、新に開かず既存のウィンドウを更新します。

仕事で扱う画像素材のリストを印刷して作業者に渡すことがあるのですが、それの代わりになればと思って作りました。

例えばテキストエディタでの編集中に画像素材を選ばなければならないような状況になったとしましょう。そこでテキストエディタのマクロか何かを実行するわけです。そのマクロが現在の状況(前後の行の内容など)を調べて候補となる画像のリストをこのプログラムを呼び出すことで表示するわけです。

2012-08-26 ,

手書きフォントエディタ

かなり昔に作った奴だけど:

Freehand Font Editor(JavaScript手書きフォントエディタ)

こういう風に使う:

js_1keyupdown

線の簡略化処理が微妙。onMouseMove関数の処理が問題なんだと思うけど、昔別のプロジェクトで似たようなことをやったときはもう少しうまくやったのだけど、どうやったんだっけな。まあいいか。

2012-08-23

ノマド

決定版:ノマドの用語の混乱に終止符を。原語から紐解く5つのノマドの定義

私がもつノマドのイメージというと上の記事で言うDigital Normadかなぁ。

いろんなところで場所にとらわれずに作業をしたいよね。
日頃薄暗いビルの一室で黙々と仕事をしている私はいつもそう思うのでありました。

以前いろんなところでプログラミングを試みていたのは2009年9月のことでした。
今見ても小田急線のくだりはちょっと可笑しいと思う。

今年は時間を見つけてはいろんなところに旅行に行っているのですが、あまりプログラムはしていません。

  • ちょうど実装フェーズであるような作業が少ない
  • 疲れていて電車の中で休んでしまう
  • せっかくいつもとは違うところにきたのだから、と現地ならではの行動をしてしまう

といったあたりが原因でしょうか。
二泊三日程度ではどうにもなりませんね。
逆に遊んじゃいます。

まあ、今は情報収集フェーズということで。
作業に適した場所を探しているんだと思うことにします。

2012-07-25

エディタの行番号を開くオプション

身近な人たちが使っているエディタの行番号を指定するコマンドラインオプションを調べてみた。

  • 秀丸 : Hidemaru.exe /m3 /j行番号 ファイル名 (注:/m3はすでに開いていたときに二重に開かないようにするオプション)
  • WZ Editor : wzeditor.exe /j行番号 ファイル名
  • Emacs : emacsclientw.exe –no-wait +行番号 ファイル名 (注:–no-waitは編集終了を待たないオプション)

すでにファイルを開いているときにどうするかがエディタによって異なる。

秀丸は基本的にどうするかユーザーに聞いてくるが、/mオプションによって指定することも出来る。/m3は二重に開くのを禁止し、すでに開いているウィンドウをアクティブにして指定した行番号へ飛んでくれる。

Emacs(emacsclient)は別途オプションを指定しなければすでに開いているウィンドウで指定した行へ飛んでくれる。複数のウィンドウでそのファイルを開いている場合は、全てのウィンドウでカーソルが動く。また、複数のフレームでそのファイルを開いていた場合は、最後にアクティブになったフレームのカーソルだけが動く。というか、開いていない場合でも最後にアクティブになっていたフレームでしか開かないっぽい。

WZ Editor(Ver.7の体験版で確認)は特にオプションも設定も無く、新しいタブで二重に開く。二重に開いた場合はデフォルトで閲覧モードとなり、編集は出来ない。しかし、メニューで編集モードにして編集することは出来る。しかし、編集した内容は最初に開いていた方のタブには反映されない。間違って他のタブで編集した内容を失ってしまう可能性あり。

この中ではWZが一番悪い動作となっている。

WZについては別件でマクロを少しいじってみようと思って調べてみたのだけど、Ver.5までのTX-Cが廃止され、Ver.6からText-Cというのに変わったらしい。これがまた酷い代物で、低レベルな似非C言語で、高レベルな機能を提供する関数が乏しく、その上ろくにドキュメントが無いのである。エディタ内でコマンドプロンプトを表示するサンプルがあったので中を見てみたのだが、CreateProcessやDuplicateHandleといったWin32APIを呼び出して外部コマンドを起動し、出力を取り込むようだ。詳しいことは分からない。何しろ独自関数や型の資料がろくに無いのだから。ウィンドウメッセージの処理なんかも行っているらしく、マクロのソースは複雑怪奇だ。やりたいことは秀丸ならrunex一つで済むような事なのに。