BuriKaigi2018 に参加してきた

toyama-eng.connpass.com

今年もBuriKaigiに参加してきました。
天気はぎりぎりでしたが、富山県のそれも氷見市に豪華なスピーカーがたくさんでした。

今年も、私は Java+α の部屋にずっといて、Javaやら、その他もろもろやらの話を聞きました。

JavaOne 2017フィードバック - JDKリリースモデル変更とJava EEEclipse Foundationへの移行

Oracleの伊藤さんによる、2017年10月にあった、JavaOneの振り返り。
ここ最近のキーワードはNimbleだそうで、軽量だったり俊敏だったりという意味。
これもあって、JDKのリリースサイクルの話になったのか?

Java EEの策定は、OracleからEclipse Foundationに移動したらしい。
直接EEを使うことはあんまり無いけど、Oracleから距離を置くのは、良いことなのやら、悪いことなのやら。。。

で、JDKのリリースモデルの話。

時系列に沿った、各バージョンのライフサイクル。

結構衝撃的な内容かと。
JDK8は、従来よりちょっと延命されて、それでも2019年1月になってしまうと、バグ・セキュリティホールの修正といったものが配布されない模様。(要確認?
そして、今後は、

  • 基本的にはOpenJDKの最新版に追従。ただし、次のバージョンが出たら、可能な限り早急にバージョンアップを行う。(その時点から修正が入らなくなってしまうため)
  • Oracleにお金を払い、OracleJDKのLTSバージョンを利用する。ただし、JDK11の次はJDK17を利用することになる。

になるっぽい?

で、次のJigsawのときにも話してたけど、コンサバに行くのであれば、今のところはJDK8を使い続けつつ、Jigsawの影響はでかいのでそれの対応準備だけしておいて、JDK11を待つ。(順次、10, 11の準備も必要)
で、JDK11が出たら、Oracleにお金を払いつつ、OracleJDKを利用する形にバージョンアップ。
それ以降は、3年間隔ぐらいで、新しいLTSに乗り換えていく。みたいな風になりそう?

上記に関連して、今までは各バージョンにいろいろ入れようとしすぎて?リリースが2年超えて4年とか空いていたけど、次からは6ヶ月単位でリリースするらしい。間に合わない機能などは、次のリリースに持ち越し。
Rubyも毎年クリスマスにバージョンアップしてますしね)

いちおう、JDK8の個人利用は2020年12月まで可能とのこと。
ただ、企業での開発・運用には使えないので、本当にホビー要素か、官公庁?などの公共サービスでは使えるらしい。

モジュール移行の課題と対策

上記でもちらっと出てきた、JDK9にする時の難所、Jigsawに関する話。
Java in the Box の櫻庭さんの話。

スライドはこちら。 モジュール移行の課題と対策

JigsawをJavaの機能として導入した動機としては、

  • -classpath の問題。ライブラリが並列に大量に並んだり、publicがpublic過ぎ(パッケージ間では公開したいが、モジュール外部には公開しない、といったことができない)
  • rt.jarのサイズの問題。640MByteぐらいあったので、小さなアプリケーションでも、動かすときは大きなバイナリになってしまっていた。

moduleを作るのは、jdepsとかのツールを使えば比較的かんたんに行えるが、運用していくのはつらいらしい。

-add-exports-add-modulesといったオプションを駆使していくことで、JDK9でも動作するように出来る。らしい。

Running Kubernetes on Azure

ほとんどのMicrosoft MVPが.NET側の会場にいる中、+αとしてKubernetesをAzureで動かす話。 仙台から、JAZUG 東北から来ていただいた、 山本 誠樹さん。(今回のスピーカーには、「山本」さんが多い。。)

スライドはこちら。 Running Kubernetes on Azure

実は2013年には登場しており、VISAカードのインフラにもなっているDockerは、そろそろ手をつけないと。。。

また、コンテナ管理・運用ツールとしては、Kubernetes(k8s)が事実上の標準に。

Azure上で動かす場合は、Azure Container Service (AKS)を使うのが最新で、おすすめということでしたが、日本リージョンはまだ無いらしい。また、GAになってないらしい。
ただ、そのうちGAにもなるし、日本にも来るはず。たぶん。

従来のPaaSは、簡単に始めて運用できるが、複雑なことが出来ない。 これからはPaaS上でDockerを動かし、複雑なこともコード化して管理できる。Infrastructure as a Code的な。になるだろう。とのこと。

日本語入力の落とし穴

休憩挟んで、mzpさんによる「日本語入力」の話。
名古屋から来て、ちゃんとMisocaの宣伝もしてました。

スライドとか、詳しい内容はこちら。 🐟日本語入力の落とし穴 #burikaigi - みずぴー日記

日本語入力とか、パスワードとかクレジットカード情報とか全部通過させてて怖くない?私は自分が作ってるからいいけど。とのこと。
たしかにーw

SKKについて話が出てたけど、「「Lを押したらLが入力された」問題」って、何を言っているかわからないw
とりあえず、変わったことをやろうと思ったら、本気で取り組まないと行けないんだな、、、と思いました。まる。

16枚目のスライドで、ハングルの入力例が出てたけど、初めて知った。
英語的に直接入力してるか、日本語的に変換してると思ってたから、それ以外にもあることに驚き。

「確定する前の文字列」や「入力メソッド用のキー」という概念が英語圏などには無く、日中韓が連携して入力メソッド周りを良くしていく必要があるそうな。

JetBrainsでもっと楽しくコーディング、ワークフロー

株式会社サムライズムの山本ゆうすけさん。 個人的にはTwitter4Jを作ったすごい人、最近はIka4Jというのも作ってるそうな。

まずはJetBrainsの、IDE以外の製品について。

YouTrackは課題トラッキングツールでRedmineとかJIRAみたいなもの。
keyboardでの操作が強く、Agile Boardもついてる。

Upsourceはコードレビューツール。GitHubにもついてるもの。
ただ、こちらはJetBrains製品だけあって、サーバ側で参照を解決しており、宣言に飛んだりをWEB上で出来る。

TeamCityはJenkinsやCircleCIみたいなCIツール。
ただ、IDEに引きこもってる人にとっては、IDE上で通知が出てきたりして便利。

Excel芸2018

名古屋から来られた、 bleis さん。
Excelはプレゼンソフト、ということで、発表資料自体がExcelで作られてました。
ただ、Excelを直接編集して作成したわけではなく、プログラマらしく?Markdown風に書いて、それを変換して出力してるらしい。

Excel方眼紙が仕方なく必要になる場面はあるけど、プログラマらしく技術の力でそれに立ち向かうべき。
他の形式で資料を作成しつつ、最終出力としてExcelを出せば良い。
(ただし、"最終"と言っているように、出力結果のExcelを触ることは想定しない)

Excel出力といえば、JavaならPOI。
ただ、APIが低レベルすぎ、Excel自体が多機能なのでPOIも多機能。
ここも、ラッパーライブラリを作ることで対応できる。

