Archive for January 15, 2019

Tuesday, January 15, 2019

DuckDuckGo Switches to Apple Maps for Location Searches


We’re excited to announce that map and address-related searches on DuckDuckGo for mobile and desktop are now powered by Apple’s MapKit JS framework, giving you a valuable combination of mapping and privacy. As one of the first global companies using Apple MapKit JS, we can now offer users improved address searches, additional visual features, enhanced satellite imagery, and continually updated maps already in use on billions of Apple devices worldwide.

Dieter Bohn:

Before today, DuckDuckGo used a mix of different services to power its results: sidebars and boxes used OpenStreetMap, while asking for directions meant getting a drop-down menu with options from Bing, Here maps, and Google. DuckDuckGo says that “Apple is providing all of the maps for our new maps experience,” though it will “continue to use a variety of providers to add additional data to these results, such as a direct integration with Yelp.”

John Voorhees:

DuckDuckGo explains elsewhere on its site that it uses GEO::IP lookup to determine users’ location by default. For better results, users can grant DuckDuckGo permission to use their browser location data, in which case DuckDuckGo says searches are still anonymous because the company does not store location data on its servers.

Previously: WWDC 2018 Links.

Signal v Noise Exits Medium

David Heinemeier Hansson:

Three years ago we embraced an exciting new publishing platform called Medium. It felt like a new start for a writing community, and we benefitted immensely from the boost in reach and readership those early days brought. But alas it was not to last.


These days Medium is focused on their membership offering, though. Trying to aggregate writing from many sources and sell a broad subscription on top of that. And it’s a neat model, and it’s wonderful to see Medium try something different. But it’s not for us, and it’s not for Signal v Noise.


Traditional blogs might have swung out of favor, as we all discovered the benefits of social media and aggregating platforms, but we think they’re about to swing back in style, as we all discover the real costs and problems brought by such centralization.

David Heinemeier Hansson:

Nice bonus from leaving @medium is to finally be able to kick those fucking Facebook like buttons off our posts

Previously: Moving to Medium, Preserving Permalinks.

Save Changes Before Quitting?

Niko Kitsakis:

This “Mac-like” feeling was at the core of the classic Mac OS era. It’s what gave the Mac its legendary status and its place in history. And while the first versions of OS X broke with some conventions, things became better as OS X progressed. That is to say, until 10.7 came out and started a trend of questionable design decisions that has been continuing ever since.

But it’s not only Apple that seems to have forgotten its own roots in making good Human Interfaces, the rest of the software industry too seems strangely preoccupied with reinventing the wheel while making it worse with every iteration.


But unfortunately, these things do not only evolve, sometimes they devolve. Fast forward around 25 years to 2018 and you’ll find this in Adobe Premiere[…] No icon, no verbs and the unsafe option is right in between the safe ones.

Previously: The Lost Art of Legendary Apple UX.

Update (2019-01-17): Dave Mark:

The Mac design language was so powerful, and so widely adopted, that any app that did not follow the rules stood out like a sore thumb. Mac applications were instantly recognizable, and apps from outsiders tended to look ugly, in comparison, as those outsiders did not know the rules to follow.

Does the modern macOS and iOS app universe still hew to a common standard? Are Apple’s Human Interface Guidelines lost in the incredible complexity of application creation?

Update (2019-01-18): Niko Kitsakis:

My english language version of Photoshop tells me in german that it can’t open .psd files because they are in “Adobe Photoshop preference file format”

Announcing the FoundationDB Record Layer

FoundationDB (via Will Wilson, Hacker News):

The Record Layer stores structured data, just like a relational database. Databases managed by the Record Layer support records with fields and types, an evolving schema, complex primary and secondary indexes, and declarative query execution. The Record Layer also includes features not typically found in a traditional relational database, such as support for complex nested data types, indexes on the commit-time of records, and indexes and queries that span different types of records.

Built on top of FoundationDB, the Record Layer inherits FoundationDB’s strong ACID semantics, reliability, and performance in a distributed setting. The Record Layer also uses FoundationDB’s transactional semantics to provide features similar to a traditional relational database, but in a distributed setting. For example, the Record Layer’s secondary indexes are maintained transactionally, so they’re always up-to-date with the latest changes to the data. Transactions reduce the number of bugs in application code and greatly simplify application development.


Together, the Record Layer and FoundationDB form the backbone of Apple’s CloudKit. We wrote a paper describing how we built the Record Layer to run at massive scale and how CloudKit uses it. Today, you can read the preprint to learn more.

Previously: Apple Open Sources FoundationDB, Exploring the New iWork File Formats, Swift Protobuf.