付箋紙95を入れた / 常時使ってるツール / 一般的にインストールされるであろうソフト / ソースが公開されてるとなぜ安心か

付箋紙95を入れた

初めて付箋ソフトを使ってみたんだけど結構いい感じ。

そういえば前の職場ではディスプレイに大量に貼ったリアル付箋がはがれて落ちて嫌がられたけど、これでそんな心配もない。ていうかこれかなり便利。ただでさえ雑然としたデスクトップがさらに汚くなりました。(爆)

唯一気になるのがソースが公開されてないということ。このソフトに限らず、長く使うと思うソフトはソースが公開されていると安心する。

常時使ってるツール

会社のPC環境が新しくなった。今までPentiumIIだったのがいきなりPentium4のマシンに。メモリも128MBから512MBへ。家の環境に比べると若干低いけど開発するには十分なスペック。ていうか前の環境でVC++使うのはさすがにきつかった。

で、真っ先に入れたツール。

  • Explzh(圧縮/解凍)
  • xyzzy(エディタ)
  • Becky(メール)
  • CraftLaunch(ランチャ)
  • 付箋95
  • Cygwin
  • Google Desktop Search

Cygwin,xyzzy以外はソースが公開されてない。残念。

アプリ系は

  • MS Visual Studio
  • MS Office
  • Adobe Reader

だんだんインストールするソフト、設定が少なくなってきてる。昔は新しいマシンを使うとなると1日がかりの作業だったけど、今は仕事しながらでも半日くらいで終わる(OSのインストールは除く)。こだわるところはこだわるけど、基本的に素のままの設定。必要なものは都度入れていく方針。そういえばここ1年以上壁紙すら変えてないな。だって基本的に何かしらアプリケーションが起動してるから壁紙見えないし。

一般的にインストールされるであろうソフト

WinAmpとかRealOneとかFireFoxとか。Windowsにはじめからついてるもので代用できるソフトは入れない。Beckyだけは別。FireFoxは確認のために入れたりはするけど継続して使ったことがない。

ソースが公開されてるとなぜ安心か

例えばそのソフトの作者が開発をやめたとき。新しい機能が増えないとかはいいんだけどセキュリティ面でのアップデートが行われないときや、新しいOSが出たときに不具合が出た場合。ソースが公開されていれば誰か(自分含む)が対策することができる。ソースが公開されていないと、最悪他のソフトを探さなければならない。

オープンソースの精神がどうとかじゃなくて、単純にユーザーとして安心できるというだけ。使うソフトを選ぶときの基準のひとつだ(最優先ではない)。

最終更新時刻: 2009年01月04日

会社のマシンにSpaceSaverIIをつけた

新しいマシンはEPSON製でNECチックなキー配列。たいていのメーカー製PCがそうであるように使いづらいので家から持ってきた。

最終更新時刻: 2008年11月12日

徹夜 / 徹夜明け

徹夜

現在4時半。まだ会社。

徹夜明け

顔洗ったら復活してきた15時半。成果物はもう客先へと向かっているのであとは残務的なことをやっておく。

あれ?まだ8分しかたってないのに中身の詰まった仕事ができた。人が少ないのと納品後の心の余裕がそうさせるのか。

最終更新時刻: 2008年11月02日

Excelでシートの複数選択 / 付箋紙95便利

Excelでシートの複数選択

普通にShiftやCtrl押しながらできた。で、印刷設定も一度に行えて一度に印刷できる。

付箋紙95便利

思いついたことをすぐ貼って、終わったらはがす。紙の付箋より手早く、かつログにも残る。忘れっぽい自分にはとても重宝するツールだ。

これはこれでいいんだけど、ネットワーク内で共有デスクトップみたいなのに付箋貼り付けれるツールもあると便利かも。

最終更新時刻: 2008年10月23日

[wish][book] ライティングソリッドコード―バグのないプログラミングを目指して / JavaScriptエンジン / BTS

ライティングソリッドコード―バグのないプログラミングを目指して

ライティングソリッドコード―バグのないプログラミングを目指して (マイクロソフトプレスシリーズ)(スティーブ マグワイア/Steve Maguire/関本 健太郎)

[wish]ていうか[buy]しちゃいましたとさ。少し大きめの本屋でも並んでなかったし。明日到着予定なので今夜はコードコンプリート読んで待とう。コードコンプリートとは内容が若干かぶるらしいが、テストに関してはライティングソリッドコードのほうが詳しいらしい。

