2010/07/23

[ book ] Mad Science――炎と煙と轟音の科学実験54

Mad Science ―炎と煙と轟音の科学実験54という本が出版されたそうな。

水銀モーターとかアーク炉自作とかテルミット反応を実際にやってみたりしたいですね。

この本ほしい (´・ω・`)

| | コメント (0) | トラックバック (0)

2007/07/09

[science] ビッグバン宇宙論

3 日ほど沖縄に行っていました。旅先ではネットに繋げなかったのですが、本を読んだり自然を観察することができました。 些細なことですが仮説を立ててそれを観察で確かめたりと、久し振りの、数年ぶりのゆっくりとした充実した時間だったと思います。 そこで実感したのは時間に追われる生活を送っていては知性は伸ばせないし、ろくなことを想起できないということでしょう。 欲を言えば、ヤンバルや西表で生物相を観察してみたかったです。動物園でイリオモテヤマネコなでなでもしたかったな (*/▽\*)

さて、持っていった本は「ビッグバン宇宙論」。読みたかったのですが、仕事方面で学ぶことが多くてまとまった時間をとることができなかった わたしの原点ともいえる理学分野のお話です。邦題からは暗号としか思えない数式と計算だらけの難しい本を連想してしまうと思いますが、実際の 内容は原題 "BIG BANG - The Most Important Scientific Discovery of All Time and Why You Neet to Know About it" が表している通りのものです。

「宇宙がどうなっているのか」この問いに人間は紀元前から挑み、いくつもの考えが生まれました。 広く受け入れられた考えもありますし、「常識的にありえない」と一蹴された考えもあります。 この本では、その考えがどうして生まれたのか、どうして当時否定されてしまったのかといったことと、 それぞれの説を考えた人たち -- 望遠鏡を自作したマッチョな貴族のおじさんとかメイドさん、アインシュタインの苦悩 -- のエピソードが書かれています。 この本の上巻を読めば宇宙論は突飛なものではなく、他の分野と同じように日常から生まれたものだということがわかるでしょう。

しかし、本書が優れているのは「科学者として一番大切なものは何か」を簡潔にそして説得力のある形で示していることと、 それにどのようにして向き合えばいいのかも具体的に書かれていることでしょう。科学者として疑問に向き合うにはどうすればいいのか、 データをどのようにみればいいのか。そして、打ち砕かれる説と生き残る説はどこが違うのか。

宇宙とは関係がない分野を研究している、または目指している場合でも本書から得られることは大きいと思う。 学生、あるいは研究者として続けていくことに疑問を感じた時に読んでほしいタイトル。

もちろん、本書には宇宙に関する様々な疑問の答えとその考え方もわかりやすく解説されている。 月の大きさはどうやって求められるのか。宇宙に行くこともできない紀元前に地球の赤道距離をどうやって求めたのか。 地球から太陽までの距離はどうやって求められたのか。すんごい遠くにある星 -- たとえばシリウス -- までの距離ってどうやって求めるのか。 宇宙の大きさってどうやって考えるの? こんな疑問を持ったことがあるなら楽しめるでしょう。

| | コメント (0) | トラックバック (0)

2007/04/05

[ book ] IronPython の世界

IronPython の世界 目次を見て購入決定。IronPython と CPython の違い ( 互換性 ) といった基本的なことはもちろん目次にあります。また、プログラムで頭を抱えることが多いのが文字コード問題ですがこれに関するページも。加えて、追加されたばかりの WPF を使ったプログラムを IronPython で作る方法も書かれているみたい。

詳細目次がどこにも載っていないので書いてみる( ´・ω・`)

Part1. IronPython とは
IronPython の歴史
Python Conference 2004
Open Source Convention 2004
IronPython 1.0 のリリース
CLI と .NET Framework, そして IronPython
CLI と標準化
CLI と .NET Framework
IronPython と .NET Framework, そして CLI
IronPython のアーキテクチャ
CPython との違い
IronPython 環境の構築
環境の確認
CPython 2.4.4 の導入
IronPython の導入
マニュアルの入手
IronPython のライセンスについて
 
