header image
Inefficient Machines
September 20th, 2010 under Biology, Computers, rengolin, World. [ Comments: none ]

In most of the computers today you have the same basic structure: A computing hardware, composed by millions of transistors, getting data from the surroundings (normally registers) and putting values back (to other registers), and Data storage. Of course, you can have multiple computing hardware (integer, floating point, vectorial, etc) and multiple layers of data storage (registers, caches, main memory, disk, network, etc), but it all boils down to these two basic components.

Between them you have the communication channels, that are responsible for carrying the information back and forth. In most machines, the further you are from the central processing unit, the slower is the channel. So, satellite links will be slower than network cables that will be slower than PCIx, CPU bus, etc. But, in a way, as the whole objective of the computer is to transform data, you must have access to all data storage in the system to have a useful computer.


Imagine a machine where you don’t have access to all the data available, but you still depend on that data to do useful computation. What happens is that you have to infer what was the data you needed, or get it from a different path, not direct, but converted into subjective ideas and low-quality patterns, that have, then, to be analysed and matched with previous patterns and almost-random results come from such poor analysis.

This machine, as a whole, is not so useful. A lot less useful than a simple calculator or a laptop, you might think and I’d agree. But that machine also have another twist. The data that cannot be accessed have a way of changing how the CPU behave in unpredictable ways. It can increase the number of transistors, change the width of the communication channels, completely remove or add new peripherals, and so on.

This machine has, in fact, two completely separate execution modes. The short term mode, executed within the inner layer, in which the CPU takes decisions based on its inherent hardware and the information that is far beyond the outer layer, and the long term mode, executed in the outer layer, which can be influenced by the information beyond (plus a few random processes) but never (this is the important bit, never), by the inner layer.

The outer layer

This outer layer change data by itself, it doesn’t need the CPU for anything, the data is, itself, the processing unit. The way external processes act on this layer is what makes it change, in a very (very) slow time scale, especially when compared to the inner layer’s. The inner layer is, in essence, at the mercy of the outer layer.

This machine we’re talking about, sometimes called the ultimate machine, has absolutely nothing of ultimate. We can build computer that can easily access the outer layers of data, change them or even erase them for good as easy as they do with the data in the inner layer.

We, today, can build machines much more well designed that this infamous machine. When comparing designs, our current computers have a much more elaborate, precise and analytical design of a machine, we just need more time to get it to perfection, but it’s of my opinion that we’re already far beyond (in design matters) that of life.

Living machines

Living creatures have brains, the CPU and the inner memory and the body (all the other communication channels and peripherals to the world beyond), and they have genes, the long-term storage that defines how the all the rest is assembled and how it behaves. But living creatures, unlike Lamarck’s beliefs, cannot change their own genes at will. Not yet.

The day humans start changing their own genes (and that’s not too far away), we’ll have perfected the design, and only then we would be able to call it: the ultimate machine. Only then, the design would have been perfect and the machine could, then, evolve.

Writing your own genes would be like giving an application the right to re-write the whole operating system. You rarely see that in a computer system, but that’s only because we’re limited to creating designs similar to ourselves. This is why all CPUs are sequential (even when they’re parallel), because our educational model is sequential (to cope with mass education). This is why our machines don’t self-mend since the beginning, because we don’t.

Self-healing is a complex (and dangerous) subject for us because we don’t have first-hand experience with it, but given the freedom we have when creating machines, it’s complete lack of imagination to not do so. It is a complete waste of time to model intelligent systems as if they were humans, to create artificial life with simple neighbouring rules and to think that automata is only a program that runs alone.

Agile Design

The intelligent design concept was coined by people that understand very little of design and even less about intelligence. The design of life is utterly poor. It wastes too much energy, it provides very little control over the process, it has too many variables and too little real gain in each process.

It is true that, in a hardware point of view, our designs are very bad when compared to nature’s. A chlorophyll is much more efficient than a solar cell, spider webs are much stronger than steel and so on. But the overall design, how the process work and how it gets selected, is just horrible.

