Fog Creek Software
Discussion Board

Testers... Joel needs them

I really appreciate Joel's essays.  So the following surprised me very much:

I've had about eight hours on Joel's CityDesk trial version, service patch 1.  And I've uncovered 2 high priority bugs and one *usability* bug on my Windows XP system.

1.  Undo is broken.  Some timer or something is pushing undoable events down the queue, possibly out the other end.  (Empty events are pushed on.)

2.  The spell checker doesn't work if you use the ampersand character.  (It returns false negatives. "No misspellings.")

3.  Hand formatted HTML code is lost when switching between HTML and Normal view.  Is there anybody in the world who doesn't need to read the HTML when designing templates?

Joel, I'm surprised, because these bugs don't strike me as all that obscure.  I'm willing to provide you with more info if you cannot reproduce the first two bugs.  I know the third is a known issue.  (I had the impression that usability was so important to you.)  I've already reported them in the other forum.  But I couldn't resist mouthing off when I saw the other thread here on testers.

David Blume
Friday, June 14, 2002

Don't be too surprised, Joel is only good at writing not programming.

Friday, June 14, 2002

That last comment pours wisdom :-)

Leonardo Herrera
Friday, June 14, 2002

Oh, I forgot to point that there is a forum for all Citydesk-related issues. You should post your report there:

Leonardo Herrera
Friday, June 14, 2002

Preserving HTML formatting and Undo are actually amazingly hard to do. I don't want to make excuses, but we rely on Internet Explorer for the WYSIWYG editing component and it just has bugs. Preserving formatting (in any arbitratry HTML code, which might have bugs) is a very hard problem that very few WYSIWYG HTML editors truly achieve.

We're working on them. It's not a matter of testing -- believe me, we know all about those bugs! It's a matter of time to get these things to work better.

Joel Spolsky
Friday, June 14, 2002

Thanks for the public reply, Joel.  Allow me one last tongue-in-cheek comment:

When your users select "undo" don't forget to put up a dialog that reads, "The operation you are about to perform is irrevocable and may be destructive.  Are you sure you want to proceed?"

Either that, or implement "redo."  I can't believe you released a product with an irrevocable undo.  No user in their right mind suspects undo might be destructive.  :)

David Blume
Saturday, June 15, 2002

Dreamweaver seems to handle both problems (Undo and preserving manual formatting) quite well.

I think you won't be able to get a good HTML editor unless you drop the IE component and write something yourself. You said once that you have to write the core parts of an application yourself, instead of relying on third-party solutions. This proves your point.

Frederik Slijkerman
Saturday, June 15, 2002

But one should take in account that a full blown WYSIWYG HTML editor (holy acronyms batman!)  is not a small task.

Perhaps better integration with external editors might do the trick... OLE, perhaps?

Leonardo Herrera
Saturday, June 15, 2002

Dreamweaver's market is HTML "hand-coders". They care what their HTML looks like. I don't think this is the same target market as Fog Creek's CityDesk. I bet CityDesk users either do not know what HTML is or they hope to never need to learn..  :-)

Banana Fred
Saturday, June 15, 2002

I just wanted to add that I agree with Joel that you should own your product's core technology. That said, I do not think HTML is a core technology of CityDesk. I think CityDesk's important feature is easy-to-use experience and whole web site editting/FTPing.

Banana Fred
Saturday, June 15, 2002

I try to avoid hand coding HTML at all times.  Not always possible though.

Saturday, June 15, 2002

I've been using the MS WYSIWYG object for a while now and through all the troubles and little hacks I have had to apply to get it to perfrom in some sort of consistent manner  I can safely say that is is a dog. Actually that's a bi harsh, if you spawn the editor into a div or iframe or whatever using javascript it is pretty limited by what MS has allowed can be done, but if you add it to an active-X control and use that in your pages instead then a whole heap of different functions and methods become available. If you can use C++ then you might want to have a look at as it has methods and techniques to give you pretty much total control what the editor will do with your HTML.

A quick trick I have found is that if there is anything that you want to place into a specific spot using the cursor position you can construct the snippet of HTML into a variable, then insert that snippet into the Image Insert Command then do a find an replace for the containing image. Kind of hacky but it works a treat:

tag = "<a href=''><img src=/graphics/mime_icons/pdf.gif align=absmiddle border=0>the file</a>';
editor.document.execCommand("InsertImage", false, tag);
document.all("editor").innerText = document.all("editor").innerHTML;
document.all("editor").innerText =  document.all("editor").innerText.replace('<IMG src="<a href','<a href');
document.all("editor").innerText =  document.all("editor").innerText.replace('/a>">','/a>');
document.all("editor").innerHTML = document.all("editor").innerText;

If you try to do an undo (by key stroke only in the web page version of MSHTML) it removes each change above one at a time so it can look kind of weird.

In summary - pay the $400 or so asked by someone who has already developed a fully functional active-X version of the MSHTML editor as the time taken to code and implement a javascript version is nothing short of torture and you will only be dissapointed with the result.

Benjamin Dry
Sunday, June 16, 2002

Wow... am I ever disappointed.  (smile)

I've heard "it's hard" as an excuse from novice programmers way too many times.  Along with "it takes time"... this time though, it sounds like the infamous "wait for the next release" excuse.

IE has bugs?  Nah... who would believe that ;-)

As I've said before... the use of too much third-party products makes us more productive because we don't have to create all those bugs ourselves.

Joe AA.
Monday, June 17, 2002


not only it has bugs, as it's hardly customizable. Not many entry points for customizing its behavior.

I've worked a lot with both DHTML Editing Component and MS WYSIWYG Editor (which are basically the same thing) in my last job for a content management software, and I had to make a lot of workarounds to make it work nicer.

There are no good alternatives to that - maybe you all can spend months working on a Java Applet to edit HTML and sell it to everyone! But if you can't waste this amount of time, or don't want pay rights for every copy of your system you sell, and don't want to force users to have any plug-ins installed in their web browsers, you may choose to use it.

Although MS DHTML Editor is buggy, I still think it works enoughly fine. As soon as your product isn't totaly based on it. Which certainly CityDesk - and the project I worked on - are not!

Rafael Sabbagh Armony - Brazil
Monday, June 17, 2002

I believe this is where I put in the obligatory Mozilla Comment (See other threads)

This is a 1/2 between IE and Own the rendering engine yourself.  It is licensed un the LGPL, which means you can embed it, and only must make the source code to the Mozilla portions available.  I've looked at mozilla's programming model a little bit, and seen that it is based on CSS, JavaScript, an XML format called XUL for UI description, and other web standards.  It has a variation on MS COM Called XPCOM (XP in this cojnmtext means Cross platform, Not MSXP) .

I would not recommend to Joel that he change CItydesk to use Mozilla, but it is an interesting thought experiment.  What would it take to embed Mozilla in a project that currently uses IE?

Monday, June 17, 2002

*  Recent Topics

*  Fog Creek Home