Hello and Welcome to Sugar Mountain!

....a place of random thoughts

The Bangalore Report III – Day 1

Filed Under (Projectplace, Social) by Olle on 09-03-2010

So the trip started the same way as always, the alarm trashed my dreams at 03:40. The Taxi arrived at 04:00, driven by the most talkative cab driver I ever met. Arriving at Arlanda was kind of a relief.
But I sure hope the family issues sortens it self out for the cabby.

I shared the flight to Frankfurt with the Argentinien DC team, I think I even satt next to one of the players. He looked like it at least, really good looking with long black hair and a big bag of tennis rackets. I managed to sleep and hour on the flight.

Arriving at Frankfurt my first task, after checking e-mails, was trying get a window seat for the flight to Bangalore. I had been seated in a middle seat and I was not looking forward to the long flight squeezed between two people. But I was out of luck since the Business Class was over booked, so they needed the good seats in Monkey Class (in other words the window seats) to move the Business people to. So I was stuck between, I hoped, two tiny frequent flyers who mostly would sleep.

Well I did not get two tiny frequent flyers, but two large versions of the same, one German and one American. The American guy worked for Cap Gemini in Pittsburgh as some sales guy going down to Bangalore with some customer to meet the teams in Bangalore and Mumbai. We had great talks regarding his experience working with skilled Indian developers and finance people, hockey, the Olympics and the massive amount of snow some parts of the world have received this winter.
The only thing I heard from the German guy was a “Hallo”.

The flight from Frankfurt was delayed with an hour due to that one of the engines didn’t start the normal way, so they had to start it manually. What?

Due to my “stuckness” in the middle, the amount of sleep I got was very limited.

I was a bit nervous about the my encounter with the Indian customs, but to my surprise all went very well.
After I had managed to get through the first Passport/Visa/Are-You-Carrying-Any-Deadly-Virus section of the customs, I took an extra minut or two, while waiting for the luggage, to see how the really experienced got through the last part of customs, the give-the-little-papper-to-customs-guy part.

My analysis was that one needs to walk really fast, ignore any form of queues, and look like you have done this hundreds of times before and simply give the little paper-thing to the customs guy and just keep on walking. So my strategy was clear, but everything was destroyed when I got my bag.
The thing was that I had planed to use the small bag we have at home, but just before the taxi came to take me to the airport I realized that the bag had no lock, so I quickly grabbed our big bag instead. What I had failed to notice, in the bad morning light, was that the Mark of Customs(the white cross feared by travelers of the air) was still shining bright on both the back and the front of the bag since my last visit to Bangalore.

So my plan to look confident failed badly! But I managed to place my laptop bag on top of one of the crosses and I passed through the last Customs defense successfully!

Ram was waiting for me outside the Airport to bring me to the hotell. But unfortunately he had managed to upset two people working on the parking lot, so before we could leave, we needed to talk to some parking lot manager so that Ram would not get a 6000 rupe fine. That’s my Ram! Well I guess it’s easy to upset people at 2AM.

After a bumpy and long drive into Bangalore Ram finally dropped me of at the hotel at 04:00. I checked in and to my surprise I had gotten a bigger room then the one I had reserved. Later I have found out that Prasad of Blue Star had called the hotel, urging them to upgrade me. He’s simply too kind!

Tuesday

The wakeup called at 07:40, and I managed to drag myself down to breakfast. After a while Ram came by to pick me up, and we, by gods grace, made our way to the office.

At the office it was great to meet the gang again, we chatted about stuff for an hour or so before everyone got into coding stuff.
An interesting fact is that Durgesh and Jayesh always sync the big things in life, they buy cars at the same time, buy apartments at the same time, and will have babys at the same time.. Really strange, but it seems to work for them. Great!

Work for me have mostly been looking and thinking about Excel/Numbers sheets, talking to Ram and having meetings with Blue Star people.

Besides that I have had my first real encounter with website blockers today. Places like Twitter.com, Facebook.com, Craigmod.com and translate.google.com have all been blocked for me a couple of time today. Rams calls someone, they fix it for a couple of hours, the blocking comes back, Ram calls…. yeah you get the picture.
It’s really really bad, I really noticed how dependent one is one access to the Internet.

