Erwan.me

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 11 octobre 2013

Désactiver la sauvegarde automatique de sublimeText

Preferences, Settings user :

"hot_exit": false"
"save_on_focus_lost": false

Si vous utiliser le plugin git : Package settings, git, Settings user :

{
        "save_first": false
}

Si vous utiliser le plugin modific : Package settings, modific , Settings user :

{
        "autosave": false
}

Source : http://sublimetext.userecho.com/topic/116305-disable-autosave/

vendredi 26 octobre 2012

Piwik et GeoIP

Piwik 1.9 permet dorénavant de géolocaliser au niveau de la ville vos visiteurs.

Sous Debian (et surement Ubuntu), afin d'avoir le choix entre la version PHP, PECL et Apache :

apt-get install php5-geoip  libapache2-mod-geoip
a2enmod geoip

On récupère une base de donnée (celle de MaxMind - Creative Commons Attribution-ShareAlike 3.0 Unported License)

wget  http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoLiteCity.dat.gz
mv GeoLiteCity.dat /var/www/piwik/site/misc/GeoIPCity.dat
ln -s  /var/www/piwik/site/misc/GeoIPCity.dat /usr/share/GeoIP/

Èditer le fichier /etc/php5/conf.d/geoip.ini :

extension=geoip.so
geoip.custom_directory=/var/www/piwik/site/misc/
service apache2 restart

Pour enfin mettre à jour la base de donnée :

php /var/www/piwik/misc/others/geoipUpdateRows.php

Piwik 1.9 GeoIP

mardi 23 octobre 2012

highcharts et l'export : Error while setting up fonts

La librairie Javascript Highcharts utilise la librairie Java Batik (libbatik-java sous Ubuntu et Debian) pour convertir le SVG vers une image PNG, JPEG ou encore en PDF.
L'erreur "Error while setting up fonts" :

Converting e187bbbb4d20a234baaba37e93601901.svg to /tmp/e187bbbb4d20a234baaba37e93601901.pdf ... org.apache.batik.transcoder.TranscoderException: Error while setting up PDFDocumentGraphics2D
Enclosed Exception:
Error while setting up fonts
at org.apache.fop.svg.PDFTranscoder.transcode(PDFTranscoder.java:189)
at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(Unknown Source)
at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(Unknown Source)
at org.apache.batik.apps.rasterizer.SVGConverter.transcode(Unknown Source)
at org.apache.batik.apps.rasterizer.SVGConverter.execute(Unknown Source)
at org.apache.batik.apps.rasterizer.Main.execute(Unknown Source)
at org.apache.batik.apps.rasterizer.Main.main(Unknown Source)
... error (SVGConverter.error.while.rasterizing.file)

La solution (pour un document root apache2 sur /var/www) :
mkdir -p -m 0777 /var/www/.fop

Source :
http://stackoverflow.com/questions/8505581/svg-generation-with-fop-doesnt-work

mardi 31 juillet 2012

Asterisk : Limiter le nombre d'appel simultané sur un canal

Asterisk Un petit exemple plutôt qu'un long discours :


exten => s,1,Set(GROUP()=monCanalTruc)

[...]

exten => s,n,GotoIf($["${GROUP_COUNT(monCanalTruc)}" >= 3]?busy)

[...]

exten => s,n(busy),Busy()
exten => s,n,Hangup(21)




samedi 21 juillet 2012

jQuery et clone() sont dans un bateau

jQuery et clone() sont dans un bateau. jQuery pousse clone(). Qui tombe à l'eau ?

Internet Explorer 7 bien sûr ! Hum, désolé.

Si vous avez l'habitude de cloner des éléments puis de les modifier via la fonction attr(), sachez qu'Internet Explorer 7 modifiera l'original plutôt que l’élément cloné. Ce comportement ennuyeux apparaît depuis jQuery 1.6 sous IE7 (IE6 ?). La raison est que le clonage n'utilise plus innerHTML mais cloneNode directement. Il y à plusieurs solutions :

  • Abandonner le support de IE7
  • Utiliser prop() en lieu et place de attr() (comprenez bien la différence et les implications)
  • Utiliser la propriété javascript directement : $input.get(0).name = 'nouveau';
  • Faire un sale clonage du genre : var $nouveau = $('<tr>'+$ligne.get(0).innerHTML+'</tr>');

Plus d'informations :

jeudi 12 janvier 2012

Le datePicker de jQuery en HTML/CSS copier/coller, c'est surprennant...

Sur les archives de Numerama, on retrouve un calendrier HTML/CSS qui ressemble fort au datepicker de jQuery-ui (thème smoothness), sauf que le premier, s'il a du style, est loin d'être aussi pratique que le second...

jquery-ui-datepicker.png

Numerama-jquery-ui-sans-jquery.png

Ça surprend au clic... il n'y a pas de javascript... De plus, J'ai pas beaucoup fouillé, mais je n'ai pas trouvé la trace de licence GPL dans les sources du site Numerama...

vendredi 26 novembre 2010

Performance jQuery : hide VS style.display

show() // hide() VS this.style.display = "" // this.style.display = "none" Quel est le vainqueur ?

$('ul#grosseListe li').hide();
$('ul#grosseListe li').each(function() { this.style.display = "none";});

samedi 14 novembre 2009

Mémo jQuery, iuTab, cookie et index

Voici un petit mémo simple, rapide, pratique et modeste pour jQuery UiTab :

Pour créer les onglets avec cookie :

var $tabs = $("#tabs").tabs({ cookie: { expires: 30, name: 'nom_cookie' } });

Pour obtenir le dernier index selectionné par le cookie :

var cookie = $('#tabs').tabs('option', 'nom_cookie');

Pour obtenir l'indice de l'onglet selectionné :

var selected = $tabs.tabs('option', 'selected');

Pour obtenir l'indice d'un onglet par son nom (ancre) :

var indice_nom_onglet = $('#tabs div.ui-tabs-panel').index($('#nom_onglet'));

lundi 11 mai 2009

jQuery, ajax et prévention

Un petit pense bête pour moi-même qui peut servir à d'autres :

jQuery rend les requêtes Ajax enfantine, et on peut passer notre temps gagné à jouer un peu avec les en-têtes HTTP. Que faire quand le contenu récupéré ne correspond pas à ce que l'on souhaitait (erreur de base de donnée, 404,...). Par exemple, une session PHP suivie d'un certain temps d'inactivité et voila votre visiteur qui se retrouve avec un formulaire d'identification la où il ne devrait pas être... Il y a sûrement plus élégant, mais une redirection me paraît bien appropriée :

Le code javascript :

$.ajax(
       {
           method: "get",url: "index.php",data: "param="+valeurParam,
           beforeSend: function(){ $("#chargement").show();},
           complete: function(xmlHttp) { 
                       $("#chargement").hide(); 
                       if (xmlHttp.status == 204) 
                                  top.location.href = 'indentification.php'; 
           },
           success: function(html)  {
               $("#resultat").html(html);
               $("#resultat").show();
           }
       });

La partie PHP :

       // Si $_GET['param'] et pas de session :
       header("HTTP/1.0 204 No Content"); // true, 204);
       die();

Si la requête aboutie sur un code 204 , alors on redirige l'utilisateur vers le formulaire d'identification.