MathGroup Archive 2013

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Work on Basic Mathematica Stephen!

  • To: mathgroup at
  • Subject: [mg130901] Re: Work on Basic Mathematica Stephen!
  • From: "djmpark" <djmpark at>
  • Date: Fri, 24 May 2013 06:24:57 -0400 (EDT)
  • Delivered-to:
  • Delivered-to:
  • Delivered-to:
  • Delivered-to:
  • References: <kmngb2$3rv$> <kna73g$g0f$> <28689491.112483.1369296480597.JavaMail.root@m06>

There are two subjects here, third party applications and collecting 
useful routines that have appeared on the several groups.

It is difficult to collect and organize various routines that have 
appeared on the groups. They may not be well enough developed and you 
may not know where to put them so you can find them. Putting them in a 
regular notebook may not be too great. Also, you could spend a lot of 
time collecting routines, most of which you will never use. You might 
have more important things to do.

Nevertheless, here is one suggestion for doing it. In 
$UserBaseDirectory/Applications create a Toolbox folder. Then in this 
folder create a set of packages for various classifications of routines, 
say Graphics.m, Formatting.m, etc. The BeginPackage statement for 
Graphics.m would look like:


Then add routines you have collected. (I'm assuming you know how to put 
routines into a package.) You will have to make certain you have 
provided usage messages for them, and they better be pretty complete 
because you are not going to have Function pages for more complete 
information.  You can load the package with:

<< Toolbox`Graphics`

You could find what routines are in the package by evaluating:


One method to add some documentation might be to create a 
Toolbox/Graphics folder and add notebooks that gave examples for 
specific routines you were most interested in.

So that is one framework.

The first thing to say about third party Applications is that developing 
them is hard. They usually have to be in a well-defined area. You have 
to get everything right because every misstep quickly sheds uses. I 
don't know if we know how to get everything right! You need good 
mathematics and a good interface and the same person is seldom good at 
both. The Application should blend with regular Mathematica and use 
regular Mathematica conventions and interface. Don't make your own 
interface and do use regular Mathematica documentation. That's what 
users know and you just can't ask them to learn a different system. Give 
the user an initial positive experience by showing them some examples 
that are simple enough that they can relate to, but interesting enough 
so they will be pleased with the results, and most of all that WORK. 
Users will forgive problems at the periphery, they can be fixed, but 
they won't forgive very many obstacles on the first day.

David Park
djmpark at

From: Szabolcs Horv=C3=A1t [mailto:szhorvat at]

On 2013-05-19 09:47:28 +0000, paulmchale7 at said:

> Another "missing item" is  There are many
> functions people write that would be amazing useful to others but will 
> never be shared.  I have shared some potential toolbox entries here
> like a function that receives evenly spaced time/data pairs and
> returns FFT in terms of Hz.  Handy to have laying around.  I started a 
> Toolbox.nb that I refer to often.  It would be great to have an "open
> source" sharing mechanism to have the community support each other.
> Some of the things in my toolbox:
> 1. Cool graphing functions with very simple legends 2. Canned
> functions for unique file formats 3. Easier ways to measure time than
> Timing[] 4. Database access routines 5. Initialization stuff 6.
> Functions to communicate over Ethernet 7. Functions to talk to
> external COTS test equipment
> It would be cool to have a community place to store and share this
> stuff.  Like a sourceforge model for Mathematica.  Peer reviewed
> notebooks or external applications to extend Mathematica.
> Any chance of this?

There have been discussions about this among the users of

I agree that Mathematica does have a need for more communication between users, and especially sharing code.  As Ingolf mentioned, there's, but I don't think most people will go looking there.  It has too many irrelevant things and some seem to be completely unrelated and added by some automated program =C3=A2=E2=82=AC=C2=A6 (see e.g.
this recent addition: )  Another problem is that it's not easy to update items from there quickly enough (sites like GitHub/BitBucket/GoogleCode are better but they're not Mathematica specific).

The best way to share your packages at the moment is probably to use them in answers to problems posted here or to

There's also this:

But it's not really suitable for sharing code.

I learn about most such packages from mentions on Mathematica.SE (or possibly here). is very nice as a concept but for some reason it hasn't been picked up by the community yet.  Maybe that's because it has been slow/unaccessible a lot.

  • Prev by Date: Re: Work on Basic Mathematica Stephen!
  • Next by Date: Map
  • Previous by thread: Re: Work on Basic Mathematica Stephen!
  • Next by thread: Re: Work on Basic Mathematica Stephen!