At 8PM me and Ram left the office, Ram was a bit pissed of due to massive traffic, but we made it. If they had bounty on auto rickshaw here in Bangalore, Ram would be first in line to sing up.

I had dinner at the hotel and wrote this.
I’m really impressed by how smooth this trips is going, not stuck in customs, no stuck in elevators.. no nothing..Hope it lasts.

Shoreline

Filed Under (Social) by Olle on 21-12-2009

I always somehow tend to come back to this song somehow

Ever since I was eight or nine
I’ve been standing on the shoreline
always waiting
for something lasting
loose your hunger, you loose your way
get confused and you fade away

oh this town
kills you when you are young
oh this town
kills you when you are young

I’m not the boy I used to be
this town has got the youth of me
all eyes turn hollow
from the work of sorrow

standing on the paving
by the office building
they’ve got so much to do
never time for you

we are shadows
oh we’re shadows
shadows in the alley

you die when you’re young
you die when you’re young
you die when you’re young

HTML5 and the File API (Firefox 3.6)

Filed Under (HTML5, Javascript) by Olle on 10-12-2009

So, I’m having my first encounter with HTML 5 and the great power of it.
I have mostly been looking into the Firefox 3.6 support for the File API, but also features like Copy/Paste, Undo etc looks really promising?

Firefox HTML 5 File API support through Drag n’ Drop

There are a number of blogs out there that has great examples on how to use the Drag n’ Drop  and the File API in HTML5, and more specify, HTML5 in Firefox 3.6. But I have not found any example on the combination of Drag n’ Drop in conjunction with the new File API, most often the File API is “called” from a standard <input type=”file”..> object.

Uploading files from the Desktop, through Drag n’ Drop is really simple with the use of the HTML5 events ondragenter, ondragover and ondrop. By using the file API we are able to read the files, get the name and also the size of any standard file formats, like txt, pdf, png or jpg for instance. In the long run, when the browsers out there will start to support HTML5 better, my hope is that we will not see any more browser specific plugins and such.

First of all we have the FileReader object. In short, it has three interfaces to read files asynchronous; readAsBinaryString, readAsText, and readAsDataURL. The three do the same thing, it reads files into memory(readAsText also has the extra attribute of specifying encoding).

Since the reading of the filedata into the FileReader object is connected to the “standard” event chain, the possibility to keep track of the progress of the loading of the file into memory is as easy as loading of any DOM object. The loaded data can now be saved/uploaded to a server through a Ajax call.

The only really sad thing right now, is have not found any browser supplier, except Firefox, that have implemented the FileReader interfaces, and we are left wishing and hoping that more browsers then Firefox 3.6 will have this.

My somewhat working example(for Firefox 3.6)

Instead of using the FileReader object like the example below, for reasons I will state later on, I have choosen to use the getAsBinary interface of the File API. getAsBinary is deprecated, and surely will be replaced by the FileReader interface, as below.

function readFileIntoMem(file){
var reader = new FileReader();
reader.readAsText(files, 'UTF-8');
}

But as said, my working example(for Firefox 3.6) uses some functions that are deprecated, but never mind.. Over to the demo app.

Demo
[Live Demo]

I have a html page that looks like this:

<html>
<head>
<style media="screen">
	#file-drop-target{
        font-family: Georgia;
		border:1px solid #000;
		height:30px;
        text-align:center;
        padding:40px;
	}
    h4{
        font-family: Georgia;
        text-align:center;
    }
</style>
<script language="javascript" type="text/javascript" src="handleFiles.js"></script>
</head>
<body>
<h4>Drag 'n' Drop file(Firefox 3.6)</h4>
<div id="file-drop-target">drop files here</div>
<div id="status-msg"></div>
</body>
</html>

Nothing really fancy happens here, the main thing really that I load a javascript file called handleFiles.js and that we have a div with the id of file-drop-target. In handleFiles.js I have added a function call to addOnLoadEvent, that will run onload, that setts the onload handler, the setEventHandlers function, for the window object.

function addOnLoadEvent(sFunc)
{
    if(window.addEventListener)
        window.addEventListener('load', sFunc, false);
    else if(window.attachEvent)
        window.attachEvent('onload', sFunc);
}

addOnLoadEvent(setEventHandlers);

