I like .envrc because it keeps project configuration close to the project. I do not like .envrc when it becomes a little plaintext bucket of API keys, database URLs, seed phrases, blockchain private keys, and production credentials sitting on disk waiting for the next compromised dependency to read it. This is not primarily about accidentally committing secrets to git. You should ignore .envrc…
I built a personal AI assistant in Rust. It runs tools, remembers context, talks on Telegram, and every command executes in a sandbox. Here’s what’s inside. Think OpenClaw , but Rust-native. One static binary, no Node, no runtime, no npm. I’ve been building this for a while, but did not want to announce too early. Shipping it today. If you’ve been wanting to self-host an AI assistant that isn’t…
Rust’s performance is insane but requires a significant amount of manual work, unlike Rails which is highly opinionated but gives you everything. My server-side HTML templates for Constellations used Bootstrap with a CDN but I wanted to move it to a classic asset pipeline. This post explains how I built it. The way it works: All needed assets are built by your asset builder then copied in assets…
I currently work at Beam , and more specifically on the server-side API allowing our users to synchronize their data on all their devices. For privacy reasons, this API is E2EE and we don’t see anything except encrypted blobs. The private keys are stored on the user’s device. This API is currently in Ruby and called through GraphQL and REST endpoints. This API will potentially manage a lot of…
TL;DR : — Docker is great to manage your code, but it’s painfully slow on macOS 1 . By using Virtualbox or Parallels, you can make your Rails on Docker on macOS going way faster ( x20 on M1…). I ran benchmarks so you don’t have to. For years, when working on a Rails app, I would embed a Vagrantfile in the repository so anyone joining the project could do a vagrant up and start coding. Docker…
TL;DR — How I published this Jekyll website on IPFS within minutes, then spent a few more hours improving the user experience. A few weeks back, I wanted to play with IPFS and decided to deploy my website on it. It was way easier than I anticipated, and within hours, I had a pretty good understanding of what IPFS is, how to leverage it and published this website on it. What is IPFS? IPFS is a…
This previous article explains how to read ChaCha20-Poly encrypted data using Ruby or Python. My first goal is to ensure other languages can read data encrypted within Beam , but the end goal is to decrypt it within your browser, using client-side HTML and Javascript. Sadly, WebCrypto omits ChaCha20-Poly, and I had to move to AES-GCM instead. This extensive documentation says to use additionalData…
I spent days figuring out how to decrypt ChaChaPoly encrypted data with Swift CryptoKit using other languages. What should have taken me minutes took me hours. As a time savior, here is how you can decrypt it using Ruby or Python. I ended up reading the source code of swift-crypto to understand what’s the combined sealbox was doing. Use the following in Xcode Playground to encrypt a string: import…
After Apple’s announcement, I ordered an M1 Mac Mini and canceled it when I noticed the non-upgradable RAM. I then reordered it (16G/1T), and it has just arrived today :grin: You’ve probably seen many online reviews (I watched tons of them on youtube) and what everyone says is true. It’s fast! Pretty stable, and I can’t hear the fan even while compiling. Looking at my geekbench you’ll see it’s the…
Using @gmail.com for your email address is like living at someone’s house without rent and potentially being kicked out any day without warning. All your belongings inside, without any access. One of my first jobs around 1997 was being a sysadmin and managing email servers, writing sendmail.cf configuration files without M4, and I should have known better. Someone who used Gmail for over 10 years…