Showing posts with label opinion. Show all posts
Showing posts with label opinion. Show all posts

21 Jul 2026

Online discussions on taxes

The vast majority of online discussions about taxes, especially in India, is overly simplistic and often just plain dumb. The worst kind is reader comments to any post saying anything at all about taxes. Paying attention to those comments will not lead to anything productive; reading them only enrages us.

3 Jun 2026

Find your niche

I randomly remembered a line from a Tamil song, and I kept thinking about it for a few minutes. I wanted to make a drawing out of that line. I opened Google Gemini, entered an elaborate prompt, and got a pretty good image as the result.

The line from the song says, “Travelling on a cart, why are you carrying your things on your head? Put them on the cart, and the cart will carry them for you.”

I have had zero training in drawing. When I was a school student, drawing basic flowcharts using rulers and pencils would take me hours. I do not consider myself inclined or experienced in any way when it comes to drawing as an art.

Despite my lack of exposure and training, I was able to make this image fairly easily.

That’s the kind of enablement, or lowering the bar, generative AI has been doing. It has not made an artist overnight out of me. But it has enabled me to express myself in ways that were impossible before.

Technology increases quality of life

Back in the days, when electricity was not available everywhere, if someone had to listen to a song, there was no way other than to ask someone nearby to sing for them. Once electricity, cassette players, recorded songs (such as from movies) became prevalent, no one asked their friends or family to sing for them. Most people were able to listen to recorded performances of singers like TM Soundararajan or Lata Mangeshkar.

We can imagine that mediocre singers whose songs were accepted as “good enough” suddenly had to compete with Lata Mangeshkar and became “not” good enough. The advent of technology changed the world so that the quality of acceptable singing went way up.

Technology lowers the bar to entry

Technology benefited the experts by making them more accessible. But technology also lowered the bar to entry. (Not the same technology, but technology nonetheless.)

I am a good example for that. Without the internet and free publishing platforms, I may not have written as much as I have written in the past 20 years. As a writer I am not exactly good, but I have the platform I need to communicate, to share my ideas with others.

Generative AI agents are now lowering the entry bar even further: I was able to make an image just by describing it in words.

The importance of niches in the modern life

On the one side, the entry bar keeps getting lower—anyone can participate. On the other side, good stuff (such as content) keeps getting more accessible. The vast majority of content—blog posts, videos, podcasts, etc—will likely not find any audience at all. If you were an emerging creator, this can make you feel powerless. You can create, but most people may not find your work compelling.They would rather enjoy the works of the experts in your field.

There is a way to opt out of these impossible conditions: deliberately stop trying to compete with global (or even regional) superstars on their turf. Instead, find a niche where they are not even present.

Niches are, by definition, less crowded. It becomes relatively easier to find someone who likes what you create. Niches also tend to have less competition. A crude example: Richard Lindsay probably didn’t have to snatch Dido’s or Taylor Swift’s listeners for his Recorder in the Corner song. Dido listeners are not very likely to be present in Richard Lindsay’s niche.

If you are wondering what to do in life, maybe start by finding your niche. Unfortunately, finding your niche will also feel like an impossible task. Keep doing what you love and study the kinds of engagement you get. Your niche will likely be visible from the patterns you see in the engagement you get. You’ll often discover your niche only in hindsight, so keep creating and sharing what you create. Once you find your niche it can become easier.

Are niches only for artists?

Though I only mentioned singing and writing, finding a niche can help people in other professions too. Everyone, including the likes of plumbers, engineers, and tour operators, can—and should—focus on finding a niche where they can excel.

3 Apr 2026

A software engineer’s fear of AI systems taking their job away

In a private Facebook group, a software developer expressed fear about losing their job to AI systems that can write code. As a software engineer who has been thinking about this for a while, I posted a reply to that post. I am so proud of that reply that I am persisting a copy of it here (with some minor edits). 🙂

Go back a few decades. When people moved from assembly language to high level languages, there could have been a similar fear. (I don’t know if there really was, but I think we can draw a parallel.)

