タグ

programmingに関するdorayakitaroのブックマーク (102)

  • Rubyソースコード完全解説 / 青木峰郎

    $Id: index.html,v 1.6 2004/07/20 23:08:12 aamine Exp $ この文書は書籍『Rubyソースコード完全解説』のHTML版です。 ただし初校段階の原稿をベースにしているため、 書籍では修正されている間違いが残っている場合があります。 予め御了承ください。 2004-02-16 に全章を公開しました。 目次 まえがき 序章 第 1 部「オブジェクト」 第 1 章「Ruby言語ミニマム」 第 2 章「オブジェクト」 第 3 章「名前と名前表」 第 4 章「クラス」 第 5 章「ガーベージコレクション」 第 6 章「変数と定数」 第 7 章「セキュリティ」 第 2 部「構文解析」 第 8 章「Ruby言語の詳細」 第 9 章「速習yacc」 第 10 章「パーサ」 第 11 章「状態付きスキャナ」 第 12 章「構文木の構築」 第 3 部「評価」 第

  • データ視覚化サイトの日本語版があったらいいな | Okumura's Blog

    生徒・学生にグラフの描き方を教えるのにまず使うのは Excel だろう。しかしこの Excel というソフト,チャートジャンクの発生源だ。もっとましなものはないのか。私は昔は gnuplot を使っていたが,最近は統計計算を含めて R を使っている。凝ったものなら Asymptote(→ ベクトルグラフィック言語Asymptoteで日語が通る!)で描けばよい。でも学生に教えるのはたいへん。 そこで登場するのが,以前 ロシア総選挙の不正を示唆するグラフ で紹介した Swivel などのデータ視覚化サイトだ。日語はあまりうまく通らないようだが,日にもよく使っているかたがおられる。 Inside Swivel: Graphing によれば,Ruby の Gruff や,R,gnuplot も検討したが,結局 ploticus + Ruby に落ち着いたとのこと。 このようなデータ視覚化・グ

  • シムシティーの仕組み

    シムシティーを作り始めていちばん最初に考えたのは、街を一種の生き物のように表現できないかってことだった。 僕が街についてどう考えているかはすでに説明したけど、大事なのは街を構成する建物とか道路じゃなくって、そこでどんな活動が行なわれているかってことだと思うんだ。道路を車が走り、電車が動き、人々が動き回り、常に要素が変化し続ける“動きのある”システム。街を表現する方法っていうと誰でも地図を思い浮かべると思うけど、僕は動きがない地図じゃなくって、たとえば飛行機から眺めた街、動きのある世界をディスプレイに表現しようって考えた。それこそが僕の考える街の姿だからね。 それともう一つ考えたことは、プレイヤーに伝える情報をできるだけわかりやすく、それも“面白い”って思えるような形で表現しようってことだった。シミュレーション・ソフトっていうとたいてい数値や図表がたくさん出てくるけれど、数字が並んでいるのを

  • 今更ですがgit入門 - プログラミングノート

    ふとiPhoneのサンプルコードとか入れておくと便利かなと思い、使ってみたくなったので環境を整えてみました。 インストール gitのサイトからv1.6.2.3のソースを取得してインストール。 $ tar zxvf git-1.6.2.3.tar.gz $ mv git-1.6.2.3 /usr/local/src $ cd /usr/local/src/git-1.6.2.3 $ ./configure --prefix=/usr/local/git $ make $ sudo make install githubに登録 アカウントは少し前に作っていたのでssh関連から。 1. public key を登録 アカウントページからpublic keyを登録します。public keyは以前作っていたものをそのまま利用しています。さくらサーバでsvn+sshを利用する方法(Linux/Mac

    今更ですがgit入門 - プログラミングノート
  • Y Combinatorって言いにくいから不動点演算子で。 (リリカル☆Lisp 開発日記)

    なんか最近(*) Y Combinator(以下『不動点演算子』)の話題が各所であがっていますが、 あれこれ話はあるものの結局のところ、 F(YF) = YF という式を成り立たせるもの――"不動点"という名の通り、YFをFの不動点にするものだと思います。 (ここの説明が分かりやすいかと。) 不動点演算子自身はこれ以上でも以下でもなく、使い道し次第かと。 記号や演算を最小限にしたのがλ計算だって話もあがってますが、 単純にするならもっと単純にできます。 K ≡ λxy.x S ≡ λxyz.(xz)yz この二つを使えば関数抽象(関数の作成)をすることなく、 関数適用(関数の呼び出し)だけで全てを表せます。 例えば、チャーチ数の 0≡λgu.u は ((s ((s (k s)) (k k))) (k k)) と表せますし、 チャーチ数の後者関数 suc≡λxgu.g((x

  • ソーシャル化するOSS開発者たち - @IT

    ロング・テール理論の名付け親で、雑誌「Wired」の編集長としても知られるクリス・アンダーソン氏が3月12日付けのブログでオープンソースソフトウェア(OSS)プロジェクトの運営体制に関する誤解を指摘をしている。 アンダーソン氏によれば、多くの人はオープンソースプロジェクトというのは草の根から立ち上がり、自律的に組織化し、民主的に運営されているという誤った認識を持っている。ところが現実はまったく逆で、1人か2人の「慈悲深い独裁者」によって運営されている、という。 これはオープンソースプロジェクトに参加していたり、あるいは日常的に成果物を利用している人であれば、そういうものだと首肯するかもしない。メーリングリストで客観データに基づいて議論したり、リーダーを民主的に選ぶようなプロジェクトもあるかもしれないが、おおかたのオープンソースプロジェクトには、それを開始し、中心に位置し続ける“独裁者”がい

  • 404 Blog Not Found:TuringとChurchの狭間で

    2006年04月16日13:53 カテゴリMath書評/画評/品評 TuringとChurchの狭間で The Emperor's New Mind Roger Penrose [邦訳:皇帝の新しい心] なんでひげぽんが反復がすぐにわからなかったかを憶測すると、「変数とは代入すべきもの」、という手続き型言語の呪縛が思い立つ。ひげぽんは別にがっかりする必要はない。hyukiさんさえそれに引っかかっていたんだから。 その証拠を、以下にお見せする。 [結]2005年8月 - www.textfile.org sub fix { my $G = shift; return $G->( sub { my $x = shift; return fix($G)->($x); } ); } これはPerlで実装した不動点関数で、全く問題なく動く。しかし、hyukiさんも知らぬ間に一つ「反則」を犯しているこ

    404 Blog Not Found:TuringとChurchの狭間で
  • 絵を描いて学ぶ・プログラマのためのラムダ計算 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    JavaScriptで学ぶ・プログラマのためのラムダ計算」は、1回では述べ切らなくて、一段落付いたところで区切りました。これはかえって良かったですね、ブックマークやトラックバックでフィードバックが得られたので。 そのフィードバックなどをかんがみて、「残り=次回の話題」として予告した内容とはい違ってしまうのだけど、今回は、文章では伝わりにくい(前回うまく伝わらなかったと思える)ラムダ計算の大事なツボを、なんとか表現してみようと思います。 [このエントリーの内容はだいぶ前にほぼ出来上がっていたのだけど、ココに書いてある事情で、“お絵描き”がなかなか出来なかったのです。] ※印刷のときはサイドバーが消えます。 内容: 知っていて損はない 計算は身体的に理解しよう ラムダ項のツリー表示:準備 ラムダ項のツリー表示:描く! β変換に対応するツリーの描き換え もっとβ変換をやってみよう 計算現象を

    絵を描いて学ぶ・プログラマのためのラムダ計算 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • はてなダイアリーに Flash を埋め込むガジェット - てっく煮ブログ

    はてなダイアリーで JavaScript eval に続く、はてなダイアリー向け汎用ブログパーツ第2弾。今回は Flash を埋め込めるようにしてみました。サンプルこんな感じで。サイズも変えられる。使い方こちらからどうぞ。SWF の URL を入力して、サイズ変更して、背景色変更して、「コードを取得」ボタンで貼り付け用のHTMLを取得します。どうぞご利用ください。ソースコードソースは http://nitoyon.googlepages.com/embed_flash.xml。内部で swfobject.js を使っているので、何も考えずに同じ MIT ライセンスで公開。IE6 ではスクロールバー分の余白が表示されてしまったので、document.body.scroll = "no" で特別に対処してます。雑感他のドメインの Flash を埋め込めるので便利。だけど、「無断リンク禁止」な

  • WEBMOV06 » 第9回:アルゴリズムの視覚化

    プログラムを記述して、アルゴリズムを定義すると、コンピュータはその処理を繰返し飽きることなく実行します。こうした反復する単純作業というのは、コンピュータの得意とすることの1つです。 プログラムを工夫することで、同じアルゴリズムを反復して処理することで驚くほど複雑な形態や動きが生成することができます。これはプログラムを用いなければなかなか見ることのできなかった、新たな「美」の観点ではないかと思います。 今回は、主に反復処理を用いることで、アルゴリズムによる形態を生みだす実験を行います。 サンプルファイルのダウンロード サンプルファイル アルゴリズムとは? アルゴリズム【algorithm】 コンピュータを使ってある特定の目的を達成するための処理手順。アルゴリズムをプログラミング言語を用いて具体的に記述したものをプログラムという。e-Word IT用語辞典より引用 ActionScript

  • おとうさん、ぼくにもYコンビネータがわかりましたよ! - 2009-04-09 - きしだのはてな

    やっと、Yコンビネータが何を意味するものなのか、どういう意義があるのかがわかりました。 名前を使わず再帰ができますよ!というだけのものじゃなかったのですね。 まずλありき 関数の話をしたいのです。 そのとき、いちいち hoge(x) = x * 2 としてhogeを・・・、とか名前をつけて話を進めるのがめんどうなので、関数を値としてあらわすと便利ということで、λという値を定義するのです。 そうすると、上のhoge関数なんかはλ(x)(x*2)などとあらわせますが、引数をあらわすのに()を使うといろいろまぎらわしいので、 λx.x*2 のように表記します。 というのがλ。 このとき、λになにかわたされたら、引数としてあらわされる部分を単純におきかえます。 (λx.x*2)y とあったら、xの部分をyでおきかえて (λx.x*2)y → y * 2 となります。λの引数部分を与えられた引数で置

    おとうさん、ぼくにもYコンビネータがわかりましたよ! - 2009-04-09 - きしだのはてな
  • 無料で読めるLinux本ベスト20 - YAMDAS現更新履歴

    20 of the Best Free Linux Books - Part 1 - LinuxLinks News 最近では書籍がウェブに無料公開されることも珍しくなく、オープンソース関係だとそれが顕著なわけだが、その中から20冊チョイスされている。 Ubuntu Pocket Guide and Reference Two Bits (asin:0822342642) クリエイティブ・コモンズなたちと来るべきイベントの話 The Linux Starter Pack The Easiest Linux Guide You'll Ever Read Producing Open Source Software (asin:0596007590) オープンソースソフトウェアの育て方(6月書籍版刊行予定) Introduction to Linux (asin:1596821124) Ba

    無料で読めるLinux本ベスト20 - YAMDAS現更新履歴
  • 日本人がつまずかないためのiPhone開発のポイント − @IT

    よくつまずくポイントはこれだ! iPhoneアプリは大きく分けて下記のような流れでAppStoreに公開されます。 ここではコニットが実際につまずいた点や、ネットでよく見るつまずきポイントなどをご紹介します。これらの点に気を付け、スムーズにiPhone開発ができるといいですね。(コニットの紹介記事はこちら→ニッポンのiPhoneアプリヒットメーカーたちに続け!) 1. Developer登録 <登録> 登録情報は日語で書いてはいけない アプリ制作を始めるためには、まずAppleIDを取得し、Apple Developer Connection(ADC)登録後、iPhone Developer Programを購入しなければなりません。 この際に氏名を日語で書いてしまうと、iPhone Developer Programが購入できず、前に進めなくなってしまうので要注意です。 氏名に限らず

    日本人がつまずかないためのiPhone開発のポイント − @IT
  • エンジニアにもわかる「ユーザーインターフェース設計」

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめに 島津悠樹と申します。Yahoo! JAPANのソーシャルメディア系サービスの開発・ユーザーインターフェース(以下UI)設計を担当しています。私からは「エンジニアにもわかる『ユーザーインターフェース設計』」と題し、エンジニアのみなさまに考え方のヒントとなるようなネタをお届けします。 エンジニアの方々にとって、UI設計は、おもしろそう、けれど、どこかとっつきにくい......、そんな印象を持っておられるのではないかと思います。 私も以前はそう思っていました。ですが、とっつきにくさを理由にUI設計をやらないのはもったいない、という思いで試行錯誤した結果、なんとか、UI設計のお仕事をいろいろ担当させていただくことができるようにな

    エンジニアにもわかる「ユーザーインターフェース設計」
  • Karetta|Gaucheプログラミング(立読み版)|末尾再帰

    末尾再帰とは評価の一番最後に自分自身を呼び出して、後は値を返すだけその後になにもやることが残っていない(あとは値を返すだけの)再帰のことです。 先ほどの階乗を求める計算を末尾再帰で書き直した例は以下の通りです。 (define (fact n) (define (fact-iter n ans) (if (zero? n) ans (fact-iter (- n 1) (* n ans)))) ; 最後に自分自身を呼び出している (fact-iter n 1)) ここでは手続きfactを補助するためのfact-iterという手続きが末尾再帰となっています。この場合、5を与えると (fact 5) ((fact-iter 5 1)) (((fact-iter 4 5))) ((((fact-iter 3 20)))) (((((fact-iter 2 60))))) ((((((fact-

  • 第2回 「単一代入」と「末尾再帰」

    しかし,そもそも「関数型言語」とは「副作用のないプログラミングを推奨する言語」のはず。だから,「副作用がある」というと「どこが関数型言語なんだ」と思われるかもしれない。そのOCamlを関数型言語たらしめているポイントの一つが,今回のテーマである「単一代入」だ。 単一代入:変化しない「変数」 Cなどの命令型言語では,変数への代入は,最も重要な機能の一つである。普通のプログラマは,もし「変数に代入をするな」と言われたら,どうやってプログラムを書けばいいのか,途方に暮れてしまうだろう。 しかし,ちょっと複雑なプログラムを開発するようになると,「代入」は意外にやっかいな機能であることがわかってくる。例えば,以下のようなC言語のプログラムがあったとしよう。

    第2回 「単一代入」と「末尾再帰」
  • ひげぽん OSとか作っちゃうかMona- - 末尾再帰

    最近一部で盛り上がっている「末尾再帰」について自分の理解を確認するのも兼ねて書いてみます。 (そもそも自分がふったのがきっかけっぽいので)。 上級者の方は間違い等に厳しくつっこんでもらえると助かります:-) 背景 自分が末尾再帰を知ったのは多分Schemeの勉強を始めた頃だったと思います。 例えばSICPというでは20ページあたりにこっそりと出てきます。 そのころの理解はかなり浅いもので「ふーん。」程度でした。 さて後日Schemeの処理系を実装することになりR5RSというSchemeの仕様書を読んだところ Scheme の実装は真正に末尾再帰的(properly tail-recursive) であることが要求されている。これは,たとえ繰返し計算が 構文的に再帰的手続きで記述されているときでも,定数空間 でその繰返し計算を実行することを可能にする とあり末尾再帰のことを詳しく知る必要性

  • Amazon Elastic MapReduceを使ってみた - moratorium

    Amazon Elastic MapReduceを使ってみた 2009-04-03 (Fri) 3:06 Amazon EC2 連日のEC2ネタです。日、AmazonからElastic MapReduceというサービスがリリースされました。大規模データ処理技術が一気に民間の手に下りてくる、まさに革命的なサービスだと思います。 Amazon Elastic MapReduce Amazon ElasticMapReduce 紹介ビデオ With Hadoop, Amazon Adds A Web-Scale Data Processing Engine To Its Cloud Computer by techcrunch.com Elastic MapReduceは、Googleの基盤技術の一つであるMapReduceを時間単位課金で実行できるサービスです。MapReduceについては以

  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • NatsuLion for iPhone クローンがライセンス違反で売られてる件 - @takuma104 log

    最近出た Twitterville というアプリを教えてもらったのですが、唖然としました。どうやら github に上っている NatsuLion for iPhone のソースコードをそのままコンパイルして、名前とアートワークとクレジットだけを変えて、ほか機能いじらずに販売されてしまっているようです。ライセンス的には New BSD License ですので、もちろん第三者がコンパイルして(改変してもソース公開なしに)売ることも可能ですが、アプリのクレジットが明確に消されてしまっています。(購入して確認しました。ついでに返金請求してみた。) あと個人的には、起動画面のやっつけ具合もちょっと無いんじゃないかなあ、と。。 クレジットのところは明確に New BSD License 違反なので、この Twitterville の作者に入れるようにとのメールを出しました。残念なことになってしまい

    NatsuLion for iPhone クローンがライセンス違反で売られてる件 - @takuma104 log