The jury is still out on serial ebooks, but John Scalzi is giving it a good try right now. And Baen have been selling ebooks on a not-dissimilar basis for the past decade – you can buy up to the first half of an ebook three or more months before the publication date. Meanwhile, I’d like to note that this is how most novels were sold in the early 19th century. The current paradigm of the monolithic finished text being delivered in one installment is the new interloper business model, if anything.
Ok, so RSS feeds turn out to be even more amazingly broken than I’d assumed that they were. I’d like to pull out some favourites, but they’re all amazing and you should read the whole list.
Brent does point out another horrible failure case, which is hotel / airport / etc gateways that hijack your HTTP requests and redirect you somewhere else. This is so annoying. Not that I have an alternative. Does lead to some nasty app failure cases, though.
When a feed reader gets a permanent redirect, it’s supposed to take that to mean: “Hey, the feed moved. It’s over here now. Save the new URL and use the new one from now on.”
And if you don’t do that in your reader, and your feed reader is popular enough, smart people who quite rightly care about proper behavior will call you out. You have to do that.
Google Reader never used to do that. It would drive me crazy, because I move my feed around a lot. (I’m crazy). I guess this is why.
Most days, I’m mildly astonished that the internet actually works.
Suppose you have a naïve datetime object (one without associated timezone information) that you know is in, say, Austin localtime, and you want the equivalent in another timezone, say, UTC.
print my_dt
import pytz
austin = pytz.timezone("America/Chicago")
utc_dt = austin.localize(my_dt).astimezone(pytz.utc).replace(tzinfo=None)
print utc_dt
localize
is important. my_dt.replace(tzinfo=austin)
is not correct during summer time, for instance.
The sequester, after all, doesn’t punish politicians; it punishes the voters. Voters will be unable to do anything in response for another two years, and when they do, their reactions will depend on who they blame, which means politicians will spend their time making accusations. What we need here is a negative incentive that punishes politicians directly.
When I start drinking it’s the commit messages that get weird first.
iTunes in the Cloud means you can only re-download something that Apple is, at the moment you wish to re-download, licensed to sell.
How to make Ruby JSON parser ignore json_class? // that looks like a hack, but it really is the documented API.
The default JSON parser can be used to inject malicious objects into the params hash of a Rails application. This allows for tampering with ActiveRecord::Base functionality like dynamic finders and attribute assignment, eventually leading to mass assignment of blacklisted attributes or even SQL injection.