\start
Date: Mon, 03 May 2010 09:41:42 -0400
From: Camm Maguire
To: Tim Daly
Subject: axiom 20091101 in Debian testing (!)

Hi Tim!  Just to let you know, we now have a new axiom in Debian
testing, and likely thence in ubuntu.  First in 5 years. Good things
come to those who wait :-)

I know you are releasing every three months.  I don't know whether the
Debian autobuild infrastructure can handle this.  Perhaps it can --
things are getting better hardware wise and the last delay was a mere
21days or so on the most backlogged platform.  I see the changelog,
but cannot really parse this.  Can you give me any feeling for what
constitutes a "significant" release in terms of what the end user will
see? 

\start
Date: Thu, 06 May 2010 03:27:22 -0400
From: Tim Daly
To: Camm Maguire
Subject: Re: axiom 20091101 in Debian testing (!)

Actually Axiom is released every 2 months and I don't expect
Debian to keep up to date. The release notes are on the website:
http://axiom-developer.org/axiom-website/releasenotes.html



The main user-visible changes in Axiom have been documentation.
There are new help files, a new describe command, a new browser-based
documentation system, and almost all of the source code is now in
literate PDF format. Individual operations now have examples shown when
operations are displayed. Axiom also has an "internal" option that
give a full decoding of the domain. The website has been restructured
and contains up-to-date binary and sources images. The algebra has
deeper static and hyperlinked documentation. The entire category graph
exists. Some new algebra has been added, such as Ei and E1 computations
and the guess package but nothing significant. There is a new tutorial
book out, which is included with the distribution. An Axiom video
is available on YouTube. There are now 3 "axiom" websites:
   axiom-developer.org, axiom-developer.com, axiom-developer.net


All of the other changes are internal. The code is completely
restructured. The code is now all common lisp. The build process
is simplified. The regression tests are fully automated and much
larger. The integration and differential equation subsystems have
standardized and verified test suites. All file I/O uses only
lower case names. Axiom is now git-only based. Axiom now understands
pamphlet file format natively and can use lisp to extract (tangle)
documents. Axiom can run in "web-server" mode using Ajax to interact.
The literate regression tests no longer require noweb as they are
pure latex with the new latex chunk syntax.


I'm adding new algebra with this release but it won't be reflected in
Debian. That's ok since it will take me a couple releases to get it
written, tested, and documented. I'm only halfway thru two related
Stamford online courses so I don't feel confident that I can write the
documentation clearly yet.

Thanks for your effort at fixing the Debian version. It has been a
constant source of pain. The trend is to release often (the Sage
project does it every 2 weeks or so) and Debian is not keeping up.
Releasing every 2 months has its upsides and downsides but I've gotten
so used to the schedule that it just "flows" (as well as anything in
this business "flows").

Tim

Camm Maguire wrote:
> Hi Tim!  Just to let you know, we now have a new axiom in Debian
> testing, and likely thence in ubuntu.  First in 5 years. Good things
> come to those who wait :-)
>
> I know you are releasing every three months.  I don't know whether the
> Debian autobuild infrastructure can handle this.  Perhaps it can --
> things are getting better hardware wise and the last delay was a mere
> 21days or so on the most backlogged platform.  I see the changelog,
> but cannot really parse this.  Can you give me any feeling for what
> constitutes a "significant" release in terms of what the end user will
> see? 

\start
Date: Mon, 10 May 2010 13:04:05 -0400
From: Timothy Carson
To: list
Subject: draw function system error

Hi,

I am having a problem with the draw function.  This is the output I get:

(1) -> draw(x,x=0..1)
cc1: error: /root/axiom/mnt/ubuntu/bin/../h: Permission denied

   >> System error:
   (SYSTEM "gcc -c -Wall -DVOL=volatile -fsigned-char -pipe 
-I/root/axiom/mnt/ubuntu/bin/../h  -O3 -fomit-frame-pointer -c
\"/tmp/gazonk4.c\" -o \"/tmp/gazonk4.o\" -w") returned a non-zero value
0.

It seems like it's looking for some library in /root/axiom/mnt...
I installed to /usr/lib/axiom using these commands:

tpc@timcomp:/usr/lib/axiom$ export AXIOM=`pwd`/mnt/ubuntu
tpc@timcomp:/usr/lib/axiom$ export PATH=$AXIOM/bin:$PATH
tpc@timcomp:/usr/lib/axiom$ axiom

\start
Date: Tue, 11 May 2010 19:36:17 -0400
From: Tim Daly
To: Timothy Carson
Subject: Re: draw function system error

I'm not sure but I believe that the draw command is trying
to write a temporary file. After you set the AXIOM shell
variable and the PATH variable, try changing to someplace
where you can write (e.g. your home directory).

Let me know if that fails.

Timothy Philip Carson wrote:
> Hi,
>
> I am having a problem with the draw function.  This is the output I get:
>
> (1) -> draw(x,x=0..1)
> cc1: error: /root/axiom/mnt/ubuntu/bin/../h: Permission denied
>
>    >> System error:
>    (SYSTEM "gcc -c -Wall -DVOL=volatile -fsigned-char -pipe 
> -I/root/axiom/mnt/ubuntu/bin/../h  -O3 -fomit-frame-pointer -c
> \"/tmp/gazonk4.c\" -o \"/tmp/gazonk4.o\" -w") returned a non-zero value
> 0.
>
> It seems like it's looking for some library in /root/axiom/mnt...
> I installed to /usr/lib/axiom using these commands:
>
> tpc@timcomp:/usr/lib/axiom$ export AXIOM=`pwd`/mnt/ubuntu
> tpc@timcomp:/usr/lib/axiom$ export PATH=$AXIOM/bin:$PATH
> tpc@timcomp:/usr/lib/axiom$ axiom

