boxee Installed on Apple TV – the little box comes to life

Sunday, October 12th, 2008

boxee

Problem Description: Crappy interface for playing .avi files with .srt files for subtitles on Media Center PC.  This interface is what I predominantly use My Media Center PC for these days – simply to play movies sitting on my home network, with subtitles.  Since Windows Media Player itself can’t handle .srt files for subtitles, I am using a VLC Player plugin on Media Center to play these movies.

Proposed Solution: Install boxee on my Apple TV and have it discover my networked movies/music.

I got boxee Alpha installed on my Apple TV this morning and the little Apple TV has been reborn.  After getting onto the Alpha earlier this week I followed the instructions on the Google Code project for atvusb-creator and got a USB pen drive formatted and installed with the additional XMBC and boxee applications.  After watching “how-to video: boxee on Apple TV” I realized that the installation process wouldn’t be too tough, and put it on my list for the weekend. 

Sunday morning: I dug up an old 512Mb USB Flash drive and, after reading the Google Code project notes, got started on my Mac Book Pro.  The patchstick created I rebooted my Apple TV with the patchstick and watched the Linux boot kick up.  Then it hung.  After groaning I went to the bug list for the Google Code project and found out that SanDisk 512Mb USB Flash drives have been reported not to work.  Found another USB Flash drive (1Gb Verbatim one this time).  Went through the process again, and this time the patchstick loaded completely and installed boxee and XMBC.

First I needed to tune boxee to display correctly on my DLP television (which was painless and obvious with a great settings interface for manipulating the display properties) and then the full interface was accessible to me.  The interface is beautiful.  In no time I had it discover by shared movies on my local network and my shared music.  My .avi movie files with .srt subtitles played without a hitch, and the interface is perfect for watching movies.  Later I’ll walk my wife through it and see if it passes the wife test.

Solution Analysis: boxee is clearly in alpha, but I’m already hooked to it (crashes and all).  Hopefully once it becomes more stable I can officially retire my Media Center PC (which is on its last legs) and just use boxee for my movie / music playback.  Kudos to the boxee team and thanks for creating such a polished alpha.  I can’t wait to see what the team puts into this product next.

Backlog of Reading Posts and Updated Site

Sunday, September 14th, 2008

Finally got around to cleaning things up on my website.  Upgraded Gallery2 and Wordpress.  I also started separating my Twitter Tweets as a separate category so the daily digests will keep from cluttering the main page and my RSS feeds.  Thanks to this article for explaining how.

Though I haven’t made it all the way through my reading from 2007, I will finish it off soon enough.  In 2008 I haven’t been reading as much so there is less to write about.  The backlog of posts published today are:

  1. "Men are from Mars, Women are from Venus" by Jim Gray
  2. "Founders at Work" by Jessica Livingston
  3. "The Myths of Innovation" by Scott Berkun
  4. "A Thousand Splendid Suns" by Khaled Hosseini
  5. "The Namesake" by Jhumpa Lahiri

It feels good to be blogging again, even if it is mostly for my own archival purposes.  Lots of pictures to upload, there are a handful of draft posts that I really want to get back to and finish off - some actual content from inside my head.  I realized recently that the reason for my lack of blogging was the lack of free offline blogging tools on Mac OS X.  This sounds strange, but I feel most compelled to write new content when I am not online.  Once I’m online there is always other stuff to do.  Introspection time is often reserved to offline time.  Now that I have a new Windows box I use everyday again (Lenovo ThinkCentre M-Series) I installed Windows Live Writer and have been using it more and more.

The look and feel of the site is totally stale, no rounded edges and fixed width are annoying me.  One of these weekends I’ll revamp the theme for the site.

Thanks to everyone for putting up with my daily Twitter posts in RSS etc - won’t have to worry about that anymore.

2007 In Review - The Briefest of catch up posts

Thursday, December 6th, 2007

