Bonjour

Comme je l'avais laissé entendre dans le précédent billet, je travaillais sur un second document, relatif à l'informatique. À vrais dire, travailler est un bien grand mot. Il se trouve que je devais rédiger le dernier chapitre, mais souhaitant m'imposer de donner la priorité à mes études, j'ai reporté la rédaction de ce dernier après l'échéance du rendu du premier document (cf: billet précédent). Il s'est avéré que sa rédaction fut (beaucoup) plus rapide que je ne le prévoyais. Aussi, c'est la correction orthographique qui me prit tant de temps.

Un petit retour sur la rédaction

Je voudrais demander à mes lecteurs de ne pas être trop sévère quant à la rédaction ; il s'agit du second texte de cette envergure (une 40aine de pages) bien que sa "publication" ne vienne qu'après le troisième (qui n'est autre que mon TIPE). Les phrases ne sont pas toujours très élégantes, et parfois les mots mal choisis. Je ne me sentais pas le courage de reprendre tout le document. Il n'en est pas moins un document qui sauras surement se montrer utile à des étudiants qui souhaiterais découvrir et comprendre le mythique "Bruit de Perlin".

Le bruit de Perlin ?

Pour ceux qui ne connaitrais pas encore cette algorithme, le bruit de Perlin est un outil très prisé pour la génération de textures paramétriques. Plus que des mots, une simple image pour résumer :

Perlin Noise

Voici, sans plus attendre, le lien vers le document en question : Bruit de Perlin

Perlin Noise

 

Bonjour,

Dans ce billet, j'aimerais aborder brièvement ma courte expérience de ce google code jam 2010, compétition d'algorithmie organisé par google à la quel j'ai eu la chance de participer. Ce fut bref (2h30 pour le second round) et intense(des problèmes à vous faire gratter des lignes et des lignes de brouillon!) Et c'est avec un grand plaisir que je compte participer à nouveau l'année prochaine.

Qu'est ce que Google code Jam ?

Google code jam est une compétition d'algorithmie organisé par google, qui regroupe des participants du monde entier. Elle est ouverte aussi bien aux étudiants qu'aux employés, chefs de projets, enseignants, etc. Les épreuves de qualification pour la finale ont lieu en ligne.

Dans un premier temps on lieu les qualifications. D'une durée de 24h(et il est encore possible de s'inscrire, même à deux heures de la fin de l'épreuve[oui, c'est du vécu]), trois exercices vous sont proposé et vous devez les résoudre. Il sera nécessaire de disposer d'un bon algorithme, performant et fournissant des réponses exactes. Vous remporterez un certain nombre de points en validant certaines épreuves.

Par la suite, après les premières sélections on lieux trois rounds "thématique", A B et C, où cette anné figurais des problèmes de "théorie des jeux", puis de "dynamic programming" et finalement d'une certaine forme de mélange. Seul les 1000 premiers de chaque round sont sélectionné.

Mon expérience

J'ai découvert google code jam à quelques heures de la fin de la première épreuve. Bien que n'aillant qu'approximativement complété une part réduite des épreuves, je fut sélectionné pour le second tour (les rounds A, B et C).

Suite à l'horaire du premier round, et à l'absence de mon PC adoré durant le second, je n'ai concourut que pour le round C. Ceci fut particulièrement enrichissant, et j'ai particulièrement apprécié le premier problème de "géométrie".

Je dois toute fois avouer que mes compétences en algorithmie sont modeste, et que je ne parvins en 2h30 qu'à résoudre le premier et le second exercice, sans toute fois parvenir à un algorithme correcte et performant pour le second. (Le second exercice m'apparaissait comme de l'arithmétique)

Je me retrouve alors 12XXième, et suis très satisfait, bien que non sélectionné.

Pour les curieux

Pour tous ceux qui serait intrigué, sachez qu'il est possible de suivre en directe chacun des maths, et qu'il vous est possible de tester vos propres algorithmes avec ces mêmes serveurs.

