Azimuth Code Project

Created page Azimuth code project. Some simple helper classes are already checked into the trunk. I'll prepare the code needed to reproduce the stochastic resonance pictures first and then will try to implement some simple FFT algorithms.

«1345

Comments

  • 1.

    I'm impressed!

    I have just downloaded the code using TortoiseSVN under Windows and it worked. I don't really understand the svn stuff, I just know how to do what I just did.

    Comment Source:I'm impressed! I have just downloaded the code using TortoiseSVN under Windows and it worked. I don't really understand the svn stuff, I just know how to do what I just did.
  • 2.
    edited December 2010

    "Helper classes checked into the trunk" - now I know how people feel when I talk about math and say things like "promote this ring into a field by adjoining inverses".

    Whatever it is, I think it's great.

    Comment Source:"Helper classes checked into the trunk" - now I know how people feel when I talk about math and say things like "promote this ring into a field by adjoining inverses". <img src = "http://math.ucr.edu/home/baez/emoticons/rolleyes.gif" alt = ""/> Whatever it is, I think it's great.
  • 3.

    Yes, that's how it feels to get techno-babbled! Of course I could try to explain a little bit what all this is about:

    A "class" is a notion from object oriented programming, a class is a piece of code that bundles both a state and methods to change it. A "rational number" for example would be represented by a class in Java that has both a state (the value of the number) and methods like "multiply by an integet i".

    "checked into trunk": a "versioning system" is a software program that helps you to manage changes to files, by giving each file a version number. When you change the file locally on your computer, you can check the change file into the trunk, which means you tell the versioning system "here is a new version of this file". The versioning system then increases the version number of this file and provides means to find out what has changed. Instiki provides this service, too: you can see changes by clicking on "changes" at the bottom of the page. The versioning system used by the azimuth code project is called "subversion" or "SVN" for short.

    The "trunk" is the main "branch" and the "head" or "head version" referes to the newest version on a branch. If you write a paper and develop a line of thought that you are not sure if you would like to include it, you could maintain two versions of your paper: One with the worked out stuff on the "trunk", and one with this different line of thought on a "branch". Then you can work on and change the version on the trunk and on the branch independently. Maybe a month later you find out that you would like to include certain parts of the branch into your paper, you can then "merge" these changes from the branch to the head in the trunk, and abandon the branch.

    If you fixed a bug on a branch of a software and transfer it to the main version, you would therefore say: I merged the bug (fix) into the head of the trunk.

    (No, really, that's what people say).

    Comment Source:Yes, that's how it feels to get techno-babbled! Of course I could try to explain a little bit what all this is about: A "class" is a notion from object oriented programming, a class is a piece of code that bundles both a state and methods to change it. A "rational number" for example would be represented by a class in Java that has both a state (the value of the number) and methods like "multiply by an integet i". "checked into trunk": a "versioning system" is a software program that helps you to manage changes to files, by giving each file a version number. When you change the file locally on your computer, you can check the change file into the trunk, which means you tell the versioning system "here is a new version of this file". The versioning system then increases the version number of this file and provides means to find out what has changed. Instiki provides this service, too: you can see changes by clicking on "changes" at the bottom of the page. The versioning system used by the azimuth code project is called "subversion" or "SVN" for short. The "trunk" is the main "branch" and the "head" or "head version" referes to the newest version on a branch. If you write a paper and develop a line of thought that you are not sure if you would like to include it, you could maintain two versions of your paper: One with the worked out stuff on the "trunk", and one with this different line of thought on a "branch". Then you can work on and change the version on the trunk and on the branch independently. Maybe a month later you find out that you would like to include certain parts of the branch into your paper, you can then "merge" these changes from the branch to the head in the trunk, and abandon the branch. If you fixed a bug on a branch of a software and transfer it to the main version, you would therefore say: I merged the bug (fix) into the head of the trunk. (No, really, that's what people say).
  • 4.
    edited December 2010

    Thanks! You probably don't want to spend a lot of time on your page explaining the basics, but I'm very happy to learn them myself!

    I understand most of the concepts in this case, but I didn't know the jargon. I've heard of "subversion" - some mathematicians use it to collaborate on math papers. My pal Chris Lee, who does bioinformatics, uses "git" - he's heading an open source project called Pygr:

    Pygr is an open source software project to develop graph database interfaces for the popular Python language, with a strong emphasis on bioinformatics applications ranging from genome-wide analysis of alternative splicing patterns, to comparative genomics queries of multi-genome alignment data. We and others have used Pygr successfully for many projects, see the Pygr forum pages for examples.

    Comment Source:Thanks! You probably don't want to spend a lot of time on your page explaining the basics, but I'm very happy to learn them myself! I understand most of the concepts in this case, but I didn't know the jargon. I've heard of "subversion" - [some mathematicians use it to collaborate on math papers](http://www.tug.org/pracjourn/2007-3/kalderon-svnmulti/). My pal Chris Lee, who does bioinformatics, uses "[git](http://en.wikipedia.org/wiki/Git_%28software%29)" - he's heading an open source project called [Pygr](http://bioinfo.mbi.ucla.edu/pygr): >Pygr is an open source software project to develop graph database interfaces for the popular Python language, with a strong emphasis on bioinformatics applications ranging from genome-wide analysis of alternative splicing patterns, to comparative genomics queries of multi-genome alignment data. We and others have used Pygr successfully for many projects, see the Pygr forum pages for examples.
  • 5.
    edited December 2010

    I have some suggestions for the Azimuth Code Project main page on Google. (I don't seem able to edit it myself.)

    1) I think it's good for us to have clear names for different pieces of the overall Azimuth Project. It's already a bit confusing with

    1. Azimuth (the blog),
    2. the Azimuth Project (wiki), and
    3. the Azimuth Forum (this forum).

    These names are not optimally clear: perhaps someday we should change them! It would make more sense to use Azimuth Project for the whole project, and

    1. Azimuth Blog,
    2. Azimuth Wiki, and
    3. Azimuth Forum

    for these three pieces.

    Now Tim has introduced a fourth piece: the Azimuth Code Project. I like that name! But on what I'm calling the "Azimuth Code Project main page", we don't see the phrase "Azimuth Code Project". We instead see "azimuth project" (on the page) and "azimuthproject" (in the URL). I suggest that at least on the page itself, there's a nice clear header saying "Azimuth Code Project".

    2) I suggest changing

    The azimuth project tries to provide clean, well documented implementations of basic numerical algorithms, using up-to-date tools and paradigms from software engineering. It is associated to the Azimuth project of John Baez.

    to

    The Azimuth Code Project tries to provide clean, well documented implementations of basic numerical algorithms, using up-to-date tools and paradigms from software engineering. It is associated to the Azimuth Project, which is a plan to create a focal point for scientists and engineers interested in saving the planet, and make clearly presented, accurate information on the relevant issues easy to find.

    3) Since we're trying to do things well, let's make it easier for people to see what code is available on the Azimuth Code Project. I'm no expert on Google Project Hosting, but I had to go to code, read the stuff there, then go to http://azimuthproject.googlecode.com/svn/trunk/, and then climb down a tree (a trunk?) to find various interesting pieces of code.

    Shouldn't we have something more user-friendly and fun? How about a list of projects (perhaps so far just the Hopf bifurcation and stochastic resonance), with links to the relevant code? There must be some way you software guys do this.

    4) Graham has written some code in R, making the source available on various Azimuth Project pages. Could this perhaps be better integrated into the Azimuth Code Project? It may conflict with Tim's strategy of using Java - but do we need a different Azimuth Code Project for each software strategy?

    Comment Source:I have some suggestions for the [Azimuth Code Project main page](http://code.google.com/p/azimuthproject/) on Google. (I don't seem able to edit it myself.) 1) I think it's good for us to have clear names for different pieces of the overall Azimuth Project. It's already a bit confusing with 1. Azimuth (the blog), 2. the Azimuth Project (wiki), and 3. the Azimuth Forum (this forum). These names are not optimally clear: perhaps someday we should change them! It would make more sense to use Azimuth Project for the whole project, and 1. Azimuth Blog, 2. Azimuth Wiki, and 3. Azimuth Forum for these three pieces. Now Tim has introduced a fourth piece: the Azimuth Code Project. I like that name! But on what I'm calling the "[Azimuth Code Project main page](http://code.google.com/p/azimuthproject/)", we _don't see_ the phrase "Azimuth Code Project". We instead see "azimuth project" (on the page) and "azimuthproject" (in the URL). I suggest that at least on the page itself, there's a nice clear header saying "Azimuth Code Project". 2) I suggest changing > The azimuth project tries to provide clean, well documented implementations of basic numerical algorithms, using up-to-date tools and paradigms from software engineering. It is associated to the Azimuth project of John Baez. to > The Azimuth Code Project tries to provide clean, well documented implementations of basic numerical algorithms, using up-to-date tools and paradigms from software engineering. It is associated to the [Azimuth Project](http://www.azimuthproject.org/azimuth/show/HomePage), which is a plan to create a focal point for scientists and engineers interested in saving the planet, and make clearly presented, accurate information on the relevant issues easy to find. 3) Since we're trying to do things well, let's make it easier for people to see what code is available on the Azimuth Code Project. I'm no expert on Google Project Hosting, but I had to go to [code](http://code.google.com/p/azimuthproject/source/checkout), read the stuff there, then go to [http://azimuthproject.googlecode.com/svn/trunk/](http://azimuthproject.googlecode.com/svn/trunk/), and then climb down a tree (a trunk?) to find various interesting pieces of code. Shouldn't we have something more user-friendly and fun? How about a list of projects (perhaps so far just the Hopf bifurcation and stochastic resonance), with links to the relevant code? There must be some way you software guys do this. 4) Graham has written some code in R, making the source available on various Azimuth Project pages. Could this perhaps be better integrated into the Azimuth Code Project? It may conflict with Tim's strategy of using Java - but do we need a different Azimuth Code Project for each software strategy?
  • 6.
    edited December 2010

    I have been thinking about too and would like to see unification and ease-of use when it comes to software we produce/glue/integrate/enhance and also allow people to use the language that is on their abstraction level. Ive done many java-based services and they work but its always a hassle - config hell. I am not for or against any language but i think we should start out higher in the stack as there are literally millions of open source projects and also azimuth has already attracted some of these.

    So let us define what features and tools we want in our environmental "computational science" (used to be scientific computing). Then we can start by quickly putting together "Ecco Hub or whetever we want to call it. I suggest u look best in class in open source Comp Mathematics right now, SAGE and maybe also one spinoff from that femhub also open source. they can both be run as cloud service or installed on your pc/linux. SAGE can be run on the cmd line or as notebook editing (which has wysiwyg editing or source ed). its (here](http://www.sagenb.org). Theey also spun off Cython which can compile code snippets right in the notebook (which looks like mathematica).

    SAGE nb allows u to use R,numpy, GAP,maxima,octave.95 libraries in total calling R(r-fn) or editing. I've tried it with octave but not R yet and we need to verify that it works. Femhub also has added libraries

    for CM i suggest git from some cloud like provider . sage uses Hg as their CM which is wonderful as it is distributed. If u dont like editing code in your browser u can use emacs, eclipse or what u are used too, and lang wise and library wise. For bug handling there are stuff like Trac, Lighhouse, Bugzilla. I've used svn/maven for Java and we were not happy with either and nor will u when u want to spend time fidgeting with params in an chaotic attracto. So forget this paragraph for a while and move up too "interactive scientific computing" and put down what kind of features u would like to be able to do. E.g. "I'd like to zoom into a Hopf bifurcation while changing lambda at the same time" to take a recent example coming up. "Not "I want F#" (functional PL from M-soft). Think more in terms of verbs than nouns.

    then we can get a dyn env "Azimuth eccohub" and add eg GISTEMP newly rewritten in python and att all the scientific libraries which covers your requests and boostrapped that way we will be further along than starting from Java and if You want to program in Java or Fortran, u should be able to do that. So try out sagenb or femhub, which are a bit slow as they are run by poor professors, PhDs who don't have money to spend on server parks :-)

    Then start posting features here as soon as you can.

    Merry Christmas!

    Comment Source:I have been thinking about too and would like to see unification and ease-of use when it comes to software we produce/glue/integrate/enhance and also allow people to use the language that is on their abstraction level. Ive done many java-based services and they work but its always a hassle - config hell. I am not for or against any language but i think we should start out higher in the stack as there are literally millions of open source projects and also azimuth has already attracted some of these. So let us define what features and tools we want in our environmental "computational science" (used to be scientific computing). Then we can start by quickly putting together "Ecco Hub or whetever we want to call it. I suggest u look best in class in open source Comp Mathematics right now, [SAGE](http://sagemath.org) and maybe also one spinoff from that [femhub](femhub.org) also open source. they can both be run as cloud service or installed on your pc/linux. SAGE can be run on the cmd line or as notebook editing (which has wysiwyg editing or source ed). its (here](http://www.sagenb.org). Theey also spun off [Cython which can compile](http://www.cython.org/) code snippets right in the notebook (which looks like mathematica). SAGE nb allows u to [use R,numpy, GAP,maxima,octave.95 libraries in total]( http://www.sagemath.org/links-components.html) calling R(r-fn) or editing. I've tried it with octave but not R yet and we need to verify that it works. Femhub also has [added libraries](http://femhub.org/codes.php) for CM i suggest git from [some cloud like provider](http://www.github.com) . sage uses Hg as their CM which is wonderful as it is distributed. If u dont like editing code in your browser u can use emacs, eclipse or what u are used too, and lang wise and library wise. For bug handling there are stuff like Trac, Lighhouse, Bugzilla. I've used svn/maven for Java and we were not happy with either and nor will u when u want to spend time fidgeting with params in an chaotic attracto. So forget this paragraph for a while and move up too "interactive scientific computing" and put down what kind of features u would like to be able to do. E.g. "I'd like to zoom into a Hopf bifurcation while changing lambda at the same time" to take a recent example coming up. "Not "I want F#" (functional PL from M-soft). Think more in terms of verbs than nouns. then we can get a dyn env "Azimuth eccohub" and add eg GISTEMP newly rewritten in python and att all the scientific libraries which covers your requests and boostrapped that way we will be further along than starting from Java and if You want to program in Java or Fortran, u should be able to do that. So try out sagenb or femhub, which are a bit slow as they are run by poor professors, PhDs who don't have money to spend on server parks :-) Then start posting features here as soon as you can. Merry Christmas!
  • 7.
    edited December 2010

    Merry Christmas!

    I don't do any programming, so I'll happily let Staffan, Tim, Graham and others figure out the best technical setup for the Azimuth Code Project. I'll only get involved if it seems like the pleasure of arguing about the best way to do things is preventing you guys from getting anything done. But of course it's good to argue a bit, in friendly way.

    When it comes to the Azimuth Code Project, I think I'll mainly stick to:

    1. dreaming up programming projects that are not too hard,

    2. helping programmers with math and physics,

    3. developing the Azimuth "brand" - publicizing things, organizing things, explaining them.

    Items 1. and 2. of my previous email were both about the Azimuth "brand"!

    I have lots of ideas for easy programming projects. Tim knows enough of them to keep him quite busy. These easy ones lead naturally to two somewhat harder ones - I can explain these in a lot more detail when I get back from Vietnam:

    1. After Tim gets the delayed action oscillator working, we can try to do some ENSO modelling as described here.

    2. We can try to take a stochastic resonance model, feed in publicly accessible data about the Milankovitch cycles, and see how well it matches the observed ice ages!

    Think more in terms of verbs than nouns.

    That's easy, because I don't know any nouns.

    If you like writing interactive programs or programs with nice graphics, I could certainly come up with things like that. For example a program that shows the trajectory of the Hopf-bifurcation-with-noise evolving "in real time". Extra credit for being able to adjust $\beta$ and $\lambda$ with a slider or something. Even better if we can zoom in!

    All these "pretty" things are probably more important for attracting students and non-experts than for persuading experts in climate science that the Azimuth Code Project is important. Both of these are worthwhile goals...

    Comment Source:Merry Christmas! I don't do any programming, so I'll happily let Staffan, Tim, Graham and others figure out the best technical setup for the Azimuth Code Project. I'll only get involved if it seems like the pleasure of arguing about the best way to do things is preventing you guys from getting anything done. But of course it's good to argue a bit, in friendly way. When it comes to the Azimuth Code Project, I think I'll mainly stick to: 1. dreaming up programming projects that are _not too hard_, 2. helping programmers with math and physics, 3. developing the Azimuth "brand" - publicizing things, organizing things, explaining them. Items 1. and 2. of my previous email were both about the Azimuth "brand"! I have lots of ideas for easy programming projects. Tim knows enough of them to keep him quite busy. These easy ones lead naturally to two somewhat harder ones - I can explain these in a lot more detail when I get back from Vietnam: 1. After Tim gets the delayed action oscillator working, we can try to do some ENSO modelling as [described here](http://arxiv.org/abs/physics/0603083). 1. We can try to take a stochastic resonance model, feed in publicly accessible data about the [[Milankovitch cycles]], and see how well it matches the observed ice ages! >Think more in terms of verbs than nouns. That's easy, because I don't know any nouns. If you like writing interactive programs or programs with nice graphics, I could certainly come up with things like that. For example a program that shows the trajectory of the Hopf-bifurcation-with-noise evolving "in real time". Extra credit for being able to adjust $\beta$ and $\lambda$ with a slider or something. Even better if we can zoom in! All these "pretty" things are probably more important for attracting students and non-experts than for persuading experts in climate science that the Azimuth Code Project is important. Both of these are worthwhile goals...
  • 8.
    edited December 2010

    Happy Holidays!

    I'll drop by occasionally the next days and will try to address the points raised here.

    John said:

    I have some suggestions for the Azimuth Code Project main page on Google. (I don't seem able to edit it myself.)

    I'll get to your suggestions. Google projects know the role of administrator, which only I have at the moment, and only the administrator may change the main page. I'm learning the stuff myself, I never used google projects before.

    Edit: I can grant anyone write access with a google account :-)

    Shouldn't we have something more user-friendly and fun? How about a list of projects (perhaps so far just the Hopf bifurcation and stochastic resonance), with links to the relevant code? There must be some way you software guys do this.

    Sure, I'll see what I can do. But: I haven't done a stake holder analysis yet, so the question "what is user friendly" is a bit blurry to me. Of course, if you would like to download and use code for the Hopf-bifurcation and stochastic resonance from the google project and execute it right away, that would be our first use case :-)

    Comment Source:Happy Holidays! I'll drop by occasionally the next days and will try to address the points raised here. John said: <blockquote> <p> I have some suggestions for the Azimuth Code Project main page on Google. (I don't seem able to edit it myself.) </p> </blockquote> I'll get to your suggestions. Google projects know the role of administrator, which only I have at the moment, and only the administrator may change the main page. I'm learning the stuff myself, I never used google projects before. Edit: I can grant anyone write access with a google account :-) <blockquote> <p> Shouldn't we have something more user-friendly and fun? How about a list of projects (perhaps so far just the Hopf bifurcation and stochastic resonance), with links to the relevant code? There must be some way you software guys do this. </p> </blockquote> Sure, I'll see what I can do. But: I haven't done a stake holder analysis yet, so the question "what is user friendly" is a bit blurry to me. Of course, if you would like to download and use code for the Hopf-bifurcation and stochastic resonance from the google project and execute it right away, that would be our first use case :-)
  • 9.
    edited December 2010

    John said:

    Graham has written some code in R, making the source available on various Azimuth Project pages. Could this perhaps be better integrated into the Azimuth Code Project? It may conflict with Tim's strategy of using Java - but do we need a different Azimuth Code Project for each software strategy?

    On the code project we have a versioning system and a central repository, so, yes, I think it should be transferred there. The code project is simply a file server, we can create any folder structure we like, so we could, for example, create a basis folder for R-skripts etc. So, we can package everything we create on Azimuth over there.

    While there are reasons why I chose Java for the toy models so far, it is not my overall strategy to only use Java, far from it. What I do want to encourage is the use of modern programming languages with established features like

    • automatic memory handling,
    • platform independence via a virtual machine,
    • object orientation

    etc.

    I'd like to encourage the use of technologies that are a plus on your CV when you look for a job in software development. Knowing how to program with an object oriented programming language is a plus, if it is Java, C#, Python ... is of secondary concern.

    Comment Source:John said: <blockquote> <p> Graham has written some code in R, making the source available on various Azimuth Project pages. Could this perhaps be better integrated into the Azimuth Code Project? It may conflict with Tim's strategy of using Java - but do we need a different Azimuth Code Project for each software strategy? </p> </blockquote> On the code project we have a versioning system and a central repository, so, yes, I think it should be transferred there. The code project is simply a file server, we can create any folder structure we like, so we could, for example, create a basis folder for R-skripts etc. So, we can package everything we create on Azimuth over there. While there are reasons why I chose Java for the toy models so far, it is not my overall strategy to only use Java, far from it. What I do want to encourage is the use of modern programming languages with established features like - automatic memory handling, - platform independence via a virtual machine, - object orientation etc. I'd like to encourage the use of technologies that are a plus on your CV when you look for a job in software development. Knowing how to program with an object oriented programming language is a plus, if it is Java, C#, Python ... is of secondary concern.
  • 10.

    I remove the Java tag, since I don't want to enforce the use of Java. I also added a mission statement on the home page, and two wiki pages, one dedicated to open coding challenges, and one for solved coding challenges. The basic idea is that people on the Azimuth project can post requests over there for the implementation of some model, or some data analysis or whatever, and the interested developers can take a look and pick what seems doable and interesting to them.

    It worked quite well with John and me on week 308, maybe we can repeat that experience :-)

    Comment Source:I remove the Java tag, since I don't want to enforce the use of Java. I also added a mission statement on the home page, and two wiki pages, one dedicated to open coding challenges, and one for solved coding challenges. The basic idea is that people on the Azimuth project can post requests over there for the implementation of some model, or some data analysis or whatever, and the interested developers can take a look and pick what seems doable and interesting to them. It worked quite well with John and me on week 308, maybe we can repeat that experience :-)
  • 11.

    The R scripts I have written for a couple of wiki pages do not come under this description:

    clean, well documented implementations of basic numerical algorithms, using up-to-date tools and paradigms from software engineering.

    Instead, they were aimed (only) at producing graphics for the relevant page. I think they should remain very easily accessible to anyone who wants to edit these pages in the future and update the graphics. Of course if someone wants to clean them, document them, and turn them into wonderful examples of modern software engineering, I will not object ;-)

    Comment Source:The R scripts I have written for a couple of wiki pages do not come under this description: > clean, well documented implementations of basic numerical algorithms, using up-to-date tools and paradigms from software engineering. Instead, they were aimed (only) at producing graphics for the relevant page. I think they should remain very easily accessible to anyone who wants to edit these pages in the future and update the graphics. Of course if someone wants to clean them, document them, and turn them into wonderful examples of modern software engineering, I will not object ;-)
  • 12.

    I see, maybe I should cut back on my requirements :-) The "documentation" part applies to every kind of software, even to R skripts. The overall goal should be that the author himself is able to understand what he did 4 weeks after he last looked at his creation.

    As with the "paradigms" of software engineering, I was thinking about e.g.

    a) information hiding in the sense of component orientation (use namespaces, don't use global variables etc),

    b) separation of concerns (don't mix GUI and model code),

    c) use unit tests

    etc. which all kind of don't apply to short R scripts.

    Comment Source:I see, maybe I should cut back on my requirements :-) The "documentation" part applies to every kind of software, even to R skripts. The overall goal should be that the author himself is able to understand what he did 4 weeks after he last looked at his creation. As with the "paradigms" of software engineering, I was thinking about e.g. a) information hiding in the sense of component orientation (use namespaces, don't use global variables etc), b) separation of concerns (don't mix GUI and model code), c) use unit tests etc. which all kind of don't apply to short R scripts.
  • 13.

    The project has its own Wiki, which I would like to use mainly for the documentation of the software and its architecture. There is another idea, though, namely to have a page with coding challenges and one with solved coding challenges. I added a draft for this already and linked to those pages from the main page of the project. The idea is this: someone says he/she would like to have a model, a simulation or some data analysis done, and this requirement is posted as a coding challenge. Any interested developer can try to solve this in any way, using Matlab or whatever tool. Requester and developer can debate about the needed results (like reproduce some graphics found in a paper or a book, run some alternative parameterizations of a known model, whatever).

    The results may be published on the Azimuth project, or on the Azimuth blog, or find their way into a research paper, the needed tools are checked into the Azimuth code project.

    Maybe this idea could make it a little bit easier and appealing for others to use Azimuth for their own needs and research.

    Comment Source:The project has its own Wiki, which I would like to use mainly for the documentation of the software and its architecture. There is another idea, though, namely to have a page with coding challenges and one with solved coding challenges. I added a draft for this already and linked to those pages from the main page of the project. The idea is this: someone says he/she would like to have a model, a simulation or some data analysis done, and this requirement is posted as a coding challenge. Any interested developer can try to solve this in any way, using Matlab or whatever tool. Requester and developer can debate about the needed results (like reproduce some graphics found in a paper or a book, run some alternative parameterizations of a known model, whatever). The results may be published on the Azimuth project, or on the Azimuth blog, or find their way into a research paper, the needed tools are checked into the Azimuth code project. Maybe this idea could make it a little bit easier and appealing for others to use Azimuth for their own needs and research.
  • 14.
    edited January 2011

    What's the view about how to "bundle" several files of scripts+data (particularly since I'm using Linux machines and I'm guessing Windows unpackability as well is important)? I think "zip" is the archive format that's most commonly used for a single crossplatform bundle, but anything else preferred?

    Comment Source:What's the view about how to "bundle" several files of scripts+data (particularly since I'm using Linux machines and I'm guessing Windows unpackability as well is important)? I think "zip" is the archive format that's most commonly used for a single crossplatform bundle, but anything else preferred?
  • 15.
    So far as I know zip is most used.
    Comment Source:So far as I know zip is most used.
  • 16.

    I think Graham is correct. I tried sending gzipped stuff from my Linux pc where I run sage and usually got to resend as zip

    Comment Source:I think Graham is correct. I tried sending gzipped stuff from my Linux pc where I run sage and usually got to resend as zip
  • 17.
    edited January 2011

    Graham wrote:

    The R scripts I have written for a couple of wiki pages do not come under this description...

    By the way, if it doesn't violate some principles underlying the Azimuth Code Project (which I leave to you experts to decide), I would like Graham's code to become part of that project, because I'll be using his figures in "week309", and it would be nice to make that into another advertisement for the Azimuth Code Project.

    If this seems like a good idea, I hope you guys do it soon. It's taking me a long time to start writing "week309", but someday it will happen — and then suddenly I'll be very impatient to see a link to Graham's code somewhere on the Azimuth Code Project. (When I finish an issue of This Week's Finds, I hate waiting to publicize it.)

    On a different note: I received this email today from a Mexican computer science grad student who once worked with me on the semantics of computation:

    Hi Professor,

    hope you remember me. I was just reading your last "This weeks finds" entry on your site and noticed the section on the azimuth code project. If would love to jump in and help out. Let me know if there is anything in particular that you guys need help with.

    --Miguel Ziranhua

    I will tell him to join the Azimuth Forum and talk to you folks...

    Comment Source:Graham wrote: >The R scripts I have written for a couple of wiki pages do not come under this description... By the way, if it doesn't violate some principles underlying the Azimuth Code Project (which I leave to you experts to decide), I would like Graham's code to become part of that project, because I'll be using his figures in "week309", and it would be nice to make that into another advertisement for the Azimuth Code Project. If this seems like a good idea, I hope you guys do it soon. It's taking me a long time to start writing "week309", but someday it will happen &mdash; and then suddenly I'll be very impatient to see a link to Graham's code somewhere on the Azimuth Code Project. (When I finish an issue of This Week's Finds, I hate waiting to publicize it.) On a different note: I received this email today from a Mexican computer science grad student who once worked with me on the semantics of computation: >Hi Professor, >hope you remember me. I was just reading your last "This weeks finds" entry on your site and noticed the section on the azimuth code project. If would love to jump in and help out. Let me know if there is anything in particular that you guys need help with. >--Miguel Ziranhua I will tell him to join the Azimuth Forum and talk to you folks...
  • 18.
    edited January 2011

    Graham said:

    So far as I know zip is most used.

    I intend to use maven as a build tool for the Java stuff, in the Java world you use JAR which is a ZIP which every OS should understand, although there are different ZIP algorithms in use that not all ZIP programs can handle. But this problem is OS independent.

    Comment Source:Graham said: <blockquote> <p> So far as I know zip is most used. </p> </blockquote> I intend to use maven as a build tool for the Java stuff, in the Java world you use JAR which is a ZIP which every OS should understand, although there are different ZIP algorithms in use that not all ZIP programs can handle. But this problem is OS independent.
  • 19.

    John said:

    By the way, if it doesn't violate some principles underlying the Azimuth Code Project (which I leave to you experts to decide), I would like Graham's code to become part of that project, ...

    So far as I know, Tim has the keys. More important, he has the vision about what the Azimuth Code Project might become.

    Comment Source:John said: > By the way, if it doesn't violate some principles underlying the Azimuth Code Project (which I leave to you experts to decide), I would like Graham's code to become part of that project, ... So far as I know, Tim has the keys. More important, he has the vision about what the Azimuth Code Project might become.
  • 20.
    edited January 2011

    The case I'm thinking about is when there's a couple of scripts with maybe some data files. In particular, from a reproducibility point of view I ought to put the code and data behind Experiments in fitting bivariate power laws, particularly so they can point out what's wrong with it. But it'd be a bit clunky to put a whole host of separate files one-per-link onto the Wiki.

    Comment Source:The case I'm thinking about is when there's a couple of scripts with maybe some data files. In particular, from a reproducibility point of view I ought to put the code and data behind [[Experiments in fitting bivariate power laws]], particularly so they can point out what's wrong with it. But it'd be a bit clunky to put a whole host of separate files one-per-link onto the Wiki.
  • 21.

    I agree with David about code that generates pictures for a wiki page in that, as I said earlier, it should remain very easily accessible to anyone who wants to edit these pages in the future and update the graphics. I do not think that anyone should have to know what subversion is in order to fix a bug in my R code, or change some assumptions, or parameters, or colours.

    My mindset when writing R scripts to make pictures is more like that when persuading Latex to do something unusual than writing `a proper program'.

    Comment Source:I agree with David about code that generates pictures for a wiki page in that, as I said earlier, it should remain very easily accessible to anyone who wants to edit these pages in the future and update the graphics. I do not think that anyone should have to know what _subversion_ is in order to fix a bug in my R code, or change some assumptions, or parameters, or colours. My mindset when writing R scripts to make pictures is more like that when persuading Latex to do something unusual than writing `a proper program'.
  • 22.

    So far as I know, Tim has the keys.

    Tim should probably give more of us access to the Azimuth Code Project. I'd like access myself, Tim! I promise not to do anything involving code - I'll just occasionally improve the wording of sentences, or give more detailed descriptions of things I understand, or make various pieces of rhetoric more inspiring.

    Comment Source:> So far as I know, Tim has the keys. Tim should probably give more of us access to the Azimuth Code Project. I'd like access myself, Tim! I promise not to do anything involving code - I'll just occasionally improve the wording of sentences, or give more detailed descriptions of things I understand, or make various pieces of rhetoric more inspiring.
  • 23.

    Tim should probably give more of us access to the Azimuth Code Project.

    Sure, you need a google account for that, which is now mentioned on the home page of the project. Once you have registered any email address of yours with a google account, I can add you either as a project committer or a project owner, I'm not entirely sure what the difference is (the project owner can also reconfigure the project, but I don't know what that exactly means). I'll need to know the email address that you registered with google. You can post that here or email me directly.

    Comment Source:<blockquote> <p> Tim should probably give more of us access to the Azimuth Code Project. </p> </blockquote> Sure, you need a google account for that, which is now mentioned on the home page of the project. Once you have registered any email address of yours with a google account, I can add you either as a project committer or a project owner, I'm not entirely sure what the difference is (the project owner can also reconfigure the project, but I don't know what that exactly means). I'll need to know the email address that you registered with google. You can post that here or email me directly.
  • 24.

    Graham said:

    I do not think that anyone should have to know what subversion is in order to fix a bug in my R code, or change some assumptions, or parameters, or colours.

    Sorry, I don't think it gets any easier that it is with subversion. Some computer literacy is required. Of course anyone can email changes to the authors who then commit it to the repository. But if anyone is interested in and capable to work with R should also be able to get a subversion client running.

    Comment Source:Graham said: <blockquote> <p> I do not think that anyone should have to know what subversion is in order to fix a bug in my R code, or change some assumptions, or parameters, or colours. </p> </blockquote> Sorry, I don't think it gets any easier that it is with subversion. Some computer literacy is required. Of course anyone can email changes to the authors who then commit it to the repository. But if anyone is interested in and capable to work with R should also be able to get a subversion client running.
  • 25.

    Graham said:

    More important, he (Tim) has the vision about what the Azimuth Code Project might become.

    Right now I think about the project as a meeting place of developers and scientists where both can share code that solves specific problems, whatever that may be. Of course I intend to work on a Java project with some ambitions goals and adhering to some basic principles of software engineering. Both can live concurrently in the same google project, I think.

    Comment Source:Graham said: <blockquote> <p> More important, he (Tim) has the vision about what the Azimuth Code Project might become. </p> </blockquote> Right now I think about the project as a meeting place of developers and scientists where both can share code that solves specific problems, whatever that may be. Of course I intend to work on a Java project with some ambitions goals and adhering to some basic principles of software engineering. Both can live concurrently in the same google project, I think.
  • 26.

    Sorry, I don't think it gets any easier that it is with subversion. Some computer literacy is required. Of course anyone can email changes to the authors who then commit it to the repository. But if anyone is interested in and capable to work with R should also be able to get a subversion client running.

    Maybe we're at cross purposes here. I am not suggesting there is some better technology then subversion for the code project. I am questioning whether it is a good idea to put scripts whose only purpose is to make pictures for a wiki page into the code project at all. My concern is that it will put off people from correcting or improving the wiki page. I think there are quite a lot of people who can write simple R, (or perl, python...) scripts but who would find getting a subversion client running sufficiently tiresome that they would go away leaving the wiki page unimproved. In another thread, John asked if one of the graphics in the stochastic resonance page could be improved. That is the kind of change I am thinking of.

    Comment Source:> Sorry, I don't think it gets any easier that it is with subversion. Some computer literacy is required. Of course anyone can email changes to the authors who then commit it to the repository. But if anyone is interested in and capable to work with R should also be able to get a subversion client running. Maybe we're at cross purposes here. I am not suggesting there is some better technology then subversion for the code project. I am questioning whether it is a good idea to put scripts whose only purpose is to make pictures for a wiki page into the code project at all. My concern is that it will put off people from correcting or improving the wiki page. I think there are quite a lot of people who can write simple R, (or perl, python...) scripts but who would find getting a subversion client running sufficiently tiresome that they would go away leaving the wiki page unimproved. In another thread, John asked if one of the graphics in the [[stochastic resonance]] page could be improved. That is the kind of change I am thinking of.
  • 27.

    The main point of subversion is that you can tell people which version of the source you used to generate a picture that you published. I created a tag for the code that generated the pictures for TWF 308 - if there is any change in the code, you can still go back to the specific version that generated the pictures and are still able to reproduce them.

    If that is not a requirement, there is of course no need to check it into the Azimuth code project - creating a download link on the wiki is enough.

    The code for the stochastic resonance page is of course checked in. I also have a local copy that is handled using a local SVN server running on my laptop, because I need this kind of version control even when I am working alone on my own laptop - but that's just me.

    When you work long enough on some computer program, sooner or later you will make a change that you don't remember next day until you find out that nothing works anymore. Maybe everybody needs a couple of experiences like this before they appreciate version control :-)

    Comment Source:The main point of subversion is that you can tell people which version of the source you used to generate a picture that you published. I created a tag for the code that generated the pictures for TWF 308 - if there is any change in the code, you can still go back to the specific version that generated the pictures and are still able to reproduce them. If that is not a requirement, there is of course no need to check it into the Azimuth code project - creating a download link on the wiki is enough. The code for the stochastic resonance page is of course checked in. I also have a local copy that is handled using a local SVN server running on my laptop, because I need this kind of version control even when I am working alone on my own laptop - but that's just me. When you work long enough on some computer program, sooner or later you will make a change that you don't remember next day until you find out that nothing works anymore. Maybe everybody needs a couple of experiences like this before they appreciate version control :-)
  • 28.
    edited January 2011

    I think Graham's point was more that for some very simple things the benefits of using version control may be outweighed by having to learn yet another version control system. (One of the pains of diversity in software is that if you pick the wrong 5 projects to contribute to you may have to learn Git, Mercurial, Subversion, CVS and Perforce.)

    Comment Source:I think Graham's point was more that for some very simple things the benefits of using version control may be outweighed by having to learn yet another version control system. (One of the pains of diversity in software is that if you pick the wrong 5 projects to contribute to you may have to learn Git, Mercurial, Subversion, CVS and Perforce.)
  • 29.
    edited January 2011

    Right, and in this case you can simply upload the code to the Azimuth Wiki as a ZIP-file - or would you like to have some kind of a shared file server for this, maybe on the Azimuth code project?

    Comment Source:Right, and in this case you can simply upload the code to the Azimuth Wiki as a ZIP-file - or would you like to have some kind of a shared file server for this, maybe on the Azimuth code project?
  • 30.

    In the particular case of the predator-prey model, John wanted it in the code project. I've no objections. Tim, you could get the R code from near the end of quantitative ecology or give me access. My Google email is graham853 at gmail.com. You'd also better tell me where to put it if I am to do it.

    Comment Source:In the particular case of the predator-prey model, John wanted it in the code project. I've no objections. Tim, you could get the R code from near the end of [[quantitative ecology]] or give me access. My Google email is graham853 at gmail.com. You'd also better tell me where to put it if I am to do it.
Sign In or Register to comment.