【第20回 数学カフェ】トロピカル幾何学に参加してきました。

7/23 (日)に【第20回 数学カフェ】トロピカル幾何学に参加してきました。

connpass.com

会場はNTTデータ数理システム。実は私、この会社に何年か前に新卒として入社して数年ほどお世話になったことがあります(そのときはNTTデータ傘下ではなく、場所も信濃町ではなかったですが) 会場入りすると前に比べて断然広いセミナールームに驚きを隠せませんでした。

会場についての感想についてはここまでにして早速セミナーの中身についてのまとめに行きます。

今回の講師は東大数理の植田先生。

1. 代数幾何について

いきなりトロピカル半環の定義…と行かずにまずは代数幾何の初歩的な定義から。多項式環の零点集合を代数多様体と定義して…というところから。いきなりトロピカル半環の定義から入るとモチベーションがちょっと下がっちゃうからだろうか。 事前に

http://www.math.sci.hokudai.ac.jp/~ishikawa/tropical/ishikawa-tropical07.pdf

とかのぞいていたのですが、これだけだと背景は分かり辛いですね。。。

副次的なメリットとして代数多様体についての議論についていい復習になったということでしょうか。 (が、脱線がすごく、しかも脱線した時の話の中身がもう大学院のセミプロしかわからないようなものばかりでしたよ…?)

この代数多様体の話がだいたい全講義の3分の2の時間を費やしましたね。。

あと、ここでちょっと面白いと思った定理は「任意の有限生成k代数はあるk多項式の剰余環と同型である」というHilbertの定理。これまで数学では構造的に証明されてたものが初めて論理だけ(非構造的だけど)で証明したとかなんとか。

2. トロピカル半環とアメーバについて

トロピカル半環の例と零点集合の定義と例、アメーバの定理について話されました。トロピカル幾何においては+をmaxで定義してもminで定義しても本質的には変わらないんだという感じでした。 …が私の数学力がないせいか、ここから先は十分な感想を書けずじまい。。。

その後…

結局、半分以上脱線していたがなかなか面白かったです。ただ、このトロピカル半環(およびトロピカル幾何)は実社会、応用数理ではどう役に立つのかは知りたかったですね。でも、この辺ってまだ応用には未開拓なんでしょうか。 トロピカル代数自体はルート検索のアルゴリズムでよく知られているワーシャル-フロイド法の数学的定式化にも使われているとか。

proc-cpuinfo.fixstars.com

その後、懇親会にも参加。ペルー料理を堪能しました。そこで岩沢理論についての話と数理物理についての話をちらっとさせていただきました。

まとめと所感

トロピカル半環自体は定義は難しくないのですが、背景とかトロピカル幾何になってくるとだいぶ難しさ度合いが変わってくるなという印象でした。このトロピカルという考え方は実社会で活かせるのだろうか?というのもちょっと考えてみたりしています。。。

プログラマのための数学LT大会 第2回に参加してきました!

本日は定時に上がって以下の勉強会に参加してきました!

techplay.jp

参加者募集していた時には普通のオーディエンス枠は埋まっていたのでブログ枠で参加させていただきました。ということでまとめブログをサクサク書いていきます。変なこと言ってたりしたらごめんなさい。

ちなみに現時点ですべてのスライドが公開されているわけではありません。公開されたものから順に貼り付けていきます。

LT 1 : プログラマのためのトポロジー入門 〜 山手線は丸いのか?

発表者は佐野 岳人さん。

www.slideshare.net

山手線が丸いか、中央線と「同じ」かという問題定義から同相であるか、同相かどうかを調べる指標として単体複体のホモロジー群の定義、計算をしていきました。地道な単体複体のホモロジー群の計算をしているのを久々に見てて懐かしいでした。球やトーラスなどの代表的な図形のホモロジー群の計算あり。 ちなみに本当ならZ加群なんだけどレベルを下げてイメージをつかみやすくするため今回はR上の線形代数として話をすすめていました。それゆえにバウンダリ準同型写像を行列表現してそれベースで議論を進めるというアプローチができたんだと思います。

