トップ «前10日分 最新 次10日分» 追記

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ToDo:


2007-12-24

_ shell

http://mono.kmc.gr.jp/~yhara/d/?date=20071222#p01

こいの見てて思うのはあんまり関係ない二つのことだなぁ… 一つ目はこう shell はもっとステートフルであって欲しいとか zsh には zftpsys っていうのがついてるの知ってましたかとか そんな話で、 shell っていつか作りたいものの一つなのだけど…というようなほげほげ。 二つ目は Smalltalk のアレいいよなぁという。 名前を忘れてしまったのだけど同じレシーバに対して続けて処理する時のアレ。

receiver doFirst . doSecond

とか書けるんだっけ。なんか違う気もするけど。 なんかあれ shell とかにたまに良さそうだよなぁとたまに。 たぶんあの機能自体 Smalltalk でもたぶんたまにあるとたまに 便利的な微妙機能なんじゃないかと予想している。

これは僕の知る限り Bjarne 信者の C++ 屋が

obj.setA(a).setB(b)

とか書くとか頭おかしい Ruby 屋が

5.times{|i|p i}.times{|i|p i}

とか書くくらいのレアなアレ (上のコードの出力をわかった人は懸賞でひゃくえんくらいがあたります) なのであんまり便利なものでもないのかもしれない。

しかし機械語に落とす時にレシーバは常に EAX とかそんな感じで ほげほげすれば割と良いようなよくないような。

(01:43)

_ なんか

全体的に最近はぼんやり色々考えてたんだけど わかったことは俺頭悪いから考えるよりとりあえず コードとか書いた方がいいんじゃねとかそんな いつも通りの悲しい結論だった。

(01:46)

_ 今日は

カウボーイなんとかに行ってきて色々興味深かった。 たぶん Unix じゃない人が多いのがなかなか色々。 ただ何故カウボーイなのかとかよくわからなかった。

あと sevil とかは 「役に立つものはゴミみたいなクォリティーのコードにする」 という固い信念に基きゴミなのでまぁゴミなのであった。 というかごめんなさい。

自分でもこれ見ると何がしたいのかよくわからなくて戸惑う。

(01:56)

_ 多段 ptrace

どうなってたら便利なんだろうか… よくあるケースとしては、

親起動→子起動→子停止→親が捕獲して適当にコード注入して PC いじる →子復活→子 SEGV 。

たぶんこんなケースだろう。 うーん、子への他プロセスからの attach を保留する機能と、 その他プロセスに委譲する機能があればいいのかなぁ…

そうすれば、

親起動→子起動→子停止→親が捕獲して適当にコード注入して PC いじる →親が子に対する他プロセスの attach を保留する設定に → gdb で子プロセスに attach →親は新しく attach しようとしてた gdb に委譲して子復活 →子 SEGV → gdb が捕獲。

みたいなことができるのかなぁ。 知らん。 今度コード見る。

(02:19)

_ あと

JavaScript とかの with とかも似たノリ。

with(obj) {
  setA(a);
  setB(b);
}

だと書き忘れた

(02:23)

_ こわしい

例えば SKK-JISYO.L には「こわs」に対して 「怖」とか「恐」とか入ってるわけだけど、 これは要はおそろしいの読み間違え みたいなのも入ってるって感じなんだろうなぁ。

(18:04)

_ 研究の成果

なつたんさんのところでたまに見かける 長門というのは「ちょうもん」ではなくて「ながと」 だとわかった。 あと「らきすたのどれか」という認識だったんだけど ハルヒの左にいる子のことらしい。

(22:58)

_

ついたに置いとくのはもたいないなぁ。

http://twitter.com/hogelog/statuses/522162242

(23:20)

本日のツッコミ(全4件) [ツッコミを入れる]

_ sumim [>同じレシーバに対して続けて処理する時のアレ 「カスケード」と呼ばれています。セミコロンを使います。 rec..]

