プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

『プロフェッショナルSSL/TLS』は業務で即役に立った良い本でした

言いたいことはタイトルに書いたのですが、「『プロフェッショナルSSL/TLS』、良い本です」というのが結論の書評です。

『プロフェッショナルSSL/TLS』 – 技術書出版と販売のラムダノート

『プロフェッショナルSSL/TLS』に関しては前回のブログ記事で以下のように軽く触れていました。

業務でSSL証明書周りの作業をしていて、今まで穴だらけだったSSL/TLSの知識がむっちゃ足を引っ張っている現状だったので、以下の書籍を買いました。

最近こんなことを勉強してます - プログラマ行進曲第二章

まだ1/4も読めていないですが、それでも十分仕事に活かせているので原著の作者と翻訳者とラムダノートさんありがとう、という気持ちです。 前職でSSL証明書を取得する必要があったときにネットのリソースだけでSSL/TLS周りを勉強しましたが、知りたいことを探していても古かったりして本当に正しいのか逐一調べながらやっていたのに対して学べなかった経験からすると、SSL/TLSの勉強をしたかったらさっさとこの本を買って勉強した方が時間の節約になっていいと思いますね。

最近こんなことを勉強してます - プログラマ行進曲第二章

引用で触れている業務*1が終了したので、上記の引用のように軽く感想を書いて終わりにするのではなく、一回振り返って書評をブログ記事にしてまとめた方が今後の自分のためにもいいかなと思って今書いています。

本の内容の真っ当な書評としては他の方がもっと詳細に書いているので、そちらを見た方がいいでしょう。

【書籍】プロフェッショナルSSL/TLS:Geekなぺーじ

jovi0608.hatenablog.com

私の書評はどちらかというとユースケースに相当するもので、「こういう問題があって困ったので買って、無事に問題を解決しました」という風に読んでもらうといいのではないかと思います。

あと、書評とは書いていますが、まだ私はこの書籍を全て読んだわけではなく、業務に関連して参照した部分+αくらいしか読んでないことも記載しておきます。

何を必要として『プロフェッショナルSSL/TLS』を買ったのか?

上でも引用したように、業務でSSL証明書を扱う必要のある作業を担当することになり、元々のSSL/TLSの知識があやふやな状態でやっていたら仕事が進まなかったのでそれを解消するために買いました。

担当した業務についてもう少し具体的に書くと、Apache Kafkaを利用したプロダクトがあるのですが、KafkaがSSLを利用*2している箇所があり、そこに必要な証明書の設定をgradleでしていたのをopensslにしてシンプルにするという業務でした。

ここで問題になったのが、何回も述べているように、私の元々のSSL/TLS知識があやふやなことでした。

今回担当した業務では「既存の設定のフローをシンプルにする」というものでしたが、この既存の設定の仕組みが割と複雑で、まずそこを理解してシンプルにするところで難儀していたのに加え、SSL/TLS関連の知識があやふやだったせいで「そもそもどの設定を変更すればいいのか、あるいはいけないのか」ということが分からず、既存の設定のフローをシンプルにする前の段階で詰まることが業務初日に多発していました。

ここで「まずい、このまま行くと何も進捗が出ずに何日も経ってしまいそうだ」と思ったことと、元から「いつか買おう」と思っていたことが重なり、『プロフェッショナルSSL/TLS』をラムダノートさんのサイトに行って即購入したという流れになります。

『プロフェッショナルSSL/TLS』のどのあたりが役に立ったのか?

個人的にこの『プロフェッショナルSSL/TLS』という書籍が素晴らしいと思う点の一つは、「そもそも証明書とは何か、使用されているプロトコルは何か、それらがどういう風に使われているのかといった、SSL/TLS関連の全体的な知識」と「opensslコマンドを使ってCSRを生成するといった、より実装や具体的な作業に近づいた知識」の両方がちゃんとした分量でまとめられていて、自分の求めている情報がどちらの種類であっても引き出しやすくなるように章立てられていることです。

