Ikke's blog » Various http://eikke.com 'cause this is what I do Sun, 13 Feb 2011 14:58:55 +0000 en-US hourly 1 http://wordpress.org/?v=3.4.1 s/Q-layer/Sun/ http://eikke.com/sun-acquires-qlayer/ http://eikke.com/sun-acquires-qlayer/#comments Thu, 08 Jan 2009 18:21:14 +0000 Nicolas http://eikke.com/?p=84 It’s finally public: Q-layer, the company I’m employed at, has been acquired by Sun (VirtualBox, MySQL, Java, OpenSolaris, SPARC,… You know). Press release here.

Pretty exciting times ahead. The social event with several guys from the Sun Cloud computing department (among others) last night was really fun, looks like Sun is one of those companies ensuring a pleasant work environment (which ensures the continuation of the spirit at Q-layer before). I’m really thrilled to see how this adventure continues, since it’s the first time I’ll be involved in a large company.

Hi to all Sun colleagues reading this, by the way :-)

Interesting times…

]]>
http://eikke.com/sun-acquires-qlayer/feed/ 3
GUADEC http://eikke.com/guadec/ http://eikke.com/guadec/#comments Sat, 05 Jul 2008 13:53:37 +0000 Nicolas http://eikke.com/guadec/ Leaving for GUADEC ’08 with RubenV tomorrow. We’re staying in the Golden Horn Sultanahmet hotel. Packing starts in a minute, see you around.

]]>
http://eikke.com/guadec/feed/ 0
LinuxJournal 2008 Readers’ Choice Survey criticism http://eikke.com/linuxjournal-2008-readers-choice-survey-criticism/ http://eikke.com/linuxjournal-2008-readers-choice-survey-criticism/#comments Sat, 26 Jan 2008 12:12:31 +0000 Nicolas http://eikke.com/linuxjournal-2008-readers-choice-survey-criticism/ Looks like the 2008 edition of LinuxJournal’s ‘Readers’ Choice Survey’ has been published some days ago. The available answers in several questions are rather badly chosen though… I’d think the LinuxJournal editors wouldn’t be this clueless. Some examples:

Question 3 asks about your favorite Desktop Environment, and lists GNOME, KDE, XFCE, Enlightenment and Fluxbox. Whilst the first 3 options can be regarded as DE’s, Enlightenment and Fluxbox are pure Window Managers, not really usable as an all-inclusive desktop.

Question 5, regarding your favorite email client: if you list any web-based client (Gmail, maybe someone should tell me how this is related to Linux?), you should at least list the major free software web-based clients too (thinking of Horde IMP here).

#7, ‘What is your favorite audio tool’, lists a whole bunch of music players, and Audacity. I don’t think these are ‘audio tools’. Music players are no audio tools, Audacity is, just like (not listed) Rosegarden, Jokosher, Hydrogen, maybe some format convertors, tagging applications,…

Question 9, ‘What is your favorite communication tool’, lists (amongst others) Pidgin next to Asterisk next to Irssi. At least Asterisk doesn’t belong in here at all, and how can one make a choice between an Instant Messaging application (Kopete, Gajim and others are listed too) and an IRC client (also XChat is listed)?!?

#10, ‘What is your favorite graphics/design tool’ lists Gimp, Scribus, Inkscape and Blender. How is one supposed to choose between a bitmap editor application, a DTP program, a vector art application and a 3D modeling tool? Seriously, I’d vote Gimp to be the best bitmap/picture editor, and Inkscape to be the #1 vector tool, but please don’t make me choose between these otherwise unrelated apps…

Question 14 is a nice one, asking about your favorite virtualisation solution. Someone listing Crossover Office and Wine in this category, next to solutions like VMware, Xen, KVM, VirtualBox and other actual virtualization applications should get back to the books, at least.

Comes #16, ‘What is your favorite backup utility’. Could someone please write a howto on how to make backups with only the bzip2 or gzip utilities?

Question 17, asking about your favorite database, lists Zend Studio. I might be mistaken, but: since when is Zend Studio an actual database system?!?!

#18 asks about your favorite programming language, whilst #19 asks about your preferred scripting language. Why can ‘BASIC’ be listed in #18, and since when are Python, Perl and Ruby no programming languages? Because eg. cPython is interpreted, this doesn’t mean Python is no language…

Question 21, ‘What is your favorite security tool’, lists (among others) SeLinux next to ClamAV next to Nmap next to SSH. Right.

