Dexter

It all started with my brother. He told me long ago that I had to watch the show, how good it was and so on. Completely forgot about it (sorry, bro!). But, last Christmas he bought me the first season on DVD.

So we started watching it. The first episodes were kind of “meh”. You know? Like most shows I guess. Even good ones. Or maybe especially good ones. It’s probably not all that common that something genuinely good can get you hooked with the first episode. Something good has to be deep, so you have to learn to like it and develop your relationship with the characters and story. But anyway.

To tell the truth, the only season that I really, truly like and I consider myself a fan of is the fourth one. The first one is quite engaging and fun to watch, but not much more than that in my opinion. The second one is actually awful (all those relationships and changes that not only don’t seem to do anything with the rest of the show, but they don’t add anything to it). The third one is good, kind of “experimental” and different. It starts exploring some ideas that will become important in the next season. But the fourth one… that’s a damn good show worth watching.

In the fourth season you really see Michael C. Hall as the great actor he is (remember that smile at the end of episode 6, “If I Had a Hammer”? So much said, in a couple of tenths of a second, with a look and a smile), and it’s where Dexter, the character, evolves and becomes more interesting. He has more challenges, he must (re)define himself, and he is forced to adapt.

Finally, one thing that the show as a whole made me wonder was why and how can a serial killer in disguise connect so well with the audience. How can it be such a popular show. When I was starting to watch it, I was reading a book called “Living, Loving and Learning”, by Leo Buscaglia. One of the things that struck me while reading it was this part:

Let me read you some of the reasons that people give for not choosing intimacy [...] “I’m afraid to let anyone know who I really am; if they really knew they’d be horrified”

I couldn’t help but seeing the connection to Dexter here. Is it that? Do people recognise themselves in him and empathise with the character?

Review of “Confessions of a Public Speaker”

I had been looking forward to this book since relatively long before it was published. Having read “The Myths of Innovation” and “Making Things Happen“, I knew that “Confessions of a Public Speaker” would be a good book. And all the reviews I had read seemed to confirm it.

“Confessions…”, as you can imagine, is a book about public speaking. It has anecdotes, tips, more general advice and some very frank opinions on the matter. It looks like a very useful book (I haven’t had any talk since I read it, so I can’t confirm yet ;-) ), and the content is concrete enough that it’s easy to learn from it and apply it to yourself. Many stories are funny or eye-opening, and there’s a good deal of food for thought. Speaking on TV feels so scary now :-P

To be honest, I didn’t like “Confessions…” as much as Scott Berkun’s two other books (which I wholeheartedly recommend if you have any interest in innovation or project management!). That doesn’t mean it’s a bad book. Maybe it’s just not as good as the other two. Or my expectations were higher. Or it was at times a bit too snarky or cynical for my taste. Or maybe that I’m less into public speaking than I am into understanding innovation or project management. After all, I don’t have that many talks or workshops, and it’s not even a core part of my job.

But as I said, the book was quite enjoyable and made me write down some of the advice so I could apply it when I can. I read it very quickly (it felt so short!) and I’ll come back to it for reference when I have to talk in public again. In short, a practical, to-the-point, fun book well worth the money and time.

Goodbye Typo, Hello Wordpress!

As I had mentioned several times, I had been frustrated with Typo. Several bugs or misfeatures that really annoyed me, upgrades that had frustrated me, and sometimes the feeling that more or less visible things were broken from time to time in new releases. And while the upgrade problems were mostly because of the need to upgrade Ruby gems, still it was something that was inevitable with Typo apparently, so sticking with Typo meant having to deal with Rubygems, which as you may know I hate.

So, after the last upgrade and the frustrations that came with it, I decided to ask around for good blogging software. The main contenders I had in mind were Wordpress and Movable Type. Most of the people who replied talked wonders about Wordpress, but I decided to try both. Wordpress’ installation was ridiculously easy (I’m talking about installing my own copy, not opening a blog in wordpress.com obviously) and I had a working blog pretty quickly. Also, at least the first impression of the UI is that it’s very slick and easy to use. It shows maturity. Movable Type was easy enough to install, although I did have some problems (mostly due to my own stupidity, but still). The first impression was that Movable Type was much “heavier” and maybe a bit too much for a single, personal blog. So I decided to go for Wordpress, which was the one that I had been recommended by most people anyway.

