ソーシャルもうええねん

ソーシャルもうええねん (Nanaブックス)

ソーシャルもうええねん (Nanaブックス)

  • 作者: 村上福之
  • 出版社/メーカー: ナナ・コーポレート・コミュニケーション
  • 発売日: 2012/10/26
  • メディア: 単行本(ソフトカバー)
  • 購入: 4人 クリック: 153回
  • この商品を含むブログ (24件) を見る

村上福之さんが最近書いた本を読み終わったので、珍しく読書感想文します。
このfukuyukiさんという人は大変すごい人なんだけど、リアルで会うとなんかスライムみたいにぷるぷるしてます。変な人だなぁと思います。

ふくゆきさんがブログに今まで書いたものの総集編的な本なので、「あぁそんなこともあったねぇ」的な記事もちょびっとありました。
全体的に大変おもしろいので買って読むか、誰かからカツアゲして読むといいと思います。

僕が気に入った節のサブタイトルと感想を書いておきます。
・年収12億円アフィリエイターとマック赤坂を信用調査してみた話→なんで調査してみようと思ったのか不思議だ
・量産されるトップランナー→俺も路傍のトップランナーに一回くらいなれるのでは?
・なぜFacebookソーシャルゲームは儲からないのか?→逆に仕事をゲーミフィケーション化してそれらの人々にやってもらえばいいんじゃないかとか思ったけど誰かやってそう
・「すでに革新的な商品を作った会社で働くこと」のつまらなさ→"日本の法定労働時間は1日8時間しかないにもかかわらず" が7回出てくる。大事なことなので7回言いました。言いたすぎやろ。
・動いているものを見せれば、大人は納得する→普通にfukuyukiさんがカッコイイ
非コミュグラマーが独立するのに必要なたった2つの勇気→普通にいい話なので面白いけど1つしか思い出せないぞ今
・競争が激しいところに行くから、価格は叩かれる→超名言出てくるので要チェック
・「日本から世界へ」ではなく「オレ発世界へ」→Googleに言及してる部分がその通りすぎてwww

巻末の わかめスレイヤー ってオレな!( 'ω')✌

JsonPullParser が Maven Central Repository に入るようです

イケメンの [twitter:@yusukey] 閣下がリリースしているTwitter4J、有名です。Twitter4Jを利用する方はたいていmvn経由で利用していると思います。
かくいう僕も、Sengokuナントカを開発している時からMaven Central Repositoryに置いてあるTwitter4Jをmvn先生に落としてもらってきていたりしたわけです。

で、QConTokyoの控え室で yusukey 閣下がMaven Central Repositoryへの入れ方を簡単に説明してくれたのでした。
でもアホのわかめは覚えてられないので帰りの電車に乗るくらいにはもうすっかり忘れてしまったわけです。

で、GWですしいっちょやってみんべ!と一年発起して、yusukey閣下が昔書いた http://samuraism.jp/diary/2008/06/08/1212855869954.html を見て、ほうほうMaven Central Repository に取り込んでもらうにはこうするのかー…とか言ってましたらば。

この時、僕は確信しました。この人はただのヒゲダンディじゃない。身も心も真のイケメンなのだと…。

で、書いてもらったのが http://samuraism.jp/diary/2012/05/03/1336047480000.html になります。
後はもうほんとこの手順通りやるだけでした。 The Central Repository Search Engine ほらこのとおり!!
ちょっと詰まったところだけ補足しておきます。
あと、僕のリクエストは [OSSRH-3460] request for creation of maven repository for JsonPullParser - Sonatype JIRA です。

yusukey 先生の 2. pgpでjarで署名する

手順通りに進めると、生成した鍵がmainとsubの署名用の鍵を持ってるみたいで、subの鍵を全部消す必要があった可能性があります。
色々いじくりながら試してたので本当にコレが原因でうまくいったかはあんまり自信がない…!
やり方は https://docs.sonatype.org/display/Repository/How+To+Generate+PGP+Signatures+With+Maven#HowToGeneratePGPSignaturesWithMaven-DeleteaSubKey とか見ながら。

gpg --keyserver hkp://pool.sks-keyservers.net --send-keys(ry ってやった後に、5秒かそこらのディレイがあった後に gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys(ry で該当の鍵1件有りみたいな返答がかえってくるようになったので、何回かしつこく確認してみるといいかも。

