Archive for January 14, 2019

Monday, January 14, 2019

AWS, MongoDB, and the Economic Realities of Open Source

Ben Thompson:

Basically, MongoDB sells three things on top of its open source database server:

  • Additional tools for enterprise companies to implement MongoDB
  • A hosted service for smaller companies to use MongoDB
  • Legal certainty


This leaves MongoDB Inc. not unlike the record companies after the advent of downloads: what they sold was not software but rather the tools that made that software usable, but those tools are increasingly obsolete as computing moves to the cloud. And now AWS is selling what enterprises really want.

Worse, because AWS doesn’t have access to MongoDB (it is only matching the API) it only supports MongoDB 3.6; the current version is 4.0.5.


This tradeoff is inescapable, and it is fair to wonder if the golden age of VC-funded open source companies will start to fade (although not open source generally). The monetization model depends on the friction of on-premise software; once cloud computing is dominant, the economic model is much more challenging.

Update (2019-01-23): Exponent:

Ben and James discuss open source in a cloud world, how enterprise value chains have changed, and AWS versus Microsoft.

Update (2019-02-14): Bryan Cantrill:

So those are the two cases, and they are both essentially bad for the open source project. Now, one may notice that there is a choice missing, and for those open source companies that still harbor magical beliefs, let me put this to you as directly as possible: cloud services providers are emphatically not going to license your proprietary software. I mean, you knew that, right? The whole premise with your proprietary license is that you are finding that there is no way to compete with the operational dominance of the cloud services providers; did you really believe that those same dominant cloud services providers can’t simply reimplement your LDAP integration or whatever? The cloud services providers are currently reproprietarizing all of computing — they are making their own CPUs for crying out loud! — reimplementing the bits of your software that they need in the name of the service that their customers want (and will pay for!) won’t even move the needle in terms of their effort.


As part of their quest for a business model, these companies should read Adam Jacob’s excellent blog entry on sustainable free and open source communities. Adam sees what I see (and Stephen O’Grady sees and Roman Shaposhnik sees), and he has taken a really positive action by starting the Sustainable Free and Open Source Communities project.

GoDaddy JavaScript Injection

Igor Kromin (via Hacker News):

The technology that’s in use here is called Real User Metrics and GoDaddy has a page about it here - Why am I signed up for Real User Metrics?. If you happen to be a customer in US (which I am not but the website is hosted in a US data centre) then you are automatically opted into this service and all your website’s pages will have this JavaScript injected into them.


The worst part of it is GoDaddy, in their help article, admits that this could slow down or break your site! So much for a tool that is designed to improve performance and reliability!

It sounds like this only happens if you use GoDaddy as a Web host, rather than just for DNS.

The Lost Art of Legendary Apple UX

Marcin Krzyżanowski:

iPhone X in my case is not compatible with the website of the company that iPhone business is like what… 80% of revenue?

I recorded my annoyance: the bottom part of the website covers the part where “Accept” button is located. Also, scrolling is very hard (unlike iPhone scrolling at all).

Fun part: the website suggest to open App Store Connect, yea right!


The form has some fields that I don’t understand, and error messages mention fields that are missing (find SWIFT code field mentioned in the error message).

Update (2019-01-15): Brian:

I just had that same iTunes connect issue with an internal TestFlight link at my work. The kicker was after I couldn’t accept the new T&C on my iPhone, I tried on my PC and the link had expired because I’d already redeemed it.

Closing Down Coriolis Systems

Alastair Houghton:

The shift to APFS and the continuing lock down of the platform have meant that our existing products have become obsolete and their sales have declined to a trickle. Perhaps, if the full APFS documentation had been released somewhat before users’ machines were converted over to it, things might be different — though even then I’m not sure Apple’s current focus on security is conducive to a viable market for third-party utility software, solid state storage really doesn’t require defragmenting in 99% of cases and in all likelihood the Mac line will at some point shift to ARM at which point you won’t be able to run Windows on it except through emulation, which will substantially reduce the market for partitioning tools also.

Aura, our AC-3 compatible real-time encoder, doesn’t sell in any volume, and right now Coriolis isn’t covering its costs.

