Zenol

Math Student

 

Lecteurs, lectrices, bonjour!

Veuillez m'excuser pour l'absence de publication de ces derniers mois. Il se trouve que je rédigeais deux documents relativement longs, et que pris par mes études je n'aurais pu publier de billet intéressant. J'ai toute fois le plaisir de vous annoncer la publication d'un document se rapportant aux mathématiques. Il s'agit du sujet que j'ai développé dans le cadre d'un TIPE. Il est fort probable que seul des étudiants de mathématique puisse lui trouver un réel intérêt ; Bien trop technique pour le profane, et pas assez complet et approfondi pour montrer un quelconque intérêt, il permet toute fois une introduction au sujet en douceur.

J'invite toute fois mes lecteurs assidus à y jeter un œil. Je suis, comme à l'accoutumé, ouvert à toutes questions et critiques.

Le document : http://zenol.fr/dl/tipe.pdf

Pour plus d'information sur les TIPE : Wikipedia

 

C'est le 27 septembre que s'est déroulé la première de "Sintal", réalisation du "Project Dorian" visant à démontrer l’utilisabilité de blender et des solutions opensource pour la réalisation de films 3D,  dans le cadre des industrie du cinéma.

Ce court metrage, de 14 minutes, prenant la suite de Elephant Dream et Big Buck Bunny, est dores et déjà disponible sur le site de la Fondation Blender.

Après les décores d'Elephant Dream qui permirent d'améliorer Blender en découvrant nombre de défaut et de bugs pouvant rendre l'utilisation de ce dernier délicat dans des constructions complexes, et Big Buck Bunny qui mit à l'épreuve la gestion des particules, c'est au tours de Sintel de s'attacher à l’aspect animation.

On peut d’ailleurs consulter quelques articles du blog de Sintel expliquant les divers problèmes rencontré lors de la conception des personnages (notamment les ailes des dragons qui furent asse délicates).

Pour rappelle, tout les modèles, fichiers de scripts, et autre recouses qui constituent ce court métrage sont librement téléchargeable, et sous licence Creative Commons.

Enfin, un petit mot pour le scénariste, qui ne m'a pas déçu, ce qui mérite bien un merci :)

Pour consulter le court-métrage : http://www.sintel.org/wp-content/content/download.html

 

Gnu Flex

Gnu Flex est un générateur d'Analyseurs Lexicaux. Pour résumé, ce sont des outils qui permettent de générer des parseurs(dans le cas présent, une fonction C capable de découper en morceaux un flux de caractères).

Grâce à cette outil, on peut développer rapidement des analyseurs lexicaux très puissants, pouvant être utilisé dans le cadre du développement d'un compilateur, ou plus modestement pour charger des fichiers de configuration.

Ainsi, je vous présente un article (terminé aux alentours de  février, la correction orthographique m'ayant pris """un peu""" de temps), aussi publié sur développez (au même format pour le moment) qui présente dans les moindres détailles le fonctionnement de Flex, basé sur la documentation et une observation du comportement de la dernière version.

Le lien, pour ne plus attendre : Introduction à Gnu FLEX

 

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.

© 2012 Zenol's Blog Suffusion theme by Sayontan Sinha