7 August 2014 / permalink
Everyone at hot startups drinks a lot of coffee. But you can’t drink just any coffee. Nobody can drink just any coffee anymore and be taken seriously. (Except for those who proudly and intentionally do so. The key is doing it with intention. But you can’t just saunter up to Starbucks or Dunkin’ Donuts and get a coffee and actually think it’s good.) And so five times in a row, Stewart stalks past the Starbucks at the corner of Second Street and Folsom. He’s looking for an independent cafe that is supposed to be… right around here… somewhere…

The Most Fascinating Profile You’ll Ever Read About a Guy and His Boring Startup | Business | WIRED

30 July 2014 / permalink
in the majority of Latin languages, ø sorts as an accented variant of o, meaning that most users would expect ø alongside o. However, a few languages, such as Norwegian and Danish, sort ø as a unique element after z. Sorting “Søren” after “Sylt” in a long list, as would be expected in Norwegian or Danish, will cause problems if the user expects ø as a variant of o.

Alphabetical order explained in a mere 27,817 words. previously

25 July 2014 / permalink
What we have now is an enemy of the state that’s just there, passively feeding off everything, working off the fact that all these data plumes are given off - exhaust that’s just exhaled as a matter of course as people go by their lives.

Dan Hon. You can’t go full-on data plume silent-running without opting out of 21st century social life, but give off too much and you’re feeding parasites. I wonder if there’s a compromise between the two, or if the demands of the former mean the latter isn’t escapable..

19 July 2014 / permalink
The developer raises up the great sword of technology and brings it down upon the plinth of culture—and the sword shatters. But never mind; we can go back to the forge to make a bigger, better sword for retina displays. And as we craft it we whisper that eternal prayer for the comfort of list-makers: This time will be different.

Doomed to Repeat It — The Message — Medium

1 June 2014 / permalink
Requisite iOS 8 wishlist

This is just a list of the personal pain points that I have at least a tiny hope of seeing fixed. I’ll assume that Apple aren’t going to get better (or more open) at cloud services. So asking for an iMessage that works, or that will also work on Android (I avoid things that lock me into a single platform nowadays) is a non-starter. Likewise, there are things I’d like that are never going to happen (choosing the default camera app, choosing the default web browser, relaxed app review). From most-likely (?) to least-likely:

  • I’d like to see which apps are using all my battery. Mavericks grew this last year. There’s a “that’s too much information” argument, but the phone will already tell break down cell data usage by app - to me, knowing what’s using battery seems more useful than that.
  • Stop home screen icons auto-arranging, so you can leave gaps between icons.
  • Make the notification settings screen not awful. Just sorting the list of apps would help. But also removing the pointless distinction between the two lists, and letting me see which apps can (eg) make noise without having to tap on every single one.
  • I want to be able to share links and images to WhatsApp (this is an end-run around iMessage). I want “links” and “images” to be treated as special objects, and let third party apps register to handle them. (On Android this has led to abuse but this is mostly because of the naïve implementation there.) Sharing links to Pocket from any app without needing special integration, sharing images to Instagram direct from the camera app, whatever. This doesn’t even need full-on XPC, just launching the other app and sending a file will do it. 90% of the infrastructure is already there.
  • As a developer, I’d like to see code signing requirements relaxed a little. I’d like to see closed beta testing for apps that doesn’t require collecting UUIDs and managing devices and having to turn people away because you might hit your 100 device limit*. I spend days fighting this rubbish. And it stops no piracy because people who want to do that are just jailbreaking their devices.
  • I’d like to know if I just pressed “snooze” or “stop” on the alarm, so I know if it will go off again 5 minutes after I get in the shower.

* The 100 device limit is clearly not taken seriously in Apple because you’re supposed to get an enterprise cert. The $100/year developer level is for toy developers. If you’re doing anything serious at all, you’re doing beta testing with an enterprise certificate. That’s why Apple don’t care about solving that problem - no-one they care about has that problem.

28 May 2014 / permalink
At the end of 1386, Jogaila returned to Vilnius to [..] convert the Grand Duchy to Catholicism. [..] New converts were baptized en masse, with little teaching, and were awarded wool shirts.

— "People will do anything for a free t-shirt", historical perspective edition. From "Union of Krewo" on Wikipedia.

23 May 2014 / permalink

Going on my list of “best pictures ever”. (via Pyramid Energy)

21 May 2014 / permalink
The consequence of Apple’s approach is that pretty much everything behaves in predictable ways, but you have a very narrow range of devices at a narrow range of prices (and screen sizes), and that severely restricts the addressable market. More people can afford $50 phones than can afford $600 phones. The consequence of the Android approach is that you have a much wide range of devices and prices, and a much larger market, but anything on the bleeding edge doesn’t work predictably at all.

Android fragmentation and the cloud — Benedict Evans

This is presented from a seller’s perspective (“addressable market”), but the other perspective here is that “Android is fragmented” as a complaint looks interestingly close to “poor people should not be allowed smartphones”.

12 May 2014 / permalink

If none of what you’re going through is your fault, you’re powerless. But if everything is your fault, you’ll never be powerful enough and it’s hopeless.

