いい肉の日に筋肉.ktに参加したら全てが筋肉を中心に回っていた

会社で主催したどこでもKotlinの懇親会にて、筋肉.kt主催者のK-BOYさんに勧誘を受けたご縁で参加しました💪

kinniku-swift.connpass.com

筋肉.kt💪とは?

大好評だった「筋肉.swift」がKotlinになって帰ってきたぞ!

とのこと。Swift版もあったのか……

11/29、いい肉の日にYahoo!ロッジで開催されました。詳しくは上のConnpassをご覧いただければ。

私は元消防士エンジニアの@KawamataRyoを含む同僚と3人での参加でした。@KawamataRyoもまた、どこでもKotlinでK-BOYさんに直接勧誘され、さらに登壇することになったとのこと。

受付

受付で待っていたのは、2人のガタイの良い男性。俺ここにきて良かったのかな……?と不安になりつつも、受付を済ませました。

果たして「マッチョ」という言葉が褒め言葉のチョイスとして適切なのか、具体的な筋肉の部位を挙げて褒めるべきなのか、と葛藤しながら恐る恐るツイート。

なおフリードリンクブースにもスタッフと思しき男性が3名ほど。皆さん良い身体をしているのでますます不安に。ちなみに受け取ったドリンクはティラミス味のプロテイン

写真にはペコちゃんのミルキーも写っていますが、あれもれっきとしたプロテインのようです。

www.amazon.co.jp

またConnpassには

できるだけシェイカーを持参して下さい。

という文言があったのですが、私はすっかり忘れていたので紙コップで受け取ることに。周りの方々は結構シェイカーを持ってきているようでした。

乾杯、冒頭挨拶

先程受け取ったプロテインを片手に乾杯で開始。

主催者のK-BOYさんは冒頭挨拶で、去年より痩せてしまったことを謝罪。これ本当にKotlinの勉強会だよね?
また去年よりも「筋肉エンジニア」を名乗る人が増えたとのこと。世は筋肉エンジニア戦国時代らしい。

確かに検索してみると何人かいるみたいだ。

twitter.com

発表タイム

抽選で選ばれた5名によるLTでした。

自己紹介時に筋トレのBIG3を教えて下さい。(必須)

という決まりがあるので、みなさんBIG3のスコアを挙げるかジム歴・運動歴について自己紹介。中には発表の半分くらいが筋トレに関する話の方も💪

ちなみにBIG3というのは筋トレBIG3と呼ばれるベンチプレス・デッドリフト・スクワットのことです。

Kotlinの方の発表はKtorなどサーバーサイドの話、Kotlin 1.3の話など。スライドが全員分まだ上がっていないようなので詳しい紹介は割愛しますが、筋肉的な内容ではなく至って真面目な内容でした。

speakerdeck.com speakerdeck.com docs.google.com

休憩時間にはプロテインバーが出ました。抜かりがない。

投票、ベストスピーカー表彰

アプリから投票して、1位のスピーカーを決めました。このためにわざわざアプリを作るとは、筋肉だけに力の入れようが半端ない💪💪

筋肉.kt

筋肉.kt

  • Kei Fujikawa
  • Social Networking
  • Free
play.google.com

各スピーカーに対して「掛け声」をかけて投票します。非筋肉エンジニアの自分はよく知りませんでしたが、「肩メロン」などはボディビルの掛け声のよう。

f:id:oboenikui:20181130005812p:plain
投票画面

www.fnn.jp

投票の結果、接戦でしたが同僚の@KawamataRyoが1位に。消防士として鍛え上げた筋肉分票を稼いだ模様。賞品のプロテインを受け取っていました。

f:id:oboenikui:20181130010556p:plain
表彰される@KawamataRyo。勉強会の一幕にはどうしても見えない。

別の同僚筋肉エンジニアによる解説。

懇親会

筋肉食堂さんのお弁当と糖質0のアルコール飲料が提供されました。筋肉に対する配慮が半端じゃない。

このときにはもう既に感覚が麻痺していたのでもはや筋肉食堂に対するツッコミは0。もしかして自分が無知なだけなのか?ちなみに筋肉食堂さんというのは名前から想像できる通りのレストランです。

kinnikushokudo.jp

懇親会では技術トークで盛り上がることが多いですが、筋肉.ktでは筋トレと技術の話題が半々くらいで話されていました。話を聞くとKotlinは初心者で筋肉枠参加の方も結構な人数いらっしゃるがことが判明。

また、@KawamataRyo以外にも元消防士の方がいらっしゃいました。筋肉エンジニア界隈はそういう方が多いのかもしれません。

撮影会