コードコンプリート―完全なプログラミングを目指して (Microsoft PRESS)(スティーブ マコネル/Steve McConnell/石川 勝)

アマゾンへのリンク貼ろうと思ったら「この本は現在お取り扱いできません。」となってた。

JavaScriptエンジン

MozillaのJavaScriptエンジン(SpiderMonkey)は自分のアプリケーションに組み込むことができる。これを使ってSVGもごにょごにょできないかな。

SpiderMonkey を VC6 でビルドするには

というかSVGレンダラ(という表現が正しいのかどうか・・・)も組み込めるように独立してると便利。

BTS

mantisというのがよさそう。影舞も一度試してみたい。

http://www.issei.org/blog/archives/000074.htmlより

最終更新時刻: 2008年09月03日

レコード完成 / 松山やめ / CListCtrlの仮想リスト / MFC使ってるオープンソースプロジェクト / WinMerge日本語版

レコード完成

以前制作を手伝わせてもらったレコードが完成したので完成品を頂いた。12インチだとやっぱり画面上で見たより字が大きく感じる。もう少し小さくてもよかったか。逆に帯の部分は「こんなに小さくて潰れないかな」と心配だったがそうでもない。あと思ったより印刷が鮮明。

次回作があったらこのあたり考えて作業したいな。

松山やめ

今月末は忙しくなりそうなので松山行きはやめた。残念。

CListCtrlの仮想リスト

使うことになりそう。

用途としては、受け取った文字列(ログ)を一行づつ表示して、閾値を越えたら始めの方から消えていってほしい。で、ログを表示している間は最後に出力した行にフォーカスが移るように。でもスクロールバーは動かして前のログも確認したい。この辺もう少し詰める必要がありそう。

今はCListBoxを使ってたんだけどかなり遅い。そして思いのほかログの件数が多く、しばらく動かしているとメモリが圧迫されるのが悩みの種。

MFC使ってるオープンソースプロジェクト

site:cvs.sourceforge.net stdafx.hでGoogle検索

  • FileZilla(SFTPクライアント)
  • WinMerge
  • Shareaza(P2Pクライアント)

WinMerge日本語版

使いやすい。WinDiffから乗り換える予定。

最終更新時刻: 2008年09月02日

インヘリタンス / [book][buy]ライティングソリッドコード / 月9を月曜日に見れた

インヘリタンス

先日の情報処理技術者試験(セキュアド)でオブジェクトの継承に関する問題が出てきた。正解は「インヘリタンス」(継承)だったんだけど、正直なんじゃそりゃ?な状態。多態性をポリモーフィズムっていうのはわかるけど継承をインヘリタンスなんてあまり言わないんじゃ。それともJava界隈では使われるのかな。

で、何で今さらこんなことを書くかというと、インヘリタンスってinheritの名詞形か。と今ふと気づいたから。でもやっぱり納得いかん。聞きなれないカタカナにするくらいならいっそ英語で書いてくれと言いたい。

Googleに聞いてみたら

  • インヘリタンス+オブジェクトの検索結果:641件
  • 継承+オブジェクト:54,500件

・・・使われてないことも無い。でも一般的とは言えない様な・・・知ってて当たり前?

まるきり聞いた覚えがないわけでもないってことはUMLの記事にでも載ってたのかも。

ちなみに

  • 多態性+オブジェクト:3,780件
  • ポリモーフィズム+オブジェクト:1,810件

僕はポリモーフィズム派。

ライティングソリッドコード

到着。ASSERTって書いてあったからてっきりC++だと思ってたら今のところC。でも買ってよかった。

そうか、言語の機能としてのassertはC++にしかないけどCでもマクロでASSERTを定義すればいいのか。

2章の序盤まで読んで続きは明日。

月9を月曜日に見れた

今回の月9が始まって初めてその日に見れた。もちろん録画、しかもすでに2時半なんだけどね。寝よ。

最終更新時刻: 2008年08月21日

スパムフィルタ / メールサーバメンテ

スパムフィルタ

  • spamassassin
  • bsfilter

メールサーバメンテ

まずはapt-get update。

で、/etc/apt/sources.listにbackportsのパッケージをいくつか追加してapt-get dist-upgrade。

deb http://www.backports.org/debian/ woody apache2
deb http://www.backports.org/debian/ woody subversion
deb http://www.backports.org/debian woody courier

