ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

Archive for the ‘書評’ Category

ほっともっとで弁当を注文しながら「ソフトウエア職人気質」の一節を思い出す

leave a comment »

P1690034_mid_640_480

ピート・マクブリーン Pete McBreen 著、村上雅章訳でピアソン・エデュケーションから Professional Computing Series の別巻7として出版された「ソフトウエア職人気質 Software Craftsmanship – The New Imperative」は2002年3月の出版であり、もはや16年前の書籍になるが、いま読んでも示唆に富む本だ。このことは逆に日本のソフトウエア産業が足踏みしたままであることも示している。情報教育、プログラミング教育に携わりながら教務システムの内製を経験した私は、常にプログラミングと価値の創造について考えているが、今日たまたま近所のほっともっとで昼食の弁当を買いに行ったとき、レジでの注文のあとぼんやりと弁当が出来上がるのを待ちながらこの本の一節を思いだした。

P1690038_mid_640_480

いま年の瀬も押し迫った12月末だが、たとえば客に「年末年始の営業日はいつもと同じか」と聞かれたとしよう。「少々お待ちください」と言いスケジュール表を見るようでは優れたレジ係とは言えない。この時期だから、もしかしたら客からこのような質問があるかもしれないと思い、あらかじめ店舗スケジュールを頭に入れておくはずだ。そうすれば即座に返答ができるだろう。レジ係は客の注文を受け、代金をもらい、厨房に注文を出し、できた弁当を客に渡すという仕事だが、このルーチンだけできればいいというものではない。

「ソフトウエア職人気質」には「顧客の利益はソフトウエア職人の利益と一致する」の節があり、こう書かれている。「顧客は、優れたソフトウエアを望んでいます。そしてソフトウエア職人は、誇りに思え、自分の評判を支える優れたソフトウエアを作り出したいと考えています。こういった相互利益の一致によって、顧客とソフトウエア職人のより良い関係を築き上げることができるわけです。」

優れたレジ係の利益は客の利益と一致する。ソフトウエア開発者があらかじめ調整された仕様書だけを頼りにして開発する時代が終わったように、レジ係もマニュアル通りの注文、集金業務だけしていればよい時代も終わったのだろう、などとぼんやり思う年の瀬である。

東京品川、日本マイクロソフトのカンパニーストアで買ったロゴグッズ – マインクラフトの「ブロックペディア BLOCKOPEDIA」

leave a comment »

これはすごい。マインクラフトファン随喜の逸品だ。マインクラフトの「ブロックペディア BLOCKOPEDIA」だ。「ペディア」だから「エンサイクロペディア encyclopedia」つまり百科事典のことを指している。いわば「マインクラフト百科事典」というところだ。

P1490014_mid_640_480

パッケージは四角いが、中に入っている本は六角形をしている。マインクラフトのキューブをデザインしているわけだ。パッケージの裏には説明がある。

P1490015_mid_640_480

パッケージから本を取り出すとこんなかんじ。六角形。栞に使う太めのリボンがついている。

P1490067_mid_640_480

ページをめくると、天然資源、鉱石や採掘物、植物、液体と空気、ネザーとジ・エンド、プレイヤー作成ブロック、実用品、メカニズム、そしてクリエイティブモードの「Mobの頭」の項目に分けて解説されている。それぞれの要素の働きや性質、作り方がわかるのだ。

P1490068_mid_640_480

P1490069_mid_640_480

この本はマインクラフトのプレイヤーには必携だ。

Written by Yoshio Matsumoto

2017年4月21日 at 1:25 PM

韓国人は日本人がつくった 朝鮮総督府の隠された真実(書評)

leave a comment »

刺激的なタイトルに魅かれて読んだ。面白かった。だが念のために書いておくが、どのような書籍でも100パーセント正しいものや100パーセント間違ったものはない。書籍は著者が調べたことや考えをまとめたものであり、出版の自由がある。それが自由主義社会というものだ。したがって読み手は共感を覚えるだけでなく、懐疑の精神も必要になる。批評の存在価値はそこにある。この本を読んだからと言って、必ずしもそれに100パーセント鵜呑みにするものでもなく、また批判だけをすることも意味がない。とはいえ日本と韓国の関係は微妙なものであり、歴史的、民族的な面からしてもデリケートなテーマである。

P1470891_edit_md_640_480

著者は台湾生まれで、来日して日本の大学で学んだ経歴がある。「台湾は日本人がつくった」という著書もあるようだ。日本人でも韓国人でもなく、台湾という国から見た視点、というものがこの本の特徴であると言えるだろう。