筋肉.ktには撮影会もありました。筋骨隆々のエンジニアがおもむろに脱ぎ始めたり、腕立てを始める光景は、Yahoo!ロッジ警備員の方々をも圧倒していました。

f:id:oboenikui:20181130012116p:plain f:id:oboenikui:20181130012139p:plain

※ 許可を取って上半身を脱いでいます。Yahoo!ロッジで断りなく上半身を脱ぐのはやめましょう。

総評

全てが筋肉を中心として進行している勉強会でした。あまりのインパクトでブログ記事を書かずにはいられませんでした。K-BOYさんをはじめ、運営の方々に感謝いたします。楽しい時間をありがとうございました!

他の筋肉.kt関連記事

togetter.com

ハーバー・ビジネス・オンラインというWebメディアのLINE叩き記事が酷い

久々に「これは……!」と思った酷い記事を見つけたのでここに晒そうと思う。みんな!燃料だよ!!

hbol.jp (魚拓 1, 2)

「LINEが韓国製」はまぁ置いとこう。「母体のNAVERは韓国だからLINEも当然韓国製」と言って聞く耳を持たない方々にとっては、多くの日本人が開発に関わっていたとして主張を曲げる気はないのだからここでは議論しない。

酷いのは、技術的に無知を曝け出しながら、なかなかの超理論で疑惑を報じている点だ。

カカオトークのことは知らないので本記事では言及しない

この記事内で客観的に見て事実と認められること

酷い記事、と書いたが、確かに事実も書かれている。

Facebookが情報をお漏らししちゃったこと

ユーザー約5000万人分の個人情報が不正流出した問題で揺れるアメリカのFacebook

まずは1行目。誰も疑問を投げる余地はないだろう。

連絡先へのアクセスを求められること

LINEやカカオトークのようなメッセンジャーアプリをインストールする際には、「連絡先へのアクセスを許可しますか。」とポップアップ画面が出てくる。

ここも正しい。LINEユーザーならほぼ皆が知っていることだ。

Android 4.0までは連絡先のREAD権限で通話履歴にもアクセスできること

現にアンドロイド運営体制(OS)のうち、4.0バージョンまでは連絡先へのアクセスを許可すると、そのアプリ内での通話やメールへのアクセスが自動的に許可されていた。アンドロイドは、この問題に対しOS4.1バージョンで修正し、セキュリティ面が大幅に強化された。

「アンドロイド運営体制(OS)」というなかなかのパワーワードが登場したが、一旦スルーしよう。事実として、Android 4.0までは確かに android.permission.READ_CONTACTSパーミッションで通話履歴にはアクセスできた。

放送通信委員会が捜査を開始したこと

韓国の通信政策を主管する「放送通信委員会」は先月末、フェイスブックやインスタグラム、カカオトーク、LINEなど、国内外の主要なソーシャルネットワーキングサービス事業者の個人情報収集関連適正性に関する実態捜査に着手すると明らかにした。

ここは記事内で2つソースが示されているので、おそらく事実なのだろう。

(その2記事もこの記事同様の問題が見受けられるが)

「連絡先へのアクセスを許可しますか?」に対する警鐘

Facebookでも流出被害を受けている日本のユーザーは、「連絡先へのアクセスを許可しますか」の問いに対して「許可する」というボタンの重みをいまいちど再認識すべきだ。

個人的な意見としては、LINEという「通話・トークアプリ」を使っていて、企業にはその人のLINE上の利用データが何かしらの形で渡っているのだから、SMSや通話履歴の流出の可能性を気にする前に考えるべきことがあるのではないかと思う。
とはいえ、純粋に連絡先へのアクセスをホイホイ許可すること自体が危険なことであるという意味で「事実」に分類した。

事実かどうかわからないこと

LINEが電話履歴にアクセスしていたか

肝心のここについては正直私にはわからない。

LINEの全てのバージョンの全ての挙動を見たわけではないので、断言しないのが正しい判断かと思う。

ただ客観的事実を述べると、LINE Security Bug Bounty Programという試みを2015年から行っている。全世界のセキュリティエンジニアによってバグ・脆弱性を探索されているわけで、それ以降個人情報を収集していたという事実はないのではないかと私は思う。

それ以前の話をすると、2015年時点のバージョンで「targetSdkVersionがまだ11だった( READ_CONTACTS で電話へのアクセスは可能)」という事実はある。ただし、互換性の関係で16以降に上げにくかった可能性は十分考えられるので、必ずしも怪しいというわけではない。

Android 4.0に対するテクニカルサポートが2017年10月まで行われた

