Thinking of Stream for Mac

The old Voodoo Pad iconI’ve neglected Stream for far too long and I don’t know when I’ll have the gumption to get back on it. Learning AppKit has been a slow and arduous process. I really hate when I suck at something. I know, I know, doing the work will make me better but I just don’t have the energy that 20 something me had to stay up all night learning and doing.

Once of these days I’ll get it finished. It may take years to get there but I’ll get there, I hope. 🤞🏼

Of course finishing off the 1.0 of Stream for Mac would allow me to work on Rooster, which is a new codebase and 100% SwiftUI. 😄

C++? Are you crazy, Rob?

Brain in a jarThere is this weird part of me that wants to go back to writing cross platform C++. All of my cross platform work was for Windows and Linux. The itch has been there since I moved to iOS code — and I spent [two years in between iOS dev jobs working on a cross platform SDK for Pelco’s video encoding, decoding, and recording devices, all in C++. It never made it to Linux but I spent a whole lotta time working on Pelco’s X SDK. That was our version of a cross platform SDK we used internally to build a cool pipeline framework called MPF, or Media Processing Framework.

Why the draw. I’m not sure, but I think it’s probably because it’s the language I know best and I did a lot of work with the Windows API, which was also a strong suit.

I still haven’t, and don’t think I ever will, embrace the Mac like I did Windows. At the time I was a Windows dev the platform was simple, before COM and OLE 2.0. The Windows API was so straightforward.

None of that is true any longer. Not for Windows or C++. I bet I wouldn’t even recognize modern C++. C++ 11 changed A LOT in the language and it’s only advanced since. As for the Windows API, folks still use it but you should be doing something different, like using WinUI 3.

The thing is, I REALLY want to complete Stream for Mac and my new super top secret project: Rooster. Yeah, it’s not so top secret, and I finally gave it a code name, but if you know me you can probably suss out what it would be given my love of blogging.

I’ve been meaning to register Hayseed as an LLC for eons.

Finally did it.

Screenshot of my LLC registration

StreamKit?

I’ve been thinking about breaking Stream’s inner workings into a separate package.

It would include; networking, parsing(RSS, JSON Feed, Atom, and HTML), data models, database(?), and any utilities around those items. The database bit is a stretch and should really remain outside of the package. It wouldn’t force a storage mechanism on anyone.

I’d like to do this to keep me honest about my separation of concerns and I just like the modularity of it.

It would, of course, use Swift Package Manager to create the package.

The big question rolling around my brain is this: Do I open source it?

Why not you ask? Well, it’s simple. I’m afraid my code will be dragged through the mud and that would destroy me. I love and appreciate constructive feedback and would absolutely take PR’s.

To get where I’d love to have it means creating the SPM and using it internally for Stream for iOS and Stream for Mac. I’d also like to make sure I’m using all the new async/await strictness put in place with Swift 6.

If I can get that far I’d consider open sourcing it. Maybe. 🤣

The other question is, would anyone use it?

Stream for Mac Update

You’d think since Stream for Mac looks this bad I’d get to work on it, you’d be wrong! 🤣

I really do need to get back to it. I started working on the add feeds modal and realized I needed to fix up some of the code that does that to work better on the Mac. It’s also forcing me to look at adding async/await to the app, which is something I really need to do.

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. ❤️

Castro has gone dark again

I’ve been a Castro Podcast player user since they introduced 1.0, I couldn’t find when 1.0 shipped but it must have been over 10 years ago.

Anywho, it’s a great app and the best podcast player for my tastes. The Inbox where all podcast episodes are collected is perfect. It allows you to choose what you want to listen to and organize the list however you’d like. That’s really nice! The Inbox is noisy but the Queue, where you play them, is nice and organized. Plus the UI is simply gorgeous and well organized. In my opinion it’s the best podcast player in the market.

AHHHHHH!So, why all that intro to Castro who-haw? Well, once again, Castro has gone off the air. This is the second time in the last few months we’ve lost the backend service and the second time in the last few months Castro’s parent company — Tiny — didn’t say a thing about it.

Not only that but the Castro website has gone dark. If you try to browse to it, as of this writing, you’ll get a website not found error.

The app is still available in the App Store but it’s useless without the backend to support it.

What the heck is going on at Castro, and more importantly, Tiny to allow this to happen without informing their user base what’s going on?

Did they sell it and the new owners dropped the ball? Did they just give up on it and let it waste away to nothing through neglect? As a longtime user I’d love to know what’s going on.

Since it’s still available in the App Store is Tiny collecting subscription dollars? That’s gonna be a real mess to untangle if folks downloaded and subscribed for the year.

So many questions. Once again I wish I were a wealthy fellow so I could buy it and update it so it doesn’t need its own backend to function.

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

It was a record sales week for my little apps!

Yes, I’m genuinely happy about this.

Indie Built

How’s this for a prototype logo? 😂

I have zero artistic talent. Oh, in case you can’t figure it out. That’s an IB, not the number 13, and it’s my stab at a logo for Indie Developers to use on whatever to act as a stamp signaling the app is Indie Built!

RIP Apollo🪦😔

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.

Saturday Morning Coffee

Espresso ShotGood morning. I got to sleep in a bit this morning and I’m grateful for it.

It’s wet and rainy this morning which has turned my garden steps project into a muddy mess so I won’t be working on that today. We’ll see how it looks Sunday morning.

In the meantime I hope you enjoy the links as much as I’m enjoying my coffee. ☕️

The Washington Post

Former president Donald Trump warned early Friday of “potential death & destruction” if he is charged in Manhattan in a criminal case related to alleged hush-money payments to adult-film actress Stormy Daniels to conceal an affair.

As much as I’d rather not waste time on this asshole I feel the need to.

TFG is the target in four separate investigations. Of which this is the least of them. A teensy part of me would like to see this one put on the back burner and one of the more serious crimes prosecuted, say election interference in Georgia or stealing Government documents — including Top Secret documents.

Should the whole paying the porn star off with campaign money go unpunished? No. The law is the law and nobody, not even an ex-President, is above it.

If he’s arrested I hope he is perp walked out of wherever he is. Yes, I’m being very petty, but this man has stomped on the law his entire life and walked away unscathed. It’s time he paid the piper.

And if you think it’s better not to arrest him because he’s asking his supporters to be violent then you don’t understand all we’re doing is postponing the inevitable. See my earlier mention of three other cases he’s involved in. ⚖️

CNN

TikTok CEO Shou Zi Chew will appear later Thursday before US lawmakers, many of whom want the app banned in the United States because of the risk they say it presents to national security. The clamor for a sale is growing louder again.

Politics aside I feel like there is a technical solution to be had here. A 100% Western clone of TikTok running in the United States that cannot interact with TikTok in China. Run it as two companies doing similar things, including the Western version having its own cut of all source code and developed separately. The code would eventually diverge into something different on both sides.

I can’t see spinning it out to be an option and China can certainly hurt some large American companies in retaliation, Apple anyone? 🍎

It’s a real sticky situation. It’s a little ironic Apple may be in control of the system that excludes TikTok from the App Store if Congress passes laws banning it, not to mention Google doing the same for Android.

We’re gonna have a lot of pissed off teenagers in the States. 🤬

New Scientist

Mathematicians have discovered a single shape that can be used to cover a surface completely without ever creating a repeating pattern.

I would love to have a shower done using this pattern. 🎨

The Iconfactory

You’ll see a lot of problems with SwiftUI mentioned in these posts, but the overall experience was wonderful. This new way of building apps gets a wholehearted recommendation from our entire team: designers and developers alike.

I know I’m constantly talking about The Iconfactory. Why not? They’re an amazing group of folks who build beautiful, fun, applications for Mac and iOS and Wallaroo is no exception. I’ve been a subscriber since it shipped and rotate my wallpaper often. 🦘

I’m looking forward to the Mac release.

Oh, this snippet is from part one of a series so make sure to check out the other parts. They’re a great read for any Apple loving developer.🧰

Rogue Amoeba

Even 18 years on, I find this story rather terrifying. If not for an offhand conversation in which we had no involvement, things could have turned out very differently for our company.

It’s a short story well worth the time to read if you do anything with audio on your Mac. And by anything I mean listening to music or podcasts. 😃

The Conversation

This message of inclusion becomes even clearer when Jesus is later confronted by a single scribe (12:28). In answer to the scribe’s question on the most important laws, Jesus summarised the theological ethic of his gospel: love of God and love of neighbour (12:29-31).

Once again I make my case that Jesus was woke. In the end wokeness means love and equality for all. Jesus taught that. I 100% believe that. ❤️

David Smith

Widgetsmith has just achieved a remarkable milestone, surpassing 100 million downloads since its launch in September 2020. A number that I can’t really wrap my mind around. A number larger than the population of all but 14 countries (🤯).

I don’t know David personally but from all I’ve heard about him he’s one of the nicest people you’ll ever meet and I’m thrilled for him!

Congratulations! 🥳

Sourcegraph

In one shot, ChatGPT has produced completely working code from a sloppy English description! With voice input wired up, I could have written this program by asking my computer to do it.

I’ve been a little late to jump into the “AI” fray. It’s seems to be at peak hype and I’m still studying it. Part of me sees using it as cheating. Part of me sees it as a great way to learn. Two competing thoughts. I think it’s healthy and I expect to start using some of this tooling in the very near future for code projects. 🤖

I also wish the term AI wasn’t used for this stuff. It’s not the sentient form we’ve discussed in stories from Asimov’s The Bicentennial Man to the manipulative and ultimately murderous Ava from Ex Machina.

I know, those are robotic forms, but they’re what come to mind when I think AI. A form you recognize and can interact with as you would with any other human being.

It also makes me wonder where The Singularity fits in.

[Mac Rumors](<https://www.macrumors.com/2023/03/23/apple-tracking-staff-office-attendance/)

In a post on Twitter, Schiffer said that Apple is now actively tracking in-person attendance using badge records and will give employees “escalating warnings” if they don’t come in the required three times per week.

It sounds like the economic downturn is about to hit Apple. Having mandates like this that ultimately result in termination is a simple way to let go of people without announcing you’re slashing jobs.

All of this in the name of Shareholder value makes me kind of sick to my stomach. Yet another case of the rich becoming richer at the expense of common folk.

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

Saturday Morning Coffee

Good morning! I hope your coffee is strong and you’re ready to read some random links? ☕️

Spicy Mexican Coffee

The Iconfactory

While this chapter may have ended, our story is not over. We’ll continue improving our other apps, creating new apps, doing amazing design work for our clients, and posting awesome wallpapers to Wallaroo and Patreon.

Tapbots

We have taken everything great about Tweetbot and used it as the starting point for the future of Ivory.

I’ve been posting on this topic for a while now. Musk is a big caca-doodoo-head and shutting down third-party Twitter clients isn’t a good idea. Why? They’re much better than Twitter’s own client.

Twitter should’ve reached out to these tiny app creators and offered to work with them to include advertising in their timeline streams or offered to buy a few of them and turn each app into a unique client for various Twitter endeavors. Like one that specializes in video and one that specializes in news. Something like that. Give folks more options, not fewer. 🫡🐦

By contrast Mastodon, being a completely open platform, is flourishing thanks to third-party clients! There are so many new iOS Apps for Mastodon it’ll make your head spin. Some have been around for years and have seen a resurgence, others are brand new. They give folks options. Variety, the spice of life!

One other very important point to make. Hitching your wagon to a company that can shut off access at any time was a dangerous move. These indie devs knew what they were doing, but it doesn’t hurt them any less.

I’ve been switching between three very good clients; Toot!, Ivory (beta), and Ice Cubes. Each have something about them I really enjoy, but there are so many more just waiting in the wings.

Also, Musk is failing in many ways. Twitter is a mess and Tesla stock is plummeting. I’m surprised Tesla Board hasn’t fired him. 🔥

Salon

So maybe it’s surprising that any defense attorneys for the Proud Boys have said anything coherent, let alone incisive. Yet right there in the opening arguments, Sabino Jauregui, who is defending Tarrio, went straight at the prosecution’s weak spot: The government is putting the insurrection’s foot soldiers on trial, while leaving the man who led and directed them, Donald Trump, not just untouched by the law but running for president again. (Supposedly.)

To this I say “Duh!” Yes, that slimeball TFG should be in jail.

Here’s hoping Justice is served.

Daring Fireball

The best interfaces to Twitter, on any platforms, were all native apps on the iPhone and Mac. We’re now on the cusp of a new frontier with Mastodon, and it’s Apple’s utterly clueless bureaucratic App Store reviewers who are doing their best to lock the new playground’s gates before they even open.

John is talking about a beautiful, highly functional, Mastodon client called Ice Cubes. The Apple App Store review process can throw some really weird reasons at folks why they won’t approve an app. Stream was rejected three times because I use the word subscribe in it and they thought I was collecting money and wanted their cut. They insisted I use in app purchase for subscriptions. 😵‍💫

Short story long, Ice Cubes was finally approved and I honestly believe someone at Apple read John’s piece and fixed the situation. 💪🏼

stitcher.io

From its humble beginnings as a personal project in the mid-90s, PHP has grown to become one of the most popular languages for web development, powering everything from small blogs to large enterprise applications.

I know what you’re gonna say, PHP is garbage. I don’t think so. It’s been used for years and years and while some folks may find it strange I think it’s a much better language than JavaScript and it continues to improve.

Ars Technica

Legislators of the nation’s least-populous state are taking a brave stand against modernity and climate action. They’re sponsoring SJ0004, “Phasing out new electric vehicle sales by 2035,” an uncomplicated bill that expresses the state’s goal to phase out sales of new EVs by 2035 and asks Wyoming’s industries and citizens to do their civic duty in resisting the EV.

These folks are just ridiculous. When the world becomes so difficult to live in they’ll all ask “What caused this.” We all know what’s causing it. Us, continuing to do things we know are destroying the planet.

Dave Rogers

But I’m conscious of the fact that what I’m doing involves writing; and I have two fears when I’m doing this, neither of which has had the good effect of compelling me to stop. I’m afraid that I’m writing badly, and I’m afraid that it’s boring.

I love reading Dave’s stuff, always have. Like Dave I started my weblog to become a better writer. It hasn’t worked but I still enjoy doing it. Keep up the good work Dave!

Support Indie Developers. That’s it, that’s the commentary.

Sam Soffes

This year was a unique year. I started the year without a job or a place to live. My house in San Francisco just sold, so I had house money in my checking account. Now what?

Great read from Sam. I’d love to become a nomad, traveling the country with Kim and our animal family in a big RV. Yes, id like to make it our full time home!

Anywho, Sam talks about his year of Van Life and it sounds so exciting.

Maybe someday.🤞🏼

Dave Rupert

So you want to make a new JS framework

Web development is still way too difficult. In 2011 I realized most of it boils down to DevOps, not the code so much. We could write, debug, and test code locally but were at the mercy of how the network was configured to make it scale. Yes, we found and fixed bottlenecks in code as we went along, but the DevOps folks were the real heroes.

Go read what Mr. Rupert outlines in his post. It’s ridiculous it takes that much to publish a new JavaScript framework.

Also, why are folks still making new JavaScript frameworks? 🤔

Variety

Regal Cinemas, the second-largest chain of movie theaters in the U.S., will close 39 locations after its parent company Cineworld filed for bankruptcy in September, according to legal filings obtained by Variety.

Cut, cut, cut!I love seeing movies on the big screen, always have, but the new realities of COVID-19 have made me a very cautious person. I’ve seen two movies in theaters since the pandemic hit, both at very quiet times for a theatre.

It is sad to see our Charlottesville Regal hit by the closures. It is a really nice theatre.

Tiny Apple Core

Elon Musk is a liar

According to Twitter some client applications stopped working because they broke a rule.

What rule? We don’t know which rule they broke. What we do know is what their own Developer Agreement and Policy states.

V. Termination. Twitter may immediately terminate or suspend this Agreement, any rights granted herein, and/or your license to the Licensed Materials, at its sole discretion at any time, for any reason by providing notice to you.

Emphasis is mine. I copied that text right out of Twitter’s Developer Agreement and Policy

The folks at The Iconfactory and Tapbots haven’t heard a word from Twitter. They just had their access turned off.

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.

Who says you can’t have a retro look in your apps? 😃

NetNewsWire includes templates for the article viewer. One called Illinois looks super fun!

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