So You Want to Build a Language VM - Part 33 - Cluster Syncing
I don’t know about you, but I’m getting tired of all this clustering. But, the end is in sight! For real this time! I promise!
WWhen we ended last tutorial, we had been able to send bincoded messages. A cluster member could join another cluster, and receive a list of other nodes back.
Our next task is for the new node to take each node it receives, and establish its own, independent TCP connection to them.
So You Want to Build a Language VM - Part 32 - More Clustering?!
Hello again everyone! In this tutorial, we’re going to continue to work on clustering. When we left off in the last tutorial, we had the joiner node sending a hello message and the server node adding it to its list. The next tasks are:
Send a hello back
Send a list of all known nodes to the new joiner == Full-mesh Network Remember how I mentioned we’d be doing a full mesh network? I realized an illustration might be handy, so more beautiful text art!
So You Want to Build a Language VM - Part 31 - Making Clustering Make Sense
Making the Clustering Make Sense
Sorry everyone! I’ve been busy, hence the delay. Back in tutorial 29, we had two nodes talking to each other, but we got a lot of random text on the screen. Let’s figure out why!
So You Want to Build a Language VM - Part 30 - Cleanup Time
We've got a lot of warnings and clippy things to fix!
As fun as it has been working the clustering, we’ve accumulated quite a bit of technical debt. There’s tons of warnings, and I haven’t dared to run clippy. So this post is all about going through and cleaning them up. =) It won’t be as exciting as adding features, but making sure to take time to do cleanups is just as important, if not more so. Tech debt has a way of growing faster than credit card debt.
So You Want to Build a Language VM - Part 29 - Clustering: Part 3
Explores making clustering thread-safe
If you tried to compile the code from tutorial 28, you probably saw a lot of errors about not being able to send Strings across mpsc channels. The reasons behind this is worth a paragraph or three on why.
So You Want to Build a Language VM - Part 28 - Clustering: Part 2
Finishes basic clustering
Hi, me again! In our last tutorial, we had added a separate TCP server to the Iridium VM. In this one, we’re going to finish up the client part, so that two Iridium VMs can talk to one another. Make sure you start this tutorial from this tag: https://gitlab.com/subnetzero/iridium/tags/0.0.27
So You Want to Build a Language VM - Part 27 - Clustering: Part 1
Begins adding in clustering
Hello everyone! The delay in tutorials was the result of the website re-work (courtesy of Bitdream), that I hope is less…awful. In the interim, I did add a few features and fixed some bugs which would not have made for exciting tutorials, so you’ll want to start this tutorial from the latest
This tutorial, we’re going to get different instances of the VM talking to each other over TCP. They won’t do much, but they’ll at least be able to connect.
So You Want to Build a Language VM - Part 26 - Adding Floating Point Support
Extends the VM to handle floating point numbers
Hi everyone! In this tutorial, we’re going to upgrade our VM to support floating point numbers. In the previous tutorial, we added support to the Palladium language, so we kind of need to support it in the VM as well. =) Before we get to implementation, let’s have a quick review of numbers. == Numbers If you already know what a floating point number is, feel free to skip this part. If not, read on for a quick review.
So You Want to Build a Language VM - Part 25 - Extending Palladium: Part 1
Extends Palladium to handle more complex arithmetic expressions
Hey everyone! For this tutorial, we’re going to switch tracks and work on Palladium a bit. Right now, it handles simple arithmetic expressions, such as
2+1, and that’s it. Let’s see if we can get it to handle something more complex.
So You Want to Build a Language VM - Part 24 - SSH Server: Part 2
Finishes adding an SSH server to the Iridium VM
So, change of plans. I’ve been fighting with thrussh for hours now trying to get SSH working. The key exchange was failing, and I had no idea why. It turned out that even their example client/server didn’t work when I tried. Despite spending a lot of time going through the source, I couldn’t find the cause of the issue. The crate uses futures very heavily, which makes the program flow hard to follow, at least for me. I’m sure that somewhere in the world there is someone who has no problem following futures-based async, but it isn’t me. In light of this, I decided to go old school. I’m leaving the previous tutorial part up; I think its important to see this aspect of projects as well. Having to scrap something that doesn’t work out and pivot to something else.