\start
Date: Fri, 14 May 2010 21:51:41 +0200
From: Klaus Causemann
To: list
Subject: Axiom / Aldor

just having installed Axiom under Ubuntu 10.4  I tried
to compile my first Axiom Source trueromnum.as  
( more or less a copy of romnum.as ).  The compilation 
ended as follows:

(1) -> )compile trueromnum.as
 ...
   sh: NIL/bin/aldor: not found
       The )library system command was not called after compilation.

To my surprise I didn't find "Aldor" in the whole System although
it seems to be an essential part of Axiom.  

I found one version of Aldor under Aldor.org but I couldn't install
it under Ubuntu 10.4.  So I implemented a xxx.spad programm which
was compiled by an "old system compiler".  This means to me that 
there must be "a new system compiler" somewhere.     


I would like to know which compiler is up to date  
where I can find it.  

\start
Date: Mon, 17 May 2010 15:14:37 +0200
From: Ralf Hemmecke
To: list
Subject: Re: Axiom / Aldor

That's right. There is a "new system compiler" and it is called Aldor.
But the Aldor compiler from aldor.org cannot be distributed with any of
the PanAxiom systems (Axiom, OpenAxiom, FriCAS), because they are all
under a BSD-License and Aldor is only semi-free. Tightly integrating the
Aldor compiler into PanAxiom would require a license change to the
semi-free APL2 http://www.aldor.org/AldorPublicLicense2_0.html .

This license is also the reason why there is currently no development on
Aldor anymore. :-(

See also bottom of http://axiom-wiki.newsynthesis.org/FrontPage

If you want a "new system compiler", then help to free Aldor.

Ralf

On 05/14/2010 09:51 PM, Klaus Causemann wrote:
> Hello everybody, 
> 
> just having installed Axiom under Ubuntu 10.4  I tried
> to compile my first Axiom Source trueromnum.as  
> ( more or less a copy of romnum.as ).  The compilation 
> ended as follows:
> 
> (1) -> )compile trueromnum.as
>  ...
>    sh: NIL/bin/aldor: not found
>        The )library system command was not called after compilation.
> 
> To my surprise I didn't find "Aldor" in the whole System although
> it seems to be an essential part of Axiom.  
> 
> I found one version of Aldor under Aldor.org but I couldn't install
> it under Ubuntu 10.4.  So I implemented a xxx.spad programm which
> was compiled by an "old system compiler".  This means to me that 
> there must be "a new system compiler" somewhere.     
> 
> 
> I would like to know which compiler is up to date  
> where I can find it.  

\start
Date: Mon, 17 May 2010 15:41:00 +0200
From: Martin Rubey
To: Klaus Causemann
Subject: Re: Axiom / Aldor

Klaus Causemann writes:

> Hello everybody, 
>
> just having installed Axiom under Ubuntu 10.4  I tried
> to compile my first Axiom Source trueromnum.as  
> ( more or less a copy of romnum.as ).  The compilation 
> ended as follows:
>
> (1) -> )compile trueromnum.as
>  ...
>    sh: NIL/bin/aldor: not found
>        The )library system command was not called after compilation.
>
> To my surprise I didn't find "Aldor" in the whole System although
> it seems to be an essential part of Axiom.  
>
> I found one version of Aldor under Aldor.org but I couldn't install
> it under Ubuntu 10.4.  So I implemented a xxx.spad programm which
> was compiled by an "old system compiler".  This means to me that 
> there must be "a new system compiler" somewhere.     
>
>
> I would like to know which compiler is up to date  
> where I can find it.  

I'd like to add that spad files compile all right with the "old"
compiler...

Spad is more or less a subset of aldor.

\start
Date: Thu, 20 May 2010 12:50:33 -0400
From: Camm Maguire
To: Tim Daly
Subject: re: axiom 20091101 in Debian testing (!)

Greetings!  20100301 about to go in Debian.

0) Just curious -- how did you get rid of exposed.lsp?

1) regarding )edit

)show BASTYPE
 BasicType  is a category constructor
 Abbreviation for BasicType is BASTYPE 
 This constructor is exposed in this frame.
 Issue )edit bookvol10.2.spad.pamphlet to see algebra source code for BASTYPE 

------------------------------- Operations --------------------------------
 ?=? : (%,%) -> Boolean                ?~=? : (%,%) -> Boolean

but the pamphlets are not installed under mnt/linux ???

2) regarding gcd (http://bugs.debian.org/407109)

The expression is read correctly now, but still appears to "take
forever".  I don't think this is a bug anymore and would like to close
it.  What should the expected behavior be now (realistically)?

3) regarding http://bugs.debian.org/349877

Embarrasingly, I'm not even sure the syntax the user employs is
right.  It would be great if you could let me know if this is still an
outstanding issue or can be closed.

4) regarding http://bugs.debian.org/346552

I suppose this one should be left open, though I am unable to generate
"memory corruption" gcl messages anymore.  There was a race I closed
some time ago that seems to be working here.

\start
Date: Thu, 20 May 2010 23:38:55 -0400
From: Tim Daly
To: Camm Maguire
Subject: re: axiom 20091101 in Debian testing (!)

