2008-11-01から1ヶ月間の記事一覧

Luaのはまりどころ

マイクロスレッドの比較対象のひとつとしてlua5.1を使ってみたけど、Luaって最近の言語と比べて結構独特な部分が多いなと思いました。以下、はまったところ: Tableを配列風に使うときの開始インデックスは1であることを忘れる Tableの存在しないインデックス…

0usersってどういうことでしょうね

http://b.hatena.ne.jp/bellbind/ http://b.hatena.ne.jp/entry/http://www.reddit.com/r/programming/comments/7fcaq/oo_programming_why_traits_rule_and_mixins_and/

新はてブの本文埋め込みがうざいので、Stylishで消してみる

新しいはてブは一覧ページでも本文を埋め込むようになったけど、どうもこの本文はノイズが多すぎて、一覧性にも支障があるので、Stylishを使ってユーザーCSSで消すことにしました。タグで絞り込むと非表示表示を切り替えられるのに、絞り込まないとそれがな…

merbを使ってみる

rails風にwebアプリを作成できる話題のmerbを使ってみました。 インストール すでにgem,rails,mongrelが入っているcygwin上にいれてみました*1。まずはgemの更新 gem update gem cleanそしてmerbを入れる gem install merb入ったのはmerb-1.0.1でした。デフ…

gccでのx86とamd64の時のsizeofの値

linux上でgcc-4.3を使った場合。違いはptr型、long、long double、size_t、time_tなどで起こる。 x86 sizeof(int) = 4 sizeof(void *) = 4 sizeof(size_t) = 4 sizeof(ptrdiff_t) = 4 sizeof(wchar_t) = 4 sizeof(void) = 1 sizeof(clock_t) = 4 sizeof(time…

つづき、文字単位コピーからブロック単位コピーにする

fgetcで書ければ、freadで書ける - ラシウラでは、fgetcからfreadを使うように変えました。これは機械的に変換しただけでしたが、ここからつぎは1文字づつコピーしている部分を、memcpyを使用して、ブロック単位でコピーするように変えてみましょう。 まずリ…

fgetcで書ければ、freadで書ける

初心者では、fgetcで一文字づつ処理するコードは記述できるのに、バッファを使うfreadで書くのに悩む人もいます。単純にfgetcで一文字づつ処理するコードは、以下のような形になるでしょう for (;;) { int ch = fgetc(file); if (ch == EOF) break; ... } こ…

PythonでDSL記法化に挑戦してみた

PythonでのDSL風記述に挑戦するため、PythonでのProlog風のソルバーを作ってみました。エンジンの実装は、 合併のお知らせ|OKIソフトウェア をベースにしています。PythonでPrologのDSLをやってるものとしては、以下のものがありました: http://code.active…

C言語の理解度を突いてみる

Cが使えると自称する人で、本当にC言語の意味を理解できてる人はわずかだったりします。というかリファレンスマニュアル等を見たことが無い人も多かったりするし、かれらが参考にしたリソースが仕様を理解して書かれているかどうか怪しいものも多い。実装が…

C言語の理解度を高めるための課題の案

配列シャッフルをC言語(ISO C89)で書くと以下のようになります: #include <stdlib.h> #include <math.h> #include <stdio.h> static void shuffle(const char ** const array); static void swap(const char ** const array, int i, int j); static const char * names[] = { "taro", "j</stdio.h></math.h></stdlib.h>…

ソートの学習では選択ソートをはじめにやるべき

配列のソートはいまさらいうまでも無いアルゴリズムですが、なぜか最初にくるアルゴリズムがバブルソートだったりするのはなぜでしょうか。正直バブルソートは直感的にわかりにくいと思います。比較的わかりやすいのは選択ソートだと思います。「一番小さい…

配列のシャッフルと落とし穴

風邪で寝てるあいだ、頭痛な頭でなぜか配列のシャッフルするアルゴリズムのことを思い出し、乱数と使い方の落とし穴について考えてました。シャッフルは、たとえば輪読の順番を決めるときにつかいます。名簿を最初あいうえお順に並べて配列に入れておいてシ…

自己生成プログラム

実行すると自分自身のコードを吐き出すプログラム。こういうのってなんていうんだっけ。自己複製? コード→文字列の変換のエスケープが不要になるrubyが一番作りやすくて、しくみも理解しやすいかも。注意したところは、改行文字を直接使わないようにしたこ…