courier-imapで日本語の検索ができるようになった。

最終更新時刻: 2008年08月21日


OpenJane - オープンソースの2chブラウザ / samidare - Rubyで書かれたアンテナスクリプト / jvimでSJISのrubyスクリプトを編集

OpenJane - オープンソースの2chブラウザ

samidare - Rubyで書かれたアンテナスクリプト

  • 設定がYAMLとHTreeで記述される
    • 設定のデータ構造である程度の挙動を制御可能
  • LIRS, RSS に対応
  • 更新チェック間隔を個別サイト毎に自動調整
  • HTTP GET を利用してコンテンツ差分による更新チェックができる
    • 他所アンテナからの情報はそのまま信用せず、自身で再チェックする
    • HTreeによる構造解析を行い、更新情報として無視する部分を指定できる(広告等の対策)

jvimでSJISのrubyスクリプトを編集

最終更新時刻: 2008年07月25日

[buy][book] Windows プロフェッショナルゲームプログラミング2 / 2速歩行ロボットカコイイ / 太った / スタートアップアプリケーションを減らす

Windows プロフェッショナルゲームプログラミング2

Windowsプロフェッショナルゲームプログラミング2【CD-ROM付】 (Game developer books)(やね うらお)

やねうらおさんの本。ゲームプログラミングに限らずC++全般のTIPSがいっぱい。

最近お堅い本ばっかり買っていたのでプログラミングを楽しいと思える本が欲しかった。で、やねさんの日記で紹介されていたので立ち読みして即購入。本当は「Windows プロフェッショナルゲームプログラミング」も欲しかったんだけど書店には無かった。帰宅してAmazonでも調べてみたら品切れとのこと。

ところでゲームプログラミングというと新日プロ(新日本プログラミング)の日高徹さんの本を思い出す。この本もそうだけど、日高さんの本も独特の文体でとっつきやすかった。

2速歩行ロボットカコイイ

今日「ワールドレコーズ」という番組で出演してたロボットはお父さんが娘のために作ったらしい。そのお父さんは医療関係のシステムエンジニアだそうだが、ハードウェアにも強いシステムエンジニア・・・カコイイ。

あとロボットを操縦するインターフェースがWindowsCEが乗ったハンドヘルドPCってのもいい。

太った

こないだ母に言われたこと。

「あんた忙しそうだから痩せるかと思ったら、太ったね」

・・・ほっとけ!

とはいえ運動不足のうえ、食生活もコンビニ弁当メインとなると不健康この上ない。なんとかしないと。

スタートアップアプリケーションを減らす

msconfigを使っていろいろ削除。特に最近調子の悪いSMax4を真っ先に外す。

最終更新時刻: 2008年07月30日

[buy][book] コンパイラ構成法

コンパイラ構成法(原田 賢一)

久しぶりに古本屋に寄ったら良書らしき本発見。軽く読める本を買うつもりだったのになぜか購入してしまった。積読。

最終更新時刻: 2008年07月18日

[memo] セキュリティアドミニストレータ試験合格発表 / [programming]Visual C++のシンボルブラウザで不要なIDを削除 / [programming]仮想リスト

セキュリティアドミニストレータ試験合格発表

いつなんだろうと思って情報処理技術者試験センターのサイトを見たら、平成16年12月16日(木)正午(予定)となっていた。

Visual C++のシンボルブラウザで不要なIDを削除

  • IDがいくつか被ってる
  • 必要なIDも削除できてしまう

仮想リスト

プロトタイプでのテストが完了して、組み込み完了。

サブクラス化したCListCtrl内でタイマーを作るとこではまった。

最終更新時刻: 2008年11月06日


[todo] Javaを覚える

Windows環境で簡単なツールを作るときの選択肢として、Javaは結構いいかもしれない。perlの実行環境よりは普及してるだろうし、ライブラリも豊富。使い捨てのツールを作るのにC/C++を使うのは僕にとっては効率が悪い。

最終更新時刻: 2008年11月12日

メールの振分けをlensからprocmailに切り替え / Visual Studio .NETインストール

メールの振分けをlensからprocmailに切り替え

いろいろ細かい振分けしようと思うとlensではスクリプトに手を入れなきゃいけなかったのでprocmailに切り替えた。

bsfilterはそのまま利用。英語のスパムは今のところほぼ100%弾いてくれてる。

あとはlensみたいに月別でメールを分けれるといい。

