2010-01-01から1年間の記事一覧

Haskell と Scheme の共通点

Haskell の本を再度読み始めてみて、すっかり忘れていたいろいろを改めて認識した。同じ関数型言語だけあって Scheme と同じ考え方が多い。 リストの扱い Haskell も Scheme もリストが超重要なデータ構造なんだけど、どちらも以下のような特徴がある リンク…

芸能界のゴシップニュース

なんでお昼のワイドショーや週刊誌は芸能界のゴシップを流すのか、というのは視聴者・読者がそれを望んでいるからに他ならない。何でそんなものに興味があるのかまったく理解できなかったけど、長年の謎がようやく解けた。僕は IT 関連のニュースを見るのが…

明日から夏休み

明日から 5 連休の夏休み。飛行機は 5 時間弱かかるので、本を持っていく。Gauche の本にしようか Haskell の本にしようか。いや悩むまでもなく Haskell の本だな。Gauche の本は携帯には不向きだし。Haskell といえば、Haskell Platform というものを導入し…

std::vector の使い方

今まで vector はこんな感じに使っていた。 std::vector<std::string> list; list.push_back(std::string("hoge")); list.push_back(std::string("fuga")); これはこれでよいのかもしれないけど、push_back した時点でコピーコンストラクタが呼び出されるので、無駄にふた</std::string>…

MAX_PATH とか _MAX_PATH とか FILENAME_MAX とか

「ファイルのフルパスを保持しておきたい、けど動的に確保するのは面倒」みたいなときに MAX_PATH、_MAX_PATH、FILENAME_MAX マクロが使用されがちです。というか、僕の場合はそうしていました。ただ、おかしいなと常々思ってはいました。というのも、上記マ…

WinMerge の不具合

IT

WinMerge は素晴らしいツールだ。今まで 100% 信頼して使用していたけど、バグが見つかった。 環境 Windows 7 + 64bit 版 WinMerge 2.12.4.13+-jp-13 現象 ディレクトリ比較をした場合に、特定のファイルが比較対象にならない。 詳細 対象にならないのは特定…

PC を買い替えたいという悩みの贅沢さ

会社で使っている PC が作業に支障が出るので買い替えた。今までは CPU が Pentium M 2.0GHz だったんだけど、新しいのは Core™2 Duo P8800 2.66GHz というスペック。要するに 2 コア 2 スレッド、合計 4 スレッドになったのだ。今までの PC だと、裏で Tort…

IDE で参照の検索を便利にしたい

IT

IDE は Visual Studio と Eclipse を主に使用している。Eclipse は Java しか開発しないけど、Ctrl+Shift+G で参照元の検索が非常に便利。テキストエディタでは到底たどり着けない領域だろう。Visual Stuido は C# と C++ が主な開発言語だけど、キーバイン…

UTF-7 エンコードについて

現在 FastGrepReplace の修正作業を行っているんだけど(そんなことをしている場合じゃないのに)、UTF-7 について、思うところをちらほら。 UTF-7 とは UTF-7 というのは、もともと Unicode を 7bit スルーにして、主にインターネットやメールでメリットを…

FastGrepReplace は日本語限定だった

結構何年も前からちょくちょくメンテナンスしている秀丸用のマクロ、FastGrepReplace が、実は日本語限定だったことが判明した。FastGrepReplace は「grep 結果から一気に置換」という類のマクロで、もともと自分のために開発していたものを、ユーザさんの要…

ベトナムはやむなく中止

妻のビザを取るのが難しいので。ビザを取るために必要な資料のひとつに「北京暫住証」というものがあって、これは北京戸籍ではない人が北京に住んで仕事をしたりビザを取ったりするのに必須なもの。これは毎年更新しなきゃならないんだけど、妻の場合は 8 月…

ゲームの良し悪しについて別の考えが生まれたよ

妻が独身時代に買った PSP は、結婚で僕のアパートに引っ越して来る際に「やらないから」という理由で捨てた。理由は、やらないから、ということ。僕は、ちょっともったいないな、と思いつつも、僕もゲームしてる時間はないので、特に何も言わなかった。 そ…

Windows の Gauche(と Ypsilon)のコンソールで UTF-8 対応 #4

