Eclipse FoundationがJakarta EEプロジェクトに関するサーベイを実施中

去る2017年9月、Oracleはこれまで同社が主導していたJava EEの仕様策定および開発をEclipse Foundationに移行することを発表しました。
それに伴ってEclipse Foundationが新名称を決める投票を実施し、その結果をもって、今後は「Jakarta EE」の名称で開発が行われることが正式に決定しています。
https://mmilinkov.wordpress.com/2018/02/26/and-the-name-is/

現在Eclipse Foundationでは、今後プロジェクトを進めるにあたっての開発者向けのサーベイを実施中です。
Jakarta EE Developer Survey 2018

ごく簡単なアンケートです。期限は2018年3月30日11時59分(太平洋夏時間、日本時間では4月1日3時59分)まで。今後注力していくターゲットを考える上での重要な手掛かりになると思われるので、積極的に参加することをおすすめします。

自転車用スマートロック「LINKA」でセキュリティ向上なるか

実は年明け早々に愛車のMTBを盗まれてしまい、新しいMTBを買う羽目になりました。
もう盗まれるのはイヤじゃ、ということで2重ロックを徹底するべく、自転車用のスマートロック「LINKA Lock」というやつを導入しました。

f:id:zinbe:20180124120850j:plain

LINKA Smart Bike Lock - Lock Smarter, Not Harder – LINKA Smart Locks
簡単に言うと、ペアリングしたスマホBluetooth接続が確立しているときだけ、ボタン一個でロック・アンロックできるという代物です。

その他に、以下のような機能もついています。

  • スマホアプリからアンロックできる
  • 1m以内に近いたときに自動アンロックされるモードがある
  • スマホが無いときはパスコードでもアンロックできる
    • でもパスコードの入力はちょっと面倒
  • 振動を検知してブザーを鳴らせる
  • 自転車を停めた場所(最後にロックが作動した場所)をスマホに表示できる
  • スマホに未接続の状態で一定時間経つと、バッテリー節約のためにスリープモードになる
    • 時間は設定で変更できる

YouTubeの解説動画を見ると、なんとなく様子が分かる。
www.youtube.com

ロックの途中でスポークに当たったりすると、安全装置が働いてロックが中止され、スマホに通知が来ます。
また、近づいたときに自動アンロックする機能があるものの、離れたときの自動ロックしてくれるような機能は無い模様。

もともとKickstarterで資金募集してたもので、今は市販されてるものの、169ドルとちょっと高い(ただし、日本にも無料で届けてくれるみたい)。私はメルカリで中古のものを買いました。

実物はこんな感じ。結構ゴツくて重いです。
f:id:zinbe:20180124120945j:plain

私のMTBにはダボ穴が付いておらず、ブレーキ用ブラケットも無いので、タイラップで無理やり固定しました(一応、公式にもタイラップでOKと説明されています)。
こんな感じで、ちょっと不恰好。
f:id:zinbe:20180201090022j:plain

上の動画の最後にあるようにタイラップを裏側に回した方が見た目が綺麗なんですが、私のはシートステーの幅が広めなためうまくフィットせず、写真のようになりました。
内側の横幅は2.1インチのブロックタイヤでもほんの少し若干余裕がある程度。縦幅は、フェンダーが無ければ余裕でした。

取り付けて1週間ほど経ちましたが、今のところ快適に使えています。
特に、コンビニに寄ったときなどにいちいち鍵を取り出す必要が無いのがいい感じです。
バッテリーは1週間で6%減。この分なら2〜3ヶ月に1回充電すれば足りそうです。充電はmicroUSBでできるので、モバイルバッテリーを繋げば良さそう。
f:id:zinbe:20180201134404p:plain

なお、長時間停めるときには、これとは別にワイヤー錠も併用して2重ロックにしています。