So, the first thing I had to do was exporting the content from Typo’s HCoder so I could import into Wordpress. I quickly found some script for Typo that would export in Wordpress’ format, for easy import. It worked very well, although I did a problem with the tags: they were treated as normal categories, so I ended up with many categories and no tags (and a huge, horrible, impossible to navigate sidebar with dozens of categories). I started to look around, and I couldn’t find a spec for the wxr format. Maybe I was naive thinking that there would be one, but hey. In any case, eventually I figured out that I had to change the:

<category>rants</category>

to

<category domain="tag">rants</category>

for the tags. The categories had to stay as they were, but luckily for me, all uppercase names were categories, and all lowercase names were tags, so I could do the trick with vim with:

:%s/<category>\([a-z]\)/<category domain="tag">\1/

After that, I could import back all the content, but then I had the next hurdle: the style of the blog. I didn’t mind if the design wasn’t exactly the same, but I was used to the old one and didn’t want to change it too much, so I used the excellent Opera Dragonfly to inspect the styles of the old blog, and I slowly copied the most interesting values (colours and font sizes mostly) to the equivalent CSS classes in the Wordpress theme. I’m happy with the result, so I think I’ll leave it as it is for now.

Last, but not least, I wanted to try to keep the old URLs working. I did two things for this:

  1. I added some URL rewrites to keep Typo’s feed URLs working. However, the Atom ones also redirect to the RSS ones, I wonder if that’ll be a problem.
  2. I changed the default permalink settings in Wordpress so they matched what I had in Typo. Hopefully almost all blog posts will actually keep the URL and the migration to Wordpress won’t be very traumatic. You tell me if I’ve broken anything ;-)

One thing that I don’t like about Wordpress’ blog editor is that apparently it doesn’t allow you to write in some Wiki-like syntax, like Markdown or Textile. I know Movable Type does have it, but several other things made me stick with Wordpress and I’m happy overall. At least for now ;-)

Vegetarianism

