Kannkyo Day's

ソフトウェアエンジニアの日常系ブログ

2019年5月の読書メーター

5月の読書メーター
読んだ本の数:8
読んだページ数:2379
ナイス数:199

ザ・フォロワーシップ―上司を動かす賢い部下の教科書ザ・フォロワーシップ―上司を動かす賢い部下の教科書感想
フォロワーシップとは、リーダーを支える部下の姿勢のこと。リーダーシップの逆の概念。特に日本によくあるボトムアップ型の組織では有用。本の内容としては結構殺伐としていて、辞職、虐待や内部告発にも触れている。ある意味非常に実務的。リーダーにとっては耳の痛い話もちらほら出てくる。どっちかというとリーダーに読ませたい本かな。
読了日:05月14日 著者:アイラ・チャレフ
アメリカ陸軍統帥法―リーダーシップと管理の52条アメリカ陸軍統帥法―リーダーシップと管理の52条感想
第二次大戦、朝鮮、ベトナムの各戦争に従軍し、冷戦期を生きた頑固一徹な陸軍将校による統帥の極意。その真髄は「厳しいがフェア、そして温かい人間」であることである。現代に生きる身からすると厳しすぎて少々時代遅れな感もあるが、死線を戦い抜いた戦士としての含蓄がある。部下から死にたくないと泣きつかれた時に、瞬時に適切な判断できるか?私にはムリだが、この本には1つの答えがある。
読了日:05月13日 著者:エドワード・M.,Jr. フラナガン
トヨタ生産方式――脱規模の経営をめざしてトヨタ生産方式――脱規模の経営をめざして感想
OODAループの本で紹介されてたので読んでみた。おおむね公知のトヨタ生産方式に関する話。ただし、トヨタ生産方式の源流がフォード一世にあるというのはとても面白い。アメリカから出て、日本で育ち、またアメリカに帰ってきたということかな。
読了日:05月06日 著者:大野 耐一
詳説<統帥綱領> (PHP新書)詳説<統帥綱領> (PHP新書)感想
ビジネスで使えそうな普遍的なとこだけざっと読了。米海軍士官候補生教本と比すると、簡潔なるもやや内容に乏しく、教条的すぎるきらいがある。また、そのまま普遍的に使える内容に乏しく、具体的な軍事的場面を想定しすぎているように感ずる。
読了日:05月05日 著者:柘植久慶
日本中世史を見直す (平凡社ライブラリー)日本中世史を見直す (平凡社ライブラリー)感想
付録についてる誡太子書の翻字だけ読了。誡太子書は、14世紀初頭に花園上皇が近く即位する甥に宛てて書いた訓戒。即位ニュースで話題になってたので、仕事の参考になるかと思って読んでみた。その内容はおおむね儒教的な帝王学を語っており、万民の参考にはならない。ただ、民の苦しみを知らずにエスカレータ式に上に立つことに対して「恥ずかしくないのか?」と強烈に批判する様は、IT土木の一員としては身につまされるものがある。
読了日:05月05日 著者:佐藤 進一,笠松 宏至,網野 善彦
戦略の本質 (日経ビジネス人文庫)戦略の本質 (日経ビジネス人文庫)感想
8章以降を再読。メモを取りつつ読み返し。失敗の本質と比べると単純明快とは言い難く、筆者達もまえがきで明快さに欠く旨を歯切れ悪く言及している。もっとも戦略という複雑怪奇な概念に本質があるのであれば、これ以上に整理しようもない気がする。
読了日:05月05日 著者:野中 郁次郎,戸部 良一,鎌田 伸一,寺本 義也,杉乃尾 宜生,村井 友秀
失敗の本質―日本軍の組織論的研究 (中公文庫)失敗の本質―日本軍の組織論的研究 (中公文庫)感想
職務における具体的な場面を想定しつつ、二章以降を再読。OODAループ、アジャイル開発宣言やGoogle流仕事術と比すると、巨大組織の運営方法に主眼が置かれていた。エラくならないとなかなか使う場面がない気がする。
読了日:05月05日 著者:戸部 良一,寺本 義也,鎌田 伸一,杉之尾 孝生,村井 友秀,野中 郁次郎
戦術の本質  戦いには不変の原理・原則がある (サイエンス・アイ新書)戦術の本質 戦いには不変の原理・原則がある (サイエンス・アイ新書)感想
新たな仕事に取り組むにあたり再読。各個撃破を避けつつ任務を速やかに完遂するために、チームを陶冶する方法を模索。
読了日:05月03日 著者:木元 寛明

読書メーター

2019年4月の読書メーター

