radioc@?

レディオキャットハテナ

【読書メモ】職場が生きる 人が育つ「経験学習」入門

「経験学習」入門

「経験学習」入門

タイトルからわかるようにどちらかというとチームの学習や成長のためにマネジメント視点で読んだ本ですが、個人の学習や成長のためにも役立つ内容だと思いました。人が経験から学び成長していくために、どう考えて、どういう行動に移していくべきか、ヒントを与えてくれる書籍です。

経験学習

アメリカの組織行動学者であるデビット・コルブが体系化した「経験学習モデル」が由来となっています。

f:id:radiocat:20190525163550p:plain

図:コルブの経験学習モデル

コルブ氏によると人は4段階の経験を繰り返すことで学習していくとしています。本書ではこれらの4段階をわかりやすくするため次のように説明しています。

  • 能動的実験
    • 新しい状況に適用する
  • 具体的経験
    • 具体的経験をする
  • 省察的観察
    • 内省する
  • 抽象的概念化
    • 教訓を引き出す

経験から学ぶ力のモデル

著者は経験から学ぶ力のことを次のように表現しています。

適切な「思い」と「つながり」を大切にし、「挑戦し、振り返り、楽しみながら」仕事をするとき、経験から多くのことを学ぶことができる

f:id:radiocat:20190525163617p:plain
経験から学ぶ力のモデル

ストレッチ

まずは能動的実験、具体的経験をするためにストレッチが重要です。つまり適度に挑戦できる課題に取り組むということです。そのための方略として次の3つをあげています。

  1. 挑戦するための土台を作る
  2. 周囲の信頼を得てストレッチ経験を呼び込む
  3. できることをテコにして挑戦を広げる

ストレッチの必要性の説明として「ノウイング(Knowing)」というキーワードが紹介されています。ノウイングとは「知識は他者の知識や書物から移転されるものではない」として、それらを道具として自身で新たに生み出す行為のことです。自分で考えて知を生み出すためにストレッチが重要なのです。

※「ノウイング(Knowing)」に関する参考

hrd.php.co.jp

リフレクション

リフレクションとは内省のことです。方略は次の3つと述べています。

  1. 行為の中で内省する
  2. 他者からフィードバックを求める
  3. 批判にオープンになり未来につなげる

ここでは「内省的実践」というキーワードについて述べています。

仕事や問題の本質を考えながら、自分の行為を振り返り、自分の持論やノウハウを問い直すこと

これは反省的実践などとも呼ばれ、ドナルド・ショーン氏による組織学理論のひとつです。

ja.wikipedia.org

エンジョイメント

最後に重要なのが「楽しむ」ということです。経験学習モデルをなぞるだけの修行のような作業だとつらいものになりがちなので次の3つの方略で楽しむことも重要であるとしています。

  1. 集中し、面白さの兆候を見逃さない
  2. 仕事の背景を考え、意味を見いだす
  3. 達観して、後から来る喜びを待つ

ここでは「内発的動機づけ」や「フロー理論」というキーワードが出てきます。これらは 過去の読書メモにもあるモチベーションに関するもの で、昨今様々なところで出てくる言葉なので割愛します。

思いとつながり

経験学習による成長をドライブさせる重要な要素として「思い」と「つながり」をあげています。「思い」は自分と他者の両方の思いがあり、それがストレッチ、リフレクション、エンジョイメントを高めるとしています。自分だけでなく他者も含めている理由としてプロフェッショナリズム研究について触れています。

プロフェッショナリズム

高度な知識やスキルを持つと同時に、社会や他者に奉仕する気持ちを持っていることが、プロフェッショナルの条件

最後に、「思い」を持続的に発展させる重要な要素として「つながり」をあげています。自分や他者への思いをつなぐものを「発達的ネットワーク」とし、勉強会などの職場外のつながりをつくることが重要であるとしています。

学ぶ力を育てるOJT

後半の2章で具体的な指導法や実践的なツールが紹介されています。上記の内容に興味を持って実践に繋げたいならば、ここはぜひ書籍を読むべきと思いますので割愛します。ダイヤモンド・オンラインで著者自身がいくつか紹介している記事があるので参考にすると良いでしょう。

