Nice. It’s always good to remind people that there’s many ways of accomplishing something. I’ve got a post sitting in my backlog somewhere about golfing down a riff on FizzBuzz to follow the style of a Clojure implementation. I might have to post that soon.
I’ve been working on my Bitcoin node a bit more over the past few weeks. Here are two new posts that (should) finish off the peer-to-peer networking portion of the project:
Limiting Peers with DynamicSupervisor Options - In which I realize that I duplicated a lot of work already done for me by the
DynamicSupervisor module, and simplified my code quite a bit.
Ping, Pong, and Unresponsive Bitcoin Nodes - In which I set up a ping/pong cycle and prune dead peers from my connection pool.
Understanding concurrency in elixir
I have recently played around with Phoenix.PubSub and wrote up my findings in a blog post: https://www.pompecki.com/post/phoenix-pubsub/
For those interested in contributing to Elixir, here’s what I learned from my experience
How to Contribute to Elixir: A Step-by-Step Guide
Here’s the FizzBuzz post I talked about previously. I basically use stream to replicate an interesting Clojure FizzBuzz solution. With a little cleanup, I actually prefer the Elixir version over the Clojure one (although being able to map over multiple collections is nice).
I also wrote a bit last week about improving my Bitcoin node’s receive loop by switching from using
:gen_tcp in active mode to passive mode. This switch simplified things quite a bit and let me gut quite a bit of code from my project.
Nice! I feel like you’re reading my mind. I started to dive into contributing to Elixir when I thought I found a bug a couple weeks ago. I also found this Dockyard article to be very helpful.
Example using dynamic supervision in elixir OTP https://danbruder.com/blog/example-using-dynamic-supervision-in-elixir-otp
Looking forward to part 2 where hopefully we find out how trains reconstruct their state in the event of a crash and how holders of stale train pids find the newly generated processes.
I just published a pretty massive post on using Elixir to generate guitar chords and finding “optimal” voice leading between chords. I do a deep dive into the code in the article and explain some of my ideas.
I’m pretty pumped about what I’ve got working so far, and plan to keep developing my ideas into something more useful in the future. Hopefully you think it’s as cool as I do.
Will be reading this tonight. It’s my two favorite things Elixir and guitar!
this one is particularly awesome and inspiring (even though I don’t play any instrument)
reminded me of this talk, where a drum machine is built : (code: https://github.com/mtrudel/beats)
so just making sure you have seen that one…
Yes! That’s hands down one of my favorite Elixir talks. I’m actually using SchedEx in another side project, thanks to that talk.
How does SchedEx compare to Quantum that’s been around a lot longer?
I liked the way SchedEx is configured, seems a lot cleaner than Quantum. And also, the time_scale modules look really amazing.