Project Tapestry

Project Tapestry by Iconfactory, promotional image

Craig Hockenberry • Iconfactory

This post will explain the technology behind Project Tapestry and how we tested it as a prototype. We’ll keep this discussion at a fairly basic level: if you’re a web or app developer, you’ll have no problems following along.

And if you think I’m going to describe RSS feeds now, think again! We’ve come up with something completely new.

I’m excitedly looking forward to seeing the final product and I hope they make their stretch goal of bringing it to the Mac. 🤞🏼 Please, go read about Project Tapestry, and if you’re so inclined please support their effort. I backed them early, it was a no brainer for me.

I really wanted to talk about the choice the Iconfactory made to create a highly extensible platform for plugins. It’s a darned great idea! And I love their choice of pushing network requests through Project Tapestry itself as a way to guarantee plugins can’t phish out user data or credentials to exploit later. 👍🏼

As I was reading the post I came across Craig’s mention of the app having a sendRequest method used by the JavaScript code to make network requests. This grabbed my attention and made me realize this is a way better version of a React Native application.

What I mean by that is, React Native is hosted inside a native iOS application framework and uses native iOS controls on its view controllers or its version of a view controller. The JavaScript code drives everything from networking to user interface (it uses UIKit internally) to render content for the user to interact with. This allows developers to write their app using straight web technologies and run it on iOS and Android.

The project I’m currently involved in is an existing eight year old iOS application built with a mix of UIKit and SwiftUI. On the flip side the Android app of the same age is built using Java and Kotlin with a mix of the original XML based UI and modern Jetpack Compose. They’ve both taken very similar and not unexpected paths.

Enter React Native

Something our client wanted to do is integrate React Native into the existing applications. This has been done before by Airbnb and more recently by Shopify. Each with very different outcomes.

So all of that to say, ours has been successful, in my opinion. We’ve been able to fully integrate React Native and carve out a little set of API’s in the native application we expose to the React Native developers to do work the native application is already doing for them for free. Part of which is all the networking calls.

In the Tapestry blog post Craig points out sendRequest. It’s the call they use to handle requests to the internet for the JavaScript plugin. In our application we’ve exposed a makeRequest call that handles doing any type of network request; GET, POST, PUT, PATCH, or DELETE, and returns a Promise to the caller. Hey, sounds like the Tapestry code! 😄

I have it on my todo list to learn JavaScript. It’s been there for years and years because I knew I’d need it at some point. I really need it now. I can’t see React Native projects going away for the WillowTree team. They’re a very popular way for our clients to get cross platform code and get an iOS and Android app out the door simultaneously without having to spend time, money, and effort on two completely separate code bases.

Over the course of our integration work I’ve done a smidge of TypeScript code to allow other TypeScript devs on the team to make calls into the APIs we’ve exposed in the native application.

It’s been fun and I see a place for JavaScript/TypeScript in my native development world.

Project Tapestry is BETTER!

As for what Iconfactory is doing, I think it’s a much better version of what React Native does. It gives them the best of both worlds. A beautiful, hand crafted, fully native UI, that gives JavaScript developers the ability to extend the app. That’s a lovely thing. ❤️

Stream for Mac: Work Note

Brain in a jarI managed to work on Stream for Mac for a little while yesterday. I got a bit confused about how menus operate on the Mac — from a developer standpoint. I’m an old Windows developer of 20 years turned iOS developer in 2009 and now exploring the Mac and AppKit (yeah, I know, it’s old and busted now.) I got hung up on who “owns” the menu in a Mac App. I’d never had to think about it before, now I have a better understanding of how the Mac and first responder work.

I was kind of beating my head against the concept until our internet connection decided to stop working and I was kind of forced to walk away for a bit. That was intimately the key to figuring it out. I asked some questions on the Core Intuition Slack, using my phone, got some great answers to my noob questions, and read about menus and first responder in a book I have available in Kindle. The book I used was Programming Swift! Mac Apps 1 Swift 3 Edition by Nick Smith. I jumped to Chapter 8 Menus, Toolbars, and First Responder and that did the trick. I’m hoping I’ll be able to carve out some time today to put my newfound knowledge to use. 🤞🏼

I have other chores to take care of first. Hopefully they don’t take too long. Heh, they always take too long. 😂