Windows コンソールで多言語対応ができるようになりました(Ypsilon ですが)。前回と同じ以下を実行したものです。 (integer->char 955) (integer->char #x3042) 'こんにちは '你好 '안녕하세요 上図は対応前のものです。 Ypsilon はコンソールから読み込む…

Windows の Gauche コンソールで UTF-8 対応 #3

注意:この記事は書きかけのまま、本業等が忙しく、何週間も経ってしまったため、何を書いていたのか自分でもわからなくなったので、未完という形にすることにしました。調査中にわかったことがいくつかあるので、それはまた次回の記事で記したいと思います…

Windows 7 のバグ(なんじゃないかと思う挙動)

IT

デスクトップにファイルを作成・コピーすると、F5 を押さないと表示されないことがある どういうときに起こるのかよくわからないけど、確実に発生が確認できたのは: Google Chrome でデスクトップにファイルをダウンロードしたけど、デスクトップに見当たら…

近況報告

仕事が大詰め 夏休みの旅行(ベトナム)の準備 結婚式の準備 新婚旅行(アメリカ)の準備 その他 結婚式は 9/30 を予定していて、新婚旅行はその後 2 週間。妻が憧れるアメリカ。ただし、飛行機に酔いやすいので近いアメリカ、ということでハワイか? 2 週間…

減量進捗 #3

今一度宣言しよう、減量の目標体重は 69.6kg、体脂肪率は 19.9% であると!体重は減っちゃいるけど、まだ程遠い。体脂肪率は、ぜんぜん変わっちゃいない。

SQLite で select count(*) from table

IT

SQLite の select count(*) はすごい時間がかかるのね。検索したいテーブルは、 CREATE TABLE foo ( bar text, baz integer, qux text, PRIMARY KEY(bar, baz, qux) ); みたいな構造で、要するに有効なキーが指定できないので group by もうまく使えないし、…

秀丸とコンソールの grep の速度

Android のドキュメントにない仕様を調べようとして、ソースコード全体からキーワードを grep する際、 VMware 上の Ubuntu を Samba で共有し秀丸で grep という方法を採ったんだけど、Android のソースコードは膨大なので、一向に終わる気配がない(時間は…

ITA、Google に買収される

IT

Google、航空券検索・比較ソフトのITAを7億ドルで買収 Bing Travelに対抗 - ITmedia エンタープライズITA って、サーバサードで Lisp を使用して、Lisp のパワーで競合に打ち勝ったあの ITA だよね。

LZMA 圧縮形式・・・だと?

IT

今日はじめて見た。Wikipedia によると 7-zip の発展系のようなので、Explzh で 7-zip の DLL をインストールしてみたけど開けず。しょうがないので Cygwin と tar 1.22.90 で展開。 tar xvf *.lzma --lzma

Conversion to Dalvik format failed with error 1

Android やってて時々出るエラー。 Conversion to Dalvik format failed with error 1 対応方法 プロジェクトをクリーンする たとえばファイルシステムから Eclipse 上にファイルをペーストしたりして発生した場合は、たいていクリーンで直ります。おそらく …

Windows の Gauche コンソールで UTF-8 対応 #2

ただ、まだ入力の方に対応できていないので、茨の道はまだまだ続くのであった。 Windows の Gauche コンソールで UTF-8 対応 - satosystemsの日記 これはホントに茨の道だ。なんだかまだよくわかってないし解決してないけどまとめておこう。 そもそも何で UT…

鱼和水的聊天儿

鱼说:如果我哭了也你不能看我的眼泪。 水说:但是我能感觉知道,因为你在我的心里。魚曰く:もし僕が泣いたとしても君には涙が見えないさ 水曰く:いや僕にはわかるよ、だって君は僕の心の中にいるんだもの中国の故事のひとつかな。

Java の Auto-Boxing とメソッドオーバーライド

ArrayList<Integer> list = new ArrayList<Integer>(); list.add(1); // 値 1 を追加 list.add(0); // 値 0 を追加 int value = list.get(1); // 値 0 を取得 list.remove(value); // 値 0 を削除 list.add(0, value); // 値 0 を先頭に追加 さあさあ、上記コードにはバグがあ</integer></integer>…

Windows の Gauche コンソールで UTF-8 対応

Gauche のコンソールで日本語が扱えないのは前から気がついていたんだけど、どうやらこんな感じのようだ。 どうしてもコンソールで日本語を常用したければ、入出力をshift_jisで行うようなラッパースクリプトを書いてREPLを走らせることはできるかもしれませ…

ファイル読み込み #2

R5RS を読んでいたら、append は 結果のリストは、最後のリスト引数と構造を共有する場合を除いて、必ず新しく割り当てられる。 Revised(5) Report on the Algorithmic Language Scheme ということだった。実は昨日改善したつもりだった readfile2 は改悪な…

ファイル読み込み

Scheme で指定したファイルを読み込む方法を考えてみた。 (define (readfile filepath) (let ((port (open-input-file filepath))) (let loop ((contents "") (c (read-char port))) (if (eof-object? c) (begin (close-input-port port) contents) (loop (s…

リストの最後にアトムを追加したい

リストにアトムを追加したい場合: gosh> (cons 1 '(2 3)) (1 2 3) という感じにできるんだけど、やりたいのは std::vector で言うところの: std::vector<int> v; v.push_back(2); v.push_back(3); v.push_back(1); // [2, 3, 1] という順序 であり、java.util.V</int>…

六角大王と併用するアプリを考える

六角大王はとても使いやすいアプリだけど、ゲームの素材を作成しようとすると、以下の欠点がある。 .6kt フォーマット(モデル)が公開されていない .6ke フォーマット(アニメ)も公開されていない もちろん .6kw フォーマット(ポーズ)も公開されていない…