iOSDC 2017に参加したまとめ

とてもたのしめました。
僕は普段の業務では全くネイティブに関わらないRailsとかちらっとGolang書いたりしている人間なのですが、面白い発表ばかりで素晴らしかったです。

GoによるiOSアプリの開発

www.slideshare.net - 結論としては使い物にはなっていないんですが、現状なにが出来て何ができないのかを知れたのでとても良かった。

ハンズラボ組

iOSデバイス3,500台を管理する、東急ハンズのデバイス管理手法とは

speakerdeck.com

業務アプリの切札、Programable Kiosk Mode大全

speakerdeck.com

エンプラ組の発表がすごい面白かったです。結構好き放題やって管理しているところや、Harakiri-Updaterの仕組みは凄い面白かったです。
たぶん機会がない限り使わない機能ばかりかもしれませんが、(Storeに出さない)個人アプリとかで使えそうな話はあったのですごかった。

まとめ

業務でiOSの庭にいない人間が参加してもとてもおもしろいイベントだったと思います。改めて運営に関わったみなさまはお疲れ様でした。
特にNetworkチームは本当に苦労があったみたいで、でも途中で改善されて凄い快適に使えるようになったり、NOCの方々はお疲れ様でした。
個人的に細かいところに愛があるサービスやイベントが凄い好きなので、運営をしている様子(Wifiのpassやその他の工夫含め)などを見ても凄い楽しそうにしていて、良いイベントだなと感じました。
去年は同じ会社のエンジニア1人くらいしか会場で顔を見知った人間はいませんでしたが、今回は去年より知り合いが増えたのでよかったと思います、改めてお疲れ様でした XD

AppleSpecialEvent2017 まとめ

最初

  • All You Need Is Love流しながら新社屋自慢
  • theaterは柱がなく、ガラスで支えているらしい
  • 初代iPhoneのプレゼン音声流しながら
  • 新社屋についてや、AppleStoreについて自慢
  • AppleStoreをリニューアルしていくらしい
  • アメリカの話ばっかりしてて日本がどうなるかは不明
  • シカゴに新旗艦店

Apple Watch Series 3

  • Watch自体は去年より50%伸びてる
  • Rolexを越して世界で一番の時計となった?
  • 現状二番手で越したいだった。かも。
  • 満足度97%らしい
  • watchOS4 9/19
  • Cellular build in
  • iPhoneと同じ番号で電話を受けれたりGPSとかSiriとか
  • 音楽も聞ける
  • 全面アンテナ?
  • 日本でも出るよ(au,docomo,SB) :tada:
  • $329(no Cellular)と$399(Cellular)
  • 9/15予約9/22発売
  • Series 2はなくなって、Series 1は廉価版として残るらしい

Apple TV

  • 4K
  • HDR
  • A10X
  • コンテンツも色々契約周りを準備中
  • 4K HDRコンテンツの価格はHD版と同価格
  • 4K HDRにアプコンも?
  • 日本は展開に入ってない、解散
  • 9/15予約9/22発売
  • 32GB $149, tv4K 32GB $179, 64GB $199

iPhone8

  • 4.7inch 5.5inch
  • 3DTouch,TrueTone display
  • SpeakerもiPadProっぽくなるって言ってた気がする
  • A11 Bionic(64bit 6core)
  • 12MP,f1.8,portrait
  • 8は1つ、8 plusは2つなのでportraitはplusだけ?
  • 1080p 240fpsの動画が取れる(楽しそう)
  • ARのために初めて最適化されたソフト、ハードウェア
  • 無線給電(Qi)

  • お店とかと契約して充電口を置いてもらったりするとどこでも充電できる

  • 64GBと256GBだけ
  • 8 $699,8 plus $799
  • 9/15予約 9/22
  • iOS11は9/19

iPhoneX

  • One More Things
  • エックスじゃなくてテンです
  • やっぱりホームボタン消えた
  • Spacegrey , black
  • 5.8inch
  • super retina display
    • 2436 x 1125, 458 ppi
    • 有機EL
    • True Toneじゃないんすね
    • 今までの有機ELの欠点を補うEL
  • タップで起動
  • swipe upでホームに戻る
  • Face ID(顔認証)
    • センサーが凄いので暗くてもできる
    • 写真で開けられるとか、ハリウッドのメークアップアーティストによってそっくりの仮面を作って開くかテストをした
    • 大丈夫だった(ドヤァ)
    • 5万回に一回の誤認識から100万回に一回
  • 今までのtouchID系が大体FaceIDになるらしい
  • Animoji(絵文字が動く)
    • ユーザーの顔の動きと、絵文字の顔の動きが連動
    • アニメーションの絵文字で感情を伝えることができる。
    • なんだこれw
    • messagesには音声も付けられるらしく、それで会話したり
  • swipe downでコントロールセンターが出る
  • カメラ
    • 縦に2つになった
    • f2.4
    • 12MP
    • セルフィーportraitもできる(IRセンサー?)
  • フロント側のセンサーが凄い
  • A11 bionic(8と一緒)
  • バッテリーは7に比べて2時間伸びる
  • AirPower

    • watchもair podsも本体も一緒に充電できる
    • AirPowerは後で発売でwireless対応Airpodsケースも後発売?
  • 64GB,256GB

  • $999から10/27予約11/3発売