React Native Impressions

RibbitI’m on a project at work using React Native but not in the typical way, which is to say it didn’t start as a React Native project. It’s an exiting app out in the world actively uses by, I’d imagine, tens and tens of thousands of people. Perhaps hundreds of thousands. Bottom line is, it’s a frontline app and is important to our client.

Our client has a large team of React developers and a team dedicated to the design and development of reusable React components for the company. They’ve done an amazing job creating a platform for their devs to build on and would like to have those devs build mobile experiences as well. I can’t blame them. They’re very good at it.

They currently have native iOS and Android apps that are almost ten years old and use various frameworks and technologies. Your typical legacy codebase. That’s nothing new or frightening. All code develops its rough patches over time and as time goes by we go in and turn the soil so to speak. We replace outdated frameworks developed out of necessity with new platform supplied frameworks and our code is more robust and easier to read and maintain, especially for developers coming right out of school.

Brain in a jarWith all that in mind here’s what our client is looking to do. We are building new features in React Native and leveraging much of the internal native code to fetch network data, build models, and return that data to React Native code. The API or Interface to the native code is well defined and implemented on iOS and Android. The React Native team code is the same for both platforms. I’m part of the platform team integrating React Native into the existing app and providing the API/Interfaces to the React Native developers.

Like I said, this is a non-standard way of doing this but it’s been done by others with stories of success and failure. I believe we are on track to have a story of success. It’s not going to be free of bumps along the way but we’re making really great progress and I believe we will hit a steady working state as soon as next week. That means the foundation to strap up and host React Native code is in place and working as expected. Now it’s time to build out the API more thoroughly, driven by our React Native developers need for specific data or business logic. It’s a single app, purpose built, API. The idea is to hide any ugly code on the native side and keep the API to the app clean for the React Native developers.

Cool Bits

One of the extremely cool things about how we’re approaching it is how our React Native devs work.

They work inside of a separate application while they’re developing new views and logic. It allows them to move more quickly and not have to rely on the native apps to update before writing their code. It also means they don’t have to worry about keeping the existing native app building on their computers. That can be a headache, I wish it weren’t, but it can be. More on that in a bit.

How does it work? Well, when you create a brand new React Native project you run some tool to generate the project for you. It creates the scaffolding for your React Native code as well and iOS and Android host app projects complete with the frameworks necessary to build the native host apps. On iOS uses CocoaPods. I don’t know what Android used.

That allows the React Native Developers to run ahead of the platform native developers to build their UI’s.

Ok, so how does that work?

We negotiate with the React Native development team to define an API signature for the native apps. They build a mock version of that in their development host app that matches the agreed upon signature and go about coding.

We build out the platform side to do the true implementation. When we have something to test we pull over a packaged version of the React Native code and give it a spin. If there are problems we work directly with the React Native developers to figure it out. Once it’s ironed out it’s wash, rinse, repeat. We currently have a feature built by WillowTree and one built by our client working in the development host and in the existing native applications.

It’s pretty darned magical when it works! 🧙🏼‍♂️

The Ugly Bits

Getting the React Native frameworks and nuanced build settings and scripts in place has been a bit of a struggle but I think we may finally have all that figured out. But it is painful for a native developer who’s used to opening Xcode, loading the project, hitting build, and it runs. Sure, we may have to use CocoaPods to get started, but that’s rare now since Apple introduced Swift Package Manager, or SPM.

SPM is integrated into Xcode and works really well. I’ve never had an issue with it, knock wood, and went through Stream a couple years back and replaced my use of Carthage and CocoaPods with SPM. It’s been glorious.

This option is, unfortunately, not available to React Native projects AFAIK. That’s fine. CocoaPods works and is familiar.

AHHHHHH!The one really ugly bit, at least to me, is the requirement to use npm. I know web devs are accustomed to using it but it feels really strange and fragile to use these two package managers to be able to build and run an app that includes React Native. I know I’ve run into random issues I can’t explain when node packages change or are added but that’s just me being a big whiny cry baby developer. I understand it well enough to be dangerous but I don’t currently have that deep knowledge I like to have. I’m learning new stuff everyday but I’ve only scratched the surface.

Great! How do you feel about it overall? 🤔

