Recent Posts
Archives

PostHeaderIcon Validation failed for C:\windows\SYSTEM32\vsinit.dll you probably are missing a necessery root certificate

Case:

I use Zone Alarm as firewall on my Windows XP SP2. When the system boots, it displays a window with the message:
Validation failed for C:\windows\SYSTEM32\vsinit.dll you probably are missing a necessery root certificate
The file is present on my disk.

Fix:

  • Disconnect from internet 😉
  • Close Zone Alarm
  • Uninstall Zone Alarm
  • Reboot
  • Rename C:\windows\SYSTEM32\vsinit.dll as vsinit.dll.old (or delete it)
  • Install Zone Alarm
  • Reboot

It should be OK 😉

PostHeaderIcon Validation failed for C:\windows\SYSTEM32\vsinit.dll you probably are missing a necessery root certificate

Case:

I use Zone Alarm as firewall on my Windows XP SP2. When the system boots, it displays a window with the message:
Validation failed for C:\windows\SYSTEM32\vsinit.dll you probably are missing a necessery root certificate
The file is present on my disk.

Fix:

  • Disconnect from internet 😉
  • Close Zone Alarm
  • Uninstall Zone Alarm
  • Reboot
  • Rename C:\windows\SYSTEM32\vsinit.dll as vsinit.dll.old (or delete it)
  • Install Zone Alarm
  • Reboot

It should be OK 😉

PostHeaderIcon Presentation “La Methologie Scrum” (deuxieme version)

Le mardi 15 decembre 2009 j’ai anime une nouvelle presentation “La Methodologie Scrum”. A cette occasion, j’ai ameliore le support powerpoint pour prendre en compte certaines remarques qui m’avaient ete faites.
La presentation est disponible, sous licence Creative Commons CC-by-cc, est heberge sur GoogleDocs.

PostHeaderIcon Oracle Partitioning

On last Friday I attented a presentation about Oracle (10g) Partitioning. Here is a summary of interesting points:

Why?

On some projects, data bases reach tens of TB.  For so huge volume of data, developpers often are used to archiving or historizing datas. Partitioning the base is another way to face mass data.

What?

Partitioning is allowing a table or an index to be divided into smaller pieces, called “partitions”. Please notice that, from a logical point of view, we keep one object (table or index) ; yet, physically, we have many physical partitions.

When?

  • DBAs advise to consider partitioning prior to create the tables. Indeed, partitioning when the table reaches a critical size is more expensive than sooner.
  • Tables may be partionioned if they are or are assumed to be 2GB or more.

Partition key/ pruning

  • From a certain viewpoint, a partition key may be seen as a “super index”
  • Rows of the base are assigned to a unique partition.
  • The partitioning key contains one column (or more) which determine the partition where any row is to be stored.
  • During insert/update/delete operations, the right partition is automatically found owing to the partition key.
  • Warning: any table with columns of type LONG or LONG_RAW cannot be partitioned.

Purpose

  • Improvement of availability and performance of the base. At first glance, on select operations the benefit is small, but on insert operations the benefit is felt.
  • Reduction of administrative burden and input/ouput access
  • Anticipation of high volumes of data and cost of development

TYPES

Three types of partitions are available:

  • range: eg by month, year, etc.
  • list: eg by country, currency, etc. This is the case when the column values are among an enumeration
  • hash

Composite keys are allowed, yet they are not advised to be used.

INDEX

Indexes can be partitioned, too. All combinations are allowed: partioned indexes for partioned tables, partioned indexes for global tables, etc.

Syntax

[sql]CREATE TABLE range_example
(
RANGE_KEY_COLUMN   DATE,
MY_DATA            VARCHAR2 (20)
)
PARTITION BY RANGE (range_key_column)
(
PARTITION part_1 VALUES LESS THAN (TO_DATE (’01/01/2005′, ‘dd/mm/yyyy’)),
PARTITION part_2 VALUES LESS THAN (TO_DATE (’01/01/2006′, ‘dd/mm/yyyy’)))[/sql]

Oracle 11g

Oracle 11g will bring a lot of improvements on partitioning: extended composite partitioning, reference partitioning, partitioning on virtual columns, etc.