diamond.jp

【勉強会メモ】I/O Extended 2019 Osaka by GDG Kyoto

gdgkyoto.connpass.com

  • 日時:2019/05/18(土) 13:30 〜 18:00
  • 場所:近畿大学

毎年恒例のGoogle I/O開催後のコミュニティによる報告会です。

events.google.com

Google I/O自体と、各コミュニティ活動の紹介、会場の様子などの紹介もありましたがこのブログは技術メモをアウトプットすることが目的ですので割愛させてください。

f:id:radiocat:20190518234023p:plain

ステッカーとスプーンを頂きました。

Assistantや検索関連のトピックについて

田中洋一郎さん

docs.google.com

For Assistant Users...

Google Assistant

  • 35 months
    • 8⇒30 languages
    • 14⇒80countries
  • 今までは話しかけると音が全部サーバに送られていた
  • 音声認識のデータが100GB必要だった
    • ⇒0.5GBになった
    • スマホ端末のアプリに入るようになった
  • ユーザーが今まで行ったことを加味して応答
  • アラームを止めるときに「OK Google」不要

www.youtube.com

  • カーナビ

    • MapとAssistantの連携強化
    • ナビをしながらOK Google
    • Google Assisntant Driving mode
  • Google Home Hub

    • ⇒Nest Hubに名前変わった(理由は不明)

Duplex on the web

  • Web操作をAssistantに言葉で指示して操作できる
  • RPAっぽい動作を言葉で指示
  • SEO⇒Duplexも考慮が必要
  • Search ConsoleでDulplexが来ても良いかという設定ができるようになる

Nest Hub Max

  • カメラつき
  • カメラに対してジェスチャで操作
  • 日本で発売

www.itmedia.co.jp

For action developers....

  • Content Owner:Markup, Template, Mini-apps
  • Android app dev:App Actions
  • Hardware: Smart Home
  • Innovator: Conversation Actions, Interactive Canvas

FAQ content

  • Google検索結果のWebやHubの表示にHowToを埋める

動画の場合

  • Google Spreadsheetに埋める

www.suzukikenichi.com

Mini-apps

  • キーノートでは言われていないが個別のセッションで発表
  • 検索結果にWebページを組み込める
    • JSなどインタラクティブな動作も可能
    • 検索結果の画面に翻訳結果が埋め込まれているがそれと同じようなことができる
  • アーリーアダプタープログラム

venturebeat.com

www.youtube.com

App Actions

  • Assisnantにジョギングするというとジョギング用のアプリが起動
  • action.xmlに設定して呼び出されたときのアプリを指定

Smart Home

  • 家電などの連携強化⇒デバイスの種類が増えた

https://developers.google.com/actions/smarthome/reference/rpc/?hl=ja

  • Two Integration Paths
    • Local Home SDK
      • 家電メーカーのクラウドを介さずに直接自分の家電を操作できる

Interactive Canvas

  • スマートホームの画面を使ったアプリが作れる
  • まずはゲーム
    • ゲーム以外はリジェクトされる

developers.google.com

TPU Pods、AutoML、TensorFlowの新機能、機械学習における公平性について

ほとんど Cloud Nextで発表済み

Cloud TPU Pods

  • TPU
    • Google製のMLに特化したチップ
    • v2とv3
    • bfloat16という型を使う
    • IOが発生しない
    • 時間あたりのコストは高いが処理が早く完了するのでその分安くなる

TPU Pods

  • Public Betaになった
  • TPUクラスタ
  • RestNet-50の訓練を7.9分で完了
    • コストも38%安く済む

AutoML

cloud.google.com

Cutting Edge of TensorFlow

  • TensorFlow関連のライブラリが豊富

MLの公平性

Google AI Principles

pair.withgoogle.com

プロダクトデザインは全ての人のニーズに合わせて決められるわけではない

  • データの公平性
  • メトリクスをどう切るか
  • モデルのつくり方

事例

  • 多様性のあるデータを集める
  • 苦手な部分のサンプルを集める
  • データのグループ間でデータが違わないように誤差を設計
  • 表示のデザインで解決させる(アミーゴとアミーガなど男女両方を提示する)
  • Data Cards / Model Cards
  • Fairness Indicator
    • 精度と一緒に差別性が表示される

