Sunday, November 30, 2008

The Search for the Laptop Continues

As you may remember, I'm still searching for the ultimate laptop. I've been scouring reviews web sites (e.g., NotebookReview.com) reading about several possible options (Sony Vaio Z series looks amazing, and so does the new Samsung Q series). I ran across 2 documents (put out by Microsoft, no less) that advise on getting a laptop that's right for you.

The first is called Laptop Selector, outlining all the features and attributes laptops have nowadays, and which are important in making your decision. The second is simply titled "10 questions to ask when buying a computer", detailing the purchasing process and the questions you should ask the seller before committing to a deal.

Bear in mind that there might be a Microsoft angle in the first document (i.e., stirring you to buy a Windows supporting laptop), but it does contain quite a good review of the laptop-purchasing decision-making process.

I've uploaded both documents to my SkyDrive to ensure they remain available (don't know what a SkyDrive is? Read this).

Saturday, November 22, 2008

Why Did I Return My New Laptop - Part II

A couple of months back, I bought and returned a Dell XPS 1330. But I still needed a laptop, so I waited until October 14th, when Apple announced the new MacBook.

I was a bit disappointed at first with the specs and the price, but convinced myself that since I'm getting 2 laptops (a Mac and a PC - see my Bootcamp review) for the price of one, and since I love the Mac OS, this will be a worthy investment.

Another reason to purchase the MacBook was my interest in developing iPhone applications - an option Apple currently limits to Macs running Leopard (remember that the next time someone accuses Microsoft at tying people to certain hardware and operating systems).

A few things that annoyed me, even before I bought the machine, were:
  • No way to connect the laptop to an external monitor, without purchasing an adapter. Unlike the rest of the world, that supports VGA, DVI and even HDMI, Apple chose to go with the least-used DisplayPort technology, claiming it's the best digital display protocol out there. I'm not a vieophile, so I won't argue this point, but please show me a single monitor or TV (outside of Apple monitors) supporting this technology. This is just another way to get people to buy additional adapters.
  • No media card reader. Yes, I can use a USB adapter. Yes, they only cost $5-10 nowadays. But why would I want to lug another piece of equipment, when most laptops provide a reader out of the box? And tie a USB port in the process? Which brings me to the next point...
  • Only 2 USB ports. I may be alone in this, but when at home, I use 3-4 USB devices with my current laptop.
  • No PC card reader, which means I'd have had to call Verizon Wireless and replace my cellular modem from a PC card to a USB version. See previous point.
But, as mentioned, I convinced myself that I can get over those minor issues. I paid $2000 at the Apple online store, for the following configuration:
  • 13.3" glossy LED screen
  • A P8600 Centrino 2 2.4GHz processor
  • 250GB HD
  • 256MB ATI graphics card
  • 4GB DDR3 RAM
  • AppleCare for 3 years
  • A ViewPort to VGA adapter
After more than a week, the laptop arrived (having followed a convoluted trail: Shanghai-Alaska-Missouri-Oakland-my home). I managed to use it for 2-3 hours and started configuring it, before hitting my first issue: the DVD reader refused to read several DVDs (software and movies) that my old Mac Mini read without a problem. It then refused to eject some of the discs.

This has been an issue for me ever since I used my first Mac with a CD reader, more than 10 years ago (I believe it was a Mac Quadra): there is no hardware eject button for discs. If the OS refuses to eject a disc, you're screwed. Even the pin hole, allowing for a manual ejection, that existed in earlier models, disappeared. I had to reboot the machine to get my disc back.

The second issue I had was that the Mac promptly went to sleep as soon as the lid was closed. I'm used to assigning my laptop with lengthy tasks, closing the lid - to conserve energy - and leaving it be. Similarly, when I listen to music, I don't like being distracted by the screen's glare. Imagine my surprise, when I tried burning a DVD (a task that was estimated at 32 minutes), closed the lid, saw all lights go dark, and when I opened the lid, the burning operation failed and the DVD turned to a coaster.

I took a long time looking for the option to stop the machine from going to sleep when the lid closes. I tried the Apple sites and researched online forums, and found nothing but frustrated users asking the same question. I later found out Apple did this by design: due to many complaints about the Mac heating up during use, they found an original way to cool it - turn it off when you're not looking. They've also placed the fan hole at the back of the body, directly underneath the screen, so it's blocked when the lid is closed - chalk that to bad design.

The only solution offered, came in the form of a freeware utility called InsomniaX, that forces the Mac to stay awake (use it at your own discretion - this may damage your Mac)

The next day, I went to the Apple store, to try and solve my DVD issue, and ran into another - at the hands of the support engineer (Apple calls them "Geniuses"), my Mac refused to shut down, and later refused to start up, until the battery was removed and re-inserted.

