日々の記録

アニメと読書の感想をメインにしたブログです。 ☆ゆるゆるっと更新中です☆


青空文庫に収録されている、富田倫生さんの「パソコン創世記」を読み終えました。

この本では、トランジスタの誕生から始まり、メーカーが模索しながらのマイコン・キットの販売、さらに自分で組み立てて使うマシンから、あらかじめ完成されたパソコンとしての販売の歴史が語られています。この本の最大のポイントは、日本でのパソコン普及の歴史に絞り込んで、その歴史が記録されていることです。

最初はマニアのおもちゃとしか見なされなかったマイコンが、やがてビジネスの道具として認識されるようになっていく過程が、とても興味深くて面白かったです。IBM PC互換機という路線で拡大するアメリカに対して、日本では日本語処理の問題から、PC98という独自の進化を遂げたマシンが普及していきます。

そしてシステムの根幹も、BASICを基本としたものから、CP/MやMS-DOS、そしてMacintoshやWindowsといったGUI主体のシステムへと発展していく流れ。それにまつわる様々なエピソードが、本当に面白かったです。

私自身は、MS-DOSの時代から本格的にパソコンに触れるようになりましたが、その当時は何かトラブルがあってもネットで簡単に検索というわけにはいかなかったので、問題を解決するまでに本当に苦労しました。(^^;
でも、いろいろと苦労や失敗をしたおかげで、様々なことを学ぶことができました。そして、何日間も悩んだトラブルが、試行錯誤の結果きちんと動くようになった時は、本当にうれしかったです。

思えば、この試行錯誤してうまくいった時の喜びを知ったこと。それが、私がパソコンにのめり込むきっかけになったのだと思います。

本の感想から脱線してしまいましたが、この本を読んだことで自分の原点を再確認できた気がしました。(^^)
現場のプロが本気で教える HTML/CSSデザイン講義 (Design & IDEA)「現場のプロが本気で教える HTML/CSSデザイン講義」を実習してみました。

お仕事がらみでHTML&CSSに触れることがあるのですが、古いサイトの改修をしようとCSSファイルをのぞいたら、修正に合わせて場当たり的に対処してきたらしく、CSSが複雑怪奇な迷路のようになっていて頭を抱えました。(^^;

なんとかもう少し把握しやすくできないかと思っていた時、偶然この本と出会いました。そのおかげで、CSS設計について自分なりに整理することができました。

この本では、実際に手を動かしてHTMLやCSSを作成しながら、サイト設計の基本を学んでいきます。その過程で大きな役割を果たすのが、SassとGulpです。Sassは前に少しだけ触ったことがありましたが、Gulpは名前だけは知っていたものの、これまで触れる機会がありませんでした。

Gulpを起動しておけば、ファイルを修正すると同時に必要なファイルが作成されて、ブラウザがリロードされて修正内容が確認できるのは便利ですね!(^^)

Node.jsは、前にjavascriptのコード補完をemacsでしたくて、ternというツールを導入した時にインストールしていました。その後、javascriptを触る機会も減り、そのまま使わなくなっていました。(^^;

本の対象は、全くの初心者向けではなく、ある程度HTMLやCSSを理解している人です。実習では、従来のfloatを使ったレイアウトではなく、CSS3から導入されたFlex boxを使ってレイアウトを組み上げていきます。ブラウザの対応状況は大丈夫なのかと心配になりましたが、最近のPCやスマホに搭載されているブラウザなら、ほぼ問題なく利用することができるようですね。古いブラウザのサポートが不要なら、積極的に使ってみるのもいいかもしれませんね。

それほど難しい内容ではなかったので、1週間ほどで実習を完了しました。実習を終えての感想は、伝えようとしている内容はとてもいいのに、実習内容の記述に誤りが多いのが残念でした。
テキスト通りにサイトが表示されなかった時、自分の誤入力が原因でうまくいかないのか、本の記述が間違っているのか、それを確認するのに一番時間を取られました。

この部分で大きく損をしていますが、それでもこの本を読んだおかげで、作業を効率化する方法を以前よりも検討するようになりました。この本のメインはCSS設計の効率化でしたが、HTML作成の効率化のために、テンプレートエンジンのslimというツールを試してみたのは、思わぬ収穫でした。(^^)
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装Pythonを使って、ディープラーニングと理論と実装を学ぶ本です。

ディープラーニングの本では、この本が一番とっつきやすそうだったので手に取りました。ディープラーニングには、GoogleのTensorFlowなどフレームワークもありますが、この本ではそれらを使うことなく、本当に1からディープラーニングの基本を学ぶことができます。

本編で使われるコードは、途中までは文中で示されますが、高度な内容の章ではコードが長すぎるため文中には記載されていません。利用するコードは、Githubで公開されていますので、それを事前にダウンロードしておくことは必須です。

第1章は、実習で利用するPython3の簡単な解説と、そこで利用するNumpyとMatplotlibの基本的な説明でした。Python3は以前に少し勉強したことがあったので、軽く流し読みしました。Matplotlibは少しだけ使ったことがありますが、Numpyはほぼインストールしただけ状態だったので^^;、実習で必要となる行列計算を実際に動かして試しました。

第2章から、いよいよ本格的な実習の開始です。第2章では、パーセプトロンというアルゴリズムを学びます。AND,OR,NANDなどの論理回路について、最初はその解説、次にそれをPythonで実装と続きます。本書の他のところでもそうですが、簡単なところから難しいものと説明されるので、とてもわかりやすかったです。

第3章では、ニューラルネットワーク。第4章では、ニューラルネットワークの学習。第5章では、ニューラルネットワークの学習に関わる誤差逆伝播法について学びます。このあたりから数式も示されますが、仮に数式の意味がわからなくても、それに続く解説や実装例を読めば何が行われているのか理解できるので、数式が苦手な人はそこは読み飛ばして^^;、どんどん先に進んでOKだと思います。

第6章からは、応用的な内容になります。学習パラメータの更新、適切な初期値の設定、学習時間の短縮化、過学習対策、ハイパーパラメータの最適化など、様々な手法が広く浅く紹介されています。7章、8章もそうですが、ここからの章は、それぞれについて詳細な解説まではありません。なので、より詳しくそれぞれについて知りたい人は、巻末の参考文献等にあたる必要があります。

第7章では、畳み込みニューラルネットワークが解説されています。6章までは、手を動かしつつ学んでいましたが、7章からは内容が込み入ってきたので、今回は概要をつかむ程度で終えることにしました。ダウンロードしたサンプルデータ程度の実習でも、家のマシンスペックだと機械学習が完了するのにかなり時間がかかることもありますが。(^^;

最後の第8章では、ディープラーニングの歴史や高速化の取り組み、利用例などが広く浅く紹介されていました。この章を読むと、ディープラーニングの研究はまだこれからなんだなあと感じました。

全体を読み終えての感想は、説明がわかりやすいことに感動しました。数式、図、コードとさまざまな方法で解説されているので、読んでいてイメージがつかみやすかったです。また著者が日本人ということもあり、オライリーの翻訳書と比べて、文章が自然でとても読みやすかったです。(^^)
人間さまお断り 人工知能時代の経済と労働の手引き最近、なにかと話題の人工知能に関する本ということで読んでみました。

この本ではまず、人工知能を人間に変わって意思決定を行うことができる合成頭脳と、労働を行うことができる労働機械とにわけて説明しています。その過程で明らかになるのは、そのどちらも人間のような姿をしている必要はなく、それぞれの仕事に最適化された形になるということです。・・・人型ロボット好きとしては、ちょっと残念かも。(^^;

合成頭脳であれば、答えが得られるのならば、その場所にある必要すらないこと。労働機械の場合は、目的とする作業に応じて、ドローンに作業用アームを取り付けたり、その作業を最も効率的に行う形が選択されることが、わかりやすく解説されていました。

その後も、さまざまなケースで、人工知能の進化が人間の生活にどのような変化をもたらすかが語られていくのですが、本の中盤以降ではその問題に対する著者の提言が鼻につくようになり、あまり面白くなくなりました。

著者の提言を否定するつもりはありませんが、こういった問題ではAIの専門家は問題点を指摘するにとどめて、さまざまな視点から広く問題点を検討することが必要なのではないかと思いました。
UNIXという考え方―その設計思想と哲学ずいぶん前に購入して、それ以来何度も読み返している「UNIXという考え方」を再読しました。

原書が書かれたのが、1990年代前半のようなので、内容的に今では古くなっている部分もかなりあります。それでも、読み返すたびに、自分にとっての原点を確認できる、とても貴重な本です。

この本に出会う前から、UNIX系のシステムに興味があって触っていました。複雑なオプションを持つコマンドを操ったり、ちょっとしたツールをプログラミングしてみたり、英語は苦手なのに他に資料がないから英文のドキュメントを読んでみたり^^;、1つ1つのことは苦労もあったけれど楽しかったですが、本当にこういう方法でいいのかという不安が常にありました。

そんな時、この本がUNIX哲学という大きな指針を示してくれました。小さなツールを組み合わせ、早めの試作をして、プログラムの効率性よりも移植性を重視。何か迷った時に、いつもこの指針が道しるべとなってくれました。時にはあえて、指針と違う選択をしたりもしましたが、原則を踏まえた上であえてそれを外すのと、原則を知らずに原則から外れるのでは大きな違いがあります。

先日10年以上前のテキスト・ファイルを発見しましたが、それが今でも使えたことでこの本に書かれていたことの正しさを再認識しました。それでまた、この本を再読しようと思いました。

コンピュータ関連の技術は盛衰が激しいですが、新しい技術を追い続けるには、かなりのエネルギーを必要とします。
そんな時、ちょっと立ち止まって、時を経てもなお使われているものは何かを知ることは、決して無駄ではないと思います。
オペレーティングシステム (情報処理入門コース 2)コンピュータの基本的な知識を確認するために、岩波書店の情報処理入門コース・シリーズの「オペレーティングシステム」を読みました。

OSの基本的な説明から始まり、個々の項目について後の章でより詳細に解説されています。個人的には、記憶管理の章の仮想記憶、並行プロセスのプロセスの効率化、コンピュータネットワークと分散技術の分散処理の技術、などがもう少し詳しく知りたいと思いました。最後の章には、より詳しい内容を扱う書籍も紹介されていますので、必要に応じてそちらも参照したいと思います。

この本が書かれたのが、1990年代前半ということもあり、例として紹介されるOSにMVS、Mach、OS/2、MS-DOSなどの名前が見られるのに懐かしさを感じました。(^^;

本の内容としては、OSの基本的なところは網羅していますが、各章の終わりに演習問題があったりと教科書的でした。
各項目の説明は必要最低限度といった感じなので、独学用のテキストには不向きで、教室で教科書として利用して、教師が本の内容を補足したり、学生の疑問に答えながら読み進む形式で利用されることを想定した本なのかもしれません。
仕事ですぐ役立つ Vim&Emacsエキスパート活用術 (SoftwareDesign別冊)Software Design別冊として発売された「仕事ですぐ役立つ Vim&Emacsエキスパート活用術」を読み終えました。

Vim&Emacsとなっていますが、最近のユーザー数の多さを反映してか、内容的にはVimについてが多いです。
今メインで使っているのはvimなので、もっと活用できるヒントがあればと購入したのですが、気がつけばVimではなく、Emacsの方に思いっきりはまっていました。(^^;

1990年代の終わり頃から emacs を使い始めたのですが、何年か前にCtrlキーやMetaキーを押しながらの操作を多用するのが辛くなって、メインで使うエディタをvimに切り替えていました。元々、Linuxを使っていた時には簡単なファイル修正ではvimを使っていましたし、便利なプラグインが次々とリリースされて、かなり使い勝手がよくなりました。特にノーマル・モードでのテキストオブジェクトを使った操作が快適で、作業効率が大幅に改善されました。

とはいえ、インサート・モードでの操作性は今ひとつ不満で、キーマップを変更して部分的にemacsライクなキーマップに変更していました。もっとも、最近ではすぐにノーマル・モードに戻る癖がついたので、今設定してあるのはC-aで行頭へ移動、C-eで行末へ移動、くらいですけど。

今回、この本を読んだことで、久しぶりにemacsをインストールしました。その過程で、emacsでvimのキーバインドを極力再現してくれるevil-modeを知りました。以前からemacsでviライクな操作を実現するものがあることは知っていましたが、積極的に試してみる気になれませんでした。それが今回、導入に踏み切ったのは「貳佰伍拾陸夜日記」というブログを見つけたからです。

そちらでは、evil-modeのカスタマイズ方法や一緒に使うと便利なプラグインが数多く紹介されていました。そのおかげで、emacs上でほぼvimと同じような操作感を実現することができました。久々にemacsを使い込んでみると、elispでお手軽に自分の好みにカスタマイズできるのは便利ですね。・・・もっとも、それにはまりすぎると本来すべきことを忘れて、ひたすらemacsのカスタマイズに没頭してしまうことになりますが。(^^;

emacsを使うデメリットは、日本語の情報がvimほど多くないことでしょうか。でもそれも考えようで、英語の文章を読む強い動機付けになるので、このところちっとも英語学習が進まない私には最適なのかもしれません。(^^;

本の内容から大きく話がそれてしまいましたが、内容の一部は修正されていますが、基本的には過去にSoftware Degignに掲載された記事なので、vimにせよemacsにせよ、どちらを使うにしても最新の動向はネットで確認した方がいいですね。でも入門者向けとしては、けっこうまとまっているので、これからvimやemacsを試してみたい方、使い始めたけれどもっと活用したい方にはお薦めかも。
入門 Python 3Bill Lubanovicさんの「入門Python3」を読み終えました。

Pythonには以前から興味がありましたが、ネットの情報では2.x系と3.x系が入り交じっていて、混乱してしまうことがありました。「Dive into Python3」という入門文書もありますが、書籍の形でまとまったものを読みたいと思っていた時、この本を見つけました。

プログラミングの経験がある人だけでなく、未経験者にもわかりやすいように、Python3の基本がかなり詳しく説明されている上に、章末には演習問題も用意されていて、その章で覚えたことを確認できるようになっていました。・・・私は概要をざっとつかみたかっただけなので、問題はスキップしちゃいましたけど。(^^;

本の前半で、Python3の概要が解説されて、後半ではさまざまなライブラリを利用しての応用編が紹介されています。
ちょうど Microsoft Word の docx 形式の文書から、unzipしてxmlファイルを読み込んで、テキストを抜き出す処理を手軽にしたいと思っていたので、Python3とElementTree、zipfileを使って試してみました。わずか数行のコードで、目的を達成できるのは凄いですね。(その後、ElementTreeよりも高速なlxmlを知ったので、そちらに置き換えました)

普段こういったちょっとした処理はRubyを使うことが多いですが、Python3も思ったよりいい感じでした。
特にいいのは、コードを書く時のインデント構造が、そのまま制御構造になっている点です。RubyのBEGIN、END構文にいまだになじめないので^^;、この部分に関してはPythonの方が私の好みに合っていました。

ただ、Python3からは print "なんとか" な表記は許されず、print("なんとか") 形式を強制されるのは、ちょっと面倒だと感じています。それから、Python上級者向け(?)のリスト内包表記も、コードが読みづらくなる感じで、あまり好きにはなれませんでした。

500ページ以上ある本でしたが、後半は必要な部分だけ参照するという読み方だったので、それほど時間がかからずにざっと目を通すことができました。vim に Python を使う上で便利なプラグインを追加したりもしましたが、この先どれくらい使うのかなあ。(^^;
すべてわかるセキュリティ大全2016(日経BPムック)日経BPムックとして発売されている「すべてわかるセキュリティ大全」を読み終えました。

この本は、日経コンピュータ、日経NETWORK、日経コミュニケーションなどに2014〜2015年に掲載された記事を、1冊のムックとしてまとめたものです。第1章はセキュリティに関連したニュースとトレンド、第2章はセキュリティの基礎、第3章はネット犯罪の手口、第4章はその対策、第5章は技術的な視点から書かれたコラムが掲載されています。

それぞれのトピックは短いので、ちょっとした空き時間に目を通すことができてよかったです。ただ本がかなり大判なので、持ち運ぶのがたいへんでしたし、読むときにも読みづらさを感じました。
また内容が、複数の雑誌からピックアップされたものだったため、内容的な重複が目についたのも残念でした。

とはいえ内容的には、セキュリティについての大枠をつかむ参考になる本でした。本の内容を参考に、パスワードや各種セキュリティ対策の見直しをするいいきっかけになりました。また、ネットに接続している以上、ある程度のリスクは常に避けられないものだと思い知らされました。とはいえ、これだけネットが普及すると、それなしでの生活は考えられません。便利さと安全性のバランスをどう取るか、それが大切だと思いました。
超マシン誕生 新訳・新装版トレイシー・キダーの「超マシン誕生」を読み終えました。

物語の舞台となるのは、1970年代末のアメリカのデータゼネラルというミニコンメーカーです。この会社は、Nova と呼ばれるミニコンを販売して急成長して、その後の Eclipse という16ビット(!)ミニコンでさらに飛躍します。しかし、1978年に最大のライバルである DEC が32ビット・ミニコン VAX を発売したことで、データゼネラルは DEC に差をつけられてしまいました。

DEC の VAX 以上のマシンを目指して、データゼネラルも32ビット・ミニコンの開発を始めます。しかし、社内の派閥争いもあり、2つの勢力が争うことになってしまいました。そして一方の勢力が優位に立ちますが、負け組のリーダーとなったウエストはまだ諦めていませんでした。ウエストは表面上は、もう1つのプロジェクトが失敗した時の保険という名目で、新たな32ビット・マシンのプロジェクトを始動させました。

このプロジェクトは、内部ではイーグルという呼び名で呼ばれることになりました。無茶な開発期限と少ない機材。プロジェクトの先行きは絶望的に見えました。しかし、そんな状況の中でもプロジェクトに取り憑かれた技術者たちは、時間外労働さえもいとわずにマシンを作り上げていきます。

もちろん、その途中では何度も大きなトラブルや危機があります。おまけに、彼らが開発するマシンは、先に発売されていた16ビットの Eclipse のプログラムも使えるようにしなければなりません。DEC の VAX では、従来機種との完全互換は確保されていなかったので、それを実現すれば大きなアドバンテージになります。

対立するプロジェクトが失敗したのに対し、この無茶とも思える条件で開発されたイーグルは、見事に開発に成功するのでした。その原動力となったのは、お金でも恵まれた労働環境でもありませんでした。自分たちが作りたいものを作ることができる。それが技術者たちの力となりました。そして、1つの成功は次の作りたいものを作るチャンスを手に入れる方法でもあります。

コンピュータがらみの開発物語は好きなので、これまで何冊もそういった本を読んできました。しかし、どちらかといえばハードよりもソフトよりの話が好みでした。この本はハード寄りの話でしたが、そこに流れている技術者魂はソフトと変わりませんでした。

もし私が実際にその状況に身を置いたら、1日で悲鳴を上げて逃げ出してしまうかもしれません。でも、そんな中で最高の仕事をしようと努力を続ける技術者の姿には、憧れを感じます。
文庫 思考する機械コンピュータ (草思社文庫)このところ忙しくて読書量が減っていましたが、ようやくダニエル・ヒリスさんの「思考する機械 コンピュータ」を読み終えました。

この本の邦訳は2000年にハードカバーで発売されました。それから14年が経過して、文庫として発売されたのですが、コンピュータ関連の本でありながら、内容的にあまり古くなっていないことに驚きました。

本書の前半では、現代のコンピュータの基礎となっている考え方が紹介されています。ブール演算や有限オートマトンなどの解説から始まり、コンピュータの内部でどのようにプログラムが実行されているかが、わかりやすく解説されています。そして、プログラムがどのように作られているのか、アルゴリズムやヒューリスティクスへと話は続きます。

前半を読んで収穫だったのは、コンピュータの基本原理さえ知っていれば、コンピュータと同じような働きをするものは作成可能だと知ったことでした。もちろん、利用するものによってサイズや処理速度は異なりますが、本の中では流体コンピュータやオモチャの部品を使ったコンピュータが紹介されていました。

さらに内容は、情報の圧縮と暗号化、誤り検知へと進みます。そして並列コンピューティング、学習するコンピュータ、そして工学的なアプローチから離れて人間の脳のような生物的な領域にまで到達します。本書の原書が書かれてから10年以上が経過していますので、最先端の研究が本書の内容からどれほど進んでいるのかわかりませんが、将来どんなコンピュータが登場するのか、ますます楽しみになりました。(^^)
プロになるためのWebデザイン入門講座 実践で役立つPhotoshop&Illustrator徹底ガイド庄崎大祐さんの「プロになるためのWebデザイン入門講座」を読み終えました。

Stocker.jpを運営されている、庄崎大祐さんが書かれた本だということを知って、購入して実践してみました。デザインの基本的な話から始まり、Webデザインに特化したPhotoshopやIllustratorの使い方、PhotoshopとIllustratorそれぞれの強みを活かしてのバナー作り、そしてそれまでの知識の総括として、デザインカンプを作成して、そこからDreamweaverでのHTML&CSSのコーディングという、作業の流れを体験できました。

この本で特徴的なのは、Webデザインを効率的に行うためのPhotoshopやIllustratorの環境設定の紹介。そして手を動かして作業する部分では、極力マウスを使わずショートカットキーを多用する説明がされていました。
私自身、Web素材をPhotoshopなどで作ろうとした時、標準設定だと今ひとつ使いづらいと感じていましたので、お薦め設定の紹介はとても参考になりました。また、素早い操作にショートカットキーを覚えることは必須だと思っていますので、この点でも納得のいく内容でした。

一応、本に指示されている通りに作業すれば、お手本通りのWebページを作ることができますが、いきなりこの本から入門するのではなく、HTMLやCSSの基礎、PhotoshopやIllustratorの基本的な使い方は別の本で学んでからこの本に取り組んだ方が、より内容が理解できると思いました。

というわけで、この本は1冊目の入門書というよりは、2〜3冊別の本で学んで、もっと効率的な作業方法がないかと思い始めた時に読むと、とても参考になると思います。

私の場合、HTML&CSSのコーディングはそれなりに経験していたので、Dreamweaverも使いましたが、基本的なソースはvim+各種プラグイン環境で作成しました。Dreamweaverは高機能ですが、今ひとつ動作が不安定だと感じているので、基本的な部分は別のソフトで作成→ソースの整形or込み入った表や画像の設定の確認、サイトへのアップロードくらいしか使わなくなりました。

また、これまで今ひとつ理解できないと思っていたPhotoshopやIllustratorの使い方も、Webデザインで使う時にはこんな風にすればいいという例がいくつも紹介されていたので、作業の落としどころがようやく少し見えた気がしました。

最後にこの本を実践していて思いましたが、Webページ作りは本当に奥が深いですね。
全てを自分でやろうとした場合、HTMLやCSSのコーディングやWeb用の素材の作成、完成したページをアップするためのサーバーがらみの知識、そしてもっと凝ったことをやりたければ、PHPやJavaScriptなどのプログラミングの知識と、本当に幅広い知識が必要になります。
たいへんだけれど、やりがいがあるなあと思いました。(^^)
小飼弾のコードなエッセイ ~我々は本当に世界を理解してコードしているのだろうか? (Software Design plus)小飼弾さんの「コードなエッセイ」を読み終えました。これは小飼さんが「Software Design」に連載していたエッセイをまとめた本でした。

「Software Design」は今でも時々立ち読みで^^;、特集記事や結城浩さんのコラムを読んだりしています。
昔は購読していたこともあったのですが、最近は新人エンジニア向けの記事が多いような気がして、より詳しい専門書を買うか、ネットで調べて済ませることが多くなって、いつの間にか買わなくなってしまいました。

エッセイの前半は、関数型言語や難読プログラムが紹介されていたりして面白かったです。中盤以降は普通の技術系エッセイという感じで、今ひとつ物足りませんでした。

内容的に共感したのは、Windows 8のフラットデザインを小飼さんが評価されていたことです。
それまでのWindowsとの違いから叩かれることも多いWindows8ですが、デザインだけに関して言えば、私も悪くないのではと思っていたからです。Windowsに対抗するかのように、iOSやOS Xで取り入れられたフラットデザインは、私的には中途半端であまり好きになれません。(^^;

この本を読んでいたら、JavaScriptをもう少し覚えたいなあと思いました。それに関数型言語も楽しそうですよね。10年近く前にHaskellを試してみましたが、最近は全然手を出してないですし・・・。
そういえば、lispがらみの本も積ん読状態のまま放置してある本が何冊もあるなあ。(^^;
伝わるデザインの基本 よい資料を作るためのレイアウトのルールこのところデザインがらみの仕事をすることが多いので、素人にもわかりやすい本を探していました。そんな時に見つけたのが、この「伝わるデザインの基本 よい資料を作るためのレイアウトのルール」でした。

非デザイナーが対象の本ということもあり、本当に簡単なルールをいくつか紹介してあります。それを実践するだけで、資料の見栄えが大きく違ってくると思いました。

内容は大きく5つに別れています。第1章は、読みやすい書体について。第2章は、文字の配置や間隔、箇条書きについて。第3章は、図形や図表を使う場合の注意点。第4章は、レイアウトと配色について。そして最後の第5章では、これまで学んだことを踏まえて、例題の訂正前と訂正後を見比べることで、その効果をより実感することができました。

いろいろと参考になることが多かったですが、私自身が特に参考になったのはフォントについてでした。
前々から MS Office で資料を作ると、どうも読みづらいと思っていたのですが、それは標準設定のフォントが読みづらいものだったからでした。MS明朝やMSゴシックを使わず、メイリオや游明朝、游ゴシックを使う方がより美しい表示になるそうです。

また、Excel でグラフを作った時に自動的につけてくれる色も、標準設定では見づらいのだと知って驚きました。へたにグラデーションや影をつけず、シンプルで落ち着いた色調にする方が見やすいですね。

結局、この本で紹介されているルールを守ってシンプルに、それが一番みたいです。
仕事以外でも、町内会や PTA、趣味の集まりなどで、デザインの素人がチラシや冊子を作る機会も多くなりました。そんな時ちょっとこの本に目を通してから作業すると、できあがりがかなり違ったものになるのではないかと思いました。(^^)
WordPressレッスンブック HTML5&CSS準拠お仕事がらみでWordPressを使うと便利そうな部分があったので、この機会に勉強してみました。

WordPressの解説本はたくさんありますが、どれを選んだらいいのかで迷いました。現在のWordPressの最新バージョンは4.1なのですが、書店に並んでいる本をみると3.xを対象としたものばかりでした。多少の違いはネット情報を参考にすれば何とかなると思ったので、HTML5%CSS3準拠の「WordPressレッスンブック」を購入することにしました。選ぶ決め手になったのは、以前同じ著者の「HTML5&CSS3レッスンブック」が読みやすかったことと、サンプルとして用意されたテーマをカスタマイズするのではなく、自分の手でindex.phpなどを作成していく方式だったからです。

勉強するためのローカル環境として、本ではBitnamiが紹介されていましたが、導入事例が多いMAMPを使ってローカル環境を用意しました。この環境でも、特に問題なくレッスンを進めることができました。

とりあえず、WordPressを使ってのサイト構築の流れを押さえたかったので、3〜4日くらいで一気にレッスンを終えました。かなり駆け足な感じでしたが、それでも大きな流れと、困った時はどこを参照すればいいかを把握することができました。

最初はレッスンに従って、WordPressの管理画面で作業を行っていました。しかし、管理画面でコードを入力すると、シンタックスのハイライトやテキスト補完機能が使えないので、途中からコンソール画面で必要なファイルを開いて、vimでファイル編集をする方式に変えてしまいました。(^^;
vimでのWordPressシンタックスハイライトには、wordpress-vim-syntaxを利用させていただきました。また、vimでのWordPressの関数の補完には、vim-dict-wordpressを利用させていただきました。便利なツールを公開してくださった作者さんに感謝です!
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)暇を見てはちょこちょこ読んでいた、「リーダブルコード」をようやく読み終えました。

趣味のレベルでプログラムを作っていても、なんだか読みにくいコードを書いてしまうことが多々あります。手を加えてもあまり読みやすくならず、根本的に何が間違っているんじゃないかと思うこともしばしば。そんな時に、この本に書かれていることが参考になりました。

この本に書かれている1つ1つのことは、本当に些細なことです。でも、小さなことからコツコツと積み上げていくと、いつの間にか全体として読みやすいコードが仕上がるように思いました。そして、コメントをつけることも大切だけれど、コメントがなくても処理内容が一目瞭然なのがよりいいと知りました。

この本を読んでいる間に、いくつかプログラムを作ったのですが、この本の内容が頭のどこかに残っていたせいか、後から読み返した時にいつもより少しは読みやすいプログラムになっていました。個人でしか使わないようなプログラムでも、日々使っていると思わぬバグを見つけたり、仕様を変更しなければならないことがあります。そんな時、読みやすく書かれたコードは、後からの変更も簡単です。

というわけで、この本は一度読んで終わりにするのではなく、折に触れて読み返して、自分の書いたプログラムがその指針から外れていないか、確認することが大切ですね。そしていつかは、この本の内容を十分に身につけて、いつでも読みやすいコードが書けるようになりたいです。
ハッカーズ以前から一度読んでおきたいと思っていた、スティーブン・レビーの「ハッカーズ」をようやく読み終えました。

コンピュータの進歩を語る上で、避けては通れないハッカーという存在。この本では、最初のハッカーがどうやって生まれてきたのか、そしてその後どのように変化していったのかが3部構成で語られています。

第1部に登場するのは、MITの鉄道模型クラブに所属していたメンバーによるハックです。この時代には、コンピュータを見たことがある人は、まだ稀な世界です。そんな中、ようやく大学にもコンピュータが導入されようとしていました。そんなコンピュータを見つけて、その虜になってしまったのが、この鉄道模型クラブのメンバーでした。彼らはわずかな隙を見つけては、コンピュータを使いました。そしてコンピュータに精通していったのでした。

この時代、ソフトウェアには著作権など存在しませんでした。メインとなるのは、あくまでハードウェアで、ソフトウェアはそのおまけ程度に考えられていたのでした。そんな中でクラブのメンバーは、まずソフトウェアを作るためのソフトを作るところから始めなければなりませんでした。そして、そうして出来上がったソフトは、みんなの共有財産となりました。誰でも自由に使えたし、改良することができたのです。そして優れた改良をした者は、周囲の賞賛を得たのです。それがハッカーと呼ばれる人たちです。

第2部では、ハードウェアのハッカーたちが登場します。第1部より少し後の時代、コンピュータはまだ個人が所有するものではありませんでした。そんな中、自分だけのコンピュータを持ちたいと考える人々がいました。彼らは集会を開き、そこでお互いに情報交換をしました。そして、ついに最初のパーソナル・コンピュータが誕生しました。それがオルテアでした。とはいえ、このオルテアはキットとしてしか発売されておらず、使いたい人間はまずそれをはんだ付けして組み立てる必要がありました。しかし、コンピュータ好きな人々は、このコンピュータに殺到したのでした。

そんな中、オルテア用のBASICを開発したビル・ゲイツは、その著作権を主張しました。しかし、彼の主張はハッカーの倫理から外れるものでした。そのため周囲からの大きな反発を受けたのでした。個人的には、この時代にソフトウェアの商品価値に目をつけたゲイツは、ビジネスマンとして先見の明があったと思います。ハッカー的に見ると、最低の裏切り者だと思いますけど。(^^;

さらに、そんな混沌とした時代にアップル社を立ち上げたジョブズとウォズニアックは、完成品のパーソナル・コンピュータ、Apple II を発売したのでした。このコンピュータの登場が、やがて世界を変えていくことになりました。そして、これをきっかけにコンピュータは、一般家庭にも進出してくることになるのでした。

第3部では、家庭用コンピュータの普及に大きな影響を与えたコンピュータ・ゲームが登場します。
ゲームも最初は、ユーザー同士の間でコピーし合う共有財産でした。しかし、ここでもこれが商品になると目をつけた者がいました。この本では、オンライン・システムズ社を起こしたケン・ウィリアムズを中心にソフトウェアの世界の変化が描かれました。

黎明期のゲーム業界は、優れたハッカーが開発したゲームを家内工業的に販売する小規模なものでした。しかし、それはじょじょに大きな市場を獲得します。大金が得られる世界になると共に、ハッカーの倫理は次第に消えていきました。最初期にはメーカー同士で技術的な情報の交換も普通に行われていましたが、やがてそれは企業秘密という壁の中にしまい込まれることになりました。

ソフトウェアが商品化されると共に、ハッカー文化は消えていきました。そんな中で最後のハッカーとして登場するのが、GNUプロジェクトなどで有名なリチャード・ストールマンです。本が執筆されたのが1980年代ということもあり、本書はここで終わっています。しかし、消えたと思ったハッカー文化は、オープンソースという形で再び注目されることになります。

というわけで、600ページ以上の2段組の本だったので、読み終えるまでに思ったより時間がかかりました。この本を読んだことで、コンピュータの歴史を振り返ることができたのはよかったです。
ただ、ちょっと残念だったのは、翻訳が今ひとつだったことです。けっこう版を重ねている本なのに、誤変換や日本語の文章になっていないところが何カ所もあって、読んでいて戸惑うことがありました。
プログラミングでメシが食えるか!?―成功するプログラマーの技術と仕事術職業プログラマになるつもりは全くないのですが、仕事でやっている人はどんなことを考えながらプログラミングしているのかに興味があったので読んでみました。(^^;

2007年に発売された本ということもあり、書かれている内容はちょっと古い気がしました。しかし、トップダウン方式で、構造化プログラミングして、日頃からソースやライブラリといった道具を育てておくという部分は参考になりました。特にちょっと作っては動くことを確認して次の作業に進むは、普段やっている趣味のプログラミングで経験していることでしたので、こういう方法で作ってもいいんだ〜と安心できました。

この本を読んでいて思いましたが、IT土方と呼ばれるだけあって、日本のプログラマはたいへんそうですね。若いうちはともかく、年をとってくるとたとえ自分に不向きでも管理職に就くしかないのはもったいないことだと思いました。伝統的な職人の世界のように、年をとっても現場で経験を活かした仕事ができるようでないと、才能のある人を埋もれさせてしまう気がしました。
C言語体当たり学習 徹底入門 (標準プログラマーズライブラリ)前橋和弥さんの「C言語体当たり学習徹底入門」を読み終えました。

K&Rを終えた後に、何か手頃な本がないかな〜と思っていたら、古本でこの本を見つけました。「C言語 ポインタ完全制覇」や「センス・オブ・プログラミング」など、これまでにもとても参考になる本を書かれている前橋和弥さんの本だったので購入しました。

本のレベルとしては、一通り入門書で基本文法は覚えたけれど、次に何をやったらいいのかわからないという人向けの本だと思いました。簡単なプログラムからはじめて、最終的には簡単な蔵書管理システムを作ります。
K&Rを終えた後だったので、さすがにちょっと簡単すぎて物足りないところがありましたが^^;、文体が軽くて読みやすい上に説明がわかりやすいので、これからCを学んでみようという方にはお勧めかもしれません。

ただ、この本自体はすでに絶版になっているみたいなので、これから購入されようという方は古本を探すことになると思いますが・・・。(^^; でも今は古本もネットで買える時代なので便利になりましたね。
Coders at Work プログラミングの技をめぐる探求著者であるピーター・サイベルが行った、15人のスーパー・プログラマとの対談をまとめた本です。

15人の中で私が知っていたのは、UNIXの生みの親であるケン・トンプソンと、自分の本の数式の組版に満足できず自ら組版システムTeXを作り上げたドナルド・クヌースだけでした。とはいえ、対談前のそれぞれの略歴を読むと、あれを作ったのはこの人だったんだ〜とあらためて驚くような顔ぶればかりでした。

内容的には、どうしてプログラミングを学んだのかから始まって、それぞれに分野での専門的な内容までつっこんだ話が展開します。話題によっては、話があまりに高度すぎてついていけないところもありましたが、そこはこれから学ぶ楽しみがあると割り切って、自分なりに少しでも何かをつかみ取ろうとしました。

そんなわけで、読み終わるまでに何ヶ月もかかってしまいました。しかし、苦労して読むだけの価値のある本だったと思います。読み終えて思ったのは、いろいろな開発手法がありますが、それは人それぞれで構わなくて、これが絶対というものはないのだと知ったことが大きかったです。いきなりコードを書こうが、先にじっくり考え抜こうが、それが自分のやり方にあっていることが大切だと思いました。

何より刺激になったのは、ここに登場するトップレベルのプログラマでも、難しいプログラムがあると知ったことでした。自分でプログラムを作っていてつまずくことがあるのですが、そんな時に天才だって悩みながらプログラミングしていると思えば、少しは救われた気持ちになります。(^^;
Joel on Softwareソフトウェア開発をマネジメントの視点からとらえたエッセイ集です。

この本は、もともとは著者のブログに掲載されていたものを、書籍としてまとめたものです。その大きなテーマは、ソフトウェア開発のマネジメントです。2000年頃に発表された文章をまとめた本なので、内容的に古くなってしまった部分も多いですが、今なお有効である部分も少なくないと思います。

著者はマイクロソフトでExcelの開発をしていたため、書かれている内容はかなりマイクロソフト寄りでした。自分の主張を通すため、けっこう無理な論理展開をしている部分もありますが(例.Excelのファイルサイズは大きくなっているが、HDDの値段はそれ以上に安くなっている、など)、そういう部分は批判的に読むかスルーしてしまうことをお勧めします。

この本を読みながら、いろいろなことを考えました。中でも強く思ったのは、特定の会社がリリースするソフトを使い続けることは、ユーザにとって不幸なのではないかということです。現状の機能で十分満足しているのに、バージョンアップと称して余計な機能が増えていく。アップグレードを見送ると、バージョンが古くて新しいOSでは使えなくなる。結局、最新の環境で使うために新たな出費が必要となる。

この本の読書中に、ちょうどWindows XPのサポートが終了しました。パソコンを買い換える知り合いも多かったのですが、その時によく聞かれたのが「まだ壊れてないのに、どうして買い換えなくちゃいけないの!?」でした。業界関係者はもっともらしい理由を挙げていましたが、結局のところ「いつまでも同じものを使い続けられたら、俺たちが儲からない」というのが本音ですよね。

本の感想から脱線してしまいましたが^^;、今も昔もパソコンは金食い虫だな〜と思いました。
Xcode 4ではじめるObjective-CプログラミングOS XやiOSのアプリに興味があったので読んでみました。類書とは違い、コンソールアプリをメインにObjective-Cが説明されていました。

Objective-C自体が、Cにオブジェクト指向機能を追加したもののなので、Objective-Cと併せてCの文法についても勉強する形式でした。Cについて説明されている部分はかなり読み飛ばしましたが、オブジェクト指向で何かする場合は角括弧[]の中で実行するのが不思議な感じでした。

例題として取り上げられていたのは、カレンダーを表示するクラスでした。機能を紹介しつつ、それを発展させて、最終的にはiPhone版の簡易アプリを作ります。前半はObjective-Cの説明が多かったですが、アプリを作るところになると、Xcodeの使い方の説明といった感じでした。

読み終えての感想は、初めてXcode&Objective-Cに触れる人には、それなりにわかりやすい本だと思いました。他の言語の経験がある方には、ちょっと物足りない内容だったかも・・・。
この本を読んで思ったのは、GUIソフトって使うのはいいけれど、作るのは面倒だな〜でした。(^^;
それがぼくには楽しかったから (小プロ・ブックス)Linuxの開発者として有名なリーナス・トーバルズの自伝+ジャーナリスト視点からのリーナス像を描いた本です。

この本が発売された2001年に、私はこの本を読みました。今回は2度目の読書でしたが、執筆当時からの状況の変化に感慨深くなるところも数多くありました。この本が発売された頃が、ちょうどオープンソースが世間に知られるようになった時だったと思います。そして私自身、その時はLinuxのユーザーでした。

この本で一番興味深いのは、やはりリーナスがどうしてLinuxを作ろうと思ったのか、そしてどうやってそれを作り出したのかが書かれた部分でした。Linuxの知名度が上がったことで、結果的にリーナスは多額のお金を手にすることになりましたが、個人的にはそれよりも部屋にこもってプログラムばかりしているリーナスの方に共感できるものがありました。

逆に邪魔だな〜と思ったのが、ジャーナリストであるデイビッドが現在のリーナス一家の様子を描写したところでした。執筆時点のリーナスがどんな生活をしているかとか、家族構成はどうなっているかとかには、全く関心がありませんでしたので、この部分は読んでいて苦痛でした。

再度この本を読み終えて、どうしてLinuxがこれほど普及したのか考えてみると、いろいろな意味でタイミングがよかったんだと思いました。開発の基盤であるインターネットの急激な発展、GNUによって作られたフリーソフトの充実、Windowsの大ヒットによる他メーカーの危機感など、諸要素が複雑に絡み合っていく中で、Linuxという存在が浮かび上がってきたように思います。

この頃に書いたLinuxデスクトップ環境のメモがあったので読み返してみたら、その当時のLinuxのデスクトップ環境はそれなりに不安定で、かつシステムを維持していくためには、けっこうな時間をパソコンに投入しなければいけなかったことがわかりました。結局それに疲れて、それなりにUNIX系ツールが充実してきたMac OS Xに移行したのですが、この時の経験が自分の知識の幅を広げてくれたように思います。
Life with UNIX―UNIXを愛するすべての人にアスキー出版から1990年(!)に発売された「Life with UNIX」を読み終えました。

この本は、1988年当時のUNIXに関する情報を集めたものです。UNIXの歴史の紹介から始まり、さまざまな情報源の紹介(発売当時はともかく、今では古くて役に立たないでしょうが^^;)、ユーザーグループなどの紹介がされています。

読んでいて何度も思ったのは、コンピュータの進化の速さです。今では8GBのメモリ、HDDは1TBなどのマシンは珍しくありませんが、1988年当時はそれは夢のまた夢のコンピュータでした。そんなマシンが手軽に買えるようになった現在は、とっても恵まれていますね。

そして1990年当時では、UNIXまたはその互換環境を個人で手に入れるのは、かなり難しいことだったと思います。話題のLinuxはまだなく、インターネットも一般的ではなかったため、たぶんUNIXを使っているのは大学で情報処理を学んでいる人くらいだったかもしれません。

この本は、そんな時代の雰囲気を感じさせてくれました。でも、この本で指摘されている問題点、紹介されている技術などは、今の時代にも通じるものだと思います。今のUNIXにまつわる技術が、どうしてこういう風になっているのか、それを歴史的に知るためにもこの本を読む価値はあると思います。
ディジタル作法 −カーニハン先生の「情報」教室−C言語やプログラミング、UNIXについての本で有名なブライアン・W・カーニハンさんの「ディジタル作法」を読み終えました。

この本では、3つの大きな切り口からコンピュータの概要を解説しています。1つはハードウェア、もう1つはソフトウェア、そしてコミュニケーションです。従来の情報概論的な本では、最初の2つハードとソフトの点からのみコンピュータを解説している本がほとんどでしたが、ネットワークが欠かせないものになっている現実に対応して、この本ではコミュニケーションの部分に力を入れて(本書の約半分がコミュニケーションに関するものです)解説がされています。

コンピュータの世界では神様クラスの方が書かれた本だけあって、その内容は簡潔でとてもわかりやすいです。コンピュータについて全くの初心者が読むには辛いものがあるかもしれませんが、コンピュータについてきちんと理解してみようと思う方なら、じっくりと読む価値がある本だと思います。この本の内容をきちんと理解できれば、初歩的な情報処理の検定なら楽勝でパスできるようになると思います。

ハードとソフトについては興味がないという方でも、コミュニケーションに関わる部分については一度目を通されておくと参考になると思います。特に、インターネットを使うことでどういった危険性があるのかについては、ぜひ一読して把握しておくべきだと思います。裸でジャングルに出かける人がいないように、何も知らずにネットをうろつくのはとても危険なことだと思いますので。

とってもいい本なのですが、少しだけ不満だったのは、1ページあたりに内容を詰め込んだせいか、余白が少なくて読んでいて圧迫感を感じることがあったことです。内容的には素晴らしいのですから、もう少し余裕を持った組み版をして欲しかったです。
あと、たまに妙な翻訳があったりしましたが^^;、意味が取れないことはなかったので、今後増刷されることがあったら直してくれたらいいな〜という程度です。
苦しんで覚えるC言語今年の目標であるプログラミングをマスターするために、手始めにC言語の入門書を読んでみました。

C言語の入門書はたくさんあって迷いましたが、猿や猫でもわかるといった本の中に、あえて「苦しんで覚える」というキーワードが目にとまってこの本を選びました。題名こそたいへんそうなこの本ですが、実際に読んでみると中身はとてもわかりやすかったです。他の入門書では、とりあえずこう書くと説明されているところも、この本ではあえてしっかりと説明してから先に進んでいます。

特に本の序盤は、懇切丁寧に解説がされているので、初心者に優しい本だと思います。ただ構造体のあたりから、説明が駆け足になっているのがちょっと残念でした。もう少し、実際に使う時の使いどころが説明されていたらよかったのですが・・・。このあたりは、他のもっと実践的な本で勉強した方がいいかもしれません。

以前にもC言語は勉強したことがあるので、内容的には覚えていることの確認でしたが、曖昧に覚えていた部分や忘れていたところを思い出すにはちょうどよかったです。
カッコウはコンピュータに卵を産む〈下〉クリフォード・ストールの「カッコウはコンピュータに卵を産む」下巻を読み終えました。この巻では、ついにハッカーの正体が判明します。

ハッカーの正体を突き止め、逮捕させるために著者はある作戦を実行しました。SDINETという架空の軍事ネットワークを作り上げて、そこに偽の文書を用意しておくのです。著者の狙いはあたり、ハッカーはこれにくいつきました。ドイツでの逆探知も成功して、あとは逮捕だけかと思いきや、ここからがまたたいへんだったのでした。

なんと、著者が再三お願いしていたにも関わらず、FBIはドイツの捜査当局と連携していなかったのです。ハッカーを捕まえるために、著者は再び奔走します。しかし、どこも情報は欲しいけれど、直接自分が手を出すのは嫌だというところばかりです。

そんな中、著者にはセキュリティーの専門家として各種政府機関で講演をお願いされるのでした。それらをこなしつつ、著者はネットワークの状況に目をそばだてます。そして、ようやく犯人が逮捕されたのでした。捕まったのは、ドイツのハッカーグループでした。彼らは最初はいたずら半分から、やがてはお金や麻薬目当てに軍事情報にアクセスしようと試みるようになったのでした。

著者の行動は、その後マスコミにも報じられて大きな話題になりました。彼を賞賛する者もあれば、彼を批判する者もありました。そんな中、著者は同棲していた女性と結婚。住まいもバークレーから移ることになりました。しかし、そこでもセキュリティ問題が彼を待っていました。何者かがコンピュータワームをネットワークに放ち、その影響で各地のコンピュータに障害が起きていたのでした。

これは、世界初のワームとして知られているモリス・ワームでした。奇しくも著者は、その出現の騒動に巻き込まれることになったのでした。

著者のお話はここで終わりますが、コンピュータをめぐるハッキングの問題、ウィルスの問題はその後も続いています。本書の内容は、1980年代後半ということもあり、コンピュータ・ネットワークにまだ牧歌的な雰囲気が感じられます。しかし、セキュリティがいかに大切なのか世に知らしめた点で、大きな影響があった本だと思います。
カッコウはコンピュータに卵を産む〈上〉クリフォード・ストールの「カッコウはコンピュータに卵を産む」上巻を読み終えました。この本も「闘うプログラマ」と同じく、発売された当時に読んだ本です。まだインターネットさえ一般的ではありませんでしたが、読んでいてワクワクしたことを思い出しました。

舞台となるのは、1980年代半ばの天文学の研究所です。著者はそこのシステム管理者として仕事をすることになりました。そこで最初に与えられた課題は、料金計算プログラムのわずかな誤差の原因を探し出すことでした。簡単な仕事だと思ったそれは、意外にもハッカーの侵入という事実を明らかにしました。そしてその日から、著者はハッカーの正体をつきとめるために奔走することになるのでした。

追跡にあたっては、いろいろな壁が著者の前に立ちはだかります。それを突破するために、著者はFBIやCIAの助けを得ようとしますが、彼らは重い腰を上げようとはしません。さらに、犯人の居場所を突き止めるために逆探知しても、電話会社は令状がなければ逆探知の情報を提供してくれないのです。八方ふさがりの状況の中、それでもハッカーの侵入は続きます。

そして、本当にわずかづつですが、著者はハッカーへと近づいていきます。上巻では、まだその正体が発覚するところまで描かれていませんが、最初は近所の学生がいたずれでハッキングしていると思われたのが、とうとうアメリカを飛び出してヨーロッパにまで捜査の手は広がりました。まだドイツが統合前の、西ドイツと東ドイツに別れていた時代のことです。そして著者は、犯人が西ドイツから接続しているらしいという結果を得ました。しかし、この調査がここで終わりなのか、それともさらに先まで続いているのか。今はまだ誰にもわからないのでした。

それからハッカーの行動を分析した著者は、ハッカーは、アメリカの軍事情報に強い関心を持っていることもわかりました。そうなると、単なる遊びではなく、コンピュータ回線を利用したスパイ行為だとも考えられます。

下巻では、いよいよ謎が解き明かされます。引き続き読むのが楽しみです。
闘うプログラマー 下巻Windows NT開発の苦闘を描いた「闘うプログラマー」の下巻を読み終えました。下巻では、ついにWindows NTが出荷されるところまでが描かれます。

開発が難航してきたWindows NTですが、ようやく1つにまとまり始めています。一部のユーザーの目にさらされることになる、評価版が完成したのです。しかし、それはバグとの戦いの始まりでもあり、どの時点のビルドを製品とするかという落としどころを決める苦悩の始まりでもありました。

最初に問題となったのは、その画面表示の遅さでした。しかし、それは1人の人物が開発に加わったことで、大幅に改善されることになりました。元フリーのプログラマー、マイケル・アブラッシュの参加です。
次に問題になったのが、新しいファイルシステムNTFSの完成度の低さでした。これは開発担当者が、その開発に専念できず、過去のファイルシステムとの互換性をとる仕事に追われていたことが原因でした。

互換性といえば、過去に発売されたDOS用のソフト、Windows用のソフトとの互換性を確保することも問題となっていました。個人的には、新しいOSが開発されるなら、過去データさえ何とかしてくれるなら、そのOS用に開発されたソフトを使いたいと思っています。理由は、互換性の不完全さによるトラブルに巻き込まれるのは面倒なのと、せっかく新しいOSを使っても互換環境ではそのメリットを享受できないことがあるからです。(もっとも、これは私がフリーソフトを中心に使っていて、ソフトにあまりお金をかけてないからでもありますが^^;)

これで大きな壁は越えましたが、テストを繰り返せば繰り返すほど尽きぬほど出てくるバグの山。そのバグの山に優先順位をつけ、どれを最初に修正するのか、修正を加えたことで新たなバグが誘発されないか、それが問題になってきたのでした。

そして、数々の試練を乗り越えて、ついにNTが製品として出荷される日がやって来ました。後に残されたのは、疲れ切ったスタッフの山・・・。(^^; 大規模ソフト開発って本当にたいへんなんだな〜と改めて思いました。

そして製品が出荷されれば終わりではありません。そこからは、製品の評価という形で作られたものの価値がはかられます。最初の製品では、理想を追求しすぎたこともあって、要求するハードのスペックが高すぎるという声が数多くありました。NTが真価を示すのは、ハードがソフトに追いつくまで待たなければなりませんでした。

ということで、本当に久しぶりに読み返しましたが、ソフトウェア開発の苦労が描かれている部分が迫力があって、今読んでも面白い本だと思いました。読んでいて思わずニヤッとしてしまったのは、今はなきカイロ・プロジェクトの名前が出てきたことです。マイクロソフトだけでなく、AppleのCoplandとかもそうですが、大風呂敷を広げたけれど結局失敗したプロジェクトって数多くありますよね。(^^;
闘うプログラマー 上巻「闘うプログラマー」の上巻を読み終えました。この本は、90年代に発売された時にも読んでいますが、今回読み返しても面白かったです。

物語は、マイクロソフトが新たなOSを開発しようとするころから始まります。今のWindows 8やWindows 7、Windows XPの元となったNT系と呼ばれるWindows NTの開発の様子が描かれています。
お話の主人公的な存在となるのは、NT開発の開発リーダーであるデビッド・カトラーです。カトラーは、もともとはDECでOSの開発を行っていました。しかし、DECでの仕事に見切りをつけて、多くの部下と共にマイクロソフトに入社したのでした。

そこで新たなOSの開発に取り組むことになったカトラーでしたが、そこで彼はこれまでやってきた会社とマイクロソフトの文化の違いに戸惑うことになるのでした。それまでの会社では、全員がきっちりと朝から揃って仕事をする官僚的な仕事方法でした。しかし、マイクロソフトの社員たちは出社するのもバラバラなら仕事スタイルもバラバラという自由奔放すぎる仕事方法だったのでした。

最初は方向性が見えなかったOS開発ですが、やがてマイクロソフトとIBMが共同で行ってきたOS/2の開発が破綻しだした頃から本格的に動き始めました。そんな中、カトラーたちが開発しているOSに対しても、外部から口を挟まれることが多くなり、プロジェクトは右へ左へと振り回されることになりました。

この上巻では、そうやって開発されてきたOSがようやく1つの形となり、プログラマーが日々の作業を行う環境をOS/2からNTへと移行するところまできました。しかし、それでも先は見えたわけではなく、プログラムには問題が山積みで、商品として発売するにはほど遠い状況です。この状況をどう打破していくのか、下巻が楽しみです。

あらためて読み返してみると、よくこんな状況でNTが開発できたな〜と感心するというか呆れました。(^^;
そして趣味で使うものならともかく、商業品質のソフトを作り出すのは本当にたいへんなんだなあと思いました。