Home

コスミー報告書[社外秘]

jQueryでウェブデザイン

ひさびさにjQueryをのぞくといろいろ便利そうなプラグインが出てる。

1.レイアウト
ウェブページのレイアウトって、クロスブラウザでやろうと思うとなかなか大変である。スタイルシートとかIEとFirefoxではだいぶ違う。
・Docking layout manager
きっとクロスブラウザ。少なくともFirefox3とIE7では同じに見えた。
http://labs.rajeeshcv.com/layoutmanager/default.html

・Flexify
もっといろいろできるっぽい。リサイズ可能なスプリッターもある。
http://plugins.jquery.com/project/Flexify

2.フォーム
フォームはかっこよく、かつ便利にしたいもの。
・Labelize: a jQuery Label Maker
フォームを含んだいくつかのHTML要素をひとまとめにできる。これは便利。スタイルシートのクラスを指定してlabelize()ってやればいいみたいで、その際引数にマウスオーバ時のスタイルシートを指定できるようだ。(なにも渡さなければマウスオーバ時になにも変化しない)
http://github.com/bentlegen/labelize/tree/master


<html>
<head>
	<script src="jquery-1.2.6.js"></script>
	<script src="jquery.labelize.js"></script>
	<style>
		* {margin: 0 0 0 0; padding: 0 0 0 0;}
		.radio-label { background-color: #F0FFF0; width: 200px; color:#000000; font-weight:bold;}
		.radio-label-hover { background-color: #333333; color:#ffffff; font-weight:bold;}
	</style>
</head>
<body>
<script>
	$(function() {
		$('li.radio-label').labelize('radio-label-hover');
	});
</script>

<div>
<form>
	<ul>
	<li class="radio-label"><input type="radio" name="radio"/> テスト 1</li>
	<li class="radio-label"><input type="radio" name="radio"/> テスト 2</li>
	<li class="radio-label"><input type="radio" name="radio"/> テスト 3</li>
	</ul>
</form>
</div>
</body>
</html>

以上

テイルズ オブ ヴェスペリア

これをやるためにXBOXを買ったと言っても過言ではない。
そういう人が多いせいで売り切れているらしい。
http://www.itmedia.co.jp/news/articles/0808/20/news105.html
で、まだクリアしてないけどやっぱり面白い。なれてくるとバトルが爽快。ただしハードだときつめ。絵はきれい。
主人公がヒールなんだが、めずらしいんじゃないか?テイルズ的に言って。若干コードギアスを意識している感はあるが、まあ面白ければ何でもいい。

ただ、ダンジョンだとバトルから逃げても敵シンボルが消えてくれないのが困る。路地に追い込まれてバトルして死にかけて逃げたのに、またすぐエンカウントせざるを得ないという罠が・・・。

最近テイルズしかゲームしてないような気がする。当面の懸念事項はPSPのテイルズを買うかどうか。

以上

google appengineではまったこと3 ~データストアとかモデルとか

夏休んでました。

google appengineはかゆいところに手が届かないなあと感じている今日この頃。例えばDBへのクエリで2つ以上のプロパティに不等号を使えない。


query = Hoge.gql("WHERE foo >= :a AND bar >= :b", a = 1, b = 1)

上はエラーが出る。インデックスが使えなくなるからだと。

あと、ModelにGeoPtPropertyってのがあるわけだけども、ソーティングが(つまり比較が)緯度→経度の順で行われるから矩形領域を検索したりできない。


locA = db.GeoPt(0, 0)
locB = db.GeoPt(10, 10)
query = Hoge.gql("WHERE geo >= :a AND geo <= :b", a = locA, b = locB)

ってやっても緯度が0以上10以下なら検索されちゃう。例えば(5, 150)とか。こういうことをしたいときにどうしたらいいのか、現在検討中。どうしたものか。緯度と経度に分けてプロパティ作っても、最初に書いたように2つ以上のプロパティで不等号使えないし。全部取ってきてから自前フィルタで処理するとかしたら、時間かかってタイムアウト制限に引っかかる気がするし。求む!解決策。

以上

C++ ランダムソート 1

C++でファンクタだけでランダムソートを作ろうとちょっとがんばってみたけどだめだった。


template< typename T >
class RandomSorter {

public:
    RandomSorter(){}

    bool operator()(T a, T b) {
        int seedA = 0;
		int seedB = 0;
		int memorySize;
		int randA;
		int randB;

		memorySize = std::min(sizeof(T), sizeof(int));

		memcpy(&seedA, &a, memorySize);
		memcpy(&seedB, &b, memorySize);

		srand(seedA);
		randA = rand();
		srand(seedB);
		randB = rand();

		return randA < randB;
    }
};

引数のa, bを無理やりint型に当てはめて、その値でsrand()することで乱数の値を一定にし、最後の比較をソート処理全体で矛盾が生じないようにしたつもりなんだけども、どうもsrand()のシードの大小とその結果作成されるrand()の大小が一致するようだ。例えばTがint型だったらseedA = a, seedB = bとなるわけだが、ほとんどの場合でseedA > seedB ⇒ randA > randBとなる(VS2008の場合)。したがって意図したようなソートにならない。もう一工夫必要なのか。

以上

今、私の頭の中にある備忘録 1

・phpでメモリ制限をスクリプトから変える(コマンドラインツールとか)
–> ini_set(”memory_limit”, “100M”)

・pythonの配列的なやつ
–> 配列=[] ex) a = [1,2]
–> マップ(辞書)={} ex)b = {”foo”:1, “bar”:2}
–> 配列もどき=() ex) c = (1, 2)