現状の不満点を挙げるとすると、次のような感じです。

  • ロック・アンロックが遅い
    • 開始から完了まで3秒くらいかかる。途中で揺らしたりすると安全センサーが働いちゃうので、動かさずに待つ必要がある。
  • ボタンが固い
    • 指が痛いくらい思いっきり押さないと反応しない
  • スリープからの復帰したときに、Bluetooth接続の反応が悪いことがある
    • スマホのアプリを立ち上げ直すと接続されるので、たぶんスマホ側の問題。仕組み上仕方ないのか

私が買ったのは「ORIGINAL LINKA」の方ですが、春にはGPSラッキング機能も付いた新製品が出るみたいです。
GPS付いてても、通信はどうするんだろうってちょっと疑問ではありますが。

ちなみに、同様のスマートロックで「I LOCK IT」という製品もあります。
Bike Lock - I LOCK IT - The Smart Bike Lock
実は最初はこっちの方が気になっていたんですが、公式サイトからは日本には発送していないということで断念しました。
自動ロック機能があったり、オプションでKye fobスマホいらずの電子キー)があったりして、こっちの方がちょっと高機能な気がします。

「#12 Creators Learning English Meetup」 #clem_jp

先月に引き続き、「#12 Creators Learning English Meetup」に参加してきました。

clem.connpass.com

Creators Learning English Meetup 略して「CLEM」は、英語を勉強中のエンジニアやデザイナーを対象としたMeetupで、ほぼ毎月開催されています。
英語の勉強法やTipsを発表し合ったり、英語で挨拶や会話をするなど、とにかく英語に触れる機会を増やそうという会で、Meetup以外に朝活などもやっているそうです。

今回は開催1周年記念ということで、2017年のCLEMで登場した英語学習Tipsのおさらい、LT大会、として
簡易版"他人に目標を立ててもらう会"(タニモク会)の3本立てでした。

まず https://twitter.com/kayoko_coco:@kayoko_coco さんより2017年の英語Tipsまとめ。去年のCLEMでは、次のようなTipsが挙げられたそうです。

  • 英語の学習はスポーツと同じ
  • 諦めから始めることで挑戦のハードルを下げる
  • 英語で自分が何をしたいのか具体的にイメージしよう
  • 根拠のない自信を持とう!
  • まずは3000語程度の語彙力をつけよう。日常会話は3000語くらいで理解できる!
  • あらゆる隙を見つけて、英語でできることが英語でやる!
  • 独り言を英語で
  • 発音はカタカナで覚えてはダメ。耳コピ、発音記号で
  • オンライン英会話ではお気に入りの先生をまず見つける
  • 英語は英語で勉強しよう!

また、英語学習にオススメの参考書として次のようなものが紹介されました。

補足で、htj_fusionさんからおすすめアプリとしてHelloTalkの名前が挙がりました。

続いて新年LT大会。
まずレアジョブの山田さんから、「オンライン英会話のコツ」。これは、リアルタイムで講師につないでオンライン英会話を実演するという珍しいスタイルの発表で、どんな感じでレッスンが行われるのかがよくわかる、非常に素晴らしい発表でした。


こんな感じ。さすがレアジョブさん。

続いて@d_dateさんより、去年1年間の英語活動報告。海外カンファレンスに参加したり、OSSにコントリビュートしたり、try! Swift Conference の運営に携わったりと、積極的に実践的な活動をされていて、刺激になりました。やはりエンジニアたるもの、単に勉強するというだけに止まらず、こうありたいものだと思わされました。

3番目は私(@zinbe)より、仕事でポルトガルなどの海外に行くことになった経緯と、そのためにやった英語の勉強方法、実際に行ってみてどうだったのかなどを話させていただきました。

www.slideshare.net

できるだけ英語で頑張ろうと思ったのですが、無理でした(というかスライド作りも途中で諦めてる)。でもこのレベルでも海外で仕事できちゃうんだ、という勇気付けにはなったのではないかと思います。
そう、このレベルでも意外と何とかなっちゃうんです。だから恐るるに足らず!
今年は、"何とかなっちゃう"のレベルを脱却できるように頑張ります。

