mieki256's diary



2010/12/01(水) [n年前の日記]

#1 [flash] ソース一式が送られてきた

中身を見て感心。以前のソースと違って、ファイル分け(クラス分け)とメソッド分けが、かなり出来ている。これなら、どこで何の処理をしているかが、メソッド名を読むだけで大まかに分かるし、バグが出ても該当メソッドの中だけ追えば把握できそうな気がする。別のプログラマーに何かしらの処理をお任せするときも、「このファイルだけお願いします」的な指示を出しやすいはず。このソースなら、今後もなんとかなるんじゃないか。たぶん。

とは言うものの。元々どうして、以前のようなソース ―― 1つのファイルになんでもかんでも詰め込んで、メソッド分けはせずインライン化ばかり ―― を書いていたのかは気になるところ。他のプラットフォームへの移植のし易さを考えて、なのだろうか。それとも、ActionScript という言語としてはちと非力なソレで処理速度を追求するために、なのだろうか。

が、しかし、その結果、バグが混入しやすい・バグが取れない・他のプログラマーに投げにくいソースになっていたのでは、元もこうもないだろうと思うわけで。一旦、バグが無いソース、分かりやすいソースを書いてから、その後、各プラットフォームに移植しやすい形に変更したり、処理速度の追及をするほうが、遠回りのようでいて実は近道なのではないか、と自分は思うのだけど…。まあ、このあたりは、各プログラマーの信条によるのだろうからアレなのだけど。

正直自分はプログラマーとして頭の出来がいいほうじゃないので、分かりやすいソースを書くことを心掛けないとハマってしまう。頭の出来がいいプログラマーなら、まるで自分がコンピュータにでもなったようにソースをスラスラ読めるのだろうから、分かりやすいソース云々なんてどうでもいいことかもしれないのだけど…。

2010/12/02(木) [n年前の日記]

#1 [nitijyou] コンビニに行って煙草を買ってきた

そんなことをわざわざメモするぐらい、普段は外出をしていないのです…>自分。

2010/12/03(金) [n年前の日記]

#1 [nitijyou] 自宅サーバ止めてました

雷が凄かったので、15:30-17:00の間、自宅サーバを止めてました。申し訳ないです。

この時期に雷とは…。しかも「ドゴーン」「ドドドーン」とかそんな感じのヤバゲなソレですよ…。参るなあ…。

#2 [prog] 新人向けの説明文書を作成中

いわゆるタスクシステム、の、ある種簡易版のアレ。大昔の某社で新人研修の時に教えてもらったソレ、の説明文書を作成中。サンプルがないことにはアレだろうと FlashDevelop + AS2.0 でサンプルも作成。

自分、実は未だに、タスクシステムのことが今一つよく分かってない…。なもんで、文書中でもタスクシステムの解説が空っぽで。全ての処理をこの仕組みだけで回せる・どんなソレでも使えそうというメリットはありそうだなと思うのだけど、えてして説明がややこしくなる印象を持っていて。分かってる人はいきなり「タスクシステムとは」みたいな解説をしちゃうけど、どうも段階を踏んで説明しないといかんような気もしたり。そのあたりを考えると、大昔の某社の簡易版のソレはまだ分かりやすいかもと。何せ、頭の悪い自分ですら分かった(つもりになった)し。で、たぶんそこから、これを更に改良すると、みたいな流れでタスクシステムに到達したほうが、という気もするのだけど。

2010/12/04() [n年前の日記]

#1 [pc] OpenOfficeを3.2.1にアップデート

今まで3.1だったので。

独自ビルド版と公式版を何度も交互にインストール・アンインストール・起動してみて、結局独自ビルド版を使うことに。公式版は、はがきサイズが用意されてないけれど、独自ビルド版は用意されているので。…ただそれだけ。いや、公式版も、ページの書式設定ではがきと同じ縦横サイズ値を自分で入力したり、はがきのテンプレートを開いてそこから作業すればいいんだろうけど。それもなんだかアレなので。

クリップアートがほとんど付属してこないあたりが、しっくりこない。「クリップアートなんて滅多に使わないだろ。HDD容量を無駄に消費するだけだ」「必要になったらその都度どこかから探して来ればいいだろ」てな話もあるのだろうけど。どうでもいいカットをちょこっと入れようとしたときに、毎回探してくるのもちと面倒くさいなと。…まあ、自分がよく使うソレを個別に追加していけばいいという話もありそうだけど。

_OpenOffice.orgのクリップアート数を劇的に増量する方法 - GIGAZINE
_OpenOffice.orgのクリップアート - satospo
_Documentation/Extension Manual/DefaultSettingsForJapanese - OpenOffice.org_Document_Project_Wiki

上記ページを参考にして、 等の、クリップアートを追加するソレが含まれている拡張機能を、DL・インストール。OpenOfficeが入っている環境なら、.oxt を実行すれば拡張機能のインストールが始まる。

OpenOffice Impress を使っていると、表示するように指定したはずのツールバーが何かの拍子に消えてしまって、その後出てこなくなったりする。何故。プロファイルの削除 *1 等もやってみたが、改善は見られず。OpenOfficeは、その時々の状況によって、ツールバー表示を変更する仕様らしきものが入っているみたいなので、おそらくそれが絡んでいるのだろうけど。表示が消えたまま出てこなくなるのは仕様なのか、それともバグなのか。よくわからない。…Impressってあまり使われてないのかしら。それともツールバーの表示をカスタマイズする人はほとんど居ないのだろうか。うーん。

まあ、ン万円も出して Microsoft Office 2007 Standard を買ったのだから、そっちを使えばいいだろ、という話もあるんだけど…。OpenOffice で出来る範囲のことは、極力 OpenOffice でやってみたいので。MS Officeは、仕事関係の文書がソレで送られてくるので仕方なく購入したわけで。なもんで「無理矢理買わされた。本当はこんなもの要らなかったのに」という思いが強く。そのせいか、今後積極的に使いたい気分にはならない状態だったりして。>自分。

Go-oo というものもあるらしい。 :

OpenOffice に各種パッチを導入した版らしく。起動や動作が速くなっていて、メモリ消費量も少なくなって、svg等のインポートまでできるらしい。OpenOffice公式版も取り入れてくれればいいのに…。

気になったのでインストールしてみた。既に別のOpenOfficeがインストールされていると、インストール処理時に「もう入ってるからインストールできないよ」と怒られる。仕方ないので独自ビルド版をまたアンインストール。

Go-ooを起動してみた。たしかに動作が速いような気がする。が、はがきサイズが無い。アンインストールして、独自ビルド版を再インストール。

*1: Windows XP の場合、%AppData%\OpenOffice.org\3 がプロファイル、らしい。

2010/12/05() [n年前の日記]

#1 [nitijyou] MOTHER関連のインタビュー記事を読んでる

MOTHER2の開発がヤバくなって、岩田氏が参加して、 _「いまある形のまま直すなら2年。イチから作っていいなら1年以内。どちらにする?」 と問うたあたりとか。ツールを作ることから整備してどうにかした話とか。あるいは、 _MOTHER3開発中止 のあたりとか。

何か参考になるのかもしれないと思って。今まさに、そんな状態のような気がしてならないわけで。ただ、この企画には、天才プログラマーは居ない。

2010/12/06(月) [n年前の日記]

#1 [nitijyou] 背中が痛い

ような気がする。前回は揉んでしまって数日痛む状態になってしまったので、今回は触らずにとにかく寝ることにする。

2010/12/07(火) [n年前の日記]

#1 [prog] Bazaarをインストールしてみたり

Windows XP Home SP3 に、バージョン管理ツール Bazaar をインストールして試用してみた。ちなみに、TortoiseSVN がインストール済みの環境。一応共存できているっぽい。

GitやMercurialも興味があるのだけど、日本語ファイル名を使うと問題が起きるとか、ログメッセージに日本語が使えないという問題があったりするらしいので、そのあたりちゃんと対応していると言われる Bazaar を。

試用してみた印象。想像していたよりも、はるかに使える状態のように見えた。素晴らしい。ありがたや。

ダウンロード。 :

_Download - Bazaar Version Control の「Windows」を選ぶと、 _WindowsDownloads - Bazaar Version Control に。2.2.1-3 (bzr-2.2.1-3-setup.exe) が現バージョンらしいけど。どうせなら新しいほうがいいだろうと、 _Bazaar project files : Bazaar に飛んで、bzr-2.3b3-1-setup.exe をDL。

後にコレは間違いだったと分かる。2.3b3-1 ではなく、2.2.1-3 を入れるべきだった。

インストール。 :

bzr-2.3b3-1-setup.exe を実行してインストールする。インストール時、TortoiseBZR (Tortoise Bazaar) は標準でチェックが外れているので、一緒にインストールするようチェックして進める。

インストール後、OSを再起動。タスクトレイに Tortoise Bazaar のアイコンが表示された。

エクスプローラ上で右クリックしたら、Bazaar 関連の項目が増えていた。かなりの部分が日本語化されている。素晴らしい。

初期設定等。 :