POIとの接続部分は副作用の塊になってしまうので、影響範囲を抑えつつ、
それ以外の場所ではScalaらしい関数型の副作用の無い世界で実装されてた。

Asciidocの紹介

個人的には うさぎ組 のテスト系ですごく刺激をもらっている kyon_mm さん。 今回は、Asciidocの紹介。

設計書などの仕様の共有にはExcelがよく使われてたりしますが、Gitでの管理がやりづらい。
Wikiとかで書いてもいいが、Gitのコードの変更とつなげるのは面倒。(Atlassianの製品で揃えたりしたら出来なくはないけど)
というわけで、プレーンテキストでコードと同じように管理しつつ、見やすい形に変換できればいい。
さらに、エンジニア以外(マネージャとか経営陣?)とかでも、簡単にインストール出来るものが良い。

というわけで、Asciidocの紹介。

  • オライリーの書籍などでも使われている=本が作れるぐらいの表現力がある。
  • プレーンテキストで記述して、RubyJREがあればHTMLに変換可能。
  • テーブルなどもデフォルトで定義されている。(Markdownのテーブルは拡張機能。)
    • テーブルの記述方法が人間にやさしい。(Markdownは各セルが横に並んでいくので、追加などはしづらい。)
  • HTML変換でき、動画埋め込みなども柔軟に出来る。
  • 画像のサイズ指定が出来る。
  • PlantUMLで図が書ける。(graphvizと拡張のgemは必要)

kyonさんの会社でもすでに、受託案件のユーザガイドをAsciiDocで納品してたり、
お客さんがいつの間にか使い始めてたりしているそう。

PDFにするのであれば、HTML変換してからChromeでPDF保存がおすすめとのこと。

便利そうなので使ってみたいが、このあたりは関係者全員の理解が無いと難しいので、先は長そう。。。
とりあえず、個人的に使って見るところから始めようと思います。

まとめ

今年も、内容の濃い・バライティに富んだセッションでした。
また、人数が多すぎない(良いのか?)ので、スピーカーとも比較的距離が近く、良かったです。

個人的な反省としては、この記事を書き上げるまでに一週間かかってしまい、記憶が薄れてしまったので、
今度からはもっと新鮮なうちに記事を書かねば。。。と思いました。ブリだけに。

あとは、聞きながら取ったメモをそのまま貼り付けておきます

## JavaOne 2017フィードバック - JDKリリースモデル変更とJava EEのEclipse Foundationへの移行

JavaOneは2017年の10月に開催。
キーワード:Open, Evolving, Nimble, Scalable
Nimbleが追加。軽量化・俊敏性などの意味。

Java EE
8 Available, Open, Nimble

EEはEclipse Foundationから発表される。

Java SE
9 Available, OpenJDK, Cadence

### JDK 新しいリリースモデル
2018/1/30現在

JDK7の段階で、Coin, Lambda, Jigsawが計画されていた。
7: Coinの一部
8: Coinの一部、Lambda
9: Milling Coin, Jigsaw

JDK9は、過去最多の機能追加。
7, 8, 9と倍々ぐらいに増えてる。
リリースの間は、機能追加はほぼ無かった。(リリース間隔が長い)
他の言語は、リリース間隔がもっと短い。

#### 従来のリリースモデル
メジャーバージョンは、2年に一度を目標。
Oracle JDKの後継バージョンのリリース後、1年の無償サポート
更新リリースは3ヶ月後。基本的にはメンテナンス用のアップデート。(limited updateもあった)
有償で長期サポートもあった。

#### 新しいリリースモデル
機能リリースが6ヶ月に一度(固定) 3, 9月
無償で使うものは、基本的にOpenJDK。後継バージョンのリリースまでの6ヶ月間の無償サポート。
JDK9, 10は試用期間的な感じ。
完成した機能からリリース。予定されていたものが間に合わなくても、リリースはする。
リリースの重複期間がなくなる。
OpenJDKとOracleJDKの技術的な差分をなくす(2018年後半)

更新リリースは今まで通り。ただし、limited updateは入らない。

長期サポート(LTS) 2018年9月から開始。(JDK11に該当)
OracleJDのバイナリ(有償)
8年の長期サポートの提供。

JDK8の無償期間が伸びた。2019年1月まで、無償期間。
個人利用は2020年12月まで。企業での開発・運用には使えない。個人・公共サービスで使う場合は、使える。

リリース情報の提供
OpenJDKから提供 http://openjdk.java.net/
Deprecatedの運用ルールはそのまま。最短1年で機能が削除される可能性。

本番運用するのであれば、JDK8 -> JDK11にしたほうが良いかもしれない。

リリースモデルまとめ

Java Plug-in, Java Web StartのサポートはJava SE 8まで。
9には残っているが、10からは削除される。

Java SE 8から後継バージョンへの自動更新は行われない。
9の32ビット版のバイナリ提供の予定は現状ない。移行もしくは現状維持。

Server JREも、同じリリースモデル。

### Java EE 8
Eclipse FoundationへJava EEを移管する。
MicroProfile.ioとの統合を模索する。
まだいろいろ検討中。

## モジュール移行の課題と対策

Jigsawの話。

### 動機

#### -classpath問題。
ライブラリ多すぎ。publicがpublicすぎ。
Module導入。依存性、公開範囲を明記。

#### rt.jar問題。
640MBぐらいあった。
機能ごとにModuleに分割。

### Module

module-info.javaに依存性、公開範囲を記述する。

module モジュール名 { requires 依存するパッケージ; exports 公開するパッケージ; }

module作るのはかんたん。運用するのは難しいけど。

javac --module-path or -p
(昔は、-mpだった)

### ツールの対応

IDE NetBeansがいまいちの対応状況。
ビルドツールは、MavenもGradleも、いちおう使える、という状況。optionの記述が必要。
議論が続いていて、どうなって行くかはまだわからない。

### jdeps 依存性調査ツール
"-s"をすると、依存性が出てくる。
"--generate-module-info"で全部出てくる。必要に応じて編集が必要。

### 非モジュールシステムでの課題

#### 非公開API
com.sunとか、sunとか、java.awt.peerとかがexportされてないパッケージ。
sun.misc.Unsafe, sun.reflect.Reflectionは今後削除予定。

対策:exportを追加する。--add-exportsオプションを利用する。
非モジュールシステムでは、target=ALL-UNNAMED
これで動くようになるが、いつ消えるかわからない。

reflectionでアクセスしていると、jdepsでは見つからない。
コンパイルは通り、実行時もwarning。
--illegal-access=deny をつけると、 InaccessibleObjectExceptionが起こる。

setAccessible(true)を利用したreflectionは、--add-opensを付ける。
→そもそも、使うべきではない。

#### 非標準Module

javax.xml.bindが、標準のModulepathに含まれていない。
java.xml.ws, java.corbaも。

対策:Moduleを追加する。
--add-modulesオプション。

### モジュールシステムでの課題

modulepathとclasspathを併用しなければならない。

直接アクセス:Automatic Module
間接アクセス:Unnamed Module
として扱う。