(via Schlock Mercenary - Archives - Monday May 12, 2014)

8 May 2014 / permalink
At every step in the development of the public internet the NSA systematically lobbied for weaker security, to enhance their own information-gathering capabilities. The trouble is, the success of the internet protocols created a networking monoculture that the NSA themselves came to rely on for their internal infrastructure.

The Snowden leaks; a meta-narrative - Charlie’s Diary

26 March 2014 / permalink
Before yesterday, The Oculus Rift was technofetish gear. It ceased to be so in an instant. [..] I used the shitty, old Rift, and I thought I was underwater. Think of every corner they had to cut because they were trying to make this thing in the finite realm of men. Now imagine the corners restored, and the corner cutting machine in ruins.

Penny Arcade - The Nexesse

20 March 2014 / permalink
“Spite-driven development,” declares Nicholas, the other two nodding immediately. I ask them to explain, and Daniel gives me an example. Let’s say he wants rabbits in the game – as the programmer it’s not really within his powers to make this happen. So, he says, he’ll use his poor artistic skills to draw something like a rabbit on the office whiteboard, take a photo, put it on his computer and crop it out, and put that square flat drawing into the game. On seeing this, says David with a look on his face that entirely confirms this isn’t hypothetical, he’ll be so horrified that he’ll be forced to draw a proper one to replace it.

It’s Time To Get Excited About Clockwork Empires | Rock, Paper, Shotgun. I HAVE NEVER DONE THIS MYSELF. EVER. PROMISE.

19 March 2014 / permalink
Different locales also return different versions of the same symbol. The US locale (en_US) returns a full-width ¥ symbol, where as the Japan locale (ja_JP) returns a regular ¥ symbol. Similarly, the French locale (fr_FR) will return a non-breaking space between the digits and the symbol, where as the French Canadian locale (fr_CA) which formats numbers the same way (“15,00 $NZ”, like above) uses a regular space.

Android Currency Localisation Hell - Adam Speakman

18 March 2014 / permalink
If you use an app that creates files in a proprietary format, as soon as a new version comes out you should update all of your documents to the new format. It’s not fun to do this, but there will probably never be an easier time. And it may be a lossy process, so you should also keep the versions in the older format.

Michael Tsai - Blog - This Presentation Can’t Be Opened Because It’s Too Old

16 March 2014 / permalink
Broken Unicode Assumptions

This is an utterly brilliant list of broken assumptions under Unicode from rjh. Perl-biased, but syntax aside, the majority of these are just generally true. A trimmed list of my personal favorites (but you should read the whole list):

  • Code that assumes it can open a text file without specifying the encoding is broken.
  • Code that assumes [any language] uses UTF‑8 internally is wrong.
  • Code that assumes [..] code points are limited to 0x10_FFFF is wrong.
  • Code that assumes roundtrip equality on casefolding [..] is completely broken and wrong. Consider that the uc(“σ”) and uc(“ς”) are both “Σ”, but lc(“Σ”) cannot possibly return both of those.
  • Code that assumes every lowercase code point has a distinct uppercase one, or vice versa, is broken. For example, “ª” is a lowercase letter with no uppercase; whereas both “ᵃ” and “ᴬ” are letters, but they are not lowercase letters; however, they are both lowercase code points without corresponding uppercase versions. Got that? They are not \p{Lowercase_Letter}, despite being both \p{Letter} and \p{Lowercase}.
  • Code that assumes changing the case doesn’t change the length of the string is broken.
  • Code that assumes only letters have case is broken. Beyond just letters, it turns out that numbers, symbols, and even marks have case. In fact, changing the case can even make something change its main general category, like a \p{Mark} turning into a \p{Letter}. It can also make it switch from one script to another.
  • Code that assumes you can remove diacritics to get at base ASCII letters is evil, still, broken, brain-damaged, wrong, and justification for capital punishment.
  • Code that assumes characters like > always points to the right and < always points to the left are wrong — because they in fact do not.
  • Code that assumes if you first output character X and then character Y, that those will show up as XY is wrong. Sometimes they don’t.
  • Code that assumes that ü has an umlaut is wrong.
  • Code that believes things like ₨ contain any letters in them is wrong.
  • Code that believes that given $FIRST_LETTER as the first letter in some alphabet and $LAST_LETTER as the last letter in that same alphabet, that [${FIRST_LETTER}-${LAST_LETTER}] has any meaning whatsoever is almost always complete broken and wrong and meaningless.
  • Code that believes someone’s name can only contain certain characters is stupid, offensive, and wrong.
  • Code that converts unknown characters to ? is broken, stupid, braindead, and runs contrary to the standard recommendation, which says NOT TO DO THAT! RTFM for why not.
  • Code that believes once you successfully create a file by a given name, that when you run ls or readdir on its enclosing directory, you’ll actually find that file with the name you created it under is buggy, broken, and wrong. Stop being surprised by this!
  • Code that believes UTF-16 is a fixed-width encoding is stupid, broken, and wrong. Revoke their programming licence.
  • Code that believes that stuff like /s/i can only match “S” or “s” is broken and wrong. You’d be surprised.