Part2. IronPython を動かしてみる
IronPython の起動と環境の表示
インタラクティブシェルを起動する
キーボードからコードを入力する
インタラクティブシェルを終了する
IronPython の環境を表示する
プログラミングの基本
命令
変数
条件分岐
繰り返し
インタラクティブシェルのコマンドラインオプション
デバッグリリースでしか有効にならないオプション
すべてのリリースモードで有効になる、代表的なオプション
インタラクティブシェルの対話入力編集機能
IronPython と日本語
プログラムの中での日本語の取り扱い
スクリプトファイルでの日本語の取り扱い
外部ファイルを処理するときの日本語の取り扱い
 
Part3. CPython との互換性
組み込みのデータ型
組み込みのデータ型一覧
数値を使う
真偽値を使う
文字列を使う
リストを使う
タプルを使う
辞書を使う
set 型を使う
組み込みデータ型のまとめ
関数
関数を利用する
関数の定義
ファイル処理
ファイルオブジェクトを使う
組み込みモジュール
モジュールの使い方
モジュールを使う
CPython のライブラリを使用する
CPython 2.4 のライブラリ使用の準備をする
CPython のライブラリを使用する
プログラムを短くするテクニック
リスト内包表記
lambda ( ラムダ ) 式
イテレータ
ジェネレータ
オブジェクト指向
クラスとは
クラスを定義する
 
Part4. .NET Framework のライブラリを使用する
IronPython から .NET Framework へのシームレスな連係
.NET Framework へ Python データ型を拡張する
.NET Framework のライブラリを使う準備
ファイル入出力を使う: System.IO ネームスペース
StreamReader クラスを使う: System.IO.StreamReader
異なるエンコードのファイルを読み込む
StreamWriter クラスを使う: System.IO.StreamWriter
異なるエンコードのファイルを書き込む
正規表現: re モジュール
正規表現を使う 2 つの方法
正規表現文字列
正規表現オブジェクトを使用する
マッチオブジェクトを利用する
パターンを引数にして正規表現を利用する
正規表現の活用例
Windows Forms を使った GUI アプリの開発
Windows Forms を使う
WPF* を使った GUI アプリの構築
WPF を使う
Window を使う
XAML を使う
イベントハンドラを使う
ファイルシステムウォッチャー
 
Part5. IronPythonで DB & Web プログラミング
データベースプログラミング
SQL Server 2005 とは
インターネットにアクセスする
Web や FTP からファイルを取得する
Web や FTP からデータを読み込む
知っていると便利なプロパティ
Web や FTP へデータをアップロードする
Web サービスと API との連係
Yahoo! Japan の Web サービスを使う
SOAP を使った Web サービスを利用する
XML や HTML を使う
ElementTree を利用する
System.Xml を使う
Web アプリケーションを作る
CGI として利用する
ASP.NET の仕組みから IronPython を実行する
自分で HTTP ハンドラを用意する
IronPython for ASP.NET
 
Part6. もっと IronPython を使いこなすために
ソースコードを探索しよう
ソースコードを探索する
IronPython に独自モジュールを追加しよう
.NET Framework 対応の言語から IronPython を使う
COM 相互運用アセンブリを使う
デバッグの方法
ユニットテストを使う
Microsoft CLR デバッガを使う
Visual Studio 2005 をデバッガとして使用する
 
Appendix
IronPython ドキュメントミニツアー
ネット上で読める CPython のドキュメント
IronPython の重要なドキュメント
.NET Framework のライブラリに関するドキュメント
Python のコミュニティ
IronPython と Visual Studio 2005 との統合
言語パッケージをビルドする
作成した IronPython 言語パッケージを使う
IronPython のサンプル
Python 言語の例外処理

( * ) : 開発コード名 Avalon