まとめ/雑感

  • FaceIDは、ホームボタン指を置くという動作をしなくても画面を表側にすることで本当に何もしなくても認証ができるという、ユーザー体験としては進化している気がする
  • 所有者の意図しない認証解除はどれぐらい出来るのか気になる
  • 全面ディスプレイiPadProが欲しい。それならすぐ買う。iPhoneXは悩んで買う。

エモポイント、締めの言葉は

One of the ways that I believe people express their appreciation to the rest of humanity is to make something wonderfull and put it out there. - Steve Jobs

Slackでcustom_emojiを作った個数が多い人順に出す

これは

JavaScriptしょしんしゃです。リファクタツッコミ歓迎。
Slackでcustom_emojiを作った個数が多い人を降順で出すブックマークレットです。
全部見たい場合は
alert(JSON.stringify(sorted,null,"\t")); の部分を適当にいじってください。

// https://#{YOUR_TEAM}.slack.com/customize/emoji で実行

var name_hash = {};
var list = Array.apply(null,document.getElementsByClassName('author_cell'));
list.forEach(function(row){
    if (name_hash[row.textContent.trim()] == undefined){
        name_hash[row.textContent.trim()] = 1;
    }else{
        name_hash[row.textContent.trim()]++;

    }
});
var sorted = objectSort(name_hash);
alert(JSON.stringify(sorted,null,"\t"));

// {'name' => count}のcount降順Sort
function objectSort(object) {
    var sorted = {};
    var array = [];
    var tmp = {};
    for (key in object) {
        if (object.hasOwnProperty(key)) {
            if(tmp[object[key]] == undefined){
                tmp[object[key]] = key
            }else{
                tmp[object[key]] += ","+key
            }
            array.push(object[key]);
        }
    }
    array.sort(function(a,b){
        if( a > b ) return -1;
        if( a < b ) return 1;
        return 0;
    });
 
    for (var i = 0; i < array.length; i++) {
        sorted[tmp[array[i]]] = array[i];
    }
    return sorted;
}

Datadogのdashboardを自動でスクロールする

Datadog便利ですよね、重宝させて頂いています。

Datadogでメトリクスの監視を始めよう!

最近datadog用のモニターを置いたんですが、いかんせん出しているグラフが多すぎてつらかったので、自動でスクロールしてくれるscriptを仕込むことにしました。

モニターに常時映しておきたいけど、みたいmetricsが多すぎる場合に自動でスクロールしてくれるやつです。
事業数字っぽいのもあってdemoを取るか悩んだので、ご自分でconsoleに貼ってごらんください。デモは1秒に1回スクロールします。setIntervalの値を調整してください。

// graphを取得
var graph = Array.apply(null, document.getElementsByClassName('title draggable'));

// fontSizeといじって太字にする
var rectList = graph.map(function(ele){
    ele.style.fontSize = '20px'
    ele.style.fontWeight = 'bold'
    return ele.getBoundingClientRect().top
});

// uniq
rectList = Array.from(new Set(rectList));

// sortしないとおかしい場合があったので念のため
rectList.sort(function(a,b){
        if( a < b ) return -1;
        if( a > b ) return 1;
        return 0;
});
var i = 0;

// 最後まで行ったら先頭に戻す
setInterval(function() {
    window.scroll(0, rectList[i]);
    i++;
    if(i == rectList.length){
        i = 0
    }
},1000)

WWDC2017感想とか

大きく分けて項目は6つ。

  1. tvOS
  2. watchOS
  3. macOS
  4. iMacとiMacPro
  5. iOS(iPhone + iPad)
  6. Music(HomePod)

tvOS

AmazonPrimeが来ると言う話しか覚えていません。

watchOS

  • OSとして色々改善したみたい
  • APIとかもアプデ
  • 死ぬほどでかい変更はなかった記憶
  • 新OS配信は秋予定

macOS

  • HighSierraになる => みんな失笑してた
  • Safariがめちゃめちゃ早くなったらしい
  • 動画の自動再生がデフォになって設定できるみたい
  • Photosアプリが強化されてより便利に、Photoshop連携?
  • defaultのファイルシステムがAPFSになって色々ファイル操作が早くなる(複製とか)

