電子書籍初体験 読書感想「拝金」

2月 7th, 2011 admin

なんかiPhoneで読んでみようと思って買った本。この著者の本は3冊目ぐらいかな。
内容的にはブログに書くほどの内容ではなかったが、電子書籍初だったので。

あらすじ

フリーターの普通の男が、堀江氏っぽい人に見出され、堀江氏っぽい成功をする。というお話

感想

文章的にはライトノベルの分類で、話も面白いというわけではない。ただ、主人公の成功体験や騙し騙されの駆け引きのなかに堀江氏の実体験(ノンフィクション)とフィクションが織り交ざり、どこがノンフィクションなのか想像するのが楽しい。
とほめてもみるが決して面白くないのでお勧めはしない。

電子書籍について

今回はiPhoneで初めて600画面ぐらいある文章を読んだ。
いままでは青空文庫で古典を読もうとしたりしたがずっと挫折していました。
しかし、コトリコ氏の

絶対に目は疲れる

モニタで読むと目が疲れるとかどうとかいうのがありますけど、紙でもずっと読んでたら疲れる。
ずっと読んでたら、絶対に疲れます。
電子インクの製品は目が疲れないということになってるんですけど、僕が使った分にはあんまり関係ないです。
なので目が疲れる云々というのは考える必要はありません。
つか何回でも書くけど、ずっと読んでたら絶対に疲れるし、確実に疲れるし、なに使っても同じだボケ。

画像を5万ページ読みました コトリコ

を読んだら妙に納得し、確かに電子書籍(特に液晶)は疲れるが、どうせ本(紙)もつかれるし読まないよりは読んだほうがましという気持ちになり挑戦してみました。

実際に読んでみるとそれほど疲れるという感じはありませんでした。また、僕は布団で横になりながら読むことが多いので、仰向けで本をもっているのがつらいのですが、iPhoneなら軽いしページの右とか左とかもないので腕は本よりよっぽど楽でした。
またiPhoneをメインの携帯として使っているので、基本的にいつでも持ち歩いており1分でも時間があれば読み進められるというのもとてもいいなと思いました。

まとめ

このお話「拝金」は小説の形をとってはいるものの実際には単に堀江氏とする飲み屋での話しみたいなもので、これを一般人に1,000円ださせて読ませるというのはいかにも興味のない人にとっては有難くなくて堀江氏らしいです。

とにかく電子書籍初体験ができてよかった。iPhoneで本をよんでみて、電子書籍を読む端末でほかにもKindleとかってのがあったりしてそれは「せんせい」みたいな方式になっておりiPhoneの100倍以上読みやすくて非常にいいなと思っていたんですし、実際に目にはいいと思うんだけど、iPhoneぐらいの速度がないと本を読んでいたらイライラするでしょう。

とにかくiPhoneだろうがなんだろうが読まないよりは読んだほうがましってことです

★☆☆☆☆

GC本読書会が終りました

1月 19th, 2011 admin

ガベージコレクションのアルゴリズムと実装読書会

2011/01/16の第11回GC本読書会で2010/04/18から全11回でやってきたGC本読書会(ガベージコレクションのアルゴリズムと実装読書会)が終了しました。
最後に自分の言葉でGCについて確認し、8ヶ月の読書会のまとめとしたいと思います。

GCとは

GC(Garbage Collection)とは、プログラム中で使わなくなったメモリ領域を見つけ、開放するプログラムである。

GCが組み込まれている言語

Java,Python,Ruby,Perlなど
逆にない言語はC、C++など

メリット、デメリット

メリットはGCがあることでプログラマがメモリの確保、開放に気を使わなくてよいことである
(メモリの確保、開放が適切に行なえないとメモリリーク、オブジェクトの二重開放、無効なポインタという問題が発生する可能性がある。)
デメリットは、ガベージコレクションの処理によって処理が遅くなることである。

主なGCの種類

GCはマークスイープGC、参照カウント、コピーGCの3つのアルゴリズムが基本である。

