I spent a large part of 2019 working with the distributed and decentralized web, especially IPFS, also known as the “Inter-Planetary File System”. I’ve written a few articles on the topic, on how you can host a web app on IPFS, one of which even ended up on the front page of HackerNews.
For about a year, I hosted my blog and other apps through an IPFS cluster. I wrote a utility for making pinning files easier on Pinata, a third-party cloud service for IPFS. I made some small contributions to the IPFS core projects. I built some projects with…
WebAssembly, or Wasm, is an open standard that allows developers to build apps that run inside a web browser using compiled programming languages. With WebAssembly, it’s possible to write components of web apps in languages such as C/C++, Rust, C#, and Go, among others, which run within the same sandbox as JavaScript. This allows things like porting existing libraries, leveraging capabilities not available in JavaScript, and running code faster because WebAssembly is compiled into a binary format.
Recently I’ve been experimenting with WebAssembly to be able to run some Go code in the browser. Specifically, I’ve been trying to port…
In the fall of 2007, my parents gave me an unforgettable gift for my sixteenth birthday: a first-generation iPhone.
I still clearly remember watching the keynote in which Steve Jobs announced the first Apple-branded phone a few months earlier. As a teenager attending high school in my hometown of Vicenza, Italy, I tuned into the livestream just before dinner, carefully listening to every word he said. That evening, Jobs started announcing a “widescreen iPod with touch controls”, a “revolutionary mobile phone” and a “breakthrough Internet communications device”–theatrically pausing before confessing that he was actually talking about one single device: the…
I’m a software developer and I’ve been using a Mac for 15 years, when I got my first Mac running OSX Tiger 10.4. Throughout this time, professionally or not, I’ve been building full-stack apps with a variety of technologies, including JavaScript, Go, and PHP; for a while, I also worked on iOS and macOS apps, written in Objective-C (that was before Swift came to be). …
A few days back, someone opened a pull request for svelte-spa-router — an open-source project I maintain as a client-side router for single-page apps built with the Svelte framework — asking whether they should install the module as a dependency
or a devDependency
in the package.json
file.
Aside from the specificity of this case, I thought this was a great question in general — and worth discussing. When should we put a module dependency in package.json
as a devDependency
?
There’s actually official guidance on where to put a package, which is clearly written in the npm documentation. To quote exactly:
…
Even if you don’t know about signed Git commits, you might have seen the screen above on GitHub.
Let’s leave everything else aside from a moment — isn’t it oddly satisfying to have a large, green “Verified” badge on your work?
Making a commit verified, or to be more precise, signed, is not as hard as you might think. Just as it sounds, signed commits are well, signed, cryptographically using a GPG key.
Before we get into the how let’s talk for a moment about why you should sign your Git commits. …
Most apps require some sort of authentication. You might be a developer working for a large company on their line-of-business apps, which require limiting access to authorized employees and checking their permissions. Or you might be building a new SaaS app, and you want users to create and maintain their profiles.
In both those cases and more, your first step when building the app will likely be creating the authentication and user management workflows. That is, creating a sign-up form and a login page, at the very least. …
Last Sunday, America was watching the Super Bowl LIV, with hundreds of millions of people gathered around TV screens, drinking beer, and eating junk food.
For those who work in the business of food delivery, that’s the equivalent of Christmas day. And you better bring up your A+ marketing game for that.
Even though, frankly, I had no interest in football, that morning I woke up to an email from Postmates, the app that delivers food from local restaurants, with a deal that recovering-from-Saturday-night me found too good to pass: one year of their Unlimited service at 54% off, or…
Last December, I gave a talk at Node+JS Interactive in Montreal, with the title JavaScript apps going Inter-Planetary.
I was very excited to have the opportunity to speak for the first time at a large tech event, and I got to explain and demo something I’m very passionate about: building static web apps for the Distributed Web, and making them “production ready”.
After briefly explaining what is the Inter-Planetary File System (IPFS) and how to interact with it, I showed how to run a static JavaScript app ( JAMstack) deployed through IPFS.
To make that app accessible to anyone in…
I’ve been building a simple NAS for my home, and I wanted to store the data on a secondary disk, encrypted with dm-crypt/LUKS. There are plenty of articles on how to do that, but when it comes to automatically mounting the disk at boot, all of them recommend writing the encryption key in a keyfile and store it on the local filesystem.
This approach wasn’t acceptable to me: while the data would be encrypted at rest, the key to open the encrypted partition would also be sitting in the same place. If someone were to steal the physical server (imagine…
Cooker of great risotto. Sometimes tech nerd. Driving dev tools, @code & open source @Microsoft @Azure ☁️ Opinions are mine 🇮🇹🇨🇦🇺🇸