Red sock.I can see why companies are making this choice, especially companies with an army of React developers. It makes complete sense for them to build great UI with their existing developers. And, yes, you can build a great iOS UI with React Native. I’ve witnessed it first hand. If you didn’t know a view was React Native you wouldn’t know the difference in this app. It’s seamless. It’s great in that way.

Angelo Stavrow

but oof — it still feels like I’m working with a business decision, rather than a sharp tool.

I think Angelo’s quote above is a nice TL;DR for me. On the downside I really dislike the tooling. It feels so arcane. I’d love to see something integrated into the Xcode UI for package management and project settings. That’s probably asking a bit much but I’d rather have some do an amazing job of all this scaffolding so I can just hit the build button to run the app.

All that said, it’s still worth using. 👍🏼

I’d like to be an Indie Dev

Steven Beschloss

I love architecture. A beautiful structure—like the iconic Flatiron Building in New York (seen here)— inspires me. It’s not just the aesthetic pleasure of the shape, the materials, the details and its placement, but recognizing how much thinking, planning and executing it took for the original idea to become reality. Unlike other art forms, architecture can’t just be beautiful; it also has to be functional.

The title of Mr. Beschloss’ piece is What Job Do You Wish You Had?.

This is an easy answer for me. I love building software, just like I’m doing now, but I’d like to be doing it independently.

Brain in a jarI would love to wake up every morning and work on Hayseed projects like Stream and unnamed project.

The reality is I don’t have the means to do that. I am bound to my salary and I no longer have my 20 something boulders energy to stay up most of the night working on my dream.

Until retirement I’ll keep hacking away an hour here an hour there on my projects in hope I will be able to break out some day.

Even if someday doesn’t arrive for me I am finding the most joy programming my own apps. No overhead, no meetings, just writing code. That’s just the way I like it. 😃

Saturday Morning Coffee

Good morning from Charlottesville, Virginia! ☕️

Spicy Mexican CoffeeWe’ve been home for a week now and it’s been really nice to sleep in our own bed!

Now, if we could get Cocoa to sleep past 5:30AM I’d be thrilled. 😃

I hope you have a nice cup of coffee or tea ready and I hope you enjoy the links.

CNN

Wagner chief Yevgeny Prigozhin has refused to surrender, and called Vladimir Putin “deeply mistaken” following the Russian president’s address describing his actions as betrayal.

I heard about this as I was crawling in bed. I hope the Wagner Group is able to destabilize Putin and end the war in Ukraine.

Probably too much to hope for. 🙁

iamthatis • Reddit

I wanted to address Reddit’s continued, provably false statements, as well as answer some questions from the community, and also just say thanks.

I love this openness from Christian Selig. If folks don’t know, Christian tapes his conversations with Reddit folks. It’s been very interesting to read bit the transcript he’s shared. It’s clear they have lied.

I just wish Christian had posted this all to a weblog so it would have a more permanent home. Who knows what’s going to happen with his subreddit.

Platformer

After a bruising week of protests and locked-down forums, things started to get back to normal Tuesday on Reddit, as — oh wait, what’s this?

Subreddit moderators are doing all they can to screw things up on Reddit. I applaud their effort.

Polygon

If you want to watch pop culture eat itself, go see The Flash, a movie that starts out as a sprightly superhero adventure, then dissolves into a self-referential requiem for the DC Universe.

I’m torn about seeing this movie given all the hubbub surrounding Ezra Miller but I really want to see Michael Keatons older Batman!

Trisha Gee

These days, distributed version control systems like Git have “won the war” of version control. One of the arguments I used to hear when DVCSs were gaining traction was around how easy it is to branch and merge with a VCS like Git. However, I’m a big fan of Trunk-Based Development (TBD), and I want to tell you why.

I’d imagine most folks I work with today have no clue how we used to work. I didn’t use git for version control full time until around 2014 I’d imagine? I found it terribly frustrating to work with at first but know I’m fine with it.

Anywho, up until 2014 I’d worked with so many different version control systems. I’d imagine I worked with CVS the longest and we had one main branch — trunk — and everyone committed directly to it. Yes, breaking the build was definitely frowned upon so you had to be very careful about your commits!

LA Weekly