私みたいにSSL/TLSの知識があやふやな人がインターネット上のリソースだけでSSL/TLSに関することを調べようとすると、以下のような問題にぶち当たると思います。

  • 自分が分からなくなっている問題がSSL/TLSの全体的な知識を要求するものなのか、それとももっと実装に寄った具体的な知識なのかが判別付かない
    • 判別が就かない位なので、ネット上のリソースの正しさが判断できない
  • SSL/TLSに関して自分が抱える問題を解決してくれる情報が各サイトに散らばっていて、かき集めるだけでも一苦労

実際、私は前職でサイトのHTTPS化をする際に(余力がなかったので)ネット上だけでSSL証明書に関する事項を調べましたが、上記の問題に結構ぶち当たって時間を使ってしまった記憶があります。

それに比べると、この『プロフェッショナルSSL/TLS』は一冊手元にあるだけで疑問に思った点をすぐに調べることが出来、調べた点に関連しそうな情報も書籍内のみで少なくとも概要は知ることが出来るようになっていて助かりました。

私の業務の場合で言うと、既存の設定フローで証明書にAuthority Information Accessの情報を追加しているところがあったのですが、そもそも証明書のフィールド自体の知識がなかったので、「3.3.1 証明書のフィールド」と「3.3.2 証明書の拡張」のセクションで書かれている知識が非常に役立ちました。

加えて、実際に設定フローを変更する際、CAを立てて自分の望む設定で証明書を発行したり署名する際に必要なopensslの具体的なコマンドや設定ファイルの書き方などについては、「11.2 鍵と証明書の管理」と「11.4 プライベートCAを作る」に記載されていることをそのまま活用できました*3

私は今回使いませんでしたが、ApacheやNginxで設定する場合などの章もある*4ので、そういう知識が必要な業務でも十分役に立つと思います。

まとめ

最初にも書いたとおり、「『プロフェッショナルSSL/TLS』、良い本です」というのが感想です。

私みたいに「SSL/TLSの知識があやふやなのに業務で急に必要になった!」という人は、ネット上のリソースだけで消耗しそうになったら、「この本の購入を検討した方が結果的に安上がりになるかも」ということを頭の片隅にでも置いておくといいでしょうね。

安くはない書籍なので、会社のお金を使って購入するのもいいと思います。

*1:といってもチケット単位のそれほど大きくないものでしたが

*2:公式ドキュメントだとこのあたりの話です

*3:opensslのコマンドに関しては多少知りたいことが書かれてなかったのでmanコマンドによるヘルプと他サイトに記載された情報でカバーしています。

*4:これらの設定に関してはIPAが発行している「SSL/TLS暗号設定ガイドライン」で足りる場合も多いかと思いますが。

最近こんなことを勉強してます

一昨年は1月ごとにやったことをまとめた記事を9月くらいまではやっていたんですが、もう今年は見る影もないので不甲斐ないですね。

前回から進捗があったわけではないのですが、何かしら理由をつけてアウトプットしないと知識の活用の巡り的によろしくなくなってきているので無理矢理ひねり出します。

前回の記事はこんなところです。

takuan-osho.hatenablog.com

takuan-osho.hatenablog.com

仕事の関係で学んでいること

Kafka(の触り)

前回Kafkaについて触れたときにも少し書きましたが、仕事の関係でKafkaを使う機会が増えてきていて、少なくともアーキテクチャの理解と軽い使い方くらいはおさえておかないと意味不明になってしまうので、引き続き勉強しています。

とはいっても、プライベートの時間で学ぶのは中々キツい題材なので、仕事を通して学んでいる最中です。

一番の学習リソースは会社のプロダクトと"Kafka: The Definitive Guide"です。特に後者は全体像から実際の使い方まで説明してくれているので重宝しています。

とはいってもまだ最初の方しか読んでないんですけどね。

