Historical Local Temperature Ridgeline

This app queries the Climate Data Online v2 API, which is provided by the US National Centers for Environmental Information agency. Put in your ZIP code and hit submit. Then the page will display a ridgeline chart of historical temperatures for the location.

Stand Up Set Helper

Stand Up Set Helper started as a command line desktop program written in C. I was learning C programming and had been doing comedy. I had noted the idea of an application that helps assemble sets. (“Set” means performance). The idea was that it would help by letting the user assign tags to jokes, allowing the user to easily pull up all of their dog jokes, for example, and instantly assemble a sequence of jokes about dogs. Jokes work better when they segue into and build on each-other. Putting together jokes that deal with the same subject matter makes them segue into each-other, naturally. Manually assembling a set this way is laborious, but I knew it could be automated to be very fast.

Data Viz: Covid Deaths in the US By Age Group, Over Time

As of this writing, October 20, 2021, total US Covid deaths are half what they were at their all-time high. But, Covid deaths among younger age groups, in the US, are at all-time highs. This begs for more insight. First, I did a streamgraph. This shows change in proportionality of the age groups, as well […]

Debate Site: Real Time, Diagrammatic Debate Interface, with Pfmindmap in React

Debate Site is based on the idea of empowering good-faith users and facilitating productive debate. It uses a mind map diagram interface, which illustrates the struture of the discussion.

Sample Metronome

Playing an instrument along to a metronome is helpful. It’s amazing how far off I realize my timing was, when I try to play with a metronome. It is an effective way to improve timing, and to understand what it is that you are trying to play.

Data Vis, Tornadoes in CT, D3 & Observable

There have been multiple tornadoes that tore paths through landscapes near me, in recent years. I know that greenhouse gas-caused warming is destabilizing the climates, I wanted to know if tornadoes are getting worse in my area. Looking at data in a table does not provide a clear picture, so I did some data visualizations. […]

Force Directed Layout for Mind Map Interfaces

I wanted to build a mind map discussion interface for a debate website. A mind map is well-suited to the debate use case because a debate begins with a “motion,” the thing being debated. So, the diagram would have one root node, and branches of discussion would extend outward from it. It would help users keep track of the various branches, review the overall conversation, and have thorough and productive discussions.

Tagged Notes – Simple but Useful

Tagged Notes is an Android app for notes. The idea is: you put tags on notes, and, that way, a note can be associated with different things. I get ideas I like to jot down. Years ago, I kept a small notebook in my back pocket. The notebook would get filled with thoughts, and many would fit in multiple categories.

Pfmindmap – Resolving a Fundamental Issue of Discussion Interfaces

Discussions are exponential, but discussion interfaces are linear. Anything you say can elicit multiple responses to it. Let’s say the average point elicits 3 responses. 5 levels in, we are at 243 branches of subject matter. This is how discussions break down. Does this sound familiar? Think about debates you’ve had. Many branches of subject matter arise. It’s hard to tend after them all. It’s hard to be clear about which one is being addressed. It’s hard to review what has been addressed and what hasn’t.

What is People’s Feelings?

Creativity takes many forms. Software design can be a creative medium. This is a site where I post about my creative projects. Some people make music, and some design guitars. The musician may consider some guitar creators to be artists. Tool-making can be a form of creativity, and it is a unique and powerful one. […]

3D Models for Icons

Icons are tough. They represent what the app does, but are tiny. Graphic design is a whole discipline unto itself, and styles are always changing. As a developer, what to do for the icon can be a head-scratcher. The icon should be understandable and memorable, so it is easy to spot. When creating an icon, […]

Shuffle Alarm Subdirectory Support and Thoughts on Wake-up Songs

The Shuffle Alarm app is an experiment to explore new ways to improve personal well-being. Can the mind can be brought into consciousness, at the beginning of the day, in a way that is more conducive to having a good, positive, or productive day? The Update The app didn’t originally support subdirectories of song files, […]

Shuffle Alarm – An Enjoyable Alarm Clock

Who likes their alarm clock? I never did, even when I would use an app that let me assign a song as the alarm tone. That would be ok for the first day or two but all it really accomplished was ruining a song I liked.

The solution is an alarm clock app that plays a playlist of your choice in random order, AKA shuffle. The result is like a radio station tailor-made for coaxing you into reality.

Choose good wake-up songs and load them into the app. This is done by simply copying song files into the app’s directory on the device. The more the better, but you don’t need too many to get started.

PFSeq, A Precision-Timing Audio Sequencer for Android

PF Seq is a precision-timing audio sequencer Android module. It is useful for music apps that require precise, rhythmic audio timing.

While working on the Sample Metronome app, it became apparent that precise audio timing can be a challenge because it is difficult to guarantee that code will execute at a very precise time. Trying to control sound timing by sending a play command with a timer produced unsatisfactory results. I tried Android SDK audio player classes MediaPlayer, SoundPool, and AudioTrack, which is the high-performance, low-level one. Even with the target times getting calculated correctly, the audible sound would not always play exactly on its mark. The deviations were small, less than 10 milliseconds by one measurement, but the ear can notice it, and it would be worse on some devices.