Web app sprawl

This post is mainly going to be a half vent, half collection of disjointed ideas. I hate how modern computing has become.

Suburban sprawl from above. Photo by Raphaël Biscaldi on UnsplashPhoto by Raphaël Biscaldi on Unsplash

I’ve noticed that two things have become quite more prevalent since 2020:

  • Many productivity apps, apps that would’ve typically been native to your computer even as recently as five years ago, are now web apps. They run in a browser of some kind, as much as some try to hide it.
  • These products are real. Billboard ads are displayed for them beside freeway overpasses. It’s almost impossible to escape them in a modern-day business computing environment.
  • Almost each and every one of these apps want to drop their own instance of Chromium onto your computer, whether it be Electron, CEF, or some other incarnation. “Download our app.” “X is better in the app.” (Spoiler alert: it’s exactly the same in the app, instead you now have 400MB of RAM chewed up by yet another Chromium instance.)

I played this game for a while. I downloaded the apps and placed them in my Dock. I tried to collect them into groups that made the most logical sense depending on what I was doing in my work day and what hat I was wearing. This works if you only have to use one, maybe two of these. If you’re unfortunate enough to be required to use four or five however, you essentially end up with five different hyper-specialised web browsers sitting in your Dock or taskbar. I’m calling this ‘web app sprawl’.

Continue reading “Web app sprawl”

(Unofficial) Ivory App Beta FAQs

I’m very excited about the new Mastodon app Ivory by Tapbots, who are the same people behind the popular third-party Twitter app Tweetbot. As of early January 2022, the app is currently in closed beta and is already very polished—with many calling for it to be released as a public beta immediately! By borrowing much of it’s foundation from Tweetbot, it shares the same quality and polish that Tapbots is known for—driving an impressive amount of hype behind this app with 1000-slot TestFlight releases often exhausting in under 15 seconds.

With no official website up yet, and information about the app scattered all over Mastodon and other places, I thought it would be nice to chuck together an unofficial FAQ. I’ll be covering some questions surrounding the app that the community has asked, and that Tapbots developers have answered, whether it be through the official @ivory account or their own. Mainly, this is to satisfy my own curiosity, however I don’t doubt that others may find it interesting too.

If I’ve missed anything, feel free to toot at me on @nick@melb.social. I’ve linked to the source @ivory toots in the parenthesis so that the full context around the original question can be ascertained.

Continue reading “(Unofficial) Ivory App Beta FAQs”

What’s going on in-between the railway lines at South Yarra?

As part of the Metro Tunnel project, the railway junction on the approach to South Yarra station is being redeveloped to accommodate the new tunnel portal. Whilst this much is obvious, what isn’t immediately clear is the purpose of all that work that’s going between the Caulfield and Sandringham lines.

Satellite image from Apple Maps
Continue reading “What’s going on in-between the railway lines at South Yarra?”

Add automatic OpenAPI client code generation to .NET 6 apps using dotnet-openapi, NSwag and service references

OpenAPI defines a way for web services to clearly define their API for automatic and correct client library generation, and with NSwag, clients for these APIs can be automatically generated for C#. What’s more, rather than generating the source code for these clients manually, a service reference can be added to your .csproj file to generate these clients transparently and automatically at development-time and build-time, —essentially It Just Works! This is truly an amazing (although not specifically unique,) benefit of the .NET tooling ecosystem; any IDE which plugs into the common .NET C# language backend (VS, Code, Rider, you name it) will immediately see and present the generated API client classes and their methods in type suggestions, without anything files having to be compiled or included manually by the developer.

Today I’ll write on how to go about this via a dotnet command-line tool; applicable regardless of the IDE or development platform you use. Whilst Visual Studio users get a simple (and obvious) wizard for adding these API service references, the information regarding the platform-agnostic command-line version seems to be scattered across the ASP.NET Core docs, and personally I felt it was quite obscure and challenging to find. Hopefully this blog post speeds up this process for any other developers going through these same steps for the first time.

Continue reading “Add automatic OpenAPI client code generation to .NET 6 apps using dotnet-openapi, NSwag and service references”