You are the site counterth visitor to this site

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 05, 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 02, 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/TTGuy">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
/TTGuy.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://gvider.googlepages.com/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 bulleted 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 Google Pages 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.

Thursday, October 30, 2008

PDC 08 - Day 4

Final day of the conference. My day actually started at 3am. One of the giveaways at the show was a bouncy rubber ball that emits shrill sounds while bouncing. Sadly, this specimen decided to start chirping at that odd hour. I was startled awake and it took me several minutes to locate the source of the noise. This thing has no 'off' button. I thought about hurling it out of my window, but 21st floor rooms' windows cannot be opened (although it does bring to mind an interesting question in physics: if you drop a bouncy ball from the 21st floor, how high does it jump back? surprised). Finally, I resorted to throwing it to a trashcan outside my room.

I attended 2 lectures today: one on RESTful web services (how to switch from SOAP and other heavy web services protocols to REST), and the other on extending Visual Studio.

The second lecture had some eye-opening samples on how VS can be extended - even in the current version. Several things we can do today:

  1. Download (or develop and upload) extensions from the Visual Studio Gallery.

  2. Build scripts and automation into VS, using DTE.

  3. Distribute applications that look like the VS UI, using VS Shell.
Then came the VS 10 samples. Since VS 10 is written entirely in WPF, it is extensible by nature:
  1. The Start Page can be configured and reprogrammed.

  2. Extensions can be developed and distributed by just copying assemblies around.

  3. You can even manipulate the way VS shows code, or comments - the sky's the limit.
Finally, I took a hands-on lab on WebSlices, a new IE8 feature. I liked it so much that I'm now at work on incorporating it into my blog (stay tuned).

I actually got to the airport ahead of schedule and managed to catch an earlier flight home. I just received an email from Microsoft informing me that all lectures and material have been uploaded to MicrosoftPDC.com - go check them out. I was also invited to next year's PDC (November 17th '09 - mark your calendars).

Final observations:
  1. Many people were blogging and twittering from the show. Some just typing, others snapping pictures or filming. All in all, I assume many people around the world got the news in near real-time. The internet is amazing.

  2. There were far less presenters this year (did I hear someone in the crowd say "recession"?). I couldn't understand the business models of some of the presenters - why put so much money in designing UI controls that Microsoft provides for free?

  3. Over the last 2 years, in Tech-Ed and in online education videos, developers and presenters used Windows XP and 2003 to demo. No more. This time ALL presenters used Vista (or 7) on their presentation machines. Guess Microsoft finally started forcing people to eat their own dog food (although one Microsoft developer I spoke to confessed that internally they are using proprietary bug tracking system and source control system, rather than using VSTS and SourceSafe, like they want us to).
That's all for this PDC. I'm now hard at play... I mean work at testing the new operating system, frameworks and demos. Software development is fun again... smile

PDC 08 - Day 3

Another day at the PDC. Today's keynote introduced some of the projects Microsoft Research Labs (read my review from awhile back). Some, like a new generation of Surface computer that can read hand gestures made above the table, and can project content on other surfaces - look nice, but not really practical yet. Others, like Mesh and Worldwide Telescope look more useful.

I've attended some sessions and pariticpated in a couple of hands on labs. And then I got an hour to play on a Surface, by myself. Throughout the conference, there were several Surface machines. But they were always surounded by people. Some were playing the Scavenger Hunt game, others using musical instruments, or sharing photos. While I can't immediately see private applications for it (and the price point is still high for the private sector), I do see some uses in the commercial sector - as a planning tool, or as a fun tool (it's already used in some casinos).
Oh yes, I actually got to see one crash. It runs Vista Business as its OS smile.

I believe touch interaction is the future. Windows 7 supports it out of the box, and for $1500 you can now buy a HP TouchSmart computer that contains a touchscreen, with Windows 7 drivers. Those HPs were used throughout the show for demos and hands-on labs. In fact, this is one of those "adult moments" where I have to convince myself that although this looks cool, i don't really need it smile.

Tuesday, October 28, 2008

PDC 08 - Day 2

Today I finally got what I came here for: the official announcement of Windows 7. It was presented by Steven Sinofsky, senior VP at Microsoft.

UI-wise, 7 looks like Vista, with some UI tweaks (I started writing them down, but found this post that does a nicer job, with pictures to boot - ah, cross-posting is fun smile).
I personally liked the following features:

  1. Toned down UAC
  2. Ability to create and mount a virtual disk from the operating system - and even boot from it!
    I'm sure VMWare are NOT thrilled about this particular feature
  3. "Libraries" allowing better collection and search of data across disks and computers
  4. Better device handling
  5. Much smaller footprint - it was booted off an EEE PC, 1Ghz CPU, 1Gb of RAM - and there was till half a Gb left


  6. "Homegroup" - Auto-discovery for network. 15 years after Windows 3.1 for Workgroups, Microsoft manages to get networks right
  7. Customizable shutdown button - to solve a major Vista annoyance
  8. You now control the popups in the taskbar from a central location
Touch features were less interesting to me - touch screens have been around for more than 10 years and other than some particular uses, they are not widespread.

As for timeline, we got the pre-beta today (on a nice 160Gb WD hard disk - along with tons of downloads, demos and virtual images). Beta 1 is coming at the beginning of 2009. RTM was not announced - this time Microsoft will work on ity until ready.

Sinofsky mentioned the bad rep that Vista received, including in competing commercials (I assume he meant Apple's "I'm a Mac - I'm a PC") and while everyone laughed, he looked visibly hurt. He claimed Microsoft has learned from the critisism and will provide a better product in 7 as a result. He called to developers to start developing 64-bit code.


I was disappointed to see they still have versions of the OS, similar to Vista ("Premium", "Ultimate" etc.). Still, I can't wait to get home and install it.

We then got a taste of VS 2010 and .Net 4.0. Many features, tying into Azure, WPF, Silverlight etc. The entire VStudio IDE is built in WPF and is therefore exstensible by the user (the demo showed how you can show comments as bubbles rather than text, and how a bug number in a comment turns to a link to the bug in the tracking system).

We then got a whiff of the new Office Web Applications. I was blown away. using WPF and Silverlight, you can now get an exact replica of all Office apps in your browser. What's more, several people can work on the same document at the same time (from desktops or the web and the content gets updated in real time.

Don Box than regaled the crowd with a quick smart session using the new .Net services to expose some of his computer's content to the web using Azure and other new techniques.

I attended some interesting sessions today - some too technical to discuss. But one new feature in 7, called "Troubleshooting packages" is worth waiting for. Common problems can be solved automatically, using a series of scripted tasks. The demo showed how a movie played without the sound. The sound trobleshoot package was double-clicked, and the script started the audio service (which was turned off on purpose) and un-muted the speakers. This opens a lot of opportunities.

Amongst the toys and swag we received from presenters, I like one the most. It's a device with an accelorometer, a light detector and several other features - all accessible through an SDK provided on a CD. I wonder what uses for it I'll come up with...

The day ended with a major Halloween party at Universal Studios. The park was closed to the public. Smoke machines worked overtime (it was impossible to see in some sections) and tens of actors dressed as monster, zombies and clowns with saws (whare is that from?) harassed the people. I'm not into horror films, but it was fun.