If there were creators for our universe, it had to be a good bunch of engineers with no management at all, creating machines at random just because it was cool. There was no central planning, no project, ad-hoc feature emerging and lots of easter eggs. If that’s the image people want to have of a God, so be it. Long live the Agile God, a bunch of nerdy engineers playing with toys.

But design would be the last word I’d use for it…

March 24th, 2009 under Biology, Digital Rights, InfoSec, Life, rengolin. [ Comments: none ]

Would you give away your genome to research? It’s a bit tricky to define what kind of research and who will have access to it to do what…

I would kindly give mine, if it was licensed GPLv3.

Paying tomorrow’s pension
February 16th, 2009 under Biology, Life, Politics, rengolin, World. [ Comments: none ]

Pension plans are always too optimistic, and in this case, being optimistic is not at all a good thing. It’s actually getting the situation worse and, if nothing is done about it, it’ll be impossible to make the work force pay the pension for the huge retired population.

During the 80’s and 90’s we learned in school that European countries’ population pyramid had clear signs of development, because it had low birth rate and high life expectancy. Opposed, of course, to those from Brazil at that time, which was pretty much triangular, especially in the poorest regions.

This is obviously a problem as much more children are being born and dying, due to lack of education of the parents (that have dozens of children rather than a couple) and complete lack of health care. They were adopting the R-selection (as insects and lower organisms), where the more children you have, the higher are the chances of having grandchildren (and so, propagate your genes). It may sound terrible, but if you actually go there and talk to those people, that’s what they say. If you say you only have two children they think it’s an absurd, asking: “what would you do if one or two die?”. It’s not lack of love for all of them, it’s the hard truth they have to live with.

Now, terrible as it is, let’s see the other way around. In a high educated society, with excellent public health care, you normally see couples with none, one or at most two children. Seeing three is ok, but four is an absurd. How can you cope with all of them? Imagine the cost of childcare! (Note that this is no problem for those that have 15 in the situation above). What happens is that, with time, less children become adults and the number of retired people get bigger than those that pay for their pensions.

You may think that you (retired folks) have paid already your public and private pension in the past, but truth is that both the government and the banks already spent your money on something else (probably paying the pension of your parents). They never think soo long term as they ask you to. They force you to think on your own pension when you’re around 30 years old but all that money is being re-invested, lost and getting money from the government to pay the bill. Government money (from your tax and pension payments) were actually to pay other bills they had in the past, and they hope they’ll have money in 30 years to pay yours.

The big problem is that, today, the number of employed and retired people are still similar, but in 50 years it’ll be very unequal. With better health care (as we all expect), with stem cell research, gene therapy, cloning and other wonders of modern medicine we’ll probably be immortals by the end of the century. How can a small group of people between 20 and 65 years can ever pay for the pension of 65 until 200 years old? We don’t have to go so sci-fi, nor so distant in the future, some predictions are telling that the size of the work-force is going to be much smaller. Either the pensions payments go up or it’ll be impossible to pay up.

Have more children?

Until now the answer is “Have more children!”. Lots of couples in “baby-age” nowadays are having more than three children. They do it because, in developed countries, it’s cheap. Health care is free, schools are free, medicines and most services are free too. Who is paying for that? All of us. What happens with having more children is that, not only the work force is paying for the pension of the old, but also for the joy of the young. If it’s already a disaster to rely on such a small work force to pay the pension, how fair is it to demand them to pay for the young too?

But there is another, even bigger, question: Isn’t the population already big enough? Can we ever give decent food to every single living being (including animals, of course) that already exists in the world? Do we really need more? Shall we let people kill babies in China with the one-child policy while we have joy with our 10 children? If we really need those babies, shouldn’t we be adopting the “unwanted” Chinese, Ethiopian, etc?

Well, I particularly don’t believe in cheap charity. As my mother always said (and stuck for life in my mind): “Give the fishing pole and teach them how to fish”. So, I still think we should promote education and health care for countries in need so they can also have a population pyramid like the developed countries, but the policy of children, pension and taxes has to change. Of course, education and health care do take some time to evolve, and the children on those countries today won’t benefit from that, so plain old charity IS also fundamental to help those regions.

Managing the retirement age

