はてなブックマーク - Fusic勉強会でPandocについて発表しました
    このエントリーをはてなブックマークに追加

    小山です。

    たぶん誰にも響きませんが、ここ最近の心の叫びを
    「Quarz Composer Pluginを64bitでBuildしたらVDMXでうごかねーじゃねえか!!」

    さて、先週のFusic勉強会でPandocについて発表をしましたので共有します。

    また、気軽に試してみたい人用にCentOS用のVagrantfileも作成しました。

    github.com/k1LoW/pandoc-vagrant-ansible

    (※TeXLiveのインストールに、あまりに時間がかかるためか必ず途中で失敗します。しかし、エラーメッセージをよくみて途中からTeXLiveのインストールを再開してみてください。その後再度vagrant provisionでその後の再開が可能です)

    Pandocとは

    a universal document converter」の通りマルチなドキュメント変換ツールです。

    いろいろあって、MarkdownからPDFとかWordとか生成できたらなーと思い、たどり着きました。

    使ってみた感想

    • Markdown + Cacooが気持ち良いです。ドキュメントも図もしっかりバージョン管理
    • Wordが意外に綺麗にでてくるのに驚いています。しかし、スタイルの指定などがしっかりと動きませんでした。
    • PDFの方はLuaLaTeXを介して出力ができました。
    • さらにPandocのMarkdownは拡張されていて、中にTeXを書くことができます。documentclassの指定もできます。ということはLaTeXなので、いくらでも体裁を整えることができそうです。

    というわけで

    大学以来、久しぶりにLaTeXを触り始めました。

    Pandoc、なかなか良いです。

      はてなブックマーク - Fusic Internal Drink Upで中途採用について語りました
      このエントリーをはてなブックマークに追加

      小山です。

      少し遅くなりましたが、2月7日に「Fusicの中途採用についてみんなで考えてみよう」というお題目で、社内で呑みながら話しましたので、共有したいと思います。

      Fusic Internal Drink Upとは?

      「呑みながら社内メンバーで社内について話そうぜ」という言葉をアルファベットを使って格好良くしただけです。

      別の言い方で言うと「お題を決めて社内で呑む」です。

      今回が初めての開催で、いろいろ課題もありましたが、概ね良かったと思います。

      まずはピザとビールで乾杯

      今回参加してくれたのは社長を含めた7人でした。ちなみに参加は任意です。

      「社長がいたら言いたいことが言えないのではないか?」という考え方もあるかもしれませんが、Fusicの場合はあまり当てはまりません。むしろ参加してもらうことで「今までの方法」についても話してもらえると思えたので非常に助かりました(社長も任意参加です)(一方で社長に限らず「声が大きい人が多い」というのは課題でもあります)。

      自分の「まずは気楽に呑んで話してもらいたい」という考えから、普通の居酒屋のように小さくテーブルを囲んで座ってもらいました。そして、そのテーブルを埋めるように模造紙を敷き、その上にピザと飲み物を置きました。

      そしてそれぞれにビールとペンを渡して、まずは乾杯から。

      ピザとビールの割合のベストプラクティス

      ピザとビールの割合を決めるのには beer-party.candycane.jp/ を利用しました。このシステムには、先人による素晴らしい経験則からくる計算式が組み込まれているので、そのまま信用しました。

      (Twitter上ではお騒がせしました)

      呑みながら書くルール

      今回は「中途採用について」いくつか聞きたいことリストを作成し、
      それを参加者に渡して

      • 話題は中途採用に絞る
      • しゃべりながらその内容をテーブルの模造紙にペンで書く

      というルールだけ伝えて、後は主催者の自分もそのまま参加してしゃべりました。
      ルールはこれだけです。

      結局19時から初めて22時くらいまでしゃべっていたのではないでしょうか?
      話題が真面目だと熱くなりがちですね。

      Fusicの中途採用の流れ

      Fusicの中途採用の方法は、まずは転職サイトやエージェントを介して募集するところまでは普通だと思います。

      ただ、「まず面談するのが社長」というルールがあります。
      (なんとなく「一般的な採用の流れ」とは違う気がしているのですが、なにせ自分が「Fusic新卒採用」なのでよくわかっていません。)

      そのあと「社員(主に技術者)による面談」が「複数人続けて」あります。

      面談をする社員は、別に「マネージャ」とか「この人」とか決まっているわけではありません。「最初に面談した」社長が特性を見て決めているイメージです(ときどき自分たちに「誰が面談したほうがいいだろう」と聞くこともあります)。

      具体的に挙げると「インフラに強そうな人なら @debility」とかでしょうか?(あくまで例です)
      今までのバックボーンやこれから担って欲しいと思っている領域から決まることもあります。

      全ての面談終了後、面談をした人全員で話をして、判断をしていきます。

      面談を複数人する理由

      10分程度(話が盛り上がれば30分以上)の面談を、連続して受ける側にとってはとても大変です。

      ただ、Fusicでは「一緒に働きたいかどうか」ということは「お互いにとって」とても重要なので、社員にも多く会ってもらっています。

      社長がいつも言うのは「面談中は自分たちも見られているのだから」ということです。Fusicの社員は「嘘偽りで着飾る」ことは性格的にできませんが、できるかぎり良いところを(もしかしたら悪いところも)精一杯伝えようとはしていると思います。

      また「技術的視点」でも「その人の良い部分を見逃さないように」複数人がいいと思っています。Fusicには全てに長けているスーパープログラマはいないですから。

      中途採用について語ってみた・質問してみた

      今回はじめて「中途採用について」みんなで話をしましたが、いろいろな側面から知ることができました。

      聞かないとわからない中途採用の実状

      例えば、以下のようなことは特に全員で共有する機会はなかったかと思います。

      • 1人採用するのにだいたいどれくらいの費用がかかるのか
      • 今までどのような募集方法をとったのか
      • 今までの応募数
      • 今までの面談数

      知ることで中途採用について少し具体的にイメージすることができました(会社がどれくらい本気なのかなど)。

      当然回答者は社長です。こういう時に社長が参加していると気軽です。

      でも、基本的に「聞かれれば答えられる」ことだったんですね。(Fusic社員は中途採用に限らずいろいろ聞いてみましょう。)

      Drink Up中の主な論点

      drink

      Drink Up中の主な論点を少しだけ箇条書きで共有します。

      • Fusicは圧倒的に知名度が足りない。直近でできるものでどうにか施策を実施する必要がある
        • 技術Blogのテコ入れ?
        • 社内チャットチャンネルの速報性をBlogに書いてもいいのでは(セキュリティ情報など)
        • もっと気軽に
        • 会社が目立つべき?個人が目立つべき?両方?現実的なのは?
      • 社長面談の前に技術者面談を入れて「社長ではわからない良い技術者」を見つけるべきでは?(社長、技術的に信じられてない。。。)
      • Fusicホームーページに中途採用専用ページがなく本気度が伝わらない
      • 福岡においては、GitHub採用やQiita採用は果たして有効なのかわからない(Fusicには◯次面接というものがないので面接スキップというわけにはいかない)
      • 面談をした社員と話して入社を決意した人がいる

      その他ここでは書けないことや、奇抜すぎるアイデアなど、いろいろ出ました。

      みんな、いろいろ考えています。

      開催してみた感想

      自分一人ではとても考えつかないポイントやアイデアを得ることができました。中途採用難しいです。
      また、開催してみたいと思います(まずはもっと動かないと。。)
      参加者にとっても「未来に一緒に働く仲間について」考えるいい機会だったと思います。

      Fusicではエンジニアを募集しています。
      また、「こうだったら入社したくなるのに」というご意見、アイデアも募集しています。

      どうぞ!よろしくお願いいたします!

        はてなブックマーク - Sinatra+Mongo+Pusherで忘年会余興アプリを作ってみた
        このエントリーをはてなブックマークに追加

        こんにちわ、Fusic新卒のカワサキです。
        だいぶ投稿が遅れてしまいましたが、先日の忘年会2013のお話!

        10周年記念パーティーのときもそうでしたが、弊社ではなぜか行事ごとに力をいれていて、IT会社らしくITを使って何かやるというのが「仕来り」になってきています笑

        ということで今回も
        ・みんなが知っているゲーム
        ・ルールが単純
        ・チーム対抗で楽しめる
        を前提に幹事チームで考えた結果、アタッ○25「っぽい」ゲームをやってみましたw

        1545777_707721675929493_1789192938_n

        943057_707722552596072_1538389287_n

        1512660_707724779262516_29234952_n

        使用した技術

        Pusher(pusher.com): 早押しボタンなどのリアルタイム通信のため
        Sinatra: Pusherのサーバ側、Publishや認証のため
        MongoDB: パネルの状態保持のため
        Grunt: CoffeescriptとかLessのコンパイル自動化のため

        今回はPusherにリアルタイム通信周りを「おまかせ」したおかげで、ほとんどサーバサイドが必要なく、Html・CSS・Javascriptのクライアントサイドアプリになったかなという感じ。
        なのでRubyは最低限必要部分だけで、メインはSinatraのpublicディレクトリにGruntでクライアントサイド開発をしやすい環境整えて、開発していきました。

        実際Pusherのおかげでリアルタイム通信部分はほんとに少ないコードで書けて
        ・Sinatra側でPublish用のメソッドを用意
        ・JS側でチャンネル・イベントのバインドとAjaxでのデータPOST
        だけで、簡単にリアルタイム通信を行うことができました!

        例えば、早押しボタンを例にすると

        Sinatra側のPublishメソッド

        1
        2
        3
        4
        5
        6
        
        # server.rb
        post '/pusher/publish' do
          Pusher.trigger('channel-name', params[:event],
            params[:contents]
          )
        end

        Ajaxで早押ししたチーム色のPOST

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        
        # buzzer.coffee
        $('#buzzer').on 'click', 'a', ()->
          $(@).attr('href', "##{color}")
         
          $.ajax
            type: 'POST'
            url: '/pusher/publish'
            data:
              event: 'attack:buzzer'
              contents:
                color: color

        早押ししたチーム色の音をならす・一番早かったチーム以外受け付けない排他制御・回答者を点滅

        1
        2
        3
        4
        5
        6
        7
        8
        
        # panel.coffee
        channel.bind 'attack:buzzer', (data)->
          return if fastest
          fastest = data.color
         
          playPlay('panel-' + fastest) #早押ししたチーム色の音をplay
         
          flashOn(fastest) # 回答者点滅

        のような感じで、簡単にリアルタイム通信を行えます。

        また幹事チームの役割分担もけっこううまくできて

        上司W: 当日の進行・景品の準備・音源の獲得。
        上司O: パネル画面の実装・映像問題作成。
        : サーバ側・早押しボタン・ポイント画面の実装。

        といった感じで役割分担し、全体の構成や問題についてはみんなで話し合って進めていきました。

        あと今回最後の映像問題の答えが「黒田官兵衛」だったので、昼休みにわざわざ福岡城に撮影しにいったり、先輩たちに「無理やり」筑紫もち早食いさせられたりと、良い?思い出があったりしますw

        当日もよりリアルな雰囲気を再現するため、幹事はコスプレしたのですが、なぜか白髪のおじさんじゃなくて「バーコードハゲ」だったり、アナウンサーではなく「女子高生」だったり、なぜかなぜか「お地蔵さん」がいたりとなかなか面白かったです笑

        1536716_707720409262953_1660490088_n

        感想やまとめ

        ・当日は思った以上にみんなが真剣にクイズとか考えてくれたし、盛り上がってよかった。
        ・無駄にアタッ○25に詳しくなった。例えばパネルがめくれる際の音は赤・白・青・緑、全ての色で違うとかw
        ・幹事チームのメンバーは普段案件とかであまり関わりがなかったので、短い期間ですががっつり絡めてよかった。
        ・普段業務で使ったことがなかった技術、今回でいえばPusherやGruntなど使えて勉強になった。

        以上、次回の行事ごとにも期待です!