旧鯖時代の雑記です。新しいの。リンク切れに注意。
2007:
12345678910
2006:
123456789101112
2005:
123456789101112
2004:
456789101112
いまさらですが。
毎週「LOVEが合言葉のミステリー文庫っておかしくないか?」とか思ってた記憶があるのですが全然気づかなかった、迂闊。ていうかこの本の内容ミステリーじゃないし。
内容は、、、設定が深すぎ(?)てイマイチ捕らえられない。あまり書くとネタバレになりげなので書きませんが、結局『黒き本』と『白き本』って何?
とか書いた後、作者のWebサイトに行って見ると8月増刊のファンタジアバトルロワイヤル(発売日7/15っていつの話だ)に掲載されるとあるので続編がでるのですかねぇ。
コメントはありません。
XML化はスマートな実装方法が見つからないので今回のPhaseでは見送り。次回リリースくらいでファイナルβにしたいところ。ダウンロード(#18)
みら〜じゅはシンプルな仮想ディスクトップユーティリティです。.NET Framework 1.1 SP1 がインストールされた環境で動作します。動作確認は Windows XP のみでととっておりそのほかの環境では知りません。
マルチユーザーに対応しました。ただし標準ではシングルユーザーモードで起動します。
設定ダイアログ::基本で設定が適用されてなかった問題を修正しました。
設定ダイアログ::ページマネージャのリストビューのカラムにアイコン追加しました。ただ上下が途切れてイマイチ美しくないので次のリリースではなくなってるかもしれません。
設定ダイアログ::ページマネージャのリストビューのカラムクリックで昇順/降順ソートを実装しました。
設定ダイアログ::ページマネージャのリストビューのカラムがCommon Control 6.0でソートマークを表示するようにしてみました。ただし例によって Visual Style は正式サポートしていません。
設定ダイアログのコントロールのFlatStyleをSystemに変更して描画の高速化を図ってます。
ホットキーコントロールでEscキーを押すと設定ダイアログがキャンセルと認識していた問題を修正。
コメントはありません。
crawl33.googlebot.com から来るものは crawler1x.googlebot.com の「Googlebot/2.1 (+http://www.google.com/bot.html)」ではなく「Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)」とMozilla/5.0を名乗るみたいです。
これの何が問題かというと、うちのカウンタはロボット対策で UA に Mozilla が見つからないとカウントしないという実装を行っているので今度の bot はカウントされてしまうのです。まぁ google bot なんてめったにこない(といいつつ crawler1x が今日 index に2回来てますが)ので放置してもいいかな。。。
コメントはありません。
XPSP2 ではセキュリティ強化で既存アプリケーションで問題が発生すると各メディアは報道しているわけですが、「問題が発生する」という部分が強調されすぎている気がします。
最近「何でMSはXP SP2で問題が発生するのがわかってるのに対策をとらないんだ」という意見を見かけました。
(多くの場合)できるわけありません。XP SP2で問題が発生する要因の多くはファイアウォールやDEP(CPUのNX機能を利用して不正なメモリからのコード実行を防ぐ機能のこと)等のセキュリティ強化に集約されます。もし「このアプリケーションはファイアウォールで問題が発生することがわかったから自動的に穴をあけよう。」こんな実装をされたのではファイアウォールの意味がありません。
つまるところ多くの報道に「何で問題が発生するのか」という情報が抜けているためこのような誤解が生まれるわけで、この辺もう少し考えてほしいものです。
コメントはありません。
なにやら2chのム版に晒され(?)たようです。「DIBにアクセスする」の項は既存のDIBアクセスする際のために書いており新規に作成した場合は必要ないのですが、確かに語弊ありますね。気が向いたら直しときます。←絶対ここ読んでない
コメントはありません。
投稿し忘れ。
HDM_SETITEMA で設定する際には HDF_IMAGE を設定しないとダメですか。というかダメならちゃんと false 返してください。true 返されるとコードが悪いのか .NET が悪いのか判断しかねます。
HDITEM hi = new HDITEM();
// カラムのウィンドウハンドル取得
IntPtr columnHandle = SendMessage(
listView.Handle, LVM_GETHEADER, IntPtr.Zero, IntPtr.Zero );
// ImageList 設定
SendMessage( columnHandle, HDM_SETIMAGELIST, IntPtr.Zero, imageList.Handle );
// HDITEM 取得
SendMessage( columnHandle, HDM_GETITEMA, headerIndex, ref hi );
hi.mask = HDI_IMAGE|HDI_FORMAT;
hi.fmt |= HDF_IMAGE; // 取得しておいたフォーマットに HDF_IMAGE 追加
hi.iImage = imageIndex; // ImageListのID
// 設定
SendMessage( columnHandle, HDM_SETITEMA, headerIndex, ref hi );
ま、.NET 2.0 で標準実装されるのでいまさら実装する意味もないのですけどね。
コメントはありません。
すっかり忘れてました。
クリップボードにHTMLデータを貼り付ける,オーナードローメニュー基本クラス,アイコンメニューアイテムクラス,リストビューのカラムにイメージを表示を追加。
レイヤードウィンドウを作るに語弊があったので修正。
コメントはありません。
問題が出なければファイナルβ。ダウンロード(#19)
みら〜じゅはシンプルな仮想ディスクトップユーティリティです。.NET Framework 1.1 SP1 がインストールされた環境で動作します。動作確認は Windows XP のみでととっておりそのほかの環境では知りません。
ダブルプレスの設定ダイアログ(仮)を廃止、コンボボックスに変更しました。
コメントはありません。
みら〜じゅ Phase5 で実装するウィンドウマネージャは Avalon 対応を考えプラグインとして実装することにしています。と、いうことで Longhorn SDK で System.Windows 名前空間を調べてみました。
「Avalon のウィンドウは hwnd から作成できる〜」ような旨の記述があったのでプラグイン側は System.Windows.Forms.Form 辺りを返せばよいかと言うと、System.Windows.Forms.Form と System.Windows.Window の間は継承関係がないのでキャストして System.Windows.Forms.Form をとれません。そこでなにやら細工が必要になるわけです。
すぐに考えられるのは手っ取り早く Hwnd を取って Win32 API でごり押しする方法ですか。System.Windows.Window には Handle プロパティはありませんが System.Windows.HwndSource を噛ますことで取れる模様。
// System.Windows.Forms.Form
System.Windows.Forms.Form form = ..
IntPtr hwnd = form.Handle;
// System.Windows.Window
System.Windows.Window window = ...
System.Windows.HwndSource hwndSource
= new System.Windows.HwndSource( window );
IntPtr hwnd = hwndSource.Handle;
ただ問題は Avalon のウィンドウに対し Win32 API が使えるか謎と言う点。使えないとなると WinForms と Avalon 部分を分離して処理を記述しないといけなくなります。
// 扱う Window の種類を表す enum
enum WindowType {
WinForms,
Avalon
}
// 送り側
class WindowManagerData {
// このプラグインが扱う Window の種類
public WindowType Type { get; }
// System.Windows.Forms.Form / System.Windows.Window
// のどちらかを返すこと
public object Window { get; }
}
// プラグイン処理クラス(名前が適切でないが気にしない)
// それぞれ別のdllとして実装すること
abstract class Base {
public abstract void Hoge();
}
class WinForms : Base { ... }
class Avalon : Base { ... }
// 受け取り側
Base base = (wmData.Type == WindowType.WinForms)
? new WinForms() : new Avalon();
うーん煩雑、ていうかバグの温床になりそう。これはプラグイン側に処理を任せるべきかな。ものがないのでイマイチ動きにくい。が2006まで先延ばしにするわけにもいきませんし。
コメントはありません。
そんなわけでみら〜じゅは仮想デスクトップユーティリティです。あそこはずっとコピペしてたので間違いに気づきませんでした。Rev.1のreadme.txtはちゃんとデスクになってたのでPhase4になってからかな?
コメントはありません。
沢渡 真雪さんがKB867460の和訳を公開されてます。(リンクまずかったら潰します)NotifyIcon.ContextMenuでオーナードローできない件は仕様として片付けられるのですかねぇ。2.0ではContextMenuじゃなくてContextMenuStripに変更されますし。
コメントはありません。
萌えゲームが迎えた「曲がり角」(ITmedia)ってこれ後半が「例のおじさま」の反省文になってないですか?最も何も変わってないですけど。
「双恋−フタコイ−」を紹介する。同ゲームでは、キャラクターは「現実に隣やクラスにいそうな子」をイメージして作られているという。
「お兄ちゃん好きな12人の妹」とか「母をなくしおじさまを慕う5人姉妹」よりは「双子が生まれやすい世界で双子の女の子と2人いっぺんにおつきあい」のほうが現実味がある、、、か?どんぐりの背比べ。ここではヒロインの人格そのものを言いたいのかもしれませんが。
高野氏は「世間のドギモを抜くようなものをやりたい」という誘惑にかられることはあるとしつつ、「しかし、ユーザーをいい気持ちにさせることが最優先」と話す。奇抜さを追いかけるあまり、本末転倒になるようなことは避けるべきだと主張した。
確かに「12人の妹」がある種当たり前になった今本末転倒になるほどの奇抜性はないでしょう。ヒロインを2人用意することで従来1人だったのが2人相手しなくてはならないことになりゲーム性は上がるかもしれません。しかしそれはゲームそのものは何も変わっていません。(最もモノを見てないのでそれ以外にも何かあるかもしれませんが)結局「12人の妹」が「双子」に代わっただけでどこかインパクトを与える特徴を用意するパターンからは脱却できていないのです。
で、普通っぽいヒロインを見に公式サイトに行くと。。。いませんよ!こんな人。
コメントはありません。
商品を入荷できなかったのか駅ビルが軒並み{休業|午後開店}状態。食材が絡んでくる弁当などはわからなくもないですが、本屋は解せません。
コメントはありません。
最近ライトノベルは殆どチェックしていないのですが、いくらなんでも買っていたシリーズが半年以上前に終了してるのに気づいてないのは我ながらヒドイと思った。今月まぶらほ新刊出るし来月は。。。金銭的に厳しそう。
コメントはありません。
シェリフスターズMS05(神坂一)、お・り・が・み(林トモアキ)、ニニンがシノブ伝1〜3(古賀亮一)
いくらなんでも浪費しすぎな気がする。。。
コメントはありません。
リフレクション使ってDDBなImageListと差し替えようとImageListクラスのなかを探っていたわけですがこのクラス実装が稚拙すぎやしませんか?Disposeを呼び出してもGCが起動するまでImageListを破棄してくれません。
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
class Program {
// ImageList の存在を判定する適当な関数が見つからなかったので代わりに
[DllImport("comctl32.dll")]
static extern bool ImageList_GetIconSize( IntPtr h, ref int x, ref int y );
// ついでに数も調べましょうか
[DllImport("comctl32.dll")]
static extern int ImageList_GetImageCount( IntPtr h );
public static void Main() {
ImageList imageList = new ImageList();
imageList.Images.Add( new Bitmap(16, 16) );
// 作成した ImageList のハンドル
IntPtr himl = imageList.Handle;
int x, y;
x = y = 0;
Console.WriteLine( "::Create" );
Console.WriteLine( ImageList_GetIconSize(himl, ref x, ref y) );
Console.WriteLine( string.Format( "x={0} y={1}", x, y) );
Console.WriteLine( string.Format( "Count={0}",
ImageList_GetImageCount(himl) ) );
imageList.Dispose();
imageList = null;
// 意味ないと思うけど Sleep をはさんでおく
System.Threading.Thread.Sleep( 1000 );
x = y = 0;
Console.WriteLine( "::Dipsoe" );
Console.WriteLine( ImageList_GetIconSize(himl, ref x, ref y) );
Console.WriteLine( string.Format( "x={0} y={1}", x, y) );
Console.WriteLine( string.Format( "Count={0}",
ImageList_GetImageCount(himl) ) );
GC.Collect();
// GCが起動する前に ImageList_GetIconSize が呼ばれては困るので Sleep
System.Threading.Thread.Sleep( 1000 );
x = y = 0;
Console.WriteLine( "::Garbage Collect" );
Console.WriteLine( ImageList_GetIconSize(himl, ref x, ref y) );
Console.WriteLine( string.Format( "x={0} y={1}", x, y) );
Console.WriteLine( string.Format( "Count={0}",
ImageList_GetImageCount(himl) ) );
}
}
/* 結果
::Create
True
x=16 y=16
Count=1
::Dipsoe
True ← Dispose したのに ImageList は破棄されてない
x=16 y=16
Count=1 ← 格納している Image も破棄されていない
::Garbage Collect
False
x=0 y=0
Count=0
*/
これ何のために IDisposable.Dispose を実装してるんでしょう。MainFormはともかくSubForm等でImageList使ってる場合は必要に応じてGC.Collect()呼び出したほうがよさげですね。
コメントはありません。
ということで ImageList を強引に削除してみませう。
[DllImport( "comctl32.dll" )]
static extern bool ImageList_Destroy( IntPtr h );
static void ImageList_Destroy( ImageList himl ) {
Type typeImageList = himl.GetType();
Type typeNative = typeImageList.Assembly.GetType(
"System.Windows.Forms.ImageList+NativeImageList" );
object native = typeImageList.InvokeMember(
"nativeImageList",
BindingFlags.NonPublic | BindingFlags.Instance
| BindingFlags.GetField,
null, himl, null );
IntPtr handle = (IntPtr)typeNative.InvokeMember( "himl",
BindingFlags.NonPublic | BindingFlags.Instance
| BindingFlags.GetField,
null, native, null );
typeNative.InvokeMember( "himl",
BindingFlags.NonPublic | BindingFlags.Instance
| BindingFlags.SetField,
null, native, new object[] { IntPtr.Zero } );
ImageList_Destroy( handle );
}
非常に怪しいことをやっているので使用する場合コードの内容を理解した上で。
コメントはありません。
みら〜じゅ#20を公開しました。今回からダウンロードページを設置してます。Spiceの使いまわしですが。
コメントはありません。
そんな題名とは関係なくDOSEIさんのとこから GetStockObject() の DEFAULT_GUI_FONTの話。
これは「変更される可能性がある(=システムの設定による)」って意味だと思ってたんだが、日本語版のMSDNには「変更できる」ってあるから、プログラムから変更しても一貫性を保てるように、すべて統一して使えってことかな。
DEFAULT_GUI_FONTより引用
DEFAULT_GUI_FONT の DEFAULT はそのOS初期設定って意味かと思います。ですから MSDN の Remarks に書いてあることは「OSが違うと初期設定フォントも変わるかもしれないからコード上にフォント名の直接指定はやめて GetStockObject() を使ってね。」的な意味を持つのかと。
標準のコントロールのフォントは、画面のプロパティで指定したフォントになるんだから、 DEFAULT_GUI_FONT もこれが反映される仕様が妥当だと思うんだけどな…。
DEFAULT_GUI_FONTより引用
私の環境ではコントロールのフォント()は画面のプロパティ設定によっては変更されませんけど。。。DEFAULT_GUI_FONT はコントロールとメニューの標準フォントとなっていますが、画面設定ではコントロールとメニューに異なるフォントを割り当てることが可能なので所望の仕様にする場合 DEFAULT_MENU_FONT を用意しないといけなくなり現状では対応できません。またシステムカラーブラシは GetStockObject() に含まれないのにフォントだけ StockObject ってのは統一感がない気がします。
つまるところ GetStockObject() が提供するのはOS初期設定のオブジェクトで、ユーザーの設定を尊重したいのなら 対応する関数(フォント::SystemParametersInfo(),システムカラーブラシ::GetSysColorBrush()等)を呼び出してってことなのでしょう。
何とは言いませんが。そろそろ何とかしないと他に響いてくる。。。
コメントはありません。
Spice のページを移転したので元のページは 301 を返し Location で移転先に飛ばすようにしてみました。
で、ログを見る限りアンテナのボットは移転先に飛んでくるのですがアンテナを張っている方のページは全く更新されていません。これは Location 使わずに一度更新された旨をアンテナに通知すべきなのでしょうか。
コメントはありません。
Location を潰して様子見することに。
コメントはありません。
シェリフスターズMS05: MSってことでシリアル路線なわけですが、展開が急すぎる気もしなくもないです。
お・り・が・み: 悪くはないです。しかし前シリーズに比べると見劣りがするのも確か。ていうか前シリーズは打ち切り?
ニニンがシノブ伝: アニメ化されて一部で人気ですが何が良いのか分からない。
で、今日買ってきたもの、トリコロ1‾2(海藍)。
表紙の人の目が大きすぎな気がしますが白黒だと気にならない、なんでだろ。内容は好み。
コメントはありません。
GDI+ の脆弱性(MS04-028)が修正されたわけですが、ひとつ疑問が。
この GDI+、WindowsXP にはインストールされていますがそれ以前にはインストールされていません。これを使用したアプリを配布する場合 GDI+ の実態である gdiplus.dll を再配布することになるのですが、これはシステムディレクトリではなく自分のアプリが管理するディレクトリに置かなければいけません。
で、GDI+ 使ってるサードパーティ製品はどうするのだろ、と調べてみたところやはり手動で差し替える必要があるみたいですね。まぁMSもサードパーティ製品までは面倒見てられないでしょうけど、この辺り少し煩雑な気がしなくもないです。
コメントはありません。
ということは明日は久々に2時間放送ですね。
コメントはありません。
効果があるのか不明なので大多数の利便を考え Location 復帰。
コメントはありません。
これって新規ウィンドウを別プロセスで開けないのかなー。VS 使ってる時にサブブラウザとして使おうとしたのに、VSよりメモリ食われるんじゃ本末転倒。。。
コメントはありません。
だからどうしたということもないのですが。ていうか何で上位にいるのかも不明なわけで。
コメントはありません。
リファラのページを見ていただければよく分からない検索ワードが並んでいるのが分かりますが、昨日から検索/リンクから飛んできてリファラを見て帰っていくというよく分からない行動をされている方がいるのです。とりあえずリストにしてみました。(件の人物と思われるリファは strong でマークアップ、複数人いる場合もマークアップしています。)
いったい何がしたいのでしょう?とりあえずカウンタが無駄に回ってるのでやめていただきたいです。
コメントはありません。
とりあえず2日間でリファラが消えるのはまずいと逆アクセスランキングを設置してみました。吐き出すHTMLがあれだったりしますが後日修正します。
折角作ったのでもう少し体裁を整えて現行のものから差し替える予定です。
コメントはありません。
まぶらほ〜もっとメイドの巻〜(築地俊彦)まだ読み込んでないので感想は気が向いたら。
コメントはありません。
任天堂、新型携帯ゲーム機「ニンテンドーDS」12月2日に15,000円で発売ですか。GBA(発売時の価格)+5000程度の値段設定。同時発売ソフトが未発表なのでとりあえずは様子見。まぁそれ以前に金銭的な問題から買えやしませんが。
対する PSP は 30000 以上とか言われてますが、この価格差で勝てるのでしょうか?
コメントはありません。
こなくなりました。なんだったのでしょう。
コメントはありません。
みら〜じゅ#21(b1)を公開しました。ウィンドウマネージャの最低限の実装が終わったので人柱版としてリリース。そういえば説明もなしにウィンドウマネージャとか言ってますけど、Rev.1とか使っていた人はいるのでしょうか。。。
コメントはありません。
色々と問題はありますが、Application.EnableVisualStyles を使用すると manifest なしで VisualStyle を使用できます。しかし、リフレクション経由で読み込んだアセンブリには VisualStyle が適用されないっぽいです。.NET Framework 2.0b1 で確認。
コメントはありません。
かなり前から言っていた模様替えをしてみました。(色を変えてない場合模様替えというのでしょうか?)結局構造はこんな感じに。
「最新1週間分の雑記」がh1でマークアップされているのが少し気持ち悪い。かといって他をずらすとそれはそれで修正が広範囲にわたるのでちょっと。「お品書き」は微妙だと思うのであきたら戻すかもしれません。
他の外に見える変更点としては、referrer.phpのソートを逆にしたのと、link要素によるサイトナビゲージョンを用意くらい。
コメントはありません。
「最新1週間分の雑記」は h2 でマークアップして年月日を h3 でのマークアップに変更。個人的に desplay:none はあまり好きではないのでこの辺も何とかしたいところ。
コメントはありません。
Opera 7.23で意図した表示にならない部分がありました。最近のはどうなんだろ。新しいの落としてきて確認しないと。
コメントはありません。
みら〜じゅ#22(b2)を公開しました。#21のバグフィックスがメイン。
コメントはありません。
#22はわりと致命的なバグがあったので、修正したみら〜じゅ#23を公開しました。
コメントはありません。
http://www.itmedia.co.jp/news/articles/0409/27/news007.html より
てことは4大ブラウザ時代突入?独自エンジンの場合付加価値部分はどうでもいいからレンダリング部分は(現行の)IE以上の出来にしてほしいところ。下方互換を考慮するのもいい加減面倒なので。
コメントはありません。
任天堂に“ニッキュッパ”を封じられたPSPって3万以前に2万を越えた時点で携帯ゲーム機としては高いと個人的には思うのですがおかしいのでしょうか?まぁ高いと感じるのは(ゲーム機として)私がPSPに殆ど期待していないってこともあるかもしれませんが。
ところでPSPをゲーム機としてではなくマルチメディアプレイヤーとしてみている人ってどれくらいいるのでしょうか?殆どいないと思うのですが。UMDがポストMDだとかいうのなら別ですけど、そうでもない(よね?最近この辺調べてないので自信ない)1社独自フォーマットなメディアではマルチメディアプレイヤーとしては流行らないと思う。
コメントはありません。
HSP 3.0の情報が上がっていますね。11月βリリースですか。
HSP3.0では、すべての命令・変数型の処理がブロック化されているため、内蔵命令と外部プラグインという区別がありません。内蔵の命令が取得可能な情報や機能は、すべてプラグインでも利用することができます。
プラグイン機能の刷新より引用
プラグインからgoto/gosubが使用できるってことですかねぇ?しかし 0x202 はイマイチ使いづらいので、もう少しスマートな規約がほしいです。
また、リンカを使用して自由にプラグイン機能を内蔵したランタイムを作成することも可能です。
プラグイン機能の刷新より引用
これをどうやって実装するのかが気になります。static link ライブラリを使用して静的リンクさせるのかな?だとするとライブラリのフォーマットが VC と互換性のない BCC とかはどうなるのでしょう?まぁ MC++ はサポートされないでしょうが。
コメントはありません。
画像のないインターネットを想像できるだろうか。Windows、つまりはInternet Explorer(IE)がJPEG(Web上で最もよく使われているフォーマットの一つ)の画像をレンダリングする方法に新しい欠陥が見つかっており、ユーザーは画像を表示すべきかどうかよくよく考えなければならない。この欠陥は、FirefoxなどのIEに代わるインターネットブラウザの利用を、少なくとも検討くらいはしてみるべきだと思わせるものがある。
今すぐFirefoxに乗り換えるべき理由(http://www.itmedia.co.jp/enterprise/articles/0409/30/news049.html) より引用
この脆弱性、IE リストに入ってますけど、EnumerateLoadedModules() かけてみても gdiplus.dll をロードしてないんですよね。なんでだろ。ていうかこれは IE じゃなくて OS のコンポーネント自体の脆弱性なんだからこれを理由にブラウザを乗り換えろというのはどうかと思う。場合によっては FireFox にも飛び火します。
コメントはありません。
Copyright(C)方位記号
こんにちは。毎度私のアホな日記に付き合ってもらってすみません。ない頭絞って考えたところ、まったくの私の勘違いでした! たしかに、画面のプロパティに従って変わるコントロールのフォントなんてないですよね…。なんか、GUIという名前とSDKの説明のわけわかんなさと、謎の幻想に縛られたようです。お騒がせしました。日記の方も修正しました。#トラックバックですか。あるといいですね!(単にトラバがつくのがうれしいだけかもw
投稿者: DOSEI (2004/09/12[Sun] 20:56)