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.

Making Stream Profitable

I’ve been thinking a lot about how I can make Stream a more profitable application.

I need to go beyond Stream’s Tip Jar and my Ko-fi page.

Ads 💵

As much as I don’t like ads, they may be one way to add a little profit. I think I’d do this with the Mac version since it would be a brand new product. Ads would be woven into the timeline, marked in some obvious way, and would not show too frequently.

I have no idea what ad service I’d use but I wouldn’t want a crummy one that does all kinds of tracking. That makes for garbage apps and I don’t want anything to do with them. That makes it really difficult to include them because I’d bet most, if not all, do some sort of tracking.

Roll Your Own 🌯

I’d I had a popular app I could roll my own ads, like my favorite podcast player, Castro, does.

This would be my preference but I don’t have a big enough user base to pull off something like that. I’d need to do my own ad service to sell and serve up ads.

I do love this idea.

Ads with Upgrade 💵

If I go with the ads route I should offer a one time payment to turn them off.

I don’t know what that payment would be, but it would apply to the current major version. So, you’d pay $X for version 1.0, then you’d pay $X when 2.0 shipped. Everything between 1.0 and 2.0 would be included as part of the price.

Subscription 🔥

This is a fairly popular option with many of the apps I use. The first that comes to mind is, you guessed it, Castro. They charge a very reasonable price of $18.99 per year to upgrade to Castro Plus.

Now, I would not charge anywhere near that for Stream. I’m currently thinking $4.99 per year.

This model is kind of my favorite but it means I absolutely need to provide a constant stream of updates. It makes the idea of version numbers moot, which I really like.

A Better Stream 🏞

I really think I have a chicken and egg problem. When I shipped Stream 1.0 I deemed it good enough. Since then I’ve managed a few small updates, including adding support for iPad. But, my new feature production has been almost non-existent. That would absolutely have to change in the subscription model.

I feel like a better Stream might get me more downloads, maybe some press, which would allow me to make some of these choices.

As it is I know Stream is lacking features. I have a nice list of stuff to do, including completion of a Mac version.

Adding new service support, adding additional view options like a traditional Feed Readers, and adding a more Newspaper like view.

Closing Thoughts 🧠

I have a very small user base so my number one job needs to be bringing in additional users. This is a really tough challenge for a fella that wouldn’t know marketing from a hole in the ground.

While I know I haven’t been updating Stream as often as folks might like, I do think about it daily. It is definitely a labor of love.

More to come. 🧡

I believe I’ll start the day watching CFL Division Semi Finals.

Montreal Alouettes vs. Hamilton Tiger-Cats.

I have no idea who to take. Should be fun to watch.

Today is one of those days I want to sit on the couch, under a blanket, and watch football games.

I’m guessing that won’t happen. 😁

Happy Thanksgiving!

Just a couple turkeys!