_ shinh [おお、ありがとうございます。 sumim さんの日記で何度か見ていて少し面白いなぁと思っていたのですが、名前や記号を..]

_ hogelog [> こわs これって「恐すぎる」とかのためではないのですかね。恐すぎるって日本語として合ってんだか自信無いですが。..]

_ shinh [あーホントですね。ご指摘ありがとうございます。日本語能力ないのにこのへんアレコレ考えてると混乱が混乱を呼び勘違いだけ..]


2007-12-23

_ 動画

http://www.nicovideo.jp/watch/sm1685088

この動画に深い感銘を受けた。 なんというかこう、なにもしてない。

(01:46)

_ 要は

いかに Firefox がアホかというような話だったように思う。 kernel 側で Firefox だけ メモリの扱い変えるとか、 Firefox を定期的に再起動する Extension だの Firefox を二つ動かしておいて定期的に swap しつつ 片方を落とすだの、 ができれば良いと、 まぁそんな話だった。

まぁもう Firefox 専用チップとか作ればいいんじゃないかなぁ。 今時のマシンって Core 2 Duo (ただし片方の CPU は Firefox が使用) メモリ 2GB (ただし 1GB は Firefox が使用) とかそんな感じだろうし…

(03:07)

本日のツッコミ(全2件) [ツッコミを入れる]

_ kosaki [その要約は激しく間違ってるwww それはともかく昨日は乙!]

_ shinh [なんと間違ってましたか…!! まぁそのうち教科書とかにも「現代的な OS は大きくわけて二つのことをしています。メモ..]


2007-12-22

_ なんで

ネイティブコードがいるんだろう。 setjmp/longjmp でできると思うんだけど。

http://twitter.com/alohakun/statuses/523538622

(17:41)

_ なべ

の興奮も冷めやらぬタイミングで新しいお知らせが!!

http://zinnia.dyndns.org/~hiki/SandBox/?SDL-2008%C7%AF%BF%B7%BD%D5

(18:05)

本日のツッコミ(全1件) [ツッコミを入れる]

_ あろは [確かに,今ちょっと調べてみたら,昔の C++ トランスレータは,例外の実装に setjmp/longjmp を使って..]


2007-12-20

_ うひひ

http://d.hatena.ne.jp/kudzu/20060502/1146593903#c1146649842

すごいいいコメントだなぁ…

(04:06)


2007-12-19

_ bluetooth

だるくてニコニコ見る気も起きないので見てまわる。

zinniaさんに見せてもらって こう首にかけるタイプのはなかなか良いなぁとわかった。

http://www.amazon.co.jp/SONY-%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AC%E3%82%B9%E3%82%B9%E3%83%86%E3%83%AC%E3%82%AA%E3%83%98%E3%83%83%E3%83%89%E3%82%BB%E3%83%83%E3%83%88-%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF-DR-BT20NX-B/dp/B000JLSXO0

たぶんこれなんだけど難点があってソニ〜なのであった。

http://www.amazon.co.jp/%E3%82%BD%E3%83%8B%E3%83%BC-%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AC%E3%82%B9%E3%82%B9%E3%83%86%E3%83%AC%E3%82%AA%E3%83%98%E3%83%83%E3%83%89%E3%82%BB%E3%83%83%E3%83%88-%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF-DR-BT25NX-B/dp/B000XFPVGA/ref=pd_sbs_e_njs_title_1

ソニ〜でよければこれが次の型なのかね。

http://www.amazon.co.jp/%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B9%E3%83%88%E3%83%B3%E3%83%86%E3%82%AF%E3%83%8E%E3%83%AD%E3%82%B8%E3%83%BC-Bluetooth%E3%83%98%E3%83%83%E3%83%89%E3%83%95%E3%82%A9%E3%83%B3%E3%82%A2%E3%83%80%E3%83%97%E3%82%BF-%E3%83%8D%E3%83%83%E3%82%AF%E3%82%B9%E3%83%88%E3%83%A9%E3%83%83%E3%83%97%E5%9E%8B%E3%82%A4%E3%83%A4%E3%83%95%E3%82%A9%E3%83%B3%E4%BB%98%E3%81%8D-%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF-PTM-BAH2SBK/dp/B0010L2O84/ref=sr_1_1?ie=UTF8&s=electronics&qid=1198054299&sr=1-1

