投稿

2006の投稿を表示しています

Ajax風味

HTML中で外部HTMLファイルを表示する。 <html> <head> <script type="text/javascript"> <!-- function createXMLHttpRequest(cbFunc) { var XMLhttpObject = null; try{ XMLhttpObject = new XMLHttpRequest(); }catch(e){ try{ XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ try{ XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){ return null; } } } if (XMLhttpObject) XMLhttpObject.onreadystatechange = cbFunc; return XMLhttpObject; } function $(tagId) { return document.getElementById(tagId); } function loadHTMLFile(fName)

TODO

まぁプログラム。 ・ネットワーク鯖 ・EBS ・FFA ・SOLD OUT とりあえずこんなもんか。 EBSとFFAとSOLD OUTに関してはまぁ似たようなのを作るってことで。

Objective-C Thread

いろいろと巡回していると、どうやら@synchronizedはセマフォらしいことがわかった。 Cygwin等のGCCで動かない理由は、 な、なんと・・・ 新しく追加した(MacOS X 10.3以降)からまだ実装されていない!!! でしたw もしかすると、GCC4.0系とかには取り入れられているのかもしれませんが、まだ確認していません。。。 みんな新しい環境を取り入れていっているので、あまり問題が表に出てきていない模様。 公開するならせめて注釈入れて・・・(泣 まぁ、AppleのObjective-Cの説明のところでも、新しく追加されたことは書いていない(日本語版だから?)ので、最近(10.3以降)購入したり、Intel入ったから買ってみたとかいう人達には無縁のことなのでしょう。 まだ私の環境で、エミュレータでDarwinがちゃんと動いてくれないのが痛いですが、そのうち問題は解決することでしょう。

Darwin Install(失敗)

Darwin(701)をインストールしようとしてますが・・・ QEmuで成功したが、挙動が怪し過ぎるので却下。 Bochsでは・・・ 画面が真っ黒になって更新されなくなるのでインストール不能。 VESAの設定がおかしいようです。 私がおかしいのかイメージがおかしいのか・・・ 6系から入れようか思案中。

レンタルサーバー

どこかにCVSとかが使える(CVSしかなくても可。むしろ希望w)レンタルサーバーないかなぁ・・・ 出来れば無料でw ・・・実は需要があったりするのだろうか?

Objective-C Thread

Objective-CによるThreadに関して、何故かpthreadによる使い方がない(汗 同期用に@synchronizedとかはあるのに、スレッドの生成方法が書いてない(汗 Cocoaとかのじゃなくてpthreadを使いたいんだよ~ Cのをそのまま使って良いのかもわからんから不安だ^^;

Windows プロジェクト管理

プロジェクト管理ソフトらしい。 今後の発展を願いつつ、リンクを貼っておきます。 http://trichord.change-vision.com/

slashdot.jp CM

http://slashdot.jp/comments.pl?sid=312297&cid=925306&pid=925306&threshold=-1&mode=nested&commentsort=0&op_change=%E5%A4%89%E6%9B%B4 これは傑作ですね。 ログ代わりに残しておきます。 --ここから-- ジャパネット (スコア:1, おもしろおかしい) Anonymous Coward のコメント: 2006年04月20日 21時59分 (#925306) ジャパネットタカタを見ている間はトイレに行く暇が無くて困ります。どうにかしてください。 ----------------------------------------------------------------------------------------------------------- 社長の声で読んでください (スコア:1, おもしろおかしい) Anonymous Coward のコメント: 2006年04月20日 22時07分 (#925319) さぁ、そんなあなたに、ジャパネットタカタが国内一流メーカーと共同開発したトイレ用ポータブルテレビをご用意しました。最近話題のPSEマークもばっちり。もうすぐ切り替わるデジタルテレビにも対応していて、末永く使えます。この高性能をこの大きさに納めて、なんとたったの9800円。いますぐお電話は… --ここまで--

GNUstep for Windows

GNUstepになんとなく興味出たからインストールとか。 base+guiのインストーラを使えば、全部一発でインストールされる。 以下はそれ以外の方法らしい。 --ここから-- http://www.gnustep.org/から、Win32用gnustep-base installerをダウンロードする。 環境変数GNUSTEP_SYSTEM_ROOTに「c:¥GNUstep¥System」を設定してから、インストール。 http://gnuwin32.sf.net/から、次のライブラリをインストールする。 ・zlib ・libjpeg ・libtiff ・libpng Binaries, Dependencies, Developer filesをダウンロードし、c:¥GNUstep¥Developer¥msys¥1.0¥local以下に展開。 ~/.profileを以下の内容で作成。 export LANG=C export CPPFLAGS=-I/usr/local/include export LDFLAGS=-L/usr/local/lib /usr/local/bin/gnutarを作成。 ln -s /usr/bin/tar.exe /usr/local/bin/gnutar.exe gnustep-guiのソースをダウンロード、展開し、 ./configure make make install。 同様に、gnustep-backをインストール。 --ここまで-- GNUstep用のソフトウェアに関しては特に問題なく実行出来ているように見える。 まだ入れただけなので、いろいろ調査中。

Mac MSN Messenger 5.1.1

かなり遅いけど、Mac版MSN Messengerの最新バージョンが公開されています。 ダウンロードはいつものところからしませう。

glibc: version or release

glibc には gnu_get_libc_version()、gnu_get_libc_release() という関数がり、現在のバージョンを取得できる。 glibc-2.4 で試すとこんな感じになるはず。 gnu_get_libc_version: 2.4 gnu_get_libc_release: development

Perl メモ: CPANのアップデート

古くなっているモジュールの一覧の表示 perl -MCPAN -e 'CPAN::Shell->r' 古くなっているのを一括してアップデート perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)'

Mac MSN Messenger: 5.1

Mac版MSNメッセンジャーの最新バージョンが公開されています。 ダウンロードはいつものとこからしませう。

C : エンディアン判定

タイトル通り。 エンディアンの判定なんぞをやってみませう。 C言語或はコンパイラに依存します。 #include <stdio.h> #include <stdint.h> typedef union { int32_t i; int8_t  c[4]; } endian; int main() { endian endn = { .i = 1, }; printf("%s\n", ((endn.c[3] == 1)?"big":"little")); return 1; }

C : 友達に教えていた時

友人にプログラムを教えていた時、 #include <stdio.h> char list[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; int main(){ unsigned int a = 363546000; int b, i, j; int c = sizeof(int) * 8; int flg = 0; for(i = c - 4;i >= 0;i -= 4){ b = (a >> i) & 0x0f; if(flg == 0 && b < 1){ continue; } flg++; printf("%c", list[b]); } /* for(i = 4;i <= c;i += 4){ b = (a >> (c - i)) & 0x0f; if(flg == 0 && b < 1){ continue; } flg++; printf("%c", list[b]); } */ return 1; } すっごく変な気分になりましたとさ(ぉ

C: ビッグな人向けかも

ビッグな人向け。 リトルな人には少し使い難いもの。 #include <stdio.h> #include <stdint.h> typedef union { int32_t a; char b[4]; } sInt2Str; int main() { sInt2Str a; a.a = 0; /* 初期化 */ a.b[0] = 'a'; a.b[1] = 'b'; a.b[2] = 'c'; printf("1:0x%X\n", a.a); switch(a.a) { case 0x61626300:/* ビッグな人 */ printf("2:%s\n", a.b); printf("3:ビッグ\n"); break; case 0x00636261:/* リトルな人 */ printf("2:%s\n", a.b); printf("3:リトル\n"); break; default: break; } a.a += 0x00010200; printf("4:0x%X\n", a.a); printf("5:%s\n", a.b); a.b[2] = 'a'; printf("6:0x%X\n", a.a); printf("7:%s\n", a.b); return 1; }

C: 何となくやってみた。

以下をGCCでコンパイル。 通った・・・ しかも、エラー無しで動く・・・ コンパイラの型チェックとか意味ない。。。 危険過ぎる。。。 #include <stdio.h> int aaa(int a, int b){ return a + b; } int main(){ void *(*a)() = (void*)aaa; printf("%d\n", a); printf("%d\n", (int)a(10) ); printf("%d\n", (int)a(10, 10) ); printf("%d\n", (int)a(10, 10, 10) ); return 1; } --環境-- Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. >gcc -v Reading specs from C:/Program  Files/GNU/MinGW/bin/../lib/gcc/mingw32/3.4.2/specs Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable -languages=c,c++,f77,ada,objc,java --disable-win32-registry --disable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchronization --enable-libstdcxx-debug Thread model: win

Mac mi: ことえり用簡易チェック

ことえり用の簡易チェックです。 正規表現にチェックを入れてから使いましょう形式がおかしければその行が選択されます。 ^(?!("[^"]*?","[^"]*?","[^"]*?")) 問題は、 " が認識させたい文字列に入っていると引っかかってしまうところです。 その辺は工夫しましょう。

Perl: ちょっとだけ有用なスクリプト

ちょっと役立つスクリプト my $lastTabOffset= 0; my $tabSize = 4; my $spaceCount; $line =~ s{([^\t]*)\t}{ $lastTabOffset += length( $1 ); $spaceCount = $tabSize - $lastTabOffset % $tabSize; $lastTabOffset += $spaceCount; $1 . ( ' ' x $spaceCount ) }eg; これを考えた2chの中の人は暇だったのかな。

Perl SQLite: 3

前回の続き。 -- test2.pl #!/usr/bin/perl use DBI; # SQLiteでデータを保存するファイル。 # データベース名となる。 $dbfile = 'dbfile'; # 接続 $dbh = DBI->connect( 'dbi:SQLite:'.$dbfile, "", "", { AutoCommit => 0, # 毎回自動的にCommit(有:1 無:0) RaiseError => 1, # 例外発生の有無(有:1 無:0) PrintError => 1 # 警告生成(有:1 無:0) } ); # ここまではほぼ一緒 if(!$dbh) { # エラー処理。 # ハンドルが作成出来なかった時の動作を書く。 # データベースへのアクセスが出来ない等が考えられるので、終了するほうが良いかも。 # print "error\n"; # exit; # とか。 } else { # エラーが無かった時の処理。 # テストだけなら # print "success\n"; # exit; # とか。 } eval { # 実際にSQLを動かしてみる $sth = $dbh->prepare('begin;'); # 互換性を追求するならあったほうが良いのかもしれない。 $sth = $dbh->prepare( # SQL # SQLiteでは型指定は要らないが、互換性のために書いておくと良い。 'CREATE TABLE test_table (' .'id INTEGER PRIMARY KEY,' .'data1 INTEGER,' .'data2 TEXT' .');' ); $sth->execute; }; # ;を忘れないこと if($@) { # クエリに問題があったときどうするか。 # この場合はすでにテーブルが存在していそうだから、ロー

Perl SQLite: 2

前回の続き。 インストールが終わったら実際に使ってみませう。 -- test.pl #!/usr/bin/perl use DBI; # SQLiteでデータを保存するファイル。 #データベース名となる。 $dbfile = 'dbfile'; $dbh = DBI->connect( qq/dbi:SQLite:$dbfile/, "", "", { AutoCommit => 0, RaiseError => 0, PrintError => 0 } ); __END__ -- test.pl とりあえず、これでデータベースへのハンドルが取得出来る。 AutoCommit => 1 これは、毎回自動的にコミットを使用することを指定している。 AutoCommitを明示的に使用しない場合は、 AutoCommit => 0 とすること。 RaiseError => 0 これは、例外を発生するかどうかを指定している。 例外を扱いたい場合は、 RaiseError => 1 とすること。 PrintError => 0 これは、エラーコードを返すことに加えて、warnを使用して警告を生成するように強制しないようにしている。 警告を生成する場合は、 PrintError => 1 とすること。 SQLiteの真価はトランザクションを使用すると発揮されるので、トランザクションを使用するほうが良い。

Perl SQLite: 1

某所で公開してた奴だけど、こっちでも公開してみる。 SQLiteを導入しようとする人向けです。 SQLiteって何?という人はぐぐりましょう。 まずはインストールから。 Windowsな人は ppm >search DBD-SQLite の後リストが出るのでその中から >install DBD-SQLite と選択するか >install 1 とかでリストに表示されている番号を選択。 或は、SQLite以降を指定すると名前の重複を避けれるので、 ppm >install DBD-SQLite2 とか。 モジュールをダウンロードして~って場合は、解凍後に ppm install DBD-SQLite.ppd とか。 Unix系の人は cpan > install DBD::SQLite とか CPANからモジュールをダウンロードしてきたのなら、解凍後に、 perl Makefile.PL make make test make install とかになるかな。 SQLiteはパブリックドメインなので、ほとんどの環境で問題なくインストールが可能。

Googleなのに・・・

GoogleのBlogのはず何だけど、外部に置けるらしいのでテストも兼ねてやってみた。 設定も簡単だったし、良い感じかも。 容量もそれほど気にしなくても良さそうだし、今後もこのまま使い続ける予定。 星虫にするかどうかは未定。

目標

目標は、月に1回以上更新 。 元々日記を書くのが無理な性格をしているので、かなり抵抗がありますが、メールチェックのついでに更新が出来ると良いなぁという感じでやります。 ・・・ まぁ多くても月に数度しかメールチェックしていないという状況を脱することが出来たらもっと頻度が上がるかも。 まぁ友人もblog始めたことだし、ついでにいろいろ書いちゃおうかとか思ってます。 さて、誰にも言わないブログに、誰か来るのだろうか。

開設

開設記念書き込み。