Ellie03.readme. Draft 1. [for version r2a] -------------------------- Ellie is a multi-threaded application to monitor a running setihome.exe process on OS/2. Ellie has been designed with the multitasking abilities of OS/2 in mind. This means that she is not only multi-threaded but unobtrusive, elegant and quite happy sitting neatly somewhere on your screen while you go about your work on your computer. So, with OS/2, setihome.exe and Ellie, you can crunch the WU while working with Ellie only taking up as much or as little of the screen as you want. The program revolves around the 'Elliebar', an unobtrusive bar graph that you can place anywhere on your desktop. ______________________________________________________________________________ Installation: Unzip the ellie(version ID).zip to a directory of your choice. DO NOT INSTALL into the same directory as your setihome client. If you are upgrading over an old version you may install into the same directory ensuring that all files are replaced by the unzip program. Your ELLIE.INI file will be left intact and will be automatically upgraded as you use the program. [Step 1] Run INSTALL.CMD. Follow the instructions presented to you. The script will install a folder on your Desktop containing the Ellie program object, a shadow of a folder containing WAV files for use with certain alarm features of Ellie (especially for future versions), a shadow of this readme file and a shadow of the seti.exe client document. [Step 2] Please ensure to close your setihome.exe client session if it is running (unless you are running the client through a previous version of Ellie.) Double-click on the Ellie object in the Ellie folder. In the lower left of you screen you will find Ellie, quietly awaiting further setup. Right-click on the graph and select 'Settings' from the pop-up menu. Make you way to the 'Client Control' tab. At the top of the page is a grouping called 'Client Location'. We need to inform Ellie where your setihome.exe client resides. So, 1. click on the button '..' on the righthand side of the entry field and, from the file selector make your way to where setihome.exe is on your hard disk. 2. Select any file in the directory.. it doesn't matter which one as Ellie will discard any filename you select and use only the drive and path information. 3. Press Save. You may notice an LED on the EllieBar illuminate bright red. This is because Ellie may have suddenly found data she can use and finds interesting (before you told her where to find seti data she was idly scanning nowehere in particular!). So, don't worry. More information on this LED later. You should hear a beep or two as Ellie reinitializes the threads to point at the directory you selected. The items below this section, namely SETIHOME Client Control, should now be enabled. If you want Ellie to be able to control the setihome.exe sessions, choose 'Create SETI Client Object'. This will create a WPS object in your Ellie folder and copy the SETI.EXE in Ellie's directory file to your seti@home directory. (This file does not intefere with the setihome.exe client program but, as the object that gets created in your Ellie folder has an Object ID, it can be launched via the Workplace Shell.) If this process was successful, further options should avail themselves to you which take affect immediately. You can choose to start and stop the s@h client via the Workplace Shell and have Ellie automatically start and/or stop it whenever she herself is started or stopped. You can get straight to this notebook page by right-clicking on the leftmost LED and selecting 'Setup Client Control' from the popup menu. Ellie has now been setup. ______________________________________________________________________________ Usage: The first time you run Ellie, the bargraph will be in the lower corner. I shall refer to this window as the EllieBar from now on. The Elliebar is the 'console' or 'main menu'. It occupies little room and so allows some feedback for the user despite whatever they're doing. If you move the Elliebar or change some of its settings, they will be remembered between sessions. There are two LEDs beside the graph. The leftmost one signifies whether Ellie has control of the setihome client session. Right-clicking on the LED will bring up a popup as you would expect that allows you to start and stop the client or go straight to relevant pages in the Settings notebook. Remember, at this juncture, if you manually close down the client, Ellie will not know so the LED may still glow green (or conversly, not at all). Future versions of Ellie will be notified by the client but it depends on other matters right now. Right now, it informs you if Ellie has been configured to control the client or not and, if so, whether Ellie has launched a client (green) or closed it (off). The rightmost LED is 'live' that is, under the control of a thread scanning data that the client writes to disk. If the LED is dark (ie off) it means that no data has been found in the current WU being processed. If it is yellow, that means that the WU does contain 'interesting data'. You may notice that an alarm may sound and the LED glows red. This means that more interesting data has been found since the last poll. The LED will eventually revert to yellow in this case. Double-clicking on the LED will interrupt the thread for it to install the correct LED. (This 'Interesting Data' (or rather Spikes and Gaussians) is subject to various design and data massaging at this stage of the game. Expect to see more functionality in (near) future releases of Ellie.) Right click on the Elliebar or around it and up will come another popup menu offering further options:- POPUP MENU: The Settings notebook: WU Alarms: --------- This notebook page allows you to allocate alarms to sound at a defined percentage achieved value (say, at 50%) and/or at a defined 'minutes to go' value by using the slider object or spin buttons to set up values accordingly. The types of alarm include (and are not exclusive of each other) a flashing clock, a flashing bargraph and a beep. Furthermore, the length of times these alarms sound for can be chosen (so, for example, you could have the clock flash for one minute with the bargraph flashing for an extra minute while the computer beeps all the while and for another ten minutes thereafter). One can also elect to have a logfile generated by ticking the respective tick box and entering a filename in the entry field supplied. The alarms take affect on closing the notebook or pressing the Apply/Reset button for them to reinitialize immediately. Pressing Alt-Space on any of Ellie's windows with silence a sounding alarm as will double-clicking the clock icon on the Progress Window or using the popup menu presented from right-clicking on it. For windows with a system menu, you will have to press Alt-Space quicly in succession otherwise OS/2 will offer you its standard System Window menu list. Please Note: Ellie gathers its information from files written periodically to disk by the setihome.exe client. While I have witnessed the odd 100% complete, usually all data updates seem to stop at the 97% mark. This seems to be a bug with the client in that it stops writing to disk at about this period for reasons of its own despite it continuing to process the WU. As a result, alarms to sound at or near the end of a WU process will sometimes never sound. As far as I am aware, this is not a limitation of Ellie.. she just hasn't been given the relevant information by the client! Polltimes: ---------- Changing the value for the WU Progress slider will change how quickly Ellie syncs with setihome.exe. The poll time is reflected in a button which you must click to set the polltime you may have selected. Changes take affect immediately. You can also choose how often Ellie looks to see if setihome has found any 'Interesting Data'. Similarly, there is a button to have changes take affect immediately. Beside the 'ID' poll setup is the alarm setup for this thread. You can disable all alarm noises, opt for a beeping from the PC's speaker or use a WAV. If there is no WAV in the container, double- clicking there will automatically open the EllieWavs folder. Drag a WAV file from there (or anywhere else, of course). Once a WAV is in place, double-clicking it will play it through the OS/2's multimedia subsystem. Client Session: --------------- This is where you can setup the client's priority and how it reacts after the WU is finished with. Pressing the Advanced button brings a window up for you to specify what batch files/programs/scripts are run before (PreProcess) and after (PostProcess) each client session controlled by Ellie. You may also enter the name of a logfile where detailed information is written. The 'mini-VIO' tickbox controls the size of the client session. Unticking it leaves the VIO screen at default, ticking it reduces it to 40x10 (my preference). I have a few ideas (especially for 4OS2 users which seticlient detects) but if you would prefer a different size etc, let me know. You may instruct the client to run minimized. If you opt to run the client as a seamless session (setihome v1.3 and above only), you can see the output of the program by selecting 'Open.. client session' from the Elliebar popup menu (which can also be accessed by double-clicking on the clock). This window is sizeable and will remember dropped colours and fonts. A seamless session will be launched and terminated along with Ellie. Changing any of these settings requires you to select 'Apply'. This will update the Seticlient object with new paramters for subsequent client sessions. I have plans to automatically recycle the client but for now, if you want changes to take effect, click on the Client Control tab, stop the client and restart it. 'Version information' displays the version information of the client. Misc: If you have SysBar/2 installed on your system, you can configure a Pipe Listener which Ellie will output to. You can also create an URL to go straight to your stats page at seti@home. Titlebar Display: ----------------- Will display a submenu enabling you to choose what data is displayed in the title bar of the progress window which updates in realtime. This information is also reflected in the Window List or the Minimized Windows folder. If you select Name, the titlebar simply displays 'Ellie'. This is to accomodate users with virtual desktops that rely on information in the Windows List not changing. You can choose to display: o The current progress percentage of the current WU, o The estimated time it will take to complete the current WU at current system load, o How long it will be before the current WU is completed at current system load, o How much time the CPU has spent crunching the current WU. o The percentage per hour rating for your machine and WU. Show Clock: ----------- This brings up an analogue clock showing today's time. This menu item changes to Hide Clock if the clock is showing. Ellie will remember the fact you had a clock showing or not when you close her down. You can also double-click the clock to quickly (re)display the Progress Window. Refresh: ------- This interrupts the WU status thread and updates information here on the titlebar and elsewhere in the program. Remember, it can sometime take the setihome.exe client up to 60 seconds before it updates its status for Ellie so if you ask Ellie to refresh her data and the s@h client hasn't written anything new to disk, Refresh will have no affect. Pressing F5 here (and elsewhere in the program) will cause a refresh too. Open..: (This menu can also be displayed by double-clicking on the clock). ------- You can find lost windows by surfacing them from this menu ( Ellie will remember where you position her windows and if they were open you close her down). A submenu will display giving you the choice to display various information regarding the current WU process. Progress Information Window: This window displays time orientated information for the WU being processed. Right-clicking on the clock icon in the bottom left of this window will present a menu with the following options:- - Calibrate - Use SETI timings - Use Ellie timings. All timings are calculated directly from the data written out by the client. However, switching over to Ellie's timing mean actual times are compared through the course of many polls and thus present a more indicative representation of how system workload affects the time it takes to process a WU in its entirety. On a completely idle machine the SETI timings and the Ellie timings should settle down be practically identical. However, as a machine is used you should see the Ellie timings start to represent the fact that clock cycles have been taken away from the client. Let's find out if the theory holds :) . Status Window: This is really a leftover from v01. Expect to see more 'sweetened' data in subsequent releases of Ellie. Currently, it simply shows a view of the state.txt file as being updated by the s@h client. Percentage Per Hour graph: This window will display an updating graph of the percentage per hour progress of the cureent WU process. Currently, the graph has two scales: 100% where the height of the graph represents 100%; and 10% where the height of the graph is 10% thereby 'zooming' in on the plot so as to allow a more detailed view of fluctuations. I shall incorprate more 'zoom' scales if this proves popular and/or useful. By selecting 'Show Progress', another graphical representation of the percentage done value is superimposed on the graph in a different colour. The text values in the top left of the graph are of the same colour as the plots themselves. Double-clicking the graph will bring up a small window to allow you to choose what colours you want the graph and its lines to be. Unfortunately, as of now you will have to close the window and re-open it for the colours (mainly the background colour) to take effect. I hope to address this soon. Client Session: This window will display the output of a seamless client session. Ellie will remember where you place it and what colours and fonts you drop into it. Right-clicking will bring up a popup menu allowing you to save the contents of the window to a file, clear the contents and stop and start the client. Closing this window does not affect the running of the client. Skymap: This will display a map of the night's sky along with a flashing yellow cross icon representing the origination of the data in your current WU. Right-clicking on the map will present a menu to choose different sizes (from quite small to rather large) of skymaps and a (basic as of now) WU information window. If the titlebar of the Skymap somehow finds its way out of your reach outside the boundaries of the monitor, there is an option to centre the window on your desktop. Expect some seriously fun things to occur with this map in (near) future releases of Ellie... !!:) You can also gain access to Ellie's desktop folder and her URL folder. About: ------ Displays version information for this program. Double-clicking the SETI logo will close this window as will pressing ESCape (the Escape key will close almost all of Ellie's windows). ______________________________________________________________________________ Author's Note: This is Version 0.03 of Ellie. There are plenty of other features awaiting activation. The important issue for me at this moment in time has been getting the thread engine stable and the design personality of the program in place. If this candidate appears stable, I can add further features safe in the knowledge that the core functionality of the program is solid. It is so easy to chase the 'eye candy' while ignoring the actual internal design of a program. SETI.EXE This is a 'wrapper' program I have written to provide mutex semaphoring of the actual client and so prevent monitor apps launching multiple instances of the client. It also allows logging of sessions to a definable logfile and the running of scripts/programs/batch files before and after a client session. By using seti.exe, 3rd party apps can detect whether a setihome.exe client is already running. If you prefer to launch the client by means other than various monitor apps, please run seti.exe without any parameters for a usage guide or see the Seti.txt file in Ellie's folder. If you want to incorporate seti.exe into a application/script/etc you are writing, please contact me. I have further plans for Seti but would welcome involvement from others. Currently supported apps: Ellie v02 or higher CQ verson 1.3 or higher. ______________________________________________________________________________ NOTE: There is an inherent problem with having any application other than the setihome.exe client opening a file that it expects only to be opened by itself. As the client and various monitors are running in 'realtime', if one application is reading a file while, =at the same precise time=, another program is writing to the same file, a conflict can arise. Ellie will simply wait and try again for a few times, however setihome.exe will die gracefully. SETIHOME.EXE v1.2 was not designed with 3rd-party realtime monitors in mind therefore if it attempts to write an important file while finding it in use by another application it will 'fall over'. This is not a reflection on either the people who wrote the setihome.exe client or the authors of any 3rd party monitor application. It is simply because the situation was not anticipated at the design stage of the setihome.exe client and precautions were not written into the setihome.exe code. There are ways around this. If setihome would wait for a while and try a few times without falling over when it finds its files 'owned' by someone else it would help enormously. But there is a failsafe method. OS/2 itself offers a developer very fast system semaphores to protect against exactly this kind of situation. With semaphores, it is OS/2 who decides when data can be read/written. It is hoped that the next version of the setihome client will support 32bit system semaphores. This will practically guarantee one hundred percent stability as OS/2 would be allocating access with microsecond accuracy. The other method open at this stage is for any third party app be extremely swift about opening/reading/closing data from files that, basically, do not 'belong' to it. Ellie has been designed to be as fast as possible in obtaining data from the setihome client's files. It currently takes a hundred times longer to =display= data than to read it. For systems with Fixpack 6 or higher applied there is another method. I shall be integrating this into Ellie 03. ______________________________________________________________________________ I hope the program works for you. KEEP ME INFORMED!!! If it breaks, looks nothing like my screenshots I need to know!! If you can think of a feature, let me know!! Clive (et or ellie@Cee3.demon.co.uk ) ______________________________________________________________________________ Ellie ? The program name comes from the book Contact by the late Carl Sagan. A film was made of the book but, as you would expect from Hollywood, many key points from the books were ommited. If you're running SETI@Home, I urge you to read the book (and =maybe= see the film.. the opening minute is tremendous). ______________________________________________________________________________ Disclaimer: the program is only guaranteed to take up disk space (I'm a Brit dealing with Americans so you cannot blame me!! :-) ). DEREG.CMD will unregister Ellie's OS2.ini file references and objects from the Desktop.