🇺🇸サンノゼ滞在に必要だったもの
サンノゼに滞在したときに持っていったもの、欲しかったもの。
🛫出発前: アプリの設定
SMS認証をすませておく。
💼持っていくもの
ウォッシュレットないと聞いていたので、携帯ウォッシュレットをもっていた。いろいろあったがTOTOのものにした。
日差しが強いのでサングラスも持っていけばよかった。
🛒現地調達
プリペイドSIM
T-Mobileの店にはいって「プリペイドSIMが欲しい」って言うと選んでくれる。使いたい通信量と滞在日数から選んでくれる。
今だとe-SIMが使えるのでそちらのほうが便利。(T-Mobile eSIM app | T-Mobile Support)
アメニティグッズ
ホテルにアメニティグッズがついてないので、スーパーで買った。歯ブラシは大きいのしかなかったので、日本から持っていったほうがいい。
- 歯ブラシ
- 歯磨き粉
- 安全カミソリ
食料品
食べ物もいくつか買っておくと便利。 使い捨てのフォークもいっしょに買わないとカップラーメンを作ったあとに詰む。(詰んだ)
- お茶
- シリアルと牛乳
- カップラーメン
- 使い捨てのフォーク or 箸
サプリメント
メラトニンを飲むと時差ボケが楽になる気がする。薬局やスーパーのサプリメントコーナーで売ってる。
二ヶ月分以上を日本に持って帰ると違法になるらしい*1ので買いすぎないようにする。
🙈意味がなかった
日本食が恋しくなるかと思ってインスタント味噌汁を持っていったが不要だった。日本食レストランはいっぱいある。
🎍2018年
大晦日なので2018年を振り替える。今年はこれまでやってきたことを深くする年だった。
🛠やったこと
技術書典出展
今年の前半は技術書典に出す本を書いていた。 組版や書体、ブックデザインは以前から興味あったので楽しかった。予算が限られているので装丁は凝れなかったが、好きな書体が使えてよかった。
当初は入力メソッドの解説本だけを出すつもりが途中で思いついたので、工場実習の思い出についての本も書いた。工場実習日記のほうが評判がよく、新卒退職本3に引用された。
新卒退職本3 https://t.co/pu619FMFrF 読むぞーと開いたら急に自分が登場した。 pic.twitter.com/wQKGUy24Sc
— mzp (@mzp) August 14, 2018
関連エントリ:
入力メソッド
技術書典に出す本のために入力メソッドを調べていたら文字に関する興味がでてきたので何冊か本を読んだ。いろいろな文字を眺めるのは楽しかった。
入力メソッドのこと調べてたら「言語とは?文字とは??」という気持ちになったので、いろんな文字が載った本を買ってしまった pic.twitter.com/lEObqLuBVZ
— mzp (@mzp) 2018年2月23日
関連エントリ:
WebKit
WebKitと入力メソッドにまつわる不具合をいくつかあったので調査した。 何もわからないところから試行錯誤しながら構造を読み取っていく作業は好きだが、この規模のプロジェクトはビルドに時間がかかるので大変。
報告したバグは修正され、Safariにも反映されたので最高の気分。
関連エントリ:
美少女出社
Misocaではリモート勤務中はzoomに参加していることが奨励されていたので、アバターによる出社を試していた。転職したので辞めてしまったが、それがなければ今も継続していると思う。この前、オフィスに遊びにいったら@k0matatsuさんがかわいい姿で勤務してた。共演したかった。
既存ソフトをそのまま使う→独自ソフト+既存モデルを使う、という進化をしてたので、この先には独自アバターを使った勤務やボイスチェンジャーを使った勤務をしている世界もあったのかもしれない。
関連エントリ:
GitHub
GitHub contributionsはパッとしない。さみしい。
🎤カンファレンス
参加したカンファレンスは以下の通り。
- BuriKaigi2018 - 日本語入力の落とし穴という話をした
- try! Swift Tokyo - 感想
- RubyKaigi 2018 - 感想
- WWDC2018 - 感想
- try! Swift San Jose - これはメンターとして参加した
- iOSDC 2018 - 感想書くのわすれてた。たのしかった。
RubyKaigiとWWDCがほぼ日程が被ってて移動が大変だったことが印象深い。
💼仕事
転職 & 引越しをした。
タンボー田中さんが退職エントリを会社のブログに投稿*1してて、いいなーと思ったので、真似した。 最後だし、エモいタイトルにしようと思ったが、迷走の果てにAIRのED曲の名前になった。
引越し直後はカーテンも本棚もなくて大変だった。最近やっとすべてのダンボールを捨てれた。カーテンの裾が足りてないのは気にしないことにした。
🎤ライブ
- THE IDOLM@STER CINDERELLA GIRLS 6thLIVE MERRY-GO-ROUNDOME!!! メットライフドーム公演
- ラブライブ!サンシャイン!! Aqours 4th LoveLive! ~Sailing to the Sunshine~
- THE IDOLM@STER CINDERELLA GIRLS 6thLIVE MERRY-GO-ROUNDOME!!! ナゴヤドーム公演
何人かに誘ってもらえたので参加できた。 ライブは感情が揺さ振られるのでよい。ラブライブ!サンシャイン!!のDay2がダブルアンコールですごかったという話がしたい。
✈️旅行
今年もいろいろ行けた。macOSのPhotosアプリの位置情報が国際色豊かになっている。
2月: 富山
BuriKaigiに参加するために行った。観光するつもりだったが雪がすごすぎて断念した。富山ブラックラーメンはおいしかった。
関連エントリ: 🌨富山 - みずぴー日記
2月: 島根
富山の翌週くらいに島根にいった。 カニ小屋に行きたかった、行った。
飛行機が欠航したので、急遽陸路で向うことになった。翌日は陸路もダメになり、@corocnが鳥取で立ち往生してた。
冬の温泉宿は最高の景色だった。
関連エントリ:
3月 宮城県 蔵王
キツネに会いにいった。かわいい。冬毛のうちにいくぞ、という日程だったはず。
この帰りに工場実習日記のアイデアを思いついた。
関連エントリ: 🦊キツネ村 - みずぴー日記
5月 仙台
RubyKaigiのために行った。
念願のSKKの石碑が見れて感無量。
関連エントリ: 💎RubyKaigi 2018 - みずぴー日記
6月 サンノゼ
WWDCのために行った。日程的に名古屋に戻ってられなかったので、仙台から東京経由で出国した。
道路が広いし、空が青い。
サンフランシスコ観光もできてたのしかった。
関連エントリ: 🍎WWDC - Misoca開発者ブログ
7月 富山
退職の話が社内にオープンになったので、富山でリモートワークしているメンバーに会いにいった。
AirBnbで借りた宿が格好よくて最高だった。
関連エントリ: ⛰富山ワーク - みずぴー日記
7月 シンガポール
ANAのSFC修行を意識しはじめたので、率がいいと評判のシンガポールにいった。退職して時間があったので、入国即帰国ではなくて2泊ほどして観光も楽しんだ。
ホーカーズ(屋台?)のご飯がめっちゃおいしくて、びびる。
関連エントリ: 🇸🇬シンガポール - みずぴー日記
8月 北海道 稚内
修行目当て、その2。
稚内はいったことがなかったので北の果ての岬を見にいった。
北海道はスケールがでかくて見ていて楽しい。
うにとうにが載った丼を食べた。当然うまい。
関連エントリ: 🛤北の果て - みずぴー日記
11月 台湾
修行を終わらせるつもりで台湾にいった。計算ミスしてたので終わらなかった。
メシがうますぎる。
関連エントリ: 🇹🇼台湾 - みずぴー日記
12月 鳥取
台湾では修行が終わらなかったので、あわてて鳥取にいった。
カニが推されまくってたので食べた。
@k0matatsuさんにめっちゃうまいハンバーガー屋さんにつれてもらった。
関連エントリ: 🦀鳥取 - みずぴー日記
🙈できなかったこと
目標に掲げていたができなかったことがいくつかある。
🎯来年に向けて
今年はやってきたことを深くする一年だった。 悪くないが、来年は周辺領域に手を出す、あるいはまったく新しいことやるなどして幅を広げていきたい。
せっかく東京に引っ越したので、東京の観光をしたい。あるいは名古屋からは行きづらかった地域に旅行に行きたい。具体的には東北に行きたい。
🔖最近読んだ本
冬は本を読みたくなる。なるべく電子書籍で済ませている。
🚀SF
- 作者: ジェイムズ・P・ホーガン,池央耿
- 出版社/メーカー: 東京創元社
- 発売日: 1983/05/27
- メディア: 文庫
- 購入: 16人 クリック: 154回
- この商品を含むブログ (93件) を見る
「ガニメデの優しい巨人」までは読んでいたので続きを読んだ。 最初の「星を継ぐもの」が一番好きだなという感想を払拭できない。
続編の「内なる宇宙」も買ってあるが読んでない。
🔍ミステリー
- 作者: 横山秀夫
- 出版社/メーカー: 新潮社
- 発売日: 2007/04/25
- メディア: 文庫
- 購入: 2人 クリック: 16回
- この商品を含むブログ (75件) を見る
- 作者: 横山秀夫
- 出版社/メーカー: 祥伝社
- 発売日: 2007/02/01
- メディア: 文庫
- クリック: 10回
- この商品を含むブログ (98件) を見る
この作者はハズレがないので安心して読める。
👻ホラー
- 作者: 恒川光太郎
- 出版社/メーカー: 角川グループパブリッシング
- 発売日: 2008/05/24
- メディア: 文庫
- 購入: 12人 クリック: 114回
- この商品を含むブログ (84件) を見る
Amazonが勧めてきたので読んだ。 本筋とはさほど関係ないが「地面に刺さっている剣は植物の一種で、抜いた直後は使えるがいずれ使えなくなる。 ばらばらになった剣を土にまくと、再び剣が生えてくる」というエピソードが気にいっている。こういう滅茶苦茶な話好き。
今までホラーはあまり読んでいなかったが、楽しく読めることがわかった。AmazonのカテゴリはSFとホラーが一緒にされているので、Amazonにとっては既知なのかもしれない。
- 作者: 恒川光太郎
- 出版社/メーカー: 角川書店(角川グループパブリッシング)
- 発売日: 2010/09/25
- メディア: 文庫
- 購入: 2人 クリック: 14回
- この商品を含むブログ (26件) を見る
- 作者: 恒川光太郎
- 出版社/メーカー: KADOKAWA
- 発売日: 2018/05/31
- メディア: 単行本
- この商品を含むブログ (2件) を見る
夜市がよかったので、同じ作者の本を2冊読んだ。両方ともよかった。
- 作者: 貴志祐介
- 出版社/メーカー: 角川書店
- 発売日: 1998/12/10
- メディア: 文庫
- 購入: 38人 クリック: 500回
- この商品を含むブログ (184件) を見る
別の作者のホラーも読んだ。登場人物が携帯電話もってなかったりして違和感を覚えたが、1998年に出た本らしい。どうりで。
生まれた年が同じ登場人物が殺されてて悲しかった。
🦔ノンフィクション
絶滅できない動物たち 自然と科学の間で繰り広げられる大いなるジレンマ
- 作者: M・R・オコナー,大下英津子
- 出版社/メーカー: ダイヤモンド社
- 発売日: 2018/09/27
- メディア: 単行本
- この商品を含むブログを見る
タイトルに魅かれて読んだ。結局「無理に保護してまで、絶滅を防ぐのはどうなのか」という話が実例つきで書いてあっておもしろいが、逆にいうとそれ以上の情報はない。
🛠技術書
ブロックチェーンが流行っているので基礎知識を身につけようと思って読んだ。
小説形式になっててウッとなったが、読み進めるうちにさほど気にならなくなった。あんまり得意な形式ではない。
- 作者: アンドリュー“バニー"ファン,山形浩生,高須正和
- 出版社/メーカー: 技術評論社
- 発売日: 2018/10/19
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
積ん読になってたので読んだ。文体も軽妙だし、話題の幅も広くておもしろい。Chumby好きだったし、開発の話が読めてよかった。
が、ハードウェアを大量生産するためのノウハウが役にたつ予定はない。
【新版】UI GRAPHICS 成功事例と思想から学ぶ、これからのインターフェイスデザインとUX
- 作者: 安藤剛,水野勝仁,萩原俊矢,ドミニク・チェン,菅俊一,鹿野護,有馬トモユキ,渡邊恵太,須齋佑紀/津?将氏,庄野祐輔,藤田夏海,塚田有那,増川草介??栂木一徳
- 出版社/メーカー: ビー・エヌ・エヌ新社
- 発売日: 2018/10/19
- メディア: 単行本
- この商品を含むブログを見る
格好いいiPhoneアプリのデザインがたくさん載っててよい。iPad Pro 9.7インチでも若干狭かったので、iPad Pro12.9インチで読むか、紙で買ったほうがよさそう。
Coq/SSReflect/MathCompによる定理証明:フリーソフトではじめる数学の形式化
- 作者: 萩原学,アフェルト・レナルド
- 出版社/メーカー: 森北出版
- 発売日: 2018/04/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
積ん読になってたので読んだ。その2。
Coqの部分は概説レベルでSSReflectやMathcompにページ数が割かれててよかった。
zip書庫の展開方法は「右クリックした上で"送る"を選び...」というレベルで丁寧に書かれているのに、群の定義はさっとすませてるのがおもしろい。たぶんそういう読者層を想定してるのだと思う。
🦀鳥取
台湾旅行だけではANA解脱に至らなかったので、鳥取に行った。
🦀カニ
空港にカニのだし汁がでる蛇口がある。終了してたけど。
@k0matatsuに大漁市場なかうらまで連れってもらってかにトロ丼を食べた。めっちゃうまい。
夕飯にもカニをがつがつ食べてたら「カニ好きなんですね〜〜^^」と言われた。 カニがあったら食べるでしょ??
⚓️境港
境港/鬼太郎ロードにいった。
電車がラッピングされててすごい。
急に金の話がでてくる。一兆円ほしい。
砂場コーヒーのトレーラーを見つけたので行ったが、店員さんがいなかった。妖怪なのかもしれない。
街灯に迫力がある。夜みたら泣くかもしれない。
カニの被り物や妖怪の像があってたのしい。
めっちゃ楽しんで貰っている pic.twitter.com/2R0Uzcmwyi
— こまたつ (@k0matatsu) December 15, 2018
🏢水木しげる記念館
鬼太郎ロードの端にある水木しげる記念館に行った。
ねずみ男のプロフィールに「転職を繰り返す」と書いてあって、謎の共感を覚える。 よく見ると博士号を取った上で別の学部を卒業してて学歴がすごい。
一反もめんの解説は単位の説明になっている。
基本的に迫力があって怖い。
🛏ドーミイン
境港の前にあるドーミインに泊まった。
夜に食堂に行くとラーメンがもらえる。すごい。
朝食は海鮮盛り放題のバイキングだった。
✈️ANA
ANA修行をミスりました pic.twitter.com/WpkBh556Dx
— mzp (@mzp) November 26, 2018
この失敗をリカバーして、プラチナメンバーになった。よっしゃ。
🇹🇼台湾
勤労感謝の日による3連休に台湾に行った。 勤労に感謝している。
👣観光
九份
九份を見にいった。これが一番の目的。
雨がふっててつらかった。
途中の道がせまくて歩きづらかった。
AppleStore台北
台北のAppleStoreの様子を見にいった。
台北101
AppleStoreは台北101という高層ビルにはいってるので、展望台も見にいった。
雨が降ってる日だったので、ほぼ白みないな景観だった。わりといい値段はらったのに...。
🎯看板
看板が漢字でなんとなく読めるが、ちょっと違う。
明朝体の電光掲示板、あまり見ない気がする。書体もちょっと違う気がする。
Exitと出口のタイポグラフィが美しい。
東京最強らしい。
🍜食事
夜市
夜市に行ってみたかったので行った。
が、雨がふってたので、普通の店にはいった。台湾料理セットみたいなもの。
そのあとは他の店でワンタン麺を食べた。おいしい。
さらに、豆花という豆乳プリンを豆乳につけたデザートも食べた。うまい。
小籠包
鼎泰豐にいって小籠包を食べた。
カニミソ小籠包を頼んだら、カニの形にきった皮がはいっててかわいかった。
いっしょに頼んだチャーハンもおいしい。
タピオカミルクティー
タピオカミルクティーも飲んだ。 なぜかビールの容器にはいってる。
しょうがないので、そのあとビールも飲んだ。
18才以上は飲酒可能らしく異文化を感じた。
火鍋
火鍋を食べにいった。からいけどおいしい。
具の半分が以上が何か分からないので、明るい闇鍋みたいになっている。食べてもなにか分からなかった。
📱eSIM
iPhoneXSにしたので、GigSkyを契約して使っていた。
現地でプリペイドSIMを買うのと比べて、抜いたSIMカードをどこにしまうかを考えなくていいのが楽。
🚃移動
MTRは券売機で一回切りのトークンが買える。 改札機にタッチすると通れる。
Uberはいつも通りの利用感で安心できる。割り勘機能がうまく使えなかった気がする。
その他
ANAのPP修行は失敗しました。(5万ポイントを貯めるつもりだった)
ANA修行をミスりました pic.twitter.com/WpkBh556Dx
— mzp (@mzp) November 26, 2018
💨呼吸時間の記録
Apple Watchには「呼吸」アプリがある。深呼吸によるリラックスを支援をするアプリである。(参考: 呼吸 App を使う)
呼吸した時間をPixelaに記録し始めた。
🎯一覧性と継続のモチベーション
呼吸した時間はヘルスケアアプリに記録される。 しかし、継続日数が読み取りづらく、毎日続けるモチベーションになりづらい。
✨Pixela
Pixelaは任意のデータをGitHubのコントリビューショングラフ(通称: 草)にするサービスである。
⏫ショートカットを用いた呼吸時間の記録
ショートカット(旧: WorkFlow)で呼吸時間をPixelaに記録する。
ショートカットを不特定多数に公開する方法はないので、画像を貼っておく。
おもに次の処理を行なっている。
- ヘルスケアから呼吸時間を取得する
- 合計時間を計算する
- Pixelaに記録する
- 1〜3を過去n日分に繰替えす
最初は作成したのち更新する、という流れにしたが、更新のみでできるように pixe.la の仕様が変更された。(最高!!)
ありがとうございます!Pixelの、ですよね!
— a-know (@a_know) November 23, 2018
PUT の挙動を「なければ作成」にしようと思っております...!🙏
対応してみました!😀https://t.co/5Yb7c1hEds
— a-know (@a_know) November 24, 2018
💓所感
iPhoneアプリを書かずにiPhoneの情報を扱えるショートカットは便利。ただ版管理機能や共有機能が弱いのは厳しい。
Pixelaは手軽でいい。見慣れた見た目になる、簡単なAPIで使えるので使い出がありそう。ただ、データを確認するときに、いちいちcurlを叩くのは大変だったのでPawを使った。
🔐二要素認証
Twitterなどの二要素認証では、二要素認証用のアプリで生成した認証コードを使う。
認証コードをどのように生成しているのか、Twitterとは無関係のアプリで生成した認証コードが利用できるのか、クラウドで同期できるのかが疑問だったので実装した。
🔍調査
なにから調べていいか分からなかったので、普段使っているAuthyのサイトを見ていたら、二要素認証の種類について説明しているページがあった。
これによると「TOTP(Time-based One-Time Password)」という方式らしい。
あの6桁の数字はワンタイムパスワードなのかと気づいた。
📕 TOTPアルゴリズム
TOTPというキーワードをもとに検索すると、RFCまで辿りつく。
TOTPは以下の式で計算される。
時刻T(Unix秒)におけるは以下の式であたえられる。 はワンタイムパスワードが有効な秒数であり、通常は30である。
Swiftで書くとこのようになる。
public final class TOTPGenerator { private let hotp: HOTPGenerator public init(secret : [UInt8]) { self.hotp = HOTPGenerator(secret: secret) } public func generate(at date : Date, format: OTPFormat) -> String? { let count = UInt64(date.timeIntervalSince1970) / 30 return hotp.generate(at: count, format: format) } }
📒HOTPアルゴリズム
TOTPはHOTP(HMAC-based One-time Password)のパラメータを時刻にしたものなので、メインのアルゴリズムはHOTPで定義される。
Truncateはハッシュ値を指定の桁までに切りつめる操作だが、数式で書くとつらいのでSwiftで書くとこのようになる。 ほぼこのままの式がRFCにのっている。
func truncate(hash : [UInt8]) -> Int { let offset = Int(hash[19] & 0x0f) return Int(hash[offset] & 0x7f) << 24 | Int(hash[offset + 1]) << 16 | Int(hash[offset + 2]) << 8 | Int(hash[offset + 3]) }
これを使いうとHOTPは以下のコードで生成できる。
import class CryptoSwift.HMAC class HOTPGenerator { private let hmac: HMAC init(secret : [UInt8]) { self.hmac = HMAC(key: secret, variant: .sha1) } func generate(at count : UInt64, format: OTPFormat) -> String? { guard let hash = try? hmac.authenticate(Array(uint64: count)) else { return nil } // 先頭6文字のみを使う return String(String(truncate(code)).suffix(6)) } }
🤝秘密鍵の交換
TOTP/HOTPでは秘密鍵を共有する必要がある。
秘密鍵はBase32でエンコードされてやりとりされる。 二要素認証の設定画面に表示される「7nx ofic ...」がそれにあたる。QRコードにも同様の内容が含まれている。
🛠サンプルアプリ
アルゴリズムだけ調べても正しいか不安なので、Swiftでコマンドラインツールを作った。
Mastodonの二要素認証に表示されるSecret keyを入力して、二要素認証に使えることを確認した。
Swift Package Managerを使ったが、プレインテキストでプロジェクトの構成を管理できてよかった。
xcodeprojファイル管理するの大変だからフォルダ構成とかから生成できないかなーと思ってたけど、swift package generate-xcodeprojでできたわ
— mzp (@mzp) 2018年11月3日
👀参考にしたサイト
- Swift Package Manager V4 + Utilityで作る!コマンドラインツール – Eureka Engineering – Medium
- Swift Package Manager (SwiftPM) で作るコマンドラインツール - Qiita
- ワンタイムパスワードジェネレータを作った - ぶていのログでぶログ
💕感想
普段、使ってるものの仕組みをちゃんと調べるのはたのしい。
Authyとかの二段階認証、どういう仕組みになってんの? なんで独立したアプリがTwitterのコードを生成できんの? というのが不思議だったので、RFCとか読みながら作った。 pic.twitter.com/eDGWQd3bWP
— mzp (@mzp) 2018年11月3日
要は事前に共有した秘密鍵と時刻から、認証用のコードを生成してるんだ
— mzp (@mzp) 2018年11月3日