When North Carolina Gov. Patrick McCrory signed House Bill 2 into law, I wonder if he was thinking long-range about what the result might be. I can’t see him and his staff wondering out loud if their thick-skulled, cracker logic might result in Bruce Springsteen not only canceling his upcoming show in Greensboro, depriving the state of revenue and its residents of a Springsteen concert, but inspiring Mr. Boss to issue a press release that more people have read than will ever peruse House Bill 2.

Henry Rollins seems to be a really great dude. Part punk, part philosopher, always interesting to listen to or read.

The Guardian

Seven years after the Brexit referendum, the proportion of Britons who want to rejoin the EU has climbed to its highest levels since 2016, according to a new survey.

I mean, duh! The British version of MAGA didn’t work out so well. It’s been terrible for so many. I hope they rejoin the EU.

Hendrick Motorsports

The NASCAR Next Gen Garage 56 Chevrolet Camaro ZL1 was a hit from day one in Le Mans, among fans, media and even other competitors. And it was fast on track, consistently putting down lap times that bettered cars in the GT class. The car ran near the top of the GT field for more than 20 hours until a drive line issue sidelined the team for more than an hour. Overall, the car was running at the finish, completed 285 laps on the 8.4-mile circuit and finished 39th in the 62-car field.

This car is an absolute beast and looked out of place at Le Mans. It would also look out of place on a NASCAR track. It is a beautiful car with some really excellent engineering. Oh, yeah, and it is super fast! Good old American V8 horsepower under the hood.

I kind of wish I’d been more of a car guy when I was younger. My Dad certainly is and has built some beautiful cars in his time. His ‘37 Chevy Coup Street Rod is stunning and he used to drag race a 454 powered ‘51 Anglia.

I had the opportunity to learn a lot but didn’t. If I could do it today I’d love to be a mechanic or engineer for a NASCAR, IndyCar, or F1 team. I’d love to specialize in engines. I do find them fascinating and would love to rebuild one again. I rebuilt a Chevy small block in High School my senior year. Yeah, I took auto shop because I wanted to do something “easy.” 😃

Cadillac Racing

After 21 years, Cadillac Racing marked our return to the iconic 24 Hours of Le Mans on June 10—11 with our highest finish ever in front of a record audience of 325,000 spectators. Our No. 2 V-Series.R led laps for the first time in Cadillac history and finished on the podium in 3rd, with the No. 3 just behind in 4th, and the No. 311 fighting back for 10th in class.

There’s an article on Jalopnik that includes a video of one of these cars doing a bump start and it sounds mean. It instantly made me think of the Batmobile for some reason.

Now, let’s get more American manufacturers back in NASCAR. Cadillac would be a super interesting entry! I think Dodge is an obvious entry for NASCAR Cup, Xfinity, and Truck series given their history of legendary cars like the Challenger and their RAM trucks.

Cadillac would be super cool to see in NASCAR Cup racing but it may be too lowbrow for them? 🤣

Traveler Dreams

Renting an RV and embarking on a road trip across America can seem like more of a fantasy trip than a real thing you actually do. But you can truly make it a reality. And if you do, it can turn into a thrilling and liberating experience that will leave you with unforgettable memories. Here’s why you should take the plunge.

This is something I dream about all the time but I can’t quite get Kim convinced we need to sell everything and go all in on the RV lifestyle.

As a compromise we’d like to acquire a smaller RV and do some two week to one month excursions to see if we like it. It would also be great for week long camping trips with the entire family.

Maybe someday it’ll be a reality? 🤞🏼

Business Insider

When former NBC Universal executive Linda Yaccarino was named Twitter’s next CEO last month, advertisers breathed a sigh of relief.

I don’t expect Ms. Yaccarino to last very long at Twitter. I think my original quesstimate was six months but I could see it lasting as long as a year.

Musk is too much of a control freak. The kind of boss I’d hate working for.

The best piece of advice I ever got from my VP of Engineering and CTO at Pelco was “You have to convince people your vision is the right way to go so they follow. You won’t get their best work if you’re a tyrant.” It was something like that. Basically be a leader, not a bully.

Teri Kanefield

This blog post is meant to be read in order. Later answers are shorter because they rely on the information presented in the earlier answers.

