yuiwaiの個人開発日誌

個人的な開発の備忘録などです

週報 - 2020年7月第1週

前週はこちら

 

yuiwai.hatenablog.jp

 

やったこと

ひたすらこちらのゲームしていました...

ブリガンダイン ルーナジア戦記  - Switch

ブリガンダイン ルーナジア戦記 - Switch

  • 発売日: 2020/06/25
  • メディア: Video Game
 

2ヶ国制覇してだいぶ満足したので、今後はペースを落とします 

やること

仕事でGCPを触っているので、趣味でも少し触ってみようかな、と思っています。

その他

先週の週報にある通りSwitch2台目を手に入れて、好きなだけゲームが出来るようになってしまったため、自由な時間をほとんどゲームに吸われてしまいました。

また、2台目Switchのおかげで息子と一緒にスプラトゥーン2をプレイ出来るようになったのも起因しています。

これからは少し控えます。

週報 - 2020年6月第4週

前週はこちら

yuiwai.hatenablog.jp

 

やったこと

Scala3でライフゲームを書いてみました。

UIは任意のものを組み合わせることが出来ますが、せっかくなので、先日から取り組んでいたJavaFXで描画してみました。

効率的に処理するための賢いアルゴリズムもあるようですが、とりあえず愚直にフィールド全体をループで処理するように実装して、それを分割統治するようにしてみました。

今回のJavaFXのように、勉強がてら書いていたものが他で再活用出来るのは喜ばしいです。

やること

今のところ、次に何をするかは決めていません。

インフラ系の何かをやってみようかな、などとぼんやり考えていますが、はっきりはしていないです。

その他

イオンの抽選でSwitch購入権に当選したので、念願の2台目をゲットしました。

そのせいで、ゲームをやっている時間が長めになっていて要注意。

 

週報 - 2020年6月第3週

前週はこちら

yuiwai.hatenablog.jp

 

やったこと

  • Akka ClusterにKamonを導入してみました。が、最新のバージョンのAkkaだとまだ動作しなかったです(Kamon自体は動くのですが、Akka関連のメトリクスが収集されない)
  • 以前触ったScala3+JavaFXの続きをやっていました。淡々とサポートするLayout(Pane)やControlの追加をして、それなりに使えそうという感触を得ています(今後も使えそう)

やること

少し、他の言語に出稽古に行ってみようかな、などとも考えていますが、まだノープランでした。

その他

身内に不幸があり、かなりバタバタしていたため、更新が遅くなってしまいました。

 

週報 - 2020年6月第2週

前週はこちら

yuiwai.hatenablog.jp

 

やったこと

先週に引き続き、Scala3 + Akka Cluster

Distributed DataとCluster Shardingを使ったグラフデータベース風のサービスを構築してみました。

あくまで、Scala3でのAkka Cluster(Typed)の書き味、動作確認のためと、Akka Clusterそのもののキャッチアップのための実装なので、細かいことは気にしない感じです。

ワークアラウンド的な部分もありますが、概ね当初想定した実装を行うことが出来たので、満足しています。

やること

せっかくAkka Clusterを触ったので、ついでにKamonを導入してメトリクスの収集が出来ないか試してみようと思います。

その他

そろそろ次のお題を考えたいところ。

Scala3のメタプログラミング方向に戻るか、あるいは別な方面に行くか。

少し、インフラ方向に旅をしても面白いかな、などと考えてもいます。

週報 - 2020年6月第1週

前週はこちら

yuiwai.hatenablog.jp

 

やったこと

1)Scala3のマクロ周り、軽く触ってみました(ただし、TASTy周りはまだ)

https://dotty.epfl.ch/docs/reference/metaprogramming/macros.html

Quotes と Splices の概念をそれとなく把握。

Scala3ではinline、Type Class Derivationなども使えるので、そちらでかなりな要求を満たせるような気がしました。

が、さらにメタなことをやろうとすると、やはりQuotes と Splices 、ひいてはTASTyも触ることになるので、追って、さらに深く触ってみたいと思います。

 

2)Context Functionsを試してみました。

https://dotty.epfl.ch/docs/reference/contextual/context-functions.html

ドキュメントのサンプルにはTableを構築する例が載っていましたが、このパターンでJavaFXGUIを組み立てられないかと。やってみたら意外にサクッとできたので、今後使うかもしれません。

 

3)先週、しばらく保留と書きましたが、ちょっと気が向いたので、Typed Akka Cluster with Scala3に着手してみました。

TypedなAkkaとScala3の相性はとても良いと思っていて、例えばBehaviorに指定するメッセージの型は、enumを使うと非常にシンプルに表現できます。

Clusterはさわり(メンバーシップの動作確認あたり)だけ動かしてみましたが、全然動作には問題がなかったです。

 

やること

引き続き、Scala3でAkka Clusterを実装してみます

 

その他

部屋が暑くなって来ました...

リモートが続いていますが、自室に冷房がないので夏はどこで作業しようか模索中

週報 - 2020年5月第5週

前週はこちら

yuiwai.hatenablog.jp

 

やったこと

今週Type Class Derivationを試してみました

https://dotty.epfl.ch/docs/reference/contextual/derivation.html

ADTに対してMirrorと呼ばれる付加情報が生成されて、それを使ってよしなに型クラスのインスタンスを導出しよう、というものです(雑

今回は、case classに対して、JSON文字列を生成する、というのを、上記のページの例を参考にしながら自作してみました。

(泥臭い実装になりましたが、ちゃんと動くものが出来上がりました)

あとでshapeless3も触ってみたいと思います

GitHub - milessabin/shapeless at shapeless-3

やること

次はいよいよScala3のマクロに突入してみたいと思います!

その他

Akka Clusterはしばらく保留

週報 - 2020年5月第4週

前週はこちら

yuiwai.hatenablog.jp

 

やったこと

引き続きScala3のTuple周りあれこれ触ってみました。

https://dotty.epfl.ch/api/scala/Tuple.html

Scala3のTupleはHListなので、再帰的な処理が書けます。

先頭要素を処理する型クラス+残りの要素(Tuple)を処理する型クラスを二つ取り、これを *: で結合するだけです。

詳細はShapelessのPDFが分かりやすいと思うので、ぜひ(Scala3のTupleの解説ではありませんが、(HListで)やってることは一緒です)

https://underscore.io/books/shapeless-guide/

やること

引き続き、Scala3キャッチアップしつつ、隙をみて久々にAkka Clusterを触ってみたいと思っています(Split Brain ResolverがOSS化されたらしいので)

その他

Scala3最高に楽しいです