Mozilla et ses innovations

Mozilla communique sur plein de projets rigolos depuis quelques mois dont le tout dernièrement annoncé éditeur de code Mozilla Bespin (via Standblog).

C’est l’occasion de saluer leur dynamisme sur ce point. C’est tout de même, sinon « la » (attendons que les projets aboutissent), du moins un bon début de démonstration qu’on peut innover sur des standards « libres » (ou encore « ouverts ») et de l’open source.

Bien sûr c’est un moyen pour eux d’étendre au maximum le domaine dans lequel un navigateur oueb peut se rendre utile. Du coup cela permet de scotcher le plus possible les utilisateurs sur la toile, dont certains des grands acteurs sont ensuite fort avisés de soutenir la fondation mozilla (comme Google par ses dons1 ).

Il reste que faire tout cela avec du logiciel libre et autour de standard comme HTML, Javascrip & co, est une invitation pour les autres sociétés à rentrer dans la danse et permet aux utilisateurs d’être un peu moins prisonier du navigateur qu’ils utilisent. Sans oublier que ça doit être fun d’être un développeur chez Mozilla Labs et de pouvoir communiquer autant sur ses projets et avoir des retours rapides (vu que la com en question inclue aussi la livraison de logiciels utilisables).

Tout ça pour dire qu’avec l’intégration envisagée d’Ubiquity et de l’éditeur de code Bespin j’ai eu du flair de prendre Alt+x (aka M-x) comme raccourcis clavier d’Ubiquity :D

  1. et sans oublier grosoft et ses gâteaux ;) []

Rédaction…

En ce moment je suis pas mal occupé dans la rédaction d’un mémoire et c’est l’occasion pour moi d’explorer un peu plus de fonctionnalités d’Emacs/AucTeX et certaines limitations aussi.

Du coup, je rajoute des petits bouts de code dans mes fichiers de configurations et en attendant de mettre à jour ceux qui sont à disposition dans la section « code » de ce site, en voici un extrait:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
(defun LaTeX-compile ()
  "An interface to `compile'.
It calls `compile' and define the compile command depending on
the presence of a makefile. Takes into account the master-file
system as defined by AucTeX for multiple file documents."
  (interactive)
  (let ((master-name (expand-file-name (TeX-master-file)))
        (makefile-candidate_u 
          (concat
            (file-name-directory 
              (expand-file-name (TeX-master-file))) 
              "Makefile"))
	(makefile-candidate_l 
          (concat 
            (file-name-directory 
             (expand-file-name (TeX-master-file))) 
             "Makefile"))
	(use-tex-command nil)
	)
 
    (if (not master-name)(error "cannot get master's filename."))
 
    (cond
     ;; Makefile ?
     ((file-readable-p makefile-candidate_u)
      (set (make-local-variable 'compile-command)
	   (concat "cd `dirname " makefile-candidate_u "`; make ref"))
      )
 
     ;; makefile ?
     ((file-readable-p makefile-candidate_u)
      (set (make-local-variable 'compile-command)
	   (concat "cd `dirname " makefile-candidate_u "`; make ref"))
     )
 
     ;; else
     (t
      (if (and (local-variable-p 'compile-command)
	       compile-command)
	    (setq use-tex-command t))
      )
     )
     ;; compile
    (if (not use-tex-command)
	(call-interactively 'compile)
      (TeX-command-master)
      )
    )
  )

La fonction que l’on crée ainsi est toute bête en fait, elle permet d’utiliser un Makefile, s’il existe, pour compiler le document courant et si le makefile n’existe pas on lance la commande par défaut (et configurée au niveau de AucTeX).

Grâce à AucTeX justement ça marche comme un charme pour des documents constitué de plusieurs fichiers .tex, où l’on fait juste la supposition que le Makefile (toujours s’il existe) est dans le même répertoire que le document maître.

Très pratique…