This is a really nice piece if you’re following along with the TFG Top Secret documents prosecution. Dude is such a knucklehead and honestly believes he has magical powers to declassify things with his mind. Dumbass.

The New York Times

The engineers reminded him of their commutes. The working parents reminded him of school pickup times. Mr. Medina replied with arguments he has delineated so often that they have come to feel like personal mantras: Being near each other makes the work better. Mr. Medina approached three years of mushy remote-plus-office work as an experiment. His takeaway was that ideas bubble up more organically in the clamor of the office.

I believe with all my heart CEO’s like this are real control freaks and must have the adoration of their people surrounding them at all times. I can have these ah-ha moments, Slack someone, and fire up a zoom call to have the same conversations. It’s just not face to face in a building I have to commute to.

If our company demanded everyone come to the office, of course I’d comply, but I really don’t believe it’s necessary.

Just my horrible opinion.

Assigned Media

A federal court heard both sides during a trial where trans youth, their parents, and their doctors challenged a law banning gender affirming care in Arkansas. The court found that the law violated the right to due process and to equal treatment under the constitution, and ordered the law struck down because Arkansas failed to demonstrate a compelling state interest justifying the unequal treatment.

We really need the courts to continue overturning these idiotic and dangerous laws.

You cannot force people to be someone they are not and denying them healthcare because they’re different than you is barbaric.

Apparently Meta’s Project 92 is going to federate with a limited set of Mastodon instances, pay them, and allow them to display Meta ads in exchange for a cut.

Embrace and extend. Amirite?

Let’s see how this plays out.

Tiny Apple Core

Meta’s Project 92

PC Magazine

As The Verge reports(Opens in a new window), a Meta executive demonstrated a preview version of the Twitter alternative, which is known internally as “Project 92,” at a company-wide meeting this week. When it arrives, the final name is expected to be Threads, a name we first heard about in 2021 as a way for Facebook users to post connected messages.

Watch out! It's a blog fly!There is much consternation on Mastodon around Project 92. It’s rumored to support the Mastodon API and folks are not happy about it. Why? I have no idea.

Facebook has kind of skirted around the edge of blogging for a long time and I’m surprised they never turned Pages into a blogging platform. All they need is the ability to add titles, support for bold and italic, images, and links. That should cover 99% of post needs.

Add API support for getting, creating, updating, and deleting those posts and you could have a really great blogging solution.

Saturday Morning Coffee

Good morning from Myrtle Beach, South Carolina! ☕️

FrapKim and I rented a place for a week to share with our kids, grandkids, and our dogs! We arrived around 7PM Friday evening, got setup, had some pizza, and pretty much passed out.

We haven’t had time to do any real recon of the are but I did manage to find a decent pizza joint and a Food Lion so we could pick up odds and ends to stock the fridge for the week.

From Friday to Tuesday it’s all about our kids and grandkids. Tuesday forward it’ll just be Kim and I and our oldest grandchild until next Saturday.

I was hoping to get some extra bunk time but that ain’t gonna happen with a puppy who thinks 5:30AM is play time. 🤣

We’re going to have a great time at the beach and whatever else we can drum up.

Enjoy the links.

Daring Fireball

But even just a small taste of VisionOS made me feel confident that it is going to be the next major platform for Apple and Apple developers, alongside MacOS and iOS/iPadOS.

I wasn’t too excited about any new AR/VR headset Apple was set to release, then I saw it in the keynote.

At first I was disappointed because they were showing someone in an office using it to replace their monitor(s) and that’s kind of boring.

The we see someone celebrating a child’s birthday wearing the headset. Really? What a complete douchebag. No, seriously, that’s a really bad move.

But, when I saw them demonstrate watching movies with it, I was excited! That is what I’d use it for!

Am I spending $3,500 anytime soon on one? Hell no! It’s still to early for me, especially at that price. It’s hard to justify it.

Steven Beschloss

Donald Trump himself broke the news this evening that he’s been indicted—making him the first former president to ever be charged with a federal crime.

King ding dong himself is finally being indicted for his retention of government documents. It’s not about him accidentally having a few mixed in with his other papers, it’s about boxes of them, not returning them on request, and lying that he did return them.

The right like to say “What about Biden and Pence?” Indeed, what about them. They self reported having documents and turned them over right away.