_Bazaar の使い方 - Noppi のおぼえがき を参考に作業。
bzr whoami "Your Name <email@example.com>"
を設定。
bzr whoami
で、設定できていることを確認。

エディタも念のために設定しておく。 Winキー+Rを押して、「ファイル名を指定して実行」のダイアログを表示。%AppData%\bazaar\2.0\ を入力してOKボタンをクリック。bazaar.conf というファイルがあるはずだから、エディタ等で開いて編集。自分の場合、xyzzy を使っているので、
editor = "C:\home\xyzzy\xyzzycli.exe"
みたいな感じに。

リポジトリを作成。 :

エクスプローラを起動。「今現在作成・作業をしているアプリ、の開発フォルダ」を選択して右クリック。コンテキストメニューの中から、「Bazaar 初期化」を選ぶ。設定ダイアログが表示される。今回はデフォルトのまま「OK」を押した。

「今現在作成・作業をしているアプリ、の開発フォルダ」の中に、 .bzr というフォルダが作成された。この中に、管理するための情報その他が入るのだろう。だから「なんだコレ? わけわかんねえ」とか言って消しちゃいけない。

Subversion を使っていた時は、リポジトリを入れるフォルダ(?)を、作業用フォルダとは別の場所に作成した記憶があるのだけど。Bazaar の場合は、作業用フォルダの中にリポジトリ相当のソレが出来るらしい。たぶん。

管理するファイルやフォルダを追加。 :

管理したいファイルやフォルダを選択して右クリック → Tortoise Bazaar → 追加、をすると、エクスプローラで見た際、それらファイルやフォルダのアイコンの上に「+」のマークがオーバーレイ表示される。が、 すぐに反映されない場合もあるので焦らない。

この段階では、「これらのファイルやフォルダを、これからバージョン管理したいと思っていますよ」的情報しか設定できてない。実際に、ファイルやフォルダの中身・内容を管理させているわけではない。それらをするには「コミット」が必要。

コミットする。 :

エクスプローラ上で右クリック → Bazaar コミット、を選択。

ファイルやフォルダのツリーリストが表示されるので、コミットしたいファイルやフォルダにチェックを入れる。「Message」欄には、今回のコミットは何を変更したのか等を記入しておく。そしてコミット。

ログを見てみる。 :

エクスプローラ上で右クリック → Tortoise Bazaar → 履歴、を選択。コミットの履歴が表示される。各行(=リビジョン)を選択すれば、どのファイルやフォルダをコミットしたのかが、右下部に表示される。更にそのリスト上で選択→右クリックすれば、差分を表示したり、ファイルの中身を表示したり等が出来る。また、リスト上で何も選択せず、左下の「差分」を押せば、複数のファイルの変更箇所がまとめて表示される。

ファイルを修正してコミットしてみる。 :

何か適当なファイルを少し修正してから、エクスプローラ上で右クリック → Bazaar コミット、を選択。

変更されたファイルがリストアップされているはずなので、コミットしたいファイルにチェックを入れて、コミットする。

履歴を表示してコミットできたことを確認。

差分表示等にWinMergeを使いたいのだけど。 :

_Plugins/qbzr - Bazaar Wiki
WinMerge なら diff に "C:/Program Files/WinMerge/WinMergeU.exe" と設定します。 merge に "C:/Program Files/WinMerge/WinMergeU.exe /e %t %b %o /o %r" と設定します。

Plugins/qbzr - Bazaar Wiki より

参考にして作業してみたのだけど上手くいかない。 bzr qconfig で行けるらしいのだが…エラーが出る…。

beta版だからかな、と思えてきたので、2.3b3-1 をアンインストールして、bzr-2.2.1-3-setup.exe を入れてみた。こっちだとエラーが出なかった。

bzr qlog で表示されるダイアログ?ウインドウ?の「差分」をクリックして表示されるのは、標準で入ってるソレで。alias等を設定して呼び出すにはコマンドラインからじゃないと無理っぽい? と思ったが、diff のタブを選んで設定したら WinMerge で表示できるようになった。

共用リポジトリをTortoise Bazaarで作成。 :

「Bazaar 初期化」を選んで表示されるダイアログで、「新規共有リポジトリを〜」を選べば、bzr init-repo で初期化してくれる模様。

共用リポジトリの下に trunk 等のフォルダを作成して、「Bazaar 初期化」を選んで、「新たな単体ツリーを〜」を選べば、bzr init で初期化してくれる。

ブランチの作り方はよく分からず。Bazaar Explorer を選択・起動して、trunk を選択して、右下のほうにある「ブランチ」を押して、「〜 parent location」と書いてあるところにチェックを入れれば、trunk を親としたブランチが作れることは分かったが、これを Tortoise Bazaar でやる方法がよく分からない。

ひとまず、フォルダ構成を以下のようにした。
ProjectName/  ← 共用リポジトリ(になるのだと思う)
 |
 +- (.bzr/)
 |
 +- trunk/    ← 親となるブランチ
 |   |
 |   +- (.bzr/)
 |   |
 |   +- src/
 |
 +- branches/   ← ブランチを入れておくフォルダ
     |
     +- 0.0.1/    ← ブランチ(0.0.1)
     |   |
     |   +- (.bzr/)
     |   |
     |   +- src/
     |
     +- 0.0.2/    ← ブランチ(0.0.2)
         |
         +- (.bzr/)
         |
         +- src/
「( .bzr/)」は隠しフォルダ。trunk にはメインの開発の流れ、かつ、最新版を入れるらしい。

参考ページ:
_CVS/Subversionを使ったバージョン管理(後編:SVNを使ったバージョン管理) - SourceForge.JP Magazine

2010/12/08(水) [n年前の日記]

#1 [flash] ソースを整理中

整理中。ガシガシ書き換え中。というか作り直し中。

2010/12/09(木) [n年前の日記]

#1 [nitijyou] 買い物に自転車で

ダイユーエイト、ケーズデンキ、DoCoMoショップ、ダイソー、リオンドールに自転車で。

ダイユーエイトでクッションとクッションカバーを購入。

ケーズデンキで、デジカメやHDDレコーダ等の値段を確認したり、PC用キーボードを物色したり。

DoCoMoショップで、N905iの電池パックを貰ってきた。一定期間同じ携帯を使い続けると、電池パックか充電器が無料で貰える、みたいなサービスがあって、自分のN905iはその条件を満たしたので。古い電池パックはDoCoMoショップに引き取ってもらうことになるらしいが、自分のN905iのソレは1回充電すると一週間ぐらい持ってしまうので、まだこの電池パックも使ってみます、という話に。しかし…一週間持つってどういうことやねん。どんだけ友達居ないのか>自分。と言っても、P902iSを使ってた頃は何もしなくても3日持たなかったわけで、つまりはPanasonicに比べるとNECの省電力技術が凄いということなのか、それとも902→905シリーズの間に充電池の容量が激増したのか。さてはて。

ダイソーで色々購入。 木製ピンチをずっと探しているのだけど、ちょうどいいサイズ、周囲に余計なものをつけていないタイプが見つからない。以前はあったのに…。

リオンドールで夜食を購入。

#2 [windows]

_Windows XPの起動時の長いディスクアクセスは、Windows Updateの履歴が溜まりすぎていたせいだった?! - 全力HP
_DataStoreフォルダ内の削除について | OKWave
_ひどい断片化にはデフラグを。でもこの断片化は…。 : パソコントラブル出張修理・サポート日記
_ウイルス対策ソフトを停止せずにパフォーマンスを改善する方法: べつになんでもないこと

試してみた。
  1. Automatic Updates サービスを停止。
  2. %Systemroot%\SoftwareDistribution\Datastore\ 以下のファイルとフォルダを削除。
  3. Automatic Updates サービスを開始。
ウイルス対策ソフトの無視リストに、%Systemroot%\SoftwareDistribution\Datastore\* 以下を追加。

あまり変化はないような。

2010/12/10(金) [n年前の日記]

#1 [flash] MovieClipの配列を持とうとしてめちゃくちゃハマる

自分で作ったクラスの中に、MovieClip の配列を持とうとして、
private static var _MCMAX:Number = 4;
private var _mc/*MovieClip*/:Array = new Array();
private var _ofs/*Point*/:Array = new Array();
とか、
for ( var i:Number = 0; i < _MCMAX; i++ ) {
    _mc[i] = null;
    _ofs[i] = new Point(0,0);
}
とか、
for ( var i:Number = 0; i < _MCMAX; i++ ) {
    _mc[i] = _root.attachMovie("img"+i, "tobj"+i, _depth + i);
    _ofs[i].x = ox;
    _ofs[i].y = oy;
}
とか、そんな感じで記述して、かつ、その自分で作ったクラスを配列で持ってあれこれ処理をしようとしたのだけど。そのクラスの中に書いたMovieClip関係の初期化メソッドを呼ぶと、なぜか一番最後の設定が、それまで処理してきた全てのクラスに適用されてしまって延々ハマってしまったり。