SSL/TLSの基本から真っ当なことまで

業務でSSL証明書周りの作業をしていて、今まで穴だらけだったSSL/TLSの知識がむっちゃ足を引っ張っている現状だったので、以下の書籍を買いました。

プロフェッショナルSSL/TLS(紙書籍+電子書籍)www.lambdanote.com

前から欲しかった本なので買うきっかけができてよかったと思います。

まだ1/4も読めていないですが、それでも十分仕事に活かせているので原著の作者と翻訳者とラムダノートさんありがとう、という気持ちです。

前職でSSL証明書を取得する必要があったときにネットのリソースだけでSSL/TLS周りを勉強しましたが、知りたいことを探していても古かったりして本当に正しいのか逐一調べながらやっていたのに対して学べなかった経験からすると、SSL/TLSの勉強をしたかったらさっさとこの本を買って勉強した方が時間の節約になっていいと思いますね。

Elasticsearch / Kibana

これは学んでいるというよりかは学びたいこと。ちょうどいい書籍が出たみたいなので買って勉強したいですね。

データ分析基盤構築入門[Fluentd、Elasticsearch、Kibanaによるログ収集と可視化]

データ分析基盤構築入門[Fluentd、Elasticsearch、Kibanaによるログ収集と可視化]

プライベートで適当に学んでいること

OCaml

"Real World OCaml"を使って勉強しています。実務に使うというよりかは関数型言語を学んで教養をつけるという意味合いで。

Real World OCaml

Real World OCaml

現在は5章のField Punningまで行きました。全23章なのでまだまだですね。

ただ、勉強していく中でかなり気に入ってきているので、何かしら簡単なコマンドラインツールを一回OCamlで作ってみたいですね。それを皮切りにして何かやってみたい気持ちもあります。

今からOCamlに興味を持った方、書籍をやるのもいいですが、第2版のページが(まだ途中とはいえ)できているので、そちらを使って勉強してみるといいと思います。

Real World OCaml

(Linuxの)基礎

完全に止まっていた『詳解システムパフォーマンス』の読書を再開しました。

詳解 システム・パフォーマンス

詳解 システム・パフォーマンス

とはいっても、微々たる進捗でしか進んでいないのでいつになったら終わることやら…

この書籍は基礎力が付くと思うのですが、即効で効果を発揮するタイプの書籍ではないと思うので、効果が早めに出そうな以下の書籍も最近買って読んでいます。

標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド

標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド

業務で相手にするOSがCentOSなことと、そろそろsystemdとか押さえておきたいことと、そもそもLinuxのことで知らないことがたくさんあるので、本屋でCentOS 7を対象にした本を吟味して、一番よさそうなこれを選べました。『詳解システムパフォーマンス』に負けず劣らずな厚さと重さで大変です。

あとディープラーニングとか機械学習も勉強しているといえばしてるのですが、色々詰まったりできていないことが多いので、別の機会にまとめて記事にしたいです。

以上。

PyCon JP 2017に参加してきました (1日目) #pyconjp

前回の記事で書いたチュートリアルに引き続き、PyCon JP 2017のカンファレンス本体(1日目)に参加してきました。前回の記事はこちら。

takuan-osho.hatenablog.com

PyCon JP 2017のサイトはこちら。

pycon.jp

いつものパターンだと記事の内容をしっかりしようとし過ぎて時間かけすぎて結局アップしないまま終わってしまうので、後で随時内容を更新できるようにして、取りあえず記事をアップするところからやってみるつもり。

聞いたセッション

キーノート


201_101_Opening〜Keynote Peter Wang

初日のキーノートはPeter Wangさんによるもの。Anacondaで有名なContinuum Analyticsの共同設立者でCTOの方だそうです。

観測範囲によるバイアスが強いだけなのかもしれませんが、Anacondaを導入することで却って環境構築周りでトラブルを抱えるケースをたびたび見かけることがあったのと、以下の記事で山口さんが触れているようなPythonのパッケージ管理ツール周りの話を事前に知っていたこともあり、何かパッケージング周りで言及があるかなー?なんて思いながら聞いていました*1

