On the porch

Sitting on the front porch this morning, enjoying a nice cup-o-joe while I work.

Since I don’t really code any longer I had to open my Stream project so I’d look like a legit developer. 🤣

You can support my endeavors as an “Indie” dev by downloading Stream and leaving a tip! Thank you! 🙏🏼

Saturday Morning Coffee

Cold EspressoGood morning y’all. It’s raining this morning, a repeat performance of last weekend. I did manage to get the steps completed in the garden now we let the rain test my work.

This week I had to get a tooth and removed and a bone graft due to a 20 plus year old root canal failing. I don’t recommend it. 🦷

Time to go lay down in a field and have Kim throw some dirt on me. 😂

CNN

On Monday, it was Nashville’s turn to join the roster of cities made notorious by a mass shooting epidemic much of the country seems prepared to tacitly accept as the price of the right to own high-powered firearms. 

No words. 😔

Microsoft Design

Today marks the debut of the new Microsoft Teams app, released in public preview for Windows customers.

This redesign of Teams looks extremely thoughtful, well planned, and well executed. I’d like to get my hands on it and run it through dumpbin and other tools to see just how it’s put together.

It’s my understanding it’s a native app — no more Electron — with an HTML/CSS/JavaScript filling using the new, Chromium based, WebView2 control

It also means no Mac or Linux client until they can get those items ported to Mac and Linux. You can write C#/.Net code on Linux and Mac today, but as far as I know WebView2 hasn’t been ported. Heck, who knows, the shell around the app could be written in C++? I’m not really clear on that bit, it’s why I want to get my hands on it. 😁

Wired

The US Republican Party has become increasingly authoritarian and extreme in recent years, and it doesn’t seem likely to moderate that in the foreseeable future.

Red States are becoming more and more radical. The entire anti-LGBQT, anti-woman, anti-education, movement is in full swing.

Next thing you know women will have to walk 10 paces behind their husbands in their modest to the ground dress with their eyes on the ground. Disgusting.🤬

Offred: The Future is a Nightmare

Dave Winer

In September 2004, the activity we called audioblogging was starting to gain traction.

Neat little story about how podcasting got its name. 👍🏼

The Guardian

A dispute between the Florida governor, Ron DeSantis, and Disney over control of the company’s Florida theme park district hinges on a clause referencing King Charles III and his descendants.

The authoritarian was outwitted in this story. If you haven’t heard about this yet go read it. 🤭

John Nunley

This year is supposed to be the year of the Rust GUI. So why is it still so unsafe?

This discussion focused around handles in Windows is quite interesting.

Having written a lot of Windows code that uses handles everywhere — HWND, HINSTANCE, HANDLE, anyone(?) — because that’s the way the Windows API works I don’t see it as an issue.

A HANDLE is a persisted thing that allows Windows to shuffle the underlying object around if needed. It’s a remnant of 16-bit Windows days, because 640k of memory was a precious commodity. It’s a safe thing to the developer as I see it but I do not fault anyone wanting to make things even safer for developers. 👍🏼

John Scalzi

Trump is and has always been the sort of person who believes that laws are for the little people, and has acted accordingly.

I love John Scalzi’s books and prior to Twitter becoming a worthless piece of poo I really enjoyed reading his tweets. In case you don’t know he’s had a blog for many years and it doesn’t disappoint.

TFG

Judo Blog

We believe that designer-developer handoff is broken and to solve this problem well requires software that is familiar to designers and developers alike—software that makes building an app’s user interface a collaborative process instead of handing off files back and forth.

I’d really like to take a look at Judo to see how it could improve my own coding efforts. Stream for Mac could use some help. It’s been a slog for me and I keep switching between AppKit and SwiftUI. I really need to focus on SwiftUI going forward.

Los Angeles Times

Only two centuries ago, a shallow inland sea dominated California’s Central Valley.

Tulare Lake is fascinating. California Highway 41 runs right through the lake between Lemoore and Kettleman City. I’ve heard tale in the olden days one had to catch a barge or take a boat from Lemoore to Kettle City.

We drove that route all the time when we lived there. It’s one way to get from the San Joaquin Valley to the Central Coast and all the lovely towns and beaches we fell in love with. Places like San Luis Obispo, Avila Beach, Cambria, Morro Bay, and Pismo Beach.

As it is today you’d have to go out to I-5 and loop back to get to Kettleman City.

Tiny Apple Core

A Blogging App?

Red sock.What would be a good name for a blog editing tool? Just for writing, editing, and publishing. Native iOS and Mac. A companion to Stream, as it were.

Would a combined blogging and feed reader app be appealing?

Before doing Stream I was originally doing a blogging tool. I did Stream because a feed reader was easier than doing a blog editor. 🤣

It’s unfortunate I waste so much time thinking about these things but I want them for myself. I figure others might want them too.

Saturday Morning Coffee

FrapAs I’m getting started it’s a nice crisp 27F outside just before 8AM EST. The sun is out and will be all day. We’ve had a very mild winter this year, with the exception of that polar blast around Christmas, and I don’t expect us to get any snow.🌞

My coffee is in hand, time to get started. Hope you enjoy the links. ☕️

Reuters

A gunman opened fire on Monday night on the main campus of Michigan State University, killing three people and injuring five, before an hours-long manhunt for the suspect ended with his death, apparently from a self-inflicted gunshot, police said.

It’s the guns. I don’t know what else to say. Over and over and over again we see this and do nothing. A truly American thing and not one to be proud of. 😞

Chicago Tribune

Kansas City Chiefs win the Super Bowl for the 2nd time in 4 years, beating the Philadelphia Eagles 38-35 on a FG with 8 seconds left

I’m happy for the Chiefs and their fans. It was a great Super Bowl, a nail biter, not a blowout. Oh, and the Mahomes to Kelce connection is without a doubt the best in football and one of the best ever. If Patrick Mahomes can stay healthy and have a 20-year run he’ll break all kinds of records and win some more rings.

Macworld

Just short of the 10th anniversary of that first Mac Pro misstep, Apple is now late in concluding its processor transition by shipping the first Apple silicon-based Mac Pro. What’s worse, reports from Bloomberg suggest that the company has ditched the next Mac Pro’s highest-end processor, calling the computer’s entire purpose into question.

Given Apple’s new chip architecture with memory and processor built into the chip I have a difficult time defining what a pro machine should or would be. Maybe you have to accept a new definition? Maybe it doesn’t mean a flexible and expandable architecture?

