nator999のブログ

今を生きる青年

JJUG CCC 2017 Fallに参加した

JJUG CCC 2017 Fallで取ったメモを備忘録として残しておきます。

マジで単なる垂れ流しでとってたやつをちょっとだけ見直しただけです。

言ってないこと書いてしまっていたら恐ろしいので、個人的備忘録と銘打っておきます..それでもNGなものはNGでしょうね🙅‍♂️

なので間違いがあれば指摘していただけると幸いです。

◆Backlog S2➡︎Play2Scalaへの移行
アクション数は400-500

インセプションデッキ(実施動機)
目的は、Backlogの進化を加速させるため
S2からの卒業。使い続けるとコストが高い
10年以上の歴史
複雑化したコードのメンテ性の向上

Scalaを選んだ理由
Javaよりモダン
JVMの既存知識を活かせる
JVM言語間の相互呼び出しが可能なため、レガシーコードを活かせる

・DDDで設計
共通で使える(知識なさすぎて分からん

・移行方法の検討
1. 全てのアクションの移行完了後に切り替える
ボツ
ドッグフーディング?だとバグに気づき辛い

2. Javaから呼ばれるメソッドから徐々に
ボツ
Javaへの変換が必要
コストが高い
完了時に捨てるものを作るモチベーション✖️

3. 機能単位で入れ替えてく
Nginxでリクエストを振り分け
採用
だがセッションを共有できない
➡︎Redisで実現
ユーザーへの影響を抑えやすい
完了後に捨てるコードはほぼない
部分的に完全入れ替えなので既存の実装に縛られなかった

・使用したツール2つ
1. 旧VeiwからTwirl(テンプレート)へ自動変換するツール(正規表現を利用)
2. DOM比較ツール セレニウムで実装
Java版とScala版にアクセスして比較

・その結果
上記でダッシュボードは完全移行!すごい
4度ロールバックした
ロールバックはNginxの設定を戻せばOKだった。精神的にもよい
・問題だった事
既存Javaの機能追加とScala実装チームでのコンフリクトが分からない
情報共有してても混乱した
➡︎機能追加はScala版だけに行うことに

グローバルバー(画面上部のバー)は未だ両方動いてる。現在改修中!
なるはやリリースしたい

Scala勉強法 ヌーラボ社内での施策
ドワンゴScala研修テキストを研鑽
・社内向けツールをScala+Playで実装してみた
Scalaで辛かったこと
1. implicit classの使用法
特定のクラスに対してメソッドを生やしたい時に使う
2. For文
for comprehension
書き方ムズイ。なんやねんという感じ
頭が痛くなるほどの複雑な処理がかなり簡略化された形

Javaコミュニティ活用術
よこなさん
・得た知識を会社に持ち帰る
レビューに活かしてみよう
モチベーションになる
知識を得て会社で活かす小さなサイクルをたくさん回すといい

・楽しいと思える方法で、発信していく
まずコミュニティに参加することから 

・自分なりの楽しみ方を見つける
情報をキャッチする方法を知れる
知り合いが増え、仲間意識が生まれる

・トラブル
一昨年のCCCで、「あえてのSE5入門」という題目で話したところ、過去の技術を宣伝するとは何事かという意見が
心無いエアリプとかショッキングだった
指摘やマサカリは事実の否定であって、人格否定ではない
➡︎ 積極的にアウトプットしていこう!

・世界を知る
積極的に交流していこう
1. 方法
CCC
JavaDay(Oracle主催
JOnsen(温泉でのアンカンファレンス
JavaOne(サンフランシスコでのカンファレンス

・JavaOne参加して感じたこと
日本のコミュニティが強い、盛り上がっている事が海外でも取り上げられている
言語の壁もあり、根気と体力が必要
フィールドを広げれば知識の幅も当然広がる

・大事な事
自分の強みを見つけて早いうちに動く!
Cfp応募しましょう!
知る、出す、の繰り返しの中に成長が

◆OpenJDK 参加入門
OracleのDavid Buckさん
めっちゃ日本語うまい

・OpenJDKの歴史
完全なるOSS化ではなかった
他の会社がライセンス購入してプライベートに作ったものが含まれていたから
一番最初のリリースはJDK7

・OpenJDKとは何か
!=OracleJDK
振る舞いは似てる
ソース管理はMercurialを使用
Gitと似てる(英語でギットはジット)

・Forest
JDKのソースツリーの集合体
とても多くのプロジェクトを含む
基本的にPR歓迎。どんどんクローンして
分からなければ何でもメーリングリストで発言してほしい

・ビルド方法
configure
エラー出力が親切なので環境構築が用意
◆初心者のためのJava
JJUG会長 鈴木雄介

・Sunの話
Oracleによる買収に至るまで
Microsoftに対してヒーロー的な存在

Javaの仕様の話
JavaSE
JavaEE
という仕様があり、それをOpenJDK、J9のような形で実装される。それを私たちが使う。
JavaEEだとグラスフィッシュ、WebSphere, WebLogicなど

・JSR
仕様を定義するもの
提案は自由
各社から承認されて初めて採用
FUJITSUOracle、Jetbrains、Twitter、EclipseFoundationなど 

・参照実装とは
実際に実装しながら仕様を検討
OpenJDKがそれ

Android
ドコモはOracleからライセンス購入していたが、GoogleOSSを採用して拡散したため、Oracleが損。それでGoogleを訴えた
という流れ(間違ってたらすみません

◆アンカンファレンス参加
1. 仕事のやりがい
2. 勉強会への参加
3. ScalaMatsuriへの誘い

1. 仕事のやりがい
残業がなくなっても、働き方が変わっても、働き甲斐は変わることはない
やめる人は減らない

仕事が楽しくないからOSSを開発する、という人は昔多かった
勉強会は楽しいけど仕事はつまらん、という人もいる(大抵仕事できない人

同じモノを数年担ぎ続けると、どうしてもやりがいには繋がりにくい
仕事の報酬は仕事だ、という考え
そのサイクルを作らなければ、働き続ける事は難しい
年収を上げることが人を貼り付けておくのに一番良い、という調査結果がある

成長があること
仕事が面白いと感じていること
自己承認ができていること、認められているということ
福利厚生が整っている会社の方が、成長思考が芽生えにくいという調査結果がある
組織が成長をサポートする文化があることは良い

ロールモデルとなる先駆者が社内にいるかどうかが大事だったりする
勉強会で見つけると、いいな、その人の会社に入りたいなと感じることはある

2. 勉強会への参加
数年前は、引き抜きを懸念して、勉強会への参加を禁止する会社もあった 

リファラル採用目的はScala界隈で今も
JJUGなどのJavaコミュニティはあまりない
Javaは枯れた技術という認識も出てきている
ScalaMatsuriやPyconはガッツリ(半数以上の参加企業が)人材目的らしい

Javaの技術者は取り合いが起きているが、母集団が多いのでそこまで必死にはなることはない
その意味でScalaPythonへの切り替えは賭け 

採用手法について
ツイッターで繋がって会社の愚痴があれば、引き抜く
それはそれでリスクでもある
愚痴の中身による

中途採用
前の会社の愚痴言ったら、その人はやめよう、という判断をすることもある
次は我が身と思うとのこと
経歴書に、前職退職理由を記載してほしい

セロさん
キャリアマップを描いていたというより、今目の前のことに全力でやってきた
キャリアパスを描きたい人は、能力に自信がない人
30歳まではそれでも良い

コミュニティに参加し、モデルを見つけてもらう、そういったJJUGの役割もある
社内でこういう人になろうと思えれば良い

勉強会は標準技術レベルが高い
社内と別の高い標準があるという事を知れる
⇨ 自社が世の中のハードルとズレているのかどうかが分かる

副会長の方

当たり前のことができるということ
・皆で掃除をしていくこと
・挨拶ができること
それを当たり前と思わず、競争力と捉えられる
そういった意識を持っているメンバーで構成されているという強み

セロさん
今アツいのは間違いなくSpringとScala、リアクティブ
LambdaはScalaからSE8に取り込まれたという流れ

3. ScalaMatsuri

Scalaユーザーが集まるカンファレンス
それなりにスキルが高いという証明になる

参加者の傾向
業務で3年以上Scalaを使っている人が徐々に増えてきている
Webサービスに携わっている人が一番多い

更に刺激を受けるには良い
Scala, Python, Kotlinが今後やはり来るのではという話

◆Effect of SHAttered(英語公演)
iTextの開発者の人

ハッシュ化アルゴリズムSHA-1の話
異なる入力から同じ出力が得られてしまう
衝突、コリジョンアタック

SHA-1処理フロー
1. 入力を二つに分割
2. ブロック処理?
3. バイト化処理

SHA-1を用いるPDFシグネチャーは信用できない
TLSも同様
GitコミットハッシュもSHA-1アルゴリズムで行われている
コミット内容をハッシュ化して作られている
攻撃者は開発者を騙せる
チェックアウトするとき、クローンするとき

・要点
Don't panic!
SHA-256、もっと良いのはSHA-3を使いましょう
PDFはPAdESでリサインしましょう

Deep Learning For Java

EVGENIYさん
北海道から
PyconでJavaのセッションのスピーカーを務めたとのこと

・dl4j

Githubに上がっているだけだが、すんなり動かせる

入門書の話

つい先日DLの資格試験が出た
安くはないが、取る価値あり

(自分の体調がわろすぎて大体うつむいて死んでた

◆懇親会

・反省

スタッフで固まりがちだった
もっとスピーカーに対してアクションを取れば良かった

この時も体調わろすぎて死んでた
酒も、二次会も断念

LTが10本くらいあったが、どれも興味深いものばかりだったし笑った

じゃんけん大会があり、景品はDukeの形をしたマウス
➡︎ 惨敗、欲しかった

◆かんそう

・良かったこと

この日のお陰でTwitterで沢山のスピーカーの方をフォローできた

友だちできた

⇨ 世界が広がった

運営スタッフとしてお手伝いさせていただいたが、そこそこセッションも参加でき、スタッフTシャツ効果により謎の権限を行使できた

⇨ いい事しかなかった

・悪かったこと

なし!

初参加だったが、もっと早く知っていれば、と後悔。

とても有意義なカンファレンスでした
終わり