ちょうどいいレベルでとても面白く話が聞けました。

ちなみに、Rのままでメビウスの輪ホモロジー群の計算とかはどうやって展開するんだろう?という意地悪な疑問はツイートしないほうがいいですかね。 (2017/7/20 8:18) 佐野さんから直接リツイートいただきました(佐野さんありがとうございます!)。メビウスの輪は円周とホモトピー同値なため円周と同じ議論、すなわちRのままでも議論できるとのことです。実際幾つか文献漁ってたらそうだということを確認しました。 メビウスの輪はねじれているからホモロジー群もZ/2Zみたいにねじれるだろー、と思い込んで書き込んだのが事の発端でした。ちなみに下記ブログによるとクラインの壺がZ/2Zの要素を含んでいるみたいです。

peng225.hatenablog.com

LT 2 : 計算するということ

発表者はおおとやさん。

計算機の停止性などについてのお話がメインだったと思います。 大変申し訳ありませんが、私がこの分野についてかなり門外漢なため詳細なコメントができずにここで終わらせていただきます。。

LT 3 : 四則演算で描くドット絵 正N角形

発表者は荒木義明さん。

小学生向けのプログラミング素材として、sinやcosみたいなものを使いながら図形を描くためのプログラムについての紹介でした。 エクセルを使ってマクローリン展開の計算を再現していたのはすごかったですが…ちょっとフローが複雑でした。。

しかし、これ本当に小学生がついていけるかどうかは別としてなかなか面白かったと思います。 Excelで作った仕掛けは…githubには公開しづらいですかね。

LT 4 : ゆるふわ情報幾何学

発表者はYEさん。

正規分布の計量についての話。正規分布の近さを問題定義として、計量について定義してそこから正規分布の計量と話を進めていきました。しかし、時間がなかったのか正規分布の正確な計量が紹介されず、肝心な「国語と数学の遠さ具合」を計算できていなかったのが残念でした。 あ、この計量は一般的な分布間の距離として定義される Kullback–Leibler情報量とは関係あるのでしょうか。。。

LT 5 : 有理ホモトピー論とコンピュータ

発表者は若月駿さん。

すみません、一言で言うと難しかったです。。。有理ホモトピー論自体がよくわからずそもそもその定義がどんなものなのかが理解できていません。。。ただ、連続的な幾何バリバリな有理ホモトピー論がminimal Sullivan algebraを使うことでコンピューター上で例を計算しやすくなりました!っていうのがすごかったと思います。幾何とかコンピューターで具現化無理だろとか思っていたクチなんで。。。

LT 6 : プラレールでつくる論理回路

発表者はAkama Hitoshiさん。

speakerdeck.com

プラレールを使って論理演算(ANDとかORとかXORとか)を再現すると言う話でした。実はプラレールはBDDの話に焼きなされました感がちょっと強かったと思います。ただ、BDDと違って入力値を複製できないなどの制約がかかるため、そう言う意味ではまんまBDDではないんだなと言うことがわかりました。

LT 7 : 行列の固有値固有ベクトル

発表者は根上春さん。

行列の固有値固有ベクトルの定義・計算、応用例など丁寧に話されていたと思いました。基本的な定義とか計算は全然苦ではなかったのですが、応用例、特にネットワークのクラスタリングについてはちょっと理解が仕切れませんでした。 グラフ上のラプラシアンがどうしてこういう形か?みたいなのが個人的にぴんとこなかったり、隣接行列の固有値を使えば何がわかるのかがもう少し詳しく知りたかった感があります。

ちなみにこれですかね、グラフのラプラシアン

www.slideshare.net

これを後で読んで見ます。なんでこれが必要だったか。これを使うと何が嬉しいのか。

Deep Spectral Clustering Learningは…ちょっと勉強したいです。というかDeepでないやつも知らないのでその辺りも勉強します。。。

LT 8 : 線形分類器