Camm Maguire wrote:
> Greetings!  20100301 about to go in Debian.
>
> 0) Just curious -- how did you get rid of exposed.lsp?
>   
Axiom is becoming a literate program so all parts of the
system are being folded into books. The "exposed.lsp"
function is part of the interpreter so it now lives in
Volume 5: Interpreter (books/bookvol5.pamphlet).
> 1) regarding )edit
>
> )show BASTYPE
>  BasicType  is a category constructor
>  Abbreviation for BasicType is BASTYPE 
>  This constructor is exposed in this frame.
>  Issue )edit bookvol10.2.spad.pamphlet to see algebra source code for BASTYPE 
>   
I'll look at the )edit function. The message says that you can find the 
BASTYPE category
in the book Volume 10.2: Algebra Categories (bookvol10.2.pamphlet) but 
the message
needs to be updated. Also the )edit function needs to be smarter because 
you can now
open the book directly to the BASTYPE code.

All of the books are available on either wikipedia or the Axiom website
http://en.wikipedia.org/wiki/Axiom_computer_algebra_system
http://axiom-developer.org/axiom-website/documentation.html

The books contains most of the actual code, including all of the algebra.
I am in the process of adding the last of the interpreter code to volume 5
(which is why you saw the "exposed.lsp" file disappear) and the compiler
code to volume 9.

The )edit function change is on the todo list.

> ------------------------------- Operations --------------------------------
>  ?=? : (%,%) -> Boolean                ?~=? : (%,%) -> Boolean
>
> but the pamphlets are not installed under mnt/linux ???
>   
The pamphlets are literate source documents. They get "compiled" into 
pdf form
and live under mnt/linux/docs.

It is "in plan" to allow the )compile command to be able to extract the 
proper
algebra from the pamphlet files. Axiom has code embedded that will allow the
reader to do this but it is not yet "hooked up" to the )compile command. 
It is
only a small step away but other things have my attention at the moment. The
Axiom reader now "understands" its source documents.

The plan is to allow you to do
)compile BASTYPE
and have it "do the right thing". This can be done now but it takes 2 
commands
rather than one so I have to merge them. I also have to document it and 
update
the various books (like the Jenks book and my tutorial).

There is no such thing as a simple job.


I was unaware that debian HAD an axiom bug list.
> 2) regarding gcd (http://bugs.debian.org/407109)
>   
This is a huge input expression. I am running it now. I see cpu being used
but not much memory growth. It is hard to say whether this is an 
infinite loop
or just a very long computation of the output. I suspect that it will take a
VERY long time to format this output properly. Since that is all the 
file seems
to do and the output routines have been running for 40 years it is unlikely
that this is a real bug. I'll let it run for a while and see what happens.

Would it be possible to have GCL trap a signal (e.g. SIGUSR1),
dump a stack trace, and then continue? That would allow me to "poll"
the lisp system and see where it was currently spending time without 
actually
killing the process.

> The expression is read correctly now, but still appears to "take
> forever".  I don't think this is a bug anymore and would like to close
> it.  What should the expected behavior be now (realistically)?
>
> 3) regarding http://bugs.debian.org/349877
>
>   
This "bug" seems to be related to all of the intermediate types that get 
generated
within the expression. I don't believe the interpreter is correctly 
coercing between
these many intermediates. I've added it to the list of known bugs.

This "bug" still exists.

> Embarrasingly, I'm not even sure the syntax the user employs is
> right.  It would be great if you could let me know if this is still an
> outstanding issue or can be closed.
>
> 4) regarding http://bugs.debian.org/346552
>   
I cannot reproduce this bug. I consider it closed.

> I suppose this one should be left open, though I am unable to generate
> "memory corruption" gcl messages anymore.  There was a race I closed
> some time ago that seems to be working here.

\start
Date: Thu, 27 May 2010 09:47:58 -0400
From: Tim Daly
To: clojure@googlegroups.com
Subject: Re: do clojure and la(tex) have something in common ?

The hope is that since Clojure is all about breaking
away from the past, we would consider breaking away
from the past method of program development also.
Unfortunately, this requires more work from a programmer.
Is it a factor of ~1.5? Who knows. I use the factor-of-3.

The factor-of-3 comes from the rule of thumb which
I've seen somewhere and have been extending as I learn.

There is a relation between the unit of work and the
task you are trying to do, based mostly on your audience.
Programmers never seem to get beyond the 1-unit mindset,
"write the code and they will come".


Software tends to scale as a factor of 3. My current scale is:

  1 unit  : Something you do for yourself (e.g. 1 week coding)
  3 units : package it up to give to another person
            (involves collecting files, copy, chat, etc)
  9 units : package it up for a group
            (write install instructions, deal with XP/Linux/Mac,
            handle missing prereq software, phone/email support)
 27 units : make it open source
            (sourceforge/mailing list/web pages/email support/
            install scripts/spam/server setup/user support/
            floss license debate)
 81 units : make it commercial
            (corporate structure/CEO/lawyers/trademark/copyright/
             accounting/reporting)
243 units : make it live forever
            (deep documentation/literate programming/
            finding the right ideas/standards/courses)

Clojure isn't commercial so we can skip that power-of-3.

My power-of-3 estimate says that for EVERY week of work that Rich
does on Clojure it will require 27 weeks of work to keep it viable
as open source. It will require 81 weeks to make it live.

