現代魔法を操る世界


by kagurayouyou
カレンダー
S M T W T F S
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
31

カテゴリ:プログラミング( 11 )

【プログラミング】
現在Javaの勉強をしているのですが、これまた結構大変。
Eclipseを利用しているのでAPIが自動で入力できるのですが、
逆に覚えられないですね。
覚える必要がないかもしれませんが。

特筆すべきなのはEclipseのすごさ。
今までEmacsを利用していたのが、馬鹿みたいです。
CDTを入れればC,C++も書けます。

かといってVSが使いづらいというわけではありません。
やはりコンポーネントをGUIで作成できることはかなり大きいことだと思います。

JavaもAWT、SWING、SWTと平行的にGUIがあり、一長一短であり、
絞るのも難しいです。

まだthreadを利用していませんが、C#に比べ使いづらいと聞きます。

やはり最強はC++ですね。


【戯言】
うちのTVはREGZAのC3000ですが、音声が悪いですね。
スピーカに繋げると一耳瞭然。
[PR]
by kagurayouyou | 2007-06-16 17:24 | プログラミング
【プログラミング】
PostgreSQLをインストールし、管理ツールとしてpgAdminIIIを入れました。
しかしネットからアクセスしたり、メンバーの意味とかにいくつか手間取っている状態です。

少し使ってみましたが、なかなかGUIでもめんどくさいです。
最低限のSQLコマンドで作ることができますが、CUIの方が楽そう。
修正や見ることに対してはGUIの方が便利ですね。

初めて使って思ったのが、まず型が多い。
CHAR、INT、DOUBLEは当たり前。TEXTなどが新たにあります。
列の追加などが簡単にできると言えばできますが、
多少はめんどくさいですね。主キーなどの型変更をしたい場合など。
なのでスキーマは熟考した方が良いと思います。
[PR]
by kagurayouyou | 2006-10-29 09:38 | プログラミング
【プログラミング】
Intel C++ Compiler9.1非商用版をSUSE Linux10.0に入れてみたんだけど微妙。
まだプログラムをちゃんと設定した計算機で回したわけではないのでわからないが、
手元のPC(Pen3 866Mhz 512MB)で、Segmentation faultが起きる。
GCCではならないから不思議だ。
単純な∑のプログラムなのでそれほど変な風にはならないはずなのだが…。
どこかで配列を間違ったのかもしれない。
しかもGCCより遅い…

以下メモ。
キャッシュに乗らないほど大きなスパースネスで非ゼロが多い行列。
通常スパースネスと呼ばれるとき99%が0とかになる。
つまり50万要素くらいある場合、99%でも5000要素も計算しなければならない。
それが2000ベクトルくらいあると1千万になる。つまりは10Mだ。
これがint型なら4バイトなので40MBのCPUのキャッシュがあればいい。
一次ならせいぜい16Kバイトとかだし、二次ならせいぜい2MBくらいだろう。
つまりこれではCPUに乗らず、メモリに乗ることになる。
これは結構なロスだ。

で99パーセントといったが、実際言語処理ではngramで多くして30くらいだろう。
つまりは30*2000*4だと1.2MB。
問題は最近のマシンだとこの部分の高速化が必要かということにぶつかる。

あと、実際人はどれくらい我慢ができるのだろう。
マルチクラスをしても2000だと15分くらいで済む。
これを10分にしたところで嬉しいだろうか?
つまりは通常何もせずに待っていられると思える速度は3分くらいかもしれない。
なので10分と15分では、別なことをしている間に、とかなった場合50歩100歩にしか
見えない。また精度とかを見ると1パーセント上がるだけで20問くらいの正解率が増える。
これは嬉しいのではないのだろうか?

つまり言いたいのは絶対数として見たとき、どう感じるだろうか?
ということ。
ただ研究と言うのは積み重ねなのでいきなりは難しいのが当たり前なのかもしれない。

そこら辺私はまだ常識を知らないので、これは無駄なのか、有用なのかわからない。
[PR]
by kagurayouyou | 2006-09-30 15:38 | プログラミング
【プログラミング】
mixiに個人的な日記を載せているので、
なんだかこっちは本当にアカデミックな話題とかニッチな話題になってしまった。
で今日もまた一応プログラミングな話題。
参考になればどうぞ。

