Debugged!

Phew! I finally fixed a bug that bedeviled me for days. (Well, nights, because it is in my hobby project.) The fix was adding two lines of very basic code to a function that hasn’t been touched in years. I think the Swift compiler changed something about implicit protocol compliance, and it caused the function to stop processing the intended read/write logic for one of my protocol data types. I’m rewriting that library to not need that function anymore, and must code some better tests for it than I did before.

Now I can go back to writing the fun, new library that will make my code much easier to deal with going forward.

My daughter and I made some flower cookies to celebrate the lovely spring day.

Is a higher-quality Apple Music tier on the way?

I hope so. I am a sucker for lossless codecs, even though I probably can’t hear the difference between them and AAC-256.

Apple is Poised to Lose its Antitrust Battle

I think that Apple is going to lose whatever antitrust cases are eventually brought against it in the EU and in the US. I don’t actually think Apple should lose, because I don’t think it is correct to call Apple a monopoly.

The general antitrust argument against Apple is that its App Store platform is too locked down, and that is unfair because Apple is a monopoly (insert eye roll here) of its own platform. App is a platform owner. Of course it has a “monopoly” over the platform it owns. That doesn’t make it a monopoly in the overall marketplace. Moreover, while iOS is undoubtedly popular, it is a minority smartphone platform, which in the broadest legal terms that I understand, makes monopoly-related antitrust law not apply to them.

App developers have to accept Apple’s terms, and pay a pretty large commission to Apple, to distribute apps in the store or to take in-app purchases. That may not feel fair to developers, but I can’t take seriously the arguments that it is illegal. It is the same way that game consoles work. Will we go after Sony, Nintendo, and Microsoft next? Shouldn’t they open up their game consoles to alternative payment systems and alternate app stores, too? I have heard of no one seriously arguing this.

The most compelling argument against Apple’s App Store requirements is that Apple demands too much money from developers for distribution and payment solutions that other companies now offer at lower prices. I am sympathetic to this argument because I too think Apple should have lowered its commission over the years, as marginal costs for these technologies and services have declined. However, the size of Apple’s cut is not really at issue here. Apple, rather clumsily, lowered its commission for a majority of its developers to 15%, starting in January 2021, but the antitrust talk just keeps rolling on.

The second most compelling argument against Apple is that it uses its platform-owner advantage to position its own software and services over third-party competitors. Again, I sympathize. Apple Sherlocks developers sometimes, and can position its own software and services over anyone else’s. So does Microsoft (ever use Windows?). Amazon exercises a tremendous advantage over third party sellers in its online marketplace.

I could argue that even Linux vendors, such as Ubuntu, position their own, preferred software over that of third-party developers. Software platform owners always have advantages over third parties that operate on their platform. Extracting as much value from that as is possible is the entire point of creating and owning a platform. I think it only becomes an antitrust problem when a company has majority market share, which Apple does not have.

If developers can’t accept Apple’s terms, then they shouldn’t. They should develop for Android instead, which has the majority market share anyway, or create progressive web apps. (Remember, the web is an app platform, too, not just a way to collect credit card payments for software.) If developers “need” to develop for iOS because iOS users, on average, spend way more money on apps than Android users, then that just shows the value Apple’s marketplace has, and is worth paying for.

Despite my views, I still think Apple is poised to lose any legal actions about them regarding monopoly. It won’t lose based on the merits of whatever case is brought against it; it will lose because enough political sentiment is against Apple, at least in this area, and that is all that matters. Perhaps all the tech giants will fall under this scrutiny, and all will be forced to open up their platforms more widely, and will be forced to renounce their first-party advantage when distributing applications and features. I just don’t see that actually happening, and if it does happen, I don’t think it will benefit anybody in the way government regulators would expect. It could even stifle the development of the next generation of technology platforms.

I have been using SQL for 25 years and I just learned today that SELECT [...] FROM Table1, Table2 is called a “cross join” an can also be expressed as SELECT [...] FROM Table1 CROSS JOIN Table2. 🤦 In my defense, I must say that I have only had to use a cross join a few times in my entire career.

I unblocked Reddit.com earlier this week because the domain keeps coming up in tech question-related search results. After only a few days, I’m back looking at mechanical keyboards and expensive headphones on Reddit like an addict. I just blocked the domain again.

