2007年10月アーカイブ

Gadgetでの背景透過

| | コメント(0) | トラックバック(0)

透過PNGを使う場合、透明度を指定すると透明度をかけた部分と
かけてない部分で位置がずれる。
(透明度をかけた部分だけ左上にずれる)

四隅に影をつけてたのでひげが生えたように。。。

vista gadget透過背景動的変更

| | コメント(0) | トラックバック(0)

HTML
<g:background id="bg_dock" src="images/bg_dock.png"
style="position:absolute;z-index:-1;background-repeat:no-repeat;" />
<g:background id="bg_undock" src="images/bg_undock"
style="position:absolute;z-index:-1;background-repeat:no-repeat;display:none;"
/>

JS
System.Gadget.onDock = function () {
$('bg_dock').style.display = 'block';
$('bg_undock').style.display = 'none';
}
System.Gadget.onUndock= function () {
$('bg_dock').style.display = 'none';
$('bg_undock').style.display = 'block';
}

なぜかstyleではなく、head部に「#bg_dock{...}」で記述すると
背景ではなく、すべての要素の上に表示された。

「<g:background...>」と「<g:background... />」では動作が違う。

「System.Gadget.background」は使い物にならない。
(非透過 or dock時の背景がfloat時に完全に隠れる場合には使えるかも)

あ~、はまった、はまった。

JSでHashを作るときのtips

| | コメント(0) | トラックバック(0)

最後の要素の後に「dummy:null」を追加。

{
hoge : 'huga',
foo : 'bar',
dummy : null
}

こんな感じ。
(もちろんkeyにdummyを使う場合は別の名前で)

IEはhash(Array)の最後の要素の後に「,」があるとエラーになるが、
これを入れておけば必要な要素はコピペしたりしてもエラーにならない。
(上記の「dummy : null」が無い形はエラーになる)

「d:0」とかの方が短くて良いかな。。。

滑稽図

| | コメント(0) | トラックバック(0)

gadgetで
<a href="#" onclick="hogehoge()">click</a>
からDOMの書き換えができないと首をひねっていた。
DOMからの値の取得はできるので、何でかと思ってたけど、まあ当然。


gadgetってclickでの画面更新がわからないからなあ。。。

久々

| | コメント(0) | トラックバック(0)

延々家にいた。
掃除、洗濯、料理を行う。

引っ越してから鼻炎がひどいのは都会の空気のせいかと思ってたけど、単に家が埃っぽいだけだったらしい。
あと、半年目にして初めて自分のベットにリクライニング機能がついていることを知る。でも、おかげで手すりが使えない。困った。

久々にカレー制作。普通に作ったので、普通にうまい。
洗濯はタオルケットも洗う。購入後初めて。布団と毛布はまだ早い?ちょっと暑い。

週末はディアブロの大冒険をしてすごす。無為な時間だった。。。

歯痛

| | コメント(0) | トラックバック(0)

医者に見てもらったが、たいしたことないので気にするなとのこと。
10年以上見てもらってなかったけど、割と普通の状態らしいので安心。

でも、もう一回来いっていわれた。まあ、いいけど。

vista gadgetでわかったこと

| | コメント(0) | トラックバック(0)

sidebar内の幅の動的変更はほぼ無理。左上を始点に右下へ幅が変わる。
(ただし、いったんsidebarから出て戻れば、うまく反映される)

自分でsidebar内から出て行くのはたぶん無理。
(これができればsidebar内で動的に幅が変えられるけど。。。)

背景を透過させればsidebarからはみ出しても割りと普通に動く。

sidebarから出た状態なら幅変更は普通に効く。
(「document.body.style.width *= 2」的な操作)

Flyoutは割と実用的。画面内に収まるようにうまく調整してくれる。
ただし、Flyoutを閉じる操作は非直感的。
Flyout内に閉じるボタンがあったほうがいい。

System.Debug.outputStringはDebugViewで拾える。
exeをたたくときに右クリック->管理者権限で実行を行うこと。

sidebarから出た後、自分で動き回るのはたぶん無理。methodないし。

とりあえず、ここを読め。
http://msdn2.microsoft.com/en-us/library/aa965852.aspx

firefoxにflashがインストールできないとき

| | コメント(0) | トラックバック(0)

最新版のflash playerをinstall後、古いflash playerをinstallすると
firefoxでflash pluginがインストールできなくなる。
flash installerがfirefoxのinstallディレクトリを認識してない感じ。


rebootしてもだめだった。firefoxの再installしたら解決。
「about:plugins」なんてあるんだね。始めて知った。

歯が痛い

| | コメント(0) | トラックバック(0)

微妙に痛い。
今まで虫歯になったことがないので、これが虫歯の痛みかどうか判断できない。
目視できる部分だったので鏡で見てみたら、若干黒っぽくなってる。これが虫歯?

とりあえず明日予約して、週末歯医者いこ

ある認証サーバの場合

| | コメント(0) | トラックバック(0)