本日は都合が合わず発表中止となりました。。。

LT 9 : そろそろ数式お絵描きの話でもまとめておくか

発表者は鯵坂もっちょさん。

スライドなしでライブコーディングでLTしてました。数式に対応するグラフがアニメーションで動くと理屈抜きでおおって思います。驚きのれんぞくでただただ楽しかったです!

https://www.desmos.com/calculator/vypskkl2vd

総括

自分の勉強不足なため全てを理解することはできなかったですが、こんな世界があるんだーという知見は得られたと思います。今度は半年後あたりにやるみたいなのでその時は自分も登壇したいと思います。ちょうどアルゴリズム系で面白いネタ持っているんで。 ちなみに親知らずネタはこの勉強会の定番のフリなんですかねー。

「第19回 数学カフェ 超越数回」に行ってきました!

6/25にオラクル青山センターにて行われた「第19回 数学カフェ 超越数回」に行ってまいりました。

connpass.com

mathcafe-japan.hatenadiary.com

会場入りしたざっくりとした所感としましては、「Oracleさん、今回のガチ数学イベントにここまで立派な会議室提供してくださいましたなー」という感じです。とにかく広くて綺麗です。電源あり、Wifiあり、机のスペースに少し余裕ありと至れり尽くせりな設備でvery good!でした。 こういうところはよくIT系勉強会の開催場所として使われることがある分、少し違和感と新鮮さがありました。

f:id:maestro_L_jp:20170627004153j:plain

さっそく講演についての感想をいかに述べます。

超越数論の3つの真珠」 講師:せきゅーんさん

超越数論の基本的な部分とその分野の中で熱い3つの定理、そして未解決問題についてざっと紹介してくださいました。実は「ブログ連動型講義」。これを命名して講義していたので面白かったです。でも、これがあるおかげで理解がしやすかったです。

integers.hatenablog.com

前半は代数的数と超越数の定義から入り、eが超越数であるところの照明までざっとやっていました。eが超越数である事実は知っていましたが照明までは知らなかったですが、代数学解析学の知見を使って照明していく様はなるほど!と思い勉強になりました。これ、自分で思いついて証明するの大変ですよ。代数的概念を示すのにまさか微分とか評価とかでてくるなんて。でも、こういう照明をざっと講義中にやるの好きです。 後半はeが超越数であるところからπが超越数であることを含め色々な数が超越数であることを示して行ってたのは感銘です。それをベースにした3つの真珠と呼ばれる定理の紹介と応用について話されていました。超越数の理論のすごさが垣間見えて素敵でした。意外だったのが、e+πが超越数であることの照明がOpen Problemだということ。

ちなみにプロジェクターで写すには最高の環境なのに終始ホワイトボードだけで講演してた光景は久しぶりすぎて驚きました。。IT系だと基本スライドなんで。あと前回の機械学習会とか普通にスライドだったし。。。 これぞ数学の集中講義って感じでした。。というより普通の数学の集中講義よりもカジュアルで良かったです。

超越数とランダム性」 講師:なれさん

e, √2などの無理数を小数点展開した時に1, 2, ・・・,9の並びが不規則であることを皮切りに超越数かどうかの判定に使う、みたいな話をされました。並びが不規則な無理数は実は超越数であるということが示せるのでそれをベースにオートマトンから作られた数は超越数であるとかどうとかを照明していました。 最初の方は面白く聞かせていただきましたが、私が勉強不足でオートマトンとか聞いた瞬間に理解が追いつかなくなってしまい・・・後半についてのブログが片手落ちになってしまいます。。。

全体通した所感。

前回の機械学習回と違って参加人数少なかったですね。。。あと、数学の講義感が半端なかったです。参加している人たちの中にあんまりエンジニアっぽい人いなかったですよね。。。でも、純粋数学の面白さを再発見できた1日でした!こういう数学ってやっぱりいいよねぇ。こういう数学はやっぱりパソコンでメモ取るよりノートとペンでメモ取った方が頭に入るよー。これは数学科の血がそうさせているのでしょうか。。

