2011年12月30日金曜日

2011年に参加した勉強会やIT系イベントのまとめと来年やりたいこと

今年一年を振り返るエントリを書こうと思い、いろいろ考えてみると、今年はやっぱりいろんな勉強会やイベントに参加して物凄く世界が変わった一年だったな、思ったので、そのあたりを個人的にまとめてみようと思います。

去年(2010年)にエンジニアライフでコラムを書くようになって、そこでエンジニアライフのオフ会とか、イベントなどでライトニングトークをしたり、イベント開催のお手伝いをさせてもらったりしながら「おもしろい世界があるなぁ」と思い、今年(2011年)になっていろいろな勉強会やイベントに行くようになりました。

■2011年1月
この頃は、関西在住のコラムニストさんたちとオフ会(ただの飲み会)をしてましたね。他にはminami.rbという勉強会に何度かお邪魔してました。ただ、勉強の興味がいろいろ変化して、Rubyはちょっとお休みしてしまってます。
いずれきちんと勉強したいと思ってる言語なので、またそのときはよろしくお願いします。

■2011年2月
この月は勉強会参加はゼロでした。
エンジニアライフのコラムニストさんとやっぱり飲みに行ったり、岡山の方までカキを食べに行ったり、関東のコラムニストさんとお酒飲むために東京に行ったりしてました(笑
交流の中心はあくまでも「エンジニアライフ」でしたね。

■2011年3月
3月は、会社業務の一貫として、某シンポジウムに参加してました。
クラウドについて研究して、それの発表をする、というもの。僕は論文の執筆担当で、2月からずっとひたすら論文書いてました。

シンポジウムの様子はこんな感じ。

・初日
http://daiksy.blogspot.com/2011/03/blog-post.html
・二日目
http://daiksy.blogspot.com/2011/03/2.html

シンポジウムが終わった後に、あの震災がありました。

3月の後半には、コラムニストさんで集まってFacebook勉強会なんてことをやったりもしました。

■2011年4月
4月3日にこちらのイベントに行きました。

・Untitled!!!!!!!!
http://m2.cap-ut.co.jp/un/

震災の直後で、エンジニアたちで何かできないか、という主旨のイベント。
こちらのイベントがきっかけで、Web系の開発という世界への興味が深まったりもしました。

4月16日は、OSC神戸へ行きました。

・OSC神戸
http://www.ospn.jp/osc2011-kobe/

このときの懇親会で、かねてからTwitterのフォロワーでもあったOSCのスタッフさんとはじめてお会いして、そのご縁で夏のOSC京都に出展することになりました。

4月30日。
Scalaという言語に興味があり、少しずつ自分でも勉強していたのですが、Scala本の読書会があるということで参加しました。

・Scala本読書会 第一回
http://atnd.org/events/14177

この勉強会で知り合った方たちとは今でもお付き合いが続いていて、僕が「エンジニアライフ」以外の場で活動するきっかけになった勉強会だったと言えるかもしれないです。

■2011年5月
5月20日、こんな勉強会にお邪魔しました。

・関西DB勉強会「DecoBoco」
http://atnd.org/events/14380

エンジニアライフでコラムを書かれていた生島さんが講師をされる、ということで行ってきました。普段、アプリの開発でDBを扱ったり、SQL書いたりしてますけど、餅は餅屋というか、データベースを専門的に扱うエンジニアさんのお話をいろいろ聞けて面白かったです。

あとは、何度かモクモク会という名の朝活を会社の近くのカフェでやったりしてました。

・モクモク会
http://daiksy.blogspot.com/2011/05/blog-post.html

こちらは中断してますが、また復活させたいですねぇ。

■2011年6月
・Javaソースコードリーディング 第4回
http://atnd.org/events/14143

Twitter4jのコードリーディングですが、今やTwitterの中の人となられたTwitter4jの作者である@yusukeyさんも来てくださった、楽しい勉強会でした。

僕もLTをさせてもらいました。
http://daiksy.blogspot.com/2011/06/twitter4j.html

あと、この勉強会をきっかけにして、TwitterAPIの本を献本いただき、書評を書いたりもしました。
http://el.jibun.atmarkit.co.jp/bookshelf/2011/07/post-4166.html

6月の後半にはコラムニストさんとHTMLの勉強会とかもしましたね。

■2011年7月
エンジニアライフのコラムニスト一同、ということで、OSC京都に参加しました。
ブースを出展し、コラムニスト数名でLTをやるセッションで登壇しました。

http://daiksy.blogspot.com/2011/07/osc-2011.html

http://jibun.atmarkit.co.jp/lcom01/special/osc2011/01.html

これは楽しかったですねぇ・・・。
来年ももっとパワーアップしてなんかやりたいと思ってます。

■2011年8月
・play! framework勉強会
http://daiksy.blogspot.com/2011/08/play.html

play! frameworkの勉強会です。第二回の東京での勉強会にも後に参加することになります。こちらでは30分のセッションをさせていただきました。
僕の勉強会での発表としては、今のところ最長ですね。

・Javaらへん読書会
http://daiksy.blogspot.com/2011/08/java.html

Javaっぽい本についてみんなで紹介しあいましょうという会。
ここで披露したJoJo LTは、僕のLTの代表作(?)になりました 笑。

■2011年9月
もともと、エンジニアライフのオフ会的なイベントをしましょうということで企画を進めていたのですが、いろいろな人たちの協力により、一つの大きなイベントになりました。
僕が今年参加したイベントの中でも最大の規模のイベントです。

・ITコミュニティ夏祭り
http://tcc.nifty.com/cs/catalog/tcc_schedule/catalog_110816203681_1.htm

http://daiksy.blogspot.com/2011/09/it.html

IT系のコミュニティや勉強会の初心者の方に、「勉強会やコミュニティって怖くないよ。すごく楽しいよ」ということを伝えようという主旨のイベントです。

僕は第一部のトークセッションと、懇親会でLTをしました。

ちなみに懇親会では例の JoJo LTをやったのですが、こちらは自分のLT史上もっとも会場を爆笑の渦に叩きこみました 笑。

■2011年10月
・第二回 Play! framework勉強会
http://daiksy.blogspot.com/2011/10/2-playframeworklt.html

大阪で開催した第一回勉強会からの流れで、東京に行ってきました。
東京での知り合いがたくさんできたので、来年も何度か東京の勉強会やイベントに行きたいと思ってます。

・Scala勉強会
http://daiksy.blogspot.com/2011/10/scala.html

すごく面白い勉強会でした。また、それと同時に自分の勉強がまだまだ足りないな、と思った会でもありました。
この勉強会をきっかけに、来年「関数型言語勉強会」を開催しようと思っていますので、よろしくお願いします。

■2011年11月
・ やきに駆動 秋のJava祭典スペシャル in 大阪〜こりん星
http://daiksy.blogspot.com/2011/11/java.html

みんなで焼肉食べるついでに勉強しましょう、という会。
いつも集まる勉強会仲間と、内輪でワイワイ遊ぶ感じですが、妙に濃い発表があったり楽しかったです。

■2011年12月
・謎の忘年会改め「忘年会駆動 年末発表しつくしセール 〜除夜のフエ聞きながら年越しラムネですね、分かります〜」
http://daiksy.blogspot.com/2011/12/blog-post_23.html

こちらも11月の焼肉と同様、忘年会きっかけの会です。

11月と12月は、勉強会というベクトルに対してトーンダウンしてます。
これはまた、年明けにきちんとエントリを書こうと思ってますが、この時期は自分自信の仕事に対しての環境を変えるための具体的な活動にリソースを集中させていたので、あまり勉強会に時間を割くことができなかったんです。
その活動にも良い結果が出たので、来年はまた勉強会活動にも積極的に取り組もうと思ってます。

■その他
・変態アドベントカレンダー
http://atnd.org/events/22020


・Play! framework Advent Calendar
http://atnd.org/events/22247

■来年やりたいこと
・関数型言語勉強会
今年の秋に、準備会ということでお手伝いくださる皆さんといろいろお話させていただきました。春頃には開催したいので、その際はよろしくお願いします。

・LT大会
友人のつてで、某所の寄席を会場として借りられるということなので、寄席を会場としたLTイベントを開催しようと思っています。
こちらも暖かくなってきた頃の開催を予定しています。

・study4bg
2月開催の勉強会に呼んでいただいたので、何かお話させていただきます。
http://el.jibun.atmarkit.co.jp/azk/2011/12/--1---bd60.html

・その他面白い事なんでも。
来年は今年以上に面白いことしたいですね。OSCにもまた参加しようと思ってます。

■まとめ
2011年は、つらいことやしんどいこともたくさんありました(例:デスマ)。
ですが、こうして振り返ると、充実した良い一年でもありました。

新しい友人もできました。
いろいろな悩みを打ち明けたり、相談にのってもらったり、自分にとってかけがえのない人間関係を築くこともできました。

2012年も、今年以上に良い一年になるよう、頑張ろうと思います。

2011年12月23日金曜日

忘年会駆動勉強会に行ってきた。

忘年会駆動勉強会に行ってきた!

正式名称は、謎の忘年会改め「忘年会駆動 年末発表しつくしセール 〜除夜のフエ聞きながら年越しラムネですね、分かります〜」

もともとはフグが食べたいなーと思って、勉強会仲間を誘って忘年会やろうと思ったら、tangoさんの会社の会議室が借りられるということで、みんなで勉強会してきました。

経緯はこちら。
http://togetter.com/li/224500

で、僕はアップルパイの実装についてと見せかけたポモドーロについての今更感漂うお話をしてきました。

他にも、@backpaper0さんのベルセルクLTと見せかけたO/Rマッパの話があったり、@irofさんの来年の勉強会の紹介があったり、@hakuraiさんのdukeくんのモデリングについての話があったり、@tan_go238さんのJavaのオンラインエディタを見せてもらったり。

っていうか、dukeくん、凄いっすよ。


これは本当に凄い。
次回はこれの着色版と量産型が披露されるのかな? |д゜)チラッ

