Monday, October 22, 2007

Something different...

A few years back, when i was fresh in the industry, I used to read up a fair amount on "Personal Productivity" and "Effectiveness". Some of the articles that were useful to me were written by a person named "Steve Pavlina" who used to run a games site.

I did a search for those articles again a few weeks back and I found that he has quit games and moved on to have his own personal development website http://www.stevepavlina.com. and http://www.stevepavlina.com/blog/

Spent sometime reading it up and what I find different about this person is his hands on approach to everything that he tries. If something is not dangerous and worth knowing about then he tries it out on himself for a few months and writes about his conclusions (polyphasic sleep, living without a microwave, manifesting money through intention! ... ) .

He is pretty comfortable writing his point of view and experience about things that are usually considered bizzare (paranormal).

Definitely worth a read. Be prepared for something unconventional and ask yourself why you feel uncomfortable if you do !

I always remind myself that whats "rational" today was not rational a few centuries back and what will be "rational" a few decades from now may not be considered rational today.

Wednesday, October 17, 2007

One laptop per child..

I was impressed by what these folks set out to do and wondered if they could pull it off. Creating such a cool laptop for less than $200 is something admirable. Looks like they are in mass production now.

This is a project worth reading about: http://laptop.org/en/laptop/

The ted video that talks about this:

Thursday, September 20, 2007

Interviews...

I usually feel that technical interviewing is, for the most part, random (old post). It is cool that some teams are not only aware of this but do interviewing differently to take care of this.

See how the mono team hires :
http://tirania.org/blog (search for sample interviews)

A resume, plus an interview when you ask the candidate to "implement XX on the whiteboard" and some trick questions have too many problems which are probably worth discussing some other day. In my experience these kinds of interviews that have been popularized in the industry are bad. They evaluate developers on all the wrong dimensions that you need to produce software.

Coming up with what makes sense for each specific group/team takes effort, but who said keeping things real is easy :)

Friday, September 14, 2007

Demotivational posters...

Pretty hilarious ones. Some are pretty close to reality :) :

http://www.despair.com/viewall.html

Because, in our world of instant gratification, people desperately want to believe that there are simple solutions to complex problems. And when desperation has disposable income, market opportunities abound.

AT DESPAIR, INC., we believe motivational products create unrealistic expectations, raising hopes only to dash them. That's why we created our soul-crushingly depressing Demotivators® designs, so you can skip the delusions that motivational products induce and head straight for the disappointments that follow!


Wednesday, June 20, 2007

Getting through JEE

Even though it is more than 10 years since I wrote JEE, even today i get questions like "how do you prepare for JEE", "give me some tips/guidance for effective study" etc. Since it is such a long time i no longer remember the main things that i did/strategies that i used to prepare etc. So I have to resort to generic bullshit like:
  1. Work systematically to cover everything
  2. Write a lot of state/country level tests
  3. Do what you like, don't try to get through JEE and into engineering just bcos there is peer pressure.
  4. Plan well, experiment and find out what works best for you etc etc
If someone had asked me the same question when i was studying, i would probably have had a million specific things that i used for preparing. Once you are through you usually forget what actually contributed to that and start resorting to obvious things like the above...

If I had a (b)log of what all i did back then, I am sure it would have been valuable now. If we had similar logs for say the top 100 ppl in their respective fields (say ppl who start startups, ppl who had significant social impact, ppl who invent things...) I wonder what we will learn from their logs rather than from listening to what they have to say about how they did it.

Friday, June 15, 2007

7 years at work

Does not seem like such a long time after all :).

Wishful thinking

One of the favorite methods of solving tough situations in our industry is "wishful thinking" :). It is surprising how often even otherwise sane people will say stuff like "Oh, we should ship faster and be more agile, maybe we should follow scrum" !!

How will you know something will solve your problem if you are not even sure what your problem is:
  1. Is it lack of specs and vision? Maybe you really never specified what you wanted to do, so all sorts of random things are getting done?
  2. Scope - did you scope the project so that it has a chance of getting done on time with the resources you have?
  3. Talent - do you have a bunch of asp.net programmers trying to write kernel code or vice versa :)
  4. Managing change - did new things happen to which you have to react?
  5. Learning from mistakes - did you ever have a honest post mortem? Did you learn something from it?

How the heck will any of the above problems get solved by following a different process or by asking for status mails more frequently?

Friday, June 01, 2007

Error handling

