I built a small proof-of-concept for a system that enables real-time bidirectional editing between any modern code editor and a GUI, enabled by an LSP 1 server. Code-based CAD I like working on small projects at home that benefit from CAD. I’m also a programmer with a personal development environment that I’ve spent years making as cozy as possible. Naturally I’ve been interested…
I received a surprising scammy email today, and I ended up learning some things about email security as a result. Here’s the email: I was about to mark it as spam in Gmail and move on, but I noticed a couple things that intrigued me. At first glance, this appeared to be a legitimate PayPal invoice email. It looked like someone set their seller name to be “Don’t recognize the…
I’m a frequent user of YouTube’s “Watch Later” feature, which lets you save videos to a special playlist for later viewing. My Watch Later list grows and shrinks as I add videos I’d like to watch and remove videos that I’ve either watched or decided I no longer want to watch. The length of time that a video will spend on my Watch Later list varies significantly.…
I made some custom text notification tones for my phone today. I like the default iPhone text tone: Your browser does not support the audio element. ⏵ Note (Default) Apple It’s probably one of the most recognizable pieces of recorded sound. But I wanted something a bit more personal. Something close enough to the default to be recognizable, but distinct enough to feel like it’s mine.…
I recently did a little experiment to see how small (in bytes) I could make useful valid HTTP responses for a particular use case. Background On my homepage , I have a little feature where I display the names of the last song I listened to and the last movie I watched. I’ve implemented that via a bit of JavaScript that fetches that information from a pair of Lambda functions that make…
I’ve got a new website where I’m sharing sketches and experiments that would normally never leave my computer: james.land . It’s inspired by things like Lu Wilson ’s tadi web and talks about sharing work and by Lars Doucet’s Garbage Fountain . The things I post there will be often be half-baked, unfinshed, an buggy. But more importantly, they won’t be stuck on…
I got some fancy new speakers last week. They’re powered speakers and they have streaming service integrations built in, unlike the 35-year-old passive speakers I’m upgrading from. Overall they’re great! But they’re so loud that it’s difficult to make small volume adjustments within the range of safe volume levels for my apartment. To solve that, I’m building a…
I’ve begun to prefer tote bags to backpacks for days when I’m not walking far enough for the ergonomic benefits of backpacks to become necessary. After trying and failing to find a tote bag that matched my preferences closely enough, I decided to make my own. I was already interested in bag design, and I’ve been learning to use Gabrielle’s sewing machine to mend and alter…
I made a tool for analyzing the size of the data in JSON files. Go check it out at json-space-analyzer.com . It’s meant to be useful when you’re working with JSON data that’s bigger than you think it should be, and you’d like to understand why, but it’s so big that it’s difficult to build intuition about what’s taking up all the space by looking at the raw…
I occasionally work on toy software projects on weekends. I use these projects as an opportunity to try out tools, frameworks, and languages that I’m interested in or that I think might be useful at work. This is a collection of micro-reviews of things that I used on json-space-analyzer , my most recent weekend project. Contents Bun Cursor Cloudflare Pages GitHub Codespaces Not using React…
I spent a recent flight finding out what I could do with a connection to the flight’s wifi, but without access to the internet. I was on my way home from Strange Loop, a direct flight from St. Louis to Oakland. It’s a long enough flight that I planned to purchase the $8 internet access and get some work done, but Southwest’s wifi portal wouldn’t accept any form of payment.…
I recently completed the first version of a new work desk that I’m designing and building, inspired by Teenage Engineering’s Field Desk , along with a website where you can configure your own and get links to purchase the materials and hardware needed to build it . I call it the Meadow Desk. This post describes the inspiration for that project, the process of working on it, and its…
I wasn’t much of a runner growing up, but over the past couple years I’ve begun to really enjoy it. Last year, I trained for and ran a half marathon and a handful of shorter races, finishing with times that I was pretty happy with! Having a race to look forward to and train for helps motivate me to run more frequently and to run longer distances. I’ve found that when I…
I’m excited to announce that I’m joining Arcol to work on the future of building design software! Arcol’s ambitions are at the intersection of a variety of my interests: innovative software for professional creative work, ambitious and challenging technical problems, and architecture. The cross-pollination of architecture and computing fascinates me, starting with Christopher Alexander’s concept…
I love the Casio F-91W. After getting one in high school, I wore it all through college and continued to until upgrading to an Apple Watch earlier this year. I love the Apple Watch too, but often miss the feel and the simplicity of the Casio. In order to get a bit of that feel back, I decided to put the band from the Casio on my Apple Watch. I figured that there would be plenty of examples of…
I really enjoy seeing live music. People have asked me how I find out about shows to go to, and having a list of links to send them would really make it easier to answer, so that’s what this blog post is. I plan to keep it updated as my methods change. I live in San Francisco, so most of these links will be SF-specific, but the ideas can be applied anywhere. There are a few primary ways that…
Elm is a language designed for building reliable and robust frontend applications. Its purely functional nature makes it a great language for frontend developers who want to get some exposure to functional programming. I think Elm is great, but some of the concepts and patterns commonly used in Elm applications really confused me when I was first learning about it. I’m hoping that these…
I’ve always loved watching movies. This started way back when I was in elementary school and my dad designated the largest room in our house as the movie watching room, to be used strictly for watching movies. Since then, movie watching has remained my favorite form of passive entertainment. I signed up for MoviePass a while back, which has led to me watching movies way more frequently than…
I’ve gone through quite a few revisions of my note-taking process and now that I’m in my final year of school, I think I’ve finally found a system that I’m going to stick with. In this post, I will describe this system and explain why I like it so much. tl;dr : I write notes in Markdown with Vim and Vimwiki on my computer and with Markor on my phone, keep them in sync with…
This week’s interview features Jay Kamat ( jgkamat ), a Computer Science student at Georgia Tech. I first found Jay through his work on qutebrowser and was impressed with how much work he had done on the browser and with how welcoming and helpful he was in the Github issues and on IRC. When I found out that he is the same age as me, I thought he would be a perfect person to feature in this…
A while back, when I was relatively new to running a VPS (I’m still new, but I’m less new than I was then), I was looking through my sshd logs and noticed that I was getting a ton of malicious login attempts. This initially freaked me out a bit and I wasn’t sure what to make of it. Eventually I learned more about how to properly secure my server and in the process, I ended up…
In this first post in my series interviewing students in open source, I chose to interview fellow UCLA student Timothy Gu ( TimothyGu ). Timothy is a first year Computer Science student here at UCLA and he has been active in open source since he was in High School. He is a maintainer of Node.js and a contributer to pug , FFmpeg , and the whatwg html standard . Interview Sunday, April 15, 2018.…
As I approach the end of my undergraduate years at UCLA, I’ve been spending some time reflecting what I’ve learned and the improvements that I have made to my workflows for classes, coding, and general college life. There are a handful of skills that I have learned and processes I have optimized for myself that I would love to have learned or optimized earlier on in college. In this…
I’ve been interested in the open source world for about as long as I’ve been interested in programming, and despite wanting to ever since then, I didn’t start contributing to any projects that I use until relatively recently. I think that the main reason for this is that I was intimidated by the scale of the projects around the open source software that I used and by what I…
I usually spend a good chunk of my free time reading articles and listening to podcasts on software development, tech, and other industry news. Over the past few months, I’ve been spending a growing portion of that time learning about personal finance. At the time of this writing, I have just a few months left in college and at the beginning of this quarter the reality that I am soon going…
I recently began using a web browser called Qutebrowser . I heard about it on Hacker News a while ago and it caught my attention because it encouraged a completely keyboard-based workflow. I’ve been surprised at how much I’ve enjoyed using it and it may very well become my primary web browser. In this post, I will talk about how I got started with Qutebrowser, what makes it unique,…
If you live in a major city, there’s a good chance you’ve used (or at least heard of) food delivery services like Postmates, GrubHub, or DoorDash. These services are great for times when I’m behind on groceries or when I’m getting some late night studying in before a big midterm or final. The only problem with these is that they’re not cheap. For a single order, the…
I recently gave a short talk at the UCLA Linux User Group about Systemd Timers and how they can be used as an alternative to Cron jobs. If you’re interested in a quick introduction to Systemd Timers, please take a look at the slides or download the PDF .
I’m taking a class now on programming languages where I’m learning all about the different styles of languages and how they can all be useful, as well as a class on computer networks where I’m learning all about how the internet works and how computers communicate with each other across networks. I had the idea last week to try to combine what I’m learning in the two…