Samudra Neelam Bhuyan



First impressions

It’s a new day, it’s a new dawn, it’s a new life.

Moving to Berkeley has been easy. Thanks to a large degree to friends like Mohit and Hitesh + Ruchi, I have had a very smooth transition to life in the USA.

I have been exploring the new area a bit, and have now had some time to think about what my first impressions are… And although the American TV shows did arm me with enough knowledge about the American culture, there still have been some cultural adjustments that have surprised me a little.


This has come as a surprise to me. Not the fact that they are (and there are quite a few around South Berkeley), but the reactions they evoke in the people. How they are perceived by their fellow Americans is an interesting observation process. To us in India, homelessness isn’t that visible or important a problem to warrant much discussion, nor does it effect our cocooned lives much. Over here though, areas with more homeless people (e.g. People’s park) are almost treated like no-go zones after dark. There is an element of fear.

Maybe I am being naive, but I would love to do a photo essay on them some time. Find out what happened to them, how they landed up where they are now.

But my fear keeps me away. For now.


People here are very VERY polite. I thought I was quite polite (or maybe more polite in general, compared to the the rest of us in India), but I took more time to get used to this than I thought I would. The number of times I have been surprised by how polite a complete stranger has been to me is much more than I wish it was.

But on the flip side (warning: potentially politically incorrect statement ahead), it does seem that everybody here believes they deserve a thank you or a tip for even just doing their jobs. In my mind, a person deserves a thank you or a tip if they went out of their way to help you. I mean, how many times have you thanked the person who wrote the software you use daily?

Maybe it is a desire to satisfy their higher order needs of esteem and achievement that this culture has evolved here. But should a person feel accomplished just by going about their jobs on a regular day, or should one be more motivated (and incentivized) to have more goals in life? I am undecided.

It does seem to make life more pleasant however.

I guess I will just have to fake it till I make it.

Public transport

I was surprised by how inadequate the public transport system is, for the most part. Buses are few, and far between (it is said to be much better in Berkeley, where buses arrive once every 20 – 30 mins). The BART (Bay Area Rapid Transport, or the subway) reduces it’s frequency to ridiculously low levels after around 8 pm. They even shut down some lines on the weekends, and even after 8pm on weekdays. And signage? It is almost non-existent.

To be traveling on public transport here, you have to know which lines are shut when. For someone used to the almost 24×7 local trains in Mumbai, this was quite difficult.

Value of a life

People here value a single life much higher than anywhere else I have seen. The number of thoughtful features that I have seen that make life much easier (or maybe even possible) for various handicapped people are too many to count. From special assistance on Caltrain to a sloping edge on the sidewalk for wheelchairs, all the thought put into such features are truly a testament to how much Americans would go out of their way to design a better life for every single person.



School of Information

The class (less than a third of whom I have met so far) is way more diverse than I could have imagined! Amongst my peers are going to be:

  • a military intelligence analyst, who served in Iraq and Afghanistan, and trained Bradley Manning
  • a woman who worked in data analysis at a museum (and whose last day at work involved skinning chipmunks and feeding them to flesh eating beetles, to prepare them for exhibit)
  • a woman who studied and worked in China for 5 years as a UX manager
  • a published author (a fiction book about two guys and a haunted guitar)
  • and many other equally intelligent people from equally diverse backgrounds!

The people themselves are very intelligent, but yet very sincere. I will really need to up my game, and my discipline, here.

The classes (which haven’t even started yet) are so diverse and so interesting that I feel like studying everything! It will be a challenge to prioritize and ensure I select the right ones.

All in all, it has been a great first month! A part of me can’t wait for the semester to start, while the other part is just soaking in the last few days of delicious laziness before the madness begins!

Bring on the madness, Berkeley! (But let me get a few more days of sound sleep first! )

Edit: I didn’t expect this from Miley Cyrus. But I guess the homeless are not just invisible to Indians in India.

John Steinbeck on Falling in Love: A 1958 Letter

The main thing is not to hurry. Nothing good gets away.

John Steinbeck


A framework helps you find the right directions to your life

I have recently been more and more convinced about the power of frameworks in living our lives.

In all aspects of our lives, we are bombarded both with more information than we know what to do with, and less information than is needed to make an informed choice. We are presented with more choices than we can handle, each of them leading to a large number of equally tempting but non-convergent lives. And even the most mundane of situations are actually filled with incredibly complex and unique choices. (How was your first time at a Starbucks?)

And in all these cacophony of choices, we spend a inordinately disproportionate amount of time trying to navigate the nadirs and zeniths life throws at us.

And even worse, we are so emotionally invested in each decision, it makes picking one option and leaving behind the rest a really intense experience.

The reason I am beginning to see the power of frameworks is that it removes the emotions from the equation. They do not even pretend to contain the answers, but give you an objective list of questions to ask and steps to follow. Applying the process results in you eliminating, systematically, from the options available to you, until you have arrived at the best possible result for your options, your values, your life. The same framework might give you one answer, and your friend a different one.

So starting from now, I will be using these extensively, and rigorously, and over as much of my life as possible.

I am going to be documenting some of the ones that I have developed, along with some that my friends have taught me. These might be works in progress, as I keep adding to them based on the results of each application.

  1. Reduce Your Cognitive Load meta framework
    • Minimize distractions. Shut off Whatsapp, Facebook notifications, Twitter mentions. In fact, keep your phone on Airplane mode if need be.
    • Don’t trust your memory to paint you an accurate picture of what happened. Your brain is fallible. In fact, it is most definitely failing every single day to remember important facts that influence your decisions. Write down important stuff as it happens, so that later you are working from facts and not figments of your imagination.
    • Create frameworks for any decisions that you have to make more than once over your life.
  2. Just In Time decision making framework
    • In any decision tree your life needs to follow, do not follow through different branches unless you really have to. Until you absolutely need to make the decision, you will always have incomplete information. When you absolutely must take the decision, you will have the best possible information that you could ever have.
    • Just perform the all the next steps that you can, until you hit that decision node.
  3. Is This Girl Worth Pursuing framework
    • Figure out what are the qualities that you want in your girl, and what is the minimum level in each parameter that you would tolerate. Make sure these minimums are an accurate reflection of you. E.g. maybe looks are important to you, and your minimum is an 8. Or maybe it is just not important, and your tolerable level is 3.
    • Also have a minimum overall score.
    • If you have any doubts about the score on the first date, go for a second one. Usually, just one date is good enough for this.
    • E.g. my framework for this is
      • Sense of humour / fun  – 7 (we should laugh at similar things)
      • Looks – 5
      • Geographical distance – 7 (we should be in the same city)
      • Emotional drama / baggage – 4 (occasional, real drama is acceptable. Drama queens are not)
      • Maturity – 7
      • Sense of adventure – 7 (doesn’t have to be a professional sky diver, but open to the odd adrenaline rush)
      • Open mindedness – 7 (she should be open to trying new things in various aspects of her life)
      • Strong sense of self – 8 (able to make her own decisions based on her own values and priorities)
      • Comfort level – 9
      • Intelligence – 7
      • Simplicity – 7
      • Honesty – 9
      • Should want a healthy family life, along with a career – 8
  4. Start Keep Stop feedback framework
    • What is one thing X should START doing?
    • What is one thing X should KEEP doing?
    • What is one thing X should STOP doing?
    • X could be you yourself, or someone whom you are giving feedback to.
    • Proactively ensure this feedback is happening once a month.

I will be adding more frameworks to the list later, but for now these are extensive enough. For now, I am going to apply them rigorously. And that’s the tough part!

Do you have any frameworks you use in your life? Let me know about them!

Protected: The most underused superpower in learning

This content is password protected. To view it please enter your password below:

When you set out for Ithaka…


