Archive for November 29, 2014

Saturday, November 29, 2014

Zero Knowledge Proofs: an Illustrated Primer

Matthew Green:

Specifically, assume that I (the Verifier) have some strategy that ‘extracts’ useful information about Google’s coloring after observing an execution of the honest protocol. Then my strategy should work equally well in the case where I’m being fooled with a time machine. The protocol runs are, from my perspective, statistically identical. I physically cannot tell the difference.

Thus if the amount of information I can extract is identical in the ‘real experiment’ and the ‘time machine experiment’, yet the amount of information Google puts into the ‘time machine’ experiment is exactly zero -- then this implies that even in the real world the protocol must not leak any useful information.

Thankful to Be a Programmer

Andrew Wulf:

Is there any job like this one? Where everything you know changes at an ever-increasing pace, where the challenges of programming never end, and the need to produce quality is a constant reminder. I can't remember a time when I didn't love what I got to do, even when circumstances were terrible, or companies failed out from under me.


I love playing music and cooking and even writing blog posts but writing code is something special. You get to tell a freaking computer what to do and it does it! Sometimes too literally but still there is a feeling of power, of mastering knowledge, of making something from nothing that only programming can bring.

Android vs. iOS Start Experience

Luke Wroblewski:

Today’s new iPad Air 2 experience consists of 23 or more steps and no less than three iCloud services (iCloud, iCloud Drive, & iCloud Keychain). In contrast, today’s new Android Nexus experience consists of only 8 steps but with a mandatory 234MB update (some things don’t change). Here’s both start experiences in detail.

Via Nick Heer:

Privacy has its tradeoffs.

iWork ’14 Review

Iljitsch van Beijnum:

One thing hasn’t changed: like iWork ’13 before it, iWork ’14 creates files that previous versions of the suite can’t open. The file format hasn’t really changed, it’s just that Apple decided against using packages. A package is a folder that holds multiple files and folders but looks like a single file in the Finder. However, if you tried to transmit it over the Internet in the past, you’d possibly run into trouble. So the new versions of Keynote, Pages, and Numbers helpfully compress all the files that are part of a document into an actual single file.

At first blush, this seems utterly perplexing, because this is exactly how iWork ’09 worked. The disadvantage of the ’09/’14 single file method is that even a small change to a document requires the whole thing be written to disk in its entirety, including potentially large images and movies that are contained in the document. That may not be so bad on a Mac with a fast SSD, but it can make iCloud syncing a lot slower. Of course Apple also knows this, so the iWork ’14 apps only use the single file method when saving a document locally on a Mac. The package format is used when saving to iCloud.


The big advantage of the apps’ iCloud versions is live collaboration, and we’re very disappointed that this hasn’t been extended to the native apps. There are some oddities with that arrangement, too. For instance, tracking changes is not supported in shared Pages documents, so it’s either work with others on the same document in real time or see who changed what after the fact—you can’t have both.


Apple did bring back some features that were excised from the initial iWork ’13 release over the course of the year, but it doesn’t look like it’s full steam ahead on that revisionary front. For Keynote and Numbers that’s fine: Keynote remains best in its class while Numbers has no such pretensions but serves users with modest needs well. Pages, on the other hand, leaves too wide a gap between vision and execution.

Nick Heer:

It’s incredible just how much of a feature regression Pages experienced in the ’09-to-’13 update, going from an easy-to-use page layout machine to a barely-cutting-it word processor. It still doesn’t support page numbering on alternating sides, full OpenType features, or a useful contextual menu.

Update (2014-11-30): Accidental Tech Podcast discusses iWork.

Using C++ to Deliver Microsoft Office Across Different Platforms


How Microsoft Office’s codebase is being reworked to adapt to the new multi-platform requirements is the most interesting thing you’ll watch today, if you’re a programmer. Contains some nice breadcrumbs about how Mac Office development may be tilted on its head, and some brash admissions that the way forward will not be features that only work on one platform, because it’s hell going forward.