China's Global Power Projection

China undoubtedly has a global economic presence. They are the nation with the world's 2nd largest GDP. This GDP growth was achieved in two ways: exports and the building of infrastructures.
However there is another aspect which I do not often see reported in the mainstream media here in Europe. Their efforts for global power projection. They have stated their goal to protect their sea lanes and maritime zone. In principle this is perfectly legitimate. In defense terms this has been expressed in many ways.
Their Navy and Air Force are presently attempting to assimilate technology using a spiral development model. The clearest example of this is their naval destroyer program.
The Chinese have expanded their navy qualitatively and quantitatively. The most visible effort is probably the aircraft carrier Liaoning which embodies a lot of concepts the Chinese employ in their quest for power projection. It is not limited there. They have been building frigates, destroyers, as well as larger marine infantry transport ships with the capability to deploy hovercrafts for beach landings.
China is building a blue water Navy and making naval visits to Africa and South America. The markets they are attempting to court for export of their industrial and military products.
As for the Chinese Air Force they have demonstrated the capability to manufacture products competitive to the mainline units of the Western forces using the Su-27 derivative and their own J-10 as counterparts to the F-15 and F-16 respectively. At the same time they have been developing a stealth fighter program which seems to have some teething problems but has been progressing a lot faster than the efforts done by the USA. Part of the reason is their more organic development model. An aircraft does not need to have the absolute latest of everything in it. They commonly deploy electronics, weapons systems, engines, in older platforms first and only later do they build the novel airframe. 
I would like to bring attention to the H-6K bomber. If you judge it by its exterior looks it looks pretty much obsolete. It is after all based on the 1950s design of the Tu-16 Badger bomber. However they changed the electronics, radar, engines, weapon systems. The crew size was halved. The engines are a late 1970s design which is at least as sophisticated as the one employed on, say, the USA B-1 Lancer bomber. These are basically MiG-31 engines sans afterburner. The new weapon systems are pretty telling. Stand-off cruise missiles and anti-shipping missiles. This implies the Chinese wish for a strategy of air supremacy and sea denial not unlike that pursued by the USSR. However their naval ambitions are much larger. The fact that they do not invest as much in submarines as surface warships tells us this much.
The global power chess game is moving from Europe Atlantic region towards the Asia Pacific. Troops and units are being redeployed as the tensions increase. So far it is a staring game. But time will tell.

China's Growing Purchasing Power

Much has been made in the news here in Portugal that Chinese have been snapping up property at the most expensive and central locations in the capital. Yet this has been happening pretty much all around in the world. Notice the problems in Hong Kong. Mainland Chinese demand for property there made housing costs climb tremendously. In response the local government changed  their laws to require houses to be inhabited for a minimum amount of time.
This is not restricted to the Chinese. Many affluent citizens of other nations have been buying property as well as trying to gain citizenship elsewhere for quite some time now.
Many Chinese are now attempting to invest outside of China and it is fairly common to see Chinese tourists in European cities, as we used to see Japanese and Korean tourists years before, as personal income increases.



The business unit of Qimonda has failed a couple of years ago in Portugal. This company, formely known as Infineon, a spin-off of Siemens, used to be one of the major memory manufacturers in the world. This European giant has lost their ground to companies such as Samsung and Hynix from South Korea. As Siemens continues to shed off increasingly more production offshore or mothballing units, it makes one ponder how long will this corporation continue to have presence in our shores.

The fab, if it has any equipment left, could be used as a starting point for a semiconductor R&D center similar to the ones in Dresden or the ones being planned by ATIC in Dubai. Another alternative would be to sell the assets to a company such as SMIC. The Chinese cannot use modern lithography tools in mainland China and could be interested in a business if the powers that be would be in favor. Another alternative is to propose to European manufacturers to do the wire bonding in Portugal instead of Malaysia or other places with cheap hand labor as the chips roll off the semiconducting presses.



What is the deal with motor vehicles? Why are we so dependent upon them?

