Friday, September 17, 2010

The nightmare scenario

What do you do when your primary computer dies?

I'm sure for many people a feeling of panic sets in. All of the files. Is there a recent backup somewhere? The dread of reinstalling all of the software and reconfiguring the settings. Oh no, what about the usernames and passwords for all of the mail accounts and website logins?

If you're prepared, there is no need to panic.

In fact, it's hard not to smile as the system does it's magic.

I'll explain...

My trusty MacBook Pro (early 2008 edition) started behaving erratically a couple of days ago. I took it to the Apple store, and the friendly Apple Genius prescribed a replacement logic board as a fix. It will take a couple of days. That MacBook went everywhere with me. My digital life is on that computer. What will I do in the meantime?

Step one. I created a user account for myself on my daughter's MacBook Pro. Step two. After logging in to her computer, I logged into MobileMe from the System Preferences panel and checked some settings:


A couple of minutes later, all of my setting had synced in. Launching mail started retrieving my messages. All 563 of my contacts are there. My calendar started repopulating itself. Within the hour, my new account began to feel like home.

Step three. I'm tempted to say, 'there is no step three'. In reality, there's still a bit of configuration remaining, and a few programs I'll need to install to be productive on my borrowed machine for a few days. But, I can't help but smile because of how painless MobileMe made the transition. That, and knowing that I have an up-to-date time machine backup of my entire machine at home, just in case the worst happens.

Still, it's an evolving, learning experience. I use (and really like) 1Password as a password manager. I do have it syncing with my Dropbox account, but before installing it I did need to reference some passwords using 1Password on my iPhone. A web-based tool like Lastpass might have made password management an access easier. Thankfully, I did enter many of my software serial numbers into 1Password, but some are in mailbox folders on my dead MacBook Pro. Overall, though, things are not as bad as they could have been.

So, are you prepared for a total system failure? How difficult would it be for you to get up and running if your primary computer suddenly died?

Saturday, April 10, 2010

No, Apple does not hate Adobe

What a week. First, the iPad is unleashed opon the waiting masses to great fanfare. Next, Apple teases us all with a glimpse under the tent flaps of iPhone OS4. Then, the blogosphere blows up with stories that Steve Jobs has gone mad, is a control freak, will lose the mobile market the same way Mac OS lost to Windows on the desktop, is supposed to screw himself, and that he kills babies. Ok, I made up the part about killing babies, but the rest are true, and couldn't be farther from how I see the story. Except for maybe the control freak part, but I'm ok with that. Let me explain.

The problem seems to be the revised (reviled?) text in the iPhone SDK. The part that tells developers they have to use Apple's tool chain, and only Apple's tool chain to build iPhone apps. Not tools like Adobe's upcoming CS5 Flash to iPhone cross compiler. The fact that Apple changed the wording in their developer agreement literally days before the release of CS5 is what has people's tempers rising. How could Apple do this to Adobe? Steve must really hate Adobe! That was dirty!

Uh, no. I wonder if Adobe perhaps ever went to Apple, to maybe check if this sort of thing would be acceptable, or not, before creating that tool in CS5? It's not as if Apple formerly supported Adobe development on the iPhone and suddenly pulled a fast one on Adobe by kneecapping them with the new developer agreement language. The writing has been on the multitouch screen of the iPhone since day one, in 2007, (no native development) and was emphasized in 2008 with OS2 (no interpreters—Java, no emulators—game/console engines, and no FLASH), and re-iterated time and again after OS3 and the iPad unveiling (no FLASH—ever. It's buggy, and slow, and a resource hog). We all knew this. Apple, Adobe, and even all the people who keep wailing about the iPhone's lack of FLASH knew this.

I know. You're going to tell me how CS5 is different! CS5's latest trick isn't about getting native FLASH support, or a FLASH run-time into the iPhone. It's a FLASH tool that creates an iPhone program, which then gets compiled by Apple's own iPhone SDK into native iPhone code. Apple's prior developer agreement didn't specifically prohibit this. And, the process makes an actual iPhone program. What can possible be wrong with that? Why does Steve hate Adobe so?