You suddenly didn’t have to painstakingly write optimised assembly code and manually link different assembly modules. Compilers and linkers were “good enough.” Tasks that needed three human programmers now only needed one. Experts in different machine architectures were not needed anymore; any high-level-language code can be compiled to run on any architecture.

If you were an assembly programmer, you were right to be terrified of losing your job to compilers. But then, if you just learnt how to code in a high level language, you became a lot more productive. You just had to look beyond machine architectures and see where you could add real value.

I don’t pretend to know how many software engineers will lose their jobs to the new AI systems. But I am fairly confident that today’s programmers will have an easier time adapting to the new world than a non-programmer learning to vibe-code today.

It’s entirely in your control whether you stick to the “old ways” or adapt to the new paradigm. Are you doing something to stay relevant? Ask yourself that, and keep adapting and improving until you have a satisfactory answer.

9 Apr 2024

Random thoughts after our Bali visit

Some scattered thoughts from our recent visit to Bali, Indonesia:

Pura Tirta Empul in Bali
  • While I don’t hate my job, it probably is very stressful. I am not consciously aware of the stress, but my constant ailments pretty much disappeared during the trip, even when I had stopped taking the regular medicines.
  • One of the best things that happened during this trip was bonding with my (8 years old) son. I never thought I’d be able to connect with him at a different level, but this trip made that possible. This is itself reason enough to keep travelling with my children.
  • A day is 8 to 10 hours long. Be it work or leisure, it should be just that length. Adults in the party (my wife and I) were okay to stretch the days to 12 hours, but the children needed their “me” time. They had to put their feet up and watch their YouTube videos or run around playing in the hotel room before they’d go to bed. I need to remember this next time and limit the number of activities we pack into each day.
  • I have always found flight travel awful. Dragging 3 sleep deprived and dehydrated children through airport gates and immigration reaffirmed my dislike for flying.

1 May 2020

Legalese vs code

This morning, I had to read the text of one section of India’s Income Tax act. Unsurprisingly, reading the text and understanding it was not easy. The difficulty is so well known that there’s a name for the language used in such legal documents: legalese. As I was reading through the rather short document, I was reconstructing an internal version of the same document in my head. Only this internal version was easier for me to understand.

Suddenly I realised this practice of reading something complex and reconstructing it inside my head is something I had been doing for years. Reading legalese and making sense of it is not very different from reading legacy code and trying to understand what it does.

Understanding code is easier sometimes because experts have been steadily making progress in making code easier to understand. These include creating new languages that are easier to understand as well as coming up with ways to alter existing code to make it easier to understand (known as refactoring in the programming community).

Compared to lawmakers and lawyers, programmers are at a better place because programmers have the tools to help us simplify code. Less readable code is also culturally frowned upon.

Lawmakers, on the other hand, are stuck with imprecise human language to write precise laws. Inventing new languages for writing laws is not an option. Think of it as a surgeon using a kitchen knife to perform a surgery. It’s doable, but it’s very hard to be as precise as the surgeon would want to be. That’s probably why laws are so hard to read, understand, and interpret.

5 Nov 2015

Apps lurking on a phone

I noticed that my Nexus 6P had Project Fi app was installed on my phone by default. It was disabled, but it was there. Once I put the Fi SIM card in, it automatically activated itself and prepared my phone to register with Fi’s network.

It’s sure better than asking users to install the app separately. But I am not sure how I feel about random apps lurking in the phone and auto-activating without my knowledge.

18 Sept 2012

Error-handling: Java vs Go

