怒Mは思いつきでモノを言う

やったことメモなどなど

JJUG CCC 2017 Fall に初めて参加してみた。

JJUG CCCに初じめて参加してきました。 ボランティアスタッフとして。

ボランティアスタッフってどんなのことやっているのか?を 次回以降に参加される方のために少しでも参考になればと思います。

スタッフとしての担当時間外であれば聞くことも可能だったのですが、 スタッフ仕事に一生懸命すぎて4つ聞くはずが2つだけだったので、聞いたセッションについての感想は控えめです。

↓に発表資料や参加された方のブログなどがまとめられていますので、ぜひ!

GitHub - jjug-ccc/slides-articles-2017fall: JJUG CCC 2017 Fallの発表資料およびブログ記事まとめ

参加経緯

8月のJJUGナイトセミナーに参加した時に知り合いと遭遇しまして、

そこでJJUG CCCの話しを聞いて1度ボランティア参加したということを聞き、

「それだ!!!」

ということで、調べてみたらあった。なので、即申し込み。

すでにいっぱいだったのでキャンセル待ちでしたが、 繰り上がりとなりました。

jjug.doorkeeper.jp

www.java-users.jp

参加まで

何にせよ、まずは聞きたいセッションのチェックを忘れずに!

ボランティア参加にあたり1度ミーティングを行います。 担当時間割や担当部屋は希望を聞いて話し合いで決められます。

前回のJJUG CCC 2017 Springでは、 来場者が多く会場が混乱気味になったとのことで、 動線(順路)を決めてそれに沿って、参加者の方々には動いてもらうという方針になったそうです。

私の担当は午前の遊撃。決まった仕事がなく臨機応変に動く感じになるということで、 会場の配置や、今回から取り入れられた動線を覚えて当日をむかえました。

スタッフの役割

部屋付き

各セッションの部屋に幹事とペアになって作業を行います。 基本的には幹事の指示に従って動くことになります。

  • タイムキーパー
  • 椅子が足りなくなった場合の椅子入れ
  • 入退出時の誘導
遊撃

基本的には指示は受付にいる幹事の方から受けます。

  • 椅子が足りなくなった場合の椅子入れ
  • 退出時の順路誘導
  • その他、必要そうなこと全般

JJUG CCC 2017 Fall 当日

f:id:do_m_gatoru:20171121013310j:plain

天気はあいにくの雨模様。気温も低く寒い日でした。

開場前にスタッフが集まり打ち合わせを行い、いざスタート!

連絡のやり取りや質問事項は、直接聞くかSlackに投げ込みます。

天気の影響か午前中は結構人の入りも落ち着いている印象でした。 午前一緒の遊撃ペアの方とゴミ捨て場の看板を段ボールの切れ端で作ったり、 動線をより確実に守ってもらえるように、出入り口の張り紙や、入口出口以外の部屋の鍵を掛けたり、 試行錯誤しながら作業を進めていいきます。

セッション中はやや暇なので、ちょっとセッションを覗いたりできます。

休憩時間中が忙しい時間帯となります。 主に退出者の順路への誘導と、椅子が足りない部屋への椅子運び込みなどです。

会場に関する質問をされることがありますが、 答えられないような内容は幹事の方々に聞くと教えてくれたり、 問い合わせたりしてくれます。

f:id:do_m_gatoru:20171121013255j:plain

午後になるにつれ来場者も増えてきて、部屋によっては立ち見が出てたりしていましたが、 情報を連携してスムーズに椅子の運び込みや誘導など行い、大きな混乱はなかったと思います。

夕方の懇親会は大部屋を使って行います。

椅子・机の片付け、飲み物、食べ物の運び込みもお仕事です。 この頃には、担当が違うスタッフの方とも一体感みたいなのが出てきていましたねー。 朝一は全員知らない人の中に飛び込んだので、結構緊張して話もできなかったのです。

聞いたセッション

www.slideshare.net

スピーカーはカサレアルの多田真敏さん(Masatoshi Tada (@suke_masa) | Twitter)。

Springとか仕事で使う機会がないので、個人的にSpring Bootを使ってHello Worldとかやってみているレベル。

そんな中、Springとはどんなものなのか、それを踏まえた上でSpring Bootとはをわかりやすく教えてくれました。

Spring 徹底入門を買っているので、ゆっくり写経してみようと思います。

docs.google.com

スピーカーはフリューの佐藤慧太さん(サトウジョン (@SatohJohn) | Twitter)。

フリューのサービス・ピクトリンの改善についてお話ししていました。

Webの仕事はこの6年一切していないのですが、 UIテスト自動化の話しは興味深かったです。

懇親会

f:id:do_m_gatoru:20171121013241j:plain

懇親会ではLT大会が開催されていましたね。色々聞いていましたが、慣れない早起きや肉体労働のせいか、疲れてしまってボーッとしてばっかりでしたw

空きっ腹にビールも効きましたねw

打ち上げ

f:id:do_m_gatoru:20171121013247j:plain

美味しい肉でスタッフみなさんで打ち上げです。(魚組もあったようです)