He doesn't.

And, if you know enough about any of this to have an opinion on it, the iPhone may not be for you. It's for the other 98% of the people in the world (98%, 99%, 97%—who cares? I think it's close to the real number). The iPhone is designed for the vast majority of people who don't have clue about what makes computers tick, who understand the iPhone because it runs—well, appears to run—one app at a time (for now), and who are perfectly happy that this is finally the first phone that they've owned that they can actually use all the features of. And then, as a bonus, they can easily add their own apps from the App store to the iPhone to personalize it and make it better. Steve loves these regular people so much that he's deliberately blocking any attempt to subvert their experience. If you're reading this, it's probably not about you, it's about them.

Yes, Steve Jobs is a control freak. But, he's exercising his will for all the right reasons. People have come to expect the iPhone to work a certain way. If you've owned one for long enough, you know. Some app developers 'get it'. Their apps are simple, self explanatory, logical, and work the way you expect them to, without getting in the way of doing things. Other apps are literally a nightmare. By keeping the bar set high though, these nightmare app developers will eventually learn they have only two options: conform to the Apple way, or leave. Conforming to the Apple way means investing in learning the Apple tools, re-evaluating their user interface, and polishing the rough spots in their apps before re-submitting them to the store. The fact that developers who do this well can be richly rewarded only helps the process. Which reminds me:

Gee, do you hear any of the top app producers in the Apple ecosystem complaining about the new rule change? No! Why do you think not?

The programmers who already follow the rules understand that they will be able to produce the best quality apps for their users by sticking with Apple's tools. The developers complaining about the change were the ones hoping to make a quick buck porting some dreck from a previous FLASH existence to the iPhone with the minimum amount of effort in order to maximize their profit. I DON'T WANT THEIR APPS ON MY IPHONE! Good riddance.

But, you say, it won't be that bad. And you're probably right. Some developers will put a lot of effort into making their apps good, and would have made decent enough cross-platform programs given the chance. But decent is not good enough. The App Store already has enough decent programs, and gets thousands more added every day. I want the best iPhone programs, not just more programs. And the best programs can only be made with the best tools.

Now for the nerd angle. I program in assembly code for fun, and what Apple is doing is perfectly logical. The biggest issues to consider here are peoples' expectations of how the iPhone works, and the limitations of the processor and battery in a mobile device. Think about these factors for a moment.

It's not an iPhone app

Every once in a while, while travelling, we hit a well known and familiar burger joint. Why? Comfort. We know what to expect. No surprises. The software that makes the iPhone great is just like the software that made the GUI great, but different. No surprises. Mac or PC, you can tell me what's in the file menu of any program, right? On the iPhone, you want programs to look like they were made for an iPhone, and belong on an iPhone. No surprises. Ever run a Java JAR file? Works on Macs, PCs and even (gasp!) Linux, but it doesn't look like it belongs on any of them. Surprise! Given the choice, I'm sure you'd rather run an app that was made for your OS of choice. It's more familiar, and there are fewer surprises. Yes, games are exempt from this point. Remember, Steve wants the experience of the iPhone to always be familiar to all users. No surprises. No funky cross-platform look or operation. Every app should feel like an iPhone app.

Code efficiency

Every additional level of compilation is going to generate worse code. Ever hand code HTML? Ever look at FrontPage's HTML? Enough said. My first 'Hello World' program in C was 34k bytes long. My first 'Hello World' in Assembly code was under 200 bytes! It's also why I decided to learn assembly code before C. Less efficient code takes more memory space, uses more processor cycles to execute (and therefore also runs slower), and uses more battery power as a result. More is less, and less is more. Nowhere is that more true than in a memory- and power-constrained device like the iPhone. Apple understands this. Steve wants the magic to stay, not die out prematurely running from running inefficient code.

Too little, too late

