After many months of effort, I have now launched Glimmer 0.1.0. Glimmer is a design system and collection of components for Yew applications in Rust. I developed this as part of the Visions VTT, and have now separated it out for independent publication. Current components include: Buttons Discrete step meters Fading image loaders and transitions Panels Notebooks Lists Sidebars I also provide two…
Last weekend, I ran a heist in the Wildsea . Wildsea is a game that was new to all of us, so while we had read the books, we were going in with very open expectations. As the Firefly (the GM for Wildsea) for this session, and with us intending for the game to be a one-shot, I applied many of my design principles for one-shots, however I also faced several challenges. In this article, I’m…
Since the spectacular photos of aurora from 2003, I have held a constant, enduring, desire to see the aurora myself. Finally, in October of 2024, I finally got the chance. I drove out to a darker area near Providence, and found a bridge where many other people had the same idea. Finding a place to park and pull out my camera, I found a lot of other people who had already set up to take pictures…
Today, I want to tell you a story of diagnostics, and a solution to a bug that made me understand a bit more about how electricity works. I had a strand of individually addressible LEDs which unexpectedly stopped working. As I moved from breadboard with jumper cables to a soldered circuit board, the color patterns that I had programmed into the LEDs were suddenly replaced with solid white at…
Luminance HDR 2.6.1.1Tonemapping parameters:Operator: FattalParameters:Alpha: 1Beta: 0.9Color Saturation: 1.5 Noise Reduction: 0 ------PreGamma: 1 August, 18, 2024 I ran across this in Maryland in August of 2024. The particular city I was visiting had a beautiful riverwalk with several footbridges across it. This clock was attached to the side of one of those footbridges.
( image source ) Long ago, my houshold had a home audio system that consisted of multiple components hooked together and then plugged into some speakers. Our system consisted of a Marantz receiver and audio router, a THX-certified 5-channel amplifier, a couple of 4-foot-tall speakers, and a CD player. We also hooked our tiny little 13" TV into this so that even though our screen was small, the…
As though I don’t have enough projects, I actually have another one. For the longest time, I’ve had a huge amount of frustration with Nix as a developer, because normal build tools are hostile to Nix, and the Nix build tools are fractious and don’t really function well together, or work with the build tools for other languages. Just in Rust, I have tried buildRustPackage ,…
Happy Friday, everyone! Last week , I talked about view models in my Kifu application. This week, I’ve continued on by actually implementing the most important thing that can happen in a Go application: being able to put a stone on the board. For this article, let’s talk put this request/response architecture into practice. You can watch me explaining and implementing this in my…
Good morning and Happy Friday, everyone! I’ve continued on with a couple of weeks of working on a new Go application (which I currently call Kifu, after the traditional name for a record of a game of Go). I have a set of goals for this application that mean that I have to make a very disciplined architecture, since I want to run the application on both Linux and on Android.
For the last several months, I’ve been doing a weekly one-hour coding stream. Starting this week, I’ve moved it to Thursday night (tonight!) at 8pm EDT (0000 UTC). In the last stream, I talked about a Kifu, what it’s for, why I’m trying my hand at building an application, and then I spent the rest of the stream designing the application in HTML form. Tonight, I’ll…
Snowglow, 2019-12 December, 01, 2019 Weather changes can completely transform a familiar space. I feel that snow can make the biggest (temporary) transformations.
Frostigita Arbo, 2022-01 In honor of the extreme freeze hitting the US right now, here is a tree that I photographed a year ago. I truly cannot imagine the experience of being unable to escape the cold. In a Factorio game (peaceful mode, no cliffs) that I’ve been playing for the last few days, I got my first construction bot off the production line at 4 hours, 49 minutes into the game. It…
Been a while, y’all! No sooner did I make my website multilingual than I ran out of any energy to actually do any writing. Nevertheless, I am back and it’s time to ramble a bit. Zettlekasten Over the course of the last year and a few months, I’ve gotten vaguely on the Zettlekasten (or Second Brain) bandwagon. I’ve actually been sticking to it, though I’m pretty…
Yesterday, I finally published a multilingual version of my website! I have translated multiple articles, but my last program did not understand that multiple articles can be the same article but in different languages. The new program understands that, so I can easily create an article in multiple languages and the program will link them together. My challenge: write a new article in Esperanto,…
Hello, everyone, and welcome back after a long, unexpected hiatus! COVID-19 has really done a number on my mental health and my activities, but I have managed to continuing to get outside to run, and nobody in my family has gotten sick. We’re continuing to largely self-isolate, with only occasional careful trips to the grocery store. I have kept myself very busy with a combination of…
Hello, and welcome back! Today, I get to announce that I have release FitnessTrax 0.1 ! FitnessTrax is a health and workout tracking program designed for individual users and following the privacy policy of keeping all of your data on your own computer. Data that lives there cannot be mined and exploited by third party companies that may not really have your privacy in mind.
In Memory of Amelia Perry Two years ago today, I woke up to the news that my friend, Amelia, was gone . Amelia was the victim of our country’s transphobia and inadequate response to mental health needs . She ended her life after six months intermittently in hospitals. Since then, I have participated in some of the same hospitalization programs as her. While I have been able to recover, her…
Recently, after a few failed attempts at using other frameworks to make an application that was both easy to use and easy to install, I embraced native software development with Rust and GTK. Though I have made short forays in the past, GTK was a change for me. Before this, most of my user interface experience came from building React applications. The transition from React to GTK posed some…
As a change of pace, today I’ll share a rough freehand sketch that I made this morning. I was sitting in my favorite spot in my living room and decided to do a quick fifteen minute “speed sketch”. This one depicts my TV, the stand it sits atop, and the various doorways leading out of the room. It basically skips out on all of the details sitting around.
I finally return after a bunch of weeks. December was an incredibly hard month, and the mental health problems I referenced in my last post actually became significantly more pronounced. I found that I had to take a large amount of time away from the world in order to get things back together. Last time I got this bad, back in 2013, I had the freedom to quit my job, sell my house, and go live in…
Welcome back to another week of my ramblings. Autumn here is quite thoroughly over, with Boston having gotten a couple of light freezes and a lot of dreary, watery weather. This picture is from more than a month ago, right around the time I was starting to get sick. Chances are, going on a hike and “taking the fresh mountain air” did not actually help my health at all, seeing as I then…
This is Barnaby Castle in Providence, Rhode Island. Some of my friends live here, and it is currently undergoing incredible rennovations. The castle was apparently neglected for many years, and fell into disrepair, but it is still a very recognizable landmark that apparently everybody in Providence knows about. Currently it consists of something like five separate apartments, with signs of room…
Hello, everyone, and welcome back to another round of my weekly ramblings! This week I was still a bit under the weather, but I did a lot of work and started setting up my new machine. NixOS For me, setting up a machine is a complicated process. I typically run NixOS where I can, and I run MacOS with a Nix overlay when I cannot. For running MacOS, where the OS comes pre-installed and ready on the…
Every week I try to post a set of ramblings about things I find interesting or things that I have done in tech for the most recent week. However, I’ve spent weeks sick. Longest illness of my life, to the point that I felt better while on bed rest eight days post-op than I did eight days into this illness. In the midst of this, though, I was able to celebrate my 41st birthday, complete with…
While normally I post these on Friday, this last week was quite busy and left me no time to write. And, in fact, I have very little to write about. I had a trip with my partner to New Hope, Pennsylvania. It was, as always, quite lovely, but there is very little to do in New Hope. I returned to start a job with a new client company, in the company’s office for the first time since starting at…
TGIF, and welcome back, y’all! I am currently struggling with some pretty severe mental health issues, so about the only thing I have the energy to do is write today. Worst part of this mental health issue is that it is mostly about anxiety, and fearing the worst in an upcoming event. But I cannot do anything to put the anxiety aside, and I cannot do anything to bring the event on faster so…
Happy Friday the 13th, everyone! This week has gone extremely well, with me finishing a project for work that will actcually help save lives. Lots of lives. And I for the life of me cannot actually think of any way in which the application can be used to create harm. At the same time, I’m tuning my tools, and this week, that means my shell. I’ve been working on switching my shell…
Base Setup Typescript Jest, Enzmye, and Fetch Mocks Compiling in HTML and CSS Continuous Linting All at once I recently started a typescript project from scratch. With no pre-existing setup, and very little prior typescript experience, I had to set up the entire development environment to support it. In doing so, I found that there was really no coherent set of instructions for bootstrapping a…
As the last festiges of winter come to an end, here is a batch of photos that I took a month ago. This was in Middlesex Fells in Boston, a short distance from where I live, right after a snowstorm that drop a foot or so of snow for seventeen hours.
Take a picture that tells us who you are, without actually showing your face. For my self-portrait, I could think of nothing more appropriate than my work desk. Not precisely as I have it day-to-day, but not greatly rearranged, either. The distinction between who I am and what I do is pretty minimal, for better or for worse. trans code on the screen wacom tablet nearby camera parts home-made…
Welcome to 2019! In this new year, there are several different things that I am trying to do. Not to worry, as I actually started on most of my resolutions on my birthday back in October. But here is a new one that I’ll be doing in public. The Dogwood 52-Week Photography Challenge . I will get my first photo published over the weekend, and keep an index of the photos here.
Some weeks ago, I had an instance in which I was planning to do in person volunteer recruitment for Freedom for All Massachusetts . Now, this is very different from canvassing, as I found out about when I was at Pride. There is no “hide your politics for a bit because we need accurate information”, this is “assume everyone you talk to is on our side because we’re trying to…
**Content Warning: open discussion of mental health care, suicide, and religion** Here’s why psychiatric hospitals are so bad at helping transgender patients Amelia Perry was family to me. Four months later I get by only by forgetting that she’s gone. Every day, on social media, I see people telling me and others like me that being transgender is a mental illness or that we need to…
This day, the feast of St. Valentine (or whatever), is a day for lovers to get together for nice dinner, romantic dates, and possibly some great sex. I generally find it to be a rather gross mix of cisgender, heteronormative performance and unspoken expectation, in which mind reading is a required skill. So, what happens in queer communities in which most people involved have multiple partners and…
Tonight, I want to tell you about a dear friend. Someone very important to myself and to my partner, Daria. Hir name was Amelia. Ze took hir own life late in the night last Tuesday. I found out as soon as I woke up Wednesday morning. A week ago today. Amelia was gorgeous. Ze was brilliant. Ze sparkled, flirted, brightened spaces, tied innuendo into unexpected sentences, and could talk about…
Error handling is a big deal for me. I have probably studied this more than anything else in Haskell because I find it so important to carefully handle unexpected errors. I have presented on this before , but those older presentations lacked a nuance of understanding that I have developed in the last few years. This article carries on from my previous one, Abstracting the Monad Stack . In that…
As a sidenote, my previous articles were all in terms of a fictitious image processing program. I am actually very interested in image processing, but that is not the code I have on hand, so for my examples, I am switching over to a health-tracking application that I’ve been working on for a while. I’ll probably change the previous articles to reflect it. I am making this change,…
We want to get productive in Haskell very quickly. Most non-trivial applications will have configuration, connections to the outside world, can hit exceptional conditions, and benefit from having their operations logged. If your application has sensible logs at both high an low levels of detail, your devops team will thank you and your life of debugging a production application will be a happier…
One way or another, you are going to need to configure your Haskell application, and for that you have three major ways of doing it. I recommend choosing one and sticking to it. You can choose multiple ones, but it is important that you minimize one of them in order to keep yourself out of the mind-numbing tedium of consistently combining multiple input parameter sets and their overrides. Your…
For the next ten days, my resistance against fascism is to sit with an enby who has just undergone surgery. The kind of person and surgery that self-proclaimed “decent folk” believe is an abomination worthy of death. If you are one of them, fuck off. A Quiet Walk, Interrupted Yesterday, my friend and I were out walking along the Delaware Canal Towpath in Morissville, Pennsylvania,…
Welcome to 2017! In a few days I move away from Austin, likely never to return. I grew up in Round Rock. I went away for a few years, and then I returned here to begin my career and my adult life right during the dot-com crash. I’m actually a lot older than I look. Many people upon meeting me seem to assume that I’m 27 or so, when in fact I turned 38 late this year. “Wait, how…
nix-shell , the command that creates a subshell after evaluating any nix expression, has a lot of uses. I found it very useful in my devops work when I had multiple environments to administer, but had to use different tools for each. The shell provides excellent help in isolating my required tools to the environments involved. A trick, though, lay in learning how to acquire those tools when the…
I did not sleep well the night before. Thoughts of missing my alarm plague me the night before an important but extremely early event. Most of the time I have to be moving for a flight, but this day I needed to be at the surgical center at 5am. Daria had it under control. Zie woke me at 4. We were out the door at 4:30, and we arrived at the surgical center at 4:50. After that, I put my fate into…
How does one speak of the departure of a cherished friend? My dear, loyal friend for almost eleven years passed beyond at 1:40 am on Friday, September 30th. He spent the last five hours of his life in a hospital. I had thought that I was taking him in for a dangerous but curable condition. Instead, I took him in to discover that he had a creeping condition, largely undectable, that was going to…
I hacked out a small GTK utility last night. The problem, and this really only applies to Linux, is that the Sony NEX-series cameras don’t record the color temperature and green/magenta balance in the exif data. They do, however, record an RGGB line like so: WB RGGB Levels : 2068 1024 1024 2160 ufraw on Linux doesn’t recognize this. With a couple of experiments I figured out what these…
Earlier this evening I gave a presentation on doing GTK+ programming in Haskell. Here is the presentation for all those who could not be there. HTML Slides