登壇した澁谷典明(よっちゃん (@yotchang4s) | Twitter)さん、幹事会の忘れbot (@deckeye) | Twitterさん(椅子を壊すことで有名とのこと)、ボランティアスタッフ仲間のビタミンC (@makimuti615) | Twitterさん、keni©️ (@keni_c9) | Twitterさんと、席をご一緒しました。 (まさか、北海道出身者が3人も集まっているとはw)

登壇した感想や、普段の仕事の話し、出身の話しなど楽しい時間を過ごすことができました。

席移動して、他の方と積極的に話すと良かったのにな、と少し後悔w

澁谷さんの発表資料はこちら。

www.slideshare.net

まとめ

前回までのJJUG CCCの雰囲気を知らないので若干不安がありましたが、 非常に楽しく参加できたと思います。

普段参加するときは、「一般参加」なので、 このような形で少しでも運営に関われたのはいい経験になりましたし、 思った以上に楽しかったです。

次回もスッタフ参加もありかと思っています。それくらい楽しかったです。

その際は、もう少し気持ちに余裕を持って、 セッション参加しようと思いますw

あとは自分のスキルのなさで、会話ができないのが残念なので、 もっと技術を学びたいなーと強く感じました。

あとはもう少し人見知りをなおしましょーねー

f:id:do_m_gatoru:20171123232320j:plain

JJUG「ビール片手にLT&納涼会 2017」 に行ってきた。

JJUG ナイト・セミナー 「ビール片手にLT&納涼会 2017」に行ってきました。

アジェンダはこちら。


  1. 山p 何かしなきゃと思ってるあなたにGroovy
  2. 小島直也 Selenium のこれまでとこれから(Selenium Comitter Day参加報告)
  3. 孫 東照 RMIを使ってみた
  4. fukushiw 仮題:インパス! あのこれダメッス!~Javaコードレビューの指摘ポイント10選~
  5. 前當 祐希 ぼっち開発からチーム開発へ(仮)
  6. 星野 優 未定
  7. KOMIYA Atsushi 未定
  8. 佐々木 真美 未定
  9. kitaji0306 未定
  10. 山本 裕介 未定
  11. つむらてんほ 「Javaで学ぶ魔法入門」ベンチマークテスト(仮)
  12. 杉山 貴章 バルセロナJavaコミュニティカンファレンスを覗いてみた(仮)

ルービー片手に、ピザをつまみながらLTを聞けました。

f:id:do_m_gatoru:20170824012118j:plain

iPad proを買ってから初めてApple Pencil を使って、メモを取ってみました。

紙に書いているみたいで、ストレスない感じでいいですね。

f:id:do_m_gatoru:20170824012512p:plain f:id:do_m_gatoru:20170824012532p:plain f:id:do_m_gatoru:20170824012548p:plain

なんだこのフォント、きたねーなー(白目


11月にJJUG CCCがあるそうなので、参加してみようと思います。

www.java-users.jp

NaNってなんなんだ?

先日、こんなツイートを見かけました。

NaNってなんだっけ?
どっかで見た記憶があるけどなんだっけなー。

NaN - Wikipedia

IEEE 754 - Wikipedia

なるほど。非数。
ついでにIEEE754についてもWikiレベルで確認。

解釈は納得。
NaNはJavaでも定義されている様です。
JavaScriptと同様に==ではfalseとなるのかが気になります。また、==では常にfalseとなる理由が気になるので少し調べてみました。

NaNとか意識したことないから、とりあえず比較してみました。

Double nan1 = Double.NaN;
Double nan2 = Double.NaN;
        
if(nan1 == nan2) System.out.println("nan1 == nan2 => true");
if(nan1.equals(nan2)) System.out.println("nan1.equals(nan2) => true");
if(nan1.doubleValue() == nan2.doubleValue()) 
    System.out.println("nan1.doubleValue() == nan2.doubleValue() => true");
        
System.out.println("Double.doubleToLongBits(nan1) => " + Double.doubleToLongBits(nan1));
System.out.println("Double.doubleToLongBits(nan2) => " + Double.doubleToLongBits(nan2));
        
System.out.println("nan1.hashCode() => " + nan1.hashCode());
System.out.println("nan2.hashCode() => " + nan2.hashCode());
nan1.equals(nan2) => true
Double.doubleToLongBits(nan1) => 9221120237041090560
Double.doubleToLongBits(nan2) => 9221120237041090560
nan1.hashCode() => 2146959360
nan2.hashCode() => 2146959360

==での比較はfalseになるけど、equals()を使うとtrueとなる、と。
なんなんでしょう、まったく。意味がわからないです。
equals()の結果がtrueとなるのは仕様のようです。

Double (Java Platform SE 8)

Javaの言語規格で==について調べてみました。

If either operand is NaN, then the result of == is false but the result of != is true.

Indeed, the test x!=x is true if and only if the value of x is NaN.

The methods Float.isNaN and Double.isNaN may also be used to test whether a value is NaN.

引用元:http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.21.1

NaNの==での比較結果は無条件でfalseとなると解釈しました。

これはJavaScriptでも同様なようですね。

developer.mozilla.org

比較演算子 (JavaScript)

MATLABでも同じように記載されています。

jp.mathworks.com


NaNであるかのチェックは大体は、
isNaN()を使いましょうというのが常識なようです。
NaNがなんなのか知ることができて、スッキリしました。NaNの扱いについては言語が変わっても統一されているようですね。(当然か)