・VisualStudioのバージョン
–> _MSC_VER

・C++のあれ
–> _cplusplus
ex)


 #ifdef _cplusplus
 extern "C" {
 #endif
 

以上

pythonのclassmethodとstaticmethodの違いが分からん

分からん。


class Hoge:
   def foo(cls):
      print "foo"

   def bar():
      print "bar"

   foo = classmethod(foo)
   bar = staticmethod(bar)

クラスメソッドは第一引数にクラス名、スタティックメソッドはなにもこない、って違いがあるらしいが、だからなんなの?
この辺見てるとstaticmethodなんていらねえぜって書いてあるように見えるんだけど、いらねえのかな。

今度考える。

以上

構造体の初期化

テイルズ オブ ヴェスペリアの体験版をダウンロード中。

C言語の構造体を初期化します。書記化します。


typedef struct Hoge {
   int a;
   int b;
   char *c;
} Hoge;

int main(int argc, char* argv[]) {
   Hoge hoge = {0, 0, NULL};

   printf("%d, %d, %s", hoge.a, hoge.b, hoge.c);

   return 0;
}

こんな感じです。{}が初期化子です。メンバの値を列挙すればよいです。が、これは省略できます。


int main(int argc, char* argv[]) {
   Hoge hoge = {0};

   printf("%d, %d, %s", hoge.a, hoge.b, hoge.c);

   return 0;
}

省略すると、数が足りないメンバは0で初期化されます。
トリビアルメモです。

以上

最近の液晶テレビ

いろいろ悩んだあげく、LC-32DS5を買った。なかなかいいと思われる。なぜか32型だけパネルが違うようで、37以上のDS5シリーズは「低映り込みパネル」などというのが採用されているが、32DS5も仕様によると「(低反射)倍速ASV液晶パネル」で、映り込みはそんなに気にならない。適当なネット販売サイトでは32型もごっちゃにして低映り込みパネルって書いてあるので注意が必要。あと15000:1というのは「テレビコントラスト」で「コントラスト」ではない。テレビコントラストがなんなのかは、よく分からない。まあでも十分きれいなんじゃないかと。そう思っておけば幸せなんじゃないかと。
これでXBOX三昧になれます。

以上

VC6のうざさ

そんなに古いコンパイラを使うな!って話ですが、使わないといけないんだから仕方がない。
なにがうざいかって、C++のくせに


for (int i = 0; i < 10; i++) {
   x++;
}
for (int i = 0; i < 10; i++) {
   x++;
}

って書けないところ。一個だけならいいんだけど、二個書くとiが再定義されたって怒られる。こっちが怒ってやりたい。そういうわけで無理矢理下記みたいにしてコンパイル通したりしてる。


{
	for (int i = 0; i < 10; i++) {
	   x++;
	}
}
{
	for (int i = 0; i < 10; i++) {
	   x++;
	}
}

{ }で囲んでおけばローカルスコープになるのでiはローカルブロック内だけで有効になり問題ないようだ。まじめにやろうとしたら、ちゃんとiを最初に定義ししておくか、_MSC_VER < 1300とかで分岐させて書くのかもしれない。めんどくさい。

以上

Vista不調

起動直後にFirefoxを開こうとしただけで固まってしまう。
まずFirefoxが反応しなくなり、タスクマネージャを開こうとしても開かないし、Ctrl+Alt+Delも効かなくなる。最終的にデスクトップ全体が白くなって完全にフリーズ。どうなっとるんだ。
あげくの果ては電源ボタン長押しして強制終了、再起動したらLANがつながらないという。再々起動で普通に起動できたが・・・。

あと、BIOS立ち上げ後、パスワード入力画面になった瞬間にパスワード入力してログインしようとすると、「ようこそ」のまま固まるときがある。

SP2まだか。

以上

Home

Search
Feeds
Meta
 合計:089434
 今日:0300 昨日:0339

Return to page top