|
Written by JLangbridge
|
|
Monday, 30 January 2012 15:19 |
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." — Brian Kernighan
Words of wisdom from one of the best. Very philosophic, very intense.
Tim O'Reilly reposted this quote in a Google+ feed. A few comments followed. This quote make sens, but what did he really mean? Does that mean that the average developer cannot debug? Does it mean that you shouldn't try your absolute best? Maybe a mis of the two, with a dash of a few other things here and there. Let's think about it. There are 2 ways of writing code, the easy to read way, and the highly optimized way. I'm an optimization evangelist, but even I don't optimize everything. Coding can be like writing a book, and the story unfolds itself as time goes by. When I starded, I might have wanted to do something specific, but that all changes as I encounter unforeseen details, or when I run into problems. I don't start optimizing everything, and indeed, I never optimize the first time round. I want something I can read easily, or that someone else can read easily. I have no guarantee that I will still be working on a particular project, and that someone will not be in my place, continuing my code. Part of being a software consultant is knowing that I won't be doing absolutely everything. Sooner or later, my code will be in someone else's hands. That person has to be able to debug what I do. In order for him to be able to debug it, my work has to be simple. Yet another quote:
Any fool can write code that a computer can understand. Good programmers write code that humans can understand. ~Martin Fowler
When training non-IT people about what developers do, I often play a little game, putting myself in the place of a robot. I will follow their instructions, to the letter, no more, no less. We have had some fun doing simple things like et a glass of water, or pick up a folder and put it on the table. Learning to speak to a computer isn't all that easy, it does take some getting used to. Talking to a computer so that someone else can easily understand takes some time, and effort. As they say on the bottle of shampoo, lather, rinse, repeat. Sooner or later, you run out of shampoo.
All this sums up my favorite quote:
[A]nd then it occurred to me that a computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are, in short, a perfect match. ~Bill Bryson
|
|
Last Updated on Monday, 30 January 2012 15:40 |
|
Written by JLangbridge
|
|
Tuesday, 17 January 2012 12:04 |
|
7 months already... It seems like just yesterday. 7 months ago, she said hello to the world, and every day since then, there has anways been something new to discover. As parents, we try to satisfy her curiosity, and even more so. We are constantly looking for new things to show her, teach her, and to let her experience life to the fullest. The price to pay? he hardly sleeps during the day, but she tries to take (and eat) everything, and has already figured out how to move herself to get a new object. She isn't crawling on all fours just yet, but I don't think that she will take too long to figure that out. She likes music, she likes colors (so she hasn't got what I have, although she may be a carrier) and she really, really wants to talk.
3 and a half teeth. And her nickname is pranha, because she nibbles everything, and watch out where you put your fingers, she can bite hard.
She is already well on her way to becoming a geek; she loves bashing on the keyboard (which doesn't really help when I'm in the middle of coding).
Happy monthday Elena! Take your time to grow up, because when you are ready, we have the whole world to show you! And even more so...
|
|
Written by JLangbridge
|
|
Friday, 06 January 2012 09:46 |
|
A few years ago, I was the head of my own company, making light CMS systems for small businesses here in France. Heavy PHP work, not using any framework of any sort, just creating everything I needed. I figured that nothing existed that was exactly what I needed, so I just built everything from scratch. When a friend asked me for a hand with a web site, I started looking into frameworks. There was Symfony, which I liked, and Zend that my boss has been keeping on at for some time now. I looked into the 2 frameworks, and tried an alpha run with both. I liked Symfony, but "unfortunately" I started with the newer version, Symfony 2, and the deployment onto a production server was a little chaotic. That has probably changed by now, but with the deadline that I had, I just couldn't use it. I will, however, look into it again in the future. Zend, however, I stuck with. I managed to whip up a site in no time, and it is up and running with pretty good performance. Felt good to dive back into PHP, but the last time I did anything, it was in PHP4, this time I got to play with PHP5. Yet another thing on my to do list, explore PHP a little more!
|
|
Written by JLangbridge
|
|
Sunday, 01 January 2012 19:13 |
|
Happy 2012! Here we go again, the beginning of a whole new year! We leave behind us 2011, and we now face something "new", the end of the world. Again. The Mayans said that the end of the world would come at the end of the year. Either that or they ran out of room at the end of their calendar... Anyway, I've survived 2000, Mir falling onto Paris, and others that I can't even remember. Bring it on, 2012!
Each new year also comes with a tradition; new years resolutions. The kind of thing that you keep for, what, 2 weeks? Then forget. I've got a few, but I won't say what. I probably won't keep them anyway. One that I will, become more of a family each and every day.
So, what has happened in 2011? 2011 will stay in my memories for a long, long time. After years of being a geek, I am now finally a geek and a father to a beautiful baby daughter. She is doing well, and she is already impatient to talk and walk. Take your time, I have a lot to show you, but that will come, don't worry. I can't wait to take her out to zoos and other activities! Being a father is a major change for me, and it does change a lot if things in life. I no longer look at work the same way that I used to, but I still have time to be a geek, so that's OK. Some things don't change.
Work wise, things are almost the same, but I need to change few details. After about 10 years in embedded systems, I finally sat down to have some fun with the Android SDK, and even worse, I actually like it. I'm considering going into it more seriously, just to add yet another line to my CV, but I've always had a problem with Java, I just couldn't get into it. I never knew why, but I think I do now. I've been doing C (and assembly) all my life, but I needed to go through Python to be able to fully appreciate Java, and now I really do. Yet another task for 2012...
|
|
Written by JLangbridge
|
|
Wednesday, 16 November 2011 17:10 |
Disclaimer: I was given a free copy to review
Books on embedded systems come and go, and over my ten years of experience I've seen quite a few. Most books will only go into detail about one particular subject; programming techniques, specific hardware or sometimes even a how-to for one specific situation. This book is different, for once an author goes into detail on just about everything.
Making Embedded Systems by Elecia White is not a bible, for some people it will not go into enough detail for specific parts of making embedded systems, but the domain itself is so vast that I really can't see how any one book could cover everything. Elecia goes into detail about the key functionalities of embedded systems; for example, power conservation, interrupts and timers. Everyone has heard about interrupts, but just what overhead do they create? When would I need them, when should I avoid them? Little details like this that are crucial for embedded systems, but that no-one really talks about, Elecia White lists them all.
Elecia also goes into a little more detail about another part of embedded systems; the teams that have the responsability of designing and building them. Just what makes an engineer suited for the job? What do you need in a team to give the best chances of success? This book has a few little extras about job interviews and trick questions, that while not necessarily required, always provide a welcome break between two subjects, and make you thin (the fridge question would have scared me!)
This book is aimed for beginners; most high-level engineers will already be looking for books on very precise subjects, but as a primer, it is great. With ten years of experience I didn't necessarily learn anything new technically (but a refresher is always welcome), but I now have a few ways of explaining things to junior members of my team, and a new way of thinking.
This book is full of technical detail, but more importantly, it is full of wisdom. I had fun reading this, and to the question would I recommend this book to a friend? I already have, to junior members of my team.
|
|
Last Updated on Wednesday, 16 November 2011 17:40 |
|
Written by JLangbridge
|
|
Friday, 14 October 2011 15:35 |
|
Ubuntu 11.10 is finally out! I haven't played about with the final version yet, but I'll be installing it this weekend. I've been using the alpha and beta on my new netbook, and I've seen quite a few changes from 11.04. The kernel 3.0, whuile not necessarily a major change (just a versioning number) does have the changes necessary so that video works better on the AMD 6200 video chip. I've already tried Neverwinter Nights, and it seems to run great. The alpha did, of course, have its share of bugs, and hopefully all of them have been corrected, but I'm confident. The only bad point is that I still haven't grown used to Unity, and even after forcing myself to use it exclusively for a week, I still don't like it. Now it looks like the new version will need a bit more taming... Anyway, more news on that next week! I'm going to install it (officially) on the netbook, replacing the alpha, and seeing what happens.
Ubuntu normally makes quite a bit of noise every time a new version comes out, but to be honest, this time I didn't hear anything on the net. Of course I knew it was coming out, since I've been using it on and off since the alpha, but I haven't seen it on any sites, and I haven't seen any of the "Coming in x days" logos out there. Is that just me?
|
|
|