When you set out for Ithaka
ask that your way be long, full of adventure, full of instruction.
The Laistrygonians and the Cyclops,
angry Poseidon — do not fear them:
such as these you will never find
as long as your thought is lofty, as long as a rare
emotion touch your spirit and your body.
The Laistrygonians and the Cyclops,
angry Poseidon — you will not meet them
unless you carry them in your soul,
unless your soul raise them up before you.

Ask that your way be long.
At many a summer dawn to enter
– With what gratitude, what joy –
ports seen for the first time;
to stop at Phoenician trading centers,
and to buy good merchandise,
mother of pearl and coral, amber and ebony,
and sensuous perfumes of every kind,
sensuous perfumes as lavishly as you can;
to visit many Egyptian cities,
to gather stores of knowledge from the learnéd.
Have Ithaka always in your mind.
Your arrival there is what you are destined for.
But do not in the least hurry the journey.
Better that it last for years,
so that when you reach the island you are old,
rich with all you have gained on the way,
not expecting Ithaka to give you wealth.

Ithaka gave you the splendid journey.
Without her you would not have set out.
She hasn’t anything else to give you.

And if you find her poor, Ithaka has not deceived you.
So wise have you become, of such experience,
that already you will have understood what these Ithakas mean.

C.P. Cavafy (1911)

Evoking emotions


Emotions – they be quite complicated :-/

We are delighted by so many new mobile as well as web applications nowadays, which have been evoke the right emotions from their users. Most of them have been able to do this by getting the micro-interactions right with their users. E.g. the Path app (probably) first started with the small icon at the bottom left which on clicking would expand to provide new options for creating / capturing a new piece of content. This was then adopted by more apps such as Quora and Noom, and I can easily see it becoming a good design pattern. Or more commonly, how the new Facebook app displays the friend requests, messages and notifications in a “popup”, but anchored to the icon which opened it, makes the interaction that much more meaningful.

When designing any application, or even a simple website, we pay a lot of attention to the emotions that every single interaction evokes in the end user. We look at the colors that are being used, at the serifs and the kernings of the fonts, at how the copy reads, and at a hundred other things that determine how the interaction feels. Good design after all is the result of deliberate small choices that improve our lives one interaction at a time.

But maybe because of neglect, or maybe because of social conditioning, I don’t think we pay that much attention to our interactions with other people. We switch to our own default state of evoking a particular emotion in most people. That emotion is usually a function of both our personality as well as our mood at the time. It is much less deliberate and much more accidental.

At least, that was the case for me. More often than not, I would not really pay attention to the emotions evoked in the other person. I think I used to try to understand the context from which he was coming from in a much more clinical way, something that would satisfy my simple mind. But trying to understand someone’s context without paying attention to his / her emotions is a fool’s errand. Not only is it impossible, but it will also lead to false models and wrong assumptions about the relationship, which might lead to catastrophic results.

So this new year, my resolution is going to be to retrain myself. I am going to be paying a lot more attention to the emotions I am invoking in my family, my friends, my colleagues and even absolute strangers that I am going to meet everyday. I will be deliberate in the emotions I invoke in people, and for every time that I fail, I will analyze which of my actions lead to the wrong emotion being evoked.

And rinse and repeat.


An Observation About Observation

“You can observe a lot just by watching.”

– Yogi Berra

Lately, I have been trying to develop a habit of observing myself and my reactions to the circumstances I have been facing. And I have been surprised by the power of this deceptively simple act. It has been a very interesting process of self discovery, to say the least.

E.g., By observing myself when faced with difficult conversations, I noticed something critical. I noticed that while my communication skills might be fairly decent when faced with a congenial atmosphere, they have failed me when I am faced with difficult circumstances. To cut a long story short, I understood the critical gaps in my communication skills (what some might call tact, others might call convincing skills or “leadership”), which led me to a wonderful book, Crucial Conversations. Now that I know what to fix, I am going to be using this book to understand how to fix it and then practice that. And of course, observe my reactions and results.

A second area where the same principle of observation is definitely showing results, is that of weight management. For the last few months, I have been using an app to keep track of my daily activity, as well as my food intake. Even this simple act of observation and reporting, while not doing anything else at all, has led me to eat healthier and lose a few kilos!

In business (and science), there is a saying “That which is measured, improves”. Anybody will tell you the importance of metrics in any business. To consider beginning any project without proper metrics to define success or failure would be considered lunacy.

But why do we not have the same high standard when it comes observing our own lives, our emotions, actions and reactions?

We have hundreds of systems in place for observing every minute details of a machine or a business, but what system do we have to observe ourselves? And why not?

It seems to be that we are unable observe ourselves because we are too busy chasing.

Chasing jobs. Chasing careers. Chasing girls. Chasing dreams. Chasing shadows.

While at the very core of observing, lies the need to slow down. To pause. To detach. To stop, even.

By the very act of observing the moment, you have extracted yourself out of the current situation. You have detached yourself from the joys and the pain, the highs and the lows. You have slowed down, and instead of waking up one day not knowing when the last day / week / month / year / decade went, you are aware of that very second.

You are living in the moment.

I guess that’s how living is supposed to be done, isn’t it? One observed moment at a time?

Projects for learning any language

To learn any language, it is best to get your hands dirty. And this list of projects is bound to give one as much exposure to the different aspects of programming as one can possibly get working on hobby projects!

(Original here, and I will be adding more as I think of them. I will also be adding links to repos, as and when I finish on them)


Reverse a String – Enter a string and the program will reverse it and print it out.

Pig Latin – Pig Latin is a game of alterations played on the English language game. To create the Pig Latin form of an English word the initial consonant sound is transposed to the end of the word and an ay is affixed (Ex.: “banana” would yield anana-bay). Read Wikipedia for more information on rules.

Count Vowels – Enter a string and the program counts the number of vowels in the text. For added complexity have it report a sum of each vowel found.

Check if Palindrome – Checks if the string entered by the user is a palindrome. That is that it reads the same forwards as backwards like “racecar”

Count Words in a String – Counts the number of individual words in a string. For added complexity read these strings in from a text file and generate a summary.

Text Editor – Notepad style application that can open, edit, and save text documents. Add syntax highlighting and other features.

RSS Feed Creator – A program which can read in text from other sources and put it in RSS or Atom news format for syndication.

Post it Notes Program – A program where you can add text reminders and post them. You can have the program also add popup reminders.

Quote Tracker (market symbols etc) – A program which can go out and check the current value of stocks for a list of symbols entered by the user. The user can set how often the stocks are checked and the program can show green up and red down arrows to show which direction the stock value has moved.

Guestbook / Journal – A simple application that allows people to add comments or write journal entries. It can allow comments or not and timestamps for all entries. Could also be made into a shout box.

News Ticker and Game Scores – A program which sits on your desktop and aggregates news and game scores from various sources on the net. It then scrolls them across the screen on regular intervals.

Fortune Teller (Horoscope) – A program that checks your horoscope on various astrology sites and puts them together for you each day.

Vigenere / Vernam / Ceasar Ciphers – Functions for encrypting and decrypting data messages. Then send them to a friend.

Random Gift Suggestions – Enter various gifts for certain people when you think of them. When its time to give them a gift (xmas, birthday, anniversary) it will randomly pick one and perhaps places you can get it.

Text to HTML Generator – Converts text files into web HTML files and stylizes them. Great for making online documentation of standard text documentation.

CD Key Generator – Generates a unique key for your applications to use based on some arbitrary algorithm that you can specify. Great for software developers looking to make shareware that can be activated.

Regex Query Tool – A tool that allows the user to enter a text string and then in a separate control enter a regex pattern. It will run the regular expression against the source text and return any matches or flag errors in the regular expression.


FTP Program – A file transfer program which can transfer files back and forth from a remote web sever.
Get Atomic Time from Internet Clock – This program will get the true atomic time from an atomic time clock on the Internet. There are various clocks across the world. Do a search for a list of them.

