Meeks, poets and coders

I just read this Washington Post article about an experiment conducted in one of the Washington metro stations: a very talented violin player (actually, the one considered the most talented violin player in the world) was put there to play some masterpieces, just to check the reaction of people. In 43 minutes, only six persons, out of thousands, stopped there to really appreciate the music.

But the part that made me think was not that. It really caught my attention on how the article goes to describe how poetry is a somewhat lost thing in the current society. Not just poetry as a metrical writing sense, but in the sense of enjoying the good things in life (what, wouldn’t you say that enjoying a sunny day in the park with the one you love isn’t poetry?) Ok, I’m pushing this a little bit far, but the article really goes to show how we can’t just stop and enjoy what’s around us.

Another day I read, somewhere, that Python developers are better than Java developers. The reasoning behind it is that Python is not a mainstream language (although some people can point that Google was founded around Python), while Java is. So, when you think about getting a job on computer programming, what do you do? Go after Python or after Java? So, those (few) people who decide to go after Python (and this could be extended to any of the non-mainstream languages) are the ones who really enjoy programming. They are not after the big bucks, they are after the challenge; after the thing that really makes them happy; after the thing that they enjoy.

[Another point in that article is that, when you go after people who can code Python, you are surely going after people who enjoy coding, not just people that know a language for the money — so, in the end, you get the ones that really enjoy programming and, thus, the ones that will surely be “devoted” to solve the problem, not the ones that are there just for the money and don’t really care what they are doing, as long as they get the money in the end of the month.]

When I was at uni, we use to joke that good code was like poetry. Ok, it wasn’t a joke: we really believed that. It could be any language, even the infamous Perl. Good code was poetry and only those who understood poetry could write such code.

Honestly, you can’t really appreciate something if you don’t really like it. You can go to a movie and just see scenes of man fighting each other, blood flying around, heads flying around but, if you don’t really appreciate cinema as a whole, you won’t get the most subtle things in the story. You would end up seeing blood, but miss the story. Same goes to code: you can’t really appreciate code if you don’t really like it. And, when you don’t appreciate it, you don’t respect it.

Poetry comes more to respect than anything else: when you respect the language, you can write good poetry; when you respect the instrument, you can write good music. If you think languages are just tools to communicate something, you probably won’t be a good poet. When you respect the programming language, your code will look like poetry. Unfortunately, only other poets will see it as poetry, while all “normal” people will see a bunch of text put together.

This also comes to a thing that I was talking with some co-workers those days: how music is so annoying back in Brazil. The thing is, those guys are not after the song; the don’t respect it. It is simply a way to make money. The are completely meek about their songs. Their words aren’t true to their feelings. And, unfortunately, this is shoved to everybody throats by marketing campaigns and shown as “the great thing since sliced bread”. And, sometimes, it is the only thing you can get, as recording companies and other bands go after it, just for the money. They don’t care if it is not their song, their type of music, as long as they could get the big bucks (and the chicks for free). They are not poets.

Those people in the subway station, the great amount of programmers around (not everyone, though) and those poor bands are in the same boat: they are meek and can’t really stop and appreciate what is around. Six people in a subway station, some few programmers who decided to learn something just for the pleasure of learning it and some old bands… those are the real poets.

[Before anyone start complain that I’m attacking Java developers, let me say that the problem is that the majority of Java developers work with the language just because the money; they don’t love coding, they love code. It happened long time ago with Delphi and VB just before that. There are, of course, some people that love Java, can write poetry with it and love to code. Unfortunately for them, they are a minority in a world of meeks.]

Random life update

New goatee

After the previous screw up, I decided to grow a goatee. Again. Same shape, a little bit smaller. Pictures next month, I promise.

Europe pictures

The pictures I managed to delete three months ago are now online again. Without the titles or captions or anything else. But they are there. Actually, they are here. Sometime I’ll fix the titles, captions and everything else.

Girls

Two weeks ago I invited my personal trainer (a tanned British girl with beautiful green eyes) to dinner. Yes, it was a shock to me too, even more when she said “I have plans for this weekend, but we can go next week, okay?” So far, two weeks and no dinner. Life keeps on its natural pace, it seems, even when I go “off-road”.

New project