ymotongpoo.hatenablog.com

そんなことを考えていたけれど、下手をしたら喧嘩を売ってしまうようにしか聞こえない感じでしか質問できない英語力なのでどうしたものかなー、誰か聞いてくれないかなーなんて思っていたら、そんな質問をドンピシャでしてくれた人がいました。「質問した人、誰だろう?」と思っていたら、後でTwitterのタイムラインを見たところ、その質問をしたのは@chezouさんでした。

medium.com

以前からためになるブログ記事を書いていたり、時々Twitter上でやり取りさせてもらったことがあったのでchezouさんのことは知っていたのですが、現実世界で会うことは今までなかったので「あの人がchezouさんだったのか!」と一人心の中で驚いていました。

詳しくは全体の感想を書く時に触れたいのですが、1日目終わりの懇親会でchezouさんにリアルでご挨拶できて楽しかったです。

Industrial Test Automation with Asyncio


201_102_Industrial Test Automation with Asyncio_Justus Perlwitz

  • 英語は聞きやすいタイプの人だったはずなのに上手く聞き取れなかったのが心残り
  • 話してたのはAsyncioの基本的なところで終わっていたので、もう少し応用的なことを聞きたかった自分としては物足りないところもあった
  • ボトルネックとなっているところがネットワーク由来かCPU由来かといった話は基本的ながらも普段自分がちゃんと意識できているとは言い難いところなので、復習したい

今(2017/09/21現在)、参加当時のことをメモを見ながらYouTubeを見返しながら気づいたけれど、話者が英語の場合、公式に字幕がなくてもYouTubeの自動生成字幕でかなりの部分がカバーできているっぽいので、今後英語のセッションでもYouTubeにアップされているなら見返そうかなという気分になりました。

after VOEZ launch: how to resolve problems of mobile game server development and service maintenance


201_104_after VOEZ launch: how to resolve problems of mobile game server …_郭 学聡 (Hsueh-Tsung Kuo)

  • 本格的なゲーム開発したことはなかったので本当の難しさを実感できるわけではなかったですが、「キャッシュを友好的に使う」など、真っ当な話が多くてよかったですね
  • 発表の最初の方で登壇者が関わったギャルゲ(?)のティーザー流してたのが印象的でした

len()関数がオブジェクトの長さを手にいれる仕組み


203_104_len()関数がオブジェクトの長さを手にいれる仕組み_Takayuki Shimizukawa

  • 凄く勉強になりました(小学生的な感想)
  • ただ、これはlv1ではないのでは…
  • この __len__ とか __call__ とか、結構長くPython使っているのにまだ押さえ切れてないのでちゃんとどこかで知識を埋めておかないとなあ…なんて思いながら聞いてました。

Secrets of a WSGI master


201_108_Secrets of a WSGI master._Graham Dumpleton

  • 参加していたときは壊滅的に英語が聞き取れなくて死んでました。リスニング力高めたい…
  • YouTubeには自動生成字幕機能があることを再認識したので、字幕使いながら後で見直したいですね

感じたこと

  • 帰宅した段階で各セッションの録画を見られるのはやはり正義
    • PythonでOAuth『サーバ』を構築した話」と「Python機械学習によるWebセキュリティの自動化」、それぞれ聞きたかったのに他の聞きたい奴と被ってしまって聞けなかったので、後で見られる録画があるのは本当にありがたい
  • とはいえ、せっかく参加しているのだから何か登壇者に質問しておけば良かったと思った
  • 一応頑張って英語のセッションを中心に聴講しに行きましたが、リスニング力低くて理解できない部分が多くて自分のふがいなさを感じる
  • 外で休憩しているときにPythonに限らない話(放送大学Apache Kafkaの運用、OCamlの学習、英語の技術書は斜め読みできなくてツラいといったことなど)について雑談できて楽しかった

