Drop sequences for Oracle

Adam already showed how to generate all the drop table statements (impossible to trackback):

select 'drop table '||table_name||' CASCADE CONSTRAINTS;' from USER_TABLES

As I just needed to drop sequences, based on Adam’s query, here’s the necessary:

select 'drop sequence '||sequence_name||';' from USER_SEQUENCES;

Quite straightforward indeed.

Hope this helps.

À quelle vitesse vous tapez ?

41 mots

Speed test

L'image du jour

Reçu ça il y a quelques jours, ça m’a beaucoup fait rire : tapette.jpg

Leçon de politique politicienne à l'américaine

Je viens de lire cet article du monde à propos du rejet du plan Paulson. Très fort, ce Douglas Holtz-Eakin…

Si M. McCain a évité de s’en prendre trop frontalement à Obama, son conseiller économique, Douglas Holtz-Eakin, n’a pas pris de pincettes.

Si l’adoption du plan de relance a échoué, explique-t-il, c’est “à cause de Barack Obama et des démocrates, qui mettent la politique avant le pays”. […] Sur les 433 élus de la Chambre basse, 228 ont voté contre, dont 133 républicains et 95 démocrates.

Refaisons le compte, d’après wikipedia, la chambre des représentants des États-Unis, aussi appelée chambre basse, est composée de 435 membres, répartis comme suit :

  • Républicains : 202 sièges
  • Démocrates : 233 sièges

Et on nous dit donc qu’ont voté contre le plan Paulson :

  • 133 républicains
  • 92 démocrates

Comptons les votes pour :

  • Républicains : 69 votes, soit 34% des républicains
  • Démocrates : 141 votes, soit 60% des démocrates

En résumé, Douglas Holtz-Eakin, républicain, accuse les démocrates qui ont voté massivement pour (autant en nombre qu’en pourcentage) d’avoir fait échouer le plan Paulson… C’est pas un rien malhonnête, ça, mon petit monsieur ?

Citation du soir, bonsoir !

Écoutant la radio, je vous la livre ici. Laurent Gerra imite Le Pen et parle de sa femme. Ça donne en gros :

À l’âge où je l’ai ramassée, elle n’avait déjà plus la nurserie, il ne lui restait plus que la salle de jeux.

Finesse, quand tu nous tiens :-).

Comment gérer la rétro-compatibilité avec l'API d'Eclipse

Dans cet article, Eugene présente un cas où une API évolue. Une méthode est ajoutée qu’il serait bien de pouvoir utiliser. Problème : le faire rendrait le code non rétrocompatible. Donc, pour le faire tout de même sans casser la compatibilité, il utilise la reflection. Et pour le faire proprement, il met en Å“uvre un Proxy afin que ce code soit bien externalisé.

Une solution très classe de la part d’Eugene Kuleshov.

How to retrieve the Hibernate Session from the EntityManager interface

Well, as I myself fell into this stupid gap, I guess I’ll try to help. I was quite pushed in this trap by a fallacious part of the jboss documentation :

@PersistenceContext EntityManager entityManager;
public void someMethod();
{
  org.jboss.ejb3.entity.HibernateSession hs = (HibernateSession)entityManager;
  org.hibernate.Session session = hs.getHibernateSession();
}

Let’s be clear : this is totally WRONG! Yes, it will work under JBoss, but as there’s a standard way to do this, this is not the right way to do this.

In fact, there’s a dedicated method that lets you retrieve the underlying persistence manager : EntityManager.getDelegate(). If you read this method’s javadoc, you’ll see the following :

/**
 * Return the underlying provider object for the EntityManager,
 * if available. The result of this method is implementation
 * specific.
 * @throws IllegalStateException if this EntityManager has been closed.
 */
public Object getDelegate();

And the “underlying provider”, for Hibernate, is obviously the Hibernate Session instance…

So, the right way to retrieve the Session is something like the following instead :

@PersistenceContext EntityManager entityManager;
public void someMethod();
{
  org.hibernate.Session session = (Session)entityManager.getDelegate();
}

Under JBoss, using this code won’t make a big difference. But using the standard way will let you run your code under several appservers (namely, it works like a charm^[1]^ under JBoss 4.2.2.ga and Glassfishv2ur1 for example). If you use the bad way above, this will just crash under Glassfish, for example…

I reported the corresponding documentation bug in the JBOSS tracker.

Hope this helps…

Notes

[1] ça, c’est pour Seb

Comment réinitialiser manuellement les pages chargées par firefox au démarrage

Si, comme moi depuis 10 minutes, vous êtes dans l’impossibilité de relancer Firefox parce que la page sur laquelle vous étiez provoquait un plantage de FF, ce qui suit est pour vous.

Dans les options de Firefox, vous pouvez demander à ce que celui-ci réouvre les onglets ouverts avant la dernière fermeture (Onglet Général, le premier combobox). Une fois cette option sélectionnée, mon firefox qui gelait avait pour bonne idée de redémarrer sur la page en question et de regeler…

Et là, bizarrement, la proposition de “restaurer les onglets” ou de “démarrer une nouvelle session” n’était même pas offerte. Donc, bien bien bloqué.

