『基礎からのMySQL 改訂版』読了

基礎からのMySQL 改訂版 (プログラマの種シリーズ SE必修! )
基礎からのMySQL 改訂版

500ページ以上ある本ですが、解説が丁寧なのでスムーズに進みました。以下、感想。

MySQLを学ぶうえで最初のハードルとなるのが環境構築です。本書は、WindowsにXAMPP(Apache, PHP, MySQL等がまとめられたソフトウェア)を入れ、文字コードはShift-JIS、という、読者の大多数を占めるであろうWindowsユーザーにとってフレンドリーな環境を作る方針になっています。Macユーザー向けにもMAMPの導入方法が載っています。

が、この点、私は不満です。というのも、MySQLを仕事で使う場合、そのOSはLinuxである可能性が高いからです。そして、WindowsとUnix(Linux、Mac等)では、MySQLの挙動が一部異なります。例えばテーブル名。Windows版MySQLでは大文字と小文字を区別しませんが、Unix版は区別します。「tbUser」と「tbuser」は、Windows版では同じテーブルですが、Unix版では別物です。その他のWindows版とUnix版の相違については、MySQLリファレンスが参考になります。

本書のメインである、データベース言語SQLの解説については、さすがに丁寧で充実しています。本書をやれば、基本的なCRUD文(データベースの作成、データの呼び出し、データの書き込み、データの消去)が書けるようになります。プログラマーにとって必要最低限のSQLは身につきます。また、ビュー、トランザクション、ストアドプロシージャとストアドファンクションについてもさわりだけは学べます。その先、MySQLのチューニングや、高度で複雑なSQLは、本書の守備範囲を超えます。

MySQLとセットで用いられることの多いプログラミング言語PHPについては、MySQLとの組み合わせで必要な最低限の範囲を絞って書いてあります。変数と配列、条件分岐と繰り返しといった、プログラミングの基礎に、MySQLを利用するための関数を加えた内容ですね。

WebページでのMySQL利用で問題となるSQLインジェクション対策等、セキュリティについても触れられています。自分の作ったサイトの脆弱性を自分で攻撃する、という流れが面白かったです。

HTMLに関しては、酷いの一言。本書に載っているHTMLは、10年前のそれです。XHTMLを経た現代のマークアップは、本書とは全く異なった書き方をします。まあ、タグの大文字はHTML5の仕様上はOKだし、<html><head><body>などはHTML5では省略可能とされています。ただし<FONT>、テメーはダメだ。

<FONT>タグのような、スタイル指定のための要素は、HTML5では廃止されています。<B><U><I>も同様です。ブラウザーは下方互換性を保つように作られているので、<FONT>タグを使っても当面問題となることはないでしょう。しかし、スタイル指定のための要素を使うと、HTMLを書くのにも煩雑ですし、後々のメンテナンスが大変になります。Webページのデザインの調整を行いたいなら、CSSを学ぶべきです。HTML/XHTMLスタイルシートレッスンブックのような良書があります。

後半がイケてなかったので、読後感は良くありませんが、前半のSQLの解説は丁寧です。オススメというほどではありませんが、SQLの部分だけでも元は取れるはず。あなたがMySQL初心者なら、買って損はしないでしょう。

ただ、Windows上での環境構築にせよ、HTMLタグの解説にせよ、初心者に理解しやすい内容(裏を返せば、解説の容易な内容)を選択した結果、実務の観点からするとツッコミどころがある、という点には留意すべきかと。

『小飼弾のアルファギークに逢ってきた』読了

小飼弾のアルファギークに逢ってきた (WEB+DB PRESS plusシリーズ)
小飼弾のアルファギークに逢ってきた

本書は、先端的な感性と高い技術力を兼ね備えたエンジニア「アルファギーク」に、自身もアルファギークである小飼弾氏がインタビューを行った本。

Larry Wall(Perl作者)、DHH(Ruby on Rails作者)、Evan Williams(Twitter共同設立者)、Dave Thomas(『達人プログラマー』共著者)、John Resig(jQuery作者)など、海外からのゲストは大物揃い。日本人も、2008年当時から現在まで、一線で活躍している人たちが並んでいる。

