Real-Time Monitoring of Ocaml programs

Dimension: px
Commencer à balayer dès la page:

Download "Real-Time Monitoring of Ocaml programs"

Transcription

1 Real-Time Monitoring of Ocaml programs S. Conchon 1,2,3 J.-C. Filliâtre 2,1,3 F. Le Fessant 3 J. Robert 1 G. Von Tokarski 1 1: Université Paris Sud F Orsay 2: CNRS / LRI UMR 8623 F Orsay 3: INRIA Saclay Île-de-France F Orsay {conchon,filliatr,jrobert,gvt}@lri.fr, fabrice.le_fessant@inria.fr Abstract. In order to tune or debug a program, it is useful to be able to observe its execution. For instance, one may observe how the memory is used, how much time is spent in some parts of the code, or even observe some values computed by the program. Several tools allow such observations (system monitors, specific or generic profilers or debuggers, users logs, etc.). However, these tools only provide limited observations which are typically obtained at the end of program execution. This paper presents Ocamlviz, a library to instrument OCaml code and tools for real-time observation of its execution. Keywords: Monitoring, Real Time, Ocaml Résumé long Il existe de nombreux moyens pour mettre au point un programme écrit en Objective Caml [3]. S il s agit de sa correction, la solution la plus simple consiste souvent à insérer quelques affichages sur la sortie standard, par exemple à l aide de la fonction printf. Si cette trace ne suffit pas, on peut se tourner vers le debugger d OCaml [4], qui permet notamment d inspecter toute valeur calculée et même de revenir en arrière dans l exécution du programme. Il est également possible d utiliser un debugger plus générique tel que gdb [1]. S il s agit d analyser les performances du programme, il existe des solutions simples et im- JFLA 2010

2 160 JFLA 2010 médiates, comme les outils Unix time et top pour mesurer respectivement le temps d exécution et la quantité de mémoire utilisée. Pour une analyse plus fine, on peut utiliser des profilers tels que celui fourni avec OCaml, ocamlprof [5], ou encore des outils génériques comme gprof [2] et OProfile [6]. Même s ils sont complémentaires, ces divers outils possèdent un grand nombre de limitations. La première concerne les possibilités d observation. Les profilers génériques gprof et OProfile sont ainsi limités à l observation du nombre d appels de chaque fonction et du temps passé dans celles-ci. Inversement, ocamlprof a une granularité plus fine, mais ne donne que des décomptes de points de passage sans indication de temps de calcul. Les debuggers non plus ne permettent pas de mesurer le temps de calcul. D autre part, aucun de ces outils ne permet de mesurer la quantité de mémoire occupée par une valeur OCaml. Concernant l aspect temps-réel, seul OProfile permet d observer un programme en cours d exécution. Des outils comme ocamlprof et gprof n offrent qu une analyse post-mortem. Enfin, aucun effort particulier n est fait dans ces outils pour présenter graphiquement les résultats des observations. Leur architecture ne permet généralement pas de leur ajouter facilement une telle fonctionnalité. Le projet Ocamlviz propose une alternative à ces différents outils, sous la forme d une bibliothèque pour instrumenter du code OCaml et des outils pour visualiser ensuite son exécution, en temps-réel et de manière distante. Les fonctions proposées dans cette bibliothèque permettent au programmeur d indiquer précisément les observations qu il souhaite faire. En particulier, la granularité de ces observations n est pas limitée aux fonctions. L utilisateur peut ainsi observer des points de passage et des temps d exécution pour des portions de code arbitraires. D autre part, il est possible de mesurer la quantité de mémoire utilisée par une ou plusieurs valeurs et même de déterminer si elles sont encore vivantes pour le ramasse-miettes. Une particularité d Ocamlviz est de dissocier le calcul des valeurs observées et leur exploitation. En effet, le programme instrumenté à l aide de la bibliothèque se comporte, pendant son exécution, comme un serveur, auquel des clients peuvent se connecter pour récupérer les résultats de l observation. Ocamlviz fournit un client particulier, sous la

3 Ocamlviz 161 forme d une interface graphique GTK-2. Le serveur et les clients communiquent à l aide d un protocole réseau indépendant d OCaml, ce qui permet d observer l exécution depuis des machines distantes et d écrire des clients dans d autres langages. Principe. Ocamlviz est à la fois une bibliothèque pour instrumenter du code OCaml à observer et des outils pour transmettre et visualiser les résultats. En premier lieu, l utilisateur instrumente son code en indiquant les observations qu il souhaite réaliser. Il utilise pour cela les briques de base fournies par la bibliothèque Ocamlviz. Il lie ensuite son programme avec cette bibliothèque. Le code ainsi obtenu peut être exécuté normalement mais il peut également être observé. En effet, en parallèle de l exécution normale, le programme se comporte maintenant comme un serveur qui attend des connections et transmet le résultat des observations à ses clients. En particulier, Ocamlviz fournit une interface graphique évoluée permettant une visualisation agréable et synthétique des résultats. Le caractère client/serveur de l architecture offre de nombreux avantages. Premièrement, il permet de décider d observer le programme à n importe quel moment de son exécution. En particulier, un client peut se connecter longtemps après le début de l exécution et se déconnecter à tout instant. Deuxièmement, un nombre arbitraire de clients peuvent se connecter à un même programme en cours d exécution. Troisièmement, les clients peuvent se connecter depuis des machines distantes, qu elles aient ou non la même architecture que celle sur laquelle s exécute le code instrumenté. Enfin, cette architecture dissocie l instrumentation de l observation des résultats. En particulier, le protocole de communication est indépendant du langage OCaml et permet par exemple l utilisation de clients écrits dans d autres langages. Observations. La bibliothèque Ocamlviz permet plusieurs types d observations, que l on présente rapidement dans cette section. Mesure du temps. Ocamlviz permet de mesurer le temps passé entre certains points du programme, cumulativement. Pour cela, l utilisateur crée un ou plusieurs chronomètres, puis les déclenche et les stoppe en divers endroits du programme, non nécessairement au sein de

4 162 JFLA 2010 la même fonction. Pour chaque chronomètre, le temps cumulé de son activation est alors rapporté. L interface graphique montre cette valeur, le pourcentage qu elle représente par rapport au temps total d exécution ainsi que le dernier instant où elle a été modifiée. Points de passage. Ocamlviz permet de mesurer le nombre de fois que l exécution passe par un ensemble de points de programme. Comme pour la mesure du temps, l utilisateur commence par créer un ou plusieurs marqueurs, qu il place aux endroits adéquats. Pour chaque marqueur, Ocamlviz décompte alors le nombre de fois que l exécution a emprunté un point de programme désigné par ce marqueur. Là encore, la notion de marqueur n est pas liée à celle de fonction, un même marqueur pouvant être placé n importe où dans le code, y compris plusieurs fois. L interface graphique montre la valeur de chaque marqueur, ainsi que sa date de dernière modification. Un marqueur peut être utilisé de manière immédiate pour compter le nombre d appels à une fonction, à la manière de gprof, ou encore pour compter le nombre de fois qu une branche else est empruntée, à la manière d ocamlprof, mais aussi pour mesurer cumulativement le nombre de fois que l on emprunte tel ou tel partie du code, ce que gprof et ocamlprof ne permettent pas de faire. Observation de valeurs. Ocamlviz permet d observer des valeurs arbitraires calculées par le programme. Pour les types de base (entiers, flottants, chaînes de caractères), il suffit d indiquer une fonction calculant la valeur à observer et la fréquence à laquelle cette fonction doit être évaluée. La valeur est alors transmise à tous les clients, à cette fréquence. Lorsque la valeur est numérique, l interface graphique permet même de tracer un graphe de l évolution de la valeur dans le temps. La bibliothèque Ocamlviz fournit des facilités pour observer directement le contenu d une référence ou celui d une table de hachage provenant de la bibliothèque standard d OCaml. Pour observer des valeurs de types plus complexes, une solution simple consiste à les transformer en chaînes de caractères. Néanmoins, Ocamlviz fournit également une solution élégante pour observer des structures s apparentant à des arbres ou à des graphes. Pour cela, l utilisateur commence par traduire la valeur à observer dans le type suivant type t = { node : string; mutable children : t list }