不思議なのは、private var _x:Number; みたいな変数には、ちゃんと値が入っていること。また、private var _emc:MovieClip; みたいな変数にも、ちゃんとMovieClipのポインタ?アドレス?インスタンス名?が入ってる。が、配列にすると上手くいかない。

丸一日実験してみたが、よくわからない。結局、attachMovie() する際に生成したインスタンス名を使って、
var mc:MovieClip = _root[instansName];
return ( mc == undefined )? null : mc;
みたいなことをして、mcが存在してるのかしてないのかを判別できるようにしてその後の処理をするように。無様だ…。

2010/12/11() [n年前の日記]

#1 [flash] Actionscript 2.0 でクラスの中に配列を作るとどうしてもおかしくなる問題

何かのタイミング、何かの条件で、最後に代入した値が他の同クラスのインスタンスにまで代入されてしまう。結局解決策は分からず。配列(Array)を使わない、という手しか思いつかなかった。

具体的には、このようにした。
private var _mc0:MovieClip;
private var _mc1:MovieClip;
private var _mc2:MovieClip;
private var _mc3:MovieClip;
てな感じで用意して、
for ( var i:Number = 0; i < 4; i++ ) {
    this["_mc" + i] = _root.attachMovie(〜);
}
みたいな。無様だ…。

2010/12/12() [n年前の日記]

#1 [nitijyou] OpenOffice.org Impress の使い方を勉強中

「不具合を出さない心得みたいなものはあるか」という漠然とした質問を受けたのだけど。一晩寝て頭がすっきりしたら「あー、これがあったかも」という気分になってきたので、実例を提示しつつ伝える的pdfを作成。作成するにあたっては OOo Impress (OpenOffice.org Impress) を使用。…他にやることはあるんだけど、こういう機会でもないと習得できないので。と自分に言い訳をしつつ作業。

それはともかく。不具合=バグのことだと仮定して。おそらく _銀の弾 は無いような気がするが、フツーの弾ならありそうな。波動拳や昇竜拳は出せないが、小パンチ小キックぐらいはあるだろう、とでも言うか。地道に絶えずピシピシ連打で削るしかないよな、みたいな。という前提で考えるとして、とりあえずプログラミングに関しては、分かりやすい・綺麗な・保守しやすいソースを書くことを心掛けるというのが妥当かもしれないと。美しいソース≒分かりやすいソースではないあたり要注意だけど。

参考ページをググってみたり。