プログラムを開発して公開することによる社会的利益はどれくらいだろうか?
それはOSSでもバイナリでもいいのですが。
Linux,Unix世界では64-bitの関係などによってたくさんあるのでバイナリは難しいですね。
(現在私の環境では自分のPCは32bit、
計算用PCは64bitなのでいちいちFTPでソースを送って、コンパイルをしなければならない。
一手間かもしれませんが、一手間というのはたいてい大量に行う可能性が高く、
めんどくさいことが多い。)

もっと絞っていうのも現在よく使われるSVMのツールは
・SVM-Light
・libSVM
・TinySVM
ですね。

もちろん3つあるには理由があって、
最新技術という意味ではSVM-Lightが良いみたいです。
libSVMはスクリプトやインターフェースの使いやすさでは定評があります。
TinySVMは国産ということや、計算速度の速さ、P/Rの値を出してくれたりと使いやすいです。

でもちろんそれぞれを合わせられる箇所と言う部分もあるわけです。
しかしできないのはソースを2つ以上読まなければならないこと。
SVMを学んで、その意欲があり、公開できる人かな?
これは結構無駄というか。
単純に開発の部分に入るので研究者の人たちはあまりしない気がします。
それをするならもっと良い方法を考える時間に使うかと。
ならば趣味で行うレベルになってしまい誰がするのでしょう?

なので趣味ではなく自分の時間を削ってまで問題のプログラムを単に開発して、
公開することにどれくらいの利益があるのでしょう。

もう少し条件のようなものがあって、
それぞれの先駆者たちは自分たちのツールを開発しているので、
それを非公開にしている(非公開は当たり前ですね。利権関係もありますから)
これを使用しているので公開されているツールは必要ないことが多いと予測すると、
このような公開ツールを使うのは学生や趣味でしている人(まさに私)で
そのような人たちに使ってもらうのに公開することでその人たちに利益はあるのかと言うことですね。
学ぶ時間短縮ではなく、長い目で見て、ソースを勉強した方が良いなども含めると。
つまり下手に教えすぎると何も学べなくなる状態になるのと同じです。
そこら辺のジレンマ。
[PR]
by kagurayouyou | 2006-09-09 09:23 | プログラミング
TCP/IPのマルチスレッドプログラミングをしているのですが、
Windowsに移植使用したところCygwinなどの環境ではないと駄目なんですね。
今知りましたよ。。。

pthreadを利用してSuse Linux+GNU C++(g++)で作っていました。

なのでアーキテクチャを変更するか、
Windows版とLinux版を二つ作るかのどちらかですね。
通常サーバクライアントシステムはLinuxが主流なので、
一応Linuxで作っていけば良いと思います。

LinuxはWindowsのAPIが使えませんが(たぶん)
WindowsはCygwinなどで使用できますし。
仮想Linuxが最近は多くなってきていますし。

Vistaは標準でXenも搭載しているようですから、将来的には
LinuxとWindowsが共同で入っているデベロッパーとしては便利になりますね。

話は変わりますけど、
よくサイバーアニメ(SFアニメ)でプログラミングやコンピュータの授業がありますが、
あれは実現するのでしょうか?
むしろ中学や高校でプログラムの授業や数学A(だったかな?)から無くなりましたし、
衰退する一方ですね。

個人的には授業があった方がいいと思います。
というのも手っ取り早く分解作業と創造作業ができるからです。
私の原点はRPGツクールなのですが、
「キャラクタは話さない。キャラクタが話しているようにしているだけだ」
ということが衝撃でした。
つまりそれまではキャラクタのプログラムからメッセージウィンドウを出すし、
キャラクタのプログラムからメッセージがでてくるのだと思っていました。
当たり前なんですが、全く別なんですよね。
ウィンドウプログラムは別だからキャラクタが何していようが構わない。
逆に言えば、合わせることも大事だし、合わせなくて面白いものを作ることができる。
キャラクタ中心主義(プログラム的に)だった私はプログラム中心主義になったわけです。
なので制約が少なく、なんでもできてしまうということを学びました。
この考えは数学の因数分解の概念や化学の構造に至るまで応用できたと思っています。

その物を構成している物は何か?
それを作るためにはどのような部品が必要か。

これが私にとって創造の原点ですね。
[PR]
by kagurayouyou | 2006-08-25 21:41 | プログラミング
【プログラミング】
HPの方をAjax仕様にしたいと思うのですが、どこをAjaxにすれば良いのかが問題(笑)
せめてxmlにしようと思うのですけれども、拡張子がhtmlに馴れているせいか、
どうもxmlに違和感があって気持ちが悪い。
Ajaxならば拡張子がhtmlでもOKなんですがわざわざする必要もないしね。
IFrameで十分だし。(ただしブラウザによって表示が変わるのでしない)
でも久しぶりにhtml関係を勉強していたら、面白い技術が多い。

せめてデファクトスタンダードにならない限り、コンピュータの世界では便利でも不便。
IEはかなり独自性あるのにも関わらず、日本ではかなりの人が使っているので、
IE標準だととりあえずは安心ですけどね。

そろそろサイトのデザイン変えないと結構不便なところもあるしね。

そんなやりたいことばっかり言っていると現実が間に合わなくなってきた。
現在同時進行状況
・LinuxでのC++のプログラミング(人工知能・無能関係)
・C#でのプログラミング(人工知能・無能関係)
・UML(人工知能・無能関係)
・SQL(人工知能・無能関係)
・SVM(研究関係)
・質問応答システム(研究関係)
・XML(研究関係か趣味)
・Ajax(趣味)

このほかにもプログラミングとは関係ない趣味が同時進行しているので結構きつい。
人工知能・無能関係は趣味なので結構しなくても良い作業だったりする。
どうも2週間ほど遊んでしまったので研究がやばい状況に。
[PR]
by kagurayouyou | 2006-08-16 10:32 | プログラミング
【戯言】
どうもmixiも書いているとこっちがおろそかになる。
両方一辺に投稿できる方法はないのだろうか。
まあ、あったらあまり意味ないかもしれないね。

日記なんてそもそも見られたがりがすることで(私も含めて)
私を知って欲しいと言う欲求があるのです。
自分のためだけなら本当に公開しない方法なんていくらでもあるしね。
私は公開することで人様の意見や人様の役に立つかもしれないと思って書いています。
めんどくさくなったらおしまいです。

森博嗣さんの日記も復活していて吃驚。
毎日だし膨大な量。
とても真似できないな。
売れると言う確信があるならば、書くけどね。
森さんのは読みたいと思える文章だし、そこに哲学性や新しい知識が手に入る。
だから買うのでしょう。

研究者としての森という項目がありますが、JABEE審査として、
この状態で大丈夫なのでしょうか。
結構うちの先生方はあたふた(否、きっちりと)しているんですが。
証拠が残ればいいのかな。
でも点数基準がきっちりしていないとまずかったはずじゃ…。
とか考えていたら、なんと退職されていたのですね。
知らなかった。
だから日記がここまで莫大な量がかけるのかな?

ここまで来るとやめた方がいいのかもしれませんが、
研究者が一人辞めるということは私にとっては悲しいですね。
と言うのも莫大な(費用も体積量も)研究施設があるのに使える研究者と言うのは
少ないのです。
問題は二足の草鞋は無理ではないということですが、
教授、助教授というのは三足、四足の草鞋くらいのレベルがあると思います。
しかしそれを知っているのは僅かな人たちだと思います。
私も表立って知ることになったのは大学に入るよりも前の森さんのエッセイですし、
小学校の先生とか先生というものは大変なんだと言うのはわかっておりましたが、
研究者としてである教授、助教授もまたそれ以上に大変さは知りませんでした。
実際無意味な会議が多いですし、(私は先生でないのででたことはありませんが、
話を聞くとです。)そもそも助教授、教授という役職の定義自体がおかしいのでは?
とすら思ってしまいます。
やっぱり公務員だなと思うところがかなり多いですね。
小学校、中学校や高校はいいのかもしれませんが、
先生たちは国家公務員としての自覚と言うのは全くないと思いますよ。
無いと困るとかそういう話じゃなくて、
研究者と教育者としての自覚しかないと思いますよと言う意味です。
なのに公務員レベルでの話をされても無駄なことが増えるだけ。
中に出世のためという人がいるのでそんなことになるのでしょうね。

教授陣のスタンスも結構違いますし。
それなりの独自の価値観を持っていて、学生がそれに対応できるかどうか。
そんなことなどもあります。

雑用係って作れないものですかね。完全守秘義務で。
まあ、それをロボットと言いますけどね。
たとえば点数をつけるロボットがいるだけでだいぶ良いと思いますよ。
あやふやなところは抜かしておきますが、
記号問題とか選択問題とか。
小中高とかと違って個人へのフォローアップはいりませんからね。
結果の統計さえ出せれば、次からはここを重点的に教えようとか一目瞭然ですし。

ほんのちょっとしたことが、莫大なコストがかかりますけど、
一つ一つ潰していかないとなぁ。