このへんネックストラップらしいがまだ出てない。

http://hobby10.2ch.net/test/read.cgi/phs/1184127288/313n-

あと知らんけど ad[es] & bluetooth はびみょうらしい。

(17:53)

_ だるい

考える気も起きないことがわかった。

あとおかいもの TODO としては ad[es] が安いらしいから欲しい。 あとメモリ。

(17:58)

_ backup

u:/data/u3 以下に svn と www 。 svn は daily で。

(18:30)

_ まじでー

http://www.mmv.co.jp/special/game/psp/umihara/

これは PSP 買うなぁ。

(19:52)

_ ++

nanka さいきんたまに (人|物)++ って表現見るけどこれって ギークなおねえさんとかで最初に見たような気がするけど よくある表現なのかな。

とりあえず賛成の意味で +1 はよく見る。

(21:11)

_ perl 5.10.0

わいわい。ということでインストールした。

とりあえず再帰正規表現あたりとか遊んでみた方が良い。

(21:15)

_ るびま出た

と教えられた。

次どうすっかな。 候補はいくつか考えてあった(7月頃)が全て忘れた。

(23:37)

_ るびまごるふ

とりあえずかなり簡単な問題とかなり難しい問題を出してみて 反応を眺めてみてどんくらいの問題にしようか決めようかと思って、 今回はかなり難しい方なので難しいはずというか。

(23:44)

本日のツッコミ(全2件) [ツッコミを入れる]

_ yanbe [>++ plusplusbot.com このサービスで使われているプロトコルが大元みたいです.意味的には賞賛,で..]

_ shinh [おお、こんな元ネタがあるんですねえ。なんか昔からある文化なのかな、と思ってたのですがハズレでした。情報ありがとうござ..]


2007-12-18

_ ぱーる

http://b.hatena.ne.jp/spiritloose/20071217#bookmark-6831256

perl -e 'print g.o x shift.gle'

かな。

(01:15)

_ うぃん

http://b.hatena.ne.jp/totttte/20071217#bookmark-6831256

知らんけど

main(a,b){printf("g%sgle",memset(b,111,atoi(gets(b))));}

とかならたいてい通るんちゃうかな

(01:24)

_ あとまぁ

僕はなんもしとらんというか DM さん T シャツですな。 略すと DTM

(01:29)

_ あと

件の google.c をコンパイルした結果を見て、 どの数字までは落ちないかを正確に言い当てなさい、 という問題は少し面白いかもとか言ってたのを思い出しました

(01:32)

_ 今日は

起きたらなんかえらいだるかった。 でまぁ会社行ってコート脱いだら Tシャツだということに気付いた… けど誰も指摘しなかったので かわいそうな子認定を受けてるのだろうと思った。 あと金月と書いてたどうでもいいコードをかなり捨てて こう久々に大きく無駄なことしてたなぁと悲しくなった。

(20:58)

_ なんか見てると

GRAPEのやつ行ってみたかったなぁ。

(21:04)

本日のツッコミ(全2件) [ツッコミを入れる]

_ kosaki [ぐへへへ、よかったよー >GRAPE話]

_ shinh [いいですなあ。]


2007-12-17

_ さむい

はじめての暖房をつけてみる。

(07:43)

_ u3

ふっかつ

つうても早めになんとかすべき

(08:56)

