読者です 読者をやめる 読者になる 読者になる

組み込み組合ぺんぺん草

technical notes...だったらいいな

感想「エンジニアのためのGitの教科書[上級編] Git内部の仕組みを理解する」

Overview

Gitの内部動作を説明した本です。 コマンドの説明はあまりなく、コマンド実行により内部ファイルがどのように更新されるか、あるいはされないかを説明した本です。

Details

Index

Section-01 Gitのバージョン管理の仕組みを知る〜初級編〜
Section-02 Gitのバージョン管理の仕組みを知る〜中級編〜
Section-03 Gitのバージョン管理の仕組みを知る〜上級編〜

Review

Gitの内部動作を説明した本です。なお、2016年9月時点では電子書籍のみの発売となっています。

関連書籍に「エンジニアのためのGitの教科書 実践で使える!バージョン管理とチーム開発手法」がありますが、こちらはコマンドの使い方を説明した本です。

目次だけではさっぱりわからないので、以下に各章の概要をまとめてみますね。

  • Section-01
    • .git/以下の管理ファイル群について
  • Section-02
    • git initからその他コマンド実行において、各管理ファイルがどのように更新されるか
  • Section-03
    • git gcの動作
    • ./git/indexファイルの中身をGitのソースコードを参照しつつ確認する
    • Gitの低レイヤコマンドを用いて、git addgit commitを実装してみる

Gitでは、各ワーキングディレクトリを管理するためのファイルは.git/以下に格納されています。この中の各ファイルの説明と、各種コマンド実行時にこれらファイルがどのように更新されるかをみていきます。

ですので、使い方を知りたい、あるいは使えればそれでいい、といった方は不向きですね。Gitそのものに少々手を入れたい場合の予備調査としてや、内部構造マニアwなどにはオススメです。あとは、git commitなどの高レイヤコマンドを構成するための低レイヤコマンド群についても軽く触れられているので、何かトリッキーなことをしたい方、などでしょうか。

最後まで読んでみて思ったのが、普段からGitを使っているにも関わらず、意外と知らないコマンドがあるな、ということでした。一人プロジェクトだったり、複数人でも分担がほぼ独立している場合は、commitpush程度で概ね事足りるものですしね。

せっかくなので、今後別のGitコマンドを網羅したような書籍も読んでみたいと思います。

感想「数学の大統一に挑む」

Overview

数学の読み物です。数学に関する解説ではなく、著者が著者の人生と数学への熱い思いを叫んでいる本ですw

Details

Index

はじめに 隠されたつながりを探して
第1章 人はいかにして数学者になるのか?
第2章 その数学がクォークを発見した
第3章 五番目の問題
第4章 寒さと逆境にたち向かう研究所
第5章 ブレイド
第6章 独裁者の流儀
第7章 大統一理論
第8章 「フェルマーの最終定理
第9章 ロゼッタストーン
第10章 次元の影
第11章 日本の数学者の論文から着想を得る
第12章 泌尿器科の診断と数学の関係
第13章 ハーバードからの招聘
第14章 「層」という考え方
第15章 ひとつの架け橋をかける
第16章 量子物理学の双対性
第17章 物理学者は数学者の地平を再発見する
第18章 愛の数式を探して
エピローグ われわれの旅に終わりはない

Review

本書は大きく分けて以下の2つで構成されています。

  1. 数学的な話。ただし解説はあまりない
  2. 著者やその他数学者をとりまくロシア情勢

いずれも著者視点でそれぞれの思いのたけをありったけぶつけられた結果が本書ですw 大統一に向けて、最初はそれぞれ関連が見出せなかった分野を個々にさらっと説明しつつ、著者の波乱の人生の中でじわじわと関連付けられていく様を眺める本、というイメージでしょうか。

それなりに数学を修めた方が、大統一に向けた具体的な知識を得るには不足ですし、 かといってそれほど詳しくない方が、概要だけでも掴みたい、というには難しすぎます。 ですので、完全に読み物として割り切った方がいいですね。私は序盤は数学的内容も理解しようと努めましたが、途中で雰囲気を掴む程度に逃げました...。難しい!

