月別アーカイブ: 2010年4月

diary

Event Structures
か。

GDK イベントの取得とリサイズ
の「イベント構造体」リンク先が消えていたので覚書、英語ページになっちゃったけど。

本当に Web はケタ外れな勢いで変化している、だから
「今の状態で最新及び未確定な未来以外の情報はいらない」
を凄く遠回しで形にしたツイッなんとかが勢力を伸ばしたのは今考えれば当然だったのかな。
古い考えのままなのに人気に便乗した人達のおかげでなるようになったわけだが。

【2ch】ニュー速クオリティ:Windows 8 コンセプトデスクトップ公開 究極のデスクトップを求めていく

唖然としてくれ、Ubuntu でページ内検索してもまったく引っかからない。
本屋さんのパソコン雑誌コーナーであれだけ勢力を伸ばしておいてさえもこの結果。
メインで linux を使っている人なんて実は全然おらんってことだ。
解っていたけど、画面スクロールしていくと悲しくなるばかり。

GoogleOS って名前が出ているけどココに書き込みしているような人が使う可能性は完全にゼロ。
古い古い Windows とチョッピリ操作性が違うだけで拒否反応をする人しか日本人にはいないんだよ。
Mac でさえ興味だけ、Mandriva なんて次回は日本語用ローカライズさえ怪しいかも…

 * 上下矢印キー(ボリューム調節等)でフォーカスが移らないように
 * 何も再生されていない状態の選択ディレクトリを glib.USER_DIRECTORY_VIDEOS に

をついさっき Y901x でやったけどコレだけで更新もアレだなぁ…
公開するかどうかも怪しい Y901w との整合性もあるし、コッチは Aero 全開でいきたいし。
でなければ新しいアプリなんて作る意味すらない、古い OS 用なら古いアプリを使えばいいだけだ。
作る側と使う側のギャップは埋まるどころか開くばかり、個人オンラインソフトが廃れたのも当然か。

どうでもいいが、在日(チョンじゃない)外国人の iPhone 普及率に最近気がついてビビった。
そういえばガラケーというよりケータイサイトって日本語しか無いんだよね、そりゃ当然なのか。
日本独自なケータイ文化が廃れるのも時間の問題か、今は何をやればいいか全然ワカンネ。

Python2.6 format

知らなかったけど Python 2.6 から format メソッドが使えるんだね。
3.0 系だけだと今まで思っていたよ、IronPython 2.6 も同様。

"{0}: {1}+{2}={3}".format("calc", 1, 2, 1+2)

"%s: %d+%d=%d" % ("calc", 1, 2, 1+2)

のように値に対する書式指定がいらない、くらいしかメリットは無いけど。

引数の順番が変更できたり同一の値を参照…なんてやる人少ないだろうし。
少なくとも C# からプログラミングに入った人なら判りやすいのではないかと。
今は「どっちでもいい」なので好きなほうで書けばいいわけだ。
ただ書き方ごときにあーだこーだなら Ru…(以下略

しかし春の陽気のせいかヤル気が出ない…
Y901w はもう現行 Cinema のまんまでいいじゃないかとか…
とはいえ今になってコードを見ると自身で寒いので全部書き直したいし…
なんんてやっていたら全然進まねぇや、そろそろ Windows 用を何か作らないと干されそう。

Default argument

Python という言語は関数のオーバーロードができない。
何って、つまり引数が違うだけで同じ関数名を利用する多重定義のことである。
慣れると関数やメソッド量を少しでも減らそうとよく利用するようになる。

だからといっていくつも別名の関数を用意するのは効率が悪い。
結果似たようなことができるデフォルト引数を利用するようになるわけだ。

ん、そういえば C++ や C# もデフォルト引数って使えたよな。
色々な言語を行ったり来たりしている私は同じように書いたほうがいいのでは?
それにデフォルト引数のほうがコードの記述量が減らせるメリットがある。
コンパイル後の機械語では似たような結果になるのだろうけど…

コードが短くできるのは魅力なので C++ や C# でもデフォルト引数をなるべくやろう。
オーバーロードはよく使うから覚えているけどデフォルト引数は C++ でどう書くの。
一つの cpp 内での書き方なら簡単に見つかる、Python とまったく同じか。

けど別ファイルにするには?
やってみた。

Tool.h

#pragma once
extern int messagebox(HWND hWnd, LPCWSTR msg, LONG button=MB_OK, LONG icon=MB_ICONEXCLAMATION);

Tool.cpp

#include "StdAfx.h"
#include "Tool.h"

#define MSG_TITLE L"確認 - Y901w"

int messagebox(HWND hWnd, LPCWSTR msg, LONG button, LONG icon)
{
	return MessageBox(hWnd, msg, MSG_TITLE, button | icon | MB_SYSTEMMODAL);
}

を用意してメインウインドウで使ってみる。

#include "Tool.h"
//略
messagebox(hWnd, L"ウニコード", MB_OKCANCEL);

extern 宣言で使う場合は extern 宣言のほうにだけデフォルトを書けばいいようだ。
本当は名前空間か class で static にするほうがイイと思うけどコレが一番簡単。
Python のように自作関数は小文字と掟を作っておけば間違えることも無いだろう。

しかし今になって昔のコードを見るとメンバ変数に m_ を付けていないとかで迷う。
自分が書いたコードなのに似たような変数名をローカル変数にしていたら迷ってしかたがない。
だから m_ プリフィクスみたいな書き方を推奨しているのね、そうなることが解っているから。
Python の self 強制って実はありがたいと思った、C++ も this 強制でいいくらいだ。

y901w-0.0.0

Linux 飽きた。
Python もなんか気が乗らない、というか開発系 Blog が軒並み止まっているような…
時期的に .NET Framework 4 前というのもあるし C# 屋達もイマイチだね。

ならばしばらく Windows で C/C++ といこう、なんて久しぶりな。
せっかくだからずっと放置の Cinema の更新でも。
いやいや Y901w と名前を変えて Y901x にデザイン等を合わせるほうがいいと思う。
というより x64 対応ビルドを少しやってみたい。

問題は Visual Studio を VirtualBox 上の x86 Vista に入れていることだ。
x64 で debug できないし VMR9 が動かない、まぁビルドはできるからなんとかなるさ。

とりあえずファイルドロップで再生できるだけのスケルトンを Cinema から抜き出し。
抜き出したわりにはファイルがイッパイある、SDK だけで作るとこうなるんだよなぁ。
ということで x64 ビルドプロジェクトを含めてソースコードのバックアップ。

y901w-0.0.0.zip

x64 で再生できるか試してみる。
って Windows 7 64bit だと wmv 以外はドエリャァ面倒くさいのね。
ffdshow を入れて haali ってのを入れてやっと H.264 が再生できる。

Linux ならリポジトリからアッサリとデコーダーを導入できるのに…
つか WMP は標準で H.264 を再生できるのにサードには提供してくれないという…

普通に検索すると怪しさ全快なページばかり当たるので wikipedia から辿る。
そうだった、Windows でこの手は既に無法地帯化しているんだったよなぁ…
やっぱりヤメようか、まぁ x64 で DirectX の実験だと思えばいいか。

おぉ x64 ネイティブで普通に動いた。
後は部品を付けてチマチマやればなんとかなりそうだ。
ところで今頃気がついたのだが…

Opera って GStreamer 使っているの?
というか Windows から使えるのなら使ってみたいわな。