What I’d like to see is Apple give the Professional computing world a way to use their current investment in Mac Pro a way to replace the x86 based Xeon chips with Apple Silicon. Of course Apple would never do such a thing because money. 💸

Linode

CAMBRIDGE, Mass., Feb. 15, 2022 – Akamai Technologies, Inc. (NASDAQ: AKAM), the world’s most trusted solution to power and protect digital experiences, today announced it has entered into a definitive agreement to acquire Linode, one of the easiest-to-use and most trusted infrastructure-as-a-service (IaaS) platform providers.

I follow a number of indie software developers and they tend to use Linode for their service backends. Two that come to mind are Micro.blog, the system I use for publishing my blog, and Overcast, the indie podcast app for iOS. I’m sure there are many more out there I don’t know about. I’ve never done any large scale backend work for my indie endeavors but if I did I’d most likely choose Linode because they’re inexpensive, reliable, and have great customer service.

Hopefully they don’t start hiking prices, laying off people, and becoming a terrible place to host. 🤞🏼

Semafor

Spotify’s podcast push began in earnest in 2016, when Ek invited audio executives including higher ups at Gimlet to the company’s headquarters in Stockholm, Sweden to explain the emerging American podcast market.

Spotify calls their recorded audio podcasting. It’s not. Podcasting is the audio plus a delivery mechanism in the form of RSS. Yes, you can have a podcast as I’ve defined it behind a paywall. They just want to lock you into their app with their advertising and try to upsell you on other things. That’s fine. It’s their business but don’t call them podcasts. Ok, off the soap box. 📦

I was listening to the Pivot Podcast last night and Scott Galloway point out that very few podcasts make a profit. That’s true of what he defines as a podcast. Remember, this started as an open technology built by Dave Winer and Adam Curry. It was used and loved long before businessmen decided they could monetize it. Just like blogging. It’s was and still is a way for us mere mortals to communicate to the outside world, even if we’re not paid a dime to do it.

Oh, and I have a feeling some of the small podcasting shops are doing just fine, but they do things differently and have well loved shows. They’re just not exclusive to Spotify or Apple or whatever Big Co place you get your podcasts. They’re fully open and downloadable using your podcast player of choice because they’re built on top of RSS as the delivery mechanism.

The key phrase to listen for when you hear a podcast advertised is ”Download wherever you get your podcasts.” Then you know it’s a real podcast.

Crooks and Liars

The hearing got incredibly creepy when Arkansas state Sen. Matt McKee asked a trans pharmacist if she had a penis. “Do you have a penis?” he asked the woman, who seemed stunned at the question.

Unbelievable. I wish we could get past this and so many other things. So many people want to control how others behave and how they live their life. Often times based on some form of religion they’ve twisted to support their hate, disdain, or jealously of others.

Let people live their lives. Show them respect and grace as fellow human beings. It’s not our job to tell folks how they should live. That goes for women, brown skinned people, and the LBGTQ+ community. ❤️

Doctorow

After half a decade of sedate, steady growth, Mastodon suddenly surged, from 600,000 daily users to 2.6 million in the space of months.

Some folks are already writing off Mastodon. Silly people. If you’re looking to get a huge following and interacting with movie stars, influencers, government officials, and the rich and famous, don’t expect that from Mastodon. It’s not built for that. It’s built like your everyday neighborhood for us commoners to engage in. It’s real people carrying on real discussions. Sure, there’s gonna be some hate but there are mechanisms in place to take care of that crap. I love it and I’m excited to see it grow. There’s no algorithm to encourage you to follow people or corporate master to satisfy and no need to grow to billions of users because of it.

It’s like blogging. It’s all open and up to us, everyday people, to keep it. ✌🏼

New York Times

Lurking behind the concerns of Ron DeSantis, the governor of Florida, over the content of a proposed high school course in African American studies, is a long and complex series of debates about the role of slavery and race in American classrooms.

Talk about hateful, mean, and unsympathetic to fellow human beings. DeSantis is an authoritarian who wants to mold Florida into his own disgusting image. He doesn’t want you to think for yourself or question authority, no sir. He wants a bunch of dumb drones serving the rich and powerful.

Get out if you can. It’s a terrible state. If you can’t, or don’t want to, I wish you luck and hope you find a way to help change the state. 🍀

Joseph Heck

In the past couple of years, I’ve had the occasion to want to make an XCFramework – a bundle that’s used by Apple platforms to encapsulate binary frameworks or libraries – a couple of times.

I don’t know Joseph personally but I’ve interacted with him on the NetNewsWire Slack and Mastodon and he’s a really kind, thoughtful, selfless man. He’s given me feedback on Stream and Mac programming questions. All that to say he’s one of the good ones.

Anywho, this is a great piece on how he built an XCFramework with a Rust core. Rust has become the new, safe, language for creating highly performant software and being able to use it natively on iOS or Mac and integrate it right into Xcode is wonderful. 🧰

Cory Doctrow

Mobile tech is a duopoly run by two companies – Google and Apple – with a combined market cap of $3.5 trillion. Each company uses a combination of tech, law, contract and market power to force sellers to do commerce via an app, and each one extracts a massive commission on all in-app sales – 15-30%!

Duct Tape, fixer of all things!Web tools continue to improve to the point that native apps may become a thing of the past for many companies. Of course folks like me will continue to do native iOS, and hopefully Mac, apps for as long as we can, but the writing has been on the wall for a long time. Native apps are becoming less and less important with each passing day. Learn HTML, CSS, and JavaScript.

New York Times

Over the past year, we have seen a sweeping and ferocious attack on the rights and dignity of transgender people across the country.

A really great piece by Jamelle Bouie. Please, go read it if you can.

Me on SwiftUI list performance

Yours truly who accidentally started a conversation about SwiftUI List performance. Smooth, fast, stable, code is important to me and most developers. we do strive to make our apps the best they can be. I’m still learning, still trying, to make all my apps better each time I work on one. This conversation may change how I do Stream for Mac.

Tiny Apple Core

Confessions of an Old Developer

WillowTree Engineering

“One of the biggest reasons the title of “Staff Engineer” is so hard to wrap up in one quick explanation is because it entails such a wide scope. Over the course of my time as a Staff Engineer, I’ve had responsibilities that fall into all of the following categories at one time or another”