Chat Application (IRC or MSN Style) – Create a chat application that can create simple chat rooms like on Internet Relay Chat (IRC) or a more direct chatting style like MSN. For added complexity, create your own protocol to facilitate this chatting.

Fetch Current Weather – Get the current weather for a given zip/postal code.

P2P File Sharing App – Create a program like LimeWire, FrostWire, Bearshare, or a torrent style application.

Port Scanner – Enter an IP address and a port range where the program will then attempt to find open ports on the given computer by connecting to each of them. On any successful connections mark the port as open.

Mail Checker (POP3 / IMAP) – The user enters various account information include web server and IP, protocol type (POP3 or IMAP) and the application will check for email on several accounts at a given interval.

Packet Sniffer – A utility program that will read packets coming in and out of the machine along with related information like destination and payload size.

Country from IP Lookup – Enter an IP address and find the country that IP is registered in.

Whois Search Tool – Enter an IP or host address and have it look it up through whois and return the results to you.

Zip / Postal Code Lookup – Enter a zip or postal code and have it return which city/cities that are in that zip code.

Remote Login – Create a remote desktop style application which can see and control the remote computer (given you have permissions). It may require the use of your own private network and a second computer to test with.

Site Checker with Time Scheduling – An application that attempts to connect to a website or server every so many minutes or a given time and check if it is up. If it is down, it will notify you by email or by posting a notice on screen.

Small Web Server – A simple web server that can serve HTML files that contain Javascript and other forms of non-code executing code. Added complexity would be to try and implement streaming video, create a server-side language, or serve up other stream types.

Web Bot – An automated program which carries out tasks on the web including checking websites, page scraping, and summarization of data or web posting.


Product Inventory Project – Create an application which manages an inventory of products. Create a product class which has a price, id, and quantity on hand. Then create an inventory class which keeps track of various products and can sum up the inventory value.

Movie Store – Manage video rentals and controls when videos are checked out, due to return, overdue fees and for added complexity create a summary of those accounts which are overdue for contact.

Airline / Hotel Reservation System – Create a reservation system which books airline seats or hotel rooms. It charges various rates for particular sections of the plane or hotel. Example, first class is going to cost more than coach. Hotel rooms have penthouse suites which cost more. Keep track of when rooms will be available and can be scheduled.

Student Grade Book Application – Keep track of students (with a student class that has their name, average, and scores) in a class and their grades. Assign their scores on tests and assignments to the students and figure out their average and grade for the class. For added complexity put the students on a bell curve.

Bank Account Manager – Create a class called “Account” which will be an abstract class for three other classes called “CheckingAccount”, “SavingsAccount” and “BusinessAccount”. Manage credits and debits from these accounts through an ATM style program.

Library Catalog – Create a book class with a title, page count, ISBN and whether or not it is checked out or not. Manage a collection of various books and allow the user to check out books or return books. For added complexity generate a report of those books overdue and any fees. Also allow users to put books on reserve.


Create A Progress Bar for Downloads – Create a progress bar for applications that can keep track of a download in progress. The progress bar will be on a separate thread and will communicate with the main thread using delegates.

Download Manager – Allow your program to download various files and each one is downloading in the background on a separate thread. The main thread will keep track of the other thread’s progress and notify the user when downloads are completed.

Chat Application (remoting style) – Create a chat application which allows you to connect directly to another computer by their IP through the use of remoting and allow your “server” application handle multiple incoming connections.

Bulk Thumbnail Creator – Picture processing can take a bit of time for some transformations. Especially if the image is large. Create an image program which can take hundreds of images and converts them to a specified size in the background thread while you do other things. For added complexity, have one thread handling re-sizing, have another bulk renaming of thumbnails etc.


WYSIWG (What you see is what you get) Editor – Create an editor online which allows people to move around elements, create tables, write text, set colors etc for web pages without having to know HTML. Think Dreamweaver or FrontPage but for online sites. If you need an example check out the DIC page used to create a post.

Web Browser with Tabs – Create a small web browser that allows you to navigate the web and contains tabs which can be used to navigate to multiple web pages at once. For simplicity don’t worry about executing Javascript or other client side code.

Page Scraper – Create an application which connects to a site and pulls out all links, or images, and saves them to a list. For added complexity, organize the indexed content and don’t allow duplicates. Have it put the results into an easily searchable index file.

File Downloader – An application which can download various objects on a page including video streams or all files on a page. Great for pages with a lot of download links.

Telnet Application – Create an application which can telnet into servers across the internet and run basic commands.

Online White Board – Create an application which allows you and friends to collaborate on a white board online. Draw pictures, write notes and use various colors to flesh out ideas for projects. For added complexity try building in picture tubes.

Bandwidth Monitor – A small utility program that tracks how much data you have uploaded and downloaded from the net during the course of your current online session. See if you can find out what periods of the day you use more and less and generate a report or graph that shows it.

Bookmark Collector and Sorter – An application that you can put online for people to upload bookmarks to, have it sort them, remove duplicates and export the entire list as a Firefox/IE/Safari bookmark file. For added complexity see if you can group the bookmark items into various folders.

Password Safe – A program which keeps track of passwords for sites or applications and encrypts them with a key so that no one can read them.

Media Player Widget for iGoogle – Create an iGoogle gadget which can play various song lists from your computer as well as share one song daily. Perhaps let people look up which songs you have listened to lately.

Text Based Game Like Utopia – Create a simple text based RPG like Utopia where you can create a civilization, gather resources, forge alliances, cast spells and more on a turn based system. See if you can dominate the kingdom.

Scheduled Auto Login and Action – Make an application which logs into a given site on a schedule and invokes a certain action and then logs out. This can be useful for checking web mail, posting regular content, or getting info for other applications and saving it to your computer.

E-Card Generator – Make a site that allows people to generate their own little e-cards and send them to other people. Can use flash or not. Use a picture library and perhaps insightful mottos or quotes.

Content Management System – Create a content management system (CMS) like Joomla, Drupal, PHP Nuke etc. Start small and allow for the addition of modules/addons later.

Template Maker – Make a site or application which allows the user to enter in various color codes, elements, dimensions and constructs a template file for a particular application like PHPBB, Invision Board, MySpace, Bebo, etc.

CAPTCHA Maker – Ever see those images with letters a numbers when you signup for a service and then asks you to enter what you see? It keeps web bots from automatically signing up and spamming. Try creating one yourself for online forms. If you use PHP, take a look at the image functions of GD.


Quiz Maker – Make an application which takes various questions form a file, picked randomly, and puts together a quiz for students. Each quiz can be different and then reads a key to grade the quizzes.

Quick Launcher – A utility program that allows the user to assign various programs to icons on a toolbar. Then by clicking the buttons they can quickly launch the programs with parameters etc. Much like Windows quick launch.

File Explorer – Create your own windows explorer program but with added features, better searching, new icons and other views.

Sort File Records Utility – Reads a file of records, sorts them, and then writes them back to the file. Allow the user to choose various sort style and sorting based on a particular field.

Add Transactions In File and Find Averages – Read in a file of financial transactions, group them into accounts, add up fields or find averages or apply credits and debits to each account.

Create Zip File Maker – The user enters various files from different directories and maybe even another computer on the network and the program transfers them and zips them up into a zip file. For added complexity, apply actual compression to the files.

PDF Generator – An application which can read in a text file, html file or some other file and generates a PDF file out of it. Great for a web based service where the user uploads the file and the program returns a PDF of the file.

Bulk Renamer and Organizer – This program will take a series of files and renames them with a specific filename filter entered by the user. For instance if the user enters myimage###.jpg it will rename all files with a “minimum” of three numbers like “myimage001.jpg”, “myimage145.jpg” or even “myimage1987.jpg” since 1987 has at least three numbers.

