Thursday, October 19, 2006

Mumbai to Goa

This is the train station in Mumbai, Victoria Station on the inside. You can see that people are
sleeping, standing, lying and sitting on the floor, even up to vomiting. I guess that is what the heat does to you. When you go a little bit further, there is a special waiting room for ladies only. The reason, as I have been told, is that the men start fooling around with the ladies, so they need to be protected.

As we got to the station, the train was delayed. "Quelle surprise!", because they normally are. The first guy told us it would be only 2 hours, the other guy said 1 hour and later it was called on the PA to be three hours, up to 10am. When you travel by car that early in the morning, there are no problems whatsoever with traffic. Even up to 7am the streets are really calm.

We decided actually to take it easier and book a plane. This will mean that I miss the train ride through the country to Goa (and travelling in India by train is an experience you should not seek to miss), but it will allow us for some easier time in Goa and since we have more people travelling with us, we opted for the latter.

Goa is not really qualifiable as India. It is a state about the size of Holland, slightly smaller, not sure about the number of inhabitants. It has a very strong Portuguese influence still and certain parts are recognizable and could be Bahia, Porto de Galinhas or Itamaraca island.

The boy on the right was also at the station. He's getting things here and there, I think for recycling. He tugged my shirt and wanted his picture taken. So there you go.

The plane was with Go and pretty cheap through competition mostly. The fare is about US$80. It even left on time, but we were almost late due to unforeseen roadworks and weird people on the road. Goa has lots of tourists from all over the place, French, British and Germans. As said it is not very Indian, but has quite some interesting sights that are more contemporary.

If you have never seen an Indian taxi on the insight, here is your chance. This was taken in Goa, so I guess it is still lacking the extensive ornaments.

Goa has a Portuguese fort, cows walking around all over the place since it's more country-side and lots of little towns and places. There are some well-known restaurants here and there where the outsiders go (the people that buy or rent houses around Goa).

As a recommendation, I would say 2-3 days are good just for relaxation. But I would definitely not recommend going "just" to Goa, because you will not be able to claim you have gone to India.

At the moment we are just driving around, using the holiday facilities from our hosts and taking it really easy. I just finished a book I was reading and will be starting on another. Then in 3 days we are going for a longer trip to Delhi, Jaipur, Jodhpur, Udaipur and Agra. Every 2nd day we are travelling for 5-6 hours by car around the golden triangle in a Toyota Innova (quite big and comfy car). Then one full day for sightseeing. This should make up for the train trip.

I'm not sure if I will be posting for the next 3 days, but let's see. I'm making pictures the whole time and am reading more on the next book "The world is Flat", which is ideal reading in this area, along with another book on Bottom Of Pyramid that my wife is reading.

As a final anecdote... the apartment we were in never had any problems with the elevator. Just that as soon as we came back from dinner, the elevator got stuck with my wife and our host in it. We were already upstairs waiting for them to return, but it took them more than 15 minutes already. Going downstairs, the guard asked us to help to speak to "those people stuck in the elevator that did not speak English"... well, they did, but the fan was making too much noise. Eventually the main power was switched off and the elevator doors opened, freeing them from the horrible hot air in the basement. They were stuck for about 20 minutes eventually.

G.

Tuesday, October 17, 2006

Mumbai Market

Before heading off towards Goa tomorrow, we decided to look at the local commerce. The first thing we did was visit the market. Here are the pictures. I have many more, but thought these ones are most telling.

The question about why there is not any violence, but the country is, overall, poorer than Brazil is starting to find some answers. A key explanation for this fact has to do with capitalism and materialism. Materialism itself has, until now, been very much rejected by the population. However, Levi's, Nike, Coca-Cola, expensive branded clothing and especially television, american shows, etc. are invading India. This explains that on one hand you see the very strong Indian influence, like in this market, but then as a grand contrast a shopping mall that requires walk-through metal-detectors against terrorists (checking news on CNN, you can see that Mumbai has suffered from terrorism.

It is the lack of materialism and envy which I contribute greatly to the calmness and lack of violence in India. People don't care about things or having things of equal cost (I do explicitly not mention value here).

Well, this expensive shopping centre I have only seen once and not many are like it. But, I do see a strong demand for this growing, which probably will also mean a couple of changes and irregularities in India's society.

I do hope that it does not lead to homogenisation. Looking at the country so far, there are a lot of interesting values and lessons to be learned. I don't think it is even remotely thinkable that the rest of the world will ever want or become equal, but at least certain considerations and reasonings are worth pondering over for our own societies, especially the western worlds.

Other than that, I did buy my clothes at the "expensive" shopping centre. You get very beautiful cotton shirts for about US$20. In R$ that would be about R$45? If you go to Richards in Recife or any other Brazilian shop, the cost of these shirts are much higher. Due to higher wages on seamstresses? I don't know!

The rest of the day we went to see some other things, like lunch at a club that is allowed for Indians. In the time of the colonization by the British, the Indians were not necessarily admitted at every club, regardless of their social status or riches. So, there was a Lord that constructed his own club and made it more suitable for the local people.

Very good food too!

G>

Monday, October 16, 2006

Pictures of Mumbai

This is the gateway to India. It stands at the port in Mumbai. To explain what Mumbai is all about:

It's the financial heart of the country, it's where Bollywood is located and is the industrial hub of about everything. You can notice that this city has money because every half hour you will see a Mercedes, BMW or other type of car pass through. Many cars are already manufactured here, which makes them a lot cheaper. Cars that are imported will typically have a 300% trade barrier. At least originally, I heard it was reduced to 100% due to international pressure. But still, that incredible Maserati I saw yesterday looks to belong to someone that doesn't need to care too much about money.

Historically, this city was inhabited by Koli fisherfolk, which goes back to 2nd century BC. Then it was ruled by various Hindu dynasties, invaded by Muslims in 14th century and then ceded to the Portuguese in 1534. The British were here from 1665 onwards, but leased to the East India Company. And so, Bombay evolved to become a trading port with merchants and pretty soon thereafter Bombay was the trading HQ of all east-coast of India. It had a cotton boom because the American Civil War dried up all supply of cotton from the US. Thereafter it played a big role in India's independence.

Two of the main landmarks are the Taj Mahal hotel (which I visited yesterday and shown on right) and the Gateway of India. These are all on the southern point of the island, called Colaba. Mumbai is actually an island that is connected to the mainland by bridges.

The gateway of India is basically a colonial landmark in Mumbai. It was officially opened in 1924, but only used until some years thereafter (1948), when the British left India to leave it independent. The last British regiment left through that archway. Closeby, the Taj Mahal hotel, was architected by a Frenchman and built by a Parsi industrialist. Account has it that this industrialist was refused access by other hotels on the basis that he was a "native", so he constructed his own hotel over there.

The Bombay university and High Court are of Victorian style though. Another landmark is Victoria Station, which looks more like a cathedral than a plain railway station. The high court building is also interesting... Many of the court buildings around the world use the image of "Justitia", a blind-folded woman that holds the scales of justice in her hands. However, local stone carvers here saw things a bit differently... the image here depicted is that of a one-eyed monkey with scales.

Well, as you can tell, so far I have not really shown you anything of the real India, only boring colonial style buildings ;) We'll be travelling to other parts around India where the influences are quite different and more native. We're travelling by car and driver around the Delhi triangle, going to Jodhpur, Agra, Jaipur and Udaipur. We're deciding right now what to visit.Last but not least, a horse riksha. Not sure what it is really called, because the driver only speaks Hindi.

Mumbai, India

I have access to the Internet from the apartment over here and am writing some first impressions.

The "street security" in India in comparison with Brazil is amazingly good. The level of poverty here is times bigger, which means many more poor people on the street, but on the contrary the level of violence is many, many times less. There is simply no reason to worry about people grabbing your stuff or assaulting you with knives or guns. Well, not to say that it cannot happen, but it's very much unlike Brazil nowadays.

Mumbay isn't really high-tech. The cabs here for example are models that are from the fifties and I have trouble getting in because of the miniature size. The meters are from the same era I guess, not electronic but mechanical. Interesting side-note is that the taxi's do not have side-mirrors. Probably would be a burden because the people here drive very close to one another. Without a car horn you would not get very far.

India has humor too. And a good deal of it, but always still remaining polite and good taste. We were in the car yesterday and my host told me that his wife no longer allowed him to get upset in the car. So he said that from now on he will tell people that cut him off or do silly things in traffic: "Thank you! May your mother have many more children like you! I really appreciate this". Just shows a bit of the easy-going nature of the Indians that I have experienced so far.
Well, the photo here is taken just somewhere along the road in Bombay. There were 2 children playing close by and of course they were asking for some rupies afterwards. The city here, I feel, is not close to any measure of the real India, which we will only start seeing from Wednesday, but it is a very good introduction to let us take it easy and get used to it.