yusukey 先生の 5. oss.sonatype.org でリリースする

一応もうちょい詳しい手順を書いておきます。 左の Build Promotion の欄の Staging Repositories を開くと、自分の groupId のがあると思うので、選択肢してClose、もう一回選択してRelease って感じでおkでした。
初めてやる場合( すでにSyncしてもらってるgroupIdがない場合 )、自分のTicketにリリース完了したよ!ってコメントを入れる必要があります。そうするとcentralへのsyncをactivateしてくれます!!
その後は2時間周期でSyncしてもらえるようですね。

ちなみに、22:55くらいにその操作をしてもらって、02:15現在まだsyncされてないっぽいです。
定期的に The Central Repository Search Engine でチェックしてぐぬぬ顔してます…。

最後に

yusukey 先生ありがとうございました!!

第4回シャープハッカソンに参加してきました!!

SHARP様主催、ぶりり社が運営のシャープハッカソンに参加させていただいてきました!!
3月10日-11日に第4回SHARPハッカソン@東広島が開催されます - Android(アンドロイド)情報-ブリリアントサービス

しょーじき、行く前は "タダで広島行けるわー!関東から出るのどんだけぶりやろー!" っていう、息抜きベースの参加でした。終わってから振り返ると、行ってよかった…!!!っと真剣に思いましたね…!!

今回のハッカソンのテーマは "女子力" でした。なにをしろというのか。プログラマ20名、デザイナ5名、一般女子5名をテキトーに混ぜてハッカソンするらしいです。なにをしろというのか。

で、チームぎめ。僕のいたチームのメンバーはこんな感じ。gabuちゃんとチーム組みたいなーって誘いに行ったら近くに英吉にぃやんがいた。更に近くにいたかめこさんがこっち見てガッツポーズしてた気がするので捕獲。近くによってきた一般女子のつばきさんに話しかけていただいたのでこれでチーム確定でした!英吉にぃやんは「わかめと何回もあったことあるで!」言ってたけど顔覚えてませんでした。ごめんなさい。

一般女子 [twitter:@tryal] (つばき)
デザイナ [twitter:@kame0_0] (かめこ)
奴隷たち [twitter:@LuckOfWise] (えーきち) [twitter:@gabu] (がぶ) [twitter:@vvakame] (わかめ)

まずはアイデアソンからスタート。つばきさんが "やりたいアイディアがあるんです!!" ってライブ壁紙の独自性と優位性について熱心に語ってくださる。市場に類似の製品がないので独自性が高く、収益化の方法も策があります!!! とか言ってる。このあたりで "この人、俺が今まで会ったことがない人種なのでは?" と悟り始める。僕の周りで商売のセンスとか、マーケティングについてだとか、ちゃんとやってる人間って [twitter:@a_tsm] くらいしか見たことないもんね…。僕も他のメンバーもかなり納得した様子なので、他のアイディアも一応練り出してみたけど別に光ってなかったのでライブ壁紙をやることに。

作業分担的には3人の間で えーきちにーやん>サーバ、俺>ライブ壁紙周り、がぶちゃん>アプリ本体 という分担になる。最近Androidハッカソンっていうと僕はGAE用のコード書いてるっていうパターンがとても多い(得意な所をついやってしまう)ので、今回の分担は結構嬉しかったです。

1日目はなんか頑張ってたら終わった。

終わった後は懇親会ですよ!!! 第4回SHARPハッカソン@東広島ツイートまとめ - Togetter を見れば分かると思うんですが、スッゲー楽しかったですwww
会場は 佛蘭西屋(フランス屋)-元祖美酒鍋、賀茂鶴の日本酒を楽しめる東広島の飲食店 で、美酒鍋いただいてきました!!!
飲み始める前は "食べ終わったら我々は開発を継続する!!( ー`дー´)キリッ" とか言ってたんだけど
http://twitpic.com/8ucu2e
こんなん。もうダメでした。めっちゃお酒美味いし鍋美味いしお店の雰囲気すごいいいしメンツ楽しいしダメになるに決まってた。超酔いつぶれてホテル帰ったら即寝です。部屋入って1分で寝ました。僕の部屋が作業場所になる予定だったので、後で誰か部屋に来て起こしてくれると思ったんです。そしたら、部屋、オートロックでした。誰も入れませんでした。熟睡でした。すいません。