Brain in a jarUp until I became an Engineering Director I’d been a Senior Software Engineer since the early 2000’s, not long before Microsoft acquired Visio. I was so self conscious about the title change I asked that nobody talk about it. I didn’t tell anyone. Why? I was kind of embarrassed because I thought there was no way I could be a Senior Engineer amongst all the legendary Principal Engineers I worked with. At Visio a Principal Software Engineer was equivalent to what we call a Staff Software Engineer at WillowTree.

Fast forward to 2019 when I join WillowTree we had Staff Software Engineers and I had never actually heard the term. We also had Principal Software Engineers. The difference was a Staff focused on technical stuff and the Principal on managing folks and helping them grow.

Since then the Principal role changed name to Engineering Director. Same responsibilities, new title.

One of the things I found attractive about WillowTree was the dual track a Senior Software Engineer had the choice of taking when they promoted to the next level. I’d been thinking for quite a while I’d like to become more of a people manager and get out of day-to-day coding. To this day I still love writing code and building product. I fill that need today by building my own products. They’re small, digestible, apps I enjoyed building and maintaining, especially Stream.

Since I became an Engineering Director I’ve caught myself missing the day-to-day work of building a product. By that I mean doing the code. It’s a real transition to become a people and project manager instead of writing code. It’s taken time for me to really embrace the change and I’m finally started to settle into it.

A part of me wonders if I could be a Staff Engineer and I think I could. Staff folks tend to work on stuff around the edges, gluing all the various bits together, making sure the build pipeline gets setup and working, working with the client to decide architectures, third-party services, and overall strategy. They also tend to jump on big issues, bugs, and hop around technologies at will and pick them up quickly. In my experience at WillowTree they have the ear of our client.

AHHHHHH!My history tells me I have filled a lot of those roles, all of them in fact, but the thing that I feel would stop me from doing that job is speed. I’ve never been quick to make change. Yes, I can adapt, but I’m not one to do it overnight. I’m not what I’d label intelligent. I work really hard at what I do to make things soak into my brain. Over the course of my career I’ve outworked people. I don’t give up when I’m onto something. My lack of speed has always been, I believe, my biggest weakness.

That’s why the people manager track was so interesting to me. I knew it was time to get out of coding, I love mentoring, and it feels really great to see others grow in their career.

But I sure do love sitting in a quiet room building software and if I could work on my own projects all day, every day, I’d do it in a heartbeat. 😃

Hockenberry on Space Karen

Craig Hockenberry

What bothers me about Twitterrific’s final day is that it was not dignified. There was no advance notice for its creators, customers just got a weird error, and no one is explaining what’s going on. We had no chance to thank customers who have been with us for over a decade. Instead, it’s just another scene in their ongoing shit show.

Ollie! The Twitterrific BirdTwitterrific was the first Twitter application. Not the first for iOS, it was the first.

I’ve been using it since the first version built with the official iOS SDK. The original version worked with jailbroken phones, if memory serves?

Of course how can you blame Craig for being extremely pissed off? Of course it’s Twitter’s right to cut off access. The Iconfactory knew that when they built Twitterrific, but to not have the courtesy — never mind courtesy, the guts — to contact all the companies impacted by the change and give them a little runway so they could at least remove the apps from sale and inform their dedicated customers of the pending change.

Twitter’s new owner is a coward and not nearly as smart as everyone thought.

Thank you Iconfactory! Thank you for over 15-years of Twitterrific and all the beautiful software you create.

Here’s wishing you all the best for your next great project! ❤️

You can support The Iconfactory on Patreon or go purchase one of their beautifully designed apps. My current favorite is Wallaroo.

Native vs. Web

Chris Coyier

Still, one gets the feeling that if any of the huge platform-producing tech companies could have their way, they’d have us all writing proprietary apps for their platform only. Right this second, the web feels like it’s in a good spot, but it also feels like the native vs. web battle is a swinging pendulum.

As a native application developer I’ve been waiting for the web to replace all native software development SDK’s, and we’re closer now more than ever.

Web browsers can now persist data locally and work in offline modes. Developers can now write code in many different languages and convert that to Web Assembly. The browser is, essentially, the operating system.

Duct Tape, fixer of all things!At a personal level I want to keep doing native work because it’s nice to use the frameworks as intended and not have to rely on one of the cross platform tools, like React Native, to catch up. But I don’t see a problem with folks choosing web technologies and creating a 100% web app that works great on desktop and mobile.

If anything, old guys like me, should be concerned about web technologies being the choice for everything. When the web happened we didn’t have JavaScript. It was hacked together in a short period of time, a week if memory serves, and named JavaScript because Java was the new hotness. It has all kinds of quirks but it is beloved by developers. Add Microsoft’s TypeScript to the mix and you get some strong typing that spits out as JavaScript.

JavaScript is eating the world and if I want to write code in the future, I’ll have to learn it. 😃

Another thing worth noting: most native apps do use web technologies. We use the internet to pull data from the web and render it using native OS support instead of web technologies. My app, Stream, uses RSS, Atom, and JSON Feed, feeds from any website provided by the user. That’s all web stuff.

Chris Dixon

This is a worrisome trend for the web. Mobile is the future. What wins mobile, wins the Internet. Right now, apps are winning and the web is losing.

Red sock.Mr. Coyier’s piece sounded so familiar I went back through my blog and found a link to Chris Dixon’s piece above. In 2014 folks were worried about native apps beating the web. It hasn’t happened. The web will keep chipping away until it’s all we have or the web is completely replaced by something else.

MarsEdit 5

I’ve recently purchased MarsEdit 5 and it’s really nice. It’s what Mac Experts would call a “Mac assed Mac app.”

It’s been a real labor of love for its longtime developer and caretaker, Daniel Jalkut, who continues to expertly tweak and polish each feature like the craftsman he is.

I didn’t purchase MarsEdit 4, but had been a happy MarsEdit 3 user for years. When version 4.0 shipped I thought I’d just use the web version of WordPress, and did, up until switching over to Micro.blog full time. When it came to Micro.blog I used the native clients and web versions and they served me just fine.

I’m also a listener of Core Intuition, Daniel and Manton’s wonderful Indie Developer podcast. They’ve been talking about MarsEdit 5 for a while now and when it made it to the App Store I decided I’d purchase it for its new Markdown support, which has been my preferred way to compose blog posts for a while now.

Red sock.Not long after downloading it I hooked it up to this very blog and created my first post with it. It detected I was using Micro.blog and prompted me to get an app token from Micro.blog. I did that and once I added the token to MarsEdit I was up and running. All of my blog posts pulled down and ready to edit.