It's easy to get money here as well. Just go to a money-point and get cash. The outside of buildings can look rather impoverished, but once inside in a bank for example you can be surprised by majestic looks. This also works the other way. You can have majestic looking nice buildings with very poor furniture and looks inside.

The weather is very humid, like the Asian tropical weather you get in Singapore and Indonesia. Brazil is less so. The temperature is probably about the same, should not differ too much.

Going for lunch now... seeing some more this afternoon and getting adjusted in the timezone and all.

[EDIT] I've had to upload to a different server first, because uploads over this link in connection with blogspot don't work. Images now being served from googlepages instead.

[EDIT for guys at work] Check out the T-shirt!

G>

Saturday, October 14, 2006

Amsterdam Dock Lands

Just coming back from the Amsterdam Docklands at the moment. My uncle has a boat there and we visited for a short time. As you can see, "boat life" in Holland isn't that bad... We exchanged the craic of the last months I should say... and my uncle made a wonderful dinner.

Tomorrow, our plane is leaving for INDIA, so you may not hear from me for a few days due to new impressions and business to get our hotel sorted.

We are flying this time with Tyrolean Airways, also known as the company that produces "Dolle Pret In Het Tiroler Bed" and the company that now expanded to airlining to get more aliens inside Austria. We're flying through though, going onwards to Mumbai (India) and then get settled and fly through the country.

Soooo... I don't know my level of connectivity in that country. If all things are OK with net-cafe's etc.., I should be able to post a little bit. If not... I'm probably gonna have to post a resume of the Indian vacation back in London...

Cheers,

G>

Thursday, October 12, 2006

Heemskerk Unlimited

We arrived at Heemskerk today, at my sister's place. The first time I have seen my nephew "Sietse". As you can see from the picture, he was not really scared of me and he's already getting a bit "strong" after seven months only.

We all went to a restaurant in Heemskerk called "Bij de buurvrouw", which means as much as "At the (female) neighbour". It's a stakehouse that I would sincerely recommend for good quality food and good drinks and ambience.

There was a bit of a walk back afterwards through cold Dutch weather, but that's normal. Nephew Sietse was covered in a good blanket with some warm clothes, no worries theregh.

All in all, good time. Tomorrow we'll visit more family in The Hague and probably find some other places. Not sure if any other entries come up tomorrow, may have to wait until India (yay).

Talking bout India... Our flights to and from India got cancelled (BMI flight has a broken plane, apparently), so we had to rebook on BA returning from Mumbai and on Tyrolean Airlines going from Amsterdam through Vienna. Always the same as I go travelling....

At least no drunks to fend off this time :)

Tuesday, October 10, 2006

Cambridge & Schizo Drunks...

We went to Cambridge today to visit some family and friends. Saw the King's chapel again (worth a visit). Outside we took off to the market to some coffee place.

Just as we were walking back to the car, some drunk, schizofrenic guy came up to us and started harrassing. And he wouldn't leave... Until the point he started to pull my wife's arm... Then I jumped in and blocked him from there. He tried to veer around the group to try to get in front of everybody, but I veered along.

That's when I noticed he wasn't really "registered". The group went into a pub and I was still out on the street to give them some more time. He was about three heads smaller than me, but started to get really rude and calling me names and saying that he would not allow me to lie to his friends.... ooo.... kkk...

As I was just about to get into the same pub, he followed after me and started jabbing two really slow, soft punches with the force of a five year old (he was that drunk). I was carrying a bag in one hand and averted the punches with one arm. The pub owner came to the door and explained that he was gonna have to leave. When he was out, some people went to the car. Two minutes later we heard he followed one girl into the restroom and jabbed her there. So they called the police, but we left before the police arrived.

That's about the excitement that you get in Cambridge for a day... Quite different from assaults at gunpoint at a traffic light where they rob your car... oh well, better this way anyway!

Monday, October 09, 2006

Like, so cool, you know? I don't know...

Like, it's not polite to overhear, something like, conversations, but sometimes you can't, like, stop..., you know? I was, like, in the bus in Paris and there were, like, two British girls chatting, you know? I don't know...

The conversation was not very interesting, but because they always, like, used the certain stop-word "like" my brain temporarily developed a grep-pattern 'grep "like" <', I could, like, just not help myself.

For the time I was in that bus, I must have like, counted that word like, 5 times every minute. And then I am not kidding. I was, like 'oh my god!', that's a lot! You know, that is, like, 100 times or something for 20 minutes in that bus.

That's like, so cool, I was like... "oh my god!!!" , 'you know?' , I don't know...

Sunday, October 08, 2006

Paris...

Phew. Arrived in Paris on time after a flight from Recife directly to this capital. The flight was good because it left about midnight. After a full day's work you get quite tired, which is welcome for a boring old flight.

We got a hotel close to Opera, where you can find good-priced hotels with good facilities. Went to the St-Michel area for a small Greek dinner where the waiters perform some traditional Greek dances and customs. My dinner was traditional Moussaka.

The metro was already closed on the way back, so we walked back from St-Michel to Opera. The bed was quite wonderful after a long journey and walk.

Today I am already in London, traveled there by Eurostar connection. We'll have two meetings tomorrow morning and in the afternoon. Then to Cambridge on Tuesday and to Holland on Thursday.

Monday, October 02, 2006

Nephew Sietse & trip to India

Almost there. I'm going to travel this week to Holland to see my nephew Sietse for the first time. Has been more than half a year now since he was born, so about *** time... :)

When I was still sailing I set some travelling goals. 1 was visit India, that we are going to do in two weeks time. The time I have available is way too short, but still I believe I will get a couple of really interesting impressions. (the other goal was visit Moscow!)

The trips planned vary from Mumbai (arrival @ family) towards another city halfway to Delhi. Then visit Delhi, visit Taj Mahal, visit Jaipur, visit Goa and go back to Mumbai. We have some 17 days to do this trip.

So, that's the reason for leaving this blog a bit desolated. I'm trying to finish things up before taking off, but I'll try to post frequent pictures of the trip on this blog to accompany the trip. (subject to availability of pc bangs)

Thursday, September 21, 2006

A renumeration model for distributed development

We tend to think of the stone-age ways of tracking effort when we consider renumeration:
- work 8 hours, punch card @ 09:00, punch card @ 18:00, hour lunch... done!
- promotion: how many lines of code produced?
- promotion: how many bugs fixed?

All of these methods that deal with straight numbers used immediately for some kind of reward are subject to cheating (check out online games for example and the hacks available). Even if the technology were invented to try to prevent this kind of cheating, there is (and always will be?) a way to bypass that technology.

I therefore turned towards different renumeration methods and got the idea of looking at the renumeration model as a kind of market or "bazaar", a mini-economy inside the enterprise that is governed and managed by the employees. The idea is that the project manager or architect or whoever posts tasks on some board or custom piece of software. Then members log in later and from the description given, rate the work by allocating their estimation against it in the form of some pseudo-currency.

Then through consensus, people will have to agree the reward amount to complete a work. After a certain percentage of agreement (across all members), the task is marked as available to start work. The best choice from the available employees will then have to be allocated to the task. Tasks that do not get picked up in time will automatically increase the renumeration.

The fairness in the model is that if someone does not pick up and complete tasks, that person does not get paid, but will not reduce the value of the cooperative that much as he could have done would there be some hours/effort measuring mechanism.

The good thing about this model is that someone can do this from home. Log in to the company portal in the morning, find a job to do, finish it, post it, have it reviewed and marked as completed, commit work and start another. The professional working in this way is fully responsable for his own time management, meets maybe once a week together during lunch and at a rented meeting room facility, but for the rest decides *how* and *when* he works on the task that was allocated.

If the task is not finished, this will reduce slightly the value for the others, but at the same time that person does not get paid at the end of the month. The trick probably will be to pick up longer and shorter tasks as required, so that there is always some kind of in-flux, but that is experience.

Being 100% responsible for one's own time management is a level of freedom that maximizes quality of life, but also puts that 100% responsibility on the professional.

This model does have some flaws, for example inflation and/or deflation. In such a mini-economy, comparisons with other work items may cause the price to fall or rise, sometimes significantly. This could be a natural phenomena in smaller economies, because after all, it is the consumers that produce this kind of inflation or deflation, based on their perception of 'value' in the market.

