Hi,

Before this thread gets out of hand, note that this is a canonical example
of "Painting the Bike Shed".  Please see

              http://www.unixguide.net/freebsd/faq/16.19.shtml

if you don't know what I'm talking about.    With that remark made, I do
think redesigning the banner is a great idea, and I'm really appreciative to
everybody for contributing.  I even have a few comments below...

Okay, so what information do we need to include in the banner?  I
> suggest we vote on each item, and then worry about how to word each
> item and how to assemble all of the results.  I'll post suggestions,
> and then I'll vote myself in a separate message.
>
> * Type "notebook()" for the notebook interface.     (FWIW, I worry
> that "GUI" isn't helpful; how many mathematicians and math students
> understand what this means?  Yes, I know I said that we'd worry later
> about how to word each item, but I couldn't stop myself from
> commenting.)



Another possibility is: "Type notebook() for the graphical interface."

* Type "help()" for help.  (Or whatever the command is.)
>
> * Type "quit" to quit.


By the way, "exit" and control-D also work.

The first thing I did when I customized IPython for Sage was hacked it so
that "quit" and "exit" would exit Sage.  With IPython I think the only way
was control-D (or maybe some % thing) and even then it interactively asks
you if you're sure.    I hate software that is hard to exit.

* Type "license()" for license information.   (With or without a
> statement explicitly mentioning GPL.)


It's very strongly recommended (required?) by the GPL.


> * Build info

* Very detailed build info


> * Type "???" to print system information (OS, type of processor,
> amount of RAM, etc.)
>
> Anything else we might include?
>
> A question: if you worry that the banner might get too long, is that
> for your own use -- you might get sick of seeing 8 lines instead of 4
> -- or do you think it damages the esthetics generally?  I think we
> could pretty easily have an environment variable, SAGE_SHORT_BANNER
> for example, which if set to "yes" would result in a shortened banner
> being printed, in case it's the former problem.  (We already have
> SAGE_BANNER, which if set to "no" omits the banner entirely.)



It's important to clarify what a banner is for, what is "useful information"
and for what purpose.  First, think about this -- Every time you read a
question or bug report from a user, what do you often ask the user?

If it is a build question:

    * what OS exactly? what hardware exactly?  what compiler?  did you
customize (=screw anything up) on your OS?

If it is a usage question:

    * which version of Sage?  exactly what hardware do you have?  how much
RAM?  what OS?   precisely what binary did you install or did you build from
source?

For Magma they make a big deal about the random seed, which is perhaps the
main useful bit of information printed in their startup banner, and which is
something we haven't discussed here for some reason.

Questions for a bug report probably are *not* the best questions to ask for
what goes in a banner though.  What is the point of the banner anyway?   I
wrote the current banner, and the main point of it was to provide something
the user could look at while the sage Python library was imported, since it
takes a second.   (I even experimented a while with trying to get the banner
to display a faux "sage: " prompt, so the prompt would appear instantly, and
the first pause would only be when the user waited for the first line of
code to get evaluated -- I wasn't able to nicely solve that seemingly
trivial problem.)

So I might suggest that when people think "why do I want to know that
information when Sage *starts up*?"  I think the banner is not for reporting
bugs -- the banner is long gone by that time.  The banner is for providing
useful information about Sage at startup.

flat:rh wstein$ sage
----------------------------------------------------------------------
| Sage Version 4.1.1, Release Date: 2009-08-14                       |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------

Regarding the current banner (see above), the information conveyed is:

   (1) the version of Sage -- by far the most important thing -- critical.

   (2) the date it was released  -- I could care less and never look at this

   (3) How to start the notebook interface -- obviously I don't care, but
new users find this very important, I would guess?

  (4) How to see the software license -- I don't care, since I know there is
a COPYING.txt file in the Sage distribution.     However, a new user could
potentially care a lot about the license, and some license statement is on
almost every major program's banner.   The GPL tells one to do this, if
nothing else.

What is missing?

   (5) Is this an install from a binary  -- I have sage installs all over
the place, some built from source, some from binary built elsewhere, etc.
Whether Sage was built from source *on this machine* or not can have a
profound impact on raw performance (because of libraries like ATLAS).    It
would be very useful when I start Sage somewhere to have something in the
banner that indicates the build status of this Sage install.

   (6) stats on the actual computer I'm using -- this would be very useful.
If I fire up Sage on one of the 30-40 login shells I have, it would in fact
be very nice to have a line telling me that this computer has 24 2.6Ghz
processors and 128GB of RAM, but another has 1 1.6Ghz processor and 1GB
RAM.  That would be a useful thing to have summarized on startup, since it
gives you a sense of how you should use Sage.  It would also be useful in
any virtual machine that Sage runs in, since it would remind the user that
even if their computer has 16GB RAM and 16 cores, the virtual machine might
be configure to only use 384MB and 2 cores.

   (7) something about the system load -- whenever I fire up sage on
sage.math.washington.edu (say), I end up having to check top to get a sense
of what is realistic given current load.  So I do

   sage: !top

to find out how much free RAM, what the recent load is, etc.


   (8) is this a 64 or 32-bit Sage install -- this is often very important
since it impacts how I use Sage, and has a major impact on runtimes.


----
Finally, here are how PARI and GAP "bike sheds" are painted.  Notice that
PARI has the version but not the release date (a change I argue for above),
it has the bit-ness, it has the compiler and *when compiled* (better than
release date), the license statement, how to get help, and how to quit.
PARI's banner is quite good, imho, though it doesn't give any info about the
resources of the machine it is running on.

flat:rh wstein$ sage -gp
                                     GP/PARI CALCULATOR Version 2.3.3
(released)
                               i386 running darwin (x86-64/GMP kernel)
64-bit version
                              compiled: Aug 19 2009, gcc-4.0.1 (Apple Inc.
build 5493)
                                 (readline not compiled in, extended help
available)

                                       Copyright (C) 2000-2006 The PARI
Group

PARI/GP is free software, covered by the GNU General Public License, and
comes WITHOUT ANY WARRANTY WHATSOEVER.

Type ? for help, \q to quit.
Type ?12 for how to get moral (and possibly technical) support.

parisize = 8000000, primelimit = 500000
? Goodbye!
flat:rh wstein$ sage -gap

            #########           ######         ###########           ###
         #############          ######         ############         ####
        ##############         ########        #############       #####
       ###############         ########        #####   ######      #####
      ######         #         #########       #####    #####     ######
     ######                   ##########       #####    #####    #######
     #####                    ##### ####       #####   ######   ########
     ####                    #####  #####      #############   ###  ####
     #####     #######       ####    ####      ###########    ####  ####
     #####     #######      #####    #####     ######        ####   ####
     #####     #######      #####    #####     #####         #############
      #####      #####     ################    #####         #############
      ######     #####     ################    #####         #############
      ################    ##################   #####                ####
       ###############    #####        #####   #####                ####
         #############    #####        #####   #####                ####
          #########      #####          #####  #####                ####

     Information at:  http://www.gap-system.org
     Try '?help' for help. See also  '?copyright' and  '?authors'

   Loading the library. Please be patient, this may take a while.
GAP4, Version: 4.4.10 of 02-Oct-2007, i686-apple-darwin9.7.0-gcc


William

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to