Mp3 Tagger – Modify and add ID3v1 tags to MP3 files. See if you can also add in the album art into the MP3 file’s header as well as other ID3v2 tags.

Log File Maker – Make an application which logs various statistics in response to given events. This can be something that logs what an application does, what the system is doing, when something like a file changes etc.

Excel Spreadsheet Exporter – Create an online application which can read in a file and create an Excel Spreadsheet to export back. This can be through CVS or other file formats. For added complexity, see if you can create formula fields as well.

RPG Character Stat Creator – Make a program which will randomly create a character’s stats based on several rules set forth by the user. Have it generate a class, gender, strength/magic/dexterity points, and extra abilities or trades. Have it save it to a file which can then be printed out by a dungeon master.

Image Map Generator – Image maps are those images on the web that have multiple hover points that link to different pages. Such images may include maps or splash pages. See if you can make one where the user specifies an image, clicks hotspots in the image and specify links. It will then generate the HTML code to a file that the user can then copy and paste into their website to make the image map.

File Copy Utility – Create a utility that can do bulk file copying and backups of other files.

Code Snippet Manager – Another utility program that allows coders to put in functions, classes or other tidbits to save for use later. Organized by the type of snippet or language the coder can quickly look up code. For extra practice try adding syntax highlighting based on the language.

Versioning Manager – Create your own versioning system for code files. Users are forced to check out items and lock items during reading and writing so that a group of programmers are not accidentally overwriting code files on one another.

SQL Query Analyzer – A utility application which a user can enter a query and have it run against a local database and look for ways to make it more efficient.

Remote SQL Tool – A utility that can execute queries on remote servers from your local computer across the Internet. It should take in a remote host, user name and password, run the query and return the results.

Baseball / Other Card Collector – Create an online application for keeping track of a collection of cards. Let the user enter all cards in a set, check off which ones they have, which ones they need and generate lists of cards they are looking for. For extra complexity, have it sum up sets and generate reports on how close they are of completing sets or the current value of a set.

Report Generator – Create a utility that generates a report based on some tables in a database. Generates a sales reports based on the order/order details tables or sums up the days current database activity.

Database Backup Script Maker – A program which reads a database’s objects, relationships, records and stored procedures and creates a .sql file which can then be imported into another database or kept as a backup file to rebuild the database with.

Event Scheduler and Calendar – Make an application which allows the user to enter a date and time of an event, event notes and then schedule those events on a calendar. The user can then browse the calendar or search the calendar for specific events. For added complexity, allow the application to create reoccurrence events that reoccur every day, week, month, year etc.

Budget Tracker – Write an application that keeps track of a household’s budget. The user can add expenses, income, and recurring costs to find out how much they are saving or losing over a period of time. For added complexity allow the user to specify a date range and see the net flow of money in and out of the house budget for that time period.

Address Book – Keep track of various contacts, their numbers, emails and little notes about them like a Rolodex in the database. For extra complexity, allow the user to connect to a website publish their address book based on specific options the user has set.

TV Show Tracker – Got a favorite show you don’t want to miss? Don’t have a PVR or want to be able to find the show to then PVR it later? Make an application which can search various online TV Guide sites, locate the shows/times/channels and add them to a database application. The database/website then can send you email reminders that a show is about to start and which channel it will be on.

Travel Planner System – Make a system that allows users to put together their own little travel itinerary and keep track of the airline / hotel arrangements, points of interest, budget and schedule.

Entity Relationship Diagram (ERD) Creator – A program that allows the user to put together ERD diagram and save it or have it generate some basic SQL syntax to give them a jump start.

Database Translation (MySQL <-> SQL Server) – A simple utility that reads in from one database and constructs SQL compliant with another database. Then saves that to another database. One popular transition would be to and from MySQL server for databases like SQL Server and Oracle.

Web Board (Forum) – Create a forum for you and your buddies to post, administer and share thoughts and ideas.

Graphics and Multimedia

Slide Show – Make an application that shows various pictures in a slide show format. For extra complexity try adding various effects like fade in/out, star wipe and window blinds transitions.

Mind Mapper – Allow the user to put down ideas and quickly brainstorm how they are related into a mind map. The goal here is speed so let the user quickly write in an idea and drag it around in a visual map to show relationships.

Import Picture and Save as Grayscale – A utility that sucks the color right out of an image and saves it. You could add more including adjusting contrast, colorizing and more for added complexity.

Stream Video from Online – Try to create your own online streaming video player.

Mp3 Player (and Other Formats) – A simple program for playing your favorite music files. For extra complexity see if you can add in playlists and an equalizer.

Bulk Picture Manipulator – This program will take in a directory of pictures and apply a certain effect to them whether it be reducing color count, changing its format, or alter file attributes. For something extra try to see if you can also create a system to tag them.

CD Burning App – Create a utility that simply burns data to a CD.

YouTube Downloader – A program which can download videos to your hard drive from Save the files in various formats including FLV and AVI.

Wallpaper Manager – Make a program which keeps track of your favorite wallpapers, changes them regularly and maybe even re-sizes them for your resolution (aka tiles one and stretches another)

Screen Capture Program – Make a utility that will simply capture a frame from your web cam. For added complexity see if you can also build in emailing functionality.

Image Browser – This application is used to view various image files on your computer from PNG, GIF, JPG to BMP, TIFF etc.

Traffic Light Application – See if you can make your own street light application and then put it into an intersection scenario. Don’t let any cars run the lights and crash into one another!

MP3 to Wav Converter – MP3 is essentially compressed wav format. See if you can translate it back into wav so that some other sound editing programs can work with the wav file itself. Keep in mind that 1 MB of MP3 is relative 10MB wav.

Signature Maker – Ever seen those web board posts where someone has a generated signature made up? See if you can make a program that allows the user to specify a background, text, colors and alignment to make their own signatures or userbars.

Screen Saver – Make a screensaver program that will run while your computer sits idle. To make a simple one use some standard pictures and then for added complexity try a 3D object that spins around the screen and bounces off the sides.

Watermarking Application – Have some pictures you want copyright protected? Add your own logo or text lightly across the background so that no one can simply steal your graphics off your site. Make a program that will add this watermark to the picture.

Turtle Graphics – This is a common project where you create a floor of 20 x 20 squares. Using various commands you tell a turtle to draw a line on the floor. You have move forward, left or right, lift or drop pen etc. For added complexity, allow the program to read in the list of commands from a file. Do a search online for “Turtle Graphics” for more information.


Battleship – Create two game boards and let each player place a number of war ships. Each player can’t see the other person’s board. They then take turns firing at one another by guessing one of the board squares. If the square they guess contains part of a ship, it is a hit. Otherwise it is a miss. They sink a ship when all squares containing that particular ship have been uncovered. The player wins when all their opponents’ ships have been sunk.

Chess and Checkers – Simply put a game of chess or checkers. Try to make it playable online and if you can use a graphical user interface that can also undo or redo a step as well as keep a history of moves for replay.

Hangman – Randomly select a word from a file, have the user guess characters in the word. For each character they guess that is not in the word, have it draw another part of a man hanging in a noose. If the picture is completed before they guess all the characters, they lose.

Crossword Puzzle – Create a crossword puzzle which links words together on common letters. Provide a list of clues for each word and let the user enter fill in the words until the entire crossword is filled in.

Frogger – Get your frog across the river and lanes of traffic by either jumping on logs and lily pads rushing by at different speeds or avoid the automobiles which are also moving at various speeds. Based on the old arcade game.

Setting up Ubuntu 12.04 LTS on a Fujitsu AH532 laptop

I always prefer developing on linux. Previously, my distro of choice had been Mint. But given Ubuntu’s direction, especially with mobile, I had been thinking about giving it another shot and being a bit more tolerant of their Unity desktop. And my first blue screen of death on my Windows 7 install just helped me to make up my mind. (To be fair to Windows, this was the first blue screen I have experienced in ages.)