#24 goes the same way, asking about your prefered sysadmin tool, listing Puppet, OpenSSH and Rsync (next to some others).

I guess this is fairly obvious… LinuxJournal, if you want to let your reader make choices and vote for their preferred applications, make at least sure the questions and options are well-chosen… Thanks!

]]>
http://eikke.com/linuxjournal-2008-readers-choice-survey-criticism/feed/ 0
A quote by Phillip Vandervoort http://eikke.com/a-quote-by-phillip-vandervoort/ http://eikke.com/a-quote-by-phillip-vandervoort/#comments Thu, 24 Jan 2008 00:03:44 +0000 Nicolas http://eikke.com/a-quote-by-phillip-vandervoort/

“We regret Belgium doesn’t strictly adhere to this European standard, but chose a local implementation. As you know, respect for standards is important, especially in the domains of identification and authentication.”

- Phillip Vandervoort, General Manager Microsoft Belgium and Luxembourg

Emphasis is mine. Read in the 16/01 issue of the Belgian “IT Professional” magazine, page 29, included in the ProFOSS goody bag. The article is a response on an earlier published interview with Geert Mareels, manager of the Coordination Unit of Flemish e-Government, claiming one of the reasons e-ID isn’t widely used yet is due to Microsoft not providing any e-ID related solutions.

Original quote: “We betreuren het dan ook dat België deze Europese standaard niet volledig onderschrijft, maar gekozen heeft voor een lokale implementatie. Zoals u weet is het respect voor standaarden belangrijk, in het bijzonder in de domeinen van identificatie en authenticatie.”.

]]>
http://eikke.com/a-quote-by-phillip-vandervoort/feed/ 3
Text parsing, formal grammars and BNF introduction http://eikke.com/text-parsing-formal-grammars-and-bnf-introduction/ http://eikke.com/text-parsing-formal-grammars-and-bnf-introduction/#comments Sun, 20 Jan 2008 03:39:43 +0000 Nicolas http://eikke.com/text-parsing-formal-grammars-and-bnf-introduction/ Parsing input is something most developers run into one day. Parsing binary input can be pretty straight-forward, as most of the time you know the format of the input, ie you know what to expect: if you receive a message of 10 bytes, the first byte could be a message ID, the second one the payload length, third one message type ID, and others message content. Pretty easy to handle.

Parsing human-readable text can be harder though, as human beings tend to be less strict when providing input (eg whitespacing), you can’t ask humans to prepend strings with their length, etc.

There are several ways to handle text input. One well-known method is using regular expressions with matches, but writing regular expressions which are able to process not-so-strict input can be pretty though, writing expressions to parse large bodies of text is hard, using sub-expressions can become pretty complicated,… Overall regular expressions usually involve quite a lot of black magic for the average outsider.

xkcd comic: Regular expressions

Luckily, there are easier methods to parse text input too, of which I’d like to introduct one: a Python module called Pyparsing, which can do BNF-style text parsing.

First of all, let me explain “BNF”. The Backus-Naur Form, aka BNF, is a metasyntax you can use to express the grammar of a formal language. This might make no sense at all, so let’s split it up:

  1. Syntax: a syntax defines the structure of a sentence. Don’t just think about a normal sentence here, an expression in a programming language can be a sentence as well. In every language there’s an alphabet (example: the alphabet of integer numbers consists of 0, 1, 2,…, 9). A syntax defines how characters from this alphabet should be placed together to form a valid sentence (expression).
  2. Metasyntax: a metasyntax is a syntax to define a syntax. It has its own alphabet and well-formedness rules.
  3. Grammar: set of rules against which sentences can be checked to figure out whether they’re valid or not. Do note being valid does not imply the sentence got a real significance.
  4. Formal language: a language with a very strict and unforgiving description (grammar). The English language is not a formal language: although “I in Belgium live” is not a correct sentence (it doesn’t correspond to the grammar of the English language), everyone knows what it means. In a formal language, any string which consists of characters from the language’s alphabet, but does not match the grammar, got no significance at all.

That’s about it. If this isn’t very clear to you, never mind, the upcoming examples should explain a lot.

Let’s write our first BNF definition of a very simple language: integers. As noted before, the alphabet of integers consists of the numbers 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9. The structure of integers is very simple, it’s a concatenation of numbers, but shouldn’t start with a 0.

When creating a BNF definition, we first define the sets of characters from the alphabet we’re going to use:

  • nzdigit ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
  • digit ::= 0 | nzdigit

