2010-07-01から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さんから借りたのに結局読みもせずに自分の記憶と勢いで原稿を書いてしまったのだが、今更読んでみた。っていうかこれはかなりいい本だ。というわけで返す前にレバレッジメモ作成。 参考文献のリ…

麦茶のダブルバッファ

最近、前から持っていたのに使っていなかった2リットルの麦茶を作る冷蔵庫に入れる容器の利用を開始した。片方のお茶がなくなると、即座に古いお茶パックを捨てて水を入れて冷蔵庫にしまう。そうするともう片方のお茶を飲み終わる頃には新しいお茶ができてい…

洗濯物を干した

最近書いてないなと言われたので。洗濯物を干した。前回の洗濯物を取り入れた際に、たたんでかごに直していたので、下着干しやハンガーに十分余裕がある。すぐに干せる。洗濯を開始した時点で余裕が無いなら事前に実行しておくと洗濯が終わったあとで干すタ…

Haskellの「fib = 1:1:zipWith (+) fib (tail fib)」がとても遅い件のまとめ

前日話の流れを時系列でまとめかけたけど、もはや情報量が多すぎて流れを追っていなかった人にとってはキャッチアップが困難かと思うので改めてまとめてみる。(情報量の多いほうがいい人はこちら: 続:Haskellのfibが遅い件) Haskellでフィボナッチ数列を定義…

不完全にしてかなり言葉足らずな比較プログラミング言語学

プログラミング言語は人が作ったもの。人は誤るもの。なので完璧なプログラミング言語は存在しない。「人は誤るもの、しかし誤りに固執するのは馬鹿の所業だ。」(キケロ) プログラミング言語も、間違った設計をして、馬鹿でない人がそれを修正することの繰り…

原稿をブログで書くメソッド

もうちょっと早く着手すべきだったなー。締切りを知った時点で締め切りが一週間後という。公平性を重んじて偏りがないように慎重に書くよりも、炎上しそうなことを勢いで書いてしまって反論を受けて修正する方がスピードは速いわけだが、うむむ。

今回の件で個人的に学んだことのまとめ

gnuplotの使い方 fit a*(x**b) "data.txt" via a, b plot a*(x**b) "data.txt" using (log ($1)):(log ($2)) set log x unset log x GC GCは想像以上にいろいろな処理のオーダーに影響を与える 事実と解釈 他人と解釈が食い違う場合、特に自分がある事実Xを…

レバレッジメモ: レガシーコード改善ガイド

レガシーコード := テストがないコードテストを作成するためには対象とするクラスから他のクラスへの影響を把握する必要がある。依存関係を排除しておけばニセのクラスを突っ込んで影響を直接観察できる。テストをするたびに本番コードを編集するわけには行…

FAXを送る

僕がテキストデータとして持っている物をFAXで遅れという電話がかかってきたがFAXなんて持ってないし。というわけで検索してみてこういうサービスを発見:【ビジネスに役立つ無料ツール】 Webブラウザから無料でFAX送信! 41カ国に送信可能な「MyFax Free」 -…

Haskellで単にn回7を掛けるだけでもO(n ^ 2.6)の時間がかかる

追記: このタイトルはミスリーディングで、きっちり末尾再帰にすればO(n ^ 2)になります。 k.inaba (略) とりあえず多倍長とGCと原因切り分けませんか http://shinh.skr.jp/m/?date=20100721#c01ということでとりあえず多倍長計算だけしてみた。(追記: これ…

続:Haskellのfibが遅い件

とても勉強になる流れなのでとりあえずざっくりとまとめる Haskellの「fib = 1:1:zipWith (+) fib (tail fib)」はとても遅い Haskellの有名なfibの定義は素朴なループでの定義に比べて格段に遅く、O(n^2.6)くらいの実行時間がかかり、N = 100000でPythonにす…

海の哺乳類展に行ってきた

イッカク!これは1本だけある歯だそうな。超出っ歯。

Murotoのソースコードを公開しました

MurotoPongのコードとMurotoTesterのコードを公開しましたhttp://code.google.com/p/muroto/MurotoPong: MurotoTester: ライブラリは個別のプロジェクトに入れずに /libs/muroto/に入れてあるのだけども、適宜プロジェクト内からln -sするなりコピーするなり…

Google Codeにコードをコミットする

Mercurialなどでpushする際のアカウントには自分のGoogleアカウントのメアドを入れるけども、パスワードにはGoogleアカウントのパスワードではなく https://code.google.com/hosting/settings で見られるパスワードを使う。何が目的なのだろう?

558文字1行のPythonで書かれたBrainf*ckインタプリタ

http://gist.github.com/476940もう3年も前の PythonでBrainf*ckインタプリタ(それ1行で書けるよ)の話なんだけど、動かないまま放ったらかしにしていたのを思い出したので修正してみた。まあ、空白文字を取り除く前のコードも残っているし、圧縮に使ったプロ…

portでtuareg-modeをいれたらemacsclientが動かなくなった

ぐっへり。お片付けは苦手なのである。 $ emacsclient -s /tmp/emacs501/server tmp.txtってやれば動く。「/tmp/emacs501/server」の部分の名前がなんかで書き換わってしまったのかなぁ。 $ export EMACS_SERVER_FILE=/tmp/emacs501/server $ emacsclient tm…