アプリを提供するGoogleはアンドロイド4.0に対するテクニカルサポートを、昨年10月まで実施しており、さまざまなアプリがOS4.0でも利用可能だ。

ここは本当に何を根拠に言っているのか分からないので、誰か教えてください……

事実ではないこと、ミスリードを誘う箇所

「連絡先へのアクセス」を許可した場合「メール」を見れること

多分著者は2つ誤解をしている。まず、 android.permission.READ_CONTACTSパーミッションではSMS履歴にアクセスはできない(はず、違ったらご指摘ください)。
2つめは、SMS、メール、トークを混同していることだ。

1つめの誤解を補足する。勘違いの原因はおそらくソースとなっている民衆の声にあると思うのでそちらを引用する。

앞서 외신들은 트위터 이용자 딜런 맥케이(Dylan Mckay)가 공개한 자료를 인용해 페이스북이 안드로이드 단말기에서 페이스북 활동 기록 외에 음성통화 이력과 문자메시지 데이터를 수집해왔다고 보도했다. 맥케이가 공개한 증거에 따르면 통화한 사람 이름과 전화번호, 통화 시간, 날짜 등이 기록된다.

Google翻訳: 前外信はツイッター利用者ディラン・マッケイ(Dylan Mckay)が公開した資料を引用して、FacebookAndroid端末では、Facebookの活動記録のほか、音声通話履歴やテキストメッセージのデータを収集してきたと報じた。マッケイが公開した証拠によると、通話した人の名前と電話番号、通話時間、日付などが記録される。

この記述からSMSにもアクセスできると判断したのだと思う。しかしソースのツイートはそこまでのことは述べていない。

これは予想だが、Facebook Messengerは android.permission.READ_SMS パーミッションを持つので、そこから盗られたのだと思う。

しかしLINEはSMS履歴にアクセスする READ_SMS の権限を持っていない。そのためアクセスは不可なはずだ。

SMS、メール、トークを混同しているのは論外なので割愛する。ここで述べるべきは上のツイートの通りSMSである。

Android 4.0で使える連絡先権限のあるアプリは全てトーク履歴にもアクセスできるかのような記述

確かに昔のAndroidは、6.0になるまでパーミッションはゼロか全てかの世界だったので、「簡易的な許可を得るだけで」様々なパーミッションが手に入ってしまった。しかし、 READ_CONTACT が許可されたからといってSMSにアクセスはできないし、通話履歴もtargetSdkVersionが16以上になっていれば、minSdkVersionが15以下でもこのようなアクセスは不可能である。(利用者がAndroid 4.1以上の場合)

参考ドキュメント

LINEが「GoogleのOSセキュリティ強化に歩調を合わせていないアプリ」であるかのような記述

調べてみたところ、2016年時点でminSdkVersionが15, targetSdkVersionが19に、2017年頭にはtargetSdkVersionは23になっていた。決して素早い対応ではないかもしれないが、許容範囲だろう。

アプリの危険度を判断できないという記述

ダウンロードする安易さとは裏腹に、アプリの危険度を判断できる材料は少ない。

動くものがそこにあるのだから、解析すればわかる。「全てはNAVERのみぞ知る」かのように書かれているが、Androidアプリでそのような挙動を見つけることは、隠すことよりもよっぽど楽だと思う。

断片的な情報を以て悪であるかのように書いていること

著者は「LINEは悪である」という結論ありきでこの記事を書いたのではなかろうか。

上で論じたように、少なくとも現在はLINEが連絡先へのアクセス権を利用して通話履歴やSMS履歴にアクセスはしていない。

また、以前は通話履歴にアクセスできる状態だったのは確かだが、実際使う必要があったからそのようになっていたのも事実である。その時点で疑うのは「包丁を持っているから殺人犯の可能性がある」と言っているのと大差ない。もう少し事実を集めて主張すべきではなかろうか。

余談:メディアについて

この記事を読んで、ハーバー・ビジネス・オンラインとは一体どんな会社が運営しているのかと思ったら、フジサンケイグループの扶桑社とのことだった。

フジサンケイ扶桑社がハーバードビジネスレビューのパクリサイト?

確かに「バーバード・ビジネス・レビュー」と勘違いさせる気がありそうだ。

おまけ:用語的な誤り

アンドロイド運営体制(OS)

Android OSのことらしい。

「基本ソフト」というのは聞くが、「運営体制」と訳すのは流石に聞いたことがない。確かに直訳すると運営体制だが、それはもはや別物を指しているだろう。

4.0バージョン、OS4.1バージョン、OS4.0

細かい性格なので、この表記は無性に背中が痒くなった。

メール、トーク