全員のリストは著者ブログを参照のこと:404 Blog Not Found:本日発売開始+目次 – 小飼弾のアルファギークに逢ってきた)。

優秀なエンジニアのモノの考え方を伝えよう、という企画で、それはかなり成功していると思います。小飼弾のアルファギークに逢いたい♥には、本書の元になったインタビューや、本書にも掲載されていないインタビューが載っています。

コードを書く情熱を与えてくれる熱いインタビューが満載。オススメ。

ちなみに、私が本企画に見つけた「隙間」は、まつもとゆきひろ氏に対するインタビューの不在です。本の中でもたびたび名前が挙がるのに。本書とは趣が異なりますが、小飼弾氏とまつもとゆきひろ氏の対談? を見つけたので、リンクを張っておきます。

まつもとゆきひろ×小飼弾対談 生き残るエンジニアとは?

『たのしい開発 スタートアップRuby』を読了

たのしい開発 スタートアップRuby
たのしい開発 スタートアップRuby

↑は書籍版ですが、私が購入したのはGIHYO DIGITAL PUBLISHINGの電子版です。技評の電子版は、DRM無しのPDFなので扱いやすいです。PCで、画面の左半分に本を開いて、右半分でターミナル等の操作をする、という読み方(使い方?)が出来ます。

本書『スタートアップRuby』は、その名の通りRubyの入門書です。本書がユニークなのは、Rubyというプログラム言語の入門書ではなく、Rubyを取り巻く文化であったり、Rubyを使った開発スタイルの入門書であるという点です。

読了すればすぐにRubyを書いたりRailsで開発したり出来るようになる、という本ではありませんが、Ruby入門者は「急がば回れ」で読んでおくと良いのでは。

完全なプログラミング初心者でも、飛ばし飛ばしであれば読めますし、必要なエッセンスはある程度伝わるでしょう。メインターゲットは、Ruby経験は無いが、Rubyに興味がある、というプログラマーです。

今まで、仕事でもプライベートの学習でもWebアプリケーションフレームワークというものを使ったことが無かったので、Railsの手軽さには驚きました。

テストの話などは深く理解できたとはいえませんが、今いる会社でやっている、変更を加える→手動で実際に動かしてテスト という非効率的なやり方に比べれば、自動テストという手法は素晴らしい。

CSS Cookbook 3rd Edition を読了した

オライリーの「CSS Cookbook 3rd Edition」を読了しました。英語の原書です(CSS Cookbookの邦訳は1st Editionのものしか出ていません)。また、読了したのはiOSアプリ版(から取り出したePub)です。通勤電車でコツコツ読んで、4ヶ月、約80時間で読破といったところでしょうか。

700ページもある英語の原書を読破したのは初めての経験ですが、やればできるものです。「どんな本でも、途中で読むのを止めなければ必ず読める」という手応えを感じました。

技術書なので英語も易しいし、英語が分からなくてもコードを読めば言ってることは分かる、ということが結構ありました。また、Cookbookなので記事ごとに内容が分散していて、ある時点でつまずいたらその後分からなくなる、という内容ではなかったのも幸いしました。

読解力に関しては鍛えられた実感はそれほどありませんが、英語を読む体力、度胸は身についたと思います。

肝心のCSSに関しては、ネガティブマージンの使い方などは本書で初めて本格的に学びました。他に、タイポグラフィのテクニックなど、英語圏特有の話題も興味深かったです。

出版当時(2009年)の最新の話題(CSS3)や下方互換性の話題(IE6対応)もそれなり。ただし、スマートフォン向けのCSSの書き方については全く触れられていません。

いま、CSSを学びたい人にオススメするかと聞かれたら、しません。また、仕事場に置いとけば役立つかも微妙です(IE6対応が必要なら役立つかも)。CSS3やスマートフォン対応の記述が充実すれば、使いでのある本になりそうな感じもしますが、そのためには大幅な改定が必要でしょう。

Perl歴1ヶ月の初心者がYAPC::ASIA2012(2日目)に行ってみた

「ブログを書くまでがYAPCです」とのことなので。

