Blog

close

Radford Racing School

Cars

I’ve always loved fast cars. Most of my adult life has been focused on being the best software developer that I can be, so my other hobbies, like cars, suffered. Now that I am retired, I did some life reassessing. One of the things that I feel like I missed out on was enjoying cars more. I decided that I wanted to do more than just zip around on the street. I wanted to race cars on a track.

I don’t have any professional aspirations to become a race car driver. I just want to do my best to win and enjoy the process. I decided that I would race the car I have rather than buy or build another one. I have a 1971 Corvette that has had the suspension, brakes, engine, and transmission all updated. There is a little more work that I need to do to it to get it ready for autocross or road racing, but I think it will be a good starter car.

Racing School

Since I know very little about road racing, I figured that I should go to a school to learn more. Radford Racing School came up immediately when I began searching for a racing school. I had a bit of good luck. They were having a Black Friday sale on classes and they were located in Arizona, which is where we were headed for the winter. I booked a 3 day high performance driving course almost immediately.

I probably wouldn’t have gone if not for the Black Friday sale, just due to the cost alone. After going to Radford, I get why it is so expensive. They have two full-size race tracks, a big autocross course and a couple skid pads. There is a large full-time staff of instructors, administrative people, and mechanics. Their fleet of cars is massive and requires constant maintenance. They go through gas and rubber like nobody’s business. I think the school is actually reasonably priced for what you get.

Classes

We had some class room time where fundamentals were taught us. Things like where to look and how weight transfer affected traction were some of the subject we were taught. There was surprisingly, little time spent behind a desk. Most of our time was behind the wheel.

One of the first and most important things you learn is accident avoidance. We talk about it in class and they run you through a series of drills to make sure you can pull off the maneuvers. Some of the maneuvers were pretty hard. Braking at 65 MPH while swerving to miss an obstacle was quite challenging in the distance they gave you.

We did a lot of autocross to hone our skills before hitting the track. I didn’t think I would enjoy the autocross stuff as much as I did. Racing your car through cones just didn’t seem like a lot of fun, but I was wrong. It might be something that I try and get the Corvette out to do next summer.

We also got a a lot of driving time on the full size race tracks. I had the time of my life. We also got some good one-on-one time with the instructors who would both take you for ride alongs and would ride with you. There is nothing better for learning than to be in the same car with someone who really knows how to move that machine around.

Was it worth it?

Yes, in fact I probably will go again. They offer more advanced courses that go beyond what we did. I was learning new things right up till the very last minute and know that I have more to learn. First though, I’m going to take what I learned and refine it. Next summer I hope to get to do some road racing where I have a chance to develop myself and maybe then I can get more out of a follow up course.

Vanlife 2021

2020 Sucked (For Everyone)

We got back to Centerville, IA just as the world was entering lockdown in March of 2020. We were pretty strick with out protocols, so we didn’t even much leave the house until vaccines became widely available. Needless to say, there wasn’t any van adventuring happening, but Nic got really good at making sourdough bread and I wrote an outliner application.

I’ve got no regrets about how we spent 2020 and most of 2021. It was hard, but my parents are getting up there in age and Nicole is an ex-smoker. Covid could have taken anyone of us or left us with a permanent disability. Thus far it hasn’t and I will do what I can to keep it that way.

Covid and Vanlife

We spend a lot of time isolated and outside while living out of the van. I think most people focus on that and don’t realize how much time we spend in public places while traveling. The most common public place we go to is the gym. That is our main place to shower.

We decided that since we were vaccinated and boostered that it would be safe enough for us to get back to using the gym again. But just in case we got some variant that is vaccine resistant, I installed a shower on the van so that we could avoid the gym if we needed to.

It holds 7 gallons of water and is black so that the sun can heat it. You pressurize it using compressed air.

We used it for the first time yesterday. I used my onboard air compressor to give it pressure. Thankfully the shower has a pressure release valve. I over compressed it (after only a minute) and it shot water two feet above the top of the van as I frantically tried to shut it down. Afterwards Nicole successfully used it to wash her hair. The campground we are currently at in Kearney, AZ doesn’t have any showers and we are a long way from a gym, so the new shower immediately proved itself.

Vintage Campers

Backtracking a bit, we stopped at a really nice campsite that had restored, vintage campers and some cars in Albuquerque, NM on our way to Arizona. After getting settled there, we immediately grabbed a couple beers and toured it.

Radford Racing School

Our next stop is in Chandler, AZ and the Redford Racing School. They have a 3 day performance driving course that Nicole and I are going to take. We are really looking forward to the adventure. I’m very much a car guy and Nic just likes to drive fast. We’ll be driving Challenger Redeye’s that have almost 800 HP. Those cars have two different keys. You have to have a special one to unlock the full engine potential. I doubt we get that key right away, but hopefully by the end of the course we’ll get to open those Mopar’s up.

