K-3iiのGPSログ(KML)をGPXに変換

昨年買ったカメラ(K-3 ii)にはGPSログ取得機能が付いているのですが、時刻情報がコメントで採取されており、ヤマレコにアップする際に時刻情報が落ちてしまうため、適当XMLコンバータを作成しました。 PENTAX デジタル一眼レフ K-3II ボディ GPS内蔵 ローパ…

jibeを入れた。

androidマーケットにskypeとjibeが登録されていたのでインストールした。skypeはauマーケットから乗り換え。

Shibuya.lisp Hackathon#1

Shibuya.lisp Hackathon #1 : ATNDに行ってきました。swank-gaucheの機能追加を行なおうと思ったのですが、思う様には行きませんでした。 ユニットテストを書こうとか、プレゼンテーションストリームを実装しようとかいろいろ迷いましたが、手続きの定義箇所…

swank-gaucheをgithubに移行

年末年始にswank-gaucheをちょっといじったので、ついでにgithubに移行しました。http://github.com/cj2tszk/swank-gaucheGaucheは0.9、SLIMEのバージョンは"2010-01-03"で確認しています。

executor

外部の実行可能プログラムを起動するためのライブラリ。 処理系毎の違いを吸収してくれます。http://www.cliki.net/executorいまのところ「ドキュメントはソース」かつ対応実装はSBCLのみの様です。 外部コマンドの実行 execute 基本的な機能。パス検索もな…

slime + auto-complete