お客さんから「認証サーバがメンテナンス中だと、私が組んだソフトもエラーになるので何とかしてくれ」といわれる。
確かにエラー補足をほとんどしてなかったので(ほとんど手探りでコード組んだので仕方ない部分もあるけど)申し訳ないなぁと思いつつ、メンテナンスの頻度を聞く。
「こないだもあったけど、次も近々予定されてるので修正間に合う?」と返された。

あ~、まだ公開されてから一ヶ月たってないんだけど。。。
二ヶ月のうちにメンテナンス2回、しかも一回1~2時間。。。

とりあえずこっちの状況もあって修正が間に合いそうにないので、直近の修正はエラーがうまく捕捉出来るかとかの検証に使わせてもらう。
検証コードを書いてメンテナンス開始を待ってたら、予定時刻数時間前に「今回のメンテナンスは時間を短縮して、数日後もう一度メンテします」との連絡。

あ~、このタイミングでスケジュールの変更ですか。。。
しかも公式サイトにはアナウンスなし。。。

まあ、それでも最悪検証コードの確認できれば良いか、と思って待ってたけど、なぜかエラーは起こらず既存コードも普通に動作。

サーバ止めてのメンテナンスは次回持ち越し?
今回は結局普通に動いてたから、アナウンスいらなかったのでは?

なんか運用体制にいろいろ疑問が。
こっちが突っ込むことじゃないけど、ほんとに大丈夫なんだろうか。

cygwinでssl接続

| | コメント(1) | トラックバック(0)

したかったので、調べてみた。
ssldumpなるものがあるらしいが、
結構古いらしく微妙。

結果perlのIO::Socket::SSLでたたく。
cpanのinstall Net::SSLeayで結構詰まるも適当に検索して解決。

実際たたくコードはこんな感じ。
telnet風に気軽にsslたたければいいのに。。。

use IO::Socket::SSL;

my $client = new IO::Socket::SSL("example.com:https");

if (defined $client) {
print $client 'GET / HTTP/1.0';
print <$client>;
close $client;
} else {
warn "I encountered a problem: ", &IO::Socket::SSL::errstr();
}

Windows SDK

| | コメント(0) | トラックバック(0)

ガジェットが作りたかったので落とす。
1300MBの表示にびびる。
それが15分程度で落ちてきてさらにびびる。

UTF8 -> JIS(ISO-2022-JP)変換(完成コード)

| | コメント(0) | トラックバック(1)

結局こんな形に。
もちろん半分はパクリ。
下半分はよくある人名漢字。

2008/07/10 「半角「」ってなに?」の修正を反映

Thunderbird移行

| | コメント(0) | トラックバック(0)

なんとかoperaからメールが読めるようになったので
内容バックアップしてThunderbirdへ移行。
基本的には「opera Thunderbird」とかで
出てきたサイトを参考にすすめる。
ただ、アドレス帳のCSV形式は若干違った。
(一度Thunderbirdからアドレス帳をバックアップして確認)

結構うまくいくもんだ。

UTF8 -> JIS(ISO-2022-JP)変換

| | コメント(0) | トラックバック(1)

結局変換テーブル使うことに。
「機種依存字」、「正字」、「旧字」、「NEC特殊文字」、「NEC選定 IBM拡張文字」、「IBM拡張文字」、「はしご高」、「たち崎」、「つち吉」みたいなので検索して、変換の例として出ている文字を片っ端から突っ込む。

ちなみに、この辺のことを解決できそうな方法としては、iconvで「ISO-2022-JP//TRANSLIT」と指定する方法があるけど、なんか微妙にうまくいかない。
コンソールからはうまくいくのに、mojaviに組み込むとなぜかだめ。
(文字コードにかかわりそうな内部変数はいろいろいじった)
$_ENV['LANG']を見てるのはわかったけど、それだけじゃないらしい。
まあ、これも「たち崎」が変換できなかったので追っても仕方ないけど。

結局丸一日くらい悩んでる気がする。いい加減飽きたのでもういいや。

2008/07/10 「UTF8 -> JIS(ISO-2022-JP)変換(完成コード)」に完成形のコードUP

短い夢だった。。。

| | コメント(0) | トラックバック(0)

結局予備のXP機もHDD不良で元のvistaに逆戻り。
それにしても何でDELLの再インストール用CDは機体番号書いてないんだ?
いっぱいあるとどれがどのPC用のCDがぜんぜんわからん。。。

vistaからの開放

| | コメント(0) | トラックバック(0)

職場のvistaが死ぬ。
operaのmailbase.datにアクセスするとOSごと落ちる。
(HDDの不良な気がするけど、chkdskでは復旧できず)
セーフモードも途中で詰まるので打つ手なし。
OSの再インストール決行。
ただ、どうせ入れなおすならと、この際XPに移行する。

そこで気づいたけど、Vistaってprogram filesへの書き込みをユーザごとに保存してんだね。これは結構良いかも。


ついでに自宅PC用キーボードも購入。
あと、電球色蛍光灯とか。4本のうち1本変更。これは買って成功。
たまっていた住所変更等の作業も行う。めんどくさ。。。

青木雄二の財テク論

| | コメント(0) | トラックバック(0)

読了
あんまり面白くなかった。

