·

Hey! I’m James Long. This is my new personal website. I’m using Roam as a content management system (soon to switch to logseq). This is my personal knowledge graph that I’m sharing with the world.

·

Hope you find this content useful. I write things down frequently, and every now and then compile ideas into more polished posts. Below are my daily notes.

·

Pages you might find interesting: Coding environments

·

Been playing with Spline since I saw a coworker use it.

·

I saw this tool when it first launched but it seemed too simplistic, but after a second look it seems quite nice. It’s not meant for building complex scenes, but instead for fun 3d content on the web. They’ve probably added more features since I last looked too.

·

I could give a longer review (the UI feels clunky to me), but I’ll leave this note with the above. That’s what I did tonight. I learned something. And I’m trying to write more about what I’m learning daily.

·

I’ve long been interested in model-based testing as described in the fast-check docs. It’s a way to apply property-based testing to stateful code.

·

Property-based testing is like a smart fuzzer and will generate data according to given constraints and let you validate that a specific property is always true. Imagine testing that a database transaction is always atomic; you could generate a bunch of database mutations and group them in various transactions. When executing them, you can test that transactions are always either fully applied or rolled back.

·

I’ve dreamed of applying this to UIs for a long time. Every time I write a UI test I can think of many other situations which that test should run. I’ve made sure that a number on the screen is updated when an item is added by pushing a button, but what about when the item is added because it synced with the server? Or the user pressed undo and redo to add the the item back?

·

Over the last month I’ve been working on a custom zapier-like service to wire up several automations. Its just a server with a bunch of authenticated logins and custom workflows.

·

It’s nothing novel, but it feels great to have total control of automations. I’ve integrated discord, github, reddit, atom feeds, and more. I can take one thing from one place and post it to another place. I’ve set up a bunch of stuff for both personal use and my product Actual.

·

3 motivations for this: I want to make it easy for me to write stuff down. I can write stuff in discord and it’ll go out to various things. I’m writing this post in discord on my phone, and it gets sent to my Roam graph which my website gets published from.

·

It’s kind of neat writing this way. I can’t edit what I write. I can’t easily link to stuff either though — I’ll like go back and edit posts later.

·

The second motivation is to make it easy for me to consume stuff. It’s stressful trying to watch everything from GitHub to DMs and more. Everything now pipes into discord and I have a nice overview. I can also react to messages which logs them as things to follow up with.

·

The third motivation is publish content out easier. I can take things and automatically push them out to my website or twitter.

·

For that last part, I realized I wanted to publish easier once I started writing stuff down a lot more, because I was writing a lot of interesting things and I want to share it.

·
In macOS, when you hold down a letter key you see a small popover with available alternates for that letter (for example by applying accents). This behavior can be disabled, returning to the previous behavior where holding a key repeats that letter until you release it.
·
An objective comparison between Remix and Next.js
·

Love Remix! Next is great too.

·
A command-line tool to generate, analyze, convert and manipulate colors - GitHub - sharkdp/pastel: A command-line tool to generate, analyze, convert and manipulate colors
·

I can add any commentary is blocked underneath the embed. Nice that most things supports open graph and I can pull titles and descriptions from it.