Adobe CS5 will be released in days. I imagine they've been working on it for a while. Too bad it't targeted to work with the iPhone OS3 SDK. Apple just released beta OS4 tools. All of the code that CS5's FLASH to iPhone tool will make, will not be compatible with OS4 until Adobe updates CS5. When will that be? Dunno. Neither does a developer that starts to develop code using CS5. Let's say CS5 is not updated until after Apple mandates OS4 compliance in the App Store. Who does the developer get mad at? Apple for not approving an app that doesn't support the current OS? I don't think so! The reality is that any cross platform tool will be trying to chase Apple's moving target, on will only hit it sometimes.

If you want it done right...

If a developer has a fanatical obsession to create the best app in a particular category, they'll know how much work lays ahead of them. They'll have to have drive, determination, research, planning, and they'll want to be in total control of all aspects of their work. Why? Because they'll remember that time they were let down by someone who didn't quite produce what they wanted, or didn't get something done on time, or... well, you get the picture. It's happened to all of us. When you want to be absolutely sure that your work is going to be the best, you put all of your time and effort into it, and you don't rely on anyone else.

I think Apple feels the same way.

Apple doesn't hate Adobe, or anyone else for that matter. Apple has a fanatical focus on doing what they do, the way they do, to give iPhone users the best experience possible. They're not going to please all developers. They're not going to please all users. But I bet the 98% of average iPhone users, the 'regular people' who own an iPhone, will still be happy with it a year from now, because it's still as familiar as the day they bought it, but with newer and better software.

Wednesday, March 10, 2010

Technology as a two-way street

It's nice when technology works for you. It's even better when technology works because of you. Let me explain.

A few months ago I used my GPS to find the fastest way to the veterinarian's office from a different part of town than I am normally in. The vet's office is at one end of a street that formerly joined both another street and a set of highway on and off ramps in a weird five-way intersection. Now, to simplify the intersection and traffic flow, my vet's street has been disconnected from the rest of the streets at the intersection. The GPS did not know about this road change and tried to route me to my vet's office through the newly created green space at the end of the street. I knew the streets no longer connected, so I entered my vet's street one block from the intersection and got there just fine.

After arriving safely at the vet's and noticing that the GPS thought the streets still all joined at the intersection, I explored its menus and found a way to make modifications to the maps - TomTom calls the ability to send and receive user-made changes 'Map Share Technology'. I entered the change, and later that week synced the GPS with TomTom's servers.

Today, I needed to pick up some special food at the vet's, and once again used the GPS to get me there from an unusual direction. Surprise! The GPS was now fully aware of the changed intersection and directed me to the vet's the new way. I can't help but think that the change I submitted, perhaps in conjunction with some other people's, caused TomTom to revise their maps. And, if so, it goes to show that the power of technology can be improved by adding to it the power of its users, in a two-way relationship.

Friday, November 6, 2009

Time will tell...

I just finished reading an article entitled "Windows 7 passes Snow Leopard, Linux" on Ars Technica. In it, the author points out that according to October stats from Net Applications, Windows 7 has achieved a 2.15% website viewing share. That's an impressive number given that Windows 7 went on sale just 9 days before the end of the month! Microsoft definitely deserves congratulations if this trend continues.

When the inevitable comparison to Snow Leopard's market share is made, I think it's a bit misleading. In absolute market share, Windows 7 beats the slightly over two months old Snow Leopard (sitting at 1.17% browser share) in the Net Applications survey results. Yep, after 9 days, Windows 7 has nearly twice the installed base of Snow Leopard - and must have at least twice Snow Leopard's share as I write this. But, that number is a measure of the absolute web browser market share which, I think, is the wrong metric to compare.

The numbers look different when you compare the size of the two new OS challengers relative to the total share size of their respective OS predecessors. Looking at the uptake within the family, two-month old Snow Leopard has just over 22% of the total Mac OS surfing share (5.27%), while Windows 7 has already passed 2.3% of the total Windows browser share (92.52%). That's still good news for Windows 7, and makes perfect sense, too. Windows 7's share relative to its older Windows relatives is smaller than Snow Leopard's share relative to its Mac OS X relatives because it's been available for less time.

