13 Minutes to the Moon

If you‘re in the market for a podcast recommendation, here it is: go listen to 13 Minutes to the Moon, produced by the BBC World Service. It‘s an in-depth walk-through of topics around the nearly 13 minute-long final descent1 of the Eagle lander from the Columbia command module down to the surface of the Moon.

I have read about, listened to, and watched tons of material about this expedition. But one thing I learned from listening to episode 9 of the series was that the landings in all cases have been expressly planned to happen in a region close to the terminator when the Moon was in a waxing phase2.

Thanks to the low position of the sun (in the back of the LEM) over the horizon, the overall amount of light was reduced and the structures on the surface cast long shadows. These create contrasting markers in the blinding whiteness to assist the LEM pilots in recognizing and avoiding potential obstacles that might be a hazard to the landing procedure.

In hindsight, it seems totally natural and obvious to plan the landings this way, but it never actually occurred to me until I listened to 13 Minutes to the Moon.

  1. That inspired the title of the podcast series
  2. This conclusion is also backed up by the flight path of the mission, see e.g this illustration.

Carrot Weather Data Source Reshuffle

Today’s release of weather app Carrot Weather comes with some interesting changes. For the first time, the app supports MeteoGroup as a data source.

I have been using the MeteoGroup’s own app WeatherPro for years. In my personal experience, the quality of prediction data for Europe is more accurate in comparison to other “global” data sources that are also supported by Carrot.

However, I don’t like the concept of presenting the data in WeatherPro very much and kept looking for replacements. Hello Weather is certainly a viable alternative, but for some reason it did not stick for long. At some point, I switched to Carrot, and my previous data source of choice (The Weather Channel) within Carrot delivered okay-ish results I could live with. Win-win, sort of.

Without any evidence for it to happen, I nevertheless kept up hope that the future with bring access to higher-quality data, specifically the data that power WeatherPro.

According to Carrot’s release notes of today’s release, The Weather Channel terminated the contract because it does not want to provide data to competing apps any longer in order to get1 more users to switch to their own apps. Here’s hope that MeteoGroup does not come to a similar conclusion any time soon.

  1. For reasons I could only speculate about.

First Men on the Moon

This is not a new thing, but fits perfectly to the Apollo 11 buzz (no pun intended) that we are going to get through in the coming month.

Make sure to go to firstmenonthemoon.com and replay the final descent of the landing module along with synchronised communication in the mission control room in Houston and between CAPCOM, Columbia, and Eagle.

SwiftUI Example

I came across this video on Twitter. The video demonstrates a non-trivial, but still not overly complicated example of a SwiftUI declaration.

I have to say that, after looking at the SwiftUI declarations I’m actually undecided whether my concerns voiced in this article are warranted or not. Yes, the chained expressions are sort of a mess and it remains to be seen whether such code is maintainable.

On the other hand, the presentation of the relevant information is not as obscured as I feared it would be. In other words, by looking at the code it is in my opinion possible to understand what’s happening.

SwiftUI

I very much like the idea of a declarative definition of a user interface and thus I’m motivated to kick SwiftUI’s tires. Having worked halfway through the tutorials, I’m a little bit concerned about the scalability of SwiftUI. Sure, a DSL is always going to win the elevator pitch because it looks so nice and elegant.

At least the WWDC videos about SwiftUI that I have watched so far restrict themselves to more or less the bare minimum of complexity that you might want to add to the declarative definition of an app’s user interface. And already in the simple cases SwiftUI starts to get messy, e.g. with respect to formatting chained expressions1.

My (probably not very popular) point is that I personally believe that defining a scalable XML-based format will way more likely yield a good result than designing a DSL for the same purpose because scalability is already baked into XML itself. You can wrap tags around tags around tags real simple and the resulting complexity ist still kept under control.

In many cases, the problem is that the design of a DSL will start with the simple and elegant cases and stay with the simple and elegant cases for some time – until it needs to expand towards supporting higher-level complexity2. But: if the need for supporting higher-level complexity hasn’t been considered from the start than the DSL will fall apart pretty quickly.

To drive my point home, I have actually done some work in declarative UI definition in the Windows world, specifically the Windows Presentation Foundation (WPF)3. Microsoft uses a dialect of XML named XAML for the UI declaration.

I fully understand that XAML in particular has lots of problems and isn’t as much fun as you might want it to be. But still, given the choice between declaring a UI in an XML dialect or else by means of using a DSL (like SwiftUI) I would personally actually very likely prefer the XML.

  1. That does not even include the point where suddenly imperative paradigms are mixed into the declarative language.
  2. Which – let’s face it – it will inevitably have to.
  3. Yes, in a text editor. There is a graphical frontend for XAML. My experiences with the graphical frontend are staggering and I have yet to come across anyone seriously endorsing it.