| | コメント (0) | トラックバック (0)

2006/12/07

[ .NET ] プログラミング Microsoft .NET Framework 第二版

CLR via C# 邦訳版

プログラミング Microsoft .NET Framework 第二版が発売されたそうです。原題は CLR via C#。.NET プラットフォームで開発をするなら必読といわれている本の改訂版だ。.NET Framework 1.x のときは .NET プラットフォームには魅力を感じなくてスルーしていたんだけど、.NET Framework2.0 になっていろんな言語が .NET プラットフォームに移植されている。

IronPython を使っていることもあり、.NET って便利なプラットフォームかもしれないと思うようになったので買うことに。どんな感じで中間コードが実行されていくのかという仮想マシンの動作にも興味がわいたのも理由のひとつ。

Amazon.com の書評によると次のようなことが書いてあるらしい。

  • ソースコードはどのようにして中間コードに落とされて、管理実行されるのか
  • データはどのように区別され、管理されるのか
  • フィールドやメソッドなどクラスを構成するメンバーについて
  • 例外の処理の仕方
  • ガベージコレクションの仕組み
  • リフレクションの仕組み
  • マルチスレッドアプリケーションはどうやって書いたらいいのか

How To 的な知識はどうでもいいんだけど、ソースコードがどのようにして中間コードにコンパイルされて、仮想マシンが中間コードをどのように実行しているのかはかなり興味がある。こういった知識は IronPython とか cPython と連動させたときに役に立つんじゃないかと予想している。

さっそく水曜日の夜に予約したんだけど、、、、
今朝ステータスページを見てみたら売り切れてました _| ̄|○il|!

Reference
.NET Languages
研究段階も含め .NET で動くさまざまな言語が紹介されている。Ruby や Haskell があるのはわかるのだが COBOL まであることには驚いた。

| | コメント (0) | トラックバック (0)

2006/12/04

[ python / books ] 実践Python errata

日本でも Python が広まってきたようでうれしいですね。

さて、実践 Python という Python 入門書が出版されたようなので 読み始めてみました。まだ序盤ですが、Python が純粋な OOP 言語 と紹介されていることと、エラーが多めな点を除けばいいんじゃないかと思います。

Learning Python と 実践 Python のどちらがいいのかというのは 読了まで待つとして、気づいたエラーとその訂正でも書いていこうかと思います。 わたしもまだ読んでいる途中ですので気付いたものから書いていきます。

友人から教えてもらって判明したのですが、このページが Google の Web 検索でかからないとか。 なんでも、先日の朝方までは "実践Python" で検索すると出てきたのに いまでは全く引っかからないとか ( ほかのページは引っかかるようですが ) 。 う~ん、ここは Blog なので Blog サーチじゃないと出てこないとか?そんなところじゃないかな?

2006/12/11 AM11:05
このページが Google 八部にされていることを確認しました。
Google に URL 再登録を頼んでみましたが・・・。再度削除された場合、これに関して別エントリを書こうと思います。Google に削除要求を送ったと考えられるのは、4 つくらいあるわけだけどね。わたしは卑劣で姑息な手段が大嫌いだ。さて、どう書いてくれようか。
2006/12/11 17:42
Google に申請した再登録手続きの結果が反映された様子。現在、復帰しています。
さて、どうなるでしょうかね。
P19 configure--help configure --help
( configure と --help の間に半角スペース)
P50 Python のサンプルコード
[x *10 for x in xs if not x % 2]
[even for even in range( 1, 11 ) if even % 2 == 0]
( 関数にする必要はないんじゃないかと )
P71 図6-2-1-1 文字の抽出
( 正のインデックス )
文字の抽出 ( 負数を使った indexing )
右端から数えて n 番目というときは負数を使った indexing
P78 サンプルコード
a.center( len( b ) + 4 )
a.center( len( a ) + 4 )
len( b ) の場合エラーになります。たぶん len( a )
P98 サンプルコード7-2-9-1
for x, s in zip( a, b ):
print x, s
↑インデントがない
for (x, s) in zip( a, b ):
     print x, s
