Been working on this thing with my friend @leojrfs at a company we recently started! 🙌
It's a battery-powered mesh network node with support for plug'n'play sensors and actuators for climate analytics and automation in indoor farms 🥬🦾
Clustergate-1 and our five customers are ready for launch!
Our platform is now aboard D-Orbit’s ION on the Falcon 9 rocket, marking the closest we’ve ever been to space.
Godspeed to all satellites on Transporter-13!🔥
#spacex#launch#transporter13
My talk from FUN OCaml on modern web development with signals is now online! But what does modern mean? And what is a signal anyway?
https://t.co/dRFUibY9LD
@leostera@welltypedwitch Looks pretty close to my `source` type. I'd suggest to make sure that state is initialized lazily and can be disposed of. Resource safety might not be one of your goals, but what happens if `https://t.co/csaDTKZ86h` raises? Will the state be cleaned up?
@welltypedwitch@leostera I agree. I also think the whole wave of iteratee-inspired models is a very very very deep rabbit hole to get into. Transducer's look refreshing in comparison, IMO. Also, foldl package (https://t.co/yUTTHuA6JE) is missing from your list, which I find super elegant.
@welltypedwitch@leostera Hm, I tried though! :D I think both pipes and conduit are nice (albeit complex), but the same model just does not work at all in OCaml. Too much boxing. And doing CPS-transform is painful. I much prefer streamly's approach which focuses on folds/sinks/reducers.
@leostera@welltypedwitch This could be a useful read: https://t.co/Pi2kWVBynC. Clojure being dynamic makes it hard to see the shape of things, but the types are quite simple in practice (sink and flow in streaming are essentially reducer and transducer).
@leostera@welltypedwitch For effectful iterators, I suggest looking into Clojure's transducers. They decouple things nicely. In essence, they allow you to, for example, build pure transformations or reducers that get plugged into stateful producers. See the flow type in streaming: https://t.co/rGtmDhw2NV
@welltypedwitch@leostera IIRC elixir uses an iteratee-inspired model, so fundamentally it's the difference between internal (elixir) and external (rust) iteration models.
@sabine_s_@ChShersh The original link I posted is 404, while I'm pretty sure I copied it from the website. Looking at it now, the path looks wrong, but I don't know how I got there in the first place 😄
@ChShersh@sabine_s_ I think Iter is a great abstraction for that with excellent performance and simple semantics. If you need batteries maybe try (shameless plug): https://t.co/7xvN4oXI46
@ChShersh@sverien One of the limitations this type has is inefficient mapping/update. You need to get and set a value separately. This is why I normally define `map : ('a -> 'a) -> 's -> 's` instead of a simple set (set being trivially defined as `map (fun _ -> x)`.
@p1xelHer0 The reactive "signal" used in frontend is essentially a callback registry. But it does have a rich history in FRP and Signal Processing. I recently implemented a minimalist library for signals, if you want to look at some code: https://t.co/4OPulpsy3n
@_anmonteiro Incredible work! Btw, I tried testing my virtlib use case, but run into compilation issues with melange compiler libs. I'll try to spend some more time on it soon.