PC関係のメモ
IP Messenger / にょっこりボックス
IP Messenger
職場では連絡網にIP Messengerを使用している。シンプルで使いやすいんだけど、気になってる点もいくつか。
- 送る前に相手の名前を確認したい。たまに間違えそうになるので。(Beckyのあて先確認みたいな感じ)
- 受信したときにダイアログ以外の方法で通知して欲しい。ノリノリ(死語)でコーディングしてるときに目の前にダイアログが出てくると仕事の妨げになる。MSN Messengerみたくタスクトレイからペロっと出てくると最高。でもあれを実装してるアプリケーションってあんまりないな。あ、SharpReaderでやってるか。.NET Framework使わなきゃいけないんならいらない。
あとこれは単なる遊びなんだけどスキン機能があると萌え。
にょっこりボックス
http://www.coara.or.jp/~tkuri/D/032.htm#D2003-05-09
MSN Messengerみたいにタスクトレイからにょっこり出てくるアレをAPIで実装したもの。
Init()関数に対して / MSN Messengerのバルーンウインドウを実現する方法
Init()関数に対して
初期処理を行うInit()というメソッドを用意したとき対になる終了処理を行うメソッドの名前を考えるためのメモ。
- Finalize
- Exit
- Stop
MSN Messengerのバルーンウインドウを実現する方法

