Review of 2007, the Promise(s) of 2008

The year 2007 has been quite a dynamic year for me. Instead of writing a long article about each thing… cause that might take me an year to write and edit, I will just present a list of lists of things that happened.

Academics

  • Completed my undergraduate studies at the University of Toronto at Mississauga.
  • Picked my diploma for Bachelor of Science.

Travel

  • Traveled to Italy and Poland.
  • Walked down Unter der Linden in Berlin, Germany.
  • Checked out the Tower of London, National Gallery and Museum of Natural History in London, England.
  • Saw the sights of Florence, Rome, Assisi, and bunch of the Umbria region of Italy.
  • Walked around Gdańsk, Szczecin, Poznan, Gdynia and Malbork in Poland.

Software Development

  • Increased my knowledge of information security.
  • Restarted my involvement with the justCheckers project.
  • Deepened my understanding on software libre and open source.
  • Learned Javascript, CGI-Perl and JSP.
  • Joined the Ubuntu Toronto Users group.

Business

  • Led a mock-up startup for a course.
  • Learned how to read and understand businesses.
  • Discovered the many aspects of open source businesses.
  • Read My Job Went to India, or how to stay in IT.

Art

  • Wrote six articles on quantum computing.
  • Wrote seven personal essays that form my Hacker, Gamer, Lover book.
  • Wrote and voiced in an audio documentary, Casanova.
  • Started writing a science fiction novel.

Social Activity

  • Learned of the open access movement.
  • Learned the basic ethical theories: utilitarianism, Kantian ethics, and Rousseau’s social contract.
  • Debated for network neutrality.
  • Read Stallman’s Free Software, Free Society.
  • Read about the anti-software patent efforts in the EU.

Personal

  • Went to Taize in Montreal.
  • Made a lot more friends.
  • Learned the subtle art of dating.
  • Survived the downs of 2007.
  • Got my G1 driver’s license. Again.
  • Invented task logs, an organizational tool.

Things to Do for 2008

  • Finish justCheckers.
  • Write and publish two books.
  • Get a software development related job.
  • Start a company.
  • Find a real girlfriend.
  • Learn to drive and get my full G license.
  • Learn C and C++.
  • Get involved in a major FOSS project.

Self-Experiment: Fast Personal Context Switching

Time for a self-experiment, where I get to play the part of the guinea pig. And you get to observe the final results. Speaking of time, this university semester I felt rushed and busy like never before. I found myself with six assignments/exercises a week, and in a constant lack of time. In response I started going to time management counselling. Armed with calendars, todo lists, activity logs, my trusty PDA and advice from Mindtools.com, I felt I could do no wrong.

I discovered a problem that kept holding me back from achieving more. At home, with all things going on, my time become extremely fragmented. The fragmentation frustrated my attempts at coming up with a coherent schedule and sticking to it. And getting into the mood and mindset of performing school work – assignments that I tried to avoid – felt like climbing Mount Everest again and again. However when I interrupted and continued games between chores, I did so without missing a moment. Why could I do one well but not the other?

When you look at my situation, it resembles the life of a CPU. Why a CPU? Take a look at your computer. Your computer with one CPU can multitask well. The CPU seems to work on many things at the same thing. In reality, one CPU can only do one thing at a time, but the operating system switches the tasks for the CPU. Under Linux – the OS I use and understand best – every program (process and thread) becomes a task. The OS allocates a certain amount of time for executing a task, and then switches between them. Whenever the OS switches, it stores a record of what task it was working on, how far did it go into the task, and any extra information it needs to restart the task later. The OS then starts or continues another task. Eventually, the OS gets back to the stored task, retrieves it, figures out what to do, and executes the task until the next switch. So what?

Well, I often have to drop one thing and pick up another. Just like an OS, I switch from one task to another. Yet when I re-start my previous work, I sit trying to get into the work again. Being the distractible type, I get fed up and wander off to game instead of homework. And I need continuous blocks of time to do work in. So what to do?

Remember how the OS stores some information of its work in one task, before it switches? Well this week’s experiment is do the same. Before I go off on another task, I will write down the following:

Task: (what was I working on)
Working on: (which part or section I was working on)
Self-Progress: (how I am progressing through this section – well, badly, struggling, etc.)
Next work: (what I need to do next)
Notes: (any important things I need to jot so I don’t forget them)

Well this work or is useful? I have a pad of paper and pen ready, and we will see. Next week, I will post any interesting developments and results of this self-experiment.