Tuesday, July 7, 2009

High Fidelity Game Part II

Most awesomely nasty and vicious break up songs ever.

I think that sits well enough on the specific/general spectrum to do a good top 5. Same rules as last post. Here goes nothing.

5. Song for the Dumped - Ben Folds Five. Funnily enough for a list in which stingingly smart insults are the norm, Ben Folds, lyrically clever nerd musician extraordinaire, hits a home run with words that possess no subtly or finesse whatsoever. "Give me my money back you bitch. And don't forget to give me back my black t-shirt." The intelligence was saved for the premise, and the punch is much in the piano as in what he's saying.

4. From a one nerd with glasses, a piano and plenty of rock, to another - indeed to the greatest of the all. Elvis Costello is of course the man to whom I refer (technically he plays more guitar himself - so sue me.) Here I've more picked an artist before having a specific song in mind, because Elvis has been doing bitter and brilliant better than nearly anyone for about 30 years. The winning song is Alison, but that may be because I'm too dumb to realise other songs I like more are also aimed at former partners. I mean we are talking Elvis Costello here. Still I'm very happy with this choice - the song is both understated and menacing at the same time.

3. In a repeat of 4, I insist Bob Dylan has to have a candidate on the list. The best choice is surely Like a Rolling Stone, which is one of the angriest and best rock songs of all time, as voted by music critics employed by Rolling Stone - who always seem to think white men perfected the genre in the late 60's / early 70's (in fairness they have a very strong case for both assertions.) The only problem is its technically only a common speculation that this is about an ex-girlfriend - Dylan could just have a serious grudge against someone he didn't sleep with; the song doesn't discuss the singer's relationship to its target. Let's stick with the it anyway though, because its just that good. A quote from a guy called Bill Wyman as read on Wikipedia says it better than I could:

"'Like a Rolling Stone' portrays an entire youth generation as a slumming sorority girl — and that's just the first verse. Then he gets nasty: The rest of the song is the rock 'n' roll equivalent of one of those scenes in The Sopranos in which a mobster systematically kicks the bejesus out of someone who's already down."

Yeah, that pretty much covers it.

2. You're So Vain, Carly Simon. I'm a sucker for a song with a punchline, especially one this good. It's not just the chorus that's great, either - "You're where you should be all the time, and when you're not your with some underworld spy, or the wife of a close friend." Ouch. Ouch ouch, even. This one had everyone asking "I wonder what poor jerk that was about." Several possible former flames of Carly get brought up. The best explanation I ever heard, on The Coulda Been Champions, maintained that different lines in the song were about different men, so that in effect this was about all of her shitty ex-boyfriends, and also about none of them. Which takes "you probably think this song is about you" to an entirely new level of absolute awesome. Way to screw with their heads, Ms. Simon.

1. Is, of course, You Oughta Know, Alanis Morriset. Absolutely in-fucking-credible. If I were her ex I would honestly have feared for my safety. "I wish nothing but the best for you both" shows Alanis sure knew how to use irony even if she didn't know what it was. Searing hatred drips from every line. Brutally intelligent and yet utterly irrational and passionate. "Are you thinking of me when you fuck her?" I bet he will now. Every time he's with a woman. For the rest of his natural life. Which she clearly hoped would be short - "But you're still alive!" ("and I wish that this was not the case, in case you didn't get that bit.") What a song. Lyrically, musically, and the incredible rawness of her delivery. It makes me flinch whenever I play it. Which is often.

Please don't hurt me, Alanis. I promise not to even try to go out with you let alone break up with you. I won't even ever come to Canada. Really.

The best songs about various drugs

Time to play the High Fidelty game. Except its almost impossible to do the top 5 songs about anything general like Death, or Love, or any crap like that. It pays to be specific. So, these are my favourite songs not about even drugs in general but specifically about certain drugs. Done without aid of my iTunes library or reference to the internet so I reserve the right to smack my head and say "Well obviously I should have included X" at a later date.

1. Heroin - Very challenging category; struggles with heroin have inspired many great songs. I'm giving to Perfect Day by Lou Reed. Edges out Golden Brown by The Stranglers. Honorable mention for an Australian award - To Her Door by Paul Kelly.

2. Ice - Semi Charmed Life, by Third Eye Blind. No contest, one because I don't know of any other songs about Ice, and two because even if I did I guarantee this would still be my favourite. I hate that such a good song somewhat glamorises such an awful substance but thats rock music for you.

