I just got an email from a Google recruiter. I told him I was happy at WillowTree and let him know we’re always looking for good folks.

So, if you’re in the market for a new gig, check us out!

The gang had a great, but cold, day at the Cal vs. UVA Women’s Lacrosse game.

Cal played tough but just couldn’t hang with UVA. This wasn’t unexpected but our niece played a wonderful defensive game.

I was finally able to clean up our yard of the mess created by snowstorms in January.

Also, it’s cold out, 34°F/1°C. Time for a nice hot shower. 😀

How I Post

I haven’t been asked how I manage my blog but I thought I’d share anyway. It is my blog after all, I can post whatever I want.

Tot

I use an app from Iconfactory called Tot on my iPhone and my Mac. I’m using it now from my iPhone, where I compose most of my posts.

I chose Tot because it’s darned simple. There are seven dots across the top of the screen, each represents a different document, they’re like tabs, each with a different color.

It also supports Markdown and plain text mode. I use plain text mode. It’s just nice to see raw Markdown, that’s a super power of Markdown, it’s just text.

Oh, the coolest thing about Tot is it saves your stuff to iCloud behind the scenes. No fuss, no muss. I love that.

Micro.blog

I use a nice, simple, blogging platform called Micro.blog. In the past I’ve used Blogger and WordPress. WordPress is particularly awesome, but I wanted a static site and I don’t need all the complexity of WordPress. It’s great though.

Anywho, once I’m happy with my post I copy it and paste it into the Micro.blog iOS app, Mac app, or the website and add any links I’d like to have. The Micro.blog iOS editor has some really nice Markdown shortcuts, like pasting links and it’s raw text as well.

Why all the compose, copy, paste, edit work? Well, Tot’s auto save is amazing and Micro.blog’s iOS app doesn’t have auto save. Yes, I’ve lost posts and I’m trying to prevent that.

After adding a category, or a few categories, to my post I publish it. Micro.blog creates pages, updates its timeline, and publishes to Twitter and Mastodon.

P.S. I started this post on a Saturday, got distracted, and I’m finishing it on Sunday morning. Nothing lost. Easy to pickup and go.

Today is NFL Conference Championship Day

In the NFC we have the #4 seed Los Angeles Rams hosting the #6 seed San Francisco 49’ers. Two NFC West teams that meet twice a year. They know each other and the 49’ers have owned the Rams this year. Can they do it for a third time? I have no idea.

My pick: Los Angeles Rams

I’d call it controversial based on how the 49’ers have played this year, especially at the end of the season. I will not be surprised if the 9’ers beat them again.

On the AFC side we have #2 Kansas City Chiefs hosting the #4 Cincinnati Bengals.

Last week I picked the Buffalo Bills to beat the Chiefs. I knew at the time the game would be a barn burner and it did not disappoint. That, for me, was the Super Bowl. Kansas City looks unstoppable.

My pick: Cincinnati Bengals

I know, I know, I just said the Chiefs look unstoppable. I won’t be at all surprised if the Chiefs win. My wife has the Chiefs to win it all. She’s smart.

Super Bowl 56: Rams over Bengals

Saturday Morning Coffee, with Links

Links the kitty!Forbes: ‘Billionaire investor Mark Cuban launched an online pharmacy Thursday that offers more than 100 generic drugs at an affordable price with a goal of being “radically transparent” in its price negotiations with drug companies.’

It’s so nice to see someone use their infinite resources to make drugs affordable. At one time I spoke to my brother about what it would take to do something like this, he said for Everyday Joes like us it would be impossible. Just building a facility to accommodate the manufacture of medicine would be cost prohibitive. But, it’s not for a billionaire! Bravo!

Mother Jones: ”Fueled by the Big Lie, this effort picks up where last year’s insurrection left off by putting in place the pieces to steal future elections by systematically taking over every aspect of the voting process.”

If you can’t win with better ideas, cheat. If we allow this to happen we will get what we deserve: a failed Democracy.