To make it viable beyond Rich's contribution requires a whole
ecosystem which includes standards/books/videos/courses, etc.
Literate programming is, by my belief, the way that helps keep
the software viable. It is, however, a HUGE amount of work
compared with writing the code. Probably a factor of 3 :-)
Unfortunately, if the ideas are not written down now then
they probably never will be written down. Without a required
standard of literacy, programmers will never do it. Even
requiring test cases is considered a "major innovation"
(e.g. TDD).

Bill Hart, from the Sage project, said:
  "Another thing I've been enjoying lately is literate
   programming. Amazingly it turns out to be faster to
   write a literate program than an ordinary program
   because debugging takes almost no time."
(http://axiom-developer.org/axiom-website/documentation.html)

so on balance it might be ~1.5 rather than 3. Who knows?

If you look at common lisp, the effort to write the code that
handles, say string processing, is trivial compared with the
effort to document it, make it a standard, get it through the
various social aspects and committees. Clojure has a LONG way
to go.

There is no royal road to viable software.

Tim


ka wrote:
> Hi Tim,
>
> Thanks! for such a detailed response.  Really got things in
> perspective for me, my thinking yet isn't of such large scale.
>
> So you say literate programming is for those who are writing code that
> will live for decades to come and that writing literate programs takes
> ~3x resources.
>
> Is there a stripped down version of literate programming that will
> benefit the majority of programmers who are just average coders,
> writing a few APIs etc. that would probably take say ~1.5x resources?
> I'm just curious as the concept seems really good.  I'm not sure how
> many people are willing to do 3x work for writing their APIs.  I
> absolutely agree with your point of documenting (with the goal of
> communicating to people) design decisions; and comments are not enough
> for the same.
>
> Very recently I started to get interested in code formalism (i.e.
> mathematically proving programs), although literate programming is not
> geared in this direction, it might play its part.

\start
Date: Fri, 28 May 2010 09:37:44 -0400
From: Tim Daly
To: list
Subject: Axiom May 2010 release

The May 2010 release of Axiom went live last night.
The Ubuntu and Fedora binaries are available.
Others will happen soon.
Note that the fedora binary is now a single image.

May 2010 Release

This release concentrated on adding new algebra.
A new package was added for factoring over finite fields.
A new volume Axiom Numerics was added, including BLAS and LAPACK in lisp.
A new volume Axiom Bibliography was added for literature citations.
GCL was upgraded, thanks to Camm Maquire.

These people were added to the credits list:

  Nelson H. F. Beebe, Gaetan Hache, Bill Hart, Kaj Laurson,
  Patrice Naudin, Claude Quitte, Steve Toleque

readme
  update credits list

Makefile
  GCLVERSION gcl-2.6.8pre4 change
  clean books from src/algebra
  merge all fedoraN stanzas into fedora

books/Makefile
  add Axiom Bibliography book
  add bookvol10.5 add Axiom Algebra Numerics

books/bookvol4 Axiom Developers Guide
  document how to make graphs in algebra books
  document process to add new algebra
  document steps for adding algebra

books/bookvol5 Axiom Interpreter
  add Naudin, Laurson, Hache to credits
  change .spad.pamphlet to just .pamphlet
  Add new algebra to exposure list
  fix )describe to accept abbreviations

books/bookvol7.1 Axiom Hyperdoc Pages
  add mar2010 what's new page

books/bookvol10.2 Axiom Categories
  add AFSPCAT  AffineSpaceCategory
  add BLMETCT  BlowUpMethodCategory
  add DIVCAT   DivisorCategory
  add DSTRCAT  DesingTreeCategory
  add INFCLCT  InfinitlyClosePointCategory
  add LOCPOWC  LocalPowerSeriesCategory
  add PACEXTC  PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory
  add PACFFC   PseudoAlgebraicClosureOfFiniteFieldCategory
  add PACPERC  PseudoAlgebraicClosureOfPerfectFieldCategory
  add PACRATC  PseudoAlgebraicClosureOfRationalNumberCategory
  add PLACESC  PlacesCategory
  add PRSPCAT  ProjectiveSpaceCategory
  add SETCATD  SetCategoryWithDegree

books/bookvol10.3 Axiom Domains
  add AFFPL    AffinePlane
  add AFFPLPS  AffinePlaneOverPseudoAlgebraicClosureOfFiniteField
  add AFFSP    AffineSpace
  add BLHN     BlowUpWithHamburgerNoether
  add BLQT     BlowUpWithQuadTrans
  add DIV      Divisor
  add DSTREE   DesingTree
  add ICP      InfClsPt
  add INFCLSPS InfinitlyClosePointOverPseudoAlgebraicClosureOfFiniteField
  add INFCLSPT InfinitlyClosePoint
  add NSDPS    NeitherSparseOrDensePowerSeries
  add PACEXT   PseudoAlgebraicClosureOfAlgExtOfRationalNumber
  add PACOFF   PseudoAlgebraicClosureOfFiniteField
  add PACRAT   PseudoAlgebraicClosureOfRationalNumber
  add PLACES   Places
  add PLACESPS PlacesOverPseudoAlgebraicClosureOfFiniteField
  add PLCS     Plcs
  add PROJPL   ProjectivePlane
  add PROJPLPS ProjectivePlaneOverPseudoAlgebraicClosureOfFiniteField
  add PROJSP   ProjectiveSpace
  add UTSZ     UnivariateTaylorSeriesCZero
  document and test Interval

