ずっと君のターン

2014-08-27 急に涼しくなってきた

LL Diverでいい忘れたこと

| 21:33 |  LL Diverでいい忘れたことを含むブックマーク

LL Diverのmozaic.fm出張版でDartについてこれは言っときたいなーと思ってたことをいい忘れてたことにたった今気がついたので忘れないうちにブログに書いておきます。

ホントはあの場で言っておきたかったこと、それは

「DartはDX(Developer Experience)を重視している」

ということです。

これはI/Oのとあるセッションでの発言ですが、要するに「Dartは単なる一プログラミング言語ではなく、開発体験全体を改善することを目的としている」と理解しました。プログラミング言語自体はその目的を果たすためのパーツの一つに過ぎません。クライアント・サーバーで同じ言語が使えることや、コード補完の効くIDEが存在すること、パッケージマネージャや専用リポジトリが初めから存在すること、すべてこれまで開発体験を損ねていた問題に対応しようとしているものです。JSにクラスや型がないのが不満だから作りましたとか、ブラウザ上でhoge言語を使いたいので作りました、とかいう凡百のaltJSとは初めからその志の高さが違います。

セッションでは「TypeScriptは現実、Dartは夢」と言いました。しかしもういっそのことこう言ってもいいかもしれません。「(Dart以外の)実用に足るaltJSは現実、Dartは夢」。

なぜか頭のなかで「I Dreamed a Dream」が鳴り響いてるけど、成就するといいなぁ。

2014-08-21

土曜日にLL DiverでDartについて話します

| 01:15 |  土曜日にLL DiverでDartについて話しますを含むブックマーク

登壇するセッションのタイトルは「mozaic.fm出張版: TypeScript and Dart」ですが、分かりやすく言えば私とわかめさんJxck先生「これから皆さんに殺し合いをしてもらいます」って言われるというセッションです。もしかしたら私は早々に殺られて死んだ目で「ヘーソウナンダー」ってつぶやくだけの1時間になるかもしれません。コワイヨー。

まだチケットはあるようなので、そんな残酷絵巻に興味あればみなさんでお誘い合わせの上ぜひお台場までお越しください。

2014-07-29 蒸し暑くて寝苦しい夜が続いています

HTML5 Japan Cupで優秀賞を頂きました

| 02:03 |  HTML5 Japan Cupで優秀賞を頂きましたを含むブックマーク

f:id:technohippy:20140730021106p:image

どうせなら賞状は吉川さんじゃなくて池澤さんから受け取りたかったです・・・。

受賞作は先日のエントリでも書いたEnraged Fowls、要するにAngry Birds 3D。作り始めたの5月半くらいで時間ないし、基本的なところができたらあとは細かいところを詰めるよりもタイトル画面とかクリア画面とかの必須要素をひと通り作って全体的な完成度を上げておこうという方針で進めましたが、講評を見る限り正解だった模様。

http://blog.5jcup.org/2014/07/html5-japan-cup-2014_27.html

3Dの表現力とアプリケーションとしての完成度が極めて高い作品である。正直、若干こなれていない操作性や現在用意されているシナリオの単純さなどから、ゲームとしてはこの作品で遊び続けたいと思わせる域にまで達していないが、スマートフォンと連動させるアイデアなど将来性を感じさせるものがある。ソースをオープンソースとして公開するだけでなく、アプリケーション開発中に必要になり作成したライブラリも公開するなど、技術面で多くの人に大変参考になる作品であり、その点からも大いに評価したい。

ちなみにこの講評はGoogleの及川さんに頂きました。光栄です。

HTML5 Japan Cupはまず事前に最優秀賞候補として4作品が選ばれ、HTML5 Japan Cup 2014 The Finalでそれぞれ5分のプレゼンをして会場内の投票で最優秀賞を決め、残りが優秀賞になるという方式でした。と言っても私の応募作は細かいつめが足りないのは分かってるし、最優秀を取ることはそれほど期待せず、大画面でゲームをプレイするのとやりたいことを宣伝するのを目標でした。そのプレゼンが以下。

https://docs.google.com/presentation/d/10l6TNr4xW5t4dGRdcFriayiIeLDmeWgwaYUt9MDPIng/present#slide=id.p

f:id:technohippy:20140730014133p:image

残念ながら何故か壇上でウェブカムが動かなくて大画面でゲームするという野望は果たせず。後で席に戻ってブラウザ再起動したら動いただけにほんと無念。やっぱ5分でデモ込みでプレゼンするというのは短すぎてトラブルが起きたら全く対応できなくてキツい・・・。まぁこんなこともあろうかとスライドに動画を埋め込んでおいたのは不幸中の幸いでしたが。

これ、大画面でやったらおもしろいと思ったんだけどなぁ。

D

結局最優秀はfokaさんのコトバツナギ。これかJS Racingが最優秀だろうと思ってたので納得感あります。どちらも完成度むっちゃ高かったし。この作者さんたちとは懇親会で話をしてみたいと思ってたんだけど娘が来てて動きづらかったのと、あんまり顔を覚えられない質なので結局見つけられませんでした。ちょっと残念。