最後…懇親会あったっぽいですが先約のため行けず。次回は参加してみようかなぁと思います(懇親会で出てくるマニアックな数学についていけるようにはしておきますが。。。)

DroidKaigi2016 2日目 参加レポート

DroidKaigi2016、2日目も参加したのでレポートを記載します。 …目黒でやってたDevSummitで発表されたSoracomの新サービスに目移りした瞬間もありましたが、いい話ばかりでよかったですよ。

基調講演「Support Libraryノススメ」「Support Library Internal」

発表者はGoogleのArakiさん。

いま現在出ているsupport libraryにどんなものがあるか、各々のサポートライブラリにはどんな機能があるか?をお話しされてました。多くて(私が理解しきれているものが少ない)のでここでの学びは

  • Fragmentは「android.app.Fragment」でなく「support.v4.app.Fragment」の方を使うべし。(support.v4の方が標準APIのFragmentで発生していたバグが修正されているため。)

  • Viewの代わりにAppCompatViewみたいなのがあるが、これにわざわざ書き換えなくても良い。

  • RecyclerViewはListViewの後継となるクラスだが、無理して入れ替える必要はない。

  • compileSdkVersionとサポートライブラリのバージョンが揃えること!それを前提にして作っているみたい

  • DesignSupportLibiraryはappcompat-v7使用を想定している。

  • TabLayoutとViewPagerと連携するにはtabLayout.setupWithViewPager(viewPager)かけばOK

です。しっかしほとんど知らないものばかりだったので勉強になったなー。これらを自分の言葉で説明できるようにしっかり消化していかないとなー。

セッション1「クックパッドにおけるAndroidエンジニアの役割とその変遷」

発表者は@sys1yagiさん。

speakerdeck.com

クックパッドのAndroidアプリを作り上げていく過程でAndroidエンジニアがどのように問題に立ち向かって解決していったかを話してくださりました。クックパッドのエンジニアって本当に神クラスにすごいからきっとすごいことをやっているのかなー?と思ったら一つ一つは自分たちでもできそうなことばっかりだったので目からウロコでした。 ひたすらKPTを繰り返し課題をあぶりだし、リリースしたら実はトラブってたというのを防ぐためチェックリストを作ってリリースマネージャというリリースに関して責任をもつ、ってがんばれば自分たちでもできそうな気がします。 ただ、この発表を聞いて、さすがと思ったのは品質を保つために「プログラミングの仕組み化」をしなかったことだと思います。つまり「技術力が多少あれでも最低限の品質が保証されるコードが何もかけずにかける」システムを構築しなかったことです。SIerだとこの方法を使って、単価のやすい派遣さんにどんどんコーディングさせて自分たちは頭を使うことしかしないみたいな感じになって技術力があってもむくわれない!みたいな構造が出来上がっていくのです。技術的な感度をからせないために?この仕組み化をしないで上級者に合わせた方法を貫き通していた、というのはすごいと思います。

セッション2「パフォーマンスを追求したAndroidアプリを作るには」

発表者はt.eggさん。

パフォーマンス…特に省電力に特化したノウハウについて話されていました。パフォーマンス測定するのにUSBにつないでやるのは測定の精度はでないんですね…肝に銘じます。。。あと、JobSchedularやDozeなどを使って省電力化していく、という方法も紹介されていました。

セッション3 「Android,Brillo,ChromeOS」

発表者は@l_b__さん。

www.slideshare.net

Brilloという単語に惹かれて聞きました。しかし、実際は各OSの内部構造についての解説でした。これはこれで貴重な情報だと思うのですが、この手の議論になれていない私にとってはかなり消化不良な感覚を覚えました。。。

セッション4 「Androidエンジニアになって2年の学び」

発表者は@ryugoo_さん。

speakerdeck.com