ロシア情勢と著者の人生については、面白く読めました。 著者はユダヤの血を引いているのですが、それに伴う差別を多々受けます。 その中で理解ある人や様々な抜け道(?)を通して数学の研鑽を積んでいきます。 しかし更なる研究のために国外に出ることは難しく、行き詰まりも感じていた頃、 ペレストロイカが発生、人生の選択肢が大幅に増え、さらに研鑽を積んでいく、 という流れです。

当時のロシアの閉鎖的な体制は、知識としては知っていましたが、 ここまでとは、と興味深く読みました。

タイトルが「数学の大統一」と書いてあるので、数学的な解説が初心者にも易しく書いてあるのかな?と誤解しましたが、これはこれで面白かったです。

感想「Amazon English」

Overview

Amazonによる英語のリスニングとリーディングを強化するためのアプリです

Details

Review

Amazonが英語習得のためのアプリをリリースしたとのことで、数ヶ月試してみました。

Amazon English内では、ユーザの実力に応じて、以下の5段階の教材が用意されています。

  1. Elementary(TOEIC:225-550、英検:準2級、TOEFL IBT:32-42)
  2. Pre-INtermediate(TOEIC:551-670、英検:2級、TOEFL IBT:43-61)
  3. Intermediate(TOEIC:671-785、英検:2級A、TOEFL IBT:62-72)
  4. Upper-Intermediate(TOEIC:768-945、英検:準1級、TOEFL IBT:73-95)
  5. Advanced(TOEIC:946-990、英検:1級、TOEFL IBT:96-120)

ただし、2016年9月現在では、各教材に設定されたレベルと、実際の難易度に少し乖離が見られるものがちらほらあります。 今後、ユーザによる教材終了時のレビューが反映されることに期待です。

初めに私の英語力ですが、技術的な文書の読み書きはぼちぼちといったところです。 ただし、日本語でいうところの丁寧な表現はできていないかもしれません。 私自身は可能な限り失礼にならない丁寧な表現で「これをお願いします」と伝えることを目指してはいますが、 ネイティブの人が読むと、「これやれ」のように伝わっている可能性はあります...。

さらに、話すことや聴くことは壊滅的ですね。 私の特性(?)として、耳からの理解が遅いのと、そもそも英語で話す機会が全くないので、このあたりは成長していないです。

そんな私のAmazon English内でのレベルですが、ひとまず2番目のPre-Intermediateで初めてみました。

結果、たまに意味が分からない単語が出てきますが、まずまず聞き取れている状態です。小説のような物語であれば、ほぼ問題ないです。 ただ、ラジオ番組のようなものは、スピードが早く少し辛かったです。 さらに、ざっくばらんな会話形式では、文法にきちんと従った美しい文章で話してくれるわけではないので、読むだけでも大変です。 本当の英会話は後者が大半なので、テレビ番組などを英語で楽しむのは中々大変ですね。

とはいえ、教材の数が豊富なので、5分程度の短いものから数時間程度の長いものまで、さらに自分の好みにあった内容のものを選ぶことができ、飽きることはなく楽しくリスニングができるのは大変大きな長所だと思います。

Amazon Englishでは1日15分以上のリスニングを継続して行うことを推奨しています。 私は今の所ほぼ毎日取り組むことができています。 月額800円に見合っているかは難しいところですが、飽き性な私が興味のない題材のリスニングを渋々行うよりも、少々高くてもこちらの方が効果はありそうです。 もうしばらく続けてみたいと思います。

感想「ドキュメント作成システム構築ガイド」

Overview

ドキュメントに纏わる作業のシステム化にあたり、必要な以下のツールの使用方法を解説した本です。

ツール名 用途
Git ドキュメントのバージョン管理
AsciiDoc、Markdown ドキュメントのフォーマット
RedPen ドキュメントチェック
Asciidoctor ドキュメント生成、変換
Travis 継続的インテグレーション支援ツール

Details

Index