で、勉強会のあとは、みんなでフグのコースを美味しく頂いて、
たいへん楽しい勉強会でした。

みなさんとは今年になって知り合った方たちばかりですが、こうして忘年会とかできることはたいへん幸せなことだなぁと思います。

来年もよろしくお願いします。 

2011年12月3日土曜日

皆もすなるランニングといふものを、我もしてみむとてするなり

大阪マラソン、神戸マラソンとそれぞれ大成功のようで、なによりです。

実はこれらは僕も走りたいと思って、申し込んでいたのですが抽選で落ちてしまって…。結局神戸マラソンは友人の応援などしてました。

神戸マラソンを走った友達をGPSでストーキングしたというはなし
http://daiksy.blogspot.com/2011/11/gps.html

落選したとはいえ、せっかく走ろうとヤル気を一度は出したのだから、一度くらいはちゃんとしたマラソン大会を走りたいと思い、来年の2月にこういうイベントがあることを友人が教えてくれたので、10kmコースにエントリすることにしました。

神戸バレンタイン・ラブラン
http://www.sanspo-marathon.com/entry.php?itemid=54418

で、参加が決まったら真面目に練習せねばならないので、さっそくシューズを購入。


どうせ走るなら、楽しく走ろうと思い、iPhoneにNike + GPSを入れて、とりあえず初回は3kmほどゆっくり走りました。