で、夜1時くらいに自動的に再起動かかっておフロ入ってその後ずっと起きてて頑張ってコード書いた。

2日目またシャープさんとこいってコード書いてました。なんか頑張ってたら終わった。2日目になると間に合う箇所と間に合わない箇所がわかってきてて、 [twitter:@tryal] さんに◯◯出来ますか?→無理そうです→じゃあやめましょう! とかポンポン納得して発表資料作成とかしていただいていました。仕事のお客さんと違って、あまりに物分りが良いので、この人はまさか、もしかして、ひょっとすると僕の想像上の人物なのでは?とか思ってました。

で、最終的にこんな雰囲気。

やばい女子力高い…!!!

最終決戦は投票だったんだけど、かなり票がバラけて 37票, 32票, 31票, 31票 という結果に。平均点高杉やろ…。普通もうちょっとボロボロな出来のチームがあるやろ!!手加減してよ!!みたいな。うちのチームは2位でした…!!!惜しくも1位は逃したけど、負けても納得出来るくらいハイレベルな成果物達でした。全体的にお前らおかしい。1日でこんなもん作るのは絶対おかしいと思います。

反省点

  • お酒が美味しかった (僕は少ししか悪くない)
  • 発表資料作成のための素材提供が遅かったのが悪かったかなー…。
  • 発表練習に少し時間を割けたらよかったなー…。デモを見せるところでかなり手間取って、会場のテンションが下がってったタイミングがあったのが…(´・ω・`)
  • 端末の画面をLiveで見せるための何かしらの装置とか多分必要だと思う。
  • ともくんごめん(迫真

今回はかなり勉強になったり心に響くものが多かったハッカソンでした。普通のハッカソンとは一味違うぜ…!!
また、A3が終わった後にでもチームのメンバーで集まって御飯とか食えるといいですね!!

Titanium向け JasmineのReporterを作ったん

Titanium用のテストフレームワークって案外ないもんすねー。drillbitsとかあるらしーけどまぁうまく動かせない。

JavaScriptなので、qunitとかJasmineとか使いたいところ。探すと以下のようなものが見つかります。
https://github.com/akahigeg/jasmine-titanium

ただこれはコマンドラインから叩いて使うものみたいです。
でもまぁbuild.pyとかうまいこと動かない感じがMAXで俺のストレスがマッハなんですが…!!

で、まぁ普通にアプリとして動いていただいたほうが安心感があるので、Reporter作って適当に画面上に出力するようにしてみた。
https://github.com/vvakame/JasmineTitaniumReporter

こんなんして
https://github.com/vvakame/JasmineTitaniumReporter/blob/master/original/test/titanium-spec-runner.coffee

ふつーにテスト書いて
https://github.com/vvakame/JasmineTitaniumReporter/blob/master/original/test/sample-spec.coffee

ブラウザ上で動かせるものはブラウザ上でも動かせる的な
https://github.com/vvakame/JasmineTitaniumReporter/blob/master/original/output/SpecRunner.html

シミュレータとか実機とかでもテストが走るよ!すごいよ!!超便利!!テストあると安心!はー。

SourceMapでminifyされたJavaScriptを元に戻してみた

当初の期待としては、CoffeeScriptコンパイルしたJavaScriptにSourceMapで元のCoffeeScriptヒモ付てそのままデバッグ出来るようになんないのかなー??て思ったんだけどなんか無理そうでした(結論)。

で、調査しはじめてみたんだけど全然情報なくてビビった。

CSS Selector Profiler, Source Mapping and Software Rendering « Peter Beverloo に情報がだいぶまとまってて超助かりました。
なんかWebKitの中の人なんじゃないのレベルで色々書かれててびっくりします。

Source Map Revision 3 Proposal - Google ドキュメント をざらーっと眺めてみたところで、JavaScript以外の言語にはなんか対応してなさそうだなーっていうのが分かってがっくり。字句解析した時に同じトークンになるような変換しか出来ないのかな?Base64 VLQとやらが全く理解できないのでよーわからんのやけど…。
CoffeeScriptとのマッピングはこのProposalでも言及されてて、Multi-level Mapping(多段マッピング?)とかって呼ばれるっぽい。

簡単に取りまとめると、圧縮されたjsのResponseHeaderに X-SourceMap: compiled.js.map みたいなのがあればいいみたい。
mapファイルの拡張子について規定はないっぽいですが、 compiled.js なら compiled.js.map がいんじゃね?みたく書いてあったのでそれに従うことにする。
試すには、Chrome 18 が必要らしいので、Chrome Canary Features For Developers - Google Chrome のCanaryBuild を利用する。


compiled.js 1つが参照されている状態。


開発コンソールの右下の設定アイコンから Script -> Enable source maps にチェックを入れます。


compiled.js が元の jquery と event.js と ui.js に展開されてデバッグとか出来るます!

でも、まだうまく動かなくてブレークポイントが1行ずれたりするんすよね…(´・ω・`)