TFG is a real garbage human wrapped in a suit. My hope is, at a minimum, he’s banned from running for any federal office ever again.

Colin Paice

Easy question – hard answer, how to I convert a hex string to hex byte string in C?

Go along for the ride. I haven’t taken the time to think through how to solve this and I only have nits to pick with Colin’s solution.

Virginia Mercury

Richmond’s post-graduation mass shooting reflects America’s gun violence epidemic

This is so sickening. The shooting is absolutely horrific but to do it at a graduation? It’s heartbreaking how callous our nation has become.😔

Swift.org

This document is the reference guide describing how to mix Swift and C++

Since this was done as an official way to use C++ from Swift there was all kinds of thought out into safety. That’s fine, but if you have a great hunk of C++ that has been thoroughly tested and you feel good about it you probably don’t need the training wheels provided by this support.

Just wrap your C++ in a thin layer of Objective-C++ and call it from your Swift code without penalty. 🤷🏻‍♂️

Robert Reich

Goodbye, CNN’s Chris Licht. But what’s the lesson?

I know he screwed the pooch with that TFG interview thing but man, that was pretty quick.

512 Pixels

The number of 2019 Mac Pros sold cannot be huge, but the new one’s numbers are going to be even smaller. As a Mac Pro fan that worries me. Yes, there are users who are reliant on PCI solutions and I’m sure those folks will upgrade to this new machine at some point.

Who is this computer for? That’s the question on most folks minds. When I heard it wasn’t nearly as expandable as the 2019 version it made me wonder why they bothered? Beyond the awesome SOC it doesn’t have more to offer than its 2019 counterpart.

Then again, I’ve never been the target of this computer. I’m still using a 2019 MacBook Pro and I’m fine with it. Heck, I have a brand new M2 based MacBook Pro sitting in a box waiting for me to set it up. 🤣

Audibon.org

But as Adams scanned the bustling crowd of King Penguins, elephant seals, and Antarctic fur seals, he spotted something bizarre in the distance.

Go check out the post. This bird is gorgeous and I want it.

Jalopnik

Could The NASCAR Garage 56 Camaro Beat Every GTE Car At Le Mans?

I’d love to watch this all the way through but that’s not gonna happen. I hope NASCAR has partnered with someone to do a full documentary on it. The process from concept to reality to running the race. I hope it makes it the full 24 hours. That alone would be a huge victory.

Tiny Apple Core

Saturday Morning Coffee

Good morning!

Cold EspressoI couldn’t wait to get started this morning. I got my pot started and sat down to put this post together. When the coffee finished I poured my first cup. I almost let that cup get too cool to drink. The shame! I’ve since remedied the situation and have resolved to not let it happen with my second cup! ☕️

Enjoy the linkage!

Sprudge

Espresso is basically magic. The more I learn about what goes on inside the black box that is the portafilter, the more certain I am of it.

Yes, pulling a really great shot feels like magic. When Haileigh — our oldest daughter — was a barista at a very snobby coffee shop she’d spend the morning adjusting the grinder. That would result in a half to one pound of coffee being ground just to get it properly set up. Was the espresso great? It certainly was. 🪄

Mediaite

Now Disney is cancelling plans to build a massive nearly $1 billion office complex in Orlando, costing the state more than 2,000 six-figure jobs.

I would love to see Bob Iger move jobs out of Florida. The state has gone full fascist under DeSantis and isn’t a safe place for LGBTQ+, black and brown folks, women, and children. Their educational system is teaching them to become white supremacists and intolerant and even their institutions of higher education are under attack.

If you can, get out.

gonsoloblog

TLDR: Render Disney’s Moana scene in less than 10.000 lines of Swift code.

Man, I love the field I work in and the nerds who comprise it. I say that with the utmost respect.

Joyce Vance

Monday morning, American democracy became more brittle, at least in Florida, where Governor Ron DeSantis signed a bill that prohibits the state’s public colleges and universities from continuing their diversity, equity, and inclusion (DEI) programs.

Ah, yes, more of Florida’s fascist Governor making Florida a worse place to live. It makes me wonder if he’s setting it up to secede from our Union, kind of like Texas? It’s like the South is trying it’s damndest to rise again. We can’t let that happen.

