Blog

The Celestines Company

This is another Italian book without an English translation, at least not one you can buy on Amazon.The story is about a group of orphans that escapes from the orphanage to participate in the secret world championship of StreetBall. StreetBall is a specific variation of the football played along the streets of nearly everywhere with much passion and fantasy. The Great Bastard himself, the God of all the orphans, has dictated the rules for Street Ball.
The story takes place in the rich and corrupted country of Gladonia. The orphans are chase both by the (equally rich and corrupted) church in the person of Don Biffero and Don Bracco and the media personified by the journalist Fimicoli. And behind those pawns the egoarch Mussolardi supreme ruler and mostly owner of Gladonia.
As I have already expressed before in other posts, Benni is one of my favorite writers. In this case he manages to achieve a good tale telling, while keeping a meta register. Situations and characters usually live at different levels. The story level is nice, but the plot twists are a bit forced, situations are mostly resolved via Deus Ex Machina. The next level is satirical, Benni portrays the changing Italy, a beautiful country losing its genuine and true origins to progress, corruption, hypocrisy and indifference. What was clean and nice now is polluted, what once was quiet and calm now is crowded and noisy, what once was honest and private, now is criminal and reality show.
Characters are caricatures of real people, the county politician, the clergymen, the orphans, the media, the TV channel owner, and the army.
At a deeper level we find messages. Messages about what is going wrong and what would doom us. The strong message is about the importance of unadulterated youth. Children deserve to grow in a free and genuine environment. Benni strongly criticizes everything menacing this.
I have to admit that I lost most of these deeper levels at my first reading. But the book is so intriguing that the second read was swift.

Which one?

Not a life treatening problem by large, nonetheless something eating up brain cycles. Our camcorder is about to retire after some 7 years of honored service. It is a Sony analog device from (then) budget range. It served quite well to the purpouse, until it gave rather bad results in our [/images/photoalbum/Norvegia/200508/index.html|travel to Norway]. Colors were dull and shots seemed nearly black and white. Maybe that Norway summer wasn’t bright enough for the camera, but we had basically no problem with cameras. Next year we [/images/photoalbum/Greece/200608/index.html|traveled to Greece] and again we weren’t quite satisfied with the shots. This summer we’re going to west USA and we don’t want to risk poor shots, so we’re looking for a new camcorder.
From my understanding this is a sort of critical time in several camcorder technologies – media, definition and sensor.
Most of the camcorders uses tape as storage, either in the DV or miniDV formats. Sony, Panasonic and JVC have started selling Hard Disks based cameras. The hard disk mechanic is simpler than tape (have a look inside a video tape slot if you don’t believe it) and more protected. A MEMS accelerometer senses if the camera is falling and parks the Hard Disk heads in order to avoid major damages. Most of camcorder producers have optical mini-disc (DVD/DVC) cameras in their listings. Although the mechanic is simpler than tape, it has to be much more precise and has lenses to be kept clean (and scratch free).
The real winner in the storage area is, at least based on my thoughts, is the digital flash memory, like SD/HC. This technology is quite mature, but capacity is still limited (4G bytes) for video application. Currently only Panasonic has a top range camcorder with SD/HC but it is missing the viewfinder.
Talking about viewfinders, I find a great shortcoming the lack of this interface in a camcorder. From my experience it is impossible to have a decent view of what you are shooting at under the direct sunlight with the camera monitor. Aside of that all the professional camcorders do have comfortable viewfinders. So I find it nonsensical for producer to remove the viewfinders from top range models. Despite of this Sony, JVC and Panasonic do have such items.
New top range consumer models are now high definition (1080p). From one side this is not so clear to me where the “high” comes from since the number of pixels in the sensor are about the same number of the “low definition” cameras. On the other hand my TV belongs to an era when “High Definition” was something related to analog devices only. My TV is still no flat-screen! So high definition is not a plus to me, but it is just a sign of changing times.
Next, sensors. Traditionally CCD sensors were associated with high performances and better quality. From my understanding CCD are not able to scale up to high definition and thus are being replaced by CMOS, traditionally associated with low quality and every sort of trouble. When I asked to a shop clerk about CCD vs CMOS, he answered that as of today’s technology there is no real difference. It maybe, but professional camcorders are all CCD based.
At this point in time it is quite risky to buy a camcorder. You can get too much on the bleeding edge and got burned (e.g. by choosing a new technology that will have no commercial success and will be shortly dismissed), or being too conservative and buy something that isn’t worth the price. But we have to renew the family camcorder department, so I have to take a decision.
Given that viewfinder is a must and the budget is not unlimited, the choice is quite restricted, Sony is too expensive, JVC has no viewfinders. Panasonic has an interesting previous-generation model the NV-GS500 and Canon has the new generation HV-20. Moreover I found an used semi-pro camcorder in excellent state and at a good price, the Canon XM2.
But this is meat for another post…

