今日の一言:どの説が正しいか、どの論が誤りか、、、
突然はじめてみます。今日の一言。
どの説が正しいか、どの論が誤りか、判断しようとするのは問題の本質を見失うことであろう。
SFモノの名作小説「星を継ぐもの」からの一言。
月面で真紅の宇宙服を着た人間の遺骸が発見され、その謎を明かすべく大きな論争に発展した中での、主人公ビクター・ハントの思考の一端がこれ。
- 作者: ジェイムズ・P・ホーガン,池央耿
- 出版社/メーカー: 東京創元社
- 発売日: 1980/05/23
- メディア: 文庫
- 購入: 207人 クリック: 2,160回
- この商品を含むブログ (476件) を見る
仏教の「中道」の考えに似ています。
暗号技術入門まとめ
とっつきにくい暗号技術が簡潔にわかり易く書かれていて、読んでいてとても面白かった。最高の入門書だと思います。
まだ2月だが、今年の My 技術書 of the yearはこの本に決まる可能性が高い。
第一部 暗号
いろんな暗号技術
- 対象暗号
- 公開鍵暗
- 一方向ハッシュ関数は正真性を提供
- メッセージ認証コードは、正真性と認証を提供
- デジタル署名はなりすまし、改ざん、否認防止
- 擬似乱数生成器 その場限りの鍵(セッションキー)を作るのに使う
この6つは暗号学者の道具箱と呼ばれている。暗号化に関する技術はこの6つを駆使することで実現されている。
セキュリティの常識
対称暗号
DES
64bitの平文をブロックとしてまとめて暗号化する。
現在ではブルートフォースアタックで解析できる様になった。
ファイステルネットワークを採用していて、ラウンドと呼ばれる暗号化の1ステップを何度も繰り返す。DESでは16ラウンド。
平文を32ビットごとに分けて、右32bitとサブ鍵をもとにラウンド関数fでビット列を生成し、左32bitとXORを採って暗号化する。これを右と左を入れ替えながら何度も繰り返す。
特徴
- ラウンド数を増やせる
- ラウンド関数fをどんなものにしても復号化が可能で、 出力から入力を逆算できなくてもよい。
- 暗号化と復号化を全く同じ構造で実現できる
Triple DES
特徴
- DES keyを3つ使って、暗号化、復号化、暗号化と三段重ねする。
- 単独のDESとしても使えるように2段目は 復号化 になる。
- 銀行などで使われているが、処理スピードが高くない。
AES
- 複数のラウンド
- SPN構造
- SubBytes > ShiftRows > MixColumns > AddRoundKey の順番で処理
- これを10-14回繰り返す
- 現時点で安全で高速
SubBytes:単一換字暗号
ShiftRows:行ごとに左に規則的にシフト
MixColumns:列ごとに行列計算
AddRoundKey:ラウンド鍵とXOR
ブロック暗号モード
ECB : Electric CodeBlock
- シンプルだが最も機密性が低い
- 同じ平文ブロックは常に同じ暗号文ブロックになる
- 電子符号表モード
ECBに対する攻撃
- ブロックの入れ替えが可能
- 仕組みとしては改ざんが可能(MACを使えば防げるけど)
CBC : Cipher Block Chaining
- 1つ前の暗号文ブロックと平文ブロックをXORを取ってから暗号化
- 最初の暗号文ブロックはランダムな値の初期化ベクトル
- 暗号文ブロックに対して入れかえや改ざんが困難
CFB : Cipher FeedBack
CFBモードへの攻撃
- 再生攻撃が可能
- 防ぐためにはMACが必要
OFB : Output FeecBack
CTRモード
- 1ずつ増加するカウンタを暗号化して鍵ストリームを作り出す
- カウンタは、ランダムな値ノンス8bitとブロック番号8bitを組み合わせて作る
公開鍵暗号
対象暗号には鍵配送問題がある。暗号的な解決方法は2つ
名前 | 用途 |
---|---|
公開鍵/public key | 暗号用 |
(私有)秘密鍵/private key | 複合用 |
問題
- 公開鍵暗号でも、認証の問題は解決できない。
- 対称鍵暗号は対象暗号に比べて何百倍も遅い
RSAのアルゴリズム
この辺のがまとまってて良さそう。
http://quanon.hateblo.jp/entry/2015/03/26/205949
公開鍵暗号への攻撃
- man-in-the-middle攻撃(中間者攻撃): アリスとボブの間に入って、鍵をすり替えながらなりすます攻撃。 対策は公開鍵の証明書
- 選択暗号文攻撃
ハイブリッド暗号システム
対称暗号と公開鍵暗号を組み合わせていいとこ取りする。
メッセージは対称暗号で暗号化し、そのセッションキーを公開鍵暗号で暗号化する。
一般的にメッセージが鍵自体よりも長いので有効。
セッションキーは擬似乱数生成器で作り出して推測不可能なものにする。
セッションキー暗号化とメッセージの暗号化を結合して送る。
PGP, SSL/TLSでも使われている。
第二部 認証
一方向ハッシュ関数
メッセージの指紋をとって改ざんされてないことを保証するもの。真正性のチェック。
ハッシュ値はもとのデータがどんな長さであっても固定サイズになる。
もとのデータが1bitでも変化したら、ハッシュ値も非常に高い確率で異なるべき。
- 弱衝突耐性
- ある特定のハッシュ値を持つ別のメッセージを見つけ出すことが困難であること
- 強衝突耐性
- ハッシュ値が一致するような異なるメッセージを見つけ出すことが困難であること
具体例
MD4/MD5
衝突を見つけることが考案されたので安全ではない
SHA1
教衝突耐性が破られたため、安全ではない
SHA2
まだやぶられてない
SHA3
SHA1が破られたことを受けて作られた新しい方式。Keccak
一方向ハッシュ関数への攻撃
一方向ハッシュ関数で解決できない問題
なりすましを検出できない。認証にはMACとデジタル署名が必要。
MAC: メッセージ認証コード
送信者の意図通りのものであることを照明する。改ざんとなりすましの防止が目的。
ひとことで言うと、鍵に依存した一方向ハッシュ関数。
メッセージからMAC値を計算し、メッセージと共に送る。受信者はメッセージからMAC値を計算して、受け取ったMAC値と比較することで認証する。
ここでも鍵配送問題がある。
ところで、ある時
対称暗号で暗号化されているのに、なぜMACが必要なのか。鍵を持っていて正しく復号化できるのであれば、それは正しい相手なのだから、MACは不要では??
という質問をされたことがある。
その時は明解に答えられなかったが、この本にほぼ同じ内容のコラムがあった。答えは
受信者は、平文を"正しく復号化"できているかを判断できない場合がある。例えば平文がランダムな文字列だったり、似た文字だった場合。平文が振り込み金額のみを送るようなケースでは「1000」という部分が「4258419」となってても正しさを判断できない。あるいは、平文が鍵をであるような場合、ランダムな文字列が別のランダムな文字列になってたら正しさを判断できない。
HMAC
MACに対する攻撃
- 再生攻撃(リプレイ攻撃) : 暗号化された内容を盗聴して同じ内容を再送する 対策としては、シーケンス番号、タイムスタンプ、ノンスを追加する。
MACで解決できない問題
- 第三者に対する証明
- 否認防止
デジタル署名
改ざん、なりすまし、否認防止が目的。
自分のメッセージであることを証明するために、メッセージ、あるいはそのハッシュ値を自分のプライベート鍵で暗号化したものをメッセージに付加して送る。受信側は送信者の公開鍵で復号化して、メッセージまたはハッシュ値と比較することで検証する。
デジタル署名にもman in the middle攻撃される可能性がある。
MACとデジタル署名の比較
メッセージ認証コード | デジタル署名 | |
---|---|---|
鍵 | 共有鍵 | 公開鍵暗号で署名作成・検証 |
鍵配送問題 | 起きる | 起きないが、公開鍵の認証が必要 |
正真性 | ◯ | ◯ |
認証 | ◯:通信相手に対してのみ | ◯:第三者に対しても |
否認防止 | × | ◯ |
デジタル署名で解決できない問題
正しい公開鍵を入手するために、証明書が必要。
つまるところ、公開鍵基盤 PKIが必要という話になる。
証明書
認証局(CA)が発行するもので、公開鍵が確かなものであることを証明する証明書(公開鍵証明書)
認証局はベリサインが有名
PKI
公開鍵を運用するための規格、仕様の総称。
PKCS(Public Key Cryptography Standards)もPKIの一種。
で構成される。
証明書を破棄する場合は、証明書破棄リストCRLを作成する。
鍵・乱数・応用技術
鍵 ― 秘密のエッセンス
鍵は平文と同じ価値があると考えられるので、推測出来ないものにする必要がある。最も良いのは乱数を使うこと。パスワード+ソルトをハッシュ関数にかける場合もある。PBE:Password based Encryption
鍵更新 (現在の鍵のハッシュ値を新しい鍵とする)も良い。
KEK : 鍵を暗号化するための鍵を使うと、守るべき鍵の本数が減る
Diffie-Hellman鍵交換
他人に知られても構わない情報を交換することで、お互いに共通の秘密鍵(セッションキー)を作りだす方法。
離散対数問題を解くことの難しさを利用している。
乱数
暗号化技術において、鍵、鍵ペア、IV、ノンス、ソルトの生成に使われる非常に重要なもの。
無作為性、予測不可能性、再現不可能性が求められる。
ソフトウェアが生成する乱数は周期性があるため、ハードウェアから、キーボード入力の時間間隔、放射線観測機、熱雑音などを乱数生成の種として利用し、再現不可能性を実現している。
セキュリティ用に使えるアルゴリズムとそうでないものがあるので注意。Javaでは、java.util.Random
は使えない。java.security.SecureRandam
はセキュリティ用。
PGP
Pretty Good Privacyの略。
OpenPGPという規格がある。
GnuPGPはOpenPGPを準拠したフリーソフトウェア。
対称暗号、公開鍵暗号(ハイブリッド暗号)、デジタル署名、一方向ハッシュ関数、証明書、圧縮、テキストデータ、分割統合、キーリングをサポート。
SSL/TLS
Secure Socket Layer / Transport Layer Security.
上位にくるHTTP/SMTP/POP3などの内容を暗号化する。
TLSプロトコルは、TSLレコードプロトコルとTSLハンドシェイクプロトコルによって構成されている。
暗号技術と現実社会
いくらソフトウェアを強固にして守っても、最終的には一番弱いところ(主に人間)から破られます。
ビットコイン
ビットコインは暗号化の技術を多数使っている。
P2Pベースの決済システムで、全ての取引記録が公開取引簿として記録されている。ブロックチェーン。
1つのブロックはトランザクション部とヘッダから出来ている。
トランザクション部には、トランザクションの集まりが保存されている。
ヘッダには直前のブロックのヘッダ部分のハッシュ値と、トランザクション部分のハッシュ値が格納されている。
ブロックを追加するためには、正しいヘッダを持ったブロックを計算しなければならない。直前のブロックのハッシュ値は、上位ビットに0が並ぶものになる。例えば0000000000000000000000539f09e0a0c753924678bca8eceb88eaa1...
のようなもの。条件を満たすハッシュ値が出るまで、ノンスを変えながらハッシュ値の計算をしまくる。この行為を採掘と言う。
量子暗号と量子コンピュータ
量子暗号が確立したら、解読できなくなる。盗聴によって読むと光子の状態が変化してしまうので。
それよりも先に量子コンピュータが誕生したら、現状の暗号化技術は全て解読される。
以上。
ほとんど単語だけのメモもありますが、検索用に。
全体を通して、本当に良い本でした。
以前読んだこちらも良い本でした。
体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践
- 作者: 徳丸浩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2011/03/03
- メディア: 大型本
- 購入: 119人 クリック: 4,283回
- この商品を含むブログ (146件) を見る
CalendarクラスのWEEK_OF_YEAR
CalendarクラスのWEEK_OF_YEAR
CalendarクラスのWEEK_OF_YEARは、一年の中で何週目かを返すfieldなのですが、week1:第一週目をいつから数えるかは、getFirstDayOfWeek()
(週が何曜日からはじまるか)とgetMinimalDaysInFirstWeek()
(最初の週を何日以上とするか)によって計算されます。
https://docs.oracle.com/javase/jp/6/api/java/util/Calendar.html#WEEK_OF_YEAR
WEEK_OF_YEAR public static final int WEEK_OF_YEAR get および set のためのフィールド値で、現在の年の何週目かを示します。getFirstDayOfWeek() および getMinimalDaysInFirstWeek() で定義される年の最初の週には、値 1 が使用されます。サブクラスでは、年の最初の週より前の日に対して WEEK_OF_YEAR の値が定義されます。
今年2016年は、1/1は金曜日なので、例えば1/4の週をweek1と数えるようにするためには、
setFirstDayOfWeek(Calendar.MONDAY);
setMinimalDaysInFirstWeek(4);
とします。
Android だと、、、
しかし、Android apk でコレを実装してみると、うまく動かない。。。
例えばこの記事を執筆している今日は2/10で、以下のようなコードだとweek6となってほしいのですが、week7と出力されてしまう。
private void getWeekNumber() { Calendar calendar = Calendar.getInstance(); Log.d("###", "Original week:" + calendar.get(Calendar.WEEK_OF_YEAR)); calendar.setFirstDayOfWeek(Calendar.MONDAY); calendar.setMinimalDaysInFirstWeek(4); Log.d("###", "Modified week:" + calendar.get(Calendar.WEEK_OF_YEAR)); }
実行結果
Original week:7
Modified week:7
少しハマって試行錯誤した結果、何かしらのfieldにset()すれば、期待どおりにweek6と出力されることがわかりました。
private void getWeekNumber() { Calendar calendar = Calendar.getInstance(); Log.d("###", "Time:" + calendar.getTime()); Log.d("###", "Original week:" + calendar.get(Calendar.WEEK_OF_YEAR)); calendar.setFirstDayOfWeek(Calendar.MONDAY); calendar.setMinimalDaysInFirstWeek(4); Log.d("###", "Time:" + calendar.getTime()); Log.d("###", "Modified week:" + calendar.get(Calendar.WEEK_OF_YEAR)); calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR)); // これを実行した以降は正しい結果に Log.d("###", "Time:" + calendar.getTime()); Log.d("###", "Modified week:" + calendar.get(Calendar.WEEK_OF_YEAR)); }
実行結果
Time:Wed Feb 10 22:36:22 JST 2016
Original week:7
Time:Wed Feb 10 22:36:22 JST 2016
Modified week:7
Time:Wed Feb 10 22:36:22 JST 2016
Modified week:6 // 期待通り
不思議な結果になりました。getTime()
の値は全部同じなのに、、、
Androidのバグ??
と思ってCalendarクラスの実装を見てみる。
http://tools.oesf.biz/android-6.0.0_r1.0/xref/libcore/luni/src/main/java/java/util/Calendar.java
まずはget()
. fieldの値を返す前にcomplete()
を呼んでます。
898 public int get(int field) { 899 complete(); 900 return fields[field]; 901 }
complete()
の中では、computeTime()
というやつを呼んで、最新の設定をもとにCalendar情報を計算しているのでしょうかね、名前からして。それを実行するためには、areFieldsSet
が false
である必要がありますと。
838 protected void complete() { 839 if (!isTimeSet) { 840 computeTime(); 841 isTimeSet = true; 842 } 843 if (!areFieldsSet) { 844 computeFields(); 845 areFieldsSet = true; 846 } 847 }
そんでsetFirstDayOfWeek()
と setMinimalDaysInFirstWeek()
をみてみると
1174 public void setFirstDayOfWeek(int value) { 1175 firstDayOfWeek = value; 1176 } ... 1189 public void setMinimalDaysInFirstWeek(int value) { 1190 minimalDaysInFirstWeek = value; 1191 }
値をセットしているだけで、特にフラグなどいじってませんので、このままget()
しても再計算された値が取得できないように見えます。
一方 set()
では、areFieldsSet
に false
をセットしてます。
つまり、あとでcomputeする必要がありまっせということでしょうかね。
1123 public void set(int field, int value) { 1124 fields[field] = value; 1125 isSet[field] = true; 1126 areFieldsSet = isTimeSet = false; // ここ ...
set()
を呼ぶと問題を回避できるのはこのためでしょうかね。
ということで、 Androidのバグ??
その他の環境では
ちなみにmacのJava SE 1.8.0_45-b14では、こういった動作にはならなかった。
import java.util.Calendar; public class MyCal { public static void main(String[] args){ Calendar calendar = Calendar.getInstance(); System.out.println("Original:" + calendar.get(Calendar.WEEK_OF_YEAR)); calendar.setFirstDayOfWeek(Calendar.MONDAY); calendar.setMinimalDaysInFirstWeek(4); System.out.println("Modified:" + calendar.get(Calendar.WEEK_OF_YEAR)); } }
実行結果
Original:7
Modified:6
- 作者: 中山清喬,国本大悟
- 出版社/メーカー: インプレス
- 発売日: 2014/08/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (18件) を見る
スッキリわかる Java入門 実践編 第2版 (スッキリシリーズ)
- 作者: 中山清喬
- 出版社/メーカー: インプレス
- 発売日: 2014/09/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (7件) を見る
EFFECTIVE JAVA 第2版 (The Java Series)
- 作者: Joshua Bloch,柴田芳樹
- 出版社/メーカー: 丸善出版
- 発売日: 2014/03/11
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (9件) を見る
2-3歳児向け絵本
子どもに本をたくさん読むと、情操教育に良かったりボキャブラリーが増えたりと、とても良いらしいです。動画とかスマホとかデジタルなものをつい見せがちですが、親子のコミュニケーションと言う意味でもとても素晴らしいことだと思います。
これまで子どもに読んだ中でおすすめのものを紹介します。
※随時更新して行こうと思います。
まず紹介したいはこの視覚デザイン研究所の本 。このシリーズはどれも素晴らしいです。最初は図書館で借りましたが、良い本なので買い直しました。
全てのページが詳細に綺麗にかかれていて、大人も見とれるほどです。
しんかんせんでビューンは、はやぶさとこまちの連結車両とかかがやきとか、実在の新幹線がグラフィカルな絵で書かれていて、子どもは大喜びです。また、各ページに小ネタが仕込まれていて、何度も楽しめます。
れっしゃにのっていろんな世界を旅します。本に穴が開いていて、トンネルの向こう側が見える感じ。
遠足の日に雨が降ってしまってがっかりなバス旅行。トンネルをいくつもくぐって目的地に向かうのですが、ページをめくっていくと、最後にあっと驚く仕掛けが用意されています。アイデア賞をあげたいです。
逃げたたこたこウインナーを探しながら 進む本。うちの子はあまり食べないので、まずは興味をもたせるのに良かったです。
探し系。若干不気味なキャラですが子どもは気に入ってました。
本の見開きで片側が鏡のようになっていて、奥行きがあるように見える。
動物たちがたくさんでてきて、電車に乗って祭りに行きます。
どうぶつきかんしゃしゅっぱつしんこう! (ポプラせかいの絵本)
- 作者: ナオミ・ケフォード&リン・ムーア,ベンジー・ディヴィス,ふしみみさを
- 出版社/メーカー: ポプラ社
- 発売日: 2012/10/02
- メディア: 単行本
- この商品を含むブログを見る
こちらも動物+きかんしゃの本。
この作者の本はブスかわいい感じの作風が多いようです。
クリスマスのプレゼントを届けるおたすけこびとたち。はたらくくるまがたくさん出てきます。
おふろやさんシリーズ。
おじいちゃんが送ったりんごを探しながら読み進みます。ほぼクロネコヤマトなので、実生活上でも指さしたりしてました。
カレーのたねからめがはえて、おさらのはっぱに、ふくじんづけの花がさき。。。
カレーに興味がでて良かったです。食べるようになりました。
子どもが大好きな消防車の本なのですが、ページの端っこに次のページの煙が見えるという仕掛けが施されていて、最後はほっこりする内容です。
MY BOOK OF THE YEAR 2014
2014年に読んだ本で良かったものをまとめます。今更で恐縮ですが。。。
改めて見直すとこの年は教育系の本が多かったようです。
小説
アフリカの難民が受け入れ先の国で必死に生きながら、希望を見出していく話。と、サユリの話。
じんわりと心にしみて来るという感じの話だなと思いながら読んでたが、最後に、全体の話の構成についてのちょっとしたギミックが分かった時には、心地良い気分になった。
池井戸さんらしい勧善懲悪的な話なんだけど、こういったテーマが、群像劇で視点を変わりながら少しずつ核心に迫ってくる展開が自分にとって新鮮でした。
しかし、製造業で人間関係がこんなギスギスした会社ってあるのかな。
久しぶりの村上春樹でワールドを楽しめた。
村上春樹好きなんですけど、レビューを書こうとするととても難しくて困ります。
ちょっと笑えた下り。(348ページ)
新宿駅は巨大な駅だ。一日に延べ三百五十万に近い人々がこの駅を通過していく。省略
通勤ラッシュの時刻にはその迷宮は人の海になる。
海は泡立ち、逆巻き、咆哮し、入り口と出口をめがけて殺到する。乗り換えのために移動する人々の流れがあちこちで錯綜し、そこに危険な渦が生まれる。どんな偉大な預言者をもってしても、そのような荒々しく逆巻く海を二つに分かつことは不可能だろう。
教育系
学年ビリのギャルが1年で偏差値を40上げて慶應大学に現役合格した話[文庫特別版] (角川文庫)
- 作者: 坪田信貴
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2015/04/10
- メディア: 文庫
- この商品を含むブログ (8件) を見る
子どもと教育の可能性を、強烈な実例を持って思い知らされる本。
指導者が本当に優秀で、相手に合わせた指導ができれば、能力を最大限に引き出せる。もちろんこれは極端に成功した例で、指導される側も素晴らしい資質があったと思うけど。こういう関係になるともうなんでもできるんだな、と。
この親は親で、金は苦労してでも出すが、勉強に関しては立ち入らないし、本人の意思に任せて思い切って挑戦させる一貫した姿勢もなかなかできるものじゃない。
基底にある信頼関係が強固。先生とも、親とも。
以下、気になった言葉など。
- やってみせ、言って聞かせてみて、ほめてやらねば人は動かじ
- 相手が指示通りやらなかったら、自分の伝え方を変える。
- キリが悪いところでやめると持続する
- やる気スイッチを探すのではなく、やってみる、できる、やる気がでるの順番
- ビルの上で30cmの幅の板を渡るのはこわい。実際おちる人もいる。失敗を意識した瞬間に身体能力が低下する。失敗する、苦手、イヤだと思うと能力が低下する。
「生きる力」の強い子を育てる 人生を切り拓く「たくましさ」を伸ばすために (人間性教育学シリーズ)
- 作者: 天外伺朗
- 出版社/メーカー: 飛鳥新社
- 発売日: 2011/11/01
- メディア: 単行本
- 購入: 1人 クリック: 12回
- この商品を含むブログ (3件) を見る
日本の教育はほぼすべて「与える」教育をしているが、それによって「生きる力」が弱くなっている。現代に必要な「生きる力」の強い子を育てるには、引き出す教育による人間性教育を重視すべきと言う本。
大脳辺縁系の古い脳を土台として、大脳新皮質を育てるべき。身体性、情動、芸術的感覚などの生きる力のあと、理論を学ぶ。早くから読み書きの勉強を教えるのは間違いだと。
自分は間違いなくそういう教育を受けてきた。これを読んで、自分の子どもや社会に対して自分には何ができるかな。
内容はよく分かったし、ためになったが、もう少し実践的な内容を期待してたので、そこは少々期待はずれだった。次回作に期待。
効率の良い勉強の仕方を紹介してくれる本。
これを読んだら、なんか急に勉強したくなった。この本を読んだ意味として一番大きなものかな。
あと子供が勉強する頃に勧めたい。
教育白書というより、素敵な家族のドラマチックな愛情の物語。
もちろん子育てをする上で大切な教えが幾つもあったけど。
母親がなくなり夫が病気で入院中で、家族中が猛烈に忙しいという時に、著者が感じていたというこの点が子供を思いやる親として象徴的で一番印象に残った。
「心を痛めていたことがある。子供たちの大切な時間を、家のことのために使わせてしまったことだ。」
技術書
誰のためのデザイン? 増補・改訂版 ―認知科学者のデザイン原論
- 作者: D. A.ノーマン,岡本明,安村通晃,伊賀聡一郎,野島久雄
- 出版社/メーカー: 新曜社
- 発売日: 2015/04/23
- メディア: 単行本
- この商品を含むブログ (1件) を見る
認知心理学者ドナルドノーマン氏が、身近な例を持って、デザインとはなんたるかを解説してくれる。
第一版は二十年以上前に書かれた本なので、当時ほどひどいデザインのプロダクトは溢れてないのかもしれないが、それでも現在のプロダクトのユーザーインターフェイスデザインにもまだまだ足りてない、重要な提言をしている。
こういう古い本にもAppleさんはよいデザインをしているとして紹介されていたり、または認知心理学上の概念を説明されると自然とAppleの戦略や思想を連想させられたりして、さすがだなあと思ったりしました。
ビジネス全般
Team Geek ―Googleのギークたちはいかにしてチームを作るのか
- 作者: Brian W. Fitzpatrick,Ben Collins-Sussman,及川卓也,角征典
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/07/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (20件) を見る
ソフトウェア開発はチームワークである。その上で一番大事な事は、HRT謙虚、尊敬、信頼だ。
建設的批判をする。
そのチームの文化を尊重し、大切にすべき。新参者が壊してはいけない。
ミーティングは目的を明確に、人も最小人数で。
などなど、中身はいたって普通の事が書かれていると思う。ただ、実践する時には多くの邪魔が入るけど。
あと、リーダーであろうがマネージャーであろうがとにかくコードを書く時間を増やすようにすべきという点は、なかなか耳の痛い話だ。
その他
子どもたちのアイドルの生みの親であり、戦争の歴史の生き証人でもあるやなせさんは日本の宝だった。
いろいろ勉強させていただきました。
MY BOOK OF THE YEAR 2015
今年読んだ本の中から、面白かったものをレビュー付きで紹介します。ちょっと散文的ではありますが。。
※あくまでも今年読んだ本であって、今年出版されたものではありません。
教育系
「育てにくい子」と感じたときに読む本―悩み多き年齢を上手に乗り越えるためのアドバイス
- 作者: 佐々木正美
- 出版社/メーカー: 主婦の友社
- 発売日: 2008/06
- メディア: 単行本
- 購入: 5人 クリック: 31回
- この商品を含むブログ (5件) を見る
自立というのは、他人に迷惑をかけないことではなく、お互い信頼しあって、迷惑をかけあい、助け合うこと。そういう関係を築けるように親が環境を作ってあげる必要がある、ということです。身にしみますね。
親の許容度が小さいほど、子どもの自己肯定感は小さくなり、自分で自分を誇りに思えなくなる。子どもにこうなってほしいではなく、子どもがなってほしい親になる。
佐々木さんの本は読む度に反省するばかり。
今後も定期的に読ませていただきます。
キャッチーなタイトルで一瞬違和感のようなものを感じるが、反省文を書かせる更生は効果がなく、罪を犯した人が自分の内面と向き合って、自律的に反省の念が湧いてくるようなものにしないといけないという趣旨の本。
理論として正しそうに思うんだけど、この内容で更生を受けた犯罪者の再犯率がどうなのかなど実際のデータが見てみたい。
あと、どうでも良い疑問だが、酒井法子だけ、なぜかさん付けで呼んでいるのが気になりました。
マネー
株が上がっても下がってもしっかり稼ぐ投資のルール ?バイ・アンド・ホールドを超えて (日経ビジネス人文庫)
- 作者: 太田忠
- 出版社/メーカー: 日本経済新聞出版社
- 発売日: 2013/08/02
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
投資におけるさまざまな淡い期待や迷いをいい意味で打ち砕いてくれる本。過去の苦い経験も踏まえて、投資のルールがしっかり出来てきた気がする。
基本はやはりインデックス株のドルコスト平均法。
あとは、大きく下げた時に投資できるように、普段から資金の準備とファンダメンタルズの分析をしておくこと。
歴史モノ
現在の明智光秀に関する定説は、改竄された資料が証拠として用いられてて、大きな矛盾が多い。そこには、明治維新以降、秀吉を正当化して中国大陸に侵攻するための教育が国策としてあった。
光秀の子孫が、本能寺の変近辺についての従来の定説にとらわれずにゼロベースで歴史捜査(操作ではなく)をし、推理する本。
不確定な部分を推測を元に断定してしまう箇所はたくさんあったけど、それぞれ、十分にありえそうに思えた。
こういう歴史の本初めて読んだけど、とても面白かった。
ビジネス系
ピクサー流 創造するちから―小さな可能性から、大きな価値を生み出す方法
- 作者: エド・キャットムル著,エイミー・ワラス著,石原薫訳
- 出版社/メーカー: ダイヤモンド社
- 発売日: 2014/10/03
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (9件) を見る
ピクサーという会社がどのように生まれ、いかにクリエイティビティを生み出すか、その歴史や働き方について創業者が書いた本。
この経営者はとにかくスタッフをよく観察し、気遣い、信頼と尊重の念を持って接しているという事を強く感じた。
以下、心に止まったくだり。
・社員の健康維持を脅かす戦略は避ける。
・大きな問題も小さな問題も構造的には同じことだと理解できるようになれば、物事を冷静に見られるようになる。
・規則を作りすぎないこと。問題を起こさない95%の社員にとっては屈辱的。5%の社員のコントロールが目的で規則をつくってはならない。
・ミスを防ぐコストのほうが、ミスに対処するコストよりはるかに高くつく場合が多い。
社会
日本の「安心」はなぜ、消えたのか―社会心理学から見た現代日本の問題点
- 作者: 山岸俊男
- 出版社/メーカー: 集英社インターナショナル
- 発売日: 2008/02
- メディア: 単行本
- 購入: 16人 クリック: 253回
- この商品を含むブログ (69件) を見る
日本はお互いに監視し合う安心社会から、協力し合う信頼社会への移行期にある、というお話。
オープンソースのセミナーに出た時に紹介された本で、とても興味深い内容だった。
武士道は安心社会の中で生まれた素晴らしい倫理体系だか、現代のオープンで共存共栄を目指す信頼社会には合わない。
安心社会、統治の倫理、武士道、「すべき」
↓
信頼社会、市場の倫理、商人道、「したほうが得」
情けは人のためならず、ですね。
技術系
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/06/23
- メディア: 単行本(ソフトカバー)
- 購入: 68人 クリック: 1,802回
- この商品を含むブログ (132件) を見る
コードは、高度なテクニックを使うような頭の良さやコード量の少なさよりも、読みやすさのほうがずっと大切だというお話。
噂通りとても良い本だと思います。
スッキリわかる Java入門 実践編 第2版 (スッキリシリーズ)
- 作者: 中山清喬
- 出版社/メーカー: インプレス
- 発売日: 2014/09/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る
スッキリわかる本。章立てや話の順番もよく整理されていて、それぞれの内容も親切に説明してあります。
もっと早く出会いたかった。いろんな本を読む前に。
小説
痛快歴史エンターテイメント。
諸事情から5日で参勤交代を命ぜられた湯長谷藩のお話。
笑いあり涙ありで、伏線もちゃんと全部回収して気持よく仕上げてあります。
出光さんをモデルにしたお話。スイスイ読めて一瞬で終わりました。
鐵造が余りにも豪胆かつ理論的で、未来を正確に読めるスーパーマンすぎて、やはり小説だなと思ってしまったが、どれくらい脚色してるのかな、というのが気になりました。
「白ゆき姫殺人事件」レビュー(ネタバレあり)
Amazonプライムビデオで見ました。
うーん、星3.5ってところでしょうか。
ストーリーとしては悪く無いと思うのだけど、いろいろ気になるところもあって。ちなみに原作は読んでません。原作はもっとしっかりしているんだろうと思う。
残念な点:
- 犯人が三木典子を殺すに至る動機の部分の描写が薄すぎる。「へっ」てなりました。突然感がすごい。
- 城野美姫が弱すぎ。あんなに他人にいいように使われる人っているかね。まあ映画(小説)だから、、、っていうことでしょうか。
- 劇中、Twitterを使って一般人の野次馬的な態度を表現してるけど、とくに面白い演出ではなかった。