明日もボチボチ楽しく参加します。

*1:リスニング力低いので同時通訳の力万歳!と思いながら聞いてました

#pyconjp 2017のチュートリアル『Chainerで学ぶディープラーニング入門』に参加してきた

タイトルの通りですが、2017/09/07に開かれたPyCon JP 2017のチュートリアルに参加してきました。

参加したチュートリアルChainerで学ぶディープラーニング入門です。写真を撮っていい場所とかタイミングを見失ったので、環境構築について書いてあったホワイトボードをチュートリアルが終わった後に撮った一枚です。

IMG_0834

参加した感想としては、「既知のこともそれなりにあったけど、Chainer等を使って実務に活用しようとする時にポイントとなる所などを学べたりしたので、参加してみて良かった」というところですね。実際にChainerのコードをいじるよりも、データセットを適切な形にしてChainerに渡すところに時間を使うようになるということを少しでも体験できたので、今後何かChainerで何かやろうとしたときに役立てられそうだと思いました。

後、以前『ゼロから作るDeep Learning』を一通り読み通していたので、内容的に置いてけぼりをくらうこともなかったのが良かったんだと思います。

時間的制約や難易度調整の問題で数学成分が少なくなる(=細かいところの説明は省かれる)のはしょうがないですが、休み含めて8時間でやっていたことを考えると基本的なことから始めた割には密度が濃い内容で満足しました。

あと、個人的に非常に印象に残っていてためになったなあと思ったのは、講師の方の分かりやすい説明&口調でした。本業の方で有料のハンズオンセミナーを担当されているだけあって、分かりやすい構成の説明というだけでなく、喋り方も聞き取りやすいように意識してされているのか、自分も何かの機会に発表する時には参考にしたい喋り方でした。

最初見たときは満員で参加する気も無かったのですが、参加人数増員の知らせをたまたま見た後急に参加したくなって参加したチュートリアルでしたが、満足度高く参加できて良かったです。

…本当はコードも含めたもっと具体的なことを書きたいなと思いつつ、まだ理解が足りないので今後の記事で何かしら今回学んだことを活かしたアウトプットができればいいなあ、なんて感じです。

AWSのELBを利用した際のProxy Protocolサポートについて調べたことをまとめる

最近仕事でELBとその後段にあるnginxに対してProxy Protocolなるものの設定をする必要があって色々調べたので、せっかくだから自分のブログに備忘録として記録を残すことにします。自分が携わっている業務固有の情報が特にあるわけでもないので。

何故この対応をする必要が出てきたか?

諸事情で以下のブログ記事と同じくTCP(443)でロードバランシングをしているELBでリクエストを最初に受け取っている環境があり、この環境下ではELB配下にあるnginxのアクセスログにリクエストの送信元IPアドレスが記録されていないことが判明して不便だったので、それの対処をする必要が出てきたからです。

blog.livedoor.jp

送信元IPアドレスが記録されていなかった原因と対処法

上記ブログ記事と同じ内容になってしまうのですが、原因を挙げると以下のようになります。

  • AWSのELBはHTTP/HTTPSでロードバランシングする時はX-Forwarded-Forヘッダがサポートされるが、TCPロードバランシングする時はX-Forwarded-Forヘッダはサポートされないので、そのままだと送信元IPアドレスを伝えなくなってしまっていたから
  • この場合、AWSのELBと後段のnginxでProxy Protocolの設定を有効にする必要があり、どちらもその設定を有効化していなかったため

要はELB, nginxともにProxy Protocolの設定を有効にすれば解決、ということですね。ここに辿り着くまでに結構時間がかかってしまったので反省。

Proxy Protocolをサポートするのに具体的に必要なこと

ぶっちゃけ以下の記事を読んで設定を変更すれば問題ないはずです。実際私も以下のドキュメントと記事を読んで設定しました。