When the window object loads we will add a call to setEventHandlers that will handle the three events ondragover, ondragenter and ondrop for the html object file-drop-target. The first two events we just cancel. Our main focus is the ondrop event, and by attaching an eventhandler to it we will get access to the objects being dropped. The function doing this is handleDrop function. The first thing I do it terminate the event and hinder any bubbling of the event through out the DOM.

After the preventDef function call we get the new dataTransfer object and get the files that are being draged into the drop target.
And after we have got the list of files being dropped, we need to access and store the files somehow.
You can find a lot of Ajax scripts on the web that will save a file on a server, but they all have one problem. They all have the problem that the filename will not be submitted to the server, a problem as I see it, if one would like to use this technic in a web service. So what I’m doing is faking a post of a form, and in a form post we have the possibility on the server to get the name of the file being uploaded.
After this has been done, a standard XMLHttpRequest call can be done, just make sure that content-type is multipart/form-data.
The fake-form-posting is very much inspired by a script found on http://www.captain.at/


function handleDrop(event)
{
	preventDef(event)

    var dt = event.dataTransfer;
  	var files = dt.files;

	for(var i = 0; i < files.length;i++)
  	{

		http_request = new XMLHttpRequest();
		var boundaryString = 'the_boundery--';
		var boundary = '--' + boundaryString;
		var requestbody = boundary + '\n'

		+ 'Content-Disposition: form-data; name="thefilename"' + '\n'
		+ '\n'
		+ files[i].fileName + '\n'
		+ '\n'
		+ boundary + '\n'
		+ 'Content-Disposition: form-data; name="thefile"; filename="'
			+ files[i].fileName + '"' + '\n'
		+ 'Content-Type: application/octet-stream' + '\n'
		+ '\n'
		+ files[i].getAsBinary()
		+ '\n'
		+ boundary;

		http_request.onreadystatechange = _handleReadyState;
		http_request.open('POST', 's.php', true);
		http_request.setRequestHeader("Content-type", "multipart/form-data; \
			boundary=\"" + boundaryString + "\"");
		http_request.setRequestHeader("Connection", "close");
		http_request.setRequestHeader("Content-length", requestbody.length);
		http_request.sendAsBinary(requestbody);
    }
}

function _handleReadyState()
{
    if (this.readyState == 4)
    {
        if(this.status == 200)
        {
            var pathStored = this.responseText
            document.getElementById('status-msg').innerHTML += ' <br />';

            var linkToUpload = document.createElement('a');
            linkToUpload.href = pathStored;
            linkToUpload.appendChild(document.createTextNode(pathStored));
            document.getElementById('status-msg').appendChild(linkToUpload);
        }
    }
}

/**
* Event handlers
*/

function preventDef(event)
{
	event.preventDefault();
	event.stopPropagation();
}

function setEventHandlers()
{

	var dropTarget = document.getElementById('file-drop-target');
	addEvent(dropTarget,'dragover',preventDef, true);
	addEvent(dropTarget,'dragenter',preventDef, true);
	addEvent(dropTarget,'drop',handleDrop, true);
}

function addEvent(obj, evType, fn, useCapture)
{
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.attachEvent){
      var r = obj.attachEvent("on"+evType, fn);
    return r;
  }
}

function addOnLoadEvent(sFunc)
{
    if(window.addEventListener)
        window.addEventListener('load', sFunc, false);
    else if(window.attachEvent)
        window.attachEvent('onload', sFunc);
}

addOnLoadEvent(setEventHandlers);

I hope you like parts of this and share any great changes you might do to the script.. What I’d really like to see is a more browser none specific script then mine!

The Bangalore Report II – Day 4 and 5

Filed Under (Projectplace) by Olle on 11-11-2009

Release day with a big R!
A lot of great work to be released.

The wakeup call did not wake me today, so I hade only 20min to get my shit together and have some breakfast before Ram would come by and pick me up. I managed to get a toast and two cups of coffee before it was time to join Ram on his tripp to the office.
Once at the office I noticed something, every time we come to the office the parking lot is empty, and the same when we go home! Ram, you need to go home earlier!
In the morning between 9AM to 2PM we hade three interviews with some potential developers(with great interest in creating cool web GUI:s) to join the team down here. We even managed to talk to the guy who was involved in the car accident on his way from Chennai to Bangalore for the interview last saturday, and we have chosen to meet two out of three again next week to get a better feel on who they are and what they love.