Unfortunately, looking further back, two-and-a-half year old Windows Vista's browser share is sitting at just 20.4% of the total Windows web share. I'll say it again. That's 20.4% after 2-1/2 years. That's less adoption than Snow Leopard achieved in just over two months. Even if all of the new Windows 7 users had actually upgraded from Vista, Vista would only have equaled Snow Leopard's share at its peak before Vista's share started eroding from people upgrading to Windows 7. Pretty underwhelming adoption for Windows Vista, I'd say.

Will Windows 7's fortunes surpass Vista's? I hope so. And I think Microsoft hopes so, too. Windows 7 has some advantages going forward. Better speed and fewer driver problems will help it to get more positive press than Vista did on release, with its steep hardware requirements relative to Windows XP added to Vista's signed driver requirements. Many people who held off and made do with Windows XP rather than making the jump to Vista are ready to get a new computer now, nearly three years later, and all of the new computers will of course ship with Windows 7 preinstalled. And, keep in mind that computer prices relative to performance have come down a ways since Vista's debut. It will be cheaper, in absolute terms, to get a Windows 7 machine now than a Vista capable computer back then. Businesses, too, have waited out Vista by sticking with XP - they may now be ready to make the switch.

While Windows 7 is off to a good start, there will still be challenges hindering it's growth, not the least of which is the two-generations old Windows XP. And I wouldn't yet say its share has beaten Snow Leopard's, yet. Windows 7's market share will increase over time, but only time will tell how quickly, and how high.

Saturday, July 18, 2009

This is a sign that Chrome OS (or something like it) will win

This is also a sign that the computer industry, at least as we know it today, has failed its users.

I expect to see signs like this for mechanical devices that suffer wear, such as our cars. But computers are fully automated, programmable, mostly solid state, and should be capable of maintaining themselves. Of course, I don't mean the computer hardware won't eventually have problems, but the OS should at least be robust enough that it doesn't get so sick it needs to be taken in for an inspection.

Unfortunately, calling for help from your computer geek brother-in-law, or nephew, or paying a computer vendor to fix a sick PC is something most non-technical computer users have become accustomed to. That, and knowing that after you bring that shiny, new computer home, that if you want to keep it shiny and new, you need to install a third-party firewall, anti-virus program, anti-phishing filter, pop-up ad blocker, and spyware blocker before venturing out into the dangerous internets. Without the protection offered by these programs, most users know, their computer will begin to exhibit the erratic and slowing down signs of sickness in no time.

It doesn't have to be that way! In fact, with all of the third-party tools, utilities, and plug-ins like Adobe Reader, Flash, Silverlight, browser toolbars, etc. installed, users not only make their computers slower, but they also make themselves more vulnerable to problems. How? Each additional program or utility takes processor cycles for itself, slowing the rest of the system down, and each program increases the attack surface area by exposing itself to the internet. Each utility may have its own flaws or vulnerabilities as well, and may provide another means by which to crash the system, steal data, or exploit the OS.

How appropriate then, that Google unveiled its Chrome OS this week. Chrome OS is of course Google's Chrome browser, running in a minimal Linux OS. Unlike Windows, OS X, and even Linux, the Chrome OS won't need to be exposed to the user, just the browser. Many people writing about Chrome OS saw it as an interesting idea, but dismissed it fairly quickly because it's obviously not comparable to a traditional OS. But, I challenge you to take a moment and think about the possibilities for Chrome.

First, Linux has shown itself to be fairly robust, especially in comparison with Windows. Linux, like the other Unix's, makes it more challenging for malicious software to elevate privilege, has fewer avenues for 'drive-by' attacks (such as Active-X), and being open source, often has rapidly fixed vulnerabilities (a few days vs. the 2nd Tuesday of the month). A simple, secure Linux OS is a great choice for Chrome OS, or any OS. It will boot fast, and have enough in-built security not to need third-party security software, allowing it to maintain high performance even on minimal systems. Couple this with a forced, remote-update system such as the one Google's Android OS has, and you've got a great OS foundation to build on.