The editor is smooth and fast. All of my categories were pulled down and listed on the right side of the post. It is very stable and it publishes posts really fast.

Daniel really cares about his craft and provides excellent customer support. Overall it’s a keeper and a piece of software I can easily recommend if you’re a blogger who uses a Mac.

Of course there is one thing I’d like to see added. An iOS App as a compliment to the desktop app would be amazing. I do compose many blog posts on my iPhone because it’s the computer I have with me all the time. I’m actually composing this post on my iPhone with Tot. Why? Because I’m chillin’ on the couch having a beer and I’m too lazy to go get my laptop. 😁

MarsEdit 5.0 by Red Sweater Software lists for $59.95 and can be purchased directly from the Red Sweater website or the Mac App Store.

Work Note: Reworking Arrgly - Day 2

I didn’t do much on day two. I did a very basic layout that displays the long URL copied to the Pasteboard and got the link off of the Pasteboard and placed it in a text field. The layout it nowhere near final.

Then I decided to get Chipotle for lunch and got really lazy afterward and didn’t do any additional work.

Screen Shot 2022 12 28 at 11 11 13 AM

Work Note: Reworking Arrgly - Day 1

Brain in a jarEven though I was pulled into work yesterday I managed to start the rebuild of Arrgly to use SwiftUI. I do NOT recommend doing this on a real software project because rewriting an app is a sure way to lose money and possibly destroy your business. I use Arrgly as a learning application because it’s tiny and fairly easy to rework.

Yesterday I spent the day reorganizing the Xcode project. It was organized into different folders to make it easier to find things. I had it organized in groups like; Network, ViewModels, Utility, Parsing, etc. All of those lived under the main Arrgly build target and I’d like to reuse all of that code for the SwiftUI build.

Step 1

I added a new build target for the SwiftUI project, called SquishU for Squish Universal. Oh, yes, I’m renaming the app to Squish because I really hate Arrgly and that’s the best I could come up with.

Step 2

Once I had the new target I created a group called Shared and moved all of the code that could be shared between the two targets under the Shared groug and made sure the application could still build and run.

So far, so good.

Next

Now I need to sit down and start reworking the UI using nothing but SwiftUI. This is where the rubber meets the road and who knows how long it’ll take me to actully complete the work.

With any luck this will be in the App Store soon. The last version of Arrgly was pulled from the store by Apple because I didn’t rebuild it with a newer version of the iOS Frameworks. It still works fine on my phone, you just can’t download it any longer.

Developing in SwiftUI

Duct Tape, fixer of all things! I’ve decided I’m going to work on revamping Arrgly starting tomorrow. It’s going to get a new name, Squish (I think), and the UI is going to be 100% SwiftUI (worst name ever) because I need to learn SwiftUI and Arrgly has always been my playground app.

Once I’ve completed it I’m going to start working on Stream for Mac in SwiftUI and see if I can complete it before the end of 2023. 🤞🏼

Wish me luck. 🍀

Saturday Morning Coffee

Good morning! It’s Christmas Eve – for those who celebrate!

Look, I’m a native California boy. It’s mostly sunshine and warm weather year round. Sure we’d get down in the high 20s overnight on rare occasion, but nothing like we’ve experienced in Virginia this week. It’s been pretty darned frigid. The temperature at the moment is a balmy 8 degrees outside, with a feels like of -7. That’s just wild!

Anywho, first cup of coffee is in the mug. Time to compose the post. ☕️

Spicy Mexican Coffee

Mike Hurley

Many people using PCalc on their shiny devices today don’t realise that the app has been around for a lot longer than they think. In some cases, a lot longer than they’ve been thinking.

Happy Birthday PCalc! 🎂

It’s impressive to have an active 30 year run with a piece of software. Congratulations on 30 years and counting James Thomson!

Craig Hockenberry

By now, you probably know where this is going: yes, I wrote my own utility and call it SimBuddy. It’s a FREE download from the Iconfactory.

Craig Hockenberry is a long time Mac and iOS Developer. He’s best known as the creator of the first Twitter client, Twitterrific, but he’s also developed many fun and useful apps for the Iconfactory.

If Apple gave out lifetime achievement awards, Craig would be deserving of one.

Thanks for another great development tool, Craig!

Joel Spolsky

Well, yes. They did. They did it by making the single worst strategic mistake that any software company can make: They decided to rewrite the code from scratch.

This is an oldie-but-goodie. The Joel on Software piece above is from 2000 and touches on something that can destroy a company quicker than anything: rewriting software.

The article was brought up somewhere this week because Musk is reportedly looking to rewrite Twitter.

I mean, dang, dude! Maybe try to understand how all the things work together before jumping to that conclusion. A lot of cool stuff was happening before you blew the place up.

I’ve been trying to stay away from linking to Twitter but I couldn’t resist this tweet because it captures something a lot of modern devs should hear.

Basically the tweet thread goes on to explain how broken Apple’s development process was broken on a particular team.

I’m not saying alternate forms of development are necessarily bad but grinding devs into the ground is not good, at all. People need time to live, and sleep.

Futurism

It’s not just Tesla investors who are at their wit’s end with CEO Elon Musk, who has been making a huge mess of his Twitter takeover.

Ah, yes, The Musk Effect. He’s dragging Tesla down with Twitter and I’m shocked the Tesla Board hasn’t fired him.

Tech Dirt

But, really, after all this, I cannot fathom how anyone can possibly get all that excited about joining yet another centralized social media site. Perhaps I’m biased (note: I am biased) because it was my frustration with the problems of these big, centralized social media services that made me write my Protocols, Not Platforms paper a few years ago. But, after all of that, the big question that kept coming up about it was “sure, but how would you get anyone to actually use it.”

Here’s to the Open Web making a comeback! We now have Mastodon and Micro.blog to fill our Twitter mojo and both run on open standards like ActivityPub and RSS.

Dare Obasanjo

A friend asked what I think will happen to Twitter. Here’s my assessment

Nice little Mastodon thread from Dare sharing his thoughts on the Twitter mess.

Denise Yu

You’d like to have time to code, but nobody else is onboarding the junior engineers, updating the roadmap, talking to the users, noticing the things that got dropped, asking questions on design documents, and making sure that everyone’s going roughly in the same direction.

This piece from Denice is required reading for any Software Developer. It explores the position know as Staff Engineer or Principle Engineer in many companies today.

