mercredi 9 juin 2010

Aspect Programming

FROM : http://www.aspectprogramming.com/aosd


What is Aspect-Oriented Software Development?

Aspect-Oriented Software Development (AOSD), sometimes just called Aspect-Oriented Programming (AOP), is a new approach to software design that addresses modularity problems that are not handled well by other approaches, including Structured Programming and Object-Oriented Programming (OOP). AOSD complements, but doesn't replace those approaches.

mardi 25 mai 2010

Perl One-liner

Un des atouts de perl est la facilité avec laquelle il est possible d'écrire des scripts très compacts.

Un des défauts de perl est que rapidement quand le script devient un peu long.

Un bon compromis : faire des scripts très courts :-)


La page suivante présente un certain nombre d'exemple d'utilisation de perl sans passer par un script indépendant dans un fichier, et en utilisant plutôt une simple ligne ("One Liner") de code directement sur la ligne de commande :

http://sial.org/howto/perl/one-liner/

lundi 17 mai 2010

PDF merge & reduce size

Merge PDF with pdftk


pdftk 00-page1.pdf 01-page2.pdf 03-page3.pdf cat output OUT.pdf 


Reduce the size of the PDF


gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

(source : http://www.mnt-tech.fr/blog/gnulinux/comment-reduire-la-taille-dun-fichier-pdf-en-ligne-de-commande-sous-linux/ )

lundi 26 avril 2010

OpenOffice / oocalc : protect specific cells

The problem :

I've got a calc sheet for calculating some grades.
Hence, after setting all the formulas (you may want to have a look at the SUMPRODUCT(notes*percent) function ;-) ), I want to actually enter the grades I gave.

What I want to do is not to mess around with the cell containing formulas while I am entering data.

How to (un)-lock specific cells



  1. Select the cell you want to still modify.

  2. right-click: Format-Cells -> "Cell Protection" tab => uncheck "protected".

  3. Tools -> Protect Document -> sheet

  4. Uncheck "select locked cells" and check "select unlocked cells".



Now only the cells selected in step 1) should be the only ones you can select and modify !

vendredi 23 avril 2010

LaTeX et .bib (fichiers de bibliographie)

Le code LaTeX à utiliser


Dans l'entête :




% \usepackage{natbib} % pour changer l'affichage des citations
% \usepackage[fixlanguage]{babelbib} % biblio FR
% \selectbiblanguage{french} % biblio FR


Là où l'on souhaite intégrer la bibliographie