The pseudo-currency is necessary in order to ensure that the money that was allocated is actually available. At the end of the month the cooperative members agree the actual total amount of money that is allocated to wages. Then that amount is distributed according to the factors of the pseudo-currency. This ensures that the cooperative manages their finances better.
Becoming more productive therefore gets people a larger part of the overall money. Not doing that much reduces this.

Task completion is another issue to deal with. That means, identifying that a certain task is actually finished with satisfaction. This may cause some diplomatic/political issues, because there may be an incentive for other members to discredit work of others for their own gains.

An extra incentive in teaching and learning can be created by setting up a forum that uses the pseudo-currency exchange as well. This is... someone picks up a task and starts work, hits a problem. In order to solve a difficult problem by somebody else, the question is put on the forum board with a certain pseudo-currency amount against it. The person that resolves the question will then receive part of the currency amount that was put against the work item by answering the question. This stimulates cooperation on the forum and people helping others out and stimulates also that people look/attempt first, then ask.

Basically, what is suggested here, is a method for renumeration in a distributed development company that is based on a free-market mini-economy, which is based on concensus and fairness and aimed at the reduction of cheating (fair compensation across the cooperative)

Update: We discussed this model at C.E.S.A.R shortly and came to the conclusion that there are some rules that need to be in place for this model to work effectively. This could be compared to market regulation by the government.

Two rules need to be in place:
  • Ensure that there is always more work available then people to do that work
  • To penalize the group as a whole for not meeting a certain monthly target. This is to prevent people from becoming 100% individualist (not caring about helping out others in the cooperative, but taking on many tasks throughout the month)
The main rules should focus on creating the right eco-system (incentives and rewards) for a group to function properly, taking into account the proper balance between individual and group interest.

Monday, September 18, 2006

Google.org

Google has a philantropic organization, but this is not necessarily "not" making profit. Interesting (cannot be classified "philantropic" because of the definition), but still a good start.

The Google org helps start ups with specific "friendly" goals ( giving it seed money of about $1 billion and a mandate to tackle poverty, disease and global warming. )

Clearly shows that people nowadays consider the only reason for existence for a company should be to make money.

Hopefully this initiative will develop some companies that have "meaning".

http://www.nytimes.com/2006/09/14/technology/14google.html
http://www.google.org/

When going to the google.org website, notice how "simple" the proposals are that Google has invested in. When you think about it, it's nothing too fancy. Just a small initiative that can already make small changes to the community without costing a lot of money. That, I guess, is the key for this kind of work. Create opportunity and capability, not waste buckets of money.

Tuesday, September 12, 2006

Guy Kawasaki...

Guy Kawasaki is a managing director of a venture capital firm in the US.

(read more here...)

He has a video on Google that shows his presentation about his book "The Art of the Start". I think it is a very refreshing look on starting up a business and deserves to be seen, not just if you want to start up a business, but also if you want to revive your own work and re-evaluate your contributions to your company (how it can be made more effective).

Check it out, and then perhaps buy his book :)

Monday, September 04, 2006

Democratic Organizations?

Recently some guy on Slashdot asked the question why it would be impossible to have a sort of company with democratic values?

I responded, mostly posting some links to places here and there about cooperatives and also about things I posted in this blog.

Today I got invited for a forum set up for the purpose of discussing (what are) how to set up democratic companies and who knows, it might go somewhere. Maybe not in a practical sense (setup of a company), but at least some more generated knowledge and especially.... viewpoints!

Yes, a democratic company is much more subject to individual opinion. So, knowing the expectations of others gives a lot more insight into this process.

Wednesday, August 30, 2006

Investment of time

I've been thinking about investment opportunities, seeing how companies in Silicon Valley waste their money on the ideas that come up, etc... For investment people, what it boils down to is the knowledge that the money they spend is recuperated later somehow and in what timeframe this is supposed to happen. The next rant is about software in particular.

For investment to be successful, a certain amount of confidence and what is called in Dutch "koffiedik kijken" (looking at the coffee residue left in a cup of coffee) is necessary. This confidence is created through market research, you need to know how the product will be perceived in the market, the value that the product will generate for the consumers and how the company expects to extract some part of that value for itself, mostly. Other important aspects are capable management that is focused on making profit (not on the product) and of course the skills to bring the product out in the first place.

The investment in Brazil seems of a different nature. Money isn't exactly lying around on the streets, plus there do not seem to be any private investment funds here and there that have money to offer for good ideas.

But next to money investments, there exist other types of investments. One of those is the investment of time. Time investments are personal commitments to pursue a particular product with the belief that later on, this product is going to be perceived very well in the market. Rather than actually requiring money and hiring people, you use a "risk-job market" approach where you request people to spend time on some product implementation with the promise that if the product does take off, they will be renumerated later on. If not, bad luck (but the experience will teach you a lot, if you get into the why's and nots)

In this model, the requirements for market assessment still hold and this makes the contributors for a project personally responsible for knowing how a market works, psychology factors, etc... Because if you don't, you might just spend your time (your personal investment) on the wrong project.

So, the question in this model for investment lies in the way how you get the market information (talk to whom? learn about economics?) and the question of which idea is going to be successful and how you think you are going to use your current skills (or learn new ones) for contributing to that project. Eventually, you might find that you're constantly chasing up on new opportunities, once you have found a way to make this a repeatable successful process and previous risks taken have generated recurrent revenue for yourselves (becomes your job to take risks in normal worktime).

Thursday, August 24, 2006

Rational Ignorance

Just reading up on some issues of human development, voting and democracies. Found the following term on wikipedia, which I think is quite applicable for a non-participatory democracy:

http://en.wikipedia.org/wiki/Rational_ignorance

This is just like the way we adopt a movie critic that likes movies that we like. In this way we let the political party, the politician, or the movie critic do the "heavy lifting" for us as we spend our time doing our job, raising our family or just lying on the beach.
That sort of sums it up. I was getting here through this link:

http://www.cidh.org/relatoria/showarticle.asp?artID=277&lID=1

which is a report on the importance of freedom of expression. One of the most important lines, I strongly believe, is the following:

"b) its instrumental role in enabling individuals to express their claims and call political attention to them, including their economic needs;"
which could be used to redefine poverty not just as a deprivation of materials and goods, but more as a deprivation of political power, resulting in the lack of materials and loss of dignity.

thoughts continue from here....

Wednesday, August 23, 2006

Operating Systems

I'm recently researching how an OS really works and getting my feet wet in Assembly seriously, for the first time. Assembly isn't really that hard, after all :)

I've written a bootloader so far, a 2nd stage loader and some parts of the kernel, but all without a file system. That's right, file systems all need to be programmed.

The following link is an excellent tutorial on os development. It shows exactly what the first steps are into getting the kernel ready. It assumes the use of GRUB to load this kernel and you can follow through the example with standard Linux and the ability to mount a single file as a file system on your /mnt. (then you need to create some kind of image still, but check out qemu for more information).


For my research, I am using mostly x86 instruction sets, no other processors yet. It all starts out pretty easy. The boot sector of the booting device (512 bytes) is loaded into memory at 0x7C00. Then it starts executing. In those 512 bytes, you basically load a 2nd stage loader from a determined memory location and then you have more bytes to fiddle around with the system. Any file systems used on the system need to be implemented separately.

Eventually, the kernel is loaded. This can already be a 32-bit protected mode kernel or perhaps starts off in 16-bit. I'm assuming 32-bit PM (cause that's how GRUB eventually calls the kernel) and then you'll generally do the following:
  • Set something that is called "Global Descriptor Table". This is a table with pointers to code segments, data segments, etc... in 32-bit PM.
  • Set an interrupt descriptor table. This is for the processor to indicate to the kernel that some operation on the processor failed (exceptions) and also to indicate to the kernel that some hardware has some new data to process. For example, hitting a key on the keyboard creates that interrupt.
  • Initializing video
  • Initializing keyboard
  • Running a while loop that continuously hlt's the processor until the next interrupt occurs.
Now, there is a chip on the motherboard called a PIT. This is a Programmable Interrupt Timer. This timer will frequently generate interrupts for the processor to handle. The kernel will typically execute a schedule function in this timer interrupt, see if any task is trying to get CPU time and if not, hlt the processor until the next scheduled event occurs.

Hardware may also cause an interrupt to occur, in which case the applications on top of the kernel will need to receive this interrupt events and either type the character in this edit box or another, depending on the focus.

