2006-09-01から1ヶ月間の記事一覧
CLWFKのkashiraは実はちゃんと機能してないんじゃないか?と疑問を持った。実装読んでもさっぱりわからないから確証はないのだけれど。もうちょっと調べてみても良いのだが、kashiraのうしろにくるプリミティブは以下の20通りしかない。プリミティブを足した…
Ume Gothicはさざなみゴシック派生のフリーなフォント、のように見える。ざっと眺めてみた限り、よく使われるグリフにはかなり手が入っているように感じた。具体的にどれぐらいの数のグリフが修正されているのかは、書かれていないのでよくわからない。
提出を自動化したら採点も自動化したい。人というのは怠惰な生き物なのでそう思うわけです。しかし、送られてきたプログラムをそのまま実行する訳にはいかない。バグで無限ループに陥るぐらいならともかく、攻撃コードが入っていたりした場合を考えると防御…
後期にTAとしてプログラミングの演習を2ヶ月ほど担当することになった。体系的な教育を受けていないのでやや不安があるのは否めないが、二年生向けの演習なのでなんとかなるだろう。 演習には課題がつき物だ。課題を出したら提出させないといけないが、40人…
研究室にひとりでダラダラしてたら、なんかブーンという音が。なにかと思って視線をずらすと、なんとすんごい大きな虫が飛んでる。蛾かと思ったらゴキブリだった。 今は窓のところにゴキブリがいてるけど、倒すための武器がないので撤退します。明日殺虫剤買…
情報科学若手の会に行ったときに、やるぶの人がhtmlhelpをプッシュしてたので、gnochmをインストールしてみた。まずはGaucheの日本語版リファレンスマニュアルを入れてみたのだが、文字化けする。泣ける。 時間もないというのにちょっと深追いしてみたところ…
CompizがForkしたらしい。新しいプロジェクトの名前はBeryl。Compizの開発者は忙しくてレスポンスがなかなか返ってこないとか、Novellの中の人なのでgconf依存をなくすようなパッチが受け入れられる訳がないとか、そういった事情があるようだ。 Compizはしば…
リストに対して操作を行うときに、その要素によって次の要素に対する処理を変えたい場合、というのが存在する。例えば、和田研フォントキットでは最終的なアウトラインデータは((angle 1 2) (bezier 2 2) (bezier 2 3)(angle 1 1))みたいな感じの…
CommonLispは基本的にSchemeとあまりかわらないと思う。Hygienic Macroじゃないとか、末尾再帰の最適化が言語仕様にない(CMUCLには実装してあるっぽいけど)とか、そういう点を除けば。 ただ、Web上でドキュメントがみつけられないので、ファイル入出力とか…
ここから先のコードはSchemeで。さっきは再帰いいよね!という話を書いたので、再帰よくないよね!という話も書いておきたいと思う。再帰のよくないところは、名前を付けないといけないところだと思う。例えば、階乗計算を考えると (define (fact n) (if (= …
続きを書こう。forではループインデックスの更新を行う場所が構文内に用意されているので、それ以外の場所で更新を行うのはイディオムから外れることになり気持ち悪い、という話だった。これを再帰で書くとどうなるか。 void convertToSVG(point_list, index…
yoko方向にパーツを組み合わせるためのaffine-yoko-nについて調べた。力不足でコードからはアルゴリズムが読み取れなかったが、論文によると各パーツの幅はパーツの複雑度の比によって決定されているようだ。 調査するのににすいのパーツを含んだ字を使って…
データに先にvalidationをかけておけば、実際に処理を行う際には誤った形のデータを扱ったときのためにエラーチェックを行う必要がなくなる。そうすると、処理コードがだいぶ簡潔に書ける。
和田研フォントキットの出力を見るのにいちいちsfdに出力してfontforgeで開くのがだるくなってきたので、SVGで出力するコードを書いてみた。SVGの細かいところにはまったりした(?が足りないとかな!)けど、3時間ぐらいで終わった。もっと早くやれば良かっ…
破壊的代入を使うのは嫌いなのだけれど、ループでいろんな変数を持って回るのも嫌い。mapとかfor-eachで済む時はいいんだけど、済まない時も多い。ファイルから読みこむ時とかはメモリ上に読み込んでリストに変換してからmapかけたりするとメモリを大量に消…
timeouttopはtimeoutでwakeupした回数の多いアプリケーションを調べるためのソフトウェア。ただし、使うためにはKernelにパッチを当てる必要がある。
GRINEditを見ていて、制約解消にちょっと興味を持った。 pyacc(Python用のyaccだと思う)を見て、別の方向に反応してる人がいた。 packrat parserの利点がわかった。要するに、普通にパーサコンビネータを書くとバックトラックで指数関数時間かかってしまう…
敵を知り、己を知らば百戦危うからず。なにかを為そうとするときは、その対象についてよく知っておくに越したことは無い。というわけで、いろいろな性質を調べてみることにする。 まず、全文字数は12239。Zipfの法則により、よく使われる文字はせいぜい2000…
iPod nanoを買ったはいいのだが、gtkpodでは接続できない。どうも、初回はiTunesで曲を入れてやらないといけないみたい。と言う事でWindowsでiTunes7を入れてみたのだが、やっぱりiPodが認識されない。調べてみると、iTunes7の不具合らしい。 いろいろ試して…
ド・カステリョのアルゴリズムを使えばいんだ!このアルゴリズム、「分割を繰り返していくとベジェ曲線になります」とか紹介されてるのを読んで、「ああ、繰り返さないといけないのか…」と勘違いしていたんだけど、1つの点を求めるだけなら別に繰り返す必要…
SchemeとCommon Lispで速度はどれぐらい違うのかを知りたくなって、ちょっと調べてみた。テストする実装にはGaucheとCMUCLを用いた。だらだらとループしながら適当な計算を行う同等なプログラムを書いて実行すると、圧倒的にCMUCLの方が速かった。5秒vs0.2秒…
CLWFKの開発者に対するボトルネックは2つあって、ひとつはフォント生成の遅さ、もうひとつはコードのコンパイル時間の遅さである。フォント生成が遅いのはグリフ数が多いので仕方ないとして、コードのコンパイルの方をなんとかしてみたい。 compile.lがmake…
apt-get install lokkit インストール自体は一行で終わってしまった。後はlokkitコマンドを実行してセキュリティレベルの設定を行うだけでファイアウォールの設定は完了する。非常にお手軽で良い…と思ったのだけれど、ネットワークの場所を移動するとネット…
曲線をカットするというのはどうすればいいのか。prim-all.lを見るとhidariは700個以上使われているので、手作業で修正するのは嫌だ。自動でやりたい。ベジェ曲線への変換は比較的簡単に行えるので良いとして、その後どうやって3点の座標に戻せば良いのだろ…
フォントがビルドできると思うと、俄然やる気が出てきた。和田研フォントキットを改善するためにはどうすればいいか。VLGothicにしろ潮待フォントにしろ、人力ですべてのグリフを改善する事は不可能に近いので、自動で改善できる事にはやはり意味がある。ゴ…
というネタを思い付いたが、作ってもビットマップではどうも面白くないな…。
Gnomeを使おうがXfceを使おうが、一番メモリを使ってるのはFirefoxなので、これをどうにかしないとどうにもならないと思った。
ソフトウェア科学会に行ってきた。 Suffix Array を利用した正規表現検索を聞くのが目的で、実際に聞いてきたのだが、どちらかというとProceeding的な発表で、いますぐ使えるという類のものではなかった。残念。 もぶろげっとの動画対応というのも聞いてきた…
Pangoで縦書テキストが表示可能になるらしいですよ。素晴らしい。
gothic.lのinsert-widthが破壊的にパーツのwidthratioを変更するのだが、パーツの情報は複数の文字で共有されており、しかもwidthratioは最初の一回だけしか登録されない、という仕様になっているのがこのよくわからない挙動の原因だった。破壊的代入は悪で…