4月の読書メーター
読んだ本の数:4
読んだページ数:970
ナイス数:142

文明の衝突と21世紀の日本 (集英社新書)文明の衝突と21世紀の日本 (集英社新書)感想
平成最後の日、令和を迎えるにあたり再読。ハンチントンが言うように、中国の台頭に対して、日本は国家戦略の意思決定を遅らせてるように見える。平成の時代は、米国へのバンドワゴニング戦略で幕を閉じたが、令和の時代にはバランシング戦略に切り替えるのか、はたまた中国へのバンドワゴニングに切り替えるのか。
読了日:04月30日 著者:サミュエル・ハンチントン,鈴木 主税
五輪書 (講談社学術文庫)五輪書 (講談社学術文庫)感想
OODAループの本で紹介されてたので再読。「ある所をしりてなき所をしる、是則ち空也。」というのが宮本武蔵の思想の本質なんだろう。ドイツ人の職人気質にも通ずるところがある。
読了日:04月22日 著者:鎌田 茂雄
リーダーシップ 新装版―アメリカ海軍士官候補生読本リーダーシップ 新装版―アメリカ海軍士官候補生読本感想
リーダーシップを多角的に分析した稀有な本。たかだか254ページで、およそすべての観点からリーダーのあるべき姿を分析している。その内容は、組織メンバーの分析から、リーダー自身の節制、酒癖、食堂のマナーにまで至る。その心は、海軍とは生き方そのものであり、リーダーとは全人格的で一生の修練を要する難事、ということに尽きる。
読了日:04月20日 著者:アメリカ海軍協会
零戦 その誕生と栄光の記録 (角川文庫)零戦 その誕生と栄光の記録 (角川文庫)感想
付箋をつけたところだけ読み返した。読むたびに新しい発見があり、また励まされる。技術者としてわきまえるべき心構えの全てがこの本の中にあるように感じる。堀越の「困難を避けて通らなかったことは、のちのことを考えると正しい判断だった」との言は、全く心に突き刺さる。
読了日:04月10日 著者:堀越 二郎

読書メーター

Software Product Line(SPL) の用語集

用語集

英語 日本語 備考
Alternative 排他的必須特性(XOrと同義) フィーチャモデルの用語
Artefact 成果物
Basic configuration management 基本構成管理
Baseline management ベースライン管理 コンポーネントの逐次管理
Branch management ブランチ管理 ファイルの並行管理
Branched baseline management ブランチ・ベースライン管理 コンポーネントの並行管理
Branched composition management ブランチ合成管理 製品の並行管理
Component composition コンポーネント合成
Component コンポーネント
Composition 合成
Composition management 合成管理 製品の逐次管理
Context コンテクスト 製品の管理で用いられる手法
Customization component management カスタマイズ・コンポーネント管理 製品のドメイン空間管理
Customization management カスタマイズ管理 コンポーネントドメイン空間管理
Domain space ドメイン空間
Feature フィーチャ
Files ファイル
Mandatory 必須特性 フィーチャモデルの用語
Mass Customization 大量個別生産
Mutual Dependency 相互依存関係 フィーチャモデルの用語
Mutual Exclusion 相互排除関係 フィーチャモデルの用語
Optional 選択特性 フィーチャモデルの用語
Optional Alternative 排他的選択特性(Optional XOrと同義) フィーチャモデルの用語
Optional Or 選択的選択特性 フィーチャモデルの用語
Optional XOr 排他的選択特性(Optional Alternativeと同義) フィーチャモデルの用語
Or 選択的必須特性 フィーチャモデルの用語
Parallel time 並行
Portfolio management ポートフォリオ管理
Product 製品
Product family 製品系列 Product lineと同義
Product line 製品系列 Product familyと同義
Product management 製品管理
Product portfolio 製品ポートフォリオ
Sequential time 逐次
Shelf コンポーネント管理で用いられる手法
Variation management 可変管理
Version management バージョン管理 ファイルの逐次管理
Variability 可変性
Variant 変異体
Variation point 可変点
Variation point management 可変点管理 ファイルのドメイン空間管理
XOr 排他的必須特性(Alternativeと同義) フィーチャモデルの用語

参考文献

  1. Krueger, Charles W. "Variation Management for Software Production Lines," 37-48. Software Product Lines: Proceedings of the Second Software Product Line Conference (SPLC2). San Diego, CA, August 19-22, 2002. Berlin, Germany: Springer, 2002.
  2. Klaus Pohl, Günter Böckle, Frank van der Linden, 林好一(訳), 吉村健太郎(訳), 今関剛(訳), ソフトウェアプロダクトラインエンジニアリング―ソフトウェア製品系列開発の基礎と概念から技法まで, 2009.
  3. Kang, K.; Cohen, S.; Hess, J.; Nowak, W.; Peterson, S. (1990). Feature-Oriented Domain Analysis (FODA) Feasibility Study (PDF) (Report). Software Engineering Institute, Carnegie Mellon University. CMU/SEI-90-TR-21.