At 2PM we hade a great meeting regarding frontend coding and Technical Debt meetings. The outcome of the meeting is that we shall test the Mikado method by @ellnestam and @danielbrolund to start paying of some technical debt. We also hade a great discussion regarding how we can get better at validating the xHTML and Javascript code that we create. I’m certain this will turn out into something great!

After the meeting is was time for me and Ramesh to get some lunch, we thought we’d go to Melanies favorite veggie restaurant but unfortunatly it was closed.. So it had to be the Bayleaf, the resturant I hade promised not to eat at on this trip..Well we’ll see.
On the way to the restaurant I told Ram that I have promised my son to take a picture of a cow in the middle of the street. Ram then started talking, in swedish, about a queue on the way to the office today:
- “I saw this big queue before I picked you up at the hotel”, Ram said.
-”What! A queue”, I said, thinking a queue in Bangalore was not something to call home about.
- “Yes, it was really big. A male queue”, Ram says.

Ok, so the thing is that Ram swedish has really taken a nose dive to the worse these 1.5years he’s been back in Bangalore, I think it’s about time to send him on a swedish course.
Ram, cow is “ko” and “kö” is queue!

After lunch we started doing some final tests before the release tonight, and at 6:30PM it was time for the Release Information. It was really great that we could join, all of us really liked it. Adarsh and Appa fixed some sweet indian sweets, Mango juice and some really hot chips for the show.
When Lena started to talk about the new version of Projectplace Plugin something happend with Ram, he started screaming “Start of the year, that’s me.. that’s me”.. Well the development time has almost been a year so I guess it’s not more the fair, and luckily the microphone was muted.

After the meeting the gang started looking at different things, I heard talks about one of the SMART Q4 goals, some wave stuff and such. By the way, is there anyone out there using Safari Version 4.0.3 (6531.9) on Mac OSX 10.6.2 gettings a nice malicious software warning at http://www.topachievement.com/smart.html , it does not really go hand in hand with the name of the site!? Or possibly the question shall be, is there anyone out there reading this blog?

So time flies when you are having fun, all of a sudden 10:30PM and time for Release. It was really fun to see, 10-15minutes before the release it was dead calm, but the second the mail from Christopher came it all exploded! People were running around talking to each other, a par fixing one bug calling for help from another par, Ram talking to Christopher looking for logfiles etc etc.

So we were fixing bugs and testing until 2AM in the morning, we had a chat with Barry, Lena and Per and after that the gang down here went home. Me and Ram stayed behind for a couple of minutes… Now this is something we should not have done!
At 01:58 me and Ram stepped into the elevator, going from the fourth floor to the entrance level. All of a sudden the elevator stops and we are stuck.. Ram started laughing hysterically and saying things like “It’s all your fault! Why does all the bad things happens when you Olle are here?”etc etc.. After a minute or two Ram calms down a bit, but still really happy, and we start screaming to see if there is someone left in the building who can help us. Ram screams “I can’t breath”(this was due to his laughter), and then we hear someone calling on us to be calm and that they would fix it. And so they did, the elevator had got stuck so the elevator cart was halfway on the entrence floor, the guys outside managed to open the doors manually and we could crawl out and jump out of the elevator, felt like John Mcclane. I bet Ram is stil laughing about this, since the elevator does still not work today Wednesday at 11:11AM.

Day 5 Wednesday

The morning started with me checking out of the hotel. Prasad had promised to come by to get me since Ram had to leave his mother at the bus station at 07:30AM and I had refused to get up that early! Before I left the hotel, the hotel manager came down to me to ask how my stay have been. The only thing I complained about was the weather. And as Alanis Morissette would put it, And isn’t it ironic… don’t you think, that is has been raining for 4 day, and the hotel has a pool, and on the fifth and last day it’s sunshine and hot and I’m going home.. No pool for you the gods seem to say.

