🛤北の果て
北海道の稚内に行った。
空港に出汁之介というゆるキャラがいた。食べるのかな...。
🌊最北端
最北端にある宗谷岬を見た。
Appleマップでも果てになってる。
北方領土もあるし最北端って言い方は正しいのかな、と思っていたら「私たちが自由に往来できる日本の領土としては最も北に位置する...」という書き方になってた。 なるほど。
周囲は草原が広がっててよかった。
草原の向こうに風車小屋が見えてるのは現実感が乏しくていい。
アンテナ台みたいなのもあってエモい。
🚆線路の果て
稚内駅に線路の果てもあった。
なぜか駅の外に北端があって謎。
💫天文台
火星最接近の日だったので天文台に行った。
難易度の高いスタンプラリーが開催さてれいた。
曇りだったので火星は見えなかった。
👣風景
スケール感のある風景があってよい。
空港でたらなにもない。
道も広い。牛もいる。
歩道の幅が広すぎてびびる。
噴水。
🍽食事
北海道なのでご飯がおいしい。
寿司。
稚内ではうにが捕れるらしい。
ソフトクリームうまい。放牧牛の牛乳で作ってあると書いてあった。
そういえばザンギ食べてないな残念だな、と思いながら空港を歩いてたら急にラーメン屋がでてきた。しょうがない。
🇸🇬シンガポール
シンガポール旅行をした。
ANAのプレミアムポイントを貯めているので飛行機で遠くに行きたいという気持ちと、東南アジア観光をしたいという気持ちが合致した。
🍽食事
ホーカーズという屋外のフードコートのような場所で食べていた。 おいしいし安いので最高。近所に欲しい。
南海チキンライス。
ラクサ。 ココナッツ風味のスープに麺がはいっている。
呼び方が分からないけど蝦麺と書いてあった。 そのままのものがでてきた。
あとは空港のレストランで肉骨茶を食べた。 胡椒の聞いたスープに肉がはいっている。
🚶♀️観光
動物園
シンガポール動物園がすごいと聞いたので見にいった。 檻とかがなくて見応えがあった。
カワウソかわいい。
バクをはじめてみた。思ったより景色に溶けこんでて写真に写りづらい。
水辺にはトラがいる。
マントヒヒ。
象。
すごいなーと見てたら急にタヌキがでてきてびっくりした。
植物園
広大な植物園も見た。 休憩しながら回っていたので5時間くらいかかった。
ほぼ森の中を歩いてるような気分になる。
広場みたいなエリアも広くて、おもしろい。
有料エリアで蘭が見れるのてたのしい。
ランドマーク
マーライオン。 マーライオン公園にあるやつを見て満足してたが、Wikipediaによると他にもいくつかあったらしい。
なんか上に船がのってる建物があるわ、ウケる、と思ってみてたら、有名なマリーナサンベイズだったらしい。
シンガポールのAppleStoreも確認した。
📱通信
空港の出口を出た瞬間にプリペイドSIMが販売されていて最高だった。
HISの変なSIMも持っていったが、日本での初期設定が不足してたためか、うまく使えなかった。
🛌ホテル
予算相場を把握しないまま予約したらやたら豪華なホテルになってしまった。調理器具一式がついてたが、いっさい触れなかった。
✨その他
歩道に鳥の足跡がのこっててかわいかった。
飛行機のWifiのパスワード入力例の主張が激しい。
🌓ダークモード
メニューバーからダークモード切り替えをするアプリケーションを作った。
ダウンロード: https://github.com/mzp/DarkMenuBar/releases
🖼デモ
🌑ダークモードの登場
macOS HighSierraからメニューバーおよびドックを黒にするダークモードが利用できる。さらにMojaveではウインドウ等も黒にできるようになった。
(WWDC 2018 Keynoteより引用)
これらの変更はシステム環境設定から変更できる。
しかし、「周囲が暗いのでダークモードに切り替えたい」「気分転換にモードを変えたい」といったときに、都度システム環境設定を開くのは面倒である。 もっと気軽にメニューバーから切り替えたい。
🌟メニューバーからの切り替え
そこでメニューバーからダークモードのオン・オフをするアプリケーションを作った。https://github.com/mzp/DarkMenuBar/releasesからダウンロードできる。
🛠仕組み
ダークモードへの切り替え
切り替えはSkyLightというprivate frameworkを使うとできる。 こんな感じ。
@objc func enterDarkMode(sender: Any!) { NSLog("%@", "enter dark mode") SLSSetAppearanceThemeLegacy(1) } @objc func leaveDarkMode(sender: Any!) { NSLog("%@", "leave dark mode") SLSSetAppearanceThemeLegacy(0) }
メソッド名にLegacyが含まれてるのが不吉だけど、とりあえず無視する。 /System/Library/PreferencePanes/Appearance.prefPane
をディスアセンブルしてもこれ使ってたので、まちがってはいないと思う。
メニューバーへの組込み
WeatherBar by bgreenleeにある方法でメニューバーに組み込む。
アイコンはSketchで適当に書いた。
ログイン時に起動
ログイン時に起動はHow to launch a macOS app at login? - The.Swift.Devで実現した。
/Applications
に配置しないと動作しないのでデバッグが面倒だった。
🚧IM@S Engineer Talks メイキング #imas_hack
IM@S Engineer Talks - connpassでアイドルとして勤務する -理論と実践-という話をした。IM@S Engineer Talksで喋ってきた話のメイキングのおはなし #imas_hack - ツバメになったバリスタがたのしかったので、ボクもメイキングを書く。
アイマスハッカソンの打ち上げの帰りにtrebyさんから「今度長めにしゃべりませんか」と言われて「いいですよー」と答えてたら本当にしゃべることになった。 結果としてMisoca在籍中の最後の登壇となったのがおもしろい。
🤔狙い: 「実際にやってみた」を全面に出す
アイマスハッカソンでやってた心拍数ハックやライブフォト生成はid:banjunが話すので、別のネタで行くことにした。 ちょうどパペ文字によるVR出社をやりはじめたころなので、アバター出社で行くことにした。
そのまま作ると「FaceRigを使ってみました」という内容になって技術的な難易度は低い上に、担当アイドルへの愛の強さは他の人にはかなわないので、工夫が必要だった。
そこで「実際にアバター出社をやってみるとおきるあれこれ」というのを主題にした。 アバター出社をしている人はあまりいないので、実体験をメインに据えれば興味深いになるのではと考えた。
また会社に交通費補助がある場合はスライド会社の紹介をいれるのが自分のルールなので、出社の話をすれば違和感なく会社の紹介ができるなという狙いもある。スライドでは次のようなシナリオにして会社の紹介をいれた。
- Misocaで勤務しています
- Misocaではリモート勤務を推奨しています
- そこで発生する問題を解決するためにアバター出社を導入しました
📝スライドメイキング: マイドマップと原稿
マインドマップ風にがーと書いた。ドトールで書いてたら水滴をおとして文字がにじんでしまった。
そのあと原稿にまとめていく。 300文字/分と聞いたのでそれを目安に書いてたかデモを挿入すると崩壊すると学んだ。
このあたりで開催まで1週間をきったので、焦りだした。
🙌当日の反応
デモも問題なくできたし、みんなもりあがってくれてよかった。
予想はしていたが、声に関する質問がおおかった。 「ビジュアルはいいけど、声はどうなんですか?」という質問、プロデューサーっぽいね、次はきっとダンスのこと聞かれるよ、という話を懇親会でしててたのしかった。
追加の質問は https://quesdon.rinsuki.net/@mzp@mstdn.jp で受け付けている。
⚡️後日の反応
ブログに発表資料と原稿を書いたら、めっちゃブックマークされてびびった。 今みたら431ブクマされている。
タイトルにハッシュタグを含めたせいでimachack SlackのTwitterエゴサチャンネルが崩壊した。
オモコロのトップページにも掲載された。
今週のはてなブログランキング〔2018年7月第2週〕 にも掲載された。 13位がMisocaの社長の記事なので、若干きまずい。
これで臨界点を越えたのかアバター出社する人が増えた。
はー我かわいすぎか😊😊 pic.twitter.com/DUuNNiQZSb
— こまたつ (@k0matatsu) 2018年7月13日
こっちですよ pic.twitter.com/kVZlvixOrK
— ころちゃん (@corocn) 2018年7月15日
👋転職
近況報告から4年、ふたたび転職することになった。思いなどはMisoca開発者ブログに👋Farewell song として書いた。
ここでは記録のためにいくつかの日付を記録しておく。 たまに必要になるのでブログに書いておくと便利。
- 最終出社日 & 退社日: 2018年7月18日
- 次の会社の入社日: 2018年9月1日
- 東京への引越し日: 2018年8月15日〜20日
- 有給消化期間はない。(有給を使いはたしていたので)
⛰富山ワーク
同僚のid:mugi1が富山からリモートワークしているので、富山に行って一緒に仕事した。
避暑になるかなと思ったがそんなことはなかった。
🏢コワーキングスペース
作業は南砺市福光会館 オープンスペースでしていた。
図書館の2階のエリアが解放されていて、自習スペースのような感じになっていた。空いているので気兼ねなく利用できる。
🍣食事
お昼は8番ラーメンを食べた。富山というか北陸周辺の有名なローカルチェーンの店らしい。
夕食は寿司を食べた。タッチパネル式だったか操作を間違えて、大量のウニが届いた。
🏡宿
きときとのときと同じくBED AND CRAFTの提供する宿に泊まった。
砺波平原の付近なので、夕日がきれいだった。ご飯食べにいく途中でぱしゃぱしゃ写真を撮っていた。
宿の内装がおしゃれなのでものすごくテンションがあがる。
富山の宿が最高 pic.twitter.com/JpLcqf9ukn
— mzp (@mzp) July 10, 2018
📷舞台訪問
きときとののときにゆるゆり なちゅやちゅみ!(2014)の舞台訪問をしたが、砺波駅は未訪問だった。
今回は砺波駅を利用する機会があったので、写真が撮れた。
駅の案内表示で油田行きの電車がでていておもしろかった。 石油王がいるのかと思った。
🛢おまけ
🏜InputMethodKit for Mojave
日本語入力を作るときに必要だった本をmacOS 10.14 (Mojabe)にあわせて加筆・修正した。 過去に購入した人も再ダウンロードすれば反映される。
非公開機能について記載していた部分がOSのバージョンアップにともない動作しなくなっていた。 今回の修正で2つのOSで動作するようになったので安定性が増したと思う。
🛠変更箇所
https://github.com/mzp/EmojiIM/pull/25
コードの差分は上記プルリクエストにまとまっている。
⌨️キーボード配列の取得
⌨️キーボード配列の取得で以下のコードでキーボード配列の種類を区別できると書いた。
let r = TISGetInputSourceProperty(inputSource, "TSMInputSourcePropertyScriptCode" as CFString) let n = unsafeBitCast(r, to: NSInteger.self) // 39なら英語 return n == 39
しかしこれは誤りであり、Mojaveで動作しなくなった。 TSMInputSourcePropertyScriptCode
に対して取得できるプロパティは定数ではなくオブジェクトへのポインタであった。 OSのバージョンが固定されている場合はポインタのアドレスも固定されているため、定数と混同していた。
正しくは以下のコードで英語キーボードかどうかを取得する。
let r = TISGetInputSourceProperty(self, "TSMInputSourcePropertyScriptCode" as CFString) let n = unsafeBitCast(r, to: NSString.self).integerValue return n == 0
これに加えて、https://github.com/mzp/EmojiIM/pull/25ではBridgeHeaderを用いて TSMInputSourcePropertyScriptCode
という文字列定数を直接埋め込むのをやめた。
🌓入力モード
🙊入力モードの非公開機能で入力モードの統合について書いたが、これには不足があった。
<key>tsInputModeIsVisibleKey</key> <true/>
のように tsInputModeIsVisibleKey
キーに対する値を YES
にしないとメニューバーに入力モードが表示されない。
💄その他
これを機会に体裁を整えるための変更を行なった。
謝辞を載せるといっておきながら忘れていたので追加した。
電子版は印刷する必要がないので左右の余白サイズの統一も行なった。