AppleInsider, please be gentle. Stop playing with my heart! I’ve only been waiting for a new computer for many months now. Refusing to get burned by buying a new Mac after it has been out for awhile, I waited and waited for a new revamp to the Mac Pro line. Who knew it would go without a redesign for such an abnormally long time?
Well, now I have been feeling like I’d rather have an iMac because the price/performance ratio just doesn’t seem worth it anymore, even for a power user. With huge iMac screen sizes and affordable external RAID devices for fast hard drive access, my last motivating reasons for a Mac Pro have died. But the iMacs have been hanging around without a redesign for abnormally long as well.
And now you say they might finally get a redesign, and what’s more, it might happen in the summer and I don’t even have to wait until MacWorld in January?
Why do I continue to let the rumor sites play with my emotions? I am very excited.
Both Linux and Mac OS X have zip, gzip, and bzip2 command-line tools. What about Windows? If you're trying to do some scripting to automate some archiving or backup, and you want it to be a classic, WinZip-compatible .zip file, how can you do it?
WinZip offers a WinZip Command Line Add-on free of charge--if you already own a copy of WinZip Pro!
You shouldn't have to pay for command-line zip. And you don't have to. Enter Info-ZIP. This workgroup has been maintaining free, portable, high-quality versions of zip and unzip. They have plenty of command-line arguments like you would expect from an open source project.
So, with this project's executables in your system path, you can write up a batch file that is executed as a Windows scheduled task. Maybe something like this:
DOS:
-
zip -q -S -r c:pathMyBackup.zip c:data -i@include.lst
This will zip the c:data directory. Arguments: -q to do it quietly, -S to include system files, -r to recurse into subdirectories. Finally, use -i to point to a file that indicates the exact files to include, by means of a carriage return delimited list.
You can alternatively use -x to specify only which files should be excluded. Perhaps something like this:
DOS:
-
zip -q -S -r c:pathMyBackup.zip c:data -x@exclude.lst
The command-line flags are all optional, of course. This tool is certainly a must-have for the Windows scripter.
No iMacs? No iPhone SDK? No Vista-killing secret feature in Leopard? No Parallels-killing built-in virtualization in Leopard?
Yes, these are all expectations--properly or improperly nurtured by the rumor sites--that didn't come to fruition. But Steve's reality distortion field can combat such disappointments to a degree. Yet, even when Steve said how great certain features were, he was met by silence except for the sound of crickets in the distance. The field has been disrupted, but how?
The Joy of Tech has the scientific answer! That's great. 
I recently used the basic principles in Validation Hints For Your Form by askthecssguy.com for a password management application. I didn't notice any problems on my speedy development machine, but when I pushed the app to some beta testers, I noticed some slower-than-expected performance in IE. As it turns out, the problem was due to the JavaScript that would update an element's class, triggered by the onkeyup event of an input field. It was slow enough to even be disruptive to the experience.
Here is an example of a function that could duplicate the slowdown in IE. It could be attached to the onkeyup event of the username field. It will provide immediate feedback by altering the class name of the field's container when criteria are met (in this case, the value being greater than 7 characters in length). Your CSS and HTML can then determine exactly what that feedback will look like.
JavaScript:
-
function checkUsername(whatYouTyped)
-
{
-
var fieldset = whatYouTyped.parentNode;
-
var txt = whatYouTyped.value;
-
if (txt.length> 7) fieldset.className = "welldone";
-
else fieldset.className = "";
-
}
As it turns out, the slowdown in IE is due to a general slowdown that IE experiences anytime the class name of the element is changed. It may be unnoticeable if it happens once, but when it happens on every key press, it is noticeable. The slowdown only occurs, however, when the class name is changed, not when the value is referenced. So the easy solution is to compare the existing value to the value you want to set, and only assign the class name if it is different.
You might change the function above to look something like this.
JavaScript:
-
function checkUsername(whatYouTyped)
-
{
-
var fieldset = whatYouTyped.parentNode;
-
var txt = whatYouTyped.value;
-
var newClassName = "";
-
if (txt.length> 7) newClassName = "welldone";
-
if( fieldset.className != newClassName )
-
fieldset.className = newClassName;
-
}
This will theoretically improve performance in all browsers, although it is relatively moot in Firefox, as it doesn't experience the same level of slowdown. But for IE, this tweak in your code will make a noticeable speed improvement.