Visual Studio .NETインストール

今まで6.0との共存ができるのか心配してたんだけど、下記サイトによると可能らしいので導入することにした。

ただ、手元のThinkPadは空き容量が1.7GBしかなかったのでPartitionMagicでパーティションを切り分けることにした。

構成としてはCドライブ(15GB)をシステム、Dドライブ(20GB)をデータとしていたが、Cドライブを20GBに拡張。データの移動が発生するから時間かかるし危険を伴う。でも、たいしたデータは入ってないはずなのでバックアップを取らずに実行。

とか書いてるところで「Error 1531 while executing Batch.」と不穏なメッセージがでて止まってるんですけど・・・。

最終更新時刻: 2008年11月04日

double/floatの値を比較する / PartitionMagic 8.0でError 1531 / HTML Help Workshop をインストール / WinCVS 1.3をビルド

double/floatの値を比較する

メモ

http://www.gimlay.org/~javafaq/S029.html

double, float の値の比較を行いたいのですが、どのくらいの精度を持ちますか?

[S029-A04] 実数の評価は、a>b とか、a == b では行いません。

if( a == b ) の代わりに、if( abs(a-b) < 1.0e-6 ) if( a > b ) の代わりに、if( a-b > -1.0e-6 ) という風に行います。 この場合 10e-6 が、欲しい有効桁数(精度)です。

追記

「if( a > b ) の代わりに、if( a-b > -1.0e-6 )」は間違ってると思われ。

許容相対誤差の1.0e-6の部分をEPSと言う名前で定義して利用することが多いみたい。

PartitionMagic 8.0でError 1531

昨日の続き。調べてみるとError 1531が出るときはChkdsk /fしてやると良いらしい。というわけで数時間かけてチェックディスクをかけて再度実行すると今度はError 932が出た。これまたchkdsk /fしてやれば良いらしく、またもやチェックディスク。三度目の正直でPartitionMagicを実行中。Moving dataとか出てるからこの途中に失敗したらデータ壊れるかも。この2日でディスクの寿命がかなり縮まった気がする。

無事パーティションを拡張することができた。

HTML Help Workshop をインストール

最近のHTML Help Workshopは「 Office 2003 Editions Resource Kit Tools 」に含まれるらしいのでそちらから先にインストール。

インストール後に「C:\Program Files\ORKTOOLS\ORK11\TOOLS\HTML Help Workshop」(デフォルト)にあるHTMLHELP.exeを実行してHTML Help Workshop 1.3をインストール・・・ってこれ何年前から1.3なんだろ。

MS本家(英語)のサイトからはHTMLHELP.exe単体がダウンロードできるようになってたけどこちらもやっぱりバージョンは1.3だった。

Visual Studio のオプション-ディレクトリ-実行ファイルに

C:\Program Files\HTML Help Workshop

を追加した。

WinCVS 1.3をビルド

昨日からごにょごにょやっていたのはWinCVSをビルドする環境を整えようとしていたから。

結局VS.NETは必要なかった。けどインストールはするつもり。さんざん色々試した結果、WinCVSビルドできる環境が整った。しばらく遊べそう。

デバッグ版で動かしてみたら

CJLIBRARY.DLL Terminating!
Detected memory leaks!
Dumping objects ->

以下省略。まさか本当にリークしてるなんてことは無いと思う、というかそう信じたい。

最終更新時刻: 2008年09月02日

in 図書館 / WinCVS 1.3 ビルド覚書 / ThinkPad X31のオーナー / ノートPC雑感 / ゲームボーイとかPC88とか / 物理エンジン

in 図書館

久しぶりに健康的な休日の過ごし方をしてる気がする。でもこうしてノートPCを開いてしまった時点で場所が違うだけでいつも通りな気がしないでもない。

ThinkPadを開いてる僕をみて中学生くらいのグループが遠巻きに「あれってモバイル?」と話をしてる。

WinCVS 1.3 ビルド覚書

  • USE_TCLとUSE_PYTHONのdefineをコメントアウト。
  • プロジェクトの設定-リンク-デバッグ情報を生成する のチェックをはずさないと「デバッグ情報がうんたら」とエラーが出た。後からつけたらOK。最近のPlatform SDK(XP SP2対応)とVisual Studio 6.0だと出るみたい。