Inquiry on Jesus

(This book is Italian only) If you, like me, grew up in a traditional Catholic environment, as it could be anywhere in Italy, or, to a lesser extent in France or Spain, then chances are high that most of what you know on Jesus is wrong.
This book attempts to shred some light on the historical man that so greatly influenced (and still influences) our world. In fact our knowledge about Jesus, his times and his land has considerably improved in the last 30 years. Better analysis techniques and the recent discovery of old writings from the earlier community greatly helped in defining a larger and more consistent picture.
The book takes the form of a loose interview where the writer introduces the argument of the chapter and the starts with questions and answer sessions with the expert.
“Inquiry on Jesus” begins as a sort of myth dispeller: Jesus was a strictly observant Jew; he had a number of brothers and sisters; he was married as his disciples were. He was a Pharisee, he didn’t intend to start a new religion; he had a political message; Gospels weren’t written by the same disciples that lived with him and so on.
The matter is interesting and it is dealt with a tactful approach. Of course the intended audience is everyone that wants to dig deeper in this part of human history with an open mind. Avoid it if you are a believer and don’t feel comfortable in reviewing part of your faith beliefs. I guess that a strong faith couldn’t be shaken by this book content, and that the book could satisfy an interest in the man Jesus.
One of the most striking revelations to me is that Jesus was deeply Jew; he observed every precept of the religion. Moreover he never intended starting a new religion or cult, neither converting anyone. He strongly believed that the Kingdom of God was near to come and that a real conversion and renewal was needed.
Another interesting point is about his sentence. For centuries the Catholic Church based a number of arguments against the Jewish on their guiltiness for sentencing Jesus to dead, basically perpetrating a deicide. These parts of Gospels have indeed been written to ease the position of the new Christian religion towards the Roman Empire. In the desire of appealing to the Romans, earlier Christians, turned the guilt away from Pontius Pilate (the likely real culprit) to the Jewish. What is astonishing is that by reading carefully the Gospels you can find yourself that not everyone in the high council, the Sanhedrin, was enemy to Jesus, in fact some of the people in the council were actually his friends.
Most of Jesus’ teaching, as reported by the Gospels, is easily traced in the religious currents popular at those times. Even the resurrection was a common theme far from being something unheard of. Rather, the specific attention and care to the latest and to poorest in the society is the original part of his message, the real revolutionary part.
The book takes a low profile on miracles, stating that most of the healings and exorcisms can be explained in term of psychic or mental effects. On the other hand, considering the historical character, the book supports the thesis that it is likely that Jesus thought a lot on the matter, considering it as a special gift from God and that by this gift God was calling him to some mission.
Considering that the central core of the Christian message is the resurrection for saving everyone, the book skims over too quickly over the fact that in the first edition of Gospel there was no mention about resurrection. It came as an afterthought during later revisions. Moreover, despite of the claims of Gospels, there are no reports about those exceptional facts (consider a dead man appearing to several hundreds people!) beside of the Gospels themselves.
I think that this is where the narrative scheme of the book falls short. I.e. the interview model allows too easy escape ways on topics that would have a much deeper analysis in a classical popularization book.
Apart from this the book is an interesting and easy read for those with an open mind regardless of the faction.

Easter Aftermath

Happy Easter… usually it starts with something like this, then you find 4 days later at the workplace wondering exactly what happened… Well it happened that supermarket shopping on Friday evening is always nefarious. Everyone, his friends and his brothers are there to shop for the weekend. People with no other goal than staring absent mindedly to shelves while keeping their cart across the corridors. Crowds of long unseen old friends clustering together (and usually complaining about people stopping in the market or about new generations without good manners). This time it had been a bit worse, because someone took our cart at about one third of the process and we had to restart from the beginning.
Then on Saturday it was the Shoes-Day, I spent the whole day with my wife in and out from shoe-shops and outlets in Parabiago. We also succeed in smashing another car door, fortunately no injuries for anyone and not much damage for our car (anyway our insurance fee will raise). We started about at 9:00 and we got back home after 20:00.
On Easter and Monday we paid the belonging to our families.
During this holidays evenings we tried to figure out the best accommodation in Las Vegas for this Summer U.S. travel. When traveling to Norway, two years ago, we found very helpful the website to make hotel reservations in Germany. Unfortunately there isn’t anything so complete for U.S. and we are browsing through endless lists of hotels, motels logdes, bed and breakfasts, inns and so on. At last (after three evenings of hard search and comparison) we found a Travelodge on the strip, close to Bellaggio, at a convenient price.

Programming in Lua

