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.

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.

But I can't help it, I Love NY

It is the most amazing city in the world.

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

How I learned about Software

Back in the nineties I had an addiction: MSFT Software. I would download every demo, read each press release. I would read the "What's New" in the product help religiously. I don't know why. I'm just a sucker for new features. Most of the apps I would never have to use anyway. Oh my, this is sad. Sometimes I should just keep things to myself.

Super Zoom cameras

There is a category of digital cameras out there that is really great: Super-Zooms. After using an image-stabilized super zoom you will wonder why would you need to change lenses at all. They are just a thrill to use. When I use SLR I think they are too much trouble. When I use compacts I feel claustrophobic. I just wish they could make them fit in a pocket.

The art of software

What makes a good Program Managers is not what they select to implement but what they have the guts not to (gmail: no folders, no sorting). It's the 80-20 rule. Just try to nail down the right 20% in a smart way.

Keeping it simple is the hardest part.

The client is always right

I don't know much about other businesses, but in software the client is always right when he is complaining about something. He may not be right about the solution, but if he complains usually there is a problem that needs to be acknowledged. It is the developer's task to find the right solution with the client.
"But the client is not using it the right way!"
It should be more intuitive.
"But I told my client that we should have not implemented that way, and now he is complaining!!!!"
Totally your fault. You could not convince him properly. Try to learn to communicate better.

How to be a complete man

  • Write a book
  • Plant a tree
  • Have a child

How to be a complete geek

  • Write a blog
  • Contribute to open source
  • Teach someone to program

I Love Microsoft

Still a little. They were the first ones to understand that software could be packaged as complete Products.

But now I love Google and Apple more. Simplicity and looks have always turned me on.

"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." Buckminster Fuller

The Flash Platform

There is an underdog software platform out there that might just surprise Java and .net world. It's called Flash. Reasons:

  • One of the architects of the next generation was ASP.Net father (Mark Anders) and Tim O'Reilly is a board member
  • They will start using Eclipse (That in some ways is a lot better than Visual Studio)
  • They have a good relationship with Open Source communities (swf format is open source, Eclipse, ActionScript = ECMA-262 JavaScript 2.0)
  • ActionScript (JavaScript 2.0) language has the beneficts of strongly typed languages (auto-complete, strong checking) and of loosely typed languages (not so much conversion code)
  • It has the cross-browser, cross-platform most pervasive runtime environment
  • Writing applications in a fat client way is a lot easier and designs remain a lot simpler
  • After Gmail and Google Maps everybody wants more interactive interfaces. Just check this (mouse wheel supported) to compare with AJAX.
  • Very good streaming format
  • Every Nokia cell phones will have flash player built-in
  • SAP enables the usage of Flex in NetWeaver
  • Adobe has load of $$$
  • They have crossed the cultural blog chasm better than other companies
  • High price for Flex but the long-term strategy is more abranging. The long term might just be to long... Ajax is growing and Avalon will start soon.

Hello World

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit