Programming

プロジェクト: C言語で再実装 2

実装続行。朝から夕方までかけて、再計算まで実装した。viterbiアルゴリズムを実装してへんから確認ができんが、多分バグも取れた…筈。コーパス全体を読んで計算すると、30分かかった。Schemeでの実装と比べるとかなり速くなった*1が、ハッシュテーブルの実…

プロジェクト: Cで再実装

うーん、Gaucheで実装したらもうちょっと速くなりそうな気もするけど、どうせやるならCでカリカリに書いたらどのくらい速くなるか試したほうが良い気がしたので実装開始。 とりあえずCの書き方を半分くらい忘れてるんでエラー出しまくって思い出したり、ハッ…

プロジェクト: EMアルゴリズム稼働

先生にML(Google Groups)で質問したら、等価ではないが、単語出力確率を遷移に依存して出力するのではなく、状態に依存して出力するようにして場合を減らすのが効果的かつ一般的らしいので、その方向で実装したら、ちゃんと動いてかつ速くなった。精度に関し…

プロジェクト: あかんわ…

0になるというのは、一つの文毎に再計算してたのが間違いらしい。各文毎に計算したものを足し合わせて、最後に再計算という手順のようなのでそれで実装。 これでなんとかいけるかな、とか思ってたが、遂に最初にぶつかった問題に戻ってきた。単語出力確率を…

プロジェクト: プログラムの高速化

現状だと初期化とかがありえない位遅いんで、とりあえず0になるところを小さい値で無理矢理ごまかして動くようにしておいて、高速化を図ることにした。 まず初期化が死ぬ程遅いんやが、何でかと思ったらstring-tokenizeしてたのが遅かった。読み込みファイル…

プロジェクト: ランダム文生成 n-gramに一般化

なんか日中はすこぶるやる気が出んかったんやが、夕方から再び作業開始。 リストを使って2-gram専用からn-gram用へ改造したら、ちょっと遅くなったものの割にすんなりいけた。コードも500byteくらいしか増えてない。n-gramのnを増やしていったとき、重複しな…

プロジェクト 昨日の続き