Android+ML

Android関係の発表

Android Platform

  • Storage
  • Security
  • Dark theme
  • Bubbles

Android Studio

  • UI Tools
  • Debug Tools

Android Jetpack

Google 開発者サービス

  • In-app Update
    • アプリ内で細かいアップデートのチェックをしなくても良い

Google Play

  • Internal App Sharing
    • 社内向けアプリの配布

Women Technmakers in I/O 2019

Rie Kanetakaさん

Tech界の女性交流のための Women Techmakersプログラムの催しも行われた

www.womentechmakers.com

Flutterについてちょっとしたこと

blog.google

96と97で紹介

Developer Quest

github.com

Dart:Non Nullable Type

  • int? にするとNon Nullable Typeになる

Android Q対応

furusinさん

www.slideshare.net

  • Gesturel Navigation
  • Dark Theme
  • SYSTEM_ALERT_WINDOW deprecated
  • android.perference deprecated
  • など

Gesturel Navigationについて

www.youtube.com

画面遷移などのジェスチャー Navigation Bar

なぜ生まれたか?

Navigation Barはめーかーによってデザインが異なるためアプリ開発は難しくなってきている そのためベースを統一したかった

Gestureは2種類

  • 画面左右からスワイプで戻る
  • 画面下部からスワイプでアプリ切り替え
    • 必須
    • 指を離したらonPause⇒onStopが呼ばれる

将来的には2種類のVav Mode

  • 3-button
  • Full Nav

UIをedge-to-edgeにする

  • Status Barの後ろにも描画推奨
  • Navigation Barの後ろも描画(強く推奨)

古いOSバージョンはNavigation Barを半透明に

  • ScrollViewとかは一番したにNavigationBarの分の余白を追加
  • 3Button Navigation barの場合はボタンの位置を上に

Gestureと競合するものをいい感じにする

  • 画面の端にドラックできるもの
    • View.setSystemGestureExclusionRectsを奪う
    • OnLayoutまたはonDrawで呼ぶ

Dark Theme

  • アプリをより暗い環境でも使いやすくするため
  • バッテリーを守る
  • 目の保養

2種類の対応方法

  • Force Dark
    • Dark Modeのときに自動的にダークモードを適用する
  • Custom Dark
    • ダークモードのときに何色にするかを指定
    • *-night リソースを作ることができる

ほか

  • 画像もダークテーマ対応が必要
  • アプリではテーマを選べるようにすべき

補足

  • アプリ起動時にDark ThemeのON/OFFを切り替えるとアプリが再起動される
  • ライフサイクルの考慮が必要

  • Gestural Navigation

    • アプリは画面全体に表示
    • 左右はあける
    • DrawerLayoutはAndroidXでいい感じにしてくれる
    • どうしても左右にものを起きたい場合はsetSystemGesture~を使う
  • Dark Theme
    • Force Darkで意外となんとかなる
    • アプリでテーマを選べるようにすべき
    • 画像もダークテーマ対応がいつよう
    • 対応しないという選択肢は無い

【勉強会メモ】アジャイル時代のチームやリーダーシップ

devlove-kansai.doorkeeper.jp

PCを持参するのを忘れたのでかなり雑なまとめです。すみません。 アジャイルとは離れたところからじっくりとあきらめずに体制や仕組みを変えていく試行錯誤は参考になる部分が多く、若手中心でチームを組んでスクラムを学ぶ取り組みなどは私も取り組んだことがあるのでとても共感できました。

アジャイル時代のチームやリーダーシップ

岡島 幸男さん

アジャイルの普及に伴うチーム・リーダー像の変化

f:id:radiocat:20190518004655p:plain

新しい組織の形とアジャイル

特攻野郎

リーダーのメンタルモデル

f:id:radiocat:20190518004354p:plain

現場リーダーの技術が使えたケース

f:id:radiocat:20190518005050p:plain

アジャイルな組織変革の具体例

ヒーロー育てる育成の仕組み