(cover to the left here, refers to 4th edition of the book, I read the 1st edition). It is somewhat difficult, in writing this review, to distinguish the language from the book. The book teaches about Lua, so my opinions in favor or against this language could interfere with my opinions about the book. Anyway I’ll try to accomplish this hard task.When writing a book about a programming language you could follow either an hands-on approach or a more formal one. Both ways have their pros and cons. The first approach helps language novices to grasp quickly language fundamentals, while latter provide a convenient reference for those already using the language.
For example Bjarne Stroustrup’s “The C++ Language” belongs to the second set. It is very formal and descriptive; learning the language by this book it is definitely the hard way to do that (aside from the fact that C++ is a very complex and huge language). “Programming in Lua” is from the first camp. It features an easy to follow, example-ridden way into the language. It doesn’t pretend to give a thorough reference for the language or the library, demanding other books for this specific purpose.
I have to say that the writer does quite a good job. The text reads smoothly, examples are always fit to the chapter scope, prose is clean and clear. In theory I should have practiced with the language itself in order to state whether the book covers the matter adequately or not, but I have a limited amount of free time and no suitable project for a Lua application, not even a toy one.

Anyway while I didn’t fell in love with the language (quite the opposite as you may have read) I appreciated the book. Also I found an interesting reading the last chapters on how interfacing and extending lua with C code.
What I didn’t like is the author bias toward the language; I feel a vein of naivety. For example Lua supports only floating point values. Not the “float” kind, but the “double” variety. No integers, just doubles. The author advocates that there is no reason for integers since “double” works fine for just everything. Although I have not much experience with doubles (just floats), this appears quite a bold statement, at least from what I have skimmed through. The dumbest consideration I could think of is that doubles still have the usual precision problems that affect floating point arithmetic. It just depends on how many iterations you have to do.
On a whole I found this book a worth reading either if you want to learn a new programming language or you are just curious (like me). Just be sure to buy the 2nd edition that came out just few days after I ordered the book (I ordered the book few days after having read the, now disappeared, slashdot review… maybe you see a connection)… or to read the first one online for free.

Antipatterns at work

It is an odd sensation. I am puzzled about some decisions that are quite unanimously recognized in literature as bad, or, if you prefer the buzzword, as anti-patterns. Forests have been sacrificed for books on the matter. Given the current (poor) state of the planet I would urge management to read them, not just having them to preserving their libraries from dust.
You have this project late, the customer is coming screaming at you because you didn’t made it for the milestone, the product is still alpha quality when it ought be on the shelves. Sounds familiar? If not either you don’t work in any technologically advanced sector or you have been unbelievably lucky (or good… or both). So it is clear that the project needs extra time to achieve the goal set. I understand that there are contracts and politics involved, but for the sake of the project there is just to plan and move the milestone ahead WITHOUT adding new features. Leave them for another project. The customer could be disappointed from this refusal but she will be a lot more disappointed when you’ll told her that you didn’t made it another time.
Disclaimer: I have to be honest, this is not my project, I don’t know exactly what has been agreed on, the only thing I know is what a coworker told me in about a single line: milestone postponed, new features added. So basically I don’t know what I’m speaking of.

Copying

No, I haven’t forget my last post. I had a look at Engineering without Frontiers, a no-profit NGO, which should be the engineer answer to medical initiatives like Medecins Sans Frontieres. Although their magazine is interesting, and their statute is agreeable, I find the overall association a bit loose, somewhat too tied in the academic world and too abstract. Apparently the prompt answer to the question “How can I help?” is just “Send money here”. Maybe I have to dig further.The topic of the day is copying. When talking about this issue, I usually agree with content owners that deplore the act of copying for money and for personal use. My favourite example is that if you like a Ferrari, you don’t steal it only because you cannot afford it. The same goes for music, movies, software and so on. There are people who worked to create that content and it is their right to be paid for their work.
I could agree on some special cases such as when you are looking for something that’s not available or even out of print. But this should represent the exception, not the rule.
Sometimes ago I skimmed through Carlo Gubitosa’s Praise of Piracy, without being convinced at all about the point of the right to copy.
Although, during these days, I’ve been hit by a sort of revelation. There’s actually a practice of legally accessing content, without paying for it. More, you could actually access content any time you want with no restrictions. And this practice has been available for centuries to human kind… public libraries the name.
Some public library lends VHS/DVD movies, maybe this practice is discourages by video rental business. But from my point of view, what’s the difference in borrowing a book from the public library or downloading it via eMule?
From one side I think it is worth noticing that the book industry is not suffering from the free availability of books in public library. It may suffer from the fact that people read less and less, but not from the fact that I could chose to borrow a book rather than buying it.
From the other side I wonder how could it be legal? 🙂 After all if everyone would go to the library, then no one would buy the book and the writer would be starving. Would it be enough for the authors to receive the payment just from public libraries? In that case authors could be payed directly from our taxes cutting the public library service costs, the media costs, by letting everyone access everything online.

African Roses

