[guide-user] Is there any chance someone will pick up the guide 9 update?

Bill Gray pluto at projectpluto.com
Wed May 28 17:50:45 EDT 2025


Hi all,

    First,  my thanks for the many kind thoughts about the software. 
I've been giving a fair bit of thought over the last decade about what 
to do with it.  I'm still puzzling it out,  but I hope the following 
ramble gives you some idea of what might happen.

    I no longer have any real interest in profiting from Guide.  It was 
a delightful way to earn a living for a couple of decades -- more on 
that below -- but I've moved on to other projects.  However,  it's still 
(mostly) usable software,  and I wouldn't want it to just vanish.

    The ISO itself is available for free download at :

https://drive.google.com/file/d/1ynKy_hfbr2duvCXyHDxFj0KPleNaHKC8/view?usp=sharing

    You'll get a warning that no preview is available and that,  at ~3.3 
GBytes,  it's too large to scan for viruses.  After that,  however,  you 
can download it,  put it on a DVD,  and install it.  (I think you can 
put it on a USB drive and install from that,  though I've not tried it.)

    I do want to post the source code,  and expect to do so.  There are 
problems,  though.

    As has probably been apparent,  I'm not very interested in 
maintaining Guide 9,  and I would not strongly encourage others to try 
to do so.  Generally speaking,  I've been perfectly happy to post source 
code for all to use :

https://www.github.com/Bill-Gray

    In particular,  the 'lunar',  'sat_code',  and 'jpl_eph' libraries 
form some of the underpinnings for Guide,  supplying the functions for 
basic astronomical calculations,  artificial satellite positions,  and 
high-precision planetary ephemerides.  Find_Orb uses these as well,  and 
many people are getting good use of the source code in their own projects.

    I have carefully revised those libraries before posting them.  The 
code is commented and makes sense.  If a potential client saw them, 
they would be (or at least should be) impressed by them.

    The source code for Guide itself is... well... less impressive. 
Actually,  it's downright embarrassing.  This is mostly due to its long 
and tangled history.

    In mid-1992,  I quit my job and started writing Guide 1.0.  By early 
1993,  I was able to get a batch of CDs burned and could advertise in 
_Sky & Telescope_.  Jari Suomela posted a scan of that ad a few years back :

http://clayhole.com/20180121_193520.jpg             [0]

    I may have exaggerated a little when I wrote about the "intuitive 
user interface".  I'd stand by the rest of the description,  though. 
This was a DOS program;  Windows was in its infancy.  Screenshots :

https://www.projectpluto.com/temp/guide1.png
    (default view of sky around Big Dipper)
https://www.projectpluto.com/temp/guide1_b.png
    (zoomed-in view of Jupiter & Galilean moons)

    Its main feature was having the Hubble GSC,  version 1.0,  as the 
basis for star charts.  The program seems almost unbelievably primitive 
to me now,  but almost every copy I sent out resulted in a reply saying 
the user was dumbfounded at how good it was.  Among other advantages, 
Guide 1.0 had ~15 million stars;  I don't think anything before that 
went past the SAO catalog's ~250,000.

    Over the subsequent two decades,  I sold enough copies to keep me 
fed and indoors.  (I'm good at math and physics and software.  I am not 
a good businessman.)  I also had those underlying libraries,  and they 
came in very handy when I had the occasional contract for other 
astronomy-related software.  Which is what I do now.

    Meanwhile,  I kept developing the Guide software itself.  I added a 
Windows 3.1 port,  and eventually a 32-bit port for Windows 95 and 
later.  And I added various features,  and still more features... those 
of you who have developed software long-term may see where this is going.

    At present,  the source code for Guide 9 is a maze of twisty 
passages.  It compiles with Microsoft Visual C/C++,  version 5.0 
(really,  _really_ old!).  It uses the Microsoft Foundation Classes 
(MFC) for the user interface;  among programmers,  these were widely and 
accurately referred to as "Microsoft Frustration Classes".

    Back in 1992,  as a 27-year-old with a steel trap memory,  I saw no 
need to document code that only I would ever look at.  As a 60-year-old, 
  I look at bits of it and think "well,  that code obviously works,  but 
I've no idea what young me was thinking".

    There are vast parts of it that were effectively bolted on over 
time,  as if somebody built a wagon,  then decided to turn it into a 
car,  then decided it would be nice if the car could float or fly if 
needed.  This,  incidentally,  is one reason why much of the user 
interface for Guide is less consistent than it ought to be;  the more 
recent additions reflect some lessons learned,  but the older interface 
items make me recoil in terror.  I wouldn't want a potential client to 
judge my coding based on this stuff.

    The insides of the code reflect an overly confident programmer who 
didn't check error conditions and had a set of coding practices that 
make me wonder how it all ever ran as well as it did.  They would cause 
any current programmer to turn pale.

    I managed to keep things going well enough to release Guide 9.  But 
after that,  I moved on to other projects.

    I think what I need to do,  at minimum,  is to post the current 
Guide source code to GitHub,  with suitable warnings.  (Probably source 
code for Charon as well,  which is similarly horrid and embarrassing.) 
I would not really expect anybody to take on the task of making any 
sense out of it;  the best use of it may well be to somebody who needs 
specific bits of the code.

-- Bill

[0] If you're interested in running truly ancient astronomy software... 
I've also posted the ISO for Guide 1.0 :

https://drive.google.com/file/d/1ZYR4Ir9fKpdduObfLTkL6V_tvRB9R-xz/view?usp=drive_link

    It's about 215 MBytes,  and you'll probably need something such as 
DOSBox to run it.  Load the CD,  and run the 'install' program.


More information about the guide-user mailing list