Talking about gods, an interesting fact is that Lord Krishna has 16008 wifes! It’s true, Jayesh told me, and Suprita told me that he’s not really married to all of them. The woman simply feels that they belong to him. Being a love god seams like a pleasant life.
The gods thing seems to be a big thing down here. When I asked Prasad in the car on the way to the office if he knew that Lord Krishna had 16008 wifes(he knew surprise, surprise ) he started telling me about the time when his body was taken over by a dead grandfather.
Apparently every year his family has a big ceremony for dead relatives in his home village, where they somehow try to get in contact with the dead ones. They fast for something like 7days and occasionally a dead relative takes over the body of the dead relatives favorite relative. They stand in a ring, have drums and fluets that eco through the night(this can be scary to kids Prasad says). The ones not been taken over by a dead relative, sometimes get really angry and starts to hit themselves with big knifes leading to big wounds in the front of their heads(also scary for kids). But luckily the one who has been taken over by the dead grandfather, in this case, can calm the angry ones down and eventually all chill down.
But still being under influence of the religious moment, some people can do crazy shit. Prasad has a cousin that always, after he has been hitting himself in the head with the big knife, wants to take a bath.. So one year he jumped down into the village well! So now it’s somewhat of a tradition that the family always brings out a big bowl of water for him to use instead before the ritual starts.
Another thing to handle for the family is that big parts of the males in the family have big bleeding holes in their for heads,  but they have a solution for this as well. In the temple they have a mixture of different things to put on the wound, and the main ingredient is cow shit.  Make one thing about all the “oil of oley” shit we buy.

Now it’s time for me and Ram to have a meeting with the Blue Star people, after  that probably fix some eventual bugs and then take a trip to the airport for the flight home.

As always it’s great to be down here in Bangalore and work with the great people of Projectplace, but it will sure be nice to come back home and meet the family!

The Bangalore Report II – Day 3

Filed Under (Projectplace, Social) by Olle on 09-11-2009

So the third day is to it’s end, and I’m really starting to miss my family! And I can tell you, eating alone it not healthy. I even tried to contact an American who was sitting eating at the table next to me durring dinner.  I said to him “Oh my, that looks really good, what is it?”, his answer was: “Shrimps!”. Fine, I know when to back of.

Well, today started as most of the days here in Bangalore starts, Ram picked me up at the hotel at 08:00 and we drove down the crazy streets of Bangalore to the office. I really think Ram has taken my previous report to his heart, he used the breaks at least four times and the horn only like 15times on the way to office. This is true improvement.

At the office Ram got an hour or two with his friend GWT. Me, I also did something, I’m certain, but I can not really recall what it was.
At 11 we hade a great workshop on Initiatives(again) and SMART Goals, we hade some great discussion and I also finally understod how the heck I get the Presenter Screen on my Macbook and not on the projector. Why the heck have Apple decided that the default setting shall be Presenter Screen on the alternative display? Well, the meeting went really well and since I’m talking about the Bangalore team, talking about initiatives is just like pouring gazoline on an open fire. It’s great. We even managed to reach four Q4 SMART goals for the Bangalore Team.

After the meeting it was time for me and Jojo to take part in the Steering group meeting and the rest of the team went of for lunch. It’s kind of cool that it’s really easy to take part in a “committee that decides on the priorities or order of business of an organization and manages the general course of its operations”(according to Apple Dictionary) while being thousands of miles away for the office. The coolest thing is that it is possible to make funny faces durring the meeting without any one knowing(well, except Jojo that is). On my previous trips to Bangalore I know I have reported on the screaming Scrum Master in Stockholm(a behavior we are used to know), but today me and JoJo found out that the screaming Scrum Master also always spells out load everything she writes. In the normal case this is not a problem I guess, but when you participate in a meeting through Skype and the Online Meetings found in Projectplace, thinks become somewhat strange.. We heard everything that was being written before we could see it on the screen, and it was also somewhat hard to hear anyone else in Stockholm since notes was take constantly durring the meeting.. Great fun!

In the afternoon Jojo also booked some meetings with three different developers to strengthen our frontend knowledge here in Bangalore. The first meeting will start at 9AM and the last will end around 1:30PM, so we got our hands full tomorrow. I’m felling really positive about the meetings, it will be great. We will not have a normal formal interview, but instead first talk a bit with the developer, and after that we will hack together to get a better feel for the person, how he thinks about the code, how he explains his ideas and how he behaves in the par programming situation etc etc.. But we need to cut the guys a bit of slack, just imagine yourself coming to a intervju to code with me, Ram and Jojo.. I’d be scared shitless.. But we only want the best, so we will try it this time!