技術的に斬新なことがないみたいな感じで謙遜してらっしゃいましたが、これはすごく聞きごたえがある内容だと思います。本当に技術力がある人になるために必要な観点を自身の経験を踏まえて話していたのは素晴らしかったです。高等なテクニックを駆使する…というよりあることを実装するのにいくつか方法があるがそれらについて一つずつ検証していく!というのは地味ながら一番大切なことだと思います。あと、流行りとかGoogleが言ったから、といってそれを盲目的に信じていくと痛い目見るからちょっと疑ってかかって…というのもものすごく共感できます。 …というかこの方Android歴2年とは思えないくらいいろいろ知ってるなーと思いました。私がAndroidやって2年たったころって本当にたいしたことなかったしなー。。。

セッション5 「Fireside chat」

DroidKaigi2016の公式アプリの開発に携わったメンバーたちによる開発苦労話。

最初は@konifarさんが実践的なサンプルみたいな形で作ったのがきっかけで…そこからたくさんの人がPull Requestだして…みたいに膨れ上がったもの。issueベースでContributerたちとコミュニケーションをとって…というのが斬新だなと思いました。仮に現職のチームでこれを導入しようとしたらなかなかうまくいかないんじゃないかなー。これがうまくいくのって「やるきとこだわりがあるエンジニアがチームの9割を占めている場合」に限られていると思いますが…。 ただ、@konifarさんが仕事とか発表準備とかでいろいろ大変だった間にみんなががんがん開発してくれて気づいたらissueがどんどん消化されていた、というのに「オープンソースすごい!」と思いました!!

その後・懇親会

所用があって私は18:45までしか入れませんでしたが、いろいろな方とお話しさせていただきました。やっぱりSIerって人はいないようだなー。あ、あと八木さんとちょっとでもお話しできたのはうれしかったですね!

総括

2日間通しての総括ですが…非常に勉強になる2日間でした。ABCだと製品の紹介とかふわっとした内容がメインだったりするのでこういうゴリゴリの開発メインのものがセッションの大部分をしめるのは非常に良かったと思います。 あ、ただ、1つでもいいからビジネス開発視点、マーケット視点で見た開発ノウハウっていうのがあれば聞きたかったなーと思う今日この頃です。そういうセッションが今後のDroidKaigiで出てくることを期待しています。

DroidKaigi2016 1日目 参加レポート

DroidKaigi20161日目に参加したのでそのときのレポートを記載します。 (ちなみに最後から二番目以降のセッションについてはMacの電池が切れたため出ていません。。。)

基調講演「OSSの動向を捉えた実装方針」

発表者は@wasabeefさん

speakerdeck.com

最近はやりのOSSのライブラリをこれでもか!というくらい紹介してくださってました。というかこれが全てだと思います。タイトルから読み取る趣旨は「流行りのOSSを使ってこう実装しろ!」ということなのでしょう。使ったことがある、知っているライブラリはいくつかあったが、名前を聞いたことがないライブラリが半分以上あってまだまだ修行不足だなーと思ったりしました。 この講演でつぶやいた感想の一つは「DataBindingよりもButterKnifeの方がコード素直だよなー。」ということ。 個人的に試してみたいライブラリは ・Lightweight-Stream-API(今回初めて知ったやつです)  Java8で出てきたStreamAPIライクにかけるやつ。

WIre & Protocol Buffer (今回初めて知ったやつです) シリアライズ系のライブラリ。JSON形式とはまた別な方法でシリアライズしている。

・Icepick(Parcelerは知っていたけど…これは初めて知った)  ActivityのライフサイクルなどででてくるBundleオブジェクトにデータを格納するところを楽に書くためのライブラリ?

・Dagger2 & ButterKnife  DIコンテナ

Android Orma  AnntationProcessingを使ったORM。SQLiteを使うことをベースにしている。

セッション1「明日から使えるRxJava頻出パターン」

発表者はkazyさん。

www.slideshare.net