Automaticはmodulepath、Unnamedはclasspath
jar -d --file XXX.jar とすると、Module名がわかる。それを、module-info.javaに書く。
MANIFEST.MFに書いてあればそれが、無ければファイル名が出てくる。

Automatic Moduleは依存性を記述できないので、自分で実行時に--add-moduleを書く。
依存性がわからなければ、 ALL-MODULE-PATH を指定する。

将来的には、modulepathだけで済むはず。いつになるのか。

## Running Kubernetes on Azure

仙台からJAZUG 東北から。

Docker自体は、2013年に登場してた。
2017年、Kubernetesが事実上の標準に。

VISAカードのインフラにDockerが使われてる。
そろそろ手を付けないと。

### なぜKubernetesを使うか。
コンテナ管理が必要になってくる。

### Azure上で動かす
ACS, ACS Engine, JKS

ACS
GA済み。SLAが適用される。
日本リージョン。
マスターの課金が発生。
k8sのバージョンアップが出来ない。
公式ドキュメントにたどり着きづらい。
100Nodeまで。

ACS Engine
ACSのOSS版。GitHubに公開されている。
任意のVNETに配置できる
1200Nodeのクラスタ構築できる。
展開方法が複雑。
SLAナシ。

AKS
マスターノードの課金はない。
k8sのバージョンアップが可能。
Managed Disk対応。
プレビュー段階。SLAナシ。
日本リージョンに展開されていない。
コマンド3つで作れる。

「PaaSは滅ぶだろう」
今までのPaaS:簡単ゆえに、複雑なことができない。
これからのPaaS:複雑だが簡単に使うことは可能。Infra as a Code
Dockerをベースに、それをいかに動かすか。

helm install stable/wordpressでWordPressが立ち上がる。

Docker Edgeバージョンで、k8sも一緒にインストールされる。

## 日本語入力の落とし穴

すべてのキー入力を受け取る。(パスワードとかも)
ウィンドウを持たない
日本国内では、全員が使ってる

ロシア語など、そのまま出てくる
ハングルなど、入力したところから出てくる
中国語など、音を入れると出てくる

### 「確定する前の文字列」という概念
下線が引かている状態
勝手に確定されたり、削除されたり。
SKKだと入力できない場合があったり。

### 「入力メソッド用のキー」という概念
かなキーとか。

## JetBrainsでもっと楽しくコーディング、ワークフロー

https://github.com/yusuke/ika4j とか作ってる。

Upsource, YouTrack, TeamCity などもある。

YouTrackは課題トラッキングツール
RedmineとかJIRAみたいなもの。
keyboardでの操作が強い。
Agile Boardがついてる。

".if"とか".return"
"psvm"で、mainメソッドを作れる。
".var"で編集にしてくれる。

Upsourceであれば、シンボルの参照関係に飛べる。
Intellij IDEAのエンジンが、サーバサイドで動いているイメージ。
Intellij IDEA内で、PRのコメントが見れる。コードにJUMPできる。

TeamCityは、IDE上でビルド結果が通知される。
失敗したログが見れて、テストコードにJUMP出来る。

## Excel芸2018

Excel is プレゼンソフト
Excel方眼紙も、プログラムで解決したら良い。
バージョン管理、差分が見れない、編集が面倒
Escを押すと、入力した内容が消える

人の手によって、想定していたフォーマットが破壊される。
Excel方眼紙を出力結果にする。触らせない。

VBAは、Excel内部の話。
COMは遅いとか、ライセンスの問題。

POI
Officeファイルを読み書きするJavaライブラリ。
Excelに強い。

APIが低レベルすぎる。
超多機能。ただ、未実装機能も多い。(Excelが多機能すぎる)

POIのラッパーライブラリを作ればいい。
dihyd: markdown風 -> プレゼン資料モデルに変換
mono-oxy
dhmo: Excel出力

flexmark: Markdownを解析

xls を使いたければ、 https://github.com/tonyqus/npoi の方がいいかも。
ただし、書き込みは壊れやすい。

## Asciidocの紹介

簡単に構造化して、共有できるものが便利。
Gitで管理できると楽なことが多い。
Wikiに書くと、それとGit(コード)がつながらない。

Gitで管理するためには、プレーンテキストがよい。マージとか。

チームで共通に出来るフォーマットがよい。
Emacsであれば、org-modeとかもある。
必要なツールが少ないほうがよい。マネージャとか、経営陣とかでも。

AsciiDoc
オライリーが作った。
テーブルなどもデフォルトである。(Markdownのテーブルは拡張)
HTML変換でき、動画埋め込みなども出来る。

OTR社実績
受託開発でユーザガイドをAsciiDocで納品
お客さんが使い始める。

プレーンテキスト。
RubyかJREがあればHTMLに変換可能。
Atom, VSCodeでプレビュー付きのプラグインがある。

画像のサイズ指定が出来る。
テーブルは、ヘッダ以外は1セル1行で書ける。追加とかもしやすい。
graphvizと拡張のgemがあれば、plantumlで書ける。

asciidoctor-pdfがあるけど、うまく動かないことが多い。
HTML変換してから、chromeでPDFに保存したほうがよい。
pandocもうまく動かない。

kanazawa.rb meetup #65 に参加してきた。

kzrb.doorkeeper.jp

ほぼ毎月恒例、第三土曜日は金沢まで行ってきました。

今回はもくもく会ということで、もくもく作業してきました。

具体的には、
・前日、再起動ループに陥ったNexus5Xの代わりを探す
・ReactNativeを試してみる
といったあたりをやりました。

まず、スマホですが、いろいろ迷いはしましたが、HUAWEI P10 liteを買いました。
Amazonで昼過ぎに注文しましたが、次の日に届きました。Amazonすげぇ。



で、ReactNativeは、ほとんど動かしたことない状態から、サンプル程度が動くまではできました。

ただ、ちょっと動かしてみただけだと、UI周りが寂しく感じたので、NativeBaseを入れてみました。

NativeBase | Essential cross-platform UI components for React Native

UIのタグに関しては独自のものになるので、書き換えの量はまーまーありましたが、シンプルなコードで綺麗なUIができました。

ただ、今度作りたいものは、iOS, AndroidだけでなくElectronでも動かしたいので、React Native for Webでも動かしてみよう、、、というところで時間切れでした。



他の人たちは、Rubyだったり、Elixirだったり、Sendgridだったりの勉強・調査をしていたりといろいろでした。



懇親会は三次会まであって、車で行ったので酒を飲めなかったのですが、周りが程よく酔ってたので、楽しく過ごせました。

調味料やらインスタント味噌汁?の話、これからJavaScriptをまじめにやるのはどーなんだ?とか、AIを上手くやると稼げるし下手するとやばいとか、いろんな話が出ました。



iPadで書いてみましたが、日記的なものであれば、全然書けますね。
技術的なものとか、引用がたくさん必要なものは辛いかもですが。

Toyama.rb #25 もくもく会 に参加してきた

toyamarb.connpass.com