books/bookvol10.4 Axiom Packages
  add AFALGGRO AffineAlgebraicSetComputeWithGroebnerBasis
  add AFALGRES AffineAlgebraicSetComputeWithResultant
  add BLUPPACK BlowUpPackage
  add DTP      DesingTreePackage
  add FACTEXT  
FactorisationOverPseudoAlgebraicClosureOfAlgExtOfRationalNumber
  add FACTRN   FactorisationOverPseudoAlgebraicClosureOfRationalNumber
  add FFFACTSE FiniteFieldFactorizationWithSizeParseBySideEffect
  add FFSQFR   FiniteFieldSquareFreeDecomposition
  add GPAFF    GeneralPackageForAlgebraicFunctionField
  add INTDIVP  IntersectionDivisorPackage
  add INTERGB  InterfaceGroebnerPackage
  add INTFRSP  InterpolateFormsPackage
  add LISYSER  LinearSystemFromPowerSeriesPackage
  add LOP      LinesOpPack
  add LPARSPT  LocalParametrizationOfSimplePointPackage
  add NPOLYGON NewtonPolygon
  add PAFF     PackageForAlgebraicFunctionField
  add PAFFFF   PackageForAlgebraicFunctionFieldOverFiniteField
  add PARAMP   ParametrizationPackage
  add PFORP    PackageForPoly
  add PLPKCRV  PolynomialPackageForCurve
  add PRJALGPK ProjectiveAlgebraicSetPackage
  add RFP      RootsFindingPackage

books/bookvol10.5 Axiom Numerics
  BLAS1 regress, help, and function documentation
  add BLAS1 dasum function
  add BLAS1 daxpy
  add BLAS1 dcopy

books/bookvolbib Axiom Bibliography
  Buh05 DLMF Mah05 Sei95 Seixx Sch92 SCC92 WJST90
  Du95, Ga95, Ha95, Ha96, HI96, HL95, LR88, St93
  add Assia Mahboubi [Mah05]
  add Soren L. Buhl [Buh05]
  add citation SDJ07
  rename and align biblio with bookvol10.1

faq
  FAQ 52: Who was User?

lsp/Makefile.pamphlet
  GCLVERSION gcl-2.6.8pre4

src/Makefile
  add Volume 10.5 Axiom Numerics
  change .spad.pamphlet to .pamphlet

src/algebra/Makefile
  help and test files for all new algebra
  remove unused .as.pamphlet files
    axtimer.as, ffrac.as, herm.as, interval.as, invnode.as,
    invrender.as, invtypes.as, invutils.as, iviews.as,
    mlift.spad.jhd, ndftip.as, nepip.as, noptip.as, nqip.as,
    nrc.as, nsfip.as removed

src/input/Makefile
  remove duplicate curl.input invocation
  add curry.input, davenport.input, liska.input, paff.input, zimmer.input
  fix biquat.input, chtheorem.input, chtheorem.input, cmds.input,
      complexfactor.input,dfloat.input, dftrig.input, dop.input,
      e1.input, ei.input, en.input, gamma.input, grpthry.input,
      gstbl.input, ico.input, numericgamma.input, test.input,
      unit-i-funsel.input, unittest1.input, unittest1.input,
      unittest2.input, unittest2.input

src/interp/Makefile
  add Volume 10.5 Axiom Numerics

src/share/algebra
  update browse.daase, category.daase, compress.daase, users.daase,
         dependents.daase, interp.daase, libdb.text, operation.daase

zips
  gcl-2.6.8pre4.tgz added, fix for ubuntu 9.10
  gcl-2.6.8pre4.h.linux.defs.patch added
  gcl-2.6.8pre4.o.read.d.patch added
  gcl-2.6.8pre4.unixport.init_gcl.lsp.in.patch
  gcl-2.6.8pre4.unixport.makefile.patch

src/axiom-website/documentation.html
  add Axiom Algebra Numerics
  literate programming quotes

src/axiom-website/download.html
  add march 2010 ubuntu
  update available binary list

\start
Date: Thu, 27 May 2010 16:39:49 -0500
From: Raymond Rogers
To: list
Subject: Re: do clojure and la(tex) have something in common?

    This sounds very similar to the items mentioned in: FIPS PUB 105