iMacとiMacPro

  • iMac 21.5インチ
  • iMac Retina 4K 21.5インチ
  • iMac Retina 5K 27インチ
  • Kaby Lake搭載のiMacが出る
    • そろそろCoffeeLakeと、来年にはCannonLake出るのでタイミング微妙な気もするけど更新はされたことは良いと思う
  • 一番上の5K27インチでRadeon Pro 570、575、580からグラフィックカードを選べて、 VRAMは最高8GB
  • Kaby Lakeプロセッサ搭載のMacBook Proも登場

  • iMacProはひたすら強いの

  • 8~18coreのXeon + AMDの次世代GPU「Vega」を搭載予定
  • 2017年12月予定
  • 一番下のEditonで$4999

iOS

  • iMessageアプリは未だに推している
    • ApplePayの個人間送金
    • 金をよこせというリクエストも送れるみたい
  • Siriで翻訳出来るように、喋ってくれる
    • 英語から中国語・フランス語・ドイツ語・イタリア語・スペイン語に翻訳
    • 日本語はまだ
  • jpegの圧縮率が2倍になったらしい
  • !! Live Photosが編集可能に
    • 切り取りやミュート、ループ、バランス、長時間露光などが出来るように
    • LivePhotos好きなので、良さげ
  • コントロールセンター(下からシュッってするやつ)が1画面に
    • 詰め込みすぎて地獄みたいなUIに
    • 新music以降AppleのUI/UXチームはどこへ行ってしまったのだろうか
  • 運転中のdndモードが実装。通知が来なくなるみたい。
  • FIlesっていうFinderっぽいアプリができてGoogleDriveとかDropboxとかと連携できるみたい
  • AppStoreがリメイク
  • ランキングタブが消えたっぽい?結構UIがガラッと変わった
  • !! ARKit

    • めっっっちゃ楽しそうなのでデモみてください
  • iPadPro10.5インチ

    • 大きさは9.7インチとあまり変わらずベゼルを狭くして画面幅だけ広がったはず
    • A10X
    • スペックも向上して120hz対応とか
    • Browsingのときとかはよしなにフレームレートを落としてくれてバッテリー削減
    • USB3.0
10.5インチiPad Pro 64GB:649ドル
10.5インチiPad Pro 256GB:749ドル
10.5インチiPad Pro 512GB:949ドル
12.9インチiPad Pro 64GB:799ドル
12.9インチiPad Pro 256GB:899ドル
12.9インチiPad Pro 512GB:1099ドル

Music

  • HomePodと言うものを発表
  • A8積んでいるらしい
  • 要はすごいSpeaker
  • 今後Siriをどんどん強化して最高のアシスタントになったら便利になるかも -音楽だけでなく、ニュース、天気、交通状況、スポーツスコア、単位換算、メッセージ送受信、株価や翻訳などなど。HomeKit 連携も可能。
  • 1Kの僕にはあまり欲しいと感じない
  • 12月に発売、$349
  • すぐじゃないのか…忘れられなきゃ良いけど…

まとめ・雑感

  • ハードの発表もあったからか、例年に比べて結構おもしろかった。長く感じた。
  • Keynoteの最初に出ていた、 Keep making Apps, world depends on you. という文言がよかった。エモポイント
  • 新生Musicからそうだけど、AppleのUI/UXチーム的な部署はどうなってしまったのか。
  • ゴミ箱デザインが気に入っている経緯も気になる。
  • ARKitのデモがすごかったので、本当に色々な可能性がありそう。ハコスコ + ARKitで頑張ってHoloLensごっこしたい。
  • 機械学習というコンテキストで話すと、iMacProはAMDGPUじゃなくてnvidiaの方がCUDAとかの文脈で便利という話をよく聞くので、その辺はどうなっているのか全く知らない。
  • 昔からMacAMDGPUを採用しているという経緯はあったりしていたはず。
  • とはいえAMDGPUもとても優秀で、Vegaは期待されているので楽しみ。

余談

f:id:miyachik:20170606061116j:plain

AWS Auroraをpt-online-schema-changeでオンラインscheme更新する

レコード数の多いテーブルに対してALTER TABLEしたい時ってありますよね、でも普通にALTER TABLEとかやるとロックがかかってしまって書き込みができないので、今回はpt-online-schema-changeを使いました。(逆に他のプロダクトはどうやってるかは聞いてみたいです) 色々制約がある場合には実行できないです。–dry-runオプションで確認が可能。 https://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html

MySQL5.6以降からのOnlineDDLとの使い分け参考:

  • 原則 pt-online-schema-change
  • 色々オプションが付けられて融通がきく
  • Auroraなのでストレージの心配は一応無し?

https://yoku0825.blogspot.jp/2015/12/pt-online-schema-change56-innodbalter.html

仕組み