_わかりやすいコードを作成するための 6 つの方法
_ソースを見やすくするために
_プログラムの書き方 - CATchy programming
_小野和俊のブログ:プログラマーの開発速度は「はまる」時間の長さで決まる
_「美しいソースコードのための七箇条」 (翔ソフトウェア (Sho's) Fujiwo の日記)
_バグのないプログラムの書き方 - 純粋関数型雑記帳

プログラムを作るとき、「無理はしない」と言うのは、その通りだなと思ったり。

#2 [flash] Actionscriptってブロックレベルのスコープは無かったのか

知らなかった。関数単位でしかスコープは無いらしい。今まで書いたソースは大丈夫なんだろうか。不安だ…見直してみないと…。

参考ページ。

_AS3 ブロックスコープの扱い|Flash / ActionScript|プログラムメモ
_BeInteractive! [AS3におけるローカル変数の扱い]
_ActionScript3 ブロックスコープの ABC - てっく煮ブログ
_ActionScript でブロックスコープ | プログラマ気分

2010/12/13(月) [n年前の日記]

#1 [flash] 画面外にマウスが移動したことを知る術が分からない

Actionscript 3.0 なら専用のマウスイベントが用意されているらしいのだが。Actionscript 2.0 には見当たらないようで。検索したら、画面全体に透明なボタンを用意して云々、というアホみたいな手法を見かけた。やっぱりソレしかないのか。…どうして今回 Actionscript 3.0 で作らなかったんだろう。携帯版への移植も視野に入れてたんだろうか。それとも動作環境を増やしたかったのか。

2010/12/14(火) [n年前の日記]

#1 [flash] 画像は届いたが

ボタンとロゴが1つの画像になっているのは助かった。別々で来ることも予想して、4枚ぐらい重ねられるようにはしてあったんだけど、使わずに済みそう。ただ、押す前と押した後が別々の画像になっていたのは予想外。いや、正確には、もしかしたらそういう画像が来るかもしれんと思ってはいたものの、来なかったら作業が無駄になるなと思って実装してなかったわけで。まあ、それはなんとかなる。一応頭の中でそういう作りも考えてはいたし。

それよりも、ボタンを押したらこの画面に移行する、みたいな話を今頃聞かされて、そっちのほうがトホホ。なんで今頃そういうことを言い出すかな。

どうも今回、あちら側にとってはある種の暗黙知 ―― 暗黙知だから「それは知っていて当然」と思い込んでしまっていて、こちらにはあえて伝えようとしない仕様があまりにも多過ぎて。延々、無駄な作業、やらなくてもいい作業ばかりやらされている気がする。更に、作業をすんなり進めるうえで必要になる情報を要求しても、ほとんどスルーされてる気もする。画像の種類だけでもメールで教えてくれ、それがあるとないとでは全然違うから、と言っても、結局何も教えてもらえなかったし。ツールの関係で画像はpngしか使えないよ、と教えてあげたのに相変わらずgifで届くし。それでいて「不具合を出さない心得を〜」などとわけのわからない質問メールは届く。

いかん。この手のソレを書いてると、ヒートアップしてしまう。おちけつ>俺。とにかく、差し替え・調整作業をしよう。

15日が〆切とか言ってたけど、14日が終わろうとしてる頃に画像を送ってきたり、「本来の仕様」だのを今更伝えられてもなあ…。できるわけないだろ。俺を何だと思ってるんだ。いかん。おちけつ>俺。

2010/12/15(水) [n年前の日記]

#1 [flash] 仕様を追加中

ステップ処理が、ちとややこしいことになってきた気がする。自分以外の人間がソースを眺めて、理解できるのだろうか…。

2010/12/16(木) [n年前の日記]

#1 [nitijyou] 自転車で外出

夕飯を作って食べた後、自転車で、ケーズデンキとリオンドールに。遅いから無理かなと思ったけど、サイトを見たらPM09:00までやってるようなので、だったら行く、と。

ケーズデンキでキーボードの値段を調べる。通販のソレより2千円程度高くて購入を諦める。悪循環だな…。店頭で買うと値段が高いから通販で買う → どうせ売れないからと店頭には商品が入らなくなる → 店頭で売ってないからますます通販に頼る → 現物をチェックして買える場面がどんどん無くなっていく。でもまあ、田舎だから仕方ないのかな。

リオンドールで夜食と煙草を購入。最近煙草の本数が増えてきている。マズイ。

#2 [zatta] 髪形モデルは自動生成できんのだろうか

3Dカスタム少女の髪形MODがゆうに100種類を超えている、みたいな一文をどこぞで目にして考え込む。髪形に関して、パラメータで形状調整を行うわけにはいかんものだろうか。

そもそも髪形にはどんな要素があるのだろう。 この程度では足りない気がする。

というかPOSERあたりがそれに近いアプローチをしていたような記憶もあるけど定かではない。…POSERのように山ほどパラメータをユーザに提示したら、ユーザは絶対引いてしまうよなあ。

2010/12/17(金) [n年前の日記]

#1 [nitijyou] jQuery云々を眺めてる

サーバ側の処理の進捗状況を確認するには、みたいなソレを追っていたらAjaxがどうとかに辿りついて云々。

2010/12/18() [n年前の日記]

#1 [windows] ActivePerlとImageMagickをアップデート

ActivePerl 5.10.0 Build 1005 をアンインストール後、ActivePerl-5.12.2.1203-MSWin32-x86-294165.msi をDLしてインストール。5.12.2 Build 1203、らしい。

ImageMagick は…前のバージョンはメモするのを忘れた。とにかく、アンインストールして、ImageMagick-6.6.6-5-Q8-windows-dll.exe をDLしてインストール。

ppmで色々なモジュールをインストール。 :

Windowsのスタートメニューから辿って、「Perl Package Manager」(一般的にはppmと呼ばれてる)を起動。

Edit → Preferences を選択。リポジトリ? に、bribes やら wx なんとかを追加。以下のモジュールをインストール。
  • Jcode ... 日本語文字列を扱う際に使う。
  • Tk ... PerlでGUIのプログラムを作れる。
  • Image-Magick_ (QD=8) ... Perlで画像を扱える。
  • Image-ExifTool ... PerlでExif情報を扱える。
  • AnyEvent ... イベント処理だかが扱いやすくなるらしい。
  • Config-Simple ... wxPerlを使う際に必要?
  • Alien-wxWidgets ... wxPerlを使う際に必要。
  • Wx ... wxPerlを使う際に必要。
  • UNIVERSAL-require ... Wx-Demoを使う際の依存モジュール。
  • IO-Stringy ... Wx-Demoを使う際の依存モジュール。
  • File-chdir ... Wx-Demoを使う際の依存モジュール。
  • File-Slurp ... Wx-Demoを使う際の依存モジュール。
  • Wx-Demo ... wxPerlのデモ一式。
  • Tkx-Scrolled ... Tkx関係らしいが…?
  • Path-Class ... クロスプラットフォームなファイル・ディレクトリパスの操作ができるらしい。
Image-Magick は、QD=8、QD=16があるけど。たぶん、RGB各8bit、各16bitを表している予感。一般的にはRGB各8bitで扱う場面が多いだろうから、QD=8のほうを選択。<間違ってるかもしれん。

wxPerlは動いた。 :

wxperl_demo.bat を実行したら、なんだか色々エラーは出ているみたいだけど、一応それっぽいウインドウが開いてくれた。これはなんとか大丈夫かも。

Tkxが動かない。 :

昔作成した、Tkxを使ってるスクリプトを実行しようとしたら、can't find package Iwidgets とエラーが出る。どうなってるんだ…? ppm で Tkx-Scrolled も入れてみたけどダメ。

ActiveTclもアップデート。 :

Tkx に ActiveTcl も関係があるのだろうか。と思って ActiveTcl 8.5.7.1 をアンインストール後、ActiveTcl8.5.9.1.294121-win32-ix86-threaded.exe をDLしてインストール。

関係無かった模様。何も変化無し。

teacup install Iwidgets と打ったら、Tcl/Tk上では Iwidgets が使えたが…。

ActivePerlのバージョンを落としてみた。 :

5.12.2 をアンインストールして、5.10.1 Build 1008 をインストールしてみた。

これもダメだ。どうやら特定のバージョンでしか Iwidgets は使えなかったらしい。たぶん。

であれば以前インストールしていたバージョンに戻すか。と思ったら、ActivePerlの古いバージョンって今現在は入手できないのですな。ガックリ。

2010/12/19() [n年前の日記]

#1 [windows] Perl+Tkxでまだハマってる

ハマってます。

Strawberry Perlをインストールしてみた。 :

Tkx で Iwidgets が使えない問題をどうにかしたいわけで。ActivePerl をアンインストールして、Starwberry Perl 5.12.1.0 をインストールしてみた。DL・インストールしたのは、strawberry-perl-5.12.1.0.msi。

インストール後、cpan Tk と打ってみた。…コレは上手く行ったみたい。テスト時に次々と Tk っぽいウインドウが開いて、なんだか感動した。

cpan Tkx と打ってみた。これはダメだった。Tcl だかが入らないみたい。検索してみたけど、英語圏のほうでも「入らねえス」みたいな話が。Strawberry Perl で Tkx はダメ、ということか。

というかxxxx/Tk自体がダメなんじゃないのか。 :

もう疲れたよ。Tkを使うからには Tcl/Tk を学べ、みたいな状況なのか。参ったな。

まだ wxPerl を習得したほうがいいだろうか。それとも Python + Tkinter のほうがマシか。どうして Perl は、こうもGUI関係が…。ソースの中身を見れて、修正も簡単で、かつGUIツールも作れるような何かはないものだろうか。

ActivePerlを入れ直した。 :

Strawberry Perl はアンインストールして、ActivePerl 5.12.2 build 1203 を再インストール。

昨日メモしたソレにプラスして、以下のモジュールも ppm で追加。
  • Perl-Tidy ... Perlスクリプトを整形してくれる。
  • dmake ... CPANを使うのに必要らしい。
  • MinGW ... CPANを使うのに必要らしい。
  • EXtUtils-XSpp ... wxPerlが依存?
  • PAR ... Perlスクリプトをexe化するのに必要。
  • PAR-Dist ... Perlスクリプトをexe化するのに必要。
  • Getopt-AtgvFile ... Perlスクリプトをexe化するのに必要。
  • Parse-Binary ... Perlスクリプトをexe化するのに必要。
  • Win32-Exe ... Perlスクリプトをexe化するのに必要。
  • Win32-GUI ... Windows上でGUIのプログラムを作れる。
  • Tk-CursorControl ... Tk-ToolBarが依存。
  • Tk-ToolBar ... ZooZ.plを動かすのに必要。
更に、
cpan Module::ScanDeps
cpan PAR::Packer
を。

以下で動作確認。
  • wxperl_demo.bat で、wxPerl のデモを起動。
  • widget で Perl/Tk のデモを起動。
  • ptked で Perl/Tk を使ったエディタのデモを起動。
  • tkx-ed で Perl + Tkx を使ったエディタのデモを起動。
最初、Wx 0.98 をインストールしたら wxperl_demo が動いてくれなくて。Wx 0.97.x をインストールしたら動いてくれた。

Iwidgetsはなんとかなったかも。 :

_Getting Tkx to use arbitrary Tcl/Tk installs | ActiveState Community Site

以下の指定が目に入った。
set PERL_TCL_DL_PATH=C:\Tcl\bin\tcl85.dll
環境変数 PERL_TCL_DL_PATH に、ActiveTclインストールフォルダ/bin/tcl85.dll を指定すればなんとかなる、ということ…?

試してみた。む。Iwidgets を使ってるスクリプトがエラーを出さずに起動した。上手く行ったのか…?

と思ったが、今度は Tkx::package_require("ctext"); を使ってるスクリプトが動かなくなった。ctext なんて見つからない、と文句を言われる。うーん。

ActiveTcl に ctext とやらをインストールしてみたり。teacup install ctext みたいな。その後、ctext とやらを使ってるPerlスクリプトを実行してみたところ、起動してくれた。なんとかなりそうな予感。

PARも試した。 :

PARを使うとPerlスクリプトをexe化できる。pp -o hoge.exe hoge.pl みたいな。一応exe化できた模様。しかし、255Byte、標準出力に文字列を出力するだけののスクリプトなのに、出来上がった exe は 4.2MB。デカ過ぎる。

Win32::GUIとWin32::GUI::Loftをインストール。 :

Windows上でGUIのプログラムが作れるらしい。

Win32::GUI は ppm で Win32-GUI をインストール。

Win32::GUI:Loft は、 _The GUI Loft -- a Win32::GUI designer/builder for Windows User Interface creation in Perl から Loft_binary.zip をDLして解凍。PPMフォルダでDOS窓を開いて、
ppm install -force AdHoc\Win32-GUI-AdHoc.ppd
ppm install -force Loft\Win32-GUI-Loft.ppd
をした。

参考ページ。
_【Perl】Win32::GUI::LoftでGUIプログラミング - blog.remora.cx

GUIビルダーを2つほど見かけた。 :

vptk (Visual Perl/Tk) と VisualCamel というのを見かけた。vptk はCPANに、VisualCamel は sourceforge にあった。


_vptk - search.cpan.org
_VisualCamel - WYSIWYG Perl/Tk GUI Design | Download VisualCamel - WYSIWYG Perl/Tk GUI Design software for free at SourceForge.net

VisualCamel.exe をDLして実行してみたけど、まだ完成度は低い感じ。しかし2010年の版が置いてあった=新しいツールのように見えるので、今後の改良・機能追加に期待大。

vptk は、前述のページから vptk_w_2_38b.tgz をDLして解凍。適当なフォルダに入れて、vptk_w.pl を実行。左側に出ているリスト項目の上で右クリックして色々追加していけるらしい。

ついでに、CPAN?から _ZooZ.pl というGUIビルダーもDLして解凍。ZooZ.pl を実行。Excelで文書作成でもするかのように、マス目の中にWidgetを入れていくので分かりやすい気もする。が、scrollbar の入れ方が分からない…。

#2 [pc] Amazonからキーボードが届いた

今までサンワサプライのSKB-WL12BKを使っていたのだけど。極稀に無反応になるのと、キーの押下げに結構力が入るような感じがしていたので、違うキーボードが欲しいなと思っていたわけで。

今現在届いたソレで打っているけど。メインキー部分はすんなり移行が出来ている感じ。打鍵音もかなり静か。鉄板が入っているらしいので、薄い割には結構重い。その分設置時は安定しているし、しなり等も感じない。店頭で確認せずにいきなり注文したけれど、ワイヤレスキーボードの中では比較的評判がいいだけあって、これはかなりイイ感じ。不安点は、今までフルキーボードを使っていたため、カーソルキー,Insert,Delete,ファクションキーの位置や、Home,End,PgUp,PgDnの押し方に慣れることができるかどうか。このタイプのキーレイアウトは、ノートPCをたまに使う時しか触ってないので、さて、どうなることやら。

テンキーは、手元にあるワイヤレスキーボード(テンキー無し)を使う際に必要だなと思えたので。キーのサイズが16mm程度のモノを選んだ。はず。

2010/12/20(月) [n年前の日記]

#1 [perl] ppmでまた追加

ppmで用意されていたみたい。

だが、ちと問題が。 前者はともかくとして。後者は、「perldocが見つからねえよ」と文句を言われる。perldoc.bat は入っているんだけどなあ…。 もppmで入れてみたが変化なし。

Markdown.bat (中身は Markdown.pm を呼び出すための Perlスクリプトが書かれてる)を覗いてみたら、どうも環境変数Pathをsplitするところで、*NIXの区切り文字に決め打ちして分割している模様。酷いな…。Windows環境で動くわけないじゃん…。ということでアンインストール。

スクリプト単体を入手してどうにか。 :

_Daring Fireball: Markdown から Markdown 1.0.1 を入手。

Markdown Extra に対応させるパッチもあるらしいので、 _Markdown Extra for perl からパッチを入手。

sjis対応版もあるみたいなので、 _blog::2310 > Markdown文法の全訳 から入手。解凍するとコレもパッチが入っていた。

Windows上で使える、patch.exe を入手。 _プログラミング・ツール(移植ソフト) から、patc254w.zip をDLして使わせてもらったり。

Markdown 1.0.1 に、Markdown Extra に対応させるパッチと、sjisに対応させるパッチを当ててみた。
patch.exe < Markdown_1.0.2b8-extra.patch
(Markdown.pl.orig を Markdown.pl.orig.orig にリネーム)
patch.exe < Markdown.pl.patch
上手く動いてるっぽい。DL,DT,DDが使えてる。大丈夫みたいなので、pl2batで、.plをbatファイルにした。
pl2bat Markdown.pl

python版のMarkdown変換スクリプトはアンインストールした。 :

Python版のソレもインストールしてあったのだけど。中身を覗いてみたら、冒頭で C:\Python25\〜 てな感じに存在しないパスを決め打ちしているように見えたので、なんだか不安に。自分の環境に入れてるのは Python 2.6 なのに…。コントロールパネル → プログラムの追加と削除からアンインストール。

#2 [windows] GNUstepをアンインストール

以前興味が湧いてインストールしてはみたけれど。全く勉強してなかったので、アンインストール。

#3 [windows] MinGWとMSYSをアップデート

元々入れてはいたのだけど、なんだか新しい版があるみたいなので、古い版をアンインストールして、比較的新しい版をインストール。

むう。インストール方法が全然変わってしまっている。以前は、MinGW用の.exeと、MSYS用の.exeを、別々にDLしてインストールした記憶があるのだけど。とりあえず MinGW のインストール用 .exe (mingw-get-inst-20101030.exe)だけDL・実行して、インストール時の選択で MSYS 関連にチェックを入れて…。これでいいのだろうか…?

とりあえずインストールした。path に、C:\MinGW\bin と C:\MinGW\msys\1.0\bin を追加。

minttyもインストール。 :

_MSYS+mintty:Nyabooのあれこれ (ほぼモン狩日記):So-netブログ
_新しくMinGW環境を作る - 三次元日誌
_mintty - Project Hosting on Google Code

なんだか良さそうなので入れてみたり。
  • mintty-0.9.4-msys.zip をDL。解凍。
  • C:\MinGW\msys\1.0\bin\ に mintty.exe をコピー。ショートカットを作成。
  • ショートカットのプロパティで、/bin/bash --login を指定。
~/.minttyrcで以下を指定。
Locale=ja_JP
Charset=SJIS
CursorColour=0,255,0
IMECursorColour=255,0,0
IMEで日本語を打った時に文字がコード列?になってしまった。~/.inputrc に以下を指定したら日本語がそのまま出るようになった。
set input-meta on
set output-meta on
set convert-meta off
イイ感じ。

#4 [prog] Tcl/Tkのスクリプトをexe化

Perl +Tkx のスクリプトをPARでexe化したら起動がかなり遅かったので、Tcl/Tkなら違うのだろうかと疑問に思ったので実験。

参考サイト。
_Tclkit

_Downloads - tclkit - Project Hosting on Google Code から、 をDL。それぞれ、sdx.kit、tclkit.exe、tclkitsh.exe にリネーム。

_http://www.equi4.com/pub/sk/ から、 をDL。

例えば hoge.tcl というスクリプトがあったら、
sdx.bat qwrap hoge.tcl
で、hoge.kit を作って、
sdx.bat unwrap hoge.kit
で、hoge.vfs というフォルダとその中身が出来て、
sdx.bat wrap hoge.exe -runtime tclkit.exe
で、hoge.exe が出来上がる、らしい。たぶん。

.kit は、VFS、仮想ファイルシステムらしい。1つのファイルの中に色々なファイルが入ってる模様。中身を見る時は、
sdx.bat lsk hoge.kit
とやるらしい。

出来上がった .exe を実行してみた。Perlのソレより、圧倒的に速く起動する。この速さを見てしまうと…Perlスクリプトのexe化なんてするもんじゃないな…。

IDEを探す。 :

_IDE
_ezdit - Project Hosting on Google Code
_ASED Tcl/Tk IDE
_Visual Tcl
_Adventures in Linux Programming (vtcl-modified-20100310b.tar.bz2)

色々試してみた。
  • ezditは比較的最近も更新されているようだけど自動補完があるのかどうかが分からず。
  • ASEDは自動補完ありっぽい、が近年は更新されてない。
  • Visual Tcl は、公式版は起動できず。が、パッチを当てた版 vtcl-modified-20100310b.tar.bz2 を公開してる方が居るようで、そちらの版なら動いた。

2010/12/21(火) [n年前の日記]

#1 [ruby] Rubyをアップデート

今まで入れていた Ruby を、1.8.7 から 1.9.2 にアップデート。環境は Windows XP。

元々、exerb という、Rubyスクリプトをexe化するツールや、Windowsに特化した VisualuRuby を使ってみたかったわけで。しかし、exerb は Ruby 1.9.x には対応してないとの話で。故に、ActiveScriptRuby 1.8.7 を入れていた。exe化する可能性があるなら、1.9.x は使えないと思っていた。

しかし最近は ocra なるツールを使えば、Ruby 1.9 環境でもexe化ができるそうで。また、pikというツールを使えば、Rubyの環境を一時的に切り替えられると知り、だったら処理速度が改善されているという 1.9.2 を入れておいても問題ないよなと。

既に入ってた版をアンインストールした後、 _ActiveScriptRuby and Other packages から、ruby-1.9.2.msi、ActiveRuby.msi をDL・インストール。環境変数 path には何も追加されない。が、この状態ではどのRubyもDOS窓から使えないので、Ruby 1.9.2 のインストールフォルダ\bin だけをpathに追加。

pikをインストール。gem install pik でインストールするのが標準的なやり方らしいが、今回は _Downloads for vertiginous's pik - GitHub から pik-0.2.8.msi をDLしてインストール。環境変数 path の先頭に pik のインストールフォルダが追加された。

pik list で、今現在使える Ruby の種類が表示された。pik add で選択できる Ruby として追加。pik add (Ruby 1.8.7インストールフォルダ)\bin で、1.8.7 も追加。pik list で両方追加されていることを確認。pik sw 192 とか pik sw 187 とかで切り替えられるようになった。

exerbも試してみた。 :

VisualuRuby を使ったスクリプトだったので、exerb hoge.rb と打って作った hoge.exe は、vruby とやらを見つけられなくて動かなかった。レシピファイルとやらを作成する必要があるらしい。が、ここでハマった。昔のドキュメントには、
ruby -r exerb/mkexr hoge.rb
ruby -r exerb/mkrbc hoge.rb
などと書いてあるのだけど、その通りにやってもダメで。最近の版は、
mkexy hoge.rb
と打つらしい。とりあえずレシピファイルが出来たので、exerb hoge.rb で作成。今度は動いた。が、起動するたびにDOS窓が出てくる。exerb -c gui hoge.rb とすればGUI版が作れるらしい。

起動時間は、PerlスクリプトをPARでexeにしたものより速い気がする。別PCに持っていって実行したら一瞬で起動した。きの起動時間なら実用になりそうな。

このツールが、1.9.x でも使えたらなあ…。

#2 [python] Python 2.5のバイナリが見つからない

VisualWx を起動しようとしたら、「python25.dllが見つからない」と文句を言われた。うーん。 Python が絡んでくるアプリは、特定バージョンを決め打ちで要求する場面がちょくちょくある。こういう時に困る…。Pythonのこういうところは大嫌いだ。

とりあえず、Portable Python 2.5.4 をDLしてインストール。中から python25.dll を探し出して、VisualWx のインストールフォルダにコピーしてみたところ、一応起動だけは出来た。

それにしてもこのあたり、本当にどうにかならんのか。Pythonのバージョンが上がるたびにアプリを書き直さないといけないなんて酷過ぎる。

2010/12/22(水) [n年前の日記]

#1 [ruby] 日常的に使うRubyのバージョンを1.8.7にした

Windows XP + ActiveScriptRuby 1.9.2 上で、wxRuby をインストールしようと試みる。

gem install wxruby-ruby19 と打ったら「序数 xxxx がダイナミックライブラリ LIBEAY32.dll から見つかりませんでした。」とエラーが。

どうも RubyGems を使う際に必要な dll が、1.9.2 環境には入ってないらしい。 _Ruby1.9.1のWindows環境へのインストール - Ruby入門勉強ルーム_WindowsにRuby1.9.1をインストールする − @IT を参考に、 をDL。解凍して、中から、 を取り出して、Ruby 1.9.2のインストールフォルダ\bin 以下にコピー。

が、今度は wxruby のインストールで問題が。wxruby の 1.9.7 が入ってしまうように見える。2.0.1 が既にあるんじゃないのか。何故に古いほうが。gem search -r wxruby と打ってみたら、どうも mswin32版用の wxruby は無いっぽい? mingw32版はあるみたいだけど、ActiveScriptRuby は mswin32版なわけで…。

面倒くさくなってきた。Ruby 1.9.2 を使うのは諦めた。日常的に使うのは 1.8.7 にする。path を、1.8.7 のソレに変更。gem install wxruby で、wxruby をインストール。

ocra もインストール。 :

gem install ocra でインストールした。

wxRuby を使ってるスクリプトを、exerb と ocra で exe化してみた。(この時点では問題があることに気付いてない。詳細は後述。)

exerb が出力したソレは10MB。ocra が出力したソレは5MB。ただ、ocra のソレはzmaで圧縮されているらしい。exerb版も圧縮しなきゃフェアじゃない。 _UPX: the Ultimate Packer for eXecutables - Homepage から upx307w.zip をDL、解凍。exerb版に upx hoge.exe で圧縮した。3MBまで縮んだ。exerbだけではファイルサイズが大きいが、exerb + UPX なら ocra よりファイルサイズを小さくできる模様。

試しに、VisualuRuby を使ってるスクリプトを exerb で exe化して、更に UPX をかけてみた。0.4MBになった。うーん。

Tcl/Tk スクリプトを exe化したものに UPX をかけてみた。もう圧縮済みだよ、と文句を言われてしまった。

結論。Windows 上で Ruby を使ってGUIのスクリプトを作るときは、VisualuRuby を使って、exerb で exe化して、UPX で圧縮するのがヨサゲかも。ファイルサイズも ocra より小さくなるし、かつ、起動も速い。wxRuby を使うと、ファイルサイズは大きくなるし、起動も遅くなる。…でも、1.9.x では exerb が使えないので、ocra を使うしか。

Ruby/Tkはダメ。 :

ちなみに、Ruby/Tk も試したのだけど、exerb でも ocra でも exe化できなかった。

exerb で exe化したソレを実行すると、
tk.rb:902: no such file to load -- tk/event (LoadError)
てなエラーが出て実行できない。

ocra で exe化しようとすると、
=== Loading script to check dependencies
=== WARNING: Object::TkcTagGroup was defined autoloadable, but caused NameError
=== WARNING: Object::TkNotebook was defined autoloadable, but caused NameError
=== WARNING: Object::TkProgressbar was defined autoloadable, but caused NameError
=== WARNING: Object::TkSeparator was defined autoloadable, but caused NameError
=== WARNING: Object::TkSizeGrip was defined autoloadable, but caused NameError
=== WARNING: Object::TkTreeview was defined autoloadable, but caused NameError
C:/usr/local/ruby-1.8.7/lib/ruby/1.8/tk.rb:1807:in `_invoke_without_enc': can't find package resource (RuntimeError)
        from C:/usr/local/ruby-1.8.7/lib/ruby/1.8/tk.rb:1807:in `_ip_invoke_core'
        from C:/usr/local/ruby-1.8.7/lib/ruby/1.8/tk.rb:1843:in `_tk_call_core'
        from C:/usr/local/ruby-1.8.7/lib/ruby/1.8/tk.rb:1871:in `tk_call_without_enc'
        from C:/usr/local/ruby-1.8.7/lib/ruby/1.8/tk/macpkg.rb:39
        from C:/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/ocra-1.2.0/bin/ocra:186:in `const_get'
        from C:/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/ocra-1.2.0/bin/ocra:186:in `attempt_load_autoload'
        from C:/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/ocra-1.2.0/bin/ocra:183:in `each'
        from C:/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/ocra-1.2.0/bin/ocra:183:in `attempt_load_autoload'
        from C:/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/ocra-1.2.0/bin/ocra:181:in `each'
        from C:/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/ocra-1.2.0/bin/ocra:181:in `attempt_load_autoload'
        from C:/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/ocra-1.2.0/bin/ocra:175:in `loop'
        from C:/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/ocra-1.2.0/bin/ocra:175:in `attempt_load_autoload'
        from C:/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/ocra-1.2.0/bin/ocra:325:in `build_exe'
        from C:/usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/ocra-1.2.0/bin/ocra:640
と出力されてそもそもexeが出来上がらない。… ActiveTcl の dll が関係してるんだろうか。

解決策を検索してみても、Ruby/Tkの使用を諦めてる事例しか見つからなかった。自分も諦める。exe化も希望した場合、Ruby/Tkは使えない。

Ruby/Tk-Kit というものもあるらしいが、Windows 用の 1.8.7 のものは無いようで。1.9.x に移行すると wxRuby で面倒なことになりそうだし、exerb は使えなくなるし。かといって 1.8.7 では Ruby/Tk-Kit が試せない。うーん。

Perl/Tk でもドタバタしたことを考えると、Tk を使う時は Tcl/Tk しか使わない、ということにしたほうがいいのかもしれない。が、Tcl は言語仕様が…。つまりは Tk 自体に見切りをつけるのが正解かもしれぬ。という気分にもなってきた。

Perl/Tkを知って「LLでもGUIができるんか」と喜んで触り始めて数年経つような気がする。しかし */Tk はあらかじめ環境を整えないと動かせない。ファイルを1つだけ別PCに持って行っていきなり動かすということがちと面倒。Tk以外の選択肢もあることを知った今では、あえて */Tk を使う必要性は無いのかもしれない。すんなり動いてexe化できるならまだしも、こうも苦労させられるのでは…。

wxRubyも実はダメだった。 :

wxRubyを使っているスクリプトをexe化して別PCに持っていったら、msvcp71.dll が見つからないと言われてしまった。うーん。

_vcpvcr71 (msvcp71.dllとmsvcr71.dll同梱):Vector から、該当dllをDL。解凍して Rubyのインストールフォルダにコピー。exe化する際に、これらのdllを同梱する。

exerb の場合は、レシピファイル .exy の最後のあたりに以下のような記述を追加してから、exerb でexe化した。
  msvcp71.dll:
    file: (Rubyインストールフォルダ)/bin/msvcp71.dll
  msvcr71.dll:
    file: (Rubyインストールフォルダ)/bin/msvcr71.dll
こうして作った exe を別PCに持っていったら動いてくれた。

参考サイト。
_Exerb - Astarisk Works Wiki
_Rubyをexe化するExerbで作ったexeがDLLがないとぼやくときの対処方法 - メモブロ

ocra の 場合は、
ocra --dll msvcp71.dll --dll msvcr71.dll --windows hoge.rb
みたいな。dll は Rubyのインストールフォルダ\bin 以下に無いといかんらしい。…ただ、exeを作る際のログを眺めると、
a bin/rubyw.exe
a bin/msvcrt-ruby18.dll
a bin/MSVCP71.dll
a bin/MSVCR71.dll
a bin/zlib1.dll
a bin/msvcp71.dll
a bin/msvcr71.dll
といった行が見える。ファイル名の大文字小文字で別ファイルとして見ているのだろうか。よくわからない…。

勢い余ってShoesもインストールしてみたが。 :

添付のマニュアルをざっと眺めてみたり、サンプルを動かしてみたけど…。コレ、ActionScript か Processing (Proce55ing)でいいんじゃないのか。何もわざわざ Ruby っぽいソレでやらんでも…。まあ、それを言ったら、何もわざわざ Ruby で Tk だの wxWidgets だのを弄らんでも、という話にも繋がってしまうのだろうけど。

この記事へのツッコミ

Re: 日常的に使うRubyのバージョンを1.8.7にした by 名無しさん    2013/02/01 18:00
はじめまして。ocra + tcl/tkですが、以下のコマンドでいけるそうです。
ocra rubyfile.rb --windows C:\Ruby192\lib\tcltk\ --no-autoload --add-all-core
(--add-all-core is optional, don't include it if the exe works without it)

#2 [zatta][digital] デジタル家電のUIについてぼんやり考える

茶の間のREGZAを操作していて、東芝のデジタル家電製品は使っているとイラついてくるなあと思ったり。何故だろう。

コンピュータのUIは、ユーザの操作に対して、リアクションが必要だと思う。 この2点を、ユーザが何かをするたびに、コンピュータはユーザに伝えなければいけない。これが伝えられないとユーザは、 と無意識化で不安に駆られて、イラついてしまう。

東芝のデジタル家電のUIは、見事にこの2点を満たしてないように思う。 メニュー操作をするたびにコレなのだから、「UIが糞」という印象を持たれるのは当たり前。

もちろん理想的なのは、メニュー項目を選択した次の瞬間、即座に次のメニューが出てくること。それはユーザの操作に対して即座にリアクションがなされてる状態だから、その場合は何も問題はないのだけど。しかしおそらく、そのように作れない事情があるのだろう。

であれば、次のメニューが出てくるまでの間、工夫しないといけない。 等々。

もしかして、そういうアレコレは不要だと思われてるのだろうか。だとしたらとんでもない話。 等々、理由を考えたことがあるのだろうか。酔狂で入れてるわけじゃないのですけどねえ…。いやまあ、どうせ入れるならせっかくだから、的に仕様を決めた部分もあるとは思うけど。基本的には、ユーザに何を伝えるべきか、伝えなければならないか、を考えていったらそうなったわけで。

とにかく、画面上で無反応になる瞬間が頻繁に出現するのはマズイわけですが。そこらへん、問題として認識してるのかなあ。ファミコン=特許が切れてしまったぐらい大昔の『玩具』のレベルにすら達してないUIだったりするあたりがなんというか。どうにかならんのかと。

2010/12/23(木) [n年前の日記]

#1 [prog][windows] Microsoft Visual C# 2010 Expressをインストールしようとしたのだけど

ISOをDLして仮想DVDとしてマウントしてインストールしようとしたら、途中で再起動を要求された。で、再起動したら仮想DVD上のファイルが見つからないとエラーが。うーん。一々DVDなんか焼きたくないんだけどなあ…。

仕方ないのでWebインストーラ版でインストールし直し。

チュートリアルを見ながら操作に慣れる。自動補完機能が素晴らしい。この手の機能がない環境で、もう、ソースは打ちたくないな…。それはさておき、一日中操作して、チュートリアル4つ分はひとまず終えた。

実行形式を作る方法が分からない。検索してみたところ、どうやら「リリースビルド」なる操作をすればいいらしい。やってみたが、.pdb という拡張子のファイルが .exe と一緒に作られる。デバッグ用の情報が入ったファイルらしいが…。プロジェクトのプロパティの詳細設定で、そのあたりを変更…できたような気がするがメモを残すのを忘れてしまった。後で復習しておかないと。

出力した .exe は 11kByte程度だった。.NET とやらがあらかじめ入ってる環境じゃないと動かない、とは言え、このファイルサイズの小ささは素晴らしい。さすが Windows に特化した開発環境。…しかし、他の環境で動くのかな。後で試してみないと。

#2 [windows] chkdskcをかけたらWindows XPが起動しなくなった

MS Visual C# 2010 Express で作業中、どうもファイル保存が遅いような感じがして。試しに chkdsk をかけたら、Stage 2 でエラーが出て途中で終了してしまう。どうせ何かのアプリがHDDにアクセスしてエラーが出てるんだろう、と思って常駐ソフトをあらかた終了させて何度か試すが、毎回エラーが出て途中で終了してしまう。

仕方ないので chkdsk /f c: を実行。再起動。chkdsk がかかる。終了して、自動的に再起動。

マウスカーソルは表示されるが、Windows XP のログイン画面が表示されない。…マズイ。非常にマズイ。HDDが壊れたのだろうか。

セーフモードでも起動しない。セーフモード+コマンドプロンプトもダメ。リセットボタンを押すと、また最初から chkdsk がかかる。起動に必要なファイルを破壊・消滅させてしまったのだろうか。ううーん。4〜5時間ほど事態は進展せず。

knoppix DVD版で起動してみた。HDDのNTFSパーティションを覗いてみたが、chkdsk が吐き出すであろう破損ファイルの残骸は見当たらない。フォルダ群も、これと言って消滅していないように見える。どういうことだろう…。

2010/12/24(金) [n年前の日記]

#1 [pc] 一日中PCのバックアップを取ったり等の作業を

再起動してもWindowsXPが起動せず。仕方ないから真っ黒な画面のまま放置して一眠りしたら、起きた時、ブルースクリーンになっていた。Unknown hard error、みたいなメッセージが表示されている。繋いでいるハードウェアに問題があるのだろうか…。USB接続の、MIDIインターフェイス、USBオーディオ、タブレット、トラックボールを外してみた。キーボードとマウスだけが繋がっている状態に。その状態でリセットボタンを押したら、XPが起動してくれた。何だったんだ…。もしかするとDTM関連で繋いでいたソレが壊れてしまったのだろうか。よくわからない。

インストール済みだった CrystalDiskInfo を起動して、HDDのSMART情報をチェック。「正常」と表示されている。うーん。

とりあえず、バックアップ。 BunBackup でバックアップを取るだけでも結構時間がかかったので、その間は IdeaPad で情報を収集。

ある程度バックアップは取れたように思えたので、壊れてもいいや的気持ちで PerfectDisk でデフラグをかけた。無茶なことをしているような気もするが、断片化があまり激し過ぎて chkdsk がエラーを出すのかもしれないと思えてきたので。というかファイルの保存場所が変わることで動作が変わってくるかもしれないと。

デフラグをかけた後で chkdsk をしてみたら、エラーが出なかった。うーん。

#2 [pc] 妹からキーボードを借りた

先日買ったキーボード、BUFFALO BSKBW03WH は Home、End、PgUp、PgDnが独立していないのがやっぱりツライ、みたいな話を妹にしたら。「これならどうか」と別のキーボードを渡された。

BUFFALO BSKBC01WH。USB接続の有線フルキーボード。パンタグラフタイプ。

妹曰く、買ったはいいがキーボードの上のあたりが微妙にカーブを描いていて、そこがどうにも気に入らなくて使ってないとのこと。妹としては、ノートPCと全く同様に平面的な形状じゃないとツライらしい。

値段が比較的安いのにパンタグラフということで、買おうかどうかちょうど悩んでいたところだった。良い機会なので、とりあえずしばらく借りることにした。

少し打ってみた。
最初はなかなかいいなと思っていたが。次第に、キーの反発が気になってきた。キーが固いというか、キーが重いというか。打ってるうちに指が痛くなってきた。「たかだかキーボードを叩くだけなのに何を言ってるんだ。ひ弱過ぎる」と笑われそうだけど、キーボードのキーは、何十、何百回と叩くものだから、キーが重いとそれだけでじわじわと効いてくる。ような気がする。

BSKBC01WH と BSKBW03WH を交互に打ってみたが、やはり BSKBC01WH のほうが微妙にキーが重い気がする。…コレはちと使えない感じ。自分には合わない。たぶん。

パンタグラフだから押下げは浅い=打鍵時の力はさほど必要としないのだろうと思い込んでいたが、そういうわけでもないらしい。改めて、SKB-WL12BK を持ち出して打ってみたが、キーの重さで言えば、BSKBC01WH はもちろん、BSKBW03WH と比べても、軽いような気がしてきた。まあ、押下げは結構深いのだけど。

もしかすると、結局 SKB-WL12BK に戻ってしまいそうな気がする。以前使っていたキーボードに比べてキーが重いような感じがしていたが、それでもまだ、他の製品に比べると、軽いほうだったのだな…。

2010/12/25() [n年前の日記]

#1 [pc] 色々なエディタを試してみたり

あふwのキー定義を見直してて、Rubyスクリプトを修正する流れに。で、Rubyスクリプトを書くのに便利なエディタはないものかと。自動補完機能が優秀なエディタが使いたい。できれば一々補完キーを押さなくても自動で候補が出てくるエディタがありがたい。

ということで、SciTE、Geany、Editra、Komodo Edit を試用してみたり。

SciTE は、キーワードファイルに列挙された単語は補完してくれるけど、ファイル中に存在する単語、つまりはユーザが打った変数名などは補完してくれなかった。設定がおかしいのだろうか…。autocompleteword.automatic=1 その他は有効にしたつもりなんだが…。

Geany は、自動で候補を表示してくれるあたりは良いのだけど。Ctrl + SPC を押したら固まった。起動もちと遅い。さすが GTK+アプリだなと。動作が怪しい。

Editra は、キーを押さないと候補を表示してくれないように見える。が、それ以前に日本語入力がインラインで出来ない。修正した事例もあるらしいけど、ソースのリンク先が消滅していて修正したソースが入手できなかった。

Komodo Edit は 6.0.3 が出ていたらしい。5.xからアップデートしてみたが、起動がますます遅くなっている…。補完候補は、3文字まで打たないと出てこない。2文字とか1文字にできんのかな…。

結局、これだというエディタは見当たらず。

ひょっとして、emacs か vi を設定して使ったほうがいいのだろうか…。

2010/12/26() [n年前の日記]

#1 [nitijyou] 家のトイレがヤバい

ウチのトイレは汲み取り式なのです。業者さんが汲み取りに来てくれなくて、タンクが溢れそうです。音がもうヤバイです。マジヤバイです。

親父さんの話によると、年末は休みがあるので、業者さんのほうでもスケジュールが一杯一杯らしく。24日までに来てくれないとヤバイという話を先週頭に電話・口頭でしたはずなのに結局来てくれなかったという。FAXを送って「何日に来てくれ」とお願いしても「FAXを見忘れてました」と言われたりして来てくれなかったこともあるし。だからと今回のようにあえて電話・口頭で伝えても、こうして来なかったりするし。一体どうしろと。

これが別の業者さんだったら、おそらくはコンピュータで顧客情報を管理しているようで、決まった間隔で汲み取りに来てくれるそうで。そちらに変更出来たら助かるのだけど、どうもその手の業者で組合を作っていて、各地域を担当する業者が決め打ちされているのだとか。競争が働く市場?でもないだろうから、組合が決めたことには業者も顧客も逆らえない。ていうか、その組合の代表というのが、ウチの地域を担当している業者さんなのだとか。ダメじゃん。終わってるじゃん。改善されるわけないじゃん。ええい、糞。どうにかならんのか…。

トイレに入る回数を少なくするために、昨日今日はお茶も飲んでません。これで水分足りなくて例えば血管詰まらせて倒れたりしたらどうなるんだろう。須賀川市は「やった!面倒くさい地域に住んでる人間がまた一人死んでくれた!」と喜んだりするのだろうか。なんだかな。

下水が通っていればこういうことにはならないのだろうけど…。須賀川市役所のフロアに糞尿をバケツに入れて持ち込んでまるで打ち水でもするかのように市役所職員に向けてふりかける的抗議活動でもしないとこちらが困ってるということが伝わらないのであろうか、ってそんなことこっちもやりたくないし、やったところで事態が変わるとも思えないからやらないけど。

などと、そのような嫌な感じのアレコレをモヤモヤと思ってしまうぐらいに、困った…。

2010/12/27(月) [n年前の日記]

#1 [nitijyou] トイレはなんとか間に合った

朝方汲み取りに来てくれたらしい。助かった。マジ助かった。

が、そうとは知らなかった自分は、これは外出してどうにかするしかないのか的に…まあいいや。

#2 [tv] ドラマ「国語元年」を視聴

NHK-BS2をつけてたら放送が始まった。井上ひさし脚本。かなり昔の作品。標準語を制定しようとする官僚?と家族のドタバタ劇を描く、みたいな。

BGVとして流していたつもりが、結構面白くて、結局最終話の5話まで見てしまったり。そしてラストにビックリ。これは無いわ。このラストでは再放送しづらいわ。

と思ったが。実況スレの解説を見て、なるほどと。脚本家の思想を考えると、このラストは当然の帰結。途中で出てきた登場人物も、たしかに脚本家の分身というか、脚本家が常日頃主張している思想の代弁者であり、そのラストも脚本家自身の扱いを比喩しているソレだった。そこまで含めて考えると、ますます面白い作品だなと。

でも再放送しづらいわ。フツーは脚本家の思想とか主張まで読み取ろうとは思わないもの。大多数の視聴者は、「なんじゃこのラストは」と憤慨するだろうし、その意味が分かったとしても、中には「だったら尚のことけしからん」と怒り始める人も居るだろうし。なかなか扱いが難しい作品、のような気がしたり。

2010/12/28(火) [n年前の日記]

#1 [pc] Visual Studio 20* Express をインストールし直し

Microsoft SQL Server 2005 や 2008 とやらを何も考えずにインストールしてたのだけど。何故かずっと、Microsoft Update で SQLなんたらのSP1 が入らないという問題が起きていて。自分で何かしらに使ったこともないので、この際だからアンインストールしようと。で、インストールしてしまうキッカケとなった、Visual Studio 20* Express も含めて全部アンインストール。その後、再度 Visual以下略をインストールし直し。ちなみに環境は Windows XP Home SP3。

_SQL Server 2008 のインストールで「コンピュータの再起動」のルールにハマった - present
ネットで調べてみたところ、どうやらレジストリの
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
にある
PendingFileRenameOperations
の値が諸悪の根源のようだ。これを削除すると無事インストールできた。

SQL Server 2008 のインストールで「コンピュータの再起動」のルールにハマった - present より


_ソリマチのソフトがインストールできない件への対処 - 鷹山耳袋
_アンインストールしたら今度インストール出来ない - BIGLOBEなんでも相談室
_瞬快クライアントインストールの最後にOSが再起動を要求している旨のメッセージを表示し、修復無効モードでインストールされる。 : 富士通四国システムズ
再起動を実施しても現象が改善されない場合は、次の以下のレジストリを削除することにより回避可能です。
キー:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
名前:PendingFileRenameOperations
(例)ロジクール社製Webカメラアプリケーションをインストールした場合、以下のモジュールが置き換え予約されています。
\??\C:\WINDOWS\TEMP\logishrd\LVPrcInj01.dll

瞬快クライアントインストールの最後にOSが再起動を要求している旨のメッセージを表示し、修復無効モードでインストールされる。 : 富士通四国システムズ より


_東海フィールドサービス: SQL Server 2008 インストール不具合【保守】
調べてみるとレジストリ項目に問題があると再起動要求が消えないことが分かりました。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
こちらの PendingFileRenameOperations に値が書き込まれていると問題が発生することが分かり削除したところ無事インストールが完了しました。
因みに値の内容はLogitech製webカメラのLVPrcInj01.dllに関するもので、ファイルはWindowsのtempフォルダにいますがOS起動時に読み込まれるので削除はできません。

東海フィールドサービス: SQL Server 2008 インストール不具合【保守】 より

自分の環境も、何故かロジクールのWebカメラの何かが該当キー・項目をずっと占有・生成していてハマった。削除してもOS再起動するたびに作られてしまう。一体何をやってるんだ…?>ロジクール。あのメーカは、ハードウェアはなかなかマシなものを出すのに、ドライバ関係が常に怪しい・不具合ばかり…。

_SQL Server 2008 を再度インストールすると SQL Server のインストールが失敗する
_SQL Server 2005 のインスタンスを手動でアンインストールする方法
_SQL Server 2005 Express SP3への更新に失敗する

自分の環境では、結局 SQL Server 2005 (Visual C++ 2005 Express をインストールした時に入れてしまったらしい)関係は、何度やってもアンインストール出来なかった。一部のファイルはアンインストールしてくれてるみたいなのだけど、「プログラムの追加と削除」やスタートメニュー中から該当項目が消えてくれない。どうなってるんだ…。

2010/12/29(水) [n年前の日記]

#1 [perl] PerlでExcelファイルから読み込み

ActivePerl を使っているので、ppmで以下をインストール。

かなり処理が重い。元のxlsファイルが10MByte近いのだけど、そのせいなのだろうか。それとも内部でマクロ使いまくりだからアレなんだろうか。

日本語文字列を取り出した時におかしなことになってしまう。Spreadsheet::ParseExcel::FmtJapan を使えばsjis文字列として取り出せる?みたいなのだけど。ActivePerl 5.12.2 上で ppm でインストールしたソレだと、FmtJapan.pm 中でエラーが出てしまう。

_FmtJapan.pm in Perl for MacOSX 10.6 で解決策が。96行目を、
return bless $self, ref( $class ) || $class ;
に変更。エラーが出なくなった。

2010/12/30(木) [n年前の日記]

#1 [nitijyou] そこそこ雪が降ってきてる

今までもたまにチラチラ雪は降ってたけど。ようやくうっすら積もるぐらいに降ってきた。 CAt anime

#2 STARDRIVERを視聴

第1話からずっとHDDレコーダに溜めっぱなしだったのだけど。ようやく視聴。

最近のアニメは凄いことになってるなあ…。クオリティの高過ぎて、溜息しか出てこない。クラクラしてくる。

2010/12/31(金) [n年前の日記]

#1 [movie] 亡国のイージスを鑑賞

深夜、TVで流れていたので一応鑑賞。

ダイ・ハードに似てるなと思ったけれど、日本映画によくある陰々鬱々としたソレが前面に出てきてしまってなんだか色々台無しになった印象。もっともスタッフはどうせ最初からその手の映画なんぞ作るつもりはなかったのだろうから、これで何も問題はないのだろうけど。

イージス艦?の戦闘シーンは庵野コンテだったと後で知り、ちゃんと見ておけばよかったと少し後悔。まあ、コンテをそのまま映像化できたわけではないらしいし、そもそも今回のTV放送版はどう見てもカットされまくりだったから気にしても意味は無いか。

検索して関連情報を眺めたら、制作で色々苦労したらしいと知った。なんだか申し訳ない気分に。や、「うわー苦労してるな」「これは大変だったろうな」と見ている間は全然思えなかったもので。スイマセン。

#2 [anime] サマーウォーズを鑑賞

HDDレコーダに録画してたけど、ずっと見てなかったソレをようやく鑑賞。

デジモン映画の焼き直しなのかなと想像してたけど、ちと違ってた。家族云々の設定・エピソードが加わったあたりで、パワーアップ版になってる印象。とはいえ、あっち側の基本設定や展開は、想像通りデジモンのソレだったわけで。また同じことを繰り返さなくても、という気分にも。が、以前の作品の不満点を直して今度こそ完全版を、てな気持ちも分かるような気もするので、仮にそういう姿勢で作ってたなら、これはこれで。

約1ヶ月前に母方の祖母が亡くなっている状況なので、途中でなんだかモヤモヤした気分になった。

以上、31 日分です。

過去ログ表示

Prev - 2010/12 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project