第1部 モダンなドキュメント作成
  第1章 ドキュメンテーション入門
  第2章 利用するツールの準備
  第3章 Markdownによるシンプルなドキュメントの作成
  第4章 GitHubによるドキュメントの管理
  第5章 RedPenによるドキュメントの自動チェック
第2部 本格的なドキュメントの作成
  第6章 AsciiDocによるドキュメントの作成
  第7章 Asciidoctorによる出力フォーマットへの変換
  第8章 Asciidoctorによるスタイルの調整
  第9章 ドキュメント作成システムの構築
Appendix1 AsciidoctorのHTMLスタイル設定

Review

何か製品を開発した際、ドキュメントは不可欠です。ドキュメントの品質が高ければ、ユーザは製品をより理解することができます。そしてその結果、製品が広まることもあると思います。

ここで、小規模な開発であれば、ドキュメントの作成は一人でもなんとかなるでしょう。しかし大規模な開発であれば、ドキュメントの執筆も複数人で行うことになります。その場合、ドキュメント内で用いられる語句などの全体的な統一が必要となります。

また開発の規模のいかんにかかわらず、製品のアップデートに伴いドキュメントの更新が必要となります。製品の最初のリリース時は、ドキュメント作成にまとまったを割いて、且つそれなりのモチベーションをもって行われると思います。しかし製品のアップデート、しかもバグフィックスだったりすると、もう億劫になりがちです。しかもよくあるパターンとして、ドキュメント作業は最後の最後に手をつけ、時間に余裕があるとは言えない状況であることが多いのではないでしょうか?

そんな中でもドキュメントの品質を維持するために、本書ではドキュメント作成システムの構築をすすめます。ドキュメント作成システムは、バージョン管理ツールやドキュメント検査ツール、継続的インテグレーション支援ツールなどから構成されます。 一度システムを構成してしまえば、億劫なドキュメント更新の心理的敷居も多少は下がりますし、コード修正とドキュメント更新をセットで行うことも容易になるかと思います。

なお、継続的インテグレーションについては本書中で以下の書籍が推奨されています。

本書の中で主に使用しているツールについて、どの程度触れられているかは、以下の通りです。

  • Git
    • ご存知バージョン管理ツールです
    • インストールから設定まで触れています
    • GitHubの使用方法も触れています
  • Markdown
    • ドキュメント作成の際に用いる言語です。メジャーですね
    • 基本的な書式について一通り触れています
  • AsciiDoc
    • Markdown同様ドキュメント作成に用いる言語です
    • Markdownよりマイナーではありますが、Markdownよりも多機能で痒いところに手が届きます
  • Asciidoctor
    • AsciiDocで記述されたドキュメント用の文書生成ツールです
    • HTMLやPDFなどに変換してくれます
    • インストールから使用方法まで触れています
  • RedPen
    • 文書検査ツールです
    • 文体や用語のブレを検出してくれます
    • また細かい設定も可能なので、設定を積み上げていくことで、より精度をあげていくことができます
    • インストールから使用方法まで触れています
  • Travis
    • 継続的インテグレーション支援ツールです。Jenkinsは導入や維持が大変ですしね(ただし非公開で使用する場合は有償です)
    • ログインから設定、push後実際にテストが行われるところまで触れています

本書では上述の通り、ツールのインストールや設定、使用例などを記述しています。またよくあるドキュメント作成や修正の流れを説明しています。よってドキュメントの書き方などを説明しているものではありません。個々のツールのインストール方法などはWeb上で調べることも可能ですが、ドキュメント作成「システム」としてまとめられているので、様々なツールの組み合わせに悩むことなく始めることができます。現状のドキュメント作業にかかる問題解消のために試してみる場合の導入として最適だと思います。

感想「数学ガールの秘密ノート/整数で遊ぼう」

Overview

数学ガールの秘密ノートの第二弾、「整数であそぼう」です。

Details

Index

  1. 足しても引いても同じ数
  2. 選べないのに見える数
  3. 数当てマジックと31の謎
  4. 数学的帰納法
  5. ぐるぐるワンの作り方