Nike + GPS
http://itunes.apple.com/jp/app/nike-gps/id387771637?mt=8

Nike + GPSですが、これは凄く楽しいです。

各種設定後、ワークアウトを開始すると、そこからGPSを使った計測がはじまります。FacebookやTwitterと連動させることで、開始や終了時の記録をソーシャルにシェアすることもできます。

イヤホンを装着し、iPhoneに入れてる音楽を聞きながら走るのですが、1kmごとにその旨と総経過時間、1kmごとの平均ラップタイムを音声で知らせてくれます。

リアルタイムで走行距離を計測してくれるので、2km半くらいで疲れたので歩こうかと思ったのですが、iPhoneを見たらあともうちょっとで3kmだからそこまでは走ろう、という具合に励みにもなります。

ソーシャルに情報をシェアするので、この記録をみんなに見られるわけですから、たとえば1kmだけでやめちゃうとか、そういうのは恥ずかしいからせめて3kmは走ろう、という気持ちになれたのも、このアプリのおかげでした。

これが無かったら、結構早い段階で音を上げていたかもしれません。いや、まぁ、1kmだろうと3kmだろうとたいして変わらんよ、というご意見もあるでしょうが、そこは初回ということで、千里の道も一歩から。徐々に鍛えていこうと思います。

記録はネットでアップロードされ、下の画像のようにいつでもPCなどで詳細に確認できます。


ちょっとした工夫で、走るのが楽しくなるので、こういうアプリをお伴に走るのはなかなかおすすめです。

PlayframeworkのPDFモジュール