NOLA.com: ”Sean Payton is not going to win the NFL Coach of the Year award. But he should. No one has coached better than Payton this NFL season.”

It’s been a rough year for the Saints and they managed to go 9-8. So close to another playoff run.

Enjoy retirement, Mr. Payton.

Atlas Obscura: ”This small shack near the entrance to Sequoia National Park has been in almost continuous operation for the last century.”

Three Rivers is a nice little community not far from Exeter, where I grew up.

If you happen to find yourself passing through Three Rivers on your way to Sequoia National Park, make sure you stop by Reimer’s.

We got just enough snow to make everything look amazing. ❄️

The Fahrni Tundra 🥶

Saturday Morning Coffee, with Links

Celebrating 20 Years of Trustworthy Computing: ”Just by compiling software with a few switches, everyday developers could protect themselves against entire classes of exploits”

On the front lines, Ukrainians brace for possible attack: ”But while they might not agree with where an attack will come from, they are all 100% convinced it is going to happen.”

I really don’t want to see this happen. Here’s hoping it doesn’t, but if it does, we should help. Help doesn’t mean go to war with them.

Patriot Front Fascist Leak Exposes Nationwide Racist Campaigns: ”Unicorn Riot reported in 2017 how Vanguard America’s ‘Southern Front’ server on Discord was used to celebrate Fields’ vehicle attack, as well as exposing the group’s links to Robert Ray (aka ‘Azzmador’) of the Daily Stormer, Richard Spencer and other figures in the white supremacist movement.”

Garbage people.

The Great Resignation is here. What does that mean for developers?: ”Software developers—even though their jobs can typically be done remotely and should, in theory, be more stable during a pandemic—are leading the exodus.”

A few folks I follow on Twitter have purchased RV’s or travel vans and have taken to the road.

This is a dream of mine.

Looking back at Microsoft Edge for developers in 2021: ”The great benefit of contributing these features to Chromium is the ability to partner with other stakeholders in Project Fugu and, together, help make PWAs much more powerful and closer to what people expect installed apps to be capable of.”

PWA’s being a strong focus for Microsoft makes complete sense, they’re an Enterprise company. Having great tools for IT type developers has to be really great for companies

Web3 is going just great: ”This is a personal project of mine, and reflects my own opinions. If you are looking for an unbiased descriptor of web3 and related technologies, there are short ones in the Glossary, but that is not the goal of this site.”

This site reminds me of F*cked Company for some reason. I’m keeping an eye on Web3, like many others, but most things I’ve seen so far don’t make a lot of sense to me. I’ve thought about “minting” an NFT just to understand how it works.

I could see using Blockchain for actual physical works of art as a proof of ownership. Beyond that NFTs seem weird. I “own” a token to nothing.

The next storm has arrived, early. I really didn’t expect to see it snowing at 10:30AM. When I went to bed last night it wasn’t supposed to begin until 2PM.

If it’s like this all day, I’m cool with it. It’s nice, light, fluffy, snow. Not that heavy, wet, stuff we got last week.

Next Snowstorm

The snow is pretty much gone from the storm on January 3.

Today I’m going to cleanup some of the damage caused by it. Dragging busted branches and parts of trees into the backyard for cutting up later.

I also need to shovel off a big pile of snow at the top of our driveway and haul wood up from the lower part of our backyard, stack it under the deck stairs, and put some on our front porch for easy access.

The forecast was fairly grim earlier in the week. They were calling for over a foot of snow. Recent forecasts are showing between six and nine inches.

The thing that concerns me is the call for a mix of sleet and freezing rain that is supposed to follow the snow.

When all is said and done I hope we still have power, then the cleanup begins. 🤞🏼

snow forecast

Snow Days

I enjoy snow, I really do. It’s peaceful, fun to watch while is falling, and the ground covered in white fluff is really beautiful.

On Monday, January 3, we got somewhere between ten inches and a foot of snow. It caught everyone off guard to get that much, about half that was forecast. The amount of snow was fine. The wetness of the snow was a problem.