One of the biggest drawbacks with being in another timezone, and working with people in a different one, is that the people in the other timezone don’t understand that the other person is in another timezone.. You get what I mean? An example: At 20:39 The Rose calls me on iChat. First he softens me up with asking how things are and such before he goes in for the kill. The question is if I can have a look at some script, we don’t know which, that makes the css render a bit strange for Safari certain cases. Thanks a bunch dude.. But he promised me that he would shout bad words, mostly popular names of the male reproductive organs, loud and clear in the office if I fixed it. Unfortunately a lame VPN setting hindered me from helping The Rose, big failure, we will have a second go tomorrow!

After work Ram drove me back to the hotell, and this was the first time I really thought about what happend in Mumbai, the terror attack,  durring a previous visit in Bangalore. It sent shivers down my spine. Outside my hotel they look under every car with these big handheld mirrors before you can pass, they have metal detectors infront of the entrance and security that always goes through my bag looking for guns or such. It’s really scary when you think about it. My reaction was somewhat strange though, I asked the serious security guard going through my bad. “what is the most peculiar thing you have found”. The security guard did not answer.

Interesting fact nr 1: Today durring lunch Prasad of Blue Star gave me some wedding tips(even though he knows I’m married and all). Apparently down here in India it’s tradition that the woman get’s a lot of gold as wedding presents from friends and family, and the trick is to wed a woman from a specific religion(I wont’ say, since it’s my secret). According to well know facts the followers of this religion always get’s the most gold, Prasad even sent me pictures as proof, and I believe him! I can’t understand how they even have the power to stand up, it’s a massive amout.

Interesting fact nr 2: Ram is talking a lot about his cousins, so today in the car from the office, I had to ask him how many cousins he really has. “22″ he said. “What, 22..22!. Are you sure it’s 22?” I said. He said: “well it’s a lot at least. 17 lives in the states.”

The Bangalore Report II – Day 2

Filed Under (Projectplace, Social) by Olle on 08-11-2009

Todays report will be a short one.

After a good nights sleep the day started with a trip throughout town together with Ram and Prasad.
We where on the lookout for some christmas gifts, mostly for the kids. Durring our trip I got to see a Panasonic TV that showed everything in 3d, really cool shit.

Due to the constant raining it felt somewhat of an adventure. I got to see parts of Bangalore that I have not seen before, the really poor parts. The mix of really poor and really rich people here in Bangalore is scary.

After a couple of hours shopping, or mostly riding the car really, me and Ram hade a nice lunch and watched the last part of the cricket game between India and Australia. Well Ram refused to watch since India really sucked, but I kind of enjoyed it when Ram hade explained the rules.

After lunch Ram was longing for his new found friend GWT, so we walked back to the office.
I also finished up some stuff that needed to be done, mostly mailing people that is. And all of a sudden the time was 7:45PM and it was really time to leave the office, and that was really the end of the day.

I’m really looking forward to meet the rest of the team tomorrow, we will make sure it’s a good day!

[Update 22:47]
Now most of you will probably think that I’m lying, but this is a true story.
When I was writing this report, it felt strange to do it so early(8PM local time), the normal is a bit later, and normally more things happen durring a day in India. But I was convinced that this was it, until I realized that I needed to go down to the hotel restaurant and eat something.
Earlier today I told Ram that the electricity died like five times yesterday, and that it was a drag when I was watching the soccer game. You know, I hade to find back to the right channel and all.

But today after finishing the report, and after a not so very eventful day, I got stuck in the hotell elevator not once but twice!
I hade forgotten all about yesterday and the mode swings the electricity has here, so I plainly walked into the elevator, and placed my room key-card on the reader to go down to the restaurant. At the same time the power died, first I thought that I hade done something wrong, but soon remembered the mood swings. I knew from yesterday that the power usually comes back within a minute or so, and so it also did this time. The elevator started to move to the -1 level, probably some safety stuff, and the door opened.

But now I did something really strange, I stepped out of the elevator, just to walk straight back in again. Why did I not take the stairs, when I know that the power seems to die repeatedly and quite close in time? Well,  I put my key-card on the reader to go up this time. But to my surprise the power dies again just when I’m in between ground floor and the basement. This time I needed to wait a little longer, but not more the 3-4 minutes.

Ps, It worked the third time! ds.

The Bangalore Report II – Day 1

Filed Under (Projectplace, Social) by Olle on 07-11-2009

