Archive for April 27, 2018

Friday, April 27, 2018

Overcast 4.2: The Privacy Update

Marco Arment:

In Overcast 4.2, the login screen now prominently encourages anonymous accounts by default.

[…]

Finally, you can now change your account between email-based and anonymous whenever you want.

[…]

One of the ways publishers try to get around the limitations of the current model is by embedding remote images or invisible “tracking pixels” in each episode’s HTML show notes. When displayed in most apps, the images are automatically loaded from an analytics server, which can then record and track more information about you.

In Overcast 4.2, much like Mail (and for the same reason), remote images don’t load by default. A tappable placeholder shows you where each image will load from, and you can decide whether to load it or not.

You still need an e-mail address if you want to play episodes from the Web site or use it to upload your own audio files. It seems like the latter could be implemented in the app itself, e.g. give me an Overcast folder in iCloud Drive, which I can drag and drop into from my Mac, and have the app either upload those files to the server or cache them directly from iCloud. This would also address the current limitation of only being able to upload one file at a time.

Drive Genius Lite

Prosoft Engineering:

Drive Genius Lite automatically monitors your Mac using Drive Pulse™ technology and will alert you when any potential harmful issues arise!

Drive Genius Lite Includes:

  • Automatic Drive Monitoring
  • Malware Detection
  • Professional Solution Recommendations
  • Hard Drive Failure Predictions

There used to be a free trial that included unlimited use of some of the less glamorous features, such as Physical Check, which is the one I use most often. Then they changed to a fully-featured 30-day trial, after which you could purchase the entire app for a single price.

Now, they’ve changed to four different packages of features that you can purchase. The Lite feature set (above) is included for free. I believe DrivePulse does scan for bad blocks, so that feature is still available for free in a different way. However, as a paid customer, I personally prefer to uninstall DrivePulse and invoke the tools manually.

Previously: Drive Genius 5.1 Adds High Sierra Compatibility.

Xcode Treasures

Chris Adamson:

The book’s working title was No Regrets Xcode, and at one point, I toyed with proposing Xcode for People Who Hate Xcode as a title. But a full-throated defense of Xcode is an essay or a blog, not a programming book. Instead, I hope to prove by example — many, many examples — that Xcode is better than you think it is.

[…]

So, yes, Xcode is flawed. But is it fundamentally flawed? Is there some core concept — its multi-paned single window UI, its scriptable build system, the nature of app bundles and code signing — that makes it impossible for Xcode to ever be good? I don’t believe anyone is making this argument. The closest you get to this is storyboard haters who build their UIs in code.

All these years later, I still miss Xcode 3’s multi-window interface. I’ve gotten used to living without it, though. The Xcode 4 rewrite introduced a lot of breakage and problems, but I would say that all the major ones have been fixed (probably since 7.x or so). Mainly, Xcode 9 is plagued by a variety of minor but annoying issues. One would not expect them to be fundamental flaws, yet they have persisted for a long time.

Yes, I’m one of those people who doesn’t use storyboards and eventually came around to disliking nibs. But for me this is mostly about abstraction and modularity in creating interfaces, and making testing, version control, and localization easier. I would blame less than half of it on Xcode. Yes, it has some interface issues, but—aside from the breakage of older files—it seems to do a decent job at solving a really hard problem.

So, I’m making the case that it’s time to take a fresh look at Xcode. Acknowledge the bugs, sure. Hope that they get better. But beyond that, look at how nice the code editor is (and how you can customize it to suit your own tastes). Look at how the build system is smart about resolving dependencies, how you can set up your own build properties on a per-configuration basis or even run arbitrary scripts during the build, or run the whole thing from the command line and let Jenkins handle your CI. Think about how app slicing and on-demand resources make things better for your users by making smarter use of their limited on-device storage, and how Xcode gives you a UI for managing these assets visually. Behold the wonderfully clever power of LLDB to give you powerful breakpoint capabilities, and tools like Instruments, Main Thread Checker, Address Sanitizer and more.

Previously: Working Without a Nib.

Update (2018-04-28): See also: Mark Hughes.

JavaScript’s Tricky Rounding

Peter Ammon:

Unfortunately, the implementation in the spec does not correctly implement the spec.

[…]

JavaScript presumably rounds this odd way to match Java, and so the only engine to get it right out of the gate is Rhino, which simply calls back to Java’s Math.round. Amusingly Oracle fell into the same trap with Rhino’s successor Nashorn. Round and round we go!