入社3年目までが主役となる育成の仕組み

f:id:radiocat:20190518005239p:plain

継続的なサポート

  • 拠り所はスクラム
  • 事業部運営チームの改善

f:id:radiocat:20190518005419p:plain

異文化との融合

ウォーターフォールからアジャイル

チームのトランスフォーム

f:id:radiocat:20190518005510p:plain

フラット化したチームを定着させる

f:id:radiocat:20190518005635p:plain

ウォーター・スクラム・フォール

f:id:radiocat:20190518005733p:plain

  • Todo,Doing,Doneが上から下へ流れる
  • 契約はWFで受託して徐々にスクラムを覚える

技術トランスファ

業務SEからWebエンジニアへ

f:id:radiocat:20190518005910p:plain

実践フェーズ

f:id:radiocat:20190518010011p:plain

技術トランスファのポイント

f:id:radiocat:20190518010131p:plain

アジャイル時代のエンジニア

f:id:radiocat:20190518010225p:plain

【勉強会メモ】GCPUG Kansai 〜 Cloud Next Extended ~

gcpug-osaka.connpass.com

  • 日時:2019/05/14(火) 19:00 〜 22:00
  • 場所:グランフロント大阪 ナレッジキャピタル ナレッジサロン プレゼンテーションラウンジ

4月に開催された Google Cloud Next '19 San Francisco の振り返りイベントです。開催当日に大阪リージョンがローンチという記念日的なイベントでもありました。

cloudplatform-jp.googleblog.com

発表を聞きながら調べたネット上の参考情報のリンクも添えておきます。私が独自に調べたものなので発表者の意図に沿っていないものはあるかもしれませんがご了承ください。

Anthos, Cloud Run, & GKE Sandbox

Google Ian Lewis さん

Anthos(アンソス)

cloud.google.com

  • アプリケーションをモダナイズ
  • ポリシーオートメーション
  • 一貫したエクスペリエンス
    • オンプレでGKEを使う機能も含まれている

www.publickey1.jp

Istio

istio.io

  • Service Mesh
    • TLS⇒プロキシ間の通信
    • Service Registry⇒サービスの依存関係
    • Authentication⇒リクエストの認証
    • Policy⇒提供のポリシー

qiita.com

GKE On-Prem

  • GKEの使い方をオンプレでも可能になる

Anthos Configuration Management

  • Config Management
  • Git push-to-deploy

Cloud Run

  • サーバレスプラットフォーム
  • コンテナイメージを使ってサーバレスを実現

www.publickey1.jp

Serverless containers, where you want them

  • Cloud Run
  • Cloud Run on GKE

Knativeベース

cloud.google.com

  • HTTPのイベントに応じてスケール
  • Knative自体はk8sベース

www.apps-gcp.com

GKE Sandbox beta

cloud.google.com

  • 信頼されていないコードを動かすランタイム環境

gVisor

  • GKE Sandboxの中で使っている
  • Linuxを偽装したようなOSのカーネルになる

www.publickey1.jp

機械学習関連

Google 佐藤 一憲 さん

AutoML Tables Beta

cloud.google.com

機械学習技術により自動化

  • 学習
  • 学習データの評価
  • 型の自動認識
  • 欠損値の埋め方、外れ値の検出
  • モデルの選択
  • 機械学習の開発のための機械学習を使う
  • Kaggleのお題をAutoMLを使ってやらせたら上位500位ぐらいに入る

medium.com

AI Platform

cloud.google.com

  • データサイエンティスト向け機能

AI Hub

cloud.google.com

  • 公開されているNotebookのサンプルをボタン1つで自分のGCP内で開いて試せる

AI Platform Notebooks

cloud.google.com

  • BigQueryやTensorflowなどを使って試せる

Kubeflow

  • コンテナ型で機械学習が動く
  • ローカルとAI PlatformとKubeflowとでコードが変わるのを統一化

BQML

cloud.google.com

  • Tensorflowが使えるようになった

medium.com

  • BigQuery上で画像検索
  • 画像の特徴が似ているものを見つける

Cloud TPU Pods

