msgbartop
msgbarbottom

22 avr 09 Problème avec mon rss sous Safari

Lorsque je consulte mon site wordpress avec Safari impossible d’avoir accès à mon flux rss depuis le bouton de la barre d’url, par contre aucun probleme avec FireFox.

Je me suis aperçu que le problème venait du fait que l’url de mon rss n’était pas correct.
En effet : feed://dadoun.net/feed/ donne « aucun article » par contre feed://dadoun.net/feed (sans le slash a la fin de l’url) donne bien acces au flux rss. J’ai donc modifié dans le header de mon thème (wp-content/themes/go-blog/header.php)

<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />

par

<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="/feed" />

Si quelqu’un à une solution « plus propre » je suis preneur.

Tags: , ,

09 déc 08 awk et LC_NUMERIC

Je me suis bien tiré les cheveux avec le awk de mon Mac Intel (sous Leopard):

des opérations mathématiques simples sur des colonnes d’un fichier me donnaient

des résultats complètement aberrants. 

De même je me suis aperçu que:

echo "1.23456" |awk '{print -$1}''
-1

et que

echo "1,23456" |awk '{print -$1}'
-1,23456

 

En cherchant pas mal sur le web j’ai trouvé que la faute venait de la variable LC_NUMERIC.

locale | grep LC_NUMERIC
LC_NUMERIC="fr_FR.UTF-8"

 

En changeant cette variable par export LC_NUMERIC=C  les résultats étaient complètement différents:

 

echo "1.23456" |awk '{print -$1}'
-1.23456

et 

echo "1,23456" |awk '{print -$1}'
-1

Ce qui a résolu mes problèmes d’opérations mathématiques  (j’ai donc exporter LC_NUMERIC=C dans mon .profile).

 

PS: Cela dit en passant la réponse  -1 donnée,  faudrait m’expliquer …

Tags: , ,

17 nov 08 Mot de passe perdu Mac OS X

Vous avez perdu votre mot de passe et vous n’avez pas sous la main le CD d’installation OS X pas de panique …

Redémarrer votre mac en mode utilisateur unique : appuyer sur pomme+S après le son de démarrage.

Capture d'écran du mode utilisateur unique

Capture d

Lorsque vous avez la main tappez

mount -uw /
rm /var/db/.AppleSetupDone
reboot

L’ordinateur va redamarrer comme si vous veniez juste d’installer le système (petite amination avec une sic pas terrible).

Un formulaire pour créer un Admin vous est présenté. Remplissez le en choissant un nom et un mot de passe bidon.

Vous arrivez ensuite sur ce compte temporaire. Allez dans Préférences Système et selectionnez Comptes et changez le mot de passe qui pose probleme.

Voici votre probléme résolu n’oubliez pas d’effacer le compte temporaire que vous avez ainsi créé.

Remarque
On m’a signalé que le fichier pouvait se nommer autrement. Donc si vous avez une erreur du type : « no such file ou directory » (après le rm) . essayer donc :

rm /var/db/.appleSetupDone

ou

rm /var/db/AppleSetupDone

Tags: , ,

17 oct 08 Xcode & Geant4

Xcode for developing Geant4

Let try to compile examples/novice/N04 with Xcode
(maybe there is something more easy)

  1. Open Xcode (:))
  2. Select New Project from file menu and select External Build System
  3. Select your project Name: XcodeN04 for example and give
  4. the path where the example is installed (for me /Applications/geant4.8.3/examples/novice/N04/)

  5. Open the disclosure triangle beside the XcodeN04 (left side)
    drag the folder containing the sources files src (Tell Xcode not to copy files)
  6. From the Project Menu choose New Target and select Shell Script Target
    and give a name Xenv.sh (for example) and close the pop up window
  7. Open the disclosure triangle beside Xenv.sh and double click on Run Script
  8. Add those following line between #shell script… and exit 0 :
  9. # shell script goes here
    source $G4INSTALL/env.sh
    make
    exit 0

    (give the full path of $G4INSTALL)

  10. From the Project Menu Set Active Target select the name of your script
    file here Xenv.sh
  11. you can build now, it should work …

Tags:

17 oct 08 GuineaPig under LCG