Sachez aussi que vous avez des analyses détaillées de chaque problème (certaines analyses s'apparentant à des démonstrations de matchs). On peut effectivement faire confiance aux organisateur quant à la compréhension et maitrise de leurs épreuves.

En conclusion

J'espère vous avoir fait découvrir ou redécouvrir ce concours pour le moins intriguant et intéressant.

 

Listing

Bonjour,

Cette fois ci, je souhaiterais vous présenter le package LaTex Listings. Comme le laisse sous entendre son nom, ce package vous permet d'intégrer des listings de code dans vos documents LaTex.

Pourquoi un package pour intégrer quelques lignes de code dans un document? Pour répondre à cette question, il est nécessaire d'avoir connaissance de tous les services que peut fournir Listings.

Je compte donc ici vous présenter quelques une de ces options.

Intégration de code avec 'coloration' syntaxique

Listings ne vous fournis pas seulement le moyen d'intégrer le contenus d'un fichier de source et l'afficher dans votre document avec une police à pas fixe. Il est capable de reconnaitre le langage et de mettre en relief les mots clef. Moyennant quelques configurations, vous pouvez même ajouter des couleurs, et lui "apprendre" les langages qu'il ne connais pas encore.

Voici par exemple comment intégrer un code C dans un document type :

%Document de type article
\documentclass{article}
 
%On signale que l'on souhaite utiliser listings
\usepackage{listings}
 
%Début du document
\begin{document}
 
%Nous allons utiliser du C :
\lstset{language=C}
 
%Code C dans latex : (notez que le symbole % n'est plus interprété dans cette balise)
\begin{lstlisting}
#include 
 
int main(int argc, char *argv[])
{
  printf("%s", "Hello World);
  return 0;
}
\end{lstlisting}
 
%Lecture depuis un fichier
\lstinputlisting{hello.c}
 
%Fin du document
\end{document}

Notez que les espaces dans les chaines de caractère (C'est à dire les espaces dont la suppression/modification peut affecter le programme obtenu après compilation) sont aussi mit en relief, affin de faciliter la lecture et expliciter leur nécessité.

Bien plus encore

Plus que le simple code, vous pouvez ajouter une numérotation des lignes, modifier la largeur des tabulations de votre code source, ou encore leur substituer des "flèches" affin de rendre la lecture plus simple. Vous pouvez aussi encadrer votre code (avec différents type de bordures)

Voici un petit exemple de numérotation qui commence à 1, toute les 5 lignes (1,6,11, etc...) et où les tabulations mesurent 2 espaces. Le code est encadré et nommé comme une figure.

%Les options (s'appliquent à tout les listings suivant) :
% - numérotation a gauche
% - toute les 5 lignes(à partir de 1 est sous entendu : firstline = 1)
% - cadre simple
\lstset{numbers=left, stepnumber=5, frame=single}
 
%Le listing d'un document c
\lstinputlisting[
  caption={Un hello world},
  label=hello_fig,
  tabsize=2,
  language=C]{hello.c}
 
%Une référence au listing
Blabla, comme le montre le code du listing \ref{hello_fig}, blabla...

Alternatives

Listing n'est pas le seul système d'intégration de code à LaTex disponible. Il existe en effet de très nombreuses alternatives.

On peut par exemple citer texify<langage> qui permet de convertir un fichier de code en un fichier .tex contenant le code avec une mise en relief des mots clefs etc.

Pour plus d'alternatives, consultez la doc de Linstings.

Documentation

Vous pouvez trouver la documentation de Listings à cette adresse, http://www.ctan.org/tex-archive/macros/latex/contrib/listings/listings.pdf ou bien une copie du document à cette sur ce serveur.

Feb 252010
 

Bonsoir,

Aujourd'hui, j'aimerais vous présenter LaTeX(prononcez le X comme la lettre grec "Ki", c'est à dire "La Tek"). LaTeX est un jeu de macro pour TeX.

Concrètement, LaTeX vous permet d'écrire des documents (lettre, articles, livre, etc...) sans avoir à vous soucier de la numérotation des chapitres, de la mise en page, placement des figure, de la réalisation de l'index, du sommaire, etc...

Cette philosophie est celle opposée aux éditeurs WYSIWYG(What You See Is What You Get) comme open office, star office, et bien d'autres. En effet, tout ce que vous "voyez" c'est les macros LaTeX et votre texte. Pour obtenir un document utilisable (.pdf, .dvi, .ps) on compileras donc le script LaTeX avec l'un des compilateur disponible.

LaTeX fournis donc une solution de choix pour la rédaction d'articles un "un peu long" en permettant de se concentrer sur le contenu, et de faire aisément référence à d'autres portions, ajouter des notes en pied de page...

Cela fait environs 3 semaines que je me régale à écrire un nouvelle article(oui oui, je prend mon temps) et le gain de temps est remarquable.

De plus, si vous avez lus certains des précédant articles, vous avez pu constater la présence de formules mathématique.
Sachez que c'est LaTeX qui se charge de la génération de ces images.

Quelques exemples :

Pour écrire l'expression \(2*\sqrt[5]{\frac{2}{3}}\) :

$2*\sqrt[5]{\frac{2}{3}}$

Pour une hiérarchie dans un document :

\part{Titre d'une partie}
\section{Titre d'une section}
\subsection{Titre d'une sous-section}
\subsubsection{Titre d'une sous-sous section}
\paragraph{Titre d'une sous-sous-sous section}

LaTeX n'est pas seul :

LaTeX dispose d'un système de package qui fournissent diverses extensions (par exemple la gestion des url pour générer des pdf), ce qui fournis une certaine extensibilité à LaTeX.

Ajoutez a cela de nombreux utilitaire qui génèrent du code LaTeX pouvant être intégré dans vos documents (on citeras texify pour convertir un code source en une code latex formaté, coloré, etc..).

More and More

Si vous avez un tempérament curieux, je vous encourage à parcourir quelques exemples de code (et plus si affinité) à : http://www.tuteurs.ens.fr/logiciels/latex/

 

Bonsoir

La plupart d'entre vous on déjà entendu parler de GnuPG(Gnu Privacy Guard). Toute fois, pour ceux qui ne le connaissent pas encore, sachez que c'est un utilitaire qui permet de chiffrer vos mails, ou encore (cette dernière fonction est beaucoup plus utilisée) les signé pour attester que vous en êtes bien l'auteur.

Je publie donc ici les informations qui vous permettrons de récupérer ma clef GPG via un serveur de confiance (M.I.T.!) et de m'envoyer des e-mails chiffrer (Mon adresse e-mail figure aussi sur ce serveur)

Server : pgp.mit.edu
Fingerprint : 6775 84A5 412D 7D8E 00EB 5162 AC43 6984 034E 361B
Owner : Cochoy Jeremy

Si vous cherchez plus d'informations à propos de GPG :

http://fr.wikipedia.org/wiki/GNU_Privacy_Guard

© 2012 Zenol's Blog Suffusion theme by Sayontan Sinha