Toyama.rb #25 もくもく会に参加してきました。
久々に、レポート的なものを書こうと思います。

今回は参加日が近づいていくと、ぱらぱらと参加者が増え、通常のもくもく会にしては多めの8人でした。

当日は雪が積もってるし、昼からさらに降る予定だったりと、天気はやばかったですが、ドタキャンなく全員集まりました。

個人的には、詰め共円iOS版をアップデートして、FirebaseのCrashlyticsとPerformance Monitoringを導入しました。

・・・Ruby関係ないっすね。



久々の更新だったので、各種のライブラリのバージョンアップから初めました。

TwitterKitのSDKを3系にすると、iOSの最低バージョンが9系になるので、そこも含めて更新しました。
(Podfileだけ変えてもダメだということに気づくのに、ちょっと時間がかかりました。)

また、TwitterKitを3.3にしたことで、インターフェースが変更されてました。
https://dev.twitter.com/twitterkit/ios/installation を見て実装していたのですが、ヘッダファイルが見つからなかったり、 Twitter クラスが見つからなかったり。。。
https://github.com/twitter/twitter-kit-ios/wiki/Installation を見ると、違うインターフェースが書かれていて、こっちだとビルド成功しました。
謎ですね。。

当初の目的だった、Firebase関連については、特に問題もなく導入出来ました。
(Performanceに関しては、時間中には管理画面上での確認はできなかったですが、エラーなかったのでそのまま進めました。。)

あとは、リリースするために、CircleCIでビルドしてもらうところでエラーになりました。
ビルドバージョンを毎回変えるのが面倒なので、gitのタグから更新するようにしました。
ここでFastlaneのFastfileを変更したので、いちおうRubyやってますね。

そんな感じで、3つのPRを作成、マージしました。

んで、申請情報を書いて、Appleの審査を送ったあたりで、時間になりました。



他の人の活動としては、

などされていたようです。