著者は主に朝鮮半島の歴史、とりわけ中国との歴史的な関係をベースにしながら、日清戦争で日本が清に勝ち、そして韓国併合によって大日本帝国領となった朝鮮を統治するため朝鮮総督府が設置された経緯における、社会的かつ経済的発展を中心に論をたてている。

この本の内容を解説的に述べるのは適切ではない。気になる人は自分で読んでみることを薦める。

Written by Yoshio Matsumoto

2017年4月7日 at 12:30 AM

カテゴリー: 書評

Tagged with , , , , , ,

「マンネリ打破のためのアウト・フレーズ練習帳」でわかったソロプレイの真髄

leave a comment »

P1440459_mid_640_480

世には様々なギター教則本があるが、大別するとギターの構造やピッキングと運指法、楽典の基本、メジャー、マイナー、ペンタトニックなど基本スケールの解説などの初心者向けの内容のもの、ドリアン、リディアン、コンビネーション・オブ・ディミニッシュなどスケール理論を網羅的に解説したもの、ジャズやブルースなど特定ジャンルの演奏法を解析し、また典型的な著名なギタリストのフレーズを解析し、奏法を解説するなどしてその人らしい演奏ができるようにガイドするもの、そして最近の流行に思えるのは、トレーニング用に作られた短いフレーズを列挙し、いわば小学生の算数ドリルのように積み重ねる練習法を示すものがある。しかしこの本はそれら数多の教則本にないことが解説されている。

この本を読みいくつかのエクササイズを試すと、音楽というものが時間の流れとともにある芸術であることに気付かされる。そもそもこれは当たり前のことなのだが、この当たり前のことに気づくと、世にある数多の教則本には時間の流れについての解説が欠如していることがわかる。極論をいえば音楽とは時間と空間をコントロールする芸術なのだ、と。

この本では、まずペンタトニックスケールを元にしたアウトスケールの考え方が示される。軽く読んだときは、ペンタトニックから派生するとはずいぶん単純な解説だと思ったが、CDの模範演奏を聴きながら楽譜を読み、自分で弾いてみるとその奥の深さがわかった。本の中盤でモード的解釈やクロマティック、ディミニッシュ、ホールトーンなどスケールの解説がされるが、おそらく筆者は冒頭の章と最後のまとめの章ですべてを言い尽くしたのではないか。つまり、アウトスケールというものは時間の流れとともに組み立てられるもので、そこには既存の網羅的に解説されたスケールなどというものは後付けの解釈にすらならず、アウトスケールに対しては全く無意味なものであると。

この本からアウトスケールの真実を知ると、たとえばコード進行がなになにのときはこれこれスケールと使うといったような理論は、ギターソロの分野においては、あたかもピアノのバイエルをなぞっているだけであって、そこからは全くオリジナルな演奏は出てこないことがわかる。アウトスケールは時間と空間をコントロールする場において、いかに自分らしい流れの音空間を作るかであって、そこに全く理論は関係ない。だからこそ音楽は永遠に未開の地であり、無限の可能性があり、すべてのプレイヤーが自分だけのアウトスケールを作り出す可能性があるのだ。この本は俺の目から鱗を落としてくれた。

時間と空間をコントロールする芸術。音楽の世界もいつかはアインシュタインのような偉人が出現し、E=MC2のような理論式を見つけ出してしまうかもしれない。そうなれば、もはや秘密は失われ、音楽は真に芸術の地位から脱落してしまうのだろう。

それまでには、まだまだ、やれることがある。

日経ソフトウエア 2014年7月号 – これがわかれば脱初心者 キーワードで学ぶプログラミング上達法30(書評)

leave a comment »

IMG_9198_mid_640_480

巻頭に特別レポート「PS Vitaで動くゲームを手軽に作れる! Unity for PSM パブリックプレビュー版が登場」がある。従来はPSM用のゲームはPSM SDKを使っていたが、米ユニティ・テクノロジーズのUnity統合開発ツールをPSM開発環境として使える「Unity for PlayStation Mobile」のパブリックプレビュー版が公開され、無料で使うことができることを紹介している。レポートは見開き2ページの簡単なものだが、ユニティ・テクノロジーズ・ジャパンが公開した3Dキャラクター「ユニティちゃん」をPS Vitaで動かすこと、横スクロール型の簡単なゲームを作ることをやっている。UnityはC#、JavaScript、Booによる開発に対応しており、この記事ではC#を使ったスクリプトが参考として示されている。