Lately I've been eating vegetarian at work. It's been more than one month since I started, and that also included the Christmas Party dinner (wasn't sure about it, esp. after hearing some awful stories about "vegetarian is the same dish as the other one, only removing the meat"; but finally I decided to go for it… and it turned out to be yummy!). Note that I not only not claim to be a vegetarian, I don't even claim to have it as a goal.

I guess the first question is "why?". Some people have suggested/assumed that maybe I'm spending too much time with a certain person :-P I'm sure that has somehow paved the way or helped, but actually I never thought of changing my eating habits until I saw a film called "Sharkwater". Sharkwater is a documentary about sharks that shows some of the misconceptions about them and the cruelty there is towards them (mostly shark finning). When talking about the possibility of shark extinction, it explains that it can be a huge problem with the planet's oxygen supply. The film got me thinking, and I also connected some dots with stuff I had read on the Meat-Free Mondays website. Also, watching Sylvia Earle's TED talk made me think even more about the impact of people's eating habits in the world. And I realised that I was eating meat in almost every single meal, every single day, so I decided to change it for the environment, for my health, and for the craic.

So I guess the next question is "why not go all the way and really become a vegetarian?". That's a good question. For one, I don't have that moral thing with animals. Not yet anyway. Maybe I just have to watch a couple of documentaries ;-) Another important point is that I don't live alone, and I can't really impose my view of the world or eating habits on anyone (although we're doing meat-free dinners on Monday so I can have Meat-Free Mondays, yay!). Third, I'm not even sure I'm currently able to: I mean, giving up on sushi? For life? I doubt I can do that. Now, limiting myself to eating it, say, just a couple of times a year… sure thing. And finally, as the main reasons for the change were practical (health and environment), I currently don't feel I need to completely give up on meat. I guess it's a matter of economics. Sort of.

Typo upgrade

I have upgraded to Typo 5.4.1. Partly because of security issues, partly because of new features and improvements.

It took me a while, mostly because of stupid Ruby deployment nonsense that makes me even more tired of Ruby as a language for production usage, than I already was. Oh well.

One of the most important new features for me in this release was the article preview, which doesn't seem to work. Or maybe it does, but then support for writing blog posts in Textile seems like it was dropped. Suggestions for other blogging platforms that aren't a pain to upgrade because of the language dependencies, supports writing in some wiki-like syntax (e.g. Textile or Markdown) and generally works well are very welcome.

It seems that everything is in place and working now, but if you see anything misbehaving, please give me a shout and I'll try to fix.

Feeling the pressure produces better code?

The other day I was in a conversation with some developer that was complaining about some feature. He claimed that it was too complex and that it had led to tons of bugs. In the middle of the conversation, the developer said that the feature had been so buggy that he ended up writing a lot of unit tests for it. To be honest I don’t think there were a lot of bugs after those tests were written, so that made me think:

Maybe the testers in his team are doing too good of a job?

Because, you know, if testers are finding enough of “those bugs” (the ones that should be caught and controlled by unit tests and not by testers weeks after the code was originally written), maybe some developers are just not “feeling the pressure” and can’t really get that they should be writing tests for their code. If testers are very good, things just work out fine in the end… sort of. And of course, the problem here is the trailing “sort of”.
I know I’m biased, but in my view there is a ton of bugs that should never be seen by someone that is not the developer itself. Testers should deal with more complex, interesting, user-centred bugs. Non-trivial cases. Suboptimal UIs. Implementation disagreements between developers and stakeholders. That kind of thing. It’s simply a waste of time and resources that testers have to deal with silly, easy-to-avoid bugs on a daily basis. Not to mention that teams shouldn’t have to wait for days or weeks until they find basic bugs via exploratory testing. Or that a lot of those are much, much quicker to test with unit tests than having to create the whole fixture/environment for them to be found with exploratory testing.
My current conclusion is that pushing on the UI/usability side is not only good for the user, but it’s likely to produce better code as it will be, on average, more complex and will have to be better controlled by QA (code review, less ad-hoc design, …) and automated tests. Maybe developers will start hating me for that, but hopefully users will thank me.

Review: Dingoo (A320)

When I mentioned that I wanted an “open” portable gaming console that played PSP games, Enrique mentioned the Dingoo. Not that it actually plays PSP games, but it’s indeed an “open” console, cheap and with a number of “extras”. So I wondered if playing PSP games was so important for me. Not that it wouldn’t be awesome playing God of War, Katamari Damacy, Patapon, LocoRoco or Echochrome on the train/plane, but the main point was having games, music and the possibility of watching films on a portable device. After a couple of weeks pondering, I decided “screw Sony” and ordered the Dingoo.

So, what does the Dingoo have to offer? Well, it’s a nice and small portable gaming console that apart from games, it plays music, video and radio, and has a simple picture viewer and a basic plain text reader (with features like bookmarking). On the gaming side, it has its own game format (it comes loaded with around 30 games) and emulators for quite a bunch of different machines, so you can play games from NES, Super NES, Neo Geo, Mega Drive, Game Boy Advance, and the arcade machines CPS1 and CPS2. I don’t have words to say how awesome that is. The Dingoo has an internal memory of 4Gib and supports one external MiniSD card, so you have more than enough space for a lot of games, some music and even a couple of films.

In general, I have to say that both the emulation and the video playing works very well. A handful of games can’t be played (they crash or behave funny) and other games can be played but are too slow/annoying to play (e.g. Super Mario World for Super NES), but in general there aren’t any problems. I have a couple of minor complaints though:

  • I find some of the button conventions confusing (e.g. for menu navigation). It doesn’t help that different consoles have different conventions on which buttons to use for which actions.
  • The Mega Drive emulator doesn’t seem to support the .bin format, which is slightly annoying.
  • There are a lot of video formats supported (the console comes with several sample videos), but the first video I tried to copy and watch wasn’t recognised :-( I hope that won’t happen often.

All in all, I think it’s a great console and it’s quite cheap, so I’m very happy I bought it. If you’re curious about how it looks and works, have a look at this video review:

Life in Oslo

WARNING: This is basically a rant. If you don’t agree with me, take my opinion with a grain of salt or send your trolls to /dev/null.

Today I read an article, linked by vrruiz on Twitter, called We’re Rich, You’re Not. End of Story.. My first read felt weird, but then I read it again, hours later, and I really had to write about it. I have to say that, although many things it says are true, the way it portraits Oslo feels so unreal I couldn’t just leave it at that. My best guess is that the portrait feels so weird because of cultural differences and difference in values. My worst guess has to be that it’s some sort of neoliberal propaganda :-)

First of all, I don’t even understand the point of trying to make Oslo or Norway look “poor”. Unless of course you take into account the constant mentions to “social welfare”, “regulated economies” and related crap… but let’s not get started with that. I’ve been living here for close to three years now and the last thing that crosses my mind when I think of Oslo, is “poor”. Let’s comment on a couple of concrete points:

  1. “News reports describe serious shortages of police officers and school supplies. When my mother-in-law went to an emergency room recently, the hospital was out of cough medicine. Drug addicts crowd downtown Oslo streets […]”. I’d be really surprised if the first one was any common. And in Norway kids get school supplies from the school, they don’t have to buy anything. The cough medicine, it seems he wants to make it sound like “they don’t have money for it”. Are you kidding me? I’d just blame it on poor organisation (yes, despite the stereotype, some Norwegian things, particularly in the public sector, can be disorganised). And about the drug addicts, what? Sure, there are “a lot” of drug addicts in “downtown Oslo” (in one or two squares near the central station… which is unfortunate, but it sounds like a different world in the article), but again that sounds just wrong.
  2. “Norwegians live more frugally than Americans do”. Probably true, but so what? They have an insanely different culture, and that doesn’t mean they have to, they just do. I can’t really compare to Americans in particular, but for my standards people around here can afford pretty much whatever they want. And I don’t remember Americans complaining… except about the poor selection in supermarkets. But every foreigner complains about that ;-)
  3. About the whole matpakke story: yes, preparing “matpakke” is a very Norwegian thing. But it’s not that people can’t afford eating out (although yes, it’s quite expensive); they’re just used to that, it’s the kind of lunch they’re used to, and probably they prefer saving money there to spend it in other things.
  4. About the teacher salary and the pizza thing: AFAIK those wages are only for people without studies, and the minimum wages for any person with three years of studies are quite a bit higher. And the pizza price, that’s just a lousy example: first of all, for that price you can have dinner in a relatively expensive restaurant in Oslo; second, although I do believe the price, (1) that is for a large pizza (I assume more than one person), (2) in probably the most expensive pizza place in the city, and (3) with delivery, which is very expensive and I don’t think many people pay for that anyway. You have take-away places everywhere, so people would just go somewhere close instead of paying delivery.
  5. “Every weekend, armies of Norwegians drive to Sweden to stock up at supermarkets that are a bargain only by Norwegian standards”. Sure, some people do that, but it’s not like you can’t afford buying at supermarkets in Norway. Going to Sweden is just cheap and convenient for a lot of people. Besides, there are other reasons why people go to Sweden, like generally broader selection of products.
  6. “My own sense of things is that Spaniards live far better than Scandinavians”. That’s just hilarious. And the most hilarious thing is that his best argument seems to be that alcohol is much cheaper in Spain. Alcohol is expensive in Norway. It’s heavily regulated and has a lot of taxes. Sure it’s annoying, but get over it: that tells very little about how well a nation lives. And about the next paragraph, “adjusting for cost of living”… well, I might not be an average case, but those numbers just don't compute for me. And that doesn’t count that I have lunch for free every day or a lot of other advantages. Or that the wages are relatively low for Norway’s IT standards. Or the first comment below.