Next, from a security standpoint, Chrome is likely the most well-engineered browser today. Individual tabbed pages, plug-ins, and scripts are sand-boxed from one another, meaning that malicious web code that tries to crash or inject code into the browser will only crash its instance, leaving the rest of the browser threads untouched. Chrome is based on Webkit, one of the fastest, and most rapidly developing and updated browser engines. Now add native PDF viewing a-la OS X, and ignore Flash plug-ins by relying on standards-based HTML 5 features instead, and you've got a winning browser with minimal potential problems.

Third, throw in cloud computing and storage. Do you really need to worry about installing and updating software, with its potential vulnerabilities (as I write this there is an actively-exploitable, un-patched Excel flaw) and backing up all of your data? My email is web-based, my social networks are web-based, I can put my photos on Flickr, my videos on YouTube, my documents into web alternatives, and then access my data from anywhere in the world on any computer and even my smartphone. I don't need to have a high-powered computer (even a netbook will do!), I don't need to buy a back-up hard disk to keep my photos safe, and more importantly, I don't even have to remember to back up my data religiously. The web services I use will take care of all of that for me.

Put it all together, and you're seeing the future of computing - simple, robust and managed software running on a variety of devices, all accessing data stored in the network. Few active programs means fewer flaws, automatic updates resolve problems, and little local data doesn't need a lot of management, leading to computing devices that, finally, won't slowly wear down and get 'sick'. 30+ years after the computer revolution started, it's about time!

Endnote

Think of this computing progression as comparable with that of other new, advanced technologies that have, over time, integrated themselves into our lives. In the early days of the automobile for example, there were no paved roads, cars were expensive, finicky, and you had to know how to do your own maintenance. Now, of course, we have reliable cars, gas stations that aren't service centres, and cars that tell the trained technicians what's wrong with them. We've traded the ability to be the one with all of the knowledge, and full control over our car, its performance, and its parts, for the security and convenience of guaranteed reliability. It's bound to happen to computers, too.

Friday, April 24, 2009

The emperor's new clothes


Wow. What a week! A lot has happened this week, much relating to some of my previous posts (and much not), and I think it would be a good time to wrap up the topics I've touched on - to give them some closure - before moving on.

The screen grab, above, takes me back to the I love my Mac post, written nearly a month ago. My Mac has had 49 days of uptime (and is still going!), running as a Mac, a Windows XP box, and a Ubuntu 64-bit box, with all the apps shoehorned into what I now consider a small 2GB chunk of memory (I should really upgrade my RAM, but that would require a shutdown...). Needless to say, my PCs have experienced a few more reboots in the same period of time. I know, I know, a reboot is not that big a deal, and I administer a couple of Linux servers with even longer uptimes, but having so few reboots serves to strengthen that feeling of trust you can put into your OS. Windows just doesn't give me the same level of 'no problem, I can handle anything you can throw at me' confidence.

That cha-ching sound you hear... is Apple's killer app

Apple customers have downloaded one billion apps since the App Store opened nine months ago! Obviously, that sets some sort of record (or, more likely, records), and has woken some of Apple's competitors out of their mobile device slumber. No matter. Apple has the clear lead here, in terms of software that people want to use, a development environment that developers can put to good use, and hardware that's both consistent enough between devices and powerful enough to run some amazing apps. I was playing X-Plane on my iPhone the other day - and was blown away! Like manned rocket launches, Apple achieving the 2B app milestone won't be nearly as exciting and won't get as much press, but I still expect it to happen about six months from now.


Microsoft and Apple both released their quarterly results this week, and looking closely at the numbers we can see both the positive and negative influence of netbook computers on Microsoft's bottom line. The good news is that Microsoft's revenue declined by only 6% in the quater. The bad news? The overall PC market, excluding netbooks, dropped by 15% in the same time period. The sudden, and explosive, emergence of netbooks gave Microsoft a welcome infusion of cash from the sale of its 2001-era XP operating system to netbook vendors.

