Well I installed the new 1 terabyte data drive into Bagheera (the art room computer) and copied the contents of the backup drive back over to it. When that was done I did another Unix diff on the two drives and when it all looked good I restarted Bagheera with the new drive in place. Because last time iTunes had given me the least amount of trouble, I started it up first. As it so happened, this time around it was iTunes that gave me the most trouble, but I eventually got past it.
When I first installed the secondary data drive into Bagheera, I moved my iTunes library over to it on the theory that it having it there would give it space to grow independently of the system drive. Replacing a system drive because you need more space is a bear of a chore, compared to replacing a drive that holds nothing but data. And anyway the iTunes music library is data, as opposed to iTunes itself which is an application, so it belonged on the data drive.
As I recall it, last time I did this I simply went into the iTunes preferences dialogue and re-pointed it to the Music folder on the data drive and everything worked again. This time when I brought Bagheera back up, iTunes had somehow convinced itself that its music library was now on the friggin’ backup drive and pointing it back to the new data drive did not convince it otherwise. How that happened I have no idea. In theory, the music library appeared in both places: the new data drive and the backup drive, which I had not dismounted when I rebooted Bagheera. My guess is the backup drive appeared in the search path first somehow, and iTunes ignored the new drive and automatically re-attached itself to the library on the backup drive. And I could not convince it to go get its music files from the new drive no matter what I did.
After a little digging around online I found out that you have to let iTunes copy its library over to a new drive itself…you can’t just copy it yourself and then point iTunes to the new location. So…first you point iTunes to the new location by going into Preferences and in the Advanced menu change the iTunes Music Folder location. Make sure you have "keep the folder organized" and "copy music into the music folder when adding it to the library" checked. Then you have to go to File -> Library -> Consolidate Library and iTunes will then copy all the music files from the old location to the new.
This was incredibly frustrating as I’d already copied the damn music files…but apparently iTunes now exerts more control over them then it used to…probably to strengthen the DRM technology, although Apple is said to be getting rid of all that soon. You can’t just copy them yourself and tell iTunes where they are now. You have to let iTunes do the copy. So I sat there and watched iTunes copy over every music file I’d already copied over but when it was done it was satisfied and I could play my music again.
Next I fired up Aperture expecting another hassle. See…I’d just replaced a drive is all. When I formatted the new drive I gave it the same volume name as the last one, which is "Bagheera_Data_1". So in theory all the files were in the same location pathwise. If IMAGE_123.tiff was located in /Volumes/Bagheera_Data_1/Photos/Digital/California_2007/IMAGE_123.tiff on the old drive, then on the new drive wouldn’t you know it, it’s located there too. Simple, no? But as I said before, Aperture (and apparently iTunes now) uses a hidden volume serial number to locate where files are, instead of just the volume name. So when I brought up Aperture last time with the new drive mounted it thought it was missing all its master image files, even though no, they were right where they always were, just on a new drive. Why Apple does it this way I have no idea but it’s goddamned frustrating.
And when Aperture came up so slowly that it seemed to have hung I thought for sure I was in trouble. But apparently the Aperture 2 has smarts enough built-in that when it sees its master file references all broken it goes and looks for them in the most logical places…like…oh…the same Unix pathspec as before. Wow…what a concept. But that was why it was so slow coming up apparently, because when it did come up it had found and re-attached all its master image files correctly.
Whew…
While all this was going on I decided to also start the process of migrating the Macs here at Casa del Garrett from OSX 10.4, otherwise known as "Tiger", to OSX 10.5, otherwise known as "Leopard". I decided to use Akela, the 12" G4 Powerbook, as my guinea pig. Akela has several devices installed on it, and some critical software like Photoshop (you are allowed to install one copy of Photoshop on a desktop computer and a laptop so long as both machines are yours). It also had the Wacom tablet installed on it too, for times when I went on a road trip and I wanted to be able keep on doing my cartoons on the road. I wanted to see if a straight system upgrade would break any of my critical applications and the Wacom or not.
I have two Macs here at Casa del Garrett: Akela and Bagheera. So I need two licenses for Leopard. But really, I only need one install disk. So I asked one of the nice Apple droids at the Apple Store at Towson Town Mall if I could buy two licenses on one install media. No, says she, not two…but you can buy a family pack of five licenses. Well, says I, I don’t need five, only two, so I reckon I’ll just buy two individual install discs. Oh, says she, but a family pack costs less then two individual install disks. What???
It’s true. One OSX 10.5 upgrade disc costs $130. A family pack license, which includes the install disk of course, costs $200. So buying five licenses, even though I only need two, saves me $60. Not bad, except I’m wasting three licenses…and before anybody asks, according to the license terms I can’t just give them to anyone who doesn’t actually live under my roof, unless they’re a family member off in school somewhere. But my nephew is running a Windows laptop (which I bought him), so he doesn’t need it. My niece will probably be running a Windows laptop too when it comes her turn. But I have to like Apple for making it cheaper to buy five licenses then two, when they could have just priced the family pack such that it was a deal only if you were going to buy three or more. It saved me $60 bucks.
I backed up Akela and tested the backup by booting off the backup drive before installing Leopard. If this was the only thing Apple did better then Microsoft I’d be running Apple products here at home all the same. Being able to recover from a system disk failure by booting off the backup drive is wonderful. You just can’t do that with Windows…the license branding scheme alone prevents it and Windows has always been funky in the way it uses special hidden files that you can’t copy to a backup drive while its running in order to operate. Unix like systems, which is what MacOS is these days, don’t do that to you. At some point I’d like to get something like that going on Mowgli, but booting off a USB drive on an Intel box is more problematical. I don’t think Mowgli’s current hardware allows it. On the Mac you can boot off of external Firewire drives, but at least on the PowerPC machines not off of a USB drive. I think you can on the new Intel based Macs though.
Installing Leopard on Akela turned out to be a very simple process, and so far everything looks good. I’ll give it a more thorough test tomorrow. In the meantime, everything is still looking good on Bagheera. Since Bagheera is so important to my art room work, I’m going to work with it for a couple weeks I think, before proceeding on with my plan, which is to upgrade Bagheera’s system drive and then upgrade it to Leopard. The current system drive on Bagheera is only 75 gig and I’m up against the line on it. 300 gig drives are selling at Best Buy for around $60, so I may just buy one of those and install it when I’m convinced the data drive upgrade didn’t break anything. One thing at a time.
One reason I started this blog once upon a time, was as a way of journaling. I hadn’t kept a diary since I was a teenager, and I thought it would be useful to have a journal I could reference from time to time. I note here, that back in March of 2007 I wrote a series of posts about upgrading Bagheera’s (my art room Mac) data drive from 200 gig to 500.
This was back when my Big Scan Project (wherein I am running all the film I’ve ever shot through the Uber nice Nikon Coolscan 5000 ED film scanner I bought back in December of 2006) was starting to really fill Bagheera’s data drive. The plan was that, hopefully, the price of disk storage would keep going down, so rather then buy several terribytes of hard disk space upfront I would just replace the data drive when it got full and hopefully the next step up would be affordable by then.
I further note in my blog archives that I bought Bagheera back in October of 2004, from the local Apple store in the Towson Town Mall. Bagheera as I recall didn’t have a second hard drive in it when I bought it. I added the 2 gig drive at a later date but I don’t see it noted in my blog posts when I installed it, just a first reference to it on November 2005. I started the Big Scan in December of 2006. By March of 2007 I needed to upgrade the 200 gig drive to 500. It’s January 2009, and the 500 gig drive is almost full. Time to buy more.
I was going to go for 2 terabytes but I couldn’t find 2 locally and my favorite online computer parts store, Directron, didn’t have any for sale, surprisingly, because I know I saw them selling 2 terabyte drives a couple months ago when I was noticing I was getting close to the line on the 500. But I am up against the line now and I have some projects I can’t do without more disk space so I went to Best Buy and bought a 1 terrabyte Western Digital SATA for Bagheera.
It’s down in the art room now. Some things have changed since the last time I did this. For one thing, I’m using SuperDuper as my backup software now, not Retrospect. Retrospect put everything into one great big backup file with a companion index file…similar to the way a lot of backup programs work. SuperDuper simply makes a straight file copy of everything onto whatever other drive you point it to, making the backup drive’s file system identical to the one you’re backing up. What I like about that is that if my data drive fails for whatever reason, I can just plug in the backup drive (after making a safety copy) and I can get right back to work. Or I can just pull off files directly from the backup drive if and when I need to revert back to a previous copy of something.
But Retrospect had one feature that SuperDuper does not and that’s it does a verification pass after it’s done backing up. So I’m currently doing a Unix diff command on the two drives to make sure everything on the backup drive is good before I pull the old data drive out.
I use two Western Digital USB/Firewire external drives for my backups and keep one in my desk at work and the other here and rotate them weekly. I do this with Bagheera’s system drive too. The nice thing about Apple computers is that you can make a bootable copy of your system drive onto a Firewire external drive and if your system drive ever fails you can boot directly off the backup drive. I love that…it gives you much peace of mind.
The other thing that’s changed is I’m running Aperture 2 now. In my previous post I wrote about how Aperature made upgrading the data drive difficult because it would not use the volume name to get the path back to its referenced image files. So after I copied over my image library back over to the new drive, Aperture complained that it couldn’t find its reference files and I had to manually "reattach" the masters. Hopefully Aperture 2 does all that a little more elegantly now. We’ll see.
So right now Bagheera is doing a ‘diff’ on the data drive and the backup drive. I expect that to take most of the rest of the night. When that’s done, if the diff found no problems, I’ll start doing the drive swap. After I get that taken care of, the plan is to upgrade Bagheera’s system drive and upgrade to Mac OSX 1.5 (Leopard). I’m still at Tiger, largely because I am not sure how well Leopard will run on the only single processor G5 Mac Pro Apple ever made.
It took two months shy of two years to use up the 300 gig of extra space I bought back in 2007, but I’ve been spotty about sticking to the Big Scan. If I’d run Bagheera and the scanner constantly it would have probably taken less time, but I have other things I want to use Bagheera for besides scanning in old (and new) film, so the Big Scan is an off and on project.
Sometime this coming year I may well purchase a more powerful Mac Pro for the art room. Four years is pretty old in computer years, and already I’m seeing Mac software out there that won’t run on Tiger. But upgrading Bagheera is budget and work status dependent. If I’m looking for another job by the end of this year, like a lot of other Americans already are, I may be worried about more then how slow my art room Mac is getting. If I do it though, I’ll make the old machine into a dedicated film scanner and then just keep running film through it.
Some of you may have read the news items about Microsoft’s Zune player freezing up on its users last December 31st. The problem it turned out, was in a bit of software that calculates how many days since January 1st the current date is. I’ve no idea why the Zune’s software needed to do that, but it isn’t important to what I’m about to show you. I have fun doing the work I do, in a techno geeky kinda way, and I want to share a bit of that fun with you.
The code that caused that particular bug was leaked out into the wild. Here’s the relevant fragment:
while (days > 365)
{
if (IsLeapYear(year))
{
if (days > 366)
{
days -= 366;
year += 1;
}
}
else
{
days -= 365;
year += 1;
}
}
Don’t panic…it’s just code. Code is to a computer program what a chart is to music. It’s not so much the program, as instructions for how to create the program. It’s more human readable then the machine language code microprocessors digest, although that might seem a tad hard to believe if you’re seeing code here for the first time. It’s a kind of highly structured syntax that is precise enough to describe, step-by-step, a series of actions the computer needs to perform. That series of actions is called an ‘algorithm’.
An algorithm is a series of steps needed to perform a specific task in a specific time. So for example, consider the steps necessary to bake a single cake. Those steps constitute an algorithm because they perform a specific task in a specific time. The task is baking a cake. When the cake is baked you are done. Note that a specific time isn’t necessarily a specific amount of time. The important thing is there is an end to it somewhere. The steps needed for a cake factory to make ‘cakes’ is not an algorithm because there is no defined end to the task of baking cakes. It could be one cake or many. But you can repeat the algorithm for baking a single cake as many times as you like, once you have it defined.
Writing computer programs is essentially the art of creating well defined, simple, straightforward algorithms. If you’ve got a head for that, the rest is a matter of mastering a particular programming language or more. The code fragment above is in a language called C++. Never mind why it’s called that and not something more warm and friendly like Fred or Ethel. Computer geeks are weird like that.
This code fragment is from a larger bit of code that tries to determine the number of years the current year is from the year 1980, and the number of days since January 1st. Never mind for now Why. Just focus on the task: to get the number of years since 1980 and the number of days since January 1st.
The function this code fragment lives in receives the current date in the form of the number of days since January 1, 1980. This seems odd, but it is how computers tell time. At the most basic level, they are merely counting fractions of seconds from a given starting point. Consider that a mechanical wrist watch (like the one I wear) tells the time only by counting ticks. If you know how many ticks there are in a second, then you can compute the second, the minute, and the hour by counting the number of ticks and that is just what a mechanical wrist watch does…mechanically. Computers do pretty much the same thing electronically, but their ticks are much smaller, and far more precise.
We know there are 365 days in a normal year. So if we get a number that’s, let’s say 10220, we might just divide that by 365 to get the number of years that have passed. But the added factor of having leap years makes it less simple then that.
Now let me try to make some sense of that C++ code for you. As I said, it’s a highly structured syntax that precisely describes the steps a computer program must perform. Just ignore the brackets…they’re just there to mark off specific sections of the code. Don’t worry about them.
At the beginning of the code you see the word "while". This is a Keyword in the C and C++ languages and it denotes the start of a program Loop. A loop is a series of steps that are repeated. They are very useful for repeating a series of steps over and over as just a few lines of code instead of one or more lines repeated exactly for every time the steps need to be executed. If, say, you had to do something a hundred times you would write the code to loop through the same steps a hundred times, rather then writing the same steps a hundred times in the code. If the steps change, then that’s a hundred changes you need to make. If you’ve written it as a loop you only need to change it once.
Loops are also helpful if you don’t know ahead of time how many times you might have to repeat a particular set of steps. In the cake baking example for instance, you might have to stir some ingredients until they are mixed properly. If you were coding that, you’d write it as a loop where you stir the mix, and then test to see if it’s mixed well enough to stop. If not, stir once more. Test…stir…test…stir… And so on until the the test says you can stop stirring now.
That test is important. It tells you when you can stop stirring. For now just hold this thought: it is important to have a way out of a loop.
The keyword "while" has a test enclosed in the parenthesis next to it: (days > 365). This test compares the variable "days" against a literal value of 366. Think of a variable as a post office box with a name on it, and something inside. In this case, the variable is named "days" and it holds a number that represents a given number of days. This variable is set elsewhere in the code and we don’t need to know why or how at the moment. We’re just looking at what this one bit of code does.
The ">" symbol is an Operator in the C and C++ languages, which means "greater then" If "days" is "greater then" 365 then the next lines of code are executed. This test is at the beginning of the loop, which means the condition is tested first before any of the code in the loop is executed. If the test is true, the loop is entered. If not, the loop is never entered. So the loop takes a value for a number of days at its very beginning. If that value is greater then 365, the rest of the loop executes. If it isn’t, the loop is skipped over. Think of it as saying "while the value stored in "days" is greater then 365, do the following…"
So we enter the body of the loop. The next line is "if (IsLeapYear(year))" Let me unpack that. The word "if" is another keyword, and it denotes a logical test. You are testing if something is, or is not true. The part in the parenthesis is the thing you are testing. IsLeapYear(year) is a function call with its own set of parenthesis. Functions are bits of code that return a value. This particular function returns a value of either true or false. We don’t need to see how this particular works for this example…just that it will return either "true" or "false" back to our "if" test. The word "year" in its parenthesis is another variable and it holds a number that represents the number of years since 1980.
So we are passing in to the function IsLeapYear a number, and it returns either true or false depending on whether or not the number we give it, translates into a leap year. Remember, we’re counting the number of years since 1980. Lets say we make "year" equal to 3. We could as easily write the call as "IsLeapYear(3)", and it would return false, since 1980 plus three years is 1983 which was not a leap year.
Okay…still with me?
An "if" test tests a condition, and the lines of code following the test are either executed or not depending on whether or not the test passed or failed. If IsLeapYear(year) returns true, then the next line is executed.
The next line is another "if" test. if (days > 366). This test compares the variable "days" against a literal value of 366. It is like the test at the beginning of the loop. If "days" is "greater then" 366 then the next lines of code are executed.
These next lines actually do something. the line "days -= 366" means "take the value that’s stored in the variable named "days", subtract 366 from it and store the result back in that variable. The line "year += 1" means "add one to the value stored in the variable named year and put the result back in that variable".
A couple brackets on down (I told you to just ignore them) there is the word "else" It is another keyword that works with the keyword "if" to denote lines of code to be executed if the if test above fails. So in other words, if IsLeapYear(year) returns false, then the steps following the word "else" are performed. Think of the whole thing as "if it’s a leap year do this…if it isn’t (else) do that…" In this case, that is "subtract 365 from the value of the variable named days", and "add one to the value of the variable named year".
So…still with me? This is what the code is doing. The algorithm it embodies is this:
1) Repeat the following for as long as the value of "days" is greater then 365:
2) Check to see if "year" is a leap year.
3) If it is a leap year, check to see if the value of "days" is greater then 366.
4) If it is, then subtract 366 from "days" and add 1 to the value of "year"
5) If "year" isn’t a leap year, then subtract 365 from "days" and add 1 to the value of "year"
There is our loop. Basically, it is taking a number that is the number of days since 1980, and subtracting 365 days for every normal year, 366 for every leap year, and when it finishes you should have a count of the number of years since 1980, and what’s left over is the number of days since January 1st. Simple…no?
The bug in it is subtle. Let’s run through it for December 31, 2007. Lets say we have run this loop for a while and now we have a value of 26 in "year". The value of "days" is 730.
1) The value of "days" is greater then 365…so we do the loop again.
2) Check to see if "year" is a leap year. 26 years since 1980 is 2006. 2006 isn’t a leap year. So the code following the "else" keyword is executed.
3) We subtract 365 from "days" and add 1 to the value of "year"
4) We’re at the beginning of our loop again. The value of "days" is 365. 365 is not greater then 365. So the condition for continuing the loop is now false. So now we can exit the loop.
5) The end values are, year = 27, days = 365.
Okay. That works. But now let’s try it for December 31, 2008. Lets say we have run this loop for a while and now we have a value of 27 in "year". The value of "days" is 731.
1) The value of "days" is greater then 365…so we do the loop again.
2) Check to see if "year" is a leap year. 27 years since 1980 is 2007. 2007 isn’t a leap year. So the code following the "else" keyword is executed.
3) We subtract 365 from "days" and add 1 to the value of "year"
4) We’re at the beginning of our loop again. The value of "days" is 366. 366 is greater then 365. So the condition for continuing the loop is still true.
5) Check to see if "year" is a leap year. 2008 is a leap year. So the code following the "if" keyword is executed.
6) Check to see if the value of "days" is greater then 366. 366 isn’t greater then 366, it’s equal to 366…so the code following the "if" keyword is not executed.
7) We’re at the beginning of our loop again. The value of "days" is still 366 and the value of year is still 28. 366 is greater then 365. So the condition for continuing the loop is still true.
10) Check to see if "year" is a leap year. The value of year wasn’t changed by the last run through the loop. It is still 2008 and 2008 isn’t a leap year. So the code following the "if" keyword is executed.
(can you see this thing starting to run away now…?)
11) Check to see if the value of "days" is greater then 366. 366 isn’t greater then 366, it’s equal to 366…so the code following the "if" keyword is not executed.
12) We’re at the beginning of the loop again…
And that’s where we will keep on ending up until the heat death of the universe, or the Zune’s battery dies, whichever comes first. This is why the Zunes all locked up on December 31st, 2008. The code works fine during a normal year, and on every day but the last day of a leap year. But on the last day of a leap year that loop will run indefinitely, because there is no way out of it on that one day.
Since this code was leaked out into the wild, everybody who does this for a living has an opinion on how to write that algorithm better. There is a kind of fine art and a pure pleasure to some of us in crafting tight, simple, elegant algorithms and some folks have their own deeply held religious beliefs on how to do it best. I haven’t had time to really wrap my head around what this algorithm is doing, but for kicks and grins I might try to write a better version of it myself later. It’s kinda fun to take something like this and try to craft something simple and clean and so logically pure it’s beautiful just to look at. But I’m in a testing and deployment phase of the project I’m one at work now though, and what went through my head when I saw this was they obviously didn’t test how it behaved during a leap year.
This is the world I live and work in. This is what programming is and what programmer’s do. We build these tight little algorithms and embody them in computer code that hopefully allows you to get things done. Except when they don’t.
[Edited a tad to explain the test at the start of the loop, and make some of the rest of it clearer…]
An old friend from grade school, who lives in Pennsylvania these days, has offered to take any of the computer hardware and software I don’t want anymore off my hands. Techno geek children tend to befriend one another at an early age. I am grateful. I dislike the thought of tossing all this stuff away, even if it’s to a recycling bin. With all the hazardous materials in electronics these days, I doubt much of it really gets recycled anyway, so much as disposed of. He’s an ingenious tinkerer whose grade school accomplishments included building a pirate radio station and hacking the school sound system. I’m sure he can put my boxes of old computer hardware to good, possibly even nefarious use. "You have violated Robot’s Rules of Order and will be asked to leave the future, immediately."
I have another friend in Kansas who I suspect would have loved to take all this stuff off my hands too, but I don’t see myself taking a drive to Kansas until after winter has left the plains, and this stuff is too heavy and bulky to just box up and ship. He should remind me to look in the computer closet for anything I’m not using though, before I take my next road trip west.
Isn’t it…interesting…how we’re suddenly seeing all these stories in the IT press about how Wonderful Windows Vista version 2…er…Windows version 7…will be. I mean…since it’s not going to be released for another year and a half yet at least. They don’t even have a beta candidate yet, let alone a product that reviewers can try, and already it’s…So Wonderful!
In other cases, vaporware may be announced by companies in order to damage the development or marketability of more real products by competitors, sometimes in combination with a campaign of fear, uncertainty and doubt; if customers believe the hype, they may put off purchasing the real product to wait for its vaporous rival to mature.
And who knows…they might even be able to get away with it one more time. Especially if Steve Jobs keeps jerking around Apple third party developers. On the other hand… DOT-NET.
The Amazing Wonderful Reinvention Of The Telephone…And Its Discontents…
So…I’m switching back to my little Sony Clie’. For the PIM functionality. For now anyway…
The iPhone is nice…don’t get me wrong. It’s a great phone, even if AT&T isn’t a great carrier…(Hi Tico!). And its touchscreen interface is a work of engineering art. Absolutely magnificent. But Apple seems to be completely clueless when it comes to Personal Information Management software, and why it’s an important part of a ‘smartphone’
Fifteen months after the iPhone was first introduced and we Still don’t have notepad synchronization. This is pathetic. You see complaints about this all over the web and yet Apple seems completely indifferent. This should have been a no-brainer. A No Brainer. But it looks like not only will we not get note synchronization any time soon, but when we do only Leopard users will have it. On the other hand. I can sync my Palm notes on my Macs, my Windows boxes (were I to still be using them regularly) and on Linux via any of several methods. kPilot and jPilot seem to work very well, though setting them up is, Linux like, only easy if you don’t mind dinking around in /dev.
No native ToDo lists. Let alone ToDo list synchronization. Yes…you can get third party ToDo apps. But Apple’s insistence on keeping third party apps away from the sync mechanism means you can’t sync third party ToDo lists (or third party notepads) directly to your computer.
Security: In the Palm you can apply different security levels to individual records in the contact list, the calendar, the notepad and the ToDo list. This means you don’t have to lock down the entire device, just individual records according to their sensitivity. A record can be password protected and additionally it can be hidden, which means it doesn’t even show up in the list until you unhide it. What this meant was, when I was using my Kyocera Smart Phone (which was a Palm device) I didn’t have to lock the phone. Which meant that whenever I wanted to use it I just flipped it open. I could use the phone or access any of my unsecured Palm data instantly, without having to key in a password. But the iPhone won’t let me do that. It’s security is either all or nothing. So I have to lock down the entire goddamned phone so my senstive information is kept secure. Which means every time I want to use the phone I have to enter my password and unlock it, even if all I want to do is make a phone call.
Categories. In the Palm I can assign contacts and other data to various categories for sorting purposes. Can’t do that in Apple’s simplistic contact manager. The Apple calendar application now allows you to choose between a ‘work’ calendar and a ‘home’ calendar. Whee!
Cut and Paste. Palm’s had it since forever. The iPhone still doesn’t. Wait…what..?
vCards. The iPhone doesn’t. People’s jaws still drop when I tell them this. Amazingly…idiotically…Apple’s MacOS contact manager app does vCards nicely. So why the hell doesn’t the iPhone?
My little Sony Clie’ is five year old technology and it runs rings around the iPhone when it comes to basic PIM fucntionality. There are additionally dozens of little annoyances to the iPhone that are unique to it, and which have not been fixed since its introduction. Crap like applications that don’t switch into landscape mode although they logically should. The damn quirky touch-keyboard would be a lot easier to use if it existed in landscape mode more often. I’ll say this though, fumble-fingering with the iPhone’s touch keyboard has actually made me a hell of a lot faster with the Palm’s stylus keyboard. I’m still no better then I ever was with Palm’s own quirky ‘graffiti’ text entry…but I’m lot’s better with the stylus now. Tons better. It’s like my fingers have achieved a whole new level of dexterity.
Where the iPhone excels and the Palm doesn’t is as an entertainment device. But that’s largely because of it’s third party apps. I have the Pandora app loaded on my iPhone and it is a joy. I’d never really cared to use the iPhone as a music player until I put Pandora on it. My iPod is a third generation one with no wireless connectivity. I often have it on my belt though, because it can hold my entire digital music library and the iPhone can’t. But with Pandora for the iPhone I can listen to my Pandora stations while working around the house or at work. I love it.
I strongly doubt there will ever be a Pandora for Palm devices, although Palm application development isn’t exactly stagnant either. I can get really nice media players for the Palm that handle many different media formats including even the open source ogg format. No Apple device I think its safe to say, will ever natively support ogg. The media industry absolutely hates the open source movement, and Steve is being his usual jackass control freak self about what he’ll let third party developers do on his hardware.
Which is in the end, probably the biggest reason I have now for dumping my iPhone. I still have until this coming July on my AT&T contract (like everyone else who bought iPhones when they first came out…). That gives me plenty of time to wait and see what happens with the Google Android platform. My hunch is by the time my contract is done, Android will have it’s own Pandora and who knows what else. Maybe even something comparable to the Palm desktop that’ll sync across multiple platforms including Linux.
But for now it’s back to the simple Palm device for my personal data. It’s five year old technology and it beats the pants off of Steve’s reinvention of the telephone. Nice work there Steve. I can sync the contact book with the iPhone…awkwardly…by way of vCards. The iPhone itself doesn’t do vCards, but I can export a vCard from the Palm Desktop to the MacOS contact book and from there to the iPhone. And back the other way if need be. But…sheesh… I don’t really need calendar synchonization on the iPhone if I’m going to be using my Clie’ again.
Now I need to go find a nice belt case for the Clie’… Since I’m going to be wearing it again probably for the next eight months or so…
Tech columnist Robert X. Cringely once wrote that "If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get one million miles to the gallon, and explode once a year, killing everyone inside." I don’t know about costing one hundred dollars, but the explode once a year killing everyone inside part is on the way…
Authorities have blamed a faulty onboard computer system for last week’s mid-flight incident on a Qantas flight to Perth.
The Australian Transport Safety Bureau (ATSB) said incorrect information from the faulty computer triggered a series of alarms and then prompted the Airbus A330’s flight control computers to put the jet into a 197-metre nosedive.
At least 51 passengers and crew were hurt, many suffering broken bones and spinal injuries, when the plane carrying 313 people from Singapore to Perth climbed suddenly before plunging downwards on October 7.
The plane was cruising at 37,000 feet when a fault in the air data inertial reference system caused the autopilot to disconnect.
But even with the autopilot off, the plane’s flight control computers still command key controls in order to protect the jet from dangerous conditions, such as stalling, the ATSB said.
"About two minutes after the initial fault, (the air data inertial reference unit) generated very high, random and incorrect values for the aircraft’s angle of attack," the ATSB said in a statement.
"These very high, random and incorrect values of the angle attack led to the flight control computers commanding a nose-down aircraft movement, which resulted in the aircraft pitching down to a maximum of about 8.5 degrees."
The pilots quickly regained control of the jet, issued a mayday emergency call and requested an emergency landing at the Learmonth air force base in remote Western Australia where passengers received medical treatment.
"The crew’s timely response led to the recovery of the aircraft trajectory within seconds. During the recovery the maximum altitude loss was 650 foot," the ATSB said.
The plane’s French-based manufacturer has issued an advisory on the problem and will also issue special operational engineering bulletins to airlines that fly A330s and A340s fitted with the same air data computer, the ATSB said.
Oh…your aircraft needs our $230,000.00 per seat service upgrade patch 3b_06-A…
Like that Airbus, my Mercedes-Benz is fly by wire. Seriously. There is no direct linkage between the accelerator pedal and the engine. I push down on the pedal and the onboard computer decides what to do, depending on how fast I’m already going, what gear I’m in, whether I’m driving up or down an incline, the road conditions as judged by the traction control system and I’m sure a zillion other variables it’s evaluating from one instant to the next.
The gear shifter is also more of an electronic control then a direct linkage, although it will lock the transmission in Park. I can press a button next to it to choose between two pre-programmed automatic shifting patterns, "Sport" and "Comfort". And it learns your driving habits and adjusts the pre-programmed shift patterns accordingly. There is a fairly complex set of steps you have to perform to reset the transmission program back to the factory default if you don’t like how its adjusted itself to the way you drive.
Mostly, while driving Traveler, I don’t really notice any of this. The car responds to me very sure and certain. I was driving in a sudden torrent of rain several weeks ago and never, Never have I felt so confident in the car I was driving, so solid and sure was the feel I had for the road while the skies had opened up all around me. I could barely see more then a few feet in any direction at times and the traffic was slowing to a crawl, but the car felt absolutely tight and sure. I never felt the slightest bit of skittishness or uncertainty in the car. The Mercedes was just There.
It’s easy to forget driving that car, that I am not nearly as much in control of it as I was my 1973 Ford Pinto. It just feels like I have more control. It’s a way better engineered automobile. It is much more a driver’s car then anything I have ever owned. But there is a computer, that’s trying to be as invisible as possible, between me and the car. This technology has been working its way into modern automobiles for quite some time now. You may already be driving a car with an adaptive transmission. Fly-by-wire is in the new 2008 Accords, so I was told when I went shopping last year. It’s probably in a lot of other cars by now too. The new hybrids would pretty much have to be fly-by-wire.
It’s nothing to be afraid of, so much as Aware of. All technology can fail. It’s just that computer technology is scary because it works invisibly. You can see the failure mode of an engine. You can take it apart and look at it and see where it broke and reconstruct the sequence of events from all the broken pieces. Software is like a ghost in the machine, running spirit-like inside hardware with no moving parts, just a lot of silent, miniature black monoliths on a green circuit board. When a program crashes, it vanishes like the soul from a corpse. You may know the instructions it was executing at the time it crashed, but it’s unlikely you’ll still have access to the state the system was in just prior to the crash. You have to debug it with whatever state it was left in After the crash…assuming you can get that out of it…and whatever other traces of itself it left behind before it died. It may take days or weeks or months to figure out what it was doing in those final moments, and why the fuck it was doing it.
This is why most cars these days have "black boxes" in them…just like airplanes. For those cases when…you know…the whole thing just blows up…
Home Again Home Again Jiggity Jig…Good Evening J.R….
[Geek Alert!]
I just have to figure that Mowgli, my main workstation, hates me leaving it alone for very long. Every time I come back home from an extended trip it has to give me several hours of balk before it starts running again. I have no idea why, but it seems to be a combination of hardware and software issues that just scream in my face every time I come back home.
Mowgli has a strange keyboard issue, which may have something to do with the fact that I prefer typing on an IBM "M" series keyboard and that might be a tad old for the newer motherboards. I like the old IBMs so much I keep several spares here at Casa del Garrett, and use one at work too. The only theoretical drawback is there is no special ‘Windows’ key…but some of us don’t consider having hardware that doesn’t do Windows Only things a drawback. The problem I’m having is that occasionally the keyboard and motherboard get into a state that prevents Mowgli from starting up. I hit the power switch and nothing happens. So I have to unplug the keyboard, hit the front panel power switch, and when Mowgli turns on immediately turn off the power at the power supply, then turn the power supply switch back on and plug the keyboard back in, then hit the front panel power switch again. Then Mowgli will start. Note that if I plug the keyboard back in Before I turn the power supply switch back on Mowgli still won’t start back up. It all has to happen in just that particular sequence. I have no idea why this happens, but I suspect there is a strange bios thing going on between the new motherboard and the old IBM keyboard.
This time, when I went to Portland, I decided to just unplug the keyboard before I left. Fine. So I got back home and plugged in the keyboard and started Mowgli. Mowgli started up without a htich. Feeling satisfied with myself, I sat and watched it boot. Mowgli is currently running CentOS and when the GRUB boot loader came up it told me there were no kernels installed. What!???
You always have to give me shit when I come back home, don’t you? I have no idea what happened, other then I’d run Yum to update the system before I left for Portland and it all seemed to go fine, except I didn’t reboot to test the new kernel, I just shut down. I’ve done that before and it never bit me until now. Growl. So there’s GRUB cheerfully offering to boot "other", which was the only choice available, because it thought I didn’t have any Linux kernels installed. I entered the GRUB command line instead, to see if I could fix it from there.
I pointed root to the system drive and tried to read the GRUB config file and the menu files. GRUB kept insisting the files didn’t exist. Since I’d never used the GRUB command line before I wasn’t even sure I was using it correctly. I tried manually booting the kernel but since there is no way to get a directory listing from the GRUB command line I had no idea what it was named. Linux Kernels are named something like "vmlinuz-2-2.6.18-53.1.4.el5", with the version numbers obviously part of the filename. That’s not exactly easy to remember.
So I gave up on GRUB and re-booted with the CentOS install CD loaded. When the installer came up I entered "linux rescue" at the prompt. The rescue routine will try to find your installed kernels and mount one in /mnt/sysimage. It searched my hard drive and found the kernel I had there, mounted it, and gave me a prompt. I’d never had to use this before so it took me a little while to figure out I had to chroot to the newly mounted system drive before I could use it. Once I figured that out, I was able to go to the /boot directory on my system drive and try to figure out what had happened.
The kernel was there, but when I went into the grub directory, the menu.lst file didn’t have it listed. There was only the entry for "other". So I had to manually re-add the entry for the kernel I had (which I could now see the name of). Fortunately I had a previous menu.lst file printed out and I was able to use that as a template for adding the entry for my kernel. Once I did that, I rebooted again and then everything came up normally.
Welcome home Bruce. Damn. Even cats don’t give you the attitude some computers do…
…and the OSCON Open Source Developer’s Conference therein. This’ll be my fifth year at this particular conference and I really enjoy the company of so many fellow computer revolutionaries. My all time favorite T-Shirt slogan is from last year’s: In A World Without Fences, Who Needs Gates?
I’m flying out from Baltimore first thing tomorrow, with neighbors and Brinks looking after Casa del Garrett while I’m gone. And I’ll be real busy at the conference so posting may be a tad infrequent until I get back. I’ll try to post some photos of the scenery out there when I can. Some of it is just lovely. And Portland’s not bad either…
When will Microsoft finally grasp that consumers and vendors have some trust issues with the company?
They don’t care. Customer trust was never in the business plan. The plan was always to have a monopoly on the desktop. When people have no choice but to buy from you it doesn’t matter if they trust you or not.
Bill doesn’t grok trust. He’s made himself a life where he doesn’t have to.
Microsoft Is Bill Gates. Bill Gates Is Microsoft. Understand Now?
Don Reisinger over at c/Net poses a question, regarding the company that made vaporware and FUD two of the central pillars of its business model…
I’m not going to sit here and say that every company should be admitting its failures for every problem with products, but can’t Microsoft finally admit that Vista is a major blunder that has cost the company far too much? Can’t Microsoft finally open its mouth just once and tell us what we should really expect for the future and promise us a new operating system that won’t commit the same mistakes Vista has committed?
No.
This has been another episode of Simple Answers To Simple Questions…
SecurityBob writes "Debian package maintainers tend to very often modify the source code of the package they are maintaining so that it better fits into the distribution itself. However, most of the time, their changes are not sent back to upstream for validation, which might cause some tension between upstream developers and Debian packagers. Today, a critical security advisory has been released: a Debian packager modified the source code of OpenSSL back in 2006 so as to remove the seeding of OpenSSL random number generator, which in turns makes cryptographic key material generated on a Debian system guessable. The solution? Upgrade OpenSSL and re-generate all your SSH and SSL keys. This problem not only affects Debian, but also all its derivatives, such as Ubuntu."
At last year’s Open Source Conference in Portland (OSCON), I was made aware of a wee dust-up between the Apache project and "some" Linux distros. Specifically, the Apache folks were complaining that certain Linux Distributions routinely modified their product, sticking libraries and configuration files wherever they damn well pleased because that was how, in their opinion, things should work.
Now…the beauty of Linux and open source in general is that it is open and community driven and anyone can do whatever they damn well please with it. I hope it always stays that way, Microsoft’s backdoor attempts to stifle it notwithstanding. But the other side of that coin is that if you modify someone else’s software to work with yours now it’s your responsibility. The Apache folks were complaining that they could not help end users configure their servers when they themselves didn’t know how the software worked anymore, particularly when it came to configuring it. That’s not a trivial complaint coming from a project that powers the majority of web servers. Most of what you see on the World Wide Web was fed to you by an Apache server, running on either Linux or Unix.
Well, the Debian folks pretty well knew who the Apache folks were talking about and sure as the sun rises they started pointing their fingers back at Apache’s big monolithic configuration file, and other in-their-righteous-opinion Apache shortcomings. Begun, the clone wars have…
My feeling is, if you change it you own it. At least in the sense of now you have to support it. At minimum you ought to run your "fixes’ by the people who are maintaining the software you are "correcting". They might actually appreciate what you’ve done and incorporate the changes into their build. Or they might tell you why you shouldn’t do that. Sometimes you should listen to that. But from what I hear, listening isn’t one of the Debian project’s best points.
I keep hearing about how wonderful Ubuntu is, and knowing that it’s a Debian family distro I’ve been highly reluctant to bother with it. I get along fine in the Red Hat family. For the past couple years I’ve been happily running CentOS here at Casa del Garrett and I admit I would like it a lot better if it came bundled with better multi-media support, but on the other hand adding packages to it isn’t hard because everything is pretty much where everyone expects it to be. Yes, I have to configure a lot of it in its own specific way, as opposed to having a nice common configuration system to do it for me. If you want consistency, open source isn’t going to work for you. Try Apple. Seriously. I run Macs here at Casa del Garrett too and damned if I haven’t been impressed by how well integrated everything is on a Mac. I do all my artwork on Bagheera, my art room G5 tower, because it just gets out of my way when I’m in a creative mood and lets me create. I love that. On the other hand, it’s like that because Steve won’t let software developers color outside the lines. Just ask anyone who ever unlocked an iPhone. That’s why I’m still running Linux here too.
A remote desktop access feature found in some Macintoshes is being credited with leading police to two suspects in the burglary of an apartment in New York.
In addition to flat-screen TVs, iPods, and DVDs, the thieves made off with two laptop computers, one of which belonged to Kait Duplaga, an Apple store employee, according to a report in the New York Times on Saturday. While police in White Plains, N.Y., were coming up empty with their investigation, Duplaga learned that her computer was being used on the Internet and turned on the Back to My Mac feature installed on her Mac from another Mac, according to the report.
The feature allowed Duplaga to see immediately how the computer was being used at the time, as well as operate it remotely. Recalling that she had a camera installed on the computer, the fast-thinking Duplaga snapped images of one of the burglary suspects before he realized what was happening, according to the Times. Duplaga showed the image to friends who recognized the suspect as someone who attended a party at the apartment.
The photo lead police to arrest two suspects on Wednesday and recover nearly all the stolen property.
"It doesn’t get much better than their bringing us a picture of the guy actually using the stolen property," Daniel Jackson, the deputy commissioner of public safety in White Plains, told the newspaper. "It certainly made our job easier."
The Back to My Mac feature runs on Leopard-based Macintoshes and requires a $99 subscription to the .Mac online service.
Apple doesn’t want folks running it’s OS and most of its software applications on non-Apple hardware. iTunes being the only exception I know of, and that probably only because they wanted to take the online music marketplace away from Bill. Off the top of my head I know of no other Apple software products that run on any other platform, but MacOS…and MacOS doesn’t run on any other hardware but Apple’s.
They’re very strict about that. Very strict. Very. Very.
In using Apple Software Update to slip his Safari browser onto millions of Windows PCs, Steve Jobs didn’t just undermine "the security of the whole Web". He’s made a mockery of end user licensing agreements.
As spotted by our Italian friends at setteB.IT, Apple’s Safari license says that users are permitted to install the browser on no more than "a single Apple-labeled computer at a time." This means that if you install Safari for Windows on a Windows PC, you’re violating the license.
There’s an adorable little screen capture of the license agreement on The Register’s site. They say one of the hallmarks of cult behavior is an all consuming paranoia of the outside world…
A leaked Dell presentation accused Microsoft of making late changes to Windows Vista which forced key hardware partners to "limp out with issues" when the OS launched last year.
"Late OS code changes broke drivers and applications, forcing key commodities to miss launch or limp out with issues," said one slide in a Dell presentation dated March 25, 2007, about two months after Vista’s launch at retail and availability on new PCs.
The criticism was just one of many under the heading ‘What did not go well?’
Others ranged from knocks against Vista’s Windows Anytime Upgrade scheme, an in-place upgrade option, to several slams on ‘Windows Vista Capable’, the marketing programme that targeted PC buyers shopping for machines in the months leading up to Vista’s debut.
Funny how all the problems with Vista can be boiled down to two things: Microsoft’s tyrannical software license branding/activation scheme, and Vista’s locking down of the hardware to enforce film and music industry anti-piracy schemes.
In an email to CEO Steve Ballmer written less than three weeks after he took over the post, Sinofsky [chief of Windows development] spelled out his three reasons why Vista stumbled out the gate.
"No one really believed we would ever ship so they didn’t start the work until very late in 2006," Sinofsky said. "This led to the lack of availability [of device drivers]."
Okay…that’s bullshit. The reason why hardware vendors got started late, was because they kept having to start over. That’s right there in Sinofsky’s points two and three:
Next on his list: Changes to the operating systems’ video and audio infrastructure. "Massive changes in the underpinnings for video and audio really led to a poor experience at RTM," he said. "This change led to incompatibilities. For example, you don’t get Aero with an XP driver, but your card might not (ever) have a Vista driver."
Finally, said Sinofsky, other changes in Vista blocked Windows XP drivers altogether. "This is across the board for printers, scanners, WAN, accessories and so on. Many of the associated applets don’t run within the constraints of the security model or the new video/audio driver models."
The hardware driver issues arise from Microsoft’s changes to the hardware API to prevent anyone from tapping a pure digital signal and thereby bypassing Vista’s DRM. Microsoft has gone as far as to demand that video and audio circuitry not provide any way for a signal to be tapped directly from the hardware, as a requirement for Vista certification.
The problems with Anytime Upgrade revolved around the fact that you had to have your original install disks so the software could verify that you had a non-pirated copy of Windows XP before it would install Vista. A lot of folks didn’t get those from the hardware vendors. Others had trouble with the validation process that resulted in their computers being rendered inoperable. Some were told that their license was invalid, even though they had legitimately purchased it, and then found they could not downgrade back to XP. For many it was a nightmare.
This is what happens when you put profit over reliability. Software license branding, digital rights management, all add complexity to operating system software, which needs to be as straightforward and elegantly designed as possible for the sake of reliability. But the only thing Microsoft and Hollywood give a good goddamn about in terms of reliability is the sound of the cash register. Microsoft became a multi-billion dollar company distributing software that could be easily copied, and for them to get pissed off enough about piracy that they’re willing to break your computer to make sure it doesn’t have an unlicensed copy of Windows running on it is on its face more a measure of their corporate greed then how bad the problem of software piracy may have been. Windows piracy couldn’t have been so bad if honest software purchasers made Bill Gates a billionaire fifty-six times over could it? Unless of course, even that wasn’t enough money for him.
This is why I’m running Linux at home, and a smattering of Apple Macs. Yes, iTunes has DRM embedded in it too, but Apple seems not as paranoid about it as Redmond. And Linux is open source, so I don’t have to worry that if I have a hardware failure my OS won’t work anymore when I swap out whatever broke with something new. Amazon.Com is selling DRM free music now that I can play on both iTunes and my Linux boxes just fine. I don’t need Microsoft anymore in my home anymore. And the fact is that Linux is a mature enough technology now that most folks, who just use their computers for email, text editing, maybe a little checkbook balancing and web surfing would have no trouble using it at all.
For the moment, it looks like most people are standing pat on XP, or even older versions of Windows. They don’t see the need to upgrade, especially when Microsoft keeps making the upgrade path more and more onerous. Vista is costly not only for the software itself but the hardware you have to buy to run it smoothly. It didn’t have to be this way. Microsoft could have had a hit on their hands if they’d produced Vista for their customers, and not their stockholders and Hollywood media moguls. Greed and paranoia about piracy are killing the music industry. It’ll do the same to the big software companies too if they want it to.
According to the emails made public last week, Microsoft will apply the lessons it learned with Vista the next time around. "There is really nothing we can do in the short term," noted Joan Kalkman, the general manager of OEM and embedded worldwide marketing, in a message written a week after Sinofsky’s. "In the long term we have worked hard to establish and have committed to an OEM Theme for Windows 7 planning.
Committed to an OEM Theme for Windows 7 planning. Committed to an OEM Theme for Windows 7 planning. Committed to an OEM Theme for Windows 7 planning. Take that apart and try to figure out what it means. Go ahead. I give Microsoft another decade before it completely implodes. Nobody cares about their goddamned slogans and buzzwords anymore. It all sounded so cool back when Microsoft was a bunch of bratty young computer geeks running rings around stogy old IBM, but it just doesn’t fucking cut it now.
It was never about the promise of the personal computer was it Bill? It was never about taking technology out of the hands of big corporations and their mammoth data processing centers and putting it on people’s desktops and giving them control over their own data and empowering them. It was all about money wasn’t it Bill? Software was never about empowering people, it was just a way for you to become rich. And now you’re even bigger then IBM, stodgier, and way more paranoid, and all the little computer geek children are writing Open Source software now that anyone can copy and modify and use however they want to and running Linux and BSD and they don’t give a shit about Microsoft. And they’re wearing t-shirts that say, In a world without fences, who needs Gates?
This blog is powered by WordPress and is hosted at Winters Web Works, who also did some custom design work (Thanks!). Some embedded content was created with the help of The Gimp. I proof with Google Chrome on either Windows, Linux or MacOS depending on which machine I happen to be running at the time.