docs.aws.amazon.com

developer.hatenastaff.com

www.nginx.com

一つ付け加えられるとしたら、上記の記事のELBの設定変更ではawscliを使っているのですが、terraformでELBの設定を管理している場合は aws_proxy_protocol_policy のresourceを設定することで可能になる、というところでしょうか。

www.terraform.io

後は各自の環境で必要な作業をして設定を変更してあげれば目的は達成できるはずです。

もうちょっとまともにコード書いてまとめようかと思ったのですが、時間かかっていつまでも記事をアップできなくなりそうなので、こんな感じで締めたいと思います。

Apache Kafkaの触りだけ勉強してみた

仕事の関係でApache Kafkaを扱えるようになる必要がだんだん出てきたので、これを機会にしてKafkaについて学び始めました。実際私がどれだけKafkaの運用をすることになるかは分からないんですけどね。

以下、適当に調べたことを適当に書き散らして記録を残します。主に書くことによる備忘録。

そもそもApache Kafkaって何?

一言で言うと「とにかく凄いキュー」と理解。公式サイト曰く、"Apache Kafka™ is a distributed streaming platform"とのことで、キューとしてだけ使われているのではないのですが、取りあえずの理解としてはそんなに間違っていないはず。

元々LinkedInで開発されて、その後Apacheに寄贈されて今も活発に開発が続けられているようです。

大量のデータを(リアルタイムに近い形で)扱う必要のある企業がよく使っているようです。

概念とか構成とか

いきなり公式サイトに行っても意味不明だと思ったので、一旦以下のような記事を読んだり手を動かしてみて、だいたいの概念を掴んだ後に公式サイトを見ました。

これらを見た後、公式サイトのQuickstartをやってみて何となく理解。

今までキューとかpub/subシステムを扱ったことがなかったので、Producer, Broker, Consumerと言われても何のことだか分からなかったのですが、上記ステップを踏む中で一応の理解は得ました。

Kafkaの構成としては中心にBrokerというやつがいて、そこがhubになってデータをやり取りしていて、Kafkaにデータを送りたいときはProducerを介してデータを送り、Kafkaからデータを取り出したいときはConsumerを介してデータを取得するという感じみたいです。

Kafka側で一旦データを受け持ち、データを取得する側がKafkaに問い合わせてデータを取得するので色々都合がいいみたいです。

で、Kafkaはクラスタを組める作りになっていて可用性が高いよ、ということらしく、そういったクラスタの情報とか何たらのデータをクラスタ間で持つようにApache Zookeeperを利用しているとのこと。

おすすめ学習ソース

で、最初の一歩はネット上のソースで何となく理解したのですが、いまいち理解しきれなくて色々学習ソースを探している中、有料ですがいい学習ソースを見つけました。

https://www.udemy.com/kafka-cluster-setup

しょっちゅう90%近いセールを行っていることで有名なUdemy*1ですが、上記Udemyのコースをたまたま見つけてやってみたところ、かなりよかったです。AWS上にZookeeperとKafkaのクラスタを組んで、Kafkaの運用の仕方だけでなく、Zookeeperはどういう情報を持っているかとか、Kafkaのパフォーマンスを確保するときに注意した方がいいことなども含めて教えてもらえるので、初心者の私としては学びがありました。

仕事で既にKafka運用している人には当たり前すぎる内容しかないと思うのですが、これから学び始めようとする人にはオススメできると思います。

講座内の"Configuring Kafka in production is AN ART"という文言が非常に印象に残っています。

最後に

Apache Kafka、いじっていたら何となく面白くなってきたので、仕事のことも視野に入れつつ、趣味でも少しずつ触ろうかなと思いました。

*1:今回のコースは90%オフだかの時に見つけて、1200円でゲットしました

Raspberry Piで電子工作(の最初の一歩)を学び始めた

経緯