3. Cocaine - Mr Tambourine Man by Bob Dylan. I never would have picked this song to even be about drugs - the lyrics are trippy but far from specific. But according to some no doubt well researched writing I once read on the Net, Tambourine Man was slang for Cocaine dealer back when Bob was writing this. So there you go. One of my absolute favourite songs of all time, and again about a drug that seems to have especially horrible effects on people.

4. LSD - too damn obvious to mention.

5. Alcohol - there are too many songs about booze to come up with a good candidate here. I'm just going to go with Take Me Home by Concrete Blonde, and accept its probably the "wrong choice", which doesn't matter because it kicks serious butt.

6. Caffine - can't think of anything. Wow. Maybe because its such a day-to-day part of life songwriters are less motivated to write songs about it (as opposed to mentioning coffee in passing in a song)

7. Nicotine - See 6.

8. Should prescription psychiatric drugs form a single category? Lithium by Nirvana. I have never been able to ascertain if Kurt Cobain ever took it, or was even told he maybe should take it, which seems odd; but surely that's the only explanation, given all the speculation about his possible mental illness, the fact that Lithium was and still is the gold standard treatment for Bipolar Disorder, and the title and lyrics of the song?

9. Pot - Drawing a blank. Which is frustrating, because there has to be a good song about it that I know and like, I just can't think of it.

10. Ecstacy - another blank. Too many gaps on this list. The temptation to cheat is overwhelming.

Novocaine for the Soul is of course a great song, but its not about Novocaine, so it doesn't count. Special K by Placebo is a little bit about Special K and is a good song, so would probably win that category if I'd bothered to list it, but I choose not to. I could of course do other drugs but 10 seems like a nice round number.

Why am I always blogging about drugs when I'm not really a fan or a user? I guess I find it a fascinating topic for a wide range of reasons.

Monday, April 27, 2009

Tweet, tweet

Twitter is indeed seriously dumb, because for example nothing stops me writing a short blog post like this if long comunication is not warranted. As it happens, though, Randall Munroe may well be (somewhat) wrong about Swine Flue.

Saturday, March 21, 2009

Don't buy Australian

Having discovered that I apparently used to have slightly greater than zero readers, I'm resurrecting this blog.

I have several themes in mind for some upcoming posts, but I've picked today's mainly because I think I can be pretty succinct about it. Well, more so than usual.

Don't buy Australian made goods - or rather, buy them, of course, if they're good value, but never buy something purely because its got an Australian made logo. Don't support "Buy Australian" campaigns in any form. And certainly don't give your political support to advocates of tarriffs and other forms of industrial protectionism, including subsidies - and note that government funded advertising promoting a local industry is a form of subsidy. (Why should the taxpayer foot the bill for this? Businesses should pay their own marketing costs.)

It's immoral.

Yes, I'm serious. Australia is a rich country. Our corporations are rich, and the vast majoirty of our workers are by and large rich, by any reasonable standard. We have cars, plasma screen TVs, iPhones, second cars, plentiful water, electricity, excellent health and education services, abundant food, nice clothes, etc, etc. We have more wealth than most humans who have lived or are living could dream of.

This is far from a bad thing, in and of itself. But there is certainly no moral imperative for you to give your money to Australian businesses. On the contrary - most of the world's countries need your dollars far more than Australia does.

Are Australians inherently more deserving of work than Malaysians? Or Germans? Or Ethiopians? That is the implication of the kind of rhetoric you see increasingly in letters to today's papers, about how by reducing tarrifs, we have "exported jobs overseas." Why should you pay more for something simply so that a likely well-off stranger in Kalgoorlie or Townsville or Melbourne, with plenty of employment opportunities, can have a job at the expense of a poorer foreigner?