At WillowTree was have a dual track for Software Developers after the Senior level; Staff Engineer or Associate Engineering Director.

I personally reached a point where I decided it was time to change direction and focus on building teams instead of coding, so I became an Associate Engineering Director.

It is interesting to note the Staff and Director positions overlap in significant ways but also have very unique traits. The Director position is a people management and team building position, the Staff position does deep dives into technology and can master just about anything.

Anywho, go read Denise’s piece, it’s very good.

Alexandre Colucci

Eat your own dog food.

Like in the past years, I will try to answer a couple of questions: How many binaries are in iOS 16? Which programming languages are used to develop these apps? How many apps are written with Swift? What is the percentage of apps using SwiftUI versus UIKit?

I had to share this because I too find it interesting to know how much Apple is eating their own dog food when it comes to their developer technologies.

Swift seems to be making real inroads and SwiftUI (worst name ever) is starting to show itself.

I’ve been thinking about doing Stream for Mac with SwiftUI. It is the future of development on the Mac and iOS. All devs need to learn it at some point.

Dan Sinker

Newsrooms should not spin up instances for their reporters partially because this is too new to dedicate strapped staff to

I’ve been pushing the idea of news companies spinning up their own Mastodon servers. Dan does make a good point about not doing that. If Mastodon could be enhanced to export all posts to another instance I have a feeling Dan wouldn’t be as opposed to the idea. As it stands you can move instances but it only keeps your followers, you lose your posts. That’s no bueno.

Adam Davidson

We want the field of journalism to take ownership of the ways stories are distributed and audiences are engaged.

With the most recent flight of users from Twitter Mr. Davidson spun up an instance of Mastodon for journalists. That was a brilliant idea and provides a bit of distance from the journalist to their organization. It’s a great alternative to news orgs spinning up their own.

The Atlantic

There has never been any mystery about what happened on January 6, 2021. As Senator Mitch McConnell said at Trump’s second impeachment trial, “There’s no question—none—that President Trump is practically and morally responsible for provoking the events of the day.”

In many ways I’ve lost confidence in our Justice system because it treats the rich, politicians, and white people differently than everyone else. Combine more than one of those traits and you’re likely to walk away unscathed where someone who works at the coffee shop, is poor, and dark skinned is totally screwed.

It’s not right. TFG must be brought to Justice. Our system requires it if our democracy is to survive.

Ghost Only

How to have a good internet experience in 8 easy steps

I usually avoid posts that include “steps” or “X reasons” because they’re usually really bad click bait type articles. This one isn’t. Go check it out.

Tiny Apple Core

A Kind Word

A wonderful bouquet of flowers.I received an email out of the blue from a co-worker from years ago. He was a Software Engineer in Test who wrote code to test code. The project was an SDK.

I had no idea I left an impression on him but I’m honored to know I did. I had wonderful mentors during my time with Visio who all left me in awe of their kindness and willingness to impart their wisdom with a young, energetic, kid that knew very little but was willing to learn.

Anywho, here’s part of what he said. ❤️

just wanted to say that I made the leap from test to developer many years ago and feel that I’m quite adept at it at this point. Of course I had to overcome the imposter syndrome for a while in retrospect (and still fighting it a bit now) but I just wanted to say thank you. You were one of the few devs that would listen to my input and also take my “advice” on where I thought bugs were stemming from. You really helped me, whether you knew it or not, build my confidence that I knew at least a little bit about what I was taking about lol. I know it was probably nothing big to you but I felt like you really treated me as a peer rather than some “tester” that didn’t know what he was taking about. Which I felt was sadly the norm a lot of the time.

Saturday Morning Coffee

What a week! That dude that took over Twitter is driving it in the ground with a gigantor hammer all while we watch from the cheap seats sipping our soda and eating popcorn. What a spectacle.

This week was a busy week at work, promotion time. Lots of meetings. I’m all Zoom’ed out.

Enjoy that morning elixir of life. I certainly am. ☕️

Spicy Mexican Coffee

Wired

Eugen Rochko looks exhausted. The 29-year-old German programmer is the founder of Mastodon, a distributed alternative to Twitter that has exploded in popularity in recent weeks as Elon Musk’s ownership of the platform has rained chaos on its users.

I’ve heard some folks doubt the survivability of Mastodon and doubt hate can be squashed there. In my experience on the platform it’s quite the opposite. If you’re running a server full of racist white nationalists, Nazis, or other hate groups it’s extremely easy for the admin of your server to block federation of that entire server.

I’ve found Mastodon to be so much better for conversation with folks outside my little friend bubble on Twitter.

Brent Simmons

For writers, artists, podcasters, journalists, and people who make things in public, Twitter was the one social networking site we all had to use.

Brent is a long time blogger, Mac programmer, creator and leader of the NetNewsWire team, and all around great guy. If you’re a consumer of RSS point your feed reader to his site. It’s a great read.

Platformer

Musk went on to say that “Twitter will be much more engineering-driven,” and that while design and product “will still be very important,” engineers “will have the greatest sway.” And then Musk presented employees with an ultimatum: click “yes” on a Google form affirming your desire to “be part of the new Twitter,” or leave in exchange for three months’ pay.

I’ve heard from a friend that most of the US Engineering staff left. That’s just wild.

I don’t have a NY Times subscription but I’ll bet this piece by Mr. Roth is quite good.

Daring Fireball

If you had told me three weeks ago that Twitter, as a company, would today be embroiled in turmoil — perhaps outright existential crisis — over a company-wide email from Elon Musk centered around the phrase “extremely hardcore”, v-1 is not the scenario I’d have imagined.

In my career I’ve worked for some hardcore companies, like the old Microsoft, it’s not fun. Don’t do it.

I don’t understand why he continues to ask for snippets of code from his employees. It’s just some random metric he’s using to what what end? What about the devs who made Twitter better by removing code?

CNN

Amazon confirmed on Wednesday that layoffs had begun at the company, two days after multiple outlets the e-commerce giant planned to cut around 10,000 employees this week.

It’s been a rough couple weeks in the tech sector. I’m sorry to see so many folks having to deal with this. Here’s hoping they land on their feet quickly.

Fresnoland

While Central Valley agricultural leaders warn of jobs loss during California’s ongoing drought, some local leaders say it’s time for less water-dependent economic opportunities.

California is in deep trouble so the United States food supply is in deep trouble. You’ll see it at the grocery store.

