netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2007-02-03 [長年日記] ▲
_ サイト移転から一年経過 ▲
ということで,久々にアクセス解析の結果を見てみました.
過去6ヶ月でこのサイトへアクセスしてきた人の検索キーワード上位3位は,バラモス 826回,アスペクト指向 717回,レーサーミニ四駆 650回で,バラモスが1位でした.何を探すためにバラモス単独で検索するのかは少し気になります.
アクセス数のほうは,1日平均1000visitsぐらいと,それなりのペースで安定してます.
ヒット数は,1ヶ月15万ぐらいで推移してたんですが,baiduのクローラが1月になって急に大暴れしていました.11〜12月は月に5千アクセス程度だったのが,1月になって約10倍の5万アクセス,2月は最初の2日だけで6千(約10万ペース)と,急増していました.baiduのQ&Aにある「自動的にサーバーの負荷能力によって、アクセスの密度を調整しています」という表記が,「サーバが余裕ありそうならがんがん負荷を上げていきます」という意味なのかと疑いつつ,こちらのサイトの .htaccess 記述を適用しました.
2007-02-04 [長年日記] ▲
_ [hyCalendar] hyCalendar の要望リストを更新しました ▲
hyCalendarの変更要求リストを,アクティブな要望,保留したもの,もう済んだものを別表に分けてみました.
アクティブな要望の「リリース予定」なものは,既に実装が終わってるものです.先日メールでいただいた「違う月の日祝日の色」も入ってます.
あとはタスクトレイ関係にかかる時間にもよりますが,2月中にはリリースすると思います.
2007-02-05 [長年日記] ▲
_ [ツール] Graphviz の巨大な出力を TeX に貼り込むとき ▲
どうも図が途中で途切れてしまうことがあったのですが,dvipdfmx を使ってる場合,Graphviz の出力オプションを -Tps → -Tps2 (PDFに変換することを仮定したPS)としてやったら直りました.このオプションでの出力ファイルの違いは,追加でページサイズ情報を埋めるかどうかだけのようです.これで常にうまくいくのかどうかは分かりません.
横長の図のときは,その結果をrotateboxを使って回転させてやります.
\begin{figure}[p] \begin{center} \rotatebox{90}{\includegraphics[scale=0.08]{foo.ps}} \caption{Caption} \label{fig:} \end{center} \end{figure}
2007-02-09 [長年日記] ▲
_ [Delphi] 最小化してタスクトレイに隠したものをきれいに復帰させる ▲
最小化(Application.OnMinimize
)時にウィンドウに ShowWindow(Application.Handle, SW_HIDE)
メッセージを送ってタスクバーから隠したものがうまく復帰できないなーと悩んでいたんですが,SetWindowPos
の NOMOVE
と NOSIZE
フラグを使って,サイズ変更せずに表示状態だけをいじることでタスクバーに復帰させてから,最小化を解除してやれば良いようです.
// ウィンドウをサイズ変更せず,タスクバーに復帰させる setWindowPos(Application.Handle, HWND_TOP, 0, 0, 0, 0, SWP_SHOWWINDOW or SWP_NOSIZE or SWP_NOMOVE); // ウィンドウの最小化を解除する Application.Restore;
こうすると,最小化から元に戻るときのアニメーション付きでちゃんと復帰してくれます.
久々に Win32 API のコードを読みまくったので疲れました.だんだん VCL を使ってる利点が少なくなってきている気がします.
2007-02-10 [長年日記] ▲
_ [Delphi] ヘルプよりソースコード ▲
BDS 2006 付属のヘルプには,TApplication クラスの Handle プロパティは「アプリケーションのメインフォーム(ウィンドウ)のウィンドウハンドルへのアクセスを提供します。」と書いてあります.しかし,ウィンドウをアクティブにするSetForegroundWindow(Application.Handle)
を呼び出してみたら,なぜか一瞬フォーカスが外れてしまうという妙な問題に遭遇しました.
で,よく調べてみたら,TApplication にはヘルプには載ってない MainFormHandle プロパティというのがくっついていて(コード補完では出てくる),こちらがウィンドウハンドルを保持していました.元の Handle プロパティのほうは別ハンドルを指しているようです.
Delphi の場合,昔から VCL のソースが付いているからかもしれませんが,未だにヘルプは当てにならないようです.結局,ソースを読んで VCL の振る舞いを理解することで,(実装に近いという意味で)低水準のノウハウが蓄積されている気がします.
ネットで検索していても,Win32 APIの使い方に関する情報はかなり見つかるものの,それをコンポーネント化したものは少ないようです.API 1つか2つで終わる程度のことが多いというのもあるかもしれません.
2007-02-17 [長年日記] ▲
_ [近況] pukiwiki の編集と KDDI au の textarea サイズ制限 ▲
このサイトで使ってる pukiwiki のある記事の後半がカットされていたので,アクセスログを見てみたら,ezweb.ne.jp からの POST を発見しました.以下は,URL の一部とホスト名をカットしてます.
.ezweb.ne.jp - - [17/Feb/2007:12:47:17 +0900] "GET /aosdwiki/index.php?cmd=edit&page=%B2%A3%... HTTP/1.1" 200 5648 "http://ezsch.ezweb.ne.jp/search/?sr=0101&query=..." "KDDI-SN36 UP.Browser/6.2.0.10.4 (GUI) MMP/2.0" .ezweb.ne.jp - - [17/Feb/2007:12:47:22 +0900] "POST /aosdwiki/index.php HTTP/1.1" 302 5 "http://netail.net/aosdwiki/index.php?cmd=edit&page=%B2%A3%..." "KDDI-SN36 UP.Browser/6.2.0.10.4 (GUI) MMP/2.0" .ezweb.ne.jp - - [17/Feb/2007:12:47:25 +0900] "POST /aosdwiki/index.php HTTP/1.1" 200 5449 "http://netail.net/aosdwiki/index.php?cmd=edit&page=%B2%A3%..." "KDDI-SN36 UP.Browser/6.2.0.10.4 (GUI) MMP/2.0"
POST のサイズ制限でもあるのかと思って調べていたら,ezweb からの書き込みで wiki ページの一部削除が起こるという問題はやはり他のところでも起こっていたようです.
携帯用ブラウザでページがどう見えるかのテストを行うOpenWave SDKを使ってみたら,textarea の中身が 1048 バイト(SJIS としてカウントしたとき)でカットされてしまうことが確認できました.POST の制限ではなく,HTML を携帯に表示する途中のどこかでの制限のようです.
編集フォームを含めて 9KB 超えている場合は,pukiwiki 側の回避策によって,Too large ... とかメッセージが出て編集できませんが,ページサイズがフォームを含めて 6KB 程度に収まっていて,かつ textarea の中身が 1048 バイトを超えてるページについては,この回避策が働かず,現時点では危険のようです.たぶん,フォームの中身が1〜3KB程度の文章が該当します.
ただ,この 1048 という数値は,KDDI のページの form 変換などの記述には載っていなくて,携帯上で HTML を表示するまでのどの段階でかかっているのか分かりません.また,数値自体もいつ変わるか分からないので,pukiwiki 側で回避できるのかどうかは謎です.
この問題については,ログの編集ページに到着から投稿まで5秒というのを見ていて思ったんですが,
- 検索からいきなり編集用ページに到着する.
- ページ内には「Top / New / Edit / Menu / Recent」と フォーム,「プレビュー」「ページの更新」ボタンぐらいしかない.
- ページの中身を読みたいので「ページの更新」を押す.
- 短くカットされたフォームの中身を投稿してしまう.
…という動作をユーザがやってるのではないかという気がしました.編集ページから元のページへ戻るというリンクは存在しませんから.あくまで推測ですが.
追記: 検索で編集用ページに飛び込んでくるのを防ぐために,cmd=edit が与えられたリクエストのリファラが外部サイトだったら cmd=edit のないページに移動するようにしてみました.
RewriteCond %{HTTP_REFERER} !netail.net/aosdwiki/.* RewriteCond %{QUERY_STRING} cmd=edit&page=(.+) RewriteRule index\.php index.php?%1 [R,L,NE]
2007-02-18 [長年日記] ▲
_ [hyCalendar][お知らせ] hyCalendar 1.5.1 リリース ▲
お待たせしていましたが,1.5.1 をリリースしました.今回は UI 関連の細かい修正を色々と含めているので,変更内容のリストは 1.0 リリース以来の長さになっています.バージョンアップの際はデータのバックアップをお忘れなく.
今回の大きな変更は,タスクトレイのサポートです.最小化でタスクトレイに格納され,アイコンの左クリックで復帰できるようになりました.有効にするためのオプションは設定ダイアログの「システム設定」タブにあります.オプション設定については,いくつかのタブの名前が変わったり,項目の名前や配置順序が変わっています.
また,ポップアップウィンドウの振る舞いを変更しています.子ウィンドウを表示したら親ウィンドウ側を時間経過では閉じないようにするとか,ウィンドウの表示を安定させる方向で修正しています.巨大なポップアップウィンドウに画面を占有されて困った場合は,ESC キーで閉じてやってください.
一方で,hyCalendar では初の(?)機能削除として,日付内にあるURLを,日付枠の下側にラベルとして列挙するオプションがなくなりました.URLにはポップアップウィンドウか,コンテキストメニューからアクセスしてください.
2007-02-27 [長年日記] ▲
_ [work] 卒論の監督側のコスト ▲
精度はいい加減ですが,今回費やした時間の合計はだいたい2人日でした.今年度は紙でのやり取りができなかったので,紙の上でチェックした添削結果を PDF 上に反映したりといった手間が入ってます.そのかわり,添削結果を自分で読み直すので,思いつきでいい加減に直してしまう(でその後さらに修正する)というコストは減っているかもしれません.
これに発表練習のコストを1人日とすると,合計3人日ぐらいが実績値と言えそうです.
これが高いのか安いのかは過去の実績値がないので不明です.リポジトリマイニングなんかの研究を見てるときにも思うのですが,実績値をどれだけ蓄えたら意味のある情報を引き出せるか,というのは気になるところです.