2010-10-01から1ヶ月間の記事一覧

左から削る。右から削る。

srfi-1/unfoldの使い方としておもしろいかなと思ったので紹介。 (use srfi-1) (use gauche.experimental.lamb) (define (truncarting-l xs) (unfold null? identity cdr xs)) (define (truncarting-r xs) (unfold null? reverse cdr (reverse xs))) (truncar…

problem 36 37 38

今回はどれも問題どおりに実装するだけ。あまり難しくない。

markdownファイルをhtmlで見るためのスクリプト

.mdや.markdownのファイルを開くと綺麗なhtmlで見られるようにする。 markdown->html discount(http://www.pell.portland.or.us/~orc/Code/discount/)を使う。 discountのinstall githubから取ってきてmakeする。 git clone http://github.com/Orc/discount.…

problem35

すごく強引な計算方法。100万以下の素数をナイーブに集めて、rotateしながらhash-tableに加える。(keyとvalueの関係は以下の通り '(1 9 7) => '(197 971 719))。後は、keyのlistの長さと束縛されているリストの要素数が同じであれば循環素数だとみなす。(11…

problem 32 33

32は方針をミスった気がする。とても遅い。

srfi-42の紹介(loopマクロ:scheme版のような)

はじめに 多くの言語はちょっとしたループを回すような処理を手軽に記述する方法を持っています。CLにはloopマクロ*1がありますし、pythonやhaskellなどはリスト内包表記などを持っています。ちなみにschemeにもそんな方法があります。srfi-42で定義されてい…

problem 1から7

problem 29,30,31

29はとても簡単な問題。 30は面倒なのでmacroを使う。6個まで調べる。 31は簡単なdp

グラフ作成

発端(結果) コード(code,input-file,Rakefile)

Adobe Airアプリのインストール

Mashup Awardの作品の空うさぎがかっこいいなと思ってubuntuの環境に入れてみることにしました。(空うさぎはtwitterやgoogle buzz, rssをまとめて表示してくれるデスクトップアプリです) adobe airのインストール Adobe AIRのサイトから.debファイルをダウン…

foxcを使ってGPUのない環境でもOpenCLをつかえるようにしてみる。

ちょっとOpenCLを使ってみようと思ったのですが、手元のPCにはGPUがついていませんでした。GPGPUの速度はともかく、OpenCLの動く環境が作れないかと探してみたところfoxcを発見しました。これを使ってみようと思います。理解が正確かどうか分かりませんが、f…

昨日は続きを更新できなかった

今日は更新する。

gauche拡張モジュールの書き方(C++ライブラリ編)[途中:明日更新する]

c++のライブラリの場合は、以前紹介したものCライブラリの拡張モジュールの書き方と少し違います。opencvの一部の関数のbindingを書く例を参考に、C++ライブラリに対するgaucheの拡張モジュールの書き方を説明してみます。 gauche-cv-subset 今回作るパッケ…

ubuntuでopencvの環境を構築

ubuntu 10.04ならopencv2.0がaptで入れられます。簡単です。 sudo aptitude install libcv4 libhighgui4 libcvaux4 libcv-dev libhighgui-dev libcvaux-dev opencv-doc sample codeの実行 opencv.jpにあるコーナー検出のコード(http://opencv.jp/opencv2-x-s…

xmodmapの設定

/etc/X11/Xsession.d/99x11-common_startを以下のように変更。 @@ -1,7 +1,11 @@ # $Id: 99x11-common_start 305 2005-07-03 18:51:43Z dnusinow $ # This file is sourced by Xsession(5), not executed. +do_if_exist(){ + test -f $2 && $1 $2 +} +do_if_…

tile型のWM awesomeを入れる

今までfluxboxを使っていたけれど、そろそろ他のWM(WM:ウィンドウマネージャ)を使いたくなってきたのでawesomeを入れることにしました。しばらくは、fluxboxと併用したいのでログインマネージャからWMを選ぶようにします。gdmを入れていない設定だったので、…

androidのcode reading

以下の2つくらいを見ていけば良い? SDKに添付されたsample android自体のコード(必要に応じて) 添付されたsample <your sdk location>/samples/android-7 <your sdk location>/samples/android-8あたりを見れば良いと思う。 android自体のコード githubに登録されているリポジトリを見た方が早そう</your></your>…

ubuntu10.04でのandroidの開発環境の設定

androidを始めてみました。 とりあえず、androidを始める前に思っていた疑問について android? アプリ開発の費用は? 無料 開発には何を揃えなければいけないの? 実機だけ(仮想実行環境で満足するなら実機もいらない) もちろんセンサーなどの実機固有の入力…

gl.processing途中経過 (愚痴っぽい。長文であまり価値がない。たぶん)

前書き 今の作業の延長線上に開発のゴールが見えないような気がした。今までprocessingと対応づけるように機能を充実させてきたけれど、実装が進むにつれて、基盤としているopenglとprocessingとの際による挙動のズレが大きくなってきた。そのズレは強引に修…

テーマ見にくいかも。

変えようかな。

gl.processing進捗

hsb形式での色の指定のサポートとpixelsを作成するための便利な関数の作成。 そろそろモジュールの階層関係や関数の定義位置などを見直した方が良いかもしれない。 手軽にpixelsを作成する関数を作成 pixels-generator。 こういうものが簡単に作れるようにな…

anything-multi-occur.elというものを書いてみました。

anything-occurでバッファ中のoccurをanythingで引けるのだけれど、複数のバッファを行き来して作業しているときなどに「どのバッファに書かれているかわからないけれど、どこかのバッファにあるということが分かっている。」というような状況で一度に複数の…

増減できるカウンタの作成

久しぶりにscheme自体で遊んでみました。ふと、オブジェクトの状態に対するアクセサを多値で返すという風にしていくとどうなるだろうと思ったのでやってみました。 クロージャの利用 よくクロージャの実例としてカウンタの作成が引き合いにだされます。 例え…

gauche-packageを利用したgaucheの拡張モジュールの作り方

この記事で作ったモジュールのリポジトリはgithubにあります。http://github.com/podhmo/gauche-perlinnoise はじめに gaucheにはschemeで書かれたモジュールの他にCで書かれた拡張モジュールがあります。 拡張モジュールを作る足場を作るためのツールが実は…

拡張モジュールの作り方を説明しようと思います。

gaucheの拡張モジュールの作り方を調べていてわかったことなどをまとめようと思います。 まとめようと思った理由は、ネット上で見つかる拡張モジュールの作成のためのドキュメントが難しいという印象を受けたからでした。 Gauche:拡張ライブラリ入門 Cで書く…

openglのblendについて

glBlendFuncに渡す引数の数が多すぎて把握しきれていない。 glのコードをラッピングはしていないけれど、とりあえずblendingもできるということで。 code (use gl.processing) (with-simple-draw (200 200) (blend-info) (background 0 0 0) (gl-enable GL_B…

マルチテクスチャについて

意外と簡単でした。(もっとオプションが色々あるのかもしれませんが) draw-mixed-shapeで2つのtextureを混ぜ合わせて表示できます。 まだオプションの部分に直接GL_REPLACEなどのglの引数を直接与えていますが、いずれ:typeA :replaceなどにしようと思いま…

マルチバイト文字にも対応しました。

ただしUTF-8限定。行った方法が正しいのか分からないので行った方法を記しておく。 表示されるサイズの大きさの計算 string-lengthとstring-sizeを使った。 (string-length "aあ") ; => 2 (string-size "aあ") ; => 4 string-lengthは文字数をstring-sizeは…

座標系によるtextureの上下反転について

textureは座標系によっては上下が反転してしまうことがあるみたい。 例えば、このようなコードを書いてデフォルトの座標系で画像を表示した際には、上下が正しく表示される。 (use gl.processing) (define texture #f) (define draw (draw-once$ (^ () (with…

無事複数枚の画像が表示できました。

前々からテクスチャを読み込む機能は加えていたのだけれど、なぜか2枚のテクスチャを生成した際には 2枚目のテクスチャが表示されないので困ってました。今日テクスチャを3枚にしてみたら、2枚目までが表示されていました… というわけで、バグが取れたので無…