Just wanted to post a thought I've had for a while now, as well as mention my latest project.
so almost a month ago, some friends and I decided we would develop an application that would phasilitate quick access to information, by pressing a hotkey, choosing an API from a list and searching for information. This has already been done in different ways with JAWS for Windows' Research it, and more recently with Accessible apps' QSeek. Both of whitch are paid, as well as closed source. Our project, Queriet (the quick ubiquitous extensible research interface enhancement tool), aims to provide an extensible core that anyone with python knowledge can easily write plugins for. It uses wx python for the user interface, system tray icon, as well as hotkeys, Yapsy for plugin management, and Updater4pyi for an autoupdate system. When completed, it will allow users to quickly look up information such as a wikipedia article, Reddit post, Urban Dictionary word or phraise, support complex mathematical operations with Sympy, quickly hash files, retrieve top news stories, and more. Once the core is fully implemented, plugins will be easy to make - either inherit and customize a stock user interface panel or design your own, hook it up to some module that returns data (or write your own!), create a file with metadata about the plugin (name, author(s), version, description), and that's it. The core will show, hide, and display results from your plugin in what ever way your panel defines, and most likely allow users to install, remove, disable, and enable plugins via a user interface dialog.
All this brings me to the main point of this article: It's been almost a month, and although we're not developing particularly fast, we're just now getting out of the stage of building the low-level "plumming" stuff. Maybe it's because (as far as I know), neither my friends nor myself have developed an application geared toward end-users before. This includes things like creating pretty user interfaces with a menu bar and dynamic elements, configuration dialogs and getting basic configuration / validation working, logging, an autoupdate system, hotkeys, a system tray icon -- all things you would expect to see in a polished application. All this is known as "plumming", or basic things that any application needs.
I guess the point of this post is to sort of introduce my new project to anyone who reads this blog, as well as to point out the low-level app-development stuff that I (and maybe some programming-oriented readers), might not have thought about. If you'd like to contribute to Queriet, either with code, design suggestions, or visual user interface feedback (which we sorely need!), feel free to file an issue or fork, make changes, and file a pull request.
Until next time...