後半はワークショップの時間で、他人に目標を立ててもらう会 (通称タニモク会)の英語特化簡易版。自分が現在置かれている状況をパートナーに説明した上で、今年の目標を立ててもらう、というものです。
私の状況はLTでほぼ話した通りだったのですが、それにねぶたが趣味だということも加えて、次のような感じの目標をいただきました。

  • 一通りのストーリーを持った英語でのプレゼンを、しっかり準備をした上でやってみる
  • 英語で行われる、IT関連のオンライントレーニングコース(Courseraにみたいな)を履修する
  • 外国人旅行者向けの観光案内ボランティアなどに参加する

日常で英語を使う機会を増やさなといけないというのは常に感じていて、観光案内はちょっと気になっていたところでした。TELPみたいなサービスも出てきたしね。ねぶたのことなら案内できる自信があるんだけど。

そんな感じで、このところ下がりかけていたモチベーションがちょっと持ち直しました。頑張ろう。

#11 Creators Learning English Meetup に参加してきた話 #clem_jp

12月4日に開催された「#11 Creators Learning English Meetup」に参加してきました。
clem.connpass.com

Creators Learning English Meetup 略して「CLEM」は、英語を勉強中のエンジニアやデザイナーを対象としたMeetupで、ほぼ毎月開催されています。英語の勉強法やTipsを発表し合ったり、
英語で挨拶や会話をするなど、とにかく英語に触れる機会を増やそうという会で、Meetup以外に朝活などもやっているそうです。

今回は2つのワークショップとLT大会の、大きく分けて2部構成でした。
ワークショップで得られたポイントは以下のような感じ。

  • 相手の目をちゃんと見て話をする
  • 初対面の挨拶は、握手→簡単な自己紹介→質問や世間話など
    • Closed Qustion(Yes/Noで答えられる質問)よりも、Open Qustion(5W1Hを使うような質問)をした方が会話が続くのでおすすめ
  • 名刺交換は会話のあとに。相手の名刺の名前を読む。両手を添える必要はなし!

ちゃんと相手の目を見るということのトレーニングとして、相手の顔を見たままで(紙を見ずに)、相手の顔半分を描くというワークショップをやりました。
Open Qestionはいつも実践しようと頑張っているつもりですが、いざやろうとするとなかなか難しいよね。

LT大会は、偶然にも海外カンファレンス参加特集になりました。海外のカンファレンスに参加するにあたって、どうやって英語を勉強したか、というような話。ここでの知見をまとめると、

  • いろんな英語の勉強法
    • オンライン英会話
      • 習慣化することが大事(毎日の時間を決める、先生を固定する、など)
      • テンションが高い先生を選ぶとやりやすい
    • 英語オンリー飲み会
    • ネイティブスピーカーが一緒に参加しているとすごくいい
    • 日本語を使ったら罰ゲーム
    • YouTubePodcastで技術関連の英語コンテンツを視聴する
    • 単語集はDUOが最強
    • 単語帳アプリはAnkiがおすすめ
  • ちょっとした手土産を持っていくと、会話のきっかけになるのでおすすめ
  • 海外カンファレンスはパーティー。英語が不安とか言わず、どんどん行ってみた方がいい

こんな感じでしょうか。

私自身、英語はできないながら、海外カンファレンスへの参加回数だけはそこそこあるので、今回の話はあるあるネタが多くて楽しかったです。一方で、英語の勉強法については自分のやり方との違いなど、勉強になる部分がありました。とりあえずDUOやろうかな。

次回は1周年記念ということで、今年1年に出てきたTipsの総ざらいのようなことを計画しているそうです。

CreateJS勉強会 (第9回)に参加してきた話 #CreateJS #CCDojo

先日アドビ本社で行われた「CreateJS勉強会 (第9回)」に参加してきました。
CreateJS勉強会 (第9回) : ATND

