Author Archives: Anaamica

Telecon with global team lead

We all know what conference rooms are. We also know that employees-conference rooms ratio is not really ideal in most of the organizations. People haggle over rooms for their meetings, telecons, presentations and what nots.

Thanks to a very strict manager in my previous organization, I know the importance of booking a conference room for any meeting and being present in the room well before the designated telecon time. Looks like no manager in my current organization has been able to teach these simple “rules” to the employees here.

We have meetings like innovation workshops, code reviews and tracking meetings and are less critical compared to telecon with the overseas team or “global team lead”. Still, we religiously book a conference room and park ourselves there well before time. 9 out of 10 times somebody would have occupied it. We have to “display” ourselves and let them know that we are waiting for the room. Apparently, they don’t get the message. They think we are snooping around to see if there is any room which we can hijack. After waiting for a few minutes, we knock and tell them in clear words that the room is ours because we have booked it.

What happens next depends on who is asking for the room. If it is a young person, they usually write off saying they booked the room and kick us out. If there is a guy looking like a lead, then there is a sarcastic “You booked the room? We have been using this room for telecon since 2 years” as if that gives them the authority to hijack the room whenever they want. If there is a manager around, a senior guy from the hijackers team will make a sincere yet authoritative request “We are having a telcon with the global team lead. I am already on the call. Can’t hang up now. Please find another room for yourself.” The word ‘please’ is hardly audible.

Now this is where my blood starts boiling. Nobody, not even the manager, not even the lead dare even ask “If you have a telecon with your team lead, why didn’t you book a room”. Why doesn’t anybody have the guts to say that? If I could have it my way, I would barge into the room and ask all of them to leave.

Somebody please come to my organization and put some sense into all the heads here. All the people need their brains to be washed with Mr. Brain Whitener and need to be taught about etiquettes.

If you are reading this and are guilty of hijacking a room, I urge you to stop doing that. Please.

The Last Lecture by Randy Pausch

Randy Pausch, a professor at Carnegie Mellon university has only a few days to live. He gave his last lecture a few days ago. This is the video of his now famous ‘The Last Lecture’. What do you think would be the last words of a dying man?

Youtube link

Google Video link

The complete lecture (1 hour 25 mins)

Hungry eyes

A darshini in J.P.Nagar. Friday Evening. Around 8.30.

It was a long, tiring day. No mood to cook and no patience to wait at restaurants waiting for food. “Dinner at a darshini?”, asks my husband. Sounds good.

We ordered dinner, as in we paid for it and collected it from the counter. A young man is relishing his noodles. A couple is busy stuffing the kid with idli. The road is almost deserted – 9 is late in Bangalore. An empty table at the far end, almost touching the road. That will do.

As I am gulping down my meal, my eyes lock with another pair of hungry eyes. I look away embarrassed. The other pair continues to stare alternately at me and my plate. A tug at my heart, a wrench in my stomach and my mind made up itself to face the situation.

I walk up to the owner of those hungry eyes.

“What’s your name?”

“Asif.”

“Do you know Kannada?”

He shakes his head.

“English?”

Shakes again.

“Which language?”

“Urdu.”

“Kya khaoge?”

No answer. I can see he is embarassed, ashamed.

“Idli khaoge?”

His eyes light up. He is almost inaudible. “Bhel Puri.”

“Idhar hi ruko.”

After five minutes, the darshini-wala calls out, “One plate bhel puri.”

I look around to spot the eyes. They are no where to be seen.

Darshini-wala says, “Is this for that boy?”

I nod.

He and his colleagues start searching for that boy. He is hiding behind a car. They call him. He shakes his head.

One guy shows the parceled bhel puri to the boy. “This is for you”, he says.

The boy is still not sure. Reluctantly he comes to collect it. He collects the parcel, and walks out, not even once looking at me.

Darshini-wala says, “He comes here everyday. Some four-five times. He will come back again after some time.”

I ask myself, “Did I do the right thing?”

Why do we support the weaker one?

Watching Australian Open last month was fun, to say the least. We saw a lot of upsets. Federer challenged by Tipsarevic in round 3, the defending champion Serena Williams thrown out in quarter finals, the World No.1 Federer and No. 2 Nadal failing to reach the finals – this was one nail biting tournament.

I watched the semi-finals between Djokovic and Federer and then the finals between Djokovic and Tsonga. Amazing matches, both of them. In the semi-finals, the crowd was cheering for Djokovic. There were many Federer fans present, no doubt, but Djokovic fans were more vocal in their support.

Cut to the finals match and the exact opposite happened. People were cheering for Tsonga. Djokovic fans were unusually quiet. Djokovic showed his disappointment about this in his acceptance speech.

The match was not about Serbia vs. Switzerland or Serbia vs. France. This was about strong vs. week. The crowd was not cheering for the country the player represented but the quality he represented. In both the matches, the crowd wanted the weaker player to win.

Why are we humans like this? Why do we want the weaker player to win? Is it because we want to boost his confidence or empower him? Even if either person wins, the crowd doesn’t really gain anything. What do we gain by supporting the weaker player? To feel good that we didn’t support the obvious winner but supported the less obvious one and hence did a good deed? Or is it just because we want to see an upset and hence a hot news to talk about? What is the intention behind this loyalty shift?

