Book: How Google Works
読んで考えたことメモ
5年で起こり得ること
How Google Worksより:
常識を捨て、想像力をたくましくし、これからの五年であなたの業界で「起こり得ること」は何かと自問してみよう。一番速く変わるものは何か、まったく変わらないものは何か。
変わるもの:
- グラス型デバイスで、ディスプレイが不要になる
- グラス型デバイスで、ホロデッキっぽいものができる
- 仮想空間
- モノのデザイン、建築の仕事の仕方が変わる
- コンピュータに話しかけるようになる
- 言葉でコンピュータにお仕事を依頼できる
- 筋斗雲みたいな車ができる
- 呼んだら車が来る。これが本物の自動車
- 定型化される仕事はロボットがこなす
- 作業の定型化が進み、カスタマイズされるものはとても高価になる
- 手仕事ブランドの確立
- コンピュータ、ロボットではない、人の手によるプロダクトがブランドとして確立できる
- 個人の様々データが自動的に収集される
- いまどこ?
- 心拍数は?
- 血流は?
- 集中してる?それとも眠たい?
- イライラしてる?元気?
- レプリケータ
- モノ・食べ物が家庭でもビルドできるようになる
- プログラミングできる人材の不足
- コミュニケーション力の低下
- 人と人が偶然会うこと、知りあうきっかけの機会損失の増加
- 付き合うより一人
- 物流の自動化
- ロボット化、自動車による宛先への自動配送
- 野菜工場
- 完全自動化された野菜工場による収益拡大
- 安全性のアピールによるブランドの確立
変わらないもの:
- 人間
- 生物学的に。。
- 宇宙
- すくなくとも5年ではそう変わらない、と思う
- 天変地異に対する対応
- 起こってから対応する性
- 天気予報
- むしろ当たらなくなっていくかも?
- スポーツ
- 種目、ルールはそんなに変わらない
- 趣味
- 世代毎に違うけど、個人の趣味は大きく変わらない
- ゲーム
- ゲームに対する面白さは繰り返しやってくる
- 電気ありきのシステム
- 電気の次は簡単に出てこない、切り替わらない
GitHub APIメモ
やりたいこと | API |
---|---|
リポジトリのコミット履歴を取る | https://api.github.com/repos/golang/go/commits |
特定パスのコミット履歴を取る | https://api.github.com/repos/golang/go/commits?path=doc/cmd.html |
コンテンツを取る | https://api.github.com/repos/golang/go/contents/doc/cmd.html |
参考資料:
Raspberry Pi 2で Go言語 を使う #golang
- 出版社/メーカー: 梅本合同会社, RS Components
- メディア: エレクトロニクス
- この商品を含むブログ (2件) を見る
自分でビルドしても構いませんが、ここはさっとDaveさんのUnofficial ARM tarballsを使います。
なお、Raspberry Pi のOSには Raspbian を使っています。
インストール
Raspberry Pi 2のARMv7用をダウンロードし、展開します:
$ wget http://dave.cheney.net/paste/go1.4.2.linux-arm~armv7-1.tar.gz $ tar zxf go1.4.2.linux-arm~armv7-1.tar.gz
あとは http://golang.org/doc/install 通りですが、書いておきます。
~/.bashrc
に以下を追加します:
export GOROOT=$HOME/go export GOPATH=$HOME export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
bashに設定を読みこませれば準備完了です:
$ source ~/.bashrc
go go!
$ go version go version go1.4.2 linux/arm
Raspberry Piクックブック (Make:PROJECTS)
- 作者: Simon Monk,水原文
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/08/23
- メディア: 大型本
- この商品を含むブログ (2件) を見る
Raspberry Piで学ぶ電子工作 超小型コンピュータで電子回路を制御する (ブルーバックス)
- 作者: 金丸隆志
- 出版社/メーカー: 講談社
- 発売日: 2014/11/21
- メディア: 新書
- この商品を含むブログ (1件) を見る
- 作者: 山口徹,Jxck,佐々木大輔,横路隆,加来純一,山本伶,大平武志,米川健一,坂本登史文,若原祥正,和久田龍,平栗遵宜,伊藤直也,佐藤太一,高橋俊幸,海野弘成,五嶋壮晃,佐藤歩,吉村総一郎,橋本翔,舘野祐一,中島聡,渡邊恵太,はまちや2,竹原,河合宜文,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2014/08/23
- メディア: 大型本
- この商品を含むブログ (1件) を見る
Goのテストでsetup/teardownする #golang
go1.4でtestingパッケージにTestMainが追加されました。
func TestMain(m *testing.M)
を定義してあると、go test
はこのメソッドを呼び出します。試しに書いてみます:
package example_test import ( "os" "testing" ) func TestA(t *testing.T) { } func TestB(t *testing.T) { } func setup() { println("setup") } func teardown() { println("teardown") } func TestMain(m *testing.M) { setup() ret := m.Run() if ret == 0 { teardown() } os.Exit(ret) }
TestA
とTestB
はなにかのテストコードだと思ってください。
TestMain
で、setup
とteardown
を呼び出すようにしています。この例ではテストが成功した時だけteardornするようにしています。
go test -v
してみると:
$ go test -v setup === RUN TestA --- PASS: TestA (0.00s) === RUN TestB --- PASS: TestB (0.00s) PASS teardown ok testmain 0.004s
となり、パッケージテストの最初と最後でそれぞれsetup
とteardown
が呼ばれるのがわかると思います。
これまでinitメソッドでsetupしてz_test.goなどでteardownさせるなどの黒魔術的なことが必要でしたがこれで解決ですね。
- 作者: 古川昇
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2012/11/21
- メディア: 単行本(ソフトカバー)
- クリック: 7回
- この商品を含むブログ (7件) を見る
- 作者: 山口徹,Jxck,佐々木大輔,横路隆,加来純一,山本伶,大平武志,米川健一,坂本登史文,若原祥正,和久田龍,平栗遵宜,伊藤直也,佐藤太一,高橋俊幸,海野弘成,五嶋壮晃,佐藤歩,吉村総一郎,橋本翔,舘野祐一,中島聡,渡邊恵太,はまちや2,竹原,河合宜文,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2014/08/23
- メディア: 大型本
- この商品を含むブログを見る
blink(1) mk2を買った
blink(1) mk2 USB RGB LED を同僚と一緒に購入しました。
簡単に説明すると、カラーLEDを制御可能なUSBランプです。ウラとオモテで別々に操作できる2つのカラーLEDを装備しています。
分解するとRGBのフルカラーLEDが見える:
blink1のgithubを見てみると対応している言語が多い!もちろんGo言語も。基本はlibusbで叩く感じです。
Linuxでセットアップ:
Ubuntuでのメモ。
ひとまずリポジトリをclone:
$ git clone https://github.com/todbot/blink1.git
https://github.com/todbot/blink1/tree/master/linux に説明がありますが:
$ sudo cp blink1/linux/51-blink1.rules /etc/udev/rules.d/
をしておくとユーザ権限でblink1を操作できるようになります。
コマンドのビルド:
$ cd blink1/commandline && make
使い方は blink1-tool.md にありますが、ちゃんとした使い方は実装を読むべきようです。
blink1-tool -m 1000 --rgb 255,0,0 # 1秒かけて赤く光る blink1-tool --off # 消灯 blink1-tool -t 1000 -m 200 --rgb 255,0,0 --blink 5 # ぴーかx5
Windows版やMac版ではGUIですぐに動かせます。色を自由に設定できるのは楽しいですね。IFTTTへの連携も簡単にできそうです。
とりあえずやること(アイディア):
- リモートのJenkinsのビルドが失敗したら手元のランプが光る。
- push前のコードのテストがバックグラウンドで失敗したら赤blink、成功したら緑3secとか。
まだまだ暑いですね!
よなよなエール 350ml 4種4缶 クラフトビールお試しセット
- 出版社/メーカー: ヤッホーブルーイング
- メディア:
- 購入: 17人 クリック: 573回
- この商品を含むブログ (5件) を見る
- 出版社/メーカー: ヤッホーブルーイング
- メディア: 食品&飲料
- クリック: 1回
- この商品を含むブログを見る
- 出版社/メーカー: RS Components Ltd (ソースマーキング及び販売 Umemoto LLP)
- メディア: エレクトロニクス
- この商品を含むブログ (12件) を見る
- 出版社/メーカー: raspberrypi.org
- メディア: エレクトロニクス
- この商品を含むブログ (1件) を見る
MacBook Pro 2014 midを買う?
きっかけ
- MacBook Pro 15inch 2011 early が亡くなられた
うちの子もこの病にかかったっぽい。 / “ディスプレイ表示が乱れる。(MacBook Pro early 2011) | Apple サポートコミュニティ” http://t.co/1TfEsebSIs
— atotto (@atotto) 2014, 7月 26
- そしたらちょっと新しいMacBook Proがリリースされた!
おや / 他2コメント http://t.co/0sW5990CSm “アップル、MacBook Pro Retinaを価格据え置きでCPU底上げ、メモリ倍増 ~非Retinaモデルは値下げ - PC Watch” http://t.co/Ub3RV9nOj7
— atotto (@atotto) 2014, 7月 29
なんのお告げか。
RetinaなMacBook Proを買うにあたっての懸念点
- 非光沢ディスプレイを選択できない
- 自分でパーツの交換ができない(ストレージやメモリなど)
- キーボードのストロークが薄っぺらい
などが気になってる。
MacBook Airの13inch買うならPro 13inchかなと思う。厚さも重さもそんなに変わらないし。 Airを買うなら11inchってことになるけど、ディスプレイの比率が横長なのが引っかかるのでパス。もしうわさの12inch MacBook Airが出たら欲しい!けど、まだなので出たときに考えることにする。
だけどそもそも。
いまのマシンをお金をかけずに延命できれば一番いいんだけど…。
そして自分でなんとかするには、ロジックボードを焼き直せばなおせるかもしれないらしいw / “MacBook Proがゾンビ化。オーブンで焼いたら復活し、7ヶ月以上も動作してる” http://t.co/WX7L7Fy2Ia
— atotto (@atotto) 2014, 7月 26
と。ひとまずメモ。
■
golangのテンプレート(例えば text/template)では、FuncMapを使うことで好きな関数を実行できます。ので練習がてら簡単な計算機を作ってみます:
package example_test import ( "bytes" "fmt" "log" "text/template" ) func ExampleTemplateCalculator() { funcMap := template.FuncMap{ "add": func(a, b int) int { return a + b }, "sub": func(a, b int) int { return a - b }, "mul": func(a, b int) int { return a * b }, "div": func(a, b int) int { return a / b }, } var buf bytes.Buffer tp := template.Must(template.New("calculator").Funcs(funcMap).Parse("{{mul (div (sub 3 (add 1 4)) 2) -10}}")) err := tp.Execute(&buf, nil) if err != nil { log.Fatal(err) } fmt.Println(buf.String()) // Output: // 10 }
playgroundはこちら: http://play.golang.org/p/iYlS-L4qQZ