www.itl.nist.gov/*fips*pubs/*fips*105.pdf
Section 2.7.1
The documentation requirements depend upon the size and type of the
audience; and the expected lifetime of the software.

The hope is that since Clojure is all about breaking
away from the past, we would consider breaking away
from the past method of program development also.
Unfortunately, this requires more work from a programmer.
Is it a factor of ~1.5? Who knows. I use the factor-of-3.

The factor-of-3 comes from the rule of thumb which
I've seen somewhere and have been extending as I learn.

There is a relation between the unit of work and the
task you are trying to do, based mostly on your audience.
Programmers never seem to get beyond the 1-unit mindset,
"write the code and they will come".


Software tends to scale as a factor of 3. My current scale is:

 1 unit  : Something you do for yourself (e.g. 1 week coding)
 3 units : package it up to give to another person
           (involves collecting files, copy, chat, etc)
 9 units : package it up for a group
           (write install instructions, deal with XP/Linux/Mac,
           handle missing prereq software, phone/email support)
27 units : make it open source
           (sourceforge/mailing list/web pages/email support/
           install scripts/spam/server setup/user support/
           floss license debate)
81 units : make it commercial
           (corporate structure/CEO/lawyers/trademark/copyright/
            accounting/reporting)
243 units : make it live forever
           (deep documentation/literate programming/
           finding the right ideas/standards/courses)

Clojure isn't commercial so we can skip that power-of-3.

My power-of-3 estimate says that for EVERY week of work that Rich
does on Clojure it will require 27 weeks of work to keep it viable
as open source. It will require 81 weeks to make it live.

To make it viable beyond Rich's contribution requires a whole
ecosystem which includes standards/books/videos/courses, etc.
Literate programming is, by my belief, the way that helps keep
the software viable. It is, however, a HUGE amount of work
compared with writing the code. Probably a factor of 3  :-) 
Unfortunately, if the ideas are not written down now then
they probably never will be written down. Without a required
standard of literacy, programmers will never do it. Even
requiring test cases is considered a "major innovation"
(e.g. TDD).

Bill Hart, from the Sage project, said:
 "Another thing I've been enjoying lately is literate
  programming. Amazingly it turns out to be faster to
  write a literate program than an ordinary program
  because debugging takes almost no time."
(http://axiom-developer.org/axiom-website/documentation.html)

so on balance it might be ~1.5 rather than 3. Who knows?

If you look at common lisp, the effort to write the code that
handles, say string processing, is trivial compared with the
effort to document it, make it a standard, get it through the
various social aspects and committees. Clojure has a LONG way
to go.

There is no royal road to viable software.

Tim


ka wrote:
> Hi Tim,
>
> Thanks! for such a detailed response.  Really got things in
> perspective for me, my thinking yet isn't of such large scale.
>
> So you say literate programming is for those who are writing code that
> will live for decades to come and that writing literate programs takes
> ~3x resources.
>
> Is there a stripped down version of literate programming that will
> benefit the majority of programmers who are just average coders,
> writing a few APIs etc. that would probably take say ~1.5x resources?
> I'm just curious as the concept seems really good.  I'm not sure how
> many people are willing to do 3x work for writing their APIs.  I
> absolutely agree with your point of documenting (with the goal of
> communicating to people) design decisions; and comments are not enough
> for the same.
>
> Very recently I started to get interested in code formalism (i.e.
> mathematically proving programs), although literate programming is not
> geared in this direction, it might play its part.
>
> - Thanks
>
>   

_______________________________________________
Axiom-developer mailing list
list
http://lists.nongnu.org/mailman/listinfo/axiom-developer


--------------020208010002030405030302

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
&nbsp;&nbsp;&nbsp;<tt> This sounds very similar to the items mentioned in: FIPS PUB 105<br>
</tt><span class="f"><a class="moz-txt-link-abbreviated" href="http://www.itl.nist.gov/">www.itl.nist.gov/</a><b>fips</b>pubs/<b>fips</b>105.pdf<br>
Section 2.7.1<br>
The documentation requirements depend upon the size and type of the
audience; and the expected lifetime of the software.</span><span
 class="f"></span><br>
<span class="f">Ray<cite><tt><br>
</tt><br>
</cite></span><br>
<br>
<br>
<div class="moz-text-flowed" style="font-size: 13px;" lang="x-western">The&nbsp;hope&nbsp;is&nbsp;that&nbsp;since&nbsp;Clojure&nbsp;is&nbsp;all&nbsp;about&nbsp;breaking
<br>
away&nbsp;from&nbsp;the&nbsp;past,&nbsp;we&nbsp;would&nbsp;consider&nbsp;breaking&nbsp;away
<br>
from&nbsp;the&nbsp;past&nbsp;method&nbsp;of&nbsp;program&nbsp;development&nbsp;also.
<br>
Unfortunately,&nbsp;this&nbsp;requires&nbsp;more&nbsp;work&nbsp;from&nbsp;a&nbsp;programmer.
<br>
Is&nbsp;it&nbsp;a&nbsp;factor&nbsp;of&nbsp;~1.5?&nbsp;Who&nbsp;knows.&nbsp;I&nbsp;use&nbsp;the&nbsp;factor-of-3.
<br>
<br>
The&nbsp;factor-of-3&nbsp;comes&nbsp;from&nbsp;the&nbsp;rule&nbsp;of&nbsp;thumb&nbsp;which
<br>
I've&nbsp;seen&nbsp;somewhere&nbsp;and&nbsp;have&nbsp;been&nbsp;extending&nbsp;as&nbsp;I&nbsp;learn.
<br>
<br>
There&nbsp;is&nbsp;a&nbsp;relation&nbsp;between&nbsp;the&nbsp;unit&nbsp;of&nbsp;work&nbsp;and&nbsp;the
<br>
task&nbsp;you&nbsp;are&nbsp;trying&nbsp;to&nbsp;do,&nbsp;based&nbsp;mostly&nbsp;on&nbsp;your&nbsp;audience.
<br>
Programmers&nbsp;never&nbsp;seem&nbsp;to&nbsp;get&nbsp;beyond&nbsp;the&nbsp;1-unit&nbsp;mindset,
<br>
"write&nbsp;the&nbsp;code&nbsp;and&nbsp;they&nbsp;will&nbsp;come".
<br>
<br>
<br>
Software&nbsp;tends&nbsp;to&nbsp;scale&nbsp;as&nbsp;a&nbsp;factor&nbsp;of&nbsp;3.&nbsp;My&nbsp;current&nbsp;scale&nbsp;is:
<br>
<br>
&nbsp;1&nbsp;unit&nbsp;&nbsp;:&nbsp;Something&nbsp;you&nbsp;do&nbsp;for&nbsp;yourself&nbsp;(e.g.&nbsp;1&nbsp;week&nbsp;coding)
<br>
&nbsp;3&nbsp;units&nbsp;:&nbsp;package&nbsp;it&nbsp;up&nbsp;to&nbsp;give&nbsp;to&nbsp;another&nbsp;person
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(involves&nbsp;collecting&nbsp;files,&nbsp;copy,&nbsp;chat,&nbsp;etc)
<br>
&nbsp;9&nbsp;units&nbsp;:&nbsp;package&nbsp;it&nbsp;up&nbsp;for&nbsp;a&nbsp;group
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(write&nbsp;install&nbsp;instructions,&nbsp;deal&nbsp;with&nbsp;XP/Linux/Mac,
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;handle&nbsp;missing&nbsp;prereq&nbsp;software,&nbsp;phone/email&nbsp;support)
<br>
27&nbsp;units&nbsp;:&nbsp;make&nbsp;it&nbsp;open&nbsp;source
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(sourceforge/mailing&nbsp;list/web&nbsp;pages/email&nbsp;support/
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;install&nbsp;scripts/spam/server&nbsp;setup/user&nbsp;support/
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;floss&nbsp;license&nbsp;debate)
<br>
81&nbsp;units&nbsp;:&nbsp;make&nbsp;it&nbsp;commercial
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(corporate&nbsp;structure/CEO/lawyers/trademark/copyright/
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;accounting/reporting)
<br>
243&nbsp;units&nbsp;:&nbsp;make&nbsp;it&nbsp;live&nbsp;forever
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(deep&nbsp;documentation/literate&nbsp;programming/
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;finding&nbsp;the&nbsp;right&nbsp;ideas/standards/courses)
<br>
<br>
Clojure&nbsp;isn't&nbsp;commercial&nbsp;so&nbsp;we&nbsp;can&nbsp;skip&nbsp;that&nbsp;power-of-3.
<br>
<br>
My&nbsp;power-of-3&nbsp;estimate&nbsp;says&nbsp;that&nbsp;for&nbsp;EVERY&nbsp;week&nbsp;of&nbsp;work&nbsp;that&nbsp;Rich
<br>
does&nbsp;on&nbsp;Clojure&nbsp;it&nbsp;will&nbsp;require&nbsp;27&nbsp;weeks&nbsp;of&nbsp;work&nbsp;to&nbsp;keep&nbsp;it&nbsp;viable
<br>
as&nbsp;open&nbsp;source.&nbsp;It&nbsp;will&nbsp;require&nbsp;81&nbsp;weeks&nbsp;to&nbsp;make&nbsp;it&nbsp;live.
<br>
<br>
To&nbsp;make&nbsp;it&nbsp;viable&nbsp;beyond&nbsp;Rich's&nbsp;contribution&nbsp;requires&nbsp;a&nbsp;whole
<br>
ecosystem&nbsp;which&nbsp;includes&nbsp;standards/books/videos/courses,&nbsp;etc.
<br>
Literate&nbsp;programming&nbsp;is,&nbsp;by&nbsp;my&nbsp;belief,&nbsp;the&nbsp;way&nbsp;that&nbsp;helps&nbsp;keep
<br>
the&nbsp;software&nbsp;viable.&nbsp;It&nbsp;is,&nbsp;however,&nbsp;a&nbsp;HUGE&nbsp;amount&nbsp;of&nbsp;work
<br>
compared&nbsp;with&nbsp;writing&nbsp;the&nbsp;code.&nbsp;Probably&nbsp;a&nbsp;factor&nbsp;of&nbsp;3&nbsp;<span
 class="moz-smiley-s1"><span>&nbsp;:-)&nbsp;</span></span>
<br>
Unfortunately,&nbsp;if&nbsp;the&nbsp;ideas&nbsp;are&nbsp;not&nbsp;written&nbsp;down&nbsp;now&nbsp;then
<br>
they&nbsp;probably&nbsp;never&nbsp;will&nbsp;be&nbsp;written&nbsp;down.&nbsp;Without&nbsp;a&nbsp;required
<br>
standard&nbsp;of&nbsp;literacy,&nbsp;programmers&nbsp;will&nbsp;never&nbsp;do&nbsp;it.&nbsp;Even
<br>
requiring&nbsp;test&nbsp;cases&nbsp;is&nbsp;considered&nbsp;a&nbsp;"major&nbsp;innovation"
<br>
(e.g.&nbsp;TDD).
<br>
<br>
Bill&nbsp;Hart,&nbsp;from&nbsp;the&nbsp;Sage&nbsp;project,&nbsp;said:
<br>
&nbsp;"Another&nbsp;thing&nbsp;I've&nbsp;been&nbsp;enjoying&nbsp;lately&nbsp;is&nbsp;literate
<br>
&nbsp;&nbsp;programming.&nbsp;Amazingly&nbsp;it&nbsp;turns&nbsp;out&nbsp;to&nbsp;be&nbsp;faster&nbsp;to
<br>
&nbsp;&nbsp;write&nbsp;a&nbsp;literate&nbsp;program&nbsp;than&nbsp;an&nbsp;ordinary&nbsp;program
<br>
&nbsp;&nbsp;because&nbsp;debugging&nbsp;takes&nbsp;almost&nbsp;no&nbsp;time."
<br>
(<a class="moz-txt-link-freetext"
 href="http://axiom-developer.org/axiom-website/documentation.html">http://axiom-developer.org/axiom-website/documentation.html</a>)
<br>
<br>
so&nbsp;on&nbsp;balance&nbsp;it&nbsp;might&nbsp;be&nbsp;~1.5&nbsp;rather&nbsp;than&nbsp;3.&nbsp;Who&nbsp;knows?
<br>
<br>
If&nbsp;you&nbsp;look&nbsp;at&nbsp;common&nbsp;lisp,&nbsp;the&nbsp;effort&nbsp;to&nbsp;write&nbsp;the&nbsp;code&nbsp;that
<br>
handles,&nbsp;say&nbsp;string&nbsp;processing,&nbsp;is&nbsp;trivial&nbsp;compared&nbsp;with&nbsp;the
<br>
effort&nbsp;to&nbsp;document&nbsp;it,&nbsp;make&nbsp;it&nbsp;a&nbsp;standard,&nbsp;get&nbsp;it&nbsp;through&nbsp;the
<br>
various&nbsp;social&nbsp;aspects&nbsp;and&nbsp;committees.&nbsp;Clojure&nbsp;has&nbsp;a&nbsp;LONG&nbsp;way
<br>
to&nbsp;go.
<br>
<br>
There&nbsp;is&nbsp;no&nbsp;royal&nbsp;road&nbsp;to&nbsp;viable&nbsp;software.
<br>
<br>
Tim
<br>
<br>
<br>
ka&nbsp;wrote:
<br>
<blockquote type="cite" style="font-size: small;">Hi&nbsp;Tim,
  <br>
  <br>
Thanks!&nbsp;for&nbsp;such&nbsp;a&nbsp;detailed&nbsp;response.&nbsp;&nbsp;Really&nbsp;got&nbsp;things&nbsp;in
  <br>
perspective&nbsp;for&nbsp;me,&nbsp;my&nbsp;thinking&nbsp;yet&nbsp;isn't&nbsp;of&nbsp;such&nbsp;large&nbsp;scale.
  <br>
  <br>
So&nbsp;you&nbsp;say&nbsp;literate&nbsp;programming&nbsp;is&nbsp;for&nbsp;those&nbsp;who&nbsp;are&nbsp;writing&nbsp;code&nbsp;that
  <br>
will&nbsp;live&nbsp;for&nbsp;decades&nbsp;to&nbsp;come&nbsp;and&nbsp;that&nbsp;writing&nbsp;literate&nbsp;programs&nbsp;takes
  <br>
~3x&nbsp;resources.
  <br>
  <br>
Is&nbsp;there&nbsp;a&nbsp;stripped&nbsp;down&nbsp;version&nbsp;of&nbsp;literate&nbsp;programming&nbsp;that&nbsp;will
  <br>
benefit&nbsp;the&nbsp;majority&nbsp;of&nbsp;programmers&nbsp;who&nbsp;are&nbsp;just&nbsp;average&nbsp;coders,
  <br>
writing&nbsp;a&nbsp;few&nbsp;APIs&nbsp;etc.&nbsp;that&nbsp;would&nbsp;probably&nbsp;take&nbsp;say&nbsp;~1.5x&nbsp;resources?
  <br>
I'm&nbsp;just&nbsp;curious&nbsp;as&nbsp;the&nbsp;concept&nbsp;seems&nbsp;really&nbsp;good.&nbsp;&nbsp;I'm&nbsp;not&nbsp;sure&nbsp;how
  <br>
many&nbsp;people&nbsp;are&nbsp;willing&nbsp;to&nbsp;do&nbsp;3x&nbsp;work&nbsp;for&nbsp;writing&nbsp;their&nbsp;APIs.&nbsp;&nbsp;I
  <br>
absolutely&nbsp;agree&nbsp;with&nbsp;your&nbsp;point&nbsp;of&nbsp;documenting&nbsp;(with&nbsp;the&nbsp;goal&nbsp;of
  <br>
communicating&nbsp;to&nbsp;people)&nbsp;design&nbsp;decisions;&nbsp;and&nbsp;comments&nbsp;are&nbsp;not&nbsp;enough
  <br>
for&nbsp;the&nbsp;same.
  <br>
  <br>
Very&nbsp;recently&nbsp;I&nbsp;started&nbsp;to&nbsp;get&nbsp;interested&nbsp;in&nbsp;code&nbsp;formalism&nbsp;(i.e.
  <br>
mathematically&nbsp;proving&nbsp;programs),&nbsp;although&nbsp;literate&nbsp;programming&nbsp;is&nbsp;not
  <br>
geared&nbsp;in&nbsp;this&nbsp;direction,&nbsp;it&nbsp;might&nbsp;play&nbsp;its&nbsp;part.
  <br>
  <br>
-&nbsp;Thanks
  <br>
  <br>
&nbsp; </blockquote>
<br>
_______________________________________________
<br>
Axiom-developer&nbsp;mailing&nbsp;list
<br>
<a class="moz-txt-link-abbreviated"
 href="mailto:list">list</a>
<br>
<a class="moz-txt-link-freetext"
 href="http://lists.nongnu.org/mailman/listinfo/axiom-developer">http://lists.nongnu.org/mailman/listinfo/axiom-developer</a>
<br>
</div>
<br>
</body>
</html>

--------------020208010002030405030302--