2018年の読書メーター

2018年の読書メーター
読んだ本の数:19
読んだページ数:5161
ナイス数:147

美しき誘い―他一篇 (岩波文庫 赤 424-4)美しき誘い―他一篇 (岩波文庫 赤 424-4)感想
シュトルムの柔らかく朗らかな筆致が、北ドイツの街に住む若い男女の恋を描く絵画的文学。

イギリスのシェイクスピアのような劇場的な愛とも、フランスのラファイエット夫人のようなとろける愛とも違う。強いて言うなら、武者小路実篤のような穏やかで素朴な恋を描いている。

原文のタイトル”Psyche” を「美しき誘い」と訳した国松考二の訳もまた素晴らしい。
読了日:12月11日 著者:シュトルム
ドメイン特化言語 パターンで学ぶDSLのベストプラクティス46項目ドメイン特化言語 パターンで学ぶDSLのベストプラクティス46項目感想
高名なプログラママーティン・ファウラー氏が手ずからドメイン特化言語DSL)のデザインパターンを詳解した本。

600ページ、57章に及ぶ多彩で詳細な解説。DSL以前のアーキテクチャである代替計算モデルとDSLの比較や、DSLの詳細な分類などDSLに関する考察を網羅的にまとめている。

内容は抽象的な議論が主なので、この本だけでDSLを実践することはほぼ不可能であるが、DSLの全体像を理解する上で欠かせない本である。
読了日:12月08日 著者:マーチン ファウラー,Martin Fowler
実践プログラミングDSL ドメイン特化言語の設計と実装のノウハウ (Programmer’s SELECTION)実践プログラミングDSL ドメイン特化言語の設計と実装のノウハウ (Programmer’s SELECTION)感想
比較的実践的なドメイン固有言語(DSL)の入門書。

JavaScalaRuby及びGroovy等の複数言語のDSLの実装方法を幅広く紹介する。DSL云々以前の基本的な文法の説明はしてくれないので、読者に要求される技術レベルは高い。

が、日本であまり普及していないDSLを幅広く知るには、最善の一冊。
読了日:12月08日 著者:Debasish Ghosh
現場で使える! TensorFlow開発入門 Kerasによる深層学習モデル構築手法 (AI & TECHNOLOGY)現場で使える! TensorFlow開発入門 Kerasによる深層学習モデル構築手法 (AI & TECHNOLOGY)感想
立ち読みで選んだ機械学習の本。たぶん、本当に現場で使えるのはこの本だけ。

この本のソースコードから、独自に画像認識のアルゴリズムも作れました。Tensorflow & Keras 最強!
読了日:11月13日 著者:太田 満久,須藤 広大,黒澤 匠雅,小田 大輔
GPSのしくみと応用技術―測位原理、受信データの詳細から応用製作まで (レベルアップ・シリーズ)GPSのしくみと応用技術―測位原理、受信データの詳細から応用製作まで (レベルアップ・シリーズ)
読了日:11月11日 著者:トランジスタ技術編集部
マンガでわかる 1日1回の腹筋でお腹を凹ませる方法 (IKEDA HEALTH BOOK)マンガでわかる 1日1回の腹筋でお腹を凹ませる方法 (IKEDA HEALTH BOOK)感想
なんだこの「これだけ腹筋」って。神かよ。筋肉が動きまくってんのがすげえわかる。これは効きそう!
読了日:11月09日 著者:中村 勝美
Pythonによるスクレイピング&機械学習 開発テクニック BeautifulSoup,scikit-learn,TensorFlowを使ってみようPythonによるスクレイピング&機械学習 開発テクニック BeautifulSoup,scikit-learn,TensorFlowを使ってみよう感想
実用性に富んだ実例。dockerを使った簡単な環境構築。機械学習で牛丼画像を自動判別するというユーモア。

とっかかりやすい一冊。
読了日:08月10日 著者:クジラ飛行机
ドイツ語史 (1974年)ドイツ語史 (1974年)
読了日:07月11日 著者:岩崎 英二郎,ペーター・フォン・ポーレンツ
わかりやすいGPS測量わかりやすいGPS測量
読了日:06月01日 著者:小白井 亮一
GPSのための実用プログラミングGPSのための実用プログラミング感想
読めば読むほど身にしみる。

