Sapporo.js - 2012/08/26 に参加してきたよ!

参加してきたのでメモー

「Javascript: The Good Parts」 の読み合わせ(前半)

  • 前回どこだっけw
    • p.91 array.slice からということでw
  • array.slice(start, end)
    • 配列の一部分のコピーを生成するよ
    • マイナス値を指定した場合は配列の末尾側からの指定
      (実際には"指定した値 + length"を指定したような扱いらしい)
    • array.slice(0) で配列のコピーできるよ!
      • arguments のコピーとかでもよく使われる
        Array.prototype.slice.apply(arguments);
  • array.splice(start, deleteCount, item...)
    • 配列の要素を置き換える
    • 破壊的操作!
    • slice とは引数の指定の仕方が異なるぜー
    • 戻り値に削除された要素が入ってくる
    • 戻り値とか、破壊的操作とかあんまり直感的じゃない感
  • array.sort(comparefn)
    • 配列自身の中身をソートしたものに置き換える
    • 破壊的!
      • 戻り値もソートされてる
      • 対象となった配列もソートされている
      • Object.freeze を使うとソートも禁止できる
        • この場合、sort をかけても順番は変更されない
        • この場合でも slice でコピーされた配列についてはソート可能
// コピー後の配列をソートする
a.slice().sort()
    • 数値の配列は正しく並べ替えることはできない!
      • 要素の並べ替えは文字列とみなしてソートしてしまうのだぜー
      • 自分で比較関数を用意すればおk
a.sort(function (a, b) {
   return a- b;
});
    • 比較関数を引数で渡せるよ
      • 比較結果が同じだった場合に別の方法でさらに比較する、みたいなことも可能

@y_jono さんの発表 - 「Javascript: The Power of Simplicity」


  • 初発表!
    • おお、意外?!
  • テーマ:Javascript の表現力は世界一ィィィー
    • 表現力がある -> 製薬がない
    • Javascript のオブジェクト指向で良いプログラムを書くには?
      • アイデアを考えてきたよ
  • OO ってなんだっけ
    • 認識が違うと話は咬み合わないよねーってことで
    • 継承とか prototype とか mixin とかの話
    • Javascript のできた時の話
      • Javascript のベースになったのは SELF(プロトタイプベースオブジェクト指向), Scheme(関数型), Java
      • "SELF: Power of Simplecity" という論文がある
  • Javascript の長所と短所
    • ここが長所なんちゃう?
      • 強力な表現力
        • Prototype.js とか jQuery とかねー
      • マルチパラダイム(OOP, FP, 手続き)
        • (マルチパラダイムっていうと C++ ェ・・・)
    • ここなんて短所?
      • 保守性の低下(コードが人に依存する)
      • たくさんのバッドパーツ
  • prototype と向き合う
    • SELF について知る
      • Prototype-based OOPL
        • prototype: Smalltalk の class を包含するような概念
          • Smalltalk は動的な言語、環境、システム
      • ルールのシンプルさと操作性
        • Object はスロット(≒プロパティ)の集合
        • Javascript と違うのは関数の実行も意識させない?
          • 手続きが格納されている場合、手続きの結果が自動的に実行されて帰ってくるらしい・・・
          • (ほえー)
      • SELF を触ってみる
        • mac / solaris で動く
        • *.snap をクリックすると仮想マシンが動く、環境含めて SELF
        • GUI 環境
        • スロットを書き換えることでプログラミングをする?
        • 複数の prototype を持つことができる
    • これを知れば prototype 風に Javascript の良い使い方ができるのでは?
  • Javascript と上手に使うには
    • prototype を共有のための仕組みと捉えたらどうですかねぇ
    • (このあたりで力尽きた・・・)

@havanaclub_ さんの発表 - 「WebGL - 基礎と概要」


  • WebGL とは
    • OpenGL ES 2.0 の Javascript porting
    • canvas 内に描画できる
    • GPU 使える
    • 過去にセキュリティ的な問題があった
  • Firefox, Chrome, Safari, Opera はいけるらしい
  • モバイルでも頑張れば使える、近い将来・・・
  • OpenGL ES 2.0 とは
    • OpenGL 2.0 のサブセット
    • 最近のスマホの標準
  • デモ
    • ミクミクダンスとか
    • (よく動くなー、すげー)
  • これが嬉しいぜー
    • デプロイが必要ない
    • クロスプラットフォーム
    • クロスデバイス(予定、何年か後にはいけるでしょうとのこと)
  • Programmable shader
    • 全部の描画を Programmable Shader を使わないといけない
    • パイプラインにデータとシェだプログラムを投げて実行させる
    • (まじかー、頂点シェーダー使ったことないからよくわからんけど大変そう。)
    • GLSL を文字列で投げてやるらしい、ぅおー
      • 結構めんどうらしい、ぅおー
      • (プログラミング側で色々 Open GL の API を叩いていた部分をほとんど GLSL で記述するようなイメージっぽい。ほむほむ。)
  • サンプル
    • しょぼいサンプルのために 187 行(・・・!!)
    • やってられんわー
  • ライブラリあるよ
    • three.js
    • PhiloGL
    • GLGE
    • SceneJS
    • 上3つはさほど変わらない
  • three.js がオススメ
    • 最近本が出た
    • 単純なオブジェクトの生成
    • ボーン、IK(手の先端に関節がついてくる、みたいな機能)の管理
    • モデルデータ、テクスチャ、カメラの管理
    • FOGとか
  • デモ
    • 大分短くなってるわー
    • (3D なのに行列演算が出てきてない!まじかー)
  • 使い道?
    • ゲーム方面
      • Quake 2 は移植できたらしい
    • グラフとかー
    • O'reilly - WebGL
      • 今月出たばっかの本
      • three.js ベース
      • とても良い
    • Professional WebGL Programming: Developing 3D Graphics for the Web
      • 初心者向け?
      • 絵を出してテクスチャ貼るところまで
    • もう一冊本当に初心者向けの本があるらしい
    • OpenGL Insights
    • Programming OpenGL ES 2.0
      • これまえはなさんが持ってたー
      • 日本語版があるよー
    • OpenGL 4.0 Shading Language cookbook
      • GLSLはこれがいいらしい
      • ただし GLSL のバージョンが違うので注意

コメント

このブログの人気の投稿

inotify でファイル監視しようず!

PostgreSQLで多次元配列を1次元配列に展開したい

React で input 要素に focus したい話