Work Note: Stream for Mac

More work on Stream for Mac today.

I renamed some stuff because I had Feed and FeedItem used in various places. A Feed represents the Blog’s RSS Feed information. A FeedItem is a single entry from an RSS feed for a particular feed.

Those are accurate names in my opinion but just glancing at them can be confusing in their use in the code. So, what I did was rename the table view BlogListTableView and the view model for it BlogViewModel. I also added new classes for table views called BlogItemCellView and BlogItemTableCellView. It made things a lot easier for me to read and understand. The base models of Feed and FeedItem remain as they were.

I finally got around to filling in the left side table view of the three columns. This is a simple list of blogs. I also added a little code to allow me to filter the list of feed items based on the selected row in the blog list. Simple, expected, stuff.

After doing that I adjusted the blog cell and feed item cell to use a different font for the blog title and feed item title. They look a lot better now. I also added some padding around the outer edge to space things out so they’re not all jammed together.

The final task was fetching and caching the favicon for each blog. That’s where I wrapped up for the day.

I can now display a list of blogs. By default all feed items display in the middle column. When you select an individual blog the middle column displays just the items for that blog. I still have to add a new top level item to the blog list to allow you to select All items, but not today.

Image of Stream for Mac

Work Note: Stream for Mac

I decided to go with working on Stream for Mac today.

The feed item cell has been a complete mess for years, yes, you read that right. It’s been a complete wreck for years now. I kept on insisting I do all the work using AppKit.

Today that changed. I needed to make progress and even though my SwiftUI experience is very limited I was able to get the general layout working the way I’d like it. It’s not complete by any means but each UI element is displaying in the place I want it to (mostly) and the cell resizes properly, oh, and the date label/text remains pinned to the right side of the cell. That was a big issue with my AppKit NIB attempt.

Polish, polish, polish is the next course of business with the new cell. It needs spacing updates, text size fixes, color changes, highlighting support, keyboard support, so many things. But, now that it lays out the way I want I can move forward.

This is the first SwiftUI code introduced to the Stream codebase, which began life in 2018.

Stream Work Note: Post Stream 1.6 Work

I was so focused on getting a single feature done for Stream 1.6, and add a little Liquid Glass support that I don’t know what I want to work on today. 🤣

Brain in a jarI want to get back to the Mac version but it feels like so much work. I need to get my table view cells to behave properly. Perhaps I’ll punt on having the date attached to the right side of the cell and put it somewhere on the left just to make some progress today. 🤔

Would different cell layouts between iOS and Mac versions put folks off?

Something else I’ve been considering is adding a third column to Stream for Mac! Yes, it would make it behave just like every other feed reader on the market. Going 100% against what Stream was built to be. My reasoning? It’s strange, at best. On iPhone it has a single column, on iPad it has two, so it makes sense that the Mac — being the big dog — would have three, right? RIGHT!?

Should I add keyboard shortcuts to better support iPad? That would also make the iPad app a better citizen on the Mac!

Do I being my journey into SwiftUI by replacing some of the lazy UI I threw together just to get 1.0 out the door?

Oh, how about that new subscribing UI I wanted to do? I got some lovely feedback from a friend about onboarding! I’ve been thinking about that a lot myself. It’s a great idea and I need it! Perhaps that’s my first SwiftUI code? I think y’all would like it, at least I hope you will.

Anywho. Lots of thoughts spinnging around in my brain. 🧠

I have such a huge list of things I want to add to Stream. Like full page parsing and stripping of formatting, fix some things that annoy me, syncing, connection to feed services like feedbin, recommendations (curated and LLM recommended), a Mac version, and the list goes on and on and on. 😃

Making Development Easier for Developers

Brent Simmons

And it seems retro in the worst way that we’re still using anything other than a scripting language for most of our code. We should be using something simple and light that can configure toolbars, handle networking callbacks, query databases, manage views, and so on. And maybe with a DSL for SwiftUI-like declarative UI.

Almost none of that code needs to be in a lower-level language like Swift or Objective-C. It really doesn’t. (I say this as a performance junkie!)

It could be in Ruby, Lua, Python, or JavaScript. Better still would be a new language invented specifically for the problem of writing apps, something designed to make the common challenges of app writing easier.

We did have this stuff decades ago. Not for app making in general, sure — but now it’s 25 years later, and a company like Apple could make this real for all its app makers.

Where to start? Let’s start by saying I agree 100% with Brent. Having a built in scripting language with dynamic UI updating and easier ways to build code and UI would be absolutely incredible! And, like Brent says, I’d love to see Apple make this happen.

A hojillion years ago when I worked at Visio we had VBA (Visual Basic for Applications) integrated right into Visio. It was a fantastic way to build custom Add-Ons for Visio. You could embed your VBA solution right into your template or document so folks could invoke it right from the app. This allowed folks to make fancy automation to fit their particular need and do it in a high level scripting language that could control Visio in all kinds of ways! I loved it! I spent a lot of time working on Add-Ons to Visio in C and C++ but I used VBA to test things before implementing them as an Add-On — Add-Ons had the advantage of being usable app wide.