CreateJSはHTML5 Canvasを使ってインタラクティブなコンテンツを作成できるフレームワークで、歴史的には2012年から開発がスタートしていますが、正式版となったのは2017年9月でつい最近のことです。このリリースに関連して開催された今回の勉強会は、

  • CreateJSの概要 + Animate CC 2018の新機能(ICS 池田さん @clockmaker
  • CreateJS 1.0.0で何が変わったか(野中さん @FumioNonaka
  • 我々はCreateJSをどう使うべきか?(世路庵 沖さん @448jp

という豪華セッション3本立て。CreateJSを仕事で使う機会は全く皆無な私ですが、ついつい興味をそそられてしまったわけです。

この勉強会はAdobe Creative Cloud道場との共同開催にもなっていて、当日リアルタイム中継されたほか、現在も録画ビデオが見られます。なので、見逃した方はビデオを見ましょう。
https://blogs.adobe.com/creativestation/ccdojo-192-createjs

CreateJSの概要 + Animate CC 2018の新機能

まず池田さんのセッション。CreateJSとはどんなもので、どういう現場で使えるのかといった概要の紹介。

  • CreateJSの得意分野は、自由度の高いインタラクティブな表現。反面、ユーザインタフェースの作成などにはあまり向かない。
  • 類似技術としては、以下のようなものがある。
    • three.js - 3D表現
    • PixiJS - WebGLベースの2D表現
    • Snap.svg - SVGでのインタラクション
  • 一方で、CreateJSは2D表現のための技術で、Context2Dをベースとしている。
  • グランブルーファンタジーニコニコ動画など、大手サービスでも広く採用されている。
  • なぜCreateJSか?→Flashプラットフォームとの親和性が高い。Animate CC(元Flash Professional)は公式にサポートしている。

続いて2017年10月にリリースされたAnimate CC 2018の新機能。

  • カメラの深度機能が追加された。レイヤーごとにZ深度を設定して、3Dのような奥行きが簡単に表現できるようになった。
  • Robert Penner式のイージング設定ができるようになった。
  • タイムラインに秒数が出せるようになった。
  • 既存アニメーションの絶対時間を保ったままフレームレートを変えられるようになった。
  • など。

CreateJSと他のフレームワークをどう使い分けたらいいのかがはっきり説明されていてわかりやすかったです。特にCreateJSの場合、Animate CCを使えばコードを書けなくてもタイムラインベースでアニメーションの作成ができるので、これは他のフレームワークにはない強みと言えそうです。
Animate CC自体も、Flashコンテンツの作成ツールという枠組みはとうの昔に捨て去っていて、HTML5を含むマルチプラットフォームなアニメーション作成ツールとして地道に進化を続けています。この辺りはもっと高く評価されてもいいと思っています。

CreateJS 1.0.0で何が変わったか

次に、野中さんによるCreateJS 1.0.0での変更点の解説。発表資料は下記に公開されているので、そちらを参照してください。コード例がたくさん出ています。
CreateJS 1.0.0で何が変わったか | CreateJS Workshop vol.09
ざっくり概要を挙げると、

  • StageGLクラスでWebGLが使えるようになった。
  • 基本的には、StageクラスをStageGLクラスに置き換えるだけでWebGLにできる
  • ただし、若干の注意が必要。たとえば、WebGLはラスターグラフィックス前提なので、ベクター形式であるShapeはそのままでは描画できず、キャッシュする必要がある、など。
  • CodePenにCreateJSアカウントが設けられて、CreateJSの作例が掲載されている。
  • TweenJS 1.0.0で、プラグインモデルが大幅に改められた。
  • PreloadJSライブラリでフォントローダー機能が追加された。フォントファイルやCSS定義およびCSSパスを読み込んでフォントを設定できる。Webフォントを使いたい場合などに便利。

CreateJS 1.0.0では、やはりWebGLが使えるようになったことが最もインパクトが大きいでしょうか。これによって、パーティクルのような複雑な表現を高速に処理できるようになりました。3万個のパーティクルをスムーズに描画するデモは、(残像効果を使って多少視覚的な水増しをしているとはいえ)、なかなか衝撃的でした。

我々はCreateJSをどう使うべきか?

休憩を挟んで、最後は沖さんによるセッション。発表資料は下記に公開されています。
我々はCreateJSをどう使うべきか? // Speaker Deck

  • アニメーションの持つ力とは何か?
  • アニメーションとそうでないものを分けるものは、"時間軸"。
    • 関連して、アニメーションの原点とされるフェナキストスコープを紹介。
    • フェナキストスコープとは、ゾートロープに先駆けて登場したもので、ゾートロープと同じように回転盤と覗き穴を使って絵をアニメーションさせるというもの。
    • フェナキストスコープ - Wikipedia
  • アニメーションを使えば、そこには本来ないはずのものを作り出すことができる((静止画なのに動いている、とか)
  • Webにおけるアニメーションの目的とは何か?→フィードバック、世界観の演出、ストーリーの伝達など。
  • アニメーションでしか使えられない情報がある
    • 雨量計の内部構造の解説の例。文章や静止画での説明だと要領を得ないが、アニメーションなら一発でイメージが掴める。
  • Webではさまざまなアニメーション技術が使える。DOM、CSS3、Canvas、GIF、videoなど。
  • 現在の主流は、コード思考のアニメーション。JavaScriptでアニメーションのコードを書く。
  • CreateJSは、コード思考で使うこともできるが、Animate CCを使ってタイムライン思考でアニメーションを作ることもできる。これが最大の強み。
  • コード思考も大事だが、タイムライン思考のアニメーションにつか伝えられないこともある

このセッション、タイトルはCreateJSとなっていますが、実際の内容はWebアニメーション全般に関わる興味深いセッションでした。
コード思考とタイムライン思考、どちらにも得手不得手があります。どんなどちらか一方ではなく、シーンによって適したものを選択できて、両側からアプローチできるということが大切ですね。

f:id:zinbe:20171208141247p:plain

JJUG CCC 2017 Fallに参加してきた話 #jjug_ccc

今さらですが、先週開催されたJJUG CCC 2017 Fallに参加してきました。
JJUG CCC 2017 Fall

今回もボランティアスタッフとして参加させていただきました。ボランティアスタッフって何ぞやという話は、前回のレポートに書いたのでそちらを参考に。
JJUG CCCボランティアスタッフのススメ - 我らねぶた馬鹿

スタッフではありますが、手が空いている時間は自由にセッションに参加できます。今回は以下の4つのセッションに参加しました。

年齢も経験も関係ない!ステップアップするためのJavaコミュニティ活用術

よこなさん(@ihcomega)によるセッション。
年齢も経験も関係ない!ステップアップするためのJavaコミュニティ活用術 // Speaker Deck

コミュニティが提供してくれる価値のひとつとして「知る」ということがありますが、この「知る」には技術的な知識以外にもいろいろなものがあって、そのどれもがステップアップのために大切ですよ、という話でした。

個人的に特に刺さった言葉は、「聞く・見るだけが知るということではない。アクションが大事」と「"いつか登壇してみたい"はオススメしない。思い立った瞬間にやるのが大事」の2つ。そう言うよこなさん自身が、本当にJavaOneで登壇したりしてるからすごい。
いろいろ思い出させてもらえるセッションでした。

OpenJDK参加入門

OracleのDavid Buckさん(@DavidBuckJP)によるOpenJDKプロジェクトへの参加方法を解説するセッション。
OpenJDK 参加入門 [JJUG CCC 2017 Fall E2]

JavaOneでも同内容のセッションを聞いているのですが、日本語で聞いておきたかったので再び参加。前半はOpenJDKとはなんぞやという話で、後半は実際にプロジェクトのリポジトリを見たり、どうやってビルドするか、そしてコントリビュートしたい場合にはどうしたらいいかといった内容の解説でした。

来年以降のJDKは3ヶ月毎という短いサイクルでリリースされることになるので、常に次のバージョンを意識しながら、先行して新機能を試すということがこれまで以上に重要になります。そういう意味でも、OpenJDKプロジェクトをよく知っておくことは大切。その上で、自分にできる範囲で何か貢献できればベストかなと思います。

アンカンファレンス #1

今回は初の試みとしてアンカンファレンス部屋が用意されました。アンカンファレンスというのは、特に事前にテーマを決めず、当日に参加者からの提案されたテーマについてみんなで話し合うというスタイルのイベントです。

私が参加した回のテーマは

  1. 子供のプログラミング教育について
  2. スキルの伸ばし方について

の二本立て。話の流れで、この2つの間に、社内研修などの大人への教育の話も挟まりました。

子供の教育については、機会を与えることと、もし興味を持ったらサポートしてあげることが大事、という感じの話になりました。あと私の考えとして、昨今騒がれてる教育課程の話に対しては、親と、教育現場の人と、エンジニアなど、いろんな専門家が一緒になって取り組まないといけないんじゃないか、という話をしました。

スキルの伸ばし方については、どうやってモチベーションを保つかという話が主だったような気がします。それが人によっては勉強会だったりもするし、他人からのの評価だったり、資格の取得だったりもする。
いずれにせよ、継続して勉強しようという気持ちを養うことが大事。でもそれって子供の教育にも言えることだよね。というような感じで、綺麗にまとまりました。

アンカンファレンスは、これ以外にスタッフ仕事の合間にもちょくちょく覗かせてもらっていたのですが、どのテーマの回も結構盛り上がっていて、非常にいい試みだったんじゃないかと思いました。

Java SE 9の紹介: モジュール・システムを中心に

宮川さん(@miyakawa_taku)によるJava 9の新機能の紹介。
https://www.slideshare.net/miyakawataku/introduction-of-java-se-9-and-the-module-system

タイトル通り、モジュール・システムの話が中心で、それ以外は最後の方に少しずつ紹介された感じでした。Java 9のモジュールはかなり大規模な変更で、分かりにくい部分も多いのですが、それを順序立てて非常に分かりやすく説明してもらった感じです。さすがです。

その他の感想

以下はセッション以外のことについてです。

混雑緩和

前回のJJUG CCCで参加者数が1000人を超え、通路が混雑して部屋移動の際に混乱が生じると言う事態が起こりました。今回はその反省から、通路を原則として一方通行にして誘導するという対策が取られました。
初の試みだったので午前中のうちは混乱した人もいたようですが、午後からは全体に浸透してきたようで、みんなスムーズに移動できるようになりました。スタッフとして誘導を手伝っていたのですが、みmんなマナー良く順路を守ってくれたので実に助かりました。

ボランティアスタッフについて

前回、4回目でボランティアスタッフの動きがだいぶスムーズになってきたという話を書いたのですが、今回はさらに良くなっていたと思います。初めて参加する人も含めて、みんな自主的に誘導や椅子の移動をこなしていたし、ボランティア同士でもSlackなどで指示を出し合ってうまく連携していました。
あと印象的だったのは、JJUG CCCへの参加自体が初めてというスタッフも結構いたということです。これは非常にいい傾向だと思います。

その他にも、いろんな人に会えて、いろんな話ができたので楽しかったです。よこなさんの話ではないですが、JJUG CCCは技術的な部分以外にも得るものが大きいイベントだと、改めて思いました。

写真家の小原信好さんのブログに青森ねぶた祭のサマーキャンプ場の写真が掲載されている

ツーリングマップルの北海道担当としても知られている、ホッカイダーこと写真家の小原信好さんのブログに、青森ねぶた祭のサマーキャンプ場の写真が掲載されています。

北東北エリアマガジン『rakra(ラ・クラ)』のVol.85に、青森ねぶた祭のサマーキャンプ場が取り上げられているそうで(まだ買ってない)。ブログに出ているのはそこに掲載しきれなかった写真だそうです。小原さんはライダーの間では当然よく知られた方ですが、今年の夏に取材に来ていて、実際にキャンプ場に滞在してました。

2017年青森ねぶた「跳人ライダー&チャリダー」写真|Hokkaider(ホッカイダー) 北海道を愛する旅人達へ…

ほぼ知り合いだらけですが、私も載っていました。
2017年青森ねぶた「跳人ライダー&…の画像 | Hokkaider(ホッカイダー) 北海道を愛する旅人達へ……

なんか戦いに赴く集団みたいな雰囲気になってます。なかなかいい感じの写真。