According to military theory, one of, if not the oldest art of man, we have a basic need for movement in the 2-dimensional space that is the Earth's surface. Motor vehicles are simply the most convenient way of doing it right now. Yet gas prices keep spiraling up and no one knows where it will end. Some say we are over peak oil. Government enforced attempts to increase usage of biofuels have met with criticism, which says these have led to the current food crisis, where prices on basic foodstuffs has increased some 70%, with riots in places like Mexico and elsewhere. I suspect this is somewhat true, but the high prices are mostly due to speculation. Having seen higher prices after Katrina, they got addicted to them and started pushing the price up, trying to see how far it will go. Lets not forget this market is controled by cartels.

Some simple math shows that use of biofuels using current crops, yes, even palm oil, is untenable if replacing fossil fuels for transportation is the goal. Some mention fuel cells and hydrogen. While concept cars like the Honda FCX Clarity have gone a long way forward, there are fundamental scientific and engineering reasons why hydrogen vehicles are a bust. Fuel cells, as used in the FCX, currently use expensive platinum, hydrogen is too expensive and low density. Hydrogen is expensive due to the conditions of the terrain and physics. Most hydrogen on Earth is locked in plain old H2O and a lot of energy must be used to split it. Hydrogen is a light gas at normal temperatures and pressures hence is low density. Liquid hydrocarbon fuels are higher density in a safer and more convenient package for several reasons.

I suspect the alternative will be electric cars powered by batteries of some sort. By plugging into the grid, the energy source (coal, gas, hydropower, nuclear, wind, solar) is divorced from a car's hardware. This enables a quantum leap forward in our resource usage, similar to the second industrial revolution after the electric grid was developed. Electric cars are also more energy efficient while driving, easy to add regenerative breaking, and have less expensive "fuel" costs even today. The problem is battery technology: its either too expensive or has bad density, or both. This is being progressively solved. We keep seeing more hybrids which incorporate electric engines and batteries or capacitors. I expect this trend to progressively lead to full electrics in the space of a generation (i.e. 20 years). The poster child for the electrics is of course the Tesla Roadster.

The question is if this will be enough to prevent major strife in the meantime.

In the meantime what to do if you want your set of wheels? Guess what, I finally decided to buy a car recently. I bought a VW Golf TDI which does 52.2 mpg or 4.5 litres diesel per 100km. Compare that to a supposedly fuel efficient hybrid like the Toyota Prius which does 48 mpg. I marvel at the wonders of diesel engines and fuel.

Any other low consumption car should have been ok. Even if conventional oil prices go off the wazoo, there are still coal-to-liquids, tar sands and biofuels to replace both gasoline (including bioethanol from sugar cane) and diesel (including biodiesel from palm oil) so your vehicle will still work, albeith using more expensive fuels. Should tide me over nicely until electric cars are in general use at reasonable prices. Or so I hope.


White Collar IT Revolution

I went to the hospital today. There was a queue of people waiting. Some simply wanted to get a stamp in a prescription. Others merely wanted to schedule an appointment.

The government clerical workers, all women, toiled the best they could. I could see the grim determination pictured in their faces. I could see the speed they were processing each request. They were fighting, with a mix of one software generation old information technology systems, and reams of paper. They were stressed to the max, as were the people waiting. I was sad at this state of affairs, because as a software engineer, I know we can do better. All these tasks can be automated by computers, done via the web by users and health care professionals in real-time. No waiting. No stress.

When people say they fear loss of jobs like these I say:
To hell with those jobs! They are dehumanizing. People should not be treated like cogs in a machine.

Then I had a flashback. I felt like I was watching a modern version of a telephone switchboard operator.

Some things did give me comfort. The smile of a beautiful girl, the tranquility of a woman carrying a child, the glorious beach.

Then I had another flashback: one hospital I went to was already providing blood analysis results via an Intranet application in PHP. It was an incomplete application, probably a hack, but already it was giving health care professionals valuable real time feedback. In another, a Java program empowered the doctor to schedule appointments. In yet another hospital, prescriptions were directly provided by the information system from the doctor to the patient.

As our ancestors the Romans, that people of great engineers would say:

Adde parvum parvo magnus acervus erit
- Add little to little and there will be a big pile.


Practices of an Agile Developer : Working in the Real World

Summer has arrived. The local telephone monopoly has succeeded, for the second time in weeks, in cutting the lines to the neighborhood without warning. I was without Internet access and little chance to work. This provided good motivation to finally put my hands on some of the books lying around here. I wish to speak of a book, which I found very interesting indeed.