nzdigit is a set of all non-zero numbers, digit is any digit. the :, = and | characters are part of the BNF’s metalanguage alphabet. The : and = characters are used to assign a set to a name, the | character denotes “or”. Notice we can re-use a previously defined set.

Now let’s see how to define the rules for integers. An integer consists of a concatenation of numbers, but can’t start with a 0. So first of all we need to figure out how to present a concatenation of numbers. Remember we can use previously defined sets in a definition? Guess what, we can also re-use a set recursively, so this is a concatenation of digits:

  • digits ::= digit | digit digits

So, a “digits” is one single digit, or a single digit with a digits appended to it, which can be a single digit or a digits appended to it, etc. “1″, “12″, “120″ and “012″ are valid digits.

So, finally we can define an integer:

  • integer ::= digit | nzdigit digits

An integer is a non-zero digit, or a non-zero digits followed by an arbitrary amount of digits.

This example should be clear, if it’s not, read over it again, it’s pretty important to ‘get’ this.

Exercise 1: define a BNF definition for a greeting: “Hello, John!”, where ‘John’ can be any name starting with an uppercase character, followed by some lowercase ones.

Exercise 2: write a BNF definition for a standard printf-style function, which accepts string (“%s”) and integer (“%d”) values. The formatting string can consist of any alphanumeric character, spaces and formatters. Variable names can consist of any alphanumeric character, but can’t start with a number. You can use some pre-defined definitions:

  • All the definitions we used above (nzdigit, digit, digits and integer)
  • lcchar and ucchar: lower-case and upper-case characters
]]>
http://eikke.com/text-parsing-formal-grammars-and-bnf-introduction/feed/ 14
Properties of a good programmer http://eikke.com/properties-of-a-good-programmer/ http://eikke.com/properties-of-a-good-programmer/#comments Sat, 12 Jan 2008 18:17:14 +0000 Nicolas http://eikke.com/properties-of-a-good-programmer/ I was just pointed to this article thanks to the blog of Kris Buytaert. The author writes about his experiences on how to recognize a good programmer as a recruitment person.

As I still am unqualified myself (no degree yet, maybe I won’t ever get one) the article was a relief to read, as in some of the things he mentions I could recognize myself. Hopefully lots of HR people read it too ;-)

Some excerpts of particular interest, and my opinion on them (all blockquotes © inter-sections.net):

Update: article blog seems to be down, see the comments for a Google cache link.

How do you recognise good programmers if you’re a business guy? It’s not as easy as it sounds. CV experience is only of limited use here, because great programmers don’t always have the “official” experience to demonstrate that they’re great.

This is most certainly true, it’s sometimes extremely hard to provide an overview of your knowledge in a CV. Some time ago I was in contact with someone looking for people interested in IT security. This is a very interesting field, in which I got some (both applied and theoretical) knowledge, but none of this was listed on my CV, which was a killer.

Good developers would do some programming even if they weren’t being paid for it. Good programmers will have a tendency to talk your ear off about some technical detail of what they’re working on (but while clearly believing, sincerely, that what they’re talking about is really worth talking about).

Correct, although even the most geeky persons should know it’s not very healthy to be coding all day (as a job) and all night (not paid).

A good programmer doesn’t need a training course to learn a new technology.

Agree, although training courses can be useful to get more in-depth knowledge. Learning the basics should be done on your own though, always following new developments, rising technologies, etc.

Many of them will actually have pretty good social skills too. The cliché of the programmer who’s incapable of having a conversation is just that – a cliché. I’ve been to a few meetings of the London Ruby User Group and I can say that with only a very few exceptions, most people there are smart, talkative, sociable, have varied interests, etc. You wouldn’t look at them chattering away in the pub and think “what a bunch of geeks!” – at least until you approach a group and realise they’re talking about the best way to design a RESTful application with a heavy UI frontend.

Just come to one of the GUADEC parties once ;-)

Don’t ever hire a dumb person thinking they’re a good developer. They’re not. If you can’t have a great conversation with them in a relaxed social context, they’re very likely not a good programmer.

Next to this, programming is not a solo business at all, so social abilities are very important to get projects done.

I strongly believe that most good programmers will have a hidden iceberg or two like this that doesn’t appear on their CV or profile. Something they think isn’t really relevant, because it’s not “proper experience”, but which actually represents an awesome accomplishment.