Becky Hansmeyer

When I tweeted my way into the iOS community so many years ago, I felt the same energy and excitement, if not necessarily the same level of closeness. You all gave me the confidence I needed to keep going with programming when I felt like giving up. We’ve person. Like her I lament the loss of the Twitter we knew but all good things come to an end, right?

America, America

I’m not anywhere close to assuming redemption for Rupert Murdoch or his publication for their role in empowering the dangerous desecration of the last six years, particularly since Fox News showed reluctance in quitting the man by airing nearly all of his sour announcement. (For me, the announcement at Mar-a-Lago had more of the air of a man running from the law than running for the presidency.)

How TFG avoids jail time at this point is beyond me.

The Register

Microsoft Azure CTO Mark Russinovich has had it with C and C++, time-tested programming languages commonly used for native applications that require high performance.

Russinovich is a legendary software engineer. It’s gonna be interesting to see how many new products come out of Microsoft and other companies written in 100% Rust.

The Brookings Institution

In this second edition of our October 2021 report, we review the investigation and its basis. We assess the publicly known facts and relevant law and analyze the extent to which the former president may be held criminally responsible for his conduct in Georgia. We conclude that Trump is at substantial risk of criminal prosecution in Fulton County.

At substantial risk? How is he not already in handcuffs? If any of us “regular” people had done this we’d be thrown in a dungeon.

Jalopnik

Haas’ Kevin Magnussen just scored his first-ever pole position in Formula 1 during the Brazilian Grand Prix. Yes, I intended to write that sentence. It’s not April Fool’s Day. Kevin Magnussen is polesitter for Saturday’s sprint race.

I support Haas. It’s an American F1 team and I’m happy for Kevin Magnussen and Haas. Now, get some podiums! 😂

PZ Meyers

Between the Church Militant and Nick Fuentes, it’s pretty clear what the theocratic Right wants to do: they want to kill you or force you to be as mad as they are.

Nick Fuentes is a piece of work but at least he’s not hiding his White Christian Nationalism behind dog whistles, no sir, he’s just saying it out loud.

Go check out that tweet thread. It’s full of Twitter Employees saying goodbye after the hardcore time limit expired.

It’s a sad day for the social network. How long will it stay up?

Tiny Apple Core

Stream Wish

Brain in a jarI have plenty of work to do on Stream, plenty. I have a list of features a mile long. Some submitted by the fine folks using Stream — thank you! — some right out of my goofy brain. Yes, I wish I could move faster, yes I’d like to do this full time. Yes, yes, yes!

The best I can do is muster is an hour here an hour there. Anywho, I’m putting this idea out here. It’s one I’ve added to the Stream list. It’s absolutely something I want.

Read Later

I use Pocket as my read later app. It plays a crucial role in collecting posts and news for Saturday Morning Coffee. What I’d really love to have is a read later feature in Stream. One of these decades it’ll happen.

Twitter Support

It would be much better if these features were part of Twitter.

First, I’d love to be able to follow Twitter Lists as if it were an RSS feed. This is a very selfish feature because I have a Twitter List called Politics. It has all my favorite news sources and other sources of politics. I made it because Politics can really stress me out, especially around election time. I’d like this so I could follow any list from any Tweeter, including my own. Of course it would be best to be able to do it without going through Twitter’s authentication system, but I supposed I need that so I can use the API.

Second, it love to have an extension to Stream that could unroll a Twitter thread into a nice single post. That’s it. That’s the feature.

Here’s what it would look like. This example used Thread Reader and Pocket. Stream could be great at this if its darned developer would get off his butt and write some code. 🙃

I don’t know why I’d like to do this, but I’d love to do a Mac and Windows word processor that implements a WordStar clone. All the way down to keyboard shortcuts and file format.

Some writers still use WordStar as their word processor of choice.

Of course there are projects I will spend my time on instead of this odd thought.

Stream comes to mind. 😃

Saturday Morning Coffee

My first cup of coffee is poured and cooling a bit, our old kitty — Khloe — is in my lap, and I’m sat in my writing spot at the end of the couch nearest the front window. It’s cloudy and raining and the wind is blowing. I’m not sure if it’s remnants of Ian yet or just a regular storm. Guess we’ll find out. 🌧️

CNN: “Ian slammed into southwest Florida as a severe Category 4 hurricane Wednesday, packing sustained winds of 150 mph. Officials believe the death toll of at least 45 people is likely to climb in the coming days as searchers access areas that had been blocked by debris and floodwaters.”

What a tragic week for Floridians. So many folks displaced and damage beyond belief. Homes and businesses wiped completely off the map, land reclaimed by sand. And the there is the human toll. 😢

Take care my Florida friends. ❤️

Travel Radar: “There have been multiple reports of strange noises coming from American Airlines in recent weeks that neither the passengers nor crew members could explain. Some passengers have been airing their confusion across social media.”

It’s the perfect time of the year to have mysterious moaning sounds coming out of the speaker system on a flight.

It doesn’t sound like an equipment failure to me. I’m going with ghosts. 👻

When the big players figure out they can automate a money making machine they have to get involved and screw everything up.

Luckily we still have great Indie Podcasts to listen to.

TechCrunch: “Now, a Spanish startup called Penpot — which is taking a new approach to design collaboration through an open source platform that brings designers and developers into the mix simultaneously — says that it’s been seeing a huge amount of adoption since the Figma deal.”

I happened across Penpot a month or so before the Adobe purchase of Figma. It’s really nice and if you’re looking for a Figma alternative you might want to give it a look.

Bleacher Report: “Odell Beckham Jr. questioned why all NFL stadiums don’t feature grass fields after former New York Giants teammate Sterling Shepard suffered a non-contact knee injury on the MetLife Stadium turf on Monday night.”

This is not the first time turf has become controversial. I remember back in the 70’s or 80’s this being a topic of conversation. That was before this new wave of turf became a thing.

I’ve always been a fan of grass fields. Bring them back to every stadium you possibly can. I want to see some filthy uniforms.

Apple Newsroom: “Amid the tools used by archaeologists for centuries — trowels, buckets, brushes, and pickaxes — there’s a new piece of equipment: iPad Pro.”

I am so here for this. Seeing tools used in ways you never expected is always such a joy for the developer.

Congratulations to Top Hatch, the makers of Concepts, and my friend Marc Palmer who is a developer on the engineering team! 👍🏼