先日書いたタスクトレイからにょろっと出てくるアレを調べてみたらいくつか見つかった。 スクリーンショットは"A Class to Display Skinned Popups Like MSN Messenger"。マウスオーバーするとリンク(下線)になる。
- A Class to Display Skinned Popups Like MSN Messenger
- MSN Messenger like Tray Balloon
- MSN Messenger Type Task Bar Message Box
他にMessenger関連
A Class to Display Skinned Popups Like MSN Messenger / 漆塗りパソコン
A Class to Display Skinned Popups Like MSN Messenger
昨日見つけた"A Class to Display Skinned Popups Like MSN Messenger"で遊ぶ。
アップデートがコメントにアップロードされていたので試してみた。常に前面に表示するように修正されている。
11 August 2002:New Big update for CTaskbarNotifier
ちなみにデモプロジェクトはVisual Studio .NETで作られているが.NET 2003でも変換してビルドできた。
ソースが公開されているWindowsアプリケーション / シン覚え書 / プログラマとして
ソースが公開されているWindowsアプリケーション
シン覚え書
ソースが公開されている高機能付箋アプリケーション。
プログラマとして
Mona OS開発者のhigeponさんの日記より
http://d.hatena.ne.jp/higepon/20050303#1107681197
僕は全然未熟なんだけど共感する部分があったので引用させてもらう。
プログラムは勉強すれば誰でもできると思う。知らない言語や知らない仕組みでも勉強すれば何とかなるだろう。最近になってやっとそう思えるようになった。
つまり「こういうプログラムできない?」と言われれば大抵の場合は「時間と手間をかければできる」と答えられるようになったのかもしれない。
となると、人生のうちプログラムに使える時間は有限なので(そもそも人生が有限だ)、取捨選択が重要になる。
「こんな仕組みがあったら便利だな」とか「あのアプリの使い勝手を改善したい」とか「あれを自動化したい」とか、自分で思ってもスグに手を出してしまってはやりきれなくなってしまうのである。
たとえばこれから1年で僕は何行コーディングできるだろうか。いくつの機能を実現できるのだろうか。
Googleが地図サービスのベータ版を公開 / adduserとuseradd / [todo]posttdiary.rb改造版をインストールする
Googleが地図サービスのベータ版を公開
adduserとuseradd
useraddでユーザを追加たらホームディレクトリが作られなかったので、ひょっとしてと思ってadduser使ったら作ってくれた。
ディストリビュージョンはDebian Linux。
[todo]posttdiary.rb改造版をインストールする
Wikiクローン覚え書き
- YukiWiki
国産クローンの先駆け?2.0になってから高機能になってるらしい(2.0になってから使ってない)。最初のころのソースは短かったのでこれをもとに改造して自前のWikiクローンを作って捨てた覚えがある。
- RWiki
Rubyで実装されてる。
- Hiki
これもRubyで実装されている。去年このサイトで使ってたのがこれ。tDiaryのテーマ/プラグインが流用できる。CVS/SVNでバージョン管理ができたりする。
- KinoWiki
PHP5で実装されてる。比較的新しい。
- BitChannel
Rubyで実装されてる。比較的新しい。diffでバージョン管理することを前提に作られている(うろ覚え)
後でまとめとか書く予定
休日出勤 / Rekisa
休日出勤
久しぶりに休日出勤。検査項目書の作成と検証を黙々と。
Rekisa
http://hp.vector.co.jp/authors/VA017396/software/Rekisa/
特徴を箇条書きしてみると、次のような点が挙げられます。
- 一度に三つ以上のファイルを比較できる。
- 左右のカーソルが連動するので、対応する部分を見つけやすい。
- 下線で文字単位の違いを表現。
- SHIFT_JIS、EUC-JP、JIS等、様々な文字コードに対応し、自動判別して開く。
- コマンドラインから開く場合はファイルの指定に正規表現が使用可能。
Useful enhancements for Visual Studio .NET / MakeDoxygenComment : Generate Doxygen Comment Skeleton / [buy]Web Site Design vol.1〜vol.4 / PSXのコントローラー
Useful enhancements for Visual Studio .NET
http://www.codeproject.com/macro/kingstools.asp
- Run Doxygen
- Insert Doxygen comments
- Build Solution stats
- Dependency Graph
- Inheritance Graph
- Swap .h<->.cpp
- Colorize
- } End of
- #region/#endregion for c++
- Search the web
http://slashdot.jp/journal.pl?op=display&uid=259&id=259620より
MakeDoxygenComment : Generate Doxygen Comment Skeleton
[buy]Web Site Design vol.1〜vol.4
PSXのコントローラー
ダイアログのリサイズ / セミナーとか受験とか / Wikiクローン覚え書き(2)
セミナーとか受験とか
3月に実施される組み込みのセミナーの受講決定。情報処理技術者試験の仮申込み完了。明日ローソンで受験料振り込まなきゃ。
ちなみに今回受験する試験区分は「ソフトウェア開発技術者試験」、秋の試験では納品時期と重なって受験どころではなく、セキュアドを午後Iで落としてるので、今回は時間を取って受かるようにしないと。
でもレベルはどんなもんなんだろう?実はテクニカルエンジニア(DB)もちょうどいいかなと思ったんだけど試験問題をググってみて3問くらい見て即考えを改めた。あれは結構がんばらないと無理っぽい。ソフトウェア開発技術者試験もがんばらないといけないけどちょっとでも負担が少ないほうがいい。
データベースのほうはオラクルマスター取っとけばいいや。と、去年から言ってる気が・・・あれは情報処理見たく「年に一回(or 二回)」じゃなくいつでも受験できるから安心してしまう。
Wikiクローン覚え書き(2)
- PukiWiki
PHPで実装されてる。結構いろんなところで見かける。最初の頃はYukiWikiをPHPに移植したようなシンプルなものだったような気がするんだけど、いつの間にかプラグインやらなにやらで高機能になってる模様。
また、最近はPukiWiki.orgでバザール方式で開発が行われている?
人に勧めるなら癖もないしPukiWikiかHikiかな。
(c)、(tm)、(r) / [todo]ExcelのDiff取ってくれるツールが欲しい / ダイアログのリサイズ(2)
(c)、(tm)、(r)
○にCはCopyright(著作権)。TMはTradeMark(商標)。○にRは、Registrated Trademark(登録商標)です
http://www2.plala.or.jp/kamkamkam/gimon5/newgimon/12gatu/243.htm
[todo]ExcelのDiff取ってくれるツールが欲しい
perlのエクセルモジュールとかOLE拡張使ってやるのがいいのか、VB/VBA使うのがいいのか。
親和性とかGUIでオプション指定することとか考えるとVBかな。
Excel + diffとかExcel + compareでちょっと検索
下のは有料で体験版
ダイアログのリサイズ(2)
MoveWindowの第2引数を指定してInvalidate系の関数を使って必要な領域だけ再描画するなりしないとちらつきが目立つ。
DeferWindowPosを使おうと思ったら使用しているActiveXコンポーネントが上手くリサイズされない。というかリサイズ後にフォーカスを移す(そのコンポーネントの再描画が走る)とリサイズ前のサイズに戻ってしまう。
あとプロパティシートもリサイズしたいのでCodeGuruでサンプルを探す。上手く再描画処理やってるサンプルがあると一石二鳥。
posttdiary-ex.rb導入 / 添付画像テスト / RDに対応してない / RDスタイルに対応させたつもり / Rubyコーディング規約 / CSSをちょっと変更 / 携帯から更新
posttdiary-ex.rb導入
更新テスト
添付画像テスト