When we expect snow you’ll find Dominion Energy trucks staged at various places throughout the region. Power goes down and they bust their butts to get it back up. They really do, no sarcasm in that statement at all.

Monday morning I got out of bed and the snow was really coming down and had been for a few hours by that point. No sooner had Kim started making a mocha and I making a pot of coffee the power went out and was out until early afternoon, Friday, January 7.

By around 10AM we started hearing trees break and fall. Our own beautiful magnolia lost a couple fairly big branches and the top broke off. That’s a real heartbreaker. I have no idea what it means for the future of it? Fingers crossed it doesn’t have to come down.

Around 11AM I could hear chainsaws firing up all around us. Our neighbor across the street and one house down lost half of a tree. It fell into the road and had to be cut into chunks to clear the road. Not long after our neighbor directly across from us lost a fairly large tree, I’d say 30-foot. It fell across the roadway and was blocking our driveway. We fired up the chainsaw and got to work on it.

Our neighborhood is amazing. Folks from all sides descended on this monster and we were able to chop it up and clear the roadway in no time. I’m grateful for our neighbors.

It was pretty frigid that day with temperatures in the high 20’s during the day and teens overnight. Of course that meant that wet snow iced up.

Tuesday we started working on the driveway. My gut told me Monday afternoon I should go out and start clearing the driveway. I was cold and decided I didn’t want to do it. That was a huge mistake. Wet snow and low temps cause ice. Duh. It took forever to clear it up. Our daughter, Taylor, slipped on the ice and landed hard on her hand and hip. She was done for the day. Kim helped her in and took care of her. They’d done amazing work clearing the snow and ice. I was able to work on a particularly stubborn bit of ice with help from the sun and cleared off a bunch of it. Kim joined me after a while and we got it cleaned up. Kim was able to back the car up the hill at that point. I’m thankful for my family.

By late Tuesday roads started to improve from Palmyra down the hill into Charlottesville. Kim took me for a ride so I could check Slack and let work know I was ok. Oh, yeah, I forgot to mention our cell service stopped working Monday afternoon. No communication in or out.

We decided to take a trip to check out the roads. They were mostly in good shape. Trees down all over the place. There are some steep S curves not far from home that looked like a war zone. That mess was cleared up by regular folk. They spent hours down there clearing the way. I’m thankful for kind, thoughtful, caring people that think of others.

We decided we really wanted a hot meal Tuesday night, our house was a freezer with the exception of the room around the fireplace. We found that our favorite Japanese place was open. We had great hibachi chicken and steak that night. So delicious! I’m grateful for folks that brave the elements so we could have a hot meal.

I’m thankful we have a fireplace and wood to burn. We had bread, cheese, and some frozen ham leftover from Christmas dinner. We pulled that out and thawed it and we’re able to get along with sandwiches, mostly. I’m thankful for leftovers.

This week has been great. The snow is still hanging around, but it is melting. Our driveway is clear and the roads are dry. There is danger around the corner. We’re expected to get up to a foot of snow between Sunday night and Monday morning.

Here’s hoping the power doesn’t go out.

Flynn is perfectly happy by the fireplace.

I doubt the birds and squirrels will be visiting Kim’s bird feeder today.

This is more like it! Love me some snow! ☃️

I decided to make a change to the Home Screen for the new year.

Smaller widgets in a different arrangement.

Still the same number of icons.

My granddaughter did my makeup today. She said I’m Hades, from Hercules.

I think she nailed it.

Free and Opinionated

NetNewsWire Blog: “Our mission is to make the best RSS reader that we like making. We value stability, high performance, clarity, and lots of figurative air and space rather than a mélange of features.”

I love how Brent and the NNW team hold true to what they believe – and what they want – a feed reader to be.

If you haven’t checked out NNW you really should, it’s a great product.

COVID and Coffee

Watch out! It's a blog fly!I decided I’d go to my favorite coffee shop to work on Stream.

I’m sipping my cofffee, coding away, distanced from folks, of course.