Politico: “A federal judge delivered a blistering rebuke of Republican Party leaders Tuesday for what she said was a cynical attempt to stoke false claims of election fraud of the kind that fueled the Jan. 6 attack on the Capitol.”

I really wish Republican leaders weren’t so power hungry and had the guts to all come out against TFG.

Here’s hoping one of the many troubles TFG has leads to conviction and elimination from running for public office. 🤞🏼

9to5Mac: “This week, a new Instagram client called “OG App” caught the attention of the internet as it promised a better Instagram experience without advertisements or content suggestions from people you don’t know. The app seemed too good to be true, but it has now been taken down – not by Meta, but by Apple.”

If you’re surprised by this, don’t be. Instagram cut off developers long ago. At one time there were plenty of great Instagram clients, even for iPad!

It’s a closed platform. The best we can hope for is alternate services — like Glass — to catch on and take a big share of Instagrams user base.

Of course the United States, Britain, and Ukraine aren’t the only countries in complete disarray. Iran is having another revolution. Women are coming out in force to demand equal rights and an end to its totalitarian regime.

Yahoo Sports: “Again, if you don’t like the “White Bengal” look with the black stripes — which included the debut of the white helmet with black stripes on Thursday night — then it’ll be a while before you find an NFL uniform you like.”

I loved the white out uniforms worn by the Bengals Thursday night. Being a Bears fan I’m really looking forward to seeing the new orange helmets the Bears will be wearing on special occasions this year.

I kind of wish they’d go orange helmets with their navy blue color rush uniform but they’re not going that direction

Hayseed Blog: “I’m happy to announce a new Stream release. Version 1.3 is a minor release with one new feature and two bug fixes.”

I wish I could turn this little project into my full time gig. Heck, I’d be super happy with a few hundred bucks a month! 🤣

That aside I am proud of my little labor of love and hope you’ll give it a look.

Getting this version out the door has allowed me to get back to the Mac version. It’s slow going since this is my first real Mac app but I do hope to ship it at some point. 😄

Time for my third cup. ☕️

Tiny Apple Core

Saturday Morning Coffee

I got a nice little treat with my coffee this morning. Kim made some pumpkin spice cinnamon rolls. 🤤

Pastries and coffee are perfect together.

Frap

Robin Rendle, hat tip Om 🎩: ”There are no rules to blogging except this one: always self-host your website because your URL, your own private domain, is the most valuable thing you can own. Your career will thank you for it later and no-one can take it away. But don’t wait up for success to come, it’s going to be a slog—there will be years before you see any benefit.”

If you’re reading this you have to know by now I love blogging. I don’t see giving it up. Sure, I’ve gone through extremely dry spells over the years but I still enjoy it.

In the early 2000’s I’d do little one line posts and it was fine. When Twitter became a thing I felt like my blog posts needed a title for some strange reason. When I switched back to this domain for my blog I started posting stand-alone short posts without a title and pictures.

I like the way it’s going. I post more frequently.

The Daily Beast: ”Dearie, a semi-retired federal judge in Brooklyn who’s playing the role of temporary referee, wants to speed up the process and get federal agents back on track. And while Trump has been alleging on social media that he already declassified the records he swiped from the White House, Dearie is demanding that Trump put up or shut up.”

The judge that setup this whole mess by allowing for a Special Master was just passing the buck. It’s nice to see Judge Dearie call B.S.

It’s amazing how big a grifter, gangster, bully, TFG is. He really does deserve some jail time, of course he won’t get any, but he deserves some.

The Iconfactory : ”Introducing Wallaroo - the quickest and easiest way to browse and set wallpapers on your iOS devices. The Iconfactory has been crafting custom wallpapers for the Mac and iOS community for over 25 years, and now we’ve packaged them up in a fun, handy app that’s available today on the iOS App Store.”

I’m a huge fan of The Iconfactory. I’ve been a Twitterrific user for years and years and years and I’m composing this post using Tot, their simple note taking app.

When I saw the post for Wallaroo I installed it straight away and subscribed. I love seeing a subscription that is going to provide me with high quality iPhone wallpapers for the length of my subscription, one year.

I’m currently rocking the Jack-O-Lantern from the Spectral Selfies collection. It’s a beautiful piece of work.

Highly recommended.

I was also surprised to see Apple relax the rules around the Dynamic Island (Do you say Dynamic Island in a big booming voice in your head or is it just me?)

Regardless. It’s nice to see Apple allow for this whimsical treatment of the island.

Who know, next week they may reject it? 🤷🏻‍♂️

The Washington Post: ”The issue Wednesday went far beyond a single statue. Residents — neighbors, families — plunged into an emotional discussion about identity and who gets to define it, provoking a heated defense of local heritage. Much of it was couched in an unreconstructed view of history in which the Lost Cause is noble, the Confederacy was a bastion of states’ rights and Gen. William Tecumseh Sherman was an unprincipled butcher.”

This is something I really hate about the South. There is a reality distortion field around this so called heritage. Yeah, it’s a heritage of slavery. The imprisonment and mistreatment of human beings to serve your needs. It’s pathetic.

Every one of these Jim Crowe era statues and monuments need to be destroyed. Melt them down and make them something beautiful or put them in a museum to shame them. It would be a museum similar to the Holocaust Museum. We can’t forget the Civil War and we need to tell it for what it was. It was all about slavery.

The Confederacy was a disgusting attempt to overthrow the government. It’s a stain on our history.

Gotta give this asshole props for being honest enough to say what these right wing extremists believe. Most of the MAGA’s dance around the subject. Not this dude. He comes right out and says “I’m a racist bastard.”

Disgusting.

ESPN: ”CLEVELAND – Nobody, at least still living, knows for sure how Brownie the Elf came to be the first official mascot of the Cleveland Browns some 76 years ago.”

Let’s end on a happy note, shall we?

I know Brownie the Elf is controversial in Cleveland and around the country but gosh darnit I’m here for it! Not every NFL team needs some macho mascot.

I hope the dress him up for the holidays. A Christmas elf would be nice.

Oh, I also really love that he covers a gigantor part of the field. Nicely done Cleveland.

Now, let’s get him on the helmets. 😁

Tiny Apple Core

I should get my act together and get a TestFlight build of Stream put together. 😂

Stream Update

I managed to work on Stream a bit over the weekend and once again I have that ”I wish I could do this full time” desire.

I have a list of things to do a mile long. I checked my checkins — say that five times fast — and I haven’t worked on the Mac version in well over a year. Pathetic.

