KeyNote: Help wanted

Since version 1.0, KeyNote has been an open-source project, based on Mozilla Public License. The program is already fairly complex, and that complexity will increase significantly in version 2.0.
I have put up this page to welcome assistance in developing version 2.0 of KeyNote. There are a lot of tasks where other programmers - and users! - could help with. Some are time-consuming, others require skill or talent that I do not have. Below is a list of such tasks, for both applications. If you'd like to participate in development, please email me at webmaster@tranglos.com. Thank you!

General areas:

  1. Programming (Borland Delphi; other compilers can be used for building DLLs)
  2. Programming-related
  3. Design and support (No programming skills required)
  4. Testing (No programming skills required)
There is a mailing list for developers and testers of KeyNote. KeyNote-dev list is meant ONLY for those who work (or are planning to work) on KeyNote development (incl. plugins, related apps). This list is also meant for beta testers, as soon as version 2.0 is available for testing. If you plan to do take on any of the KeyNote-tasks listed below, you may want to be on this list. Here's a description:
KeyNote-dev is a mailing list for the developers and testers working on KeyNote, a freeware/open-source Windows notebook (http://keynote.prv.pl) and related applications and plugins. Please note this is NOT a support group for general questions or discussion. Attachments are allowed, but please use them with caution. This group is not moderated. Only group members have access to the archive. You can post files, create polls, edit databases, etc., if you find these features useful.
For other mailing lists related to KeyNote, PhoneDeck, KookieJar, Oubliette and other software I wrote, please see this page.

Please see also:

A. Programming

Programmers: please see also this document.
  1. Plugins - KeyNote has supported plugins for more than a year now, but so far all the available plugins have been written by yours truly. This is the major area where I could use some help. You do not need Delphi to write plugins! You do need a compiler which can generate standard Windows DLLs. For version 1.x of KeyNote, please see the Plugin Development Kit. Note that the plugin interface WILL CHANGE for KeyNote 2.0, so please contact me for details. (I am not sure if I will preserve compatibility with current plugins - there are not too many right now, so perhaps there is no need to do so.) Examples of plugins which could be written:
    • phone dialer
    • to-do/reminder with alarms
    • import/export with file format conversion (e.g. RTF-to-HTML and back; other formats)
    • PDA integration (see below in this section)
    • integration with browser bookmark lists (Internet Explorer, Netscape/Mozilla; Opera)
    • spell-checker (must support RTF)
    • file downloader (e.g., download an HTML document and add it as a tree node to a .KNT file)
    • integration with Web-based search engines (get a keyword from KeyNote and return search results - particularly useful for looking up terms in online dictionaries, thesauri, etc. Ideally, the plugin would return query results in a nicely formatted way, removing any extraneous content, ads, etc.)
    • email KeyNote notes (function currently built-in; should be implemented as a plugin; could use MAPI or a built-in SMTP implementation)
    • A custom indexer/search engine for KeyNote files (regular expression search would be nice to have; note that using regexps for RTF data is non-trivial)
    • Database query. A plugin prompts user for a query, goes to the database (e.g. mySQL, perhaps Access?) and returns query results in a format that KeyNote can display. (KeyNote 2.0 will support grid display.)
    • anything else you can think of...
  2. File formats: reverse-engineering - I am not good at this at all. KeyNote is most useful if it can import and export data created by other applications. The list of third-party programs to support is long, but usually the file format is not documented anywhere. If you're good at figuring out binary file formats, I could definitely use your help.
  3. Unicode / DBCS support. This is another area I know very little about, and since the concept of using two bytes per character breaks every text handling routine I'm aware of, I'm really not that interested in looking into this. Ideally, another programmer could take the source code and maintain a Unicode/DBCS-compatible version.
  4. Interfacing with Internet Explorer using IE ActiveX control and COM objects - this is an area where Delphi documentation is scarce and I need serious assistance - code, or conceptual help. (Example: an IE helper object to get selected text from the browser and send it to KeyNote. I have no idea where to begin.)
  5. Localization - I don't yet know how to do this correctly, without using any third-party solutions. Language files need to be plain text, so that users can edit them, and have to be loaded dynamically with minimum fuss (also for dynamically created forms.) There should be no need to retranslate after a program update (any new, untrsnalsted strings would be displayed in English, but there should be a way to export them to the language file so that users can update the translation, if they wish to do so.)
  6. PDA integration - this is a major task, and would extend the functionality enormously. This can range from simple solutions (export/import of plain text or CSV data) to a full conduit and perhaps even a trimmed-down, PDA version of KeyNote. if you do the latter, your application can be freeware, shareware or commercial, as long as it can represent KeyNote data on a PDA.
  7. Printing - this is another area I have little experience with. In KeyNote, printing is complicated by having various kinds of notes and nodes (how do you format print an RTF document and a grid on the same page? How do you print a treeview side-by-side with text of the tree nodes?)
  8. Code modules - various areas of KeyNote's functionality can be delegated to DLL modules. For instance, in KeyNote 1.5, HTML import/export and keyboard customization are entirely encapsulated in a DLL. Such areas and program functions can be defined and developed separately, not necessarily in Delphi.

B. Programming-related

  1. Creating sample files - sample data files need to be created to demonstrate major features of the program. These files need to be updated when more features are added. (Sample files should be separate from documentation.)
  2. Sample macros and templates - creating and/or collecting macro and template files which could be useful to many users.
  3. Ideas for plugins - KeyNote needs plugins. They need to be written, but first they need to be invented. Let me know what would be useful or what you can do.

C. Design and support (non-programming)

  1. Documentation - creating, maintaining and proofreading Help files (in .HLP or .CHM format). These are actually two separate tasks: ideally, the person who writes documentation is not the person who proofreads it.
  2. Website design and maintenance - I'm doing OK with the one you're now reading, but I haven't yet had a chance to work on the SourceForge site for KeyNote. And of course, if you have an idea for a better layout, your thoughts and/or design skills will be very welcome!
  3. Graphics - I am hopeless when it comes to creating graphics. It would be nice to have a logo for the website, as well as a small button for each application. Such buttons and logos could be used in documentation and in the applications' "About" boxes, but most of all, they are useful for other website owners who would like to link to this site. Here is a detailed list of graphics-related needs for KeyNote 2.0.
  4. Interface graphics - it is not necessary, but it would be nice :-) to have a custom set of toolbar bitmaps for KeyNote. These should be sets of small (16x16) 16-color bitmaps or icons representing the most commonly used commands. Again, please see the graphics ideas list for details.
  5. SourceForge site maintenance - I have created a SourceForge account for KeyNote (http://sourceforge.net/projects/keynote/), but it's unused at the moment. It would be much more useful than the current YahooGroups site for managing source code, mailing lists, and distribution. I have not yet had a chance to figure out how to use CVS. SourceForge maintenance is listed as a separate task, because it is going to require a considerable amount of work, and some specialize software as well (for file transfers). The SourceForge site for KeyNote has yet to be designed, but we could start using it very soon, if a need arises.
  6. Submitting to software archives - this involves searching for software archives or indexing sites, submitting applications to them and updating the information. This has to be done fairly consistently, at least after every major update. (Updating is important, because new or updated applications are typically listed on top.) Since each site tends to have its own rules, it takes some care and quite some time. I have spent many nights just submitting my apps to a dozen or so websites. Be warned: it's a headache.
  7. Localization - When KeyNote is prepared for localization, I will need translators. (For software only; I don't expect to be translating or managing the translation of documentation or the website content.)
  8. Website mirrors - search for and/or maintain mirrors of this website, or possibly find sites where distribution packages could be uploaded. This site is slow and I often receive complaints about incomplete or corrupted downloads.

D. Testing

Each new release needs to be tested on various versions of Windows. Ideally, I would like to enlist a group of testers, each responsible for testing one application in a particular, well-defined environment. I am developing KeyNote on Windows 2000 Professional - and this is the only system I can personally test the application on.

In the table below, a blank checkmark [blank] means I still need testers for a particular environment; a checked box [checked] means I'm already in contact with a sufficient number of testers for the category.

Windows versionKeyNoteNotes
Windows 95
Windows 95 OSR 2
[checked]
Windows 98[checked]
Windows NT 4.0[blank]
Windows ME[checked]
Windows 2000[checked]
Windows XP[checked]

Further, some aspects of each application (saving/opening files, hyperlink support, etc.) need to be tested on networked systems, where files are accessed on network drives. KeyNote 1.x does have some issues there.

If you'd like to help with testing KeyNote, please let me know what system(s) you would be testing on - just the version of Windows, version of Internet Explorer (if installed), and whether you have access to a local network.

If you are not using Internet Explorer, and there is no version of IE installed on your system (or if you are using a version earlier than 4.0), I really need to hear from you.

Please note: Testers need to be fairly experienced computer users. I only mention this because I occasionally receive bug reports which simply say "Function X doesn't work", or "KeyNote crashed", which are practically useless when it comes to fixing the problem. Testers are expected to do much better than that :-)

Valid HTML 4.0!