Review

いつも「そんな視点があったのか!」と目から鱗がボロボロな本シリーズですが、今回はプログラマ(特に低レイヤ方面)からするとそこまでではなかった印象です。N進数や剰余は、よくある慣れ親しんだテクニックですしね。

ただ、解法としては慣れ親しんでいても、この世界に不慣れな人にも親しみやすい形で出題しているのは素晴らしいと感じました。10進数と時計の12、60進数以外に縁がなかった場合、これらを理解するのに頭が爆発しそうになるんですよね。値としては10進数と同じことを表しているのに、底が変わると見える世界も変わるという感覚を掴むことが難しくて。それを落ち着いて丁寧にときほぐしていて、感動しました。
現在、こどもが時計の読み方を勉強しています。時間の足し算引き算が出てきたときに参考にしたいと思います。

数学ガールシリーズは非常に読みやすく理解しやすいことで有名ですが、唯一辛い点は目次から内容がいまいち掴みきれない点でしょうか。目次から内容が汲み取れきれなくとも、たっぷりの親しみやすさから読んでしまうのですけれども。

感想「Tarzan (ターザン) 2016年 2月11日号」

運動をしない方々に。

 

私は仕事の都合上、座りっぱなしです。そして猫背気味な上に、体を動かすことが嫌いです。どう考えても体によくありません。

体によくないことはとりあえずさておいても、この状態では体が凝り固まってしまい、倦怠感が凄まじいです。すると、肝心の仕事も丁寧さに欠けてきます。

これはよろしくないと、まずは簡単なストレッチ程度を試したいと考えていました。ちょうどTarzanで特集が組まれていたので購入。

 

内容は、今流行りの肩甲骨剥がしと、骨盤ほぐしです。それぞれ、簡単なテストで自分の体の傾向を探り、それぞれに適切な体の動かし方の提案がなされています。テストも実際の動かし方もさほど手間ではなさそうです。本格的なずぼらの私ですが、仕事中は座りながらできる方法を試し、横になった状態で行うものに関しては寝る前のひとときに、という感じで、1つづつ試しています。いっぺんに増やすと三日坊主コース行きです...。

 

冒頭でも述べた通り、猫背気味なので、さぞかし肩甲骨は剥がれまくりに違いない!と思っていましたが、意外とテストは全て問題なし。拍子抜け。

ただ、あまり積極的にごりごり動かす箇所ではないので、気持ちいいです。頭をすっきりさせるためにはいいですね。

 

体の調子は人それぞれですが、まぁ気分転換にどうぞ。

感想「Webを支える技術 ── HTTP,URI,HTML,そしてREST」

有名な本ですね。

 

2010年発行なので、新しいとはいえませんが、基礎的な技術の本なので、現時点でも特に問題にならないと思います。

内容は、HTTPについて一通りの説明を行った後、HTMLやRESTについても述べられています。また途中、TCP/IPについても簡単に触れているので、初心者でも安心です。

そして一番の目玉は、RESTを意識したWebAPIの実装の説明でしょう。本書では、郵便番号検索サービスを実装するにあたり、どのようにリソースの分割を行い、そしてどのデータフォーマットを、どういった理由で選択するのかを、具体的に説明しています。新規にWebAPIを実装する必要があるのだが、どういった手段や技術を用いればよいのか判断、決定する足がかりが欲しい、という時に有用かと思われます。

ただ、通信方式としてHTTP(REST)を用いる前提であるため、別の通信方式(JOSN RPCなど)には全く触れられていません。WebAPI実装時にはこれらも検討する必要もあると思われるので、こちらについては別途Google先生にお世話になるなどの必要があると思います。

 

認証については、Basci認証やDigest認証、WSSE認証の概要や動作の説明が駆け足気味でなされています。具体的な実装、設定方法などには触れられていませんので、それらについては別途調べたり試す必要があります。

 

電子版は、以下にて購入できます。フォーマットは、PDFとEPUBが用意されています。

gihyo.jp