Matt Corey

Ok, it didn’t exactly go down like that, and no, it wasn’t “take this job and shove it” either, but I actually did it. I left a great job that I enjoyed, and now I’m officially self employed. What hell am I thinking!?

Matt is going Indie and I’m more than a bit jealous! I wish I could pull it off. I’m pulling for you to be wildly successful Matt! 👍🏼

Defector

I’d like the record to show that I resisted getting AirPods for a long time. 

This is a really great piece by everybody’s favorite swole woman, Casey Johnston.

Her post is all about her quest to recover her lost — and subsequently stolen — AirPods. Go read the piece, it’s really good.

Steve Roy

Five years later I’m still as happy with this decision as I was then. I post to my site, and it gets cross-posted to social media. Today that means Mastodon. Eventually it may mean something else. But no matter what, steveroy.ca will always be the source of truth.

Making your weblog the hub of your social media presence is smart and the proper way to own your content. It’s why I started posting more short content without titles here. While I can’t auto post my content to Mastodon — I could but Micro.blog has some limitations — I do re-post most of my short posts there.

The Pink News

Actor and trans icon Elliot Page has opened up about how gender-affirming care changed his life in a moving Instagram post.

I’ve read stories like this time and again. As soon as a trans persons begins or completes their transition they become a much happier person. I’m happy for Elliot and wish him many long, happy, and fruitful years ahead.

Netflix Technology Blog

The Compute team at Netflix is charged with managing all AWS and containerized workloads at Netflix, including autoscaling, deployment of containers, issue remediation, etc. As part of this team, I work on fixing strange things that users report.

The modern day hero of computing is the DevOps engineer. They’re a mix of geeky computer tech and software developer all rolled into one extremely busy package.

If you’re a Unix/Linux geek I’d imagine you’ll enjoy the piece.

Jalopnik

New cars are getting too expensive, but the value from some of the old standards from Honda, Toyota and Hyundai is still there

Yep, cars are crazy expensive. Yep, good inexpensive cars are impossible to find. Yep, there are good used cars on the market.

Your mileage may vary. 🚙

Orhun Parmaksız

That day I decided to write my own pastebin service. And of course, I was going to write it in Rust.

Neat little piece about one persons quest to make their own thing. All in Rust of course. Because why not?

Steven Beschloss

The offering of “thoughts and prayers” after each murderous mass shooting has become a nauseating refrain. You know the drill: The speakers/tweeters utter this blood-stained phrase (or a close variant) like robots.

Thoughts and prayers is the GOP way to get evangelical Christian support. That’s all it is, a ploy for votes, an an easy one at that. Just drop a few simple words on social media and gain support for your Godliness. Disgusting, the whole lot. 🤬

I suspect Jesus would support an end to the violence.

PC Gamer

Activision Blizzard’s mandatory return-to-office policy is causing an unnecessary loss of talent, to the point where it could affect development of major titles like World of Warcraft and Diablo 4, according to some Blizzard developers.

Return to office has been a real hot button topic all over the country. Many jobs, like mine, don’t really require me to drive to the office.

Now, having said that, a lot of folks NEED and LOVE the interaction they have in person in an office. Our CEO is a prime example. He believes in person work is the best way to work. That’s all fine and good. Just remember others of us find it distracting, especially in open space offices.

I work in an all remote team at WillowTree but I think about going into the office once in a while for a little human interaction. 😁

One other note. I’d probably find it more tolerable since becoming an Engineering Director because I spend most of my day interacting with other folks. But developer Rob loves quiet and an open floor plan office was horrible for that. I can control my home workspace. At the office I’d have to find a place to hide to do meaningful work as a developer.

I like to tease my JavaScript friends when I get the chance. Most of them own up to the fact it’s a terrible language.😁

It’s the language of the web. No way around it at the moment. Some other thing will come along to replace it. I suppose WebAssembly could eventually be ubiquitous enough to allow us to code in other languages daily but it seems JavaScript is here to stay.

Tiny Apple Core

Ok, got a new app idea.

Micro Manager!

It does everything for Micro.blog but posting. Allows you to manage your tags, photo uploads, and whatever else you wish you could do from the native iOS and Mac client apps.

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. 😃