P113 サンプルコード 8-1-3-1
>>> len((1, 2, 3))      # タルの長さ
# タルの長さ
tuple ( タプル ) ですよ。 (^_^ ;
P113 表 8-1-3-1 リストメソッド は集合演算を行うことで確認できます。
wrapper_descriptor も含めるならいくつか増えますね。
コードは次のとおり。
list_method = set( [method for method in dir( [] ) if eval( "callable( list.%s )" % method )] )
for seq_obj in ("''", "u''", "()"):
     exec "list_method -= set( dir( %s ) )" % seq_obj
print list( list_method )
P121 pop はリストの末尾要素を削除します。引数はとらずに、 リストの末尾要素を捨ててしまうのです list.pop() は引数とれますがな。pop() が切り出すのは末尾要素とは限りません。 help( list.pop ) でヘルプ参照してください。
list.pop() に引数を与えると次のようになります。
>>> ascend = range( 10 )       # 0~9までの整数のリスト
>>> [ascend.pop( 0 ), ascend.pop( 5 )]
[0, 6]
>>> ascend
[1, 2, 3, 4, 5, 7, 8, 9]             # 切り出した要素はなくなってる

正しくは ( help() の要約だけど )↓
「pop() は指定されたインデックスの要素を返す( return する ) と同時に、 その要素を元のリストから削除します。デフォルトではリストの最後の要素が対象です。 存在しないインデックスを指定された場合は IndexError 例外を発生させます。」
P137 サンプルコード 9-1-5-2
>>> print z      # None ふぁ返される
# None が返される
笑わせてもらいました (^-^;;
P157 10-1-6 >> オブジェクトのメソッド
オブジェクトの属性のうち、オブジェクトにピリオド「.」を続けることで アクセスすることができるものを「メソッド」といいます。
・・・・・・(;´Д`)
ピリオドを続けることでアクセスすることができるものが 必ずメソッドであるとはいえません。文字列や数値の時もあります。 メソッドとは何らかの機能を持った callable なものです。
P165 11-3-3 複数の値を返す
複数の戻り値を変数と利用するためには、戻り値と同じ数の変数を用意して、 関数の代入を行います。
Python では return に続けて複数のオブジェクトを指定した場合、 それらはひとつのタプルの中にまとめられて返されることになっています。 したがって、当然のことですが、ひとつの変数で受け取ることも可能です。
>>> def multiple_value_func():
...         return "hoge", "fuge", "piyo"
...
>>> cargo = multiple_value_func()
>>> cargo
('hoge', 'fuge', 'piyo')

return の後ろに指定したオブジェクトの数と同じ変数を用意しなければならないのは、 unpacked assignment を行ってタプルの要素をそれぞれの変数に代入するときだけです。

さらに、関数の代入とは次のようなものです。
>>> cargo = multiple_value_func        #() がないことに注目
>>> cargo
<function multiple_value_func at 0x1871456c>

関数を呼び出した場合には戻り値が変数に入りますが、 関数を代入した場合には関数への参照が変数に入ります。 関数の呼び出しと代入はまったく違うものです。
P172 構文
def 関数名( 引数リスト ):
"文字列"
     関数ブロック

def 関数名( 引数リスト ):
"""文字列"""
     関数ブロック
def 関数名( 引数リスト ):
     文字列リテラル
     関数ブロック

関数ブロック内は、コメントや doc ストリングであっても インデントが必要になります。
P183 図 12-1-2-1
def class1()
     "This is sample class."
     pass
class sample_class1( object ):
     "This is a sample class."
     pass

クラスの定義は def ではなく class キーワードで開始します。
また、class ステートメントの末尾にはコロンが必要です。
P185 構文 12-1-5-1 dir 関数
dir( ジュールオブジェクト )
dir( モジュールオブジェクト )
なお、dir() はモジュールオブジェクト以外にも使うことができます。
P188 構文 12-1-9-1
if __name__ == '__main__':
実行する関数・オブジェクト

サンプルコード 12-1-9-1 runAsProg.py
if __name__ == '__main__':
main()
if __name__ == "__main__":
     実行する関数・オブジェクト

if __name__ == "__main__":
     main()

構文・サンプルコードともにインデントが不正です。
サンプルコードが間違っているので図 12-1-9-1 もおかしいです。
サンプルコードを実行すると IndentationError が返ってきます。
P193 コラム itertools モジュール
lzip, imap, ifilter 関数
izip ですね。
itertools モジュールが持つ callable オブジェクトは次の式で確認できます。
[method for method in dir( itertools ) if eval( "callable( itertools.%s ) == True" % method )]
P197 12-4-2 パッケージをインポートする
インポートされたパッケージは、Python のオブジェクトとしてはモジュールとまったく module 型であることがわかります。
インポートされたパッケージは、Python のオブジェクトとしてはモジュールとまったく同じ module 型であることがわかります。
P203 13-1-4 クラスを定義する
クラスの定義するには class ステートメントにより行います。( 中略 ) そしてコロン「:」を続けた後、通常は改行インデンテーションを行ってから
クラスの定義するには class ステートメントを使います。( 中略 ) そしてコロン「:」を続けた後、通常は改行をしてインデンテーションを行ってから
P218 サンプルコード 13-4-5-1
>>> len( c )
10
>>> len( c )
5
P219 サンプルコード 13-4-6-1
>>> class Container( object ):
. . .      def __init__( self, start, end ):
. . .           self.start = start
. . .           self.end = end
. . .      def __len__( self ):
. . .           return self.end self.start + 1
>>> class Container( object ):
. . .      def __init__( self, start, end ):
. . .           self.start = self.start
. . .           self.end = end
. . .
. . .      def __len__( self ):
. . .           return self.end - self.start + 1

ミ ってなんでしょう?そんな演算子なかった気が・・・
あと Iterator メソッドの定義にある self.pos = start では NameError がでますね。ここはインスタンスが持っている start 、つまり self.start を代入するようにしなければなりません。
P304 ctypes パッケージの解説
Python のオブジェクトとして直接利用できる協力な機能です。
強力な機能です。

ついでに Tips 的なものをば( ´・ω・`)

P120 リストの要素追加
append() も map() と組み合わせると複数の要素を追加できます。
None が入ったリストが標準出力に帰ってきますが orz
>>> test_list = []
>>> map( test_list.append, list( "hoge" ) )
[None, None, None, None]
>>> test_list
['h', 'o', 'g', 'e']
P123 リスト演算の違い
x = x + [1] と x += [1] の違いは ID を調べることで確認できます。
x = x + [1] の場合
>>> a = []
>>> old_id = id( a )
>>> a = a + [1]
>>> new_id = id( a )
>>> old_id == new_id
False

x += [1] の場合
>>> a = []
>>> old_id = id( a )
>>> a += [1]
>>> new_id = id( a )
>>> old_id == new_id
True
P126 タプルの順序を反転する
list.sort() に reverse フラグがあるように組み込み関数 sorted() にも reverse フラグがあります。これを利用してもタプルの要素の並び順を反転できます。
>>> ascend_tuple = tuple( range( 10 ) )
>>> descend_tuple = tuple( sorted( ascend_tuple, reverse=True ) )
>>> descend_tuple
(9, 8, 7, 6, 5, 4, 3, 2, 1, 0)

| | コメント (0) | トラックバック (0)

2006/12/01

[books] Write Great Code とかいろいろ

Write Great Code -Thinking Low-level, Writing High-level Write Great Code vol.1 understanding the machine に続いて、 Write Great Code vol.2 Thinking Low-level, Writing High-levelも翻訳されたようです。

プログラムを書いていると、レイヤーの低い部分の知識が助けになることが結構あります。 実装しているとき以外にも、新しいプログラミング言語の勉強をしているときもそう。 今ではほとんどのプログラマは自分で実装することがないかもしれない、そんな知識だけど 持っていると助かることが多いんです。

OS とかよりももっと低い部分の知識。というより OS がどーだこーだの知識よりよっぽど大事ですよ。 OS の知識なんてバージョンアップとかパッチに伴う仕様変更で使い物にならなくなるものも少なくないからね。 OS が変わったら役に立たなくなる道具と、OS に関係なく役に立ってくれる道具があったとしたら、 どっちが "trivial" でどっちが "important" なんだろう。

Write Great Code で書かれているのは、OS が変わっても役に立ってくれる貴重な知識だと思う。 新しく出版される vol.2 ではコンパイラが生成するネイティブコードに焦点が当てられている。 Java や .NET のようにビルドするときは中間コードを生成するような言語でも、実行するときには 仮想マシンがネイティブコードにコンパイルしながら処理を進めていく。結局はどこかで ネイティブコードにコンパイルされるわけで、高級言語で書いた statement の違いがネイティブコードに どんな変化を与えるのか、パフォーマンスや安定性に与える影響はどうなのかということを 知っておくことはどこかで役に立つと思う。

Amazon.co.jp ではまだ予約扱いになっていますが、発送予定日は 12/2 ということなので早速予約しました。 ( * これを書いているのは 12/1 ですが、注文は 11/30 にしています。)

Write Great Code vol.2 のほかにヒトの変異 --人体の遺伝的多様性についてThe Art of Innovationも購入しました。早く到着しないかな。

| | コメント (0) | トラックバック (0)

2006/07/08

[ review ] ヤバい経済学 読了

Freakonomics

ヤバい経済学 ( 通称 Freakonomics ) 読了。

世の中にある、多くの人がこうに違いないと信じきってしまっていること -- Steven D. Levitt は通念と呼ぶ -- や、普段あまり気に留めないことを違う角度から見るとどうなるか。実に鋭い考察だ。

たとえば、1990年代初めのアメリカでは犯罪がどんどん増えていた。1980年からの犯罪発生回数をグラフにするとうなぎのぼりといってもいいほどだった。1995年には、犯罪はもっともっと増えるといわれていたが・・・。2000年になるとがっくりと減ってしまった。この理由については、「景気がよくなったから」とか「画期的な犯罪取締り」といった説が広く受け入れられている。しかし、著者はこれに一石を投じたのだ。「データはそんなことは反映していない。もっと別の理由があるのだ」と。わたしはまず驚き、そして納得した。

Don't Politic, Use Data.

本書ではこの姿勢が貫かれている。 "Don't Politic, Use Data." は Google が掲げるイノベーションのための9箇条にもあるデータドリブンの原則をうたったものだが、研究者にとっても必須といえる「お約束」だ。しかし、いざ実践するとなると非常に難しい。妥当性のあるデータを見つけるのも一苦労だし、膨大なデータの山をどの角度から見たらいいものかといつも悩む。

ヤバい経済学を日々のあれこれに応用するとき、少なくとも1つ、いつも底のほうに流れているものがある。それは ( 中略 ) 筋の通った考え方をするということだ。そのために必要なのは、新しい見方をする、新しい理解の仕方をする、新しい測り方をする、そんなことだ。

( 終章より抜粋 )
という著者のデータの集め方、視点の角度の付け方はとても参考になる。

なお、原著は経済学の教科書としても使われるようになり、その補助として Freakonomics Study Guides まで書かれています。筆者 Steven D. Levitt の Web サイトはこちら。 Freakonomics Study Guides は こちら。

| | コメント (0) | トラックバック (1)

2006/06/17

[ review ] PyCookbook chapter1

Python Cookbook 2nd Ed.

まず、最初に感じたのは O'Reilly にしてはかなり読みづらい、というか unconcise な英文だということだ。 Twisted Essentials のような clear かつ concise な英文も珍しいが、ここまで unconcise な英文も珍しい。これほど酷い英文は O'Reilly では初めてのことだった。

構成に関してもちょいと難がある。たとえば recipe1.9 を理解する鍵の部分の解説が recipe1.10 に書かれているのだ。技術解説書籍なのだから、普通は逆の構成だろう。「recipe1.10 を理解する鍵は前述の recipe1.9 で既に解説したので、わからない場合は戻ってみてね」ならわかる。しかし、recipe1.9 では満足な解説もなく(というか実行例しか書いてない)、鍵となる部分の開設は後述するとの断りもないとは酷すぎる。レシピは実際のコーディングでも役に立つものがあるだけに残念だ。

幸いにして Python Cookbook 2nd Ed. は複数の著者の共著となっているので、他の Chapter はそれほど酷くないかもしれない。書籍で Python ではどうやって実装するのかというレシピを載せたものは本書くらいしかない。残りの Chapter は読みやすいことを祈るばかり。

| | コメント (0) | トラックバック (0)

2006/05/23

[ Python ] 初めての Python 第二版 読了

初めてのPython 本の進行は、序文で書かれているように、最初から順番に読んでいけば Python の基礎を習得できるようになっています。ちゃんと理解してから 次のステップに進むようにすれば、前に戻ったりする必要もありませんし、 指示で序盤のうちから本の後ろの方に飛ばされることもありません。 この構成はとてもよかったと思います。

しかし、O'Reilly にしては訳の質があまり高くないなぁというのが正直なところ。 ちょっと首をかしげる箇所があったので原著と照らし合わせたのですが、 誤訳と思われる場所が数箇所ありました。

さらに、訳者が不用意に手を加えていたのもマイナスだと思う。 原著では "21.4.3.1 User-Defined Iterators" となっているところが 訳では単に「イテレータ」とだけ書いてあって、イテレータそのものの 説明であるかのように思えるなどやはり何箇所か首をかしげる箇所がありました。

PS.
アドバイスを下さった皆様方、ありがとうございました m(_ _)m

| | コメント (0) | トラックバック (0)

2006/04/12

[ Publishing ] 書籍メモ

Ruby レシピブック
実際なんか書くときには役に立つ
らしいですよ。
Perl Cookbook(原著)
日本語版 Perlクックブック volume1 / volume 2
ないと困るらしいです。
ちなみに、原著では1冊。邦訳版は上下巻です。
MySQL Cookbook(原著) / 日本語版 vol.1 日本語版 vol.2
あるとものすごく便利だとか。
これも原著だと1冊。翻訳版では上下2冊です。
C++ in a nutshell(原著)
C++ ランゲージリファレンス / C++ ライブラリクイックリファレンス
ランゲージリファレンスでは C++ の細かな言語仕様が書かれています。 ライブラリクイックリファレンスでは、標準ライブラリが網羅されています。 どちらも学習書としては使えません。一通り C++ を学習して、実際にコードを書くようになってから、 この関数はどんな仕様だったかな、あるいは書いたコードを動作させたら不可解な結果に なってしまったけどなんでだろう というときに確認する形で使用することになるでしょう。 ライブラリリファレンスは常に手元においておきたい一冊です。
Python Essential Reference
python.org にあるリファレンスはどうも使いづらい。 でも、リファレンスがないとコードを書きにくい。 Safari にもまだ入りそうにないので 書籍で購入することにしました。
Programming Ruby Second Edition(原著)
プログラミング Ruby 第二版 言語編 / ライブラリ編
日本語版の出版予定が 5月に延期されています。がっくり_| ̄|○
アンビエントファインダビリティ
キターーーーーーー
と思ったものの 4/11 朝でも Amazon にない。
4/12 18:00 にチェックしてみたら在庫切れ・・・(;´Д`)

| | コメント (0) | トラックバック (0)

より以前の記事一覧