サンプルプロジェクトはこちら
https://github.com/vvakame/SourceMapSample

WebServer.java か webserver.rb を実行すれば試せるはず。


参考資料

http://code.google.com/intl/ja/closure/compiler/docs/inspector.html
http://code.google.com/codesearch#l5BkQmivP-Y/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java

Play2.0 の sampleプロジェクトの helloworld を動かしてみる あるいはgithub最新の試し方

id:seratch2 さんの d:id:seratch2:20120118:1326888522 を試してみたら、思いの外簡単にPlay2.0開発環境が構築できてしまったよ!╮( ╹ω╹ )╭

だけど、Scalaやったことないし、Play2.0も当然しらないし、困ったのでsampleを読んでみて、ついでに動かしてみたくなったのでやってみた。
play-2.0-beta.zip でインストールして、パスも通ってる前提で書きます。
あとは、解凍したzipの中の samples/scala/helloworld で play run するだけで動くよ!☆(ゝω・)v簡単だね!!
ここに到達するのに6時間かかった。ガチだ…!!!

そもそもの過ち

Play2.0のソースって読めるの?
 ↓
githubにあるじゃん!( https://github.com/playframework/play20 )
 ↓
clone する
 ↓
samplesフォルダあるじゃん! play run する
 ↓

[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: play#sbt-plugin;2.0-RC1-SNAPSHOT: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::

。゚(゚´Д`゚)゚。

最新版でplay run 出来るようになるまで

というわけで、Play2.0の公式サイトにMLがどうの書いてあったのを思い出したので、そっちいって検索する。
https://groups.google.com/forum/#!searchin/play-framework/play#sbt-plugin;2.0-RC1-SNAPSHOT/play-framework/TaKRMllh29g/jyEw5Q8KVXwJ
http://groups.google.com/group/play-framework/browse_thread/thread/352787250485709c/27624c32f635efe7?q&pli=1
このあたりがひっかかる。…が、解決せず。

図星だよォ…!! play-2.0-beta の play コマンド使ってずっと作業してました。生きててすいません。

というわけで @mumoshu 先生にこってりサポートしていただきなんとかgithubの最新のhelloworldで play run 通りました。
ここに最短の手順をメモとして残しておくことで贖罪としたいと思います。お手数おかけしてすいません。

$ git clone https://github.com/playframework/Play20.git
$ cd Play20/framework
$ ./build publish-local
$ cd ../samples/scala/helloworld
$ ../../../play run

もちろんそれぞれのコマンドの意味はわかってないよ╮( ╹ω╹ )╭
./build build-repository と ./build publish-local はどーちがうんだ… mavenで説明してください…

今までmumoshu先生のことをScalaが好きな変美琴アイコンの人とか思っててホントすいませんでした…。

その他の覚えておきたい話

Play2.0+Scala勉強会開催されないかなぁ…

http://www.zusaar.com/idea/detail/198051 ☆(ゝω・)vキャピ

http://groups.google.com/group/play_ja?hl=ja の人たち、やさしデスネ!

知りたいこと

mavenとsbtの対応が全然わからないんだけど、mavenだと mvn eclipse:eclipse した時の.classpathの内容とか制御出来たと思うんだけど sbt-eclipse-plugin ではどーやるんだ…??

追記

Play! 2.0 RC1 SNAPSHOT の場合、 play eclipsify でイキナリ使えるEclipseのメタファイルが生成されたよ!
これもmumoshu先生に教えてもらいました!ありがとう先生!!