haskell-jp / mokumoku-online #4

なるほど、一旦IDEの方だけ入れれば大丈夫そうかな
PureScript IDE は PureScript Language Support に依存しているので、 PureScript IDE だけを気にすれば良さそうだ。
https://qiita.com/bouzuya/items/868eafc19b96619c025a
PureScript IDE 入れたら PureScript Language Support も自動的に入った :joy:
pulp, bower の時代を経て spago があるのかー
https://qiita.com/amderbar/items/60f18250423499225b70
リストの書き方がちょっと違う :eyes:
> [0..10]
[(0 : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10 : Nil)]

> 0..10
(0 : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10 : Nil)
psciはshadowing許してくれないのね
> ns = range 0 100
> ns = range 0 999
Error found:
in module $PSCI
at :1:1 - 1:17 (line 1, column 1 - line 1, column 17)

  Multiple value declarations exist for ns.
サーバー、WebSocket ベースなんですね :eyes:
ですです!リアルタイムに反映させたかったので
プル型のリクエストも websocket でやりとりしてます・・・?
してますねw
たしかにこれはREST APIとかで叩けば良いのか :eyes: w
PureScriptでHelloWorldできました :raised_hands:
https://gyazo.com/2d0e7be88233613d46a92d5c19ff121a
Mainの型書くのにライブラリインポートしないといけないの!?w
吐き出されたJSを見てたらファイルもコード量も多い。
spago bundle-app を使えば未使用コードを削除した上で1ファイルにまとめてくれるみたい :eyes:
https://github.com/purescript/spago#bundle-a-project-into-a-single-js-file
みなさん、stack使ってるからと言って最新のGHC使うのを諦めてませんか?筋力 :muscle: と少しの勇気( --allow-newer )で解決しましょう!
https://github.com/haskell-jp/slack-log/commit/1e51d3f482c14f9106538a1ce9d1ea03ee2eee27#diff-fafd0cdcd559a7b124cc61c29413fb54
とりあえずslack-log自身のテストは通っているので安心 :relieved:
@kayhide 最初の接続時にルームの情報を全部プルで取ってくるところがあって、ここもWebSocketでリクエストを送ってサーバーから送ってもらう感じで実装してたんですが、おっしゃる通りどこか適当なURLを叩けば返してくれるようにすればWebSocketの複雑な実装を減らせそうですね :eyes: :arigatougozaimasu:
https://github.com/lotz84/remote-house/blob/master/src/RemoteHouse/Server/WebSockets/Types.hs#L21
同じディレクトリでspago管理とstack管理って共存できるんだろうか :eyes: ファイルはかぶってないしできそうだけど
どうなんだろ?経験上、フロントエンドのディレクトリは分けた方がよさそうですが・・・
package.json , packages.dhall , package.yaml とか、入り乱れてきます
WebSocket でプル型な実装したことありますが、結構つらかったです。
エラー処理とかリトライとか・・・
なるほど確かに :sweat_smile: 今は完全にそこらへん無視しちゃってますね…
spago と stack 共存のプロジェクト設定できた :raised_hands:
まずは当たり障りのないJSをPSにうつしていくか〜
https://github.com/lotz84/remote-house/blob/master/static/main.js
既存コードとの連携方法はここに書いてありそうなので読む :eyes:
https://book.purescript.org/chapter10.html
そういえばここまで文法の勉強してないけどHaskellのノリでいけるやろーという軽い気持ちで突き進んでる :sweat_smile: 次壁にぶつかったら PureScript by Example を真面目に読む
spago bundle-app で生成したJSをminifyする機能は spago にはついてないのかな
素直に移植してたらすごい型が生成された :joy:
https://gyazo.com/3f4aa53720e79251b0aaab0a7c98d38d
heroku デプロイできるように docker で ps をビルドする対応中
今日はそろそろ離脱します。
お疲れさまでした〜
@kayhide できれば何か成果を共有していただけるとありがたいです :pray:
ところでもう一つ、今度は技術的なことじゃなくて恐縮ですが、Rustオンラインもくもく会 https://rust-online.connpass.com/ などを見習って、このもくもく会を毎週やろう、といったら、協力してくれる方はいらっしゃいませんか?
オンライン勉強会になったことを機に、今後私以外のメンバーでも運営できることを目指して、ちょっとやり方を変えようかと思っています。
私自身毎週参加できるか不透明なので、協力していただける方で当番を決めて、担当した人がイベントページの作成や、 https://twitter.com/haskell_jp での宣伝、司会をやっていただきたいです。
COVID-19の流行が落ち着いてからは、慣れた人がリアル会場でも月一回程度開催するのもいいでしょう。
(場所も朝日ネットはおろか、都心である必要もないと思います。みんなオンラインで繋がれますし!)

