We all know the USA badly needs some sane data protection legislation, and this is a good illustration of why:
Yesterday, in the Viacom v. Google litigation, the federal court for the Southern District of New York ordered Google to produce to Viacom (over Google’s objections):
all data from the Logging database concerning each time a YouTube video has been viewed on the YouTube website or through embedding on a third-party website
The court’s order grants Viacom’s request and erroneously ignores the protections of the federal Video Privacy Protection Act (VPPA), and threatens to expose deeply private information about what videos are watched by YouTube users. The VPPA passed after a newspaper disclosed Supreme Court nominee Robert Bork’s video rental records. As Congress recognized, your selection of videos to watch is deeply personal and deserves the strongest protection.
(Fortunately this ruling appears to be illegal, but you can easily imagine that less-rich companies couldn’t afford to appeal.) Time to log out of YouTube and start using Tor.
I have always been of the mind that when you visit a foreign country you’re the one that should make the effort to communicate with the locals. Speaking your birth tongue slower and louder doesn’t make yourself any more understandable, it just makes you look like a jackass. The onus to learn the local language is even heavier if you’re an immigrant. After all, you’re the one asking for the privilege of becoming a part of someone else’s community. That means you can bloody well learn the language; you don’t even have to succeed, you just have to show that you’re willing to try.
— Illiad (author of the webcomic UserFriendly). The subtitle is “Not multiculturalism, but covert colonialism”, the idea being that (for example) a Chinatown in Vancouver where nobody speaks English is a colony, in the worst sense of the word. Perhaps not everyone is interested in learning a language for its own sake like I would be (the only reason I don’t learn more languages is lack of time), but when the language is entrenched, not making the effort to learn it is simply rude.
Arthur C. Clarke died yesterday (OK, the day before yesterday) at the grand old age of 90.
One of the last of the Golden Age writers, one of the best and most foresighted, and probably the most optimistic. He will be missed.
I’ve been pointed to a post by Joel Spolsky advocating Hungarian notation so that code that fails to properly sanitise strings “looks wrong”.
Here’s Joel’s example. The idea is that you prefix the names of all string variables and functions returning strings with either “s” or “us” depending on whether they’re safe or unsafe respectively. Then assignments that have “s” on one side and “us” on the other just look wrong.
us = UsRequest("name") // ok, both sides start with US
s = UsRequest("name") // bug
usName = us // ok
sName = us // certainly wrong.
sName = SEncode(us) // certainly correct.
Well I can think of one pitfall already. How do you mark whether a function expects safe or unsafe data in a way that makes wrong code look wrong?
us = UsRequest("name") // okay
RandomMangler(s) // okay
RandomMangler(us) // errm... wrong?
If you’re using a language that supports it, there is a far better way. Read the rest of this entry »
If you thought it was hard to remember the gender of French nouns, take heart: apparently French people don’t always get it “right” either.
Depending on your perspective, this says something about either the silliness of French grammar or the factual authority of dictionaries. (Personally I think written French is silly for still inflecting adjectives for number when the spoken language did away with that centuries ago, but calling gender silly would be going too far.)
Vagueness is standardly defined as the possession of borderline cases. For example, ‘tall’ is vague because a man who is 1.8 meters in height is neither clearly tall nor clearly non-tall. No amount of conceptual analysis or empirical investigation can settle whether a 1.8 meter man is tall. Borderline cases are inquiry resistant. Indeed, the inquiry resistance typically recurses. For in addition to the unclarity of the borderline case, there is normally unclarity as to where the unclarity begins. In other words ‘borderline case’ has borderline cases. This higher order vagueness shows that ‘vague’ is vague.
— Roy Sorensen, Stanford Encyclopedia of Philosophy, “Vagueness” (from Language Log).
At freshers’ fayre (yeah, a long time ago now) I was handed a slip from Mensa. I intended to follow it up later but being busy I never got round to it. Today I rediscovered it on my desk, and of course it had a couple of puzzles on it. One is a pretty simple number sequence. The other has you find an anagram:
Rearrange the letters of ‘ANY TIME‘ to give a seven letter word. What is it?
Obviously “anytime” is excluded (well, we’re not Americans ;). I tried to find one manually for a while, but then realised I could just solve it with a couple of commands:
[pwb@rhuidean ~]$ ghci -e 'Monad.mapM_ putStrLn (let s = "anytime" in filter (\s2 -> all (`elem` s2) s) $ Control.Monad.replicateM 7 s)' > words
[pwb@rhuidean ~]$ grep -f words /usr/share/dict/words
This was taking a long time. But then I realised you can cut out a big chunk of the search space by filtering out all the non-anagrams, which you can do easily with grep.
[pwb@rhuidean ~]$ grep '^[anytime]{7}$' /usr/share/dict/words | grep -f words
amenity
anytime
I wonder how this reflects on my intelligence… :)
“The fact that there has not been a serious incident involving liquid explosives indicates, I would have thought, that the measures that we have put in place so far have been very effective.”
Ah, that’s how. On which basis the measures against asteroid strike, alien invasion and unexplained nationwide floods of deadly boiling custard have also been remarkably effective.
— From The Register. (Yes, it’s old, but I’ve been behind on Bruce Schneier’s blog.)
From the outside, the type systems of languages like Haskell and ML tend to look like a sort of archaic ecstatic religious rite. The bleeding mendicants pause as they shuffle past, sing a verse in praise of the purifying pain of strong typing, then prod themselves with pointy sticks and progress along their lonely road.
Bryan O’Sullivan, commenting on his own quotation of Yaron Minsky. I’ve heard people complain about Haskell’s type system as being too strict, but once you figure out how to get things to type check, you can actually use it like a miniature theorem prover. Which is, essentially, what it is.
Oh yeah, and it’s my birthday today.