Notebook

情報科学若手の会冬の陣に行ってきました::1/20

とある同期がSlackで宣伝していたのを思い出し急遽参加しました.

様々な分野の知見が聞けて良かったです.懇親会があったのですがABCに出たかったので帰りました.

夏の本陣にもぜひ参加したいのですがB4で行けるのかなあ.厳しそう...

以下メモです.すべてが適当なメモです.


1. @arayaryoma

  • フロントエンドを頑張りたくない時どうすれば良いか?

フロントエンドの疑問

  1. HTML.JS,CSS生じゃダメ?

    条件を満たせるならば良い. 「IEサポート要らん」や「JS使わん」という場合は良い

  2. React?Vue?Angular?jQueryは?

    jQueryは生きているぞ. DOM API操作の不自由度が下がってきた. Virtual DOM等の登場によりDOMの直接操作の必要がいらなくなった.

  3. Webpackの代案

    percel: Webpackの糞めんどくさいコンフィグを解消してくれる

    brouserify: +glup, +gruntで使う

    rollup.js: ESModuleしかデフォでは使えない

  4. どうしてめんどくさいの?

    5割IEのせい!

  5. npmはどういうときに必要?

    SPAはパッケージマネジャ

2. @K_atc

シンボリック実行の活用例

  • テスト
  • 脆弱性解析

シンボリック実行の種類

FSESBEの二つがある

SBEはプログラムを逆順に実行する.そんなことできるの?

→最弱事前条件を満たせば可能!

最弱事前条件の計算方法

  1. まず,プログラムをGCLに変換
  2. それぞれの規則に対して最弱事前条件を導出

→WP向けのエンジンをPythonで実装した

.pyをastモジュールでASTに変換にできて便利

3. @porisuteru

Deep Learning+異常検知(Anomaly Detection)(会社ChillStackのCEO)

異常検知

  • ホテリング法
  • ナイーブベイズ
  • 近傍法
  • OC-SVM
  • 密度推定

等があるが,昨今ではDEEEEEEEEEPLEARNING,とくにGANを使ったアルゴリズムがある.

GAN・・・$z$の分布$p$に対して$G(z)\approx x$に対して検定を行って閾値外にあるとき,異常であると認識させる

$c.f.$ AnoGAN

  1. GANに学習をさせる
  2. $G(z)\approx x$となるような$z$を探索する. めっちゃ時間かかる!
    • そこでEfficient GANという双方向構造を用いたモデルが提案された $G^{-1}(x)$もモデル化しちゃえばいいじゃん!というスタンス.
  3. 異常検知!

4. @Knium_

Cコンパイラを自作したい!

字句解析→構文解析→意味解析→コード生成といった順序に行われる.

方針

いきなり完璧を目指さずにインクリメントに制作する.

Compiler Explorer(https://godbolt.org/)というなかなか便利なサイトがある.

入門書: https://www.sigbus.info/compilerbook/

BNF読むの楽しいぞ!

5. @kuro_m88

Webデバイストラッキングのはなし

  1. Cookie:cookie: -> Cookie Sync
  2. IP Address …<->Grobal IP <-> NAT <-> Device ユーザの一意特定が少し面倒.最近ではWebRTCというのがあるらしい
  3. HSTS Super Cookie httpで訪問してきたクライアントにhttpsにリダイレクトさせるようにするHSTSのアルゴリズムを使った手法.
  4. TCP Timestamp TCP Timestampの周波数からデバイスのuptimeがありそこから同定.
  5. SSL Session Ticket SSL :handshake:を高速化させるためのTicketにより同定.
  6. IPv6 1IP=:iphone:の時代に...?​

6. @mkt_kwn

スマートシティ

都市内にIoTデバイス(ゴミ収集車など)を埋めこませて都市情報をセンシングしてフィードバックを行う

昨今ではRaspberry PIやJetsonを載せて組み込み内で認識→学習まで行えちゃう.

IoTとセキュリティ:エッジ側で処理をさせたい!

Node-RED:https://nodered.org これをどうにかして分散処理に応用できないか?

→Distributed Node-REDというものを開発.

→→Node-RED上でDEEEEEEEEEPLEARNINGしちゃえば?

→→TensorflowノードをNode-RED上で使えるようにさせた

LT-1 @ngmt83

エンジニアの生存戦略について

生存していくためには,エンジニアリングスキル以外にも,プレゼンや業務スキルの取得が必要だ.

ビジネス書のすすめ

→エンジニアリング以外での生き残り方を学ぶことで,コミュニケーションやマネジメントのスキルが身につく

LT-2 @hnmx4

頑張りの可視化

→WindowのLogを記録しよう

Mackerelがあるが秘匿情報を流すのがまずい!

→macOS用に自作