March 26, 2010

Netflix on Wii

As promised, I came home to find my Netflix-on-Wii disk. First impressions below.

Overall: I may watch some cartoons on it, but the Wii will not replace my hook-up-laptop-to-TV approach to watching movies on Netflix anytime in the near future. Overall the picture quality is disappointing at best and disconcerting at worst. The interface is ok. Sound is barely ok.

Interface & setup: Setting the whole thing up was a breeze. My Wii was already hooked up to my TV and sound system, so I just had to pop the disk in and wait for it to come back with a special code. I headed over to netflix.com/Wii on my laptop and entered this code (you have to be logged into your Netflix account to be able to do this, so better on the laptop than on the Wii browser). Within a few seconds the screen on my Wii changed to show me titles from my "Instant Watch" queue.

Interface: The interface was pretty typical and usable. You can browse all of your queues, in addition to a number of custom queues based on your watching habits. Each queue is a horizontal row of DVD covers. Unfortunately, this is not cached, so every time you come back from a movie, you see a row of blanks while the images are fetched. Clicking on a movie takes you to a information page. There you can "Resume", "Play from beginning" or "Remove from Queue", while reading the blurb. For TV shows you can continue watching from the episode you left off on, or browse through all the episodes. You can also rate the movies. No way to read reviews yet though.

Video: This was a major disappointment. I watched to scenes from two movies - the initial scene from the Shawshank Redemption (regular aspect ratio) and a few action scenes from the Full Metal Jacket (widescreen). The movie started about as quickly as it did on my laptop, but suffered from severe lack of color-depth and frame-rate. Watching the initial scenes of the SR with the fluid camera work was dizzying. Edges were choppy and the blacks were atrocious. FMJ was a almost as bad. Fire and smoke looked remarkably good in some of the action scenes, but again, when it came to edges and people, it just wasn't fun watching them. And if you have anything bigger than my 32" TV, you should pop in a motion sickness pill before, say, you watch Harry Potter on his broom.

Audio: Was barely alright, maybe the same as from the 3.5mm jack on my laptop. No 5.1 or any surround sound yet - good ol' stereo. But overall, the volume was a bit low, and I had to turn the amplifier up a bit. Beware though, when you switch out of the Netflix channel onto the Wii home menu - the ping will be annoyingly loud. On the positive side though, was the fact that there was no choppiness, or lag even when a movie was paused and played at random points.

Movie Controls: When you wave the Wii controller during a movie, you see the pause/play button, the time bar and a back button. A slider on the time bar can be moved to any point in the movie. You do get a quick preview of where you are, with screen shots, so you don't have to guess at where you want to end up. Overall, the controls mimicked the controls of the standard player pretty well.

Final Thoughts: The last problem with the Wii is the fact that it does not use a Infrared controller. Presently I have a IR remote to run everything else in the A/V setup. Watching movies on the Wii means keeping around one more item on the table, which you can *never* replace with a remote.

March 22, 2010

Uncensored: google.cn

Seems like the beginning of a new phase in Google's life. For better or for worse, this is a big deal.

Official Google Blog: A new approach to China: an update

March 11, 2010

Templates to Layouts

Now that I was off FTP publishing, I decided to take the plunge and upgrade the other antiquated part of the blog - move from classic templates to layouts. Seemed to me, with the recent Google spurt of cleaning house, old versions of technologies were not going to be around for long, and it was best to keep up with the times.

Things did not get off to a great start. Blogger preview function started to fail citing:

The following errors were found:
securityToken: Your request could not be processed. Please try again.

I could do little but wait, while finally Google solved the problem. When I finally had my preview function working, I decided to take the plunge. Saving a copy of my old template, I went to Template > Customize Design and hit the "UPGRADE YOUR TEMPLATE" button.

The key with the upgrade for me, was to get the layout pixel perfect with my existing template. My blog is tightly integrated with the rest of the website. I had customized the original template to work with the same CSS as my site. Now I had to make the layout publish the same HTML or customize CSS locally to mimic the original.