My website has become remarkably stale. And honestly I don’t have the time to document all the changes that have gone on in my life since the last time I’ve posted. But I also cannot just ignore this past year and pretend nothing has happened.

So, in classic, boring, corporate style, here is an ordered list of events in my life since my last post (maybe someday I will get to expand on any of these items, but we’ll see):

  1. Worked on Windows Live FolderShare
    Worked on some infrastructure to facilitate refactoring the backend FolderShare code - still waiting to hear an official announcement from my old team regarding a release of FolderShare.
  2. Worked on Windows Live Messenger (my work released in v8.5 and whatever next version turns out to be)
    Worked on the existing Sharing Folders feature, worked on implementing major changes for the next version of Messenger, hopefully this will be released soon. My v8.5 changes were mostly bug fixes.
  3. Resigned from Microsoft
    So this might seem like a shock, but it fell quite cleanly into my five year plan. Yep, I had one when I graduated from college. Having never imagined I would work for Microsoft when I was in college and after getting a lot of flack from my classmates for accepting a job at Microsoft I made up a five year plan in terms of things I wanted to learn from Microsoft before leaving. Aw hell I’m just left-brained like that anyway, I make goals for just about everything (ask me how long my car is supposed to last before I consider it a good “reasonable” purchase).Over the summer I started evaluated where I was against my goals, and I realized I had accomplished everything I had set out to learn from Microsoft. The decision to leave was made doubly difficult since I could not imagine a better team to be a part of anywhere. Written another way, I loved my team. There were so many competent, talented, smart, and experienced people who I could learn from and had learned from. My lead was my advocate, knowledgeable, and fully-focused on unblocking me from my goals.

    The team’s philosophy on quality was completely inline with how I believe software should be engineered, and the process and focus on infrastructure in place is truly enviable, in any commercial environment. An incredibly small example - my team was able to go from 0 to shipping at scale (at Microsoft scale that is - meaning localized, distributed data centers, redundancy, etc) a storage-in-the-sky solution in 3 months.

    However, even though everything at my team in Microsoft was going so well, I realized I was at a critical junction in my young career. Knowing that I would be getting married over Thanksgiving (see point 6 later on) I realized that I may not have another opportunity to dramatically change my career without impacting at least one other person. Not that my fiance was not a part of my decision to resign, but at least I wasn’t asking her to change jobs and/or relocate with me. And I also realized that if I stayed at Microsoft I may never leave. Many people would love to be in that situation, but having never worked in another company full-time I felt it would be remiss to limit my entire professional experience in software to one company. Plus there was an element of me wanting to keep my word with my own personal goals.

    And finally, things don’t happen in a vacuum. A couple recruiters called me, coincidentally, at the same time. I was not overly excited by the kool-aid they were trying to preach (I had been drinking large public-company kool-aid for five years already). Far more importantly my friend Hooman Radfar called me to catch up.

    My last day with Microsoft was my five year anniversary exactly, September 17, 2007. Take that five year plan.

  4. Accepted a position at Clearspring Technologies
    So Hooman started talking to me about what Clearspring has been up to (one could argue that he had been trying to recruit me to join him since when I visited Clearspring in 2004 when it as two guys in one office). Well, as I always told him I had a five year plan at Microsoft. Except this time, my five years was up and the things Hooman was telling me about sounded really exciting. I think the salient quote from that first call, “If you want things to be neat at clean don’t join us, but if you want to bring order to the chaos of a startup then we could use your help”. Or something close to that - at least that is how I remember it, so that is how it happened.Within three weeks I had: spoken with the VP of Engineering, gone to VA to interview, negotiated the offer, and accepted the offer. So the fun of the speed of a startup had begun even from before starting full-time.
  5. Relocated to Washington DC area
    Moved to Arlington VA and found a sublet on craigslist for three months while I was trying to sell my townhouse in Redmond. Realized that there are worse rental markets than Seattle (namely around DC). I also first-hand got to experience why they say moving is one the ten more stressful things in a person’s life. My advice from the situation - live simply until you get married so you don’t have to do something like a cross-country relocation by yourself, or negotiate a personal assistant into your new job’s contract to help with the relocation part.
  6. Started working at Clearspring
    Rapid-dynamic team going through lots of changes - like any startup. I was immediately impressed with the quality of the folks around me, and the changes we were making were highly needed and smart decisions. The ramp up was rough, as it always is, but the fun and satisfaction was immediate. Still is.

  7. Shipped my first product at Clearspring - Launchpad
    Within two months of starting at Clearspring I shipped my first product there. I joined part way into this project and helped guide it to through release. In the interim I had become a lead at Clearspring. I’m trying my best to follow my lead’s example from Microsoft in how I operate at Clearspring, and I guess time will tell how well I am doing.I am incredibly proud of our first release in this space, providing an embeddable HTML/JS menu to facilitate sharing widgets using Clearspring’s platform. There is still lots of work ahead of us, but it is overwhelmingly exciting and I can’t wait to dig in further.

  8. Sold my townhouse in Redmond
    With a great sigh of relief my townhouse in Redmond finally sold. The realization of paying mortgage in WA and rent in VA was starting to creep in and in the knick of time a great offer came in with a very accommodating closing date. I was able to close and settle the sale the week before I left to get married - a giant burden removed from my shoulders.

  9. Traveled to India to get married and enjoyed a brief honeymoon
    Had a very enjoyable wedding and honeymoon over a three week trip to India. I have not gotten or seen many pictures from the trip yet (apparently when you are the groom you don’t get to take or see many pictures) - as soon as I have them they will be published here.A group of close friends came to India to participate in the celebrations along with Shaily, myself, and our families. I am pretty sure they all had a great trip and I certainly loved introducing them to Shaily and sharing my wedding with them.

    Went to an awesome lake resort in Kerala for a short four day honeymoon. It really was a unique experience - nothing like anything I have seen in India, US, Jamaica, or any other tropical place I’ve been to. Really something special. If you are looking for a way to vacation at the end of your vacation, you want to stay in a resort like this one (check out slh.com for the listing of similar small luxury hotels).

    Unfortunately my wife’s visa isn’t ready yet, so I had to return to the US without her. Hopefully she will be joining me soon.