5 Ocamlviz 163 puis celle-ci est transmise via le protocole client/server jusqu à l interface graphique où elle est affichée sous forme d arbre ou de graphe, selon le cas. Le partage ou les cycles éventuels sont préservés, à condition qu ils l aient été par l utilisateur dans sa traduction vers le type t ci-dessus, ce que permet le caractère mutable du champ children. Marquage de valeurs. Ocamlviz permet d analyser l utilisation de la mémoire par le programme. Pour cela, l utilisateur peut marquer un ensemble de valeurs et connaître à intervalle régulier le nombre d entre elles qui sont encore vivantes pour le ramasse-miettes et, éventuellement, la taille qu elles occupent sur le tas. Là encore, l utilisateur peut créer plusieurs marqueurs. Un même marqueur peut être utilisé pour marquer une ou plusieurs valeurs, possiblement de types différents. Si plusieurs valeurs sont désignées par le même marqueur, le partage est pris en compte dans le calcul de l occupation mémoire. Journal. Une dernière technique d observation fournie par Ocamlviz consiste en une commande similaire à printf qui permet d envoyer des messages arbitraires par le protocole client/serveur. Ceux-ci apparaissent alors côté client sous la forme d un journal, où chaque message est accompagné de son temps d exécution. Lorsque l utilisateur souhaite faire certaines de ces observations de manière systématique sur l ensemble du programme, comme observer le contenu de toutes les références globales ou compter le temps passé dans chaque fonction, il peut utiliser pour cela un petit module camlp4 fourni avec Ocamlviz. Réalisation. L architecture d Ocamlviz repose sur trois éléments principaux : un protocole de communication, une bibliothèque serveur et une bibliothèque client. Le protocole client/serveur utilisé par Ocamlviz est indépendant du langage OCaml et de l architecture sur laquelle tourne le programme en cours d observation ou les différents clients. Cela permet entre autres d observer un programme depuis une autre machine ou encore d écrire un client dans un autre langage. La représentation des données reste compacte, pour une utilisation optimale de la bande passante, les données transmises pouvant être très volumineuses.

6 164 JFLA 2010 La bibliothèque serveur, liée avec le programme observé, calcule à intervalle régulier l ensemble des données d observation et les transmet aux différents clients. Les valeurs marquées sont stockées dans des tables de pointeurs faibles, afin de ne pas s opposer à leur récupération par le ramasse-miettes. Ocamlviz fournit deux réalisations différentes de cette bibliothèque serveur : l une utilisation des alarmes et l autre des processus légers (threads). Il est ainsi possible de s adapter aux contraintes du programme observé. Enfin, Ocamlviz fournit également une bibliothèque facilitant l écriture de clients. Cette bibliothèque permet notamment de conserver localement au client une partie des données envoyées par le serveur, dans une fenêtre de temps paramétrable. Il est alors relativement facile de fournir dans le client un mécanisme de pause ou même de retour en arrière dans le temps. L interface graphique fournie avec Ocamlviz utilise cette bibliothèque et fournit notamment ces deux fonctionnalités. Crédits. Ocamlviz est un logiciel libre, disponible à l adresse http: //ocamlviz.forge.ocamlcore.org/. Son développement a été financé par la société Jane Street Capital et réalisé par deux étudiants de l Université Paris Sud, Julien Robert et Guillaume Von Tokarski, au sein de l INRIA Saclay Île-de-France.

7 Ocamlviz Introduction There exist several ways to tune Objective Caml [3] programs. Concerning correctness, the simplest solution usually consists in inserting debugging messages, for instance using the printf function. When this trace is not enough, one can turn to the OCaml debugger [4]. It allows value inspection and even to rollback in program execution. It is also possible to use a generic debugger such as gdb [1]. Regarding performances, there exist simple and immediate solutions, such as Unix time and top commands, to measure time and space, respectively. For finer analyses, on can use either the OCaml specific tool ocamlprof [5] or generic purpose profilers such as gprof [2] or OProfile [6]. Even if useful when used in collaboration, these tools have severe limitations. The first one is related to observation capabilities. Generic profilers gprof and OProfile are limited to the number of calls and time spent for each function. Conversely, ocamlprof only reports on program point counts without any time measure. Debuggers do not measure any time either. Beside, none of these tools allows to measure space used by an OCaml value. Regarding real-time analysis, only OProfile allows to monitor a program under execution. Tools such as ocamlprof and gprof only offer post-mortem analysis. Finally, no effort is made is these tools to provide graphical display of observation results, and their architecture do not allow to easily add such a feature. The Ocamlviz project is an alternative to all these tools. It is both a library to instrument some OCaml code and tools to visualize its execution in real-time, possibly remotely. The library offers the programmer to precisely specify the observations to perform. In particular, the granularity is not limited to functions; program points can be inserted anywhere in the code and time spent between two such points can be measured. Moreover, space used by an OCaml value can monitored. It is even possible to observe whether a value is still alive for the garbagecollector. One of the main features of Ocamlviz is to dissociate the computation of observed values and their display. Indeed, the program instrumented using the library behaves as a server, to which clients can connect to collect observation results. In particular, Ocamlviz provides a

8 166 JFLA 2010 GTK-2 graphical client. The architecture of Ocamlviz can be depicted as follows: program instrumented library Ocamlviz network GUI Ocamlviz Figure 1: Ocamlviz s architecture. Server and clients communicate through a protocol independent of OCaml, which allows remote observation from distant machines and to write clients in other languages. This paper is organized as follows. Section 2 describes the general architecture of Ocamlviz and shows the main features for instrumenting programs. Section 3 gives specific implementation details about the library and the protocol. Finally, we sketch some perspectives in Section Principle Ocamlviz is both a library to instrument OCaml code and tools to communicate and visualize the results. The concept is illustrated Figure 1. First, the user instruments the code to indicate which observations to perform. To do so, the library provides different kinds of observation functions. Then, the code is linked to the library. When executed, the resulted program runs as if it was not instrumented, but can also be observed. Indeed, in parallel to normal execution, the program now behaves as a server ready to connect to new clients and to transmit them observation data. In particular, Ocamlviz provides an enhanced graphical interface which allows a nice and clear display of results (see Figure 2). The client/server architecture offers many advantages. First, it allows observation at any time during program execution. In particular, a client may connect late after the program startup and may disconnect whenever it likes. Second, several clients may connect to a single

9 Ocamlviz 167 Figure 2: Ocamlviz s graphical interface. program, even simultaneously. Third, clients can connect from remote machines, possibly with a different architecture from that of the running program. Finally, Ocamlviz s architecture dissociates the production of data from their observation. In particular, the communication protocol is independent of OCaml and thus allows clients to be written in other languages. The minimal instrumentation simply consists in linking a program to the Ocamlviz library. It has the immediate effect of sending to clients data related to the OCaml garbage-collector (total size of the heap and of its living part). The graphical interface then displays this information as a graph, as shown in Figure 2. Beyond this feature, the Ocamlviz library provides the following features: measuring the time spent between two program points; counting the number of times one or several program points are reached; observing values computed by the program; measuring number and total size of a set of values marked by the user;