※おまけ:I/O 2019で発表

  • Cloud TPU Podを使ったスパコンができた
  • v2とv3
  • GPUよりコストが安い

gigazine.net

A cloud made for Osaka

Google Kirill Tropin さん

  • 大阪リージョンについての説明(英語)
  • 大阪リージョンを使ったGCPのデモ
  • VMのスナップショットを東京・大阪間で共有してそれぞれで保管できる

f:id:radiocat:20190515002512p:plain


LT

Cloud Run -Quickstartの1歩先-

ちまめ@rito さん

speakerdeck.com

Quickstart Cloud Run

cloud.google.com

  • 要は以下の2コマンド

    • gcloud builds submit
    • gcloud beta run deploy
  • 実際のアプリケーションはそうはいかない

  • 特にデータを使うやつ⇒Cloud SQL

Cloud SQLへの接続

  • Cloud SQL proxy使ってつなぐ
  • 実行するDockerイメージにオプション付与
  • --add-cloudsql-instancesオプションにより実行するDockerコンテナにCloud SQL Proxyが自動的に設定される

アプリケーションからの接続

  • Cloud SQL Proxyの設定をすることで
  • /cloudsql/以下のパスにunix cocketファイルが生成されるので接続する

gcloud builds submit でのもうひとつの課題

  • Dockerイメージビルドが常にフルビルド
  • キャッシュがきかない

Kaniko

github.com

使い方

  • コマンド
  • ビルド設定のyamlファイル

これだけで2分30秒⇒30秒になった

まだ完璧ではない

  • Cloud Memory Sotre使えない
  • VPC対応は時間がかかる

GCP大阪リージョンとレイテンシ

salamander さん

docs.google.com

GCP ping で簡単にレイテンシ計測

  • だいたい東京・大阪は8ms
  • 自宅とGCP大阪は16ms
  • Azure西日本(大阪)とGCP大阪は17ms
  • AWS大阪とGCP大阪1ms
  • さくら大阪とGCP大阪2ms

なぜ?

  • 自宅からGCP大阪経路
    • 東京のエッジルータにパケットが迂回している
  • GCP大坂からAzure西日本の経路も東京のエッジルータを迂回している
  • 自宅からyoutubeなどは5ms
    • 東京を迂回しない

まとめ

  • 大阪リージョンができたからといって必ずしもレイテンシが小さくなるとは限らない
  • 時間がたてば大阪にもエッジルーターができて改善されるかも

【勉強会メモ】関西Node学園 6時限目

nodejs.connpass.com

Node.js v12 Notable Changes

@shisama_ さん

speakerdeck.com

遅れて参加したので残念ながら聞けませんでしたが発表資料にもあるブログ記事も含めて、いつもためになる情報を発信していただきとても助かっております。

shisama.hatenablog.com

半年がかりでNode.jsにコミットして得たもの

@koh110 さん

speakerdeck.com

こちらも最後のほうしか聞けませんでした。Node本家へPRを出してマージしてもらうまでの話のようでした。

eslintでtypescript

@zilch8 さん

eslint

eslint.org

  • JSのLinter
  • 単体ではTypeScript非対応

tslint

palantir.github.io

  • TSのlinter
  • TS界ではeslintの代わりに使われてきた

ある日

というわけでやってみよう

tslintを使ったプロジェクトを作成して(あとから)eslintで動くようにしてみる

  • tslint導入
    • .tsファイルに怒られそうなコードを書いてみる
    • 無事にエラーが出た
  • eslintでも発生するようにしてみる
    • eslint導入&実行
    • eslintrcにparser追記
  • eslintがTSを解釈できるようになってlintエラー発生
    • 若干エラーの内容が違う
    • tslintにあったルールが不足
  • tslintのルール⇒eslintのルールへ
    • ルールの置き換え

github.com

所感

  • TSでeslintが動くようにするのは簡単
  • ルールの置き換えが大変
  • 既存PJで置き換えはつらそう
  • eslintだとまだ処理が重い?
  • 近い将来に期待

Node.jsサーバアプリケーションの稼働方法

@akkun_choi さん

基本

  • httpモジュールを使えばたった数行でサーバが動く