Bash script to send one GuineaPig++ onto the Grid


Before doing anything on the Grid be sure you have a valid proxy …

 

grid-proxy-init

To send Job onto the Grid you must give some Grid parameters:

  • your virtual organisation (VO), ilc by default
  • the LCG_CATALOG_TYPE, defined as lfc if you are under ilc vo
  • the LFC_HOST, defined as grid-lfc.desy.de if you are under ilc vo
  • YOU MUST HAVE A VALID FOLDER ON A STORAGE ELEMENT (SE), there will be no default
    value !!!

    you can create a folder on a SE like this:
     

    lfc-mkdir /grid/ilc/TOTO

Ask the Grid User Support @ your lab. if you don’t know the anwser …


Download the configuration file

gp_grid_cfg.sh

(or wget http://flc.web.lal.in2p3.fr/mdi/BBSIM/GPontoGrid/gp_grid_cfg.sh

also available here: http://dadoun.net/Informatique/Download/gp_grid_cfg.sh).

Change the file access control list: chmod +x gp_grid_cfg.sh.

Execute it on your User (grid) Interface (UI): ./gp_grid_cfg.sh .

 

It will create a launch_gp_grid.sh file with all the configuration variables you gave.

Now you can submit a GuineaPig++ job onto the grid, 3 arguments is needed:

With the acc.dat from above try like this:

./launch_gp_grid.sh acc.dat ILC LC-GENERAL

Here a typical echo from a LAL User Interface:

lx3/dadoun % ./launch_gp_grid.sh acc.dat ILC LC-GENERAL

Selected Virtual Organisation name (from --vo option): ilc
Connecting to host grid09.lal.in2p3.fr, port 7772
Logging to host grid09.lal.in2p3.fr, port 9002

================================ edg-job-submit Success =====================================
 The job has been successfully submitted to the Network Server.
 Use edg-job-status command to check job current status. Your job identifier (edg_jobId) is:

 - https://grid09.lal.in2p3.fr:9000/PbwVfqs2kEyzdg-t0Jj5SA

 The edg_jobId has been saved in the following file:
 /users/delphi/dadoun/Grid/GuineaPig++/GridGuineaPig++Package/out
=============================================================================================

The GUID (Globally Unique Identifier, here https://grid09.lal.in2p3.fr:9000/PbwVfqs2kEyzdg-t0Jj5SA)
is save in the file out in your current directory

To have the status of your job:

lx3/dadoun % edg-job-status https://grid09.lal.in2p3.fr:9000/PbwVfqs2kEyzdg-t0Jj5SA

*************************************************************
BOOKKEEPING INFORMATION:

Status info for the Job : https://grid09.lal.in2p3.fr:9000/PbwVfqs2kEyzdg-t0Jj5SA
Current Status:     Done (Success)
Exit code:          0
Status Reason:      Job terminated successfully
Destination:        dgc-grid-44.brunel.ac.uk:2119/jobmanager-lcgpbs-ilc
reached on:         Tue Nov 28 11:58:53 2006
*************************************************************

Check your job is ok :

Current Status: Done (Success) Exit code: 0

Check the gp_tarball.tar.gz is on your SE folder:

lfc-ls lfn:YOUR_SE_FOLDER

To copy it locally:

lcg-lg –vo YOUR_VO lfn:YOUR_SE_FOLDER

it return the GUID

lcg-cp –vo YOUR_VO GUID file:`pwd`/gp_tarball.tar.gz

and tar xvfz gp_tarball.tar.gz …

That’s all !


Go the LAL GuineaPig page

Tags:

16 oct 08 ParserXML

Comment parser un fichier XML avec libxml ?

Je fournis ici un petit programme C (et son Makefile) permettant de parser le fichier exemple XML detector.xml.

Soit:

<!-- xml  Detector description example -->
<detector/>
        <info name="oner" title="Super detector" author="Ol." date="march 2024">
        <comment&gt;Only a xml file to show how to parse it ...&lt;/comment>
	</info>
	<detec id="0" name="Cap" type="Polygone" TrackingVolume="true">
	        <material name="Beryllium"/>
		<zplane rmin="1.2*cm" rmax="1.9*cm"   z="-6.*cm"/>
		<zplane rmin="1.2*cm" rmax="1.3*cm" z="6.*cm" />
	</detec>
	<detec id="0" name="Vertex" type="Tracker" readout="Hits">
	<layer id="1" inner_r = "1.4*cm" outer_z = "6.25*cm">
		<slice material = "Silicon" thickness = "0.008*cm"/>
		<slice material = "Silicon" thickness = "0.002*cm" sensitive = "yes" />
	</layer>
	<layer id="2" inner_r = "2.5*cm" outer_z = "6.25*cm">
		&lt;slice material = "Silicon" thickness = "0.008*cm"/>
		&lt;slice material = "Silicon" thickness = "0.002*cm" sensitive = "yes" />
	</layer>
	</detec>
</detector>
  1. Avant toute chose nous devons nous assurer que le document XML à parser est bien du format pour lequel notre parser est fait c.à.d ici à detector. On utilise pour cela la fonction xmlNodePtr qui permet de naviguer sur les noeuds xml de notre document.
    xmlNodePtr cur;

    Si on se position au premier noeud

    cur = xmlDocGetRootElement(doc);

    nous devons avoir la condition:

    if(!xmlStrcmp(cur-&gt;name, (const xmlChar *) "detector"))

    vérifié sinon on sort du programme..

  2. On se deplace dans le document avec xmlChildrenNode
    cur = cur->xmlChildrenNode;

    Le contenu des champs des noeuds se fait avec xmlGetProp, par exemple

    InnerRadius = xmlGetProp(cur,"inner_r")

    nous donne la valeur du champ inner_r qui se trouve au noeud layer.

  3. Pour avoir accès au contenu du noeud comment (par exemple
    « Only a xml file to show how to parse it … ») on utilise: 

    xmlNodeListGetString

Voilà pour essentiel …

Pour tester mon petit parser de demo:

Tags: , ,

16 oct 08 Latex2html

Je donne ici les étapes qui m’ont permis de convertir ma
thèse écrite en LATeχ  en HTML avec latex2html (installé sur mon Mac avec fink).

Quelques mots sur ma thèse en  LATeχ 
J’ai créé plusieurs répertoires correspondant chacun à un chapitre. Ces chapitres sont ensuite appelés dans mon fichier principal these.tex via la commande \include. Comme c’est une thèse en physique il y a pas mal de formules et de signes bizarres que j’utilise souvent ( 7Be , 8B, 23892U et plusieurs autres déclinaisons). 
J’ai donc défini des macros dans un fichier these.sty que je charge ensuite dans mon fichier these.tex avec \usepackage{these}.

Étapes de conversion 
Recopier l’ensemble de votre répertoire de thèse (en theseHTML par exemple). Toutes les étapes que je décris maintenant  se font dans ce répertoire.
Modifier le fichier principal où sont appelés vos fichiers LATeχ  et le renommer
en these_html.tex par exemple. Supprimer tous vos \usepackage, et mettez ce qui suit (pour exemple mon fichier these_html.tex):

\documentclass[11pt]{book}
\usepackage[french]{babel}
\usepackage{epsfig}
\usepackage{html}
\setcounter{tocdepth}{2}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}

—–> \include{VOTRE 1er FICHIER LATeχ  }

Je vous conseil de ne pas convertir toute votre thèse en un bloc mais plutôt include par include et de vérifier à chaque fois si la conversion est bonne. Il faut enlever aussi l’appel à la bibliographie. Pour ma part j’ai laissé les \chapter dans mon fichier these_html.tex. Si vous avez définis des macros dans un fichier annexe (pour moi c’est le fichier these.sty), vous devez les déclarer dans un fichier .latex2html-init qui est chargé au lancement de la commande latex2html. Comme latex2html est écrit en Perl, ces déclarations doivent être écrit en Perl et non pas en LATeχ  .

Je donne quelques exemples de macros que j’utilise en LATeχ  et leurs analogues en Perl.

Je distingue trois cas.

  1. Macro très simple sans argumentExemple $\nue$ (pour νe -neutrino de type électronique-) défini dans mon fichier these.sty par la ligne:       
    \newcommand{\nue}{\ensuremath{\nu_\mathrm{e}}}.
    La commande suivante, placée dans .latex2html-init, permet de redéfinir $\nue$ pour l’ensemble de mes fichiers LATEχ  

    sub do_cmd_nue {"&nu;<SUB>e</SUB>"}.
  2. Macro simple avec deux arguments
    La macro $\isotopes{n}{X}$ me permet d’écrire pour un n et X donnés:
    nX (exemple 7Be -atome de béryllium 7-). Cette macro est
    définie dans mon fichier these.sty par:    \newcommand{\isotopes}[2]{\ensuremath{^{#1}}\mathrm{#2}}.
    Il s’agit pour latex2html via une commande Perl de récupérer les deux arguments de cette macro et de bien les agancer. La commande suivante dans le fichier .latex2html-init permet de le faire:

    sub do_cmd_isotopes{
    local($_) = @_;
    s/$next_pair_pr_rx//o; $chiffre = $;
    s/$next_pair_pr_rx//o; $atome = $;
    join('',"<SUP>$chiffre</SUP>$atome", $_);
    }
  3. Macro un peu plus complexe avec trois arguments
    La macro $\atomes{n1}{n2}{X}$ me permet d’écrire pour n1, n2 et X donnés:n1n2X(exemple 23892U-atome d’uranium 238 à 92 protons-). Notez que c’est beaucoup plus beau en Lateχ quant HTML (si quelqu’un trouve plus beau je suis preneur).
    Cette macro est définie dans mon fichier these.sty par:    

    \newlength{\subwidth}
    \newcommand{\atomes}[3]{%
    \ensuremath{
    \settowidth{\supwidth}{$\scriptstyle #1$}%
    \settowidth{\subwidth}{$\scriptstyle #2$}%
    \ifdim \supwidth&gt;\subwidth \subwidth\supwidth\fi%
    \vphantom{#3}^{\makebox[\subwidth][r]{$\scriptstyle #1$}}%
    _{\makebox[\subwidth][r]{$\scriptstyle #2$}}\mathrm{#3}}}

    Il s’agit pour latex2html via une commande Perl de récupérer les trois arguments de cette macro et de bien les agancer. La commande suivante dans le fichier .latex2html-init permet de le faire:

    sub do_cmd_atomes{
    local($_) = @_;
    s/$next_pair_pr_rx//o; $chiffre1 = $&;
    s/$next_pair_pr_rx//o; $chiffre2= $&;
    s/$next_pair_pr_rx//o; $atome = $&;
    join('',"<SUP>$chiffre1</SUP>","<SUB>$chiffre2</SUB>","$atome",$_);
    }

Remplacer l’ensemble de vos macros dans le fichier .latex2html-init. Rajouter ensuite ces quelques lignes (qui sont mieux que les défauts proposés) au début du fichier latex2html-init:

$LANGUAGE_TITLES = ' french';
$BODYTEXT = "text=\"\#000000\" bgcolor=\"\#FFFFFF\"";
$WHITE_BACKGROUND = 1;
$LATEX_COLOR = "\\pagecolor{white}";
$PSTOIMG = "$PERL /sw/bin/pstoimg";

Si on veut des .png pour les figures au lieu des .gif:
$IMAGE_TYPE = $IMAGE_TYPES[1];

Vous pouvez alors lancer la conversion:

latex2html -no_math -html_version 3.2,math -local_icons these_html.
L’option -local_icons permet d’avoir les icons « pervious », « up » et « next » dans le repertoire courant. Relancer la commande précendente à chaque nouveau include que vous mettez dans votre fichier these_html.tex. Terminer en mettant l’appel de la bibliographie.

Quelques liens utiles, voir très utiles:

http://www.orcca.on.ca/MathML/texmml/textomml.html
http://www.htmlhelp.com/reference/html40/entities/symbols.html
http://www-texdev.ics.mq.edu.au/l2h/docs/manual/
http://www.yoyodesign.org/doc/w3c/mathml2/byalpha.htmlhttp://www.cims.nyu.edu/~barnett/thesis/latex2html_tips.html

Tags:

15 oct 08 Vim

À placer absolument dans votre .vimrc
(se positionne là où vous étiez lors de la fermeture de votre fichier):

:au BufReadPost * if line("'\"") &gt; 0 &amp;&amp; line("'\"") &gt;= line("$") | exe "normal g'\"" | endif
  • Ahhhh des ^M partout dans mon fichier
:%s/Ctrl-v-et-ensuite-return//g
  • Ouvrir plusieurs fichiers
vim fichier_1 fichier_2 ... fichier_n

Pour passer de l’un à l’autre

:next (:n), :prev (:N), :last et :first.
  • Séparer la fenêtre en deux verticalement: vsplitNaviguer d’une fenêtre à l’autre ctrl+W
  • Le copier-coller avec la souris ne donne des choses bizarres au niveau de l’indentation

Faire avant le coller:

:set paste

donne un resultat plus satisfaisant

  • Macro sous VIM

Commencer la macro :

 qa (a=nom de la macro).

Faites des modifications dans votre fichier, puis sortir de l’enregistrement de la macro q.

Pour appeler la macro= @a.

Exemple (merci Tristan d’avoir soulevé le problème)

Je veux enlever deux mots sur toutes les lignes de mon fichier, comment faire ?
On commence par écrire la macro:

qa
d2W
q

et on l’applique sur tout le fichier:

 :%norm! @a

ou
sur les lignes de 7 à 12

:7,12norm! @a

Ou bien, plus directement, sans passer par une macro (Tristan style)

1G
d2w
:%norm! .

Tags:

15 oct 08 Quelques commandes Grid (oldstuff)

Présentation données à l’APC (laboratoire AstroParticules et Cosmologie) et 3 examples de soumissions de jobs sur la GRID, regroupés pour vous dans ce tarball.

Les commandes edg-job… sont obsolètes doivent être remplacées par glite-wms… (commentaire de décembre 2009 voir article Grid)

  • Soumettre le job HelloWord.jdl et sauvegarder le job identifier (edg_jobId) dans le fichier out
  • edg-job-submit --vo ilc -o out HelloWord.jdl
  • Status, supprime et récupère la sortie du job
  • edg-job-status edg_jobId
    edg-job-cancel edg_jobId
    edg-job-get-output edg_jobId
  • Copier un fichier sur un Storage Element (SE)
  • lcg-cr --vo YOUR_VO file:`pwd`/FILE.tar.gz -l lfn:/PATH/FILE.tar.gz
  • récupèrer le Globally Unique IDentifier (GUID) du fichier ainsi copié
  • lcg-lg --vo ilc lfn:/PATH/FILE.tar.gz

    Le Site File Name (sfn) du GUID ainsi récupèré

     lcg-lr --vo ilc GUID
  • Effacer le fichier FILE du SE
  • lcg-del --vo ilc sfn:SFN
  • Effacer un dossier vide du SE
  • lfc-rm -R PATH/FOLDER
  • Copier un fichier depuis le SE sur un Computing Element (CE)
  • lcg-cp --vo YOUR_VO GUID file:`pwd`/FILE.tar.gz
  • Connaîte liste des SE , des CE disponibles sur la grille
  • lcg-infosites --vo YOUR_VO se
    lcg-infosites --vo YOUR_VO ce
  • Connaître le catalogue
  • lcg-infosites --vo YOUR_VO lfc

Tags: ,

15 oct 08 sed

Remplacer « slash » par « antislash slash » (« / » par « \/ »):

echo $PWD | sed -e "s#/#\\\\\/#g" (en ligne de commande sed -e "s#/#\\/#g" est suffisant)

Pour supprimer les espaces en début de ligne avec sed

sed -e "s/^ *//g"

Pour remplacer abs( par fabs( dans tous les fichiers .cc

for i in *.cc; do sed 's/ abs(/  fabs(/g' $i &gt; $i.tmp ;rm $i; mv $i.tmp $i ; done

Pour s’affranchir de la création des fichiers $i.tmp utiliser tee (merci TjB)

sed 's/ abs(/  fabs(/g'  $i | tee &gt; $i

Récupérer une chaîne de caractères entre () .
Cette chaîne peut avoir aussi des espaces (merci beubeu)

echo "qsdjmlsjkld(00 00)" | sed 's/.*(\(.*\)).*/\1/g'

Tags: ,

Switch to our mobile site