Wednesday, February 22, 2006
Thursday, February 16, 2006
Speed is the unstated requirement
I hate unreadable code. So, whenever I see developers doing things like using StringBuffers instead of plain vanilla strings to make a couple of concatenations and tell me it’s to make the code run faster, I start to get nervous.
And very ugly problems have been caused in the name of speed and scalability. Remember when everyone was high about distributed objects? The fever is back again with xml web services in service oriented architectures. You wouldn’t believe the amount of useless serialization and deserialization I’ve seen in some systems.
But speed is one requirement that users will not state explicitly (like easy of use). If they do, it’s because the problem has already reached scary dimensions. And we need to understand that speed will play a major role in the likeability of our applications.
So optimize often. Optimize well. Be fanatic about speed.

But speed is one requirement that users will not state explicitly (like easy of use). If they do, it’s because the problem has already reached scary dimensions. And we need to understand that speed will play a major role in the likeability of our applications.
So optimize often. Optimize well. Be fanatic about speed.
Thursday, February 09, 2006
A day in the life...
This morning at work we discussed and sketched a class diagram and an entity diagram on the whiteboard. With hibernate we tend to think just on the class diagram, but some of us still need to think in tables.
After we started implementing it, we remembered that the information would have to be remoted across to the client. We would also need to create the admin interface to manage this and some db script to provision default values.
We used the eraser on the whiteboard and decided that we would implement those collections as hard coded enumerations and let our code generator handle the conversion from Java to ActionScript.
We will only have one early adopter client for the next few months and there were no real requirements to make this easily configurable yet.
A comment from a colleague of mine:

- In uni I would never have imagined that I would have a nice class diagram and entity diagram defined and that then I would want to dumb it down to an hard coded enumeration!
Hard coded values are not bad: hard coded unorganised values are bad.
Also if we had used word or visio to create the diagrams we would have felt that we needed to implement it the way it was first drawn. Whiteboards rule!
BTW all the logic and most of the complex UI has been successfully pair programmed today based on the specs that we had discussed yesterday with the client. Agile methodologies rule!
After we started implementing it, we remembered that the information would have to be remoted across to the client. We would also need to create the admin interface to manage this and some db script to provision default values.
We used the eraser on the whiteboard and decided that we would implement those collections as hard coded enumerations and let our code generator handle the conversion from Java to ActionScript.
We will only have one early adopter client for the next few months and there were no real requirements to make this easily configurable yet.
A comment from a colleague of mine:

