09 Feb 2010

The scary thing about Silverlight . . .

No Comments C# Coding, Software Dev & Productivity, Usability

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. 

05 Feb 2010

Popup Chinese

No Comments China, Chinese, Languages

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?”Learn Chinese

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.

27 Jan 2010

Book Store

No Comments Miscellaneous Rants

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 ……………….

WongFookHing

19 Jan 2010

France and Germany say “No IE”—Corporate apps will suffer

2 Comments Software Dev & Productivity, Usability

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.

08 Jan 2010

Steve Krug Web usability video

No Comments Software Dev & Productivity, Usability

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

05 Jan 2010

In love with our own lingo

4 Comments Software Dev & Productivity

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.

I'm Not Sure What's Not Allowed
Creative Commons License photo credit: jakeliefer

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.

31 Dec 2009

New Years Resolutions

3 Comments Running

I’m a big believer in New Year’s Resolutions.  Having said that, I hadn’t really thought of any.  Sure, there’s the resolutions that could be carried over from last years—all that diet and exercise stuff—but nothing new.

At this time of year, I feel self-conscious about running. Tomorrow morning will the the worst.  The sidewalks and pavements are always packed with runners on the first of Jan.  Since my long career in running has not done much to reduce my weight (imagine if I didn’t run!), I always look like a novice when I’m out there.  I look like a New Year’s runner.  But still, there’s nothing wrong with being someone out on a run because they made a resolution.  Good for them!  They probably feel self-conscious too, but they do it anyway.

This time of year, if you talk about resolutions, 3 or 4 people say the same thing– “My resolution this year is to not make any resolutions!”  Hah!  Get’s me every time!  How clever.

The problem I always had with resolutions is that I fear being mocked if I don’t carry them out.  I felt the same way when I started running or earlier this year when I started going to the gym.  I felt that if I start, I could never stop because that would be failure somehow. 

If I go for a run on 1 January, for example, I feel as if I have to run every day after that.  If I start going to the gym, I need to go for years.  But the truth is, this kind of fear stopped me from doing lots of things.  If I go to the gym once, it’s one time more than never going.  If I see it as something I need to do today rather than a commitment to something for the rest of my life, it makes it much easier to handle. 

My most famous resolution with my family is the time I decided I would become a vegetarian.  It lasted 7 days.  But that burger on January 7th was fantastic!

My parents quick smoking on New Years when I was a kid.  They never took it up again.  Resolutions are not always broken.

There’s nothing magical about a New Year’s resolution—it just gives you an excuse to make a goal.  An it’s easier to tell people how long you’ve been keeping it up.

I’ll spend today thinking of a good resolution.  It seems a waste of a calendar change if I can’t come up with one.

Happy New Year and I wish you a wonderful 2010.

22 Dec 2009

Complexity of software projects

No Comments Agile, Software Dev & Productivity

A good article was posted yesterday by the ComputerWorld Website saying that the leading cause of software project failures is the complexity of the applications.  The article quotes software architect Roger Sessions:

“Our goal should be to design the least complex architecture possible that solves the business problem”

I’ve been part of many projects that were mired in complexity.  They usually over-run or we end up with a sub-par system that awaits a never-to-happen refactoring and revision.

MiG-21MF Cockpit
Creative Commons License photo credit: Kecko

It’s easy to brainstorm a project and add feature-after-feature until you produced a project plan which stretches over months or years.  It’s easy to design an interface that looks like a cockpit dashboard with lots of functionality that you will probably never use, but looks impressive in the way it fills the screen.  “Wouldn’t it be great if this interfaces with every other system we have?  Wouldn’t it be great if we could use that new transactional system that’s really hot right now?  Wouldn’t it be great if . . .”

I’ve been guilty of this in the past—but I’ve been burned so many times that I tend to err on the side of simplicity (but I don’t always get final say in architectural decisions).

Over the past few years there has been a move to simpler architectures, simpler interfaces, and quicker release cycles.

Scrum is an agile methodology that stresses frequent releases over many iterations.  So, at the end of each 2-3 week iteration, you have working software—regardless of whether you release it to the public or hold until the next iteration.  It’s a methodology that resonates with a lot of people who have worked on failed projects in the past.  I became Scrum Master certified a few years ago, and it changed my whole view of how projects should run—but it is not easy to convince business owners to go this way.

37 Signals released a fantastic e-book called “Getting Real” which they stress that building software is more important that talking about building software.  They have released one of my favourite on-line apps ever with Basecamp.  It is quick, easy, and has a simple interface.  They refuse to clutter it every bit of functionality anyone asks for.

Interfaces in general are getting more simple to use—and not just for products like Basecamp.  10 years ago, you had apps that tried to fill your entire browser with things to do, but now you see more and more that are intuitive and easy to use.  Compare Yahoo! (with a browser window you couldn’t find any blank space on) with Google (a textbox and a button—no manual needed).

The software that has a better chance of reaching “finished” is the software that keeps the architecture simple, keeps the interface simple, and releases frequently.

Here’s the link to the ComputerWorld article:  http://www.computerworld.com/s/article/345994/The_No._1_Cause_of_IT_Failure_Complexity

19 Dec 2009

The Future of Work

2 Comments Offshoring, Software Dev & Productivity

There is a very big company in the outsourcing industry called oDesk.  I learned about them a few years ago when I was looking at outsource projects back then.  I’ve used them a bit and they have a fantastic product. 

They put a video out on Youtube recently called the Future of Work. It’s very good.  Here it is if you haven’t seen it:

The link is here: http://www.youtube.com/watch?v=G8Yt4wxSblc

For the past few years, you could definitely see the tide turning.  Maybe there will soon be a world where the majority of people don’t have work which makes them put on a suit and commute for hours every day.  I’m glad that other companies believe that and are working towards it.

17 Dec 2009

Like Zorro

3 Comments Movies

One of my favourite movie quotes is from the movie Jerry Maguire.  It’s not my favourite movie (that’s Goodfellas, if you’re interested), but it’s up there. 

There’s a scene in the movie where Jerry (Tom Cruise)  and Rod Tidwell  (Cuba Gooding Jr.)  are sitting on an airplane while Jerry is getting drunk.  Jerry is wallowing in his misery and feeling sorry for himself and telling Rod that he can no longer help him because he (Jerry) is “cloaked in failure”.  Rod is frustrated with Jerry’s sudden lack of confidence:

Anybody else would have left you by now, but I’m sticking with you.  I said I would. And if I got to ride your ass like Zorro, you’re gonna show me the money.

I’ve seen the movie a few times, and that line always sticks with me.  There are times when everyone loses their nerve or their confidence drops.  Hopefully when that happens, someone close, usually out of frustration and being tired of hearing your self-loathing B.S., pushes you on.