A lady walks in and starts loudly discussing how, on Christmas Day, while the family was together her sister finds out she was exposed to someone with COVID. Swell.

Turns out she’s an employee coming in for her shift.

I just packed up and left. Will this mess ever end?

Stream Development Notes

It feels really good to be spending a little time on Stream today.

My last commit to the repository was June 24, 2021. That’s way longer than I thought. 😳

With any luck I’ll get cache sizing and clearing in today and, fingers crossed, I’ll be able to ship it soon.

Being able to clear the cache and control its size was the first request I received after shipping 1.0.

There are so many things to do and so little time to do them. It’s like eating an elephant. You have to do it one bite at a time.

Stream for Mac Dev Note

RibbitIn iOS development land we have UITableViewController and UITableViewCell for building lists.

On the Mac – AppKit – we have, with my limited knowledge, NSTableView, NSTableCellView, and NSCell. Apple’s developer docs say:

Beginning with macOS v10.7, you can use NSView objects (most commonly customized NSTableCellView objects) instead of cells for specifying rows and columns. You can still use NSCell objects for each row and column item if you prefer.

For some reason my brain finds that paragraph confusing. I need to dig a bit deeper into the docs but my initial read leaves me believing NSCell is not NSView based?

No matter, it’s not a big deal. I already have Stream for Mac populating the table and selecting a row displays the article for it. I have a very long way to go, mind.

Something I have considered doing is wrapping up the AppKit classes with classes that implement UITableViewController and UITableViewCell so I could at least have a familiar interface to work with, but that might be a bit of work for very little gain.

Oh, if you’re wondering why I’m doing the Mac version in AppKit instead of SwiftUI? It’s simple: I’d like to learn a bit about AppKit. It’s apparent we’re headed for a SwiftUI only world. That’s fine. I’ll be on board at some point – I’ve already done a bit.

Oh, FYI, it’s not that difficult to move from UIKit to AppKit. Minor things, like the paragraph I mention above, but AppKit existed long before UIKit.

Here’s a very simple example.

#if os(iOS) import UIKit typealias HSColor = UIColor typealias HSFont = UIFont typealias HSImage = UIImage typealias HSView = UIView #elseif os(macOS) import AppKit typealias HSColor = NSColor typealias HSFont = NSFont typealias HSImage = NSImage typealias HSView = NSView #endif

In my code I’ve been using HS versions of these class types and they work as expected. If I find a missing method on the Mac, I extend the class to include the missing method. Easy!

Here’s one example of that. extension NSColor { static var darkText: HSColor { return HSColor.black } static var lightText: HSColor { return HSColor.white } static var label: HSColor { return HSColor.labelColor } }

Still plugging away.

Podcast Directory Thoughts

There is a part of me that would love to put together an alternate podcast directory to Apple’s.

I Love RSS!Apple has given so much to the podcasting community, but you never know how long they’ll continue to make it freely available. Remember, they’re a services company now.

The service I’m thinking of would provide a shared web crawler, Administrative UI, and a nice Dashboard for supporters and advertisers. It would also have its own API and provide one compatible with Apple’s offering.

I don’t think it should be run by an individual, or a small company. It should be a cooperative, supported by the podcasting applications and podcasters using it.

Another thing that could fall out of it is an ads business that small podcasters and podcast app creators could take advantage of.

Maybe that’s just too much to expect from a small collective of podcasters and podcast app makers?

Just a thought I needed to get out of my brain.

Here’s the Visio for Mac splash screen, thanks to Chris Roth, a long time Visio Developer.

Visio for Mac Splash Screen

Axon Offer Letter

More olden times. This is my offer letter from Ted Johnson, Vice President of Engineering, Axon Corporation.

Axon eventually became Visio Corporation and the rest, as they say, is history.

Oh, and the $28k per year was a huge improvement from my first gig at Microsoft.

At the time it made me feel really great. I had no idea how stock options worked. I really wish I had. I’d have asked for more. 😀

Back in the olden days, after Visio was acquired by Microsoft.