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一つで済むような事なのに。

2012-07-14

新番組

番組改編期と言うことで、新番組を一通り見ました。

しかし今期はピンとくるものが何一つ無く、見るものが少なくて楽に過ごせそうです。

  • △輪廻のラグランジェseason2
  • ×トータル・イクリプス
  • ×TARI TARI
  • ○人類は衰退しました
  • △超訳百人一首 うた恋い。
  • ×うぽって!
  • ○貧乏神が!
  • △もやしもんリターンズ
  • ×恋と選挙とチョコレート
  • △夏雪ランデブー
  • ○この中に1人、妹がいる!
  • △カンピオーネ!
  • ×じょしらく
  • ×DOG DAYS'
  • △ソードアート・オンライン
  • △ココロコネクト
  • △AKB0048
  • ○探検ドリランド
  • ×織田信奈の野望
  • △はぐれ勇者の鬼畜美学
  • ×だから僕は、Hができない

今一番楽しみにしているのは前期からの続きで銀河へキックオフ!!ですね。元サッカー選手で昔教え子に怪我をさせた監督が立ち直る話だったり、太った女の子がサッカーで綺麗に痩せていく(予定)話だったり、子供らしいサッカーを強要されて悩んでいた子供が自分のサッカーを認められる話であったり、そんな感じです。

あとはエリアの騎士とか黒子のバスケとか……なんかスポーツものばかりですね。こういったサクセスものは基本的に気持ちよく見られますし。

ああ、あと、今週のエウレカセブンAOはようやく前作と話がつながって少し気持ちが良かったです。

2012-06-28

CSS3のborder-image

CSS3のborder-imageは興味深い。

画像素材を元に可変サイズの枠を描画しようと思ったとき、9分割したパーツを使うというのはすぐに思いつく方法。

コーナーはたいていの場合そのままで良いとして、問題は長さが変わる辺や中央部分。タイル状に画像を繰り返しつなぎ合わせて長さを変えられるようにするというのはすぐに思いつく方法だろう。

border-image-repeatにはstretch、repeat、round、spaceのいずれかが指定でき、これが伸び縮みする部分をどう処理するかの指定値となる。

stretchは辺のパーツ一枚をそのまま辺の長さに合わせて伸縮するというやり方。

repeatは辺の長さに合わせて画像を繰り返す。辺の長さが画像の長さの整数倍で無い場合は、あまりが出る。このあまりは画像を途中で断ち切ることで対処する。素材によってはコーナーとのつなぎ目が不自然になる。(あまりは一方のコーナー側だけに余らせるのでは無く、左右(上下)に均等に余らせ、両方断ち切るようだ)

roundは辺の長さに合わせて画像を繰り返すのだが、辺の長さが画像の長さの整数倍になるように、一つの画像の長さを伸縮することで対処する。コーナーとのつなぎ目は自然になりやすいが、辺の画像の縦横比やピッチは犠牲になりがち。(繰り返しの個数は伸び縮みが最小になるように決めるのだと思う 追記:Firefoxで試したところ拡大せずに縮小だけで対処するようだ。このやり方だと少しだけ拡大するだけで済むところを極端に縮小してしまう場合がある)

spaceは、調べたけれど今ひとつ分からなかった。