Anyway, that's where OS's take off from. It receives hardware interrupts and timer interrupts, schedules the tasks with CPU time-slices and divides the CPU between those tasks. How this is actually implemented is mostly determined by the OS designer. But it's all not tooo difficult really (to understand the concept, not the implementation).

The applications may run in their own "application-space" with virtualized memory. That means that memory is paged in pages. From the point of view of the application, it is running in an area of memory of "0x0000:0x0000". For development purposes, this makes it very easy. It might of course actually be located somewhere else.

The CPU can be instructed to not let this application access memory outside a certain range. If the application attempts, the CPU will raise an "access violation" (as you may be familiar with on NT for example). And voilá!!! The kernel will need to treat the application and the error. So the OS very closely uses the hardware capabilities of the CPU to do all those tasks, including divide by zero, etc... It's not all too difficult to see that concept now.

Some parts of the kernel need to be written in asm, cannot be done in C. For example loading the gdt mentioned before, the IDT and some other operations like processor locks in SMP programming and spinlocks (atomic operations).

What the kernel really does is also up to the developer. You could consider writing an OS that only does databases (dedicated machine for databases), or you might want to develop a gaming OS (with direct hardware access for example with standardized hardware to make things simpler). There are no limits!

Friday, August 11, 2006

Imagining Software Ecology


I'm involved in a university course here in Recife where the objective is to develop software using processes established in an opensource software factory. Our project is developing software for a software cooperative to assist in the day-to-day operations. See link for more info.

The software cooperative by itself is an interesting company to look at. Already I have found various examples on software cooperatives, like Solis, Beluga or CoopSoft. Here is another story about software developed for co-ops and the problems they encountered in making it suitable.

What I think the future will bring is some sort of "software ecology". Software itself will be seen as something so stupidly down-to-earth, eventually, that it doesn't make sense to charge money for it. The thing that matters is what the software does for a user. So, if a user looks into this ecology of software, he may like a certain piece but not be able to use it yet, because one specific need is not answered.

Someone else may adapt the software to that need and then return the modifications into the software's project. This kind of ecology would have immense capabilities for software re-use and software evolution. It is not necessarily a problem that you cannot capitalize on the software itself. (however, neither do I, in this post, suggest a resolution on how to make money with this model). Software ecology needs plenty of information around it. Not the kind like SourceForge (pull), but indexing, points of contact, etc... Something like a search engine where you get all sorts of details about that particular software project.

See software in the future more or less like a living lifeform (biology). It has a very high level of evolution, it reproduces itself, it can split cells (fork) and it is very important for our society to function nowadays... continuing thoughts here....

Tuesday, August 08, 2006

Game development ideas...

I've been writing a couple of applications before, some of which were renderers of Quake BSP3 levels. The work itself is very interesting to understand the graphics pipeline and the decisions made in graphics engines.

You may be looking for tools to break up levels, or examples how to render QBSP3 levels in Java. There are sites available where you can get a lot of information about game programming in general, or more specifically OpenGL programming, in the form of tutorials, and you need to understand the QBPS3 file format.

One of the problems in game development, when starting, is not really the ability to visualize a certain level. I've done it myself a couple of times, but one of the deterrants in advancing quickly is to have proper editors in place that you can use to read in the data the way you want it.

One of the things I did not have access to easily was QERadiant, because it was not GPL. I wanted to eventually make changes to it and so forth, which was not easy. This editor will probably only help you if you wish to develop BSP-like game clones. It is used for HalfLife, Quake, Soldier of Fortune, etc...

If you're into terrain-type games, things get much more complex. But maybe these guys can help. :) It shows clearly how partnerships in the gaming industry get more and more important.

One guy at work has some interesting thoughts on game development overall and wonders why games are still developed totally closed. Only certain parts of the game get opened up, level-editing and SDK's mostly, but a significant portion of the game (either the engine or physics system) never gets opened.

What if the game development companies attempt to employ an opensource development model? Blizzard in a way has all the resources available to make a lot of this happen, but controls to a very large extent the world, server and game rules. An active OS community may help to develop the IP of the company. Giving away control will be a difficult process, because it means opening the system up to the community itself and competitors. Maybe binding the engine to the servers only, but releasing *all* other tools to the community would be a nice option.

On the other end, maybe certain graphics engines may have a dual licensing made available plus the sources. The bigger titles that make the money already become so well-known, that it is not any effort to trace those guys down and sue them, if necessary. Perhaps that cost of law suits against the cost of protection is much easier to achieve.

Here's one example of an online community using the crystalspace engine. It has taken them years to develop the game to the point where it is now, probably also due to the huge refactorings that have to take place when either the engine refactors or hardware simply evolves.

There is plenty of criticism on current games with regards to FPS clones. Very little creativity in developing games, just altering storylines, GUI's, engines & eye candy and game objectives, or make it multi-player.

One of the more interesting ideas would be to develop a game where you collaborate with others in different ways in different roles. Looking at Operation Flashpoint for example or some of the more recent games, the team would already have people with different capabilities, but teamwork only really develops in clans. The rest just want to "play" I guess.

If you imagine a game where you are a truck driver or a boat captain where somebody else manages cargo from A to B (the planner), then everybody joining the game gets transported immediately to a leading position and take off. It may have a 2D interface for planning and 3D interfaces for the different transport vehicles. That would make a very interesting creative and innovative platform. It doesn't really have to be very complicated (with lots of eye-candy), because a rather crude system in the beginning would do.

Mix this maybe with having different competing transporting companies and it gets very interesting. Especially bringing in financial markets and mergers and so on. Then the game can be played on many different levels and would teach children a lot of interesting things of running businesses and the economy!

Tuesday, August 01, 2006

Autonomy in knowledge work

From Peter Drücker's book:

Knowledge work requires both autonomy and accountability

Demanding of knowledge workers that they define their own task and its results is necessary because knowledge workers must be autonomous. As knowledge varies among different people, even in the same field, each knowledge worker carries his or her own unique set of knowledge. With this specialized, unique knowledge, each worker should know more about his or her specific area than anyone else in the organization. Indeed, knowledge workers must know more about their areas than anyone else; they are paid to be knowledgeable in their fields.

What this means is that once each knowledge worker has defined his or her own task and once the work has been appropriately restructured, each worker should be expected to work out his or her own course and to take responsibility for it. Knowledge workers should be asked to think through their own work plans and then to submit them. What am I going to focus on? What results can be expected for which I should be held accountable? By what deadline?

Knowledge work requires both autonomy and accountability.

ACTION POINT: Write a work plan that includes your focus, desired results and deadline. Submit it to your boss.

Sunday, July 30, 2006

Consortium for OSS in Public Administration

Some musings have already been written on eGovernment etc., available online. Some people have suggested "eDemocracies", which is a way for local governments to interact better with citizens. Not sure whether full interaction and eVoting on every little issue will actually improve quality of life (lack of information, misinformation or temporary ignorance could make it worse), but this post is more about using Open Source software for governments.

Have a look at COSPA, which is a project in the EU mostly for creating Open Source "Public Administration" software.

The reason for bringing this up because I am starting to think about developing a project in Recife with some colleagues from work. We're working on some presentations, ideas and initiatives in order to improve the quality of life of the environment. Probably at some point, we'll have some interesting learning points for everybody (maybe even writing a paper on it).

Now, already conferences are created on eGovernment, which are very interesting initiatives, especially if this brings more transparency to fight corruption. But then again, software by itself is not likely to make any changes. Venezuela is on OS (or should be by now, according to this statement 2 years ago).

COSPA has identified software used in Public Administration (12MB PDF). There is a very high "observation" in Italy, especially.

The above shows that in the near future, it is a possibility that all software written and used by governments can be custom-written and then evolve from there. What is FSF and a couple of geeks got together to start writing that software for government? Start off with local councils, then expand to whole cities, then expand to provinces & states, then expand to perhaps nations?

Having a code repository with GPL'd code ready for use for each country would be a very good win. And if there are processes available that allows other people to make contributions... This would be a very exciting project.

For now.... we are focusing on a very little area, the area where we work. We wish to improve worker's situations, improve the interaction with the community, clean certain streets (they smell or are dirty) and get rid of older buildings that are literally starting to fall down. (no joke!)

We'll have to organize this together with the city hall/council, people in "administration" @ the university, people in psychology, some software project management, a *LOT* of innovation and hopefully international interaction with other people. Might work out, really... Especially when the city hall is deciding it would be worth to start paying for it!

Very interesting because of this (maybe this can help?).

Thursday, July 27, 2006

Peter Drucker's words...


I've just bought a book with 366 statements, one for each day in the year, which is a collection of various insights and statements from Peter Drücker. This person has written numerous texts on management and everything else it curtails.

