mardi 13 octobre 2009

Quelques distributions Linux

Issus d'un article parut sur TooLinux, voici quelques distributions Linux pouvant présenter un quelconque intérêt (selon les circonstances).

Tiny Core Linux 
Une distribution Linux compacte (10Mo). Avec cette taille réduit, Tiny Core s'offre même le luxe d'un environnement graphique!
Plus d'information sur le site Tiny Core Linux (screenshots ici).

Easy Peasy 
Distribution destinée aux Netbooks et basée sur Ubuntu.
La vidéo ci-dessous montre d'ailleurs cette distribution en fonctionnement sur un Eee PC d'Asus 900.
Plus d'information sur Easy Peasy ici (screenshots) ou encore sur la Home Page du projet.





Ultimate Edition
Une version Linux spécialement dédiée aux jeux.
Plus d'information et téléchargement sur le site Ultimate Edition



Les incontournables
Voici quelques incontournables comme Puppy (screenshots et intro ici) qui n'a besoin que de 64Mb ou encore SystemRescueCd.

Une liste complète de distributions
Voir cette article sur TooLinux.
On y retrouvera des distribution couteaux Suisse pour le dépannage, le partionning des disques, l'analyse réseau.

lundi 12 octobre 2009

Les pics de grippe selon Google

Google évalue l'évolution des pics de grippe dans différents pays sur base de données collectées via la net.
Ces données misent en regard avec les données d'années précédentes permettent de se faire une idée de l'évolution mois par mois.

Ainsi, l'on apprendra:
  • Que la Belgique dispose d'un pic de grippe ciblé et donc une période relativement courte de risque de contamination (a comparer avec l'Allemagne et le Canada par exemple).
  • Que cette année, la Belgique présente un niveau de contamination un peu plus élevé (entre basse et moyenne) que les autres années. A cette période le taux de contamination est habituellement minimal.
    C'est une bonne nouvelle, les conditions sont assez bonnes :-)
  • Que le pic de grippe est très étalé au Canada et en Allemagne (bien plus qu'en Belgique).
    Ces deux pays présentant taux moyen de contamination plus important et plus longtemps.
  • Que la Suède et la Norvège (ayant un modèle de pic Janvier-Février -- similaire à la Belgique) sont en avance. Leurs pics ayant eu le maxima mi-aout par rapport aux autres années.
  • Que la Russie connait ses pics aux alentours de février-mars (donc après nous).
Quelques recommandations pour se protéger (et protéger les autres) de la grippe:
  • Éternuer et tousser dans un mouchoir (sa manche ou ses mains) pour éviter les prolifération.
  • Se laver les mains souvent.
  • Rester chez soi en cas de grippe déclarée.
Grippe: la maladie des mains
Saviez-vous que la grippe est assez communément dénommée la "maladie des mains".
Les mains sont un excellent vecteur de contamination... On éternue dans les mains, on touche son matériel... des poignées de portes ainsi que divers endroits où l'on dépose alors ses "petits microbes".
Ces mêmes poignées de portes, ustensiles et endroits touchés par vos congénères, amis et membres de votre famille.
Ces pauvres congénères qui se frottent les yeux, le nez, la bouche... des gestes simplement naturel au quotidien.
C'est la raison pour laquelle il est important d'avoir une hygiène des mains irréprochable.
Dans le milieu de travail, le simple prêt d'un stylo à bille peut devenir un vecteur de contamination si l'hygiène n'est pas correcte.
Il n'est pas nécessaire de devenir parano... quelques règles de bon sens et un peu d'hygiène feront l'affaire :-) 

jeudi 8 octobre 2009

Delphi 2009 Handbook

Marco Cantù propose son ouvrage "Delphi 2009 Handbook" sur Lulu.com (aussi disponible via Amazon).


Ce livre consacre une partie de son contenu à l'implémentation Unicode maintenant devenu le type par défaut des strings et chars (les anciens types 8 bits étant devenu AnsiChar et AnsiString).
Pour information, le standard de transformation en Delphi est UTF-16.
Hormis le côté Unicode, ce livre se consacre également aux points suivants:
  • Type génériques
  • Méthodes anonymes.
  • Support COM en Delphi 2009.
  • DataSnap 2009
  • DBExpress
Quelques vidéos consacrées à l'implémentation Unicode sont également disponibles.
Plus d'information ici sur le site de Marco Cantù.

Note:
Le site de Marco Cantù référence également un article intéressant comparant les langages OOP.

Définition des propriétés en Python

Petit exemple montrant la définition des propriétés dans les classes Pyhton (les classes New-Styles dérivant explicitement de "object")

>>> class Car(object):
      def __init__(self):
         self._im = '%s' % id(self)
         self._changed = False
      def _getim( self ):
         return self._im
      def _setim( self, value ):
         if value != self._im:
            self._im = value
            self._changed = True
      def _getchanged( self ):
         return self._changed
      immatriculation = property( _getim, _setim, None )
      hasChanged = property( _getchanged, None, None )
>>> Cars = dict()
>>> Cars['domeu']= Car()
>>> Cars['frc']= Car()
>>> # can also be written as follow
>>> # Cars = dict( (('domeu', Car()), ('frc', Car())) )
>>> for key, value in Cars.items():
      print( 'Car of %s with immatriculation "%s". Changed? %s.' % (key,value.immatriculation, value.hasChanged) )

Car of frc with immatriculation "18698568". Changed? False.
Car of domeu with immatriculation "18511832". Changed? False.
>>> 
>>> Cars['domeu'].immatriculation = 'XYZ 103'
>>> for key, value in Cars.items():
      print( 'Car of %s with immatriculation "%s". Changed? %s.' % (key,value.immatriculation, value.hasChanged) )


Car of frc with immatriculation "18668880". Changed? False.
Car of domeu with immatriculation "XYZ 103". Changed? True. 

mercredi 7 octobre 2009

Enumérer les méthodes d'une classe (en Run-Time)

L'article "Class RTTI" offre une introduction intéressante à l'utilisation des informations RTTI, HostScripting et de l'invocation automatique des méthodes depuis les WebSnap.

L'utilisation de {$METHODINFO ON} avec l'unité DetailedRtti.pas de David Glassborrow permet d'envisager l'extraction et l'utilisation des informations RTTI en RunTime pour faire des appels dynamiques.
Fournit sous forme de Class  Helper et Record Helper, DetailedRtti.pas permet, par exemple, d'extraire la définition des méthodes/fields/etc d'une classe.

L'exemple ci-dessous énumère toutes les méthodes d'un object.
type 
    {$METHODINFO ON}
  TFRM_Main = class(TForm)
    SBB_Button1: TButton;
    ...

procedure TFRM_Main.Button1Click(Sender: TObject);
begin
  Log( self.RTTIMethodsAsString );
end;


L'énumération des méthodes peuvent s'avérée utile lors de l'invocation sur à la volée (par exemple à l'aide de MethodAddress).
type   TTestProc = procedure of object;
  {$METHODINFO ON}
  TForm1 = class(TForm)
        SBB_DoTesting: TButton;
    ...
  published
    procedure Proc_TestMe;
    procedure Proc_TestMeAlso;
  end;
  ...

