I’ve been developing an embedded Rust app (yay!) on Windows (blegh) recently. The Rust team have put incredible effort into making Rust itself work great in Windows environments, but the tooling around it can be difficult to get working correctly. My current problem was making GDB load a .gdbinit file from the current projecting when doing xargo run. Here’s how I fixed it in .cargo/config:

So. Elm. It’s been an interesting experience for me, coming from a procedural language (JS) background. The learning curve is steep, but the functional nature of Elm, along with its compile time type safety really pays off. One of the (few!) problems I’ve found as a newcomer however, is that the documentation can be really frustrating sometimes. In this post, I hope to remedy that slightly by providing a newcomer’s perspective on a little bit of data processing in Elm.

Cloning a private Github repo using SSH auth in Rust has proved to be a pretty gnarly problem (for my anyway), so I thought I’d share this quick tutorial to help anyone else out that might be struggling with the same issue. I’m using git2-rs which has good interface documentation, but very few pieces of example code, so I set out to fix that somewhat with this post.

One of my main responsibilites at TotallyMoney was to take care of the in-house analytics/event logging framework. Like lots of companies, understanding what users do and how they interact with a product is to get good insight on. In this regard, people reinvent the logging wheel with various krimskrams attached, me being no exception. What I want to show in this post is how to integrate an event logging framework into a React/Redux application in a way that’s scaleable and testable. Unit testable logging is important when the rest of the business relies heavily on the events and the data in them like many companies do.

In between watching the rain and emptying all the shmoo out of my air compressor (long overdue), I decided to try my hand at some impromptu scraping this weekend. Matters were complicated somewhat due to me not owning a scraping tool, but I worked with what I have to make what I think are some satisfctory results. This post will be a short log of what went down and will hopefully demonstrate that one can achieve reasonably good (i.e. flat) results without having a real scraper.

Here’s a quick one; I’m making a Christmas display out of a bunch of serially controllable APA106 RGB LEDs, but how do I turn a value of 0 – 255 into a glorious RGW (Red Green White) struct with the correct colour, and the correct wrapping rules?

I’m fascinated by Rust for it’s safety and speed, but also because it’s simple to write low level code in what feels like a high level language. To that end, I’ve been working on a small Rust project at TotallyMoney.com (where I work) for the last week or so to see if it’s viable for production use. It’s a simple service that polls a Logentries endpoint for JSON, parses it and saves some values in a Postgres database. It’s not a very complicated task, but I saw this as a good opportunity to try Rust in a production-ish role.

Quick tip: if you’re looking for higher maximum speeds with your bipolar stepper motors, try wiring the windings in parallel instead of series. According to a short National Instruments article, it can increase torque at higher speeds, reducing the chance that the motor will stall during fast rapids.

Huanyang branded VFD drives are ubiquitous on eBay and other sites like AliExpress. I bought one some time ago with a 1.5KW spindle and have been controlling the speed manually with the difficult to use control panel on the front. It is, however, possible to control the VFD from within LinuxCNC using the M3 and M5 commands (I haven’t been able to get M4, reverse rotation, working yet). What’s also neat is we can get the machine to wait for the spindle to come up to speed before moving to the next line of GCode.