Ceci est super génial ! Merci à Idleman de partager cette trouvaille ;-) Installé chez moi, rapidement testé et déjà approuvé !!
-
-
http://blog.idleman.fr/?p=2337C'est souvent quelque chose qui m'a posé des problèmes... Donc je me vois bien utiliser ce genre de solution à l'avenir.
-
-
http://sebsauvage.net/links/?8nPKJADingue, 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 !
-
-
http://lehollandaisvolant.net/index.php?mode=links&id=20130322142853Ouah ! 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 ?
-
-
http://lea.verou.me/2013/03/use-mathml-today-with-css-fallback/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 -->
-
-
http://lehollandaisvolant.net/?mode=links&id=20130322003640Rah !!! 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};
-
-
https://links.la-bnbox.fr/?46a-wwEn 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
-
-
http://djibril.developpez.com/tutoriels/conception/pro-git/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 !
-
-
http://www.weirdog.com/blog/icanboogie/singularize-pluralize-inflexion-php.htmlQuand 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 !
-
-
http://git-scm.com/book/fr/Les-branches-avec-Git-Brancher-et-fusionner%C2%A0%3A-les-basesEh, je ne savais pas ça !
${parameter.name:default value}
${parameter.${other.parameter}}
-
-
http://www.javacodegeeks.com/2013/01/spring-property-placeholder-configurer-a-few-not-so-obvious-options.htmlAllez hop quelques adaptations pour Leed.
-
-
http://30minparjour.la-bnbox.fr/2013/quelques-modifications-sur-leedLes 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
}
}
-
-
http://stackoverflow.com/questions/631598/how-to-use-junit-to-test-asynchronous-processesTristan Nitot promeut Leed pour remplacer Google Reader ! Voilà, qui devrait faire de la pub pour Idleman :-)
-
-
http://sebsauvage.net/links/?eM95CARahhh, je l'oublie toujours celui là ! Parcourir une Map en Java :
HashMap<String, String> selects = new HashMap<String, String>();
for(Entry<String, String> entry : selects.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
// do what you have to do here
// In your case, an other loop.
}
-
-
http://stackoverflow.com/questions/4234985/how-to-for-each-the-hashmapEn effet, ce parser de flux RSS en PHP est à tester, parce que SimplePie commence à dater et je ne comprends pas pourquoi il est si gros / lourd / complexe. Et encore, il existait une autre bibliothèque avant SimplePie (
-
-
http://sebsauvage.net/links/index.php?mGzbLgDécidément, entre ce nouvel outils "Read it Yourself" et "Respwan" de Timo, il y plein de méthodes pour récupérer facilement le contenu d'une page Web aujourd'hui ! En ce moment, plusieurs parlent d'ajouter un tel système à leur Shaarli, ou Shaarli-like, ou aggrégateur de flux RSS (à quand pour Leed ;-)) afin de pouvoir conserver le contenu d'un article même si celui-ci disparaît. Et c'est une très bonne idée :-) (attention au duplicate content malgré tout)
Mais ce que je veux faire (enfin quand j'aurais le temps)(un jour quoi), c'est rendre ce contenu accessible hors ligne. Mon cas d'usage est le suivant : je lis un article en diagonal, (ou je découvre un article sur mon agrégateur de flux), ça m'intéresse. Pof, j'ai un bookmarklet "Offline me" qui enregistre cet article sur mon serveur perso, ou sur mon ordi actuel. Puis mon serveur perso se synchronise avec une application sur mon téléphone (ou mieux, un site Web accessible hors ligne, mais j'ai quelques recherches à faire à ce niveau pour savoir sic 'est possible) et je peux lire cet article tranquillement dans les transports sur mon smartphone !
Presque tout y est, non ?
-
-
http://www.memiks.fr/read-it-yourself/