ググッても誰もやってなさそうだったので。id:m2ymさんのauto-completeをslimeで使ってみる試み。auto-completeインストール後、.emacsに以下を追加。 (defvar ac-slime-modes '(lisp-mode)) (defun ac-slime-candidates () "Complete candidates of the sym…

sheepleでディスパッチ

sheepleはCLOSの総称関数の様なディスパッチ機構を持っています。まず、「メッセージ」を定義し、「メッセージ」への各オブジェクトの「応答(reply)」を定義していきます。 「メッセージ」がCLOSの総称関数、「応答」がCLOSのメソッドにあたります。 (defmes…

sheepleでオブジェクトを作る

CLikiのRecent Changesを購読していると、色々なプログラムの更新が分かります。今日はsheepleというオブジェクトシステムについての記事が更新されていました。http://www.cliki.net/Sheeple http://common-lisp.net/project/sheeple/asdf-installでインス…

CLOSでslotにアクセス

自分は、CLOSでメソッドを書いてるとwith-slots/with-accessorを多用します。 slotが増えてくるとめんどいので、with-all-slotsなるモノがあればいいなと妄想。 sbclで実装してみました。slotを確定させるためにクラスを明にfinalize-inheritanceしないとな…

二冊目のSICP

lltvに参加してきました。 このイベントでは書籍の抽選会があります。 今回は当選したのですが、当たった書籍がSICPという…。 邦訳二冊目get!前のが古くなってきてたのでちょうど良かったぜ!

ClojureのtrampolineをCLで

Programing Clojureを読んでいたところ、相互再帰のためのツールとしてtrampolineという関数が紹介されていました。クロージャが返される限り、返されたクロージャを呼び続ける関数のようです。現状のClojureは末尾呼び出しの最適化を行わないため、trampoli…

リストの破壊的な操作

g000001さんの所のネタ。 http://cadr.g.hatena.ne.jp/g000001/20090521/1242909362alistからplistへの破壊的な変換。やってみたら、とっても直接的になった。 (defun nalist-to-plist (alist) (loop for x on alist by #'cddr do (let* ((cons1 x) (cons2 (…

swank-gaucheを改良

sawnk-gaucheにinspector機能を追加しました。また、Gauche-boxで動かなかった問題を修正しました。http://homepage.mac.com/WebObjects/FileSharing.woa/wa/swank-gauche-0.2.tgz.2.tgz?a=downloadFile&user=tak_szk&path=.Public/swank-gauche-0.2.tgz

Gauche用のSwankサーバ

Slimy hackathon#1には用事があって参加出来なかったのですが、何かやりたいなと思っていまして、gauche用のSwankサーバを書いてみることにしました。mit-schemeのSwankやswank.lispのコード、あとは*slime-events*バッファへ表示される情報を基に、何とか遊…

erlangの機能をlispの書式で使う

erlangの機能をlispの書式で使えるLFE(Lisp Flavoured Erlang)というプロジェクトが在るようです。 => http://forum.trapexit.org/viewtopic.php?p=40268#40268erlangの書式に慣れられなかった人もこれで安心です。lfeの"doc/user-guide.txt"を見ながら、少…

ex2.6 Church数

ex2.6はチャーチ数の問題で、以前に取り組んだ時はweb上の情報をみてもさっぱり分からなかった問題です。 今回いろいろやってみて、何となく分かって来ました。 あと、素のラムダ計算を記述するためには、schemeは絶望的に向いていなそうです。大分慣れたと…

->とcut

l4u!の->演算子ってどんなだったかなと思い出しながら書いていたら、全く別物になってしまいました。 >がブロックをつくり、直前の式の評価値が、次の式の最後に暗黙的に渡されます。 (-> (list 1 2 3) (princ) (mapcar #'(lambda (x) (+ x 10)))) ;; (1 2 3…

Gauche/Kahuaセミナー2008 Fallに行ってきました

Gauche/Kahuaセミナー2008 Fallに行ってきました。http://practical-scheme.net/wiliki/wiliki.cgi?Seminar%3aGauche%2fKahuaセミナーの内容は以下のものでした。 HOPプロジェクトの説明(山下さん) Gauche on Railsの内部実装の解説(吉田さん) Kahuaの内部実…

今週末はPAIP読書会

あっという間に1ヶ月以上経っている。 今回からAIの部分に入ります。ちょっと流し読みしておこう。

PAIP読書会

2ヶ月くらい放置してしまいましたが、今週末からPAIP読書会が再会するようなので、これを機にまた更新していきたいと思います。

Ex5.4〜Ex5.6 ELIZAの改良問題

ELIZAの改良問題を3つ ;; Exercise 5.4 [s] We mentioned that our version of ELIZA cannot ;; handle commas or double quote makes in the input. However, it seems ;; to handle the apostrophe in both input and patterns, Explain. commaやdouble q…

Ex5.2 Elizaで遊んでみよう

;; Exercise 5.2 [m] Experiment with this version of ELIZA. Show some ;; exchanges where it performs well, and some where it fails. Try to ;; characterize the difference. Which failures could be fixed by ;; changing the rule set, which by c…

5.4 Elizaプログラム

5.4節で、ELIZAを組み上げます。置き換えルールは以下のように定義します。 ルールセットはルールのリストで表現 ルールは(pattern . responses)で表現 動作の概要は以下のようになります。 ユーザからの入力は(read)でシンボルのリストとして読み込む 入力…

5.3 Segmentパターンマッチ

この節ではパターンマッチに複数の単語にマッチさせる変数を導入しました。Segmentパターンは"(?* var)"の形で表し、以下のように使います。 ((?* ?x) is (?* ?y)) このパターンを '(this is a pen)とマッチさせると、 ((?x . this) (?y a pen)) とマッチし…

5章 ELIZA 5.2とEx5.1

Ex4.5〜Ex4.7は[d] ratingなのでさすがに難しいです。Ex4.6で5,6章でパターンマッチングについて勉強してこいと言われたので取りあえず先に進みます。 5.1 ELIZAの記述と明確化 ELIZAは入力されたシンボルのリストとあらかじめ用意しておいたルールセットに…

colorizeをインストール

http://www.cliki.net/colorize をSBCLにインストール。asdf-installでインストールしようとしたところ、パッケージが見つからないと言われたので、手動でインストールします。 bash-3.2$ svn co svn://unmutual.info/colorize bash-3.2$ cd ~/.sbcl/systems…

hyperspecをanythingから引く

突発性CL勉強会で小耳に挟んだanything.el。結構有名な機能だったのですね。 使ってみたところ、さっそくハマりました。これは便利。練習がてら、hyperspecをanythingから引く設定を定義しました。思いもしなかったシンボルとかが引っかかって結構面白いです…

Ex4.5 WarrenのWARPLAN その1

;; Exercise 4.5[d] Write a planning program that, like Warren's ;; WARPLAN, keeps track of the list of goals that remain to be done as ;; well as the list of goals that have been achieved and should not be ;; undone. The program should nev…

Ex4.4 The Not Looking after You Don't Leap Problem. その2

ヒントの通りにachieveに引数を追加します。これをappropriate-opsからappropriate-pまで伝播させます。 appropriate-pでいずれかのprotected-goalが削除される場合、適用出来ない様にします。 achieveはachieve-eachから呼ばれているので、achieve-eachも修…

Ex4.4 The Not Looking after You Don't Leap Problem. その1

4章で定義してGPSは最初に見つけたパスでゴールを達成しようとするので、別のオペレータの組み合わせではゴールが達成可能でもそっちは参照しない問題があります。 これを修正するExerciseです。 ;; Exercise 4.4[h] The Not Looking after You Don't Leap …