まず、私のバックグラウンドは、プログラミング歴1年、Webエンジニアとして、主にPHPを書く業務を6ヶ月。Perlは今年の6月から、結城浩氏の『Perl言語プログラミングレッスン 入門編』(以下、結城本)で学び始めました。途中Rubyに浮気したりもあったので、実質的な学習期間は1ヶ月ほどでしょう。

今回のYAPCでは、主に初心者向けのセッションに参加しました。

最初は、リャマ本こと『初めてのPerl』の訳者である、近藤嘉雪(@yoshiyuki_kondo)さんの、「Perlの勘所をマスターしよう! コンテキストとリファレンスを我が物に!」。

コンテキストに関しては、結城本で学習済みだったので復習の意味合いが強かったですが、リファレンスは結城本では応用的な内容として省略されていた部分だったので、興味深かったです。データへの参照に名前をつけるというのは、上手く使うと効率的に書けそうだなあ、という感触がつかめました(実際に書けと言われたら無理ですが)。

次に、まんでぃー(@mandy_44)さんの「Perlでちょいモテデザインパターン」。デザインパターンとは、ソフトウェアを設計する際の定石みたいなものかな、という感じはつかめましたが、詳細はさっぱり。。。『モダンPerl入門』がスーパー名著とのことなので、初心者を脱したら読んでみます。

昼休憩を挟んで、「Perl今昔物語」。宮川達彦さん、伊藤直也さん、小林篤さん、松野徳大さんというメンツで、2006年以降のPerlの歴史を振り返り、今後の展望を占う、というもの。特にPerlの今後の部分が興味深かったです。

「Perlは下方互換性に留意して作られている(Perl5.12で動くコードは、以降のバージョンでも必ず動くように、今後の開発が進められる)」
「Perlで実装された大規模なWebアプリケーションは、今さら言語を替えるのは困難なので、今後もPerlでメンテナンスが続けられる」

しかし一方で、「今、あえてPerlを選ぶ必然性には乏しい」という指摘もあり。

その後は、小飼弾(@dankogai)さんの「Perl as a Foreign Language」。今後、開発言語の主流がJavaScriptになることは既定路線。そのような状況の中で、Perlの役割は? というテーマ。結論から言うと、Shellを操作する言語としては今後も有望であろう、と。

実際、私の場合、現在の職場で仕事の成果物としてPerlのプログラムを提出することは無いだろうと思います。が、Perlで書いたスクリプトで、HTML文書の文言の一括置換を行うことはあるので、日常使いのプログラム言語としては使いでがあると感じています。

その後は「遠方よりの参加者」という、遠方からの参加者によるLT(Lightning Talk、5分程度のプレゼン)。ペポパ福岡支部の人の「ご飯に卵かけるAndroidアプリできたよー」な脱力&爆笑LT、名古屋の猫耳の人の、PerlのカンファレンスなのにF#の話をするというフリーダムなLTなど、短いながらも印象に残るものばかりでした。

続いて竹迫良範(@takesako)さんの「Perlで始める! 初めての機械学習の学習」。タイトルは硬い感じですが、実際の内容はkinectを利用したビジュアルに訴える内容が多く、肩肘張らずに聞くことができました。

@__papix__さんの「Perl入学式をやってみた」は、Perl初心者向けのワークショップを主催した経験を語るセッション。非常に充実した学習環境を提供されているようで、Perl入学式の参加者が羨ましい。

その後はメインホールでLightning Talk。ところどころにスポンサー企業の「求人LT」が混じり、それもまた面白いというナイスなセッションでした。一番印象に残ったのは「サスペンダー駆動開発」ですかね。

最後は宮下剛輔(http://mizzy.org/)氏の「How Perl Changed My Life」。Perlとの関わりも話しつつ、メインはエンジニアとしての生き方のお話。

「間口の広いカンファレンスを目指す」という目的はある程度達成されてるかな、と思います。Perlの文化に興味があれば、参加して楽しむことは出来るでしょう。技術的な部分は分からなくても、楽しそうにやってる雰囲気は伝わってきます。おかげで、私のような初心者でも楽しめました。来年もよろしくお願いします。