(apply-generic op . args)

教育者, 将軍, 栄養士, 心理学者, 親はプログラムする. 軍隊, 学生, 一部の社会はプログラムされる. - 計算機プログラムの構造と解釈 序文

PHPの正規表現で英単語を弾く

個人的なメモついで。 if( !preg_match('/[一-龠]+|[ぁ-ん]+|[ァ-ヴー]+/u', $word) ){ }

RubyでUnicode コードポイント(&#x英数字;)を文字に戻してやる

UTF-8のテキストデータなどをSJISで保存してしまうと、文字によっては&#x英数字;のように文字化けしてしまう。 糝とか。これを糝のような文字に戻してやる。最初からSJISで保存するなって? 俺がやったわけじゃ(ry 入稿データが(ry utf8 = File.open('…

計算機プログラムの構造と解釈(SICP) 勉強メモ6

今日は気分があまり乗らないので、ここでSICPはSTOPして違うことしようかな。 問題1.7から1.1.8まで。 ;問題1.7 ;小さい数は ;(sqrt 0) => 0.03125 ;0の平方根は0だが、ここでは0.03125が返ってくる。 ; ;大きい数は ;(sqrt 9999999999999999999999999999999…

計算機プログラムの構造と解釈(SICP) 勉強メモ5

2週間ほど急がしくて勉強が出来なかった。 今日から再開。 とりあえず、前回勉強した分をUPしてなかったのでUP. 問題1.6だけ。 問題1.7で悩んでる。 ;問題1.6 (define (new-if predicate then-clause else-clause) (cond (predicate then-clause) (else else…

計算機プログラムの構造と解釈(SICP) 勉強メモ4

"関数型言語の関数は数学の関数と同じだ!!!" くらいのことを言われ(書かれ)ていたので、数学の関数とプログラミングの手続きの間の重要な違い、というのには目から鱗だった。 ;;1.1.7 Newton法による平方根 ;これまでに紹介した手続きは、通常の数学の…

計算機プログラムの構造と解釈(SICP) 勉強メモ3

今日はなんか朝4時に目が覚めてしまったので、SICPのお勉強。 問題1.1~1.5までやりました。 ;問題1.1 ;式の列がある。それぞれの式で解釈系が印字する結果は何か。列は示した順に評価する物とする。 ;$gosh で確認。oは正解。xは不正解。 ;10 =>10 o ; ;(+ 5…

計算機プログラムの構造と解釈(SICP) 勉強メモ2

今日は2P進んだ。 condはカッコッカが多くなるから”大失敗”らしい。 ;;1.1.6 条件式と述語 ;Lispには場合を分け(case analysis)を記述するための特殊形式がある。それをcond(conditional(条件付き)意味する)といい、次のように使う。 ; ;(define (abs x) ; …

計算機プログラムの構造と解釈(SICP) 勉強メモ

普段からしている勉強内容をブログに貼り付けてみようと思った。 3日分。 9Pまで。 ;\r => now file load REPL ;;;1.手続きによる抽象の構築 ; 計算プロセス(computational process)とは計算機の中に住む抽象的な存在である。 ;データとは(data)もう一つの抽…

フィボナッチ数ってな〜に?

今日書いていることは、基本的にこの本の受け売りです。 不思議な数列フィボナッチの秘密アルフレッド・S・ポザマンティエ、イングマル・レーマン 松浦俊輔 日経BP社 2010-08-05売り上げランキング : 297556Amazonで詳しく見る by G-Tools なんだかんだ、今…

フィボナッチって結局なんの役にたつんだ(悪口じゃありません)

この間ちょっと悔しい思いをしたのでフィボナッチ数列について調べたりRubyで書いたりしてみた。むしろ次の日からやりたかったんだけど、仕事忙しすぎてやっと出来たって感じ。 def fib(n) return n if n == 0 || n == 1 fib(n -1) + fib(n -2) end (0..100)…

なんでRubyには「++」がないの?

EsotericLanguage Rubyで作る奇妙なプログラミング言語 P.18 次のincというメソッドはカウンタ値を1増やす。C言語などと違い、「@value++」という書き方はできないことに注意。 (中略) 「オブジェクト指向的に自然な定義をするのが難しいから」というのがRub…

ruby1.9.2 requireとrequire_relative

ruby1.9.2から$LOAD_PATHにカレントディレクトリ"."が含まれなくなった。セキュリティ上の理由らしい。今までの様な相対パスを使いたい場合は、require_relativeを使用すれば良い。 $ ruby -e 'p $LOAD_PATH' ["/opt/local/lib/ruby", "/opt/local/lib/ruby/…

【読了】SQLの絵本

随分と前に読んだ本。 SQLの絵本って名前だけど、SQLを使ってDBを優しく教えてくれる本かな。 DBって何?SQLって何? そんな時期に読んで、凄くためになった。 NetでDBやSQLって何だろう?って思って、色々検索して記事を読んだけど良く解らない。 そんなと…

【読了】プログラマの数学

この本は「優しい」けど「簡単」ではないと思います。 簡単って言っている人は、もともと数学が得意な人かちゃんと精読してない人だと思いました。 1章から3章までは高校の情報技術の時間とかで学ぶことかな。 この辺はプログラマなら馴染みの深い人も多いと…

【読了】R5RS

Schemeの仕様書の R5RS を読みました。 あ、結構前に。 現在読んだ本をブログにまとめる作業をまとめてしております。 仕事柄、今まで規格書は結構読んできたんですが仕様書は初めて読みました。 規格書と違って抽象的でオライリーの本を読んでいる気分でし…

【読了】数の悪魔 ゴキブリ並に嫌いだった数学に興味を持ってしまった。

貴方は数学が好きですか? 僕は大嫌いだ。 数学なんてゴキブリと同じくらい嫌いだ。 いや、ちょっとまって。 それはこの本を読む前の話だ。 僕はこの本を読んで、数学に興味を持ち始めている。 まだ好きとは言えないけれど、「あれ?ひょっとして数学って面…

【読了】情報科学入門: Rubyを使って学ぶ

普段のプログラミングの役に立つ事あるかなぁ〜って思ったけど、そーでもなかった(笑) いや、それはアルゴリズムや再帰なんかを俺が既に「ある程度かじってた」からね。 復習にはなったかな。 アルゴリズム?再帰?なにそれ美味しいの?って人にはいいんじゃ…

なぜ技術者の賃金は安くなるのか?

注意:未清書・超殴り書き。 なぜ技術者の賃金は安くなるのか? そして、なぜ上流工程の人間の賃金は上がり続けるのか? その問題と解決策。 なぜ技術者の賃金はすぐに安くなってしまうのか? これは、上流工程が出来る人間の数が少ないからである。 つまり…

第4回やさしいPAIP読書会

paip3.pdf 本文に関する発表に使った資料。需要あるか微妙だけど一応。(新しく覚えた|間違ってた)から復習すること。 1.クロージャ関係 2.再定義したwhenのマクロ展開 3.再帰と末尾再帰をより深く! 1.クロージャ関係 サンプルコードの説明に限っては問題…

Ruby Miyako のインストール

これがやりたくて、MiyakoというRubyのライブラリを動かすのに、四苦八苦してました。 これ↓ Macでmiyakoが動く環境を作ろうとして、挫折しました(笑) SDLとSGEというのが必要なのですが、SGEをMacに入れるのがどうにも大変なんです。 port無いし、ビルド…

第3回 やさしいPAIP読書会

practice-2.1.pdf 本日は小飼弾さんのお宅で、毎月恒例「やさしいPAIP読書会」をしてきました。 第1回から今のところ、欠かず参加しています。 「やさしいPAIP読書会」とは、「実用CommonLisp」という本の読書会です。 1ヶ月に1回、これを1章みんなで進めて…

Ruby会議2010の感想文

さて、8月末はRuby会議2010というカンファレンスのお手伝いをしていました。 KaigiFreaksとして主に大ホールでUstreamでの配信と撮影のお手伝い、そして10人くらいで朝ランニングをしました(チャドと走った!)。 参加者の皆さん、スピーカーの皆さん、スタ…

gemパッケージを作ってみた。〜 RubyGems.org へのpushまでの道のり 〜

gemパッケージを作るのに非常に苦労したので忘れない内にメモです。 gemパッケージの作り方なんて全く知らない状態から始めたので、間違っている箇所があるかもしれません。 もし見つけたらツッコミよろしくです。 RubyForge.orgからRubyGems.orgへ 以前: Gi…

さまざまなオープンソースライセンスをまとめてみた。

オープンソースライセンスをまとめてみました。 GNUのどや顔が好きです。 でも、自分ならBSDライセンスを使います。 2010/05/09 19:00はてブでApache Licenseもお願いします、とあったので追記しました。 unagiameさん、ご指摘ありがとうございますm(_ _)m M…

Ruby Library twitterlandでTweetMemeのAPIを叩いてみた

tweetmemeは素晴らしいサービスですね。 tweetmemeとはあるURLに関して、Twitterで何回つぶやかれているか教えてくれるサービスです。 TweetMeme Sunset 今回、javascriptではなくRubyでライブラリのtwitterlandからtweetmemeのAPIを叩いてみました。 日本語…

VMwareServer2上のUbuntuにRails(Apache2+Passenger)を入れてみた

Debianだとaptでgem1.2.0が入ったりして面倒。 そして、VMwareだと今のメインサーバーでは起こらなかったエラーがでてorzestだったのでUbuntuで。 Ubuntuインストール時に「LAMP」と「OpenSSH」を選択しただけで、他はまっさらな状態です。 まず、お約束。 $…

ツイッターの楽しさが今一解らない方へ #良書紹介_ ツイッター140文字が世界を変える

自分がツイッターを始めて、最初に思ったのが「ナニコレ?」です。 つぶやけって書いてるけど、何呟けばいいの・・・? 何が楽しいのか、どうやって使えばいいのか解らない。 そんな人が多いと聞きます、僕もそうでした。 そんな人に勧めたい本がコレ、「ツ…

独学プログラマへ プログラミングの学び方(こんな方法はいかが?)

流れ 1.創りたい物を決める。 2.それを創るのに最適だと思われる言語を選択する。 3.創りたい物の機能一覧を作る。 4.その中から、最低限必要な機能をリストアップして、それらに優先順位を付ける。 5.優先順位に従い、コードを書く。 6.テストとデバック。 …

プログラマが楽しく読めるLink集 Vol.1

ネットサーフィン(死語)をしていて、プログラマなら誰でも楽しく読めるハズ! と思ったサイトや記事を紹介して行きます。 とりあえず、Vol.1ッ! ハッカーになろう (How To Become A Hacker) 実は、この5つすべて(Python, Java, C/C++, Perl, LISP)を勉…

科学嫌いな人と技術者に読んで貰いたい #良書紹介_ なぜ「科学」は

僕は学校で科学が嫌いだった。 しかし、この本はそんな人にこそ読んで欲しい。 だって科学嫌いだった僕がこんなにも驚き、楽しみながら読めたんだから! そして、技術者にも読んでもらいたい。 科学はウソをつかないが、人間はウソをつく。 科学者をエンジニ…