I’m not sure how VBA is used in Visio today but before I left Microsoft had added a way to build your solution code into binary form so it could be signed before including it as a part of your solution package. It was such a marvelous development environment.

Now, if you’ve ever used VBA in Visio, Excel, or Word you know exactly how powerful it is. Could you imagine having access to something like that within your Xcode dev environment that was fully integrated, or even supported like VBA in an application? Yes, it’s a lot of work to make something like VBA work but it is so worth it.

Brent mentions Ruby, Lua, Python, and JavaScript as the scripting languages but I have to say Microsoft’s Visual Basic for Applications is so much easier to understand and use than any of those languages and it was easy to open functionality to it using Microsoft COM, IDispatch specifically, in the app. I know, COM has a bad reputation for being difficult. Yes, like I said earlier, it’s a LOT of work, but it’s so worth it when you can open all that power to your users and yourself! Taking that to the next level, like Brent’s talking about, would be a huge boon to Apple Platform Developers. AppKit, UIKit, SwiftUI, Objective-C, and Swift are still too deep to move quickly. If developers creating code for any of Apple’s platforms ever took some time to use VBA they’d see what I’m talking about. The paradigm is a bit different than they’re used to but, hell, I was so confused when I came to iOS development! They’d get used it after a time.

Building UI and code behind VBA forms is so easy. Drag and drop a UI, double-click on the element you’d like to add code for, and write your code. That’s it. It’s that easy! I would totally embrace this idea for application development on Apple platforms.

You can build at a higher level today using awesome tools like Xojo that give you a very Visual Basic like experience complete with a drag-and-drop forms builder just like Visual Basic!

Psst, did you know that folks have been scripting applications for iOS, complete with dynamic UI updating, with React Native? Yeah, it’s true! I’ve been working on an application like that for the last two years. We’ve almost completely rewritten the application in 100% React Native, which uses JavaScript as its backing language and a way to build UI in a very HTML/CSS manner. Think SwiftUI with web technologies. It works.

I know of many applications using Electron to deliver cross platform apps, like 1Password. They used Rust for mission critical code and put an Electron “front end” on top of it. Microsoft has fully embraced React Native. They like it so much they’re the primary maintainer of React Native for Windows!

Am I saying React Native is a perfect solution? Hell no! It’s a terrible developer experience in my opinion. Most folks use Visual Studio Code — I prefer Nova myself — as their editor and don’t have a nice debugger to fall back on. Nothing is integrated. It’s a bunch of tools losely hung together by duct tape that let you kind of see what’s happening in your app. Hey, if you think console.log is the height of debugging then this environment is for you! 🤣

In the end I, like Brent, would love to see a modern scripting environment that’s embedable or standalone that is fully supported by and used by Apple internally to create applications. The embedded environment is very enticing to me. Something like Visual Basic for stand alone development and Visual Basic for Applications for embedded scripting would be absolutely incredible!

Modern means easy to use UI builder and code behind that is a super simple language like BASIC and on top of it make it easy for third-parites to make extensions to the environment and provide code modules that give developers the power they need for specialized applications.

Look at Xojo. That’s it. Apple, buy it and make a version that’s 100% built for your platforms and is embedable in applications.

Stream Work Note

I’ve managed to kick nine builds of Stream out to beta testers. That’s the most I’ve ever done! I owe this all to the four hours of time I’ve reserved on Sunday morning for working on Stream. It’s been seven weeks of work. Like I said in my last Stream Work Note I’m overjoyed at having this time to focus work on Stream and, of course, have a really great Mocha while I do it. 😄

During my testing I noticed that the one new feature I’ve been adding to the app would fail when Stream was tiled with another app. That really stunk because otherwise it looked great to me! Today I managed to fix that outstanding critter and it feels really great!

I’ve had two other bug reports come in specifically for my iPad support — thanks Lucian and Sean!

Red sock.The first bug was occuring when you’d pick a feed to subscribe to. That porting of the code has been synchronous since day one. I figured why do it asynchronously when the UI was going to be blocked while I added the feed to your list and parsed it. Well, newer versions of iPadOS didn’t like that and the app would crash hard. Yikes! Can’t have that. I fixed that bug earlier in the week or maybe last week, I don’t remember, but it’s out of the way and now asynchronously updates the app, be it iOS or iPadOS.

The second bug was a bit more difficult to fix only because I couldn’t reproduce it. It turns out it was happening consistently on iPadOS 16.8.2. So, I added that simulator setup and kerpow! 💣 It happened right away. YAY! 🥳 It turns out I’ve been stacking two navigation controllers on top of each other since I added iPad support a few years back. DOH! The OS was just tolerating it so I didn’t know. Well, it looks like Apple decided it wouldn’t allow that any longer, and rightfully so! I fixed that issue yesterday.

This morning was spent fixing the tiling bug and it’s now done and a new TestFlight build it up. If everything goes well with that build it could be my final build before Tuesday’s Apple Awe Dropping event. 🤞🏼

Have I ever mentioned I’d love to work on Stream full time? I didn’t think so. 😄

Stream Work Note

I’ve been going to Grit, my favorite coffee shop, for the last six Sunday’s to work on Stream. It’s been really rewarding to spend the morning working on it. I typically work from around 8AM to noon, then grab Chipotle for my daughter and I and head back home.

That four hours of time has given me so much joy and recharges me for the week ahead. I cannot imagine how much better Stream could be if I were able to do this five days a week for five to eight hours a day! I might actually be able to make some real progress on the Mac version! 😱

Today I’ve managed to kick a beta build out the door. What I expect to release is version 1.6.0 as soon as Apple opens the door for glassified releases. Now, don’t expect much. Even with my four hours at a time to work on it I’m still very slow and the feature I’ve added isn’t glassy, at all. It’s something I’ve wanted to add for a very long time. It’s a feature meant to make things easier to subscribe to feeds. That’s all I’ll say about it for now.

What’s next?

Well, I had wanted to create an entire new view for adding and managing your subscriptions. I really need a nice way to populate the app your first time launching it and give you some great options when you pop open the Subscribe view controller. My plan is to create a nice set of hand picked feeds for users and, perhaps, add a set of recommended feeds using Apple’s built in LLM models. We’ll see at some point I hope! As long as I’m able to continue spending my Sunday mornings coding I think I’ll be able to achieve a lot on the app. I have a lot of features to add and bugs to fix! There are a lot of usability things I could do to improve the app and a few bugs I need to take care of.

Where’s the Mac version?

Brain in a jarThis is a tough one. And it’s only tough because I don’t know AppKit as well as I do UIKit. Yes, Stream is still 100% UIKit and the Mac parts I’ve done are all AppKit. I’m thinking I may do some new features in SwiftUI because I need the practice. I’ve never built anything with SwiftUI.

I’ve struggled to get layout on the Mac working the way I’d like. My table view cells look like crap and even with help from a dear friend — hi, Josh — I haven’t been able to get it right. It’s terribly frustrating and makes me want to jump out a window.🤣 Maybe SwiftUI will let me make those cells work on Mac?🤞🏼

Iconfactory Apps for Sale! 😲

Iconfactory • The Breakroom

While the Iconfactory is hard at work on Tapestry, Linea Sketch, Wallaroo, and Tot, we also find ourselves at a crossroads: we have too many apps and not enough time to keep them all up-to-date.

Whoa! Based on my reading here it looks like whoever reaches out is going to get their hands on some good stuff. I’m surprised xScope is not on the list of keepers!

If anyone from Apple happens upon this post. Please, please buy xScope and make it available as a tool for all developers. It’s an amazing piece of software and is darned useful. Oh, also snap up Frenzic and make it a permanent addition to your games collection!

Hell, just buy Iconfactory, it’s a small company and you’d get a bunch of really amazing people and fantastic apps to boot!

Hire Iconfactory

Sean Heber via Mastodon

ChatGPT and other AI services are basically killing @Iconfactory and I’m not exaggerating or being hyperbolical.

Reading this sent chills down my spine.

Iconfactory has a very long history of creating beloved applications and designs for Mac and iOS.

Ollie! The beloved Twitterrific MascotTheir designers craft beautiful interfaces, icons, and other illustrations.

To think they could go away because people are using AI generated slop designs and icons is gut wrenching.

I’m a huge fan of Iconfactory work. I use their apps everyday. Two in particular; Tot and Tapestry.

I’m writing this blog post using Tot. It’s perfect for it. Simple text editor with Markdown support and automatic save that syncs with iCloud. It’s an example of simplicity that is absolutely useful. I’ve been using Tot for years to write all of my blog posts, including Saturday Morning Coffee. ☕️

Tapestry is a new app. It is a new take on feed readers. Sure, it’s a competitor to Stream but it’s beautifully designed and implemented.

I’m a Wallaroo and xScope user and I’ve heard wonderful things about Linea Sketch.

Their craft is second to none.

Stream had the honor of being featured in the App Store in October of 2023. I worked with Iconfactory to create the banner Apple needed for the feature. It was a completely painless process and the results were beautiful and better than I could’ve imagined.

If you need someone to design your app, icon, or other materials, give Iconfactory a shout you will not regret it. ❤️

I just looked at my Cotton Bureau store earnings. I’ve sold one t-shirt and one phone case, if I’m reading it correctly. 🤣

Thank you to whoever bought the t-shirt. I do appreciate the business! 🙏🏼

I bought the case. Guess I should go grab a t-shirt while supplies last!

Cotton Bureau Sales! 🥳

Got my first sales report from Cotton Bureau and was super excited to see how many t-shirts and cases I’d sold! 😃

One. I sold one phone case and zero t-shirts. Oh, and that one case was sold to me, so it doesn’t count. 😳🤣

If you like the Stream icon head over to Cotton Bureau and buy a t-shirt or phone case!

Brain in a jarI mean, can Jeff Bezos, Tim Cook, Zuck, and whoever else gave money to Marmalade Messiah give me $1MM each, or heck, $1MM total between all of them? I’d be ok with that. I promise I would use it wisely and wouldn’t use it for corrupt reasons.

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.