Practices of an Agile Developer : Working in the Real World
by Venkat Subramaniam and Andy Hunt

This book has a set of rules, or best practices, for a seasoned programmer or project leader wishing to work according to agile methods. The authors are experienced in the matter. Andy Hunt had previously been co-author of The Pragmatic Programmer: From Journeyman to Master. This book is chock full of good sense, resonates well with my experience, gives examples and practical advices about how to solve software development issues. Not only coding, but design, team and client communication issues as well. I believe it has good ideas for all of us interested in software development and deserves nothing less but praise. It is solid quality prose throughout. Sage advice condensed in a small and easy to read book.

To better provide you with a feel for it, here are some nuggets:

Quick Fixes Become Quicksand
A former client of Andy’s had this very problem. None of the developers or architects understood the underlying data model of their domain, and over the course of several years the code base became littered with thousands of +1 and -1 corrections. Trying to add features or fix bugs in that mess was a hair-pulling nightmare (and indeed, many of the developers had gone bald by then). But like most catastrophes, it didn’t get like that all at once. Instead, it happened one quick fix at a time. Each quick fix—which ignored the pervasive, underlying problem—added up to a swamp-like morass of quicksand that eventually sucked the life out of the project.

Criticize Ideas, Not People
You’ve probably seen design discussions that get out of hand and become emotionally charged—decisions get made based on whose idea it was, not on the merits of the ideas themselves. We’ve been in meetings like that, and they aren’t pleasant. But it’s only natural. When Lee presents a new design, it’s easiest to say, “That’s stupid” (with the clear implication that Lee is stupid as well). It takes a little more effort to elaborate, “That’s stupid; you forgot to make it thread-safe.” And it actually takes real effort and thought to say the far more appropriate, “Thanks, Lee. But I’m curious, what will happen when two users log on at the same time?”

Damn the Torpedoes, Go Ahead
Courage doesn’t feel very comfortable, certainly not ahead of time. But it’s often the only way to remove obstacles that will just grow worse over time, and you’ll feel relief instead of increasing dread.

Keep Up with Change
“There is nothing permanent except change,” said Heraclitus. That has been true throughout history, but it’s especially true now. You’re in an exciting and ever-changing field. If you graduated with a degree in computer science or some related professional field and thought you were all done with learning, you were dead wrong.
Keep up with changing technology. You don’t have to become an expert at everything, but stay aware of where the industry is headed, and plan your career and projects accordingly.

Invest in Your Team
Find areas where you, or someone in your team who is knowledgeable, can help the rest of the team come up to speed (this has the added advantage that you can discuss how topics apply specifically to your applications or projects).

Know When to Unlearn
As technology marches on, things that used to be of paramount importance fall by the wayside. Not only aren’t they useful anymore, they can actually harm your effectiveness. When Andy was first programming, memory overlays were a big deal. You often couldn’t fit the whole program in main memory (48KB or so) at a time, so you had to split your program into chunks. When one chunk was swapped in, some chunk had to be swapped out, and you couldn’t call functions on one chunk from the other.
We’ve seen ten man-year J2EE projects go down in flames, only to be replaced with a month-long hack in PHP that delivers most of the features. Growing interest in languages such as PHP and web frameworks like Ruby on Rails show that developers are catching on that the old ways might not be cutting it anymore.
Old habits are hard to break and even harder to notice. The first step to unlearning is to realize that you’re using an outdated approach. That’s the hardest part. The other hardest part is actually letting go. Mental models and patterns of thought are built and refined at great cost over many years. One doesn’t discard them lightly. And it’s not that you really want to discard them completely, either. The previous memory overlay example is just a special case of manually maintaining a working set of items from a larger cache. The technique hasn’t gone away, although that implementation of it has. You don’t want to drill into the brain and snip all those dendrites off. Instead, you want to use older knowledge in context. Reinvent it and reuse it where applicable, but make sure you don’t drag along old habits just out of, well, habit.

It had not come to my mind before reading the book, but even at 29 years of age, I need to learn how to unlearn. I made a personal effort to learn languages such as Java, C#, Python and PHP, not taught to me at college, but was still editing code with Vim. Since changing to IDEs with refactoring support, something which did not exist at graduation time as well, I can do much more in less time.