そういえばtwitterでチラチラ5jcupの賞状の画像を見ますが、優秀賞・最優秀賞については当日まで誰が賞をとるか決まらない関係でその場ではなにももらえませんでした。郵送されるらしいので、もらったらこの辺に画像貼ります。

[Reserved]

最後に短い期間に数多くのハッカソンなどのイベントを開催し、300近くもの作品を審査したスタッフの皆さんに。お陰さまで開発から応募、結果発表、最終プレゼンと2ヶ月近くもの間とても楽しく充実した時間を過ごすことができました。ありがとうございました。来年も再来年も、末永く開催されることを期待しています。

f:id:technohippy:20140726141034j:image

あとおまけ。会場で眠るうちの娘さん。うちに帰ってから「とーやん、がんばったがんばった」って何度も言われたので、たぶん人生的な意味合いで総合的に見て今回のコンテストの優勝者は私といっていいんじゃないでしょうか。

2014-07-01 晴れてるけど大雨の可能性もあるとか

AngryBirdsの3D版を作りました

| 14:17 |  AngryBirdsの3D版を作りましたを含むブックマーク

3D物理エンジンを使って作りたいものがあったので練習がてらにとAngryBirdsの3D版的なものを作ってたら「そんなら5jCupに出しましょうよ」と言われて、じゃあ出すかと思ってそれなりに真面目に作りこんでみました。

D

結果それなりにいい感じになった気がします。ポイントはスマホを使ったお手製コントローラー。百均で買い集めたもので頑張った。と言っても、もちろんPCだけでも遊べるので、よろしければお試しください。

http://technohippy.github.io/enragedfowls/

ソースコードも公開してます。

https://github.com/technohippy/threejs-toys/tree/master/angry-birds

WebGLはもちろんthree.js経由で、物理エンジンとしてはcannon.jsを利用。JS版物理エンジンはいくつかあるけどcannon.jsが一番軽量っぽかったので、ソースコード読みながら作れば勉強になるかなということで選択。ただ、実際に使ってみるとジッタ起こしたり貫通したり爆発したりといろいろ不安定で、ammo.jsとかの重た目のを使ったほうがよかったかなと思ったり思わなかったり。

コンテストの作品ページはこちら。

https://5jcup.org/works/53a25c7120a279d145003005

5jCupのサイトには私の応募作品以外にも(たぶん)200件以上応募されてて、興味深いものもたくさんあるので時間のある時に見てみるといいんじゃないでしょうか。

https://5jcup.org/works/all

ちなみに技術的に難しいことやってるとかそういうの抜きにすると応募作の中で一番面白いのは多分これ。なんとMatt Cuttsにも刺さってるという...。いやホントよくできてる。

http://shimage.net/one-tap-quest/

f:id:technohippy:20140701210312p:image:medium

キャプチャは私のハイスコア。まぁそれはそれとして、せっかく応募したので自分のもなんか賞が取れるといいなぁ。

2014-06-08 澪と雨を待つ女 愛と裏切りのLT!

天下一altJS武闘会でAmberについて話しました

| 01:39 |  天下一altJS武闘会でAmberについて話しましたを含むブックマーク

f:id:technohippy:20140608135045j:image

パートナーの調子が悪くて2歳児の面倒を見ないといけなくなったんだけど、せっかく資料(というかツール)作ったしなーということで無理やり連れて行きました。特にスタッフのかたや席が近かったみなさんにはご迷惑をお掛けしたかと思います。どうもすいませんでした&ありがとうございました。

イベントの内容については期待通りの多彩さで、真面目に言語を紹介しているものから、ネタに走っているもの、ちょっと何言ってるか分からないものまで、いずれも非常に楽しめました。とりあえずClosure Compilerがただのminifyツールじゃないと分かったのが個人的には一番の収穫です。

私のLTはAmberという要するにブラウザ上で動くSmalltalkについてで、資料はGithubにあります。

https://github.com/technohippy/amber-slide

勉強を兼ねて発表資料自体をAmberで作ったので資料を読むにはAmberのインストールが必要になります。がんばってください。なお、使い方はこんな感じになります。見どころはスライドから直接Smalltalkの式をDoIt、BrowseItできるところですね。

  • Enter: 次のページヘ
  • n: 次のページヘ
  • p: 前のページヘ
  • Ctrl+d: 選択部分をSmalltalkとして評価して結果をダイアログに表示
  • Ctrl+b: 選択部分をクラス名と見なしてクラスブラウザで表示
  • Ctrl+Space: Helios(IDE)を表示

f:id:technohippy:20140609020256p:image:medium:left

f:id:technohippy:20140609020259p:image:medium:left

f:id:technohippy:20140609020254p:image:medium:left


Amberはとてもおもしろいのでみんな黙ってインストールすればいいと思いますが、どうしても入れたくないという人はこの辺を見ればなんとなく内容が分かるかもしれません。

Amber歴1週間くらいでしかも前半3日くらいはamber initの不具合だかなんだかよくわからないことに悩まされてるだけだったのに、最終的に動くものができたわけで、やっぱりSmalltalkの生産性はなかなかのものだなと再確認しました。JSとの連携も簡単なので、よく分からないところはJSを使えば済みますし、Amberなかなかいいですよ。