Thoughts about what to do ...
What I'd Like To Do And Can't
Published on September 24, 2004 By Michael Burris In Welcome
Hmm. A killer widget, that would make DesktopX a must-have, and would promote skinning. This means it must have universal appeal for owners, and universal appeal for creators. In other words, it can be attempted at all levels of scripting, and is an accessory that everyone wants.

I think that there isn't any one thing that everyone wants, so the widget must be several things. If there are several things, then there can be some that are at a beginning level for scripters and graphic artists, and there will be others at a more advanced level. This satisfies the first level requirements.

To me, this says, “Widget Kit”. The Killer DX Object is a master script that will create a widget or object, integrating various modules *selected by the user*. This is high-powered scripting, but that can be made by a pro.

The easy (but tedious) way would be to create all possible variants of scripts, and to just copy the ones the user wants. (This may be impossible in practice, since the number of possibilities is huge.) I’m not really in favor of this option, ‘cause it’s clunky and inelegant.

The intermediate, intelligent way would be to store everything in variables and have some seriously indirect addressing. (This may actually be easier for humans to create than the first option.) This may be immediately possible, but not many people can wrap their brains around indirect addressing, so the initial scripts would not be understandable to everyone. Fortunately, only the initial setup script would be that convoluted, so modules would be straightforward. This approach may increase the processing load required, however.

The hard but really cool way would be to have a script that actually wrote another set of scripts, uniquely hardcoding in the variant settings of the user. (Hopefully this will not require actually using LISP.) I honestly think that this may be the most flexible and useful way to approach this, because it would be the easiest to maintain and update, even if fewer people would understand it. The down side is the possibility of extending this concept to viruses, trojans, etc. – which is why I haven’t proposed this earlier.

The specs for the modules needs to be stringent, and iron-clad, so the beginners can have confidence that their creations will not hose a users setup, that they will work, and so that a scripter can keep creating modules without having to go back and update all his old ones. From a users perspective, any module that follows the guidelines will “play nice” with the other modules - if there are *any* problems, this widget won't be a must-have. Perhaps there should be a script-based module “validator”, too? (Also hopefully not in LISP.)

This means a well-thought out and comprehensive set of specs. I can't emphasize this enough. A great deal of the module design must be constrained, while allowing maximum freedom for graphic style and module functions.

So the derived requirements are that it will be a module-oriented desktop helper with comprehensive specifications on how the modules communicate, how they are invoked, how they quit, what variables they may use, and how they make their presence known to the master script.

My beginning ideas:

This is a tab that will slide out from the edge of the screen (any edge not used by the taskbar) on a user-specified signal (mouseover, click, etc.) This tab initially shows a series of buttons, one for each function installed. Initial functions could be:
• Folder - shows a certain folder contents; basic, easy script
• Calendar - tutorial already done
   -  Standard Calendar display
   -  Outlook integration – appointments and to-do list
• MP3 Player - moderately easy using Stardock MP3 player
   -  Separate panel for play list manager?
• Machine statistics - plugins available, moderately complex, several configurations needed
   -  dial up internet vs. DSL/Cable
   -  CPU stats
   -  WinCustomize Stats
   -  Disk stats
• Calculator - basic objects done, conversion shouldn't be a problem
   -  Unit conversion, scientific calc, graphing calc?
• Character Map - possibly very easy, but what do I know.
• Text area
   -  Notes - just a small text editor window; no save or load files, but data is persistent
   -  Clipboard - Notes with save/load/copy/paste
   -  Notepad - full on text editor in the box
• Launchpad - collection of icons for easy access, basic DX object
   -  Autoconfigure one for Object Desktop components?
• Weather checker - tons exist, conversion should be easy
   -  Version for dial up – only retrieves data on command
• World time - Large analog clock, list of digital clocks, and possibly some alarm settings.
• Virtual desktop manager - good place to have it
• RSS Feed – convenient
• Stock Ticker - convenient
• Hardware monitoring - fax, scanner, printer, CD burner, USB drive status, webcams
• Tetris, Minesweeper, etc.
• Mini-video player – fixed location and resolution: you want it bigger, run a bigger app!

Anything that can be shown in a minimal space, that you would want quickly, easily and continually, would be a candidate for a module. And of course, modules might have different interfaces for left/right sides or for a system that docks to the top or bottom edges.

When one of these buttons are activated, the button panel slides out of sight/morphs/fades away/whatever, revealing the function panel. Either the function panel needs to have a button to return to the button panel, or the design of the tab shell will make one available at all times. The tab will stay on the same function until manually changed, even if it's out of sight or off the edge of the screen.

If you'd like to take these ideas and run with them, be my guest. I'm posting them because I'm too busy and not talented enough to actually create the stuff that I can see in my head.

Comments
No one has commented on this article. Be the first!