Twitterでふぁぼったものをひたすら試します

熊本で聖地巡礼したり花見したりグルメ堪能したりした

※プログラミングの話は一切ない

経緯

ゲーム内で熊本城を戦場にして遊んでいたら、本当に熊本城が破壊されちゃった(地震で)。この機会に聖地巡礼して金落としてこよう。あと美味しいもの食べる。

高機動幻想ガンパレード・マーチ(以下ガンパレ)は名作なのでみんなやりましょう。
学校生活を送りながら幻獣という怪物をボコボコにするゲームで、学園パートも戦闘パートもよくできていて頭をよくつかうゲームです。PSVitaでやるのがいいと思います。

www26.atwiki.jp

おすすめのプレイ動画はニコニコ動画の「人類は組織的抵抗をあきらめました」シリーズ。これを見て購入を決意した。マジ。ほんと。だってかっけえんだもん。名作of名作すぎて大百科に記事があるレベル。
人類は組織的抵抗をあきらめましたとは (ジンルイハソシキテキテイコウヲアキラメマシタとは) [単語記事] - ニコニコ大百科

準備

復興城主になる

kumamoto-guide.jp

現地熊本城内のわくわく座というところで寄付をすることもできるが、現地入りする数ヶ月前に済ませておくほうが雰囲気が出る。