The genius (no offense meant - he was an extremely nice and helpful guy) claimed I had a problem with the power distribution, that may explain all the issues I've suffered. He suggested I replace the machine, since I had it less than 24 hours at that point. He also mentioned that this was the price I paid for being an early adopter. Indeed.
I remember the old "Don't install a Microsoft Windows OS until the first service pack is out" joke. Guess you can add Apple to this conclusion.

Since I purchased my Mac online, the guy at the Apple store couldn't replace it for me. The guy on the Apple support line (again, nice and helpful), informed me that I need to send back the Mac and that it'll take 10 days for a new one to arrive - counted from the day they receive the old Mac.

At this point, I really didn't have a lot of patience and just returned the Mac and got my money back. I brooded for 24 hours or so over the fact almost every laptop I touch misbehaves. Am I technologically cursed? Do I emit an electromagnetic laptop-destroying field? Or is it just bad luck?

But I still need a laptop. So once I'm back from Europe I'm going to try going back to a ThinkPad. I owned one for 2 years and have nothing but good things to say about it. Next stop then, is the ThinkPad T400. Wish me luck, I really don't want to write another post in this series smile

PS: still looking for a way to develop iPhone apps. Guess I'll have to upgrade my Mac Mini to Leopard...

Thursday, November 13, 2008

Gadget Review - iRobot Roomba

Being a lazy (traveling tech) guy, I never look forward to cleaning my apartment. The part I hate the most (other than doing the windows, laundry, restroom etc.) is vacuuming the carpet. [I hate carpets in general, but could not find a single apartment complex that offers a unit without them, save for the high end ones (those can charge a $1000/month premium for "wooden floors")].
So I rejoiced when I heard that there are people far lazier than me who invented a vacuuming robot.

The Roomba from iRobot is a small robot that will travel the length and breadth of your apartment, happily vacuuming its way around furniture and other debris thrown on your floor. It's smart enough to navigate obstacles, and it'll cover all open floor, in a circuitous way. Looking at it go, I'm often reminded of the A* algorithm, used by game makers to allow AI characters to navigate a maze.


Roomba travels to the living room

The Roomba operates on its own: click the big "Clean" button, and it's good for 2.5 hours. When it finishes covering the apartment, or if it runs out of battery while running, it will go back to its nest to recharge.


Roomba returns home to recharge

You can either activate the Roomba manually, or program a schedule. If you're too lazy to bend and click the button, it even has a remote (I didn't even bother unpacking it - there's a limit to my laziness wink).

The Roomba is smart enough to navigate around obstacles and avoid stairs (so if you want it to clean a multi-level house, you have to carry it to the next level, or get one Roomba per floor wink). To prevent it from entering certain areas, you can set "virtual barriers" - a small device emitting infrared beams that create a "no-go" zone for the robot. I have 3 of those and I never needed them so far.

One story I do have to share: one day, I ordered my Roomba to clean the house before leaving for work. When I came back, it wasn't at its nest. I looked around the house, and then started crawling under every bed and table - and couldn't find it. I stared thinking "why would anyone break in, steal the Roomba and leave the rest of my stuff alone?". I then went to the last room in the house, the bathroom. The door was closed (and one trick the Roomba can't perform is reach for the handle to let itself in smile). Just as I was about to leave, I saw the Roomba under the bathroom carpet, which was thrown in the corner. Apparently, I forgot to close the bathroom door. The Roomba wandered in, and hit the door from the inside, closing it. It then spent its battery banging around the bathroom, trying to get out and back to its nest. Finally, it crawled under the carpet and "died" cry. Luckily, all it needed was a recharge. And now, I close the bathroom door prior to leaving the house smile.

The internet is full of proud Roomba users, who anthropomorph their beloved robot, give it names and even dress it up. There is also a community of hackers that add functionality (such as WiFi control and a web cam), allowing for really remote control of the Roomba and turning it into a virtual guard dog.

Pricewise, the Roomba is definitely a commodity. Don't be fooled by the MSRP, no one pays $500 for it. Amazon has all kinds of sales on it. One day, they sold it for $400, the day after they had one of their flash deals and I got the 580 model for $319 + a set of extra brushes and virtual barriers (that costs a $100 on it's own). From time to time, it even features on Woot.com (although they usually sell the older, less reliable models).

But for lazy people like me, the Roomba is a boon. It does what it promises, vacuuming and cleaning the entire house. It has its own personality - having it around is like having a small puppy, sans the noise and mess. And finally, it makes me feel a bit closer to Asimov's futuristic view of humanity and robots. I give it two thumbs up - it's definitely one of my most beloved gadgets.

Wednesday, November 5, 2008

Cautionary Tales of Science

I just heard one of my all-time favorite authors, Michael Crichton, just died after a bout with cancer.

I loved Crichton's books ever since I read The Andromeda Strain as a child. Despite it being written before i was born, it still read as current and futuristic at the same time.

Chriton's books always managed to get the right mix of suspense, science and opinions thrilling the reader thrilled, while educating him at the same time. When you finish a Crichton novel, you always feel like you've learned something new about the world.

