How to contribute to Sage talk at Sage Days 28
19 janvier 2011 | Catégories: sage | View CommentsAt Sage Days 28 held this week in Orsay, France, I gave a talk on How to contribute to Sage.
The talk goes into the details because we wanted people to contribute during the talk. Tickets created during the talk are here :
Sharing my branch of Sage development
19 novembre 2010 | Catégories: sage | View CommentsThe purpose of this text also available on the Sage wiki is to explain how to share your branch of Sage development. I am sure there more than one way to do so, but the solution shown here is the same as the way Sage Combinat shares its development.
First, clone the sage-main. Below, I use my sage trac username to name that branch, because it's my branch of Sage development:
sage -b main sage -clone slabbe
Go to the directory associated to that new branch and initialize the Queue for Mercurial. See Sage Development Manual : Mercurial queues for more details.
cd SAGE_HOME/devel/sage-slabbe hg qinit
This last step created a new directory (SAGE_HOME/devel/sage-slabbe/.hg/patches) where your patches will be saved. In order to share your branch, you simply need to share this directory. For example, you can copy its content to a public directory on your web site. You can also use svn, git or any other revision control system. As I want to work on my branch the exact same way as I am working on the sage-combinat branch, I choose to use hg.
Now I log on the server that will host my patches, I create the (public) patches directory and I initialize that directory as an hg directory:
ssh username@server.com mkdir patches cd patches hg init
I also add a hook to that public repository so that it updates itself automatically when a push is made to it. In other words, I edit the file ~/patches/.hg/hgrc so that it becomes:
#file ~/patches/.hg/hgrc [hooks] changegroup = hg update
I then logout from the server and go to the patches directory on my machine and make a clone of the public patches repository created above. I could use the http adress, but I use the ssh one so that I can push to the server later on:
cd SAGE_HOME/devel/sage-slabbe/.hg/patches hg clone ssh://username@server.com:~/patches .
Like for the Sage-combinat repository, I create in .hg/patches a file called .hgignore containing the following:
# file .hgignore syntax: glob status guards
Then, add, commit and push this first change to the server:
hg add .hgignore hg commit -m "Added the .hgignore file" hg push
I can now create patches on my branch like in sage-combinat:
cd SAGE_HOME/devel/sage-slabbe/ hg qnew trac_XXXX-fixing-stuff.patch vim sage/combinat/partition.py hg qrefresh -e
I can push my changes to my public server like in sage-combinat:
cd SAGE_HOME/devel/sage-slabbe/.hg/patches hg st hg commit hg push
For the first time, you may need to add the series file as well:
cd SAGE_HOME/devel/sage-slabbe/.hg/patches hg add series hg commit hg push
Last thing, notice that the sage-combinat script can be used to install your branch on any Sage installation with the following one liner:
sage -combinat install -b slabbe -s http://server.com/path/to/your/username/patches/
In my case, the result is here
Fibonacci Tiles can appear in a fully packed loop diagram
22 octobre 2010 | Catégories: sage, fibonacci tile | View CommentsA Fibonacci Tile appearing in the fully packed loop diagram of the permutation \([16,15,13,12,19,22,9,23,26,8,6,29,30,5,31,32,1,2,28,3,4,27,25,7,10,24,11,14,21,20,18,17]\).
Done with Franco Saliola.
The Tamer and the Lion (done with Xavier Provençal)
20 novembre 2009 | Catégories: animation, sage | View CommentsA tamer wants to escape within a circle without being eaten by a lion who lives on the circle. The speed of the lion is 4 times that of the tamer. How can the tamer escape? There is a nice and clever solution in 2d, but does the naive solution where the tamer always moves oppositely to the lion works? In November 2009, a small script written in Sage by Xavier Provençal and Sébastien Labbé in Montpellier answers the question. To create the animation, download the script tamer.sage and run the commands:
sage: load tamer.sage sage: l = range(0,1200,10) sage: a = anime(l) sage: a Animation with 120 frames sage: show(a)
How can the tamer escape? Can you find the solution?
Fibonacci Tiles
01 juillet 2009 | Catégories: animation, sage | View CommentsThe first 7 Fibonacci Tiles:
sage: path_op = dict(rgbcolor='red', thickness=1) sage: fill_op = dict(rgbcolor='blue', alpha=0.3) sage: options = dict(pathoptions=path_op, filloptions=fill_op, endarrow=False, startpoint=False) sage: G = [words.fibonacci_tile(i).plot(**options) for i in range(7)] sage: a = animate(G) sage: a.show(delay=150)
« Previous Page