New Projects for |
||||||||||||||||||||||||||||||||||||||||||||||||
"Triever"—A Pop-up Search Program |
The aim of this project is to re-implement Triever, an innovative and popular program written by Martin Green in 1994. (Unfortunately Triever’s source code is not available to Blueberry.)
Triever was a program designed to replace "bloat-ware" databases for simple applications. It was a local search engine that worked on simple, comma-separated variable (CSV) text files, and allowed users to perform incremental, fuzzy searches and see the results in sub-second times. The program was memory-resident and popped up when a hot-key was pressed.
Although the Triever concept may seem very simple, the project raises some interesting questions:
Triever was very useful for searching dictionaries, catalogues, address books, on-line computer manuals, etc.
Edinburgh Fringe Scheduling Program (Two Projects) |
The objective of this project is to produce an interactive web site or a stand-alone GUI program to help a user plan a trip to the Edinburgh Fringe.
The Fringe is a collection of hundreds of shows, performed at over a hundred venues throughout Edinburgh, sometimes at different times on different nights. How does a visitor devise a schedule to see as many of his favourite shows in a given number of nights whilst minimising walking between venues—using only a printed catalogue and a street map? This is quite a challenge without a computer system!
There are several approaches to this problem—here are two possible projects:
A computer system that solves this problem could also be applicable to many similar scheduling problems.
Windows "Path" Editor |
This is a simple project to create a Windows utility that allows the user to review, change and make use of the current "path" settings. The program should:
A more sophisticated project would be to integrate this utility into Windows Explorer.
Network Clipboard |
The Windows clipboard allows the user of a PC to copy information from one application to another by pressing a "copy" hot-key in one application and a "paste" hot-key in another. Imagine a network-wide clipboard that allowed users to copy information from one PC to another, by pressing the usual Windows "copy" hot-key on one PC and then pressing a special "paste from Network Clipboard" hot-key on another. This would be a very useful utility for a group of programmers working together in one room, or for a systems administrator with several PCs on one desk.
The project is to design and implement a network clipboard utility.
The simplest version might work as follows:
A more useful version would support more than two users, like this:
Even more sophisticated versions of the utility could display the contents of all the Windows clipboards in time order: the most recently copied item could be the default choice to be pasted. Or the copies of the utility on each machine could each store several copied items, that could all be copied between the PCs on the network.
The utility will probably use TCP/IP to communicate between PCs, and C++ to interface to the Windows clipboard.
Python/VCL Interface |
Python is a relatively new scripting language that is cross-platform and object oriented. It has support for GUI forms through TCL/Tk. However, on the Windows platform, Borland’s Visual Component Library (VCL) provides a much richer GUI model, with large numbers of additional plug-in components.
The object of this project is to interface Python to VCL, so that Python scripts can interact with VCL components, handle events, etc.
This is a highly-technical project that will require a person who either knows VCL or can learn it in detail. On the other hand, if completed successfully, it will be an impressive achievement. Borland have recently announced "Kylix"—VCL for Linux—so the Python/VCL combination could also be ported to Linux. Kylix could be the only serious RAD tool for Linux for some time to come.
Python/VCL "SuperGrid" |
Python is an object-oriented scripting language with a very rich data model: it has built-in types for strings, tuples, lists, and dictionaries. VCL is Borland’s Visual Controls Library, an extensible system for building GUIs from plug-in components. The project is to develop a new VCL grid component that allows users to display and update arbitrary hierarchical Python data structures.
A normal grid component shows data records in a simple, table-like structure. The "SuperGrid" should support the full Python data model, nesting display and input controls to any required level. Since there are several ways that lists, dictionaries, etc. can be represented in a GUI the grid will require configuration data: a second hierarchical Python data structure.
Blueberry is interested in researching ways of developing applications more rapidly. This "SuperGrid" would be a step towards this goal.
Workgroup E-Mail Server and Client (Two Projects) |
Blueberry believes that e-mail systems still offer relatively limited functionality to their users. As e-mail becomes ever more important there is a need for more sophisticated e-mail management tools.
Some examples:
The problem with existing e-mail systems is inflexible design: clients are mainly single-user programs and messages are stored in over-simple, non-standard, private databases.
Blueberry would like an SMTP/POP3 e-mail server that stores all incoming and outgoing messages, and all users’ address books, in a well-designed, shared SQL database. It should be possible to implement such a server as an add-on to existing SMTP/POP3 servers.
Given such an e-mail server, it should also be possible to design and implement an e-mail client with many innovative and useful features for users in workgroups and companies. After all, the user’s e-mail clients can access all messages, past and present, incoming and outgoing, via SQL queries.
Here are some features we’d like to see in the e-mail client:
The e-mail client is a larger project than the server, because it will also have to support all the features of ordinary e-mail clients in order to be useful. The e-mail server project does include some complex database design, but this design will also be affected by the desired features of the client. Although the server and client can be developed separately, their designers will probably have to collaborate on the database design.
![]() |
|||||||||
![]() |
|||||||||
|
Contact Us |
|||||||||