Archive for October 13, 2016

Thursday, October 13, 2016

Drawing Hairlines

Joshua Emmons:

Or, graphically, for any Y in the shaded area, we need to either round it up to the top dashed line or round it down to the bottom dashed line to draw a perfect non-antialiased line.

How do we choose if we want to draw above or below our given coordinate? It depends on the situation. If we’re trying to draw a line at the very top of a clipping view, we’ll want to draw slightly below the Y we give it. Otherwise it will clip and not be visible. The same goes in reverse for drawing at the bottom of a view.


Sadly, we don’t want to draw perfect single point lines. We want to draw perfect single pixel lines. On non-retina devices, those are the same thing. But on everything else, each point is made up of several pixels.

“Plus” model iPhones, for example, actually have three pixels per point, represented by the yellow lines here.

Update (2016-10-13): Previously: iPhone 6 Pixel Peeping (via Ole Begemann).

Twitter Changes What Counts Toward 140-Character Limit

John Voorhees:

Twitter began to roll out features, first announced earlier this year, that exclude certain things from the 140 character count limit. Users will still be limited to 140-character messages, but, as first reported by The Verge last Friday, media attachments (including images, GIFs, videos, and polls) and quoted tweets will no longer count against the 140-character limit, making more room for text.

Juli Clover:

All @names, such as @MacRumors, will no longer count towards the 140-character count, nor will media attachments, retweets, or quoted tweets, but links will still eat up 23 characters.

Why Does Siri Seem So Dumb?

Walt Mossberg (MacRumors):

Google Now, on the same Apple devices, using the same voice input, answered every one of these questions clearly and correctly. And that isn’t even Google’s latest digital helper, the new Google Assistant.

If you try most of these broken examples right now, they’ll work properly, because Apple fixed them after I tweeted screenshots of most of them in exasperation, and asked the company about them.


For instance, when I asked Siri on my Mac how long it would take me to get to work, it said it didn’t have my work address — even though the “me” contact card contains a work address and the same synced contact card on my iPhone allowed Siri to give me an answer.

Similarly, on my iPad, when I asked what my next appointment was, it said “Sorry, Walt, something’s wrong” — repeatedly, with slightly different wording, in multiple places on multiple days. But, using the same Apple calendar and data, Siri answered correctly on the iPhone.

Ruffin Bailey:

Spend ten million (he said figuratively) and get the best QA staff in the business, and make sure there's no silo making QAing app interactions an issue. If Maps borks like this, the QA team “for Maps” has to be able to hold Siri and Contacts (or whatever else) accountable. No software ships until this blocking bug is fixed.

John Gruber:

Indeed, Siri now knows the date and time of the next U.S. presidential debate, but where Siri fundamentally falls apart is its inability to maintain context and chain together multiple commands.


These sort of glaring inconsistencies are almost as bad as universal failures. The big problem Apple faces with Siri is that when people encounter these problems, they stop trying. It feels like you’re wasting your time, and makes you feel silly or even foolish for having tried. I worry that even if Apple improves Siri significantly, people will never know it because they won’t bother trying because they were burned so many times before. In addition to the engineering hurdles to actually make Siri much better, Apple also has to overcome a “boy who cried wolf” credibility problem.

Nick Heer:

I think the inconsistencies are worse than outright failure. The inability to answer a query implies a limitation which, while not ideal, is understandable. Inconsistency, on the other hand, makes Siri feel untrustworthy. If I can’t reliably expect the same result with basic queries that are almost identical, I’m much less likely to find it dependable.

Kirk McElhearn:

I pointed out similar problems in a Macworld article in August. For me, Siri is a waste of time.

The only thing Siri consistently does correctly for me is set timers. I keep trying to use it to add reminders and am usually frustrated. Either the phone can’t connect to Siri, or it mis-parses what I said. It’s easier to use my finger to create a new action in OmniFocus and then to use the dictation button on the keyboard. iOS is pretty good at transcribing what I say. The problem is that interpreting it is unreliable. And that’s why I rarely even try to ask it more complicated questions.

See also: Daniel Jalkut on Siri logging, David Spark’s Dragon Professional review.

Update (2016-10-14): Stephen Hackett:

Siri should feel like a living, growing platform and it just doesn’t. Even SiriKit, which allows developers to build plugins for the service, doesn’t get Apple far enough down the road. This is a platform vendor problem, and not one a handful of apps can solve.

Update (2016-10-17): David Sparks:

Why does it take an article by a popular journalist to get these things fixed? I feel as if Siri needs more attention. I don’t think the underlying technology is as bad as most people think but it is these little failures that causes everyone to lose faith.

Update (2016-10-20): Nick Heer:

I think it’s important to keep bringing it up because I think Siri is currently fundamentally flawed in its design.


More worrying for me is that the user interface component of Siri — a field where Apple typically excels — simply isn’t good enough.

favicon.ico Is a Privacy Leak

Robin Linus (via Jeff Atwood):

For most web platforms there’s a way to abuse the login mechanism to detect whether a user is logged in to that service.


Well, the [Same Origin Policy] is strict for HTML pages, but it allows to receive images from other origins! So if the resource in the next parameter would be an image we could read it from our website. It can’t be any image though. Facebook checks if the URL in the next parameter starts with So we need to find an image on Should be easy, right? Actually it isn’t, because facebook hosts almost all images on their CDN servers under the domain Though there is one image that you can find on almost every webserver: the good old favicon.ico!