Research Interests
This page describes a few of my research interests, both from my “day job”, and things that just interest me. Looking at the list, I can see why I have no time. I will try to update this page as my interests change, and may create some sub-pages for areas in which I am more active.
Document Generation
Obviously, given my role at Whitehill Technologies, I have a great interest in document automation/document generation technologies. Over the past few years, areas of interest have included:
- Document Generation through Word Automation, manipulation of Word binary formats, and direct generation of WordProcessingML/Open XML
- Document Generation via XML, XSLT, XSL:FO, and related technologies
- Software architectures for efficient document generation and document automation
Document Centric Workflow
Over the last 3 or 4 years I have been interested in looking at workflow problems which centred largely around document. For example, in a law firm, many work flow processes such as proforma/prebill processing, new business intake, and conflicts review, involve the routing of a document to one or more (usually more) people for review, comment, annotation, or other action. Beginning about 2 years ago, I developed the concept of an “intelligent document” (I originally used the term “smart document”, but then realized Microsoft was already using that term for something else), a document which not only has content and presentment, but which “knows” its own state in a workflow, its own history, and the activities in the workflow of which it is a part. Storing this information in the document itself is an alternative to maintaining a centralized workflow database which knows the state of all workflows. The coding logic for routing the document could also be embedded in the document itself (almost making it an autonomous object), or, the document can pass through a central server. This is the model we hav used in Whitehill for our BPI for Legal solutions.
Microsoft Office Integrated Solutions
In the past five years or so, the difficulty involved in developing solutions which live inside the Microsoft Office ecosystem has become less and less. Also, with the introduction of Visual Studio Tools for Office, and the latest versions of WSS and Sharepoint Server, it has become easier to create integrated solutions based around the familiar Office UI. I continue to play in this area, in conjunction with my work in Document Centric Workflow, looking for ways to leverage this technology to facilitate automation of office processes.
Search Result Visualization
As I have mentioned in several of my posts, I have some real issues with the way search results are presented to me. Okay, search is infinitely better that it was 10 or 15 years ago. At least the first 2 pages of results are not porn sites usually. But why hasn’t the user interface for working with these results gotten any better? I still see the exact same UI I did many years ago – 10 items, next, 10 items next….
How does this help me find anything? If I never search for anything that isn’t immediately obvious from the first 2 or 3 hits, then this is useless. But if I am searching for something of the nature of “I will know what it looks like when I find it”, or if I am actually researching a topic, I need a better UI for working with search results.
Innovation Processes and Tools
How does innovation work? What is innovation, anyway? How can I have more of it? Do I need more of it? Can I build a process around innovation to make it less “accidental”? Can I build a process around it without destroying the creatice process?
Can I answer any of these questions?
Software Engineering Process
I used to be much more interested in this than I am now. While I still actively follow discussions in this area, and spend a lot of time reading about ahile processes, heavy processes, and all the other variants out there, I find the whole discussion a little annoying at times. The topic is still very important, and it is important to have a process and know what it is, but being religiously affiliated with any of the major camps is beyond me right now.
Collaborative Computing
The web started out as a platform for sharing information, for collaborating, and for adding to the collective knowledge base. Newer technologies and approaches (not just on the web, but across the network in general) lead to immense opportunities for people to collaborate to solve problems, whether you are organizing a raid in WoW or addressing somewhat more important issues like hunger, poverty and global warming.
How can the tools we have now be enhanced to really take advantage of these possibilities? How can we take advantage of models such as open source software development, wikis, etc. to take these activities to the next level?
User Interfaces and User-Centric Design
I have a tremendous interest in (and many opinions on) User Interfaces, and User Centric Design. I have very little tolerance for bad user interfaces, many of which could be fixed without major technology investments or paradigm shifts. The vast majority of bad UIs are the result of laziness, lack of guidance, and/or bad fundamental assumptions. All of these things can be fixed without undue effort.
On the other hand, moving beyond a UI which simply qualifies as not being bad, requires a significant shift in the way many of use develop software, including changing our focus from the computer to the user and the user’s goals. This is where my primary interest is when it comes to UIs – how do I create user interfaces which allow the user to continue to operate in their own space, and be thinking about what they are trying to accomplish, rather than how to coerce the computer into letting them do it.
Robotics & Artificial Intelligence
Ok, what nerdy computer science/science geek has not dreamed of building a thinking machine, a robot friend, or something similar? this area is still fascinating to me, and I dig into it every few months as time permits.