こういうこと書くと外からどう見えるか分からないなーと思いつつ書くと、最近プログラミングとかソフトウェア関連の作業とか知識に対する学習意欲が逓減していて、何か面白そうかなと思って始めた勉強も長く続かないという状態でした。*1

何でそういう状態に陥ったのか考えてみたところ、一言で表現すれば「飽きた」というのが実情に近い気がしました。

そもそもソフトウェアエンジニアをする上で必要な基礎知識も技能も足りないのに「飽きた」とか言うと「何言ってんだ、こいつ?」と自分でも思ってしまうくらいですが、プログラミングを始めた当初の「学ぶ毎に新しいことができるようになって面白い!」という、できなかったことができるようになるときに感じる根源的な面白さ・楽しさをここ最近実感しづらくなってきたという風に言いかえると、少しはまともに聞こえるでしょうか?

そんなわけで、自分のモチベーションを復活させるため、ソフトウェアも絡むけどハードウェアも絡む電子工作に手を出し始めてみました。

教材

色々調べてみて評判が良かったこの本を使って勉強し始めました。

全10章中、まだ5章途中までしか進めてないですが、私みたいにRaspberry Piで電子工作始めようとする人にはオススメできる書籍だと思います。以下理由。

回路図の読み方や必要な知識などを最初から丁寧に教えてくれる

正確な情報・知識や根本的な箇所は省いているとは思うのですが、回路図の読み方に始まり、電流・電圧・抵抗やオームの法則の説明、「何故この回路を作る時にこの抵抗が必要なのか。この抵抗を外した場合、どうなるのか」といったことなど、物理(電気)の知識が頭からすっかり抜けた私のような人間でも無理なく理解できるように説明されていて、実際に回路をブレッドボード上に作る時もついていけるようになっているのが好印象です。

必要なキットがセットで揃えやすい

実はこの書籍で学ぶ前に何冊か本を買ってRaspberry Piで電子工作の勉強をしようと思って頓挫した経験があります。

何で頓挫したかというと以下2つの理由からです。

  • Raspberry Piが上手く起動しないとき、OSを正しくインストールできなかったことによる問題なのか、単に使っている機器(SDカードや無線LANモジュールなど)とRaspberry Piの相性の問題なのか、問題の切り分けが難しかったこと
  • 必要となる外部品の調達が個別になっていて面倒&どれを選べばいいか分からなかったこと

前者の問題は今回の『カラー図解 最新 Raspberry Piで学ぶ電子工作』でも解決しづらいところではありますが、後者は出版サイドが解決策を用意してくれています。

akizukidenshi.com

書籍の公式サポートページからもたどれるのですが、『カラー図解 最新 Raspberry Piで学ぶ電子工作』では書籍内の演習で必要になるパーツセットをまとめたものを秋月電子通商で売っているのです。

私のように電子工作初めての人間にとって、こういう「これだけ買っておけば取りあえずOK」というルートが示されているだけで労力を大幅カットできるので大助かりです。

もしこの書籍で電子工作を始めようという人は上記パーツセットを予め買っておいた方が手間が省けていいと思います。

あと、使うRaspberry Piに関して何も考えなくても無線でネットにつなげるRaspberry Pi 3 Model Bが(2017/07/23現在)個人的にはハマらなくてオススメです。最近日本でも発売したRaspberry Pi Zero Wでも標準で無線通信できるようですが、外部品が色々専用だったりするみたいなので自身がある方以外は避けた方が無難ですかね?と思ってます。

進捗

先に記したように、全10章中、まだ5章途中です。やったことを具体的に言うと、いわゆる「Lチカ」をプログラムとタクトスイッチで制御するところを終えたところですね。実際にプログラムでGPIO経由でON/OFFを制御できるのは面白いなと思いました。

この書籍で基本的なことを学んだら、Raspberry Piを使って温度・湿度をトリガーにした通知の仕組みとか、何か運動時に使える仕組みを作りたいと思ってます。

*1:機械学習とかですね。Courseraの勉強復活させたい…