I chose the simplest of the templates to begin with, hoping the HTML would be the closest to my original code. It took a few seconds for the upgrade, and then I was presented with the new layout screen. I headed over to "Edit HTML", and began.

The first thing I did was to get rid of existing CSS, called the skin. The blogger layout requires the skin tags to be in place, but I deleted everything in between the opening and closing tags.

<b:skin><![CDATA[
... /* Delete everything in between */
]]></b:skin>

Then began the hacking in earnest. First - the basics. The layout is made up of sections. A section contains widgets. When a section is expanded, it shows up as a <div> tag in the final HTML code. A section looks like the below.

<b:section id='header' class='header' maxwidgets="1" showaddelement="no">
</b:section>

Every *thing* in the layout is a widget. Like a section, a widget expands into its own <div> tags when the final HTML is generated. A widget however, encapsulates a ton of additional code. To see the actual code that makes up a widget, check the box that "Expand Widget Templates". And that opens up all the code that makes up the widget.

<b:includable id='main' var='thiswidget'>
[widget code found here when expanded]
</b:includable>

Widget code is made subroutines called "includable"s, presumably because they produce code that is included(?) into the final HTML. One of them, with the id "main", that is the default subroutine, which is always executed (included?). Other subroutines (includables, with a different id) are called ("include"d) as required.

<b:includable id='main'>
 <b:loop var='i' values='posts'>
  <b:include name='post' data='i'/>
 </b:loop>
 <b:if cond='condition'>
  [content to display if condition is true]
 <b:else/>
  [content to display if condition is false]
 </b:if>
</b:includable>

The final thing to note is data. Information available from the blog can be accessed using data tag. A bunch of such data is available; play around with the conditional tags and the data tags to discover everything that is available for access through code.

<data:title/>
or
<data:photo.url/>

Hacking the code took about half a day - alternating between the code, the generated HTML and the original HTML code, trying to align the them. All extra HTML (the menu code for example) was included inside widgets, so that they are included directly into the final HTML. Tracing through the code, I customized a bunch of the original HTML to ensure the correct ids and classes were included in the final HTML, allowing my standard CSS to render the page correctly. Then I added some CSS skinning to counter the effects of the default <div> tags included for the sections and widgets.

Viola: we are done! Now I had access to a ton more widgets, and a lot more blogger code to hack. Ah the bliss!

March 05, 2010

Patent end to innovation?

Apple inc has evoked mixed feelings in me. They are the company I respect the most for understanding the every-user. They present the smoothest integration between man and his gadgets. But they are also a company that I will never buy a product from. I wholeheartedly and passionately dislike their closed ecosystem approach.

However they never struck me as lacking innovation - until now. Recently they decided to sue phone maker HTC over alleged 20 patent violations. I am sure Apple believes there is true merit in some of those claims, but when it comes to the interface "technologies", I believe they are wrong.

Apple has delivered everything that the rumor-mill has promised. The iPhone, iPod touch, Apple TV and the tablet, not to mentions scores of products on their mac line-up. Now I believe Apple has finally out-run the rumor-mill. They have successfully gotten Jobs out of Macworld. The last thing churned by wasn't necessarily as earth-shaking as hoped. And now the company is busy defending instead of creating the next big thing.

Apple knows or should know, that they have enough of a brand name that they will get the customer dollar votes they deserve - without having to enforce patents to limit consumer choice. Customers that choose to buy a HTC handset will do so because they either do not want to buy Apple, or they cannot get Apple, or because Apple is priced out for them. No one that Apple's victory in a patent suit is going to help them win back.

The reason for the patent war clearly isn't the customer - it is the investor that wants to milk the cash-cow dry. A cash-cow that isn't much into innovation anymore.

March 04, 2010

Google hosted

This used to be an FTP published blog. Until Google decided to shut down the FTP service.

Migration wasn't much of a problem. Waiting for the migration tool, however turned out to be a waste of time. Since I was moving within the same sub-domain, they wanted me to use the manual process. Which was little more than setting the CNAME, and changing the publishing method. Had to do it a couple of times to make sure the servers got it right - first off I was getting a 404 error. Anyway, this is the first post to test if this is indeed working as promised.