If you’ve made it this far then I think you understand why I have not been able to post more often. 2007 has brought more dramatic changes in my life than any other since I turned eighteen (it is hard to quantify the magnitude of each change before that). This year I tackled three of the ten most stressful life events at the same time, and I triumphed: switching jobs, relocating cities, and getting married.

(If anyone is wondering how come I made time to write this post, it is entirely because I am at the JetBlue free WiFi zone in JFK on a long layover and the wifi connection isn’t strong enough for VPN support - so after catching up on Google Reader this was next on the list.)

"Founders at Work" by Jessica Livingston

Tuesday, May 1st, 2007

Founders at Work: Stories of Startups' Early Days (Recipes: a Problem-Solution Ap)

Read from April to May 2007.

This is a collection of 32 interviews with founders from recent technology startups.  The book is well written and Livingston speaks enough of the technical language to ask the right questions.  This book fules the entrepreneurial spirit of the reader and makes clear that startups have their ups and downs - even though this particular story is about 32 startups that were successful, at least for a while.

The most engaging part of the story for me was how patterns emerged between the founders and common experiences they all shared.  It became clear that tech startups have to be ready for anything and be willing to alter the original plan again and again as development continues.  This flexibility plus a commitment to the customer regardless of the circumstances was also novel to me.  Often times you think of a startup running as fast as it can without regard for the customer, hoping the customer will understand the product.  The people interviewed in this book were the opposite - they only cared about the customer and constantly made changes accordingly.

