タグ

ブックマーク / propella.hatenablog.com (51)

  • ふつうの言語で Lazy list について考える。 - 言語ゲーム

    こないだ Prolog を実装する時には随分 Haskell の遅延評価にお世話になりました。そこで、この大変便利な機能を普通の言語で使うにはどうしたら良いだろうかと色々調べると、Scheme の http://srfi.schemers.org/srfi-41/srfi-41.html というのに詳しく書いてある事が分かりました。他の言語でも色々やってる人居るみたいだけど、標準ライブラリになってるのは Scheme しか見つかりませんでした。 早速手元に gauche があるので実験します。gauche のは SRFI-40 とあってちょっと違うみたいだけど気にしない方向で。 gosh> (use util.stream) #<undef> gosh> (stream 1 2 3) #<promise(stream) 0x695b40> gosh> (stream-car (stream

    ふつうの言語で Lazy list について考える。 - 言語ゲーム
    hengsu
    hengsu 2009/05/07
    [scheme[]Haskell]"遅延評価、この大変便利な機能を普通の言語で使うにはどうしたら良いだろうかと色々調べると、Scheme の http://srfi.schemers.org/srfi-41/srfi-41.html というのに詳しく書いてある"
  • git でバックポート用のパッチを作る方法。 - 言語ゲーム

    ようやく何となく git の使い方が分かりかけて来たのでメモ。ドキュメントを細切れに読んで自分で考えただけなので、もっと良い方法があったら教えてください! 目的 とあるレポジトリ trunk がある。 とあるブランチ experimental がある。 experimental に含まれる変更のうち、無難なやつだけのパッチを作りたい。 方針 trunk のクローンを作る バックポート用のブランチを作る バックポート用のブランチに、 experimental の内容を読み込む。 実験的すぎる奴を元に戻す。 パッチを作成 実際 まず trunk のクローンとバックポート用のブランチを作ります。多分タグを作っておくと便利な気がします。 git clone ssh://example.org/trunk patch/ cd patch/ git checkout -b backport git t

    git でバックポート用のパッチを作る方法。 - 言語ゲーム
  • 最近の開発の事 - 言語ゲーム

    昨日は慣れない英語で慣れない Erlang と慣れない swf の事を書いて、寝不足で気分はどん底だ。でも趣味でやってるだけなので誰も恨めない。仕事では Pepsi という言語のための Socket インタフェースを書いている。これは結構面白く、IPv6 になって C の API が新しくなり、私がウェブの仕事をしていた頃より良くなっている。特に IP アドレスが隠蔽されているのは良い。 これをやろうと思った動機は、Pepsi と Squeak の間で通信をさせようと思ったからだ。Squeak で GUI を作るのは簡単なので、Socket を通じて Pepsi のオブジェクトを覗いたり、ツリー状に表示すれば役に立つし、頑張ればリモートデバッガだって出来る。これでありがちな鶏卵問題から抜け出したい。 これまでは Pepsi 用の開発ツールを Pepsi 自身で書くというの私の戦略だった。し

    最近の開発の事 - 言語ゲーム
    hengsu
    hengsu 2009/04/09
  • Objective-C の LL っぽい機能 - 言語ゲーム

    折角マックがあるので、最近マックのプログラミングについて色々勉強しています。Objective-C の設計思想はかなり LL に毒されているとみえて、気持ち悪い機能が色々あります。忘れると厄介なのでメモします。 準備: Objective-C のコンパイル方法 -framework オプションを使ってライブラリを指定するとコマンドラインからコンパイル出来ます。 cc -o basic basic.m -framework Foundation && ./basic nil はエラーにならない Objective-C ではヌルポインタの事を nil と呼びますが。nil はどんなメソッドにも反応しないという約束になっています。例えば [nil message] のように書いてもエラーになりません。ヌル判定をしなくて良いので利点だそうです。 // Nil にメッセージを送っても無視される実験。

    Objective-C の LL っぽい機能 - 言語ゲーム
  • rekonstrukt: Spartan-3A + forth で遊ぶ - 言語ゲーム

    rekonstrukt というのは FPGA のシリアル端子を使って forth を走らせようと言うプロジェクトです。派手な物では無いですが、私のような初心者にはツールの使い方に慣れるのにちょうど良いプロジェクトなので挑戦してみました。 必要な物 Spartan-3A スターターキット WindowsLinux マシン ISE 10.1 ツール subversion, make, gforth, perl, minicom ビルドの仕方 私は Mac から VMWare と Windows を使って作業しています。Windows には FPGA に必要な物だけがあって、subversion などのツールは Mac からファイル共有で繋いで使っています。 forth の面白いのは、メタサーキュラーと言って、forth 言語のコンパイラが forth 言語自身で書かれている事です。という

    rekonstrukt: Spartan-3A + forth で遊ぶ - 言語ゲーム
    hengsu
    hengsu 2009/03/11
  • Coq で遊ぶその4: Coq の変なところ色々。簡約。宣言と定義。型。 - 言語ゲーム

    Coq in a Hurry ではこの後 Inductive Types の話になりますが、難しすぎてついてゆけないのでInteractive Theorem Proving and Program Development (Coq'Art) isbn:3540208542でゆきます。このは重くて固くて取っ付きにくいですが、基的な事から順番に書いてあるので、他のチュートリアルより内容は簡単です。今日は証明から離れて プログラミング言語としての Coq の側面を見てゆきます。 評価(簡約)の変なところ Coq はプログラム実行環境ではなく、プログラム開発を支援する為の設計環境としてデザインされています。だから変な所が沢山あります。たとえばたかが 3 + 4 を計算するのに、 Coq < Check 3 + 4. 3 + 4 : nat としても駄目で、 Coq < Eval cbv de

    Coq で遊ぶその4: Coq の変なところ色々。簡約。宣言と定義。型。 - 言語ゲーム
    hengsu
    hengsu 2009/02/17
  • Coq で遊ぶその5: 休憩。Coq で何をしたいかをちょっと書く。 - 言語ゲーム

    日曜日も一日 Coq で遊んでいた。Coq'Art の冒頭に、Coq を使えばソートプログラムの証明が出来ると書いてあって、それが知りたくて頑張って読んでいるがいつまでたっても具体的な方法が出てこなくてがっかりしている。これだけのをさっと読むのは大変だし、もうちょっと簡単に書いてある文章は無いかな。 Coq で興味のある事は二つあって、一つは機械で証明出来る範囲を知りたいという事。もう一つは、依存型が当に実用になるのかを知りたい。 私は昔から計算が苦手だったが証明も大の苦手だった。計算は電卓でも出来るが証明は出来ない。その事で、証明はどことなく文系の香りのする、言葉遊びのような胡散臭い物だと思っていた。だからある程度コンピュータでも証明という事が出来ると分かってとても嬉しい。 今の所の感想だと、Coq とその背後の理論はとてもすばらしいし、中学生くらいまでの証明なら全然余裕なんじゃない

    Coq で遊ぶその5: 休憩。Coq で何をしたいかをちょっと書く。 - 言語ゲーム
    hengsu
    hengsu 2009/02/17
  • The Many Faces of Publish/Subscribe - 言語ゲーム

    http://www.irisa.fr/asap/intranet/the-many-faces-of-publish-subscribe.pdf publish / subscribe とは、通信方法の一つで、生産者と消費者間が以下の三つの点で依存しない方法。 Space (空間:お互いのポインタ) Time (時刻) Synchronization (同期: 処理中待機するか) 典型的には、 消費者は生産者に subscribe() で登録し、unsubscribe() で離脱する。 生産者は消費者に publish() で通信する。 他の手法との比較。 空間依存(両者のポインタ必要)で、時間依存するもの。 Message Passing : 消費者同期。消費者がずーっと待ち受ける。生産者がトリガ。 RPC : 消費者同期。消費者がちょっと待ち受ける。消費者がトリガ。 非同期 RPC

    The Many Faces of Publish/Subscribe - 言語ゲーム
    hengsu
    hengsu 2009/02/12
  • 学歴と職について - 言語ゲーム

    http://d.hatena.ne.jp/ohnosakiko/20090124/1232795786 を読んでふと思った事。最近せっかく大学院へ行ってもろくな仕事に就けない!という話をよく耳にします。企業の採用戦略自体は市場原理の結果なので仕方ないです。でももうちょっと学生さんもポジティブに考えられないだろうかと思います。 不意にも修士や博士に進学出来ず、就職せざるを得なかった人はどこか心の底で引け目を感じていると思います。一方で、進学してしまったばかりに就職が遅れ、結局専門を行かせなかった人は半分騙されたとの思いでしょう。 自分の事しか知らないので、自分と美大の事を書きます。私が院を出る頃にうちの大学にも新しく博士過程が生まれ、正直心が惹かれました。もしどうにかして続けていたら、人生変わっていたかも知れないと今でも思う時があります。とはいえ当時は経済的負担を考えると全く非現実な話だ

    学歴と職について - 言語ゲーム
    hengsu
    hengsu 2009/01/26
    数学科だけど、少し救われた。ありがとう。
  • Chalkboard 開発記などだらだら書く。 - 言語ゲーム

    毎年参加している C5 という学会が今年は京都であるので、正月休みと出張を兼ねて帰国中です。これで一石二鳥だと思っていたんだけど、実は大失敗だった。もうちょっとクリスマス前の暇な時に仕事しておけば日では毎日遊んで暮らせたのに、例によってギリギリになって大忙しなので、結局日では正月近所の山に登ったのと今日大島さんご一家が倉庫に来てくれた以外はずっと缶詰状態。こんな事なら学会が終わってから休暇を取れば良かったと後悔している。 何をやってるかと言うと、夏に作った Chalkboard http://tinlizzie.org/chalkboard/ja.html というウェブサービスを改良して、発表の準備をしている。これは Wiki ページの中から簡単に Javascript プログラムを実行出来るようにした物だ。ウェブに書く話題によっては文章でなにか説明するよりも論よりコードでソースコード

    Chalkboard 開発記などだらだら書く。 - 言語ゲーム
    hengsu
    hengsu 2009/01/15
  • maxima で遊ぶ - 言語ゲーム

    マックに Grapher というかっこいいグラフ作成ツールが付いているんだけど、どうもかっこいいだけで操作が煩雑なので無料で遊べる maxima を試してみました。マックなら sudo port install maxima で簡単にインストール出来ます。maxima は数式処理ソフトと言って、電卓のように何が何でも一つの数字で答えを出すだけじゃなくて、方程式を解いたり出来るプログラムです。式の終わりに ; を打つと計算です。分数も頑張ってそれらしく表示します。% を先頭に付けると過去の式を参照します。 (%i1) 3 + 4; (%o1) 7 (%i2) % * 6; (%o2) 42 (%i3) %o2 / 56; 3 (%o3) - 4しかし私のようなマイコン中年は数式よりもプログラムに愛着があるので、プログラムっぽく表示してくれる方法を探しました。 (%i4) display2d

    maxima で遊ぶ - 言語ゲーム
    hengsu
    hengsu 2008/12/22
  • コンポコ駅 - 言語ゲーム

    アメリカでは、よくそれぞれの民族が固まって街を形作っている。突然そういう街に出くわすと見慣れない異国の文字とことばで溢れ返り、まったく遠くの世界に迷い込んでしまったのではないかと驚かされる。そんな街の一つ、コンポコ街について話そうと思う。 ハクさんは同じアパートの住人で、たまにコインランドリーで出会うくらいの間柄だ。ある休日の朝、いつも通り乾燥機を待っているとハクさんがやってきて、出身についての当たり障りの無い話題になった。ハクさんは日にとても興味があって、ハクさんの母国であるコンポコでも日のアニメやなんかが随分人気らしかった。コンポコ???はて、そんな国あっただろうか。知らないと言うのも失礼な話だし、話を適当に合わせていると、甥がアニメ好きだから、是非の彼の住むコンポコ街で語ろうと言う。コンポコ街まであるのか! というわけで車を走らせて一時間程度、ロングビーチよりもちょっと南に下った

    コンポコ駅 - 言語ゲーム
    hengsu
    hengsu 2008/12/09
    これ、本当?
  • Arduino で Pong - 言語ゲーム

    Arduino を買ってまずやってみたかった事が、テレビに画面を出力する事です。普通のパソコンだとビデオ出力はハードの仕事なので僕たちには手が出せませんが、Arduino を使うとそんな所まで自分でいじれます。Arduino の掲示板にあった Arduino Pong というのを試してみました。まず必要な部品はこんな感じ。 Arduino ブレッドボード ビデオ端子(メス) 不要なコードを切って使います。 ワニクリップ フックアップワイヤ22番 抵抗 書いてある通りのが無かったので適当に 82Ω(灰赤黒金) GND に繋ぐ 330Ω(橙橙茶金) Digital9 に繋ぐ (video) 1KΩ(茶黒赤金) Digital8 に繋ぐ (sync) ビデオ端子はこのようにちょん切って中の線を出します。 ワニクリップをよじって付けます。中の線に赤を、外の線に黒を付けます。 Arduino Pon

    Arduino で Pong - 言語ゲーム
    hengsu
    hengsu 2008/12/01
  • jolt2 が生成する機械語について - 言語ゲーム

    久しぶりに pepsi & coke を触っているので復習がてらつらつら書きます。特にリビジョン 556 の jolt2 について書きます。まず最初に、基礎知識を簡単にまとめます。 idst http://piumarta.com/svn2/idst/trunk/ には pepsi と jolt いう二つの言語が付属します。 pepsi は Smalltalk に似たコンパイル言語で、C 言語へのトランスレータとして実装されています。実行には gcc が必要です。 jolt とは Lisp に似た言語で、実行時に動的にソースから機械語をコンパイルして実行します。jolt の関数は C で書かれた関数と互換性があり、C ライブラリのコールバックにそのまま使えます。jolt は pepsi で実装されていて、 pepsi のライブラリオブジェクトを利用出来ます。 特に、jolt は実行時にプロ

    jolt2 が生成する機械語について - 言語ゲーム
    hengsu
    hengsu 2008/10/20
  • うまく行かない話 - 言語ゲーム

    C5 論文をやたら急いでいたのは、とっとと終わらせて早く 火曜日のUNlearning Camp のデモを作らなければいけないと思ったからだ。何を作ろうと思ったかというと、イアンさんの TCP/IP のデモを使った糸電話を作ろうと思っていた。イアンさんの TCP/IP はトンネルでバイスを使ってネットワークの第三層以上を実装した物だが、正直素人には何をやっているのか分からない。そこで、もっと低レベルな物理層を作って分かりやすくデモしようと思っていた。しかし残念ながら、先週末の段階で、これは絶対間に合わない!と分かってしまった。その理由。 アイデア 二台のパソコンのマイク端子、イヤホン端子を紙コップにつなげて糸電話を二組作る。 イアンの TCP/IP を使ってネットワークを作成し、紙コップを通じて通信を行う。 クライアント - TCP/IPドライバ - ptun - パイプ - 音声信号 -

    うまく行かない話 - 言語ゲーム
    hengsu
    hengsu 2008/09/25
  • 近況 - 言語ゲーム

    永らく書いてなかった気がするので、記録のため近況を書く。最近は人から見てまったくつまらない毎日を送っている。毎日やる事が決まっている。昨日観たウッディ・アレンの映画が、つまらない男と結婚した女が、バルセロナの魅力的な画家の男に翻弄されるという話で、そのつまらない旦那の描き方が当に痛く上手に描かれていて、主人公の女より画家よりなによりそのつまらない旦那に共感してしまった。 大体週末の朝は屋か、あるいは道路を挟んだ Peet's という喫茶店で過ごす。昼は大体吉野家が多い。もしくは図書館堂でべる。それから午後まで図書館仕事をする(←いまここ)。夜はスーパーに行ってフードコートでべるか、もしくは刺身を買って家でべる。 あとは週末以外と同じで、スタートレックを観ながら夕をとった後、少し仕事をして11時頃になるとジョギングと筋トレをする。ジョギングと言っても2キロくらいしか走らない

    近況 - 言語ゲーム
    hengsu
    hengsu 2008/09/08
    身につまされて痛い。
  • ぼくが作った Wiki とワークスペースの歴史 - 言語ゲーム

    ふと同じようなプログラムを何度も作っている事を思い出し。ちょっと振り返ってみる事にする。 Scamper Workspace Scamper Workspace は Squeak で書かれた Web ブラウザで、普通のウェブサイトに書かれた Smalltalk ソースコードを簡単な操作で実行出来るようにした物。 最初のきっかけはこれだった。よく Squeak コード入りの日記なんか書くでしょう。そうするとそれをつい実行したくなってくる。ただそれをコピペして実行するだけでたいした手間では無いのだけど、おや待てよ?Squeak には最初からしょぼいながらも Web ブラウザ「Scamper」が付いてくる。何でわざわざ他にブラウザが居るのだ?しかし使ってみるとよく分かる違和感。Scamper が単純なテキストと画像しか表示出来ないのは我慢出来るとしても、それでもなぜわざわざコピペがいるのだ? S

    ぼくが作った Wiki とワークスペースの歴史 - 言語ゲーム
    hengsu
    hengsu 2008/09/02
    素晴らしい
  • Haskell でヒューメインインタフェース。モナド記法を使わないで IO してみる - 言語ゲーム

    誰にも頼まれてないのに Haskell の復習をしています。前から気にくわなかったのが Haskell の do 記法です。例えばコンソールから二つの文字を入力して結果を出すだけのプログラムをこういう風に書きます。 main' = do num1 <- getLine num2 <- getLine print $ read num1 + read num2 これはかったるい!そう思いませんか?何故次のように書けないのか!これはモナドが悪いのか? main'' = print ( read getLine + read getLine ) そういうわけで、素人ながらもうちょっとマシに書けるのでは無いかと試してみました。 まず、read getLine と書けない件。getLine はコンソールから文字列を受け取るモナドだけど、read は文字列自体を受け取る関数なのでうまく合わない。例えて

    Haskell でヒューメインインタフェース。モナド記法を使わないで IO してみる - 言語ゲーム
    hengsu
    hengsu 2008/07/03
    内部的な”= A1+A2の値”は、A1 からの数字のホースとA2からの数字のホースをY字型に繋げて答を流し出す継手オブジェクトだ。これはHaskellのモナドにとてもマッチ。Haskellの美を保ったままスプレッドシート的文法を使うには
  • コマンドラインで swf ファイルを作る方法あれこれ - 言語ゲーム

    ちょっと話題に上がったので、swf ファイルを作る方法をあれこれ調べてみました。cygwin 使ってます。 Flex SDK: Adobe 謹製の swf コンパイラ 準備 http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK から Free Adobe Flex SDK をダウンロードして展開。Java と Flex SDK にパスを通す。 $ PATH=/cygdrive/c/Program\ Files/Java/jdk1.5.0_11/bin:~/zip/flex_sdk_3/bin:$PATH プログラム hello.as という名前でソース作成 package { import flash.display.Sprite; import flash.text.TextField; public class hello

    コマンドラインで swf ファイルを作る方法あれこれ - 言語ゲーム
    hengsu
    hengsu 2008/07/03
  • 美について - 言語ゲーム

    独りでビールを飲んで、珍しく自分語りな気分なので、美について書く。私は美しいものが好きだ。もっと言うと、正しいものには興味が無いが美しいものは好きだ。なぜ正しいものに興味が無いかと言うと、それは怖ろしいからだけどそれはまた別の話。なぜ美しいものが好きかというと、美しいものには理由があるからだ。 言葉にならない美しさというのが私には分からない。美しいものには理由がある。だから言葉で説明できる。美しいのは単純だからだ。複雑だからだ。明快だからだ。謎めいているからだ。必要だからだ。不要だからだ。郷愁を感じるからだ。未来にときめくからだ。 上手く言えないけどとても美しいんだ!とつい言ってしまう事もあるけど、それは嘘。どうせ言っても伝わらない相手か、正確に説明する手間を惜しんでいるかのどちらかで、当は全部理由がある。今まで自分が作ってきた物も、幼い頃にチラシの裏に描いたドラえもんから、社長に命じら

    美について - 言語ゲーム
    hengsu
    hengsu 2008/06/23
    美は説明出来る。だから多くのエンジニアは美を好む。<ー数学者も