The first two articles are already interesting. "Integrity in Leadership" and "Identifying the future".

The arguments are that management needs to have integrity in order to be able to sustain itself, or the rest of the organisation washes away. The second is the importance of not identifying what *will* happen in the future (which is ahead of its time), but identifying what is happening right now in innovation, or has happened without realizing it, so that in business you can turn this into some kind of opportunity.

Is innovation in technology subject to the same philosophy? I see enormous amounts of software come out and only a couple of them getting popular. Many are created from religiously stern beliefs that it will change the whole world.

Can't wait to read the next pages, but I set myself to only read one or two each day to allow sufficient time for reflection.

Sunday, July 23, 2006

More hours in a day?

Would be good to have more hours in a day. Time too little basically to get things done. Not bad planning, just wish to have more time altogether. Then again, having more hours in a day doesn't make much difference, since the passing of time would be the same for everyone.

I've been looking at Google Maps a bit. That functionality is really interesting and very easy to program. Should be doing more with that some time. It's being actively extended.

Java distributed computing, another topic I'm thinking about. I think I may have found a way to make this a lot easier, but just some thoughts at the moment.

That's about it really, for this week. Not much activity in other areas. Will be creating a presentation about effective communication soon, to be shown in an auditorium for probably 5-25 people at most.

Tuesday, July 11, 2006

Identity, culture, who makes these decisions?

Think about this:

"What and who determines company culture and who makes decisions in a larger company?"

I find myself sometimes confused about impossibilities and assumed ways that a company "works", or its culture and why it exists that way. The reason is that for many things inside that culture, there is not often a conscious decision by anyone backing it up, but rather some kind of "common assumption" that it simply is the way it is. This is detrimental for innovation and creates a certain culture of non-repudiation.

Could you say that the decision is made by anyone in a reasonably high position, which is then communicated and assumed or communicated as truth and reality by others?

To whom belongs (the culture of) the company in the end? Is it truly (fully) hierarchical? Are decisions consciously made?

Who do you talk to when you really feel like doing something, but do not carry out because you feel uncertain? Why do you feel uncertain? Who reflects actual decision authority? What would happen if this feeling is ignored and the idea is persisted anyway?

Wednesday, July 05, 2006

Film: The Corporation

I was watching the film "The Corporation" two days ago and can seriously recommend it. The film was produced by a number of top-thinkers in the field, all sort of left-ish.

It's a film about environmental impact, horrible worker's conditions and the responsibilities that the corporation should assume in order to minimize those. The film shows that the only responsibility sought is that "responsibility towards the shareholders", not all the stakeholders that have to do with the corporation, like its employees or customers.

The film opens the whole discussion on ownership of human DNA. While a human by itself cannot be patented ( and therefore 'owned' for an amount of time ), the very DNA sequences that make up your body *can* be patented, at least in the U.S., on discovery. There are certain rules along the lines of this, but clearly this is a worrying issue.

Already in software, the patents create an incredibly difficult legal mine-field to navigate. With the speed that these sequences are patented, if the same thing happens on this field of research, there would not be an end to law-suits in any direction, with only the common society suffering from the flow of money being used in the fights between the companies, not for actual research.

Specifically the company Monsanto was mentioned in the film with respect to their product they are developing to increase cow milk production. The product has not been tested thoroughly, is causing birth defects for cows or other diseases and has not been properly tested if it has adverse consequences for people in consumption.

Monsanto is also involved in the famous Terminator seeds. Another call for common sense here.
In one way, society is going forward. In another, very quickly backwards.

I think the whole issue of the corporation is totally misunderstood and the score-card that the corporation is presented is fatally wrong. At the moment, the only scorecard that the corporation will be evaluated against is making money in absurd amounts. There are now laws governing its waste and production and emissions, but it's not enough, because it doesn't require corporations to innovate on what they are doing wrong. Only if the CEO is really responsible is this ever going to happen.

I also believe there is a lot of ignorance around this issue and too much media-control of the corporation. The media, being privatized, will be likely to gain lots of money of corporations for *not* broadcasting news that may damage their reputation. This happened with Fox News as can be seen in the film. Some former employees of Fox retaliated, won a court case. But then the court case was overturned on the basis that it is not illegal for a news company to lie.

Thursday, June 29, 2006

Human Development

As with the last few posts, I'm recently thinking about human development a lot and how technology could apply better to help it. One of the first things that comes to my mind is better dissemination and use of "poverty information".

Google, luckily, is also hosting sessions on Human Development, which is good, because only very little 'information' about poverty and human development is spread around.

A swedish organization, GapMinder, is spreading the statistics of Human Development in a really cool, interactive and visual way. No more boring statistics and numbers, it actually starts to feel like something. Of course, these statistics don't do anything, but I'm personally convinced that the lack of media attention to human development (since who wants to know about depressing facts?) contributes to how the world looks today.

I think and hope that a couple of projects will come up that will take this further by a couple of levels. I've personally thought at times to create a Google Maps app that shows the Human Development statistics, colored per country. An added benefit of GMaps is that it allows detailed information to pop up, where a server application can generate graphs and comparisons with other countries.

Maybe joining this information with the CIA World factbook provides some further new insights. (Note that this book is considered public domain, as it was created for the government).