ごつい内容なのかなと思ったら比較的初心者に向けて発表していた内容でした。最初の一歩である非同期処理のところからはいり、複雑なサーバ問い合わせのフローに対してどういうAPIを使って解決していくか?というのをしていました。 各Observableが処理終わるまで待つやつは「CombineLatist」、並列処理を直列化するものは「flatMap」、リトライ回数を指定するretryメソッド、onErrorReturn、初めて聞くものばかりで非常に勉強になりました。 こんどこれらのメソッドを真面目に試してみようかなと思います。

…しかし、このセッション、異常なまでに人口密度が高くて少しばかり酸欠気味だった。。。

セッション2「Android Lintで正しさを学ぼう」

発表者は@Nkznさん。

www.slideshare.net

Lintって単なるソースコードの静的解析ツールかと思ったら、UIガイドラインに沿っていないこととか、他言語対応しにくい構造にしていないかなどをチェックするなどお作法Gメン的な感じのツールだったということがわかりました!しかも、このLintってビルド時だけじゃなくて「./gradlew lint」でも実行できるんですね。しかも、その解析結果をレポートとして表示してくれるとか…すごいですねー、と改めて思いました。 今後開発をやるときはLintについてもう少しまじめに向き合って開発していこうかなと考えています。

セッション3 「僕がテスト書け書けおじさんになった経緯とその過程でやったこと」

発表者は@yuyakaidoさん

speakerdeck.com

資料がちょっと重いですが…内容は専門的ではないので比較的とっつきやすいでした。テストを導入するに至る背景と具体的に何をしてきたか?というのがちゃんと話されていたと思います。しかし、自分一人でやりました感がつよくチーム全体にはまだ浸透させてないっぽいんで今後に期待ですかね。 しっかし、エウレカでさえもExcel方眼紙を使った人力テストをごりごりやっていたことは予想外でした。。。実はこの発表一番の驚きはこれかもしれません。

セッション4 「Dagger2とRealmを利用したモダンな開発」

発表者は北村涼さん。

speakerdeck.com

はてなの開発で検討した技術についてざっくばらんに話してるなーって感じでした。Dagger2、Ream、MockWebSocket使って頑張ってます!というのは伝わりましたー。 内容とは関係ないけど発表しなれていないのかなーというオーラがちょろちょろ出ていた気がします。というか、みなさんに何を伝えたいのかがどうもぼやっとしているし、落ち着きがない感じだったのでやや聞きにくい感じを受けました。。。

総括

総じて開発に特化した内容だったので聴きごたえ抜群でした。下手するとGoogle for Mobileよりも実用性が高いものばかりで大変勉強になりました!血肉にするため早速試してみたいと思います!

あー、あとお昼ご飯のランチボックスもとってもよかったです!Google for Mobileでたランチボックスっぽかったですが、ボリュームが抑え気味だったので私としてはちょうどいいランチだったと思います!

明日は2日目、明日も楽しんできます!!

Realm Meetup #11に参加してきました

1/28に株式会社SansanでおこなれたRealm meetup #11に参加してきました。

realm.connpass.com

本日はそのときのまとめ + 感想を記載していきます。

LT1 Realm Java Recent Update @zaki50 さん

Android版Realmの最新バージョンアップの情報。

speakerdeck.com

Realm0.87.0 から0.87.3になったときの変更点と今後起きる大きな変更点について発表されてました。 今後、Realmを導入する際にはdependenceでなくgradle-pluginを入れる形で対応する必要があるとのこと。 従来のAnnotation Processingによる手法でなくバイトコード変換と呼ばれる方向に変えるためにやるらしい。 これに対応するとRealmObjectがうける如何ともしがたい制約が大幅に緩和されるみたいなのでぜひとも歓迎すべき内容だと思います。(Eclipseな人は涙目かもしれないけど)

LT2 自作iOSアプリ powered by Realm @satoshi0212 さん