I’m really starting to like my new N800. Right now, I’m writing a PyGtk/Python-Hildon application that would work somewhat like TimeKeeper, but with the coupled todo list. Nothing to report, so far (except that PyGtk is really easy to work with.)

Thinking about the PEP8

PEP 8 is the “Python Enhancement Proposal” about the coding standards. One of the things they propose is not using CamelCase (“splitting” words using upper case characters) on variables names, but using lowercase_with_underscores.

At first, I thought this was more directed to the way C programmers work. Then, a few days ago, when I had to deal with a problem of why a variable wasn’t working because it was named something like “thisIsAVariable” and I was trying to access “thisISAVariable”. It may be simple at first sight to spot that I left one capital “S” where it shouldn’t, but when you are pressed by deadlines, you’ll take a lot longer to realise what is wrong.

Before having this issue, I always thought it was simple to put the language more in touch with C than Java (where CamelCase is pretty common). Not that Java is bad (actually, it is, but it has some places where you need to use it anyway), it is that Python must be “thought” as C and not as Java. Java is completely strict language, with very strong typing; Python is way more fluid and you can simply add variables when they are not there (and, sometimes, this can be a real pain in the but, as ferhr once felt). You can’t do that with Java (and you probably should not do something like that in C, but with some clever “controller memory corruption” techniques, it can be done).

Transformers on TILEFILE


I hate when things simply break

(Just to be honest here, it didn’t simply “break”.)

A few days ago I decided to use GUP to upload some new pictures to my pictures site. Some weeks before, I upgraded my Gallery installation to the latest version. So, surprises of surprises, I got a 500 error when I tried to upload something (meaning the server crashed).

In a way, I know the code, currently, sucks. It is not the most beautiful code I ever wrote and the file upload still looks like a “hack”. So I tried my best to find where the problem was. After some checks without success, I tried to search the Gallery website for changes in the protocol: none. Back to code, some few changes to make sure everything was alright and, still, 500 error. Next step, maillists. Nothing. Oh, forum there. And, surprises of surprises again, I’m not the only one with this problem. It seems they manage to break every single client except their own.

Next step: read their code to find: 1) what GUP is doing wrong and 2) what the hell isn’t being checked that is causing the server to crash.

(Amazingly enough, setting gallery to save debug information in a log file makes it crash even on normal operations.)

Languages as cars

From the Slashdot comments:

  • APL ~= Car built out of Legos. Fully operational. No one knows how it works. Or why.
  • ASM ~= Suzuki Hayabusa: Ready, aim, goodbye
  • C ~= Ferrari – drive it wrong and you’ll be wrapped round a tree before you know it
  • C++ ~= Pickup truck w/extended cab, dually axles, 4wd
  • COBOL ~= Loaner. No one would buy one, after all
  • Fortran ~= 1980’s generic sedan. Speedo only goes to 80. But it has a lot of controls and gauges
  • Haskell ~= Kit car. Not assembled. No directions. Not street legal.
  • Java ~= VW bug complete w/flower stickers, rabid activists, and parking permit for trendy coffee shop
  • Lisp ~= Mexican hopping car – scares the hell out of anyone who encounters it
  • Pascal ~= Delorean DMC-12. Beautifully conceived; decently built; underpowered.
  • Perl ~= Heavily modified Sachsenring Trabant P50 w/snow tires and chains. Only the owner can drive it, but it’ll go anywhere. And then break down. Only the owner can fix it. But he can fix anything that happens.
  • Python ~= Corvette w/luxury options, hatch full of cool accessories.
  • Rexx ~= Modular 4-cylinder engine; plugs into anything. Every time you do, though, you need a new manual
  • Ruby ~= Camaro – trying like hell to be a Corvette, still not stable or fast enough.
  • SQL ~= Coke truck – it’ll carry anything, as long as it fits in a coke sized slot.
  • VB ~= Poorly designed bicycle with two flat tires and no pump.
  • VHDL ~= Huge box of legos. Only you can make it run. But you can make anything.
  • Goodbye goatee

    After a month growing a goatee, I decided to cut it. Not that it was that simple: it was looking somewhat weird, so I thoght to make it narrow; it looked worst, so I turned it into a soul-patch; still looking weird, I took everything, going back to a naked chin.

    Back to the five-day style, I guess.