iPadOS

It didn’t come as a total surprise to me, but it was very close. Only five minutes or so before the keynote started I saw a retweet from someone who mentioned the possibility that a dedicated “branch” of iOS existed (named iPadOS) specifically for the iPad.

And then it became a reality. The strange thing about the naming is that iOS originally has been conceived as iPhoneOS and was only later rebranded as iOS when the iPad entered the market.

Maybe it’s just me, but wouldn’t it be ironic to give all sorts of devices their own specific OS-branding and the iPhone, arguably the most important device in the lineup (and the one that started this whole family of OS-variations) stays with the generic iOS branding?

Maybe a further rebranding may happen when final versions of <modifier>OS 13 are released to the world. And maybe the term iOS finally becomes some sort of abstract base marketing term for the entire class of OS.

Feature-wise, I’m delighted about what’s in store for the next major OS release on my iPad. Although I might want to mention that font management and a download manager for Safari would also make excellent features for the iPhone, just sayin’. I keep hoping for a trickle-down of such useful details to the iPhone at some point in time.

Overall, it is a good sign that Apple gives iPadOS such a prominence. At the very least it means that no WWDC will happen from now on where the iPad is not going to get some new OS-features. Neglect has happened way to many times in the past.

As Steve Troughton-Smith observed, they can’t ignore it anymore. Apple put this burden on themselves for good.

CalZones

David Smith‘s latest app, a calendar app named CalZones that is putting the focus on facilitating the handling of events across multiple timezones, is making quite a splash these days.

The app is mentioned and/or reviewed on many tech blogs and seems to receive universal praise, as far as I can see. And the praise is not unjustified. CalZones comes with some really fresh design and animation ideas, and – as mentioned before – the ability to take the friction out of handling multiple time zones in calendar events is certainly a compelling selling proposition.

The MacStories review mentions some „strategic“ shortcomings Federico identified during the beta period. My personal list of features that I would like to see added to CalZones is more about the practical aspects of working with a calendar app:

  1. It does not seem as if there is a touch gesture for navigating to the current date. However, when using a hardware keyboard, the app supports the shortcut ⌘ T for this purpose.
  2. No search. This is big, a calendar app that does not support search is not going to make it on my devices.
  3. I haven‘t found any way to create a calendar entry boundary with a finer granularity than 15 Minutes. For example, you can start an event at 9:15, but 9:12 is apparently not foreseen. Such a limitation, if confirmed, is not exactly compatible with calendar entries for train or flight connections1.

Despite all the complaints, I still think that Smith delivered a 1.0 that should be a solid basis for further iterations.

  1. At least for flight connections, I personally see a relevance for the ability to work with different timezones.

Five Years of Monument Valley

Remember Monument Valley? The game, developed by the studio ustwo games, was originally released in early 2014. In the fall of that year, I got my first iPad and (if I remember correctly) Monument Valley was the first game I‘ve downloaded onto my new device.

Monument Valley is a masterful play with geometry and perspective, and the game keeps giving. This week, ustwo shipped the „fifth anniversary edition“ of Monument Valley, accompanied by the slightly cryptical release note:

Don‘t miss out – the party‘s over on May 1st.

Whatever that means, I am already done with the ten additional levels. It was fun.

2019

Back in 2015, I went to the local Apple Store because my MacBook Pro would no longer boot. It had been hit hard by the notorious graphic card glitch that plagued the MacBook pro class of 2011. I got a new logic board for free as part of the repair program for this well-known issue.

The year went 2016, and I made another appointment for the same computer that was even in a worse condition than the year before. According to the Genius, the computer did not show any signs of animation and it was not even possible to run a low-level diagnostics, and so the computer was pronounced dead.

But because the of the uncomfortably short lifetime of the replacement logic board the Genius offered a 10% discount if I bought a new computer in the store. I honestly had the intention to buy a low-to-mid-range iMac and walk out of the store in peace. But, turns out, all stock iMac models in the store were fitted with a spinning disk or a fusion drive.

I politely informed the Apple sales person that it was 2016 and that, in the price range that Apple products typically occupy, nobody should sell computers that have a spinning disk.

She agreed with similar politeness, but nevertheless replied to me that SSD-configurations are built-to-order, and the discount voucher would not be good for a BTO-configuration. So I left the store Mac-less, and that day marked the beginning of a longer period without owning a Mac as my primary computer1.

With a little luck, I still have that voucher in my records. It‘s 2019 now, and I still would not be able to use the voucher to buy a stock iMac in the Apple Store that comes with an SSD.

Three. Years. Later.


  1. That period, to some extent, still hasn’t ended. I might have mentioned this already.