- In uni I would never have imagined that I would have a nice class diagram and entity diagram defined and that then I would want to dumb it down to an hard coded enumeration!
Hard coded values are not bad: hard coded unorganised values are bad.
Also if we had used word or visio to create the diagrams we would have felt that we needed to implement it the way it was first drawn. Whiteboards rule!
BTW all the logic and most of the complex UI has been successfully pair programmed today based on the specs that we had discussed yesterday with the client. Agile methodologies rule!
Saturday, January 07, 2006
The "new" Small Business Server 2003
Today I've received an email from Microsoft about the new Small Business Server 2003.
Have they noticed it's 2006 already?
This naming strategy worked when they were a fast company and wanted to make us feel we needed to upgrade.
Now it just shows how slow and bloated they have become.
Have they noticed it's 2006 already?
This naming strategy worked when they were a fast company and wanted to make us feel we needed to upgrade.
Now it just shows how slow and bloated they have become.
Wednesday, January 04, 2006
I've told you so
The most obnoxious posts in blogosphere are the "I've told you so..." kind.
Here's one from me:
Jon Udell talks about the possible advantages of ActionScript (Macromedia's JavaScript 2.0) as a language that is both strongly typed and loosly typed
Here's one from me:
Jon Udell talks about the possible advantages of ActionScript (Macromedia's JavaScript 2.0) as a language that is both strongly typed and loosly typed
Tuesday, December 06, 2005
A good IDE is worth a 1000 praise words
But if good documentation and images are provided I can spare you and just point you to those:
If you use VS.net 2003 download Eclipse and see what you are missing. Or upgrade to VS.2005 that must have copied most of this stuff.
In the confusion of java web frameworks I think I would miss ASP.net, but with Flex I'm playing with a more powerfull markup language than HTML anyway.
And I miss C# property getters and setters. But hibernate and eclipse are cool.
If you use VS.net 2003 download Eclipse and see what you are missing. Or upgrade to VS.2005 that must have copied most of this stuff.
In the confusion of java web frameworks I think I would miss ASP.net, but with Flex I'm playing with a more powerfull markup language than HTML anyway.
And I miss C# property getters and setters. But hibernate and eclipse are cool.
Wednesday, November 16, 2005
2 cool tips
These ones are not new, but I've seen far too many people not knowing about them.
1 - With any message box in windows
You can use Ctrl+ C and you'll get this in the clipboard
---------------------------
Save As
---------------------------
C:\test.txt already exists.
Do you want to replace it?
---------------------------
Yes No
---------------------------
Great for support or for gogling catastrophic error messages.
2 - The best blog reader out there is called firefox. Just use the
button in the bottom right corner of the browser (In the address bar if you are already using 1.5).
1 - With any message box in windows
You can use Ctrl+ C and you'll get this in the clipboard
---------------------------
Save As
---------------------------
C:\test.txt already exists.
Do you want to replace it?
---------------------------
Yes No
---------------------------
Great for support or for gogling catastrophic error messages.
2 - The best blog reader out there is called firefox. Just use the

Tuesday, November 01, 2005
Ajax usability: it's not just the back button
Why do grandpas feel web applications easier to use than desktop applications?
- No dbl-click
- No right click
- No save/open
- No menus
- Left click hover feedback (hand cursor)
- Back button
Wednesday, October 26, 2005
Little signs of cool
Often you find them where they are least expected. As in the automated build procedure of a big dull financial corporation. It sends emails using this address: mrbuild@dullcompany.com
Sunday, October 09, 2005
Good Marketing

The New Zealand CanTeen foundation, that helps teenagers with cancer, has a bandanna week where they sell those bandannas in a lot of supermarkets. It's a great idea.
But the best part is that this year they had the approval from Disney to use the muppets manha manha (bandanana) clip in the tv ads.
Brilliant!
Tuesday, October 04, 2005
Office interface
Today one of the most recognized UI's with buttons (after the remote control up/down volume and telephone numbers layout) must be MS Office's.

If you change the money making mammoth you will upset a lot of people for sure.
So why do it?
1 - because it's bad and new users don't get it
2 - because someone could do it better and cheaper (as with gmail, StarOffice)
3 - because people are thinking what they have is good enough and they are stopping the upgrade cycle
Despite always being accused of being only a copier, there are actually some good UI tidbits from this company (the spell-checker underline from word6, the smart after paste drop down from XP). They just don't seem enough to justify so much money and mistakes like the office assistant. But probably nothing will ever be.
But it is nice to follow
http://blogs.msdn.com/jensenh/default.aspx
for some insight on history of the interface and to understand the reasons for the coming changes.

If you change the money making mammoth you will upset a lot of people for sure.
So why do it?
1 - because it's bad and new users don't get it
2 - because someone could do it better and cheaper (as with gmail, StarOffice)
3 - because people are thinking what they have is good enough and they are stopping the upgrade cycle
Despite always being accused of being only a copier, there are actually some good UI tidbits from this company (the spell-checker underline from word6, the smart after paste drop down from XP). They just don't seem enough to justify so much money and mistakes like the office assistant. But probably nothing will ever be.
But it is nice to follow
http://blogs.msdn.com/jensenh/default.aspx
for some insight on history of the interface and to understand the reasons for the coming changes.
Sunday, October 02, 2005
Public property. Keep out!
We've been taught for years to do this:
public string Name;
It's easier to read, uses less screen real estate and we can always change it to the former when we need.
private string _name;
public string Name
{
get { return _name;
}
set {
_name = value;
}
}
public string Name;
It's easier to read, uses less screen real estate and we can always change it to the former when we need.
Thursday, September 15, 2005
The return of the hourglass
One of the best tricks to improve usability in AJAX web applications is to use the hourglass
document.body.style.cursor = "wait";
And this has the side-effect of "fixing" a lot of asynchronous problems.
document.body.style.cursor = "wait";
And this has the side-effect of "fixing" a lot of asynchronous problems.
Saturday, August 27, 2005
How to be open without being open-source
Joel has been teaching us how to do that for years. Now he even publishes internal product specs on the web. Interesting read.
Unlike most, this software project does not have a lot of UI, actually it is a kind of simpler Remote Desktop, so it "borrows" all of it from the OS. But in regular projects I think that software specifications should be mostly UI mock screenshots. Images are really worth a thousand words.
Unlike most, this software project does not have a lot of UI, actually it is a kind of simpler Remote Desktop, so it "borrows" all of it from the OS. But in regular projects I think that software specifications should be mostly UI mock screenshots. Images are really worth a thousand words.
Wednesday, August 24, 2005
The gadget I'm going to buy
The next gadget I'm going to buy is a cellphone+ipod+blackberry+>3mpx camera. I'm not going to buy anything else that can become obsolete when this arrives. The technology is there, so why is it taking so long? Oh, and make it cheap too, please.
I'm in NY for the first time
- It smells like trash.
- The temperature is on the 90F (38o).
- It's noisy.
- I'm away from Joana and working long hours to keep up with my team back in NZ.
Why the PC platform beat Apple
There are more theories for this than for the disappearing of dinosaurs. Here's mine: Piracy. Back in the mid, early 90's you could get any software (and games) easily for PC. You needed stupid serial # for Mac. So everyone bought PC because the software was "cheaper".
Hardcore User Interface expert
Today I was called an "Hardcore UI Expert". I liked the sound of that, maybe I'll make a t-shirt. But it also kind of reminds me of the joke about architects, not man enough to be civil engineers, not gay enough to be interior decorators.
Gmail invitations are the best anti-spam technology
If you're on gmail someone knows that you are not a dog.
Functional Test First
Developers should only interact with their applications in 2 modes:
Record Mode & Playback Mode
This would speed up development and provide valuable functional tests.
As every rule there is an exception: There is also the Flawless Demo Mode when you are showing it to the client.
Functional tests are stronger, provide more code coverage, and are more refactoring-proof than unit tests. But it should be the role of developers to do them, not of a different QA team that sits on the 2nd floor.
They are also recorded in a language you should understand: the end user language (write text, click button, assert result...).
Record Mode & Playback Mode
This would speed up development and provide valuable functional tests.
As every rule there is an exception: There is also the Flawless Demo Mode when you are showing it to the client.
Functional tests are stronger, provide more code coverage, and are more refactoring-proof than unit tests. But it should be the role of developers to do them, not of a different QA team that sits on the 2nd floor.
They are also recorded in a language you should understand: the end user language (write text, click button, assert result...).
Subscribe to:
Posts (Atom)