⌨️ Durgod Zeus Engine Upgrade

To my complete surprise, I discovered today that Durgod released an update to their keyboard configuration: Durgod Zeus Engine. The interface looks a lot better, and it is a little easier to use. They didn’t change the keyboard hardware driver to support function layers, which is unfortunately. I really want that. (Honestly, what I want is the ObinsKit software that powers the Anne Pro 2 to apply work on it.)

I set up a new RGB color scheme and remapped my CapsLock to Control, saved them to the keyboard’s local profile, and (out of habit) configured the Zeus Engine to not start every time I log on. I plugged my keyboard into my USB hub and will keep my fingers crossed that it will work reliably now.

Report: Apple’s M2 chips may launch as soon as July 2021

Napier Lopez reports in The Next Web:

Apple only just released its new iMacs featuring the acclaimed M1 ARM-based processor, but according to a report from Nikkei, the company plans to launch M2 as soon as July.

I don’t know anything in particular about Apple’s plans, but it seems crazy to me to expect a faster chip at this time. What I would expect is more I/O, driven by more cores and supported by more RAM. Of course, I could be wrong. Maybe Apple can overvolt the M1 to get more speed out of it, and will call it by another name.

I am very conservative about cities re-opening too soon, considering the pandemic has not ended. But NYC reopening on July 1 almost seems reasonable to me. Time will tell.

🎵 I’m going to lean into my New Jersey-ness today and listen to a ton of Bruce Springsteen. First album up: The Wild, The Innocent, & the E Street Shuffle. This is one of Springsteen’s records that I never think to listen to, but, of course, it’s great. It was made back when Springsteen still wrote songs with a torrent of stream-of-consciousness-style lyrics like a verbose street poet.

I did really well at my presentation today. Practicing over and over definitely paid off. The talk I ended up with was almost completely different than the one I started with, even though my slideshow stayed the same.

Microsoft is changing the default Office font and wants your help to pick a new one

Per Tom Warren In The Verge:

Microsoft is changing its default Office font next year and wants everyone to help pick the new default. While there are more than 700 font options in Word, Microsoft has commissioned five new custom fonts for Office, in a move away from the Calibri font that has been the default in Microsoft Office for nearly 15 years.

I am unusually attached to Calibri so I am not looking forward to this change. Then again, at work I often have to publish using Arial Narrow, which I think is objectively awful in terms of aesthetics and legibility, so it probably won’t affect me too much.

I’m rehearsing for an online presentation to my entire company later this morning. I feel good about this one.

🎵 I think it is cool that Counting Crows is releasing a new album next month. It has been seven years since their last one, and I honestly thought they had given up writing new material.

I’ve been coding a lot over the past week. I’m coding right now. I’m taking the core of my iOS and macOS apps and putting into a cross-platform Swift package. It’s been a fun excursion from doing UI work, but it has a purpose. I am dismayed, however, at how buggy Xcode 12.4 is. I can’t create a new file and rename it in the sidebar without trying to rename another file first. Also, automatic protocol compliance only sometimes works. Does anybody at Apple actually use Xcode, because little bugs like these should not be in there anymore.

Laughably, for no good reason, seeing a bunch of bad takes on new Apple products last week sapped my will to share, well, anything on my blog for many days. 😅 I’m trying to get back to normal now.

The Sequence 🎮

Yesterday I decided to re-play a game I loved a few years ago called [The Sequence]. It is a puzzle game where you, essentially, build a machine with various component parts to move a ball (well, the game calls it a “binary cell”) from one part of the screen to another. It sounds simple, and it starts out fairly simple, but it becomes very challenging as you progress. It’s the sort of game a programmer, or anyone who enjoyed Human Resource Machine would enjoy.

Fez 🎮

I am delighted that I discovered a video game that is new to the Nintendo Switch, but not at all new to the world, called Fez. This is the game’s official blurb:

Gomez is a 2D creature living in a 2D world. Or is he? When the existence of a mysterious 3rd dimension is revealed to him, Gomez is sent out on a journey that will take him to the very end of time and space. Use your ability to navigate 3D structures from 4 distinct classic 2D perspectives.