What about Windows' netbook longer-term prospects? When Windows 7 is released (likely this fall according to the tea leaves), Microsoft will find itself between a rock and a hard place with the netbook version of their OS. Clearly, they can't sell the flagship Windows 7 OS at the fire-sale price of its XP grandparent, and they can't sell it at full price either, because then the OS becomes worth more than the rest of the netbook computer - which does not make for a good computing or marketing experience. Microsoft's solution will have to be to sell the artificially-crippled 'Starter' or 'Netbook' or 'Cheapy' version, and try to compete with the 'don't even think of taking any functionality out or we'll fork the code' Linux-powered 'Ultimate Edition'. Sadly, many people will buy the Windows netbook because it's the only thing they're familiar with. I feel sad for those who do end up with the cripple-ware edition, but not sad for Microsoft's predicament - they're squeezing themselves further into the low-price corner they painted themselves into.

Apple doesn't have the same problem, because Apple is primarily a hardware company. Making a reasonable amount of profit on the computer and the OS that you make, is much simpler than trying to make a profit on just the computer or just the OS. When your computer, with your OS is selling for $2199, not $379, you get to keep a much bigger chunk of that customer's money.

And, finally, those new clothes. Take a close look at both Microsoft's and Apple's balance sheets. Don't you find it a little bit surprising that Apple, a company that only 'owns' about 3% of the worldwide computer market share, generated more than half the revenue of the company that 'owns' 95% of the computer market? It's even more surprising when you consider that making hardware usually involves more investment and costs than making software - CDs should be a whole lot cheaper to produce than Macbooks and iPods. Couple Microsoft's lack of converting software sales to profits with its desire to keep pushing the devaluation of Windows computers.

Yikes! Nice outfit you got there!

Thursday, April 16, 2009

What price China?

It's time to order new circuit boards (pcbs) for the projects I do in my Computer Engineering Technology class. No big deal. I normally email my requirements to the sales or engineering department at my pcb facility of choice in Toronto, and they get back to me with a price.

This time, no response came. The website was still there, offering the latest and greatest in pcb technology, but email and the phone numbers were dead. Another victim of the recession, I guess.

Plan B. A local company that specializes in really complex circuit boards has occasionally done work for me (mostly out of charity for the school kids, I think). I drove by their plant after school earlier this week hoping to drop off my design and noticed their sign was gone, replaced by the hastily-hung vinyl sign of a different company. Another one gone.

Plan C. Get an online quote from another local company, as well as another company with an agent in the province who's actually just a front-end for the manufacturing plant over in China. Both quotes come back in hours. Local $640.00, China $430.00 (including shipping).

Seeing the relative prices, I know what happened to the companies I used to go to - they're victims of the Asian tiger.

I brought this up with my students and we discussed the options. The local company was closer, and might be a bit faster, but China is cheaper. The local company would have to conform to our labour and environmental laws. The Chinese company - who knows? And, it's cheaper. The environmental impact of having a parcel go UPS from China to here involves three airplane rides (Beijing to Alaska, Alaska to Kentucky, Kentucky to Hamilton), and two truck rides (one at that end, one at this end), but it's still cheaper. Besides, it's not like the airplane is only carrying my package - it was flying anyway. But the loss of local jobs, meaning fewer people here with the financial means to be able to buy the very things I'm teaching my Engineering Technology students how to make - that hurts.

My students and I decided we should buy local. Why? Although the price difference between the circuit boards is a significant, the circuit board is just one part of a larger product. The real cost of the difference between buying local and buying from China is about 3% of the final cost of the product. And that's just not enough of a savings for us to sacrifice local jobs and probably contribute to more than $200.00 worth of damage to the ozone layer or through greenhouse gas emissions.

I'm proud that my student were able to see that, and recognize that the cheapest price may not be the bargain that it seems to be. Let's hope that other companies also see the value maintaining local customer and supplier relationships, and not just in trimming their bottom line. Because, despite how far down can bring down your costs, your unemployed neighbours won't be able to afford your product, and that foretells a gloomy future for your business.