Category Archives: Software Engineering

How to make Gmail popular

I know that a lot of really technical and judicial documentation and articles have been written and published about Gmail already. However, I have felt that they lacked any insights into what would really make that service popular. Even though there are screenshots available and Matt and quite a few others have gotten to beta test that service already, GMail is still an enigma for most of us. I guess Blogger users (in random) were chosen to be given a GMail account and I seem to be one of the ones that are not chosen 🙁
In the meantime, here are some things which could be done to GMail to make it more popular to me:

1) Ability to check other email accounts built into the system. I would really like to be able to receive emails from other providers through either POP3, IMAP or HTTP mail services such as Hotmail and Yahoo. That would increase the value of GMail to me tremendously.

2) I really couldnt care less if some person at Google was reading through my email (which I am sure is not the case, just some dufus computer) but I would really like assurances that my information would not be used for anything else but ads on my email pages. If I get any notion or suspicion of any hanky panky with my personal information, I am outta there. In other words, respect the EULA, dont send me spam, protect my email address from being harvested from the Google server and do not, under any circumstances, sell my address to anyone. I dont care how many text ads you put on the interface. Period. And… popups please!

3) I am really looking to consolidate my email services. I do this with Outlook right now. I have all my email addresses setup to be checked on Outlook and the application is set to delete all email after 10 days on the server. This gives me a chance to get the messages downloaded on another machine before getting deleted in case something goes awefully wrong somewhere. GMail should provide this sort of an integerated experience. This thought becomes even more pertinent when considering the fact that GMail provides us with this huge amount of storage which I could use as a possible main or backup solution for my email aggregation.

4) GMail should be only about email. At least GMail should provide the configuration option to be a pure email application. I really am not interested in reading news or RSS feeds through my email application but would like to see advanced email features. I want signatures, ability to do all kinds of monkeying with my email and would like to see a vertical reading pane if possible.

5) There should be some sort of auto check facility. This could be as simple as an open browser page which refreshes every so often (configurable of course) and shows the newly received email on that page. So, instead of opening up Outlook and leaving it open all day, I could open up a GMail window and just leave that open all day. Problem solved satisfactorily.

6) SPAM filter. I would really like to see a good spam filter on GMail. I have read very little documentation on the spam filter properties of GMail but am really really happy with the Spambayes that I use with my Outlook. Something like that would be great in GMail.

7) One click book marklets. Or at least integeration of GMail into the Google toolbar. That would be awesome! If the toolbar could check your email and tell you when you have new mail, have a short preview or something, that would just baste my turkey! Also, a Mozilla compatible toolbar would be nice or I will have to rewrite all of that code to work with the present incarnation of Google in Mozilla. Bookmarklets could be used to highlight and click from a browser window to send email directly through GMail. Those are some very powerful possibilities.

8) Heh, last but not the least, I would like an account to test with. Matt has one and so do many other people. I really need to get lucky with that one! 🙂

More ideas coming up as and when I know some more about GMail.
PS: for those of you that still think this was an April Fool’s joke, think again.

Spend more time writing, less time fidgeting with your stupid blog

I really mean it! The whole point of having a blog is so that you can write on it. The design is important and all, but content is king! Quit spending time toying with the borders and the stupid links on the right. Stop trying to get the last 10 comments with commenters names on there. Stop changing the format. Quit upgrading every 5 days to a new software.
All of this simply detracts from the whole purpose of your blog. Write on it. Take some time out during the day to put down a few words. It doesnt have to be profound all the time, nor does it have to sound right. Just make sure you are adding content and not just playing with the way your blog looks. As a matter of fact, I believe that the whole lookie loo thing really does not help at all. A very pretty blog with no content is one that I will never ever visit again and I am sure a lot of other readers feel the same way. People come to your blog for content and stay for content.
I write about all of this because a friend of mine (I wont mention who) has actually started writing some good content on their blog, content that makes sense and is interesting reading! Did you ever watch Doogie Howser MD as a kid? I know I did and I was really jealous of the diary entries he wrote on his computer at the end of every episode. Leaving pretentious quotations aside, content can be something as simple as memories of the day to as complicated as RDF bashing and beyond.
On that same note, Jennifer has started writing some really interesting articles on her own blog. Check her out sometime when you get the chance. Her last post about colon cancer in females is very interesting.
In other good news, I have my Nikon D70 and I am giddy!

“Computer Science” Versus the Real World

Why did I get into a master’s degree program? I had hoped to learn new technology, learn about the insides of existing technology and to learn and practice some advanced programming. I have been in the program for about two years now, and I can safely say that every bit of my education that has to do with recent technology, has been from work that I have done outside of school or at least outside of classes taught in school.

That is a sad revelation. I am on the second highest level of Computer Science education possible. I have learnt little in school. Where are the professors and classes that pertain to real world computing? Why are all the gurus and technology innovators outside of educational institutions? Where are the Mark Pilgrim, Phil Ringnalda, Joel Spolsky and Jakob Neilsons of the educational world? Why are we teaching classes about Ada and Cobol instead of classes on (developing) programming standards and .NET? Let me give you some examples.

I only signed up for classes which sounded interesting to me. Two of the most fun classes were advanced database systems and wireless networking. However, if I had stuck to the information taught in the class, I would have learnt very little of present technology. In our wireless networking class, we learnt about call centre routing and advanced prediction systems for wireless networks. We were told that these were the basic constructs of wireless networks and it was really important to learn before jumping into contemporary technology. I played along till there were only four weeks left in the semester. We had not talked about any present technology yet. I finally decided to make up my own project so I could learn something of consequence from the class. I did some work on 802.11b and Bluetooth co-existence problems. But where is the beef?

I could go so far as to say that if I had worked with Phil Ringnalda, Joel Spolsky and Matt Mullenweg for the past two years (instead of going to school), I would have learnt more and would be a much, much more capable computer scientist. (I already have learnt lots from them just from associating with them) My physics education tells me (and furiously prompted me) to work with the cutting edge of technology. I had been pushed to find new ideas to explore and forced to think outside the box. I worked with three seperate research projects while at The College of Wooster. All three of them dealt with cutting edge technology either from NASA or from OARDC. I was learning about things which we talked about and heard about everyday. I have compeltely missed that in my present education.

There is another arguement often used. Higher education is designed to be supplemented with real world knowledge and the more you learn outside, the richer your own educational experience. That is a load of crock coming from people that have stopped learning themselves and are unwilling to work any harder to learn the new technology and adpot it in their teaching. If a student is forced to learn everything that is worthwhile on their own time, what is the point of going to school? There needs to be some serious rethinking of education and educational objectives!

So, are we producing truckloads of “dumbed down computer scientists” (with arcane ideologies) who are supposed to lead the technological future of this country and of the world? Are computer professors and scientists worried about the usefulness of their work? Am I spending oodles of money to just get the “masters degree stamp” on my forehead? Is the computer science profession on its way out? To be replaced by the free-thinkers and self taught gurus?

I might be jaded because I went to school that is really short on money and does not have a very good computer science program. Are other Universities the same way?

Does technical documentation need to be bland and structureless to be more technical?

This is the first in a series of posts about technical papers and technical writing

Here is a technical article written by Joel Spolsky called Painless Functional Specifications It is a multi-part article that I had to read for my Software Specification and Design class. I thoroughly enjoyed it and have continued to follow Joel’s writings ever since.

Here is an IEEE paper called “The Physiology of the Grid: An Open Grid Services Architecture for Distributed Systems Integration”

To be completely fair (and well, for this argument to be really valid) the second piece is designed to be a technical “paper” that is submitted for publication to a technical journal or publication (IEEE in this case). Thus the extremely technical jargon and the familiar “paper” structure. In case you want to participate but are worried about the papers, you really do not have to read through those articles to understand my point of view. Just read a couple of paragraphs on each.

I really like Joel’s flippant style, his inclusion of concrete examples and his method of delivery. The second paper is cumbersome, difficult to read and even more difficult to absorb. I find any peice of writing to be useless, if reading it would mean pages and pages of incomprehension and would require a huge effort to stay awake.

I have been having a debate (inside my head of course) on how to fashion my own papers’ authorship. I am caught between professors suggesting that the use of adjectives (that are not supported by thoroughly documented, concrete proof) are unacceptable in technical papers and my own style of writing which involves thought provoking dialogue and allusions. I have been told that colorful language based explanations and descriptions do not belong in a technical paper.

I have had to read many papers in school. Let me rephrase that. I have had to labor through many papers in school. Even though the subject matter was exciting, reading most of those papers took considerable effort and led to patchy comprehension. Consequently, absorbing and later using that information was simply painful.

Having been through this pain, I shudder to think that my own work is going to turn out to be this way. I have had some support from professors encouraging me to write the way I want to (as long as I maintain some boundaries) and I am hoping that my work will be different, however slightly.