2007-03-01から1ヶ月間の記事一覧

プログラミング C#

ちょっと前から少しずつ、"プログラミング C#" を読んでいる。 C 言語しか知らない人からすると、C から変更された点や C# での新機能はとても斬新に感じられる。インタフェースとか、プロパティとか、その他いろいろ。C 言語が作られた時点では知られていな…

SafariとFirefox

いろいろいじってたら、Firefoxだと正しく動作するのにSafariだと文字化けするようになってしまった。

wiki

Ajaxで適当なインタフェースを作った。動きがあるってのはそれだけでおもしろい。 あとはファイル入出力のあたりなんだけど、この部分の実装はPythonとかでやろうかな。やっぱ大きいファイルをごりごりと操作するときは破壊的にやりたい。

WASHとText.Html

WASH のいいところは、コンパイルが通れば CGI が valid な html を生成する点であるが、Ajax でいろいろやろうとするとむしろ困る。部分的な html が吐けないからね。 で、Text.Html なわけだけれど、これはちょっとよくわからん。入力された内容を pre タ…

wiki

処理速度をあげるために、パーシング専用の CGI を作って Ajax でなんとかしてやろうとか思ったんですが、やっぱりいろいろと難しそうである。Ajaxに 関する基礎知識が全然ないのが問題です。Google とか Yahoo の API でも使って作法を勉強してみるかな…。…

Ajax

Haskell で wiki パーサを書いて、xmlhttprequest で動的に表示させてみた。とりあえずうまく動いている。ちょっと調子に乗って、keyup イベントでパーサを起動するようにしてみた。富豪言語と名高い Haskell だから、入力があるたびにパーサが動いたら下手…

褒める

今日から、"素晴らしい"を口癖にしたいと思います。 僕はもともと人とか物を否定的に見すぎる傾向にある。 もっと大人にならないといけません。 OCaml勉強会に参加しているみなさんは、結構"素晴らしい"と言っている気がする。 というか、勉強会に参加してい…

使える言語

使える言語は、HaskellとPythonとC#です、と言えるように頑張ろうと思った。なんか普通すぎておもしろくないけど。自然言語では、英語が苦労なく読み書きできるようになりたいです。というわけで、今友達に高校時代の参考書をくださいと頼んでます。もらった…

うーん。

どうやら、WASH-2.10だと半角の空白をエスケープした結果は%20になる。でも、WASH-2.9だと+になるっぽい。 困りますね。

日本語のページ名

どうもうまくいかんね。記号とかをURLに変換してくれる関数はWASHに入ってたから、空白とか記号が入ってるページ名はすぐに扱えるようになりました。 で、次は日本語のページ名。試しに日本語を入れてみたんだけど、どうにもうまくいかない。手元のインタプ…

やっぱりプレビューが遅い

ファイル入出力部を変えてから、結構大きなページでも問題なく表示できている。(1秒かかるかかからないかくらい) でも、いろいろ試したけどやっぱりプレビューは遅い。何故。プレビューを繰り返し押すと、回数に比例して遅くなっていくことが判明した。最初…

処理速度が速度アップ!

しました。fswikiなどと比べると、ページの内容が増えたときの処理時間の増加量が異常だったので、なんとかしたいなぁと思ってました。で、何をしたかというと、今までは日本語を扱うためにreadとshowを使ってエスケープしてたところをWASHに入ってるencode…

どうしよう

あの重さはどうしようもないものだと確認したので、なんとか対策を練らないといけません。有力な解決策はfswikiのパート編集です。あれはかなり便利だからどっちにしろあったほうがいいし。となるとページをファイルで管理するよりもデータベースを使ったほ…

スタイルシートに対応

少しはまともにスタイルシートが適用されるように修正しました。ただ、コンパイルがめんどくさいのでアップはしてません。

遅延評価

例のwikiでは、Readerモナドに環境についての情報が全部入っている。 例えば、サイドバーを使わないページを出力するときでも、サイドバーのデータをファイルから読み込むようになっている。でも、Haskellならどうせ遅延評価されるから関係ないと思ってた。…

妖怪モナドモドキ

とても便利な妖怪。同じ型のモナドモドキはどんどんbindできて、でっかくなる。

反省点

自分の性質の中で改善するべきものはたくさんある。そのなかでも、最も改善するのが簡単で、しかも優先度が高いものは、"ちゃんと考えてから話す"ことである。話すことが苦手なのかわからないけど、話している間は頭が普段と別モードになってるのはわかる。…

モジュール化

今回の wiki 製作では、設計というものをほとんどやらずに、いきなりコードを書き始めた。 WASH が優秀なのでぐちゃぐちゃにはならなかったものの、いきあたりばったりなモジュール分割で、各モジュールの役目がよくわからない状況になってしまった。今回は …

報告

上に書いた方法(環境をネストさせる方法)で、とりあえず動作することは確認しました。WASHは、最初のページ(CGI ())からどのページまで進んだかっていう状態を文字列として保存しておいて、サーバにアクセスするたびに状態を復元している感じなので、環境もs…

どうしようかね。

考えられる解決策は、Readerモナドの中で同じ環境を持ったReaderモナドを作ること。非常に無駄な感じがして嫌ですが、パーサは環境がないと動かないように作ってあるので仕方ないです。なんかスマートな方法はないのかねー。

wiki 全体を Reader モナドにくるむ

昨日からずっと、wiki 全体を Reader モナドにくるもうと思って作業を続けてきたわけですが、結論から言うと、失敗しました。submit っていう関数の型らへんで。以下、その原因など。WASH を知らないと全然わからないとは思うけど。WASH では、ページの遷移…

訂正!!

ごめん、動いてる! 上と同じソースをx86のdebianのetchでコンパイルして(ghc-6.6、WashNGo-2.9)、x86のようわからんLinux(2.4のカーネル、apache-1.3.37)で動かしたら動いた。うまくいかない環境は、PowerPCのMacOSX Tigerのghc6.6のWashNGo-2.10でコンパイ…

WASHでのCookieの扱い

WIKIに簡単なパスワード認証の機能を付けようと思って、Cookieの使い方についていろいろ調べてみた。 そもそもサンプルコードがコンパイルできない(型エラー)のでとてもあやしいが。 型が合うように適当にサンプルを書き換えたソースがこれ。 module Main wh…

現在考え中のこと

いろいろ他のこともやりながら、少しずつwikiを作っています。で、現在考えていること。 wiki全体をReader(必要ならState)でくくってしまう。そうすると、現在はソースファイルに直接書き込んでいる設定項目が動的に読み込めるようになりそう。他にもパスワ…