It was also really interesting that many (of those interviewed over half) were established engineers with families and prior careers.  These interviews were particularly insightful to me, since the media glamorizes the phenomenon of a college drop-out success story.  For example, can you name the founder of Tivo?  Turns out they all were established middle-aged engineers.  That doesn’t make for a great scoup but certainly makes for more interesting reading.  The perspective these seasoned engineers provide on their experiences in leaving a steady job, steady salary, and steady lifestyle for the 24-hour pace of a startup fills the reader with confidence that he too can be successful in the startup.  And, even if not successful, that the experience was worth the effort.

I highly recommend this book if you have the desire to enter the tech industry at any level.  The interviews are short and sweet and you get a sense of each of the founders from their own words.  I hope Jessica Livingston continues to write about tech startups - I will keep reading what she writes.

Read more about it and buy it here.

Setting up an Orkut Google Talk account in Gaim

Thursday, March 1st, 2007

I have recently been using Orkut more and more. Turns out most of my Indian friends are on Orkut far before any other social networking site. When using it today I noticed that they offer a Google Talk connection so you can chat with your friends. This is the link that most social networking sites are lacking (one of the things they are lacking). Figures that Google would solve this. It has been very interesting to watch how Google has created more and more integrated products (or properties if you wish) in the last six months.

I went through the steps of hooking up my Google Account to a Google Talk account. This was painless. Then I decided I didn’t want another IM client running on my machine, so I wanted to get my newly created Orkut Google Talk working in Gaim (my IM client of choice).

In the effort of brute force attempts, I stumbled upon what appears to be the correct configuration for getting your Orkut Google Talk account working in Gaim. It seems these steps are very similar to setting up Gaim with someone using Google Apps, see the references section below for those instructions.

(Note: These dialogs are described from Gaim 2.0 Beta 6 - the same content has existed since the latest released version Gaim 1.5 but the order/location of the info might be changed. So just read the content here and scour the Gaim settings area for the appropriate field to fill in.)

Setting up an Orkut Google Talk account in Gaim:

  1. Create an Google Talk screen name, this is linked to the Google Account associated with the Orkut user.
  2. In Gaim, create a new account (Ctrl+A)
  3. Fill in the following settings:
    Basic Tab
        Protocol: Jabber
        Screen name: (Fill in Google Talk Screen Name
                     created in Step 1)
        Server: gmail.com
        Resource: Orkut
    
    Advanced Tab
        Connect Server: talk.google.com
  4. Click Save

To Add Orkut Friends to your Gaim friend list: 

  1. Add Buddy (Ctrl+B)
  2. Screen name: Google Talk Screen name (in your friend’s profile page, it is after the Google Talk:) @gmail.com - for example if your Google Talk Screen name is bob then the Screen name here is: bob)
  3. Pick your newly created Jabber account from the list, and click Add

References:

Give it a try, let me know if my steps are confusing.

An old Desk with a new Twist (add a shelf to make your workspace fabulous)

Wednesday, February 28th, 2007

I got this idea from my former office mate (or cabin-mate).  However, when we shared an office I never followed his advice with creating a shelf on a workstation desk for the computer monitor(s).

After we got moved I decided to try this system out.  At work I blatantly copied what Roger (my former office mate) had in place.  He used a shelf from one of our hanging shelf units (all MS in Redmond has the same hanging shelf units) and raised it by using two reams of paper.  On top of this I put my speakers and my 24″ Dell monitor.

At my house I put off trying this configuration even longer.  It was not until yesterday when I realized that my docking station has both a VGA and a DVI output.  I had only been using the DVI output to one of my Dell monitors and using the screen on my laptop as my other desktop.  This was inconvenient because my laptop’s 1900×1200 resolution was difficult to see when the laptop was placed next to the monitor.

So I decided to attempt shelf at home, with both my monitors in the mix.  I found a plank of wood from my garage (long story how it got there) and found some VHS movies for height raising.  After a couple hours of re-arranging furniture, reorganizing all my wiring I finally had the shelf, monitors, and machine in order.