著者はSMSという言葉を知らないんじゃないかと疑ってしまう。

フェイスブックFacebook

これは誤りではないが、同一記事内でこのような表記が混在しているのを見るに、校正が行き届いていないのではないかと疑う。

新卒1年目だけど DroidKaigi 2018 に登壇してきた

早いものでDroidKaigiからもう2週間経過してしまいました。もはや時期を逃した感がありますが、初参加で登壇でき、反響も良かったので、書かないのは勿体無いということで個人的なDroidKaigiの振り返り記事を書いていきます。

f:id:oboenikui:20180224001320p:plain

時間の関係とかで「OK Google」を言わなかったことを未だに悔やんでいる

登壇について

「アプリをエミュレートするアプリの登場とその危険性」という題で2日目の後ろから3番目の時間帯に登壇しました。

www.slideshare.net

DroidKaigi終了後も多くの方にスライドを見ていただけたので、この手の仕組みの危険性について周知はできたんじゃないかと思います。まだの方は読んで知ってください。
ちなみにAndroidの危険性という趣旨でも拡散されてしまってしまいましたが、動作の仕組みとしては便利だったりもするので、Playストアがもっと頑張れば良い問題ではないかという気がしないでもないです。

正直スライドは削りに削った結果の産物なので、このアプリの詳しい動作の説明は、そのうち公式で公開される動画をご覧ください。
(モチベがあればより詳細に解説した記事を後日Qiitaに上げると思います)

内容の選定について

10月中旬に募集があったのですが、落ちても失うものは何もなかったので、とりあえず学生時代からずっとネタとして温めておいたこの題材を締切間際に投稿しました。

Kotlinとかもっと役に立ちそうな話でも良かったのですが、みんな投稿していた上に全く食指が動かなかったので出しませんでした。ニッチ万歳。

登壇準備について

私の場合業務経験が不要な内容だった反面、読むコードの量が結構あったので、当然投稿時点で解析を進めていました。そのため残りの99%くらいを読むだけでよかったので準備期間はとても短かったです。

11月頭に無事アクセプトされ、そろそろ本格的に準備を始めようかなと考えていた1ヶ月半、もう本格的にまずいと考えていた1ヶ月の期間を経て、2週間ほど前から休日返上で準備を進めつつ完成させました。平日はおふとんくんに連敗していました。

登壇後の反響

Room5という小さい部屋での発表でしたが、部屋を埋め尽くす多くの方にお越しいただきました。更に講演後のオフィスアワーにも、セキュリティが本職の方など6名ほどの方々に囲まれながら「このアプリがヤバい!」という話題で15分ほど談笑することができ、非常に有意義な時間となりました。

スライドも本記事執筆時点で1万回以上見られててTwitterの通知とかなんかすごいことになりました。

登壇してどうだったか

ニッチ技術についての発表は今までも何度か行いましたが、ここまで反響をいただけたのはやっぱり大きなカンファレンスならではですね。

ここまでか、と思うほど発表の注目度がハンパないです。実際に聴講された方は少人数でも、その後の反応が数十人規模の勉強会の6〜100倍くらいあります(サンプル数2)。
1週間くらいは自己満足に浸れるのでおすすめです。

準備作業はAndroidやVirtualAppのソースを読んだり動的解析を行って挙動を理解していく、ひたすら記憶力と理解力との勝負でした。発表準備というよりはむしろ研究に近い感覚で、修論に追われていた時期がフラッシュバックしました楽しい研究生活の日々を取り戻した感覚になりました。とても楽しいのでおじさんおばさんにならないうちに経験しておいたほうが良いです。

その他、DroidKaigiに参加して、新しい技術や今まで知らなかった技術について吸収できたのはもちろんのこと、お互いTwitterでのみ知っていた方々をはじめ、多くのAndroidエンジニアと懇親会でお話できたことも良い体験でした。
偶然にも私が書いたQiitaの記事が参考になったとご報告も頂けて、あんなニッチ向け記事でも誰かの役に立てるんだなぁと嬉しい思いでいっぱいになりました。

とても楽しかったので来年もできれば投稿しようと思います。ただその時はもう少し軽い題材にします。

余談その1:発表タイトルについて

実はこのタイトルは若干語弊があり、より正確な表現にするのであれば「アプリを動かす仕組みを一部エミュレートすることで別のアプリを動かすアプリ」なのですが、さすがに長すぎるのでこうしました。短くしつつもできるだけ誤解を与えないタイトルにしたつもりです。

