Archive for February 27, 2013

Wednesday, February 27, 2013 [Tweets] [Favorites]

Why Refusing Third-Party Cookies Will Be Worse for Privacy

sukria (via Tim Bunce):

It’s obvious that if all browsers drop third-party cookies by default, all the industry will move to fingerprinting and this will be even worse for the user: you can remove a cookie, you can see it, you can configure how you want your browser to deal with it. You can’t do that with fingerprinting.

Name Mangler 3

Name Mangler, Many Tricks’ excellent batch file renamer, has been updated to version 3. The new version is much faster and can apparently even undo a renaming, though that should rarely be necessary since it offers such great previewing. There’s also a version in the Mac App Store, which due to sandboxing removes the feature for integrating with Path Finder.

Update (2013-03-01): Peter Maurer:

In this case though, we’ve demonstrated that not only did we not steal, but that any theft may have very well been the other way around: Renamer 4′s “new” interface bears a striking resemblance to one we’ve been using since 2005. But honestly, we don’t care—we like competing on features, performance, and ease of use instead of with legal threats.

NSEnumeratorLinq

Ash Furrow:

Anton Bukov has done a great job replicating the LINQ framework in the Foundation collections classes.

For those of you who aren’t former .Net fanboys, LINQ is the gem of .Net development. LINQ stands for Language-Integrated Query and it is a compile time, source-independent querying language for .Net.

It’s interesting to compare this with RXCollections.

It’s Not Email That’s Broken

Joe Kissell:

What I am trying to say is that you probably don’t receive more email than Adam Engst, Merlin Mann, or I do, and if we can get to the point where we feel email is under control, so can you. If you find that one of our systems works “out of the box,” that’s fantastic; go for it! If you need to adapt a system to your own needs or invent something entirely new, that’s also fine. But it’s going to require effort. You have to take a few hours of your life to analyze the ways you use email and determine what parts of your approach aren’t working, and then adjust some of your behaviors.

Application Specific Crash Report Information

Wil Shipley shows how an application can add information to a crash log by assigning to a special string variable. I see the same technique used in Apple’s source for configd:

/* CrashReporter info */
const char *__crashreporter_info__ = NULL;
asm(".desc ___crashreporter_info__, 0x10");

I also like to use -[NSThread setName:].

Update (2013-05-03): Mike Ash adds this to his assertion macro.

Update (2014-02-18): PLCrashReporter developers consider whether they should read from __crashreporter_info__ (via Landon Fuller).

The Little Manual of API Design

Trolltech, developers of the Qt framework, have written what looks like a useful PDF guide called The Little Manual of API Design (via Lemont Washington and @curentur).

Update (2013-02-28): Lukas Mathis comments.

Ruby 2.0

Ruby 2.0 is now available, featuring keyword arguments, UTF-8 as the default encoding, support for lazy streams, a new regex engine, DTrace support, a faster garbage collector and VM, and more.

Google Maps API Keys Now Open

Jacqui Cheng:

The Google Maps SDK for iOS is now open to all iOS developers—not just those who get approval for API keys through Google. The move almost guarantees more third-party iOS apps will use Google’s data instead of Apple’s, though it’s still too early to tell whether the change will significantly affect Apple or the use of its own mapping APIs.

How to Design Programs

There’s a free Web version of How to Design Programs, an interesting, Scheme-based textbook that’s gentler than SICP (via @CompSciFact).