平易な数式で基本事項だけをシンプルにまとめられている。また、C言語の実装例も豊富でソフトウェアエンジニアにとってもわかりやすい。
読了日:06月01日 著者:坂井 丈泰
Win32/64 APIシステムプログラミング―32/64ビットの共存Win32/64 APIシステムプログラミング―32/64ビットの共存感想
.Netが開発される以前の、太古の昔の技術。

スレッド管理とかメモリ管理とかWindowsアプリ開発で考えたくもない話のオンパレード。

今の時代に生まれてよかったー。
読了日:05月15日 著者:北山 洋幸
エンジニアのための開発生活ガイド―開発の秘訣からMBA取得まで (ブルーバックス)エンジニアのための開発生活ガイド―開発の秘訣からMBA取得まで (ブルーバックス)
読了日:02月28日 著者:加藤 ただし
エンジニアのためのGITの教科書 (WEB Engineer’s Books)エンジニアのためのGITの教科書 (WEB Engineer’s Books)感想
ちょっと基本的すぎた。本格的な場面で活用できるのは最後の50ページくらいか。最初の150ページくらいは初学者に熟読してほしい。
読了日:02月23日 著者:株式会社リクルートテクノロジーズ,株式会社リクルートマーケティングパートナーズ,河村 聖悟,太田 智彬,増田 佳太,山田 直樹,葛原 佑伍,大島 雅人,相野谷 直樹
GitLab実践ガイド (impress top gear)GitLab実践ガイド (impress top gear)感想
GitLabは単にGitリポジトリの管理ツールだと思っていた。しかし、GitLabはDevOpsを支えるConvOpsを実現しわチャット、デプロイメントパイプラインなどを含む複合的なツールであった。この本ではそういったさまざまな視点でGitLabを徹底的に活用する方法が示されている。
読了日:02月19日 著者:北山 晋吾
女生徒―他八篇 (1952年) (岩波文庫)女生徒―他八篇 (1952年) (岩波文庫)感想
澄み渡る湖のように繊細で、いくばくか神秘的な短編集。とりわけ「女房」は心温まる意外な結末が魅力的だ。
読了日:02月10日 著者:フラピエ
西郷南洲遺訓―附・手抄言志録及遺文 (岩波文庫)西郷南洲遺訓―附・手抄言志録及遺文 (岩波文庫)感想
明治維新を生きた豪傑、西郷隆盛の遺訓。「己れを足れりとせざるより、下々の言も聴き入るるもの也」など、現代でも通用するリーダシップの名言の宝庫。しかし、今日ではほとんど使われない古語も数を多く登場する難解な一冊でもある。

なお、「手抄言志録及遺文」以降はつまらなそうなので読み飛ばした。
読了日:02月09日 著者:
Spring Boot 2 プログラミング入門Spring Boot 2 プログラミング入門感想
まだ数少ない日本語のSpring Boot入門書。説明は詳細で丁寧。Java初心者でもわかりやすい。一方で、より深くSpring Bootを学びたい人にとっては物足りない。
読了日:02月08日 著者:掌田津耶乃
マイクロサービス入門 アーキテクチャと実装マイクロサービス入門 アーキテクチャと実装感想
マイクロサービスとは何か?という理論面から、どのようにデザイン、コーディングをするのか?といった実践面まで幅広い。実用的。
読了日:01月31日 著者:長瀬 嘉秀,田中 明,松本 哲也
宇宙ビジネス入門 NewSpace革命の全貌宇宙ビジネス入門 NewSpace革命の全貌感想
米国の宇宙ベンチャーの勃興。欧州の宇宙産業促進政策による猛烈な追い上げ。それに対して、我が国の宇宙産業の惨状は比較にもならない。しかしながら、草の根的に宇宙ベンチャーが立ち上がりつつあり、特色あるビジネスモデルも生まれつつある。

エンジニアとして、今何をしなければならないのかを考えさせられた。
読了日:01月03日 著者:石田 真康

読書メーター

2019年2月の読書メーター

2月の読書メーター
読んだ本の数:15
読んだページ数:4038
ナイス数:158

戦術学入門―戦術を理解するためのメモランダム (光人社NF文庫)戦術学入門―戦術を理解するためのメモランダム (光人社NF文庫)感想
元陸将補の自衛官幹部OBによる戦術学の入門書であり、防衛省自衛隊への痛烈な評論でもある。古今東西の数十冊の文献と自らの経験に基づき、戦術学の基礎と持論を展開する。とりわけ、世界最強の米国陸軍の最新のドクトリンを紹介している箇所は必見である。
読了日:02月28日 著者:木元 寛明
ケルトの神話―女神と英雄と妖精と (ちくま文庫)ケルトの神話―女神と英雄と妖精と (ちくま文庫)感想
ケルトの神話の本。英雄だけでなく個性豊かな女神達の「人間ドラマ」にも注目したい。ディルムッドをそそのかして駆け落ちし、最後はフィンと添い遂げたグラーニャのえぐさ。三人の弟とともに白鳥にされ、900年間アイルランドをさまよったフィノーラの悲哀。二人の王と正妻に翻弄されながら、三度生まれ変わり、最後はエオボス王と添い遂げた美女エーディン。人間顔負けの神々の人間ドラマをとくとご覧あれ。
読了日:02月24日 著者:井村 君江
オラクルマスター教科書 Bronze Oracle Database DBA12cオラクルマスター教科書 Bronze Oracle Database DBA12c感想
Oracle先生、ツール作りすぎで略語使いすぎだからね。昨今のone-stop的なツールを見習ってほしいな。システム安全性が高いのは理解できるけどこれはツライな。
読了日:02月22日 著者:株式会社システム・テクノロジー・アイ,林 優子
UMLモデリング教科書 UMLモデリングL2 第2版UMLモデリング教科書 UMLモデリングL2 第2版感想
割と簡単だが、下位資格のL1から受験しないといけないのと、上位資格のL3の情報が皆無な点が気になりますな…。
読了日:02月18日 著者:桐越 信一,国正 聡,竹政 昭利,照井 康真,橋本 大輔
宇宙ビジネスのための宇宙法入門宇宙ビジネスのための宇宙法入門感想
5人の専門家が、宇宙法を俯瞰に論じた入門書。宇宙法とは、宇宙空間とその利用に関する国内法および国際法の総称である。

本書では、1960年代の米ソ宇宙開発競争まで遡り、宇宙法の制定の歴史、各国の政治的駆け引き及び宇宙機器メーカーの紛争を法的側面から描く。そこには、宇宙空間という新たな領域の法的秩序をつくりあげようとする政治家や官僚達のひたむきな姿があった。

技術ばかりに目を向けがちなすべてのエンジニアに読んで欲しい本。
読了日:02月17日 著者:
空想より科学へ (岩波文庫 白 128-7)空想より科学へ (岩波文庫 白 128-7)感想
「資本の蓄積があればそれに照応して貧困の蓄積がある」ーーエンゲルスが提唱した社会主義思想は、当時の資本主義社会における諸問題に一石を投じるものであった。その問題の中には、今日の資本主義社会で解決策が見出されたものも少なくない。例えば、劣悪な労働環境の改善、労働者のための幼稚園の設置、あまりにも低い賃金などである。まだ改善の余地はあるが、政治上解決すべき課題と認識されていることは当時の資本主義社会との大きな違いである。資本主義社会の中で諸問題を解決することが可能だということをエンゲルスにも教えてあげたい。
読了日:02月13日 著者:フリードリッヒ・エンゲルス
人工衛星のひみつ (学研まんがでよくわかるシリーズ)人工衛星のひみつ (学研まんがでよくわかるシリーズ)感想
絵は小学生向け。内容は大学生向け。
読了日:02月11日 著者:
新・宇宙戦略概論 -宇宙・海洋・サイバーの国家戦略-新・宇宙戦略概論 -宇宙・海洋・サイバーの国家戦略-感想
政策立案の関係者から見た宇宙政策の資料集として非常に有益。本書では、一貫して、宇宙を国際公共財とみなし、国家戦略の一部としての宇宙戦略に言及している。その内容は宇宙のみならず、宇宙と同じ国際公共財であるサイバー、海洋及び航空にも及ぶ。また、巻末に付けられた日本の宇宙開発史は精緻かつ膨大。全般的に、書籍としての「組版」がイマイチで、可読性が著しく悪いことは難点であるが、第一級の資料集としてデスクに置いておきたい一冊。
読了日:02月11日 著者:坂本 規博(自民党 総合政策研究所),【出版社:科学情報出版】
オイディプス王 (岩波文庫)オイディプス王 (岩波文庫)感想
疑いようもなく古典悲劇作品の最高傑作。徐々に明らかになる真実、忍び寄る悲運。訳者のリズミカルな翻訳も相まって、ページがどんどん進み、引き込まれていく。知識として結末を知っているのに、物語は新鮮味を失っていない。悲劇的結末とは裏腹に、落語のような軽妙さのある名作。
読了日:02月10日 著者:ソポクレス
UIデザインの心理学―わかりやすさ・使いやすさの法則UIデザインの心理学―わかりやすさ・使いやすさの法則感想
心理学のみならず、脳科学や神経学的な知見を元に、優れたUI(ユーザーインターフェース)とは何かを論じた名著。本書は、多数の心理学等の論文を引用しつつも、UIの実装例とエンジニアが理解しやすい比喩を使って、具体的かつ実践的に説明している。エンジニアにとって、デザイナーとの会話の橋渡しとなりうる素晴らしい本である。
読了日:02月10日 著者:Jeff Johnson
賃金・価格・利潤 (国民文庫 21)賃金・価格・利潤 (国民文庫 21)感想
労働力の価値と賃金を切り離して考えた理論展開は、きわめて興味深い。一方で、今日では当たり前となった知的労働に対する考慮の欠如が認められる。すなわち、資本家は経営活動という労働をしており、筆者が主張した資本家の不払労働による搾取には当たらず、産業機械等の資本を作るのも労働力に他ならないので不払労働が増えているとも言えないのである。しかしながら、日本の幕末に当たる1865年に、ここまで理論的に主張を展開しているのは驚嘆に値する。
読了日:02月09日 著者:カール・マルクス
DevOps導入指南 Infrastructure as Codeでチーム開発・サービス運用を効率化する (DEV Engineer’s Books)DevOps導入指南 Infrastructure as Codeでチーム開発・サービス運用を効率化する (DEV Engineer’s Books)感想
読み終わってたけど登録し忘れてた。再読。 割とDevOps初期に出版された日本語文献。概念的なところからツールの使い方までカバー。ただし開発環境がSaaS前提なので、諸々の理由でSaaSを使えない人は悲しい気持ちになる。
読了日:02月06日 著者:河村 聖悟,北野 太郎,中山 貴尋,日下部 貴章,株式会社リクルートテクノロジーズ
チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)感想
すでに読み終わってて登録し忘れてた。再読。もはやソフトウェア業界の常識となったCI/CDの基礎知識からツールの使い方までトータルにサポートしてくれる一冊。SEにもPGにもおすすめできる。ただし、今となってはDevOpsに着目した本がいっぱいあるのでそっちのほうがモダンかも。
読了日:02月06日 著者:池田 尚史,藤倉 和明,井上 史彰
システムテスト自動化 標準ガイド (CodeZine BOOKS)システムテスト自動化 標準ガイド (CodeZine BOOKS)感想
とっくの昔に読み終えてたけど登録し忘れてて再読。かなり現場のニーズに即している。単に「自動化いいよー」だけじゃなくて、失敗した事例ややらないほうがいい場合も含めて語ってくれてるのがありがたい。また、自動化だけじゃなくて、テストウェアの構成管理や自動化に向けた組織の意思決定まで見据えてるところがGood。
読了日:02月06日 著者:Mark Fewster,Dorothy Graham,テスト自動化研究会,伊藤 望,玉川 紘子,長谷川 孝二,きょん
マイクロサービス入門 アーキテクチャと実装マイクロサービス入門 アーキテクチャと実装感想
読み直した。ふーむ、なんとなくはわかるが人に説明するのは難しいですな。
読了日:02月01日 著者:長瀬 嘉秀,田中 明,松本 哲也

読書メーター

Firebaseのつかいかた

はじめに

Firebaseの使い方の記事がいくつかあるが、バージョンが変わったせいか振る舞いが違っている・・・。 ので改めて使い方をまとめる。

インストール

$ npm install --global firebase-tools

ログイン

$ firebase login
? Allow Firebase to collect anonymous CLI usage and error reporting information? No

Visit this URL on any device to log in:
https://accounts.google.com/xxx
Waiting for authentication...

✔  Success! Logged in as xxxx@gmail.com

ローカル・プロジェクト新規作成

$ firebase init

     ######## #### ########  ######## ########     ###     ######  ########
     ##        ##  ##     ## ##       ##     ##  ##   ##  ##       ##
     ######    ##  ########  ######   ########  #########  ######  ######
     ##        ##  ##    ##  ##       ##     ## ##     ##       ## ##
     ##       #### ##     ## ######## ########  ##     ##  ######  ########

You're about to initialize a Firebase project in this directory:

  path/firebase/prject_name

Before we get started, keep in mind:

  * You are currently outside your home directory

? Which Firebase CLI features do you want to setup for this folder? Press Space to select features, then Enter to confirm your choices. Functions: Configure and deploy 
Cloud Functions

=== Project Setup

First, let's associate this project directory with a Firebase project.
You can create multiple project aliases by running firebase use --add, 
but for now we'll just set up a default project.

? Select a default Firebase project for this directory: [create a new project]

=== Functions Setup

A functions directory will be created in your project with a Node.js
package pre-configured. Functions can be deployed with firebase deploy.

? What language would you like to use to write Cloud Functions? JavaScript
? Do you want to use ESLint to catch probable bugs and enforce style? No
✔  Wrote functions/package.json
✔  Wrote functions/index.js
✔  Wrote functions/.gitignore
? Do you want to install dependencies with npm now? Yes

> grpc@1.19.0 install path/firebase/project_name/functions/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library

node-pre-gyp WARN Using request for node-pre-gyp https download 
[grpc] Success: "path/firebase/project_name/functions/node_modules/grpc/src/node/extension_binary/node-v67-linux-x64-glibc/grpc_node.node" is installed via remote

> protobufjs@6.8.8 postinstall path/firebase/project_name/functions/node_modules/protobufjs
> node scripts/postinstall


> firebase-functions@2.2.0 postinstall path/firebase/project_name/functions/node_modules/firebase-functions
> node ./upgrade-warning


======== WARNING! ========

This upgrade of firebase-functions contains breaking changes if you are upgrading from a version below v1.0.0.

To see a complete list of these breaking changes, please go to:

https://firebase.google.com/docs/functions/beta-v1-diff

npm notice created a lockfile as package-lock.json. You should commit this file.
added 352 packages from 265 contributors and audited 1097 packages in 7.463s
found 0 vulnerabilities


i  Writing configuration info to firebase.json...
i  Writing project information to .firebaserc...
i  Writing gitignore file to .gitignore...

✔  Firebase initialization complete!

Project creation is only available from the Firebase Console
Please visit https://console.firebase.google.com to create a new project, then run firebase use --add

クラウド・プロジェクト作成

ウェブサイト上でプロジェクトを追加する。

https://console.firebase.google.com

ローカル・プロジェクトにクラウド・プロジェクトを設定

$ firebase use --add
? Which project do you want to add? project_name
? What alias do you want to use for this project? (e.g. staging) project_name_alias

Created alias project_name_alias for project_name.
Now using alias project_name_alias (project_name)

デバッグ

$ sudo firebase serve --only functions

ソフトウェア開発者向けのFPGA最新動向のまとめ

概要

なんで今さらFPGA

ここ数年で以下のような動きがあり、FPGAがCPU,GPUに並ぶ処理系の選択肢の1つに入ってきた。

しかし、ぐぐって勉強しようとすると、以下の難しさがあった。

  • レガシーなFPGAの情報と新しい話が混在している
  • ソフトウェアエンジニア向けの情報が少ない
  • 資料が英語そして英語

ということで情報をまとめる。

FPGAとは

FPGAとは、Field Programmable Gate Arrayのことらしい。

ナンノコッチャ。

要するにフリップフロップ(Gateと呼ばれる)が大量に集まった集積回路(Array)である。 フリップフロップをうまく組み合わせればCPUみたいなこともできるし、RAMみたいなこともできる。

今までは「うまく組み合わせ」るためにはHDL(Hardware Description Language)と回路の知識が必要だったが、昨今の技術革新によりC言語からHDLを自動生成することができるようになってきた・・・。(これを高位合成という)

ということらしい。詳しくは以下のサイトで!

メーカ

List of FPGA Companiesによれば、2015年時点でXilinxが50%、Intel(旧Altera)が37%、Lattice Semiconductorが10%の市場シェアを占める。And the Winner of Best FPGA of 2016 is... を見る限り、2016年も2015年とほぼ同じシェアである。

XilinxとAlteraの寡占市場だったところに、Intelが2015年にAlteraを買収して殴りこみをかけている・・・。

Xilinx

FPGA業界のドン。もともと、他社に比べるとソフトウェア開発者向けのツールや情報提供を多少やってくれてた。(ただし、ツールの使い勝手は・・・)

が、Intelが殴りこみをかけてきたのでテンパッて、Amazon Web Serviceと提携したり、GitHub上でマニュアル整備したりと、急激にソフトウェア開発者向けのサポートの充実化が進んでいる。

が、なんだかよくわからんアプリまで作っているが・・・。

製品ラインナップ

XilinxFPGA製品ラインナップは以下の通り。

  • Spartanシリーズ
    • I/O最適化で単位ワットあたりの性能が優れている、リードタイムは6週間、小規模
  • Virtexシリーズ
    • 性能と統合性のバランスが優れている
  • Kintexシリーズ
    • 単位ワットあたりの価格対性能比が優れている
  • Artixシリーズ
    • 低コストFPGAとしては単位ワットあたりの性能が優れている

製品コンセプトが、わかるようなわからんような・・・。

Spartanが一番古いシリーズで今では廉価版扱いで、Spartanに対して高性能型として昔登場したのがVirtex。 近年降って湧いたように出てきたのがKintexとArtix。という感じ。

開発環境

XilinxFPGA向けツールは以下の通り。

  • Vivado Design Suite
    • ハードウェアエンジニア向けのHDL設計ツールから、ソフトウェアエンジニア向けの高位合成機能まで兼ね備えたソフトウェアスイート。
    • 要するに何でもありありのツールで、一昔前のMicrosoftVisual Studioのような感じ。
    • アドインを追加するほどの柔軟性はない。
  • Software Development Kit
    • 組込み開発向け開発環境。ハードウェアの設定ファイルを読み込み、すぐにコーディングに移れるのが強み。
    • Eclipseベースに開発されたツール。Eclipseに慣れていると使いやすいのだろうが、日本の組込エンジニアがどれだけEclipseに慣れているのかは正直疑問・・・。
    • 昔はバグがあったり、使いにくかったりしたが、今はどうなんだろうか。
  • SDAccel
    • データセンターアプリケーション向けの高位合成用のIDE
    • ・・・どういうことや。
    • Intel Parallel Studioのように、「既存のソースコードをもってきて、IDEコンパイルするだけで、あら不思議高速化しました!」というツールのようだ。
  • ISE Design Suite
    • ハードウェアエンジニア向けの機能のみ備えたツール。
    • 2013年に開発を終了し、Vivadoに移行。

Intel(旧Altera)

製品ラインナップ

IntelFPGA製品ラインナップは以下の通り。

  • Stratixシリーズ
    • 低リスク、高生産性
  • Arriaシリーズ
    • ミッドレンジ・アプリケーション、最適な性能と電力効率
  • Cycloneシリーズ
    • 低消費電力、低コストデザイン
  • MAXシリーズ
    • 低コスト、シングルチップ、不揮発性デバイス、量産向け

チップにIntelって書いてあるからCPUにしか見えない。そしてXilinxに比べると製品コンセプトが非常にわかりやすい。

開発環境

IntelFPGA向けのツールは以下の通り。

  • インテル® Quartus® Prime 開発ソフトウェア
    • 想定対象者は「すべての FPGA ユーザー」
    • 「使いやすいテクノロジーを搭載し、業界をリードする各社との強固なパートナーシップによって支えられた包括的な開発プラットフォーム。」
    • 3つのエディションがある。無償のライト、廉価なスタンダード、最新のFPGAをサポートしたプロ。
  • インテル® HLS コンパイラ
    • 想定対象者は「ハードウェア開発者、アルゴリズム設計者、IP ライブラリー設計者」
    • 「RTL よりも最大 1000 倍高速な C++ を使用した検証により、ハードウェア開発を高速化。」
    • インテル® Quartus® Prime 、C++ 14、Visual Studio* 2015、GCC 5.4.0に対応している。
  • インテル® FPGA SDK for OpenCL
    • 想定対象者は「ソフトウェア開発者」
    • 「ソフトウェア開発者向けにハードウェア開発フローを抽象化し、ヘテロジニアス・アクセラレーションのターゲットとして FPGA を活用。」
    • ヘテロジニアスというのはCPU、GPUFPGAなどが混合したシステムのことを指す。
    • 2つのバージョンがある。スタンダードと最新のFPGAをサポートしたプロ。
  • DSP Builder for インテル® FPGA
    • 想定対象者は「ハードウェア開発者、アルゴリズム設計者」
    • アルゴリズム設計からハードウェア開発までを共通の環境で行うモデルベースのデザインフローをサポート。」
  • インテル® SoC FPGA エンベデッド開発スイート
    • 想定対象者は「ソフトウェア開発者、すべてのエンベデッド・アプリケーション」
    • インテル® SoC デバイスを使用したエンベデッド・ソフトウェア開発のための包括的なツールスイート。」

「」の引用元:https://www.intel.co.jp/content/www/jp/ja/software/programmable/overview.html

有償版のお値段は$995~4995まで。明瞭会計で良いですな。

https://www.intel.co.jp/content/www/jp/ja/programmable/buy/design-software.html#pricing-and-licensing

まとめ

  • FPGAのシェアは、Xilinxが圧倒。
  • ソフトウェア開発者から見たウェブサイトのわかりやすさは、Intelが圧倒的。さすがIntel先生。
  • ビデオテープ規格のVHS v.s. ベータのようにここからIntel先生の巻き返しがあるのかも!今後に期待。(若い人にはわからない例えかもしれんが・・・。)

参考文献