I did manage to get very close to finishing off a new little feature over the weekend. This feature will allow you to set the number of days Stream will keep posts. It’s a sliding scale from one to 31 that defaults to 30, because 30 is the hard coded value in the version in the wild.

I like the way it’s come together and need to fix an annoying bug that cropped up on iOS 15.5 — possibly other versions — then I’ll get a beta out the door.

A cute little monkey.For the technically minded. This bug is clearly my fault. I have a layout issue my table view cells, there are two types. It would seem that iOS 15.5 has tightened up, or changed, the auto layout engine in UIKit that exposed my bug. I say it’s iOS 15.5 but it could be all 15.x. 🐞

I’m still digging. Hopefully I don’t wait another eight months to work on it again. 😳

I bet getting an M1 MacBook Air would feel blazing fast given I’m still using a 2019 15in MacBook Pro.

Yes, it has the butterfly keyboard and my fingers don’t work on it. 😆

And, honestly, the old MacBook Pro is plenty fast for me.

Saturday Morning Coffee

FrapThe United States Supreme Court continues to be a complete mess whose only job appears to be dismantling prior rulings and dialing our nation back a century.

Golden Hill Software: “I am excited to announce that Unread 3.0 is available now from the App Store. Unread 3.0 adds Unread Cloud, a new syncing and article retrieval system for Unread.”

John Brayton, the person behind Golden Hill, is a friend and competitor. Unread is a beautiful, highly functional, and very stable application. With the addition of Unread Cloud, John has taken Unread to the next level.

Checkout the Golden Hill Blog for more details on Unread Cloud. There’s some great content up there.

Of course I’d encourage you to use Stream as well as Unread.😃

The New Yorker: “Regardless of this detail, Hutchinson’s testimony appeared to strengthen the criminal case against Trump. One of her revelations was that, a few days before January 6th, Pat Cipollone, the White House counsel, had explicitly warned that if Trump did go to Capitol Hill on January 6th he could potentially be implicated in the crimes of obstructing justice and obstructing the electoral count.”

Trump is a criminal. A poo spouting, lying, criminal, who’s a real threat to our democracy.

Swift.Org Developer Spotlight: “I learned Swift by porting Graphing Calculator’s core computer algebra system. It started as a learning exercise, then became a feasibility study. The pandemic played a role in that decision, as this became my pandemic shelter-in-place project. The refactoring could have been done in C++ and Objective-C++, but it would not have been as effective, nor as much fun.”

This is a really great read. The developer of Graphing Calculator walks us through his effort to port his old code base to a modern Swift/SwiftUI application, complete with AR features!

He also relays his SwiftUI experience.

“When SwiftUI works it is a nigh-magical delight, but when it behaves unexpectedly or when behavior outside the prescribed path is desired, it can be difficult to understand and work around its limitations.”

If you’re a developer take the time to read the post. I think you’ll enjoy it.

Some states in our Beautiful Union have become Gilead. It’s pathetic, dangerous, and extremely cruel.

Also, whoever impregnated a 10-year old should be put down like a rabid dog. Rape and incest are one of those things that makes me angry enough to commit murder because it robs the victim of their soul. It’s worse than murder in my opinion. They’re alive and dead at the same time.

The Podcast Index: “The Podcast Index is here to preserve, protect and extend the open, independent podcasting ecosystem.”

This is something I believe the podcast ecosystem needs. An open podcast directory. I’ve even written about such a thing

The big question for me is, will indie podcast apps make use of it? I’m thinking of Castro and Overcast in particular. Both run their own directories, as well as other backend services, but The Podcast Index makes me wonder if they could replace their directories with this?

I’m sure it comes down to a matter of trust and control. I know it would be really difficult to make such a bold decision.

SFist: “California is pushing for green energy and wants to avoid blackouts, but giving PG&E $75 million to handle radioactive waste at Diablo Canyon may sound like a deal with the devil.”

I love California but she has her problems. It’s crazy expensive to live in the Golden State and continued drought coupled with fire creates monstrous problems to cope with.

PG&E doesn’t have the best reputation. Their lack of line maintenance has caused numerous fires in California, including the massive Camp Fire that killed 84 people in 2018.

Apple announced and displayed a new version of CarPlay at WWDC 2022. Can they compete?

I also wonder if car manufacturers will have to pay Apple 30% of each car sale? 🥴

Tiny Apple Core

Stream + Twitter

Something I’ve considered adding to Stream is the ability to follow Twitter lists.

The reason I’d like to have it is I have a Twitter list called Politics I’d like to follow.

I thought this could be an interesting, differentiating, feature.

Of course there are many features on my list. So many it’s honestly overwhelming when I think about them all.

Some others include; iCloud syncing, Feedbin, Feedly, Labels, Filtering, and many, many more.

So much time, so few features. Scratch that, reverse them. So many features, so little time.

Panic’s Nova Parser and Grammars

PanicPanic’s Nova Developer Forum: “Now, in my opinion and after laying all to bare in this way, Tree Sitter stands as the best path forward for both Nova’s team as well as our extension developers. Keep in mind, I know little about the actual performance of Tree Sitter against our current parser (both of which are marketed as very fast), and likely won’t until time is taken to actually try. There are more things to consider beyond the raw speed of its C source, as Nova’s features need to sit atop it and bridge to Swift, which may take time to get right. So, that’s all within a grain of salt.”

Panic is full of talented people and I love how transparent they are.

This would, obviously, be a huge change to the guts of Nova and I can see why they’re approaching it so cautiously.

In the end I’m looking forward to final decision and which direction they decide to go with.

Tree Sitter seems like a solid choice, even if it’s not created by Panic and being written in C should make for fast, small, code.

Hopefully the Tree Sitter folks will welcome Panic input and PR’s with open arms so Nova and all other developers benefit.

Becky’s WWDC Wishlist

Becky Hansmeyer: “New and/or third-party watch faces. When I think of all the amazing designers I follow on Twitter, it makes me sad to imagine the gorgeous, fun watch faces they could come up with that will probably never see the light of day.”

It’s been quite a while since I’ve seen a blog post from Becky and it’s always fun to read her wish list.

My wish list is simple: Custom Apple Watch faces.

Of course most developers want SwiftUI improvements. I’m fine with that but not in a real hurry. I’ve contributed to a couple SwiftUI projects and I found it very confusing — it’s yet another brain shift — but I get the idea.

It’s really nice when “it just works™️.”