blog4j 2.0 このページをアンテナに追加 RSSフィード

2013-05-14

Java Day Tokyo 2013 #jdt2013

| 23:51 | Java Day Tokyo 2013 #jdt2013を含むブックマーク

エバンジェリストに無茶振りされて、Java Day Tokyo 2013で危うくJavaに関係ない話だけをするところでした。時間が8分間とだけ聞いていたので*1LTより長いし時間持て余すなーと思っていたら、あんなことになってしまいました。

本当なら3段階に分けたデモを見せたかったのですが、時間がなくて最終形をちらっと見せるだけに終わってしまいました。見せたかったのはデモ以下のような感じです。

  1. Twitter4JからMongoDBにデータをためておいて、Elasticsearchで検索できるようにする
  2. Elasticsearchをさらに使って、各ツイートがどのパーツに関係しているかのスコアを出す
  3. Mahoutを使ってパーツの関連を調べて、パーツの組み合わせを出す

コードはすべてGroovyで書いて、デモで見せる部分は当日にGrailsでWebアプリ化しました*2

データマイニングとかは全くの素人で、ちょっとやってみたらそれっぽいデータ*3が出たので個人的には満足です。

Elasticsearchのユーザ辞書を結構適当に作ったのでもう少し整えたり、Mahoutの使い方をもっとちゃんと勉強したり、ミニ四駆ツイートをもっとためたりしていけば、もう少し良くなるんじゃないかとちょっと本気で考えています。

話せなかった分*4については、どこかの勉強会のLTとかでお話ししたいと思います。

*1:何でもありって聞いた。発表順は当日に知った。

*2:これ重要。言い忘れてた。

*3:いろいろ間違ってそうですが

*4:今日の後半部分

2013-03-10

Groovy基礎勉強会でSpockについて話してきた #GroovyBase

| 01:17 | Groovy基礎勉強会でSpockについて話してきた #GroovyBaseを含むブックマーク

Groovy基礎勉強会でSpockの コードを読んだ感想 基礎について話してきました。

普段Spockを使ったり、Spockの拡張を書いてみたりしてたので、なんとなく話せるかなと思ってたのですが、基礎勉強会的にSpockの使い方とか拡張の実装方法とかを話したら負けかなと思って、コンパイル時(AST変換)と実行時(Specification)について話しました。「なるほど、わからん」と思っていただければ嬉しいです。

SpockのAST変換はいろいろやっていて発表ではひどいことを言いましたが、Spockの半分はやさしさで出来ています。やさしさの代名詞であるPowerAssertは、Spockの実装がGroovyに取り入れられたぐらいですし。発表の中でもちらっと話しましたが、Spockの書き方を間違えるとAST変換時にいろいろと、やさしく教えてくれます。

例えば、setup()メソッドをsetUp()と書くと、コンパイルエラーが発生します。

class HelloSpock extends Specification {
    void setUp() {
        println 'setUp'
    }
}
1 compilation error:

Misspelled 'setup()' method (wrong capitalization) 

他にもAST変換時に色々とチェックしてくれるようになっています。Spockは全然こわくないです。

Java基礎勉強会から久しぶりの基礎勉強会参加でしたが、あいかわらず勉強になったのかなってないのかわからん勉強会でした。

2013-02-22

GroovyのEnumが地味に便利

| 01:29 | GroovyのEnumが地味に便利を含むブックマーク

ドラクエ7はやってないけど、ドラクエVIIのバロックタワーのパズルを解く - 虎塚 が面白そうだったのと、メタルギアライジングダウンロードが全然おわらないのでGroovyで実装してみた。

実行方法

groovy baroque L D R U

結果

3U0
R L
2D1
----
*U0
D U
2L1
----
*U0
L R
2U1
----
3R0
U D
2U*
----
3D0
R L
2U*

GroovyのEnumはnext()/previous()メソッドがあるので、時計回りに90度動かすってのがEnumの定義だけでできる。

enum Direction { L,U,R,D }

と定義しておけば、

import static Direction.*

assert L.next() == U
assert U.next() == R
assert R.next() == D
assert D.next() == L

のように、L -> U -> R -> D -> L、と90度回転してるように出来る。

最初はDirectionにrotate()メソッドを実装したのに間違えてnext()って呼び出してて、なんだこれはって見つけた。next()/previous() はシンタックスシュガーでそれぞれ ++/-- で書けるのでなおさら便利。

2013-01-07

Griffonグッズ争奪戦

| 11:59 | Griffonグッズ争奪戦を含むブックマーク

もう1ヶ月ほど前になりますが、GGXに参加するためにロンドンまで行ってきました。*1GGXについては次回G*ワークショップにて報告があると思いますので、しばしお待ちください。

GGXにて @aalmiray さんからGriffonバッジを大量に頂きました。参考リンク

f:id:kiy0taka:20130107111028j:image

さらに、@mkawax が抽選で1枚しかないGriffon Tシャツまでゲットするというミラクルが起きました。

f:id:kiy0taka:20130107111029j:image


Griffonグッズ争奪戦

ワークショップでただ配るのはちょっともったいないので、@aalmiray さんに感謝の意味を込めて、これらのGriffonグッズを有効活用するために、Griffonグッズ争奪戦を行います!

参加方法

Griffonアプリを書いて応募してください。応募方法はもう少し後で告知しますので、とりあえずGriffonを作ってアプリを作ってみてください。そんなに凝ったものでなくてもいいですが、何かの役に立つようなものであれば何でもOKです。すでに作ってあるもでもOKです。ソースは公開してある必要があります。

商品

  • Griffonバッジ - 参加者全員
  • Griffon Tシャツ! - 最優秀作品賞に選ばれた1名

締め切り

とりあえず、次回G*ワークショップのLT(1/18)にて結果発表をしたいと思いますので、それまでに作ってもらえればと思います。

もうちっと期限を延ばします。詳細は次回G*ワークショップのLT(1/18)にて!

その他

1/18に参加される方は手渡しで、それ以外の方は何らかの方法で。

*1:会社から行かせていただきました。あと、ベルギーとかドイツとか

2012-12-22

第4回大阪Jenkins勉強会の御礼

| 01:00 | 第4回大阪Jenkins勉強会の御礼を含むブックマーク

やりました。と言っても、今回自分は特に何もしてないのですが、急遽Ustをすることにしたら音声途切れるわ、フォーカス合わないわで、とても残念な録画になってしまいました。すいません。社内チャットで @tyama にフォーカスを調整する素敵なプログラムを書いて送ってもらったのですが、活かしきれず。。

せめて、まとめのまとめをWikiに書こうと思ったら、すでに出来てたとか。

第4回Jenkins勉強会 in 大阪 - 日本語 - Jenkins Wiki

そんな感じで、たくさんの人に助けてもらいつつ第4回を終えることが出来ました。年末の忙しい時期にスピーカーをしていただいた皆様、集まっていただいた方々、スタッフの皆様、いつも会場を提供してくださるTIS様、本当にありがとうございました。

それでは、世界が終わっていなければ第5回大阪Jenkins勉強会でお会いしましょう!