I'm happy to announce that my contribution to TUG 2011, the next TeX
Users Group International conference, has been accepted. Please find the
title and abstract below.
LaTeX Coding Standards
Because LaTeX (and ultimately TeX) is only a macro-expansion system, the
language does not impose any kind of good software engineering practice,
program structure or coding style whatsoever. As a consequence, writing
beautiful code (for some definition of "beautiful") requires a lot of
self-discipline from the programmer.
Maybe because in the LaTeX world, collaboration is not so widespread
(most packages are single-authored), the idea of some LaTeX Coding
Standards is not so pressing as with other programming languages. Some
people may, and probably have developed their own programming habits,
but when it comes to the LaTeX world as a whole, the situation is close
to anarchy.
Over the years, the permanent flow of personal development experiences
contributed to shape my own taste in terms of coding style. The issues
involved are numerous and their spectrum is very large: they range from
simple code layout (formatting, indentation, naming schemes etc.),
mid-level concerns such as modularity and encapsulation, to very
high-level concerns like package interaction/conflict management and
even some rules for proper social behavior.
In this talk, I will report on all these experiences and describe what I
think are good (or at least better) programming practices. I believe
that such practices do help in terms of code readability,
maintainability and extensibility, all key factors in software
evolution. They help me, perhaps they will help you too.
--
Resistance is futile. You will be jazzimilated.
Scientific site: http://www.lrde.epita.fr/~didier
Music (Jazz) site: http://www.didierverna.com
EPITA/LRDE, 14-16 rue Voltaire, 94276 Le Kremlin-Bicêtre, France
Tel. +33 (0)1 44 08 01 85 Fax. +33 (0)1 53 14 59 22
We are pleased to announce the release of Spot 0.8.
Spot is a model-checking library developed collaboratively by LRDE
and LIP6. It provides algorithms and data structures to implement
the automata-theoretic approach to LTL model checking.
Although this version contains a few new features, this should really
be regarded as a maintenance release to fix a series of bugs that have
been reported over the last few months.
You can find the new release here:
http://spot.lip6.fr/dl/spot-0.8.tar.gz
New in spot 0.8 (2011-11-28):
* Major new features:
- Spot can read DiVinE models. See iface/dve2/README for details.
- The genltl tool can now output 20 different LTL formula families.
It also replaces the LTLcounter Perl scripts.
- There is a printer and parser for Kripke structures in text format.
* Major interface changes:
- The destructor of all states is now private. Any code that looks like
"delete some_state;" will cause an compile error and should be
updated to "some_state->destroy();". This new syntax is supported
since version 0.7.
- The experimental Nips interface has been removed.
* Minor changes:
- The dotty_reachable() function has a new option "assume_sba" that
can be used for rendering automata with state-based acceptance.
In that case, acceptance states are displayed with a double
circle. ltl2tgba (both command line and on-line) Use it to display
degeneralized automata.
- The dotty_reachable() function will also display transition
annotations (as returned by the tgba::transitition_annotation()).
This can be useful when displaying (small) state spaces.
- Identifiers used to name atomic proposition can contain dots.
E.g.: X.Y is now an atomic proposition, while it was understood
as X&Y in previous versions.
- The Doxygen documentation is no longer built as a PDF file.
* Internal improvements:
- The on-line ltl2tgba CGI script uses a cache to produce faster
answers.
- Better memory management for the states of explicit automata.
Thanks to the aforementioned ->destroy() change, we can avoid
cloning explicit states.
- tgba_product has learned how to be faster when one of the operands
is a Kripke structure (15% speedup).
- The reduction rule for "a M b" has been improved: it can be
reduced to "a & b" if "a" is a pure eventuallity.
- More useless acceptance conditions are removed by SCC simplifications.
* Bug fixes:
- Safra complementation has been fixed in cases where more than
one acceptance conditions where needed to convert the
deterministic Streett automaton as a TGBA.
- The degeneralization is now idempotent. Previously, degeneralizing
an already degeneralized automaton could add some states.
- The degeneralization now has a deterministic behavior. Previously
it was possible to obtain different output depending on the
memory layout.
- Spot now outputs neverclaims with fully parenthesized guards.
I.e., instead of
(!x && y) -> goto S1
it now outputs
((!(x)) && (y)) -> goto S1
This prevents problems when the model defines `x' as
#define x flag==0
because !x then evaluated to (!flag)==0 instead of !(flag==0).
--
Alexandre Duret-Lutz
Bonjour à tous,
Roland Levillain a le plaisir de vous inviter à sa soutenance de thèse
intitulée « Vers une architecture logicielle pour le traitement d'images
générique » (``Towards a Software Architecture for Generic Image
Processing''). Celle-ci aura lieu le 15 novembre 2011 à 14h00 dans
l'amphithéâtre 110 de l'ESIEE Paris, située au 2, boulevard Blaise
Pascal, Cité Descartes, à Noisy-le-Grand (93). Vous trouverez un plan
d'accès à l'école à l'adresse suivante :
http://www.esiee-paris.fr/acces/
La soutenance sera suivie d'un pot.
Composition du jury de thèse
----------------------------
Rapporteurs :
* Jacques-Olivier Lachaud (Université de Savoie)
* David Coeurjolly (CNRS-LIRIS)
* Ullrich Köthe (Université de Heidelberg)
Examinateurs :
* Étienne Decencière (École des Mines de Paris)
* Gilles Roussel (Université Paris-Est Marne-la-Vallée)
* Karl Tombre (Inria Nancy - Grand Est)
Directeurs de thèse :
* Laurent Najman (ESIEE Paris - Université Paris-Est Marne-la-Vallée)
* Thierry Géraud (EPITA)
Résumé de la thèse
------------------
Dans le cadre du génie logiciel en traitement d'images (TDI), nous
nous intéressons à la notion de réutilisabilité des algorithmes. Dans
de nombreux outils logiciels, l'implémentation d'un algorithme est
souvent dépendante du type des données traitées. Au sens le plus
général, les formes que peuvent prendre les images numériques
discrètes sont nombreuses (image 2D classiques, volumes 3D, graphes
non réguliers, complexes cellulaires, etc.) conduisant à une explosion
combinatoire du nombre théorique d'implémentations.
La programmation générique (PG) est un cadre adapté au développement
d'outils logiciels réutilisables. Nous présentons un paradigme de
programmation basé sur la PG conçu pour la création de logiciels
scientifiques tels ceux dédiés au TDI. Cette approche concilie
réutilisabilité, puissance d'expression, extensibilité et performance.
Nous proposons ensuite une architecture logicielle pour le TDI basée
sur ce paradigme de programmation, s'appuyant sur une bibliothèque
générique de TDI. Les fondations de ce cadre définissent des concepts
fondamentaux du TDI, qui permettent l'écriture d'algorithmes
réutilisables sur de nombreux types d'images.
Nous présentons enfin une stratégie pour construire des outils haut
niveau au dessus de cette bibliothèque tels que des ponts vers des
langages dynamiques ou des interfaces graphiques. Ce mécanisme est
conçu pour préserver la généricité et la performance des outils
logiciels sous-jacents, tout en permettant un usage plus simple et
plus flexible de ceux-ci.
Amicalement,
Roland Levillain
--
Roland Levillain - LRDE/EPITA - A3SI/ESIEE/LIGM/Université Paris-Est
Laboratoire de Recherche et Développement de l'EPITA (LRDE)
14-16, rue Voltaire - 94276 Le Kremlin-Bicêtre Cedex
Tél. : 01 53 14 59 45 - Fax : 01 53 14 59 22 - www.lrde.epita.fr
--
Daniela Becker
Responsable administrative du LRDE
Chers collègues,
La prochaine session du séminaire Performance et Généricité du LRDE
(Laboratoire de Recherche et Développement de l'EPITA) aura lieu le
Mercredi 16 novembre 2011 (14h-16h).
Au programme:
* 14h: Interactive 2D and 3D Segmentation with ilastik
-- Ullrich Köthe
http://www.ilastik.org
The ilastik system developed by our group uses machine learning and
simple interaction techniques to empower users without special image
processing expertise to segment and analyze their 2- and 3-dimensional
image data on their own. It offers a number of easy-to-use workflows for
various common analysis tasks. The talk will present two of these
workflows (“interactive classification” and “region carving”), going
from an online demonstration of the high-level user experience down to
the algorithmic and software design details. Special emphasis will be
put on aspects of genericity and parallelization which facilitate
convenient adaptation of basic building blocks to different contexts
without loss of performance. Examples from challenging biological
applications will illustrate our system's capabilities.
-- Ullrich Köthe is a senior researcher in the Multidimensional Image
Processing Group at the Interdisciplinary Centre for Scientific
Computing of the University of Heidelberg, Germany, where he heads
advanced research on image and data analysis for industry and the life
sciences. Formerly, he was with the Cognitive Systems Group at the
University of Hamburg (1999-2007) and with the Fraunhofer-Institute for
Computer Graphics in Rostock (1992-1999).
-- Ullrich Köthe's main field of research is the development of
user-friendly image analysis methods. He is interested in all techniques
that facilitate genericity and re-usability, from machine learning and
probabilistic modeling to generic programming and empirical performance
evaluation. Dr. Köthe is the originator and maintainer of the
open-source image analysis library VIGRA and co-developer of the
interactive ilastik toolkit, which have been designed to put these ideas
into practice.
Pour plus de renseignements, consultez http://seminaire.lrde.epita.fr/.
L'entrée du séminaire est libre. Merci de bien vouloir diffuser cette
information le plus largement possible.
_______________________________________________
Seminaire mailing list
Seminaire(a)lrde.epita.fr
https://www.lrde.epita.fr/mailman/listinfo/seminaire