Realmを使った?いけてる自作iOSアプリの紹介。 ・先駆者・達人ノウハウ引用 ・音声認識のフル活用 ・デジタルミニチュア(おまけ) のコンセプトで作ったものをそれぞれ紹介していました。 ・先駆者・達人ノウハウ引用 -> ブレストツール音声認識のフル活用 -> 音声キーボード ・デジタルミニチュア(おまけ) -> iPhoneのミニチュア ブレストツールは純粋にすごいと思いました。 しかし、これらのアプリ、どのあたりでRealmを使っているのか見当がつかなかったです。。。

LT3 Realmの遅延ロードと省メモリの仕組み @k_katsumiさん

Realmの岸川さん(@k_katsumi)によるRealmの仕組みについての解説でした。 Realmの基本的な使い方に始まり、クエリメソッド実行・件数カウント・データ取得の際にどのようなデータアクセスの仕方をしているのかを解説していました。なんというか、本当にギリギリまでデータを読まないことに徹しているんだなー、って感じました。 あと、このLTはSwiftベースで解説していました。私はSwiftについてはほぼ門外漢なのですが、それでも全然わかりやすい内容だったので本当に中身が濃いプレゼンだったと思います!

あと、次回のRealm meetupは2/20で、Realmの開発者の一人であるEmanuele Zattin氏 が講演してくださるとか。ちなみにこのお方はCIスペシャリストと称されているみたい。

ここから下はこのLTで出てきたQ&A. Q1. Webアプリとの同期について…どういう風にやるほうが多い?サーバ側とクライアント側のデータどう同期する? A1. べたな方法で、WebAPIを読んだ結果をRealmモデルにつめて保存ってやる。。iOSだとObject Mapper , himotokiとかいうものが関連するらしい。

Q2. 画像のデータをRealmで使う例ある? A2. 16MBまでの画像データなら入れる。ただ、ファイルそのものをDBを突っ込むのは普通ではないらしい。 たしかに削除は同期されるけど、モバイルの場合はファイルはDBに突っ込まないのが柔軟だって。

Android/Fragment単位でRealmのインスタンスを管理する。 -> onStopなどでRealmをcloseするのがいい。。

・ライブアップデート -> 別のスレッドで変更監視をしている。。。

  1. 管理クラスを使ったサンプルとかあれば・・・
  2. Androidにはリポジトリに例がいくつかおいてありますよー。 <- 本格的なアプリっぽいサンプルがくるよー! pull requestでレビュー依頼中 !

LT4 ApplivにRealmを導入した話 @bl_liaさん

Applivというアプリ紹介アプリにRealmを道入したときの話です。

speakerdeck.com

今回の場合は、Realmをキャッシュ専用として扱っているみたいです。そのためWrite用のトランザクションが走っている間も読み込みができるとのことでした。あと、RealmObjectの影響も受けにくいとか。 ここでもう一つ真新しい概念として「Android Clean Architecture」というのが出てきたが…結局MVCとある意味で似ているなーという感じだった。。。

懇親会

懇親会でじゃんけん大会があり、そこでTechBoosterの「Android Internals」をゲットしました! これが一番のお得ポイントでした!

所感

今回初めてRealm meetupに参加したのですが…大変勉強になりますね。特にRealmの中身に関することの説明は中身を知った上での最適な設計をするにあたってもってこいの内容だった! また、都合がつけば参加したいですねー。(しかし、2/20は参加できるかかなり怪しい。。。)でも、Realmについてそこまで詳しくはないのでLTは…いいかな(汗)

日本Androidの会埼玉支部2016年1月定例会に参加してきました

2016/1/23に開催された日本Androidの会埼玉支部2016年1月定例会に参加してきました。

atnd.org

今回はLTがメインなのでLT番号とお知らせを同列にします。

LT1 「10 (about make 10 with 4 numbers challenge)」@alterkey さん

24の変形バージョン「10」のソルバーを作ったよってはなし。

www.slideshare.net

ここで取り上げていた問題は「与えられた数字4つを使って10を計算しろ、つまり4つの数字を演算子をつないで10にしろ」っていうもの。これのソルバーをつくりました、という話でしたが、作る際には式を評価するところで苦労したみたいです。逆ポーランド記法とかで評価していったみたいです。

