|
SETI@Home Monitor for OS/2 Setihome Client |
SETI@Home
monitor for OS/2 Setihome client has been uploaded on Hobbes
today July 30. 1999![]()
Archive Filename: ellie03r2.zip
(876KB) Description: 32 bit, multi-threaded, SETI@Home monitor
for OS/2 Setihome client. Discreet, low screen-estate, highly
configurable setihome monitor. Features: Skymap to show WU
origination, Percentage per hour graph, object-orientated s@h client
setup and control, alarms and more. Support for setihome.exe version
1.3 and so allows seamless client sessions and other command line
parameters configured from Ellie's settings notebook. (Build 03r2a).
![]()

Photo above shows the files inside the ellie03r2.zip
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/Res
et 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.
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.
CONTACT
Clive Email address: et@Cee3.demon.co.uk
http://www.cee3.demon.co.uk/ellie
@Macarlo,
Inc.
@Macarlo's Shareware & Web
OS/2
Java
Lobby Member
Java Site Accredited