マークスイープGC

GCをマークフェーズとスイープフェーズという2段階で行なうGC.マークフェーズででは生きているオブジェクトにマークをつけ、スイープフェーズでオブジェクトを回収するというアルゴリズム。
実装が単純で保守的GCとの相性がよい、ただしフラグメンテーションが起こりやすかったりする。

参照カウント

あるオブジェクトが何個のほかのオブジェクトから参照されるかということをカウントしておき、カウントが0のオブジェクトを開放するというアルゴリズム。
マークフェーズが不要なのでゴミの回収時間が早いが、カウンタを増減処理が必要になる。

コピーGC

使えるメモリ領域を2つのFrom空間とTo空間にわけ、最初はFrom空間をつかい、From空間がいっぱいになったら生きているオブジェクトだけをTo空間に移動しFrom空間を削除。From空間とTo空間を入れかれるというアルゴリズム。
死んでいるオブジェクトの探索がない分高速でオブジェクトの移動の際にメモリ領域が整理(コンパクション)されるのでフラグメンテーションが生じないが、ヒープ領域を分割しなければならなかったり、保守的GCとの相性が悪かったりする

そのほかの代表的な手法

上記の3つの組み合わせになります

マークコンパクトGC

マークスイープGCにコンパクションを加えたもの

保守的GC

ポインタと非ポインタとを識別できないGCのこと。
GCはポインタなのか非ポインタ(数値等)なのかわからない場合にはポインタとみなし安全に処理する。その反対にすべてのポインタを把握しているのが正確なGCである。

世代別GC

「多くのオブジェクトは若くして死ぬ」し「長生きしているオブジェクトはこれからも長生きする」という経験を元に効率UPを図ったGC

インクリメンタルGC

GCを徐々に行なうことでGCによる1回の停止時間を短くしたGC

まとめ

・GCについて学んでも(残念なことに)僕はnariさんほどは目が輝かない
・GCは基本のアルゴリズムは3つだが、結局環境や言語に応じて最適化する必要がある
・しったかしてたGCについて少し自信がもてるようになった
・実装編は著者はどんだけソースコードを読んだんだよと感心した
・第4回のときは著者のnariさんをお呼びできて感激だった(有難う御座いました)
・参加者でmallocとかをしたことがない高レベルな人間が僕だけで大変だった
・PythonやAndroidなどプログラムしたこともない言語のGCについて詳しくなった

宣伝

CSNagoyaでは新しいテーマ「入門自然言語処理読書会 」と「組込みOS自作本読書会 」もやっていますので是非どうぞ。
くわしくはこちらをクリック

第10回 GC本読書会を開催しました(RubiniusのGC)

12月 20th, 2010 admin

ガベージコレクションのアルゴリズムと実装

2010年12月19日にCSNagoya勉強会の「第10回 GC本読書会」を開催しました。
ガベージコレクションのアルゴリズムと実装という本を読む会です。

第11章 RubiniusのGC

・CRubyのGCの解説はRHGにあるので、RubiniusのGCを解説
・世代別GCを採用
・正確なGC
・オブジェクトのサイズによって3つのメモリ空間にアロケーションを行う
・それはマークスイープGCアロケータ、コピーGCアロケータ、ImmixGCアロケータ
・GCの取替えが簡単にできるようになっている
・RubiniusはC++でできているため、CRubyの拡張ライブラリを使うためにC-APIやFFI(Foreign Function Interface)という仕組みを使っている
・拡張ライブラリに渡すすべてのオブジェクトへのポインタを管理することで正確なGCを管理
・埋め込みオブジェクトとポインタの区別は埋め込みオブジェクトの下位2ビットに印をつけることで行う

まとめ

・今回も著者の人は対象言語をよく調べてあるなあと思いました
・ビット演算は1命令でできるから高速だとか、コンパイラに最適化のヒントをあたえる命令があるだとかLL脳の僕には面白かった
・残りあと1章(V8のGC)
・懇親会のサイゼリアでミラノ風ドリアを食い逃げする人を見た