どなたか、運営に興味のある方いらっしゃいませんか?
今日初参加であまり空気感の分かっていない私がいうのもなんですが,オンラインでやるのであれば,ZoomやHangoutなどをつないで画面共有が可能な人が(特に話さない)live codingなどを順番にするというのも面白いように思うのですがいかがでしょうか?
そういう新しい企画も期待したいですね。
個人的には、基本的に各人が各人の作業に集中する、という方針なので、やりたい人が勝手にやるのは構いませんが、運営として、全員でやる企画にするつもりは現状ないですね...
でも、誰かがそれをやれば質問しやすい空気が作れるかもなので、試しにやりたい気もします(曖昧な態度ですみません :sweat_drops:
いえ,受験生などが良くやっている勉強配信的なものを想像していましたが,たしかに「もくもく会」ですからね.
毎週は無理かもしれませんが司会含め協力します :raising_hand:
はい、二週にいっぺんでも、都合のいいときに開催できれば!
画面共有とかしたいの分かります。個人的にはもくもく会とDiscordの相性は良さそうと感じてます :eyes:
運営協力します!
@lotz @nakaji-dayo ありがとうございます!
早速二人にconnpassの管理者権限とTwitterのアカウントの投稿権限を与えました。承認お願いします!
Twitterアカウントの投稿権限を使えば、TweetDeckで https://twitter.com/haskell_jp として投稿ができるようになります。
:arigatougozaimasu: ! connpass, Twitter 共に確認しました :ok_woman:
ありがとうございます!承認しましたー
(そろそろ18時なので)
今日の成果です〜!
remote-house のフロントを PureScript で開発できるようにプロジェクトを設定し、一部のJSコードをPSで置き換えましたー :muscle:
コミットは長いのでちょい分かりにくいですが一応貼っておきますw
https://github.com/lotz84/remote-house/commit/8a362d655849b6aad07f0c827dce2dd56f8c99ff
ああー、すみません、オンラインにしてからは成果の共有を18時にしてました :sweat_drops:
と、いうわけで時間です!何か、やったことを軽くご共有いただけると幸いです hask(_ _)eller
私は当初の予定どおり https://github.com/haskell-jp/slack-log/issues/23 に取り組むつもりだったのですが、不意に時代はGHC 8.10だよね、と思い立ち、slack-logをGHC 8.10でビルドして、--allow-newerしないと解決できない依存関係をひたすら直すという泥臭いことをしてました 。
:point_down: 以下、送ったPR(と、コミット)です。ほとんどbaseパッケージのupper boundを上げただけです :cold_sweat:
https://github.com/lspitzner/butcher/pull/6
https://github.com/nilcons/haskell-tz/pull/24
https://github.com/jpvillaisaza/slack-web/pull/81
https://github.com/haskell-hvr/regex-posix/pull/6
https://github.com/haskell-hvr/regex-base/pull/5
https://github.com/igrep/template-helper/commit/5255a3e305c6dfb6762e8a10367e8f528b4801fc (もうメンテされてなさそうなパッケージなのでforkだけ作った)
一通り終わったのでこれから本題に取り組みます :sweat_smile:
お疲れさまでした.
可視化の方はPrivateなので,あまり見せられるものがありませんが,とりあえずグラフの出力は普通にできるようになりました.
ただ,そもそも出てきた値がおかしかったので内部で動いている代数型会計処理のパッケージなどを色々と修正しておりました.

https://github.com/yakagika/ExchangeAlgebra
まだ,会計の方はきちんとした会計計算には利用できるレベルではありませんが,こんな感じで振替処理なんかを定義できます.
ghcのコード読んでたのは成果物なしです

haxlの解説( )読んで、とりあえず雑に使ってみました
https://github.com/nakaji-dayo/learn-haxl
この後は、Backend for frontendに使うサンプル実装的なの作ってみようと思ってます。
お疲れ様です。
Domain Modeling Made Functionalの第5章を読みながらしこしこメモを取ってました。
https://gist.github.com/chupaaaaaaan/5fc190812b73f434f1a6c4827891292b
(人に見せられるものではないですが、成果ということで・・・)
どっかで聞いたことある話ダナーと思いながら、もうちょっと読み進めて見ようかと思います。

また全然別の話で、Emacs + HIEを使っているときの不具合について何が起こっているかちょっと調べていました。
Emacs + HIEを使っています。事象としては、以下のような感じです。
• HIEのプロセスを開始したときのみ、コンパイルエラーなどが存在すれば通知される
• それ以降、ソースコードを修正しても(別の箇所でコンパイルエラーが発生するようにしても)、その箇所についての通知はされない
• HIEを再起動したら、当該箇所についての通知が発生する
まだあまり原因もわかっていないのですが、同様の事象に遭遇したことがある人がいれば、お話を聞きたいです。
まだ成果を共有していない方もいらっしゃるようですがそろそろお開きと言うことで!お疲れ様でした!
私はもうちょい続けて件のissueを解決します。