procedure TForm1.RunThis(aProcedureName: String);
var
  pProc : TTestProc;
begin
  ShowInfo( 'Executer la méthode '+aProcedureName );
  TMethod(pProc).Data := Self;
  TMethod(pProc).Code := MethodAddress( 'proc_'+aProcedureName);

  try
    if not Assigned(TMethod(pProc).Code) then
      raise Exception.Create( 'Failed to locate test "proc_'+aProcedureName+'" method address' );
    pProc();
  except
    on e:Exception do
      ShowError( E.Message+' ('+E.ClassName+')' );
  end;
end;
... 
procedure TForm1.SBB_DoTestingClick(Sender: TObject);
begin
  // Exemple d'appel dynamique (à partir du nom de la méthode) 

  RunThis( 'TestMe' );
  RunThis( 'TestMeAlso' );
end;
...

mardi 6 octobre 2009

Inclure une DLL dans les ressource d'un logiciel

Voici une recette de cuisine trouvée sur LinkedIn permettant d'inclure une DLL directement dans les ressources d'un éxécutable.

1. Inclure la DLL dans une RAW section du fichier ressource. Ainsi, il sera linker dans l'exe au moment de la compilation.

2a) Ajouter un bout code au programme qui extrait la DLL des ressources et la stocker sur le disque avant de la charger avec un loadLibrary.

2b) Une autre option est de copier directement en mémoire la DLL disponible en ressource . Ensuite créer des liens dynamiques permettant au programme d'appeler les procédures de la DLL (demande un effort de programmation plus poussé).

Le composant TFakeDll (disponible sur uinC/Underground INformation Center) permet d'inclure des DLL en ressources.
Bien qu'ils datent un peu, uinC contient également d'autre code sources Delphi comme des KeyLogger, Password Cracker, etc... toujours intéressant pour assouvir sa curiosité.

samedi 3 octobre 2009

L'univers de la sience - Isaac Asimov

Quelle chance, le week-end dernier j'ai découvert mon premier ouvrage de vulgarisation issu de la plume d'Isaac Asimov au pêle-mêle de Waterloo.
En plus d'être un grand écrivain de science fiction, Isaac Asimov était également un excellent vulgarisateur scientifique et historique. A sa mort, Isaac Asimov comptabilisait pas moins de 400 oeuvres.

C'est avec un grand plaisir que je me lance dans la lecture de "l'Univers de la science" (1986, interEditions, Paris), une belle brique de 900 pages.
En voici d'ailleurs un extrait consacré à la curiosité comme le moteur du "désir de savoir", ce désir faisant avancer la science par les découvertes qui en découlent.

Le cerveau humain est le morceau de matière le plus merveilleusement organisé de l'Univers connu, et sa capacité de recevoir, de classer et d'enregistrer l'information dépasse très largement les besoins ordinaires de la vie. On a estimé que, au cours de sa vie, un être humain pouvaient emmagasiner 15000 milliards d'informations.
C'est à cette disponibilité que nous devons d'être vulnérables à une maladie très pénible, l'ennui. Un être humain, placé dans une situation où il n'a aucune occasion d'utiliser son cerveau si ce n'est pour assurer sa survie, ressentira une quantité croissante de symptômes inquiétants, jusqu'à connaître de graves troubles mentaux. Le fait est que l'être humain normal possède une curiosité intense et irrésistible. S'il n'a pas la possibilité de la satisfaire d'une façon immédiatement utile, il la satisfera par d'autres moyen - y compris des moyens regrettables, qui sont à l'origine d'expressions courantes comme "melez-vous de vos affaires" ou "la curiosité est un vilain défaut".
L'univers de la science, Isaac Asimov, Page 4.
Edt InterEditions (Paris), ISBN 2-7296-0141-4
Trad: Françoise Balibar, Claude Guthmann, Alain Laverne et Jean-Pierre Maury.