結局昨日やったリスト形式では登録時のコストで死ねる*1んで、結局ハッシュリストで2-gramのカウントまでやってしまうことにした。よくわからんが、make-hash-tableをしようと思ったらmzschemeではsrfi-69と組み込み両方入っててよくわからん(なんか扱うクラ…

プロジェクト

ようやく今日、プログラムを組み始めた。処理系は、最初はGaucheでやろうかと思ってたけど、とりあえず学校のMacでも動く(PLT)DrSchemeでやってみる。これなら一応どこでも同じ環境になる筈…*1。昨日の晩資料を読んでおいて、設計を考えてきていたので割とス…

風水CGI AJAX版作った

姓名判断はXMLをバカ正直に使ってたが、今回は昨日書いたJSONを使って通信することにした。いやぁ、楽やわこれ。DOMでガリガリ掘っていく必要がないからコードが2/3くらいに縮んだ。 今回は3ページに表示を分けてみたが、2ページ目がちょっと分量多いんよな……

GaucheでJSONを送信したい

と思ったので、SchemeでJSONの実装がないか適当に検索したら、なんかPackratとかいう構文解析ライブラリを利用したややこしい実装が出てきたが、Gaucheのモジュールとかないし、解析機能要らんし、ちょっとJSON作って送信したいだけなのにソース読むとか面倒…

風水CGI実装(?)日記

さしあたりめっちゃ適当に相性判断を付けて、メッセージ入力に勤しんだ。 パターンは10個から2個選ぶ組合せなんで、45通りか。割と打ったな。 結局今のところ、相性判断のインターフェイスは一人目を判断した結果ページから、相手の生年月日を入力させて次の…

風水CGI実装(?)日記

昨日中途半端で終わってた星毎の運勢メッセージを入力*1し、金運とかの運勢を強化する方法を出すメッセージを入力し、適当に表示できるところまで。あと細かいエラー処理とかしたけど、まぁどうでもよろしい。 大体システムと中身は見せられるくらいになった…

黒門風水CGI実装開始

だらだら開始。結局Gaucheで実装。まぁ、姓名判断で培ったノウハウを生かしてやってるんで、とりあえず基本の五行を出す為に風水歴のDBを作って、あとは適当なテーブルでルーチンを組んで自分の星とかを出すところまで出来た。今、メッセージを入力するあた…

やっぱり

風水CGIやが、やっぱりGaucheでDBはgdbmで実装するか。占いのデータにいちいちSQL使っても良いことないしなぁ…。うん、そうしよう。

どうしようか

JAVAの自作HTTPサーバで占いを実装しよう、とか言ってたが、やっぱりそんな汎用性の無いことは止めにして、折角使いさしているPHPを使って実装しようかと思案中。あぁ、でもそれやとSchemeでもええなぁ…。GaucheでMySQLか。リハビリも兼ねてやろうかな。 暇…

演習V/提出

今日は本格的にバグ取りをやって、さっきやっと提出した。 タイムアウトの処理で、HashMapの要素を一つ一つチェックしてタイムアウトしてるやつを撥ねるという処理をするんやが、ここでNullPointerExceptionが出てた。いまいち原因不明やったんやが、どうもH…

演習V/やっと通信

今回GWTでAjaxなChatクライアントを作ろう、というのは、実はブラウザとリッチクライアントで喋るのを実装してみよう、という意図やった。開発開始して早2ヶ月(うち1ヶ月は休眠)、遂にその目的に手が届く段階に来た。 今日の作業始めは、GWTで作ったクライア…

演習V/簡易HTTPサーバによるチャットシステムの実装

丁度丸一ヶ月程放置してたが、そろそろ出さんとヤバいので昨日から作業を開始して、なんとかサーバとGWTで作ったクライアントが通信するまでできた。サーバ側の実装はチャット機能のスケルトンまでできてたんで、結構作業量は少ないかと思いきやバグが出る出…

演習V/SSL暗号化通信

http://mikilab.doshisha.ac.jp/dia/research/report/2005/0918/004/report20050918004.html このへんを見ながらやったら楽にできるやろ、と思って昨日やってみたんやが、何故かnot trusted certification foundとか出て弾かれる…。 なんでやー、と悶えなが…

GWT - HTTPRequestとか使ったよ

Ajaxなら非同期通信、ということでHTTPRequest。onreadystatechangeに関数を指定する代わりに、読み込んだあと実行されるメソッドを含むResponseTextHandlerとかいうのを作らんといかんが、リファレンス見たら普通に使えるな。

Google Web Toolkit - JavaでAJAXアプリを記述→Javascriptに変換

http://code.google.com/webtoolkit/ これはどうなんだ。演習で丁度AJAXアプリとJAVAで書いたサーバの連携を考えてたから、週末に使ってみよう。…と思ったが、思い余ってwindows版をちょっとだけ使ってみた。基本的にはコマンドラインツールなんやが、eclips…

暗号化続き

起きてすぐデバッグ。ちゃんと調べたら外部表現が違うんじゃなくて、配列はtoStringしてもポインタが表示されるだけやった。 じゃあうまくいってるんかというと全く逆で、equalなときにエラーを吐くように書いてた。阿呆か…。 原因を探ると、ちゃんと受信で…

暗号化

なんとなくやりたくなったのでまた演習の続き。今日は認証関係のあたりを実装しようと思ったんやが、SecretKeySpecとかCipherとかを使ってごにょごにょするつもりやったんやがよくわからん…。とりあえずパラメータの意味とか手順とかはわかったんでエラーは…

高速フィボナッチ

http://oss.timedia.co.jp/index.fcgi/kahua-web/show/ossz/oneline/2004-11-29 古い記事やけど、なんか最近知った。フィボナッチ数をO(log n)で計算するアルゴリズム。考えてみればフィボナッチ数の一般項とかでもn乗が入ってるから、あれをm^nの要領でO(lo…

XMLHttpRequestの重複リクエストとか

例えばキーボードを打つことがトリガーとなってリクエストが飛ぶ場合(例えば自動で逐次検索するとか)、リクエストが連続して出ることは覚悟せんといかん。その場合の対処としては何が考えられるやろうか。

オブジェクト指向っぽい

先日AJAXっぽいことをしたが、Javascriptの部分が行きあたりばったりでベタに書いてしまっていたんで、改良を加えつつ整理した。そのときに調べたJavascriptのオプジェクト指向なあたりをメモ。

ajaxっぽいことをしてみる昨日の続き

去年の六甲祭用に作った姓名判断CGIを適当にAjaxっぽくした。この程度でAjaxやっても全く有難味がわからんというか殆ど非同期に処理する部分が無いんで普通のDHTMLみたいになってるんやが*1、JavascriptとSchemeでXMLを扱う練習にはなったかも。一応手元のIE…

SXMLでajaxっぽいことをしてみる

AJAXは非同期通信によるUI改善アプローチの一つやってーのは知ってたが、実は詳しくは知らんかったんでちょっとやってみる。

久しぶりにSICPとか開いたり

リハビリに某所の基本問題を解く。流石に基本なんでさくさく進むが、整数の分割数を求める問題の反復プロセス化を考えて詰まった。*1 何かSICPで似たような問題を見た気がしたんで引っぱり出して探してみると、P22のcount-changeが近かった。テーブル化とか…

Schemeでのマージソートの実装を考えていたらそのまま昼寝に突入する。どう考えてもスマートにいかないんで、結局Gaucheに載ってるstable-sort!のソースを見た。あー、なんか偉い人が考えた方法があるんね…。set-cdr!とclosureをうまく使ってるわ。俺では絶…