Re: Work on Basic Mathematica Stephen!
- To: mathgroup at smc.vnet.net
- Subject: [mg130901] Re: Work on Basic Mathematica Stephen!
- From: "djmpark" <djmpark at comcast.net>
- Date: Fri, 24 May 2013 06:24:57 -0400 (EDT)
- Delivered-to: email@example.com
- Delivered-to: firstname.lastname@example.org
- Delivered-to: email@example.com
- Delivered-to: firstname.lastname@example.org
- References: <email@example.com> <firstname.lastname@example.org> <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: BeginPackage["Toolbox`Graphics`"] 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: ?Toolbox`Graphics`* 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 comcast.net http://home.comcast.net/~djmpark/index.html From: Szabolcs Horv=C3=A1t [mailto:szhorvat at gmail.com] On 2013-05-19 09:47:28 +0000, paulmchale7 at gmail.com said: > Another "missing item" is toolbox.wolfram.com. 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 http://mathematica.stackexchange.com I agree that Mathematica does have a need for more communication between users, and especially sharing code. As Ingolf mentioned, there's library.wolfram.com, 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: http://library.wolfram.com/infocenter/Articles/8369/ ) 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 mathematica.stackexchange.com There's also this: http://meta.mathematica.stackexchange.com/questions/428/what-third-party-packages-do-you-use But it's not really suitable for sharing code. I learn about most such packages from mentions on Mathematica.SE (or possibly here). http://mathematica-users.org/ 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.