10 168 JFLA 2010 displaying printf-like messages, which are also logged. The remaining of this section details both these different kinds of instrumentation and the graphical interface features Instrumentation The Ocamlviz library provides modules to observe computation times, program points, or values computed by the program Time Measure. Ocamlviz defines a notion of stopwatch, which can be started or stopped anywhere in the program. Such program points do not necessarily coincide with function entries or exits, as it is usually the case in profiling tools. Moreover, one can measure the cumulative time spent in several parts of the code. A new stopwatch is created as follows: let chrono = Ocamlviz.Time.create "t" The string "t" is only used for display in the graphical interface. The stopwatch is used as follows: let f x =... Ocamlviz.Time.start chrono; let z =... in Ocamlviz.Time.stop chrono... In this example, we only measure the time spent for computing z but not in the remaining of function f. It is worth noticing that a stopwatch can be started in some function and stopped in another one. Figure 3 shows how the graphical interface displays the value of stopwatch "t". Column Time displays the current value of the stopwatch (namely 40.9 seconds, representing 100% of total execution time) and the next column displays the execution time at which this value was received (namely 40.9 seconds as well, since both values coincide).

11 Ocamlviz Program Points. Figure 3: Stopwatches and program points. Ocamlviz provides a way to mark one or several program points and then to count the number of times execution reaches these marks. A new mark is created as follows: let point = Ocamlviz.Point.create "p" Then program points to be observed are marked as follows:... Ocamlviz.Point.observe point;... A given mark can be used at several places inside the code and the count is global for each mark. For instance, Figure 3 shows that execution reached 803,800,206 times program points marked using point Observing Values. Ocamlviz allows to observe arbitrary values computed by the program. For simple types (integers, floating-points or strings), it suffices to provide a function computing the value to observe. Then this function is called repeatedly, at a frequency specified by the user. The following code let () = Ocamlviz.Value.observe_float_fct "my value" ~period:200 (fun () sin!v) declares an observation function computing the floating-point value sin!v every 200 milliseconds. Figure 4 shows the visualization of this value in the graphical interface.

12 170 JFLA 2010 Figure 4: value. Observing a scalar Figure 5: Observing a structured value. For more complex types, a simple solution is to turn values to observe into strings. However, Ocamlviz provides a more elegant way to observe values such as trees or graphs. To do so, the user first turns his data structure into the following type: type t = { node : string; mutable children : t list } Generally speaking, it is a datatype for graphs where nodes are labeled with strings. The mutable nature of field children allows to build cyclic values. If the user data contains sharing, it will be preserved by the communication protocol and displayed in the graphical interface. Figure 5 shows the visualization of a structured data where the node named "shared" is shared Marking Values. Ocamlviz provides a way to precisely analyze how the memory is used. Indeed, one can mark values and then to monitor, at any time, the number of such values still alive and the amount of space they use. As for program points, one first create a new marker, called a tag in this context: let t = Ocamlviz.Tag.create ~size:true ~period:300 "foo"

13 Ocamlviz 171 Here we create a tag with name "foo". We indicate that memory size must be computed (option size), everywhere 300 milliseconds (option period). Using such a tag, one can mark values when they are created, for instance, as follows: let cons x = let l = Random.float 10. :: x in Ocamlviz.Tag.mark t l; l The graphical interface displays the number of values and total size for this tag: On this screenshot, one reads that 6,032 values still alive are marked with tag "foo" and use slightly more than 289 kb. A given tag can be used to mark one or several values, possibly of different types. If several values are marked with the same tag and share sub-values, then sharing is taken into account in the computation of memory use. Thus in the following code let l2 = [Random.int 3; Random.int 4] in Ocamlviz.Tag.mark t l2; let l3 = Random.int 5 :: l2 in Ocamlviz.Tag.mark t l3;... the number of values tagged with t is 2 (the lists l2 and l3) and the memory used for this tag is 36 bytes (3 cons blocks, of 3 words each including the header word) Hash Tables. Observing a value from an abstract type from the standard library is not easy: one has to know the type definition and to resort to module

14 172 JFLA 2010 Obj. For instance, the user cannot easily monitor the contents of a hash table of type Hashtbl.t, in particular to determine if the distribution among buckets is uniform. To help in this process, Ocamlviz provides a module to observe a hash table from the standard library. The following line declares a global hash table to be observed under the name "h": let h = Ocamlviz.Hashtable.observe "h" (Hashtbl.create 17) Then the hraphical interface displays several elements regarding this table: It includes the number of empty buckets, the filling rate (that is the proportion of non-empty buckets), and the length of the longest bucket Journal. Finally, Ocamlviz provides a printf-like facility to transmit text messages up to the clients. These messages are sent together with the program execution time. For instance, one can write... Ocamlviz.log ">>> test %d >>>" i; and observe the sequence of such messages in the graphical interface:

15 Ocamlviz Automatic Instrumentation using Camlp4. It can be rather tedious to instrument the code in a systematic way, for instance to observe the time spent in each function in a way similar to a traditional profiler. Ocamlviz provides a small camlp4 module to do that, which automatically inserts the following observations: values for global references of type int, float, bool or string (initialized with a constant); contents of all global hash tables ; number of calls and time spent in each global function. The main purpose of this camlp4 module is to show that such an automatic instrumentation is possible; it is likely that each user will modify it as needed Advanced Features Graphical Interface The graphical interface provided with Ocamlviz proposes other features beyond the ones already presented so far. In particular, the user may stop the display update at any time, to have a detailed look at the values transmitted by the server. The program under execution is not interrupted and keeps sending new data. These data are not lost but stored in a database local to the client (to be described later in Section 3.4). At any time, the user may resume the real-time observation of the program. It resumes where it was stopped, thus with a time shifting. More generally, the user may navigate in time arbitrarily using a cursor, within the limits of a predefined and customizable time window. This feature appears in the upper part of the graphical interface, as follows: Another feature of the interface is the ability to display one or several numerical values within a new graph, as done for garbage-collector data for instance. To do so, the user selects the values to display (checking

16 174 JFLA 2010 them) and then asks for the creation of a new graph or the addition to an existing graph. Such graphs appear in new tabs, but can also be detached from the main window to be observed in parallel Dump Profiling To profile a program using Ocamlviz, the user needs to start the graphical interface after starting the program. This can be particularly disappointing for short life programs, where the graphical interface does not have time to connect to the program to extract interesting information. We found that a good solution to that problem is to ask Ocamlviz to dump all the observations in a file during the execution of such a program, and then to ask the graphical interface to display the content of that dump file. For that, the user just needs to execute the instrumented program with an additional environment variable, called OCAMLVIZ_DUMP, that must contain the name of the file that should be created during the execution, and filled with the observations. Then, we implemented two new options for the graphical interface: Option -i filename tells the graphical interface that it should read observations from the specified filename. Option -tscale factor tells the graphical interface that it should scale the time using the specified factor. The second option is particularly useful for very short life programs, where it is interesting to slow down the execution speed of the program, to be able to observe the program behavior in the graphical interface. The user can also use the OCAMLVIZ_PERIOD environment variable while running the instrumented program to decrease the period between observations, to get a very fine grain monitoring of the program. Using the navigation panel described in the previous section, the user can then inspect the observed values during the execution of the program, with the possibility to go forward and backward in the execution as needed.

17 Ocamlviz 175 serveur clients protocole binaire programme Ocamlviz Net Db affichage... Net Db affichage Figure 6: Client and server parts of Ocamlviz library. 3. Implementation As shown in Figure 6, the Ocamlviz library can be split into two parts. First, a server part, linked to the instrumented program, which communicates with one or several clients via the network. Second, a client part which provides tools to ease the programming of clients. In this section, we show how these two parts are implemented in the current version of Ocamlviz. More precisely, we first describe the communication protocol and its implementation, then we give several details underlying the computation of observations and finally we present the storage module on the client side Communication Protocol An important feature of Ocamlviz is the possibility to remotely observe the execution of a program. In order to be independent of the architectures of the machines used to observe and to run the program, we designed a portable binary protocol and implemented it in the client and server parts of the library. The benefit of such an approach is to allow the communication between different machines (32 and 64-bits for instance, little-endian and big-endian) but also to write clients and servers in any programming language. Thus, it is possible to write a new library to instrument programs written in a language other than OCaml and to observe programs using the current graphical interface of Ocamlviz. Conversely, it is possible to write new clients in any programming language.