連載ハードウエア入門塾「ラスベリーパイで遊ぼう」は注目の記事で、今回と次回の2回に分けて「携帯ゲームを作る」というテーマになっている。ここでいう携帯ゲームは、ラズベリーパイをPCやディスプレイから切り離し、操作スイッチを付け、モバイルバッテリーで駆動しドットマトリックスLEDで画面表示をするというもので、いわばゲームウォッチのようなマシンに仕上げるというものだ。ドットマトリックスLEDは5×7ドットのものでしかないので凝った表示はできないだろうが、LEDを使う手法がわかれば応用は簡単だろう。また開発手法としてPCからネットワーク経由でSSH接続することにしており、ネットワークの設定やSSHクライアントとの通信方法などが説明されている。リモート接続の場合はLeafpadが使えないので、ラズベリーパイ内臓のnanoテキストエディタを使う方法が示されている。テストプログラムは日本最初のテレビ放送実験で使われた、カタカナの「イ」の字を表示するものだ。著者のセンスがうかがえる。

さて特集1「これがわかれば脱初心者 キーワードで学ぶプログラミング上達法30」だが、ノウハウ記事として書かれたものだと思うが読み物としてさらっと読んでも面白い。たとえわかっていることでも巧い例えで説明されると「なるほど」と膝を打つだろう。「非同期処理とは、ある処理の実行中に別の処理を止めないという意味です。」という説明などは「うまいな」と思う。

特集2「最新!SQL Server 2014で知る今どきデータベース活用法 インストールから『インメモリー』高速化まで」もいい記事だ。Introduction「データベースって何?どうやって使うもの?」では、そもそもデータベースとは何なのか、からSQL Serverのエディションの違いなど基本的なことを説明している。Part1「Visual Basic/C#でSQL Server 2014を使ってみよう」ではSQL Serverと開発ツールVisial Studio Expressのインストール方法、SQL Serverの起動や設定方法、テーブルの作成などが示されている。とりわけ対応するSQL Serverのバージョン違いや更新プログラムによってインストールがうまくいかない場合の対処方法などが説明されているのでたいへん役に立つ。Part2「2014の新機能『インメモリーOLTP』と『遅延持続性トランザクション』を試す」ではSQL Server Evaluationエディションをインストールし、テスト用のテーブルとストアドプロシージャを作成する。テーブルは「メモリー最適化」テーブルとし、ストアドプロシージャは「ネイティブコンパイル」する。そして大量のデータを追加するストアドプロシージャを実行して処理時間を比較している。通常のテーブルに通常のストアドプロシージャを実行する場合に比べ、メモリー最適化テーブルにネイティブコンパイルしたストアドプロシージャを実行すると40倍以上の実行速度向上がみられることがレポートされている。また「遅延持続性トランザクション」と「インメモリーOLTP」の使い方や処理速度の比較も説明されている。

特集3「プログラマのおもちゃに最適! 『Sphero』プログラミング入門」は米コロラド州のOrbotix社が2013年に発売したボール型ロボット「Sphero」のプログラミングにについての記事だ。Spheroはボール型のロボットで、スマートフォンからBluetoothで接続しコントロールするようにデザインされている。この記事ではSpheroをコントロールし、Spheroの状態を読み取るスマホアプリを作成することと、パソコンでBluetooth接続してコントロールするプログラミング、そしてLeap MotionのジェスチャーでSpheroをコントロールする方法が説明されている。SpheroはAmazonなどで1万4千円程度で購入できるそうであり、ロボット実習のエントリーモデルとしてたいへん興味深い。

笹川賢一氏による特別レポート「Lisp処理系自作奮闘記」も興味をそそられる。6ページという短い記事だが、言語を作るということが体験できる貴重な記事だ。筆者はこのレポートの末尾に「『言語処理系を使える』ということと『言語処理系を作れる』ということには大きな隔たり、大きな飛躍があります。この記事で、言語処理系を作る面白さ、難しさ、困難を乗り越えた時の達成感の一部でも、お伝えできていれば望外の喜びです。」と書いている。今後も類似の記事が掲載されることを期待している。

Microsof MVPの薬師寺国安氏の「Google Web API活用入門」は連載第2回目。今回は「分類やキーワードで検索し、Googleマップ上に施設を表示」するプログラミングだ。サンプルコードは地図上の半径1キロメートル内の銀行の位置を示すプログラミングを示している。応用次第で様々な活用場面が広がりそうだ。

また「楽しんで学ぶ Java入門教室」が始まった。初心者向けに丁寧に解説されているので、Javaをこれから始めようと思う人にはうってつけの記事だ。「HTML5でゲームを作ろう」は連載第8回。今回は「箱入り娘パズルを作る」がテーマだ。これも面白い。

IMG_9199_small_320_240