Feels Good

We’ve been out for about a week now and are finally getting back in the groove and it feels good. Everything is a lot more work, but the routine becomes the norm, and soon we notice it less and less. Eventually, it will seem like this is how we’ve always lived and we will have to work to remember what it is like to live in a normal home.

Shortcuts for Micro.blog

Announcing Humboldt

Humboldt is a new Open Source project I put together so that I could use Shortcuts to post to Micro.blog. Humboldt is built on top of Snippets from Micro.blog, which does the heavy lifting. Humboldt only exposes a small portion of Snippets, so there is room for Humboldt to grow in the future if there is demand for more functionality.

Humboldt is available for both macOS and iOS in the App Store.

The Main Humboldt App

The main app walks you though the usual Micro.blog sign-on flow. You just enter the email address you use for Micro.blog and wait for your sign-on email to arrive. When it does you just click a link in the email and you will be routed back to Humboldt which completes the sign-on for you. That’s all the main app does. You are now ready to begin building Shortcuts that communicate to Micro.blog.

Post HTML to Micro.blog

The main shortcut to use is the Post HTML one. You can submit just a short HTML snippet or a full blog post. The Title is an optional parameter, since lots of Micro.blog posts are short and don’t require them.

Here is a simple Shortcut that just asks for what you want to post and then does it. You can use this Shortcut completely hands free to post to Micro.blog.

Upload Image to Micro.blog

You can also upload image resources to Micro.blog. This Shortcut example shows it in action.

Get Blog ID from Micro.blog

This is useful if you have multiple Micro.blog blogs associated with your account. You can pass the result of this action to either Post HTML for Upload Image to work with the blog you want. Otherwise, those actions work on the currently selected default blog. You can change the current default blog using Micro.blog on the web.

Putting Them Together

You can upload blog posts with images embedded in them. In fact, that is how this blog post was uploaded to Micro.blog!

The Upload Image action has an output parameter. It is the published URL of the image. You need to save this for each image you upload and pass it to a step that manipulates the HTML of the post you will upload.

Your HTML needs to have placeholder text, unique to each image, that can be searched for. This placeholder text needs to be substituted for the image’s published URL. You can use the Replace Text built-in Shortcut action to do this. Now you can use Post HTML to post your updated blog HTML.

Zavala Integration

I wanted the ability to build a blog post in Zavala and then post it to Micro.blog. This is the original reason why I built Humboldt. Shortcut support for Zavala is “coming soon”, which is needed to tie everything together. When it is released to testing, I will post more about how to make Humboldt work with Zavala.

Future Updates

For now, Humboldt does everything I need it to do. It just posts to Micro.blog and that is about it. It can’t edit or delete posts or manipulate image uploads. You can use the Micro.blog website for that or a full featured blog editor like MarsEdit.

If there is community interest in expanding what Humboldt can do, I’m interested in hearing about it. Let me know what you would like to see on the Humboldt’s GitHub Discussions site.

Drummer

The Oldest and Newest Thing in Blogging

Dave Winer just release a new project called Drummer. Drummer is an outliner that has been especially adapted to doing blogging. If you are into either outliners or blogs, this is an interesting development. Dave is probably the oldest name in outline, blogging, and podcasting applications. You can check out his Wikipedia page for a full history.

I’m not very familiar with the history of outliners and blogging, but I do know in certain circles, especially the Mac community, early blogs were based on outlines. Over the years it seems like those two have drifted apart into their own applications and communities.

Personal Interest

I stumbled into the blogging world long before I had heard of blogs. In the very early 2000’s personal blogs weren’t very well known, but sites like Slashdot were. Slashdot was what we would now refer to as a link blog. A link blog is one that links to external articles and provides commentary about them. I decided I wanted my own link blog and so I built one based on the (at the time) open source Jive forum software. The site itself never turned into anything, but it got me my first Java consulting gig.

Like many people I eventually drifted away from blogs into the world of social platforms. I eventually got interested in doing Apple platform development and started looking for a good open source application to work on. I found NetNewsWire. I originally began work on NetNewsWire because the code was a good model to learn advanced techniques from. Along the way I rediscovered how amazing blogging is.

Through Brent Simmons, the founder of NetNewsWire, I learned about how useful outliners could be. I was familiar with outliners, but hadn’t used them to their full potential. I got more and more interested in outliners and eventually began work on Zavala. Through Brent, I also learned about publishing outlines as blogs.

Outlines as Blogs

I’ve always used outlines to do my writing since I learned about them. The hierarchal structure in writing just made sense to me. As a software consultant, I alway wrote using Word’s outline view. To me it was just natural to want to use something like that for blogs. When I heard about the history of using outlines for blogging, things just clicked.