I would like to write about the Hungarian notation, the good (not much) and the bad (quite a lot) of this source coding convention, but I really can’t. This matter sounds quite silly and irrelevant. My mind is still full of the images and the implications of the documentary I watched Saturday evening on La7. The title is “Rose d’Africa” (African Roses) and the author is Daniela Grandi. Unfortunately I cannot find the video on youtube nor google video, neither a summary on La7 website.
Well, what impressed me so much? The documentary brings hard evidence about the deep injustice affecting the African continent. An injustice that European and American corporations are feeding actively.
In Africa people actually die of starvation, sadly no news, but they are prevented from exploiting their fertile lands (such as near Tana River) because these lands are planted with roses (and other flowers) greenhouses. Flowers are grown and then sent to Netherlands for world distribution. Inhabitants, mostly women, are exploited in the greenhouses under terrible working conditions. The wages are incredibly low (basically we could pay for a pizza and a beer what they earn in a month), while they have basically no right. If they got pregnant, they work until the last day and then are fired. They are requested to enter the greenhouses just a while after the chemicals have been sprayed on the cultivations.
Moreover the remaining chemicals are dumped in the river, poisoning and polluting the environment.
Just outside of Nairobi (the Kenya capital) there is a huge slum where 2 millions of people live from what they can find in a nearby giant dump. That’s two millions! The slum has no sewers, no electricity and no water. The air is polluted by the dioxin coming from the dump.
All this is heartbreaking for me, deeply saddening, I can’t stand the idea of such suffering and waste. And I’m asking myself what can I do for helping…

The Good, the Bad and the Ugly

Engineers are supposed to deal with systems, usually large and complex devices that are expected to work. They are expected to work at least, but the common expectation is that they keep working reliably under a wide set of circumstances and mostly regardless of the environment. Consider any system that results from an engineering process (say a TV set or a car) from this point of view – it is not enough that the device works fine only at the seller’s location. This should put under the right light one of the most used programmer defenses: “It works on my PC”.

For us, as programmers and programming team leaders, the point of concern is how to deliver such robust products that could reliably work even in non-clean room conditions. A lot of entropy has been sacrificed to this goal and I don’t want to start anything new or propose any existing process methodology, I’d just like to recall what a friend of mine reported from one of his senior coworkers (thanks Xté).

This is a quick analysis that allows you to understand how much in good shape your project (or task) is.
Consider two nearly binary variables – working and understanding. You can get four combinations that identify four states of the system composed of the object the engineer is working on and the engineer itself. Here we go to analyze the four states (I swear, I’ll be brief).

It doesn’t work and you don’t know why. This is the typical state of the project start, you have this black box not working as expected and you are supposed to fix or implement it. This is not so bad if you have enough time to study, ask other people, analyze, and get your knowledge on what you need to do to fix it. Summing it up, this can be fair or bad according to the time you have.

It doesn’t work and you know why. This is quite good. After all, knowledge is power. With the knowledge you can both devise strategies and solutions and figure out the time or the means you need. Moreover, you have plenty of facts to explain the situation to the management and ask for the most suitable resources you need to accomplish the task.

It works and you know why. Perfect, you achieved your goal. You fully understand your system, and why is it working so that you can predict to a good extent when and how it is going to work.

It works, but you don’t know why. This is the worst case of all. Unfortunately, the rush and the wrong assumption that if it works then who cares, can lead to this terrible situation. The real problem here is that you cannot make any assumption for when the system will cease to work, you have no clue how to deal with it both to repair, move, or change. You have no warrant that the system will continue to work.
The fact that it works usually leads the project management to consider it complete and to make pressure to move on. A false sense of security may affect the team cleaning the way for greater disasters.

There are some quick corollaries to this analysis. First, always try to understand what are you doing even if it may seem like a waste of time. Second, always include a learning time in your estimations. Third, poking randomly around to fix things is a dangerous way to further damage a system while creating the illusion of work.

Programmers strongly rely on tools, basically, there is direct contact with the matter we design and develop, our tools are our manipulators and probes into the hidden work of electrons. We have to know our tools by heart. We cannot go away with a rough understanding of the language we use because we cannot afford our ignorance would let something in.

The natural question that could arise is: “What is the extent required for the knowledge?”. Does programming require me to understand OS internals? Digital electronics? Semiconductor physics?

Well, it depends. Gone are the times when a single man could brace the whole human knowledge and art in his lifespan. Nowadays we have to stop at a given interface, taking for granted that what is going on behind us is good enough. I think that you have at least a good knowledge of the first interface you are using, be it OS system calls, environment libraries, or hardware if you are working closer to the metal. Anyway, an average knowledge up to the next barrier could only be good when you are hunting for problems since it could help you to better exploit the environment and to get helpful hints to get you out of trouble… troubles where engineers spend most of their time.