Mixing cautionary tales of science running amok (Jurassic Park and Next), with his own political and personal agenda (A State of Fear - a book that reads from beginning to end like an anti global-warming manifesto, to the point the story devolves into long, tedious speeches), Crichton always managed to grab my interest. I found myself reading his books with a pad (and later a laptop), jotting down names and facts for further reading.

Despite my disappointment with A State of Fear, the epilogue of the book stands on its own, and should be read by every scientist out there. Using some samples from history, Crichton demonstartes what happens to the scientific community, and indeed, the entire human race, when everyone decide to blindly follow a single voice in science, to the exclusion of all other voices.

I'll miss Crichton's unique writing style. Here's my Michael Crichton must-read list:
  1. The Andromeda Strain - his first, and one of his best, dealing with a possible alien pandemic
  2. Jurassic Park - watch Spielberg for the effects, read Crichton for the science
  3. Sphere - what IS real?
  4. Congo - just a great adventure book
  5. Next - read my review
  6. Airframe: a Novel - what lengths would a corporation go to, to hide its culpability in an accident?

Sunday, November 2, 2008

How to Add a Web Slice your Blog

One of the cool new features in IE8 is called Web Slices. It allows users to subscribe to a part (slice) of a web page, and get notified when it changes.

Think about the following scenario: suppose your only reason browse to CNN's homepage to get the Dow index. Rather than point you browser at the address, load te entire page every time (including countless images, flash files etc.) and hit F5 every couple of seconds, you mark the area of the page that interests you, the browser adds a live link to it in the links bar, it prompts you when the contents of the slice change and actually shows you the content.

So, on the last day of PDC I took a hands-on lab on Web Slices and found out they're extremely easy to implement - just 3 HTML tags needed. I planned to add one experimental slice to the Twitter area of my blog (lower left side on the home page).

The way a Web Slice manifests itself in IE8 is by showing a green frame and icon when you hover over the area where the slice is:


Clicking the green icon, adds a live bookmark to your toolbar, that shows the slice's content when pressed:
Another nice feature is a drop-down menu that shows you all subscribable content on a page, including slices and RSS feeds - so you don't have to hunt them down by hovering over the page:
So, here's what I thought I needed to do: go to the Twitter Page element, add 3 HTML tags and publish. Here's the HTML code of the Twitter element:
<div id="twitter_div">
<ul id="twitter_update_list"></ul>
<a id="twitter-link" style="display:block;text-align:right;"
href="http://twitter.com/TravelTechGuy">follow me on Twitter</a>
<script src="http://twitter.com/javascripts/blogger.js"
type="text/javascript"></script>
<script src="http://twitter.com/statuses/user_timeline
/TravelTechGuy.json?callback=twitterCallback2&count=5"
type="text/javascript"></script>
</div>
To make this into a Web Slice, you need to do the following:
  1. Surround this section with a <div> with a class="hslice"
  2. Add another element (a span or an h1 or h2) with class="entry-title" - to give the slice its name
  3. Surround the rest of the content with a <div> (or a <span>) with class="entry-content"
And that's all. Wrong!

Problem 1
As you can clearly see, this HTML invokes a JSON call, using JScript to the Twitter site to get content for the list. That means that if you subscribe to the slice as is, you'll get an empty page. For security reasons, a slice will not execute the code for you, to prevent a security attack known as XSS (Cross Site Scripting).

It took me awhile to realize that I have to serve the slice with the content already in it - so I actually had to serve the user another HTML page. Luckily, Microsoft prepared for such an eventuality, and you can define your content provider to be another HTML page, by including an invisible a element, with a rel="entry-content":

<a style="display:none;" href="http://www.travelingtechguy.com/forblog/twitter.html"
rel="entry-content"></a>


The user will never see the tag - it's there for IE's sake.

Problem 2
Since the page was disconnected, none of my pages design carried over, and the element looked like a simple bullet list. I had to dig through my Blogger template and copy some CSS over to that page (Blogger doesn't make it easy to copy its CSS, since it's full of macros and variables, that serve the GUI template editor). I finally was able to de-reference all variables and get a similar design.

Problem 3
The Web Slice is displayed in a square by IE8 - and you cannot control its dimensions. Think of trying to show your page in an iframe of a certain size that you don't control. This resulted in a cut list - you could only see 2 items instead of 5, and they were cut at the edges.

I solved that by adding a scrollable div around the list (as you can see in the image above).

You can see the source of the page on my site.

So, it took longer than the 3 minutes I thought it would take - but now I know how to turn the rest of my elements to Web Slices. I know Microsoft has a list of sites that have already started implementing Web Slices and I hope more will take it up.

For the FireFox purists, rumors are that FF 3.1 will start support for Web Slices as well. In the meantime, enjoy my Twitter Slice and expect more in the future.

PS: showing HTML code in a post is such a hassle. You have to code the whole thing by hand (i.e. change every < to &lt;). Next time I'll just copy-paste an image of the code from my editor smile.