Gunma.web #12に行ってきた

Gunma.web #12に行ってきた

今回のGunma.webは旧暦でいう大晦日開催。高コンの前座ということもあり、過去最大の参加人数33名(!)となりました。やはり年の瀬となると沢山の人が集まるのは当然なのでしょうか。LTの数も9本とこちらも最多記録。今回はバトル形式らしいです。

開催からやたら時間が経ってしまいましたがレポートです。

LT/発表一覧


「正解がわかりません」 LT @korogaru さん

A/Bテストのお話。

LT初という事でバトル前座を希望したものの思惑とは異なり一発目の発表となってしまったというド緊張必至の順番。

A/Bテスト。サービスリリース後、どう改善すればより良い結果になるのか。テストでは分かり得ない、実際のユーザーの行動に基いて改善していくのに必要な方法。という認識。

A/Bテストを行う上では小さく始めてみることが大事との事。また、分析するデータもクリック率だけではダメで、コンバージョン率を意識しないとあらぬ方向へ行くことも。きちんとデータを取れば2、3倍は難しいが、1.2倍や1.3倍ならある。

個人的にはわりと大規模なサービスでないとなかなか難しいかな、と思っていたりします。いや、個人的なサービスしかしていないのでよくわかりませんが。質問にも出ていましたが、自社にエンジニアがいないと難しそうですね。

「正解がわかりません」

きっとそれでいいのです。人生に正解などありえないのだから...。


「vimをつくってみた」 LT @tsurumau さん

