Importance of back-ups
I had a bit of a scare last night with my computer last night.
I have spent the past several days doing some work for a client and am travelling out to their office today to deploy the work on their servers. The plan was to download the release from Subversion onto a workstation and upload to their server (and updates configs and all that).
Last night at 9pm, my main pc wouldn’t start. I could hear the fan humming and disks spinning, but nothing showing up on the monitor—not even bios set-up screens. It’s a four-year-old Dell Dimension 9150, so the pc isn’t new and I expect there to be problems from time-to-time, but this kind of problem couldn’t happen at all those times I don’t have any clients?
My main development PC gets backed up once a week to an external hard drive using Acronis True Image. My PC also wakes from hibernate every morning at 2am and takes a local backup from all my websites and databases hosted on different web servers. I have a Subversion repository hosted off-site where I keep all my code. I’ve thought a lot about disaster recovery. But it wasn’t enough.
I wasn’t concerned about the PC as much as I was concerned about the code. But, as much as I tell my developers to check-in every day, I was a bit lazy here and didn’t do it myself for two days.
After Googling the problem for a while (on my laptop) I found the issue was some RAM had gone bad. I took memory out one by one until the computer would start again. I breathed a sigh of relief. Eventually removed two RAM modules (bringing my pc from 4gb down to 2gb)—and the first thing I did was check my code into Subversion. So after a few hours of panic, everything was fine.
Here’s the problem with my backup strategy—it’s not regular enough. It’s geared for a hard-drive failure more than anything else. If my pc completely packs it in, I can restore my operating system, hard drives and everything else onto a new box—but my backup only runs once a week. I could be 6 days out of date. I need to increase it. Besides, I live in Oxfordshire. It’s not like I’m in San Diego where you can swing down to Fries at 9pm on a Sunday night and pick up a hard drive.
If you’ve ever had a hard drive fail, you know how important back-ups are—but they got to be automated or they won’t happen. When you get paid for the work you do on your computer, it’s even more important.
The scary thing about Silverlight . . .
The scary thing about Silverlight is that you are one security threat away from losing your clients. One thing that I’ve thought a lot with the problems on IE lately is that people who wrote “Only-for-Internet-Explorer” websites did not give their users the option to switch browsers if they felt unsafe due to all the security flaw hype.
A little common sense and a knowledge of web standards and it’s easy to write HTML that will look good and be functional in all browsers. Still, in my experience, too many developers are choosing a platform and sticking with it—most of the time that is IE. It’s easier to test one browser, it’s easier to tell a user to use the browser that’s probably already installed on their pc.
Flash and Silverlight are different than HTML—they are runtimes which are allowed to run inside the browser—kind of like how Java applets used to be able to. They are executables which run compiled functionality on your computer. They are cross-browser—but not like html is cross-browser. When I look at a Silverlight or Flash app on my pc, it’s always the same runtime working. Silverlight is a few years old and really starting to look like Flash—allowing Microsoft developers like me to get more fancy and provide far better functionality for our users. Silverlight runs on Windows and Mac, but has ignored the Linux landscape (there is an open-source Silverlight runtime called Moonlight being developed for that—but I consider it a snub).
In the world of web development, I think Flash and Silverlight are “cheating” at cross-platform compatibility. Everyone has accepted Flash (except the iPhone/iPad), but the jury is still out on Silverlight.
Silverlight and Flash are great in that they move a lot of the processing to your computer and free up resources on the server from which they originate. But they also increase the responsibilities of they client over the server.
Security flaws are found all the time. We all scramble around and try to fix them when they come up. As a software developer, I like the idea that I can apply a patch to a server and be done with it. With client driven app, I need to make sure all of my users apply the patch (and do it in a way that lets them know that the app is safe—and not to panic). Flash could bounce back from it (“You need it for Youtube, too. You should apply the patch”), but Silverlight is too new.
I’m often seduced by the cool things that Silverlight can do. I’ve played around with it a lot and have written several small apps (including an animated Overpass ad on my blog), but I’m not ready to jump in head-first yet.
Popup Chinese
I spend a lot of time listening to podcasts—far more than I do watching TV these days. There are so many good podcasts out there dealing with so many specialised topics. The podcasts I regularly view or listen to include Diggnation, NBC Nightly News (nice to able to do this in England), Scott Hanselman’s “Hanselminutes” (along with DotNetRocks to help me keep up with the .Net tech industry), and the new 37 Signals Podcast. From time to time, I’ll add or remove other podcasts based on what I’m interested at the time.
There are a lot of podcasts out there to help you learn Chinese. A few years ago I sampled loads of them and even subscribed to a few. Most of them were too much on the beginners side for my liking (I’m not counting the news broadcasts in full-speed, faster than fast, Mandarin). Most of them were very dry and not much different than listening to a short Pimsler Basic Chinese Course lesson each day. “Today’s lesson: Should we bring an umbrella because of the rain?”
So a few weeks ago I took another look at the Chinese learning podcasts out there and found one that I now include among my favourites. It’s called Popup Chinese. The Popup Chinese podcasts gives 3 lessons a week at Elementary, Intermediate, and Advanced level which each last between 5 and 10 minutes in length.
The dialogs in the lessons are really what differentiate the lessons from all the other ones out there. Here are a few examples of the lessons they’ve had in the past few weeks:
- How to Start a Business in China – Dialogue between a school principal and a child’s parents about how their child has started the other children with gambling and sniffing glue.
- Performance Anxiety – A dialogue between a performer on an American Idol type show and the judges.
- How to Defuse a Bomb – A bomb is about to go off and a former policeman comes to the rescue but is not sure which wire to cut.
Each lesson is pretty funny and irreverent. Even with some vocab that you will never use, there is a lot of very good instruction on grammar and common speech.
The show is presented by two American and one Chinese teacher in Beijing.
It’s a great podcast. If you are past the beginner stages and into the intermediate and advanced stages of Chinese learning, you should check it out.
Book Store
I’m not big on the viral email images that go around, but this one is pretty funny. It was emailed to me, so I can’t take any credit for it (and it seems to be all over the web).
If you can't find the book you want you're probably shopping
at the ...................
France and Germany say “No IE”—Corporate apps will suffer
So, Internet Explorer is in big trouble. Both the France and Germany governments have called for web users to find an alternative browser this week this week. Most tech-savvy users have already moved to Firefox and Chrome (I’m now completely using Chrome), but the majority of surfers still use the default IE.
Even more interesting, most corporate environments I’ve worked in support only Internet Explorer internally. You are simply not allowed to install another browser. I’ve worked on projects where the intranet application we are developing only works with Internet Explorer—usually because of bad coding/testing—but no one will fix this because “we only support Internet Explorer”.
I remember one high-level manager in an investment bank tell me—“Seriously, Eric, I can’t see us ever moving away from Internet Explorer.”
The lack of cross-browser support in the ASP.net developer community has been a big pet-peeve with me for years. You don’t find this with PHP, Java, or Ruby guys. But Microsoft developers stick with Microsoft browsers.
I’ve had the arguments so many times in various contracts—“We should support Firefox too. It only takes a few minutes to test functionality if we do it early enough, but will be a huge task to implement it later.” I can remember having this argument a half-dozen times, at least.
It has never been easier to do cross-browser development (you should have tried it in the Netscape 3/IE 3 days—that was painful), but it still gets overlooked.
Even the online banking site for my business bank account only renders properly in Internet Explorer. This is a huge pain to go through all the necessary security logins for banking—only to realise you are in the wrong browser and you can’t read the page. I’ve nearly changed banks because of this frustration.
An ideal web development team would have different developers using different browsers. In a team of 4 people for example, have one person on each of the 4 major browsers—IE, FIrefox, Chrome and Safari. Better yet, adhere to proper XHTML or HTML syntax (most of the time, apps only support IE because of some malformed html that Explorer allows).
But for years I’ve heard the same argument from different people--“We don’t have that kind of time”, “It’s an internal application and the we only support Explorer”, and “We’re not a software house. But now, when governments are recommending that we switch browsers, these developers haven’t even given their users this option.
This could kill Internet Explorer or at least severely weaken it. I see a lot of “Make this website work in Firefox” projects coming up.
Steve Krug Web usability video
The best book I’ve read on website usability is “Don’t Make Me Think” by Steve Krug. It’s pretty much considered the bible of web usability out there. A very talented developer introduced me to it years ago and since then I’ve sent it to some of my clients.
I found the following video on the fantastic Signal vs Noise blog from 37 Signals. It’s a one hour introduction to web usability given by Krug in 2008. If you have a bit of time (I know an hour is a bit long), it really is an interesting talk so have watch.
The url for the video is (on Signal Vs Noise) is http://37signals.com/svn/posts/2092-i-cant-think-of-a-better-intro-to-the-essential
In love with our own lingo
I worked on a software project recently where the interface was developed more by developers than end-users (you see this a lot, actually). In this instance, the application needed a phone number (but not a mobile number). Rather than asking for a land-line number (or just “Phone number”), the entry form asked for a PSTN. I was doing a usability review of the app and pointed this out-- “What the hell is a PSTN?”
The IT head pointed out to me that a PSTN is the industry term for a land-line (it stands for Public Switched Telephone Network) and that, now that I knew this, it should make sense to me. I suggested he change it to “Phone Number”—since this app was going to be used by the general public. He insisted that most people know this—just not me. I told him he should still change it. This advice fell on deaf ears, but we made some other good changes to improve the usability of the app.
My logic is (and continues to be)—if I don’t understand a term, it’s too confusing. If I do understand it, would my grandmother? In my situation, there are still occasions when I don't understand something because of cultural differences-- like expressions used in the UK but I never grew up with. I still question them anyway.
This happens all the time—techies want to educate the non-techies on how to talk about technology. Sometimes, these aren’t even terms in the technology industry—but acronyms and abbreviations used in a specific company that everyone adopts. I’ve been in small twenty-person offices where you would think everyone went to school to learn how to talk like they do—even the secretaries: “Are you going to de-duplicate the NOC node or shall I?” Eventually, no one knows how to talk like a regular person anymore.
We techies love our lingo. In even smaller arenas (like a company or an industry) this lingo becomes even more precious. When we talk like this, we really sound like we know what we are talking about. It impresses people (or so we think). I can remember the feeling of working on a stock trading application for a major bank and talking about trade flips and different types of transactions and FSA systems and then stopping to reflect on how cool it must all sound—I was an insider. I wasn’t a newbie—I sounded like an authority.
But all good software and hardware have the ability to take techie jargon and make it palatable to the masses. A good site or web application should not imply when you log in that you have no business being there because you don’t know how to use it. If you don’t understand the menu options, then you are in the wrong place.
In the future, people may look back at our gadgets today and conclude that Apple created the digital music player. The truth was that portable MP3 players existed a few years before the iPod, but while techie ruled this area (with Rippers, LAME codecs, etc), Apple made the whole process simple for those who didn’t feel like pouring through thousands of forums and blogs to figure out who to rip a cd. Try explaining to your grandmother how to set up a podcast aggregator while not using iTunes and you can see how much they simplified this area. The term MP3 made it into the mainstream lexicon, but most of the terms of the early days did not. Today, you still hear people argue about the benefit of Ogg or Flac over MP3, and can’t figure out why the mainstream hasn’t switched from MP3 to the superior Flac. But the general public doesn’t care about this.
Google is revolutionary and I love the company, but to read many of the books out there (like “The Google Story” or “What would Google do?”) you would think that before Google, we were all randomly typing URLs into our browsers hoping to find something. Yahoo, Ask Jeeves, Alta Vista, Lycos, etc were all there. But Google made it easy in addition to being far more efficient. One textbox, one button. It was easy to tell your grandmother how to use it.
In technology, especially when it comes to interface design or anything that requires us to interact with the public, the best skill is to be a layperson. Some people call this the “mother” test. If your mother came to this site, or used your application, could she figure out how to use it without calling you?
I think about every time I have to fill in my tax forms how lost I am. Even the “How to fill in this form” instructions confuse me. It makes sense to someone, but they are in love with their lingo too.