18 176 JFLA Messages The current protocol only contains messages from server to clients. It is defined with 3 kinds of messages: type msg = Declare of uid kind string Send of uid value Bind of uid list Messages refer to observed values which are identified by unique integers of type uid. The message Declare (uid, kind, name) declares a new observed value, giving its unique id, its nature of type kind and the name under which is must be displayed. At connection time, the client receives from the server a bunch a Declare messages corresponding to all values observed in the instrumented program so far. The message Send (uid, v) gives an update v for the value identified by uid. Such a message is repeatedly sent for each observed value, even when there is no change. Last, the message Bind uid_list tells the client that several unique identifiers are linked together; it is used in particular to bind the number and the size values for a single tag of type Ocamlviz.Tag.t Binary Protocol Each message is a string of characters. It contains a first 4-byte header indicating its length and a second header indicating its type. Then other values follow, whose type and number differ according to the message type. This representation allows an efficient processing of each message. In particular, a message is not analyzed as long as it is not entirely received. Messages are stored within a global buffer, which is only extended when necessary. This avoids allocating many small strings for messages, which would fragment the heap and slower the garbagecollector. To simplify the implementation and possible extension of the protocol, functions are provided to transmit values of each OCaml base type

19 Ocamlviz 177 and then combined to transmit more complex data. For each base type ttype (8, 16, 32 or 64-bits integers, floating-points, etc.) we introduce a pair of functions as follows: val get_ttype : string int ttype int val buf_ttype : Buffer.t ttype unit Function get_ttype s pos extracts of value of type ttype from string s starting at position posand returns a pair containing this values together with the next position in the string. Function buf_ttype buf v appends value v of type ttype to the buffer buf. To insert the message length, four null bytes are placed in front of the buffer before encoding the message. The string corresponding to the message is then extracted and, its length being now known, its four first bytes are modified accordingly. Last, in order to allow compatibility between 32 and 64-bits architectures, integer values come together with a tag indicating their size (31 or 63-bits int, int32, or int64) The Server Library The server library computes every 100 milliseconds all the currently monitored values, and sends them to all connected clients. The delay between these computations can be adjusted using the OCAMLVIZ_PERIOD environment variable. Two different mechanisms have been implemented to deal with these operations, depending on the constraints on the monitored program: alarms (signals) and threads Using Alarms Alarms can be used to trigger the execution of a function periodically. This technique works well in most cases, because it stops the execution of the program while the function is executing, and thus, it does not suffer from synchronization problems. There are still cases where alarms could raise issues:

20 178 JFLA 2010 In OCaml, alarms are not allowed to interrupt a program at any instant. Instead, OCaml only allows the execution of the alarm code at particular points, to avoid bad interactions with the garbage collector. These points are mostly allocations and input-output operations. Thus, a program in a computation loop, without allocations nor input-output, will never trigger the execution of the alarm code, and the Ocamlviz server will never send any data. To solve this issue, it is possible to add in the code of the loop a call to the Ocamlviz.yield () function to allow OCaml to deal with alarm code. When a program already makes use of alarms, it becomes impossible for Ocamlviz to use them, because there can be only one handler for alarms. It is then required to use threads to avoid modifying the semantics of the original program Using Threads In this second solution, a thread is started when the program is launched. The only task of this thread is to periodically compute the new values of monitored variables, and send them to the connected clients. This solution also suffers from some drawbacks : The use of threads is somewhat limited in OCaml, in particular because the garbage collector is not concurrent. As a consequence, the runtime does not allow the execution of OCaml code in more than one thread concurrently. As for alarms, rescheduling of threads cannot happen at any time, but only within allocations or input-output operations. Here again, an explicit call to Ocamlviz.yield () should be added within computation loops to allow Ocamlviz thread to be scheduled and executed Monitoring Techniques in the Server Monitoring techniques implemented in Ocamlviz try to modify the behavior of the monitored program as little as possible. In particular, to avoid delaying garbage collection of dead values, data that have been marked by the user with Ocamlviz.Tag.mark are stored in a table of weak pointers.

Instructions Mozilla Thunderbird Page 1

Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et

Plus en détail

WEB page builder and server for SCADA applications usable from a WEB navigator

WEB page builder and server for SCADA applications usable from a WEB navigator Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel

Plus en détail

Editing and managing Systems engineering processes at Snecma

Editing and managing Systems engineering processes at Snecma Editing and managing Systems engineering processes at Snecma Atego workshop 2014-04-03 Ce document et les informations qu il contient sont la propriété de Ils ne doivent pas être copiés ni communiqués

Plus en détail

RAPID 3.34 - Prenez le contrôle sur vos données

RAPID 3.34 - Prenez le contrôle sur vos données RAPID 3.34 - Prenez le contrôle sur vos données Parmi les fonctions les plus demandées par nos utilisateurs, la navigation au clavier et la possibilité de disposer de champs supplémentaires arrivent aux

Plus en détail

Exercices sur SQL server 2000

Exercices sur SQL server 2000 Exercices sur SQL server 2000 La diagramme de classe : Exercices sur SQL server 2000 Le modèle relationnel correspondant : 1 Créer les tables Clic-droit on Tables et choisir «New Table» Créer la table

Plus en détail

Application Form/ Formulaire de demande

Application Form/ Formulaire de demande Application Form/ Formulaire de demande Ecosystem Approaches to Health: Summer Workshop and Field school Approches écosystémiques de la santé: Atelier intensif et stage d été Please submit your application

Plus en détail

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 HFFv2 1. OBJET L accroissement de la taille de code sur la version 2.0.00 a nécessité une évolution du mapping de la flash. La conséquence de ce

Plus en détail

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces Micro-ordinateurs, informations, idées, trucs et astuces Utiliser une WebCam Auteur : François CHAUSSON Date : 8 février 2008 Référence : utiliser une WebCam.doc Préambule Voici quelques informations utiles

Plus en détail

APPENDIX 6 BONUS RING FORMAT

APPENDIX 6 BONUS RING FORMAT #4 EN FRANÇAIS CI-DESSOUS Preamble and Justification This motion is being presented to the membership as an alternative format for clubs to use to encourage increased entries, both in areas where the exhibitor

Plus en détail

Exemple PLS avec SAS

Exemple PLS avec SAS Exemple PLS avec SAS This example, from Umetrics (1995), demonstrates different ways to examine a PLS model. The data come from the field of drug discovery. New drugs are developed from chemicals that

Plus en détail

Once the installation is complete, you can delete the temporary Zip files..

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

Plus en détail

Plan. Department of Informatics

Plan. Department of Informatics Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Special Topics 7. Prise de recul critique Enterprise

Plus en détail

Lesson Plan Physical Descriptions. belle vieille grande petite grosse laide mignonne jolie. beau vieux grand petit gros laid mignon

Lesson Plan Physical Descriptions. belle vieille grande petite grosse laide mignonne jolie. beau vieux grand petit gros laid mignon Lesson Plan Physical Descriptions Objective: Students will comprehend and describe the physical appearance of others. Vocabulary: Elle est Il est Elle/Il est Elle/Il a les cheveux belle vieille grande

Plus en détail

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition Surveillance de Scripts LUA et de réception d EVENT avec LoriotPro Extended & Broadcast Edition L objectif de ce document est de présenter une solution de surveillance de processus LUA au sein de la solution

Plus en détail

Forthcoming Database

Forthcoming Database DISS.ETH NO. 15802 Forthcoming Database A Framework Approach for Data Visualization Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of

Plus en détail

Natixis Asset Management Response to the European Commission Green Paper on shadow banking

Natixis Asset Management Response to the European Commission Green Paper on shadow banking European Commission DG MARKT Unit 02 Rue de Spa, 2 1049 Brussels Belgium markt-consultation-shadow-banking@ec.europa.eu 14 th June 2012 Natixis Asset Management Response to the European Commission Green

Plus en détail

Institut français des sciences et technologies des transports, de l aménagement

Institut français des sciences et technologies des transports, de l aménagement Institut français des sciences et technologies des transports, de l aménagement et des réseaux Session 3 Big Data and IT in Transport: Applications, Implications, Limitations Jacques Ehrlich/IFSTTAR h/ifsttar

Plus en détail

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on ONTARIO Court File Number at (Name of court) Court office address Applicant(s) (In most cases, the applicant will be a children s aid society.) Full legal name & address for service street & number, municipality,

Plus en détail

Contents Windows 8.1... 2

Contents Windows 8.1... 2 Workaround: Installation of IRIS Devices on Windows 8 Contents Windows 8.1... 2 English Français Windows 8... 13 English Français Windows 8.1 1. English Before installing an I.R.I.S. Device, we need to

Plus en détail

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION 1 12 rue Denis Papin 37300 JOUE LES TOURS Tel: 02.47.68.34.00 Fax: 02.47.68.35.48 www.herve consultants.net contacts@herve consultants.net TABLE DES MATIERES A Objet...1 B Les équipements et pré-requis...2

Plus en détail

UML : Unified Modeling Language

UML : Unified Modeling Language UML : Unified Modeling Language Recommended: UML distilled A brief guide to the standard Object Modeling Language Addison Wesley based on Frank Maurer lecture, Univ. of Calgary in french : uml.free.fr/index.html

Plus en détail

How to Login to Career Page

How to Login to Career Page How to Login to Career Page BASF Canada July 2013 To view this instruction manual in French, please scroll down to page 16 1 Job Postings How to Login/Create your Profile/Sign Up for Job Posting Notifications

Plus en détail

Mon Service Public - Case study and Mapping to SAML/Liberty specifications. Gaël Gourmelen - France Telecom 23/04/2007

Mon Service Public - Case study and Mapping to SAML/Liberty specifications. Gaël Gourmelen - France Telecom 23/04/2007 Mon Service Public - Case study and Mapping to SAML/Liberty specifications Gaël Gourmelen - France Telecom 23/04/2007 Agenda Brief presentation of the "Mon Service Public" project (main features) Detailed

Plus en détail

Object Oriented Parallel Discrete Event Simulation: The PROSIT Approach

Object Oriented Parallel Discrete Event Simulation: The PROSIT Approach INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET AUTOMATIQUE Object Oriented Parallel Discrete Event Simulation: The PROSIT Approach Lionel Mallet and Philippe Mussi N 2232 Avril 1994 PROGRAMME 1 Architectures

Plus en détail

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5 RULE 5 - SERVICE OF DOCUMENTS General Rules for Manner of Service Notices of Application and Other Documents 5.01 (1) A notice of application or other document may be served personally, or by an alternative

Plus en détail

Guide d'installation rapide TFM-560X YO.13

Guide d'installation rapide TFM-560X YO.13 Guide d'installation rapide TFM-560X YO.13 Table of Contents Français 1 1. Avant de commencer 1 2. Procéder à l'installation 2 Troubleshooting 6 Version 06.08.2011 16. Select Install the software automatically

Plus en détail

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32 THAT the proposed clause 6(1), as set out in Clause 6(1) of the Bill, be replaced with the following: Trustee to respond promptly 6(1) A trustee shall respond to a request as promptly as required in the

Plus en détail

Tex: The book of which I'm the author is an historical novel.

Tex: The book of which I'm the author is an historical novel. page: pror3 1. dont, où, lequel 2. ce dont, ce + preposition + quoi A relative pronoun introduces a clause that explains or describes a previously mentioned noun. In instances where the relative pronoun

Plus en détail

DOCUMENTATION - FRANCAIS... 2

DOCUMENTATION - FRANCAIS... 2 DOCUMENTATION MODULE SHOPDECORATION MODULE PRESTASHOP CREE PAR PRESTACREA INDEX : DOCUMENTATION - FRANCAIS... 2 INSTALLATION... 2 Installation automatique... 2 Installation manuelle... 2 Résolution des

Plus en détail

CLIM/GTP/27/8 ANNEX III/ANNEXE III. Category 1 New indications/ 1 re catégorie Nouvelles indications

CLIM/GTP/27/8 ANNEX III/ANNEXE III. Category 1 New indications/ 1 re catégorie Nouvelles indications ANNEX III/ANNEXE III PROPOSALS FOR CHANGES TO THE NINTH EDITION OF THE NICE CLASSIFICATION CONCERNING AMUSEMENT APPARATUS OR APPARATUS FOR GAMES/ PROPOSITIONS DE CHANGEMENTS À APPORTER À LA NEUVIÈME ÉDITION

Plus en détail

Règlement sur le télémarketing et les centres d'appel. Call Centres Telemarketing Sales Regulation

Règlement sur le télémarketing et les centres d'appel. Call Centres Telemarketing Sales Regulation THE CONSUMER PROTECTION ACT (C.C.S.M. c. C200) Call Centres Telemarketing Sales Regulation LOI SUR LA PROTECTION DU CONSOMMATEUR (c. C200 de la C.P.L.M.) Règlement sur le télémarketing et les centres d'appel

Plus en détail

APPENDIX 2. Provisions to be included in the contract between the Provider and the. Holder

APPENDIX 2. Provisions to be included in the contract between the Provider and the. Holder Page 1 APPENDIX 2 Provisions to be included in the contract between the Provider and the Obligations and rights of the Applicant / Holder Holder 1. The Applicant or Licensee acknowledges that it has read

Plus en détail

COUNCIL OF THE EUROPEAN UNION. Brussels, 18 September 2008 (19.09) (OR. fr) 13156/08 LIMITE PI 53

COUNCIL OF THE EUROPEAN UNION. Brussels, 18 September 2008 (19.09) (OR. fr) 13156/08 LIMITE PI 53 COUNCIL OF THE EUROPEAN UNION Brussels, 18 September 2008 (19.09) (OR. fr) 13156/08 LIMITE PI 53 WORKING DOCUMENT from : Presidency to : delegations No prev. doc.: 12621/08 PI 44 Subject : Revised draft

Plus en détail

Paxton. ins-20605. Net2 desktop reader USB

Paxton. ins-20605. Net2 desktop reader USB Paxton ins-20605 Net2 desktop reader USB 1 3 2 4 1 2 Desktop Reader The desktop reader is designed to sit next to the PC. It is used for adding tokens to a Net2 system and also for identifying lost cards.

Plus en détail

Stratégie DataCenters Société Générale Enjeux, objectifs et rôle d un partenaire comme Data4

Stratégie DataCenters Société Générale Enjeux, objectifs et rôle d un partenaire comme Data4 Stratégie DataCenters Société Générale Enjeux, objectifs et rôle d un partenaire comme Data4 Stéphane MARCHINI Responsable Global des services DataCenters Espace Grande Arche Paris La Défense SG figures

Plus en détail

Academic Project. B2- Web Development. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA

Academic Project. B2- Web Development. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA SUPINFO Academic Dept. Resit Project Academic Project B2- Web Development 2012-2013 Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA Conditions d utilisations : SUPINFO International

Plus en détail

Principe de TrueCrypt. Créer un volume pour TrueCrypt

Principe de TrueCrypt. Créer un volume pour TrueCrypt Sommaire : Principe de TrueCrypt...1 Créer un volume pour TrueCrypt...1 Premier montage...6 Réglages...8 Save Currently Mounted Volumes as Favorite...8 Settings > Preferences...9 TrueCrypt Traveller pour

Plus en détail

Dans une agence de location immobilière...

Dans une agence de location immobilière... > Dans une agence de location immobilière... In a property rental agency... dans, pour et depuis vocabulaire: «une location» et «une situation» Si vous voulez séjourner à Lyon, vous pouvez louer un appartement.

Plus en détail

THÈSE. présentée à TÉLÉCOM PARISTECH. pour obtenir le grade de. DOCTEUR de TÉLÉCOM PARISTECH. Mention Informatique et Réseaux. par.

THÈSE. présentée à TÉLÉCOM PARISTECH. pour obtenir le grade de. DOCTEUR de TÉLÉCOM PARISTECH. Mention Informatique et Réseaux. par. École Doctorale d Informatique, Télécommunications et Électronique de Paris THÈSE présentée à TÉLÉCOM PARISTECH pour obtenir le grade de DOCTEUR de TÉLÉCOM PARISTECH Mention Informatique et Réseaux par

Plus en détail

AUDIT COMMITTEE: TERMS OF REFERENCE

AUDIT COMMITTEE: TERMS OF REFERENCE AUDIT COMMITTEE: TERMS OF REFERENCE PURPOSE The Audit Committee (the Committee), assists the Board of Trustees to fulfill its oversight responsibilities to the Crown, as shareholder, for the following

Plus en détail

Package Contents. System Requirements. Before You Begin

Package Contents. System Requirements. Before You Begin Package Contents DWA-125 Wireless 150 USB Adapter CD-ROM (contains software, drivers, and manual) Cradle If any of the above items are missing, please contact your reseller. System Requirements A computer

Plus en détail

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE :

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE : MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE : Housing system est un service gratuit, qui vous propose de vous mettre en relation avec

Plus en détail

If you understand the roles nouns (and their accompanying baggage) play in a sentence...

If you understand the roles nouns (and their accompanying baggage) play in a sentence... If you understand the roles nouns (and their accompanying baggage) play in a sentence...... you can use pronouns with ease (words like lui, leur, le/la/les, eux and elles)...... understand complicated

Plus en détail

EN UNE PAGE PLAN STRATÉGIQUE

EN UNE PAGE PLAN STRATÉGIQUE EN UNE PAGE PLAN STRATÉGIQUE PLAN STRATÉGIQUE EN UNE PAGE Nom de l entreprise Votre nom Date VALEUR PRINCIPALES/CROYANCES (Devrait/Devrait pas) RAISON (Pourquoi) OBJECTIFS (- AN) (Où) BUT ( AN) (Quoi)

Plus en détail

MANAGEMENT SOFTWARE FOR STEEL CONSTRUCTION

MANAGEMENT SOFTWARE FOR STEEL CONSTRUCTION Ficep Group Company MANAGEMENT SOFTWARE FOR STEEL CONSTRUCTION KEEP ADVANCING " Reach your expectations " ABOUT US For 25 years, Steel Projects has developed software for the steel fabrication industry.

Plus en détail

Acce s aux applications informatiques Supply Chain Fournisseurs

Acce s aux applications informatiques Supply Chain Fournisseurs Acce s aux applications informatiques Supply Chain Fournisseurs Toujours plus de service pour vous ; rapide, pratique, sécurisé, écologique et gratuit! Vous vous connectez à notre site MESSIER BUGATTI

Plus en détail

Notice Technique / Technical Manual

Notice Technique / Technical Manual Contrôle d accès Access control Encodeur USB Mifare ENCOD-USB-AI Notice Technique / Technical Manual SOMMAIRE p.2/10 Sommaire Remerciements... 3 Informations et recommandations... 4 Caractéristiques techniques...

Plus en détail

Contrôle d'accès Access control. Notice technique / Technical Manual

Contrôle d'accès Access control. Notice technique / Technical Manual p.1/18 Contrôle d'accès Access control INFX V2-AI Notice technique / Technical Manual p.2/18 Sommaire / Contents Remerciements... 3 Informations et recommandations... 4 Caractéristiques techniques... 5

Plus en détail

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past!

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past! > Le passé composé le passé composé C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past! «Je suis vieux maintenant, et ma femme est vieille aussi. Nous n'avons pas eu d'enfants.

Plus en détail

Gestion des prestations Volontaire

Gestion des prestations Volontaire Gestion des prestations Volontaire Qu estce que l Income Management (Gestion des prestations)? La gestion des prestations est un moyen de vous aider à gérer votre argent pour couvrir vos nécessités et

Plus en détail

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed. Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed. Note: This manual describes the appearance of the USB Stick, as well as the

Plus en détail

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne Online Applications Tutorial 1/4 Pour postuler aux Appels d Offres de l ENP, vous devez aller sur la plateforme : calls.parisneuroscience.fr.

Plus en détail

Nouveautés printemps 2013

Nouveautés printemps 2013 » English Se désinscrire de la liste Nouveautés printemps 2013 19 mars 2013 Dans ce Flash Info, vous trouverez une description des nouveautés et mises à jour des produits La Capitale pour le printemps

Plus en détail

BNP Paribas Personal Finance

BNP Paribas Personal Finance BNP Paribas Personal Finance Financially fragile loan holder prevention program CUSTOMERS IN DIFFICULTY: QUICKER IDENTIFICATION MEANS BETTER SUPPORT Brussels, December 12th 2014 Why BNPP PF has developed

Plus en détail

1.The pronouns me, te, nous, and vous are object pronouns.

1.The pronouns me, te, nous, and vous are object pronouns. 1.The pronouns me, te, nous, and vous are object pronouns.! Marie t invite au théâtre?!! Oui, elle m invite au théâtre.! Elle te parle au téléphone?!! Oui, elle me parle au téléphone.! Le prof vous regarde?!!!

Plus en détail

Frequently Asked Questions

Frequently Asked Questions GS1 Canada-1WorldSync Partnership Frequently Asked Questions 1. What is the nature of the GS1 Canada-1WorldSync partnership? GS1 Canada has entered into a partnership agreement with 1WorldSync for the

Plus en détail

The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you.

The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you. General information 120426_CCD_EN_FR Dear Partner, The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you. To assist navigation

Plus en détail

USB 598. Quick Start Guide (Windows) Guide de démarrage rapide (Windows) USB Modem. Modem USB. www.sierrawireless.com

USB 598. Quick Start Guide (Windows) Guide de démarrage rapide (Windows) USB Modem. Modem USB. www.sierrawireless.com USB 598 With Avec USB Modem Quick Start Guide (Windows) Modem USB Guide de démarrage rapide (Windows) www.sierrawireless.com This guide provides installation instructions for users of: Windows Vista Windows

Plus en détail

ETABLISSEMENT D ENSEIGNEMENT OU ORGANISME DE FORMATION / UNIVERSITY OR COLLEGE:

ETABLISSEMENT D ENSEIGNEMENT OU ORGANISME DE FORMATION / UNIVERSITY OR COLLEGE: 8. Tripartite internship agreement La présente convention a pour objet de définir les conditions dans lesquelles le stagiaire ci-après nommé sera accueilli dans l entreprise. This contract defines the

Plus en détail

English Q&A #1 Braille Services Requirement PPTC 144918. Q1. Would you like our proposal to be shipped or do you prefer an electronic submission?

