Fog Creek Software
Discussion Board

Knowledge Base
Terry's Tips
Darren's Tips

A bunch of random thoughts

(BTW, why did you set up a new discussion page instead of setting a FogBuzz bugtracking site? The former doesn't show whether replies have been posted for a given entry, and requires your copy/pasting entries into your bugtracking system)

I only played with CD for four hours now, but I think it's a GREAT app! Congratulations guys. It's about time someone came up with a simple, WYSIWYG application to contribute to intranets.

Here are some random notes I wrote while going through the help file (no offense meant; they're just random thoughts I had):

1. Application

* Windows-only. Not good if those Mac or Linux heads can't contribute

* No support for MDI windows: Several windows show up on the screen/taskbar

* The same application icon is used in the outliner and the editing windows, making it difficult to tell them apart when browsing through open windows with ALT-TAB (must read the window's title as shown in the list of open windows, eg. "test - FogCreek CityDesk" = outliner, "Getting Started... double-click here!" = document window)

* Little physical difference between the outliner (where the list of files that make up a site is shown) and editing windows (where documents are edited). Would like it better if used a single MDI-capable master window with the outline in the left hand-side, and multiple MDI child windows on the right hand-side when editing documents (example: Eudora or CityDesk's help file)

* Site contents: I find it confusing that the outliner lists both Articles and non-Articles (for lack of a better word), although they all constitute a site

* Templates: It's confusing that templates only apply to Articles

* File | New | Site: Confusing because it means that the current site will be closed and a new site will be opened, although this sub-item is listed at the same level as other items that allow the user to add new objects to the current site. The first time I hit File | New | Site, I assumed the current site would have a second site in the outliner

* File | New and File | Open do not remember the path the user last used. For instance, I kept the site files in C:\, but hitting those menus always started from a sub-directory under "C:\Documents and Files" instead of C:\

* I think a site's properties as shown in the View menu in the outliner should be moved to a tabbed dialog accessible through File | Properties instead

* When deleting an Article, focus should be on Cancel instead of OK to avoid mistakes, or provide an Undo item in the Edit menu

* Popup menu in outliner: When editing an HTML file, it says "Open, Open in Normal View, Open in HTML View"; When editing a Document, menu only says Open. I think presenting the user with three options before editing an HTML file is superfluous: Open is good enough, especially since it only takes one click in the editor to switch to the other mode (Normal View <> HTML View)

* Cannot paste pictures in an Article, which makes it difficult to take screenshots when writing documentation like user's manual

2. Architecture

* I think it'd be better to move CD to a client-server system, where the client will interact with a server process, regardless of its location: If the user is connected to the network, CD will work with a remote server process; If the user is on the road and is working in disconnected mode, the server is running on the user's laptop. That way, the server process can automate the rendering issue (when a user is through editing the .CTY file or the DBMS where data are stored, it will automatically render the site to the intranet's web server). Incidently, I seem to recall that the SalesLogix CRM package provides a local DBMS (InterBase?) when sales people need to access data locally, ie. when they're working in disconnected mode

* Users do not work directly on what is hosted on their intranet, but rather an intermediary .CTY file, whose content must be rendered and saved on a remote site. Too complicated for non-techies

* Because editing of a site is done by opening a file, expect issues with firewalls and WAN links. Until CD comes up with replication between a local .CTY and a remote .CTY file, users who are away from the office will only be able to contribute by hitting the company's internal FTP server, or delay this until they're back at the office. Besides, for security reason, most companies will not provide access to internal servers from the Net. Lotus Notes makes this easy by synchronizing clients and servers through TCP 1352 and take advantage of encryption in case syncing is done over the Internet

* I think it'd be better to store data in a DBMS (MySQL, etc.) instead of a stand-alone file. Using a two-tier system (client-server) keeps the client unaware of the internal framework

* What about performances if CityDesk is used to manage a whole Intranet site from a single CTY file?

* Reliability of using a single .CTY file? Lotus Notes is known for corrupting .NSF files beyond repair. Scary.

* What about concurrent editing of the same document? Will CD stop the user from saving a document that a remote user has been editing before or after the local user edited it on his side?

* No support for source control, so no way to see which changes were made to a document on the Intranet, when, by who. This is one of my biggest peeves with Lotus Domino/Notes (it tells you that a document was changed by so and so, but not WHAT that person changed in the document)

* Support for disconnected mode and re-syncing later? (The user copies the shared CTY file from the server to their workstation, works on the file locally, and tries to merge their local work with what's on the server once they're back at the office)

* Uses HTML even for Articles instead of a new file format where a document consists in a single document (instead of independent HTML + JPG + CSS). Regarless of their technical ability, all users are inconvenienced with handling a document that actually consists in multiple parts, because this doesn't happen in word processors like Word. Would be nice to develop a server module for Apache that would perform on-the-fly translation between the CityDesk file
format to HTML when a user views a document from a web browser, just like I assume Manila/Frontier does

* No support for ACLs to limit what users can do with CTY files (eg. Read, Create, Edit, Manage like in Lotus Notes.), and no support for authentication and authorization once the site has been uploaded to the intranet

* No support for local encryption: Intranets typically contain corporate trade secrets, and this lack of encryption is an issue when users have their laptop stolen while away from the office

* What about copying the idea of different databases in Lotus Notes, where each database would live in a different site in CD: The CD client woul display a vertical bar on the left side like the one in Outlook (eg. R&D, Marketing, Sales, Administration, etc.); When a user selects a site, an outliner is added on its right, and an MDI pops up when a user clicks on a document. Most users like and are used to the Outlook interface, so that would make the transition easier, and doesn't require their lauching a web browser to view the contents of their Intranet

Keep up the good work

My ¥.2

Frederic Faure
Monday, October 15, 2001

All good thoughts. Obviously many of these ideas have occurred to us, and will come with time :)

In particular, we've architected the thing so that in the future, it will be very easy for us to implement a client server version (using SQL Server or Oracle). We've also arranged things so that we can easily implement replication just like Notes, allowing you to work offline on the .CTY file and then merge/synchronize over the internet or over a LAN.

But our general strategy is to start providing tools for small sites and small teams, and then add power features as time goes on. Don't worry, we have no intention of stopping working on this thing any time soon!

Thanks again for your valuable feedback.

Joel Spolsky
Monday, October 15, 2001

*  Recent Topics

*  Fog Creek Home