haskell-jp / mokumoku-online #11

もくもく
!here そろそろお時間なのでやったことなどの報告をお願いします!
:film_projector:
はーい、遅くなってからの参加だったので進捗は少なめです。
slack-webパッケージにおける現行のChannel型に相当する、Conversation型の値コンストラクターを追加しました。
もうちょっと続けます。
当初やる予定のことはバグが分からなかったので GHC.TypeLits.Nat で遊びました
物理量の次元を型に持つ数を作ってました
例えば加速度なら、距離が 1、時間が -2 みたいな
距離と時間を足そうとすると型エラーになったり
そして ↓
https://haskell-jp.slack.com/archives/CUPBC8WCE/p1592124963293200
コンパイラープラグイン作って GHC.TypeLits.Nat の整数版とか作ればいいのかな
もうありそうだな
thinking with typesを読んでました。進捗はほんの少ししか進んでないです…
@kakkun61 @nakaji-dayo @lotz 来週は土日どちらにしましょうか?
私は、
• 土曜日は最初参加して途中(16時ちょっと前ぐらい?)までならいられる、という感じです。
• 日曜日は開始と終了の挨拶だけはなんとか... :cold_sweat:
といったところです。
私土曜日やりましょうか :raising_hand:
私は
・土曜なら最初から参加可能(運営も可能)
・日曜は途中から参加するかも
ですー
了解です。 :relieved:
では順番的に @lotz さん運営という形でお願いします! :bow:
承知です!
@igrep @lotz 次回のイベントページはこれで合ってるか確認お願いしたいです。初作成なので。
https://haskell-jp.connpass.com/event/179665/preview/
LGTMです :ok_woman:
わっしょい
@kakkun61 差し支えなければgmailのアドレスもDMしてください。(以前聞いたような気もするけど、
Google Calendarの登録に必要な権限を与えます
あ、やっぱり権限なかったのか
導線あるのかなーと探してました
[email protected] です
忘れてて申し訳ない :bow:
これでタスクは完了っぽい
今週の居残り進捗。これで必要な型はすべて追加できたはず
https://github.com/haskell-jp/slack-web/commit/6f6f87ad291f3c5b72177255021ab49a4ab564c1
@ has joined the channel
こんばんは
次回のもくもく会に参加申込しました石本幸士です
すごいHaskellを読んで衝撃を受け、haskellとpurescriptを勉強しています
周りにHaskellについて話せる相手が居ないので、こういうオンラインもくもく会があるの本当にありがたいです
haskellに慣れるためにhackerrankの問題をhaskellで解いているので、当日はこの続きをやろうと思っています。
https://github.com/dowdiness/hackerrank/tree/master/src
** 第37回Haskell-jpもくもく会の時間です!好きなタイミングでいいので、自己紹介と今日やりたいことを書き込んでいただけると! hask(_ _)eller

spatial chatもあります。相談・雑談等にお使いください。
僕は引き続きremote-houseのフロントエンドをPureScriptに置き換えていこうと思ってます
今日で全部置き換わるといいなぁ…
https://github.com/lotz84/remote-house
山本悠滋です。15分くらい
https://github.com/haskell-jp/makeMistakesToLearnHaskell の続きを書いてます
外出中なのでエア参加で……
疑似乱数生成器のMRG32k3aをhaskellで実装中です https://github.com/naohaq/mrg-random
まだ早いですがこのあと用事なので今週の成果を。一句詠みました。
https://twitter.com/igrep/status/1274217845426016257?s=20
遅くなりましたが、もくもくします。
もちろん、commitもpushもしてませんがちゃんと進めてますよ!
** 成果報告の時間です!何か、やったことを軽くご共有いただけると!
成果になってないですが、昔書いたfcmのクライアントのコード見直してました。
認証がgogolに雑に乗っていて、なんとか依存外すか、小さく分けるか、したいなと検討中
すいません、どうしてもhalogenで分からない部分があって質問してもいいでしょうか

おそらくモナド変換子の使い方が分かっていれば解ける問題?だと思うんですが

このコードの
https://github.com/dowdiness/purescript-audio-experiment/blob/wip/src/Main.purs
117行目で
track <- createMediaElementSource ctx el
の型が合わなくて直し方が分からず悩んでます。

track <- H.liftEffect $ createMediaElementSource ctx el

に変更しても同じエラーが出て、

H.liftEffect $ createMediaElementSource ctx el

なら動くんですが今度はtrackを取れなくなります。

エラーメッセージ↓
Could not match type
Effect
with type
HalogenM t0 t1 t2 t3 t4

webaudioライブラリ↓
https://github.com/waterson/purescript-webaudio/blob/master/src/Audio/WebAudio/AudioContext.purs
僕もPureScript初心者なんですが、
liftEffect を使うためにHalogenM … が MonadEffect のインスタンスになる条件って
(MonadEffect m) => MonadEffect (HalogenM state action slots output m)

みたいですが、
108行目の型を見ると m は MonadAff のインスタンスとしか指定されていないようなので、ここら辺でエラーが出てるのでは?と邪推しました :eyes:
皆様お疲れさまでした!
@igrep @nakaji-dayo @kakkun61
来週は土日、担当どうしましょう?
順番的に(?)、よければ私やりましょうか
その場合、土日はどちらでも可能ですが、なんとなく土曜日にしようかなと思ってます
ではお願いします!
イベントページ作りますねー
@nakaji-dayo 来週土曜で作成しました :pray:
日付時間問題ないか確認いただければ公開しますー
https://haskell-jp.connpass.com/event/180321/preview/
@lotz ありがとうございます!日時問題ございません。
確認ありがとうございます!!
お疲れ様でした!
質問した直後ですが自己解決しました
Effectで返ってくる関数全てにliftEffectを使えば動きました

Initialize -> do
    H.getHTMLElementRef (H.RefLabel "audio") >>= traverse_ \element -> do
      ctx <- H.liftEffect $ newAudioContext
      track <- H.liftEffect $ createMediaElementSource ctx element
      g <- H.liftEffect $ createGain ctx
      H.liftEffect $ setGain 1.0 g
      H.liftEffect $ connect track g
      H.liftEffect $ connect g =<< destination ctx
      H.liftEffect $ suspend ctx
      H.modify_ (_ { audio = Just ctx })

ちなみにMonadAffを指定すればMonadEffectも一緒に使えるようになるらしいです
https://github.com/purescript-halogen/purescript-halogen/blob/master/docs/guide/03-Performing-Effects.md
お疲れ様でした。
来週は最悪当日誰もいなくても進められるよう、予約投稿中心のフローを整えようと思います。
あとオフライン開催もそろそろ検討かな
第38回Haskell-jpもくもく会の時間です!好きなタイミングでいいので、自己紹介と今日やりたいことを書き込んでいただけると! hask(_ _)eller
spatial chatもあります。相談・雑談等にお使いください。
引き続きremote-houseのフロントエンドをPureScriptに置き換えて行きます
今日こそ終わらせたい…
https://github.com/lotz84/remote-house