『pixivエンジニアが教えるプログラミング入門』 (星海社新書)読了

積ん読半年、未読のまま返却しようと思いましたが、雨の中少し読んで、

頁29
ピクシブをはじめ多くの Web 企業で使われる Web プログラミングは UNIX で動かすことが前提になっているので UNIX でない Windows では環境構築が難しいです。解説しているサイトや本などは多くありますが、基本的に実践的になればなるほど困難になります。
 プログラミングを行う環境として Windows は全く推奨できません。

として、以後 Mac 前提で話が進みます。ここを最初に読んでれば、
半年前に未読で返却してました。すいません。私はマックブックエアー持ってないです。

頁2
この本では、「画像投稿掲示板を作ってみる」という、シンプルな作業を通して、プログラミングの基礎を学んで頂きたいと思っています。
本書は、エンジニアでない人のためのプログラミング入門書です。例えば次のような方にオススメをします。

システムエンジニアプログラマーとプロジェクトを共にする、 Web ディレクター/デザイナーの方
・プログラミングに興味はありつつも、なんとなく難しそうではじめるきっかけが摑めない方(10年前の筆者)
・就職/転職の結果、全くの未経験からシステムエンジニアになることになった方
・プログラミングによって何か動くものが作ってみたい方

いやー、これ読んで、目からウロコで、いろいろ作れるようになって、

頁31
ターミナルは世間では『黒い画面』などと呼ばれ(ターミナル .app の標準は黒くありませんが)意味の分からないものの代名詞のように使われている節もありますが、一つ一つ覚えれば難しくありません。

古典的ですが、電車男ブルースクリーン、否、名前忘れましたが、
なんかいっぱい画面出てくるのを CGI から消すようなことが、
タンカンに出来るようになるのかなあ、と思いましたが、あれは、
全然違う作業みたいですね。

質問!ITmedia 2008-05-13 17:43:37
映画版電車男でのDOSプロンプトの操作
http://qa.itmedia.co.jp/qa4019550.html

上記のQ&Aでも名前忘れてて、「増殖ウィンドウ?」とかゆってて、
それで意地になって検索して、ブラウザクラッシャー、略してブラクラと、
思い出しました。光陰矢の如し、IoT

頁3
英語で言えば、アルファベットも知らないような状態から、英作文ができるように仕上げなさいという話で、大変骨の折れる仕事でした。おかげで、普段何気なく使っている言葉やテクニック、概念について考え直すことができました。

プログラミングを知らない人が、プログラム書けるようになれるのか、
ラッキー、と私が思ったとしても、誰が私を責められるでしょう。

頁4
それではさっそく、講義をはじめましょう。
PC(できれば Macに電源を入れ、ページをめくってください。

ここで、おやっと思ったのですが、目次をちゃんと見ませんでしたので、
第1章 Webサイト作りの基本のキ を時間がなくてパソウコン開いて見れないまま、
半年が過ぎて、第2章 Mac を使った開発環境 なぜ Windows ではダメなのか を、
今日読みました。半年の間、誰かリクエストして返却してたられば。
先にここを読んでたらもうその後は30分で済みました。
マックブックエアー持ってないので。マックブックエアー。

MacBook Air 1600/13.3 MMGF2J/A

MacBook Air 1600/13.3 MMGF2J/A

頁27
UNIXアメリカ最大手の通信事業者である AT&Tベル研究所で開発された OS です。
1970年代に広く普及した歴史のあるシステムで、主に大学や研究機関で使われてきました。
現在でも UNIX は事実上の標準になっています。
Mac OS XUNIX の一種です。
Linux は商標の関係で UNIX とは名乗れませんが、事実上 UNIX の一種と考えて問題ありません。

今回学ぶ Web プログラミングは基本的に UNIX で動かすことが前提になっているので UNIX 系の OS を使用する必要があります。

ここで Linux の説明をします。

Linux の歴史を簡単に説明します。
当時フィンランドヘルシンキ大学の学生であったリーナ(以下略)

ここに来る前に、読者は先に、 HTML と CSS について学んでいます。
このあと、読者は、 Command Line Tools をインストールします。綿矢りさ
それから、GitHub に登録して使うことが出来るようにします。
Git はバージョン管理ソフトだと説明がありますが、GitHub がなんなのか、
よく分かりません。Git のサイトが GitHub で、ソースコードを共有するためのサーバを、
提供して、使用してもらう、みたいな感じでしょうか。

私がこの本読んでプログラミングを覚えようとしています、と言うと、
言語はナニ?と聞かれましたが、その時はそこまで読んでませんでした。
Git の次に言語が出てきて、Ruby という言語だそうです。コボルとかじゃなかった。

次に DB が必要で、この本は託宣、オラクルではなく、SQL
SQLite というデータベースを使って基礎を学んでいきます。
ここはやってみたかったのですが、(例が本屋のデータベースだったし)
ここまで全部飛ばしたのでここも飛ばしました。読む意味ないじゃん。

次に、代表的な Webアプリのきじゃ…ぜいじゃくせいとして、
XSSSQLインジェクションというものの説明がありますが、
前者はちかん、エスケープ、後者はプリペアドステートメント
という必殺技で逃げられるそうです。具体例は作り乍ら説明とか。

次に、シナトラの説明があります。一瞬で三発か五発急所に打ち込む技*1
ではなく、 Sinatra というアプリだかソフトをインストールすれば、
エスケープが使えるようになるみたいです。

このあと、 db.prepare を使ってプリペアステートメントして、
SQLインジェクションを発生させないようにして投稿を保存するとか。

pixivもはてなみたいにスターがあるんですね。スターの付け方まで、
プログラミングで教えてくれます。いいね!も同じでしょうか。
JavaScriptと、jQueryを使うそうです。ジャバって、ジャヴァとは書きませんね。
なぜだろう。ジャワって言うからかな。オランダ語経由だからかな。
あと、アドビとJava の違いが分かりません。うそ。

本書は最初と最後に、 Perl を作ったラリー・ウォールという人の、
プログラマの三大美徳」を紹介しています。

頁153
・怠惰(Laziness)
・短気(Impatience)
・傲慢(Hubris)

面倒だと思ったら自動化すればいい。
気が利かないソフトウェアは直せばいい。
文句を言われる余地のない完璧なプログラムを書けばいい。

作者も「プログラマ人間性が疑われるかもしれませんが」ちゅうてますが、
社会性を両立出来る人は凄いと思いますし、無理な人もそれなりに、
生きてほしいと思います。人は変えられない、自分は変えられる、とか、
お経のように唱えて平静を保ってる私とは無縁の人生だが、クロスすることも、
またありましょう。では。以上