2015/04/12 このエントリーをはてなブックマークに追加 はてなブックマーク - 株式会社サムライズムに行ってきたのを思い出したので、レポート #ikemoku

株式会社サムライズムに行ってきたのを思い出したので、レポート #ikemoku



サムライズムさんがもくもくイベントっぽいのやるということで参加してきました!



4月9日(木) ふくろうJava #ikemoku



色々書こうかと思ったけど、まめピカさんが大体書いてくれてた。
サムライズムさんにお邪魔してきました!#ikemoku


僕の言いたいことはまめピカさんが大体言ってくれている、すごい働きやすそうだなぁーと思いました。



池袋駅から10分ぐらいかなぁ、体感。GoogleMapにもちゃんと登録されているので
検索すれば出てきます!(着いてから知った)




間違えた。



こっちだ。



ビルの一室にサムライズムはありました。
ドアの前でにやにやしながらTwitterしてたらyusukeさんが開けてくれました


yusukeさん、何回か会ったこと(というか一方的にお見かけしたレベル)はあるんだけど
やっぱ毎回イケメンだなぁーと思う。何の話や。







もくもくして軽くLTすると聞いてたので、とりあえずIntelliJ IDEAを開いて(保身)
Twitter4Jを使ってなにかつくろうと思った(媚売り)。





その時の僕の様子






ずっとサムライズムでハーゲンダッツを食べたかったので、夢かなった瞬間である。







うまかった(写真なし)。 雑談もほどほどに、、参加者全員の自己紹介をしました。こんなことしててーとか
あんなシステムあったよねーとかそんな話だったような。


僕の自己紹介
ぼく「珍しい苗字なんですよ。ググるとすぐ紐付いちゃうので普通の名前が良かったですね。
よくある苗字とかでよかったですね。森のなかの葉っぱになりたかったですね」
yusukeさん「森のなかの葉っぱですサーセン」


みたいなやりとりしてなんだかdisったみたいになってしまい
違うんや違うんやと内心必死に弁解したくて弁解しそこねました。





・build.gradleの依存関係にTwitter4J追加できた
・libGDX + KotlinでTwitter4J使ってTwitter検索出来た
・アプリ起動2回しただけでrate limit出た
・yusukeさんをちょっと困らせた
















sueさんのLTは普通にしっかりしててすごかった。 具体的にはこれの発表してくれました。
enkins GitLab Logo Plugin をリリースしました - くりにっき

コマンド一発でリリースしてブランチ切ってくれるjenkinsプラグインって言ってたと思います。
すげーってただただ感心しました笑

テストはGroovy製のSpockを使ったらしく、BetaMaxってライブラリが面白そうだった。
ざっと見た感じだと、sueさんはHTTPレスポンスをymlに書いてモックとして使ってる感じでした。


僕はというと、見事に失敗しましたが、原因は分かりました。
Twitter APIにはRate Limitというものがあり、APIとの時間あたりの通信回数制限みたいなものがあります。
僕が今回作ったてっきとーなアプリでなんでいきなりRate Limitなんかひっかるのかなぁと思ったら
LibGDXのライフ・サイクルを理解しておらずrenderイベントでめちゃくちゃリクエスト飛ばしてました笑



実際のくそみたいなコードがこんな感じ

package sample

import com.badlogic.gdx.ApplicationAdapter
import com.badlogic.gdx.Gdx
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.GL20
import com.badlogic.gdx.graphics.Texture
import com.badlogic.gdx.graphics.g2d.BitmapFont
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.scenes.scene2d.ui.Skin
import com.badlogic.gdx.scenes.scene2d.ui.TextField
import twitter4j.Query
import twitter4j.QueryResult
import twitter4j.TwitterFactory
import twitter4j.conf.ConfigurationBuilder

public class KotlinSample : ApplicationAdapter() {
    var batch: SpriteBatch? = null
    var img: Texture? = null
    var font: BitmapFont? = null

    override fun create(): Unit {
        batch = SpriteBatch()
        font = BitmapFont()
        font?.setColor(Color.BLACK)
        font?.setScale(2f)
    }

    override fun render(): Unit {
        println("hello")
        System.setProperty("twitter4j.loggerFactory","twitter4j.StdOutLoggerFactory")
        val cb = ConfigurationBuilder()
        cb.setDebugEnabled(true)
                .setOAuthConsumerKey("ナイショ")
                .setOAuthConsumerSecret(
                        "ナイショ")
                .setOAuthAccessToken(
                        "ナイショ")
                .setOAuthAccessTokenSecret(
                        "ナイショ")
                .setDebugEnabled(true)
        val factory = TwitterFactory(cb.build())
        val twitter = factory.getInstance()
        val query = Query("#ikemoku")
        query.setCount(1)
        val result = twitter.search(query)
        val builder = StringBuilder()
        result.getTweets().forEach {
            builder.append("@${it.getUser().getScreenName()}: ${it.getText()} ¥n")
        }
        Gdx.gl.glClearColor(1f, 0f, 0f, 1f)
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT)
        batch!!.begin()
        font?.draw(batch, builder.toString(), 200f, 200f)
        batch!!.end()
    }
}





ついでに言うと、gradle runで標準出力がコンソールに出ないって問題もあったんだけど
これについてはみけさんに解決してもらいました。ホントありがとうございます。

やんくさんがKotlinアプリケーションをgradleで走らせたけど、スタンダードアウトが出てこないと騒いでいたので調べたけど、っgrksだった件について - mike-neckのブログ

ググります。



・サムライズムはエンジニアにやさしい働きやすそうなところでした
・sueさんがLT鮮やかでした
・JJUG幹事はなぜかJJUG幹事業をしてた
・yusukeさんはイケメン
・johtaniさんは気さくな感じ
・ググります


ホントに色々ごちそうになったり教えてもらったり、居心地良かったです!
おじゃましました!ありがとうございました!





0 件のコメント:

コメントを投稿