神戸市のインフルエンザ予防接種はカルテルの疑い

夕方のテレビのニュースで知った :| 長い間予防接種は受けてないし、あまり疑問に思ってなかった…中に居ると意外に気づきにくい。わたしが鈍いのかも知れないけど :arrow:

インフルエンザの予防接種は自由診療なので、本来病院ごとに料金はマチマチじゃないとおかしい。実際、神戸市以外の地域では病院によって違うらしい…当然だ。

しかも、価格は1,500円~5,000円くらいでかなりバラツキがあるものの。神戸市の一律価格「1回目4,080円、2回目2,540円」より安い病院がほとんどのようだ。

若干うろおぼえだが、ニュースでは薬剤の値段は1,000円ちょいらしい。なので、神戸市以外の地域では、その1,000円に技術料としていくら上乗せするかで値段が決定される。つまり、技術料が儲けで病院が自由に設定できる…あたりまえだ。

しかし、神戸市では2,700円もの初診料相当分が一律で上乗せされているらしい。さっぱり、わからない :roll:

まず、火曜日に神戸市保健福祉局に問い合わせだな :|

場合によっては、神戸市医師会、さらには厚生労働省、公正取引委員会へ。

かなり古いニュースだが…医師会主導だと排除勧告がでてるので、どうやら神戸市主導か :?:

新型インフルエンザ対策セット(6点セット) 新型インフルエンザ対策セット(6点セット)


Amazonで詳しく見る
by G-Tools

トラックバック URL :

余剰次元の足跡が見えた………かも?

WIRED VISIONによると「多次元理論」を証明する電子・陽電子対の観測に成功?と言うことで、南極大陸の上空に気球式の粒子収集装置を飛ばして電子を捕獲して電荷やエネルギーを測定したら…『カルツァ=クライン』的な電子・陽電子対を発見したかも知れないとNature誌にAbstract: An excess of cosmic ray electrons at energies of 300-800[thinsp]GeV発表したとか。

ExtraDimension

ほぉ~これって、残念ながら今停止中の大型ハドロン衝突型加速器大型ハドロン衝突型加速器 (LHC)で見つかるかもとランドール博士がWarped Passagesで書いてたやつですね。

それが、気球で見つかるなんて :shock: この気球(Advanced Thin Ionization Calorimeter)がどんなにすごいものか知らないけど…個人的には少し懐疑的です。他のものの影響を受けただけじゃないかと…。

多次元に否定的なわけじゃないんですけどね ;)

ワープする宇宙―5次元時空の謎を解く ワープする宇宙―5次元時空の謎を解く
塩原 通緒

リサ・ランドール異次元は存在する (NHK未来への提言) パラレルワールド―11次元の宇宙から超空間へ 多世界宇宙の探検 ほかの宇宙を探し求めて 宇宙のランドスケープ 宇宙の謎にひも理論が答えを出す はじめての“超ひも理論”―宇宙・力・時間の謎を解く (講談社現代新書)
by G-Tools

トラックバック URL :

OLPC「Give 1 Get 1」…円高の悪くない使い道?

スラド経由で知ったのだがOLPC、今年は日本からも「Give 1 Get 1」と言うことで日本からも参加できるらしい ;)

OLPC

「Give 1 Get 1」は、399ドルでXOを2台購入し、1台を寄付するプログラム。

399ドルも払うならEeePCとか低価格のネットブック買うわってのが普通の選択肢なのかも知れないけど…。こう言うのも悪くない。

確かに性能うんぬんを考えると…とても買える代物じゃないんだけど、個人的に嫌いじゃないんです。このデザイン ;)

で、アメリカ以外の国…当然、日本もAmazon.co.uk: OLPC XO Laptopからの購入になるらしい :|

Amazon.co.ukから購入するのも、さして難しいことではないわけですが…アマゾンとは別に新規アカウントを作成しなくちゃならないし、正直なかなか面倒。アマゾンギフト券とかも使えないんですよね :?:

そんなに難しいこととは思えないので、ぜひ今からでも…
アマゾンからも参加できるようにしてくれないかなぁ?

トラックバック URL :

ALT+Tabチックなプログラムを書く…オナードローCListBox編

以下のエントリの一応続編です ;) とりあえず、このエントリでALT+Tabチックなプログラムのメモは終了です。

切替タスクの名前とアイコンが取得できたので、表示する必要があります。とりあえず、リストボックス(CListBox)で表示することにしましたが…標準のCListBoxでは、アイコンを併せて表示することができません :|

そこで、CodeProjectを検索してでてきたのが「Graphic and text ownerdraw listbox」です。サンプル画面を見る限り、今回の用途には十分そうです。使うのも簡単ですね。