このタイトルで指しているアプリは通常「マルチアカウントアプリ」とも呼ばれるのですが、これをタイトルに用いるとアカウント切り替えを実装したアプリともとれますし、実際yuyakaidoさんが「マルチログインの実装方法」というタイトルでそのようなアプリの発表されていたので、「マルチアカウントアプリ」という言葉を使わなくて至極良かったと思います。

余談その2:スライドのアップロード先について

今まで他の人に習ってSpeakerDeckに上げていましたが、今回からSlideShareにアップロードすることにしました。理由は、

  1. SpeakerDeckは日本語タイトルのURLがヤバい
  2. SpeakerDeckは完全に画像に置き換わるのでリンクが消える。SlideShareはリンクが有効のまま。
  3. SpeakerDeckは本文で検索エンジンに引っかからない。SlideShareはテキストがべた書きされるので引っかかる。

の3点からSpeakerDeckを使う理由を最早感じられなかったからです。

ちなみにSlideShareはスライドの上げ直しができないようですが、一回消して同じタイトルで上げ直せば同じURLになったと思います。ならなかったらすみません。

ドイツのトリコンパス

この記事は ドイツのトリ Advent Calendar 2017 - Adventar 20日目の記事です。

ドイツのトリの聖地の方角を指し示します。(頭がドイツのトリの方角)

ドイツのトリコンパス

毎日18:05にこの方角に祈りを捧げましょう。

※ PC非対応、そのうちもうちょっとちゃんと作ります

参考サイト:

Calculate distance and bearing between two Latitude/Longitude points using haversine formula in JavaScript

github.com

中国語の楽天イーグルス関連記事を読む時に気をつけるべき1つのこと

中国語で「楽天(乐天・樂天)」と言った場合,お菓子メーカーのロッテを指す.*1
ちなみに,現在はサービス終了しているが,楽天株式会社が中国で展開していたサービスはこれと区別するために楽酷天だった.*2

しかし,野球チームの東北楽天ゴールデンイーグルス千葉ロッテマリーンズはこれとは別で,それぞれ「東北樂天金鷲隊」*3「千葉羅德海洋隊」*4となるようだ.すなわち,野球チームの略称として「樂天」が使われていた場合,日本と同様東北楽天ゴールデンイーグルスを指す.

これらの知識は,主に中国人・台湾人選手が楽天に加入している際に情報を集める時に必要となることがある.

実際,2017/1/30現在育成契約となっている台湾出身の宋家豪選手について調べた場合,日本語の記事より中国語の記事の方が出てくる.
(宋家豪選手は台湾のプロ入りを蹴って楽天に育成選手として入団した選手で,台湾代表に選ばれるほどなので台湾では有名らしいが日本では育成選手なのであまり知られていないと思う)

例えばこの記事.
tw.sports.yahoo.com

日本ではまだ育成選手なので殆ど扱われないが台湾では大きく扱われるので,1ファンとして中国語の記事を読もうと考える.
しかしこの記事を日本語に機械翻訳してみると,「樂天」の部分は「ロッテ」と翻訳されてしまうので,「あれ?同じく台湾出身のロッテの陳冠宇選手の記事か?」と混乱してしまう.
まだまだ機械翻訳はこの手の誤訳は避けられないので,原文を読んでどちらを指しているのか確認するようにしよう.
(なおGoogle翻訳では,『羅德』は『ロードス』と訳された)

TeXstudioで文字が1文字だけ入力されないことがある

あけましておめでとうございます.修論書き終わるまでツイ禁中の@oboenikuiです

修論で当然TeXを書いているのですが,TeXstudioでたまに文字が入力されないことがあります.
検索しても全く情報が出てこないのに,自分のWindows環境では全てのPCで起こっている問題なので,何が原因なのかさっぱりでした.

結論から述べると,無変換キーを押した直後に全ての(?)キー入力が無視されるようです.
自分は無変換キーをMacの英数キーの挙動にする派なのですが,いつも英字を打ち始める時は何もなくともとにかく無変換キーを押す癖があるので,全く気付きませんでした.
後々調べてみると,1件だけヒットしました.
oku.edu.mie-u.ac.jp

回避策ですが,そこまでTeXstudioに構ってられる時ではないので,とりあえずAutoHotkeyに次のコマンドを設定しています.

vk1Dsc07B::
	Send,{vk1Csc079}{vkF3sc029}
Return

自分は変換キーにかな入力切り替えを割り当ててるので,かな入力→半角/全角キーでIMEをオフにしています.
なんか物凄く変なことをしている気がするので,IMEをオフにするショートカットをIMEで設定してそれを入力させるんでもいいと思います.
もし無変換キーをデフォルトの挙動にしているのなら,ショートカットを割り当ててそれを入力させるべきでしょう.