Quill

Scala MatsuriでQuillを使っているという話をしたら「Quillって生SQL書けます?」って聞かれてしまい、「いや、わかんないっす…」みたいな事になってしまったが、実際のところ生SQLを書きたくなくて使っているのでしょうがない。
生SQL書きたいならまぁ、その手のラッパを使えば良くて、QuillはSQLを型安全な式として表現できるのが良いところだと信じて疑わない。
疑わないとか書いている時点で少し疑ってそうだけど。

実際のところ注意力散漫な人間なので、型をテーブル定義通りに作るのが精一杯みたいなところは確実にある。
SQL文書いてる間中その集中力を切らさないのは相当厳しいので、型システムでアシストしてくれるのは本当にありがたい。
テーブル定義からcase classを作れば、typoしない事ではなくロジックに集中できる。
なんでこんな100年前に語り尽くされてそうな事を今更熱く語ってるんだ…??

Melatonin

メラトニンが届いたので、飲んでみた。
服用してからどのくらいの時間で効いてくるかは結構個人差があるらしく、下手に遅い時間に飲んで朝起きれなくなるとことなので、昼の12時に飲んだ。
ら、3時間くらいで効果が出始めて、地獄のような眠気に襲われてしまった。
そもそも3ミリは多すぎるし、ちょっとカプセルから出すなりなんなりして服用しようと思った。
最近は夜眠れないこともあんまりないし、クセがつくといけないので、本当に必要そうなときだけにしよう…。

ところで、Quillを使ってDBをこねこねしているけど、とても良い。
素のcase classがそのまま使えるというのが特に良いところで、ドメインモデルが綺麗に保てる。
…と思ったのだけど、そもそもドメインモデルとDBモデルを別に設計しているので、そこまでピュアドメインとは関係ないのでは、と思わないでもない。
ScalaMatsuriの時にクライスリインスタンスでやってたのって、あれDBモデルとドメインモデルが一致してたけど、そんな事ってあるんだろうか?
しかし、Scalaはやっぱり書いてて楽しいので、良いなぁ。

Pipe or Some is void

Tupleと、pipeもしくはOptionを使ったワンライナーって何の価値もないな。
以下は某オンラインジャッジの某問題だけど、一部変えているので答えではない。

Some(scala.io.StdIn.readLine.split(" ")).map(x => (1 until x(0).toInt, 0 until x(1).toInt)).map(x => x._1.flatMap(y => x._2.map(z => (z * z) + (y * y)))).map(_.map(x => scala.math.sqrt(x))).map(_.count(x => x.toInt == x)).foreach(println)

いやこれ本当に無価値なワンライナーじゃない?
価値あるワンライナーってのも謎だけど…。
虚無。

H

FORTISSIMO H というケーキ屋さん?洋菓子屋さん?に行ってケーキを食べた。
初めて行くケーキ屋さんでは必ず生クリームの乗ったケーキを食べる事にしているので「セゾンドガトー」を食べたけど、流石に美味しかった。
ケーキ
ついでに、缶が異常に可愛かったのと、最高の匂いがしたので「オペラ」という名前のブレンド紅茶を買った。
缶

人口無能のドメイン設計はなんとなく形になってきたので(多分全く出来ていないのでインクリメンタルにやるつもり)、ロジックを書いていきたい。
とりあえずMeCabとCaboCha使ってやろうかと思っていたけど、もっと環境構築が簡単なのないかな〜と思って、ちょっと調べたらGiNZAというのが出てきた。
https://qiita.com/derodero24/items/b49dd92e14c7e7655ccc
今年の4月!
良さげ。
DockerHubを漁ると4日前にyyaguchiさんがGiNZAの入ったDockerfileを公開してくださっていたので、それをベースにPythonで簡単なREST APIを作って利用する事にする。
今日はここまでかな。

Chatterbot

「どこでもいっしょ」とか「伺か」みたいな人口無能が大好きだったので、そもそも人口無能を作りたいという夢(?)があったのを、どこでもいっしょのパズルをやっていて唐突に思い出した。
大学の友人におすすめされたウェス・アンダーソン監督の、グランドブタペストホテルを見ながら、なんとなくユビキタス言語を考えてメモったり、ドメインモデルを作ってみたりした。
グランドブタペストホテルは、物凄き面白い!というよりも、とっても良い、という感じだった。
画が綺麗だし、語り口が独特だった。
他の作品もそのうち観たい。

人口無能は、とりあえず本当に最低限のドメインモデルと受け答えのループだけ作った。
まだモックとも言えないレベルだけど、ちびちびち実装していきたい。