JavaScriptのフレームワークでvimを作ったというお話。

  • impact game engine
  • JSとHTML5でゲームを作る
  • 価格は99ドル
  • ブラウザで動作するのでデスクトップでもモバイルでも動作するみたい。調べてみたら、60フレーム/秒とか実現しているらしい。

    で、今回のvimはvi-impact。impactで作られたviって事みたい。

  • コマンド カーソルの移動と入力くらい
  • 独自なコマンド
  • 著作権考慮
  • ギリギリまで作業していたみたいで動かない機能が若干あったみたいだけど、デモが始まって...wwwwww。

    これは見ないとわかりません。ぜひデモを試してみて下さい!楽しいよ!
    vi-impact Github

  • :set impact
  • :set cat
  • は必見ですww
    ※どうやらUSキーボードじゃないと動作しないみたいです

    実装にはほとんどフレームワークの機能を使っていない、との事でこの方は一体どこを目指しているのでしょうか?

    PS.群馬でアルゴリズムを学ぼう お世話になりました!


    「Photoshopの自動処理で効率作業」 LT @caz0404 さん

    PhotoShopのアクションパネルで自動処理が出来るよ!というお話。

    解像度の変更、明るさ、シャープ等の作業を記憶しておいて、複数の画像に対して自動処理する事が出来る。また、フォルダ単位で実行も可との事。なるほど。

    あるアクションを無効化にしたり、途中でパラメータを指定出来たりとたくさんの画像を処理する時には便利そうです。画像処理系のソフトは中々使いこなすのが難しいですが、こんな感じで紹介してもらえるとスキルアップに繋がりそうです。

    初LTにチャレンジと言う事でしたが、スライドではなくムービーで発表するという一風変わったLTでした。絶対時間オーバーしないってこの事だったんですね。納得。

    個人的には高コン観戦しながらのお酒に行けなかったのが無念です。次の機会には是非。


    「モダンすぎる静的サイトの作り方」 LT @yterajima さん

    静的サイト生成ツールのMiddlemanのお話。個人的に非常に興味があるお話。

    CSSにはLess、Sass等のCSSプリプロセッサがあるけれども、HTMLはどうするか。

    非常に直面する事が多い問題です。閉じタグ嫌い←同意。ボクは結局HTML書くのですが...。

    Slimというテンプレートエンジンを使うとタグを使わずに済む。SlimはHamlを進化させたもの。Slim + Sassがおすすめ。でも、この組み合わせで作業しているとちょっとした悲劇が襲うことになる。

    Sass   →      convert to CSS
     ↑                     ↓
    convert to HTML ← Slim/Haml

    無限連鎖...。

    この解決策がMiddlemanという事です。middlemanとは static site jenerater(静的サイト生成ツール )の事で、静的サイトを作るためのツール群とでもいうのでしょうか。

    middlemanのドキュメントは英語なのですが、実は日本語訳を作ったとのこと。これで勝つる。
    http://middleman-guides.e2esound.com/

    ただし、これを使うにはターミナルという黒い画面(macのデフォルトでは白い画面ですが)を使う必要があります。ボクは使っているのでモーマンタイです。最近静的なサイト作り手を出す事が億劫になっているので、いいきっかけになればいいな。

    という事で、agatsuma.survive#02 おじゃまします。


    「エンジニアがTRPGをやるべき理由 〜隣り合わせの遊びと技術〜」 LT @parrot_studio さん

    TRPG = テーブルトークRPG。前回のGunma.webの時にちょこっと話が出ていましたが、自分は馴染みがなくどんな感じでプレイするのか今だにイメージが出来てません。

    GM(Game Master)と呼ばれる人がシナリオを進めるようです。使うものは紙と鉛筆とサイコロ。勝手なイメージではスゴロク的な人生ゲーム的な感じです。きっとぜんぜん違うんだとは思いますが。

    そしてこのTRGPがAjile的だ、という事。

    TRPGをプレイすることによって論理構成力、コミュニケーション能力、アドリブ力、リソース管理能力、判断力等々の非技術的なスキルが磨かれる→結果的に合理的にスピード感のある仕事やプロジェクトの進行が出来る=アジャイル的って事かな?

    恥ずかしながらAjileという言葉にいまいちピンときていません...。(@parrot_studioさんのブログでは「概念であり結果」と綴られています)

    マツコ的に言うとふわふわっとしたものなんでしょうね。TRPGをプレイしてみれば分かるのかしら。


    「javascriptで苦戦した経験」 LT @kanayannet さん

    JavaScriptでの経験談のお話。

    何かと躓きやすいJSですが、しばらく書いていないと忘れて同じ所で躓くという事を思いだしました。JavaSsriptにおけるグローバル変数って単に大元であるwindowオブジェクトに属している値やメソッドであると、考えると

    function Test(aaa,bbb){
        this.x = aaa;
        this.y = bbb;
    }
    
    var Test = function (aaa,bbb){
        this.x = aaa;
        this.y = bbb;
    }
    

    となるので、Test()は window.Test() と同義。となるとthisに入るのはwindowオブジェクトそのもの。this.xはwindow.xと同義になるのでグローバル変数xが汚染される...となるのですが、忘れます。手を動かして思い出しました。

    また、巻き上げの件では、

    global = 'global';
    
    function func(){
      console.log(global); // undefined
      
      var global = 'local';
      console.log(global); // local
    }
    
    func();
    console.log(global); //global
    

    となるようで、コンパイルと実行の関係なのでしょうか。JavaScriptの場合は関数スコープしか無いのでどこで変数宣言しても先頭で宣言したことになる...って読んだことあるような無いような...。

    最近は純粋なJavaScript書く事があまりなくて、専らjQueryだったりするので余計に忘れてしまいます。

    JavaScript=全てがオブジェクトで出来ているっていうのを考えると、OOP(オブジェクト指向プログラミング)を覚えるのに最適な言語なのではないかと思っていたりします。ブラウザで動くしね。

    こういう経験談的なLTもいいのではないか?

    確かにこのような機会があることで試してみたり、再発見することは多いと思います。今回も再確認する良いきっかけになりましたし。ボクも誰か一人でも役立つような発表が出来るよう精進しようと思います。


    「MTCafe Gunma 2013へのお誘い」 LT @hjfuji さん

    3月2日(土)に開催されるMTCafe Gunma 2013の告知LTです。

    MTというのはMiyagawa Tatsuhikoの略...ではなく、Movavle Type。MTはperl製のCMS(Blog)で、以前から知っていましたが使ったことはありませんでした。perl使いなのに...。blogを開設しようとしていた当時はOSS版が無かったので...。

    MTは2011年からシックス・アパート日本法人が扱っているとの事。シックス・アパートはボクの尊敬するTatsuhiko Miyagawaさんもエンジニアとして在籍していたのでとても気になります。

    MTCafe Gunma 2013、参加させて頂きます!


    「Koi::Bana」LT @clicktx

    前エントリーに書きました。


    「Nuuk Jam」 LT @ivoryworks さん

    エディタを作ったお話。まさかのカブり。と、思わせておいて...。
    どこからこの発想が浮かんだのか実に変態的です。URL shortenerいわゆるURLを短縮するサービスを使ってファイルを保存するというwebサービス。

    http://goo.gl/

    googleが提供しているURL短縮サービスですが、トップレベルドメインである.gl=グリーンランドみたいです。.jp=japみたいなものですね。Nuukはグリーンランドの首都みたいです。

    保存方法は対象のデータをURLエンコードして、これを含んだURLを生成。このURLをURL Shortenerで短縮させる。http://goo.gl/6dTBg のように短縮されるので 6dTBgにデータが紐付く。ここまで基本。

    で、どこらへんがジャムかって言うと大きなファイルを保存する時。

    例えば画像の場合はdata URI schemeという画像データをbase64エンコードして作られたURIを元に分割して保存する仕組みになっているので複数の短縮URLが生成されます。これを元の画像に復元する時に1つにする=詰め込む、という事に由来しているようです。だから頻繁にパンを焼いていたのですね。

    なぜ分割するかについて。実はURLの長さについてはRFCで定められていないそうですが、googleのAPIに制限があるからとの事。あまりにも長いURLはブロックされるみたい。googleはNuuk Jam想定内なのかもしれません。

    ただひたすら、無駄に短縮URLを消費していくという実に変態的な仕様に笑いが止まりませんでした。ネーミングセンスも抜群だしね。

    と、@ivoryworksさんのエントリー読んだらアイデア自体は同様の事をしていた先人がいた様子。このエントリーを見て思い出した言葉があります。

    良いと思えるアイデアが閃いたら、まずは世の中に同じアイデアのプロダクトがないか徹底的に調べる事が重要です。


    所感とか

    初参加の方も多数、参加人数も最多という事もあり、なんとなくですが発表者の面々はいつもよりも緊張していたのではないでしょうか?私?パなかったですがなにか?

    主催もおっしゃっていましたが、技術関係のみならず色々なLT/発表が出来るのがGunma.webの特徴の一つ。新しい発表者が増えるともっともっと盛り上がると思うので、是非チャレンジしてみて下さい!

    関連リンク

    発表のスライド等のリンクは以下のリンクから閲覧できます。