【プログラミング】
スレッドとかのプログラムを組むのはいいけれど、
他のスレッドからの参照がめんどくさかったり、デッドロックを防ぐためにも、
できるだけアルゴリズムを考えましょう。
それだけで、結構簡単にできた。

public staticと単にstatic。どちらがメモリ空間を取らないのだろう?
ほかに
public static int i;

public static hoge{
global int i;
}
とはどう違うのだろう。
やはりC#の本は買わないとまずいかな。
一冊も持っていないし。
[PR]
by kagurayouyou | 2006-08-06 21:40 | プログラミング

開発状況

これはもう独立的なカテゴリとして書いたほうがよいのだろうか?
進行状況。あきっぽい私なのであと1ヶ月以内に更新停まるんだろうなぁ。
それは飽きっぽいっていうか、ほかの事に熱中してしまうからというのもある。
機能としてはよくあるGUIの画像変更。ランダム返答。時間帯によるランダム返答。
コマンドによる返答。(たとえば”/nadenade”とかすると微笑んだりとか。
ここら辺は完全な趣味の範囲なんですが他の実務的なコマンドにも使えるので実装。)
現在のところは辞書型です。しかもただのランダム。
マルコフを実装しようと思うけど、その前にRubyでChasenにするかどうかが問題。
結局C#でChasenを使えてないから。
Windowsでネットワークプログラミングをしたことないし(あったかもしれないけど
忘れました。)Rubyならネットワークに強そうだから、いっそのことC#じゃなくて
Rubyでいいじゃんって話になってきました。本に書いてあるとおりすればいいわけだし。
しかも人工無脳の話を漁るとRubyで書いている人が多そう。単にRubyを
覚えるのがめんどくさいだけなんですけどね。本読んで基礎は頭に入りましたけど。
Cじゃ駄目、難しいのだろうか?

ちなみにGUIに使用している画像は「憂ちゃんの新妻だいあり~」から橘憂を拝借。
やっぱりフェイスパターンが多いのが一番楽しい。
けど、それを見てニヤニヤしているなんて結局は自慰にしかすぎないですから、
外から見るとすっげーキモイ奴に思われるだろう。
もちろんデータ勝手に切り出して使っているので配布できないのが欠点。

IRCが一番公開がしやすそうですけど難しそう(調べてもいないけど)

というわけで基本方針が少しずつ、(まったりとは言いません)
やって行きたいと思ってます。
[PR]
by kagurayouyou | 2005-10-04 14:03 | プログラミング
プログラムのレポートは終りました。
検索で同じクラスの人にここにこられるのはなんか厭なので
詳しくは採点してもらってから書きます。
今でもちょっとしたことでfor文が綺麗に書けたりすると嬉しくなりますね。
1点だけ書かせてもらいたいのは、どうやっても綺麗にplotできない!!
確率論の話なのでしょうがないのかもしれませんが、
まず綺麗に元の図の時点であんまりありえないグラフだし、
それをバラしたものを復元するのがとてもおしいグラフになってしまう。
例えば97%くらいで変動するのに500回中4回変動する。
経験則で言えばとても確率が低いので10回に1回の期間で変動されるとよろしくない。
なので先生におかしいと言われる。
しかしいくら見てもプログラム自体は間違っていない(と思う)し、
あくまでも確率だからということで片付けてしまうことができる。
と言いたいんですけど、そう簡単に言えないので綺麗なグラフが書けるまで
seedの値を変えまくりです。
[PR]
by kagurayouyou | 2005-04-30 00:25 | プログラミング

PHPのinclude

現代魔法として久しぶりに話が出来ます。嬉しい♪

PHPでヘッダーとフッターを付け加える方法
ただ単にホームページ自体を作る要領でヘッダーと中身とフッターを作ります。
あとはheader.incにヘッダーを書いて、footer.incにフッターを書いて、
nakami.phpに

<?php include("header.inc"); ?>

中身

<?php include("footer.inc"); ?>

で終わりです。あとは両方ともアップすればOK。
サーバサイドで勝手に繋げてくれるので本来のソースとなんら変わりありません。
これで容量が小さいサーバでも多少軽減が出来ます。

ちなみにこういうのってXMLとXSLTスタイルシートでも出来ます。
というかそちらの方がそのために作られたものだと思います。
PHP自体にもセキュリティホールが結構ありますし、
サーバによって使えなかったりしますのでそちらの方がいいかもしれません。
ただし他に時間などや計算などを入れるとPHPの方でないと出来ないですから、
自分のサイトに合わせてしたほうがいいですね。
[PR]
by kagurayouyou | 2005-03-30 08:29 | プログラミング