So I’m back in Bangalore!

The trip started out fine, at 03:50 I left the house heading for the airport.
My son, asked me the previous night why I always need to be away in India all the time, so it was not the happiest camper who boarded the flight to Frankfurt.

Frankfurt was the same, durring my three hour wait I spent some time looking at the Javascript unit tests again. It’s really strange, but these small tests is such a joy to work with. In Frankfurt I also started with the review of the upcomming book by Ellnestam, it surely is promising!

On the flight to Bangalore I got the seat dead last in the plane, and there was no space at all to bring out the laptop, so I keept on reading the coming book in the iPhone. I promise the my laser eyes sharp are not created for this.
The woman next to me was an elderly indian woman who was somewhat lost. Durring the flight I helped with for instance opening her food, holding here cup of water, opening/closing the seatbelt etc etc. She was really sweet, I think, since she was constantly speaking to me in a language I did not understand.

Arriving in Bangalore was a relief, since me and the elderly woman hade run out of topics to talk about.
In Bangalore they have upgraded their fight agains the svin flue since my last visit, they now have heat-seeking-cameras instead of doctors. Bangalore is really high tech! The only issue with this new high tech solution was that no one was watching the tv’s that showed the heat signatures. Maybe the tv’s where there to show the visitors that India hade the heat under control?
Well at least customs went well this time. When I finally got my bag, after an hour of waiting, it had a big white X on top of it. I know since last visit that this is the sign of a smuggler, and that it’s time to pay. So I tried to put my laptop on top of the big white X and went towards customs looking as confident as I could. My only misstake was that I hade missed the second X on the side of the bag, so of course I got taken by customs.

Thanks to my charm and intelligence I managed to convince the customs guy, after explaining that the great state of India probably did not mind me bringing in socks, shirts or laptop chargers, to let me through. And this even without having to pay the bribe. I felt really good when I was walking out of customs knowing that that I hade managed to sneak through the second laptop that I had in my hand luggage. Success! I hade finally beaten the Indian customs, and who are they to treat me as a smuggler?

Prasad, as always, was waiting for me ready to take me to hotel. On the way into town, on the for once empty streets of Bangalore, we talked about the TED conference(TED India is held in Bangalore this weekend), about new car models, that Prasad could talk in his native tongue to Samuel and such.
Prasad told me a story he hade heard about Toyota. Toyota hade launched a new model in India some time back in 2003 , the same time as when the offshoring of  support centras hade really taken of here in Bangalore. So a lot of the new support centras bought the new 8 seater Toyota model to be used as transportation of the employees between their homes and the offices, since they were working shifts all through the night. Unfortunately the drivers at the support centras drove like they hade stolen the cars and where involved in a lot of fatal car accidents. The Toyota car started to be referred to as a “killer car”. So Toyota decided to remove the brand new model from the Indian market, the car hade sold like “butter in sunshine”(thanks for the translation Google Translate), but Toyota did not want to smear the Toyota brand with a “killer car”. A story that surely makes one think.

After 4.5 hour of sleep I woke up at the hotel, and it’s really a nice one. Breakfast consisted of boring bacon and egg, I do not what to give the belly-bug a chance to get a grip on me. After breakfast Ram came by and picked me up to go the office.
And now something about Ram, Ram has after 1.5 years in India gone back to being 100% Indian, at least he drives and walks 100% like an Indian! He breaks for nobody, like the space balls. An example, we are closing in on the most crowded traffic junction in India(at least it felt so), and Ram refuses to break, he just turns.. By magic we made it to the office.
An other example is me and Ram crossing the street from the office to local coffee shop, Ram just walks straight out in traffic, taking me by the shoulder saying “fuck it, no problem”. The funny part is that we made it cross the street, so maybe the Indians know something the rest of the world don’t know(maybe that is was Martin Fowler really is talking about). I will test this new driving and walking technic first chance I get when I’m back in Sweden.

The interview that was planned to be held today was unfortunately canceled, due to that the poor guy we where to meet was involved in a car accident on his way from Chennai to Bangalore for the interview. Luckily he apparently was not badly injured, and hopefully we will get a chance to meet him before I leave.
So instead me and Ram spent the day talking, we hade some really good discussions and we also managed to fix a WEBDAV bug.

