Open Source Software

Working on open source software is a hobby turned career. I love how you can modify the tools you use and contribute the changes back so everyone can make use of it. You can find most of my work on GitHub.

There are 25 posts with this tag.

Releasing on GitHub Actions

I wanted to make a "CLI Tool" for orchestrating a "Website" deployment to a web host and I wanted to build and use this CLI tool in GitHub actions. GitHub has a ton of flexibility and features that should make both publishing the tool and deploying the website straightforward. This is the process I found that works for me.

Goals

  • Manually initiate a production deploy of my website from main or a specific commit
  • Tag the deploy with an auto increme…

Wasm is the new CGI

I read a wonderful twitter thead about CGI and the birth of the web and this triggered a thought I've been kicking around.

Wasm is the new CGI

And to be clear I don't mean the Common Gateway Interface as a protocol. I mean what CGI and the cgi-bin application model brought to the web. They allowed people to easily write code that makes websites interactive. This shifted the web from an archive of documents to a vast network of applications. It …

Node SerialPort v10 has been released 🎉

(Cross posted from our Open Collective Page.)

This past year has brought a lot of really good change to Node Serialport. First and foremost we have a new maintainer who personally lead our c++ codebase to the modern area by implementing N-API support.

Please welcome Gareth Hancock to the team 👏

Now for the changes! (Jump into the upgrade guide if you just want to get started!)

N-API Support

The number one support issue we have has to do with ins…

Inside Out Async

I nerdsniped myself and made a handy async utility that turns Promises and AsyncGenerators inside out. This is very handy for testing and useful if you're done non trivial transformations of events into async generator or promised based apis. I call it Inside Out Async.

My development journey was posted in realtime and preserved below.

Lessons Learned Testing Serverless Libraries with Architect

I'm building a library to be used on Amazon Lambda and the hardest part of testing a library designed to run in a serverless environment is having a local environment. A lot projects have these issues, and there are many ways to solve them. Some run local services via docker and k8 with a lot of overhead, others spin up test server environments in the cloud which take a very long time, and yet others choose simulators. I chose the Architect Sandb…

Livestream: WebAssembly GraphQL Client

I met Connor Hicks through work. We both work on webassembly powered projects in our day job and he builds a really cool platform called Suborbital. Which you can think of as a lambda for webassembly modules. Actually I like to compare it to architect. It's a framework that tells you how to build your project, split up the code into functions (or runnables as suborbital calls them), and then tell you how to connect those functions together to b…

Livestream: Gregor on Github Actions for building SerialPort

My friend with Gregor Martynus asked on twitter if anyone needed help with github actions. "There are no unworthy ideas" he said. So I raised my hand. I need help with SerialPort.

Gregor asks if anyone needs help with github actions on twitter

I've been wanting to ship all SerialPort c++ bindings inside the @serialport/bindings npm package for a long while but getting it to work across several different CIs was near impossible. With github actions I've got every machine type available and coordinating them w…

Async Rust and Node SerialPort

This year I took some time around the holidays to do some learning. Like last year I dove into rust but I didn't go into it cold this time. I was gifted a "live book" called Rust In Motion which has audio, slides and text all mixed together. It was fun and covered the basics in a very approachable way. So I had that base which I had been building up over a few weeks, and my SerialPort co-maintainer Nick Hehr sent me a text about NAPI.rs. I don't …

How To Make Your Website Truly Serverless

As of today you can read this website without a web server by visiting dat://roborooter.com. If that link doesn't work for you, you'll need a DAT capable browser like Beaker Browser. And in early 2020 you probably don't have a DAT capable browser yet, so go get that. While I've been working in the serverless world a while, this is actually without servers and much more deserving of that name.

The difference between the DAT version of this site an…

Serialport Spring Update

Serialport turns 9 this year. Back when it started NodeJS was a different environment than it is now. JavaScript was a different programming language than it is today. Since then I've pushed some major changes over the years to keep us modern. I made the (then) painful decision to drop old versions of node even though some devices would never see the updates to newer runtimes. Sticking to supporting only the LTS (Long Term Support) versions of No…

8 Bit Firmata

The Firmata protocol is used for a variety of uses, from home automation to robots. Any time a computer needs to control a low-power device you might find it being used. It's built upon MIDI, which is a very old protocol used mostly for music. Because of MIDI's simplicity, microcontrollers (like the Arduino) can parse it without much overhead. Even though it was standardized in 1983 it's still in use today in the music, theater controls, and robo…

Async Generators

I started streaming-iterables a few months ago to learn how to use async-generators and it was hard. The concepts all sound very similar but there wasn't a great resource that spelled it all out, even MDN left me wanting more. In this post, I will layout the terminologies and show how they work, and then I'll follow up in another post with some examples using streaming-iterables to taking advantage of how of it helps manage workflows.

Before I ge…

First Commit in NodeJS Core!

I've got a few commits around Node.js's related projects. One or two on npm, countless on node-serialport, a few on node-pre-gyp, many others. It's been a nice long line of fixing bugs for myself and seeing small messes and cleaning them.

Now I have a commit on Node.js itself =)

A little while ago I saw this tweet from my friend Myles. He works on maintaining Node.JS LTS and making sure our apps won't break as they age.

Oh hey... do you know a b…

Node Serialport v2.1.0

A few weeks ago I started maintaining node serialport after a long hiatus. We hadn't had a release in about a year and we had some outstanding bugs that I wanted to tackle. I had also introduced some complexity around testing, years ago, that was never removed and seemed to be making it harder to work on the project. Exactly a month since my first beta release we've released serialport@2.1.0 which is one of the larger releases we've ever had. Thi…

Roborooter.com © 2024
Powered by ⚡️ and 🤖.