Crikey!

Crikey! I just climbed out from under my rock and realised I have not updated this since they invented sliced bread… You would not believe that I actually have a life. Please don’t abandon me!.

I am absolutely consumed with finding Jesus (after someone told me he was lost), personal projects, just generally being a coach to the local soccer team, my day lasts forever from 4:55am to till I fall into bed at midnight. I am so over it. I need a holiday.

I wish one day I will have time to blog again. One day I will find my magic genie! I keep looking, anyway!.

Filler post brought to you by The Lazy Bloggers Post Generator

Spam-checker or Spell-checker

Note: nothing I say here is new, it’s just an annoying thing that started to bug me again recently.

Although spam checking and spell checking should be different enough they are much closer for most of spam emails, comments and other types of communication.

The story goes like this:

Spammers want to sell you crap like viagra, replica watches, whatever (just some from my recent spams).

But of course the “Good Guys” know this so words like “viagra”, “replica” are banned or give a very high spam score.

Back come the spammers and change the offending words to other which look similar but aren’t the same so spam rules won’t catch them. As examples: “v1agra”, “repl1ca”, etc. (and here I thought leet speak was dead :) )

And the game between spammers and spam filters continues on and on. Different words, different misspellings. Nobody actually wins, the game just continues.

Seems to me like the generic solution to filter out some spam has become to run it through a spell checker. Any misspelled word or word which doesn’t exist in any dictionary is usually a good indicator of either spam or just very stupid people writing you mail/comments. Should there be a different treatment? My initial opinion is that it shouldn’t matter.

If someone writes you a mail which you have to waste a lot of time to understand because of misspellings that is no better than generic automated spam.

Also I recommend Paul Graham’s A Plan for Spam as a must-read about handling spam.

New Years Resolutions

Wondering if writing them down will mean better chances of actually getting some of them done.

For now the current list which is a work in progress:

  • Move to Git as my SCM for anything personal and also try it for work
  • Do lots more Python
  • Contribute somehow to an open-source project
  • More conferences, more trips
  • Get agile
  • More small projects
  • More blogging

Deciding about deciding

Some time ago I read something that seemed at the moment very funny on the lucene mailing list: There were a few spots open for a conference so the community had to decide on the speakers. To quote the essence of it: “We need to decide on speakers, which means we need to decide on how to decide on speakers.” (Grant Ingersoll)

While seemingly funny, the question is really much deeper than it seems initially. Making decisions for yourself is pretty easy and for the most part is done subconsciously influenced by various factors in your life/work.

But how does a group make decisions? That’s a whole different matter.

Signpost - lots of ways

Signpost - lots of possibilities

There are two ideal cases, as to the length of the decision making process, within a group that makes decisions:

  • They all immediately propose and approve of the same idea. In my opinion this happens very rarely. Each person is different by definition and having a single “hive-mind” in the group would be perfect but rarely happens.
  • One authority figure proposes something and all the others follow like sheep and approve of it. Unfortunately this happens too often. It happens often because the authority figure is seen as the “manager”, “senior developer” or some other fancy title when in fact the accurate title is “Dictator” and the rest are sheeple.

So the two quickest ways to make a decision are not the best for the purpose of the project, lunch order, camping trip organization or whatever. One rarely happens and the other means some people are dumb and one is taking advantage of the others.

Marginally better is to set up a committee of trusted members and have them decide. This is better but there may still be people upset that they’re not in the committee.

Voting on the topic (with majority voting rules) is better since everyone gets to have their word. But it’s not perfect since there will always be a minority, there will always be people upset. And there also will be people who let themselves get influenced into giving a certain vote.

The best method seems to be to reach a consensus. If no consensus in reached after the initial discussion you talk. And talk, and give each person in the group the chance to argument his opinion and maybe comment on the opinions of others. The important thing is that after discussions some people will change their opinions, “see the light” or the stupidity in their previous arguments. And thus the votes change and after a time you reach a consensus.

It’s harder and it takes a lot more time than other decision-making methods, but it does seem the only one which listens to everybody’s voice and doesn’t leave anyone dissapointed. In the end I think it also makes the team understand itself better so that in the future you can reach decisions faster and eventually just have a hive-mind of the group.

The important aspects are:

  • Everybody must say something, there cannot be any blank votes .
  • Nobody’s opinion is more important
  • Like all good things, it’s done in iterations that at each step approach the best result.

Only problem is it works best in small teams. As teams grow communication can be a lot of overhead and messes up everything.

As a personal note, I think decision making should be mandatory in schools too. Even in high school there were the occasional problems when deciding where to go out. And they haven’t stopped now.

Image from http://www.flickr.com/photos/katemonkey/439124069/

Going green – the only Green I care about

Green Bucket

Honestly I’m fed up with all the “Going Green”, “Save the Planet” bullshit that’s been piling up since a couple of years already.

Of course I want to save the planet and have a nice and clean place to live on this earth. But it seems to be that everything people say now is too exaggerated.

The planet has been dying for a long time, probably since people started building cities. Trying to exaggerate everything now to get people to realize it and change something faster seems like poorly-done mass advertising.

Coming back to the green that interests me since I work in IT/programming:

  • Moving to Virtual Servers to optimize hardware usage on physical servers to drastically reduce the number of servers and completely eliminate old (power-hungry) servers.
  • Optimizing application code, up to the point where it doesn’t really pay to optimize more to make applications work faster and use fewer resources and thus servers.
  • Letting your computers sleep/hibernate and having components that use less energy when not in full use. Also using efficient power supplies.