PostHeaderIcon Create a new project from Maven2 under Eclipse

Yeah, I know this must be widely known, yet I needed a short while before successing ;-).
Case: I must mount a Java projet from a Maven2 file, under Eclipse (I am back to my prefered IDE).

Fix:

  • Checkout the sources from version control tool
  • Open a console window
  • Go to the project home
  • (possibly: mvn install)
  • mvn eclipse:eclipse
  • Open Eclipse
  • File > New Project > add the name > check "create project from existing tool" > Finish

And it’s over!

PostHeaderIcon La fin des laptops domestiques?

Ces derniers jours, on m’a pose plusieurs fois la meme question: “je voudrais un PC portable robuste, puissant et peu encombrant ; que me conseilles-tu?”. J’ai intuitivement repondu a la chaque fois la meme chose: pas de laptop!

En effet, les exigences comme la robustesse et le faible encombrement sont difficilement conciliables, a moins d’en mettre le prix et opter pour une machine de haut de gamme.
Toujours est-il que les PC portables sont toujours tres prises, justement pour leur faible encombrement. L’autre avantage des laptops est leur mobilite. Au titre des inconvenients des laptops, on peut citer la faible evolutivite, la fragilite, la faible duree de vie limitee (18 a 24 mois en moyenne), etc.

Inversement, un PC de bureau est en general plus robuste et evolutif, mais il est hors de question de jouer au globe-trotter avec sa tour, son ecran 19″, son clavier et les innombrables fils.

Cependant, ces derniers mois, les choses ont pas mal evolue. Pourquoi? Les PC fixes ont subi une petite cure d’amaigrissement, certes modeste. Mais, surtout, le phenomene netbook a fait irruption dans les foyers. Au titre de la mobilite, les netbooks battent a plate couture les laptops. Pour le moment, nous n’avons pas assez de recul pour juger de l’esperance de vie d’un netbook, mais il est probable qu’elle soit similaire a celle d’un laptop.

J’en viens donc a la reponse que j’ai donnee a la question ci-dessus: je recommande d’une part l’achat d’un solide PC de bureau, robuste, puissant et avec un disque dur assez gros, d’une part ; et l’achat d’un netbook d’autre part.

Un bon PC de bureau, bien que technologiquement obsolete au bout de 2 ans, peut tenir 4 ans sans problemes s’il est bien entretenu et s’il n’est pas destine a des applications tres gourmandes comme les jeux en 3D. Un netbook apportera lui la souplesse  et la mobilite.

Evidemment, ca coute plus cher d’acheter deux machines au lieu d’une seule. Mais un petit calcul arbitraire montre que ce n’est pas forcement un mauvais plan, financierement parlant j’entends.

On trouve de bonnes machines fixes a 600€, et des netbooks a partir de 200€. Sur 4 ans, et en supposant que le netbook decede au bout de 2 ans, on aura depense 600 + 2*200 = 1000€.

Par contre, en privilegiant un laptop, il est probable qu’il faudra mettre 500€ tous les deux ans. Resultat: 1000€ au bout de 4 ans.

Mais c’est sans compter sur le confort qu’apporte un vrai clavier et une vraie souris, un disque plus large, etc…

A titre d’option, on peut proposer de prendre un disque dur externe assez large, et de diminuer partiellement la taille du disque du PC principal.

PostHeaderIcon Could not initialize class net.sf.cglib.proxy.Enhancer

Error