And other general comments:

  1. It’s not fair comparing “wealth” by just comparing disposable income. Everyone knows that Norway has insanely high taxes, but it works. The government does a lot of things and you still have money for a lot of other things. And don’t get me started with that “taxes don’t do anything for me” crap, because you don’t pay taxes so you get things for free: you pay taxes so the society as a whole has all it needs, so people don’t have problems and you live in a peaceful place. E.g. kids/parents don’t pay for school material, you don’t have to pay for the university, you can ask for “student loans” so you don’t have to work while you study, there is money for when you’re old, the government fosters culture by paying everything school kids need to start music bands or whatever, etc. Sure I don’t get all those advantages myself, but I want the system to work like that so people are just relaxed and happy and there is less crime and less stress. I’m not saying you have to like that system, but you can’t compare it to others only based on disposable income. That makes you either an ignorant or a hypocrite.
  2. This is of course completely subjective, but I don’t remember hearing people talking about money problems. Particularly compared to Spain, the country that supposedly lives much better than Norway, I find that to be a huge difference.

Slides for several talks now published

I had said that I was going to publish the slides for a couple of talks I had given over the last couple of months, and I just got around to actually do it, so here they are:

  • Software automated testing 123, an entry-level talk about software automated testing. Why you should be doing it (if you’re not already), some advice for test writing, some basic concepts and some basic examples (in Perl, but I trust it shouldn’t be too hard to follow even if you don’t know the language).
  • Taming the Snake: Python unit tests, another entry-level talk, but this time about Python unit testing specifically. How to write xUnit style tests with unittest, some advice and conventions and some notes on how to use the excellent nosetests tool.
  • Introduction to Debian packaging, divided in four sessions: Introduction, Packaging a simple app, Backporting software and Packaging tools.