La solution que j’ai trouvée est la suivante :

  • Tuez firefox
  • dans votre répertoire profile (dans quelque chose comme $HOME/.firefox/1d5s1.default sous Linux ou C:\Documents and Settings\votreuser\Application Data\Mozilla\Firefox\Profiles\1d5s1.default sous windows), supprimez simplement le fichier sessionstore.js.
  • Relancez firefox…

Voilà, en espérant que ça serve…

Quelques déclarations XSD ou DTD de formats XML connus

C’est le genre de chose qu’il est sympathique d’avoir écrit en tête de ce type de fichier pour disposer de l’auto-complétion XML dans son IDE favori. Lorsque j’utilise un nouveau format XML, la première chose que je cherche est en effet à ajouter cet entête pour me faciliter la vie (et aux autres une fois commité :)).

Note : dans la liste ci-dessous, je ne mets pas le prologue XML pour gagner en concision. Toutefois, ça ne fait jamais de mal de le mettre. Personnellement j’essaie de le mettre systématiquement.

Hibernate : mappings hbm.xml

Même s’il vaut mieux à mon avis passer aux annotations lorsqu’on en a la possibilité, voici une déclaration de DTD qui fonctionne chez moi pour ceux qui ont encore des mappings hibernate à la sauce XML :

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="net.batmat.domaine">
...
</hibernate-mapping>

Java Persistence : persistence.xml

Pour ceux qui utilisent Java Persistence, cette “sous-spécification” des EJB3 devenue une spécification autonome dans sa version 2 :

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://java.sun.com/xml/ns/persistence
        http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
    version="1.0">
...
</persistence>

Spring : fichier de contexte XML

Depuis la version 2, ils ont subdivisé leur format XML en différents namespaces. Voici un exemple fonctionnel qui met en Å“uvre un certain nombre de ces espaces de nommages XML. Je laisse en exercice le passage à Spring 2.5 (que nous utilisons, d’ailleurs, mais on n’a pas mis à jour le XML) ou l’ajout d’un autre namespace dont vous auriez besoin :-).

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
        http://www.springframework.org/schema/util
        http://www.springframework.org/schema/util/spring-util-2.0.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
...
</beans>

Maven : pom.xml

Celui-là, il est sacrément pratique vu la taille du truc :

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/maven-v4_0_0.xsd">
...
</project>

Voilà déjà pour cette fois. Une fois cet entête ajouté, dans Eclipse par exemple, tapez juste “<” quelque part et vous verrez la liste des balises apparaître et leur documentation si les auteurs l’ont indiquée (après qu’Eclipse ait pu récupérer le XSD sur Internet, bien sûr) : Auto-complétion du XML avecEclipse

Si vous en avez d’autres, n’hésitez pas à les poster (ou à les demander, si je suis dans un bon jour) dans les commentaires.

Update 01/10/2008, ajout du application.xml des EAR :

<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" 
     "http://java.sun.com/dtd/application_1_3.dtd">
<application id="mon appli">
...
</application>

FIA : les œillères de la connerie

Sans déconner, c’est pas un ramassis de neuneus à la FIA ?

Lorsque Sébastien Loeb, le multiple champion du monde de rally, monte une fois de plus sur un podium sans prendre soin de passer devant les maquilleuses auparavant, il est des gens assez chiants pour trouver à redire ! Surinder Thatti, via Libé :

Je me dois d’exprimer mon opinion à propos du piètre passage de Sébastien Loeb à la TV lors de l’arrivée du rallye du Mexique. Il n’était pas rasé, dépenaillé avec une chevelure négligée.

Jusque là, rien d’anormal. Il y a plein de gens aux mÅ“urs différentes sur la planète. Ça peut éventuellement se comprendre.

Là où j’hallucine, c’est lorsqu’un débile de la direction de la Fédération Internationale de l’Automobile, j’ai nommé Morrie Chandler, se dit que vraiment oui, c’est pas normal, c’est une honte aux vrais mâles et tout et tout :

Malheureusement, ce n’est pas un problème propre à notre sport, vu que la même chose arrive dans le football et d’autres sports de “mâles”. Bien sûr, ces personnes sont une insulte aux vrais mâles … Ma seule solution c’est que nous suggérions à ISC (NDLR: International Sportsworld Communicators, la société détentrice des droits commerciaux et de retransmission) qu’ils aient la couverture à laquelle ils ont droit en tant que vainqueurs, mais sans gros plans et sur un laps de temps réduit.

Comme le dit Libé, après les récentes révélations au sujet de Max Mosley et ses frasques sado-masochistes nazi, il y a de quoi se demander dans quelle réalité des types comme Chandler vivent ! Qu’un champion soit pas très frais et un peu ébouriffé après une course de plusieurs heures et le port d’un casque, ça c’est inadmissible.

Par contre, que le président de toute la fédé s’amuse en privé à papoter en allemand avec des prostitués qui le traitent comme un prisonnier, là c’est le black out. (Précisons que Max Mosley n’est pas allemand et que son père avait créé l’Union Fasciste Britannique, le deuxième point peut donner une idée de l’origine de ce genre de fantasme…)

Et nouvelle fraîche : Max Mosley a donc bien été réélu hier à la tête de la FIA.

Plutôt douteuse cette histoire, vous avouerez…

Page 5 of 33 Older