_ なにした

  • HDD 取り出そうと解体
  • HDD 見つからんし
  • そういえばこの子 CDROM 死んでるっていうのは本当だろうか…
  • 普通に CD ブートできた
  • そいや xenoppix は kernel あたらしいから…と
  • chroot して apt-get -f install したら /dev/null が使えないらしい。なんでやねん
  • と思いつつ /dev/null 消したら apt-get -f install でけた。 http://homepage.mac.com/gamme/obs/21dodomeguri.html の問題だったらしいので kernel 新しくなりゃなんとかなるかなぁという予想は正しかったみたい
  • apt-get upgrade して明らかに不要な apache-1.3 消して mysql 消した。
  • 前一時的に source.list を変更したので netselect-apt しとく。
  • SVN リポジトリをバックアップ。
  • Apache2 入れかえ。 mod_ruby が無いらしいので設定消しとく。
  • いらんサービス殺しとく。

(09:50)


2007-12-16

_ こいうの

http://d.hatena.ne.jp/higepon/20071215/1197733211

あるなぁ、

  • その1 => 正直どうしたもんかなと思うけど基本的には C++ のクラス
  • その2 => 逆アセせんとなんとも
  • その3 => 逆アセせんとなんとも。 Boost ML で enum がコンパイル時の速度低下が少ないという話を見たような気もするが const が好みかなあ。
  • その4 => 遠慮なく public 。個人的な感覚では 8 割のメンバに setHoge つけにゃならんなら public で良くね?というような。

(01:00)

_ RHG

昨日はRHGにいった。 思ってたより面白かった… というか Common LISP が思ってたより面白かった。 これ見るとホント Ruby はよく影響受けた言語なんだなぁと。 この本は買うなぁ。 今の状態見ると翻訳はあまりクオリティ高くなさげだけど、 なんとなく適当にわかるし。 ただプログラム初学者向けでは無さげ。 まぁたぶん初学者は買わんから問題なさげ。

その場で CLISP と GCL と SBCL 入れて 適当に比較しつつ遊んでた。 雰囲気としては

  • SBCL: なんか厳格な感じ。 disassemble とかの挙動見ても一番マジメかなぁ。ただインタラクティブ環境は一番ダメで rlwrap 無いとキツい。
  • CLISP: 厳格さは間くらいか。 disassemble がバイトコード出すってことは機械語はどうなんだろう。インタラクティブ環境は非常に良い。履歴あるというのと補完があるのがすばらしい。
  • GCL: 一番厳格じゃないと思う。 defconstant が警告もなく上書きできちゃうとか。まぁぐにゅーな感じといえばそんなかんじ。インタラクティブ環境は間くらい。履歴あって補完が無い。
  • Emacs lisp: 当然ながら全然 Common LISP とは違う。

遊ぶなら CLISP でマジメにやるなら SBCL とかなのかな。

(16:18)

_ History book

Perl golf history book 的なのを 他言語でも欲しいという話が IRC であった。 まったくその通りだと思った。

とりあえず Wiki でも上げてみて、 古い問題については deadline なくてもネタバレアリ、 って感じでまとめていってみるのはアリかな。

考えてるのは

  • Ruby Perl Python C とかそんな名前のページ
  • PermissionList とかそんな名前のページ
  • PermissionList:Ruby とかそんな名前のページ
  • Ruby:ja PermissionList:ja PermissionList:Ruby:ja とかそんな名前のページ

をある程度自動的に作れると良いんだけど。 あとは人気コードランキングとかあるといいのう

(16:35)

本日のツッコミ(全6件) [ツッコミを入れる]

Before...

_ shinh [ひげぽんさんは僕なんかよりもっとそうだと思うのですけど、正直逆アセって最も手軽かつ確実な方法だったりしません?別に機..]

_ ひげぽん [>ひげぽんさんは僕なんかよりもっとそうだと思うのですけど、正直逆アセって最も手軽かつ確実な方法だったりしません?別に..]

_ shinh [もうちょい応用をきかせて書いてるコードのアセンブリが常に隣に出てる、とかは夢ではありますねえ。]

_ ひげぽん [それは良いですね。 今のマシンパワーならわりと余裕で出来そうですね。]