付録の冊子は「Javaやりたいこと逆引き事典」だ。

日経ソフトウエア 2014年6月号 – 現代プログラマの必須知識 HTML5&JavaScript徹底攻略(書評)

leave a comment »

IMG_8818_mid_640_480

特別レポートの記事が4つあるが、そのうち巻頭で紹介されている「ヘッドマウントディスプレイ戦争勃発!新型Oculus Rift vs Project Morpheus」には大きな関心を持った。これは1988年に第一回が開催されてから米国で毎年行われる「Game Developers Conference、通称GDCのレポートだ。ここで米Oculus VRより新型ヘッドマウントディスプレイOculus Rift Development Kit 2が正式に発表された。また日本のソニー・コンピュータエンタテインメントも新型ヘッドマウントディスプレイ、Project Morpheusを発表し、デモを行った。この記事ではGDCで展示された実機やデモを体験している写真も交えて、わかりやすくこれらを紹介している。ヘッドマウントディスプレイは考え方としては昔からあるが、なかなか実現だれなかったデバイスだが、これらの発表により開発が加速化するかもしれない。とても興味深い。

特集1は「HTML5&Java Script徹底攻略」でPart1から4に分かれて36ページの紙面が割かれている。Part1は「HTML5時代のJavaScript入門」で初心者にわかりやすくJavaScriptを説明している。この説明の中で「JavaScriptの関数は、クラスとして利用することもできます」、「正確にはJavaScriptにはクラスという概念はありませんが、クラスを想定することでJavaScriptのオブジェクト指向を理解しやすくなります」という記述がある。これにははっとさせられた。今までオブジェクト指向を何か特別な考え方と思い込み、なかなか理解することが難しかったという経験があるが、よく考えれば関数であるかオブジェクトであるかはその分類に意味があるわけではなく、要は機能の説明として「関数」や「オブジェクト」という言葉を使っているのだ、と気づかされた。多くのサンプルスクリプトで説明がされているが、たいへんわかりやすく面白い。良い記事だ。Part2は「おすすめJavaScriptライブラリ」で、資料的な意味がある。

特集2の「スマホ向けOS『Firefox OS』とHTML5によるハードウエア操作」も面白い。米Mozillaが中心となって開発しているスマホ向けのプラットフォーム「Firefox OS」の解説だ。すべてのアプリをHTML5で記述することができる仕組みと、それがなぜ注目されているのかがよくわかる。Part4は「HTML5セキュリティ入門」で、実際に開発する場合には必要な知識がまとめられている。

また今月から新連載がはじまった「実践!最新Androidプログラミング」も注目だ。いままで興味はあっても手を出せなかったAndroidアプリのプログラミングが、毎月少しずつ連載で学ぶことができる。プログラミングは書籍やWebを参考にして勉強することもできるが、雑誌の連載はタイムリーに最新の環境で、かつ実践的に学ぶことができる。変化の激しいこの時代に書籍の情報は最新でない場合が多く、Webの情報は部分的でまとまっていないことが多い。雑誌の連載は、最新情報を体系的に学ぶ最適の方法だと思う。

もうひとつの新しい連載は「便利なWebサイトを手軽に作成 Google Yahoo Web API 活用入門」だ。これは私の友人でもあるMicrosoft MVPの薬師寺国安さんが執筆されている。薬師寺さんには多くの著書があるが、どれも実践的でわかりやすく、初心者が段階的に学べるように丁寧に書かれており、この連載も大いに注目したい。今回は第1回で、「Googleマップを埋め込んでマーカー表示させる」が取り上げられている。

最後に紹介したいのは、ずっと連載を追いかけている「ハードウエア入門塾 ラズベリーパイで遊ぼう」だ。今回は連載第3回、「カメラとレーザーを使った監視装置を作る」だ。カメラモジュールはラズベリーパイ純正、米OmniVision Technologies社のCMOSイメージセンサーOV5647を使い、レーザーは赤色レーザー発光モジュールLM-101-A2、光センサーとしてフォトトランジスタNJL7502Lを使っている。

IMG_8819_mid_640_480

