Scala 勉強会 in 本郷
Scala Meetup 145th in HONGO - Scala Meetup Group in Tokyo | Doorkeeper
ここに出てみた。
中身は座談会みたいなもので、「話したい人が話せ、質問でもok、後は勝手に解決なりなんなりする」というノリ。
面白いのは、それで会話が止まらないところだ。
もっともそんなノリの為か、初心者殺しもいいところではあるのだが…。
ある程度分かってると、知的好奇心を徹底的にくすぐる場所ではある。
以下盛り上がった話題。
pack200
Jar をすげー圧縮できる。
ただし、実行環境を選ぶので、Applet とかそういうのでないときつい。
理論 https://docs.oracle.com/javase/jp/6/technotes/guides/deployment/deployment-guide/pack200.html
どうすればHelloWorldのバイナリサイズを削れるか
- まずクラス名 1 文字で実装
- Javap で余計なコードを探す
- バイナリを調べてみる
- どうもクラス名デフォルトに
Code
を指定した後、別名与えてる臭いので、クラス名を Code に - Constant pool をいじってバイナリを削る
- 親クラスをすり替える
- いらんコンストラクタを消す
- System.out じゃなくて PrintStream 使ってみる
ここまで来て 266 byte まで落ちるとのこと。
昔の Java なら更に行けたようだ。70 byte
http://www2.sys-con.com/itsg/virtualcd/java/archives/0707/richards/index.html
fold の融合則
キーワード融合定理
http://qtamaki.hatenablog.com/entry/2015/03/01/124206
scalaz
http://eed3si9n.com/learning-scalaz/ja/day0.html
jar サイズはちまちま削ってる。scala 2.12 で勝手に小さくなる…筈。
functional scala library
scalaz がちょっと大きすぎるので、自分で使うやつをピックアップして作ってみたというものらしい
https://github.com/halcat0x15a/kits
scala 勉強会なのに、Java の class ファイル圧縮技術で盛り上がったという意味不な結果に。
こんなコアなの何人ついて行けたんだ…w