As part of Zavala 2.0, I wanted to satisfy the blog using an outline use case. In fact, this blog post is written using Zavala.  To publish this outline, I run a Shortcut that uploads images and HTML to my Micro.blog blog. Drummer works somewhat differently. Zavala considers an outline a document that gets uploaded as a post. Drummer is designed to group multiple entries under a published date. Each entry is a separate blog post, but are all grouped together by date. It also has a publish step, but what happens, happens behind the scenes.

 It is important here to point out some terminology differences. A “note” in Zavala is associated with a row. It provides additional detail for the topic. When publishing docs or blog posts from Zavala a topic is a group heading and a note is paragraph text.

A “note” in Drummer is a row that is a blog entry. I’m not sure what makes a “note” row different than a regular row under a date. They seem to publish the same, but the icon is different some how.

Drummer has the concept of a microblog post, which Zavala doesn’t have. This is similar to what you see on Micro.blog or Twitter. It is a short post that doesn’t have a title. If you add a child row under a row that is under a date, you get a full blog post where the child rows are paragraphs and the row is the blog title.

Drummer’s take on blogging is a little bit different different than the common definition. I think Drummer is set up well for a prolific writer or someone who posts a lot in smaller chunks through out the day. It scales up well for long posts or quick posts just to express an opinion as well through.

What’s next

If I’ve sold you on blogging using outlines, check out this nice article on blogging with Drummer. You will eventually be able to do blogging on some platforms with Zavala 2.0, but that won’t be ready until early 2022. In the meantime, Drummer is something to try.

Some caveats about Drummer though. You will have to think differently if you are used to common forms of blogging. Using a single outline for all your blog entries is very different than publishing different documents as blog entries.

Drummer is also complicated in some ways. For example, adding an inline image requires you to edit a rows attributes, enter a special key, and link out to a site that is hosting your image. Drummer is new though and it is’’t like this is something that can’t be made easier in a follow up release.

I’m going to be keeping an eye on Drummer for things I can learn from it. I’ll also be looking for opportunities for interoperablility. There might be something there that can make both projects better.

Shortcuts

I’ve been spending a lot of time lately working with Shortcuts. I have some thoughts about them.

Adding Shortcut support to Zavala

One of the early requirements for Zavala was that it should be able to be automated or scripted. Since Zavala works on both iOS and macOS, these scripts should be able to be shared.

Prior to WWDC21 there wasn’t a shared scripting environment common between iOS and macOS. AppleScript was macOS only and Shortcuts was iOS only. I eventually decided that I would embed a Python runtime and editor to get cross-platform scripting to work.

When Shortcuts for macOS was announced at WWDC21 this year, I now had a different option. My only concern was if Shortcuts would be powerful enough to script a full outliner.

Discovering Shortcuts

I had briefly worked on Shortcut support a couple years ago for NetNewsWire but we ran into some roadblocks. These have since been removed. Still, because of them we didn’t get the full Shortcuts support we would have wanted and I didn’t fully learn how to use Shortcuts.

Cut to a couple years later and I wanted to do some really powerful automation with Zavala. For example, I wanted to post outlines as blog posts on both Micro.blog and a Jekyll blog. I wanted to dynamically create outlines.

I’m happy to say that with some enhancements to Zavala to support Shortcuts, I’ve been able to do everything (thus far) that I’ve set out to do. I’ve written over a dozen Shortcuts, some of them fairly complicated. I was surprised at what I could accomplish with a graphical programming language.

Shortcuts are Very Capable

I’ve come to think of Shortcuts as the graphical programming equivalent of Unix shell scripts. You are expected to piece together a lot of small Shortcut actions to make a full Shortcut. Each of the Shortcut actions take an input and provide an output.

One of the big differences between Shortcuts and shell scripts is that you can define the type of data that you are using for input and output. Shortcuts has something called The Content Graph engine which can convert data to different types on the fly, so using typed data isn’t as verbose as it could be. For example, you could pass an array of URL’s to an action that only accepts a single URL. Shortcuts will automatically pick the first (usually the only) item in the array without having to specify it. Or you could pass a URL to an action that takes a Text input and Shortcuts will change it to a text input.

Shortcomings

In iOS 15 and macOS 12, the Shortcut editor is buggy. Embarrassingly buggy. The delete button for actions almost never works. Yes, something as simple as a button not doing the simplest of tasks, doesn’t work. And it crashes a lot. Fortunately, the execution engine for Shortcuts seems to be stable and work well.

One thing I would like to see is the ability to add a Shortcut to the Share menu on macOS. You can already add it to the Share menu on iOS. You can add a Shortcut to the Services menu on macOS, so maybe that is the more appropriate location. I do think users are going to expect Shortcuts to be able to be available in the macOS Share menu since it shares an icon with the iOS equivalent.

