Tablet PC – A Student's Perspective

One Note, Note Taking and Powertoys

Archive for the ‘general’ Category

The Automation Hangover

Posted by anirudhsaraf on August 26, 2008

I got back to college yesterday after my twelve week long internship at Microsoft, and its difficult snapping back into “college-mode”.

I walked into SOURCe ( the student run tech support center) where I work. A routine we go through every year is to go around campus and register the mac addresses of the new students into our system. The steps to do this is to have the user log into the university portal, navigate to the student resources tab, click on the add mac address which reloads the page to show a form  where we add the mac-address. While earlier I saw it as a routine task, now it seemes like 3 unnecessary clicks along with the trouble of launching the command prompt and getting the mac address from there. Mutliply that by 700 new students and its a lot of work.

Instantly my mind began churning, looking to automate the process so that all the user does is log on to the portal and voila his mac address is registered.  Now luckily on my long plane ride back I was reading up on the DOM and the web browser control as research for one of the powertoys in the pipeline, and so it hit me – just as we automate testing OneNote or desktop software there must be a way to automate testing websites !! I fired up google, typed in automating websites and other related terms to come up with a simple solution using the web Browser control and DOM which registers the users mac address as soon as he logs into the portal through my software.

It will be put to test next week as the freshmen start pouring in. Here’s hoping they have the .NET framework installed.

Posted in general | Tagged: | Leave a Comment »

Interviewing with Microsoft : Part 2 – The Butterflies Period

Posted by anirudhsaraf on April 13, 2008

After I got the interview call, I felt butterflies in my stomach. Literally my stomach was churning. I was excited, true, but I had no idea what to expect. Google search revealed lots of question, which ranged from easy to outright impossible. I had not programmed in C++ for over 2 years, C# was a relatively new language and I was yet to take a formal Algorithms course. To top it I was interviewing for a position in Test – and I had no idea about the formal way to test. I had just learnt that something called Unit Tests existed. Most of my knowledge was on a need to know basis. It’s actually a simple concept I follow to learn.

Step 1: Decide on a project. No matter how absurd it seems, you need to have a fundamental belief that you can make it work.

Step 2: Get excited about it for 2-3 days. Think in very abstract terms (plain English) how it can be achieved. If at the end of the 3 day period I still have the same excitement, then I know that I can make the project happen. It is vital to wait for 2-3 days so as not to have too many abandoned projects. Of 10-12 ideas I generate, at the end of the wait period only 1-2 seem to be manageable and implemental. So for example, for the DoubleHyperlink project I broke it down as

1) I create a new page – Simple I knew how do that.

2) Create Hyperlink to that New Page – Again relatively simple using the API.

3) Insert Hyperlink at the Current Cursor Position – I didn’t know how to do this when I started.

4) Browse to new page – Again relatively simple.

As a rule of thumb, if there are more than 5 abstract concepts I need to figure out – I drop the project. Note : Most of my projects are 2-3 weeks timeframe projects with a full course load of classes. So I don’t want anything too big on my plate.

Step 3: Now I have the basic idea of how to achieve my goal. I just need to gather the knowledge. So I need to figure out how to insert at the Current Cursor Location. This is basically the bottleneck in my project. So my goal is narrowed to one single thing – learn how to insert text at the current location in OneNote. At this stage I break it to more fundamental steps. How can I achieve this, since there is no API to do this. After some though I decided that copy-paste would be the simplest thing. So what I need to do is put the hyperlink on the Clipboard and then Paste it into OneNote. So the whole project was broken down into learning how to handle the clipboard. I googled Windows Clipboard management and spent some time learning the syntax and basics behind how the Clipboard works. Equipped with this knowledge I was ready to embark on my major project.

So back to the main point. My entire knowledge is haphazard, with no structure and I felt totally unprepared to take a technical interview without google at my disposal. I had a week before my Interview date. I was panicking. At this point, of the various people I talked to, the best advice was from John (yes he was the one who “noticed” me) which I will quote below