Why only the crowd, even I wished the same. My loyalty towards Djokovic suddenly shifted in the finals and I was hoping Tsonga wins. If I ask myself why, I am not happy with the answer I get. I want the weaker player to win because this will create a new sensation and breaking news and I have something to talk about. I want to discuss/gossip about how the champion was defeated and that gives me some wild pleasure. Strange!

What’s your reason? Why do you support the weaker player?

Setting up Darwin Streaming Server – Part 2

Part 1 can be found here.

Darwin Streaming Server documentation states that the video clips that need to be streamed should be under the Movies folder. This, on Windows, is C:\Program Files\Darwin Streaming Server\Movies. When the server receives a RTSP request for a video clip, it checks this folder for that file. What is not documented is that the server looks recursively under the sub-folders for the requested video clip.

So, if you have folders like Songs, FunnyVideos etc. under Movies folder, Darwin server will be able to stream all video clips under these sub-folders. Catch: These sub-folders should not contain spaces! If a sub-folder ‘Funny Videos’ is present under Movies folder and you request for a file which is under ‘Funny Videos’, Darwin server will return a 404 Not Found error.

I wonder why this is not included in Darwin Streaming Server documentation.

Main Form loses focus

Apologies if this post comes across as naive. I recently put my foot into the Windows Forms world and I have been learning new things. This might be a problem which all GUI programmers have encountered on day one and also know the solution to it. This post is to those souls like me who make a late entry into this magical world and seem to get lost, err… lose focus.

Problem:

We have a main form called MainForm. Whenever the user clicks a button on this MainForm, a method Copy in a class HelperClass is called. This method Copy uses the kernel call FileSystem.CopyFile to carry out the copying. One reason to use the kernel call is you need not re-write the progress bar and cancel features, just reuse the features provided by the kernel call. This will display the standard Windows file copying dialog with a cancel button.

The problem is, whenever you click Cancel on the file copying dialog, the MainForm loses focus.

Solution:

Since we are using the file copying dialog provided by the kernel, we have no access to the dialog directly. Hence, we cannot set the MainForm as the owner of the file copying dialog.

The solution to this problem is, in MainForm, right after we make a call to Copy method, set the focus back to MainForm.

    Copy(source, destination);
this.Focus();

Problem solved.

How to setup Darwin Streaming Server on Windows

PS: Part 2 of this article can be found here.

What is Darwin Streaming Server?

Darwin Streaming Server is an open source, free to use streaming server from Apple. The commercial version of this server is the Quick Time Streaming Server.

Where do I get it from?

The Darwin streaming server source code can be downloaded here. You need an Apple ID for this. Registration is free – go get an Apple ID for yourself.

How do I install?

Once you download the source code, you will see a install.bat in the root directory. Just double click on it and the batch file will copy the necessary files under C:\Program Files\Darwin Streaming Server. This is all the installation required.

How do I start streaming?

Along with the source code, Apple ships a few sample video clips which are ready to be streamed. All these video clips are under the C:\Program Files\Darwin Streaming Server\Movies folder. You can stream any of these video clips and view it on a player. Open up a command prompt. Go to C:\Program Files\Darwin Streaming Server and start Darwin server by typing DarwinStreamingServer.exe -d. If all is fine, you will get some INFO messages and a message that says ‘Streaming Server done starting up’. This means the server is up and ready to accept client connections.

If you get an error something like ‘WARNING: Another process is already using the following RTSP port: 554’, then the Darwin Service is already running in the background and you don’t have to start the server explicitly.

Your server is ready and all set to stream.

How do I connect using a player?

VLC Player: File->Open Network Stream. Select RTSP and give the URL as rtsp://localhost:554/sample_100kbit.mp4

QuickTime player: File->Open URL. Give the URL as rtsp://localhost:554/sample_100kbit.mp4

If all is fine, you should see an animated ‘Q’ – logo of Quick Time.

More info?

Google is of course there.

Administrator’s guide.

FAQ.

Darwin users mailing list.

Article on software patents

Jeff Atwood has an interesting and thought-provoking article on software patents. Read it if you haven’t yet.

I had goosebumps when I read this:

Think about that for a minute. Seriously think about it. Every time you write code — even a brand new algorithm in a clean room environment— you could be infringing a patent, somehow, somewhere.

The Speaking Tree

If Times of India does one good thing, then it is publishing the column ‘The Speaking Tree’. It is a daily column aimed at providing insight into spirituality. Today’s article is an interesting read, it talks about the relationship with oneself. In this chaotic world, if one has to find inner peace, one should have a strong bonding with oneself. Sounds silly? Well, then you don’t know what solitude is.

Here is the RSS feed for The Speaking Tree column, for those interested.

Synergy

Two CPUs. Two monitors. One mouse. One keyboard. The equation doesn’t sound feasible? Synergy makes it feasible.

Synergy is an open source tool, implemented in C++ which lets you share a mouse and a keyboard between multiple computers. The application is small and considering that it works over TCP/IP, it is really fast.

Setting up Synergy is very easy. Install Synergy on all machines you want access to. Assign one machine as server and the others as client. What is the difference? The mouse and keyboard which is assigned as server shares the peripherals between all machines whereas the peripherals belonging to the clients are just theirs – there is no sharing.

Matt Cutts introduced me to this nifty tool and now that I have used it for a week, I am wondering how I ever survived without it. Matt gives a good step-by-step description of setting up Synergy. Go over to his blog or see the help page on Synergy Sourceforge. Install it and liberate yourself from managing multiple mouses and keyboards.