JSConf JP 1日目に参加したのでメモ。 会場が厳しかったので半分ぐらい聞けなかった。

The State of JavaScript - Raphaël Benitte and Sacha Greif | JSConf JP


JavaScript AST プログラミング: 入門とその1歩先へ - Takuto Wada | JSConf JP

  • Room C
  • ライブコーディング
  • 正規表現で問題を解決すると問題が2つ増える
  • grepはコードをテキストとしてとらえる
  • 構造的に捉えるにはAST(抽象構文木)を使う
  • JavaScriptだとASTはただのJSONオブジェクト
  • 3つ
    • Parse: ASTを得るにはコードをパーサに食わせる
    • Modify: ASTを変更して
    • Generator: ASTからコードを生成
  • 今日はデータとしてのAST
    • @babel/parse の場合は便利なメソッドがいっぱいある
  • ライブコーディング
    • Acornを使ったデモ
    • acornで process.arv[2] で受け取ったコードをパースして console.logで出力
  • ESTree
    • 実質的なASTの標準
  • 1 + 2のbodyの最初のexpression(body[0].expression)を取り出す
    • ASTから1と2のNodeが出てくる
  • javascript - Why is the result of (‘b’+‘a’+ + ‘a’ + ‘a’).toLowerCase() ‘banana’? - Stack Overflow
    • ASTでみると
    • ('b' + 'a' + + 'a' + 'a').toLowerCase()
    • UnaryExpression + 単項演算子のプラスがでてきた
    • 'b' + 'a' +( + 'a' )+ 'a'
      • NaNが途中でできたのがASTを見ると分かる
  • UnParseを実装していく
    • AST → Codeのgenerateをしていく
  • ここまでで何もいじってない Code → AST → Code ができた
  • Code → AST → 処理 = Lintを行う
    • ESLint的なこと
  • Estraverse
    • depthを定義してenterに入るたびにdepthを+1、leaveするたびにdepthを-1する
    • ASTを depth * indentして階層的にNodeを表示する
    • UnaryExpressionを判定するコードを書いて、‘b’ + ‘a’ +( + ‘a’ )+ ‘a’からUnaryExpressionを検出する

「オープンソース」の定義 - Henry Zhu | JSConf JP

  • Room A
  • 途中から聞いた
  • オープンソースを通して世界を見る

You might also like… - Maria Clara | JSConf JP

  • 会社: Co
  • human decision process
  • How to choose?
  • Recommended System
    • Netflixの事例
    • 80%ぐらいの番組はレコメンド機能によって選ばれてる
  • Medium
  • Content Basedなレコメンド
    • tf-idfを使ったコンテントベースでレコメンとする仕組み
  • レコメンデーションマトリックス
    • 作品とキャラクターのマトリックスに点数をつける
  • レコメンデーションシステムを作る
  • Graph Theory
    • G = (V, E)
      • vertex
      • edge
    • データをグラフで表現する
    • addVertex, addEdge
    • データをVertexとしてデータをつなぐ
    • それぞれに重みをつける
    • 最後にそれぞれをGraphのedgeにつなげる
    • shortest-path problem 最短経路問題
    • ダイクストラ法
    • 経路を通ったコストによってそれぞれの重みから点数をつけてレコメンド先を決定していく
  • Scalable?
    • eBay、Pinterestとかで使われてる
  • ethical concerns
    • addiction
    • privacy
      • レコメンドによるprivacyの漏れ