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

一瞬正論のような気がしたが

「時々勘違いしてる子がいるから言っとこうかな。読者にあるのは作品の話を変える権利じゃない。その作品を読むか読まないかを選択する権利だ。気に食わなければ読むのをやめればいい」 痛いニュース(ノ ∀`) : ブリーチ作者「才能も無く努力もせず不平言って…

Rubyいじり2

環境変数で挙動を変えるサンプルコードをチューターの須永くんに作ってもらったので、それを使ってもっと発展的な例を作ってみた。 diff: http://gist.github.com/526180 $ RUBY_VERBOSE=1 ruby -e "class Foo; end; Foo.new(42, :foo)" rb_class_new_instan…

Rubyいじり

Rubyをいじってるナウ --- object.c (revision 28759) +++ object.c (working copy) @@ -1542,7 +1542,7 @@ rb_class_new_instance(int argc, VALUE *argv, VALUE klass) { VALUE obj; + printf("rb_class_new_instance %s\n", rb_class2name(klass)); obj =…

圏論はデザインパターン

セキュリティ&プログラミングキャンプのヒトコマ圏論とモナドの話をしていて、ふと気づいたら僕よりモナドに詳しい人がいるんだから積年の疑問をぶつけてみるべきだ!と思って「モナドはデザインパターンだと思うんだ」と言ったら @yugui 「代数的構造って…

ハッシュのキーとして同一視されるものはなんであるか

http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-list/47272?47272-47298+split-mode-vertical # ruby p({1 => true}[1.0]) #=> nil あー。Pythonはそこのところゆるいよなぁ # python >>> {1: True}[1.0] True >>> {1: 1, 1.0: 1.0} {1: 1.0} Py…

Makefile

つくれと言われた気がしたので作った $ make love make: *** No rule to make target `girlfriend', needed by `love'. Stop.

Perlのスコープがわからない→わかった!

use strict; use warnings; sub foo{ my $x = "static"; sub bar{ print $x; } &bar(); } &foo(); Variable "$x" will not stay shared at tmp.pl line 7. むむ、当然参照できると思ったらできなかった。なぜだ? @miyagawa それはwarning なので参照はでき…

(Python|Ruby)でネストしたスコープの外側の変数に再束縛する

抜粋翻訳 PEP3104: Access to Names in Outer Scopesの内容をコードで。 Rubyでの挙動(1.9.3dev) メソッドの中で定義されたメソッドは外のスコープにアクセス出来ない。 > def foo(x) > def bar() > p x > end > bar > end => nil > foo 1 NameError: undefi…

OSCしらべ

Linux環境で、ソケット経由でなるべくきれいな音をコントロールしたい。調べてわかったことをつらつら書く OSC(OpenSound Control)とOSS(Open Sound System)は紛らわしいが全然別物なので混同しないように気をつける OSCの仕様とかを見ても全然具体的にどう…

というわけでさ

詳しい話は聞いていないけど、一人3500円の懇親会費がドタキャンの人のせいで5300円になったとかいうのはゆゆしき自体だし、それをブラックリスト作成とかで回避できないかって考える技術者マインドもよく分かるが、おそらくそういうブラックリストに入って…

利他主義のススメ

ネット上のまだあったことのない人のことを、人は簡単に裏切る。関係を継続せず、裏切ることによって別のコストが派生しないなら、正直に自分がコストを支払うよりも相手を騙して相手に払わせるほうが得だからだ。倫理的に見てほめられた行為でないことはも…

Ruby|Pythonでバイトコードをディスアセンブル

RubyにはPythonのdisみたいなものはないのかなぁと言っていたら、ささださんに教えてもらった。 irb(main):017:0> def facto(n) irb(main):018:1> if n == 0 then 1 else facto(n - 1) * n end irb(main):019:1> end => nil irb(main):020:0> puts RubyVM::I…

抜粋翻訳 PEP 342: Coroutines via Enhanced Generators

概要 このPEPはジェネレータのAPIと構文を改善して、シンプルなコルーチンとして使えるようにすることを提案する。 動機 コルーチンはいろいろなアルゴリズムを表現する自然な方法である。たとえば、シミュレーション、ゲーム、非同期I/O、そしてイベントド…

抜粋翻訳 PEP3104: Access to Names in Outer Scopes

概要 ネストしたスコープをサポートする多くの言語では、コードは最も近いスコープの名前を参照したり再束縛(代入)したりできる。現在のところPythonは外側のスコープの任意の名前を参照できるが再束縛は2つのスコープの中でしかできない。ローカルスコープ(…

ぼへー

今日翻訳したPEPを講義資料に追加して提出するつもりだったのをすっかり忘れてそのまま提出してしまった、まあいいけど。入れるとしたらOuter Scopeの方だけだから実例が1個増えるだけだし。

しまった

今朝翻訳した PEP238ってすでに翻訳されてるじゃん http://homepage3.nifty.com/text/script/python/pep-0238.ja.htmlPEP Indexに載ってるのを見落としたのかと思ったけど載ってないな http://sourceforge.jp/projects/pythonjp/wiki/PEPIndex今後の翻訳予定…

抜粋翻訳 PEP 238: Changing the Division Operator

概要 現在の除算演算子 (/) は数値を引数として使った場合の意味が曖昧である。引数がintやlongの場合には、数学的な除算の結果を切り捨てたものを返す。しかし、引数がfloatやcomplexの場合には除算の結果の妥当な近似値を返す。この異なる演算のために異な…

PEPのススメ

講義資料の続き PEPのススメ さて、言語の設計の違いについて学ぶことは重要だが、不毛な議論で時間を浪費することは避けなければいけない。ならばどうするのがいいだろうか?正解はないが一つの案としてPEPを読むのはどうだろう? PEPとは Python Enhanceme…

抜粋翻訳: Python Reference Manual: Lexical analysis

「Pythonで長くなった行を折り返すのって難しくないの?」 「全然難しくないよ。オフィシャルのコーディングスタイルガイドで79文字以下にすることが推奨されているくらいだし」 「その時のインデントってどうすればいいの」 「え?そんなの自由だよ」 「え…

抜粋翻訳 PEP 343: The "with" Statement

概要 このPEPは、try/finally文の標準的な使い方を切り出すことが可能なように、Python言語に新しい文 "with" を追加する。このPEPの中で、「コンテキストマネージャ」はメソッド __enter__() および __exit__() を提供する。これはwith文に入る際と出る際に…

今日覚えた

en

final blow とどめ, 最後の一撃 rant どなる、がなる、暴言

抜粋翻訳 PEP227: Statically Nested Scopes

概要 このPEPは Python 2.2 への静的にネストしたスコープ(レキシカルスコープ)の追加と、Python 2.1へのソースレベルでのオプションについて記述する。また、 Python 2.1はこの機能がenableされた場合に意味が変わるような構造について警告をする。従来の言…

抜粋翻訳 PEP3137: Immutable Bytes and Mutable Buffer

導入 Python 3.0a1で変更可能なバイト列型を公開して以来、変更不可能なバイト列型を表現する方法を追加せよとの圧力が強まった。(中略)古いPyStringの実装を使い、ロケールサポートとユニコードとの間の暗黙の型変換を取り除いて変更不可能なバイト列型とし…

LISP!

http://journal.mycom.co.jp/news/2010/07/27/007/index.html via @maeda 「LISP」は、「ひだまりスケッチ」シリーズのゆの役や『WORKING!!』の種島ぽぷら役などでおなじみの人気声優・阿澄佳奈を中心に、『おねがいマイメロディ』で夢野歌役を演じた片岡あ…

Rubyのスコープが面白かった件

$ irb >> $o_o = o_o =-~ ( "o_o" =~ /o_o/ ) => 1 >> def o_o (o_o) $o_o + o_o end => nil >> o_o => 1 >> o_o o_o => 2 >> o_o o_o o_o => 3 >> o_o o_o o_o o_o => 4 個人的には関数と非関数で名前空間が分かれてるのか!と驚いたのだけど、でもまあメソ…

抜粋翻訳 PEP 236 Back to the __future__

PEP 236 Back to the __future__ 動機 時が立つにつれて、Pythonは言語コアの構造の広く知られた意味づけに互換性のない変更を加えたり、思いがけない(実装依存の)振る舞いを何らかの形で変更したりする。こういう変更は気まぐれには行われず、常に長期的に…

抜粋翻訳 PEP3138 String representation in Python 3000

PEP3138 String representation in Python 3000 概要 この文章では、Python 3000用に文字列の新しい表現方法を提案する。 Python 3000以前のPythonでは、組み込み関数repr()はデバッグやログ出力のために、任意のオブジェクトを画面表示可能なASCIIの文字列…

講義資料の続き

Beating the Averages プログラミング言語は半分技術で、半分は宗教なんだ [注6] ... 注6: 結果として、プログラミング言語の 比較は宗教戦争になるか、中立であろうとするあまりに 人類学の研究かと見まごうような学部生用の教科書にしかならない。 平和を…

抜粋翻訳 PEP 3107 Function Annotations

概要 このPEPはPythonの関数に、任意のメタデータを追加するための構文を導入する。 根拠 Python 2.x 系は関数の引数と返り値を修飾する方法を持たなかったため、数多くのツールやライブラリがそのギャップを埋めるために現れた。いくつかは PEP 318 で導入…

レバレッジメモ: プログラミング言語の概念と構造

プログラミング言語の概念と構造。例の原稿を書く前にid:yuguiさんから借りたのに結局読みもせずに自分の記憶と勢いで原稿を書いてしまったのだが、今更読んでみた。っていうかこれはかなりいい本だ。というわけで返す前にレバレッジメモ作成。 参考文献のリ…