ふるさと納税の場合:

  1. ふるさとチョイスから熊本城主を課金(城主証・城主手形 - 熊本県熊本市 | ふるさと納税 [ふるさとチョイス]
  2. 「城主証・城主手形」の仮発行が届く(ほんものもそのうち届く)
  3. ワンストップ特例制度の書類を熊本城総合事務所に郵送

おわり

注意点

  • 城主手形(真)が届くまで数ヶ月ほど時間がかかるらしいので、余裕を持って課金する。仮の方も1ヶ月はかかった気がする
  • 翌年度ぶんの住民税から控除するので新卒でもあんしん

旅行日程と行き先を決める

ガンパレード・マーチは1999年3月4日から5月10日の熊本県を舞台にしたお話。毎日学校に通う他に、熊本県各地に出張して幻獣をボコボコにする。

できごと
3月4日 プレイヤーが尚敬高校に到着
4月1日以降のどこか 降下作戦@阿蘇
5月10日 最終日

f:id:S_Shimotori:20181202153046p:plain:w300

goo.gl

作中の戦闘パートでは、県各地に出張する他に、熊本市内の幻獣を一気にボコる「熊本城攻防戦」という重要イベントがある。このイベントは条件を満たせば期間中いつでも起こせるため特に日付が定まっていない*1。戦闘中ムービーには満開の桜が描かれており、それくらいの時期だろうと言われている。

熊本県の開花日と満開日は

開花日 満開日
1999年 3月22日 4月3日
2014年 3月20日 3月27日
2015年 3月21日 3月31日
2016年 3月22日 4月2日
2017年 4月1日 4月8日
2018年 3月17日 3月26日
平年値 3月23日 4月1日

気象庁 | 生物季節観測の情報

→つまり3月最終週に行けばいいんじゃね!
けっきょく2019年の開花日は3月26日だったのでいい感じ。満開にはちょっと早かったくらい。

あとはなるべく長く滞在してご飯を食べる回数を稼ぐ。定休日が日曜日のお店が多いので要注意。

聖地巡礼したり花見してる人を見たりいっぱいごはんたべたり

2019年3月29日金曜日から4月1日月曜日まで。え?平日?仕事?しないよ。

持ち物

  • ICカード
    • リムジンバスも市電もJR在来線も乗れる
  • 城主手形
  • 履きなれた靴

実際の旅程

3月29日金曜日

NH645で現地入り→(九州産交バスの空港リムジンバス)→早速味のれんに行くもお休み→むつ五郎で食事→熊本ホテルキャッスルで1泊

現地入りすぐに美味しい夕食を食べるべく、遅めの便で到着。花の金曜日のせいかお値段は高め。なぜか飛行機が蛇行しながら着陸してくれた*2が、空港周辺の菜の花畑が上空から見えたのでよしとする。

リムジンバスの進行方向右側(北側)に座ると熊本県庁と健軍駐屯地がよく見える。熊本県庁はゲーム内で勲章授与式の会場。健軍駐屯地*3は小説に登場する建軍基地と関係がある……と思うのだが建/健の字が違うのでよくわからない。

Return to Gunparade

更紗は歯噛みして無線機のスイッチを入れる。
「こちら建軍基地」
弾道ミサイルだせ」

この健軍駐屯地の住所は熊本市東区東町1-1-1。熊本空港撤退防衛戦の戦場が大体この辺だと思われる。

準竜師「俺だ。お前達に命令を出す。5月10日、熊本空港から重病人と怪我人、および、陸路を耐えきれないと思われる人間を乗せた飛行機を出す。これが飛び立つまでの間、空港の手前、東町で敵を阻止せよ。

3月30日土曜日

熊本城をぐるっと一周→敷地内の加藤神社にお参り→「熊本城~食の宴2019~」で朝兼昼ごはん→わくわく座で熊本城の勉強→市役所最上階で熊本城俯瞰→園田屋でお買い物→くまモンスクエア→みやじで食事→ドーミーイン熊本で1泊目

2日目は熊本城周辺へ。ガンパレはあくまで屋外戦闘をするゲームで城内部と関係がないので、閉鎖中であろうともまあなんとかなる。
ドーミーインはガンパレとは関係ない。繁華街そばなのに温泉があって歩き疲れた体に優しい。

3月31日日曜日

花岡山登山→和Frenchそよ風の丘KINOSHITAでランチ→(JR在来線で南熊本駅へ)→アルファシステム社屋見物→今町公園→西原公園→どぶ川べりの道→味のれん→ドーミーイン熊本で2泊目

3日目は熊本城から離れたところを見学。日曜日は結構なお店が定休日にしているので、味のれん(本命)が空いてて助かった!西銀座通り店はこの日はお休みだった。

4月1日月曜日

(リムジンバス)→阿蘇くまもと空港→NH646

帰るだけ。
途中で熊本タクシー痛車とすれ違ったが一瞬だったので写真に撮れなかった。
www.famitsu.com

キャベツ。収穫作業中だった。
f:id:S_Shimotori:20190403003752p:plain:w300

阿蘇くまもと空港はちっちゃい空港ながらカードラウンジがある。やったぜ。
f:id:S_Shimotori:20190403010407p:plain:w300
↑ちょうどコレやってた

晴れてたので阿蘇山っぽいのが撮れた。
f:id:S_Shimotori:20190403010515p:plain:w300

見どころ詳細

熊本ホテルキャッスルについて

アニメ版で速水&芝村がクリスマスディナーを楽しんでいたらしい*4が、見てないので知らない。誰か代わりに見ておいてください。ちょっと年季入ったホテルで、高校生がディナーをするところには思えなかった。肝心のレストランには立ち入ってないので、誰か代わりに(ry
名前にキャッスルがつくだけあって熊本城の目と鼻の先。1人部屋のような安くて狭い部屋は裏通り側。複数人で来て熊本城側の部屋に泊まろうな!

廊下に肥後六花なるものが飾ってあった。熊本では六花は雪ではなく6種の花のことらしい。
f:id:S_Shimotori:20190403003610p:plain:w300

尚絅高校について

プレイヤーは学生兼兵士として尚敬高校という学校(を間借りして建てたプレハブ校舎)に通う。その学校のモデルが尚絅高校。私有地だし女子校だし門を確認するだけ……
大学もあるのでゲーム内の絵よりは建物がでっかい。

サンロード新市街について

市電辛島町駅を降りて目の前にあるアーケード。作中では「新市街」もしくは「ムーンロード新市街」。ゲーム中のイラストから入り口前はただの通りかと思っていたのだが、片側2車線だし市電通ってるしバスターミナルあるし広場がイベント会場になってたし交通量はかなり激しい。歩行者は通町筋の方が多い。
ゲーム中では入り口にゲームセンターがあって、当時は実際にゲームセンターがあったそうだがなくなっている。聖地巡礼をした先人達のブログを見てもゲームセンターを実際に見れた人はほとんどいないっぽい。

コンビニで焼きそばパン*5探したけどなかった。。

むつ五郎について

mutugoro.co.jp

f:id:S_Shimotori:20190403004130p:plain:w300

ガンパレとは関係ない。肝心の味のれんがお休みだった&みやじが満席だったので食べに行った。私の兄がオススメしていたお店であり、私の隣で食ってたおじさんもホテルの人に教えてもらったって言ってた。
馬刺しは美味しかったが、値段が高かった。値段見ないでおなかいっぱい食ったら酒頼んでないのに8000円超えてた。いや、お金落とすのを目的に行ったからいいんですけどね。

熊本城について

熊本城の歴史 | 熊本城オールアバウト | 【公式】熊本城によると、1877年(明治10年)2月19日に熊本城天守・本丸御殿が炎上し、1960年(昭和35年)に復元落成になっている。言ってしまえば後世になって作り直されたレプリカである。

……というのはガンパレプレイヤーなら誰もが知っていることである。

芝村「幸い、熊本中心部には戦場向きの場所がある。…なんだ、知らないのか?博物館の隣、プールのそば…そうだ。熊本城だ。どうせ天守閣は再建されたレプリカだ。今更どうなっても、許されよう。それに城は元々戦うためにつくられたのだ。もっとも、今回は逆。攻めるために使うのだがな。」

とか、

市長「…70年も見ていた風景がなくなるんだ。感傷もするさ。…だが、もういい。どうせ西南戦争で主要な部分は壊れてるんだ。もう一度くらい、壊れてもいいだろう。」

とか、このゲームは城を壊す気満々である。でも壊すのはゲームの中だけで頼む。

桜は8〜9分咲きくらいでまあOK。修復は全然進んでない。石垣の石すら全部拾いきってない。休日返上で重機が稼働していた。

2019年秋に見れる範囲が増えるっぽい。今の所は各所の説明書きでがまん。
kumamoto-guide.jp

敷地内には加藤神社という加藤清正を祀った神社があって、「加藤清正公をNHK大河ドラマに」という署名活動が行われていた。チャリ部っぽいのが来てたり車のお祓いしてたり普通に神社。

同じく敷地内にはわくわく座なるものがあり、その場で寄付して復興城主になったりデジタル芳名帳で自分の名前を確認できたりする。

kumamoto-guide.jp

二の丸広場では「九州がっ祭2019」と「熊本城~食の宴2019~」が行われていた。あかうしの牛串のあぶらがおいしかった。550円もしたけど!

f:id:S_Shimotori:20190403004853p:plain:w300

熊本市役所について

市役所最上階は休日でも解放されており上から復旧中の熊本城を見られる。

f:id:S_Shimotori:20190403003341p:plain:w300

ゲーム中には熊本市長が登場する。市長の背景のお部屋はきっと市長室だろう。
1999年当時の市長さんは三角保之さん。ゲーム中に出てくる市長はちょび髭が印象的なのだが三角さんは違うっぽい。
第1回「熊本城の日シンポ」開く〜熊本城復興みんなの会|くま経 フォトレポート|くまもと経済

ちなみに、現市長さんは飯テロを食らうなどの業績をお持ち。
入院中の熊本市長が、妻から飯テロされる - Togetter

園田屋について

Return to Gunparade

「ああ、園田屋の朝鮮飴ですか。いいもの探してきますね」

朝鮮で飴という名前で惑わされるが、片栗粉まみれの求肥熊本県物産館などでも買えるが、雰囲気あるのでお店に行ってもいいかも。普通の求肥の他に柿味やレモンピール味もある。
小説の速水くんが粉を落とさないように頑張って食べているくらい、粉の量がやばい。信玄餅の比ではない。そして信玄餅のきな粉と違ってただの片栗粉なので、むしろ事前にちゃんと落とさないと口触りが片栗粉になってしまう。園田屋さん的には上質な片栗粉なので料理に再利用してほしいらしい。

物産館で買った玉緑茶・と一緒に。
f:id:S_Shimotori:20190404234839p:plain

くまモンスクエアについて

熊本県の稼ぎ頭。ガンパレとは関係ない。

www.kumamon-sq.jp

時々くまモン本人が現れる。スケジュールはHPで。この日は春休み中とあってちびっこも海外からのお客さんもたくさん。開始30分前の時点でだいぶ混雑していた。売れっ子なだけあってなかなかやりよる。

みやじについて

www.dandl.co.jp

がらかぶ*6 は味のれんのメニューの1つ。リアル味のれんでがらかぶを提供していないので、確実にがらかぶを入荷している専門店へ。みやじでは生きた魚が泳いでいるのでゲーム内味のれんっぽい雰囲気が味わえる。

なかなか立派なのを出してくれるしおいしい。料理人が店主1人だけなので回転率が悪い。予約したほうがいい。金曜日にも行ったんだけど花金のおじさんたちで満席だった。。

f:id:S_Shimotori:20190403005056p:plain:w300
真ん中が黒がらかぶ。

花岡山について

登場人物・瀬戸口ゆかりの地。熊本駅すぐ近くの標高132メートルの山。ぐねぐね車道とまっすぐ歩道がある。

この花岡山、ラブホ街で有名らしい。カップルガ午前中カラ入ッテイク所ヲ見チャッタ。Yahoo知恵袋で登頂所要時間の相談をした子も「下心はないことを事前に彼女に伝えておくべき」というアドバイスを受けていてウケる*7

聖地巡礼先駆者の方が「ラブホ街なんかに封じられてていいのか」とツッコミを入れていらっしゃっててごもっともなのだが、実際に行ってみると…

  • 加藤清正が熊本城築城の際に石を切り出した山。坂や岩にエピソードが残されている。
  • 阿蘇切腹の地
  • 神風連の変〜西南戦争の地。薩摩軍が砲座を置いた場所。政府軍の墓地がある場所。
  • WW2の犠牲者のお墓がある
  • 普通の一般のお墓もある
  • てっぺんの白いのは仏舎利塔。インド元首相から送られた立派なもので麓からも見える。藤井日達聖人の像もある
  • 熊本バンド(キリスト教のあれ)の結成の地
  • 祇園宮(北岡神社の前身)の跡地
  • 桜が植わっていて、結構たくさんの人が車やチャリで花見に来てた。眺めがいいし熊本城より良いかも。

とまあ、もうなんでもあり。花岡山パイセンの懐が深すぎる。ここまで来ると設定を1つ創作して加えてもなんの違和感もない。
車道からいくと乳水とラブホくらいしかないので、徒歩で行った方が楽しそう。

和French そよ風の丘 KINOSHITAについて

和Frenchそよ風の丘KINOSHITA(熊本 フレンチ)のグルメ情報 | ヒトサラ

花岡山頂上までの道の途中にあるお店。オシャレなお店と見せかけてワンピースのフィギュアとかが置いてある。
夫婦2人だけなので回転率は悪い。郷土料理をアレンジしたメニューで私みたいな観光客に優しく美味しい。

f:id:S_Shimotori:20190403005302p:plain:w300
桜肉。

Alfasystemについて

www.alfasystem.net

元 凶

都心のビル間借りIT企業に慣れている身からすると、ビルにロゴが入ってるのは見慣れない……
どうでもいいけどここの交差点にすずめのなまくび落ちてた。

今町公園&西原公園について

ゲーム中には今町公園という公園が登場し、プレイヤーは公園で運動をしたり金の延べ棒*8を拾ったりする。
が、ゲーム中地図で今町公園と示されているところは実際には西原公園である。そしてどちらの公園にもうんていはないし、当然金の延べ棒が落ちているわけもない。

リアル今町公園にはレッグレーズのやり方を書いた看板があっていちおう筋トレできる。リアル西原公園ではちびっこがアスレチックで遊べる。

この時期なので公園では誰かしらが花見をしていたり子供が遊んでいたりしたのだが、今町公園には誰もいなくて寂れていた。西原公園は側に児童館があるせいか花見客が大量にいた。なんならバーベキュー禁止って書いてあったのにバーベキューしてた。

味のれんについて

作中に登場する居酒屋。食事をするとプレイヤーの体力と気力が回復する。

不定休な上にHPがないのでいつやっているのかはっきりしない。カウンター席がなく6人席ばかりなので大勢で行ったほうがよい。1人用鍋でもつ鍋を出してくれたけど気まずかった。
で、肝心の味?うーんまあ…。ふつー。建物丸ごと新しくなっているのと、ゲーム内味のれんとメニューが異なるので、あの雰囲気を味わうことはできない。普通のもつ鍋屋さんって感じ。

f:id:S_Shimotori:20190403005803p:plain:w300
馬ひも。部位の都合上筋が多く、個人的には他の部位の方が好き。筋じゃない部分はもちろん美味しいんだけど。

Return to Gunparade

フロアマットには訳の分からない絵。それを踏みつけて中に入る。主人によれば、その絵は東の国、子供たちを守護する踊る神のものだという。それは踏めば踏むほどに色鮮やかに鮮烈になる絵。話によれば、商売繁盛の御利益があるとかないとか。

f:id:S_Shimotori:20190403010005p:plain:w300

春休みのちびっこ達に大人気…2018年の売り上げが1500億円超*9……

このくま怖い

どぶ川べりの道について

確かに地図に示された現地にはなんかそれっぽいのがある。車屋さんの並ぶ大通りから入ったところ。水はほぼ枯れてた。
思い切り住宅街の中なのでさっさと退散。

今回行かなかったところ

  • 熊本県立美術館: 熊本城敷地内だし行こうとしたら春休み真っ最中だった
  • 図書館やらプールやら動物園やら: シナリオと関連薄いし、場所が特定できないので
  • 熊本県各地: ゴールデンペーパードライバーだしゲーム内じゃ出張して幻獣ボコるだけだし
  • 阿蘇山: 大分側から行ったことある。牛さんいた
  • 小倉: 県外。Return to Gunparade

感想

  • 美味しかった。その辺の居酒屋なんかにはもう行けねえや。舌肥えちゃった、えへへ〜
  • 思ったより花岡山が面白かった。歴史が好きな人や宗教カオス感が好きな人にはオススメ。

参考:先人の皆様

https://www.tanteifile.com/tamashii/scoop/0307/06_01/ https://ameblo.jp/gpm5121atp/entry-11202673557.html https://dtman.info/post-0-70/ http://www.yukkun20.com/index.php/travel/17391/ https://ameblo.jp/gpm5121atp/entry-11202673557.html https://blog.goo.ne.jp/katsunori5121/e/0f8b267d9885d12796cd531837f86a9f

*1:設定的には4月6日説と22日説があるらしい。世界の謎萌え追い隊@Hiki - 熊本城攻防戦

*2:All Nippon Airways flight NH645 - Flightradar24

*3:健軍ツアーズなるイベントが時々行われているらしい。

*4:ガンパレード・マーチ~新たなる行軍歌~ - 作品紹介 | くまもとロケーションナビ

*5:夏でもないのに作中の自作弁当はすぐ腐って登場人物の腹を壊す。焼きそばパンは腐らず夜食に重宝するので個人的便利アイテム。

*6:がらかぶ | 日本の食べ物用語辞典。いまいち旬がいつなのかわからないやつ。いちおう季語は春らしい。

*7:熊本の花岡山についての質問です今度彼女と一緒に花岡山に夜景を見... - Yahoo!知恵袋

*8:売ると100万円。このゲームのお財布は(縛らない限り)けっこうゆるい。

*9:くまモン売上高が1500億円超=熊本県:時事ドットコム

try! Swiftに参加しました(4回目) #tryswiftconf

カンファレンスには一般参加したり学生参加したりスタッフ参加したり色々してきた。
今回はスポンサーチケットで、スポンサー役を。

-1日目

tryswifttokyo-aftertalks.connpass.com

勉強会自体が久しぶりで、ぱそこん持ってくるのを忘れる失態を犯した。

XcodeDebug Memory Graph を使った華麗なるデバッグ

Xcodeの Memory graph を使った華麗なるデバッグ - Speaker Deck

実装はGitHub - po-miyasaka/LLDB: A LLDB command creating a variable from a arbitrary instance address for debugで見れる。
ビルドにン十分かかるやつを触るとなるとあの手この手でビルドを回避しないといけないから、助かる。今回はDeNAさんもLLDBチートシートをくれたのではかどっちゃう

アプリの起動速度と Dynamic/Static Framework の関係を紐解く

App startup time with Dynamic/Static frameworks - Speaker Deck

Optimizing App Startup Time - WWDC 2016 - Videos - Apple Developerが参考になるとのこと。まとめてくれる人がいてたすかる。

0日目

github.com

縁あってハンズオンした。
Kituraと一緒に使えるパッケージがたくさん用意されているのはありがたい。世の中にはDarwin専用というか、Darwin上で動かすことしか想定していないものが多いので、使い合わせやら何やらを考えずにさくっと雑に作れる。

さっそくお家帰ってつくろうとしたら私用Macbookがつかえない子になっていた*1ので断念。いい加減買い換えようと決心した(3度目)→買いました

1日目

Color Contrast for Accessibility

https://raw.githubusercontent.com/emarley/ColorContrast/master/ColorContrast.pdf

色関係の話になるとすぐそうやって数式が出てくるんだから!(それはそう)
我々に求められているのはsRGB→XYZである

JavascriptでWC3のコントラスト計算式を書いてみる|意識の高い時に雑記
XYZ-RGB の変換式とカラートライアングル(JavaScript版)

数式は数式だからまだ何とかなるのだけど、どうやってデザイナーさん達と協力していくかのほうが10000倍難しそう。がんばりましょう。

Color - Visual Design - iOS - Human Interface Guidelines - Apple Developer
Web Content Accessibility Guidelines (WCAG) 2.0

protocol/extensionにジェネリクスを入れたい

GitHub - y-yu/try-swift-slide

protocol HList {
    associatedtype Head
    associatedtype Tail: HList
}

// ScalaのNothingは全ての型のサブタイプであるであるがSwiftにそんなものはなかった
enum Nothing {}

struct HNil: HList {
    typealias Head = Nothing
    typealias Tail = HNil

    // Scala object classの代わり
    private init() {}
    static let singleton = HNil()
}

// (A, (B, (...)))のような構造
struct HCons<T, U: HList>: HList {
    typealias Head = T
    typealias Tail = U

    let head: Head
    let tail: Tail
}

で表されるheterogenous list*2略して HList がある。

この HList 同士の結合を考える。

protocol HAppendable {
    associatedtype Left: HList
    associatedtype Right: HList
    associatedtype Result: HList

    static func append(_ lhs: Left, _ rhs: Right) -> Result
}

空リスト HNil と リスト T: HList の結合は、リストのほうをそのまま返せばいい。

enum Nil足すList<T: HList>: HAppendable {
    typealias Left = HNil
    typealias Right = T
    typealias Result = T

    static func append(_ lhs: HNil, _ rhs: T) -> T {
        return rhs
    }
}

HNilと非空リストとの結合ができたので、非空リスト同士の結合ができればあとは無限に好きなだけリストを繋げられる。
T: HList + U: HList -> V: HList
が定義されているとき、
非空リスト同士の結合
(W, T: HList) + U: HList
W, T, U つまり (W, V): HList とすればいいので、

enum List足すList<T, U, V, W, EV: HAppendable>: HAppendable
    where T == EV.Left, U == EV.Right, V == EV.Result {
    typealias Left = HCons<W, T>
    typealias Right = U
    typealias Result = HCons<W, V>

    static func append(_ lhs: HCons<W, T>, _ rhs: U) -> HCons<W, V> {
        return HCons(head: lhs.head, tail: EV.append(lhs.tail, rhs))
    }
}

// あるいは

func append<T: HList>(_ lhs: HNil, _ rhs: T) -> T {
    return rhs
}

func append<EV: HAppend, T, U, V, W>(_ lhs: HCons<W, T>, _ rhs: U, ev: EV.Type) -> HCons<W, V> where T == EV.Left, U == EV.Right, V == EV.Result {
    return HCons(head: lhs.head, tail: EV.append(lhs.tail, rhs))
}

である。ほんとか??????誰かもっと綺麗に書いてほしい。だめだ修行が足りない。ワタシハSwiftゼンゼンカケナイ

swift-can-not-infer-concrete-type-from-protocol.swift · GitHub

github.com

あ、TaPL以外に参考書ない?とか色々質問して、「プログラミング言語の基礎概念」「Scala DOT*3」の存在を教えてもらいました。みなさんもたまにはTaPL以外を推してみてください。なさそう。

テストケースでMemory Leakを発見する

Keynote for iCloud

たしかにその方法でメモリリーク発見できる……が、……そのオチ、かなしいですね

2日目

Swift type metadata

Swift Type Metadata - Speaker Deck

Metadataってあっさり取れちゃうもんなんですねえ

UnsafePointer - Swift Standard Library | Apple Developer Documentation
SwiftにおけるMethod Dispatchについて - Qiita
What is a nominal type? - Speaker Deck

All about linking libraries

All about linking libraries - Speaker Deck
Keynote for iCloud

同じく、まとめられてて助かるやつ。自分でまとめろよという話だが

The Philosopher's String

これ資料公開されてる?代わりにniwatakoさんのブログを。
賢者のString | try! Swift Tokyo 2019 2-12 - niwatakoのはてなブログ

あんま関係ないけど、都道府県リストもソート時には罠っすよね。国名とかアメリカ州リストと違って南北にソートせにゃならんという。かといって日本の地理把握してない外国人向けだと辞書順になるのか?とか。

3日目

Open Source Swift Workshop

じぶんのぱそこんはだめなこなので、そのへんのつよそうな32GBまっくぶっく*4をひろってつかいました。じしゃかいさいでたすかりました。

どうにかして初PR出した。しかしへんじがないようだ。

[SR-10155] Support string interpolations with binary value by S-Shimotori · Pull Request #23510 · apple/swift · GitHub

まとめ

  • スポンサーブース、出し物として面白みに欠けたんだけどわたしそこまでアイデアマンじゃないからつらい
  • つよいIPアドレスをください
  • お疲れ様でした。今年もありがとうございました

*1:ストレージが残り10GB未満だとXcodeをアップデートできず、Kitura+Swift4.2(+Docker)を用意できない

*2:こういう手のものをプログラミング言語で表現する場合はSwiftなどという言語ではなく大人しくHaskell先輩の実装Heterogenous collections - HaskellWikiでも読んだ方が良さそうまだ読んでないけど

*3:ざっとぐぐったら 何で走っているのだろう: Scalaの型と型関連の機能DOT/dottyについて調べてみた | κeenのHappy Hacκing Blog が出てきた。あとでよむ

*4:入社して1年で2回PCを乗りかえたのは悪いと思ってい、ません

DroidKaigi 2019でネットワーク班の指揮と雑用をしました #droidkaigi

準備をする

今回のおもしろ話:配置設計と備品

配置設計を行う

使用機材の数と位置は以下の要素から決まる。

  • 部屋ごとの定員
  • LAN口位置
  • 参加者の座席位置や動線
  • 電源容量
  • 大規模な通信の予定

APの数は「50接続/台」で計算する。200人定員の部屋なら4つ置くことを考える。でもうまく分散しなくて1台あたり接続数100とか普通に行くんだよねしょうがないね。
SWの数は1部屋1台くらい。電源とかポート数次第。

機材の位置は、
ケーブル長は100m以内(※カテゴリ5e)にしなくちゃなあ、とか、
この会場はLAN口がどこにあるかな、とか、
人や車椅子がたくさん通りそうだからここは避けよう、とか、
バリスタマシンと同じところから電源とるとブレーカー落ちるからだめって言われた、とか、
参加者用電源席と同じところから電源(ry、とか、
録画したりYouTube配信したり、とか、
マグネットでドアの上を架線すれば動線邪魔しないんじゃね!、とか、
etc…

そのため、図を見たり会場&各部署と交渉したりするほうの仕事が多い。機材位置決定問題が充足不能に陥りかける点を除けば初心者でもできるお仕事です!

備品を調達する

備品調達も大事なお仕事

www.endeworks.jpiOSDCで肉の話してる会社 機材レンタル会社

↑物理構成図を描いたり落書きをしたり宣伝をしたりする。壁に粘着テープを使えない会場では、この静電気シートを介することで壁にSSID/PASSWORDの紙を掲示することができる。

↑どうしても人の動線を横切るようにケーブルを敷く場合はこれで固定する。ゴムマットを敷くのは重たすぎるので、2〜3本束ねるくらいならこちらのほうが簡単で便利。マジックテープ式なので何回でも使える。

↑カーペット以外の材質の時はこちら。テープ中央には粘着剤がついてないので、ケーブルがベトベトにならない。撤収時に剥がすのもらくちん。

↑機材を触るわるいやつ避け。作業中エリアの周りに貼って縄張り宣言することも

↑同上。機材にべたっと貼って威圧する。

本番を迎える

機材を置く

人に蹴られないように椅子の上に置いたらスイッチの排熱がうまくいかなかったぽくてめっちゃ温度上がった。椅子の下が正解だった。

監視をする

今回はZabbixのほかにGrafanaも使ったので、らくらくきれいにグラフを表示できた。

f:id:S_Shimotori:20190208144425p:plain:w400
こちらは展示ルームの接続数推移。
休憩時間ごとにみなさんが訪ねてくるので接続数が跳ね上がっていること、
Day1のパーティ終了後(2月7日20時)にスタッフたちが戻ってきて接続数がちょっと増えていること、
Day2のお昼頃(2月8日11時)に意味深なデータ欠損があること、
が読み取れる。

暇になる

どうにかうまく軌道に乗って暇になり、みんな遊び始める。

例:

  • "本物"のネットワークとか称してGlobal IP配り始める人
  • どろいどくんの落書きをする人
  • IPv6じゃないと"本物"のネットワークじゃないとか言い出す人
  • Ciscoスイッチで遊んでるのかNintendoスイッチで遊んでるのかよくわからない人
  • Cat5e作成体験会

人類は2種類に分類できる。研究室でLANケーブルを散々作らされた人と、そうではない人の2種類である。

事故る

時刻 できごと
11:00 運用も2日目に入ってやることないし眠い
11:01 全断発生
11:05 わたし、APが緑点滅していることに気づく。ほか全員目が覚める
11:20 どうやらONUが息してないことに気づく
11:25 2台目のONUに換えることでことなきを得る
11:35 元どおりになったことを確認

ONUは会場に設置している機器のなかでも1番ねっこのほうにあるもの(というかNTTのやつ)なので、これが息してないと全滅である。

実は会場全体用と配信用でフレッツを2回線契約しており、配信用のONUに乗り換えることで復旧した。YouTube配信用に念のため2回線契約していなかったら詰んでいた。(帯域的にはいらなかったんだけど、冗長化の面では必要だった。)

おいたをしたONUは復旧後暇になった人々により祭り上げられた。

"初期化しました"……
正確には、運用中に突然の再起動をキメてくれた。しかもすぐに元に戻らない。
写真内の製品注意書きにある通り、アップデートの為に再起動することがある、とのことだが、ONUのログの時刻がガバガバである以上、アップデートをしてしまったのか他の理由で再起動しちゃったのか、何しでかしたんだかよくわからない。歴戦の皆様もONUが事故ったのは初めてだとか。

(誰かZabbixからSlackへの通知作ってくれないかな〜、パトライトとかをくるくるまわすのでもいいよ!)

今回の記録

Day1 Day2
同時最大接続数 880 879 979
下り最大 218.3Mbps 228.6Mbps
上り最大 107.1Mbps 99.2Mbps

ぎりぎり1000にとどかなかったあ!今年こそはと思ったのに〜。ご利用ありがとうございました。

【2019年三が日企画】iPhone VoiceOverで三が日を暮らしてみた

三が日には何か新しいことをしましょう。今年はVoiceOverに挑戦しました。普段使っているアプリをVoiceOverオンにして使ってみます。 選んだアプリは私が普段愛用しているやつ順不同で、「もし失明宣告を受けたら私のiPhone生活はどうなっちゃうんだろう」というシチュエーションでやっています。それと、本体設定が英語なので読み上げは日英混合です。

アクセシビリティとは

www.apple.com

世界で最もパーソナルなデバイスは、すべての人が使えるように設計されました。だから、視覚に障がいのある方がみんなとセルフィーを撮ることも、聴覚に障がいのある方がお母さんに国際電話をかけることも、首から下の体を動かせない方が友だちにテキストメッセージを送ることもできます。

視覚障害者の数

code.kzakza.com

ロービジョンの人の割合が思ったより多い。ロービジョンとひとくちにいっても症状は様々なので、アプリの使い方もきっと人によって様々。

Voice Overとは

www.apple.com

VoiceOverはジェスチャーで操作する画面読み上げ機能です。画面を見なくてもiPhoneの楽しさと便利さを体験できるようにします。

基本的に、

  1. 選択したい項目のところをシングルタップ。四角い枠がつく。
  2. 1.の状態で画面の任意の場所をダブルタップすることで、初めてその項目を選択したことになる。

という2ステップで通常時のシングルタップ操作相当になる。

他にはローターという操作もある。
support.apple.com

個人情報を映しているとき(あるいは視覚情報無しでの操作を試したいとき)はスクリーンカーテンで。
support.apple.com

いろんなアプリを触ってみた

基本操作まわり

テキスト操作

これがめっちゃ難しい。音声入力だけは簡単なのでひとまず安心なのだが、修正やら何やらをしようとすると途端に難易度が上がる。
「VoiceOver」の設定方法②(入力モード~ダブルタップのタイムアウト) | iphoneMAX

是非みなさんもNotesアプリあたりで文章修正やコピーペースト操作に挑戦してみてほしい。
3678 Re: VoiceOverにおけ る範囲選択について - Apple Accessibility Mailing List Archive
行選択やApp Switcherが誤爆してもう無理。私は諦めました。

スクロール操作

UITableViewやブラウザで出したなが〜いページなど。

f:id:S_Shimotori:20181230135917p:plain:w100
はてなブックマーク - 電話ボックスに侵入して日向ぼっこしている猫が平和すぎてめっちゃ可愛い「いい場所見つけたなぁ」 - Togetterのようななが〜いページでもいちおう大丈夫。

スクロールする方法は2通りあって、

  • 3本指で上下スワイプしてページめくりする
  • ローターメニューで適当なものを選択した後にシングルスワイプで項目移動する

しかし任意の位置にスクロールができないので、レイアウトによっては若干つらさがある。どういうことかというと……

f:id:S_Shimotori:20181230140510p:plain:w200

ナビゲーションバーや広告で隠れてしまう部分(右側のスクショの灰色にした部分)にフォローが入らないということである。任意の位置にスクロールできないので何が書いてあるのかすぐに確認できない。項目移動であっても、やっぱり他のコンテンツに隠れていたり、一気に下方に飛ばされるなどして厳しい。

UIPickerViewは「pickerviewを選択→シングルswipe up/downで1つずつスクロール」なので簡単。

Twitter関連

私は普段公式アプリではなくThe Worldを使っている。で、VoiceOverにすると途端に使えなくなってしまうのがこのThe Worldのようなアプリ。シングルタップやダブルタップにアクションを割り当てるなどと言っている場合ではなく、大半の操作が不可能になってしまっている。そういう仕様のアプリだし個人制作の無料アプリだから仕方ないんですけど。

Twitter公式アプリはアクセシビリティ対応済みで、Cellを選択するだけで「ツイート主〜ツイート内容〜リツイート主」と一通り読み上げてくれて便利。ツイートを時系列順に戻せとか文句垂れてる場合じゃない。

f:id:S_Shimotori:20181230180441p:plain:w100
↑「しもとりミドルドットニートミドルドットしぐれ, 三が日企画には早いけどでアクセシビリティ機能onにしたらゲームで遊べなくなったミドルドットミドルドット, 1 day ago」。リプライなどのボタン類はタップしても一切反応せず、ローターメニューから行えるようにしてある。

Slack

VoiceOverがDroidKaigiをどろいどけーじーって読む(´・ω・`)

大人気アプリなので完全対応されているのでは!と思ったら、使えそうで絶妙に使えない。

  • 未読件数どころか未読があるかどうかすらも読み上げてくれないので、どのワークスペースやチャンネルを読んだらいいのかわからない。
  • リアクション周りが非対応。

ほか、いろいろ。デスクトップ版の方の使い心地は試してないけど、視覚障害の方がいるコミュニティでのiOS Slack利用は正直お勧めできない。せっかく便利なのに残念だ。今後対応してくれるのかな?してくれると嬉しいね。

f:id:S_Shimotori:20190102180004j:plain:w100
↑上の発言は「s_shimotori, おいしいものがたべたいな, 6:11 PM, December 30th, 2018two reactions」。このtwo reactionsとはtwo types of reactionという意味であり、何人が寿司とピザをリアクションしようともtwo reactions。詳細画面に行きさえすればリアクション内容や人数も喋ってくれる。
↑下の発言は「s_shimotori, 人の金で, 10 minutes ago」(10分後に読み上げてもらったとき)。取り消し線の読み上げは無理だった。

スクリーンショット加工

VoiceOverオンの時にスクリーンショットを取ると、左下ににゅっと顔を出すプレビューにフォーカスが移るので、そこから加工画面にいける。しかしここで求められているのはハンドルをドラッグするなどの操作であり、VoiceOver使用時は何もできない。

Safari

他と同じように操作できる。あとは各サイトさんのアクセシビリティ対応次第。
どこでウィンドウ閉じるんだろう?と思ったらローラーメニューにちゃんと設定してあった。

f:id:S_Shimotori:20181230173435p:plain:w100

乗換NAVITIME

乗り換え案内を華麗に読み上げてくれると思ったのに!
情報量が豊富なのが仇になっている感じ。例えば次の箇所を選択して読み上げてもらうと……

f:id:S_Shimotori:20181230170843p:plain:w100

「ブラックアップポインティングトライアングル、ブラックダウンポインティングトライアングル、籠原行、7、5、JR高崎線、番線、番線、発、着、154円、5分」

つらいっす。

日経電子版

記事の個別ページで操作と読み上げが効かない。つらい。記事一覧は読めるので、1日何があったかくらいはわかる。

Instagram

写真がメインコンテンツではあるが、Photosアプリみたくちゃんと写真の中身を読み上げてくれる。

f:id:S_Shimotori:20181230175015p:plain:w100
↑「Photo via S_Shimotori, Image may contain fruit and food, Image」

めっちゃおいしいいちごとメロンのパフェとか読み上げてくれたら最高なんだけどなー。将来的にやってくれればなー。

MoneyForward

非対応っぽいけど使えないことはない……と思ったがカテゴリ選択が操作不能なのでやっぱ厳しかった。

f:id:S_Shimotori:20181230180025p:plain:w100
↑ここからアクションが発生してくれない。

(おまけ)ゲーム関連

VoiceOverをオンにしたらどうなるのか。

FEヒーローズは謎のTextFieldが邪魔して何も操作できない。挙げ句の果てにはキーボードが出てきてしまった。しかもしまえない。どこに隠れてたのか逆に気になってきた。
f:id:S_Shimotori:20181229185512p:plain:w100

どうぶつの森はいつも通りのプレイ。

ゲームがVoiceOver対応していることはまずないだろうけど、あなたは徐々に失明してゲームもままならなくなりますとか言われたら泣いちゃう。

まとめ

  • 健常者に使いやすいUIが視覚障害者に使いやすいとは限らない。というか凝ったものほど使いづらいのでは…
  • 有料版があるようなサービスでも完全対応しているわけじゃないみたい

結構便利で愛用しているアプリがいくつかあるのだが、目が見えなくなったら下手すると使えなくなるんだと思うと悲しかったり寂しかったり。
みんな、余力を見つけて開発していこうな!

iOS以外でも前向きにSwiftを使いたい話

本記事はこれです。

qiita.com

iOS以外でSwiftの出番がない話

皆さんはiOS以外でSwiftを採用したことはありますか?私はないです。Swiftとかいうマイナーな言語を授業や研修で使うわけがありません。

「言語何にするー?」
Ruby/Java/Pythonならみんな書けるっしょー?」完

たまにはSwiftって言われてみたい……
全員がiOSエンジニアにも関わらずiOS以外をやる用事があればSwiftになるかも?

たとえば、iOSコミュニティでサーバサイドをやることになったとか……

アクセスポイント毎の接続数をSwiftを使って取得する

具体的には

自前でカンファレンスのネットワーク環境をやろうと思った時には、ログを集めたり監視したりするように作らなければならない。ここでネットワーク管理ソフトウェアZabbixの利用が候補に上がる。

ざっくりとした図:
f:id:S_Shimotori:20181220235419p:plain

例えば、各APの接続数は、APの親玉であるWireless LAN ControllerからZabbixに届けられる。
ZabbixはREST APIで叩くことができるので、あとは煮るなり焼くなりVaporでヒートマップを出すなり自由。もしwebassemblyが完全対応すればWi-Fiヒートマップの描画までSwiftがやっちゃうかもしれない。

SwiftでZabbix REST APIを叩く

Linux(適当なUbuntu)サーバ上で叩くので、Linux対応のライブラリがあると便利。Package.swiftが置いてあるかというよりも、READMEで名言されていたり #if os(Linux)ソースコード上にあったりIBMだったりするほうが信用度高め。

github.com

let request = RestRequest(method: .post, url: "http://Zabbixホスト/zabbix/api_jsonrpc.php")
request.messageBody = try! encoder.encode(略)
request.response { data, response, error in 煮るなり焼くなり }

略の部分に、たとえば

{
    "auth":"ログインした時に返ってきたやつ",
    "method":"item.get",
    "id":1,
    "params":{
        "search": {
            "name":"* Ap If No Of Users * GHz"
        },
        "searchWildcardsEnabled":true,
        "output": ["name", "key_", "lastvalue", "prevvalue"]
    },
    "jsonrpc":"2.0"
}

というふうになる struct Hoge: Encodable を与えておくとZabbixから接続数が取れる。

Zabbix自体をカンファレンス参加者に叩かれるわけにはいかないし、キャッシュの役割をする人がいてほしいので、Vaporを立ててそこからAPIやらhtmlやらを出させるとなおよし。

github.com

routes.swiftに上手に書けばVapor1人で両方出せる。テンプレートを使ってりっちにhtmlをやりたい場合はleafもセットで。

.package(url: "https://github.com/vapor/vapor.git", from: "3.0.0"),
.package(url: "https://github.com/vapor/leaf.git", from: "3.0.1"),

なんでこんなことしなくちゃいけないの?

え、自分の所属するコミュニティのカンファレンスのネットワーク環境やっていきたくないんですか?

まとめ

興味がある人はそのへんのカンファレンスのネットワークチームを乗っ取っていっしょにSwiftまみれにしましょう!iOS関係ならSwiftを使ってもメンテの人手には困……らないかどうかはわからない。責任は取りません。

ちなみに上の図の画像はいらすとやさんです。アクセスポイントにははんぺんを使いました。便利ですね。

TraitとBar周りの英単語の語彙が乏しいのでドキュメント読み直した

本記事はiOSアドベントカレンダーの12日目です。

qiita.com

アドベンチャーモードの分量と難易度、どっちも調整おかしいんじゃねえのと思いながら週末溶かしてアドベントカレンダーどころではなくなった。

  • 現在地

看板が読める気がするいややっぱわからん

雑談はさておいて、本記事では、ドキュメントが英語で書いてあってよく読み取れないので頑張って読み取ります。
新規性なんてなかった。

本記事のネタを書くに至った経緯について

上手に UINavigationBar に背景画像を表示させたいな!端末のサイズによって適切な背景画像のサイズが異なるから上手に計算したいな!

そういえばsize classなるものがあってregularとcompactの2種類があったな?

Adaptivity and Layout - Visual Design - iOS - Human Interface Guidelines - Apple Developer

Size classes are traits that are automatically assigned to content areas based on their size. The system defines two size classes, regular (denotes expansive space) and compact (denotes constrained space), which describe the height and width of a view.

もしや setBackgroundUIBarMetrics を指定するときにこの知識が役に立つのでは…?

UIBarMetrics - UIKit | Apple Developer Documentation

Constants to specify metrics to use for appearance.
case default
Specifies default metrics for the device.
case compact
Specifies metrics when using the phone idiom.

なるほど、defaultとcompactの2種類があるんだな!いやdefaultってお前誰だよ。ていうかphone idiomってなんだよ。つーかprompt propertyってなんだよ。英語難しいな!

size classを擁するtraitについて

iOSのインターフェース環境はtrait(特徴)を持ち、このtraitには

  • size class ( UIUserInterfaceSizeClass )
    • 縦と横それぞれ
  • display scale (浮動小数点数)
  • display gamut ( UIDisplayGamut )
    • 色域のこと。iOSは基本的にsRGBを使用する。最近のディスプレイはP3対応。
  • user interface idiom ( UIUserInterfaceIdiom )
    • phonepad といったインターフェースの種類を指す。ちなみに、idiomには慣用句の他に表現方法という意味もあるらしい。
  • force touch capability ( UIForceTouchCapability )
    • 3D touchが使えるかどうか
  • layout direction ( UITraitEnvironmentLayoutDirection )
    • レイアウト方向がLTRかRTLか
  • user interface style ( UIUserInterfaceStyle )
    • darkスタイルにすべきかlightスタイルにすべきか。tvOSやCarPlay限定。
  • preferredContentSizeCategory ( UIContentSizeCategory )
    • Dynamic Typeでユーザが設定したサイズ???

がある。
これらはclass UITraitCollection でまとめて表されており、protocol UITraitEnvironment

var traitCollection: UITraitCollection { get }

func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?)

から取得することができる。

いろいろなscaleについて

UIScreen から取れるscaleは3種類存在する。

  • var traitCollection: UITraitCollection 経由で取れる displayScale
  • nativeScale
  • scale

このうち役割が違うのが nativeScale で(多分)、ユーザがDisplay Zoomの設定を変えると nativeScale の値も変わる(きっとそう)。

公式ドキュメントのどこかに明記されていたら教えてください。

色空間について

f:id:S_Shimotori:20181211135622p:plain:w150

Color - Visual Design - iOS - Human Interface Guidelines - Apple Developer

このグラフはXY色度図といい、XYZ表色系における色を2次元グラフ上に表したもの。Zの値はXとYが決まれば定義から求められるのでグラフ上には載っていない。

図中の三角形をカラートライアングルという。Display P3やsRGBなどの色空間が定める3原色をつないだもので、各色空間は三角形の中の色のみを再現できる。要するに、sRGBよりDisplay P3の方が再現可能な色が多い(だから必要な時はP3を使ってね!by Apple)ということが図から読み取れる。

本題: UINavigationBarの背景画像を変更する

次のメソッドで背景画像を設定することができる。

func setBackgroundImage(_ backgroundImage: UIImage?, for barMetrics: UIBarMetrics)

問題は

barMetrics
A bar metrics constant.

これ。

そもそもBarには protocol UIBarPositioning というprotocolが用意されていて、 UINavigationBarUISearchBarvar barPosition: UIBarPosition 経由でBarの位置を取得することができる。

この protocol UIBarPositioningenum UIBarPosition の他に enum UIBarMetrics を擁する。metrics = 指標。

なまえ 種類 役割
UIBarPositioning protocol Barの位置の取得方法を提供。 var barPosition をつければOK
UIBarPosition enum 上とか下とか
UIBarMetrics enum appearance(= 外観)のために用いる指標

UIBarMetrics は以下4つの要素を持つ。

  • default
    • Specifies default metrics for the device.
  • compact
    • Specifies metrics when using the phone idiom.
  • defaultPrompt
    • Specifies default metrics for the device for bars with the prompt property, such as UINavigationBar and UISearchBar .
  • compactPrompt
    • Specifies metrics for bars with the prompt property when using the phone idiom, such as UINavigationBar and UISearchBar .

compactとpromptが何を表しているかというと…

試しに

UINavigationBar.appearance().setBackgroundImage(赤色画像, for: .default)
UINavigationBar.appearance().setBackgroundImage(青色画像, for: .compact)

などでどちらが使われるか試してみると、

size class for w&h bar metrics
iPhone 8 compact&regular regular
iPhone 8 compact&compact compact
iPhone 8 Plus縦 compact&regular regular
iPhone 8 Plus横 regular&compact regular
iPhone XS Max compact&regular regular
iPhone XS Max regular&compact regular

となる。つまり

  • size classを雑に参照すれば UIBarMetrics も定まる 違う
  • .compact にphone idiomと書いてあるからiPhoneは全部 .compact になる 違う
  • Plus、Max、XRのような、Landscape時にregular&compactとなっている端末は常に .regular 設定が使われる ←これが正解!

である。

promptはこれのことっぽい。(が、prompt stringとセットで使っても反映されない・・)

f:id:S_Shimotori:20181211154209p:plain:w300

UINavigationBar - UIKit | Apple Developer Documentation

結論

  • 英語難しい
  • "compactPrompt"Google検索してもenum要素の1つであることしかわからないことがわかった。使ってる人あんまいないんちゃう?
  • func setBackgroundImage(_: barMetrics:) はそこまで上手にやってくれないので我々が頑張りましょう。縦時背景画像は .regular で横時背景画像は .compact とか設定するのは間違い。

参考文献

iOSDC Japan 2018でネットワークスタッフと30分セッションとシークレットLTをやりました #iosdc

Qiita記事書いたらブログ書こうと思っていたら1週間が経過しました。

iosdc.jp

ネットワークスタッフをしました

ここまでの経緯

母校でDroidKaigi2016が開催されるというので当日スタッフに参入

DroidKaigi2017でコアスタッフとしてCONBUさんを見学

DroidKaigi2018でネットワーク専門コアスタッフ

iOSDC2018でネットワークチーム参入(not コア、not CONBU)

適当に仕事を抜け出してセッションを聴きに行きたいのでコアスタッフではないしその予定もない。

成果

今回はサーバサイドをやったがうまくできなかったのでそのへんでリベンジする。うまくできなかったぶん当日は宣伝に注力した。
8の字巻きにはもう慣れたと思う。

LANケーブルを作る仕事はネットワークスタッフにはない*1のだがちょうどいい機会なので初作成した。作ったものはいまこの瞬間、有線接続するのに活躍している。
他のスタッフのみんなは1本作るのに3分くらいでできるだとか家に工具があるだとかが常識らしいが私にはよくわからない。ぐろ〜ばるIPもちょっとよくわかりたくない。

30分セッションをしました

フォントと組版の30分入門 by S_Shimotori | プロポーザル | iOSDC Japan 2018 - fortee.jp

出したら通ってしまったので登壇した。聴衆が何を期待しているのかは無視して自分の好きなことをしゃべった。

t.co

結果タイ語アラビア語に質問が集中したので別途Qiita記事を書いた。流石にあまり馴染みがないようだ。でもWWDCで名指しで紹介されるような言語なので無視してはいけない。

qiita.com

資料を探すのに新宿区立図書館を使った。なんと西早稲田キャンパスの目の前、道を渡るだけ。なので西早稲田に行った回数はコアスタッフや早大◯◯理工学部の現役生の次くらいに多い自信がある。

あと印刷博物館は300円で楽しめるのでおすすめ

www.printing-museum.org

Qiita記事を書くのに苦労しました

iPhoneのスクショ画面はDisplay P3というカラープロファイルを使っているので、デフォルトカラープロファイルがsRGBであるIllustratorに配置すると色がおかしくなる。Photoshopは正しい色で扱ってくれる。

iPhone iOS 11 screenshots problem on illustrator – Adobe Illustrator Feedback

シークレットLTをしました

東松さんがほとんどしゃべっていたとかいうツッコミはいけない。宣伝のためだ。iOSエンジニアにネットワークチームへ入ってもらうためだ。なので許してください。

f:id:S_Shimotori:20180908171942p:plain

ネットワークやりたい人を募集しています

iOSDCネットワークチームでは新しいことを始めたい人を募集しています。8の字巻きやアクセスポイント配置やサーバサイドならiOSエンジニアでもできると思います。
カンファレンスのWi-Fiは繋がらないものだと思い込んでいる人たちのその思い込みをやっつけるためにがんばりたい。この記事を読んだ人はネットワークスタッフへの応募を必ず検討してください。約束ですよ。

*1:既製品をまとめ買いするため