People’s health is better today that it was 30 years ago. More and more people today retire older and older (quick Google for “increase retirement age” and you’ll see), and some countries are even increasing the official retirement age. That helps a lot, of course, but it’s only temporary and can work against the people. What happens, for instance, if the average retirement age decreases from one year to another? Would the official age reduce too? Is it fair for everyone, between one year and the other? I don’t think so.

One possible solution is to provide incrementing retirement payments, proportional to age and external remuneration. Say I turn 55 and, because of health problem, I need to reduce my work load by one third. I should be able to get one third of my retirement and keep on working, until I need another break and get, say, half of it by the age of 65. I could have gotten the full amount, but because I’m still working (or getting funds from elsewhere), I only get the amount proportional to what I was earning before and am now.

In numbers: With 55, I’m earning 60K a year. I have to work only 2/3 and therefore get only 40K. My pension is total of 30K, and 1/3 is 10K, so my new salary is 50K. With 60 years I need another break, so my new salary is 1/2 (30K) plus 1/2 of my pension (15K) = 45K. If I stop completely, I’ll only receive the 30K or my pension. Of course, if you want more you can always make a private pension plan and trust your bank won’t go bankrupt in the next 30 years.

Why this is fair?

  1. If you’re still working full steam you should not get money from the government.
  2. If you still want to work but can’t full time, you should get a proportional help from the government, but only what the government can afford to pay
  3. If you can’t work at all, you should receive the full amount, exactly what the government already pays you today

This is just an example of how things can be worked out, not intended to be extensive not exhaustive. There are plenty of room for good ideas, we just need to get people talking about the alternatives rather than only thinking about how to get MORE money.

Why is retirement SO important?

Simply because there is just too much people in the world. Malthus would say: “Kill’em all”. I’d rather say: “Don’t let them be born at such an enormous rate”. If the solution for the future recession is having more babies, we’ll get ourselves into yet another one, much worse, in the next generation, like a snowball.

We have to stop having babies right now, deal with the consequences right now and hopefully in the future, our grandchildren will be better off. According to the CIA, the world population has just passed 6.7 billion people. With birth rate at 20/1000 and death rate around 8/1000 (same source), it’s not going to lower so soon. Raising 2% per year and with mortality rate extremely lower than in nature (which varies a lot, but seldom reach 0.8%), it’s very likely that in a few decades we’ll be the only animal on the planet. In a few centuries maybe the only living being (if you can say so).

Will we discover how to do photosynthesis with melanin? Or will we become cannibals?

Bioinformatics and its problems
February 21st, 2008 under Bioinformatics, Biology, Computers, Devel, rengolin. [ Comments: none ]

For the last two months I’ve been writing a text about software quality in bioinformatics and the first part is done: I finally finished the basic concepts and tasks on why and how to perform software quality assurance in bioinformatics.

The big reasons why I focused in bioinformatics are:

  1. I’m working in a bioinformatics institute
  2. Bioinformatics has LOTS of problems

If you liked the first part (link just above) or would like to know more about my solutions and ideas keep reading. Use the root link as your entry point and go reading by chapter.

I couldn’t do the next/previous links as the wiki software doesn’t have this automatically and I didn’t want to hard-code it in the text (it’s a software quality text, isn’t it?).


  • The text was written very fast, you’ll probably find lots of incoherent phrases and grammar errors, ignore them for now as I’m re-reading and re-writing everything.
  • I’ve put more than I think I should and am now filtering what’s worth staying. I might also add a few more new things.
  • Most code samples won’t work, they’re a simplified language for clarification only.

Do let me know if you think you could add something I forgot or disagree on any concept, the text is in a very immature state yet.


Creative Commons License
We Support



National Autistic Society

Royal Society for the Prevention of Cruelty to Animals


End Software Patents

See Also

The information in this weblog is provided “AS IS” with no warranties, and confers no rights.

This weblog does not represent the thoughts, intentions, plans or strategies of our employers. It is solely our opinion.

Feel free to challenge and disagree, and do not take any of it personally. It is not intended to harm or offend.

We will easily back down on our strong opinions by presentation of facts and proofs, not beliefs or myths. Be sensible.

Recent Posts