本文を書かないとContent-Type: multipart/mixed;が付かないのでエラーになってしまった。
RDに対応してない
posttdiary-ex.rbはRDフォーマットには対応していないので手で修正。
後で改造しよう。あと画像のパス中に.が使われているとそれ以降を拡張子と判断してしまっているので修正した。
RDスタイルに対応させたつもり
posttdiary-ex.rb v1.52をRDスタイルに対応させるためにクイックハックした。
もう3時前なのでかなり適当。--rd-styleのショートオプションを-Fにしたのはパッと見、他で使ってなかったから。
605d604
< rd_style = false
637d635
< ['--rd-style', '-F', GetoptLong::NO_ARGUMENT],
694,696d691
< when '--rd-style'
< rd_style = true
< use_image_ex = true
765,769d759
< if rd_style then
< image_format = '((%image $0,"$4"%))'
< image_format_with_thumbnail = image_format
< add_div_imgnum = 0
< end
868c858
< raise "(略)" if !(tmpimgname =~ /(\.[0-9a-z]*?)$/)
---
> raise "(略)" if !(tmpimgname =~ /(\..*?)$/)
893d882
<
907d895
<
921d908
<
933,935c920
<
< img_src.sub!( /^/ , ' ' ) if ! (wiki_style | rd_style)
<
---
> img_src.sub!( /^/ , ' ' ) if ! wiki_style
937,941c922
< if rd_style then
< @body = "#{img_src}\n#{@body.sub( /\n+\z/, '' )}"
< else
< @body = "#{img_src}\n#{@body.sub( /\n+\z/, '' )}"
< end
---
> @body = "#{img_src}\n#{@body.sub( /\n+\z/, '' )}"
949,953c930
< if rd_style then
< @body = "=#{subject}\n#{@body}"
< else
< @body = "#{subject}\n#{@body}"
< end
---
> @body = "#{subject}\n#{@body}"
Rubyコーディング規約
携帯から更新
できてるかな?
ヘッドライン設置 / jcode.pl、Jcode.pm、Encode / スタイルシート本 / PearPC - PowerPC Architecture Emulator / 使ったことのある言語 / その他のスキル / アセンブリ言語 / メモツール
ヘッドライン設置
20041208#p01の続き。ようやく運用を開始できた。
使用したソフトは2本
whatsnew.cgiでRSSを生成してmt-tickerでヘッドラインを表示する。
どちらも手を入れないといけない部分があったのでメモ。
whatsnew.cgiについて
- xmlヘッダのencodingがutf-8になっていたが実際に出力されるRSSファイルがなぜかEUC-JPになっていた。多分Jcode.pmの設置の仕方が悪かったんだと思う。
- 設置したサーバのperlのバージョンは5.8だったのでJcode.pmでなく標準のEncodeモジュールが使える。そのためJcode.pmでなくEncodeモジュールを使うように変更した。UTF-8で出力されるようになった。
- 出力されるRSSファイルの改行コードがLFだったのでCR+LFで出力するように変更した。
mt-tickerについて
- オリジナルのc-tickerはShift_JIS、RSS0.9にしか対応してなかったため、どちらも使えるようになっているmt-tickerを採用した。
- クリックされたときに開くフレームのターゲットを_parentに変更
jcode.pl、Jcode.pm、Encode
Perl 5.8 から標準で Encode モジュールが含まれるようになりました。いままで jcode.pl や Jcode.pm を別途インストールしていたのですが、その手間が省け精神的にも楽です。そして何よりも変換速度は早いようです。
スタイルシート本
スタイルシートを始めるのに本を買いたいという相談を受けたので一緒に本屋に行った。
専門店では無かったためスタイルシートの本は多くなかったが、あまり褒められないサンプルを掲載している本は却下。
結果この本を購入することに。今見てみたらAmazonでの評価も良い。
PearPC - PowerPC Architecture Emulator
使ったことのある言語
業務で使ったことのある言語から、ちょっと読める程度のものまで
- N88-BASIC
- Z80 アセンブリ言語
- Visual Basic/Visual Basic for Applications
- perl
- PHP
- SQL
- JavaScript
- C言語
- C++
- Ruby(簡単なスクリプト読むには困らないという程度)
ほぼ習得順。習熟度が実用レベルに達していないのはZ80アセンブリ言語とRuby。
約半年間C++でWin32プログラミングをやって大体形になってきた。あと覚えたいのは
- 32ビットのアセンブリ言語
- Java/C#/VB.NETあたり
- lisp系言語
どちらかというと高級言語はいっぱいあってきりが無いから低級言語をより積極的にマスターしたい。
どうでもいいけどアセンブラってアセンブリ言語をアセンブルするソフトウェアのことを指すのに言語として「アセンブラ」って書いてる記事をたまに見かける。でも「アセンブラ言語」とも言うからいいのか。
その他のスキル
使ったことのあるOS
- N88-BASIC
- MS-DOS
- Windows(常用)
- Linux(RedHat, Debianがメイン)
- Mac OS X
その他
- HTML書ける
- XML使える(以下はプログラム内で使ったことがあるXMLベースの技術)
- XHTML
- XML-RPC
- SVG
- サーバ立てることができる(Web/DB/Mailとか)
アセンブリ言語
Wikipediaに書いてあった。
アセンブリ言語の意でアセンブラと呼ぶ人もいるが、英単語としての意味を考えれば正確ではない。
そりゃそうだ。
機械語そのものよりも親しみやすい記法でプログラムを書いておいて、プログラムが完成したときにまとめて機械語に変換するのである。
当初は、この変換は人間が手で行っていた。これは現代ではハンド・アセンブルと呼ばれる。
今でもハンド・アセンブルできる兵はいるんだろうか。
C Magazine 2005年3月号 / [buy][book]Web Designing 2005年3月号
[buy][book]C Magazine 2005年3月号
[buy][book]Web Designing 2005年3月号
既存のテーブルに列を追加するSQLコマンド / phpPgAdmin
既存のテーブルに列を追加するSQLコマンド
既存のテーブルに新しく列を追加したい場合、Accessなら簡単なんだけどPostgreSQLなどでSQLコマンドを使う場合はALTER TABLEを使う。
PostgreSQL リファレンスマニュアルよりALTER TABLE
ALTER TABLE distributors ADD COLUMN address VARCHAR(30);
もし追加が困難である場合は、ちょっと乱暴だけど
- データをエクスポート
- DROP TABLEで一旦テーブルを削除
- CREATE TABLEで列を追加した新しいテーブルを作成
- データをインポート
するという手もある。
私信:もしあのテーブルに文字列型の列を追加するときはこれ使ってちょー。一瞬で済むならDROP TABLEしてからCREATE TABLEしても可。ただし失敗すると焦るよ。
phpPgAdmin
PostgreSQLのWeb用インターフェース。
phpPgAdminが開発初期のころに試しに使って、わずらわしくなってコマンドラインに戻った覚えがある。
それ以来WebインターフェースのDB管理にはなんとなく抵抗があったんだけど、その考えが変わったのはOracle10gのセミナーを受けたとき。Oracle10gはWebインターフェースからの管理が強化されていて効率的に作業が行えた。(ような気がする)
導入も簡単みたいだしコマンドラインで操作する作業の簡素化という目的で使う分には良い選択肢だと思う。
phpPgAdminの最新のスクリーンショットを見たら最初の頃に比べて洗練されてきた印象。また使ってみたくなった。
リバースプロキシ / 使えるソフト / ThinkPad用のキャリングケース / Ajax: Web アプリケーション開発の新しいアプローチ
使えるソフト
ThinkPad用のキャリングケース
ツールチップを表示 / 水泳復活 / ProFTPDで.(ドット)ファイルが見えない / ProFTPDで.(ドット)ファイルを隠す
ツールチップを表示
水泳復活
半年以上ぶりなので500mだけにしとくつもりが、コースに一人だけで気持ちよかったので1km泳いできた。でもほとんど平泳ぎ。
ProFTPDで.(ドット)ファイルが見えない
最近のProFTPDではRFCに従ってクライアントの設定によってはドットファイルが見えないらしい。
FFFTPの場合はホストの設定で「高度」-「LISTコマンドでファイル一覧を取得」を選択する。
ProFTPD側で対応する場合はListOptionsに"-a"を設定する。
僕はProFTPD側で設定。20040305#p02
- http://oku.edu.mie-u.ac.jp/~okumura/networking/ftp.html
- http://www.aconus.com/~oyaji/ftp/proftpd_ssl.htm
ProFTPD1.2.10rc1から「NLST」のオプション指定が未サポートになり、FFFTPなどではデフォルトのままではファイル一覧が取得できないので注意が必要です。これはRFC959に基づく変更であり、クライアントの設定を変更して「LIST」コマンドでファイル一覧を取得するようにすれば大丈夫です。 なお、このままではドットファイルが見えなくなるので、見せる必要があるなら、「ListOptions」ディレクティブを 「ListOptions "-a"」のように、proftpd.conf に追記してください。
ProFTPDで.(ドット)ファイルを隠す
> ShowDotFiles off #default is off
ShowDotFilesはバージョン1.2.6以降はサポートされていませんの でご注意を。
未確認だけどこれかも?>take_c
PDA / デバイス購入 / オープンソースの都市シミュレーションゲーム / 複雑系・人工知能ゲーム / SQL Server / APCのUPS
デバイス購入
マイクロソフト オプティカル マウス IntelliMouse Explorer B75-00095
HHKは別。今回購入したのはMicrosoftのマウスとSEGA Suturnのゲームパッド(PC用)。
サターンのゲームパッドは今使ってるサイドワインダーが使いづらいから。そして未だにサターンのパッドが一番使いやすいと思っているから。ただ、セレクトボタンが無いなど、若干ボタンが少なめ。
Microsoftのマウスは職場で使用予定。ちなみに使っているのは同じくMicrosoftのIntelliMouse Optical。20040408#p02
乗り換え理由はホイールを使ったときの「コリコリ」音。今回買ったIntelliMouse Explorerに搭載されているチルトホイールは音がしない。形も今使っているものより手にフィットする感じで良い。
使用感が良かったら家用にも買う予定。
http://www.microsoft.com/japan/hardware/mouse/intelli_explorer.asp
複雑系・人工知能ゲーム
SQL Server
製品版のSQL Serverにあって無料版のMSDEに無いもの。管理ツールの「Enterprise Manager」クエリ発行ツールの「Query Analyzer」など。
APCのUPS
APC製のUPSの設置に立ち会った。
設置したのは500VA/320WタイプのSU500J。500VAタイプは中途半端でサーバPCだとPentium4なら大抵300Wくらいなので一台つないだらもう他の機器がつなげない状態。
その後、別件で700VA/450WのAPC製UPSを設置している会社にお邪魔した。同じ形だけどやっぱり450Wあると安心かも。でもどちらにしても2台は繋げない。
チルトホイール使用感 / MSDEをインストール / PDAの使い道 / 入門xyzzy / Photoshopで曲線を描く
チルトホイール使用感
昨日買ったIntelliMouse Explorerのチルトホイールが重い。指でくるくる、というよりはぐいぐいと押しまわす感じ。ホイールをクリックするときも前のマウスは「カチッ」と軽くクリックできたけど、これは「ぐっ」と押さないといけない。
まぁ、これは購入前から店で触ってわかってたし、使っていればそのうち軽くなるだろうという予想のもと購入したので、これからに期待。
それ以外では形に関しては概ね満足。前のマウスよりは手になじむ。あと横のゴム部分が心地よい。
PDAの使い道
もしPDAを買ったとして、何に使うか。
- スケジューラ
- マルチメディアプレーヤー
- ドキュメントの参照
- ゲーム機
- WindowsCEの動作環境として
まず、スケジューラに関してはカシオペア、CLIEを購入した経験からほぼ間違いなく使わない。マルチメディアプレーヤとしてもCLIE、iPodでの失敗経験(すぐ飽きて使わなくなる)から使わなくなるだろう。
ドキュメントの参照。これも今のところわざわざPDAで参照しなきゃいけないようなドキュメント/データベースは持ち合わせてない。 しいてあげるなら開発のドキュメント、例えばMSDNが全部入るとかなら使うかも。でもPDAである必要がない。
Photoshopで曲線を描く
電話で「どうやるの?」と聞かれた。要はIllustratorでいうところのトレースがやりたいらしい。「パスツール使って点を打って、その点を同じくパスツールの矢印みたいなのでうにょうにょっと動かして・・・」と説明しようとしたが、面倒なので現地に赴いて実践した。
パスツールで大まかに点を打って、アンカーポイントの切り替えで曲線を表現。形がとれたらパスの境界線を描いて出来上がり。ちょっと太すぎたのでブラシを適当な大きさに調節。



スタイルシートサンプルブック(大藤 幹)





Before...
_ take_c [ぐはっ…ツッコミを入れる日付を間違えてしもうた…ゴメン(再び・トホっ)]
_ hajime [むむむ・・・となるとProFTPD側に「見せる」ための設定(ListOptions "-a")じゃなくて、「隠す」た..]
_ hajime [ゴメソ。さっきはこの日付に間違えて書いてたの。(爆)]