I fully support these since I consider them the good kind of green technology. Sure, it helps save the planet but that is a side-effect. The real green feature is the green that goes back into your pocket. All of these mean less computers, less servers, less power consumption. And this means cold green cash. Cash that if you’re a philanthropist you can donate to making the planet a better place.

But even if you’re someone who doesn’t care about the environment, who only cares about his own pocket (especially in these economic times) you will be saving the planet as a side-effect of saving your money.

So in conclusion, please, Go Green. But go green not because of guilt, go green because it’s good business. I imagine this is much for motivating for a lot of people than the guilt of cleaning up the mess of past generations.

Image from http://www.flickr.com/photos/nickwheeleroz/2295584401/

Small projects, big rewards

I have always liked small projects.

Small projects in my opinion:

  • Small, focused idea, no junk/waste.
  • Small team, no extras, all team members have leading roles.
  • Time constraints: couple of hours, 24h, 48h, up to a maximum of 1-2 weeks.

Why do I like them so much? Because you get down to the bare essentials and try to eliminate any kind of waste (in terms of code, people, features) so that you can actually finish something in the alloted time period. Small projects force you to deliver quick results and the quicker the results the quicker the satisfaction you get from being able to say: “I did this”.

The best thing that happened to me at work some times is that I was working on some long-term projects since some months. Then at some point a “small project”, “proof-of-concept” or something similar came around. “Projects” that from a high-level view contained the same “modules” as projects I had been working on for months. But they had a deadline of “yesterday”.

Personally I love these kinds of things. I start work, I go through a lot of things I go through with normal long-term projects and then something surprising happens: The thing actually works, and is finished within the deadline.

Parkinson’s Law ( “Work expands so as to fill the time available for its completion.” ) works every time in my experience, mostly to the detriment of software projects.

But enough of that…coming back to why in my opinion every developer should have some small projects from time to time:

  • They motivate you. The chances to prove yourself are much better in a small project, a small team and with a very good focus on what is to be done.
  • They give you the possibility to learn something new. These kinds of projects are great to test and deepen your knowledge of a new language, some minimal framework, a new method of development. (If you fail, you fail fast and don’t waste time since you don’t have a lot of time).
  • They bring the team together and take out any poisonous people.
  • It’s even preferred to do some small/personal projects with people/ideas/tools outside of usual work. You get to see/do something different, and maybe bring some good things back into normal work.
  • Big rewards: You always get a good feeling when finishing something. The feeling is kind of skewed if you had to wait a few months/years to finish the project but after only a few hours/days of work the rewarding feeling is much better.

So, to eat my own dog food and to learn some new tools guess what I’ll be doing some time between Christmas and the New Year? I’m going to gather with a couple of friends and we’re going to work on a project. Hopefully it will be from zero code to finished and published product in 24 hours. Maybe more news as we find out too :)

To all developers: Do projects, do code-camps, coding dojos, code katas. Just enjoy doing something outside of work and different from your normal way of doing things.

Cel mai bun prieten al meu … pentru 10 minute

Incerc sa-mi dau seama daca visam sau nu. Desi am dovezi fizice mi se pare o experienta prea “interesanta” ca sa fie adevarata.

In primul rand ceva background story: Nu-mi plac cainii strazii, cei care se leaga de tine, ii vezi ca umbla in haite, etc.

Si totusi azi mergand spre casa, pe ultimii 400 de metri s-a apropiat un caine de mine. L-am ignorat cum fac cu toti cainii crezand ca ma lasa in pace. Dar nu m-a lasat, m-a urmarit pana acasa.

De fapt e gresit sa zic “urmarit”. A mers tot drumul in fata mea la cativa metri. La fiecare colt sau straduta a mers in fata mea, s-a uitat in toate partile, a mirosit tot ce putea mirosi si apoi a mers mai in fata.

Cand eu ma opream deodata simtea si el ceva si se oprea. Daca stateam prea mult pe loc venea inapoi spre mine. A trecut cateva strazi tot timpul in fata mea.

Chiar mi-a parut rau cand la intrarea in bloc i-am blocat trecerea si l-am lasat afara. Am mai stat cateva minute unde nu ma putea vedea dar tot la intrarea in bloc statea si parca astepta ceva. Era un ciobanesc german (s-ar putea sa ma insel), parea chiar ingrijit si avea o privire pentru care nu exista alt cuvant decat “cute”. Daca mai il priveam cateva minute probabil renuntam si il luam sus in apartament, dar din pacate am cedat. Posibil ca el inca sa nu fi cedat si sa ma astepte la intrarea in bloc.

In momentul asta nu pot decat sa ma gandesc la “animal spirit guides” si la probabilitatea de a mi se intampla asa ceva alta data. Au fost doar 10 minute dar am simtit o legatura mult mai profunda.

Disclaimer: Diacritice si poze cand ma trezesc si daca reusesc sa le scot de pe telefon.

Johnnie Walker – The Man Who Walked Around The World

Great timing, scenery, story, acting… and a good drink too :)

Trying this thing again

Actually the fourth/fifth try on blogging after a lot of fails. Why should I try it again?

Well it’s complicated… I got into the having a lot of ideas/annoyances mood again so I want to write down everything so I don’t forget.

Warning: A lot of things on here will look like randomness, ideas of a mad man, talk of a person fed up with the world or certain things in it. That’s not a coincidence, it’s just how I think.

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!