Basic Installation

I had quite a bit of trouble with the disk partitions, with Ubuntu not recognizing any of my partitions! I did not want to install over Windows, and Ubuntu (and other distros) were only showing me that one disk to install on! When I was trying with Wubi, it kept telling me that the installation was almost complete, and then “bcdedit.exe” would throw an error saying “Request not supported”.

After a lot of googling, I finally figured out that the problem was because of Windows using a proprietary format to create dynamic disks, which Ubuntu and other Linux distros were unable to read! So first, I had to convert the “Dynamic” disk to a “Basic” disk. And that solved the problem!


Next, came the drivers. Thankfully, Ubuntu picked up almost everything perfectly. Except for the touchpad, which it recognized as a simple mouse (hence no scrolling).

The problem seemed to be the drivers released by ALPS, the manufacturers of the touchpad. I found this driver which has been released by Dave Turvene, which solved the problem. Follow the following steps to use the driver:

  1. Download the tarball
  2. Unpack it with: sudo tar -xj –directory / -f psmouse-alps-dst-1.1.tbz
  3. Navigate to /usr/src/psmouse-alps-dst-1.0/
  4. Execute ./ dkms_build_alps
  5. Execute  ./ dkms_install_symlink

(In case you face “dkms command not found errors”, install dkms first with sudo apt-get install dkms first.)

Doing this enabled the “Touchpad” tab in the System settings -> Mouse and Touchpad section, and I was able to set it up the way I wanted :)

Push vs. pull

I have a difficult choice to make.

I have always loved the technical challenges of programming. I would call myself a decent programmer, having not built anything truly great because I have not spent enough time on any problem worth that kind of attention.

Of late, I find myself more and more attracted to new technologies, especially ones that enable humans to interact with computers in new and unique ways. Ones that enable computers to influence and improve the lives of the users.

I also find myself having to force myself away from learning those new languages, frameworks and what have you, because they need an investment of time and effort that I just cannot afford any more.

With my current role in Examify, I have been thrown into the deep end of the pool, without any instructions or floats. You are expected to learn whatever is required to get the job done, and by the time you get the job done, there is more waiting to be learnt and gotten done. But there is never a time when you can afford to go deep into one field, and become an expert.

On one hand, I want to go deeper into Human Computer Interaction and designing new products. But on the other hand, I would also do everything to make sure Examify succeeds.

On one hand, I would really love to become an expert at one thing. On the other hand, there is a valid argument to be made for being an expert of nothing.

And I don’t think these two forces can be reconciled. At least not yet.

Prioritizing in a startup

Work in a startup almost always involves choosing between two (or more) equally important / lucrative / urgent / critical opportunities/ features, which almost always have equal number of people rooting for them. In such a scenario, it is very easy for a small team to chase the butterflies and lose track of the dragons.

Or worse, chase the dragons, mistaking them for butterflies.

Pixar’s rules (for life)

These rules were originally tweeted by Emma Coates, Pixar’s Story Artist.

While these in itself show directly how much thought and love has gone into making a Pixar movie, what struck me was how many of these rules reflected our own desires and inner workings.  These rules distill not only what we as humans (given the universality of Pixar movies) hold to be valuable, but also hold up a mirror to our own daily lives. They enable us to see in them that which we have lost or gained, or forgotten.

Personally, I love 1, 3, 5, 6, 7, 8, 14, 17, 18 and 22.

  1. You admire a character for trying more than for their successes. 
  2. You gotta keep in mind what’s interesting to you as an audience, not what’s fun to do as a writer. They can be very different.
  3. Trying for theme is important, but you won’t see what the story is actually about til you’re at the end of it. Now rewrite.
  4. Once upon a time there was ___. Every day, ___. One day ___. Because of that, ___. Because of that, ___. Until finally ___.
  5. Simplify. Focus. Combine characters. Hop over detours. You’ll feel like you’re losing valuable stuff but it sets you free.
  6. What is your character good at, comfortable with? Throw the polar opposite at them. Challenge them. How do they deal?
  7. Come up with your ending before you figure out your middle. Seriously. Endings are hard, get yours working up front.
  8. Finish your story, let go even if it’s not perfect. In an ideal world you have both, but move on. Do better next time.
  9. When you’re stuck, make a list of what WOULDN’T happen next. Lots of times the material to get you unstuck will show up.
  10. Pull apart the stories you like. What you like in them is a part of you; you’ve got to recognize it before you can use it.
  11. Putting it on paper lets you start fixing it. If it stays in your head, a perfect idea, you’ll never share it with anyone.
  12. Discount the 1st thing that comes to mind. And the 2nd, 3rd, 4th, 5th – get the obvious out of the way. Surprise yourself.
  13. Give your characters opinions. Passive/malleable might seem likable to you as you write, but it’s poison to the audience.
  14. Why must you tell THIS story? What’s the belief burning within you that your story feeds off of? That’s the heart of it.
  15. If you were your character, in this situation, how would you feel? Honesty lends credibility to unbelievable situations.
  16. What are the stakes? Give us reason to root for the character. What happens if they don’t succeed? Stack the odds against.
  17. No work is ever wasted. If it’s not working, let go and move on – it’ll come back around to be useful later.
  18. You have to know yourself: the difference between doing your best & fussing. Story is testing, not refining.
  19. Coincidences to get characters into trouble are great; coincidences to get them out of it are cheating.
  20. Exercise: take the building blocks of a movie you dislike. How would you rearrange them into what you DO like?
  21. You gotta identify with your situation/characters, can’t just write ‘cool’. What would make YOU act that way?
  22. What’s the essence of your story? Most economical telling of it? If you know that, you can build out from there.


Time is how we spend love. Everything else is just scenery.

- Siddharth Dhanvant Shanghvi (The Lost Flamingoes of Bombay)

How cheap

I just trained two brothers to use the quality control app that we have built. We have outsourced the management of this function to another company, which provides the infrastructure and the manpower, and allows us to focus on other core areas of our product.

I just found out that the two brothers are being paid Rs. 5500 each.

And that they travel for 2 hours each way, to get to the office.

And they want to work without any breaks for lunch or tea, because they can then finish the daily quota of 8 hours earlier, and then head home.

For Rs. 5500, I am getting an able-bodied, healthy young men who are decently well versed in English. For a month.

That is how cheap a human is.

Why Pritish Nandy was right to hate Mumbai


This was originally meant as a comment on this blog post by Arshat Chaudhary on “The TimePASS of India“, which itself was a response to Pritish Nandy’s piece in The Times Of India. If you have not read the TimePass of India… I suggest you go read it. Most, especially the older posts, are hilarious.

Hi Arshat

Usually, I love your writing. But this one pained me.

I have lived in 8 cities so far, and I am moving to my 9th in less than 2 weeks. So I do have some experience with different societies and urban culture. And more importantly, I do not have a soft corner for any of them (except maybe Jakarta, where awesome food is very cheap :) )

Also, I don’t give a shit about Pritish Nandy. But I do agree with that post of his behemently.

Here are the points I would like you to consider:

The legal drinking age now has become 25. (source)

Because some people have decided that while you are responsible enough to marry and bring forth your spawn by the time you are 18, you are not to be trusted with a rum and coke until your kids are in middle school. What gave them that right? Why have we given them that right?

Do you really think the license to drink is a good measure? Do you have a license? Have you tried to get one? Why is there a separate license anyways? Why couldnt a driving license be enough? Who gains by increasing bureaucracy? Do we, the people who supposedly participate in the greatest democracy ever, gain? Or are we being systematically looted, with provisions being built in to control every aspect of our lives? And give other asinine people more control over our lives, more strings to pull us by, more tunes to make us dance with?

Strip clubs and dance bars
I would keep them open. I would vote for them to be open. This is not because I would enjoy them myself (I know the trolls must have not even reached this sentence…), but because I believe that whoever works in those professions and establishments, those people AND ONLY THOSE people have a right to decide on THEIR livelihoods. WHY DO WE BELIEVE WE ARE BETTER THAN THEM, just because we are in a cubicle or a chair, and they are on a pole or a stage? What gave us, as a society, that right to judge?

“I disapprove of what you say, but I will defend to the death your right to say it”

– Evelyn Beatrice Hall.

I’d only modify that amazing thought like this: “I disapprove of what you do, but I will defend your right to do it, as long as you are not causing anybody else any harm, mental or physical, and they have a choice to participate or leave at any point of time.”

11 pm deadline for restaurants
Again, why do we assume that we have the right to decide what chefs want (to follow your line of thought) is sleep? Have you any chef friends? Do they all covet the bed so much? Why not let free market forces decide? Let it be open for all. If there are enough chefs who would sacrifice their sleep, work harder than the rest who are sleeping, and earn some extra cash / fame / fortune, WHO ARE WE to deny them that opportunity?

Do you honestly believe that law is for the chefs’ benefit? Or do you think it is another string in our puppeteer’s hands, to pull and make us dance and shake for cash and power whenever desired?

Ministers get preferential treatment
You confused being treated as an equal (and standing in line) with being treated as a suspect (and being frisked). I respect you too much to believe it was intentional.

(I don’t give a shit about SRK being frisked. But APJ being frisked was disgraceful and insulting.)

In general, I am all for humans being treated equally, regardless of profession, or standing in life.
I remember reading somewhere about Bill Clinton standing in line for a doughnut. WHEN HE WAS PRESIDENT. PR stunt? Most probably. But does it show their culture’s values? Absolutely. What do our ministers say about us?

Sex before 18
If two consenting people are indulging in sex, then by all means, enjoy!

Also, why 18? Who fixed that arbitrary number, which decides that one day you are suddenly old and mature enough to partake in sex? If you are 17 years and 364 days, are you really that colossally different from when you are 18?

Stuff you missed (entertainment in general)
Why can’t Mumbai have concerts beyond 10? It disturbs others, of course. What if it were in a sound proof room? Is that even an option? Can 18+ year old adults decide for themselves what kind of life they would like to have? Please?

Did you know that my favourite memories of Mumbai are at the Bhurji Pav wala in Parla, and of Bade Miyan in Colaba? Did you know that both got shut down / beaten up in the last few months? By Dhoble, who was implementing archaic laws? (I actually do not have anything against Dhoble; he’s just doing his job. It is the laws that I am against, and the mentality that having such laws is absolutely fine!)

I have nothing against paying taxes, and have no problem paying them with a smile on my face. But when my money is used to fill the coffers of party chamchas up and down the supply chain, I do sit up and take notice.

NREGA is a colossal waste of our money. Not only it is an extremely leaky bucket, with hardly a trickle reaching the intended section of society, it is fundamentally flawed as a concept.

If you want to create infrastructure projects, use proper equipment. If required, train these people for a month, and see them move mountains (literally).

But generating employment is your end goal, don’t give them spades to dig the earth. Give them all spoons instead.

Hindu Muslim thing
How does banning any art work, whether it is Hussain’s paintings or Rushdie’s Satanic Verses, help the Hindu-Muslim “thing”? Are we as a society really that intolerant?

Oh wait, we are.

All we do is silence people who are different than us, who want different things than us, who have a different take on things, who have a different vision, a different eye.

And how do we solve this problem? Why, bring in more laws of course!

I was really amazed in Indonesia, a country with a Muslim majority, to see a 40 foot statue of Krishna commanding Arjuna’s chariot, outside their national monument. I was even more surprised that their is a huge statue of Garuda in Bali too, outside the airport.

But nothing prepared me for the day when a Muslim guy walked up to me during lunch, and started discussing Mahabharata and Ramayana with me. He knew more about minute details (Nakul and Sahadeva’s stories, which I have not even seen on the TV version, forget the grandma / Amar Chitra Katha version). Apparently, they are all (yes, even the muslims) taught all religious philosophies.

Cribbing about cop who interrupted your party
Coke at his party? Assumption.

They have disappeared. And where they have not, they are hardly used. Almost no green cover in 99% of the city. No birds too.

And just because one area of the city (technically, a suburb, though I don’t care) is green and has a bird sanctuary, it does not justify not having trees in the rest 99% of the city. Powai is the exception that proves the rule.

Hanging on to dear life every day, sweating, being forced to walk 22kms because of rains
You enjoyed all of those? I guess sadism is indeed a natural part of a human psyche.

You can leave at 3 in the night and not be mugged.
But you can step out for a dinner with friends, and have your friends molested, and then get into a fight, and then stabbed to death along with your friend who tried to help you.
Oh wait, I forgot to mention… a 100 other bystanders would see you being stabbed. But nobody would be able to identify the murderer. All were blind(ed?), you see.

Just because Mumbai is better than Delhi, is not a reason to be proud of it. Better than shit is still shit.

Traffic police will let you off if you can speak Marathi
WHAT THE FUCK? How does this even make it to your post? THAT is supposed to be a reason why you love Mumbai? I would be ashamed to be in a city like that!
Police, I believe should be like those in Singapore (absolutely invisible), or Bangalore (super duper fair). Even if I was a Marathi, I would rather have a fair and just society, than one that favours me!

Mumbai is better than Delhi? Yes.
Mumbai is safer than other shitty places in India? Yes.

But does Mumbai have serious problems? Yes.
And does Mumbai have freedom? No.

By ignoring / glossing over the problems that we have, we are as guilty as the people who are actually causing the problems. I hope you see my POV.



Third thoughts

While coding today, I had some second thoughts about a design choice that I had to make. And then some third thoughts.

That was when I remembered this short story, about a guy having third thoughts.

And of course, being the ADHD-ed me that I am,  I had to google it out and read it.

Sometimes I wonder how I get anything… ooo… butterfly!

How to setup a Django / python development env on Windows

Install Python

  1. Download and install the latest Python installer from here
  2. Change the %PATH% variable to add the path to the python.exe file

Install VirtualEnv

  1. Download virtualenv from here
  2. Install virtualenv with the command:
  3. Activate the new virtual env by :
  4. Add the paths to the ‘Scripts’ and ‘Lib’ folders in %PATH%. It should be of the form:

Install Django

  1. Make sure your virtual env is activated
  2. Install Django by: pip install django
  3. In case of the following error:
    File "E:\Python27\YOUR_ENVIRONMENT\Scripts\", line 2, in
    from django.core import management
    ImportError: No module named django.core
    • Check the folder permissions of the “django” folder inside “YOUR_ENVIRONMENT\Lib\site-packages“. Remove any read-only permission settings.
    • Use this command to use the “correct” Python (the one inside the virtual environment) to open the .py files:
      ftype Python.File="E:\Python27\YOUR_ENVIRONMENT\Scripts\python.exe" "%1" %*
  4. Run “ startproject YOUR_PROJECTNAME”. If this works, that means Django is installed fine.

Install Postgresql

  1. Download Postgresql from here and install it.
  2. Modify YOUR_PROJECT\, and change the lines to include your DB config:
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': 'YOUR_DATABASE_NAME',                      # Or path to database file if using sqlite3.
            'USER': 'YOUR_USER_OR_ROLE_NAME',                      # Not used with sqlite3.
            'PASSWORD': 'YOUR_PASSWORD',                  # Not used with sqlite3.
            'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
            'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
  3. Run
    python runserver

    This will probably fail… with an error like this:

    ImportError: No module named psycopg2.extensions

    Don’t worry.. this seems to be normal :) Psycopg2 does not work with VirtualEnv.

  4. Download THE CORRECT VERSION OF Psycopg2. You CANNOT install this file. You have to extract the files inside the exe file with an utility like 7Zip. You will get a folder called “psycopg2″ (and possibly a file called “psycopg2-2.4.5-py2.7.egg-info”). Copy these into

Happy coding!

Protected: Motion-sickness

This content is password protected. To view it please enter your password below:

What doesn’t kill you…

… makes you stronger.


“Don’t sweat the petty things and don’t pet the sweaty things.” – George Carlin

The years had not been kind to her

The years had not been kind to her.

I left her standing at her doorway, still smiling a goodbye at us when I looked back from a hundred steps away. Just like the last time eight years ago.

The picture-perfect scene was the same as before. The house, behind her, was as regal as before. The coconut trees, behind her, cast as long a shadow as before. Her smile was as beautiful and true as before.

But the evergreen green Ambassador, a relic of her still-dashing-in-his-sixties husband’s four decades of government service, had disappeared from the picture.

Her husband, who had let a nine-year-old me sit on his lap and “control” the steering wheel of the Ambassador, who had been the first person in our entire family line to have had a personal car, who had built his dream house with his retirement money, who had one-day disappeared, who had turned up in a ditch a few days later, and who had been dismissed as a suicide case by the police, had disappeared from the picture.

Her twenty-nine-year-old son, who had first taught me “Speed thrills, but kills” when I was eight years old, who had supported Casey Stoner over my favorite Valentino Rossi in the Motogp eight years ago, who had been unable to smile as we had taken the mandatory “family picture” because Rossi had overtaken Stoner on the last turn of the last lap, who had decided to take the job away from home for the higher salary, who had missed the last overnight bus to his wife and three-month-old son, who had decided to brave the same journey in many parts – by truck, by bus, by Trekker, who had given up his seat in the back to an elderly gentleman and taken up the uncomfortable front seat, and who had been declared “brought dead” by the doctors who examined the people brought in from the head-on collision of the Trekker and a truck, had disappeared from the picture.

Her daughter-in-law, who had fought with her parents to marry the man she loved, who could not bear to be around the house which reminded her of her dead husband so much, and who had taken her then-year-old son far away to another city, had disappeared from the picture.

The woman around the smile, who was now a bag of bones and loose skin but had been once the most beautiful woman I knew, who had had the rosy cheeks to put blushing brides to shame, who had always had long, flowing, carefully arranged tresses, and who had always had an ever-present laugh hiding behind her eyes, had disappeared from the picture.

The years had not been kind to her.

The Proposal

I remember you

I remember you.

You have been there for me sometime, somewhere, somehow, and you affected me in some way that you might not even know about, because you did something you don’t even remember.

I am grateful to you, and for you.

I am grateful for the conversations, the laughs, the support and the memories.

Some of you remember me, some of you don’t.

Some of you remember my face, some of you don’t.

Some of your faces I remember, some of yours I don’t.

Some of you are alive. Some of you are dead. All of you are going to be. Someday, I will be too.

But this post will remain.

The dead, remembering the dead. The dead, remembering the living.

You are: (more…)

Bill Waterson’s speech at Kenyon College – Class of 1990 (or “SOME THOUGHTS ON THE REAL WORLD BY ONE WHO GLIMPSED IT AND FLED”)


I have always admired Bill Waterson for everything he did and did not do. He  not only inspired millions of adults with his cartoons, he provided them “the conversational equivalent of an out of body experience”.
The following is his Kenyon College Commencement speech, which I got from the MIT website.


Bill Watterson
Kenyon College Commencement
May 20, 1990
I have a recurring dream about Kenyon. In it, I’m walking to the post office on the way to my first class at the start of the school year. Suddenly it occurs to me that I don’t have my schedule memorized, and I’m not sure which classes I’m taking, or where exactly I’m supposed to be going. As I walk up the steps to the postoffice, I realize I don’t have my box key, and in fact, I can’t remember what my box number is. I’m certain that everyone I know has written me a letter, but I can’t get them. I get more flustered and annoyed by the minute. I head back to Middle Path, racking my brains and asking myself, “How many more years until I graduate? …Wait, didn’t I graduate already?? How old AM I?” Then I wake up.

Experience is food for the brain. And four years at Kenyon is a rich meal. I suppose it should be no surprise that your brains will probably burp up Kenyon for a long time. And I think the reason I keep having the dream is because its central image is a metaphor for a good part of life: that is, not knowing where you’re going or what you’re doing.

I graduated exactly ten years ago. That doesn’t give me a great deal of experience to speak from, but I’m emboldened by the fact that I can’t remember a bit of MY commencement, and I trust that in half an hour, you won’t remember of yours either.

In the middle of my sophomore year at Kenyon, I decided to paint a copy of Michelangelo’s “Creation of Adam” from the Sistine Chapel on the ceiling of my dorm room. By standing on a chair, I could reach the ceiling, and I taped off a section, made a grid, and started to copy the picture from my art history book.

Working with your arm over your head is hard work, so a few of my more ingenious friends rigged up a scaffold for me by stacking two chairs on my bed, and laying the table from the hall lounge across the chairs and over to the top of my closet. By climbing up onto my bed and up the chairs, I could hoist myself onto the table, and lie in relative comfort two feet under my painting. My roommate would then hand up my paints, and I could work for several hours at a stretch.

The picture took me months to do, and in fact, I didn’t finish the work until very near the end of the school year. I wasn’t much of a painter then, but what the work lacked in color sense and technical flourish, it gained in the incongruity of having a High Renaissance masterpiece in a college dorm that had the unmistakable odor of old beer cans and older laundry. The painting lent an air of cosmic grandeur to my room, and it seemed to put life into a larger perspective. Those boring, flowery English poets didn’t seem quite so important, when right above my head God was transmitting the spark of life to man.

My friends and I liked the finished painting so much in fact, that we decided I should ask permission to do it. As you might expect, the housing director was curious to know why I wanted to paint this elaborate picture on my ceiling a few weeks before school let out. Well, you don’t get to be a sophomore at Kenyon without learning how to fabricate ideas you never had, but I guess it was obvious that my idea was being proposed retroactively. It ended up that I was allowed to paint the picture, so long as I painted over it and returned the ceiling to normal at the end of the year. And that’s what I did.

Despite the futility of the whole episode, my fondest memories of college are times like these, where things were done out of some inexplicable inner imperative, rather than because the work was demanded. Clearly, I never spent as much time or work on any authorized art project, or any poli sci paper, as I spent on this one act of vandalism.

It’s surprising how hard we’ll work when the work is done just for ourselves. And with all due respect to John Stuart Mill, maybe utilitarianism is overrated. If I’ve learned one thing from being a cartoonist, it’s how important playing is to creativity and happiness. My job is essentially to come up with 365 ideas a year.

If you ever want to find out just how uninteresting you really are, get a job where the quality and frequency of your thoughts determine your livelihood. I’ve found that the only way I can keep writing every day, year after year, is to let my mind wander into new territories. To do that, I’ve had to cultivate a kind of mental playfulness.

We’re not really taught how to recreate constructively. We need to do more than find diversions; we need to restore and expand ourselves. Our idea of relaxing is all too often to plop down in front of the television set and let its pandering idiocy liquefy our brains. Shutting off the thought process is not rejuvenating; the mind is like a car battery-it recharges by running.

You may be surprised to find how quickly daily routine and the demands of “just getting by: absorb your waking hours. You may be surprised matters of habit rather than thought and inquiry. You may be surprised to find how quickly you start to see your life in terms of other people’s expectations rather than issues. You may be surprised to find out how quickly reading a good book sounds like a luxury.

