Site personnel de Jonathan Marchand

Moi

Nom : Jonathan Marchand
Âge : 11100
Email : jonathan__DOT__marchand__@__azubato__DOT__net
Jabber ID : jonathlela@im.azubato.net
GPG Key ID : FD6D078A (5D81 A905 AAE3 3B92 3209 E38B BA22 C110 FD6D 078A)
CV PDF, HTML

Logiciels utilisés

Langages couramment utilisés

Autres langages utilisés ou étudiés

Environnement de travail

Mon environnement de travail privilégie l'utilisation du clavier. Les dispositifs de pointage tels que la souris sont utiles pour quelques tâches particulières, comme le dessin ou jouer à des FPS. Par contre, pour être efficace au travail, il faut minimiser les déplacements entre la cliquette et le clavier. Pour cela, j'utilise un gestionnaire de fenêtres pavant pour ne pas avoir à gérer la position des fenêtre et je privilégie des outils en ligne de commande aux outils graphiques (ou clicodromes).

Projets personnels

Mes projets personnels ont pour but premier de m'amuser et de découvrir de nouvelles technologies. La plupart sont en suspens, mais seront peut-être à nouveau d'actualité.

libre³

Description : libre³ a pour but d'être un clone de minecraft avec un seul monde pour tous les joueurs. Une telle adaptation n'est pas transposable au modèle client/serveur, l'idée est donc produire une solution complètement distribuée pair à pair.
Mots clés : C++, Voronoi-based Overlay Network (inspiré de VAST), Peer-to-peer Distributed Hashtable, SFML, OpenGL, CMake
État : En cours… Réimplémentation du VON, partie jeu pas encore commencée
Plus d'informations : https://github.com/jonathlela/librecube

schanjidc

Description : schanjidic est un logiciel en deux parties : la première est une interface au dictionnaire kanjidic écrit en Scheme pour être interrogé sous forme client-serveur, la deuxième est un mode mineur de Emacs pour retrouver les informations des kanji considérés dans un texte.
Mots clés : Scheme (Guile), EmacsLisp, Emacs, kanjidic
État : En cours… Partie Scheme complète, partie elisp non commencée
Plus d'informations : https://github.com/jonathlela/schanjidic

YAVNE

Description : YAVNE (Yet Another Visual Novel Editor) est un éditeur pour créer des jeux de types romans graphiques (ou visual novel). La particularité de cet éditeur est de proposer une approche différente à la modélisation du jeu : il ne s'agit pas d'interpréter un langage de script ad-hoc fortement déclaratif mais de modéliser le jeu par un automate à états finis afin de raisonner directement sur cet automate pour les mécanismes de jeu.
Mots clés : Ruby, OpenGL, SDL
État : En suspens… Le moteur de jeu est terminé, il manque l'interface d'édition pour concevoir un jeu.
Plus d'informations : https://github.com/jonathlela/yavne

OcamlSearchR

Description : OcamlSearchR est un application de rechercher relative. La recherche relative est un moyen de rétro-ingénérie utilisé pour retrouver du texte dans un binaire grâce à la position relative des lettres d'un mot dans un texte. C'est un clone du SearchR X, qui ne marche malheureusement que sous Microsoft® Windows. Le module de recherche est écris en ocaml. Une bibliothèque est disponible via des bindings C, ce qui permet d'être utilisé par le front-end graphique écrit lui en ruby.
Mots clés : Ocaml, C, Ruby, GTK+, Glade
État : En suspens… Le logiciel est terminé, mais j'aimerai un jour le rendre multi-threadable.
Plus d'informations : https://github.com/jonathlela/ocamlsearchr

Puyo Puyo

Description : Un remake de Puyo Puyo, un jeu comparable à tetris si ce n'est qu'il se joue sous forme de duels où les participants influent sur le jeu des autres.
Mots clés : Ruby, OpenGL, SDL
État : Abandonné… Presque fonctionnel, nécessite du débuggage pour être jouable
Plus d'informations : https://github.com/jonathlela/puyopuyo

Contributions

En plus des deux contributions montrées ci-dessous, je contribue au logiciel libre principalement par le rapport/résolution de bugs sur les projets wine et emacs.

Cairo Graphics

Cairo est une bibliothèque graphique vectorielle 2D populaire dans le logiciel libre grâce à la multiplicité de ses backends. Cette bibliothèque permet naturellement d'exporter les les «dessins» sous le format vectoriel SVG. Cependant, lors du rendu textuelle, cairo n'utilise pas la balise <text> du format SVG mais rend chaque glyphe (lettre) directement sous forme vectorielle. De ce fait, les fichiers générés ne sont pas utilisables par la suite pour des traitements textuels. Je propose ici un patch qui ajoute cette fonctionnalité :

Emacs Docview

L'éditeur Emacs est un éditeur riche qui permet notamment de visualiser les documents postscripts, PDF et SVG. Cela permet de garder dans son IDE les documents que l'on édite (principalement avec LateX). Cependant, à chaque édition, il faut rafraîchir le buffer du document pour visualiser les changements effectués. Ce petit script, à rajouter à son .emacs permet de rafraîchir automatiquement ce buffer lorsqu'il y a un changement. Ce script ne marche que sous GNU/Linux

;; DocView mode customization
(require 'doc-view)

;; Check if a file is already open by an other process
(defun is_file_busy-p (file-name)
  (eq (call-process "lsof" nil nil nil file-name) 0))

;; Function that redisplays automaticly a buffer when a file is modified
(defun doc-view-redisplay-on-change ()
  ;; Initialize a timer and make internal to the buffer
  (defvar check-file-timer nil
    "Check file timer.")
  (make-local-variable 'check-file-timer)
  ;; Setup the timer to check every second if the file has changed
  ;; and redisplay it if necessary
  (setq check-file-timer
	(run-at-time "1 sec" 1
		     (lambda (buffer)
		       (unless (or
				(verify-visited-file-modtime buffer)
				(is_file_busy-p (buffer-file-name buffer)))
			 (with-current-buffer buffer
			   (set-visited-file-modtime nil)
			   (doc-view-reconvert-doc))))
		     (current-buffer)))
  ;; Don't forget to stop the timer when the buffer is killed
  (add-hook 'kill-buffer-hook
	    (lambda ()
	      (when (eq major-mode 'doc-view-mode)
		(cancel-timer check-file-timer)))))

;; Add new function to DocView
(add-hook 'doc-view-mode-hook 'doc-view-redisplay-on-change)

Militantisme

Je suis attaché à la liberté des individus et à la protection de leur vie privée, c'est tout naturellement que j'adhère aux principes fondamentaux du logiciel libre :