Multitouch Demonstrations

First, watch this amazing video. It will spark your imagination as you see the fantasy from movies like Minority Report become potential reality:

Then, watch this followup demonstration, by the same engineer, which blows away the first demonstration.

This technology is obviously too expensive right now, but it exists and it is coming!

Tech Support in the Middle Ages

A friend of mine forwarded this great video:

You know, by the end of the video, the comparison to a book is so simplistic, I really was wondering just what it is that makes it so difficult to understand how a computer can store our information..

Tips for Drive Striping Your Mac

The Mac Pro is a great Mac candidate for drive striping, being that it has four internal drive bays. What is drive striping? Imagine if you had two pencils and were capable of writing with both hands at the same time. Can you imagine how much faster you could write things down? This is effectively what drive striping does for your Mac: You can give it two hard drives, and it will treat them like one big drive; anytime it has to write something, it will write to both drives at the same time, which means it can get the job done theoretically twice as fast. Striping drives can significantly decrease the time it takes to complete hard drive intensive tasks, like video processing, especially when it is done on machines with faster processors like the Mac Pro. Think about it: With all that processing speed, one of your biggest bottlenecks can become the hard drive.

Apple has simple instructions on how to set up driving striping on a Mac. No additional hardware or software is needed, except the extra drives, of course, to accomplish this.

In a perfect scenario, you should stripe two identical drives. You can stripe two differently-sized drives, but the striping will use “the lowest common denominator”. In other words, If you had a 160GB and a 250GB, when you stripe them, the 250GB only uses the first 160GB, and the resulting volume would be 160GB+160GB=320GB.

One approach you could take is to keep the factory-installed hard drive, purchase two new and identical drives, and stripe them. The factory-installed drive remains as a separate startup volume, and the two additional drives are striped together as your big, fast volume (e.g. 500GB if you have two 250GB drives, 1TB if you have two 500GB drives).

Since the Mac Pro has 4 hard drive bays, you would still have one drive bay for later expansion. At that later date when you decide to expand, a couple actions you could take are: (1) Get rid of the factory-installed drive and buy two more drives and have those two striped together, or (2) Buy a big drive that will be assigned as a Time Machine backup drive to use with Leopard when it comes out.

There are benefits to having the startup volume be a striped volume, but the biggest benefits are in storing large data on those drives, like video, photos, and audio, for manipulation in iMovie, iDVD, and so on.

It is important to note, however, that having a striped volume increases your risk of lost data by a factor of how many drives you have striped together. When your data is on one drive, you risk losing that data if that drive ever fails. When you now have a striped volume with two drives, if either drive ever fails, your data is lost. You can stripe 3 or 4 drives together for even FASTER data writing, but then obviously there’s an even greater chance of data loss. The more drives you have, the higher statistical probability that one of those drives will eventually die, and everything on the volume that the dead drive was a part of will be lost, because data on a striped volume is spread across all the drives.

As long as you are protecting yourself with a good, regular backup plan (especially with Time Machine when Leopard arrives), the added speed is certainly worth it.

A Better Way to Handle CSS Issues in IE

All web developers are familiar with the need to tweak their CSS so that it will look presentable in both IE and other more standards-compliant browsers. Many people have declared, some more infamously than others, that people should boycott IE, and have proceeded to develop designs that are standards-compliant but IE-unfriendly. I feel that this is foolish; IE is still the browser of choice by most non-geek web surfers, and unless you're developing in a controlled environment where you can declare the browser to be used, you really should code for any popular browser, and even then, it's just good practice to write clean code that works everywhere.

Alas, I digress. The point is that IE isn't going anywhere for now, and it is a pain sometimes to figure out how to write CSS that renders as close to identical as possible between IE and other browsers like Firefox. There are several sites out there that endeavor to explain the IE bugs and, when possible, provide workarounds.

Sure, I could just alter the CSS to look right in IE, but if I'm not careful, that "fix" then breaks the code in Firefox! So we've come up with hacks to have CSS that other browsers will see but IE ignores. I don't know about you, but I'm tired of trying to understand and remember these tricks for satiating IE.

Welcome to conditional comments in IE. This is yet another IE-specific feature that we can actually use to our advantage to level the playing field.

Conditional comments are just what they sound like: HTML comments. But these comments are coded in such a way that effectively have a conditional statement in them, and any HTML output within the comments will only be included (by IE) if the condition is true. Here is an example.

<!--[if IE 6]>
    <p>I'm running IE 6.</p>
<![endif]-->

As you can see, any non-IE browser will just ignore all the content, since it's really one large comment. But IE recognizes the conditional logic inside the comment and renders the content accordingly.

Here's an example. This box will have a message if you're on IE, and it will be blank if you're in any other browser:

If you wanted, you could use this technique to inject HTML elements specifically for IE.

Yeah. If you want a maintenance nightmare. Do not sprinkle conditional comments in your code.

Rather than having a CSS file littered with IE fixes (or just accepting the variances between IE and Firefox), I would much rather have a single "clean" stylesheet file that is then augmented by an IE-only stylesheet, loaded by IE and ignored by all other browsers via the conditional comments feature.

So, perhaps you might have some code like this in your header:

<link rel="stylesheet" href="site.css" />
<!--[if IE]><link rel="stylesheet" href="ie.css" /><![endif]-->

There is still a very real danger here. You don't want to fall into the tendency to write intolerant CSS that needs a lot of "cleanup" to look good in both browsers. Work hard to make your CSS as compatible as possible, and leave the ie.css file exclusively for the rare cases where you could not resolve an inconsistency in IE. When you're done, your ie.css file should be really small, if you require it at all.

Having said that, however, I think this is a graceful solution. You don't sacrifice the consistency of your HTML nor your CSS, and your only extra work is the tweaking done in your IE stylesheet. Other solutions like Targeting IE Using Conditional Comments and Just One Stylesheet over at PositionIsEverything.net recommend adding an IE-specific div tag around your content, which would enable you to have a single stylesheet and to not just include IE-specific styles but also exclude certain styles from IE. Unless you have some CSS that you just can't tweak for IE and you have to exclude it, I definitely prefer the simpler approach of just including a secondary, corrective stylesheet and leaving the HTML alone. But that's just the purist in me.

  Theme Brought to you by Directory Journal and Elegant Directory.