The benefits I experienced by this setup at work were immediately evident to me at home as well.  This small and subtle modification has had a dramatic improvement on my posture, productivity, and usefulness of my desk.

The benefits:

  • Doubles as a reading area (or an area to eat lunch) by sliding keyboard under the shelf (notice the space is left deliberately empty)
  • Speakers and knick-knacks always dominated the entire desk, getting pushed around with other items on the desk.  Now they do not impact anything since they are raised and untouched
  • Inability to spill coffee or other liquids on the monitor or speakers (or rather, much much more difficult)
  • Aesthetically more pleasing workspace (even with a ghetto shelf like the one I am using at home)
  • People can see the skin applied to my laptop

Try this at your home or work and let me know if you find it beneficial.  Roger and I both believe there is a market for high quality desk-shelf material like this.

wp-cache Plugin upgraded to 2.1, along with WordPress

Wednesday, February 21st, 2007

Funny sometimes how you forget to read documentation when everything up to this point has been point and click. So far with WordPress, I’ve essentially used Fantastico to install and upgrade the WordPress installation. Then using the elaborate UI from Wordpress I’ve installed/configured all the plugins being used on the site.

This system worked great, until I upgraded to WordPress 2.1. Suddenly, to my surprise, my entire website started failing due to some obscure (or so it seemed to me) error. I did my fair share of searching, and finally realized that wp-cache is what is causing the problem.

I disabled wp-cache (the hard way, by commenting out lines in wp-settings.php that worked with it) and then my site came back to life. However, I really liked the performance boost of using wp-cache (it was a visible boost in performance when I had it going on WordPress 2.07).

A few days more passed, and finally tonight I went looking for an updated wp-cache plugin. Sure enough, there was one. This time I installed it and again my site fell apart. Instead of the quick and easy remove route I went through before, I decided to read some more docs on this updated plugin.

Sure enough, there was a missing symbolic link that was described in the documentation. Until now I had not read each plugin’s documentation, so this was a bit of a shock to me - but it was clearly defined and easy to implement.

After getting wp-cache installed using the plugin’s documentation - my site came back to life, I re-enabled wp-cache, and ever since I’ve seen that noticeable improvement in performance.

So, go me for reading the documentation - finally.

Future of Electronic Learning?

Monday, August 7th, 2006

Moodle seems like an open source Blackboard. Patent issues aside, this seems pretty interesting to me. My university was just rolling out Blackboard while I was an undergrad (I’m getting older and older in technology terms), though now I am guessing even tech-savvy high schools have rolled out Blackboard as well.

Well Moodle seems to provide everything Blackboard provided in the past, along with some new stuff (for all I know, Blackboard has these as well). This leads me to envision dynamic classrooms run by students interested in learning something outside of any curriculum. This could enable my desire to learn Thai cooking from actual Thai folks in Thailand today. Or maybe something more obscure, like studying ancient history by collaborating with students that have access to the original works themselves (imagine a Wiki discussion on a reading piece of classic Shakespeare literature).

Even if Blackboard is successful in quashing Moodle and Sakai, this type of concept will surface in other forms. Even hodge-podge sites will start providing this outside of the collaborative educational groupware moniker.

Moodle seems like a complete package, and it looks easy to use and hopefully easy to set up. I have a hankering to get it going on a spare machine at home to see how easy it is to manage. I can also foresee a future environment of collaborative learning that is paid for by paid installations of Moodle. For example, something like the UW Experimental College or my alma mater’s College of General Studies.

How Cheating in college Helps Me Every Day

Saturday, May 27th, 2006

