Blogue

Lettres d'opinion dans Le Devoir

31 mars 2012 | Mise à jour: 20 avril 2012 | Catégories: frais de scolarité | View Comments

Le rôle des institutions financières est souvent écarté du débat sur la hausse des frais de scolarité qui a lieu au Québec présentement. J'étais content de découvrir cette semaine un article détaillé sur le sujet paru dans les lettres d'opinion du journal Le Devoir:

Une autre lettre d'opinion à lire publiée sur le même site:

Puis, un texte dans le Courrier international.

Read and Post Comments

Coloration syntaxique avec pygments

27 janvier 2012 | Catégories: web | View Comments

Dernièrement, j'ai utilisé Pygments pour générer différents fichiers css de coloration syntaxique. Alors, pour obtenir la liste des styles existants:

>>> from pygments.styles import get_all_styles
>>> styles = list(get_all_styles())
>>> styles
['monokai', 'manni', 'perldoc', 'borland', 'colorful', 'default', 'murphy',
'vs', 'trac', 'tango', 'fruity', 'autumn', 'bw', 'emacs', 'vim', 'pastie',
'friendly', 'native']

Pour créer le fichier css approprié:

pygmentize -S fruity -f html -a .pygments_fruity > pygments_fruity.css
pygmentize -S friendly -f html -a .pygments_friendly > pygments_friendly.css
pygmentize -S monokai -f html -a .pygments_monokai > pygments_monokai.css
Read and Post Comments

Enregistrer et appeler make automatiquement dans vim

24 janvier 2012 | Catégories: vim | View Comments

En rédigeant ma thèse de doctorat avec l'éditeur de texte vim, je dois fréquemment enregistrer et compiler le document avec la commande :w suivie de la commande :make. En cherchant une façon de rendre cette action plus efficace, j'ai trouvé une première solution sur stackoverflow qui utilise les commandes automatiques:

autocmd BufWritePost <buffer> make

Toutefois, ce n'est pas exactement ce que je cherchais, car je ne veux pas que la compilation soit appelée à chaque fois que j'enregistre un fichier.

J'ai trouvé une autre solution qui me convient mieux. Il suffit de créer sa propre commande et de connaître la syntaxe pour faire plus d'une commande à la fois dans l'éditeur Ex. Remarque: les commandes personnelles doivent commencer par une majuscule. En ajoutant la ligne suivante au fichier .vimrc:

command WM w | make

je peux taper :WM ou simplement :W dans vim et j'obtiens ce que je recherchais.

Read and Post Comments

Présentation sur Sage au Cégep de Saint-Hyacinthe

19 janvier 2012 | Catégories: sage | View Comments

Aujourd'hui, j'ai fait une présentation sur Sage au département de mathématiques du Cégep de Saint-Hyacinthe. Voici quelques liens.

La présentation (pdf) :

Démo:

Les fichiers txt ci-bas peuvent être chargés à partir du bloc-note (Notebook) de Sage. Copier l'adresse et coller celle-ci dans la page Upload du bloc-note.

Exercices :

  1. Se créer un compte sur sagenb.org ou sur le serveur du LaCIM.
  2. Faire un calcul de votre choix.
  3. Trouver et tester un exemple de votre choix dans le tutoriel en français.
  4. Trouver et tester un exemple de votre choix dans le wiki de Sage. Recherchez les liens Teaching with Sage, Interact ou Animation.
  5. Importer (à partir de la page Upload) les feuilles de travail de démonstration ci-haut.
  6. Consulter les feuilles de travail Sage publiées sur le serveur du LaCIM. Consulter celles indiquant MAT1112 - Chapitre 1 et MAT1112 - Chapitre 2. Je les ai créées à l'automne 2011 pour le cours de Calcul 1 que j'ai donné.

Livre :

  • Le livre Calcul mathématique avec Sage. La nouvelle version, sortie en décembre 2011, comporte une centaine de pages de plus que la version précédente. C'est, sans contredit, la meilleure ressource sur Sage en français.
Read and Post Comments

Faire une animation en 3D avec Sage

18 janvier 2012 | Catégories: animation, sage | View Comments

En Sage, il est relativement facile de créer des animations d'images en 2D. Pour cela, il suffit d'utiliser la commande animate qui s'occupera d'utiliser les commandes plus compliquées ffpmeg ou convert. Plusieurs exemples sont disponibles dans la documentation de Sage ou sur le wiki de Sage.

Par contre, il n'est pas encore possible de faire une animation d'objets graphiques 3D. Le logiciel Jmol, utilisé dans Sage pour faire de la visualisation 3D le permet, car les chimistes l'utilise pour faire des animations 3D de molécules complexes, mais cette fonctionalité n'a pas encore été exportée dans Sage. En juin dernier, j'en ai parlé à Jonathan Gutow, responsable des mises à jour de Jmol dans Sage, mais il doit d'abord régler d'autres problèmes plus importants.

En attendant, il est possible de s'en sortir en utilisant Tachyon plutôt que Jmol. Je rappelle que Tachyon est utilisé dans Sage pour créer des images png d'objets graphiques 3d. Ensuite, on peut immiter ce que la fonction animate fait pour créer une animation d'une scène 3d.

Pour illustrer la méthode par un exemple, faisons une animation de la technique des liens dansants de Knuth pour trouver les solutions du puzzle Quantumino.

Dans un répertoire, créer un fichier Sage video_quantumino.sage qui contiendra le code suivant:

from sage.games.quantumino import QuantuminoSolver
import itertools

def animate(block=4, stop=400, angle=pi/200.0, nb_pareil=5):
    r"""
    This functions creates plenty of png images in the images folder.

    INPUT:

    - ``block`` - integer between 0 and 16, the block to put aside

    - ``stop`` - integer, number of iterations

    - ``angle`` - number, rotation angle (radian) between each frame

    - ``nb_parei`` - integer, number of frame per iteration

    OUTPUT:

    Plenty of png images in the images folder.
    """
    q = QuantuminoSolver(block)
    it = q.solve(partial='incremental')
    i = 0
    for solution in itertools.islice(it, stop):
        G = solution.show3d()
        G += sphere((4,7,1),size=0.1,opacity=0) # hack to stabilize the frame
        G += sphere((0,7,0),size=0.1,opacity=0) # hack to stabilize the frame
        #G += sphere((2,4,1),size=10,opacity=0) # pas opaque pantoute

        for _ in range(nb_pareil):
            H = G.rotateZ(angle * i)

            filename = 'images/image%s.png' % i
            H.save(filename, frame=False, aspect_ratio=1)
            print "Création du fichier %s" % filename

            i += 1

animate(4, stop=20, angle=pi/200.0, nb_pareil=5)

Créer les images à l'aide de Sage >= 4.7.2

mkdir images
sage video_quantumino.sage

Aller dans le répertoire images et faites ensuite:

cd images
ffmpeg -y -f image2 -r 20 -i image%d.png video.mpg

Le résultat est ici (bloc numéro 4 mis de côté, 200 itérations, angle=\(\pi\)/200, 5 images par itérations, total de 1000 images):

Read and Post Comments

« Previous Page -- Next Page »