16 February 2024

74 links · Friday

The Risk of Dying Doing What We Love - Soaring - Chess in the Air

Many of us participate in activities and sports that are at least somewhat dangerous.  However, most of us also do not have a full appreciation of how risky these activities really are, especially compared to other things that we could be doing instead. We jus…

Using Arduino Language Server With Neovim

In this post we’re going to configure neovim to work with Arduino Language Server. Nvim Lsp Config Neovim comes with an LSP client included, nvim-lspconfig is a plugin that helps us configure the client so it can talk to LSP servers. This configuration shou…

Dependency solving in Nix

I’ve written a lot about the Nix build system over the past decade, but one complaint I keep coming across is that Nix requires dependency constraints to be “solved manually”.

I Shouldn’t Have The Right to Disrupt Your Life

There are protests, and then there are protests. Some protests are peaceful non-disruptive demonstrations. They gather large groups of people in places where they cause minimal disruption to the li…

How to feel when your startup feels easy

I did something hard once: I took my startup from zero to $1m in daily volume in 4 months. Something has bothered me ever since: it felt…

You won't scale

One of the more common myths I try to debunk around vanilla JavaScript and simpler approaches to web development is that they don’t scale (they do, actually). So I really enjoyed this post on Mastodon from tante… You won’t grow to Google/Amazon scale. It’s fi…

Climbing out of the rabbit hole

“Climbing out of the rabbit hole” is a private Google Doc circulated to friends sharing Metalabel’s reflections on the crypto scene. We gave permission to those friends to pass al…

Selecting hardware for a server

I see a lot of people worryingly mistaken about what a server needs (specifically, a home server). Some think that a bland and incredibly ignorant '20% budget for CPU, 30% for GPU, and the rest for the rest' plan for selecting hardware is good enough (at least…

Protip: Notes in your zsh prompt

I tend to follow good practices. For example, commit certain things in a particular git branch, that should be re-based of another branch that tracks the upstream. However, sometimes I just forget that, especially after not working on that particular code base…

studiolanes blog

Tech blog documenting interesting concepts and ideas in technology

Alternative BigInt ID identifiers for Rails

Rails comes with default BigInt IDs for your primary keys since version 5.1 (replacing regular Int) and offers UUID v4 as an supported alternative since version 6. But what are the alternatives and what to use in your next app?

E2EE on the web: is the web really that bad?

In my last blog post, I discussed why people often view the web as a uniquely unsuited platform for implementing end-to-end encryption (E2EE). This view is that the web doesn’t offer a long-term trustable notion of what the application is. In that earlier post…

The future of self-driving

Modern self-driving technology still has a way to go before it becomes generally safe, and useful enough for broader adoption. While I do believe that at som...

How Working From Home Changed My Life

In the profession of software development, the transition to remote work has been a significant shift for many, including myself. My journey into the world of working from home began well before COVID-19. It started as an experiment with flexibility, gradually…

Weekly Update 387

Sydney Speaking Events; Ransomware Payments Exceed $1B Annually; HIBP RDBMS Rollover; OpenAI Sora; Sponsored by Kolide

I Built a Tiny Tool for 1-on-1 Meeting Topics!

Just a quick announcement: I built https://1on1.help as a tiny tool to help source questions & topics for one on one meetings.

My Sixth Year as a Bootstrapped Founder

Six years ago, I quit my job as a developer at Google to create my own self-funded software business. This is a review of my last year and what I've learned so far about bootstrapping software businesses.

Anatomy of an App

How do we build mobile apps? What are the various components and layers and pieces that we need to fit together to be successful in architecting a new app?

Video generation models as world simulators

We explore large-scale training of generative models on video data. Specifically, we train text-conditional diffusion models jointly on videos and images of variable durations, resolutions and aspect ratios. We leverage a transformer architecture that operates…

Code Maze Weekly #202 - Code Maze

Issue #202 of the Code Maze weekly. Check out what’s new this week and enjoy the read. .NET and C# Top Picks 8 ways to set the URLs for an ASP.NET Core app [andrewlock.net] Did you know there are 8 different ways to set the URLs in ASP.NET Core? If you didn’t …

.NET MAUI on .NET 9

Last Tuesday, the first preview of .NET 9, an STS release, was released along with Visual Studio 2022 17.10 Preview 1.0 A detailed blog post describing the Vision for .NET 9 is here and what’…

Hello, MongoDB - Getting Started with Mongo and dotnet 8

Discover how to seamlessly integrate .NET Core applications with MongoDB using Docker. Learn to perform basic CRUD operations with MongoDB from within a .NET Core app, all through straightforward, easy-to-follow steps. Whether you're looking to enhance your cu…

API Part 7 – Swagger Comments

In the previous post, I introduced Swagger and showed how to set up your project for Swagger. In this post I will show how to add Swagger comments to annotate your program.

Making my bookshelves clickable | James' Coffee Blog

You can make regions of an image clickable with a number of techniques, from overlyaing an SVG that contains onclick JavaScript handlers all the way to using image maps. I love this idea. I started to think about how I could create an image of my bookshelves t…

No one cares about open-source, until …

If you follow privacy news, you have probably heard that Skiff, an end-to-end encrypted productivity suite, announced that it has been acquired by Notion. We could not resist chiming in since Skiff was compared with CryptPad in the past.

What is Developer Relations?

Developer Relations (DevRel) serves as the bridge between companies and developers, ensuring that both sides understand and benefit from each other's work. In the tech industry, building relationships with the developer community is essential. At its core, our…

How to Talk to Your Date versus Your Customer

Introduction When I was younger, I thought dating was primarily about “impressing” someone enough that they would somehow find you attractive. After discussing this with my therapist, I now understand that my lack of self-confidence led me to feel like I had …

The Generative Internet

Generative AI is opening the doors to new products. It’s great to witness in real time how the Internet is evolving and to imagine what it might become in the coming years. Search, UI navigat…

varoa.net | Galo Navarro

I have found that the concept of test types (unit, integration, and soon) does more harm than good. People often give me odd looks when I saythis, so having ...

Keywords for Top 10 Languages

note: this does not include symbolic operators (*, ||, &&, etc.) Python: 35 False, None, True, and, as, assert, async, await, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, pass,…

Nerd Sniped - Solving for Jumbles and Letter Boxed

tl;dr I got nerd sniped by a problem and wrote a solver for it. You can find it here. The Problem Apparently it’s impossible to determine if someone is capable of coding without asking them arbitrary puzzles that are in no way related to a realistic job. Resum…

Should I record my life?

Say audio or video record most or all of my conversations

Optimizing SQLite for servers

SQLite is often misconceived as a "toy database", only good for mobile applications and embedded systems because it's default configuration is optimized for embedded use cases, so most people trying it will encounter poor performances and the dread…

Node People vs. Edge People

Over the course of my study and career, I've come to realize that people largely fall into one of two groups of thinkers - they're either node people or edge people. With most dichotomies, there is usually a huge amount of grey area. This is one of the rare ca…

Naming is Important

Why should we care so much about naming as developers? Code comes and goes, but language prevails. When a team is working on a project, they must develop a shared language on how things work, how they are structured, and how they are related. A database schema…

Chasing a bug in a SAT solver

Recently I spent two weeks collaborating with Prefix.dev to further develop resolvo, their SAT-based dependency solver. The main goal was to fix a nasty bug, where the solver unexpectedly panicked upon hitting code that was supposed to be unreachable. “That wi…

Computing Truth Tables in Org

Truth tables are great way to design and verify combinational logic. Useful as truth tables are, they however can be onerous to write: as the number of inputs grow, so does the size of table...