Imagine you are building an application/sdk. Let us say every time an error happens in your app/sdk you give the following helpful error: "An error has occurred at sometime due to unknown reason" and give guidelines that if an end user should see this kind of an error they should enable tracing in their application config and restart their application and repro the problem again so that they get more useful errors in "traces".

What should be the reaction of your customer?
Right! they should come and kick your ass :)

As tragic as this seems, this seems to be the default error handling strategy of one of the "change the world" platforms!

Thursday, May 31, 2007

Technical interviewing

Here are a couple of mental exercises which I usually dislike doing. I hope you dislike these too :)

Part 1:
  1. Come up with all the work related tasks that you have to do in a usual week at work.
  2. What contributes to your bottlenecks?
  3. What skills would be useful to have for someone to do your job?
Part 2:
  1. Come up with the list of questions that are usually asked for a person interviewing for your job.
  2. Think of the number of times the "skills" tested for in above are useful on the job in the last 6 months.
How related are part 1 and part 2?

Friday, May 18, 2007

Grokking homeopathy

It is very common in India (probably elsewhere too) for any random person to read up some books and start prescribing for family and friends. This causes quite a few a misconceptions:
  1. It does not work or works very slowly.
  2. It has to cause an aggravation before you get cured (belief held by most doctors with homeopathic medical degrees too - great commentary on state of education, just like in most other fields).
  3. Taking random medicines is harmless to the cure.
Recently Dr Luc has started blogging about homeopathy for the public. It is worth reading through the blog to get an understanding of this cool healing modality and to know if you are really talking to a competent homeopath (see choosing a homeopath).

blog url: http://drluc.blogspot.com/
website: http://www.drluc.com/

Thursday, May 03, 2007

XmlSerializer wierdness

Using XmlSerializer for transport purposes is in general a bad idea. "Ahead of the curve" teams in the industry who believe in using every new thing that comes out usually get caught in these landmines :).

There are a few reasons for this
  1. You need to expose every field that you want serialized as a public property/field. What a joy to that your object model does not hide anything ;)
  2. XmlSerializer does not work for Dictionaries (who would have a dictionary in their api?)
  3. XmlSerializer does not work for List of lists and some such (rare, but u will sometimes run into this landmine if you try to solve 2 creatively).
  4. You can leak a few dlls (and due to way windows virtual memory works, you will lose atleast 64k of virtual space for every dll) on every serialization attempt if you are not careful (blogged about his before)
  5. Many useful framework classes are not xml serializable (e.g. Regex)
Now that we are fairly convinced that it is a bad idea to use xml serializer for transport, we will decide that it is the right choice for configuration files... more about this in future blogs :)

BTW, the DataContractSerializer with dotnet 3.0 solves all these problems and it is an infinitely better beast.

Wednesday, April 25, 2007

Big company tax

People often wonder why it takes so long for a big company to ship, when a smaller one with much less resources can ship much faster. Is it because big companies hire incompetent people, dont know how to write software or run projects?

From what i have seen, the same software (say a messenger) will take much longer for a big company for the simple reason that much more has to be done to ship software, it is not done when the features are done and tested. Some of the things that small company folks never even think about:
  1. Clustering support
  2. Security reviews
  3. Windows Logo compliance (client and server if you have both)
  4. Legalese and trademark stuff. Oh, you are shipping a sample/demo code called "CatDemo"?? Legal wont approve, so go change all your samples and tests which use it to call it "DogDemo".
  5. Localization support, Does your software support turkish?
  6. Playing well with other products that the company ships. Oh, you mean you do not have an integration story with Office??
  7. Branding and ship vehicles. You are too small, so we will ship you with ProductLarge, so now lets make sure that we have an setup integration story with ProductLarge
  8. Run the million code analysis tools and do a superficial supress of all the crappy warnings that it generates? We dont trust your tests/perf tests to do a good job, we will warn you that you have a performance problem if you do a string catenation
  9. And btw, the next version of OS is shipping while you do this, so please make sure that you run on that too...
  10. and on and on ....
I think doing some of the above results in real $$ (clustering, loc etc), others are just the tax that smaller companies don't see as no one ever bothers to hack their code or sue them for some violation. And not doing it is not an option either[what do you mean, you wont support Vista :) ]

So net effect is that if you 100 hours of usual software work, you have around 200 or more hours of process work. Depending on competency of the folks who run the project, these things will be on radar right from start or turn up as surprises right at the end => more slips and chaos at the end.

This makes it frustrating for a developer at times, but the upside is that you get to work on stuff which small companies can never do [Database, OS, Servers, CLR etc] and have a corresponding larger reach .