Dans le document (note que comme d'hab en LaTeX tu n'as pas besoin de
mettre l'exention du fichier, en l'occurence tu auras typiquement
"fichier.bib" à la place de "bibtexfile"


% \bibliographystyle{unsrt} % biblio style classique
% \bibliographystyle{babplain-lf} % Biblio FR
% \bibliography{bibtexfile} % Chemin vers la base de citations


Un peu de doc (entre autre) :
http://www.ctan.org/tex-archive/macros/latex/contrib/natbib/



Logiciels pour gérer la biblio



Il y en a de nombreux dont un en java qui marche pas trop mal mais dont le nom m'échappe.

J'utilise pybliographer / pybliographic , qui a le mérite de permettre l'édition native des .bib directement.

mercredi 24 mars 2010

Around an Arduino

Jeudi dernier au salon Solution Linux (ex Linux Expo) à Paris, je suis
tombé sur le stand de H:D (Hackable Devices) [1,2] , qui visent à
promouvoir
le hardware libre.

Entre un freerunner (sous openmoko), quelques autres kits de
développement de niveau plus ou moins bas, une petite plateforme avec
un chip, une vingtaine d'entrées-sorties, et une connectique USB ont
attiré mon attention en particulier.

Il s'agissait d'Arduino. Apparemment c'est une plateforme libre à base
d'ATMega328, je cite [2] :


"Arduino Duemilanove
Duemilanove ATMega328 serie

The Arduino Duemilanove ("2009") is a microcontroller board based on
the ATmega168 or ATmega328. It has 14 digital input/output pins (of
which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz crystal
oscillator, a USB connection, a power jack, an ICSP header, and a
reset button."

En cherchant un peu plus sur le web on trouve en particulier des infos
sur comment installer les outils de développement [3].


Par contre, je cherche encore des infos sur comment réaliser les
circuits que l'on peut mettre en sortie (bon, ok, ça tape plus dans
l'électronique, mais il n'empêche). Par exemple si je veux y mettre un
moteur quelconque, une matrice de led, ou bien même, plus intéressant,
un interrupteur qui pourrait me permettre d'allumer l'alimentation
d'un disque dur externe. Ce ne sont que quelques idées qui pourraient
me permettre d'expérimenter avec cette plateforme, mais je ne sais pas
encore comment les réaliser. Toute information est donc la bienvenue.


Cherchant ce type d'informations, l'on vient de me conseiller d'aller
également voir du côté des adaptateurs USB-port parallèle, qui sont en
soit plus simple à programmer. Mais en fin de compte je trouve ça
moins marrant, et surtout ça ne règle aucunement le problème de
l'électronique à mettre derrière.


J'ai trouvé quelques projets utilisant des arduino sur hackaday [4].


Pour le prix, ça à l'air de tourner dans les 25 à 30 euros, donc assez
raisonnalble [2, 5, 6]

Références :


[1] http://hackable-devices.com/

[2]
http://hackable-devices.org/products/product/ArduinoDuemilanove-atmega328/

[3] http://www.arduino.cc/playground/Learning/Linux


[4] http://hackaday.com/page/2/?s=arduino

[5] http://microcontrollershop.com/product_info.php?products_id=2193
[6] http://www.lextronic.fr/P4133-platine-arduino-usb-board.html

lundi 22 février 2010

NetBSD & versions d'Unison

La version courante d'Unison sur Ubuntu était la 2.27.57, alors que celle de l'arborescence de pkgsrc pour Netbsd était la 2.32.
Les deux version ne sont pas compatibles.

En explorant les archives du CVS de pkgsrc (ici : http://cvsweb.se.netbsd.org/cgi-bin/bsdweb.cgi/pkgsrc/net/unison/?only_with_tag=pkgsrc-2009Q3
et là : http://pkgsrc.se/branch=pkgsrc-2009Q3/net/unison ) + quelques pointeurs sur freenode:#netbsd

Voici la suite de commandes que j'ai


pkg_delete unison-2.32.52

cd /opt/pkgsrc/net/unison
cvs up -rpkgsrc-2009Q3 -dP

/usr/bin/make reinstall

cd directory && cvs up -rpkgsrc-2009Q3 -dP


Et fantastiquement, cela fonctionne maintenant à merveille :-)

Bash scripts :

Dans un script bash, qui commence donc avec :

#!/bin/bash

  • set -u : empèche d'utiliser des variables non définies préalablement => évite les erreurs
  • set -x : affichage plus verbeux
  • set -e : arrête l'exécution à la première erreur

Merci Julien S.

jeudi 11 février 2010

Tor et firefox (+polipo)

Sous ubuntu, avec firefox :

Il est conseillé d'utiliser Tor, avec le proxy "polipo", et "tor button" (addon firefox)


http://www.torproject.org/docs/tor-doc-unix.html.en#polipo

mardi 2 février 2010

svn properties svn:keywords

Since I'm sometimes looking for this page to find

SVN Book : Properties (Chapter 7. Advanced Topics)


$ svn propset svn:keywords "Date Author" contrib.tex
property 'svn:keywords' set on 'contrib.tex'
$



Some vocabulary :

  1. scm = source code manager

  2. vcs = version control system

  3. dvcs = distributed version control system




Like for example : rcs, cvs, svn, mercurial, darcs, git, ...
wikipedia:List_of_revision_control_software