So.... let's see what new things come up. A couple of NGO's and organizations are finally starting to recognize and understand the Internet better (they're not techies like everyone else, mostly care about social interaction). I'm thinking of going to the World Social Forum next year. Have been to Venezuela. It takes a while to let things sink down. Then you realize how little you know about social situations around the world.... And then what? (e daí?)

Wednesday, June 21, 2006

How about a "coin of social exchange"?

I'm thinking recently about the philosophy behind 'running a business'. This is a very new area for me to explore, but this makes it more interesting to the exterior because I do not depend on historical views and teachings. :)

What I think is underlit is the social value that businesses could provide, but unfortunately cannot be expressed in any 'coin' or as a measure of value. How many businesses really provide social value nowadays, only for the purpose of providing that value, not just for money?

The customers of today are not the customers of 100 years ago. In that time, people were shopping for primary needs. Shovels, food, clothes to wear, etc... Money was created as a means to make social exchange easier. It has grown into having a life on its own almost.

Nowadays a large number of products are based on secondary needs and you could say 'tertiary' needs in some cases. Since society has evolved significantly in many countries. The intelligence of these customer has risen dramatically and also with this the desire for novelty. 10 years ago, browsing the Internet was a truly amazing experience for many, nowadays we shrug our shoulders.

If a company sets only monetary goals, but no social goals, it misses out on many things that a company could do. For example being a leader in corporate social responsibility and not just a follower of the law. Shift your company strategy and set social goals as your objective, all within the constraints of your financial capabilities. This stimulates innovation.

"Running a business" successfully does not necessarily and solely mean "making scandalous profits". That's however what American economics and views teach us. It can equally mean providing a sustainable point of interchange between a company and a consumer and expanding this business to new areas, seeing economy as something wider than utility and money, including social benefit as a type of currency in the equation.

You may become stinking rich if you play 'unfair', but at what cost?

If you do focus like no one else on your customers and consider your financial revenue as a secondary consequence, maybe then your company brand might actually mean something to customers! So, a successful formula for this view on business, in the order below:

1. Consider profit secondary to customer experience and feeling of fairness.
2. Maintain financial capabilities.
3. Be innovative with new products, because that will elevate the user experience. New things provide good novel experiences. Old things do not, unless offered in new ways.
4. Develop a brand.
5. Make sure you have one or two things that are slightly "evil" or "evil-obvious" in your policies, but not so evil that it outbalances the customer experience.
6. Back to 1.

The above points give an example of what I would consider "running a business". It doesn't focus on money-making, although it is an important aspect, the primary focus is its reputation and place in society. How do customers perceive you and what can be done about any negative views?

Example of considered-evil companies are software companies. Car companies are not seen as evil, even if they make good profits, because the company makes an effort each and every time when they produce the car. So it is reasonable and fair that the consumer pays for its acquisition. Software companies have made a moderate investment only in the beginning. But afterwards, the same charge is applied for the same software at zero cost of reproduction. This feels unfair, since no effort is spent for each and every company. That feels wrong (if it really is, is left to discussion).

Tuesday, June 20, 2006

Poverty and the loss of dignity

I live in Brazil and am frequently confronted with poor people. As many people, I initially understood the essence of the word "poor" to mean "lack of income" or something similarly economic.

The real sense of the word "poverty" however, I think is more associated with a lack of choices and capabilities in the social sense. I watched the Holland game on the Recife beach last week and talked to another Dutch person about the issue of poverty in Brazil. This person was specifically upset about how homeless people have no privacy or intimacy, since they live in the street and there's nothing that is private to them any longer. A specific example was a couple in the street, living under a piece of cardboard with a grudgy blanket, lying close together, with buses and cars driving by.

Many traffic lights in Brazil are used by poor people as a commercial station, since it's the only place where people are required to stop. So, people with cars have at least some money, the poor people depend on that middle-class to sustain themselves, so all traffic lights are full of merchants and window-cleaners.

With poverty thus, I see there are even define-able levels. But the levels are not so much economic, more social.

I found the article on Wikipedia shows some good links and explanations of what poverty really is, rather than just assuming it as the lack of the flow of money:

Poverty

There are some documentaries running on the issues of poverty that show how poor people also have a need to be recognized, not so much as being a poor person, but simply as a person. This fight for recognition sometimes causes them to do severe things. One guy in Brazil in Rio de Janeiro at one point kept a whole bus hostage for a number of hours, screaming out of the windows and threatening the people inside. He fired some shots, but never at people. He maintained the hostage situation only because cameras were aimed at him. It was clear he was under the influence of drugs. Later he stepped out of the bus with a single hostage and the police promised not to hurt him. A police officer approached from the sides and took a shot, two shots fell and the pregnant hostage was hit, dying on the way to hospital. The suspect himself was apprehended by a number of policeman, protected from an angry mob. The guy was suffocated by police on the way to jail due to the number and manner of police officers piled on top of him.

No mercy?

When you ask people how poverty should be resolved, the one most single answer of them all is: "Education." But this only goes so far. It implies that these people will be able to resolve their problems themselves as far as you teach them the basics of living in society and teach them skills and if everybody has access to education, the problem of poverty is resolved.

After the war in Holland, the politicians organized themselves to construct what is now called the "social welfare" system. 50-60 years later, this system is now under attack from diverse groups that object to paying for family situations that will not (likely) occur to them. For example, some single persons object to paying for the health costs associated with having children (costs like nurses, hospital checkups on babies, etc.). Why should they be accountable for those costs?

This is a view that is individualistic and capitalist. Only pay for what you use in a society and no dime more.

Poverty itself, I believe, also has the properties of a vicious circle. You cannot attack just a single point (education?), or you will fail. If you attack many, are there sufficient resources available to make the change worthwhile?

One of the latest news articles showed an organized crime group that over the past 5 years has bribed government officials in the health department to sluce all money for ambulances and health spending to that particular company. They would charge twice for every ambulance sold basically and divide the profits with the officials and themselves. The total "profit" of this group amounted to something like R$60 million. A good amount of money that would have been happy to enrich the overloaded and under-equipped hospitals in Rio de Janeiro for example with waiting queues of 7-8 hours. Of course, these are "public" hospitals, not "private".

This is the cost of an individualist society which feels no responsibility for others outside the family. A society where politicians do not make choices in favour of society itself but choose to use their appointed post as a source of corrupt income. Only a relatively small layer of society can still thrive in this situation. But the people that need protection the most, the poor, suffer harder and remain deprived of their dignity. It is possible to ignore the poor for some time, until at some point the pressure becomes so high some action needs to be taken.

Final numbers. 10% of the richest people in Brazil, 18.5 million people, were earning 68 times more than 10% of the poorest people in Brazil, another 18.5 million. The same factor in Norway and Holland was 9-12.

Tuesday, June 13, 2006

Your Media Rights Under Fire


I was looking at the link to the BBC, where the BBC claims that if you watch the World Cup at work on broadband, the business is liable for TV license fees. Legally, they're right. But is it just?

I lived in the UK for 2.5 years. It was an important and interesting time for me. Also, I was under fire from the guys of the TV license because I did not own a television set or any other device set up to receive a TV signal. I got letters almost threatening that non-payment for the license would subject me to 2,000 pounds worth of damages. As if everybody in the UK owns a television and nobody would be excluded. It's true that they find a lot of people that actually do have televisions though.

http://news.bbc.co.uk/2/hi/entertainment/5074406.stm

I also know that the BBC is producing useful and informative programs. Since I live in Brazil now, I see the very difference between 100% commercial television and public television. It would be a bad move to dispose of public television altogether. The information that is available from a 100% commercially run media system is appalling. It is very important to have an objective media system, or at least acceptably objective to inform the public about politics and what goes on in a country. The commercial TV stations do not know or care how to do this properly.

As you may already know, I am reading Lawrence Lessig's "Free Culture", a very interesting and important book on the subject of our culture, our media, our entertainment. Culture is the expression of who we are as human beings, which can extend to social groups like countries, religions, types of music, etc.

More and more, the very essence of ourselves, our culture, is reduced to content, a word I have started to loathe. The copyright laws in the US have been exemplary of the kind of industry control that media companies have over culture and its distribution. Most of those companies have soared on the success of reuse of other works, especially Disney (reusing the Grimms stories in the beginning and even Mickey Mouse is not "original"). And now it is becoming worse:

http://news.ft.com/cms/s/fa07af4a-fadc-11da-b4d0-0000779e2340.html

The RIAA has been very active in campaigns on file-sharing and claims success in this area:

http://www.usatoday.com/tech/products/services/2006-06-12-riaa_x.htm?csp=34

All that society wants to do is share, it's quite natural for it to do so. But the original author deserves compensation for his work, the sense of property needs to exist and I think also needs to continue to exist, up to a certain point. If there were infinite control of an authored work, no derivative works could or would exist, threatening the continuity of our very own culture or its richness.

I think what is important to remember is the idea of "having right to media and information", the right to be part of the consuming part of media or culture. At the moment, the industry is changing this "right" to a "permission", consciously or not, because they feel threatened by the advances of technology that makes the act of copying of authored works cheaper and cheaper. Rather than embracing this technology itself, they choose to hamper it in order to persist old and outdated business models.

What society really wants to do with culture is different than how publishers want to sell. Which side does the law favour? In the case of society, it is probably government to defend the cause of its citizens. This means sensible copyright laws that offer a balance between the rights of the authors and the rights of consumers. But the industry is continuously sponsoring the rights of the author. Who sponsors the rights of the consumers?

http://news.ft.com/cms/s/fa07af4a-fadc-11da-b4d0-0000779e2340.html

Because the publishing companies already have enormous control over what gets published, they also have enormous control over our culture and how our youth experiences and views our society. Basically, the industry has a very high control over how our society shapes itself through the publishing of media. One of the biggest fears of people is the reduction of media and culture to a uniformly shaped mass. No focus on diversity, but focus on mass-dispersal, because that means profits.

http://www.drmwatch.com/

http://en.wikipedia.org/wiki/Digital_rights_management

I think from a social perspective that the efforts on this control of authored works is wrong:

http://defectivebydesign.org/

"I think that people need to be better informed about DRM, its implications and be informed on every disc so they have the ability to choose! Then we will come to some kind of democratic and public decision on DRM and together, we'll form the true opinion what's right and fair."

Monday, June 12, 2006

Holland wins against Serbia Montenegro

I've been watching the game yesterday with other Dutch people in Recife. We joined together in a local pub/restaurant with a couple of tv's, somebody brought in a cake and there were orange shirts and flags everywhere. The public was mixed Brazilian and Dutch. This event was mainly organized by the local NBSO, which is a commercial support organization (check here).

I liked the way the Dutch were playing and the whole of the World Cup so far. Things have been pretty decent up to now with seemingly no violence at all. The biggest fear for me of course, is that Holland will have to play against Brazil :). Everybody in Brazil loves football. It's very big as a sport and there's hardly anything else in the country that generates so much patriotism and emotion. Work officially lets people go home after 1500 when a Brazil match is due to start since it's hopeless anyway to get them to work seriously during a Brazil match.

In the meantime, I'm for Holland and when NL is not playing, for Brazil. When the two meet, I suppose I'll be secretly favouring Holland in their efforts. :)

Saturday, June 03, 2006

The need for continuous thought...

This blog entry is mostly focusing on the topic of innovation. The words "process" and "policy" get involved as well.

When a company starts up, it does not have a documented process to follow, even less does it have a certain "policy". The employee needs to use, as his only tools, "common sense" and "domain knowledge" in order to get from A to B. If common sense and domain knowledge are correctly applied, the company makes profit. If the employee makes the wrong decisions all the time, the company tanks and goes bankrupt.