Many people in third world countries die in tremendous povery, and this is partly because Western countries force them to liberalise their economies and open the markets to our goods, and allow our corporations to buy interests in their countries; but in turn, governments in America and Europe pander to lobby groups and keep up tarriff barriers against the agricultural goods that these countries tend to produce (this is not so true of Australia - our farmers are much more competitive, largely because we don't have the clout to act as such reprehensible economic bullies.) This is an immense injustice. People in Africa starve to death to preserve the "right" of French farmers not to use modern farm machinery, and charge French consumers twice as much for their bread as they should be paying.

Furthermore, fair, peaceful trade promotes peace. This is not a bullshit economists' argument (although there are plenty of those going around.) It is well grounded in strong, consistent emprical evidence. That side of the argument is made well here.

If Australian goods aren't worth buying in and of themselves, then they're not worth buying. If our industries can't keep up with global competition, they need to become more efficient. If they can't, they should fold. Government money spent propping up ailing local factories is far better spent retraining the workers involved and finding them new jobs.

This is not to say we shouldn't multilaterally try to get foreign countries to adopt labour standards so their workers have more humane working conditions closer to ours.

This is not to say we shouldn't boycott specific products that we know to entail human misery - goods made by sweatshop labour, or slave labour, or by corporations that wilfully despoil the environment, or corruptly influence foreign governments.

But these kind of ethical standards apply to both domestic and foreign goods, and provide no solid reason to favour Australian products as a general rule.

OK, so less succinct than intended. But the hypocrisy of the majority of people who advocate economic nationalism, and the thoughtlessness of many people who accept it as obvious and decent when it is in fact an outrage, gets me a little worked up :-)

Monday, July 28, 2008

Now, for something completely different

I know all y'all have been promised God, and are doubtless eagerly awaiting His (or Her) arrival; but I'm afraid that like so many others you're just going to have to have a little faith and a little patience. I'll get to God eventually, when I feel up to it. Really, I need slightly more of that good ol' manic fire to write convincingly or interestingly on theology.

So what am I writing about today? A topic that's likely of interest to precisely none of the known NERs.... 

*** 
We interrupt this blogpost for an important announcement. 

Our fearless blogventurer, With Respect to X, has detected (for the second time) a rather strange bug in the Text Editing Field on Blogger in Safari under Mac OS X Tiger running on the PowerBook G4 belonging to his Dad. Which of these is the culprit? You decide! (hint: change one of the above variables to "gmail" and there is no sign of the aberrant behaviour....)

This dastardly bug disables WR2X's critical powers, Cutting, Copying and Pasting. Without these, he can do practically no Editing at all, and is reduced to mere Writing. The result is, well, the kind of drivel you see here.  

In the interest of putting at least some constraints on silliness, WR2X has bravely and selflessly decided to join battle directly with the bug in the hope of vanquishing its sinister presence once and for all. Also, I kind of have some other stuff to do. 

Will WR2X prevail? Or will the bug prove too much for even his keen blogpowers to overcome?

Stay tuned for the next installment of Because I Don't Spend Enough Time On The Internet, when all this and more shall be revealed!!

Wednesday, July 23, 2008

Annoyances with Blogger and Python

In case any of you are actually reading this blog and are eagerly awaiting an installment in the promised Drugs/God/etc series, I posted it ages ago. But because I'd drafted a sentence in it before I wrote my last post, Blogger decided to put the new post underneath the less-recently-published-but-more-recently-started one. I can see how this could be potentially maybe useful, but man its annoying when you're not expecting it and there's apparently no way to undo it.

Also, on a very different tack, I've become utterly convinced that at least one criticism leveled at my favourite overall programming language, Python, is utterly true and fair. After quite a while away from writing Python code, I started last night on a whim to knock up some code for a prototype of an idea I once had. It's going swimmingly; the Python Image Library, which I'd never used before, seems quick, intuitive, and with the all the features I need for this project. As for Python itself, well, my heart still belongs to whitespace delimitation. All the basics of Python coding are there in my mind like I never stopped using them, or like I've been programming in this language for 10 years.

Except when it comes to Classes. I added some classes to code that had previously just been functions, and you know what I did - or rather, forgot to do? Put in the 'self'. In front of some of the variable accesses, but more noticably, at the start of every single method argument list. This cannot be any longer blamed as a hangover from Java - I've written a ton more code, more recently in Python than in Java or any other OO language. What's more, every time I go back to Python after a break of more than about a week or so, I start making this 'mistake' again. The reason - that old Python favourite, "Explicit is better than implicit."

I'm sorry, but EXPLICIT IS NOT NECESSARILY BETTER THAN IMPLICIT. Assembler is explicit FFS. Intuitive, clever, dependable, expected, well-designed implicit behaviour is one of the chief reasons why I use a high level language. Implicitly garbage collect old objects for me? Yes, please!