Just a quick note about them: the slides shouldn’t be too hard to understand without me talking, but of course you’ll lose some stuff that is not written down, some twists, clarifications of what I mean exactly by different things and whatnot. In particular, the “They. don’t. make. sense. Don’t. write. them” stuff refers to tests that don’t have a reliable/controlled environment to run into. I feel really strong about them, so I wanted to dedicate a few more seconds to smashing the idea that they’re ok, hence the extra slides :-)

Enjoy them, and please send me any comments you have about them!

Linköping trip

I spent the whole last week (or this week; after all it’s Sunday… and Sunday is obviously the last day of the week, not the first, right?) in Linköping, Sweden. The idea was repeating some Debian course I gave here in Oslo, giving two more talks about automated testing since I was there anyway, and attend two more talks. It was lots of fun, partly thanks to my “host” (thanks Gerald!), and surprisingly I found a bunch of things that seemed plain weird to me… or at least quite different from Oslo.

The talks themselves went pretty good I think, although I’d have preferred more people attending. I guess it was normal that there were less people than I’m used to, since the Linköping office is much smaller. But anyway. The Debian course went quite well and some people got started packaging stuff almost right away. The other talks were an introduction to automated testing (advocacy and arguments for it, advice, basic examples and small rant about a different kind of QA), which went ok, and an entry-level talk about unit testing in Python (thanks Ask and Batiste for the information and reviewing the slides!), which went very well. I’ll try to get the slides for all the talks available somewhere.

About the city itself, it’s a charming little part of Sweden where:

  • Restaurants have insanely different prices for food whether it’s for lunch or dinner. Typical prices for lunch are 80 SEK (around 8 EUR) and typical prices for dinner are around 250 SEK just the main course!
  • Restaurants usually serve some Swedish dish for lunch… and I mean every restaurant, meaning all the Greek, Vietnamese, etc. Considering “real” Swedish restaurants are very expensive, you usually go to those foreign cuisine ones when you actually want to eat Swedish food.
  • Restaurants typically have some salad (that you have to take yourself) while you wait for the food… and some coffee, tea and cookies (that obviously you have to take yourself) for the end.
  • Related to this, restaurants are usually very self-service. I thought service in Norway sucked, but boy was I wrong, at least there is some service. And: there were typically long but pretty-fast-moving queues, and there was this one place where you didn’t even get the food on the table after ordering at the bar; instead, you were given some gadget with some wireless receiver, and when your food was ready it’d beep so you knew you had to go to some special place and fetch your food. Is it really cheaper maintaining some gadgets than hiring a waiter? I guess so.
  • The restrictions on the amount of alcohol that can be bought outside the special Government booze stores are even harder than in Norway. You can only buy booze with up to 3.5% alcohol outside “Systembolaget”. Now that is sad. And I was complaining about Norway’s 5%.
  • Partly because of that (I assume/hope) the Swedish “cider” you get in Sweden is even sweeter and worse and the Swedish cider you get in Norway.
  • We went to this nice student pub… which was literally for students. They actually checked your student id, but each student could bring one non-student along. Once you were “identified” as a non-student-coming-with-a-student, you’d get a stamp on your hand so you wouldn’t have to bring along the student when you ordered again. Also, the place was so very slow it was almost funny. One of the good sides was that they had what I thought it was the only decent Swedish cider… but after checking just now, it seems it’s actually American. Bummer. And the name of it was funny too: “Hardcore Cider”.
  • Right before leaving the office on Friday there was a small gathering in the canteen (the “Friday Beer”), where they had a Dreamcast with one of the most awesome games I’ve seen in a long while: The Typing of the Dead, a version of The House of the Dead 2 in which you kill the zombies by typing words that appear on the screen, instead of aiming and shooting with a gun: