11.25.08
Priorité à l’Enseignement et à la Recherche
« La mission Recherche et enseignement supérieur (23,4 Md€ en LFI 2008) constitue la première priorité budgétaire du Gouvernement. » Ça fait plaisir à entendre, non ?
Juste quelques petits chiffres qui viennent d’être précisés. La priorité à l’Enseignement et à la Recherche, promise par le gouvernement, cette année, c’est :
- 450 emplois universitaires de catégorie C qui disparaissent (non, pas des chercheurs, juste ceux qui font marcher tout le reste autour, depuis la photocopieuse jusqu’aux toilettes, en passant par le courrier)
- 450 postes de jeunes chercheurs (doctorants et post-doctorants) qui passent à la trappe, assurant ainsi glorieusement la relève de la recherche française — pour information, les dernières statistiques que j’ai trouvées parlent d’environ 10.000 soutenances par an
- la fermeture annoncée d’unités CNRS
- un financement par étudiant inférieur à la moyenne de l’OCDE (par comparaison, c’est moins de 45% de l’argent consacré en moyenne à chaque étudiant américain)
- ah oui, et toujours la démission du gouvernement de son rôle universitaire.
C’est déprimant.
Bon, par honnêteté précisons tout de même que le nombre de Maîtres de Conférences a continué à augmenter l’année dernière (les chiffres de cette année ne sont pas encore disponibles, puisque la campagne n’est pas terminée). Bien entendu, les budgets, eux, diminuent par rapport à l’inflation.
11.20.08
OCaml Batteries Included: The Hierarchy, reloaded
Well, my previous post on the Hierarchy of OCaml Batteries Included certainly triggered reactions. Essentially, judging from these, the OCaml community doesn’t seem to want of a module hierarchy. So here’s a reworked version of the library layout, without hierarchy. Again, feedback is appreciated and should go to the OCaml mailing-list.
Batteries
- Standard (automatically opened)
- Legacy
- Arg
- Array
- …
- Future
- Lexers
- C
- OCaml
I. Control
- Lexers
- Exceptions
- Return
- Monad Interfaces for monadic operations
I.1. Concurrency
- Concurrency Interfaces for concurrency operations
I.1.i. Built-in threads
- Condition
- Event
- Mutex
- RMutex
- Thread
- Threads A module containing aliases to Condition, Event…
I.1.ii. coThreads
- CoCondition
- CoEvent
- CoMutex
- CoRMutex
- CoThread
- CoThreads as Threads but with implementations coming from coThreads
I.1.iii. Shared memory
- Shm_* Placeholders
II. IO
- IO
- BigEndian
- GZip
- Bz2
- Zip
- Transcode
III. Mutable containers
- Array
- Cap
- ExceptionLess
- Labels
- ExceptionLess
- Labels
- Cap
- Bigarray
- Array1
- Array2
- Array3
- Dllist
- Dynarray
- Enum
- ExceptionLess
- Labels
- Global
- Hashtbl
- Make
- ExceptionLess
- Labels
IV. Persistent containers
- Make
- Lazy
- List
- ExceptionLess
- Labels
- Map
- Make
- ExceptionLess
- Labels
- Make
- Option
- Labels
- PMap
- PSet
- RefList
- Index
- Queue
- Ref
- Set
- Make
- ExceptionLess
- Labels
- Make
- Stack
- Stream
V. Data
- Unit
V.1. Logical
- Bool
- BitSet
V.2. Numeric
- Numeric Interfaces for number-related stuff
- Big_int
- Common
- Complex
- Float
- Int
- Int32
- Int64
- Native_int
- Num
- Safe_float placeholder
- Safe_int
V.3. Textual
- Text Definition of text-related interfaces
- Buffer
- Char
- UTF8
- Rope
- UChar
- String
- StringText A module containing aliases to String and Char1
- RopeText As StringText but with implementations from Rope and UChar
- UTF8Text As StringText but with implementations from UTF8 and UChar
- Labels
VI. Distribution-related stuff
- Packages
- Compilers
VII. Internals
- Gc
- Modules
- Oo
- Private
- Weak
- Make
VIII. Network (placeholders)
- URL
- Netencoding
- Base64
- QuotedPrintable
- Q
- URL
- Html
VIII.1. Http
- Http
- Http_client
- Cgi_*
- Httpd_*
- MIME
VIII.2. Ftp
- Ftp_client
VIII.3. Mail
- Netmail
- Pop
- Sendmail
- Smtp
VIII.4. Generic server
- Netplex_*
VIII.5. RPC
- Rpc_*
VIII.6. Languages
- Genlex
- Lexing
- CharParser
- UCharParser
- ParserCo
- Source
- Parsing
- Format
- Printf
- Str
- PCRE place-holder
- Scanf
- Scanning
- SExpr
IX. System
- Arg
- File
- OptParse
- Opt
- OptParser
- StdOpt
- Path
- Shell
- Unix
- Labels
- Equeue
X. Unclassified
- Digest
- Random
- State
- Date placeholder
- 1
- Actually a slightly modified version of Char to match signatures for Latin-1 and Unicode
Et hop, une petite baffe au passage pour la Recherche
Ça doit être pour bien préparer la grève d’ajourd’hui : notre gouvernement vient d’amputer le CEA de 28 millions d’euros qui auraient dû servir à finir la construction du synchrotron Soleil. Et pourtant, c’est pas comme s’il ne servait à rien, ce synchrotron soleil, avec des applications qui vont de la Recherche Fondamentale en physique des plasmas à l’étude de la toxicité de déchets en passant par l’élaboration de nouveaux médicaments (je tire tout ça de leur site web, personnellement, je n’y connais rien en physique des particules).
Ah non, tiens. il n’y a pas d’appel à la grève au CEA. Je dois m’être trompé. C’est probablement juste une économie de plus sur le dos de l’avenir. Au temps pour moi.
11.18.08
Les derniers jours de l’Enseignement et de la Recherche
Depuis l’arrivée au pouvoir de notre Président Bien-Aimé, nous avons vu les mesures et les annonces contre l’enseignement et la recherche se multiplier. Bien entendu, l’enrobage est à chaque fois différent. Lorsque l’état abandonne sa mission d’enseignement dans les collèges, en xyloglotte, on dit “privilégier la qualité sur la quantité”. Lorsqu’il s’agit de supprimer plus de 10.000 postes par an dans l’éducation nationale et de diminuer les attentes sur le niveau des lycéens, en xyloglotte, on parle de “mieux préparer à l’enseignement supérieur“. C’est que l’enseignement supérieur n’est, fort heureusement, pas en reste, puisque la LRU (vous vous souvenez de la LRU ?), secondée par le Plan Pécresse, promet d’employer dans les universités des enseignants formés pour le secondaire, tout en diminuant les exigences en cours et en fin de licence, le tout à grands coups d’heures supplémentaires qui seront peut-être payées — ou peut-être pas. N’oublions pas, à ce prix-là, qu’on démantèle ouvertement la Recherche et qu’on s’autorise à augmenter arbitrairement la charge d’enseignement des chercheurs. Bien entendu, le sabrage dans la formation des élèves et des étudiants ne serait pas complet s’il ne s’agissait pas aussi de former moins les enseignants, qu’il s’agisse de professeurs des écoles (merci pour les insultes au passage), ou de de professeurs certifiés — dans ce dernier cas, le xyloglotte parle d’allonger l’enseignement, alors qu’il s’agit en tout et pour tout d’en supprimer la partie appliquée. Ah, et la petite dernière, c’est d’envoyer les enfants en maternelle plus tard : la maternelle, ça coûte trop cher.
Je ne perdrai pas de temps à jouer aux devinettes : que veut le gouvernement ? Quelles sont les mesures qui vont passer et quels sont les écrans de fumée agités pour faire avancer en douce la médiévalisation de la société ? Je ne sais pas. Peut-être que le gouvernement n’a pas de plan ou compte sur un miracle issu du secteur privé, peut-être que l’idée est de procéder comme en Grande-Bretagne ou aux États-Unis et d”importer du Tiers-Monde les enseignants, les chercheurs, les médecins, les ingénieurs, peut-être que l’idée est juste de grapiller assez d’argent pour pouvoir baisser les impôts juste avant les prochaines élections ou encore peut-être qu’on estime que les conséquences prendront tellement de temps à se faire remarquer qu’on aura oublié qui est derrière la liquidation.
En fait, peu importe. Ce qui compte, de plus en plus, c’est de résister. C’est pour cela que je vous invite à consulter les pétitions suivantes et c’est pour cela qu’il va falloir manifester, ce jeudi et probablement encore de nombreuses fois :
- Appel du 8 Novembre.
- Réforme de la formation des enseignants.
- Respect pour les enseignants-chercheurs.
Et pour vous tenir informés, comme d’habitude
Batteries: reworking the hierarchy (feedback wanted)
As readers interested in OCaml may know, we’ve been working for several months of OCaml Batteries Included. Early in the development, it appeared to us that, with the large number of modules involved, we would need a hierarchy of modules.
For instance, for the moment, we have a module System containing among other submodules IO (definition of i/o operations), File (definition of operations on files), Sys (the usual OCaml Sys module, soon to be expanded), etc. Therefore, before one may open and manipulate files, one has to do
open System.IO;; open System.File;;
or, with the syntax extension we developed to alleviate this,
open System, IO, File;;
the syntax extension does a few other things which we’re not going to detail here — for one thing, it allows local opening of modules).
Now that we’ve reached Alpha 2 and are well on our way towards Alpha 3, we’ve decided that it’s time to rework our current hierarchy and make it shorter and more consistent. Before we proceed, we’d like some feedback from the community. Discussion will take place mostly on the OCaml mailing-list and on irc (server: Freenode, channel: #ocaml) but I preferred posting the hierarchy here for easier reading.
At the moment, our hierarchy looks roughly as follows:
Batteries (automatically opened)
- Control
- Concurrency
- Common
- Threads
- Condition
- Event
- Mutex
- Thread
- Exceptions
- Return
- Monad
- Concurrency
- Data
- Containers (common interfaces)
- Mutable
- Array
- Cap
- Labels
- ExceptionLess
- Labels
- ExceptionLess
- Cap
- Bigarray
- Array1
- Array2
- Array3
- Genarray
- Dllist
- Dynarray
- Enum
- ExceptionLess
- Global
- Hashtbl
- Make
- Labels
- ExceptionLess
- Make
- RefList
- Index
- Queue
- Ref
- RefList
- Stack
- Stream
- Array
- Logical
- Bool
- BitSet
- Numeric
- Big_int
- Common
- Complex
- Float
- Int
- Int32
- Int64
- Native_int
- Num
- Safe_int
- Unit
- Common
- Persistent
- Lazy
- List
- ExceptionLess
- Labels
- Map
- Make
- ExceptionLess
- Labels
- Make
- Option
- Labels
- PMap
- PSet
- Set
- Make
- ExceptionLess
- Labels
- Make
- Text
- Buffer
- Char
- UTF8
- Rope
- UChar
- String
- ExceptionLess
- Labels
- Languages
- CharParser
- Genlex
- Languages
- Library
- C
- OCaml
- Library
- Languages
- Format
- Lexing
- ParserCo
- Source
- Parsing
- Printf
- Scanf
- Scanning
- SExpr
- Str
- Meta
- Callback
- CamlinternalMod
- CamlinternalOo
- Gc
- Obj
- Oo
- Weak
- Make
- Standard (automatically opened)
- System
- Arg
- Compress
- GZip
- File
- Filename
- IO
- BigEndian
- Network (placeholder)
- OptParse
- Opt
- OptParser
- StdOpt
- Unix
- Labels
- Sys
- Toolchain
- Execute
- Findlib
- Util
- Digest
- Random
- State
- Legacy
One possible replacement has been drafted:
- Control
- Concurrency
- Common
- Threads
- Condition
- Event
- Mutex
- Thread
- Exceptions
- Return
- Monad
- Concurrency
- Data
- Containers
- Common
- Array
- Cap
- ExceptionLess
- Labels
- ExceptionLess
- Labels
- Cap
- Bigarray
- Array1
- Array2
- Array3
- Genarray
- Dllist
- Dynarray
- Enum
- ExceptionLess
- Labels
- Global
- Hashtbl
- Make
- ExceptionLess
- Labels
- Make
- Lazy
- List
- ExceptionLess
- Labels
- Map
- Make
-
- ExceptionLess
- Labels
- Option
- Labels
- PMap
- PSet
- RefList
- Index
- Queue
- Ref
- RefList
- Set
- Make
- ExceptionLess
- Labels
- Stack
- Stream
- Logical
- Bool
- BitSet
- Unit
- Numeric
- Interfaces (formerly Common)
- Big_int
- Common
- Complex
- Float
- Int
- Int32
- Int64
- Native_int
- Num
- Safe_int
- Text
- Buffer
- Char
- UTF8
- Rope
- UChar
- String
- Labels
- Containers
- Distro
- Packages (formerly Findlib)
- Tools (formerly Execute)
- Internals
- Callback
- Gc
- Mod (formerly CamlinternalMod)
- Obj
- Oo
- Private (formerly CamlinternalOo)
- Weak
- Make
- IO
- BigEndian
- Gzip
- Bz2
- Zip
- Transcode (placeholder)
- Network (placeholder)
- Text (formerly Languages)
- Lex
- Genlex
- Languages
- C
- OCaml
- Languages
- Lexing
- Genlex
- Parse
- CharParser
- UCharParser
- ParserCo
- Source
- Parsing
- Pretty
- Format
- Printf
- Regexp
- Str
- PCRE (in the future)
- Scanf
- Scanning
- SExpr
- XML (placeholder)
- Lex
- Standard (automatically opened)
- Sys
- Arg
- File
- OptParse
- Opt
- OptParser
- StdOpt
- Path (formerly Filename)
- Shell (formerly Sys)
- Unix
- Labels
- Util
- Digest
- Random
- State
- Legacy
The overall goal, with this new version, is to make for
- a shallower hierarchy
- shorter module names
- more consistent groups of modules.
What do you think of this replacement? Is it any better?
11.12.08
Et le flicage sur Internet, c’en est où ?
C’est terrible comme je n’ai pas le moral à bloguer sur les questions d’actualité ces jours-ci, probablement parce qu’il y a trop à faire et parce que notre gouvernement n’a visiblement pas la moindre intention d’écouter les réactions des citoyens.
Tout de même, un petit mot sur la liberté d’expression sur Internet. Là, notre gouvernement joue à “un pas vers le gouffre”, “un autre pas vers le gouffre”. Je ne doute pas que, conformément aux habitudes gouvernementales, l’un des deux pas se retrouve annulé au profit de l’autre. L’avenir nous dira lequel.
Un pas vers le gouffre
La loi sur la justice privée surveillance sur Internet riposte graduée a été votée il y a quelques jours par le Sénat, en première lecture. Récemment, nous avons appris que la CNIL avait émis un rapport franchement hostile à cette loi, rapport que le gouvernement avait préféré ne pas publier. Le Sénat en a profité pour durcir la loi et, tout de même, ajouter quelques garanties d’indépendance, sans revenir ni sur la double peine, ni sur les sanctions envers les utilisateurs décidées par les entreprises privées presque sans intervention de la justice.
Et un autre
On ferme des postes dans l’Éducation Nationale et on diminue les moyens des enseignants mais, heureusement, l’argent n’est pas perdu pour tout le monde : 220.000 euros pour surveiller les réactions aux réformes, « repérer les repérer les leaders d’opinion, les lanceurs d’alerte et analyser leur potentiel d’influence et leur capacité à se constituer en réseau; décrypter les sources des débats et leurs modes de propagation; anticiper et évaluer les risques de contagion et de crise ». Ajoutons l’ironie au flicage, puisque tout ceci est l’œuvre d’un ministère bien connu pour ne pas écouter les réactions à ses réformes.
Pour finir, l’image du jour
11.10.08
OCaml Batteries Included: Alpha 2 has landed
note: There seems to have been a WordPress bug. For some reason, the extended release notes on OCaml Batteries Included were replaced by something quite unrelated. My apologies for this.
Dear programmers, I am happy to inform you that the second alpha release of OCaml Batteries Included has landed. You may now download it from the Forge. A GODI package is also available and a Debian package should follow soon (you should be able to find the old one here) and you can read the documentation on-line.
So, what’s new in this release?
11.07.08
A taste of OCaml Batteries Included
I don’t know about you, but I have the feeling that many people are interested by OCaml Batteries Included but don’t dare try it yet, due to the Alpha status and the fact that it’s not available for their favorite Linux distribution yet. Well, it’s probably a healthy level of caution.
Of course, just reading the manual is probably not the best way of getting a feeling of OCaml Batteries Included.
So I’ve decided to take measures. From time to time, I’ll add here a few samples of what you can do with OCaml Batteries Included and how you can do it.
11.06.08
OCaml — now with on-line help
I’m happy to tell you that the on-line help system for the OCaml toplevel has just been committed to our new git repository.