Monday, April 16, 2007

Doing less...

I remember an interesting question about some of the microsoft products - how do they load up so fast. The response by a senior guy was unexpected and insightful... "Do less during load, it turns out you can do nothing very fast!"

Not surprisingly, the same attitude - doing less - can be taken to shorten release cycles, improve quality, ship with less resources, have a more balanced life, get time to explore a new field etc.

How many individuals/teams get this right?

Thursday, April 05, 2007

Mobile devices....

One of the cool things about working for a big company like M$ is the breadth of work that you can choose from (there are many uncool things as well and i don't have to mention them :) ).

Last 2 years i worked on the rfid platform for windows. As we go to the next version planning, i am pleasantly surprised by the changes that can happen to my work even without moving teams - we want to do rfid for mobile, rfid for for windows natively etc.. => we get to work on development for mobile devices, on user mode drivers for windows, on the activation services stuff for Longhorn Server etc. all in the same team.

Due to this work change, i think my blogs are going to take a mobile flavor going forward.

Monday, March 05, 2007

Water heals?

Came across this interesting site recently www.newstarget.com. It has interesting articles on how fucked up current medical institutions are (esp in america). India seems to be slightly lagging which came as a big shock to me :); I am sure we will catch up soon.
  1. Does the state own your body?
  2. The Abraham Cherrix cancer story the media won't print
I found something suprising and useful information about water (please dont dismiss this as some random crap before reading :) ):
  1. Healing with water
  2. Interview with Dr B
  3. Dr B's site
I usually drink less than a 1 litre of water a day, so tried fixing it by keeping a bottle nearby and drinking every so often. You actually feel pretty good physically when you have sufficient water in your body! If you have friends who have asthma, please try out and see what happens.

Wednesday, February 28, 2007

Definition of health

Having gone through a rough one year in terms of family health, I must say i am disgusted with the current state of doctors, their concern (lack of) for patients and medicine around here.

Hospitals are no longer a place where you go to get your heatlh back. It is more like a grey area with shady business practices (ah - the joys of insurance!) where you go to get abused and probably come back feeling sicker than you went in.

For all claims of advancement, i strongly believe that most of our doctors (or is it the medical science itself?) dont have passable competence or knowledge in handling human health.

Try finding out what causes hyperemesis, or eczema or whats a reasonable cure for sciatica...? It is not surprising that once popular conventional methods fail, people try alternatives (how long can you take painkillers and sedatives and hope that you get better).

Again find a good doctor in the alternate field is just as hard..... I hope that these systems get more attention than they currently have. For e.g. acupuncture does a lot of good for sciatica cases (still in process of trying it out - so far results are pretty impressive), homeopathy is great for chronic cases (personal experience with my back ache) etc..

What we probably need is a site where people can share their experiences - i went to X hospital, Dr. Y is incompetent, the hospital ripped me for insurance money. Went to Dr X with disease Z and got healed in 3 months.

Vithoulkas has a great site on homeopathy, and I find his views pretty human. The site is worth visiting. Read about his views on definition of health too..

Friday, February 23, 2007

Process Monitor...

This new tool is worth its bytes in gold. Has already come in handy for me many times. It is a huge upgrade from filemon/procmon. Ability to track short lived processes, logging, better filtering...

Check out the authors video: using proc mon

Get the tool here

Thursday, February 22, 2007

Quillpad...

This is a cool transliteration website built by rampi&Co. It is pretty intuitive to use, you just type in whatever seems phonetically right to you and it automatically converts it to the language that you choose.

No more mix of capitals and smalls, artificial repetition of a's to get your words transliterated. If you are used to other transliteration tools, this could be confusing, forget your habits and try to write naturally. This promises to be a great tool for the indian market.

For eg. type iroju nenu chala santoshamuga unnanu and it converts it as you would expect. Try it out and give feedback to them: quillpad


Wednesday, February 21, 2007

Ted talks...

These days, whenever I go to a talk/meeting, I see these features:
  1. They are completely unprepared.
  2. Don't respect the audience's time - "hey, i am on the stage" kind of talks.
  3. Have no theme or decision to convey.
  4. Randomly ramble or use keywords till you get irritated.
So naturally I am pretty happy to find some talks which violate all of these guidelines. These are among the best talks I have ever listened to. Wide range of speakers and it suprising how much they can convey in half hour. Here's the Ted talks link

Monday, February 12, 2007

I am back ...

The picture below explains why there were no posts from me
for a long time :)