English Q&A #1 Braille Services Requirement PPTC 144918. Q1. Would you like our proposal to be shipped or do you prefer an electronic submission? English Q&A #1 Braille Services Requirement PPTC 144918 Q1. Would you like our proposal to be shipped or do you prefer an electronic submission? A1. Passport Canada requests that bidders provide their

Plus en détail

Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE

Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE 1 Objectifs de l étude Comprendre l impact des réseaux sociaux externes ( Facebook, LinkedIn,

Plus en détail

GIGABIT PCI DESKTOP ADAPTER DGE-530T. Quick Installation Guide+ Guide d installation+

GIGABIT PCI DESKTOP ADAPTER DGE-530T. Quick Installation Guide+ Guide d installation+ GIGABIT PCI DESKTOP ADAPTER Quick Installation Guide+ Guide d installation+ Check Your Package Contents Quick Installation Guide Gigabit Ethernet PCI Adapter CD with Manual and Drivers DO NOT insert the

Plus en détail

gedriver Green Efficient Driver

gedriver Green Efficient Driver gedriver Green Efficient Driver Objectifs du projet Le projet GeDRIVER s est déroulé dans un contexte de déploiement de l'éco-conduite, avec la participation de plusieurs acteurs industriels et de la recherche,

Plus en détail

GAME CONTENTS CONTENU DU JEU OBJECT OF THE GAME BUT DU JEU

GAME CONTENTS CONTENU DU JEU OBJECT OF THE GAME BUT DU JEU GAME CONTENTS 3 wooden animals: an elephant, a Polar bear and an African lion 1 Playing Board with two tree stumps, one red and one blue 1 Command Board double sided for two game levels (Green for normal

Plus en détail

SERVEUR DÉDIÉ DOCUMENTATION

SERVEUR DÉDIÉ DOCUMENTATION SERVEUR DÉDIÉ DOCUMENTATION Release 5.0.6.0 19 Juillet 2013 Copyright 2013 GIANTS Software GmbH, All Rights Reserved. 1/9 CHANGE LOG Correction de bug divers (5.0.6.0) Ajout d une option de relance automatique

Plus en détail

We Generate. You Lead.

We Generate. You Lead. www.contact-2-lead.com We Generate. You Lead. PROMOTE CONTACT 2 LEAD 1, Place de la Libération, 73000 Chambéry, France. 17/F i3 Building Asiatown, IT Park, Apas, Cebu City 6000, Philippines. HOW WE CAN

Plus en détail

Optimized Protocol Stack for Virtualized Converged Enhanced Ethernet

Optimized Protocol Stack for Virtualized Converged Enhanced Ethernet Diss. ETH No. 22127 Optimized Protocol Stack for Virtualized Converged Enhanced Ethernet A thesis submitted to attain the degree of DOCTOR OF SCIENCES of ETH ZURICH (Dr. sc. ETH Zurich) presented by Daniel

Plus en détail

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed. Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed. Note: This manual describes the appearance of the USB Stick, as well as the

Plus en détail

Développement logiciel pour le Cloud (TLC)

Développement logiciel pour le Cloud (TLC) Table of Contents Développement logiciel pour le Cloud (TLC) 6. Infrastructure-as-a-Service Guillaume Pierre 1 Introduction 2 OpenStack Université de Rennes 1 Fall 2012 http://www.globule.org/~gpierre/

Plus en détail

DOCUMENTATION - FRANCAIS... 2

DOCUMENTATION - FRANCAIS... 2 DOCUMENTATION MODULE CATEGORIESTOPMENU MODULE CREE PAR PRESTACREA INDEX : DOCUMENTATION - FRANCAIS... 2 INSTALLATION... 2 CONFIGURATION... 2 LICENCE ET COPYRIGHT... 3 SUPPORT TECHNIQUE ET MISES A JOUR...

Plus en détail

PAR RINOX INC BY RINOX INC PROGRAMME D INSTALLATEUR INSTALLER PROGRAM

PAR RINOX INC BY RINOX INC PROGRAMME D INSTALLATEUR INSTALLER PROGRAM PAR RINOX INC BY RINOX INC PROGRAMME D INSTALLATEUR INSTALLER PROGRAM DEVENEZ UN RINOXPERT DÈS AUJOURD HUI! BECOME A RINOXPERT NOW OPTIMISER VOS VENTES INCREASE YOUR SALES VISIBILITÉ & AVANTAGES VISIBILITY

Plus en détail

Sustainability Monitoring and Reporting: Tracking Your Community s Sustainability Performance

Sustainability Monitoring and Reporting: Tracking Your Community s Sustainability Performance Sustainability Monitoring and Reporting: Tracking Your Community s Sustainability Performance Thursday, February 11 th, 2011 FCM Sustainable Communities Conference, Victoria, BC The Agenda 1. Welcome and

Plus en détail

Eléments de statistique

Eléments de statistique Eléments de statistique L. Wehenkel Cours du 9/12/2014 Méthodes multivariées; applications & recherche Quelques méthodes d analyse multivariée NB: illustration sur base de la BD résultats de probas en

Plus en détail

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Rational ClearCase or ClearCase MultiSite Version 7.0.1 Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Product Overview IBM Rational

Plus en détail

Lamia Oukid, Ounas Asfari, Fadila Bentayeb, Nadjia Benblidia, Omar Boussaid. 14 Juin 2013

Lamia Oukid, Ounas Asfari, Fadila Bentayeb, Nadjia Benblidia, Omar Boussaid. 14 Juin 2013 Cube de textes et opérateur d'agrégation basé sur un modèle vectoriel adapté Text Cube Model and aggregation operator based on an adapted vector space model Lamia Oukid, Ounas Asfari, Fadila Bentayeb,

Plus en détail

CONVENTION DE STAGE TYPE STANDART TRAINING CONTRACT

CONVENTION DE STAGE TYPE STANDART TRAINING CONTRACT CONVENTION DE STAGE TYPE STANDART TRAINING CONTRACT La présente convention a pour objet de définir les conditions dans lesquelles le stagiaire ci-après nommé sera accueilli dans l entreprise. This contract

Plus en détail

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad Outils d'analyse de la sécurité des réseaux HADJALI Anis VESA Vlad Plan Introduction Scanneurs de port Les systèmes de détection d'intrusion (SDI) Les renifleurs (sniffer) Exemples d'utilisation Conclusions

Plus en détail

Cheque Holding Policy Disclosure (Banks) Regulations. Règlement sur la communication de la politique de retenue de chèques (banques) CONSOLIDATION

Cheque Holding Policy Disclosure (Banks) Regulations. Règlement sur la communication de la politique de retenue de chèques (banques) CONSOLIDATION CANADA CONSOLIDATION CODIFICATION Cheque Holding Policy Disclosure (Banks) Regulations Règlement sur la communication de la politique de retenue de chèques (banques) SOR/2002-39 DORS/2002-39 Current to

Plus en détail

RISK-BASED TRANSPORTATION PLANNING PRACTICE: OVERALL METIIODOLOGY AND A CASE EXAMPLE"' RESUME

RISK-BASED TRANSPORTATION PLANNING PRACTICE: OVERALL METIIODOLOGY AND A CASE EXAMPLE' RESUME RISK-BASED TRANSPORTATION PLANNING PRACTICE: OVERALL METIIODOLOGY AND A CASE EXAMPLE"' ERTUGRULALP BOVAR-CONCORD Etwiromnental, 2 Tippet Rd. Downsviel+) ON M3H 2V2 ABSTRACT We are faced with various types

Plus en détail

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0 DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0 INDEX : DOCUMENTATION - FRANCAIS... 2 1. INSTALLATION... 2 2. CONFIGURATION... 2 3. LICENCE ET COPYRIGHT... 3 4. MISES

Plus en détail

NOM ENTREPRISE. Document : Plan Qualité Spécifique du Projet / Project Specific Quality Plan

NOM ENTREPRISE. Document : Plan Qualité Spécifique du Projet / Project Specific Quality Plan Document : Plan Qualité Spécifique du Projet Project Specific Quality Plan Référence Reference : QP-3130-Rev 01 Date Date : 12022008 Nombre de Pages Number of Pages : 6 Projet Project : JR 100 Rédacteur

Plus en détail

NOTICE INSTALLATION. ARCHANGE Email Simplex Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

NOTICE INSTALLATION. ARCHANGE Email Simplex Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE NOTICE INSTALLATION ARCHANGE Email Simplex Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE Date Version Marque de révision Rédaction 31/07/2012 1 - Nicolas AUBLIN 1) PRINCIPE DE FONCTIONNEMENT...

