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

ちょっと試し

関数合成とかで組み合わせたりした方がスマートに書けるなあという例が浮かんだけれども、そのコストが気になったりした。というか、そもそもGaucheにおいて(lambda (x) x)のコストてどんなもんだ。 gosh> (define (nest n) (let loop ((i 1) (f (lambda (x)…

Gauche + c-wrapper + SDL でつくるプレゼンソフト(3)

なんだっけな自動で画面サイズにでっかくテキストを表示するとこまで書いた。あと[bgImage:hoge.png]とかで画像を読みこめるようにした。画像読み込みは適当。元サイズで(0,0)に描画するだけ。あと上にテキスト領域かぶると白背景で塗り潰される。 SDL_ttfと…

Gauche, c-wrapper, SDL_imageを使用して画像を表示する例

http://konbu.s13.xrea.com/lib/lang/scheme/image.scm そのまんま、画像を表示するだけ。sdl_helper.cはc-wrapperのexample/sdlにあるもの。IMG_Loadしてるだけだなこれ。

Gauche, c-wrapper, SDL_ttfを使用してでっかいテキスト表示する例

高橋メソッド的プレゼンツールに大事なのは、自動ででっかいテキスト表示することです。 なので画面サイズにあった大きさのフォントサイズでフォントを開きたい。でもフォントサイズの単位はpt。画面サイズの単位はpx。ptってなんだよ。 http://www.mozilla.…

Gauche, c-wrapper, SDL_ttfを使用してテキスト表示する例

http://konbu.s13.xrea.com/lib/lang/scheme/showtext.scm コマンドラインで渡された文字列を表示する簡単な例。同じディレクトリにsdl_helper.c(c-wrapperのexample/sdlにあるもの)と、SDL_ttfが開けるフォントデータをfont.ttfとして置いてください。あとu…

Gauche + c-wrapper + SDL でつくるプレゼンソフト(2)

高橋メソッドみたいにでっかい自動ででっかいテキスト表示するところまでできた。 プログラミングGaucheを読み進めながらやっているので、書いてる時間が違う部分で全然違う書き方してたりすると思う。というか、Schemeのコードて書き方固まるほど書いたこと…

Gauche + c-wrapper + SDL でつくるプレゼンソフト(1)

gauche.nightで話してきたことを、卒研配属された研究室の合宿先で話すことになった。gauche.nightと客層が全然違う(あんまプログラミング言語萌え! な研究室じゃないし)から説明とか増量とかする必要ある。とかはまあいいんですけど「それでそのSchemeとか…

FPGAで遊ぶ日記(1)

コンピュータという謎の匣の仕組みが気になって気になって狂ってしまいそうな仕方が無い人はまずプログラミングという狂気にとりつかれます。そしてある程度C言語やあるいはもっと上位の言語をいじったり、x86とかMIPSやH8などの機械語も手をつけたりします…

C+SDLでプレゼンソフト書こうと思ってたら何故かS式読み書きするコード書いてた。

C

たぶん設定ファイルをS式にしてほげほげとか考えてたんだと思う。最低限の機能にした。読めるのは整数と文字列と識別子と、リストだけ。内部的にはコンスセルによるリスト。 http://konbu.s13.xrea.com/lib/etc/sexp.zipC言語リハビリということで。例外処理…

gauche.night

http://practical-scheme.net/wiliki/wiliki.cgi?gauche.nightのgauche.gongセッションでLTしてきました。 第1部: 座談会「R6RSを斬る」 まあ聞いてたんだけど、gongのことが気になってあんまし聞いてなかった。 ざっくりと感じたことを言うと、やっぱりGauc…

放っておくと書くの忘れるので、まず適当に書く*1ライフハックとか書いてごまかすライフハック *1:そして「適当だけど一応書いてるからまあいいやと諦める」

Livedoor Reader*1

はてなアンテナに登録してるサイトが200件*1をいったりきたりしはじめたので、今更使いはじめてみた。今まで2回くらい使ってみては、やっぱアンテナでいいやと思ったりしてたんだけど。 ショートカットとかバリバリあるらしいと聞いてたので、手さぐりでhjkl…

id:suztomoというid:dropdbストーカーがid:amachangと裏取引をしてid:dropdbと面会する会

参加してきた。 http://generation1986.g.hatena.ne.jp/hogelog/20080303/1204501377 に書いた。ねむい。リンクたどってまで読むのめんどくさい人に一言でまとめると「」。まとまらなかったので各自脳内補完してください。 hogelogこと小室 直という人物はも…

Haskellの実装イベントに備えなるはずなのに、何故かlibgaucheをいじっていた

libgaucheを使ったS式リーダできたよー(~ρ~) % ./srepl 3322 3322 (1 2 3 4) (1 2 3 4) (1 3 (hoge fuga) gggg) (1 3 (hoge fuga) gggg) % cat >sexps (3 2 2 4 8) (hoge "hoge\nfuga" (fuga (fuga (fuga)))) 3322 % ./srepl sexps (3 2 2 4 8) (hoge "hoge\…

Haskell Hackathon 2008開催まであと数時間

びゃー! 無理!!! もうあのひたすら低姿勢に謝りつづける2chのAA探してきて貼っつけようかと思うくらいやぼい。普通にHaskellの基本的な命令とかモナドとか型クラスとかわからんレベルだぜよ。なにこれHelloWorldだけでこんなわけわかんないコード書かな…

ハチロク世代第一回お食事会

0次会がサイボウズラボだったので、1000speakers3次会@サイボウズラボから直接参加。自己紹介LTのプレゼンツールを当日5時くらいまで書いてた。 自己紹介というか発表は、資料枚数作り過ぎたせいと、自分で組み込んだ自動ページ送り機能のおかげでメチャクチ…

1000speakers

おもしろかった。あれこれやってる人が、近い世代、下の世代にいるっつうのが刺激あっていいやな。あと実際にSIerで働くひと、働いてた人の生々しいお話、どんどんさらけだせというお話、良かった。 あとitkzさんを生で見れたのはとても良かったな。 三次会…

第341回PTT

話者はささださんで、内容は「最近のRuby処理系の話」。こりゃおもしろくねえわけがねえというわけで聞きに行ってきました。 Ruby1.9.0-0に組み込まれた新しい機能、ささださんのがんばったVMの話、今色々試してる高速化の話など。こんな話が、ふらっと足を…

放っておくと書くの忘れるので、まず適当に書く*1ライフハック *1:そして「適当だけど一応書いてるからまあいいやと諦める」

haskellでなんかつくる。

ここまでやったんだし、なんか作ってみることもできそうだなと思った。ためしにクライアントの送信してきた内容をそのまま標準出力に流すだけのサーバを書いてみました。 import Network import System.IO main = withSocketsDo $ do socket <- listenOn $ P…

「ふつうのHaskellプログラミング」読みます(7)

あいだ空きまくり。やばい。読むだけなら12章くらいまで読んだ。型とか型クラス、モナドとかもなんとなくわかった気だけはする。でも実際処理系とたわむれんとよくわからん。というわけで順番にやる。8章、基本的な構文。 8.1 値としての関数 高階関数テスト…

高橋画像めーかー書き直し

フォーマットの変更とクラスの整理とかしてみた。 http://konbu.s13.xrea.com/lib/presen/TakImg.jar プログラムソースコードとか貼り付けやすいように、もんたメソッド隠しを[hoge]から[ [hoge]]に。 ほげほげ ---- ここ[[monta!]]です。 ここも[[monmon!!]…

RubyでSchemeぽいの書く(4)

http://code.google.com/p/rbdsp/クロージャ書けるようになった! たぶん! C:\hoge\docs\rbdsp>ruby rbdsp.rb > (define mkcounter (lambda (x) (lambda () (set! x (+ x 1)) x))) mkcounter > (define c0 (mkcounter 10)) c0 > (define c1 (mkcounter 3)) …

Rubyのかくにん。

クロージャ。 irb(main):001:0> def mkcounter(x) irb(main):002:1> proc{x+=1;x} irb(main):003:1> end => nil irb(main):004:0> c1 = mkcounter(10) => #<Proc:0x0319e4e0@(irb):2> irb(main):005:0> c2 = mkcounter(3) => #<Proc:0x0319e4e0@(irb):2> irb(main):006:0> c1.call => 11 irb(main):007:0> c1.ca</proc:0x0319e4e0@(irb):2></proc:0x0319e4e0@(irb):2>…

RubyでSchemeぽいの書く(3)

はてダはっつけコード管理に限界を感じたのでGoogle Code Hosting使ってみた。Gmailアカウント持ってるだけで、おどろくほど簡単に使えた。選択できるLicenceにNYSLとかpublic domainとか無かったんで修正BSDライセンスになったらしいです。 http://code.goo…

「ふつうのHaskellプログラミング」読みます(6)

7章、基本的な構文。 7.1 コメント ラインコメントとブロックコメントあり。ブロックコメントはネスト可。 Prelude> 3 + 2 -- fuga? 5 Prelude> 3 + {- aodfjaij -} 2 5 Prelude> 3 + {- aodfja {- 11111 -} -} 8 11あとリテレイト形式といって、基本コメン…

やっぱりC++はやる価値ありまくりだな。

C++

こんなコードを #include <stdio.h> int main() { int i = 0, j = 0; (1 ? i : j) = 300; printf("%d,%d\n", i, j); } gcc(cコンパイラ)とg++(c++コンパイラ)でコンパイルしてみよう! ~ % gcc test.c test.c: In function ‘main’: test.c:4: error: lvalue required </stdio.h>…

RubyでSchemeぽいの書く(2)

明日数値計算の試験なので(まったく関係無い)Scheme実装がよく進んだ。 C:\hoge\docs\rbdsp>ruby rbdsp.rb > (+ 1 2 3 4) 10 > (eq? 3 (+ 1 2)) #t > (define ls (list 1 2 3)) ls > ls (1 2 3) > (eq? ls (list 1 2 3)) #f > ^Z good byeこのあたりまでわり…

「ふつうのHaskellプログラミング」読みます(5)

6章。基本的な値と、それらまわりの関数とか。 6.2 真偽値 Prelude> not True False Prelude> not True && False False Prelude> False || True Trueまあふつう。 6.3 数値 Haskellの整数型はInt、Integer。Intが上限下限ありの整数、Integerが制限無しの整…

「ふつうのHaskellプログラミング」読みます(4)

5章、はほとんど読むところだな。 if.hs myIf True t e = t myIf False t e = e main = do myIf True (putStrLn "then") (putStrLn "else") % ghc if.hs -o if % ./if then遅延評価なのでthen-partのしか実行されてませんねー、という。最外簡約って言葉はと…

test