Enter the 5-year old company. Employees have routinely been taking decisions and have established a so-called "process", which is the way how things "are/estar" done. If circumstances do not change, the application and utility of that process can be very successful.
( "estar" comes from Portuguese, meaning a temporary "to be" )

Enter the 30-year old company, 20.000 employees later. Now things are established through "policy". This means, ensuring that "processes" and decisions conform to a certain "grand strategy". This is when things "are/ser" ( meaning the definitive "to be", the Portuguese "ser" ).

Policies can be hyper-destructive, because they are very difficult to change. It is as if they live their own lives, have no owner and no person within the organization generally feels powerful enough to change it. Changes in policy generates enormous quantities of confusion in an organization. Why?

It is funny and sour here that the word "policy" actually means: "A plan or course of action, as of a government, political party, or business, intended to influence and determine decisions, actions, and other matters" (Source: The American Heritage® Dictionary of the English Language, Fourth Edition).

So, the description of policy does not carry the heavy sense of "mandatory", but the interpretation of employees is exactly that. Making a better decision for the sake of your project success may result in assuming the risk of being put in the spotlight for non-compliance. Policies are suitable and useful as a guideline, when assessing which option to favour if the alternatives are about equal.

The companies function differently, because there is a difference how (much) people use their mind. The startup company requires people to use their mind continuously, but the large corporation can live with a very large number of monkeys that apply a certain process, what they would call "best practice".

The world changes very quickly, so what was established as a process some time ago needs to be re-evaluated every so often. Communication about (requests for) changes in processes generates confusion and a barrage of "re-alignment and re-organization emails".

A process should be a helpful tool in order to define the responsibilities for the parties involved. In that sense, the "process" serves a very useful function. But it is also a potential hiding cover. It gives people the potential to stop thinking and use the process as a cover excuse for lazy-ness (or worse, blame the process as the point of failure, ignoring for now whether the process is actually wrong, incomplete or correct!).

Here we enter an interesting arena. The question is not whether we should dump processes altogether. The question is what we need to understand about each process in order to make it a useful tool in our collaboration. Understanding the process in this way goes much further than knowing how it actually works. People need to understand why it is there in the first place, what purpose the process serves outside the context of the routine or practice it is applied in. This is exactly the definition of responsibilities. Without the understanding of those definitions, nobody can use the process efficiently and elaborate on it (become contributing employees).

If employees do not have experience with alternatives, they will not understand additional reasons why the process is the way it is, simply because they cannot imagine how in practice things can go wrong. This "wisdom" only comes from exploration, which is forbidden in the context of the process because you are required to follow it. Thus, processes have the tendency to train monkeys that never think outside the box.

With this problem of never thinking outside-the-box, other people that do understand are inclined to try to prevent the failure by mounting another process, in an effort to help lesser experienced people. Such processes often formalize the responsibility that the employee should have assumed in the first place. Instead the process provides yet another cover for the employee to hide behind and it can make them even lazier than before, countering productivity.

When the environment or market the company operates in does not change, then the mounting of processes is not necessarily a problem. The process is basically the description of a routine that you must follow like a machine in order to be productive. Factories could do this for example and then you might get good results, everybody happy, no problem.

As in IT especially, markets, environments, tools and "insights!" rotate every three years or so, the process building blocks age very rapidly, which in turn very rapidly ages the organization. If you do not have the infrastructure available to create 'process change or adaptation', you will eventually age until you reach mortification.

People that do think in the organization would already have left by that time. So, losing your key employees is a good indication that your organization is aging too rapidly and not adjusting quick enough.

Saturday, May 27, 2006

Project Dune restarted

I've decided to re-kickstart Project Dune using the Google Web Toolkit. This is both an opportunity to learn more about the GWT in a practical environment, possibly creating re-usable components along the way, and also finally gives me the ability to really focus on the behaviour and functionality of the QA app, like I always wanted. Coding Struts & Forms is basically so incredibly boring (copy data from here to there, configure in .xml, it's just numbing).

The project can be found here:

http://pdune.sourceforge.net

http://www.sourceforge.net/projects/pdune

I'm looking for designers and developers to help out in the effort.

Wednesday, May 17, 2006

Google Web Toolkit

It's all over the Internet. Google published the toolkit that is useful for making AJAX enabled web applications. It generates HTML and JavaScript on the fly and you can test the web application inside a JVM during development (relying on Tomcat).

I'm convinced that this is the pre-cursor to a radical re-thought on MVC frameworks and architectures. I don't think it has ever been this simple. HTML and JS personally for me have been the most difficult things to get right. MyFaces and Struts look ancient technologies compared to what Google has done. Amazing job!

http://code.google.com/webtoolkit/overview.html

Thursday, May 11, 2006

Worldbank Initiative

http://youthink.worldbank.org/

I just viewed the Webby awards and discovered this great initiative by the world bank. Remarkable to see an institution for that purpose being so responsible and showing such great involvement into the society (after all, they deal with money & economics, like IMF). If only the IMF were more like the World Bank and had the same insights... *sigh*

http://www.amazon.com/gp/product/0393324397/104-4868404-3764761?v=glance&n=283155

The "YouThink!" is interesting by itself. It treats a whole lot of issues that activist groups are fighting for. This is not done from the activation perspective, but more factual, scientific and "current, common knowledge".

A lot of different tests out there to get people interested. Great website.

Sunday, April 16, 2006

Streets of Casablanca & HDI

I've just finished up on the film "Streets of Casablanca". It is very gripping. It highlights three children in Casablanca, Marocco, living in the street. One of their buddies gets killed by a gang of other street children and they are trying to arrange for his burial. The IMDB probably has a better description of the film, but I would definitely recommend to have a look at the "Extras" section of the DVD. It shows that the film crew also spent a good amount of time working with these children and supported several projects that helped these children to get off the street and build a better life.

There is not a good way to measure "human development" or other figures that properly reflect standards of living. I went to the United Nations Human Development report website here to have a look:

http://hdr.undp.org/

An interesting project could be to start mapping this data in color maps using Google's map API. At the moment it's just a collection of numbers and it does not really say much yet.

The majority of reports I've browsed through are "comparative" reports. I've read a paper here that puts Brazil in quite a good spotlight, but when you look at the majority of the population, poverty is all around. We're seemingly doing not too bad, but from the streets here I know better. An amazing number is that 10% of the richest people in Brazil hold 46% of all wealth. 30% of the poorest have only 3.1% of all wealth. These do not state absolute numbers unfortunately.

Thursday, March 30, 2006

XSL:FO processing

I'm looking into using Formatting Objects lately for the MoneyJar project. Nothing is useful until it is possible to show the monetary amounts on an invoice for customers. :)

The problem here is again that there are many standards, each with pro's and cons, some of them much work to implement, others very easy but difficult to use for others... and the list goes on...

So I am doing some research in the area of XSL:FO and maybe write or extend another little editor around that. There is an editor on SourceForge called FAO, but I don't think it is very intuitive for people to use. I had lots of problems using it because I don't understand XSL:FO in the first place. Also, I don't think many other developers are willing to trawl through 400 pages of XSL:FO documentation in order to write a quick template for something.

XSL:FO is specifically created for the "printing" industry. I'm basically not doing anything else than rendering PDF at the moment based on a full "xsl:fo" document, but this final "xsl:fo" document is generated through an XSL-XML pipeline as well. So, the invoice generator I have set up prints itself in an XML format. This XML is forwarded towards the XSLT-engine, where it generates "xsl:fo". The final "xsl:fo" is then converted into PDF.

Yes, this costs processing power, but so does C + files + ASCII and the latter solution is much more error-prone. The best layout & printing capabilities of the latter is nothing compared to the powerful layout capabilities of XSL:FO + XSLT + XML, not to mention its portability to other document formats. Plus that if you have a printing press set up that accepts PDF to be printed and mailed into envelopes, there should be a solution out there that can automate this without the need to purchase an expensive package. So there you go, I'm sold!

So, if you know of a 'complete' editor for XSL:FO that does it all and is WYSIWYG and can be used to 'drag' element data or attributes into a view of some kind, that would be totally awesome :).

Sunday, March 12, 2006

Money Jar

I've just released a new project on SourceForge. It is a financial library for Java with high precision. The target is to streamline the use of financial numbers in Java applications. BigDecimal supports the precise numbers. Surely, many people already use BigDecimal for finance, but issues like standard rounding and the currency the money is in are not resolved.

This library wraps BigDecimal into a Money class and has some features like automatic rounding based on JVM-wide configuration. It also does not allow calculations to take place between two incompatible currencies.