Kashif and Appa Rao came by the office as well, great to see them again. Appa even stayed to re-test his Google Analytics work he have been doing the past week. Unfortunately the data was not correctly submitted, but together we managed to fix the bug and also re-factor a smal part of the source code. Kaizen MF!

At 7:30PM I was ready for dinner, but Ram was not even close since he hade some bug in GWT that needed attention. But through the power of me outranking him, I persuaded him to close the computer and take me to dinner. Appa stayed behind since he was about to test “one-more-thing”!

Projectplace Bangalore is something special, it’s 10 highly skilled people with a never give up attitude, I feel really blessed knowing them!

Me and Ram hade dinner at my hotel, and a nice one it was(I think that I might have let the belly-bug in under my shield). We continued our talks and enjoyed the elevator/Las Vegas style music in the restaurant.

After dinner me and Ram called it a day, Ram drove his car home and I wrote this.

[Update] ESPN is showing the Arsenal game, success!

Reflections after ThoughtWorks Agile and Integration Seminar

Filed Under (Social) by Olle on 09-10-2009

First of all, if you get a chance to hear Martin Fowler speak, Go!
You don’t even need to agree with the thought he has(even though you should), just go and hear how a talk shall be executed!

So what in the talk did stick to me the most, I have four pages of notes, but probably one of the most important one is:

The best ideas come in the meeting between cultures

As most of you know, ThoughtWorks has office in places like the USA, Europe and India. According to Martin Fowler this mixture of cultures gives ThoughtWorks a competitive advantage, the tricky part is having the cultures collaborate.

Fowlers specific experiences of Indian companies,  and specifically Indian leadership style,  is that it is a “command bridge” leadership style, leaving employees as resources to get the decisions done. The here trick is to set the employees free, and let the cultures meet as often as possible.

I could not agree more. My experience is that it can be really hard to convince Indian developers that their initiatives are valued! This is probably mostly due to that developers who have worked in the Indian work environment their whole life, where do-as-you-are-told is the way to get a raise or even some appreciation, tend to disbelieve statements like “you are free to take your own initiative”, “please, raise your voice if you disagree”, “your suggestions are valuable” etc. But I guess it’s as it always is, it’s not the words, it’s the actions that talk. We just need to make sure that the great examples are celebrated and really praised!

The second trick is global as I see it. You need to find the right people.
According to the chairman and founder of ThoughtWorks Mr Roy Singham, who I had the privilege talk briefly to during a coffee break, ThoughtWorks consists of 90% really skilled communicators and 10% technical wizards(according to Roy good to have for the really hard tech stuff, but not for collaboration or customer contact). Roys feeling was that most of the innovation found in ThoughtWorks are driven by the 90% communicators. The best ideas comes out meeting between cultures, where a different way of thinking often elevates the original idea far beyond the original level.

But what if you hire the wrong people, not wiling to work in an environment with high uncertainty? You will most certainly get what Fowler calls the “revolving door”.
The values in the company will show, sometimes really hardly, that an individual will not fit into this organization. ThoughtWorks and Projectplace seems to look on change and uncertainty in somewhat the same way. We don’t know how to handle certan things, but that’s ok, just as long as we talk about it, try to fix it if needed, and agree on that it’s ok not knowing everything. This can be really hard for individuals how seek order and “someone-must-have-an-answer-to-this” to accept this, some can change but some can not. And the best in some cases will be to parter!

The Lion and the Gazelle

Filed Under (Social) by Olle on 19-08-2009

Every morning in Africa, a gazelle wakes up.
It knows it must run faster than the fastest lion or it will be killed.
Every morning a lion wakes up.
It knows it must outrun the slowest gazelle or it will starve to death.
It doesn’t matter if you are a lion or a gazelle.
When the sun comes up, you better start running.

Every morning in Africa, a gazelle wakes up.
It knows it must run faster than the fastest lion or it will be killed.

Every morning a lion wakes up.
It knows it must outrun the slowest gazelle or it will starve to death.

It doesn’t matter if you are a lion or a gazelle.
When the sun comes up, you better start running.

How to write good tests. Top 5 considerations to build software without defects. | Making good software

Filed Under (Coding) by Olle on 07-08-2009

How to write good tests. Top 5 considerations to build software without defects.

via How to write good tests. Top 5 considerations to build software without defects. | Making good software.