The biggest thing I think is missing is an API to execute Shortcuts directly from within your application. Say, I write a Shortcut that moves all completed items in an outline to a row called “Done” at the bottom of the outline. I would like to be able to execute this Shortcut without leaving the application and without focus being given to the Shortcuts app. Right now that isn’t possible to the best of my knowledge.

The Future

It is pretty clear to me that Shortcuts are the future of Apple platform automation. It is powerful while still being accessible to non-programmers. I hope that this year’s quality problems are a short-term setback, because I’m all in for automating Zavala using Shortcuts.

Zavala 1.0 released

For the past 8 months or os, I’ve been working on a new app called Zavala. It’s a modern take on a traditional outliner app.

I think it is a pretty decent app, considering it was developed by a single person over 8 months. It isn’t easy making an app that runs on 3 different platforms and does syncing and collaboration across those platforms. To give credit where due, it wouldn’t have been possible without some recent enhancements to Apple’s API’s. Catalyst and CloudKit are big advantages that I have that developers 5 years ago didn’t have. Check out the full feature list here.

One thing I am particularly proud of is how the UI is animated. Adding and removing rows isn’t jarring and gives a solid feel to the application. For example if you are collaborating on an outline with another user, if they insert a row, the outline opens where the row goes and puts it there. There is never a situation where everything just blinks and stuff is in different locations.

The next version, 1.1, will support images embedded into the text of the outline. It will also support some other commands that other outliners usually support. I’ll be adding keyboard shortcuts for moving a row up or down in the outline. I’ll also be adding a way to add rows below, either indented or outdented. I hope to have this release out by Fall.

Version 2 will be coming much later and will require macOS 12 and iOS 15. This is so that I can take advantage the latest in automation API’s. With Shortcuts now on the Mac, the path forward for automation on Apple’s platforms is clear. I plan to make Zavala’s Shortcuts capabilities very robust so that custom workflows and integration with other apps is first class. I’m very excited to see how users automate Zavala in the future.

If you are into outliners, you should give Zavala a try. It is free and Open Source and will be forever, so you have nothing to lose. If you are into task managers or note taking you should give outliners a try. You might be surprised at how creating hierarchies of that information is useful.

Sourdough Bread

A lot of people have taken up sourdough bread making during the pandemic. My wife is one of those. She’s gotten pretty good at it. Behold her latest creation.

IMG 0013

The open source outliner, Zavala, that I have been building now has a website and is available for beta testing. Check it out. zavala.vincode.io

Keeping Busy

Update

I thought I’d let people know what I’ve been working on lately. I’ve been keeping busy!

NetNewsWire 6.0

My main project that I’ve been working on for the last couple years is NetNewsWire. This project is amazing to work on. The community that Brent Simmons has created is great. The popularity of NetNewsWire is great too. It really helps get you motivated when so many people benefit from and appreciate your work.

For the 6.0 release cycle I did the Big Sur UI refresh, iCloud syncing, and the Reddit and Twitter extensions. I also finished up the work that another developer had started on the Reader API code. That got us BazQux, The Old Reader, Inoreader, and FreshRSS syncing. I did some other small things for 6.0 too, like the Share Extension.

Lots of other developers contributed to 6.0 including in big ways like implementing NewsBlur syncing and other UI changes. NetNewsWire 6 is a big deal for the team. I hope you check it out and give it a try.

Feed Spider

This project has been on hold for about 6 months. I’d still like to tackle the feed discovery problem. For those not familiar with Feed Spider, I was working on creating a searchable blog directory. Look through my back posts in this blog for details.

I still want to tackle this again. I paused my work on it to learn more about Machine Learning, but then I got distracted with building an outliner application. I’ll probably work on this more in the coming year as a way to mix up my development work and not get bored.

Zavala

I built an outliner application called Zavala. This is a fun project. I’m a bit of an outliner novice and didn’t use one on a regular basis. Now I use one constantly and for all kinds of different things. Organizing my thoughts, planning and managing projects, and even just as a TODO manager.

I just released the first Alpha builds of Zavala. That means that from here until the release, I’m only fixing bugs. No new features are planned for the 1.0 release. This shouldn’t take up much time and I’ll probably work on some other things in the meantime.

What’s Next

I’m not sure what’s next. There are some things I would like to see in NetNewsWire 6.1, so there will be some work done there for sure. I’ll work on small features for Zavala to fill in the time. Maybe I’ll even get to spend some time on Feed Spider.

And we can’t forget that WWDC is coming. After Apple releases its updated frameworks, there is always updating that has to be done to existing applications. That often takes up a good chunk of an Apple developer’s summer. Maybe by Fall things will be slowing down for me. Then again, I’ll probably just find something new and shiny to start chasing.