Since this project is more incremental, I intend to add more and more features to this library. The objective is to add "invoicing" support with some factories and helper classes, so that people can prepare invoices much easier. Another is to add a "tax engine", which is configured according to rounding rules, summation rules, tax application order, etc. to the nation/state where you live, so that taxes is much easier.

Researching about the subject of billing and taxation is a real head-ache. I do not intend to make this a library that you can use straight away in any part of the world. The configuration requires you to do the legal research, this library supports you in setting up the environment so that it is all resolved by itself.

I have some future plans a bigger project that uses this library that also involves some kind of distributed computing.

Tuesday, March 07, 2006

Open Source Progress

Together with some colleauges, I've written an article that was submitted to the Open Source Software Forum in Porto Alegre in April. We'll hear more if it was accepted 17/03.

The ideas are generated after thinking about corporate software use and licensing. The license costs in that area are huge.

The difference between corporate open-source vs. desktop open-source is that there is more "utility" for desktop opensource apps for any particular user and the user base is much larger.

Probably this is why there are so little corporate opensource projects available. I'm not talking about Apache webserver, Struts, JBoss or other projects. Those are platform projects. I'm more talking about specific solutions for specific companies, like CRM / HR / ERP / workflow etc. Yes, projects exist here and there, but the momentum behind them is very low.

So the idea was to generate an additional driver (money) behind opensource development, whilst keeping it open. We do this by proposing cooperatives that drive a system's development in cooperation with many other cooperatives across the globe. Ideologically speaking approaching an idea like syndication of some sorts and a main controlling body when the project gets out of hand.

We've analyzed the difference mostly from an economic perspective (the reason why anybody should even care or look into it, since opensource adoption by itself is hardly a goal). Next article we hope to present is more targeted at the specific composition and organization behind the cooperatives.

Monday, January 30, 2006

Back from WSF 2006

I'm just back from WSF 2006. There was some very little coverage on CNN about it, the majority of CNN was about the World Economic Forum in Davos.

As said, there was a lot of Bush-bashing. However, this was not a gathering of just 'leftists' etc., there were many different people there. It is a bit sad to see that HC gets all coverage on CNN with some radical statements, but the actual topics being discussed are not really being published. Also, although there are some sessions highly politically motivated, the actual essence of the WSF is social action. This does not have anything to do with politics, just changing governmental action whatever the government is composed of.

I went to a couple of interesting meetings:

* A workshop on the legislation of labour in developing countries

* A presentation about the work of a foundation that protects low-skilled labours in the Amazon, so that these people do not turn into slave labourers. The definition of slavery here is not specifically "being traded", but it means co-ercing people into labour with very bad conditions by making it appear as if they owe the owner of a farm. This is done by not declaring the bar bill, charging for the trip from their home-city to the Amazon (the 'gato', which is the guy who lures these guys, is posing as a travel agent and states you have to pay to get there) and more of these practices. For these reasons, one month later they get one bag of rice, maybe some trinkets, and that's it. Some drink water from a hole in the ground. Housing is basically a rooflet of wood with some poles underneath. Beds are wooden without mattress. When working with raw coal, no protection is given against pore-infiltration of coaldust... etc... etc... The federal government is on it now, clearing out the farm owners that violate this solely for the purpose of profit.

* A presentation about incubating "cooperatives" of low-skilled labourers in Brasil. This is where recycling-goods collectors can collaborate together, get better rights together and learn about administration and do things together basically for the good of them all. New hints, new ways of work, etc...

* A presentation from the "Mitterand Foundation" about the new society, which is suffering from "predatory capitalism" and especially why this is the case. They explained issues like water management, the right of people to have at least 4 liters of water a day, the privatisation of drinking water! , terminator seeds discussion (seeds that can grow only once and require farmers to continuously buy the seeds from the same supplier).

All in all, a variety of topics. It's definitely worth a visit and next year in Kenya, I am already planning to go again.

Sunday, January 15, 2006

Keep It Simple, Stupid!

I've worked all weekend on the Patty analyzer and things are getting quite stable. It has been ported to Linux and Solaris in the meantime. It should now be in a state where people can actually start using it more thoroughly and depend on it.

Download: Patty

Other news is that things at work are also going smoothly. We've recently had a long port of entity beans to Hibernate and also an effort to move from an old JDK1.3.1 to JDK1.5.0. One of the most ugly hacks I've ever seen in that project were that Java code compiled for JDK1.3.1 was actually stored in the database and loaded through a custom classloader. *ugh*.

The title of this post refers to that... Just because you can store blobs and code in the database does not mean that you should. An "innovative" idea may be really cool to code in, but it certainly does not mean that it is a good solution. Far from it. And having 4 different executables with different names that all do something similar is really annoying too. Like the Oracle client installation or ClearCase.

Or projects with dependencies on large frameworks of 80MB in download size. Some of them having licenses or evaluation codes that you need to register for.

My objective with Patty is to make it a very simple thing to install and run. Download Tomcat 5.5 (around 7 MB in size), unzip and run it. Deploy 'drill.war' in there. Set up the agent library (42 - 160kB) in 5 minutes in a Java runscript and people should have a profiler ready for the project.

Thursday, January 12, 2006

Progress on Patty

I've been working hard to push out an alpha 0.1 release. This is a sneak peek into what this is evolving into.

The actual GUI doesn't look particularly pretty, but the functionality is all there.

At the moment, I'm finishing up on heap analysis. The first thing I did was the ability to iterate the whole heap to analyze heap usage. Immediately thereafter I worked on the ability to trace objects that you can reach from all instances of another type of object. For example, if you are analyzing a web server application, you really want to find out what kind of objects are referenced in your HttpSession and the total size that is referenced in the instances overall. My idea is to average this out later, so you get an understanding of the average session size.

Garbage collection needs some more work for visualization.

To be able to get to alpha-1.0, I'm still verifying with runs in JBoss now. That seems to start up quite nicely at the moment, so I'll probably look at another J2EE application for download somewhere, deploy it and actually start using the thing for real now, instead of the meager test application.

Sunday, January 08, 2006

Patty went Alpha

Patty, the project for Java Performance Analysis, has gone to version Alpha today.

I've included a selection mechanism for code coverage and method execution analysis and thread contention analysis is working too. It can be downloaded from sourceforge.

I'm currently working on the Beta version, which needs to include dynamic class instrumentation or de-instrumentation. This has just been tested and is working fine now. There is just a little bit of work on the command sockets that I implemented, basically a TCP stream that communicates between the web-application and the agent library.

Another feature planned for Beta is garbage collection analysis and 'which-object-references-what'. The idea is to show a couple of 'root' classes (objects in the VM, but will be shown as classes in the analyzer), so that you can easily track where memory is being held or where it increases.

Maybe a couple of those analysis dumps can be used in the future to perform some heuristics checking on memory leaks or whatever.

After Patty goes Beta, I want to write up some stuff on performance analysis using Patty, so that the tool can be used much more effectively. Some charting is going to be used as well and some better heuristics on the averaging and trouble points ( potential 'trouble' page for instance, where the problem points are listed).

Thursday, January 05, 2006

Garbage collection in Java

I'm going through a lot of information lately about garbage collection, starting from the 1.3.1 JVM. Interesting process overall. The current project I am working in uses the 1.3.1 and is going to upgrade soon to a newer JVM.

The collection itself does not truly impact any server application until the loads get higher and the space settings suddenly start becoming very inefficient. Especially in the 1.3.1 VM and with a relatively very large memory heap maximum, the full gc can take up to 25 seconds to complete.

This is mostly due to inefficient use of Java objects and holding on to references. This happens when server applications decide to "cache" a lot of information to prevent database queries. If the sizing at the design stage is not properly assessed, then the application will perform fine for some 200 records, but if this increases to 20,000 then certainly someone needs to take another look.

My advice is to keep caching to a minimum or use a standard caching framework like 'ehcache' to do this for you instead. It is certainly better than making your own implementations in your application, plus that the caches there work together with Hibernate and exist closer to the persistence layer.

Java 1.4 is already improving this by parallelizing garbage collection. This has enormous positive impact on the server process, but only when the server really gets busy on CPU of course. I'm going to read up soon on 1.5 collection and hope to post some useful documents in the next 6 months to be posted on the Patty site, along with the performance tool that I am working on.

Regarding the performance analysis tool, it is coming along nicely. Already there is a framework for web access now that is going to be expanded and the agent library seems stable. I'll need to expand the testing application to also have some thread contention and to load more classes, libraries, maybe even include Derby + Hibernate and CGLib so that I can see how it performs with proxies and dynamic bytecode instrumentation.

Until then!