Previously: iDefrag and iPartition Discontinued.

Aliases, Hard Links, Symlinks, and Copies in Mojave’s APFS

Howard Oakley:

There are now five different types of copy/clone/alias/link: the regular copy, APFS clone (copy on write clone), symbolic link (symlink), hard link, and Finder alias. I’ll tackle them in that order.

Howard Oakley:

Bookmarks are a generalisation of Aliases which allow variants, including those saved as files, both the Finder Alias and alisma’s Bookmarks, which are similar but not identical. Bookmarks have been used extensively internally in macOS and applications since at least Mavericks 10.9 in 2013. They’re now used in a lot of preference files and other places, particularly by Launch Services in its SharedFileList files stored in ~/Library/Application Support/


The remaining issue with Bookmarks and Aliases is that they cannot ordinarily be resolved at the command line or in scripts. My free tool alisma should be a help, as it can return the absolute path from a Bookmark file or Alias.

Howard Oakley:

Here are a couple of tables which summarise the most important features of different types of copies, clones, links and aliases used in Mojave running on APFS (with a little reference to HFS+ too).

Howard Oakley:

The bug occurs if you select a Finder Alias to a missing folder in a window set in Column view. After an initial pause of a few seconds, the spinning beachball appears, and the only way to regain access to the Finder is to press Command-Option-Escape, then select Finder and restart it.

Howard Oakley:

One of the claimed advantages of Finder Aliases, and their parent Bookmarks, is their robustness in the face of change. Because they can use both an absolute path and the unique inode number to resolve the location of the item to which they point, they should be much more reliable than symbolic links, and easier to use than hard links. Indeed, since System 7 in 1991, they have been the only form of link which can be created in the GUI of Mac OS and macOS, the others requiring command line access.


When studying the contents of orphaned Finder Aliases and Bookmarks, whose original items had been removed, I noticed that some contained paths not to the original location of the item, but to it after it had been placed in the Trash, but others had retained the original location instead. A little further experimentation confirmed an interesting aspect of their behaviour: resolving an Alias or Bookmark will cause its saved paths to be updated if they have changed.


Given the information stored in an Alias about the file or folder to which it points, this is perhaps not surprising: the resolver has a lot more to work with than just the path, volume and inode number, and does appear to use that additional information to ensure that, most of the time, the link between the alias and original will work, and it won’t be fobbed off by another item posing as the original.

Howard Oakley:

QuickLook previews in other places, such as the Open File dialog, don’t appear to use the cache, though. At the same time that QuickLook was offering that thumbnail in the Finder, the preview offered in an Open File dialog was that for the imposter file which had replaced the original.

This may be related to the fact that when the resolver updates the contents of an Alias, that change isn’t readily detected by anything calling the resolver. There thus doesn’t appear to be a simple way for QuickLook to tell whether its cached data need to be refreshed because the item to which the Alias points has changed. It’s a subtlety which produces amusing demonstrations, but is of little importance to Mac users.

Howard Oakley:

The new features in this version of Precize which make this possible include separating the analysis of Alias contents from resolving them. There’s also a checkbox to avoid changing the Alias data when resolving it: although this shouldn’t make any difference, as it is working on extracted data from the Alias and not the Alias itself, I offer it as an option.

Previously: BookmarkData Exposed.

At the instigation of Thomas Tempelmann, I now offer you a free tool to check and refresh your Finder Aliases: Alifix. Those which it finds are now broken beyond automatic repair it lists, and if you want it will save an adjacent text file in which all the internal data from the Alias is decoded and displayed, so you can decide what to do with it.

Howard Oakley:

The only totally reliable method which I have discovered for forcing the Alias data to be updated is to resolve it into fresh Bookmark data, then write that Bookmark out as new data to the original Alias file, using the sequence

let theNewBMData = try URL.bookmarkData(options: [URL.BookmarkCreationOptions.suitableForBookmarkFile], includingResourceValuesForKeys: nil, relativeTo: nil)
try URL.writeBookmarkData(theNewBMData, to:)