リストボックス部品を貼って、COwnerDrawListBoxクラスとしてメンバー変数(例えばm_OwnerListBox)を作ってアイテムを設定したいところで以下のような感じで書くだけです :)

m_OwnerListBox.Add("アイテム1",
               ::AfxGetApp()->LoadIcon(ICON_ITEM1));
m_OwnerListBox.Add("アイテム2",
               ::AfxGetApp()->LoadIcon(ICON_ITEM2));

あとは、アイコンとテキストの位置関係の設定を以下のような感じで。

m_OwnerListBox.SetTextPosition(COwnerDrawListBox::ITEM_LEFT);
m_OwnerListBox.SetIconPosition(COwnerDrawListBox::ITEM_RIGHT);

上記の場合だとテキストが左側にアイコンが右側に表示されます。

そして、リストボックスが不要になった時点で以下のコードでメモリを解放すればOKです。

m_OwnerDrawListBox.Destroy();

ところが、COwnerDrawListBoxには2つほど問題がありました :|

  1. SetTextPositionとSetIconPositionで両方を同じ側にした場合の動作
  2. VS2005で動作させると実行時エラーを起こす

1の方は仕様かも知れませんが…アイコンを左側、テキストを右側にしたかったので設定するとテキストが右寄せになってしまいます。わたしは、右寄せは嫌だったので両方左側に指定してみました。すると、テキストとアイコンが左側で重なってしまいました :roll: たぶん、これも仕様なのでしょう。

でも、それ以上の細かな位置制御はなかったので結局…COwnerDrawListBox::DrawItemメソッド中の右寄せをしている以下の部分を変更しました。

// pDC->DrawText(pListDataItem->strItemData,
//             strlen(pListDataItem->strItemData),
//             rectText,
//             DT_RIGHT | DT_SINGLELINE | DT_VCENTER);
 
pDC->DrawText(pListDataItem->strItemData,
            _tcslen(pListDataItem->strItemData),
            rectText,
            DT_SINGLELINE | DT_VCENTER);

ITEM_LEFT, ITEM_RIGHTで面倒な条件を組んでありますね :roll: 自分のやりたい位置制御がハッキリしているなら、思い切り書き直した方がよいかも知れません :arrow:

次に2の方ですが…VS6でデバッグしている時は問題なかった(表面化しなかっただけですが)のですが、透明化の際にVS2005でデバッグ実行するとエラーになり見つかった問題です。同じくCOwnerDrawListBox::DrawItemメソッド中でのCDCクラスの扱いが良くないようです。

CListBox::DrawItem (MFC)の例に合わせて以下のように変更しました。

//  CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
 
    CDC dc;
    dc.Attach(lpDrawItemStruct->hDC);
    CDC *pDC = &dc;
 
...
 
//  pDC->Detach();
    dc.Detach();

何だか最終的にはCOwnerDrawListBox::DrawItemメソッドを書き直しちゃったので、使う意味はなかったかも知れません。DrawItemメソッドがほとんど全てですし :mrgreen:

できあがったタスク切替のイメージは以下のような感じです ;)

ALTTAB

トラックバック URL :

週刊少年ジャンプ 51号

とりあえずNARUTOと書きたいところなんだけど…NARUTOは今週休載 :cry: 続きが気になるなぁ :roll:

あ、でも次号は11月22日土曜日発売だ :idea:

気を取り直して、アイシールド21の安直な世界編なんですけど…妙にツボにはまったセリフが。

おおおなんと
地球に厳しい…
エコは地球を甘やかすから
つけ上がるんだといわんばかり

あと、D.Gray-manは長期休載に入るみたいですね~H×Hとは原因は違うのかも知れませんが…数回、長期で休載してますよね :?: どうも、休載されるとテンポが崩されるので読み飛ばしフラグが立ちやすくなります。もう、すでに立ってたのでどうでも良いんですけど :arrow:

しかし、あまり好きじゃないんですけど…健闘してますよね~トリコ。テーマがテーマだけにどう引っ張るのかと思ってましたが。強引に引っ張ってます :) 以外にも掲載順がほとんど落ちてないんですよね :shock:

トリコ 2 (2) (ジャンプコミックス) トリコ 2 (2) (ジャンプコミックス)
島袋 光年

トリコ 1 (1) (ジャンプコミックス) サムライうさぎ 8 (8) (ジャンプコミックス) アイシールド21 32 (32) (ジャンプコミックス) PSYREN-サイレン 3 (3) (ジャンプコミックス) NARUTO 巻ノ44 (44) (ジャンプコミックス)
by G-Tools

トラックバック URL :

ALT+Tabチックなプログラムを書く…なぜかウィンドウ透明化編

『Slashcolon /: » ALT+Tabチックなプログラムを書く…切替タスク取得編』『Slashcolon /: » ALT+Tabチックなプログラムを書く…アイコン取得編』の一応続編です ;)