At school, new ideas are thrust at you every day. Out in the world, you’ll have to find the inner motivation to search for new ideas on your own. With any luck at all, you’ll never need to take an idea and squeeze a punchline out of it, but as bright, creative people, you’ll be called upon to generate ideas and solutions all your lives. Letting your mind play is the best way to solve problems.

For me, it’s been liberating to put myself in the mind of a fictitious six year-old each day, and rediscover my own curiosity. I’ve been amazed at how one ideas leads to others if I allow my mind to play and wander. I know a lot about dinosaurs now, and the information has helped me out of quite a few deadlines.

A playful mind is inquisitive, and learning is fun. If you indulge your natural curiosity and retain a sense of fun in new experience, I think you’ll find it functions as a sort of shock absorber for the bumpy road ahead.

So, what’s it like in the real world? Well, the food is better, but beyond that, I don’t recommend it.

I don’t look back on my first few years out of school with much affection, and if I could have talked to you six months ago, I’d have encouraged you all to flunk some classes and postpone this moment as long as possible. But now it’s too late.

Unfortunately, that was all the advice I really had. When I was sitting where you are, I was one of the lucky few who had a cushy job waiting for me. I’d drawn political cartoons for the Collegian for four years, and the Cincinnati Post had hired me as an editorial cartoonist. All my friends were either dreading the infamous first year of law school, or despondent about their chances of convincing anyone that a history degree had any real application outside of academia.

Boy, was I smug.

As it turned out, my editor instantly regretted his decision to hire me. By the end of the summer, I’d been given notice; by the beginning of winter, I was in an unemployment line; and by the end of my first year away from Kenyon, I was broke and living with my parents again. You can imagine how upset my dad was when he learned that Kenyon doesn’t give refunds.

Watching my career explode on the lauchpad caused some soul searching. I eventually admitted that I didn’t have what it takes to be a good political cartoonist, that is, an interest in politics, and I returned to my firs love, comic strips.
For years I got nothing but rejection letters, and I was forced to accept a real job.

A REAL job is a job you hate. I designed car ads and grocery ads in the windowless basement of a convenience store, and I hated every single minute of the 4-1/2 million minutes I worked there. My fellow prisoners at work were basically concerned about how to punch the time clock at the perfect second where they would earn another 20 cents without doing any work for it.

It was incredible: after every break, the entire staff would stand around in the garage where the time clock was, and wait for that last click. And after my used car needed the head gasket replaced twice, I waited in the garage too.

It’s funny how at Kenyon, you take for granted that the people around you think about more than the last episode of Dynasty. I guess that’s what it means to be in an ivory tower.

Anyway, after a few months at this job, I was starved for some life of the mind that, during my lunch break, I used to read those poli sci books that I’d somehow never quite finished when I was here. Some of those books were actually kind of interesting. It was a rude shock to see just how empty and robotic life can be when you don’t care about what you’re doing, and the only reason you’re there is to pay the bills.

Thoreau said,

“the mass of men lead lives of quiet desperation.”

That’s one of those dumb cocktail quotations that will strike fear in your heart as you get older. Actually, I was leading a life of loud desperation.

When it seemed I would be writing about “Midnite Madness Sale-abrations” for the rest of my life, a friend used to console me that cream always rises to the top. I used to think, so do people who throw themselves into the sea.

I tell you all this because it’s worth recognizing that there is no such thing as an overnight success. You will do well to cultivate the resources in yourself that bring you happiness outside of success or failure. The truth is, most of us discover where we are headed when we arrive. At that time, we turn around and say, yes, this is obviously where I was going all along. It’s a good idea to try to enjoy the scenery on the detours, because you’ll probably take a few.

I still haven’t drawn the strip as long as it took me to get the job. To endure five years of rejection to get a job requires either a faith in oneself that borders on delusion, or a love of the work. I loved the work.

Drawing comic strips for five years without pay drove home the point that the fun of cartooning wasn’t in the money; it was in the work. This turned out to be an important realization when my break finally came.

Like many people, I found that what I was chasing wasn’t what I caught. I’ve wanted to be a cartoonist since I was old enough to read cartoons, and I never really thought about cartoons as being a business. It never occurred to me that a comic strip I created would be at the mercy of a bloodsucking corporate parasite called a syndicate, and that I’d be faced with countless ethical decisions masquerading as simple business decisions.

To make a business decision, you don’t need much philosophy; all you need is greed, and maybe a little knowledge of how the game works.

As my comic strip became popular, the pressure to capitalize on that popularity increased to the point where I was spending almost as much time screaming at executives as drawing. Cartoon merchandising is a $12 billion dollar a year industry and the syndicate understandably wanted a piece of that pie. But the more I though about what they wanted to do with my creation, the more inconsistent it seemed with the reasons I draw cartoons.

Selling out is usually more a matter of buying in. Sell out, and you’re really buying into someone else’s system of values, rules and rewards.

The so-called “opportunity” I faced would have meant giving up my individual voice for that of a money-grubbing corporation. It would have meant my purpose in writing was to sell things, not say things. My pride in craft would be sacrificed to the efficiency of mass production and the work of assistants. Authorship would become committee decision. Creativity would become work for pay. Art would turn into commerce. In short, money was supposed to supply all the meaning I’d need.

What the syndicate wanted to do, in other words, was turn my comic strip into everything calculated, empty and robotic that I hated about my old job. They would turn my characters into television hucksters and T-shirt sloganeers and deprive me of characters that actually expressed my own thoughts.

On those terms, I found the offer easy to refuse. Unfortunately, the syndicate also found my refusal easy to refuse, and we’ve been fighting for over three years now. Such is American business, I guess, where the desire for obscene profit mutes any discussion of conscience.

You will find your own ethical dilemmas in all parts of your lives, both personal and professional. We all have different desires and needs, but if we don’t discover what we want from ourselves and what we stand for, we will live passively and unfulfilled. Sooner or later, we are all asked to compromise ourselves and the things we care about. We define ourselves by our actions. With each decision, we tell ourselves and the world who we are. Think about what you want out of this life, and recognize that there are many kinds of success.

Many of you will be going on to law school, business school, medical school, or other graduate work, and you can expect the kind of starting salary that, with luck, will allow you to pay off your own tuition debts within your own lifetime.

But having an enviable career is one thing, and being a happy person is another.

Creating a life that reflects your values and satisfies your soul is a rare achievement. In a culture that relentlessly promotes avarice and excess as the good life, a person happy doing his own work is usually considered an eccentric, if not a subversive. Ambition is only understood if it’s to rise to the top of some imaginary ladder of success. Someone who takes an undemanding job because it affords him the time to pursue other interests and activities is considered a flake. A person who abandons a career in order to stay home and raise children is considered not to be living up to his potential-as if a job title and salary are the sole measure of human worth.
You’ll be told in a hundred ways, some subtle and some not, to keep climbing, and never be satisfied with where you are, who you are, and what you’re doing. There are a million ways to sell yourself out, and I guarantee you’ll hear about them.

To invent your own life’s meaning is not easy, but it’s still allowed, and I think you’ll be happier for the trouble.
Reading those turgid philosophers here in these remote stone buildings may not get you a job, but if those books have forced you to ask yourself questions about what makes life truthful, purposeful, meaningful, and redeeming, you have the Swiss Army Knife of mental tools, and it’s going to come in handy all the time.

I think you’ll find that Kenyon touched a deep part of you. These have been formative years. Chances are, at least of your roommates has taught you everything ugly about human nature you ever wanted to know.

With luck, you’ve also had a class that transmitted a spark of insight or interest you’d never had before. Cultivate that interest, and you may find a deeper meaning in your life that feeds your soul and spirit. Your preparation for the real world is not in the answers you’ve learned, but in the questions you’ve learned how to ask yourself.

Graduating from Kenyon, I suspect you’ll find yourselves quite well prepared indeed.

I wish you all fulfillment and happiness. Congratulations on your achievement.

– Bill Watterson