Hi I'm Francis Gulotta đź‘‹

I write about IoT, Robots, Education &

the Internet I Wish We Had

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…

TIL: Learning Together

TIL is a weekly learning event that I like to run with my teams. Every friday for 30-45 minutes we share 5 minute presentations on something we learned that week. There are only 3 rules.

  • 5 minutes to present
  • 5 minutes to prepare
  • Q&A throughout

I like to say that learning is the best part of the job. (It is for me!) And chances are if you learned something someone else on your team would want to learn that too. So this low stakes easy going way …

Distant Horizons - Francesco Gulotta

To celebrate my grandfather Francesco Gulotta's birthday, I am sharing a translation of his autobiography. It's a incredible story of his escape from fascism in Mussolini's Italy and his journey to the United States. The original was published in 1987 in the book "Orizzonti Lontani" which as far as I can tell had a small run in Sicily. It's title can be translated into "Far-off Lands" or "The Big Land" or even "Distant Horizons", all the translat…

Flashing the Sonoff S31 with ESPHome

A friend of mine turned me on to Home Assistant which is a wonderful open source home automation platform. It's privacy forward (a hard requirement for me) and includes energy monitoring. It's got a neat event based system, lots of out of the box integrations and a large community of people making, hacking and helping. But what good is a home automation platform without hardware for home automations?

So one of the first things I got was a wifi ou…

Maintaining a Twenty Year Blog

This past April Roborooter turned 21 years old. (First Post!) I started it as a fork of a friends blog and it was a place for my group of friends to post updates. Everyone eventually got their own blogs (or stopped blogging) and it was mine. The name "roborooter" comes from a joke I made with my godfather. It was 2001 and domains were too expensive for my teenage self, but he thought I should have one so he bought it. He wanted to see what I cou…

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 …

How to Stop Using Passwords

I've been softly recommending people start using 1Password for the past 5-10 years. I'm no longer going to be soft about it, you have to stop using passwords, they are horrible. 1Password is a password manager. The idea behind password managers is you have it generate a different password for every single website and service you use. It remembers them puts them in a "vault", fills them in, works on your phone, and you remember 1 password to unloc…

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…

Build Jeeps Not Ferraris

This video dates back to around 2010 from an unknown source but remains my favorite. I give a version of this talk at every company I join. It's nothing new, but if you haven't heard it you need to hear it.

Mean time to recovery is better than mean time between failures for most types of failures. This talk has some service oriented architecture to improve your failure domains thrown in for good measure.

Also my car is a 2008 Honda Civic and it i…

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…

Testing Architect with Jest

I'm building a small project with architect a lightweight framework to manage AWS Lambda, DynamoDB and few other services to make serveless web apps.

I wanted to make integration tests with DynamoDB for my project. Fortunately architect provides a sandbox library @architect/sandbox which runs a dynalite DynamoDB server under the hood. It's all in memory, cheap to start and stop and does most things DynamoDB does. It's perfect for this. However it…

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 …

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