Academic integrity has always been the cornerstone of an ivy league education. Nothing gets you in trouble at my college like getting caught cheating. Yet it is rampant. For example, if you get in a fight with a cop on campus (PENN has real Philadelphia police officers patrolling the school) every week nothing will happen to you. You can get so drunk and piss in hotel lobbies of the fanciest hotels in Philly, and the school will take no action. But, if you are caught cheating during an exam, depending on the professor, you can fail the exam or be suspended for a year (I’ve seen both happen).

In my department, cheating was also monitored when turning in electronic assigments. This is common now for all coding assignments at most schools. Apparently there is some software developed at UC Berkeley that can analyze code turned in and flags submissions that are similar. Teaching assistants and professors ran this code automatically after the submission deadline had passed on all code turned in, and then reviewed the flagged submissions.

Considering the consequences for cheating were so severe, it is surprising how many students still cheated regularly. It is often harder to explain how a problem is solved than it is to show the solution (or simply the student was lazy and underprepared), so this led some students to emailing around completed assigments to each other (the kids today are probably IMing or texting them, but its the same concept).  The smarter cheater (read: the ones that got away with it) would take the completed solution and view it, but would still write his/her own solution using the provided solution as a guide. This process of digesting another person’s code and transcribing it, with heavy modifications, became a skill. At the tail end of an all-nighter, the faster you could understand another person’s code and use it complete your task, the faster you could sleep.

Fast forward to my job today, writing commercial software. What I have found about writing application-level commercial software is that it is often a repeated 3-step process:

  1. Find software library to provide necessary functionality.
  2. Learn how to use this software library.
  3. Incorporate this software library into the product.

A software library is software written by others that provides functionality that can be incorporated into your product. Most software libraries are used as building blocks in producing a finished product. The documentation provided with a software library is the easiest way to learn it, and often times this documentation is littered with sample code on how to use the library. Just to clear, you usually don’t want to have the actual source code to the library because you are using it to provide some functionality for you - not to learn how they wrote it.

When learning how to use a new software library, I have realized that I am very good at digesting code from others and incorporating it into my work. It is a very natural process for me to look at sample code, or code from another place in our codebase and understand how I can use it. Often when developing a new product there is not adequate documentation for how parts of the product work. It is at these times that having the ability to digest code rapidly is truly beneficial.

The realization that the speed in which I can learn how to use code by looking at samples was surprising to me at first. But after some thought on it, I have simply be added to the list of accidentally invaluable skills college taught me that I didn’t realize until later in life.

Adding Technical Topics, Acknowledging my employer

Friday, March 24th, 2006

I realized several weeks ago that denying myself to write about what excited me technically would be an oversite that I would regret later in life (since this blog is still focused as a public journal).

So, I’ve created a Technical category to the site - allowing me a place to talk about whatever technical thing strikes my fancy. This will probably lead to a lot more blog posts by me, but, in the end, I think that is for the best.

Another oversite I am looking to correct is regarding my employer. I have refrained from mentioning that I work for Microsoft through out my website. I am pretty sure it is due to my concern that stating my employer on my website would imply that I agree with them ideologically. However, as I’ve realized over the years, any employer (and more so for the first corporate employer) imprints themself onto their employees in some way. This isn’t a brainwashing comment, or a drinking the kool-aid comment, just that each corporate culture leaves an imprint on you.

So, to try to use my website as a public journal about things that I think I’ll find interesting to read in 10-15 years to not include my employer would be an oversite.

So I thought I’d take a minute to mention that I have worked for Microsoft since September 2002. Since that time, I’ve held three distinct titles and positions.

  1. Developer Support Engineer - in the Support division, helping developers write printer drivers for Windows NT 4.0 through Windows XP and Windows Server 2003.
  2. Software Design Engineer / Test - in Core Operating Systems Division as a Quality Assurance representative, working on shipping Windows Error Reporting components in Windows Vista.
  3. Software Development Engineer - in Windows Live division working on Codename Max, designing and developing the code.

So, that has been my career with Microsoft so far. I will write more about my position in Codename Max during a future post.