Plus en détail

FCM 2015 ANNUAL CONFERENCE AND TRADE SHOW Terms and Conditions for Delegates and Companions Shaw Convention Centre, Edmonton, AB June 5 8, 2015

FCM 2015 ANNUAL CONFERENCE AND TRADE SHOW Terms and Conditions for Delegates and Companions Shaw Convention Centre, Edmonton, AB June 5 8, 2015 FCM 2015 ANNUAL CONFERENCE AND TRADE SHOW Terms and Conditions for Delegates and Companions Shaw Convention Centre, Edmonton, AB June 5 8, 2015 Early-bird registration Early-bird registration ends April

Plus en détail

Tammy: Something exceptional happened today. I met somebody legendary. Tex: Qui as-tu rencontré? Tex: Who did you meet?

Tammy: Something exceptional happened today. I met somebody legendary. Tex: Qui as-tu rencontré? Tex: Who did you meet? page: pro10 1. quelqu'un, quelque chose 2. chacun vs. aucun 3. more indefinite pronouns A pronoun replaces a noun which has been mentioned or is obvious from context. An indefinite pronoun refers to people

Plus en détail

INSTRUMENTS DE MESURE SOFTWARE. Management software for remote and/or local monitoring networks

INSTRUMENTS DE MESURE SOFTWARE. Management software for remote and/or local monitoring networks INSTRUMENTS DE MESURE SOFTWARE SOFTWARE Logiciel de supervision des réseaux locaux et/ou distants Management software for remote and/or local monitoring networks MIDAs EVO 4 niveaux de fonctionnalités

Plus en détail

POLICY: FREE MILK PROGRAM CODE: CS-4

POLICY: FREE MILK PROGRAM CODE: CS-4 POLICY: FREE MILK PROGRAM CODE: CS-4 Origin: Authority: Reference(s): Community Services Department Cafeteria Services and Nutrition Education Division Resolution #86-02-26-15B.1 POLICY STATEMENT All elementary

Plus en détail

INSERTION TECHNIQUES FOR JOB SHOP SCHEDULING

INSERTION TECHNIQUES FOR JOB SHOP SCHEDULING INSERTION TECHNIQUES FOR JOB SHOP SCHEDULING ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE POUR L'OBTENTION DU GRADE DE DOCTEUR ES SCIENCES PAR Tamas KIS Informaticien mathématicien diplômé de l'université

Plus en détail

iqtool - Outil e-learning innovateur pour enseigner la Gestion de Qualité au niveau BAC+2

iqtool - Outil e-learning innovateur pour enseigner la Gestion de Qualité au niveau BAC+2 iqtool - Outil e-learning innovateur pour enseigner la Gestion de Qualité au niveau BAC+2 134712-LLP-2007-HU-LEONARDO-LMP 1 Information sur le projet iqtool - Outil e-learning innovateur pour enseigner

Plus en détail

First Nations Assessment Inspection Regulations. Règlement sur l inspection aux fins d évaluation foncière des premières nations CONSOLIDATION

First Nations Assessment Inspection Regulations. Règlement sur l inspection aux fins d évaluation foncière des premières nations CONSOLIDATION CANADA CONSOLIDATION CODIFICATION First Nations Assessment Inspection Regulations Règlement sur l inspection aux fins d évaluation foncière des premières nations SOR/2007-242 DORS/2007-242 Current to September

Plus en détail

of Europe Report compiled by Propos recueillis par Didier Destabeaux

of Europe Report compiled by Propos recueillis par Didier Destabeaux ES creates consensus within the Council of Europe Report compiled by Propos recueillis par Didier Destabeaux 36 ES crée le consensus au Conseil de l Europe 37 Since 2011, the ES server has united all of

Plus en détail

Practice Direction. Class Proceedings

Practice Direction. Class Proceedings Effective Date: 2010/07/01 Number: PD - 5 Title: Practice Direction Class Proceedings Summary: This Practice Direction describes the procedure for requesting the assignment of a judge in a proceeding under

Plus en détail

3615 SELFIE. http://graffitiresearchlab.fr HOW-TO / GUIDE D'UTILISATION

3615 SELFIE. http://graffitiresearchlab.fr HOW-TO / GUIDE D'UTILISATION 3615 SELFIE http://graffitiresearchlab.fr HOW-TO / GUIDE D'UTILISATION Hardware : Minitel Computer DIN FM545 45 connector (http://www.gotronic.fr/art-fiche-din-fm545-4747.htm) Cable Arduino compatible

Plus en détail

L. Obert, T. Lascar, A. Adam

L. Obert, T. Lascar, A. Adam Améliorer la consolidation des tubérosités grâce au système OMS (Offset Modular System) et l autogreffe Improving tuberosity consolidation using the OMS system (Offset Modular System) L. Obert, T. Lascar,

Plus en détail

CEPF FINAL PROJECT COMPLETION REPORT

CEPF FINAL PROJECT COMPLETION REPORT CEPF FINAL PROJECT COMPLETION REPORT I. BASIC DATA Organization Legal Name: Conservation International Madagascar Project Title (as stated in the grant agreement): Knowledge Management: Information & Monitoring.

Plus en détail

Motivations (many2many) Motivations (many2one) Sur le thème de la Version. La gestion de version. La gestion de configuration.

Motivations (many2many) Motivations (many2one) Sur le thème de la Version. La gestion de version. La gestion de configuration. À la recherche de la qualité Motivations (one2one) Développer : 1 utilisateur 1 fichier/classe/package Cycle prog: 1ère version tests correction bugs version corrigée tests difficiles/fonctionnels version

Plus en détail

VTP. LAN Switching and Wireless Chapitre 4

VTP. LAN Switching and Wireless Chapitre 4 VTP LAN Switching and Wireless Chapitre 4 ITE I Chapter 6 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 1 Pourquoi VTP? Le défi de la gestion VLAN La complexité de gestion des VLANs et des

Plus en détail

SCHOLARSHIP ANSTO FRENCH EMBASSY (SAFE) PROGRAM 2015-2 APPLICATION FORM

SCHOLARSHIP ANSTO FRENCH EMBASSY (SAFE) PROGRAM 2015-2 APPLICATION FORM SCHOLARSHIP ANSTO FRENCH EMBASSY (SAFE) PROGRAM 2015-2 APPLICATION FORM APPLICATION FORM / FORMULAIRE DE CANDIDATURE Note: If there is insufficient space to answer a question, please attach additional

Plus en détail

France SMS+ MT Premium Description

France SMS+ MT Premium Description France SMS+ MT Premium Description Summary Subscription : kinematics Subscription via SMS (Kinematic + messages) Subscription via Wap (Kinematic + messages) Subscription via Mix SMS / WAP Subscription

Plus en détail

Improving the breakdown of the Central Credit Register data by category of enterprises

Improving the breakdown of the Central Credit Register data by category of enterprises Improving the breakdown of the Central Credit Register data by category of enterprises Workshop on Integrated management of micro-databases Deepening business intelligence within central banks statistical

Plus en détail