_ Jcftymkt [この間も俊太郎の詩をお http://www.stlouisbusinesslist.com/business/5..]


2007-12-15

_ つーわけで

GolfScript なる flagitious さん作の 言語をゴルフ場に足したので遊んでみるや良し。

たぶん卑怯なくらい強い。

(03:19)

_ バッドノウハウ

適度なアルコール/バッドノウハウは良いが、 過度な摂取はあなたの健康を損なう恐れがあります。

(03:21)

_ libm

http://d.hatena.ne.jp/odz/20071214/1197622976

このへんを見た。 オリジナルのコードが変わってるみたいだから内容はよくわかってない。 そこであまり関係ない話。

#include <math.h>
int main() {
    return pow(3, 4);
}

main:
        leal    4(%esp), %ecx
        andl    $-16, %esp
        pushl   -4(%ecx)
        pushl   %ebp
        movl    %esp, %ebp
        pushl   %ecx
        movl    $81, %eax
        popl    %ecx
        popl    %ebp
        leal    -4(%ecx), %esp
        ret

こうなる。 これが __builtin の魔力か! てか -O とかつけんくても消えるんだね。 pow(3.3, 4) とかしちゃうと pow が呼ばれてしまう。

で -ffast-math をつけると

main:
        leal    4(%esp), %ecx
        andl    $-16, %esp
        pushl   -4(%ecx)
        pushl   %ebp
        movl    %esp, %ebp
        pushl   %ecx
        movl    $118, %eax
        popl    %ecx
        popl    %ebp
        leal    -4(%ecx), %esp
        ret

わいわい。

あとまぁ pow(argc, 4) とかでも -ffast-math つければ call pow は消えるから 最適化で pow が速くなることはないというわけでもないとか。

TODO(きっとあろはさんが調べるという意味): これ GCC のどこ? builtins.c は微妙に違いげ。

(03:44)

_ ああいや

builtins.c か。

     /* Attempt to evaluate pow at compile-time.  */
     if (TREE_CODE (arg0) == REAL_CST
         && ! TREE_CONSTANT_OVERFLOW (arg0))
       {
         REAL_VALUE_TYPE x;
         bool inexact;
         x = TREE_REAL_CST (arg0);
         inexact = real_powi (&x, TYPE_MODE (type), &x, n);
         if (flag_unsafe_math_optimizations || !inexact)
       return build_real (type, x);
       }

このへんかね。

にしても fold_builtin_pow は相当アホな感じな最適化がほげってるなぁ。

     /* Optimize pow(cbrt(x),y) = pow(x,y/3) iff x is nonnegative.  */
     if (BUILTIN_CBRT_P (fcode))
   {
     tree arg = TREE_VALUE (TREE_OPERAND (arg0, 1));
     if (tree_expr_nonnegative_p (arg))
       {
         const REAL_VALUE_TYPE dconstroot
       = real_value_truncate (TYPE_MODE (type), dconstthird);
         tree narg1 = fold_build2 (MULT_EXPR, type, arg1,
                   build_real (type, dconstroot));
         arglist = tree_cons (NULL_TREE, arg,
                  build_tree_list (NULL_TREE, narg1));
         return build_function_call_expr (fndecl, arglist);
       }
   }
     /* Optimize pow(pow(x,y),z) = pow(x,y*z).  */
     if (fcode == BUILT_IN_POW || fcode == BUILT_IN_POWF
      || fcode == BUILT_IN_POWL)
   {
     tree arg00 = TREE_VALUE (TREE_OPERAND (arg0, 1));
     tree arg01 = TREE_VALUE (TREE_CHAIN (TREE_OPERAND (arg0, 1)));
     tree narg1 = fold_build2 (MULT_EXPR, type, arg01, arg1);
     arglist = tree_cons (NULL_TREE, arg00,
                  build_tree_list (NULL_TREE, narg1));
     return build_function_call_expr (fndecl, arglist);
   }

これとか。

(03:56)

_ DeFLaTe

http://www.jmuk.org/diary/2007/12/14/1

似たようなことが w3m で起きてたのだけど なんか inflate ってコマンド無いと w3m の場合ダメなんかなとか ダメなんかなーと思って accept-encoding から deflate 外してから 気付いたんだけど、よく考えると akr さんとこ (http://cvs.m17n.org/~akr/diary/) は 見えてるのであったのでなにかがおかしい。

それはそうと akr さんとこは Accept-Encoding に deflate 無くても DeFLaTe で送ってくるのはエグいような。

echo 'GET http://cvs.m17n.org/~akr/diary/ HTTP/1.0\r\nHost: cvs.m17n.org\r\n\r\n' | netcat cvs.m17n.org 80

http://www.ietf.org/rfc/rfc2616.txt

とかを見て Accept-Coding: identity を送ってみるも通じず。ムネン。

(04:25)

_ Common LISP

かんどうした

>>(defun f (&optional a b &key k) (list a b k))

F
>>(f 1 2)

(1 2 NIL)
>>(f 1 2 :k 3)

(1 2 3)
>>(f :k 3)

(:K 3 NIL)

(15:34)

_

>>(f :k 3 :k 3)

(:K 3 3)

(15:36)

_ return と nil

gcl

>>(defun nil() (return 1))

NIL
>>(nil)

1

clisp

[1]> (defun nil () (return 1))
NIL
[2]> (nil)
1

sbcl

* (defun nil() (return 1))

debugger invoked on a SYMBOL-PACKAGE-LOCKED-ERROR in thread #<THREAD "initial thread" {A7BD3F9}>:
  Lock on package COMMON-LISP violated when setting fdefinition of NIL.
See also:
  The SBCL Manual, Node "Package Locks"
  The ANSI Standard, Section 11.1.2.1.2

(16:01)

_ disassemble

  • CLISP: byte code
  • GCL & SBCL: native

GCL はインタラクティブモードで disassemble しようとするとあわててコンパイルしてから objdump してる感じ。

しかし objdump は読みなれてるので良い。

(17:26)

本日のツッコミ(全1件) [ツッコミを入れる]

_ Ashykaju [この間も俊太郎の詩をお http://www.stlouisbusinesslist.com/business/5..]


2007-12-13

_ へろへろ

なんかやけにしんどい

んなことより昨日カタストロフが起きて大変だった。 なんかノートPCが落下したり色々あったけど、 結論としてはたぶん kernel を中途半端に入れ変えた影響で u3 の ssh が起動時に立ち上がらなくなった。

  • 起動する
  • それどころか Web サーバは動いている
  • 液晶は死んでるけど外部ディスプレイは画面が出る
  • キーボードは動かない文字があって、パスワードを打ち切るには1つ出せないキーがある
  • USBキーボードは(これもkernelの影響ぽいが)効かない
  • シリアルポートは無い
  • PS2 キーボードは差さらない(マウスは差さる)
  • FDD は壊れている
  • 確か CD-ROM ドライブも壊れてたはず

などという実に中途半端ながら 結論を言えばログインできない感じの状態になった。

復旧法としては USB の HDD で kernel とか適当にほげればいいんだろうけど、 ていうかさすがに 6 年も働いてくれたので捨ててもいいんじゃないかというような。

Duron 800MHz でメモリ 128MB とかだいぶ懐しい感じのスペック。 こんなもんが SVN サーバと IRC プロキシと メインの Web サーバやってくれてたのがアレだなー。

ところでゴルフ場もキーボード効かない&&ディスプレイほぼ見えない という割に過酷な状態のマシンで経営されているとは

(22:23)

_ しかし

800MHz もあるのに懐しいとか贅沢になったもんだね! 昔のアンタはそんなんじゃなかったよ!! 133MHz とかで g++ 使ってコンパイルに30分とかかかってたじゃない!

(22:26)

_ そんなこんなで

やはり R61 かなぁと思った。

(22:36)


2024年
11月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
1.annoncelegale(2011-10-26 20:30) 2.annoncelegale(2011-10-10 05:12) 3.Jcftymkt(2010-03-29 15:56)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h