Just wanted you two to know MB feeds look good in my upcoming feed reader: Stream. It’s been a long time in coming - and still needs work - but it’s stable and useful today. @manton @macgenie

I expect WWDC will be canceled this year over Coronavirus fears.

I’m just a weird dude. I now want a 2013 Mac Pro, because reasons.

Drafting posts for Micro.blog

Since switching to Micro.blog as the publishing system for my weblog I’ve been on the hunt for a good way to write posts in a draft form. I tried Bear and I love how it works, it’s absolutely beautiful. I was really close to purchasing the yearly subscription, then I realized I’m paying for Evernote.

I’m really torn. Both applications sync, both have text editors, but I use Evernote for clipping web pages and organizing by categories and tags. As far as I’m aware Bear doesn’t have anything comparable?

I didn’t realize sync was going to be so important to me. I guess I was spoiled by WordPress. I could start a post and revisit it. Micro.blog doesn’t have such a thing but I have a need to start on my iPhone and finish on my Mac or vice-versa. Update: Micro.blog does support drafts. Thanks, Mitch! If MarsEdit had an iOS version I’d definitely consider pulling the trigger on Mac and iOS versions.

If you’re using Bear or Evernote I’d love to know how you use them. If you have a different solution please share that.


Anyone know if Apple developed TV for Roku in house? It’s not up to what I would consider Apple standards. It buffers and stutters, a lot. I suppose it could be their streaming backend? Do they do it themselves or use another service for that? 🤔

Hope is fading.

From a co-worker on Slack: “The entire internet is held together with wet string and carefully arranged paper clips.” Truer words were never spoken. 😀

Developer Confessions

I’ve been an iOS Developer for just over 10 years now - 30 years of professional experience overall - and I still suck at Interface Builder and Auto Layout. 🤪

Stream Update

I’ve been able to work a little bit on my beloved side project, Stream. For those not following along, or those that have forgotten, Stream is my Twitter-like News Reader.

Life changed pretty dramatically for is over the past nine months or so. Our daughter, grand daughter, and son-in-law moved to the east coast. Kim and I had a two year plan in place to move back east so we could be near them, living in California doesn’t make for easy day trips to visit when we want. That is another story all together. Suffice it to say serendipity struck and we moved the timeline up, way up.

We arrived in Virginia November, 1 and moved into our new home. Yes, it was extremely fast. All the work surrounding the move meant I really needed to focus on all things related to the move and let the side project sit. Now that we’re settled in our home and I’m settled in at work I finally got Stream out of moth balls and worked on it a bit.

Crashing Sucks

I had sent out a few TestFlight builds to folks but I knew where the ugly parts of the code were. I pushed it out way too soon, I realized that after a couple builds. I should have finished all features before user testing became a thing. Live and learn.

I found two things that bugged me more than anything else; the app would crash on occasion and syncing feeds was way too slow.

A couple weekends back I was able to plant myself on the couch and work through the performance issue and the crasher. I can thank Brent Simmons for the most significant performance wins. His blog posts, tweets, and Slack messages about feed reading and general Cocoa Framework oddities have proven invaluable. I only hope I can pay his kindness forward at some point. Thanks, Brent.

Ok, on with the wins. The first two tips I picked up.

Handle 304 HTTP responses

This one was an instant performance boost if servers hosting feeds actually return it. If you’re making 100 network requests to update your 100 feeds it can be kind of slow to parse all the resulting data. But what it you don’t need to parse the results? Right! The data you don’t have to parse makes your code faster. Imagine that!

Create a hash of the response data

So, what if you ask for feed data and it hasn’t changed but the server doesn’t return a 304 indicating it hasn’t changed? Well, you create a hash of the response data and keep it for later. Next time you grab the feed, hash it and compare it to the hash you created last time.

One more thing

After reading Brent’s piece about KVO crashes I decided to stop using NSOperation and NSOperationQueue. I was only using it so I could create dependencies that would allow me to have a final operation that updated the UI’s data source. Now I don’t do that. I just rely on URLSession and URLRequest to do the job.

Not done

I feel a lot better about the performance but I know there will be more changes down the road. Moving forward I need to focus my effort on finishing the UI and adding some niceties like a share extension to add a feed and things like dark mode support. There are other things I’d like to do as well. Least of which is building a Stream Mac App. 😀

I’ve adjusted my personal expectations to ship before WWDC this year. Let’s see if I can make it.

I would love to see companies like Apple, Microsoft, Google, and Amazon come together to help fund further development of Mozilla. We need more diversity in browsers.

You tell me, does Apple really care about design?

I haven’t had a Dogfish Head 120 Minute IPA in years. Absolutely delicious.

I’m listening to the Panic Podcast it’s really good.

At this pace some poor sap is going to use a second amendment solution to our corrupt president and his administration. That will be another sad day in an already horrible time for the United States. I’ll bet the Secret Service is on high alert all the time.

I am really terrible at using the butterfly keyboard and touchbar. I’m working from home today and I keep making typing mistakes and brushing the touchbar. Ugh.

The benefit of being home alone is Tool cranked to 11 on the home system.

Dear Hackintosh builders. Anyone have experience building on with a Xeon E5645? I have the processor, just need everything else. 😀

Championship game picks:

Chiefs over Titans Packers over 49’ers

I love to see a Titans vs. Packers Super Bowl. 🏈

Trump Impeachment

Teri Kanefield: “It’s pure Trump: A rapid, continuous (and exhausting) stream of absurdity and lies. One lie can be managed. A few can be debunked. But stuffing several into each paragraph becomes an effective propaganda technique.”

Bottom line: Trump is a lying, cheating, asshole of a criminal. Talk about gangster thugs. He’s all of those things. To buy all his bullshit is to show a willingness to destroy democracy and embrace all the things he stands for; greed, cruelty, misogyny.

I used this as a bookmark. Found it while sorting through books to give away.


Rejection; Aldus, Microsoft, MicroRim. Circa 1987.

I need a therapist.

I’ve been a freelancer a couple different times in my life. One time successful, one time failure.

I work for a great company, in fact the last two have been great, but I long for more.

I want to build a product. I fear I’ll never get there.

Strange thought. WordPress should buy Blogger and move the backend to be WordPress based, like it’s doing for Tumblr, but keep the UI super simple. Basically keep the Blogger UI.