このトークの後に私も質問しましたが…与えられた数字と解答の数字の組み合わせで演算子でつなげられるかどうかの判定は簡単にはできないみたいです。ガロア理論の根本思想である(四則演算などを使って数字を表現する)みたいなのとリンクしていそうだからこれはこれで面白いトピックだと思いました。

LT2「Githubでアカウントを晒した事故に対する対処」@maestro_L_jp

私の発表です。

www.slideshare.net

Githubに間違ってアカウント晒しちゃったときの対処法と未然に防ぐ方法を話しました。

あとで@alterkeyさんから質問されたのですが「git push -f」だとどうなるかもこの定例会の後調べました。すると、退避用ブランチを用意しなくてもそのままパスワードが盗まれない上にできるみたいですね。(commitのツリーは更新される)ただし、Github上でprotected指定すれば…できないっぽい。 あと、私が紹介した方法でもgit push -fを使った方法でもcommitの内容そのものが完全に消えるわけではないです。なので、パスワードを間違ってcommitしたときのハッシュ値がわかってしまえばアクセスできちゃうんです。。。 git gcとかやればこのゴミcommitは完全に消えるみたいなのですが…github上のものをgc適用するのは無理だなー。github上では定期的にgcかけているっぽいですが…それまでは放置って感じですかね

あと、CircleCIだと暗号化したハッシュキーとかを登録、そのユーザしか使えない、というふうな恩恵をうけるのでそのままgithubにpushしても大丈夫とか。 (この話になったきっかけは、アカウント設定ファイル + gitignoreの方法だとjenkinsとか使い出した時に更新がめんどくさいのでは?という疑問から)

…いずれにしてもちょっと甘かったですね、調べが。でも、git関係のコマンドについてまた一つ勉強になりました。

LT3 「JRebel for Android1.0を試食してみた」@kimukou さん

JRebelと呼ばれるものについてのお話です。

www.slideshare.net

これを使うとデバッグ時にActivityの変更内容が一瞬でデバッグ機に反映されるとか。すごいなー。 ちなみにこれでデバッグ用としてまともに使おうとすると約400ドル年間支払わないといけないらしい。ライセンス料として。個人で使うにはやや敷居が高いかなー、でも企業で買うとすれば用途次第だが有益みたい。

LT4「Retrofit2 & OkHttpでAndroidのHTTP通信が快適だにゃん」@sakura_bird1 さん

Retrofit2とOkHttp(というよりRetrofit2色が強い?)話でした。

www.slideshare.net

ここで初めて知ったことだけど、OkHttpって再接続の機構あったんだー。。。あと共通のヘッダーを使う場合はやはりInterceptを使ってやるのが楽っぽいなー。。。やっぱ。

LT5「仕事場改善」@miyaken さん

コードが一切出てこないけど、地味に?仕事効率に響く内容の話でした。

www.slideshare.net

仕事として使うのに有益なイスとか机について紹介してくださりました。机については…スタンディング・シッティングモードを簡単に変更できるようなもの(15万円くらい)について話されていました。うん、ヘルシープログラマにも書いてありましたが…スタンディングって疲れそうに見えるけど、意外と座りっぱなしのときよりも効率がよくなるみたいですね。

あと、イスについては…素材とか構造とかってやっぱり大事なんだなーと痛感しました。お尻がつく部分がメッシュ構造なのは夏場はすごい重宝しますよねー。

ABCについて

ABCが3/12にやるらしい。 そこで何か展示できれば・・・とか。

あと、啓蒙活動。

そのあと…

サイゼリアで普通に懇親会。結構頼んで5人で1万円ちょっとで済むのはありがたい!

総括

本日もいろいろ勉強になりました。やはり発表すると吸収率は違うねー。 新しく学習した内容については自分のものにすべく復習しときますか。

あと、togetterのURLもぺたり。

2016/01/23(#antama)日本Androidの会 埼玉支部 2016年1月 定例会 - Togetterまとめ