資本主義の批判は良いけど、代案の提示もなければ批判原因の具体例もない。
財テク論自体の具体性はなくても良いけど、何かに対して批評するなら代案や具体例は最低限つけるべきだと思う。

「スーパーコンピューターを20万円で創る」読了

| | コメント(0) | トラックバック(0)

面白かったし、さくさく読めた。
当事者が書いてるせいか、実際の詳細+各人のかかわり的なことも書いてあって楽しめた。

まあ、ただ娯楽本といった感じ。あまり得るものはなかった。
国産でそこまですごいコンピュータがあるってことを知ったのは良かったけど。

UTF-8で組んだときの罠

| | コメント(0) | トラックバック(1)

メール送るときに化ける。
メールもUTF-8で送れれば良いけど、携帯とWebMailを考えると難しい。
PHP5系ならISO-2022-JP-MS用パッチがあるけど、PHP4系はむり。
もちろん、ISO-2022-JP-MSで完全に回避できるわけじゃないけど、日本語環境だけなら割といけると思う。
「nkf --ic=utf8 --oc=cp50220」って方法もあるけど、nkfとのデータのやり取りめんどくさい(下手すると穴開くし)

結局変換テーブルかなぁ。。。

2008/07/10 「UTF8 -> JIS(ISO-2022-JP)変換(完成コード)」に完成形のコードUP

起床時間

| | コメント(0) | トラックバック(0)

毎日同じ時間に起きるようにすると結構楽。
ようやく週休二日が身についてきた感じ。

そして半年経過。
思い返すといろいろあったけど、感覚的には結構早かった。
もっとうまく回したいね。

apache logの統合

| | コメント(0) | トラックバック(0)

非連続的にバックアップしたログをひとつのファイルにしたい。
各ログファイルは期間的に重複している。
単純に全部まとめると300MBくらい。

use strict;
use warnings;

my %mons = (
'May' => '05',
'Jun' => '06',
'Jul' => '07',
'Aug' => '08',
'Sep' => '09',
);

my $DIR = 'hogehoge/hugahuga/';
my $ALL = $DIR.q[all.txt];

open( my $all_fh, '>', $ALL ) or die( $ALL, $! );
my %all_check;
my $trex = qr{ \[ (\d+) / (\w+) / (\d+) : ([\d:]+) \s+ \+ \d+ \] }mosix;
foreach my $base ( get_dirs( $DIR, sub { -d shift } ) ) {
my $dir = qq[$DIR$base/var/log/httpd/];
foreach my $file ( get_dirs( $dir, sub { ( shift ) =~ m{^access} } ) ) {
open( my $fh, qq[$dir$file] ) or die( qq[$dir$file], $! );
while ( !eof( $fh ) ) {
my $line = scalar <$fh>;
next if $all_check{$line}++;
print $all_fh $line;
}
close( $fh );
}
}
close( $all_fh );

sub get_dirs {
my $dir = shift;
my $yield = shift;
opendir( DIR, $dir ) or die( $dir, $! );
my @dirs = grep { &$yield( $_ ) } ( grep !m{^\.\.?$}, readdir( DIR ) );
closedir( DIR );
return @dirs;
}

まずこんな感じのコードにかける。
ちなみに、このとき使用メモリは最大140MBくらい。
結果出力したファイルは60MBくらいになった。
(291313行)

後は適当にソートしてひとつのファイルにしてanalyzerにかけておしまい。
hashにガンガン値を突っ込むからメモリ的にきついかと思ってたけど、
思ったより現実的な時間で終わった。
(実ファイルの二倍ちょいのメモリ使用量って結構少ない)

なんでfindとsortとuniq使わなかったんだろうねぇ。。。

kagemaiをruby 1.6で

| | コメント(0) | トラックバック(0)

いまさらながらruby 1.6環境に影舞を入れる。
しかもmysql 4系に。

影舞自体はむしろ1.6環境のほうが入れやすいが
(1.8だとlibの中をいじる必要あり)
dbi+mysqlを入れるのに手間取った。

ruby-dbi
バージョンは一応最新版の「dbi-0.1.1.tar.gz」。
install方法は普通。
ただし、「dbd/Mysql.rb」を1.6用に書き換える。
具体的には277行から続くcase文を「when '.+': .+」形式から
「when '.+'\n .+」形式へ(「:」を改行へ)置き換える。
とりあえずdbiはこれで動いた。

mysql
最新版を入れると「StringValuePtrって何?」とかいわれて動かない。
(1.7以降で追加されたものらしい)
とりあえずソース内に「StringValuePtr」の存在しない
2.5系の最新版(「mysql-ruby-2.5.2.tar.gz」)を使用。
こっちはバージョンが一致すれば普通に動いた。

なんかわりとどうでもいい知識だなぁ。。。

優駿読了

| | コメント(0) | トラックバック(0)

結構有名な作品だったのか。読んでる途中に知り合いから教えられる。
レースの描写が物足りなかったが、実際あんなもんか。
北海道に行きたくなった。

ちょっと上品な感じがするけど、それなりに後味が悪くて良。