“The only tip I have is relax. Think of writing and testing your code, and then just do it.No pressure.” – Thanks John 🙂

Although it seems too simple and obvious – I’ll advice everyone interviewing to repeat this mantra 10 times a day. You’ve gotten this far; You know your stuff – and you can’t really do much in a week’s time in terms of increasing your knowledge. I did review some C++ – pointers , linked lists and trees – which seemed to be popular according to Google. And yes I did freak out a little when I read questions which seemed totally beyond my grasp. The only thing I recommend practicing is the WhiteBoard question. Don’t do it alone. Get a professor ( if you can) or a friend to give you a mock interview. Practice thinking out aloud. Trust me, you don’t want your first experience to be in front of an interviewer. The first time I did it ( with my prof.) I was totally tounge-tied – specially after I stumbled. Don’t stress over knowing deep issues like the difference between a class and struct. They aren’t looking at what you know. They are looking for how fast can they teach you. This was of course only clear to me after the interview. As for the actual interview – well you’ll have to wait a few more days for that one !!

Posted in general | Tagged: , | Leave a Comment »

Interviewing with Microsoft : Part 1 – Getting Noticed

Posted by anirudhsaraf on April 6, 2008

I remember saying in one of my earlier posts that I wish Microsoft would hire me without a degree :). Guess what, they did just that. They gave me an offer for an internship on the OneNote team this summer. Woot !!

So, how do you get that coveted intern spot at Microsoft? The first thing you need to do is get an interview. You are lucky if you are in one of the many colleges Microsoft recruits at, but if not what do you do? You try and get noticed !! If you love programming, I am sure there are many projects you work on, many “geeky” activities you undertake. While your friends are getting drunk on Friday nights, you are perhaps cloistered in your room debugging that program which is so close to working. Its 4 am in the morning and your program finally worked. Do you just give yourself the smug smile and move on? Wait, there is another important thing you need to do – tell others about it !! Don’t forget this absolutely essential part. You may be the best programmer, but if nobody knows it, you ain’t getting any job offers.

A simple way to share your achievements is through a blog. Note, I am not talking about starting a blog which shows pictures of you in a drunken state, but a blog which shows your knowledge. Here you can show your knowledge, talk about your projects and get feedback from the community. More importantly, your blog will help you network and get noticed by potential employers.

Other ways to get noticed are by leaving “intelligent” comments on other people’s blogs. A lot of Microsoft people have their own blogs and leaving insightful comments can also help you get noticed.

So go ahead, start your blog ( there are many free blogging services), talk about your projects and about your insights into programming, and sooner or later (if you are worthy 😉 ) you’ll get that interview call. But just remember, don’t do it for the interview call, do it for your passion of programming.

Posted in general | 3 Comments »

Diigo: Mark up the Web

Posted by anirudhsaraf on March 24, 2008

Have you wished you could mark up a website? Highlight, add notes and the share it with others? Diggo is a solution to all your needs. Ok I exaggerated, it doesn’t have ink support (damn). However it lets you highlight, annotate, tag , bookmark, blog and share webpages. Isn’t that awesome? If you are tired of printing all those webpages to OneNote just so that you could highlight up the important parts, Diggo is your solution. Sign up, don’t hesitate to download the firefox/IE tool bar, give it a spin and well leave me a note of thanks :).

diigo.png

Go Sign up now http://www.diigo.com/

Posted in general, One Note Usage, OneNote | Tagged: , , | 1 Comment »

Merry Christmas and Happy New Year

Posted by anirudhsaraf on December 27, 2007

I would like to wish all the readers Merry Christmas and a Happy New Year.

I’m sorry for the slack in posts, but it turns out that I am more busy (enjoying!!) during holidays than I was during the semester. So while there has been a lull in post during the holiday season, I promise to make up for it with the release of a few powertoys in the next few months.

So stay tuned, and here’s wishing everyone a Merry Christmas and a Happy New Year.

Posted in general | Leave a Comment »