内部でやっていることは

  • 対象のテーブルと同じ構造のテーブルを作る
  • コピー先のテーブルにALTER文を適応
  • コピー元テーブルに対して、TRIGERを作成し、差分が反映されるようにする
  • テーブルのデータコピーの開始
  • コピー先テーブルをRENAMEしてテーブルを入れ替える
  • 後処理(TRIGERやコピー元テーブルの削除)

参考: http://ameblo.jp/principia-ca/entry-12129289966.html

やる

今回はローカルのMacにいれてトンネルを掘ってpt-online-schema-changeしました。

$ brew install percona-toolkit
$ ssh -f -N -L 3307:${RDS_HOST}:3306 -i ~/path/to/${ENV}.pem ec2-user@${PROXY_HOST}
mysql -u ${USER} -P 3307 -h 127.0.0.1 -p ${DATABASE}
$ pt-online-schema-change --alter='じっこうしたいALTER文;' h=127.0.0.1,P=3307,u=${DB_USER},p=${DB_PASSWORD},D=${DATABASE},t=${TABLE}

これでログがでてくるので終わり、オプションは適宜。 centosにも簡単に入れられるので踏み台鯖からやったりしても良いと思います。 トンネルのやつはこれを参考: https://cloudpack.media/9675

perconaの読み方

f:id:miyachik:20170523195851p:plain https://www.quora.com/How-do-you-pronounce-Percona

社会人二年目とiPadPro欲とRyzen

社会人二年目

無事に社会人二年目になりました。弊社は最初の一年はグレードが絶対に変わらず、この4月が初めてのグレード上がるかどうかの評価時期だったのですが、無事にグレードを上げることができました。
高専卒でそのまま入社し、最年少のままグレードを上げられたのはとてもうれしく思っています。
ただ、仕事については色々と思うところが多かったり、まだまだやっていかなきゃいけないので、適度にやっていきします。最近興味あることはLivePhotoです。
超絶個人的に今はRuby力というよりかは、JavaScriptだったりGolangだったりSwiftを積極的に触っています。仕事ではコストをそこまで気にせずAWSをゴリゴリ触れる環境にいるので、今のうちに関連知識をどんどん増やせればなと思って動いてます。

iPadPro VS Ryzen

最近ずっと新しいPCとiPadProを天秤にかけています。
メインのPCを組んだのが6年前になり、グラボは更新をしたもののメモリが8GBでは足りなくなってしまい、マザーボードの調子も悪くたまに掃除しないと起動しなくなったりしてしまっているので、買い替えたいなと。2500K + R9 260Xくらいなのですが、せっかく買ったNier: Automataや、Bayonettaすら起動しない始末。これはつらい。
買い換えようとすると、今のメモリがLGA1155 + DDR3なので、MBを変える必要があり、となるとCPU/メモリも買えなきゃで、結局ほぼほぼ作り直すことになりそんなに節約にはならない。

Ryzenは、Intelでない事自体がデメリットと北海道の方から聞こえてきて、大体同意見なのですが、元々Radeon信者だったりしてAMDはそれなりに好きだったり、グラボ積むマンなので7700kとかのHD Graphicsとかはいらないなと思っているので、Ryzenに飛び込んでみるのも楽しいんじゃないかと思っています。後は色々教わっているおじさんがAMD信者で引きづられているフシもあります。
アニメオタクは社会でも結構見つかる方だけど、自作PCオタクは全く見つからないのどうにかしてほしい。わかりやすく1680万色に光ったりして欲しい。*1
Ryzen気になるけど(AMDのCPUが)そこまでなぁという気持ち、Ryzenのソケット周り知らないのでいい機会だし飛び込んでみたい気持ち…
6月にはWWDCがありますし(6月なので新商品はないとおもいつつ)、Intel製の6コアCPU(CoffeeLake)もお披露目になりますし、どっちを買うにしてもタイミングが図りづらい…
なんだかんだR7 1700X + RX480に傾きそう、次の悩むタイミングは秋のCoffeeLakeとVEGA(RX5xx代)お披露目…!でもRyzen買えばCoffeeLakeや次の本命CannonLakeで悩む必要もなくなる。
高専でそういう話が出来る人が少なかったことに対するフラストレーションみたいなものはすごくあって、もっとちゃんとしたエンジニアの多い会社に行けばそういう人も多いと思いきや、プログラミングの話はできる人は多けれど、自作erは今の会社にも居ませんでした。プログラミングの話が出来る人が圧倒的に増えたのでそのへんの不満はまったくないんですけどね。
仕事も概ね楽しいです。

iPadProは本当にただの贅沢なので手が止まっている状況、iOSタブレットほしいけど今買うならPencil対応だよねっていう思考。iPadがPencil対応していたらすぐにでも買っていたかも。Appleさんお願いします。

色々ありつつも、引き続きやってきの気持ちでやっていきましょう。