It is a 2D puzzle platformer where your character can rotate the environment left or right 90 degrees at a time, but you always interact with the environment in two dimensions. Some of the puzzles are quite challenging, but I think that the most hidden secrets that you can get from solving the hardest puzzles are all optional to completing the game. It’s a charming game, and easily my favorite Switch game of this year so far.

The shooting likely lasted one or two minutes.

I am unsettled today by yet another mass shooting in my country. It seems like not a day goes by without a New York Times news alert about it. (I plan to turn those alerts off after I finish writing this.) This time, a gunman killed seven people, then himself. This detail about the story jumped out at me: “The shooting likely lasted one or two minutes.”

I think the news media covers mass shootings like they are exciting, like some kind of action movie where bad outcomes only happen to the extras, and the rest of us get to watch. But “one or two minutes” isn’t an action movie. It isn’t something exciting. It’s actually, really, really stupid. That such a thing is even possible, outside a war, is embarrassing and shameful to all of us. I wish it were more widely considered to be.

iPhone 13 mini could be the last ‘mini’ iPhone, says Kuo

Stephen Warwick reports in iMore:

Kuo says that next year Apple will drop the 5.4-inch model and run with two 6.1-inch models instead, one Pro, one regular.

This rumor is a prime reason I upgraded to the iPhone 12 mini early this year. I absolutely love the size and weight of it. It fits better in my hands and in my pockets than my iPhone 7 Plus ever did. However, the 12 mini’s small screen size makes it less compelling to read on, edit photos on, or watch videos on. These are all things I do pretty much every day without complaint, but if it were going to be my only portable device I would have bought one with a bigger screen.

I have no desire to go back to a larger phone, because the phone, for me, is one tool among many, rather than the center of my computing universe. It doesn’t have to be compelling, just useful. It doesn’t have to be used constantly, just when it makes the most sense to.

Some time from now, I think the smartphone, as a thing I carry around all the time, and as the default “Internet communication device,” is going to disappear and be replaced by something else: smart glasses maybe, or some kind of earpiece (when I am really old and need hearing aides).

My First NuGet Package

Last night, I published my first NuGet package: TodoTxt.Library. It is a code library meant to help develop todo.txt applications in .NET.

I wrote the code back in 2015, open-sourced it on GitHub, but otherwise left it alone because I had moved on to more macOS and iOS development by that time. This week, I upgraded the code base work on .NET 5, so that it is cross platform (rather than Windows-only, as was my original version), and figured out how to package it and upload it to NuGet, where it may have a shot at actually being used.

I filed my taxes and now I can spend my after-work time on more productive things again.

Microsoft announces Surface Laptop 4 with choice of Intel or AMD processors

Tom Warren’s article on The Verge caught my eye:

Microsoft is refreshing its Surface lineup with the Surface Laptop 4 today, which now offers the choice between AMD or Intel processors across both the 13.5- and 15-inch models. Both sizes will ship with Intel’s latest 11th Gen processors or AMD’s Ryzen 4000 series processors. Microsoft is shipping its Surface Laptop 4 on April 15th in the US, Canada, and Japan, starting at $999 for the AMD model and $1,299 for the Intel version — a $300 price gap between the pair.

If I was more of a Windows guy I would probably buy only Microsoft-brand laptops at this point. They don’t always have the best specs, but I like their designs a lot.

I spend most of my computing time using Windows for work. I try to forget that I have a Lenovo laptop by putting it behind a giant monitor and using an external keyboard and trackball to operate it. Lenovo laptops are good, I guess, as long as I don’t have to touch them. I don’t like their keyboards (both in terms of layout and feel) or the pointing devices (the trackpad is too small, and I’m done with using the trackpoint/eraserhead thing). The Surface Laptops keyboards and trackpads have always seemed a lot more sensible to me in how they are designed.

Siri Reveals Apple Event Planned for Tuesday, April 20

I’m assuming that somebody’s job, every day, is to wake up in the morning and ask Siri “When is the next Apple Event?” I’m glad I didn’t try to change careers back in 2009 or 2011 (when I thought of it) and get into tech journalism.

I spent some time tonight working on my tax filing, and some time learning how to create and publish NuGet packages. I want to package up one of my .NET libraries soon. I think it will be a fun, short project—unlike filing my taxes!