付録は「すぐわかる、すぐ使える プログラミングの便利帳10冊」で、CDに過去の特別付録から9つの冊子をPDFにしたものと新規書き下ろしの1冊の10冊が収められている。新規書き下ろしは「無償の開発ツールでだれでも作れる Androidアプリ開発の事始め」、付録冊子からは「イケてるユーザーインターフェースを作ろう Android UIパーツ活用ガイド」、「ベテラン講師の新人研修をバーチャル体験 5日でJavaがわかる本」、「何も知らない新入社員を一緒にPHPをマスター ボクのPHP奮闘記」、「入門から応用まで、サンプルコードで学習できる Visual C#やりたいこと逆引き事典」、「タグやプロパティの使い方が実例でわかる HTML5&CSS3クイックリファレンス」、「Webをカッコよくするライブラリを使いこなそう JavaScriptライブラリ活用レシピ集」、「目的別に必要なコマンドが探せる Windows/Mac両対応コマンド大事典」、「マクロで業務を効率化 Excel VBAプログラミング事典」、「今さら聞けない基礎用語をじっくり解説 読むプログラミング用語辞典」だ。CDはプラケースに入っていて、このまま本棚に立てておけるから便利だ。

日経ソフトウエア 2014年5月号 – プログラミングは学ぶより作れ! 実技優先 C言語入門(書評)

leave a comment »

IMG_8366_mid_640

特集1「プログラミングは学ぶより作れ! 実技優先C言語入門」は28ページの特集で、前半が「ソフトエア開発の概要」、「開発ツールの準備」、「コマンドプロンプトを使いこなす」、「本、ソフト、ヘルプ、検索で情報収集」となっており、プログラミングのガイダンス的な内容だ。しかしここにはある程度プログラミングができる人にも参考になることがたくさん書かれている。実際にプログラミングを始める前に、何を作るか、どう作るかなどの考え方や、ある程度できるようになった次に壁にぶつかったときのこと、などだ。後半は「『作る』は簡単ではないが楽しい」として、実際にあるプログラムをステップ・バイ・ステップで作っていく。この過程では、仕様の決定からテスト、ユーザーの誤入力対策、テストデータの作り方など、ひとつのプログラムを完成させる過程が丁寧に説明されている。もちろん、この後半部分は、実際に自分でやりながら読むのが正しいだろう。

特集2「今年ブレークする4言語」ではMicrosoftのTypeScript、GoogleのGo言語、そしてScalaとRuby2.1が紹介されている。この記事では、これらの言語の特徴を実際のコードを示しながら解説している。もちろんこの記事だけでコードを書けるようにはなりそうにないが、各言語の特徴は簡潔にまとめられておりわかりやすい。ここで紹介されている4つの言語では、やはりMicrosoftのTypeScriptとGoogleのGo言語に強く興味を引かれた。

「すぐにでも自分でやってみたい」と思わせる秀逸な記事が、特集3の「Unityで弾幕系シューティングゲームを作ろう」だ。Unityはもともと3Dゲームを作るための開発ツールだが、2013年11月にリリースされた新バージョン「Unity 4.3」には2Dゲームを作る機能が搭載された。筆者が「3次元への苦手意識からUnityに手を出さなかった人も多いでしょう」「2次元のゲームであればハードルは一気に下がります」と言うように確かに3Dゲームを作るには、たとえ開発ツールがどんなに優秀でも難しいだろうが2次元なら何かしらのゲームは作れそうな気がする。記事では「スプライト」や「コライダー2D」といったゲーム製作上の概念を説明し、実際にシューティングゲームを作る過程が説明される。これを読んでいて、シューティングゲームを作るのもいいが、パズルゲームを作るのも面白そうだと思わせられた。

特別レポート「Googleの新デバイスを試す Chromecastでアプリとテレビを連携」も面白かった。パソコンやゲームマシンがテレビの機能を取り込み、テレビはそれを迎え撃つ、スマホとタブレットが参戦を挑む、といった映像メディアをめぐるデバイス戦争ともいうべき状況が生まれているが、そこでGoogleが発表したドングル型のデバイスChromecastだ。これがどのような仕組みで機能し、アプリ製作者としてはどのような可能性があるかが示されている。これも面白い。

そして連載2回目「ハードウエア入門塾 ラズベリーパーで遊ぼう」だ。この第二回では「スイッチを接続してWebアプリと連動させる」が課題で、ラズベリーパイにスイッチをつけて入力とし、ラズベリーパイにWebサービスを動かしてスイッチの押された回数をWebでネットワークから参照する、といういきなり実用的なものとなった。この回を読めば、温度センサや距離センサなど様々なセンサをラズベリーパイにとりつけ、取得値をWebサービスで公開するという応用ができるだろう。この連載はたいへん興味深い。要注目だ。

IMG_8367_mid_640

付録の冊子は「これで始める これで教える HTML超入門」だ。内容的にはHTMLのタグなど基本的な説明で、「小中学生向けのプログラミング塾創設者が徹底的にわかりやすく解説」とあるように、初心者向けのものだ。しかし、最近よくあるマンガによる解説といったものではなく、しっかりテキストで読ませる内容だ。