Compiling with Maven 2, you have:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [businessApplicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer
Caused by: java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer

Turning Spring logging level to DEBUG, you find:
DEBUG main org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver - Ignoring handler [org.springframework.scripting.config.LangNamespaceHandler]: problem with class file or dependent class
java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException

Fix

Add dependencies to Groovy, BSH and JRuby in your pom.xml:

[xml]
<dependency>
<groupId>groovy</groupId>
<artifactId>groovy</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.beanshell</groupId>
<artifactId>bsh</artifactId>
<version>2.0b4</version>
</dependency>
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby</artifactId>
<version>0.9.8</version>
</dependency>
[/xml]

Try of Explanation

Spring depends on the three jars above. But Maven does not link your project to them.

PostHeaderIcon Configuration internet Acer X960 pour Virgin Mobile

Ca y est, apres de longues semaines, j’ai enfin mon forfait Liberty Sim 5h de Virgin Mobile! En resume: 5h de voix, SMS et internet GPRS pseudo-illimite, mais ni MMS, ni vision, ni TV, ni toutes ces options inutiles qui ne servent a rien.

Bon a savoir: internet n’est accessible que 72h apres l’activation de la ligne. Pourquoi? Je l’ignore, en tout cas c’est assez lourd.
Etape incoutournable: configurer mon smartphone pour acceder a internet. Virgin ne mentionne pas mon Acer X960 comme dans la liste des mobiles compatibles. Mais, etant sous Windows Mobile 6.1 je me doute que ce systeme est assez repandu pour ne pas necessiter de mentionner nommement l’Acer X960.
La configuration doit theoriquement fonctionner sous n’importe quel telephone equipe de Windows Mobile 6.1, en voici les etapes:

  • Dans le "Communication Manager", activer le mode "Connexion de Donnees". Cette etape est fondamentale et semble la seule propre a l’Acer X960.
  • Demarrer > Parametres > Connexions > Connexions > Avance > "Selectionner des reseaux"
  • Cliquer sur "Nouveau..."
  • Entrer un nom pour le reseau, disons “Virgin Mobile”
  • Choisir l’onglet "Modem"
  • Cliquer sur "Nouveau..."
  • Choisir un nom, disons encore “Virgin Mobile”
  • Selectionner le type "Ligne Cellulaire (GPRS)"
  • "Suivant"
  • Point d’acces: mettre ofnew.fr
  • "Suivant"
  • login / mot de pass: “orange” dans les deux cas
  • Terminer
  • onglet "Parametres du proxy"
    • cocher "ce reseau se connecte a Internet" et "Ce reseau se connecte a Internet via un serveur proxy"
    • appuyer sur le bouton "Avances..."
    • selectionner le protocole HTTP
    • specifier le server: 192.168.10.100 et le numero de port: 8080

Normalement ca devrait fonctionner. Pour s’en assurer, lancer Internet Explorer ou le GPS par Google Maps. Prochaines etapes: installer Mozilla Fennec et d’autres applications.

PostHeaderIcon How To Disable an ActiveSync?

My smartphone (Acer X960) runs under Windows Mobile 6.1 (yes, I know that Android is far better, but it is not the subject). ActiveSync always runs, and even when I close it, it restarts automatically.  I decided to disable it, in order to save power and RAM.

To perform this:

  • Start > Programs > Active Sync > Menu > Add server source
  • Leave fake address "@"
  • uncheck "try to detect..." > next
  • give fake login, password, domain, server name, etc.
  • uncheck all boxes (tasks, emails, contacts, etc.) > end
  • Menu > Panification > choose "Manually..." for both lists > OK
  • Menu > Options > Remove the fake server you have added

PostHeaderIcon Multi-profiles with Maven 2

Case: you work on two different projects, which use different repositories. How to search, find and download needed jars owing to the project?

Maven2 allows you to define different profiles.
For that, edit your Maven2 config file, available at $HOME/.m2/settings.xml.

Define your first profile:
[xml]
<profile>
<properties>
<maven.user>jlalou</maven.user>
<myProject.version>12.3</myProject.version>
</properties>
<repositories><repository>
<id>FirstProjectID</id>
<name>My First Project</name>
<url>http://blabla.bla.bla</url>
<releases>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository></repositories>
</profile>[/xml]

Define your first profile:
[xml]
<profile>
<properties>
<maven.user>genericUser</maven.user>
<myProject.version>45.6</myProject.version>
</properties>
<repositories><repository>
<id>SecondProjectID</id>
<name>My Personnal Project</name>
<url>http://foo.foo.foo</url>
<releases>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository></repositories>
</profile>[/xml]

At the end of the file, add following tags:
[xml]
<activeProfiles>
<activeProfile>FirstProjectID</activeProfile>
<activeProfile>SecondProjectID</activeProfile>
</activeProfiles>[/xml]

Now, on compiling, use the option -P to hint which project/profile you want to use:
maven clean install -PFirstProjectID