Too bad this one is pretty hard sometimes, as you forget about your own little pet projects yourself sometimes, or can’t really explain what you were trying to achieve. Sometimes it’s hard to explain why something you did is a real accomplishment as to you it all seems very simple and obvious.

This one’s pretty simple. Because of the love of learning and toying with new technologies that comes with the package of being a “good programmer”, it’s inevitable that any “good programmer” over the age of 22 will be fluent in a dozen different technologies. They can’t help it. Learning a new technology is one of the most fun things a programmer with any passion can do.

Who doesn’t recognize this one :-) I’d even lower the 22 years.

That “unrelated” bit is the subtle twist. Every half-decent java programmer will be able to list a set of technologies like “Java, J2EE, Ant, XML, SQL, Hibernate, Spring, Struts, EJB, Shell scripting”, etc.. But those are all part of the same technology stack, all directly related to each other.

Which is why a good IT HR person should have quite some knowledge of the technologies his company is using. Not on the practical/implementation side, but at least the ‘sub-technologies’ being used. Listing ‘PHP, HTML, XHTML, CSS, XML, SQL, MySQL, AJAX’ on a CV isn’t thát impressive.

Many good programmers will have a degree in Computer Science. Many won’t. Certifications, like MCSE or SCJP or the like, don’t mean anything either. These are designed to be accessible and desirable to all. The only thing they indicate is a certain level of knowledge of a technology. They’re safeguards that allow technology recruitment people in large corporations to know “ok, this guy knows java, he’s got a certification to prove it” without having to interview them. If you’re hiring for a small business, or you need really smart developers for a crack team that will implement agile development in your enterprise, you should disregard most formal qualifications as noise. They really don’t tell you very much about whether the programmer is good. Similarly, disregard age. Some programmers are awesome at 18. Others are awesome at 40.

Maybe this is the most important paragraph of the whole article. Sadly enough in the IT industry (maybe more than in any other) it’s really hard to ‘measure’ experience and capabilities. Some gut-feeling is very important.

As a final note to this, in my experience most average or poor programmers start programming at university, for their Computer Science course. Most good programmers started programming long before, and the degree was just a natural continuation of their hobby. If your potential programmer didn’t do any programming before university, and all his experience starts when she got her first job, she’s probably not a good programmer.

I don’t completely agree here. Most people programming before university can be pretty good programmers (I started at 9 myself, writing a program in QBasic which questioned the French vocabulary I had to learn at school ;-) ), but I know at least a couple of guys who did no programming at all before university, which I’d hire myself nowadays (well, hypothetically) or I would give a hire recommendation.

(A good programmer is) opinionated about which technologies are better for various usages.

Partially agree. A good programmer should be flexible and pragmatic too, so he can integrate in many environments, both on the technical as on the social side.

(A good programmer is) very uncomfortable about the idea of working with a technology he doesn’t believe to be “right”.

Disagree, see the previous comment (even stronger). I dislike the MS operating system. If I’d need to work with it to get some task/job done, that wouldn’t be a big problem though. Obviously I don’t think I’d apply for a job consisting of nothing but MS platform work.

Here’s a little idea. Maybe the best way to know whether someone applying for a position in the IT department at your company is to ‘throw him in front of the wolves’: if someone passes the initial tests (both IT and non-IT related), get some guys of the department where he’ll be working, and let these people have a chat with the applicant. Your own IT staff will most certainly know how to recognize the skills someone needs to be able to join them, and they’ll know what to ask to figure out whether the applicant got these skills. Afterwards, ask your IT crowd about their impressions. These will most certainly be very valuable.

]]>
http://eikke.com/properties-of-a-good-programmer/feed/ 11
Yes, we do have a government http://eikke.com/yes-we-do-have-a-government/ http://eikke.com/yes-we-do-have-a-government/#comments Fri, 11 Jan 2008 14:09:40 +0000 Nicolas http://eikke.com/yes-we-do-have-a-government/ Right, it looks like some still think our little country is still running without a new government since last elections in June:

We then heard from Bruno Braes, a developer who worked on other political Ajax fun over in Flanders, Belgium. This is a touch ironic since Belgium has been running without a new government for how many months now? :)

I’d like to point out we dó have a government by now (since a couple of weeks), even though it’s an interim-government (we should get at least another prime minister around easter. Well, that’s the plan).

End of public service announcement.

]]>
http://eikke.com/yes-we-do-have-a-government/feed/ 2