FotoBlogr is the first toy I wrote using Go.  As a part of FotoBlogr, I also wrote a Flickr client library, an App Engine helper library, (unpublished) Blogger client, and Picasa client, so I got to see some idiomatic Go.  One thing I really missed when writing Go was exceptions.  Many things that are one-liners in languages with exception support (Java, Python, etc.) become 3 or 4 lines in Go.  Let’s take parsing a string as an integer for example.  In Java, you’d write:
int n = Integer.parseInt(str);
and you’re done.  If you expect this conversion to fail, you’d catch NumberFormatException, but it’s not mandatory.  Compare this to equivalent Go code:
n, err := strconv.Atoi(str)
Of course, you can choose to ignore the error by using an underscore in the place of err, but it still won’t be as expressive like in Java.  For instance, you cannot write return math.Sqrt(strconv.Atoi(str)).  You must write that in two different statements:
n, _ := strconv.Atoi(str)
return math.Sqrt(n)
Of course, this is wrong, and it should actually be something like:
n, err := strconv.Atoi(str)
if err != nil {
  // Handle this error.
}
return math.Sqrt(n)
It was very annoying to get used to writing code this way... almost as if writing dumb code.

Fast forward a few months.  I had moved to a C++ project where the style guide prohibits using exceptions.  Existing code in this project ignored errors in several places, but when I was writing new code I always made sure I did something about errors... at the minimum log it and proceed.  I didn’t have to make a conscious effort to do that; writing Go code had trained me to naturally think about error handling.  It felt awkward to not check for errors, in fact.

Now, I am fixing a bug in a Java project.  This is an old project with design decisions independently made by hundreds of engineer over several years.  The change itself is fairly simple: instead of simply sending a request to an RPC server, now we have to first check whether it’s okay to send that request.  If this query fails, we’d show an error message to the user.  But the complication is this: I’m changing a void method that does not throw any exceptions.  (This method in effect promises all its callers that it can never fail!)  This method is being called by half a dozen classes, which are being called a few others, and so on.  Unless I touch a large number of files to handle the new error, I can’t get the code to compile.

I was discussing this issue with a teammate and what he said was remarkable.  He said, “Every method in every class should throw a checked exception irrespective of whether that method can fail or not.  If it cannot fail today, maybe it can tomorrow.”  He didn’t literally mean that, of course.  What he meant was we weren’t using checked exceptions as extensively as we should have.  If this method I am changing now threw some checked exception, I could simply use that in my client code without scratching my head too much.  This is precisely what Go does.  Almost all functions return an error status.  You can choose to ignore it, but when someone new to the codebase reads it, it’s obvious you’re ignoring an error.  I’m starting to think that Go’s way of error-handling is a much superior way than Java’s and C++’s.

SIDENOTE: The easy and obvious fix is to throw a RuntimeException and catch it in only the places I like to change now.  But that’s a really wrong way to fix a problem like this.  First of all, RuntimeExceptions are not meant for cases like this.  They are for things like division by zero, dereferencing a null pointer, etc.  Things that can happen in any code and thus are impractical to handle specifically.  Since they are rare and usually very serious, they are allowed to propagate through deep call stacks.  Defining application errors, input errors, etc. as RuntimeException can lead to severe debugging issues over time.  You really don’t want that.

28 Aug 2011

Dog Day Afternoon

After a friend's recommendation, I saw Dog Day Afternoon.  (Warning: spoiler ahead.)  The movie is about a real bank robbery happened in Brooklyn in 1972.  After a very interesting sequence of events, the robber Sonny gets 20 years in prison.  When I saw it at the end of the movie, it didn't struck me how long 20 years actually is.

Today I was thinking about it again.  I tried to visualize how long 20 years in my life has been.  If the sentence was to start when I had just entered Madurai Kamaraj University for my masters -- before I had completed the course, before I had moved to Bangalore, before I had moved to Hyderabad, and before I had moved out of Hyderabad -- the sentence would have been almost half over by now. If the sentence were to end now, it should have started when I was in my 4th standard.  20 years in prison pretty much means you rob the convicted of his life.  Well, a huge part of it.  If someone commits a "crime" when he's 30, we deny him his life until he's 50.  And we expect him to lead a "normal life" after that.

Looking at these laws, I can't decide if we're cruel or dumb.  Maybe both.

4 Jun 2011

How I became so conceited

I read SRK's this blog post a few weeks ago and since then I have been thinking why I find it incorrect.

I just remembered something that happened 5 years ago.  Someone was asking for some technical help on a mailing list of the Madurai Kamaraj University alumnus.  Someone gave a blatantly wrong answer (that's what I thought back then) and I responded with a message that started with a "WTF".  A senior of mine posted this response:
It does not behave well for any member of the group to use such unparliamentary terms in the mails sent to the group.
  This is not a motley group of friends chit chatting amongst themselves through mails.It has members who are quite senior, having more than 10 years of experience in the Industry. So let the decorum of such an August group be preserved.
I didn't like that at all and I stopped being active on the list.  I was simply reading mails and when I wanted to help people, I mailed them privately.  (I have always hated the "I am elder, respect me" attitude of many of my seniors. It badly hurt my ego to think that they scrutinise and criticise the mails I wrote.)

Fast forward a few years.  The mailing list had become a place exclusively for "job openings" spam.  It's not like people who are looking for a job have nowhere to find openings.  It's not like recruiting is done only a few times a year.  All companies are recruiting all the time, so I didn't find those "Company X is hiring" mails useful.  I sent a mail to the list proposing that either people don't send such mails or they send them to a different mailing list.  It wasn't very well received.  A few weeks went and I unsubscribed from the mailing list.  I am completely disconnected from the MKU community now.

All of these happened after I had joined Google.  Madurai Kamaraj University is not one of those elite institutions where Google visits for campus recruitment, so one of the questions I frequently get asked by my juniors is "how can I get a job at Google?"  In that regard, I am more privileged than most others from MKU.  I am like those "rich people" SRK describes... I stay away from the rest of the crowd because I work at Google.

But the reality, at least my version of it, is different.  People who have worked with me or studied with me would know this: even in schools and colleges I was like this.  Two similar-looking girls were my classmates in MCA; it took me two or three semesters to get their names right.  A big percentage of my class has never spoken to me (apart from maybe a hi when we happen to see on the hallway).  It's very easy now to paint me "conceited Google employee" and add me to a "rich, so won't laugh at our jokes" bucket.  But the reality is people are just different.  Infinitely more different than we can define categories to put them in.

12 Apr 2011

Does God exist?

What is my answer for the question "Does God exist"?  My answer is "Yes"!  There's a lot of hypothetical but useful things in the world.  Inches, for example.  Strictly speaking they don't exist; we don't find inches lying around.  But are they useful?  Of course they are.  In the same way God does exist and is useful.  If you don't want to, or cannot, make use of God just keep quiet.

Inspired by this post on Puri Subzi.

9 Jan 2011

Note to self: Don't fall for aesthetics again

It looks I will have to get a replacement laptop in a month or two, and every now and then I think of getting a MacBook.  Could be because of unintentional peer pressure.  Almost everyone in my company carries a MacBook around, so it won't be surprising if a part of mine is sold on the beauty of the machine.

Here I am going to enumerate the reasons why I should stick to a Linux machine -- or rather my past (bad) experiences with the Apple machine.  Just so that I don't fall for aesthetics again ;-)
  • MacBooks do not have Home, End, Page Up, and Page Down keys.  Command+arrows work in some programs, but not all.  Some programs might respond to Ctrl+arrows.  Bottom line is that no key combination can be programmed into my muscle memory, and I would be frustrated by the lack of productivity.
  • Apple believes that people run several different apps simultaneously, and that it's not common for a single app to have several open windows.  You'd press Command+Tab to switch between apps and after switching to the app you want to, you press Command+` to cycle between the windows of that app.  But I do pretty much everything on the browser, so technically I have only one app open with a dozen windows.  Suddenly, all I have is sequential access to my windows!
  • This might have improved by now, but when I used a MacBook about two years ago, the UI was mostly mouse-centric.  Some dialog boxes just cannot be closed with the keyboard, for example.  I am a keyboard warrior and I go out of my way to avoid using the mouse.
  • They still have the freezing problems.*  Not more than two weeks ago I saw a colleague trying super hard to bring his MacBook back to life after it got stuck somewhere.  The laptop would go to sleep, wake up, and do all that, but just won't let him do any work.  He had to power down the machine to get it back to working.  If they haven't fixed that problem in the past two years, I don't think they will fix it in the next few months.  No matter how brilliant the sleep indicator is, if the machine would lose my work I don't want it.
  • Mac OS has only one clipboard, which means I will have to explicitly copy stuff before I can paste.  I know there are people who get confused by X's primary selection and clipboard, but I am not one of them.  In fact, I love them.
  • I know there's a Mac App Store that may make it easy for me to find and install apps.  But hey, apt-get is a hundred times easier and it costs no money :-)
* I came up with this a few weeks ago: MacBooks are like ice cream.  Pleasant to look at and use, but frozen most of the times.

29 Dec 2010

Are you a teacher?

If you are a teacher, I'd like to tell you this.  Give your students their own bricks and cement.  Let them do with it whatever they like.  They might even just throw them away and go looking for trees with the ax they borrowed from their friends.  Don't be upset about it.

If they do take the bricks and cement they are offered, don't give your building plan to them.  If you can, share with them your building plan and construct the buildings in front of their eyes.  But if you cannot do that, throw away your plan or just hide it from your students.

If you are a parent, substitute "kids" in place of "students" in these paragraphs.  Because parents are the first teachers of every kid.

21 Jun 2010

Apple products: why I don't want them?

I watched the video where Steve Jobs was introducing the "multitasking" feature of iOS.  I think it's a clever way of doing multitasking.  Apple's principle seems to be not providing features for the sake of adding features; but to enhance the functionality of the device.  Also, Apple seems to focus on doing things right, rather than doing things first.

What do I think of this as a user?  Let's think about one feature: copy-paste.  I agree that copy-paste is not a great experience on Android.  I have never used any iOS device, so I can't compare Android and iOS.  But I am inclined to believe that iOS does it much better than Android.

Apple took the time to think about how to do copy-paste right, and they introduced it only in version 3 of their OS.  Had I owned a first generation iPhone, not having the ability to copy-paste on my phone would be a severe limitation to me.  Likewise, iOS devices don't do over-the-air syncing yet.  Maybe Apple will implement it in the "right way" at some point, and they might even prove that Android's way of syncing is inferior to what they can do.

But it all doesn't mean much to me.  I think of myself as an advanced user who can figure things out when something is not working.  Even if it's a little sloppy, I want my features right now; I can't wait for my device manufacturer to think hard and get it Just Right.

(I have more reasons for not wanting Apple products; this is just one in the list.)

25 Mar 2010

A cop with a heart

I just got to work.  On my way, this traffic cop stopped me.  He wanted to check my papers.  I don't like stopping for showing the papers.  Well, who likes it all anyway?

He beckons me to park the bike on the side of the road and quite annoyed, I give full throttle, the bikes moves with a loud vrooooom, and I stop it near the edge.  The cop, being a good man he is, sees my impatience and asks me if I am in a hurry to reach office.  I don't answer him, but I am busy taking the papers out of the bag.  He asks me again, this time a little louder, "Are you getting late for work?  Are you in a hurry?"  I still don't want to answer him; but I have to.  I say "Yes" and nod my head.  He says "If you are in a hurry, why don't you just say that?  Go, go".  And he sends me off without seeing my papers.  This really pissed me off.

I mean, what the hell?  This cop here, he was doing his job.  Asking people to show their papers is part of his job.  What's the big deal if I am in a hurry?  And he'd just let me go just because I overslept and I'm running late?  grumble grumble!

18 Mar 2010

Hyderabad

If you know me reasonably well, you know that I hate the place I live in now: Hyderabad.  This post is not about why I hate it, but to list out things I like about Hyderabad.

First in the list is electricity.  Since last year, there is a regular 2-hours power cut every day.  But before that, power cuts used to be very rare.  Hardly ever power goes off, and even when it does, it comes back pretty quick.  Sometimes the electricity board here works at completely odd hours to restore the power back.  And the best part is, they don't disconnect your power lines if you don't pay your electricity bill once.  You can not pay the electricity for 2 or 3 months easily (based on how much your bill is, of course).

Second one is the weather.  The wind and breeze especially.  At around 4pm today I went out to next door Barista to eat something.  After a refreshing coffee and chocolate muffin, walking in that breeze towards the office felt really nice.  Riding the bike is a pleasant experience too, because of the winds.

Next on the list is the roads of Hyderabad.  Okay, I must say that I hate the traffic here.  But I like the roads.  They are not the best in the world; but they are pretty good.  There are roads filled with potholes and all that, like everywhere else in India.  But most of the times the roads are good enough.  (When I think about it, most roads in Andhra Pradesh, including state highways, seem to be good.)

Well, that's all, I guess.  When I am super-irritated, maybe I will write the reasons why I hate Hyderabad.  I am sure that would be a longer list ;)

13 Mar 2010

Ye Maaya Chesaave

Saw Vinnaithaandi Varuvaayaa sometime back and loved it.  Well, the movie felt a bit longer than it should be; but I really liked the movie.  Went to see the Telugu version of the same movie with a couple of friends.  They almost killed me for recommending this movie to them.  But then, I had no idea they would change the story in Telugu version.  Okay, spoiler alert: I am gonna talk about the story of the movie; don't read if you'd rather see the movie first.

In the Tamil version, Karthik naturally moves on after Jessie leaves him.  He focuses on work; tries to write some scripts; and eventually starts a relationship with another girl.  Jessie too, like most sane people would, gets along with her own life.  In the Telugu version both of them are stuck with their "first love" for years.

In the Tamil version there was a lot happening in the last 10 or 15 minutes and that was good.  In Telugu version -- well, nothing really.  They meet, they say long dialogues, they dance for a song, hero accomplishes something, they get married, and all that crap.

In my opinion, Vinnaithaandi Varuvaayaa is another good movie of Gautham Menon's; and I like him for this movie, along with his other movies.  Ye Maaya Chesaave is not, in my books, a Gautham Menon's movie.  It's just another Your Average Telugu Movie.

27 Nov 2009

I like cloud

When I am ill, I have two options: I can do something myself to cure my illness.  Or I can go to a doctor and seek help.  My doctor will get to know that I have piles or constipation or AIDS or any such "embarrassing" disease, of course.  But the treatment I get would be way better than the treatment I'd have done myself.

The same goes with keeping my data on the cloud.  I have two options to keep and protect my data.  I can store them in my own computers and hard disks and DVDs.  Or I can store them "on the cloud" where some expert takes care of protecting my data.  I believe those who run Picasa Web know much better to protect my data than I do.  I know I cannot afford to keep as many backup copies as the Picasa guys can.  And hey, it's free (mostly) to store your data online.

PS: I like these clouds too :)

26 Nov 2009

Google bashing is the next cool thing

There is hate, and then there is blind hate.  There is fear, and then there is paranoia.  Reading this Google-basing post in The Registrar makes me think that the author is a paranoid who just blindly hates Google.

The author is not happy with the way Android project is run by Google.  That's pretty much it.  Maybe it really is hard for third party to track Android development progress. [Update: I just remembered that Android project is run by Open Handset Alliance in which 50 companies are partners.  Although Google might have a lot of say in OHA, I don't think Google makes all project decisions and the rest of OHA only nods to everything that Google says.]  But the way the post is written is, hmmm, funny.
Developers have almost no place in Google's grand plan
it says.  Google gave a preview of Wave to the developer community and there's a sandbox environment for the developers to try out and build apps for Wave.  And this was done years before the product's beta launch.  (Wave is not solely Web development, by the way.)
And with Google dictating hardware terms for the Chrome OS - not to mention the swirling rumors of a Google-branded Googlephone - even hardware developers can't be sure of their place in Google's world.
In the video (and I am pretty sure in many other places too) they tell explicitly: Chrome OS does unprecedented and very aggressive optimization to the start-up process.  Such an optimization makes a lot of assumptions about the hardware it runs on.  So it can only run on hardware that match these assumptions.

Besides, operating system is the lowest level software[*] your computer runs and it's not uncommon for an OS to require special hardware to run on.  (For a long time, Solaris ran only on SPARC machines.  Even now, Mac OS runs only on Apple hardware.  Windows does not run on many processors.)
But make no mistake: The plan is to collect your data and serve you ads.
Oh yes.  And also, do you know why Google gives free wi-fi Internet in Mountain View? To collect your data.  Do you know why Google keeps Bing as a search engine option in Chrome? To collect your data.  Do you know why Google uses solar electricity in their Mountain View campus?  To collect your data.  Do you know why Google gives you free access to millions of books?  To collect your data.
Google wants to force you into using its very own web-based services/data-hoarding ad platforms.
Like how?  By letting you download all your Google Docs files with one mouse click?  By not letting companies like Microsoft and Apple develop software?  (Google has written loads of Windows, Mac, and iPhone applications in fact.)  Gmail was the first web email client to let you access your email from desktop clients for free.
If [Chrome OS] can't run native applications, it can't run Skype.
Yes, it cannot.  Your shiny Apple computer cannot run WinAmp either.  Your Windows mobile cannot run iPhone apps either.  If Skype won't develop a web client and Skype is important for you, you don't buy a Chrome OS computer.  You don't need to be an Einstein to understand that,  I guess.
It can't run all sorts of media players and IM clients.
Google Talk, Yahoo Messenger, and Facebook have web-based chat clients as far as I know.  And there's Meebo if you use a different IM service.


Once Microsoft bashing was considered to be the Cool Thing.  Now Google bashing is, maybe.

[*] Low level software deal with idiosyncrasies of the hardware it's running on.  Think of it this way: reading a spreadsheet from a hard disk and from a DVD are the same thing for Excel (because it's a high level software), but they are very different for Windows (because it's at a lower level, closer to hardware, than Excel.)

Disclaimer: This post (and everything in this blog) is my own personal opinion.  I am not speaking for my employer or any other party.

25 Jul 2009

My experience with T-Mobile Android G1

How long have I been using it?
For about 3 months now.
Do I like it?
Yes
Will I swap it for an iPhone?
No
Will I swap it for the cool new iPhone 3GS?
Nope
Why not?
I need a physical keyboard. Plus, I am not a fan of Apple's products
Will I swap it for a Palm Pre (when there is a GSM version of the phone, of course)?
I will, most likely
What do I like in the G1 phone?
  • Touchscreen -- I have always liked touchscreens (but not as the ONLY means to control the device)
  • Android OS -- one of the best phone operating systems I have used
  • Has a decent number of apps available in the market and I can write my own if I want, with free tools
  • Seamless integration with my Google Account and syncing of my contacts with Gmail
What do I not like much?
  • Battery life -- I don't want to remember to charge my phone every night
  • Not so easy to use physical keyboard
  • And a few minor annoyances (but minor annoyances are with every device!)
Will I recommend it to my friend?
Depends on what my friend needs
What will I tell the people who say their G1 phone is slow?
  • Don't run too many apps in the background. I used to run both Google Talk and Meebo running in the background and it made the phone considerably slow. Now I don't do that anymore.
  • Do not enable SSL (or encrypted connections) if you don't really need it. Twidroid especially was apparently sluggish with SSL enabled.
  • Try to use as few widgets on the home screen as possible. Widgets are more or less like background applications. My phone got intolerably slow when I had about 4 widgets on the home screen. (Now I have only one.)
What I wish Android OS had?
Ability to write apps in Python or other some higher level language than Java
Overall, what would I rate my phone, on a scale of 1 to 5?
4. I am very happy with it.

A 2-line user's manual

Enough has been discussed about user interfaces for decades!  Even now, machines (or rather, the people who make those machines, programmers like me) haven't learned to say only what is required to be said.


This UI has four buttons and a tiny "user manual" besides the buttons.  The manual only describes two buttons -- OK and Next buttons.  God knows what Exit and Ignore buttons do.  I have used this UI maybe 50 times in the past one year, and I still cannot figure out what Next and OK buttons do without reading the "manual"!

If I were designing this UI, I would simply list all the available trays with the corresponding paper type/size and let the user pick one.  If that design is not possible for some reason I would only have two choices: one that says "Use paper from this tray" and another that says "Find another tray".