I was once bitten by a Python wart I felt was bad enough to raise and spend considerable time advocating change for on comp.lang.python (never got around to doing a PEP; partly laziness, partly young and inexperienced enough to be intimidated at the thought. Still am, perhaps.)

The following doesn't work as any sane, reasonable person would expect:

# Blog code, not tested
class A():
def __eq__(obj):
return True
a = A()
b = []
assert a == b
assert not (a != b)

The second assertion fails. Why? Because coding __eq__, the most obvious way to make a class have equality based comparisons, buys you nothing from the != operator. != isn't (by default) a synonym for the negation of == (unlike in, say, every other language ever); not only will Python let you make them mean different things, it actively encourages you to do so.

There were a disturbingly high number of people defending this (including one quite renowned Pythonista, think it might have been Effbot). Some had the temerity to fall back on "Explicit is better than implict: if you want != to work, you should damn well code __ne__!"

Why, for heaven's sake, should I have to, when in 99.99% of use cases (and of those 0.01% instances quoted in the argument at the time only one struck me as remotely compelling) every programmer is going to want __ne__ to be the logical negation of __eq__? Why, dear Python, are you making me write evil Java-style language power reducing boilerplate to do the thing you should be doing yourself anyway? What's more every programmer is going to unconciously expect it to work this way, and be as utterly as mystified as me when it fails to do so? Don't tell me to RTFM and don't tell me to be explicit. I'll repeat myself - if I wanted to be explicit, I'd be using C and managing my own memory thank you very much. Better yet, I'd explicitly and graphically swear - swear in frustration at this entrenched design philosophy madness that afflicts my favourite language.

I think the real problem with the explicit is better than implicit, though, is that while you can see the underlying truth its trying to get at (which is perhaps better expressed by Ruby's more equivocal less dependable but more useful Principle of Least Surprise), in its stated form its actually kind of meanginless except as a wart - no, we'll call it for what it is, a language design bug - defence.

You see, the problem is, there's no such thing of explict in programming. Its not a question of not doing things implicitly; its a question of doing the most sensible thing implicitly. For example this python code:

some_obj.some_meth(some_arg1, some_arg2)

is implicitly equivalent to

SomeClass.some_meth(some_obj, some_arg1, some_arg2)

which in turn gives us self as a reference to some_obj, and Python's OO model merrily pretends its the same as Java's when in fact is a smarter version that just superficially looks the same.

The problem is that the explicit requirement to have self at the start of every method is something that should be shipped off to the implicit category. You should have to be explicit, yes - explicit when you want the other behaviour, of self not being an argument, because thats the more unusual, less likely case.

Likewise,

a != b

is implicitly equivalent to something like calling this function (may not be correct, its a while since I was heavily involved in this issue):

def equal(a, b):
if hasattr(a, "__ne__"): return a.__ne__(b)
if hasattr(b, "__ne__"): return b.__ne__(a)
if hasattr(a, "__cmp__"): return not (a.__cmp__(b) == 0)
if hasattr(b, "__cmp__"): return not (b.__cmp__(a) == 0)
return not (a is b)

There's absolutely nothing explicit about this. I wasn't arguing for making behaviour implicit; I was arguing for changing the stupid implict behaviour to something more sensible and less surprising.

The sad thing is there are plenty of smart Python programmers who will justify all kinds of idiocy in the name of their holy crusade against the implict.

If there was one change I could make to Python, it would be to get that damn line out of the Zen.

Monday, July 21, 2008

Choose your own blogventure

Hello once again my faithful NERs (non-existent readers - yes, I've resorted to acronyms and yes, I intend to make a stupid ongoing in-reference out of this one.) 

I'm going to write another long ranting blog post. However I'm torn between two equally interesting, complex, controversial, and difficult areas that have crossed my mind recently. So I'm throwing it out there for you, the NER, to decide. Which may be difficult, given that (according to my established premise) you don't actually exist.

So,  what topic would you like me to blog about next?

A) Drugs
B) God
C) Something else

To vote, make a comment on this post which expresses your preference. When I decide to sit down and type my next post, it shall be on whichever topic happens to have the most votes at that point in time. I will arbitrarily decide how to proceed should option C receive the most votes (e.g. I may write about a topic(s) you suggest, or about some other random topic.)

Go on then, vote! Democracy in action, people.