さて、とりあえず動いたし次は何をしようか。まずはリソース弄って見た目だけでも変えて「俺WinCVS」でも作ってみるのもいいし、必要ない機能削るのもいい(すでにスクリプトサポート削ってるし)。機能拡張するとしたらSJIS対応だけど既に他の方がやってるからそれをマージするくらい。一番やりたいのは、VSSみたいに手軽に履歴が見れてDiffとれるようにすること。

ThinkPad X31のオーナー

某さんがノートPCをVAIOかThinkPadかで悩んでたのでThinkPadについて熱くコメントしてみた。僕は生まれ変わってもまたこのマシンを使うに違いない、と。(嘘)

そういえば僕が巡回する日記にもこのマシンのオーナーは多い。思いつくだけでも

それとオフラインだけどIBMを「I am BusinessMan」と言い放った友人もX31オーナー。師走に入る前に飲みに行きましょうYO!(私信)

ノートPC雑感

でもThinkPadかVAIOかだとコンセプトが違いすぎてて比較しずらい。2台持ってたら用途に応じて使い分けることができるんじゃないかと思うくらい。

もし僕に金銭的な余裕があったら2台目に買うノートはVAIOだと思う。1台目は安心できるIBM/DELL/HPあたりを買って2台目で遊び心のあるSONY/VICTOR(Interlink)を買う。

NEC/富士通その他は選択肢に入らないかな。NECといえばPC-88の復刻機とか出してくれたら買うかどうかは別としてかなり欲しいと思う。無理やりノートの話題に持っていくならPC-8801のノートPCなら値段によって買ってしまうかもしれん。というか現在の技術で88作ったらPDAくらいの大きさで電池駆動させられるんじゃないかと。でもZ80互換CPUの携帯マシンってどっかで聞いた覚えが・・・ゲームボーイか!

ゲームボーイとかPC88とか

ゲームボーイにはハードウェアでスプライトをサポートする機能があったような。VA以前の88にはそういった機能がなかったからソフトウェアレベルでサポートするゲームばかりだったけど、VA以降確かハードウェアスプライトがついたのにそれを活かすゲームが出る前にVA(というか88シリーズ)自体が時代の波に取り残されてしまうという結果に。残念。

それとは別にVAにはPC-Engineという某ゲーム機とごっちゃになりそうなOSが付いていた気がしないでもない。(少し調べてみたらゲーム機のほうとの区別は「-(ハイフン)」の有無でつくらしい。)

物理エンジン

http://www.radiumsoftware.com/0301.html#030112

オープンソースの物理エンジン「Open Dynamics Engine」

http://www.q12.org/ode/

とそれを利用した「The Buggy DEMO」

http://www.sjbrown.co.uk/buggy.html

が紹介されている。

最終更新時刻: 2008年11月12日

サーバメモ

「サーバ」に対する誤った認識

http://tmaeda.s45.xrea.com/20041101.html

参考文献を後で確認しよっと。

最終更新時刻: 2008年09月02日

[C/C++][programming] メモリ不足のときの例外処理

Cではメモリを確保するときにいちいち確保できたか/失敗したかをチェックしてその場でエラーだしたり、あるいはメモリ確保用の関数つくってその中でごにょごにょしたりするんだろうけど、うまくやらないと関数呼び出しが深くなってきたときに破綻する。

C++の例外を使えばもっとスマートにメモリ不足のときの処理ができるのでは?というわけで調べてみた。

まずメモリの例外というとMFCではCMemoryExceptionが飛んでくる。newのときも同じ。MFCを使わないとVC++6.0ではnewしたときはNULLが返ってくる。これは古い仕様で、最近のC++ではstd::bad_allocを返すことになっているらしい。

これではちょっとかっこ悪いのでVC++6.0でもnewをオーバーロードしてbad_allocを返すようにすればいい。Microsoftでもそんな記事書いてるし。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdndeepc/htm/deep071599.asp

で、このbad_allocはhttp://www.kaimei.org/note/book_out/eff_cpp1.htmlによると僕の持ってるEffectiveC++にも書いてあったみたい。

この他newが失敗したときの処理方法として_set_new_handler()というのも使えるらしい。

最終更新時刻: 2008年08月21日

残業時の夕食

夕食といってもコンビニのおにぎりとか。

今日ふと思ったんだけど温かいものを食べると眠くなる。冷たいものを食べると一時的に目がさめる。ような気がした。

どっちにしても食べると眠くなることに変わりは無いな・・・。

最終更新時刻: 2008年07月30日