アイコンに引き続いて、どうでも良い見た目の実装なんですけど…表示するウィンドウというかダイアログの透明化です。実装したことがなかったので、なんとなくやってみたかっただけなんですけど。

透明化って、むちゃくちゃ簡単でWS_EX_LAYERED属性をウィンドウに付けて、SetLayeredWindowAttributesで透明度を設定すればハイ終わりって感じなんですね。

ところが…
VS6だけだとWS_EX_LAYEREDが定義されてないとか、SetLayeredWindowAttributesがリンクエラーになったりするんですね :shock:

要するにウィンドウの透明化って、Windows 2000からのものなんでPlatform SDKを入れてWINVERを…みたいなことをする必要がある。でも、VS6での開発は客先指定なのでSDKを入れるのはチョットってことでuser32.dllをダイナミックに呼び出すことに。

まぁ、DLLをダイナミックに呼び出す方法は珍しくもなんともないんだけど…ペタっと貼っておく。

    // 本来はSDKで定義されてる値
#define LWA_ALPHA 0x00000002
#define WS_EX_LAYERED 0x00080000
    // 透明化レベル 0~255 0で透明
#define ALPHA_LEVEL 200
 
   // 関数ポインタの型定義
typedef BOOL (WINAPI *LPFNSETLAYEREDWINDOWATTRIBUTES)(HWND, COLORREF, BYTE, DWORD);
 
    // 以下のコードをOnInitDialog辺りに
    LPFNSETLAYEREDWINDOWATTRIBUTES SetLayeredWindowAttributes;
 
    LONG exStyle = ::GetWindowLong(this->m_hWnd, GWL_EXSTYLE);
    ::SetWindowLong(this->m_hWnd, GWL_EXSTYLE, exStyle | WS_EX_LAYERED);
 
    HMODULE hModule = ::LoadLibrary("user32.dll");
 
    SetLayeredWindowAttributes =
        (LPFNSETLAYEREDWINDOWATTRIBUTES)::GetProcAddress(hModule,
            "SetLayeredWindowAttributes");
 
    SetLayeredWindowAttributes(this->m_hWnd, NULL, ALPHA_LEVEL, LWA_ALPHA);
    ::FreeLibrary(hModule);

これで、VS6標準で問題なくコンパイルできました ;) あ、モチロンVS2005とかVS2008なら、わざわざこんなことしなくても普通にコンパイルできるんですけど。

そう言えば、Channel 9では「Visual C++ 10: 10 is the new 6」というテーマでC++チームのプログラムマネージャーAmit Mohindra氏が語ってます。

30分以上の長丁場ですが…VC++ 10(VS2010)では、簡単にOffice 2007とかで採用されてるリボンインタフェース(評判の良いやつです :mrgreen: )が実装できることや、超簡単に自動保存機能が実装できること、さらにはC++0xの一部を取り入れてることなどを語っています。

C#に主役の座を譲りつつあるように見えるけど…まだまだMSはC++もがんばってるよぉ~って感じですね ;)

Programming: Principles and Practice Using C++ Programming: Principles and Practice Using C++
Bjarne Stroustrup


Amazonで詳しく見る
by G-Tools

トラックバック URL :

ALT+Tabチックなプログラムを書く…アイコン取得編

『Slashcolon /: » ALT+Tabチックなプログラムを書く…切替タスク取得編』の一応続編です。

まぁ、別にアイコンが表示されてなくても良かったんですが…ALT+Tabでも表示されてるし、表示してみるかと ;)

ウィンドウハンドルは前のエントリで取得できてるので、それから取得できるはず。で、調べてみるとSendMessageかGetClassLong辺りで取得できるっぽい。何で2種類あるんでしょうね :arrow:

とりあえず、SendMessageでアイコンを取得してみました。ありゃ、取れるアプリケーションと取れないアプリケーションがあるよ :shock:

仕方ないので、GetClassLongに変えてみました。う~ん、SendMessageより良い感じ。でも、やっぱり取得できないアプリケーションがある…結局よくわからないので両方の併せ技で取得するようにしましたとさ。

HICON hicon = HICON(::GetClassLong(hwnd, GCL_HICONSM));
if (hicon == NULL) {
    hicon = HICON(::SendMessage(hwnd, WM_GETICON, TRUE, NULL));
    if (hicon == NULL) {
        hicon = ::AfxGetApp()->LoadIcon(IDR_DEFAULTICON);
    }
}
    // ここで、hiconにアイコンが取得できてる

IDR_DEFAULTICONは、どうしてもアイコンが取得できなかった場合に使うアイコンリソースです。

う~ん、アイコン回りのややこしさも何とかならないものですかね :roll:

トラックバック URL :