Play! framework Advent Calendarの14日目の記事です。

Advent Calendarといえば、クリスマスをターゲットとしたイベントですが、クリスマスが終わればもうお正月。

ということで、PDFモジュールを使っておみくじを作りました。

PDFモジュールの使い方は簡単です。

% play install pdf

とコマンドを打てば、インストールされます。
あとは、他のモジュールと同じようにapplication.confに書くか、dependencies.ymlに追記してdependenciesコマンドを叩きます。

実際に使用する場合は、

import static play.modules.pdf.PDF.*;

とimportします。

以下、おみくじアプリのコードです。

package controllers;

import play.*;
import play.mvc.*;
import java.util.*;
import models.*;

import static play.modules.pdf.PDF.*;

public class Application extends Controller {

    public static void index() {
        Options options = new Options();
        options.filename = "omikuji";

        String result = getResult();

        renderPDF(options, result);
    }

    private static String getResult(){
      String[] kuji = {"Daikichi", "Chukichi", "Kichi", "Shokichi", "Kyo", "Daikyo"};
      Random rnd = new Random();
      int index = rnd.nextInt(kuji.length);
      return kuji[index];
    }
}

実際にPDF出力する実装は、通常render()とする箇所をrenderPDF()と書いているだけです。第一引数のoptionsは、PDF出力の際の各種オプションを設定することができ、今回はファイル名を定義しています。
その他のオプションについてはこちらを参照してください。
http://www.playframework.org/modules/pdf-0.7/home

viewのコードを見ていただくとわかるのですが、cssも普通に反映されます。

#{extends 'main.html' /}
#{set title:'Home' /}

<style type="text/css">
<!--
.omikuji{
    text-align:center;
    margin:0px auto;
    background-color:#FFCC5A;
    border-color:#660000;
    border-width:2px;
    border-style:solid;
    width:150px;
    height:100px;
    display:block;
}
-->
</style>

<div class="omikuji">
  Your fortune is <b>&{result}</b> !!
</div>

今回の実装で一点詰まった箇所がありまして、コードを見ていただくと分かるのですが、おみくじの結果が"Daikichi"のように少し不自然な形になっています。
本来は"大吉"としたかったのですが、日本語のフォントに対応していないようで、レンダリングされませんでした。

heroku上でこのアプリを実際に動かしていただくことができます。
http://quiet-beach-8560.herokuapp.com/
アクセスするといきなり結果がPDFで出力されますのでご注意ください。

ソースコードはこちら。
https://github.com/daiksy/PlayAdvent


ちなみに、RenderPDF()をRender()と書き換えると、このように動きます。
http://pure-ocean-8055.herokuapp.com/


それでは、少し気が早いですが、来年の運勢など占ってはいかがでしょうか?

次は @arahaya さんです。


2011年12月1日木曜日

いろいろな言語で変態

12/1になり、各地でいろんなアドベントカレンダーが始まったようです。

我々の変態アドベントカレンダーは意識が高すぎるあまり、11月ですでに終了の気配が濃厚なのですが、諦めたらそこで試合終了なので、続けて行きましょう。

と、いうことで軽い感じのエントリ。

いろんな言語で変態を実装してみました。

Ada:
with Ada.Text_Io; use Ada.Text_Io;
procedure Hentai is
begin
 Put_Line ("お巡りさん! この人です!");
end Hentai;

BASIC:
10 PRINT "お巡りさん! この人です!"
20 END

C:
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char **argv) 
  {
  puts ("お巡りさん! この人です!") ;
  return EXIT_SUCCESS ;
  }

C#:
class HentaiApp 
{
 static void Main() 
 {
  System.Console.WriteLine("お巡りさん! この人です!");
 }
}

COBOL:
IDENTIFICATION DIVISION.
PROGRAM-ID. HENTAI.
PROCEDURE DIVISION.
DISPLAY "お巡りさん! この人です!".
STOP RUN.

Java:
public class hentai{
    public static void main(String[] args){
        System.out.println("お巡りさん! この人です!");
    }
}

Ruby:
puts "お巡りさん! この人です!"

Scala:
object Hentai extends App {
  println("お巡りさん! この人です!")
}

SQL:
SELECT 'お巡りさん! この人です!' FROM dual;

PHP:
<?php
echo 'お巡りさん! この人です!';
exit;
?>

え!? どこかで見たエントリだって?  気にしない、気にしない!