NGK2010に参加してきました #ngk2010

12月 5th, 2010 admin

NGK忘年会2010(昼の部)NGK忘年会2010(夜の部)に参加してきました。
主催の@terurouさん,@babydaemonsさん(奥様も)有難うございました。会場を貸してくださった中京大学さん有難うございました。そして参加者の皆さんもお疲れ様でした

昼の部

・CSNagoyaと結婚について発表した。みなさんにお詫びとお礼が言えてよかった
・勝手に次回CSNagoyaの題材を入門自然言語処理にすると提案した
・ニューキャストさんの人に会えてよかった(いつも有難うございます)
・LTって笑いを取るもんだと思ってたけどそうでもないらしい
・IPV6の人のエネルギーがすごい
・なぜラーメンタイマーをつくるのにあれほどもめているのかわかった
・CoqからRubyはすごい。ラムダがない言語への移植は難しいのだろうか
・Open Social MapでBingの衛星写真をなぞるのがOKになったらしい。これはトラッキングツールが不要になったということ。費用なし、外出なしでみんな参加できる!これは革命
・100人規模になるといろいろな文化の人が増えておもしろい

夜の部


・日本最古のビヤガーデン浩養園の2Fデビュー
・肉のあくが凄い
・@babydaemons.wife++
・2年ぶりな人がいろいろ
・sawada氏がいない
・会えそうで会わないgabuとかttlwebとかocchiとかissmとかに会えてよかった
・上海に詳しい人にあったけど結局どういう人なのか聞けずじまい
・懇親会中に「ビルドします」っていう若者の目がまぶしい
高齢恒例となりつつある引退宣言 => いっちょやったるかという雰囲気に
・まさかの2次会学割100円
・3次会はめずらしいメンバー。ちょっといい話ができた

まとめ

なんだかんだで1年ぶりとかでも暖かく迎えてもらえる居心地のよいコミュニティ。
みなさんありがとうございました。たのしかった!

第9回 GC本読書会

11月 22nd, 2010 admin

2010年11月21日にCSNagoya勉強会の「第9回 GC本読書会」を開催しました。
ガベージコレクションのアルゴリズムと実装という本を読む会です。

第10章 DalvikVMのGC

 今回はDalvikVMのGCの話です。DalvikVMってなんのVMと思いましたがAndroidのVMだそうです。AndroidはJavaでかけるのでJVMで動くんだとばっかり思っていたらそうではないようです。Androidがリソースの限られた携帯端末で使うことが想定されているので、それように軽量だったほうがいいとかそういうことのようです。

気になったこと・知らなかったことなど

・すべての親プロセスの「Zygote(ザイゴウト)」って語源は何?
・DalvikVMはマークスイープGC(ビットマップマーキング)
・DalvikVMはレジスタマシン(Javaといえばスタックマシンだが、これはAndroidが「ARM」上で動作するため)
・保守的GCを採用(これも速度を優先)
・基本的に関数名がながい(おかげでわかりやすい)

まとめ

 60ページほどの長い章だったが、あまりトリッキーなことをしていないため割りと素直に読み進めることができた。携帯端末用のVMということでGC一つにしても数多くの工夫がしてあるのがわかり、世界中で使われ始めているAndroidというプロダクトの凄さに触れることができたと思う。
 また章の前半はGCの話をするための下準備として、DalvikVMのオブジェクトのデータ構造やメモリ管理の仕組みについてページが割かれているのですが、この内容がとても濃い。単に「こういうデータ構造だよ」と概要を説明するだけでなく、要点を抜き出したソースコードも併記して詳しく解説がされてある。これだけの解説を書くのにどれほどのソースを読む必要があったのだろうかと思うと頭が下がる。

次回、その他

・「けんろん!」の話を聞くと学生のときに授業についていけなくなったときの感覚を思い出して胸が苦しくなるので見るのも嫌だ
・次回は12月4日NGK忘年会2010(夜の部) : ATNDに合流(12月5日はお休み)