Google AMP Office Hourまとめ
GoogleのAMP オフィスアワーを聞きながらメモしたものです。
動画時系列順にざっくり。
AMPとは
モバイルをさくさくにするためのプロジェクト。サイトの起動時間が3秒以上だと40%のユーザーが離脱(直帰)。早く表示することでUXがよくなる。
業界が必要としているもの
・はやい
・実装が簡単
・モバイルフレンドリー
・オープン
・マネタイズ可能であること
=AMP
AMPはHTMLの新しい仕様(AMP-HTML)を作り、最低限のコードで最低限のことができるようにした。
コンテンツを見やすくし、トラフィックを増やす。
4倍早く、1/8のデータ量で起動できる。
AMPはなぜ早いか。技術的な話。
・JSを削減
・Bandwidthを最適化。適切なサイズの画像を配信するなど。
・同時並行ではなく、ユーザーが見たい順に表示する。
・Googleがキャッシュしている。
国内では、twitter LINE アメーバが対応予定。
AMP対応すべきか
・動的な部分はまだ。
・静的なサイトでは対応推奨。
・AMPか否かはランキング要因ではないが、結果的にUXが向上するので当然評価は高まる。これはAppIndexやモバイルフレンドリーでも同様。
・Google ads以外のネットワークを導入する際には、AMP対応しているかを確認する必要が出てくる。
・AMPのキャッシュは、クロールされた時に更新される。オリジナルページへクロールさせる。
・Googleのデベロッパー向けのStructured Data Testing Tool Google ads以外のネットワークを導入する際には、AMP対応しているかを確認する必要が出てくる。でAMPが問題ないと言われていても、サチコでエラーが出る場合がある。
・AMPのみのサイトも可能。できることが限られるだけ。
・AMP validateを通らなかったものはキャッシュされない。
・サイト内の部分的なAMP対応は可能
プログラミング学習は、コア概念の理解と、ただの暗記を分けたほうがいい。
そうすると捗りそうだなぁと思ったので、文字に起こしておきます。
想定読者は自社のインターン生などプログラミング学習者です。現役エンジニアの方は読んでも面白くないと思いますので予め。
まとめるとこうです。
プログラミング学習は、コアになる概念の理解と、単に暗記すればよい箇所は分けた方が良さそうです。コア概念の理解がすすまないといくら暗記してもハラオチ感がなく、むしろ腹落ち感のために手を動かすのが良いかと思います。
— soya webエンジニア (@soyanaka21) 2016年3月2日
よくみる流れとその問題
「Rubyの文法をドットインストールでやったら、早速Railsでサイトを作ってみよう!」というのがよくあるパターンかと思います。
これだと、動くものができるのでモチベーションを維持しやすいし、なんにせよ完成に近づくのでなかなかいいアプローチだと思います。
しかし一方で、動くものは出来たけど、なぜ動くのかわからないという状態になりがちです。理解して作っているわけではなく、コピペしたコードがたまたま動いたとか、コピペしたコードを真似して書いたコードがたまたま動いたとかの積み重ねにすぎないからです。
繰り返しますが、僕は「とりあえず作ってみよう!」は、よいアプローチだと思っています。ただ、いつかはそこから抜けだして効率的に学ぶ必要があると思っています。
効率的に学ぶには
そこで出てくるのが、冒頭の手法です。
プログラミング学習は、コアになる概念の理解と、単に暗記すればよい箇所は分けた方が良さそうです。コア概念の理解がすすまないといくら暗記してもハラオチ感がなく、むしろ腹落ち感のために手を動かすのが良いかと思います。
— soya webエンジニア (@soyanaka21) 2016年3月2日
たとえばプログラミングが初心者がRubyやRailsを触るなら、オブジェクト指向、オブジェクト、クラス、インスタンス、カプセル化、隠蔽化、MVCといった概念が登場します。これらを全く無視してチュートリアルや検索&コピペを駆使するだけでも、サービスの立ち上げは可能です。
しかし、なぜこうしたら動くのか、なぜこうなっているのか、理解することができません。結局はそれらの概念を理解しなければ大きく前に進むことはないのです。
それの概念がどういうものなのか、どのような経緯で生まれたのか、どのように役立つのかを知ることで、
そうすると、「こういうことが出来そうだな」「こう書くほうがよさそうだな」という日常業務レベルでも役に立ちますし、同じ概念を用いた別のモノを素早く理解できるようになると思います。
コア概念さえ理解できれば、あとはただ暗記すれば良いだけです。
効率よく大量の情報をインプットするだけなので、書籍を計画的にすすめたり、エントリを漁ったりすればよいです。
まずコア概念。つぎに暗記。
手を動かさないと概念が理解できないということはもちろんあると思いますが、理想としてはこの順番だということを念頭に置くと、良いのではと思います。
仕事が捗る「シリコンバレー式・最強の食事」を3ヶ月やってみた。僕なりのベストプラクティス。
「シリコンバレー式最強の食事」、すごい。
最近何かと話題の書籍「シリコンバレー式・最強の食事」。書店でも平積みされています。
ふとしたきっかけで「最強の食事」に出会い、2015年11月下旬から現在まで、3ヶ月ほど実践しています。
ここらで感想と成果、オススメの実践方法をまとめておきたいと思います。
なお、本内容はぼくの体験にもとづいた個人の感想ですので、効果には個人差がある場合がありますので、あしからず。
最強の食事とは?
ざっくり言うと、『最強の食事』は
・作業能率が飛躍的に上がる
・健康になる
ための食事です。僕は『作業能率が飛躍的に上がる』に魅力を感じています。
食材、調理法、食べるタイミングなどに制限があり、正直かなりストイックですし、時間もお金ともにばかにならないコストをかけます。しかしそれを上回って作業能率が高まるので余裕でペイするよというコンセプト。
最強の食事の効力
メリットとしては作業能率の向上があるんですが、実際どのくらい向上するのか気になりますよね。
僕の場合は、日中の作業時間がほぼ全部集中できる時間に変わりました。
お昼すぎに眠くなることも一切ないですし、頭が重くて回らないということも全くないです。
もちろん夜に十分な睡眠と、たまに席を立つなどのリフレッシュは行います。
『最強の食事は』はエンジニアとかなり相性が良いなと思っています。
あとめっちゃ痩せます。悪く言うと筋肉が落ちます。
最強の食事の基本的方針
詳しくは書籍を参照して欲しいのですが、基本的な考えとしては、
- カロリーは良質な油から取るべき。グラスフェッド(牧草で育った牛の乳の)バター、ギー、ココナツオイル、MTCオイル。
- 肉はグラスフェッドミート以外はNG。
- 小麦、大豆、玄米など穀物は『カビ毒』が含まれるのでNG。白米のみ可。
- でんぷん質は夜にちょっとだけ食べること。基本NG。
- 果糖はNG。したがって果物もジュースもNG。
- 穀物を食べて育った肉はNG。グラスフェッド肉はOK。
- 発酵食品は基本NG。
- 乳製品はバター、ギー以外はNG。
- 火を通しすぎるのはNG。茹でるかオーブン100~200度。
- ナッツ類はココナッツ以外はNG。
- お酒は蒸留酒と白ワイン以外NG。
- マグロなど大型の魚はNG。
といったかんじ。かなりキツい。
小麦NGなのがとくにデカイです。小麦食べなくなるとわかりますが、本当に世の中の食べものってほとんど小麦で出来てるんですよ。
純正『最強の食事』では、主なカロリー摂取源はグラスフェッド肉とバターです。
僕の考えた妥協版『最強の食事』
先に言いたいのは、完全に『最強の食事』を実践するのはムリだということです。制限がきつすぎて会食もろくに出来ません。とにかくキツイ。
なによりグラスフェッド肉を用意するのが難しい。するとカロリーが足りない。
[The Meat Guy] グラスフェッドビーフ「牧草飼育牛肉」
そこで僕は少し実践しやすくした妥協版『最強の食事』を考案しまして実践しています。下記です。
- 朝食: 完全無欠コーヒー
- 昼食: 完全無欠サーモンアボカドサラダ
- 夜食: 何を食べても良い
つまり、朝と昼だけ『最強の食事』を実践し、夜は自由!です。
これだとカロリーが足りないので、のどが渇いたらホエイプロテインを飲みます。
1つずつ解説します。
朝食: 完全無欠コーヒー(バターコーヒー)
完全無欠コーヒーは、『最強の食事』を象徴する飲み物です。個人的には、これだけでも取り入れる価値があると思っています。
要はバターを入れてシェイクしたコーヒーです。
用意するもの:
- ミキサー
- コーヒー金属フィルター
- 粗めに挽いたコーヒー豆
- 無塩グラスフェッドバター
- ココナツオイル(任意)
- MTCオイル(任意)
コーヒー豆は、ブレンドではなく単一豆のもの。スペシャリティコーヒーか、自家焙煎してるお店のものを使いましょう。ココナツオイル、MTCオイルは入れ過ぎ注意。バターはグラスフェッドバターがなければ無塩バターで代用できます。
ミキサーは、バター入れて回すと爆発する可能性があるので初回は慎重に。
炭水化物を取らないので眠くならず、昼ごろまでバリバリ働けます。
昼食: 完全無欠サーモンアボカドサラダ
サーモンとアボカドを中心としたサラダです。
用意するもの:
- アボカド 1個
- スモークサーモン 1パック
- オリーブオイル
- リンゴ酢
- 塩
- サラダ菜かレタス
材料を一口大にし、調味料を適量加え、よく和えます。以上。
僕はすべて近所のマルエツで調達しています。
飽きたらサーモンをボイル剥きエビに替えます。ナッパもある程度自由に変えていいですが、ベビーリーフはオススメできません。
夜食: 何を食べても良い
ここで最大の妥協をします。夜は何を食べてもOK。朝昼が低カロリー過ぎるので、最大限食べて明日一日のカロリーを補給します。
なぜこうなったか
まず先にも述べたように、『最強の食事』を完全にキープするのは無理です。社会人としての生活と両立しません。
なのでどこかで妥協して崩す必要があるのですが、夜に崩すのが最も良いです。
- 崩れる要因の1つは会食。人と合うのは昼か夜。
- 1日の必要カロリー的にどこかでガッツリと摂取が必要。
- でんぷんを食べると眠くなり、その後の作業能率が低下する。
などの理由で、夜に崩すのがもっともよいです。
できれば就寝2時間前までに食べて、11時までに寝るのが良いです。
おわりに
これまであまたの人に『最強の食事』を薦めてきましたが、イニシャルコストの高さもあり、今のところ誰ひとりとして実践に至っていないのが実情です。実践した人だけが圧倒的にメリットを享受できるブルーオーシャンなので、飛び込んでみたら良いんじゃないかとおもうんですが...。
本の内容はかなり省略しました。実際には睡眠や運動についても述べられていますし、成分についての解説もあります。
情報量としてはかなり多い本なので、まずはつまみ読みして、それから周回するのが良いかと思います。
まずは巻末の、食べて良い物リストに目を通すと捗るかとおもいます。
よい完全無欠ライフを。
2016/05/14 追記
書き起こし時点ではランチでサーモンアボカドサラダを食べていたのですが、今は食べていません。
オフィス移転に伴い食材の調達と調理コストが上がったこと、かなり体が冷えるなと感じたこと、アボカドがイヤになってきたことなどが理由です。
かわりにトマト、ノーコーヒー・バニララテ、お湯などを摂取しています。お湯は意外と満腹感があります。
市販の卵を使用したゆでたまごも試しましたが、どうやら完全無欠ではなさそうです。
無能役を引き受けること。
こちらのエントリの
自分の評価ではなく、そこに生まれるものが、良いものであるようにとだけ切に願うとき、「無能を晒す」ということが有効に働く場面があることに気づいた。
という表現が気になりました。
結論から言うと、『無能な発言』がかえってよいシチュエーションはたくさんあると僕も思います。
さらに言うと、『無能な発言』がその人の評価を高めることも、しばしあるのかなぁと思いました。
とくに議論が停滞しているときには『無能な発言』の有用さを感じます。
1つには、『無能な発言』とはたいてい基礎的な発言であり、話の根本に立ち返らせる発言でもあるからです。
また1つには、議論の情報量を高めるからです。議論においてだれもしゃべらない時間=ムダな時間であり、その場の情報量を高める『無能な発言』がある方が良いことがあります。しゃべらないよりしゃべったほうがマシ、という話でもあるのですが、実際ミーティング中にだれもしゃべらなくなるタイミングは結構あるように思います。
みんなわかってるはずの、会議の目的をあえてもう一度聞くとか、今決まっていることを再確認するだとかは、傍から見ると無能そのものです。
しかしひとりが無能役を引き受けることで、全体が良い方向へ進むということはやはり頻繁に起きているような気がしています。
有能な無能でありたい。ということで一つ。
MacOSをEl CapitanにアップデートするとSequel ProでSSHできなくなる問題とその解決。
結論
結論から言うと、修正版が出ているのでDLすると良いです。
Sequel Pro 1.1 RC2 - Sequel Pro Blog
安定版ではないのでそのつもりで。
不具合のでた環境
Sequel Pro 1.0.2を使用しつつEl Captanにアップデートしたところ、SSH経由での接続ができなくなりました。(Mavericksからのアップデート)
接続情報は正しいものでした。
詳細を読むと、/を使った接続は許可されていないというエラーが出ています。
不具合の原因
僕の把握している限りでは、El CapitanではSSHの新しいバージョンを採用しており、それが理由だとのことです。新しいバージョンでは/ではなく:を使うことになっているとかで。
開発者によるといわゆる"政治的な"理由だとかで、対応しよっかなぁどうしよっかなぁ、まあでもわかったよとりあえずRC版を出すよ、という感じみたいです。(すごくざっくり意訳したのでちがったらごめんなさい)
とにかく、ありがたいことです。
おわりに
ツールが使えなくなるのを怖がって、いつもOSのアップデートが先にばしにしているんですが、しばらく経てばベータ版で対応できるなと思いました。できるだけ積極的にアップデートしていこう。
「やりたくない」にもっともらしい理由をつけるのはやめようと思った。
「これは僕のすべきことではない」と言いつつ、単にやりたくないだけな自分に出会ったので、文字に起こしておこうと思います。
それがどういう構図で起こるのか、どう対処するのかというお話です。自戒を込めて。
判断の6割は、その環境ににとどまろうとする。
それは絶対にやらないといけないことなんですが、すごく労力がかかることで、できればべつの人にやってほしいことがあるとしましょう。例えば採用です。
とても労力がかかるし、大変です。
採用が会社の成長のボトルネックになっていたとして、やらなきゃいけないねという話になったとします。
でも本心ではやりたいとは思っていなくて、つい「○○が忙しい」「○○の優先度も非常に高いはずだ」などと言ってしまいます。
ここでの心の動きは少なくとも2つあり、
- めんどくさいことから自分を守ろうとしている
- めんどくさいと思っているのがコミュニティに伝わると評価が下がるので、非難から自分を守ろうとしている
といったかんじで、自己防衛しています。今いる環境の居心地がいいので、変化を恐れているんですね。人間はほっとくと今の環境を保とうとする傾向にあるのは、2:6:2の法則などでおなじみかと思います。人は2割しか挑戦したがりません。テコ入れが必要です。
大事なのは、自分の心の動きに気づくこと
本当ならやりたくなさに関係なく、会社の成長のためにやるべきことには情熱をもって取り組むべきだと思います。
しかしそもそも、やりたくないから逃げていることに、自分で気づいていないパターンがかなりあるんじゃないでしょうか。
というか、大抵の場合は自己防衛していることに自分で気づけないように思います。
どう気づくか
気づけるようになるためには、自分は今なぜこの発言をしたのか?守りの姿勢になっていないか?というWhy?を常に問いかけていくことで発見力を上げてくしかなさそうです。
どれだけ問いかけても足りないんだろうなと思います。なんせ8割は日和見かネガティブな選択をしてしまいますからね。
自分に対して素直になって、日々自分に向き合っていく必要があるなと感じます。
おわりに
本件は、個人的な感情で会社の成長から目を背けているというお話なので、視座の高さ的にはかなり低めの話でした。
半人前の志から、ようやく一歩踏み出しましたよということで、反省の意味も込めて文字に起こしておきました。
今後とも邁進しますのでよろしくお願いします。
神々の集い、CTO Night & Day 2015 Winter に行ってきました。
10月の出雲大社みたいな感じでした。
せっかく行ってきたので、今の想いを文章に起こしておこうと思います。
超弩級ボーナスステージ
結論から言いますと、参加してよかったです。
良かったどころの話ではなかったです。素晴らしかった。
個人的には、CTOコミュニティでの認知を取りに行きたかったので、LTやったり、積極的に発言したり、外見の分かりやすさのためにキャップをかぶって行きました。
どれもまあまあ功を奏したのかなと思っています。とくにLTはやって本当に良かったです。
ちなみに普段は帽子もかぶらないし、LTもやりません。お見苦しいところをお見せしました。
全体を通して振り返ると、以下の3点がとりわけ良かったです。
- 今後迎えるフェーズを先取りできた
- 経営者としてのCTOの役割について、CTO同士でディスカッションできた
- 採用の温度感を肌で感じた
1点ずつ振り返りをしたいと思います。
今後迎えるフェーズを先取りできた
未来を見せていただいた3日間でした。
参加されているCTOの方々のほとんどは、人数規模でも事業フェーズでも、何段階も先をゆく方々ばかりでした。僕がこれから体験することをすでにクリアしてきた、海千山千の猛者が揃い踏みです。こんな先輩方と直接お話できるチャンスはなかなかありません。
CTOとしての心構え、エンジニアの評価、人事制度、技術のキャッチアップ方法など勉強させて頂くばかりでした。
僕の方からはあまり面白い話もできなかったと思いますが、先輩方の経験に学ばせていただきました。お話させていただいたCTOのみなさん、本当にありがとうございました。
経営者としてのCTOの役割について、CTO同士でディスカッションできた
イベント中に、アンカンファレンスという催しがありました。これは参加者が議題を出しあって、それについて10人程のグループでディスカッションをするというものでした。
僕は「経営者としてCTOがすべきこと」というテーマに参加しました。
ディスカッションの中で「経営者としてCTOがすべきことは何か?」いくつか結論らしいものは出ました。
- 自分がいなくても自走するエンジニアチームを作る
- 技術視点からの経営判断
などです。しかし僕の中ではなにか違うなという思いがあります。
「アレとこれとそれをやるのがCTO」ではなく、たった一つこれだというものがあるような気がしています。つまり、指針となるたったひとつの行動理念が存在するのではないでしょうか。
「経営者としてすべきこと」と「技術責任者としてすべきこと」というのはそれぞれなんとなく分かるのですが、経営者であり技術者責任者でもある「CTOとしてすべきこと」というのは一体何なのでしょうか。
事業内容やチーム規模によって変わるでしょうし、実際のTODO自体は変動的なものだと思います。
自分の置かれた環境にふさわしい解を見つけることが、今後の課題です。
これについては、BASEの藤川さんもエントリも大変参考になりました。
採用の温度感を肌で感じた
エンジニア採用が難しいと言われる中で、CTOの皆さんが実際どれほどの熱量で採用に取り組まれているのかを肌で感じました。
その水準でいうと、僕が今までやっていたのは採用活動ではありませんでした。
結局のところ、かけたコストと熱量が結果として返ってくるみたいです。
カンファレンスでは「Pingを欠かさない」と表現されていましたが、一緒に働きたい人にLove Callを送り続けることの重要さを知りました。
札束での殴り合いによるエンジニア争奪戦に参加することは出来ないので、地道にロビー活動を頑張っていくほかありません。
一方でオフショアやリモートを視野に入れていくことも必要だなと感じました。
おわりに
3日間でかなり視座の高さを上げていただきました。僕のような若輩CTOこそ参加すべきイベントです。(一方で若輩CTOが少ないからこそのクオリティの高さがあるのですが。)
某CTOさんとのお話でもありましたが、視座の高さがビジョンの大きさやメタゲーム的な勝利に繋がると思います。
引き続き邁進していきますので皆様よろしくお願いします。