The anachronism that is North Korea

Am I wrong in thinking that the most interesting thing about North Korea is that it is a living anachronism that illustrates how most countries around the world were governed in the pre-enlightenment world? Ostensibly North Korea is a Communist country ruled by a dictator, but now leadership has passed to third generation, I think it’s pretty clear that North Korea is for all intents and purposes a monarchy. As economic systems go, North Korea is home to an expansive state that keeps most of its people in a equivalent to serfdom. Any wealth generated by the country is used to maintain an army, build monuments to the ruling class, or fund the lifestyle of the “royal” family. Prior to the enlightenment, that’s how pretty much every country operated. As frustrated as I am with our government, even our somewhat shabby democracy is better in just about every way to what preceded it, monuments like Versailles, the Taj Mahal, and the Egyptian pyramids notwithstanding. ...

December 20, 2011

An opportunity to exercise empathy

My previous post was about Ta-Nehisi Coates’ call for muscular empathy. This video of North Koreans crying over the death of Kim Jong-Il provides an opportunity to exercise that empathy: The New York Times catalogs the evils of his regime.

December 19, 2011

Giving advice as a form of self-aggrandizement

A couple of years ago I wrote a post advising people not to give advice. Let’s move on past the hypocrisy inherent in that sentence so that I reiterate my point. Giving advice is often a form of self-aggrandizement. This week, Gene Marks, a technology writer, wrote a bit long chunk of advice entitled If I Were A Poor Black Kid. It turns out to be the sort of reductio ad absurdum argument against getting into the advice business. You can easily skip reading the article and just imagine what it says instead, and you’ll probably be right. What you should read is Ta-Nehisi Coates’ response to it. ...

December 14, 2011

Why Twitter ought to keep supporting third-party clients

John Gruber has posted a lengthy review of the new Twitter client for iOS that was released yesterday. Just as the new Gmail disappointed a lot of longtime Gmail users, the new Twitter client has disappointed a lot of longtime Twitter users. How big are the changes? Here’s how Gruber describes them: This is more than an update. It’s a serious rethinking of the entire concept of Twitter. I’m sure the goal of the new redesign is to make Twitter more engaging to new users and to people who’ve signed up for Twitter in the past but have never really gotten into the flow of things. Rather than working to make things better for the people who are already addicted to Twitter, they’re experimenting with new ways to create more addicts. My gut feeling is that the experiment will be a failure this time around, mainly because the interface is rather muddled in the ways that John describes, but I would expect Twitter to continue to experiment in this direction over time. ...

December 9, 2011

Why you might not want to do business with PayPal

Teresa Nielsen Hayden runs down the debacle of PayPal shutting down Regretsy’s toys-for-kids drive on utterly ludicrous grounds. PayPal works fairly well for most people most of the time, but every once in awhile we get these kinds of reminders of how much power PayPal has over your money if you choose to use them to process payments. There is a very troubling lack of accountability here.

December 7, 2011

Bruce Schneier on Carrier IQ

Security expert Bruce Schneier has a nice, short post on Carrier IQ. Here’s his bottom line: Several things matter here: 1) what data the CarrerIQ app collects on the handset, 2) what data the CarrerIQ app routinely transmits to the carriers, and 3) what data can the CarrierIQ app transmit to the carrier if asked. I think another thing that matters is how much of the data Carrier IQ collects is already being collected through other means. Carriers already have access to any unencrypted data that is transmitted over their network. ...

December 5, 2011

The argument for strict coding standards

cbloom rants on the value of strict coding standards: Strict coding standards are actually an intellectual relief because they remove all those decisions and give you a specific way to do the syntax. (The same of course goes for reading other people’s code - your eyes can immediately start looking at the functionality, not try to figure out the current syntax) Don’t forget that adherence to coding standards also produces higher quality diffs. ...

December 4, 2011

Using HMAC to authenticate Web service requests

One weakness of many Web services that require authentication, including the ones I’ve built in the past, is that the username and password of the user making the request are simply included as request parameters. Alternatively, some use basic authentication, which transmits the username and password in an HTTP header encoded using Base64. Basic authentication obscures the password, but doesn’t encrypt it. This week I learned that there’s a better way – using a Hash-based Message Authentication Code (or HMAC) to sign service requests with a private key. An HMAC is the product of a hash function applied to the body of a message along with a secret key. So rather than sending the username and password with a Web service request, you send some identifier for the private key and an HMAC. When the server receives the request, it looks up the user’s private key and uses it to create an HMAC for the incoming request. If the HMAC submitted with the request matches the one calculated by the server, then the request is authenticated. ...

December 2, 2011

I regret that I didn't use Google Code Search more

Miguel de Icaza writes about the bad news that Google is shutting down Code Search. In it, he lists a number of things Code Search was useful for that never really occurred to me. I hate missing out. I particularly regret not taking advantage of it when I was wrestling with connection and socket timeouts with Commons HttpClient awhile back.

November 30, 2011

The purposes of punishment

On the Advanced NFL Stats blog, Brian Burke has written an interesting post about the philosophy of punishment. First, he lists the reasons why you punish people: … punishment has at least five possible purposes: incapacitation, restitution, rehabilitation, deterrent, and prevention of retribution. He then goes on to elaborate on each of those. I particularly liked his explanation of the last purpose: Another purpose of punishment, one that I think we’ve lost touch with in modern society, is to prevent a cycle of vigilante retribution. The ancient verse eye for an eye, tooth for a tooth is widely understood as recommending retaliation. In tribal societies absent of a central authority, it was common for cycles of retribution to spiral out of control. If one party knocks out another’s tooth, pretty soon the victim’s cousins would be exacting revenge on the offender’s family. I understand the verse to mean hey dummy, don’t take an eye in exchange for a tooth. Knock out the other guy’s tooth and let that be the end of it. Otherwise we’ve got the Hatsfields and McCoys, Montagues and Capulets, or Bosnians and Serbs. ...

November 28, 2011