nodeコマンド

  • 基本的にシングルプロセス、シングルスレッド
  • エラー等でプロセスが落ちると停止してしまう
  • 更新する際にダウンタイムが発生

プロセスマネージャ

  • expressjs.comより

http://expressjs.com/ja/advanced/pm.html

PM2

http://pm2.keymetrics.io/

  • Node.js製のプロセスマネージャ
  • インストール、起動簡単

デプロイ

  • 設定ファイルに記述してコマンド実行
  • ゼロダウンタイムで更新可能
  • capistranoとの相性が悪い

自動起動

  • サーバ起動時に自動的にプロセスを起動する
  • 各OSに合わせた自動起動設定を生成するコマンドが用意されている

マルチプロセス

  • CPUリソースを最大限使うため
  • ワーカープロセスが1つ停止しても、他のプロセスで動作
  • デメリット
    • プロセス無いのデータやイメンドは共有されない
    • Redis等で共有する

負荷分散を自分でやる⇒forkモード 負荷分散をpm2に任せたい⇒clusterモード

nodeの起動はpm2で事足りる マルチプロセスにする場合はモードの違いに注意

サーバアーキテクチャ

  • シングルプロセス・シングルサーバ
    • 最もシンプル
    • 開発環境、プロトタイプ向け
  • マルチプロセス・シングルサーバ
    • 手軽にスケールアップしたい、可用性を上げたい
    • forkモードならロードバランサ必要
  • シングルプロセス・マルチサーバ
    • サーバ側の構成
    • シンプルでスケールアウト
  • マルチプロセス・マルチサーバ
    • マルチコアサーバで負荷分散したい
    • forkモードで動かすと面倒

AWS ESC x Node.js

  • DockerとNode.jsの相性が良い
    • どちらも基本はシングルプロセス
    • Node.jsコンテナだけでWebサーバコンテナが動く
  • 複数サーバ構成が抱える課題
    • デプロイ
    • ログ収集
    • スケールアウト
    • サーバ構成管理

ローリング更新

  1. 新しいバージョンを起動
  2. 新しいバージョンの疎通が確認できれば旧バージョンを止める

ECSコンテナの自動復旧

まとめ

  • pm2でサーバ運用の大部分は解決できる
  • 用途にあった構築

tsxJavaScriptで綺麗に構文強調したい+おまけ

@mochiya98 さん

m98.be

Webで動くVSCodeのエディタ

microsoft.github.io

ハイライトだけではなくマウスオーバーでの型表示などVSCodeのあれこれがWebで使える?⇒そうはいかない

  • とても重い
  • 3MB超

Monarch

  • Monaco Editorの字句解析器
  • これとハイライト機能だけほしい

standalone-monarch

  • 必要なものだけ取り出した

github.com

VSCodeと違う⇒Tokenizerが違う

tmLanguage#とは

VSCodeのTokenizer

  • JS版のOnigurumaは?
  • WASMのOnigurumaがあるらしい
  • Oniasm使用

github.com

shiki

  • Oniasm/tmLanguageのライブラリ

shiki.matsu.io

おまけ:バンドルサイズを半減させた話

  • Reactはデカイ
  • Preactに移行

github.com

  • 実際のところ少しだけ挙動が違う
  • 一部ライブラリはそのままあじゃ動かない
  • Preact特有のバグに対応しづらい
  • 簡単なWebアプリなら良さそう

便利で危ない npm install

@dos_pg さん

npm install

  • 1,000万以上のオープンソースからほしい機能のパッケージをプロジェクトに導入
  • 依存関係を一括導入
  • 一気に更新

インストールするパッケージどうやって選ぶか?

パッケージの危険性

  • Node.jsはOSへの操作が可能
  • 信用できるパッケージのみ使おう

昨年、想定していなかったインシデントが起きた

  • event-streamから参照されていたパッケージ
  • 別名:Coin Steal
  • OSSウォレットアプリのCopayを狙ったマルウェア
  • Copayビルド時にアカウント情報を送信するコードを挿入する

対策は難しい

  • npm audit があるが全ては検知できない
  • ニュース等をチェック

※参考

qiita.com

qiita.com

ニュース

gigazine.net