今回はかなりRuby成分多めの回でした。(いつもはこんなに多くないw



Toyama.rb のもくもく会では、Rubyにこだわらずに、ゆるーくやっています。(と思います)
基本的には毎月第二土曜日にやっているので、近隣の方で、興味のある方は一度参加いただければと思います。(主催者でもなんでもないですが。。)



来週は

kzrb.doorkeeper.jp

新型MacBook Proのために買ったUSB-C関連商品

1年ぐらい前にこんな記事を書きました。

新しいMacBook Proを買うにあたって、スマホアプリエンジニアとしてUSB Type-C関連商品を探してみた - 混沌とした備忘録

結局買ったものを紹介します。

ケーブル類

C to Cと、C to Micro Bを買いました。

今使っているスマホがNexus5XでType Cなのと、 検証機的に使っている402SOがMicro Bなので、この2つを買いました。

C to Cは、安心のAnkerのものを買いました。

USBハブ

既存のType Aの機器もあるので、ハブも買いました。

また、勉強会などで前で出力する場合はHDMIの場合も多いので、便利です。

Type Aへの変換

上で買ったハブでType Aに変換できたのですが、SuperDriveを使おうと思ったら、うまく認識されませんでした。

調べたら、Apple純正じゃないとうまくつながらないっぽかったので、これを買いました。 これだったら、無事つながりました。

ディスプレイ用ケーブル

我が家にはIODATAの4kディスプレイがあるので、それとの接続用に買いました。 ディスプレイ側では、DisplayPortしか4k 60fspに対応してないそうなので、こちらを買いました。

つなげてみると、ちゃんと4kで接続でき、HDMIで繋いでいたときのようなカクつきは感じなかったので、60fps出ているようです。 (個人PCをデスクで使うことが少ないので、あんまり使ってないですが。。。)

ほしいもの

MacBook Pro 2017にドンズバな4Kモニタ購入!LG 27UD88-W 開封セットアップ編 【動チェク!】 - YouTube

これをみて、USB C一本で、電源・ディスプレイ・ハブとして使えるのはいいな、と思いました。 ただ、曲面ディスプレイも気になってるので、もうちょっと値段が下がってきたら考えようかと。。。4kはすでにあるし。

Snapnator が届いた!

新型のMacBook ProにMagSafeを取り戻すために買った、 Snapnator が届きました。

www.kickstarter.com

今見ると、 2016/11/04 にKickstarterでbackしてました。 半年ぐらいで届いたんですね。

外箱はこんな感じ。微妙に凹んでましたが、国際郵便でプチプチに包まれてただけなので、仕方ないっすかね。

説明書と本体。

MacBookにつなげてみたらこんな感じ。

MacBookとの間に微妙な隙間空いてるし、微妙に汚い。。。

隙間空いてるせいか、動かすとちょっとぐらぐらする感じもありますね。

てきとーに引っ張ったら、磁石でちゃんと外れました。

ピンぼけしてますが、磁石の部分はこんな感じ。

で、これはなんだろう。。。?

Twitterとか見てると、熱くなるとかって話がありましたが、そもそも製造精度が微妙な感じ。 あと、思ったよりMacBook側の出っ張りが大きいっすね。

・・・使わないかなぁ。

新しい Fire TV Stick を買ってみた

ここ1,2週間はやる気が出なくて、Youtubeばっかり見てます。

寝室ではchromecastで快適に見れているのですが、リビングのFire TV Stick(旧バージョン)の調子が悪く、音と映像がずれるようになってました。

新しいのが出るということで待ってたのが、ようやく届きました。

Fire TV Stick (New モデル) ってやつですね。

最近は(?)、名前は変えずに"New"とかつけるのが流行ってるんですかね。(iPadとか)

というわけで、開封しました。

開けてみた

やっぱ、箱でっかいっすね。

外箱はこんな感じ。

で、中には2つ折りで黒い入れ物。

全部出してみた。 電池も、Amazonの電池。

上が古いやつ。下が新しいやつ。 ちょっとでかくなったみたいですね。

使ってみた

とりあえず、設定して、使ってみました。

まずは、プライムビデオを。

最初はネットワークの調子を測ってたのか、動画がかなり荒かったのですが、数分もしたらきれいな画質になりました。

で、感動したのが10秒送り。 全然遅延なく、押した瞬間10秒後の動画が始まる。 Youtubeとか、nasneの動画をAndroidタブレットで見るのに慣れてると、感動的な操作性。

次はYoutube。 最近はまってる カズチャンネル/Kazu Channel - YouTube とか 瀬戸弘司 / Koji Seto - YouTube とかを見てみました。 やっぱり、遅延なく見れます。 また、AndroidYoutubeアプリ上部にあるキャストボタンから、Fire TV Stickに飛ばして、テレビで動画見ながら次に見る動画を快適に選択できました。

感想

5,000円ぐらいかけるだけで、テレビでプライムビデオ・Youtubeが見れるようになるので、かなりお買い得かと。 あと、なんだかんだで物理リモコンもついてくるのがいいですね。音声認識とか使うかわからんけど。

BuriKaigi2017に参加してきた

toyama-eng.connpass.com

富山で.NETとJavaが一緒になったイベントに参加してきました。

.NETはほとんど関わりがないので、ずっとJavaのセッションにいましたが、オラクルの人と日本に2名しかいないJava Championの話を富山で聞ける、というのはすごいですね。 内容も、今までとこれからのJava SE / EEについてや、新しい開発手法、Microsoftのサービスを使ったデモなど、様々なことを再確認・学べました。 会場はそんなに広くなかったですが、Java側はそこまで過密じゃなかったので、ちょうどよいぐらいでした。

合同でのLTでは、別々のLTなのに、APISQLに→SQLC#にと、神がかった流れもありました。

本番は懇親会、ということでタイトル通りのブリしゃぶも美味しかったです。 5,000円で飲放題付きで、量・質ともに良い料理でした。 2名しかいないJava Championに挟まれる、というすごい状況でしたw

3次会まで、いろんな話ができ、昔話・それぞれの人の考え・自分の考えのまとめなどできました。

個人的に考えが整理できたのは、自分のやりがいをどこに求めるか、という部分です。 プロダクトとして良いものを作りたい、というのは無くはないのですが、私としてはその中でどんなアーキテクチャ設計・実装が出来るかということが大事なようです。

人と深く話すと、自分の思いを整理・理解できていいですね。

以下は、聞きながらとったメモです。

タイトル未定

伊藤敬 氏

JavaOne 2016

過去最多の日本からの登壇者 マツダの工場でJavaが動いてる。

JavaSE Update

dockerのイメージで配布される?もう少ししたら、具体的な話がでるかも。 2017/7/27に、Java9がリリース予定。 Feature Extension Completeはされたけど、まだ機能が入る。。? Java SE9では、Applet起動時に「非推奨です」の警告が出る。 非互換 →ほとんどの内部APIが利用不可になる。JEP 260。sun.misc.*などの排除。

Java EE Update

クラウド・マイクロサービスを向いている。 リアクティブ・プログラミングの導入。 dockerとの親和性も考えてる。 パッケージングにDockerモデルの採用 Serverlessについても検討を始めている。 jarを作れば、いろんなクラウドに乗る。ようにしたいと考えている。 アノテーションベースで、Configやloggingが外部サービスの実装をInjectしてくれる。 OAuth/OpenIDのサポート。 JMSやManagementは変更しない。 MVCは議論中。 JSON-B, Security, Configuration, Health Checkあたりが、Java EE8で入りそう。(Configurationは微妙かも) Bean Validation, Servlet, CDI, JSF, JAX-RS, JSON-PがJava EE8で更新される。 そろそろ、オープンな議論が始まりそう、ってステータス。 Java EE8は、2017年中に出す。予定。 マイクロサービスサポートは、JavaEE9が本番。

WebLogic ChannelがOracle Java & Developersにリニューアル。

これまでのJavaと、これからのJava

櫻庭祐一 氏

内部・匿名クラスは、Java1.1で出てきた。マイクロソフトのおかげかも。 →継承から移譲へ。関心事の分離。ラムダ式へ。 J2SE5 Ease of Development ジェネリクス クラスのパラメタ化 Type Safe=型安全 JSR201: for-each →これも、最近はstreamで書けるようになった。 Java SE7 Coin(=small changes = 小銭) try-with-resources ダイヤモンド演算子 Java SE9 Lambda 外部イテレータ→内部イテレータ。最適化しやすい。パラレルとか。 途中状態が晒されない。イミュータブルに出来る。List<Long> nums2 = nums.stream().map(n -> n*2L).collect(Collectors.toList()); interfaceのデフォルト実装は、SDK内部のコード変更が可能に。 Java SE9 Jigsaw モジュールの導入。JARにメタデータが書けるように。

機能導入の目的 ・Performance ・Ease of Dev ・Safeness Lambdaのみが、Performanceに関するもの。それは、マルチコア世代のため。 その前に、InvokeDynamicが重要な要素だった。

Future Java SE10 Valhalla / Panama / Ambar Valhalla →Primitive TypeとReference Typeの中間にValue Typeを作る。 →型パラメータにPrimitive Typeを入れられるようになる。

ハードの変革に応じて、ソフトの作り方も変えないといけない。Javaの言語仕様も、Performance関連の変更も今後入ってくる。

Engineer is Hero !!

マイクロサービスの開発手法や IoT を採用し感情や表情を解析しより良い社会を作ろう 寺田佳央 氏

マイクロソフトは、かなりクラウドを推してる。 AIもやってる。APIやPlatform化。 Cognitive Toolkit -> Microsoft R -> Machine Learning -> Cognitive Serviceの順で手軽に出来る。 Cognitive Serviceの認識率は、人間と同等化それ以上。 HololensはMR。

開発環境と本番環境を揃えるのは大変。VMとかできてきたけど、容量がでかい。 Infrastructure as code 環境のロールバックが出来る。 構築と設定の2パターンがある。

DevOpsとは、ツールの話ではない。開発プロセス改善活動の一環。 ハックフェストは、実際のコードを使う。 →今の開発プロセスを書き出す。企画からリリース管理までを洗い出す。バリューストリームマッピング。どこに人がかかり、時間がかかってるか。 実例として、リリースまでに8ヶ月かかってたのが2,3週間になった。 feature flag付けて、実際のデータで見せたほうが、理解が得やすい。

Micro Service DepOpsの先に、Micro Service。自動化されているから、生きる。 住宅建築から、いろんなものを学んできた。 住宅の寿命は30年。リフォームするみたいに、ソフトウェアも再構築? ソフトウェアのライフサイクルはもっと短い。住宅業界から学ぶのはもうやめては? water fallでは、時間が立つに連れ、変更に対するコストが大きくなる。ただ、時間が短ければそうでもない。 Ford(車外車)がFordPassというものを作った。クラウドとかmicro servieを使って、作ってる。東海岸と西海岸でDR構成。 Azureには1年に600の機能が追加されてる。1つの不具合が全体に影響しないようにしている。

いままで:モノリシック→1つの変更、障害に対して、影響範囲が大きい。ロックインされる。 マイクロサービス:影響範囲を限定化。言語なんかも再選択出来る。 考え方を変えないといけない。分散される。システムは落ちる・通信は切れる可能性はある。 マイクロサービス・デザイン・パターンが提供されている。 (https://uramoto.wordpress.com/2015/09/21/%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AE%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3/ このあたりか)

MicroProfileなど、マイクロサービスを意識したJava framework。 Azure Service FabricはAkkaの人とかが馴染みやすい。 Pivotal Cloud Foundryのデモ。GitHubにコードが上がってる。

AIのサービス Cortana / BOT Framework / Cognitive Services / Azure Machine Learning / Cognitive Toolkit アロバビューという会社が、監視カメラと連携させている。サマーランドの入場者の男女比・年齢層がリアルタイムで分かる。Power BIで可視化。 OCRは精度高いけど、日本語英語が混じると、うまくいかない場合がある。 制限はあるけど、無料で試せる。ブラウザ上で試すことが出来る。

ブクログの本棚を、amakanにインポートしてみた

今までは、 ・本棚としてはブクログ http://booklog.jp/ ・新刊情報は新刊.net http://sinkan.net/ をGoogleCalendarにエクスポート してました。

ただ、 新しいシリーズを買ってブクログに登録しても、新刊.netにも登録しないといけない ってのがめんどうでした。

そこで、ふと思い立って、前から気になってたamakanにデータを移してみました。

chrome拡張が無い

amakankanというもので、ブクログから移行できるのは知ってました。

amakanのChrome拡張がブクログの本棚からの一括登録に対応しました - amakan

ただ、chrome extentionのリンクを踏んで見ると、404になってました。

なので、GitHubのコードをcloneしてきて、手元でビルドしました。

github.com

ghq get https://github.com/amakan/amakankan.git
cd /path/to/amakan/amakankan
yarn install
npm run pack

chrome://extensions/ に移動して、「パッケージ化されていない拡張機能を読み込む...」で、 dist/chromeを指定しました。

ブクログからインポートしてみた

http://booklog.jp/users/noboru114 に遷移して、chrome extentionのボタンを押しました。 「登録中」的なアラートは出るけど、何も起こらず。

不思議に思ってコードを見ると、 https://github.com/amakan/amakankan/blob/master/src/chrome/js/content-script-booklog.js#L42 で、「読み終わった」と書いてありました。

個人的に、設定がめんどいので、全て「未設定」にしていたので、データが取得できなかったっぽいです。なので、

-        const url = `${pathNamePart}?category_id=all&status=3&sort=sort_asc&rank=all&tag=&keyword=&reviewed=&quoted=&json=true&page=${i + 1}`;
+        const url = `${pathNamePart}?category_id=all&status=all&sort=sort_asc&rank=all&tag=&keyword=&reviewed=&quoted=&json=true&page=${i + 1}`;

のように、statusをallに変更して、試してみると、無事登録が開始されました。

コード変更後は、npm run packして、拡張機能のページで「リロード(⌘R)」を実行しました。

件数がたりない

ブクログは682アイテムあるのですが、amakanに登録されたのは666アイテムでした。 20アイテムが登録できなかったようです。差分はめんどいので追ってないです。

日付が、全部「今日」になった

「読んだ数」がグラフ化されますが、全部同じ日付になっちゃいました。

コード確認すると、read_atで取得してました。

https://github.com/amakan/amakankan/blob/master/src/chrome/js/content-script-booklog.js#L16

で、JSONを確認すると、create_onで登録日が取れそうでした。 なので、下のようにつぶやいて、r7kamuraさんに捕捉され、補足いただきました。

なので、

-    const readAt = book.read_at;
+    const readAt = book.create_on;

にして、再度packしてリロード。そして実行すると、いい感じにグラフが作成されました。

https://amakan.net/@noboru

こうやって可視化されるのは、微妙な気持ちになりますね。

というわけで

無事、インポートはできました。 新刊も、Google calendarでいい感じに取れてそうです。

ただこれ、どうやって追加登録するんでしょ。。。? https://amakan.net/tools にあるけど、いまいち、使い方がわからない。。 Androidのクライアントとか、作っちゃえばいいのかな。。。?

新しいMacBook Proを買うにあたって、スマホアプリエンジニアとしてUSB Type-C関連商品を探してみた

11/6 追記

Apple、USB-C及びThunderbolt 3対応の各種ケーブルやアダプタ、LG製4K/5Kディスプレイを期間限定で値下げ | 気になる、記になる…

Apple公式でセールしてて、ちょっと安くなってるらしいです。 上記のリンクだと元値が書いてあってありがたいですが、 公式の方では「特別価格」になってるのはわかりますが、いくら安くなってるのかわからないですね。

Lightningケーブルとかは公式のほうが安心なので、買うならこの期間の方が良さそうですね。


新しいMacBook Pro、発表されましたね。

www.apple.com

Touch Barが一番の目玉だったり、性能・ディスプレイなどいろいろな改善があるようですが、ポートがほぼUSB Type-Cになってしまうことの影響も大きそうです。

いままではUSB Type-Aからの接続が基本だったので、いろいろケーブルを買う必要がありそうです。

※まだMacBook Proが届くまでに時間があるので、まだ買ってない商品ばかりを紹介してます。 下記のような怖い話もあるので、使って何かあっても自己責任でお願いします。

ゲーマーのためのUSB Type-Cケーブル購入ガイド。安心して使えるのはどれか,全29製品で安全性を検証 - 4Gamer.net

Androidデバッグ

USB Type-C - USB Type-microBのケーブルが必要です。 仕事デスクに座って開発する以外にも、ソファーに座って開発することもあるので、単体のケーブルもあったほうが便利です。 50cmぐらいがちょうど良さそうですね。

また、新しい端末ではmicroBではなくCが入力になるものが多いですね。(Pixelとか)

そうなると、こっちでしょうか。

iOSデバッグ

同じく、USB Type-C - Lightningのケーブルも必要ですね。

Apple公式のものは、1mで¥2,800なので、ちょっと高いですね。

www.apple.com

Appleの認証が無い製品は、新しい端末とかOSで使えなくなったことがあるので、「認証」とか書いてあるものが安心ですね。

ただ、認証有りでこの種類のケーブルはあんまり見つからないですね。 「認証」を考えなければ、いくつかありそうですが。

ただ、どちらにしても0.5mのケーブルはなかなか見つからないです。

USB Type-Aポートの追加(USB HUB)

仕事デスクで仕事する場合、マイクとかCDドライブとか、いくつか付けられるようにしておきたいです。

Ankerはよく聞くメーカーですね。

HDMIでサブディスプレイを使うので、HDMIが付いたものも良いですね。 ただ、USBが2ポートしか無いので、ちょっと心許ないです。

このあたりは、いろいろ種類がありそうです。 デザインとかの好みで選んでもいいんじゃないでしょうか。

http://amzn.to/2f4JRGMamzn.to

HDMI端子の追加

サブディスプレイを接続する場合、HDMIの端子が必要になりますね。 先程のハブでも、家で使う分には問題無さそうです。

ただ、外部の勉強会とかでプロジェクターに映して発表する場合も、HDMIケーブルまでは備え付けられている場合が多いです。 なので、持ち運びも考えると、HDMIのメスに変換できるものがあれば良さそうです。

Apple公式のものは、USB Type-CやUSB Type-Aも付いているアダプタしか無いようです。 また、¥7,400ということで、ちょっと高いですね。

www.apple.com

Apple公式以外なら、もうちょっと安いですね。

ただ、4kディスプレイを持ってるので、4k対応と記載のあるものが安心ですね。

Cable Matters USB-C → HDMI 変換アダプタ【レビュー】 : ガジェおた を見る限り、MacBookでの動作は問題無さそうですし。

magsafe的な電源ケーブル

今のmacbookを使っていて、magsafeがあることでの安心感はあります。

かなり高いですね。この金額だったらmagsafeは諦めるしかないですかね。

BreakSafe Magnetic USB C Charging Cable | Griffin を見ると、$39.99なので、輸入業者がかなりマージン取ってる。。。?

11/4追記

kickstarterで早速で出てますね。

www.kickstarter.com

上に書いてたGriffinのものは、 新MacBook Proの充電ケーブルをMagSafe化「Snapnator」発表。スマホや他社製ノートPCなどUSB-C搭載機器にも対応 - Engadget Japanese に書いてあるとおり、電力的には15inchのものが保証されてないようなので、kickstarterのものに賭けてみます。

まとめ

ということで、ざっとまとめてみました。

思ってた以上にAmazon上で検索するのが難しいっす。

もうちょっといろいろ調べて追記していこうと思います。

参考

新型MacBookで使いたいオススメのUSB-C関連グッズ | 目くじら日記

MacBook early 2016用にぴったりのUSB-Cハブを探してみた! | osw48.com

MacBook ProがUSB-Cポートしかないから使えない?だったらワイヤレス環境を整えよう! - シンスペース

UI Live ! in Kanazawa に参加してきた

90c0ba03fdaf930c0a4048bb06.doorkeeper.jp

まとまらないまとめ

  • こんな会が北陸で行われるのは良い
  • DeNADMM.comの人、それ以外の人ともいろいろ話せて良かった
  • デザイナの考えもいろいろ知れて良かった

インハウスデザイナーの新規事業開発での動き方

speakerdeck.com

elmyとCuncableのデザイン。

クライアントワークスと、インハウスの違い。

クライアントワークス

  • 作業分担されている。(ディレクタとかデザイナとか、エンジニアとか)
  • デザイナはディレクタ→代理店→クライアント(窓口)→クライアント(社長)
    • 鶴の一声でひっくり返る
  • ゴールが、前提や関係者で変わる。
  • UIデザイナ→サービスデザイナへの興味

インハウス

  • コストをかけず、スピーディーに。
  • 1チーム3人前後。意思決定スピートが早い。
    • ビジネス・デザイナ・エンジニア
  • 理解力・決断力が必要。
  • 役割の制約を作らず、できるところまでやる。
  • 最短のリリースを目指して全員が動く。
  • ビジネスの人と同じアプリを使ってみる。
  • iOS/Androidガイドラインの違いを考慮。
  • デザイナがXcodeを学習。(StoryBoardを使ってる)
  • GAなどで定量分析、ユーザ心理を定性分析。
  • PDCAを回し、壊すことを恐れない。

まとめ

  • インハウスのいいところ
    • スキルの幅が広がる
    • 本質的なモノ作り
    • ユーザの声をそのまま聞ける
  • DeNAでは100名ほどのクリエイターがいる。切磋琢磨できる環境。

質疑応答

  • クライアントワークでは、いろんなものを作れ、経験にはなる。
  • Xcodeを使うにあたって、まずは心理的ハードルがあった。
    • 毎日数時間とか、ちょっとずつやることで、ハードルが下がった。
    • GUIで直せるのが良い。
    • エンジニアがsketchを勉強したり、相互に歩み寄る姿勢が大事。
  • 属人性は社内勉強会で、ワークショップしてみたり。
  • ビジネスとは、同じアプリを使うことで、共通言語を増やす。
    • 毎日30分とか話す。
    • XXアプリのYYの画面、とかって言える。
    • 読んだ記事、本を紹介し合い、互いの理解を深める。
  • 新規事業でユーザの学習コストを減らすため、一般的なアプリを使い、そのデザインを盗む。

プリプリしないアプリ開発

www.slideshare.net

動画配信アプリなどの開発。

アプリのデザインは経験1年ぐらい。

人任せにするから、プリプリする。 そうなる前に、デザイナが出来ること。

  • アプリ開発の流れ
  • 画面イメージを決定する際に、システムの人間が関与する方が良い。
    • イメージ決定する際に、デザイナからシステムさんにも承認を得る。
  • パーツ書き出し
    • デザイン:パーツ受け渡し用のスプレッドシートを作る(画面ごとにタブ)
    • デザイン:画面イメージをそこに貼る
    • システム:欲しいパーツを書いていく(ファイル名も決める)
    • デザイン:パーツ書き出し
    • デザイン:基本のトンマナはシート分け、画面イメージに追記していく
    • システム:確認し、問題なければ終了
  • アプリ実装で、デザインが確認してない。
    • 毎日、作られた分を確認し続ける。

質疑応答

  • 反省会を開き、そこで改めて相談することで、今回の解決策を思いついた。
    • 次のアプリでは、今回の解決策を適用して、上手く行った。
  • アプリの動きについては、文字ベースや口頭で伝えている。
  • 文字だけでなく、質問・回答しやすい状況にする。

良いUIをエンジニアに作ってもらうために、デザイナーができること

www.slideshare.net

デザイン5年、フロントエンド1.5年

運用・改善をしていくサービスのUI、良いUIを作り続けることが、今回の対象。

デザイナもエンジニアも、担当領域が違うだけで、作るものは同じ。

デザイナの仕事は、PSDを作ることではない。

どう実装されているか、エンジニアが何を考え行動しているか、を知るべき。 デザイナが頑張るところなのか、エンジニアが頑張るところなのか。

UIデザイナが作るのは、サービス。 例:スタイルガイドを作るなど、エンジニアが使いやすいアウトプットを作る。

スタイルガイドの運用・保守はデザイナが行う=サービス全体のデザイン。

  • エンジニアに無理難題を求めない
    • 要求を下げるのではなく、手を取り合うこと
  • デザイナ語は使わない
    • 抽象的な言葉ではなく、サンプルアプリを伝えたりする
  • Photoshop仙人にはならない
    • 便利なツールがいろいろ出てくる
    • 例えばsketch

質疑応答

  • 情報共有
    • 自分の見つけたものを、必要なチャンネルに共有する。
    • それを相互に行う。
  • 1つのPSDに情報を詰め込み過ぎない。

「使いやすい」だけではユーザー体験が上げられないサービスでのデザイン手法

speakerdeck.com

Material Designスタイルでプレゼン。

グラフィック→WEB/INTERACTIVE→サービス

iPhone出て早9年 当時は、専門的なデザイナがおらず、エンジニアだけで作っていた。 今では、UIデザイナの地位が確立され、ガイドラインが作られた。

1→2的なグロースハック系は、「使いやすい」というのが役立つ。 0→1的な新規事業では、雰囲気みたいなものが大事。

UI/UXの記事を鵜呑みにして適用しても、うまくいかない。

さんぽジスタを作るときに、「使いやすい」ではただの歩数計になってしまう。

今日の歩数:達成感・やる気を起こさせる。 キャラ:「何が変か」を具体的に調整していく。 背景:画像検索で世界観を知る。

自分で使ってみて、つまらなかったので、コンテンツ追加。ブラッシュアップ。

質疑応答

  • 自分で使って、客観的に見る。
    • 何か変えてみて、また使ってみる。
    • 社内でターゲットになるような人に使ってみてもらう。
  • DeNAは、思ってることを言いやすい環境。
    • 自分の作ったものに責任を持つ。
  • ターゲットユーザがチーム内にいない場合
    • まず、インセプションデッキを作った。
    • ある程度仮設を立て、作り、ユーザの動きをアナリティクスで見て、拡張していく。

これからの「フロントエンド開発」の話〜(デザイナー所属の)フロントエンドエンジニアでも知っておきたいこと〜

www.slideshare.net

認証会員基盤のエンジニア フロントエンドのチームリーダー

金沢すきま旅というのを作った。

エンジニア目線な話

UXセミナーのストーリーボードを見て衝撃を受けた。

エンジニアは、細かく検証し、問題があればすぐ修正したい。

Dockerをローカル開発環境として使う。 継続的インテグレーションの流れを、デザイナにも知っておいて欲しい。

質疑応答

  • Dockerを布教中
    • ハンズオンを開催し、体験してもらう
    • GUIもあるおかげか、デザイナ側も抵抗感が少なそう
  • ストーリーボードの何が衝撃を受けたのか
    • いままでは、完成されたワイヤーから関わっていた
    • そのワイヤーに至る理由が見えるので、理解できる

フロントエンドエンジニアが、機能開発の企画オーナーとなってリードした話

speakerdeck.com

エブリスタに関わっている。 6年ぐらいあるサービス。

負債が多い状態で走り続けている状態だった。

使いづらいものを、抜本的に改善したいけど、既存文化や技術障壁を考慮する必要がある。

  • 現状を分解する。
  • 原因を探る。
    • 「なぜ?」を問う
    • ガラケーのUIを引き継いでいた
    • チームの共通認識とする
  • 解決の方向性を定義する
    • 他のアプリを参考にしたり
  • 解決案を試作する
    • プロトタイプ作ってみたり

チャンスを掴む働き方

  • 状況を作る
    • "何か"を期待して雇われている
    • コアスキルを使い、チームが抱える課題・問題を解決する
    • 重要なのは期待を超えること
    • 圧倒的な能力を持っている必要はない
    • チームの課題を、チームメンバーが感じられる状態にする
  • 仲間に入っちゃう
    • 呼ばれてないけど、MTGに入ってみる
    • 他のメンバーが困ってそうな仕事を、会話してみる
    • 信頼を得る→期待が生まれる

生存戦略

フロントエンドエンジニアのキャリアパス コアスキル以外のところも鍛えておく。 プライベートで何かを作ってみる。

質疑応答

  • 出来無さそうな話が流れていたら
    • 自分のできるところまで分解してみる。手伝えることはいろいろありそう。
  • タスクのトレードオフ
    • コアスキルの部分を終わらせるのが大前提
    • 事前に素振りしておくことで、工数を減らして、時間を余らせる
    • 上司に相談して、アサインを変える
      • 優先度をつけて、今のタスクが本当に必要なのかを問う
  • だれにリソース管理されている?
    • 個人でタスクをアサインしている。
    • 1日5hの作業をタスクとしてあてる。
      • 見積もりミスのバッファに使ったり、改善に使ったり。

パネルディスカッション

3年前との違い

  • 与えられた情報を鵜呑みにしていたけど、そこから疑問を持つようになった
  • ユーザ体験だけでなく、ビジネス的な目線もついた
  • コアスキルへの自信がついた
  • 受け身だったけど、今は取りに行くぐらいになってる
  • 井の中の蛙だったのを今は知っている
  • 言ってみたら変わることを知った

会社間で聞きたいこと

  • キャリアプラン
    • バイスが増えていくところに対応できるように
    • デザイン→フロントでの、フロントを極めていきたい
    • デザインとフロントがやりやすいチームが作れるように
    • 新規事業を作るためのブランディング
    • デザイナの地位を上げたい。ビジネス寄りに。
    • デザイナでもコードが書けるようになりたい。コード書きたくないデザイナと繋ぐ
  • デザイナ・フロントエンドエンジニアの不可侵領域
    • 入ってきてほしくないと言われることが多い。作業に入る前に確認する。密にコミュニケーションをとる。
    • 色を変えるとか、簡単なものはしてもらっている。
    • デザインしてもらいたい。意見も欲しい。元々の理屈はあるけど、気づかない視点もある。
    • サービスデザインは論理的に出来ている部分が多い。
    • いちユーザとしての意見は欲しい。
    • てきとーに作業はしてもらいたくない。
    • 自分が責任を持てるところまで踏み込む。
    • システムからの意見はうれしい。
    • 知識としては、領域外のこともしていくべき。
    • 領域外のことをすることで、作業効率が上がるかも
    • もっと踏み込んでいって良さそう。

他職種とのコミュニケーションのコツ

  • 単語の意味をちゃんと伝えて、その単語を使う
  • 1回飲みに行くのが良かったり、話しかけてみたら意外とwelcomeだったり
  • わからない話をそのまま流さず、質問する
  • 相手のやりたいこと・時間がかかることを理解する。
  • いろんな職種の人に話しかけに行く。
    • 自分の影響範囲を知る。やりたいことの根回し手段を知る。
  • 相手の郷に従う。相手のコミュニケーション文化に乗っかってみる。
  • 相手の領域を経験することで、相手のことを知れる。
  • 前提条件を合わせる。話し合うことで、お互いの認識を合わせる。

具体的なコミュニケーションツール

  • Slackは常に入ってる。
  • メールやLINEも使ったり。
  • 静かだけど、Slackだと話していたりする。
  • デザインの思考プロセスを、Slackに流している。アイコンも使ったり。
  • esaを使って日報を書いている。もやもやを吐露していたり。
  • コミュ症の翻訳をしたり。
  • Skypeで文字ベースでやりとり。東京とはfacetimeで対面で喋ったり。
  • Slackの絵文字。reactionとか。
  • Prottを使って、プロダクトについて会話。絵があると、話が進みやすい。
  • Slackで雑談部屋。英語専用の部屋。
  • ホワイトボードに意見を貼るとそこから話が始まる。

懇親会

  • リモートワークに関心は高いらしい。いろんな人に聞かれた。
  • Dockerを本番運用しているところもあった。ただ、そこではユーザに直接開放する部分じゃないっぽい?
  • いまだにObj-CでiOSの実装を始めることもあるっぽい。企業の体質に依るのかな。
  • ポケモンgoの話題は誰にでも通じるぐらい。
    • 飲み屋にポケストップあると回し放題(喋ってると忘れるけど)
  • PSDの切り出しまでエンジニアがやるのは、やりすぎだと思うデザイナもいるらしい。
  • Androidのソフトキーのために、縦横比が変わるってのを、あまり気にしてないデザイナもいる。普段iOSを使ってると気づかないだろうな。
    • リスト系の画面だと、あんまり気にする必要無いし。
  • デザイン系学部の人たちが、電博にいってしまう。それをIT系に引っ張ってきたい。
  • 渋谷とかの大きな会社合同で説明会みたいなのをしては?地方の学生はまとめてあると助かる。