Ouais ! Cet article explique comment démarrer le ssh-agent de Cygwin (une petite bidouille est nécessaire), ce qui permet d'utiliser ssh-add pour ajouter une clé privée / publique au gestionnaire de clés SSH, ce qui permet d'utiliser git "remotely" à loisir. Vous me suivez ?
Toujours utile. Mais risqué lorsque le commit a déjà été pushé et que l'on travaille à plusieurs. Quand 40 personnes commit quotidiennement, il faut forcer son push à 2h du mat' pour éviter la panique :D
Pour avoir pas mal contribuer à la communauté française de ce système de forum, il est plutôt conseillé d'utiliser le fork de PunBB : FluxBB (http://fluxbb.org/). Un jour le concepteur de PunBB a plus ou moins lâché l'équipe de dev en vendant le bébé à une entreprise. Depuis, les plus gros contributeurs ont forké et pas mal de gens ont suivi. La communauté française en tout cas (http://fluxbb.fr/). Les mises à jour sont plus suivies, et suivant d'avantage la vision de la communauté.
L'histoire classique d'un projet libre quoi ;-)
pour comprendre un peu mieux son code html5.
Empreinte mémoire du processus Notepad++ avec 8 onglets ouverts : 23 ko (dont 1 fichier de 47 000 lignes)
Empreinte mémoire du processus SublimeText 2 avec 2 onglets ouverts : 33 ko. ça passe à 66 ko et des poussières dès que je commence à ouvrir de gros fichiers et en prime ça ne rend pas la mémoire une fois fermé.
Dommage, c'était joli ;-)
Ceci est super génial ! Merci à Idleman de partager cette trouvaille ;-) Installé chez moi, rapidement testé et déjà approuvé !!
C'est souvent quelque chose qui m'a posé des problèmes... Donc je me vois bien utiliser ce genre de solution à l'avenir.
Dingue, je suis lu :D
J'ai re-testé le script de Timo et c'est impeccable en effet ! Enfin, sur les tests que j'ai effectué. Bien joué encore !
Ouah ! Lea Verou s'est encore surpassée ! Cette utilisation de MathML est vraiment géniale :-) Bon la syntaxe de MathML est à vomir (éh, c'est censé me simplifier la vie ce truc !!!), mais bon, il y a peut-être moyen de faire de la syntaxe Latex qui "compile" en MathML, non ?
Ah oui les regex. Toujours galère en particulier pour parser du HTML; Je me demande si Le Hollandais Volant nous montrera un exemple d'utilisation.
Personnellement, j'ai testé son script en utilisant le code de son article comme exemple (éhéh !). J'ai quelques balises de titre qui restent, mais c'est peut-être fait exprès... ?
<div id="main">
<section id="midle">
<div id="posts">
<article class="itembloc link" id="20130322003640">
<hgroup class="post-hgr links-hgr">
<h2 class="link-titre"><a href="index.php?mode=links&id=20130322003640">#5292</a> - <a href="http://lehollandaisvolant.net/?mode=links&id=20130322003640">Note : regex pour matcher les balises HTML et les attributs</a></h2>
<h3 class="link-date">Aujourd’hui à 00:36:40</h3>
</hgroup>
<div class="post-cnt links-cnt">
"#<\s*/?(?:[a-zA-Z-]+)(?: (?:\s*\w+=(['\"])(?:(?!\g{1}).|(?:(?<=\\\)\g{1}))+\g{1})*(?:\s*\w*\s*))?/?>#S"<br />
<br />
(en php, en gros : utiliser dans un preg_replace() et les remplacer par une chaine vide agira comme striptags().)<br />
<br />
(oui, les attributs peuvent contenir un « > » ou un « < », par exemple en JS : « 2<=4 », et c’est chiant).<br />
<br />
Un peu de doc complémtentaire :<br />
<a href="http://www.regular-expressions.info/refadv.html">http://www.regular-expressions.info/refadv.html</a><br />
<a href="http://stackoverflow.com/questions/6050427/regex-problem-with-backreference-in-pattern-with-preg-match-all/6051114#6051114">http://stackoverflow.com/questions/6050427/regex-problem-with-backreference-in-pattern-with-preg-match-all/6051114#6051114</a> (commentaire intéressant)<br />
<a href="http://blog.lilhoot.eu/regex-et-preg-assertions-avant-arriere-lookahead-lookbehind-assertions-recuperer-les-chaines,a3">http://blog.lilhoot.eu/regex-et-preg-assertions-avant-arriere-lookahead-lookbehind-assertions-recuperer-les-chaines,a3</a> (en français, très intéressant et très clair)
</div>
</article>
</div> <!-- end postS -->
Devient :
<h2 class="link-titre"> #5292 - Note : regex pour matcher les balises HTML et les attributs </h2>
<h3 class="link-date">Aujourd’hui à 00:36:40</h3>
"#<\s*/?(?:[a-zA-Z-]+)(?: (?:\s*\w+=(['\"])(?:(?!\g{1}).|(?:(?<=\\\)\g{1}))+\g{1})*(?:\s*\w*\s*))?/?>#S"
(en php, en gros : utiliser dans un preg_replace() et les remplacer par une chaine vide agira comme striptags().)
(oui, les attributs peuvent contenir un « > » ou un « < », par exemple en JS : « 2<=4 », et c’est chiant).
Un peu de doc complémtentaire :
http://www.regular-expressions.info/refadv.html
http://stackoverflow.com/questions/6050427/regex-problem-with-backreference-in-pattern-with-preg-match-all/6051114#6051114 (commentaire intéressant)
http://blog.lilhoot.eu/regex-et-preg-assertions-avant-arriere-lookahead-lookbehind-assertions-recuperer-les-chaines,a3 (en français, très intéressant et très clair)
<!-- end postS -->
Rah !!! Déclarer un array en Java (je l'oublie toujours celui là...) :
String[] anArray = new String[10];
Ou en plus court:
String[] anArray = {"Val1", Val2};
En parlant de Pro Git : ce lien permet de télécharger la version française en PDF, ePub, et autre (version de mars 2012, ça a peut-être changé depuis).
La version "officielle" ne propose que la version anglaise : http://git-scm.com/book
Ah oui, il faut reconnaître que c'est stylé ! ça semble être un très bon travail de Weirblog ! Certes bon un petit projet frenchy, une bonne vieille méthode "plurialize" est sûrement plus performante, mais bon, hein !
Quand EGit d'Eclipse fait défaut, heureusement qu'il y a ce genre de ressources (en anglais c'est ici : http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging) pour éviter de faire des bêtises !
Eh, je ne savais pas ça !
${parameter.name:default value}
${parameter.${other.parameter}}
Allez hop quelques adaptations pour Leed.
Les tests unitaires en Java, c'est le pied grâce à JUnit ! C'est vraiment le pied ! Dans un projet, j'ai même eu l'occasion de m'en servir pour des tests d'intégrations !
Cela devient plus compliqué dès qu'il faut tester des méthodes asynchrones utilisant des callback (ou listener, as your prefer). Je n'ai rien de complètement figé dans ma tête actuellement, mais voilà ce que je note :
La solution générique consiste à attendre l'appel du thread à l'aide de synchronized, wait et notify. Dans la réalité, il semble qu'il vaut mieux utiliser CountDownLatch (http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/CountDownLatch.html) afin d'éviter que le callback n'arrive avant que l'on est eu le temps d'attendre... ce serait dommage ;-)
Actuellement, pour moi, la meilleure solution consiste donc à utiliser un code du type :
public class AsynchronousTest
{
/**
@Test
public void testAsynchronousCall() throws Exception
{
Object parameters = null;
myAsynchronousCall(parameters, new MyCallback()
{
@Override
public void onSuccess(Object data)
{
receiveddata = data;
lock.countDown();
}
});
boolean releaseBeforeTimeout = lock.await(2000, TimeUnit.MILLISECONDS);
// Check timeout
if (!releaseBeforeTimeout) {
// Do stuff
fail("Timeout");
}
assertNotNull(receiveddata);
// Other tests
}
}