The Troll's factory

Geekeries & pensées
-->

Archive pour août, 2012

Google Docs : les alineas // paragraph first line indent

English readers: See English version at the bottom of the French one

 

 

Si vous cherchez sur Internet comment faire automatiquement des alineas dans Google Docs pour tous vos paragraphes, vous allez sûrement trouver plein de ressources qui vous disent d’aller éditer du CSS etc. … Non seulement la plupart des gens ne vont pas comprendre grand chose à ce qu’il sont en train de faire, mais en plus personnellement je n’ai jamais trouvé cette option !

Alors voici une vraie méthode qui marche et qui est simple :

Mettez le curseur sur un de vos paragraphe (le curseur d’écriture, pas juste votre pointeur)

Appliquer le style « Normal » à votre parapraphe en faisant : Format > Style de paragraphe > Normal > Appliquer le style

Ensuite, déplacez la petite barre bleu horizontale en haut de la règle vers la droite de la largeur de l’alinea que vous voulez (1cm par exemple):

Enfin, retournez dans les style de paragraphe mais cette fois choisissez « Mettre à jour », comme ceci : Format > Style de paragraphe > Normal > « Mettre à jour le texte Normal en fonction de »

Et hop ! Tous les paragraphes qui ont ce style auront dorénavant un alinea !

 

————————– English version ————————–

 

If you look on the Internet how to automatically have indentation on the first line of a paragraph in Google Docs, you will certainly find a lot of resources telling you to edit some CSS etc. … Not only most of the people will not understand what they are doing by doing that but I also never found this option, personally !

So here is a way to do it that works and is simple:

Place the cursor inside one of your parapraphs (the writing / keyboard cursor, not you mouse pointer!)

Apply the « Normal » paragraph style to your current paragraph by doing : Format > Paragraph styles > Normal > Apply

 

 

Them, move the small blue bar at the top of the rule to the right. Move it of how many cm you want for your indentation (1cm for instance):

Finally, go back in paragraph styles but this time choose the « Update to match » option: Format > Paragraph styles > Normal > Update Normal to match

And here you go! All your paragraph that have this style (which is the default one) will now be indented!

 

 

posté par Troll dans astuces avec 2 commentaires

Humour à la Google (Suggest) – La compil’

Google Suggest est vraiment un outil génial pour se détendre le dimanche.

À vrai dire, c’est la seule chose pour laquelle il est utile à mon goût mais passons, voici de quoi vous faire sourire même s’il pleut des cordes en plein été chez vous :

 

Je vais dans un premier temps prendre des requêtes en français. Ce qui signifie qu’à part les autres pays francophones, a priori, elles ont quand même majoritairement été tapées par des français… Eh bien, regardez-donc :

 

Bon, on a une sacrée réputation. On déteste les anglais et on est pessimistes. Encore, ca passe. En effet certains pays n’ont pas autant de chance que nous, quelques exemples :
allemands

Les allemands ont effectivement tué des juifs mais bon… Alors comme ça, il ne sauraient pas flirter ? En tant que geek, je leur pardonne :)

Les indiens eux, sont moches, et ont visiblement un autre cliché très fort, ils regardent au loin !
indiens

Quant aux italiens, ces racistes… (humour, hein)

On remarquera le passage des J.O et du foot récemment qui a un peu biaisé les statistiques de Google Suggest. Vous le verrez également dans d’autres exemples un peu plus loins.
italiens

Côté stéréotypes, les portugais ne sont pas gâtés :
portugais

 

Bon, il est évident que les populations du monde ne sont pas égales devant les suggestions de Google Suggest.

Vous allez voir que si on met la requête au féminin, les écarts sont encore plus flagrants !

Si certains pays sont plutôt gâtés :

 

bresiliennes
italiennes
indiennes

 

D’autres le sont carrément moins :

anglaises
allemandes
portugaises

Tandis que d’autres intriguent par leurs qualités exceptionnelles :

les-francaises
Les Françaises de grossissent pas… j’en connais pas mal qui aimeraient bien que Google ait raison.

Les Françaises aiment les noirs ! Merde, suis fichu… Vais aller vivre au japon tiens, puisqu’elles vieillissent pas là-bas :

 

japonaises

Les Japonaises, elles, ont toutes les qualités, en plus de ne pas grossirent elles ne vieillissent pas ! Par contre, elles auraient hérité des cowboys, étrange tout ça…

 

Pour certains pays, on s’inquiètera (ou on se ravira) du fait que même les requêtes en anglais disent la même chose :
british-women

C’est définitifs, les Anglaises sont classées « moches ».

french-2

Et les Françaises définitivement « minces ».

spanish-women

 Les espagnoles, elles, qui n’avaient aucune suggestion en Français, sont plutôt appréciées par les anglophones.

Allez, maintenant, je vous offre un gros packer cadeau de stéréotypes en tout genre, certains prévus d’avance mais d’autres bien marrants car louffoques et inattendus :

amazoniens

Le peuples des « Amazoniens », vous connaissez, vous ?

australiens

Ben oui, c’est vrai ça, ils sont de l’autre côté de la Terre après tout…

brazilians

Bon, le jour où je travaille avec des Brésiliens je mets la réunion 30 minute plus tôt.

chinois

Mais c’est dégueuuuuu !

espagnols

Les espagnols se sont révoltés contre les Français ? What !?

french

Damn, c’est pas vrai !

hollandais

C’est vrai qu’ils sont pas petits …

australians

En raison du climat peut-etre ?

indians

Avis partagés pour nos amis asiatiques on dirait.

spanish

Damn, ils pas l’air appréciés nos amis Espagnols.

tunisiens

Tiens, peut-être parce-quelle sont rares, au Maghreb, non ?

Bon, mais ne désespérez par car en fait personne n’a de suggestion sympa sur Google Suggest, pas même Google lui-même :

pourquoi-google

Ni les concurrents d’ailleurs :

pourquoi-microsoft

Bon, en même temps Microsoft, ils l’ont un peu cherché hein…

 

Bon, maintenant qu’on a vexé tout le monde, on va passer sur des requêtes un peu plus « impersonnelles » pour oublier tout ça :
philosophie

Philosophie, quand tu nous tiens…

pourquoiil
pourquoiils
pourquoije
pourquoiles
pourquoinous
pourquoi-s
pourquoitu
pourquoi-u
pourquoivous
pourquoielle
Bon ça fait ressortir quelques complexes tout ça…

Et pour finir, toujours un grand plaisir, les relations humaines :

ma-copine
ma-femme

Je suis particulèrement fier de ma trouvaille pour celle-ci : « Ma femme s’appelle reviens ». Vraiment. Une pépite.

Pour, hey, on dirait pas que je suis pas équitable, voici les mêmes pour le genre opposé :

mon-copain
mon-mari

Ce qui est marrant ici, c’est que si on compare avec les suggestions en anglais on a une différence assez marquée. Les requêtes au féminin font majoritairement ressortir des noms de bouquins / films tandis que que celles au masculins sont plus proches des résultats francophones :
wife
girlfriend
husband
boyfriend

J’aime particulièrement cette dernière : « Mon copain a écrit un livre sur moi ». Allez, on finira sur cet instant poétique.
Si vous en avez de meilleurs, postez-les dans les commentaires et je les ajouterai ! Bon dimanche !

posté par Troll dans Geekeries,humour avec aucun commentaire

PHP: USE concatenation NOT multiple echo / parameters

Print vs. Echo

I just went accross an interesting article about which of « print » or « echo » we should use in PHP.

The author has benchmarked the two solutions (though the data are certainly a bit old) shows that, although there is not much difference between the two, echo seems to be more efficient.

Great, I believe you.

Echo multiple statements / arguments vs. Concatenation

But at the end of the article, the author also suggest to use multiple parameters given to one echo statement instead of concatenation because concatenation is slow… bla bla…

As I have always been using concatenation (did not even know echo could take multiple arguments) and I never had any performance issue, I decided to check that and make a benchmark: echo 100,000 times two concatenated strings and do the same thing with two parameters and two echos statements…

The benchmark was clear: concatenation IS FASTER than the two other solutions.

String caching? Making a more relevant benchmark

As it appeared a bit weird to me, having been doing Java / C# mostly recently (with their slow concatenation that recreated a new object blabla), I thought « maybe the PHP VM is caching the result of the concatenated string, thus the benchmark is not relevant ».

OK, let’s check with a counter-possible-caching benchmark then:


$t0 = microtime(true);

define("MAX", 2000000);
File_put_ConTents("echobench._log", "");
function _log($str)
{
	File_put_ConTents("echobench._log", file_get_contents("echobench._log") . $str);
}

// Generating a bunch of string to concatenate to avoid PHP VM-caching
$strs = array();
for ($i=0; $i < MAX+1; $i++) { 
	$m = mt_rand(0, 200);
	$strs[$i] = '';
	for ($j=0; $j < $m; $j++) { 
		$strs[$i] .= chr(mt_rand(0, 255));
	}
}

// Loop where string concatenation caching is possible :
$t1 = microtime(true);
for ($i=0; $i < MAX; $i++) { 
	echo "Hello" . "World! 
"; } $t2 = microtime(true); _log("Concatenation, cached: " . ($t2-$t1) . "s\n"); // Loop where is is not : $t1 = microtime(true); for ($i=0; $i < MAX; $i++) { echo $strs[$i] . $strs[$i + 1]; } $t2 = microtime(true); _log("Concatenation, not cached: " . ($t2-$t1) . "s\n"); // Other ways to display stuff, with and without caching possible each time: $t1 = microtime(true); for ($i=0; $i < MAX; $i++) { echo $strs[$i]; echo $strs[$i + 1]; } $t2 = microtime(true); _log("Two echos, not cached: " . ($t2-$t1) . "s\n"); $t1 = microtime(true); for ($i=0; $i < MAX; $i++) { echo "Hello" , "
"; echo "World" , "
"; } $t2 = microtime(true); _log("Two echos, cached: " . ($t2-$t1) . "s\n"); $t1 = microtime(true); for ($i=0; $i < MAX; $i++) { echo $strs[$i], $strs[$i + 1];; } $t2 = microtime(true); _log("Two parameters, not cached: " . ($t2-$t1) . "s\n"); $t1 = microtime(true); for ($i=0; $i < MAX; $i++) { echo "Hello" , "World!" , "
"; } $t2 = microtime(true); _log("Two parameters, cached: " . ($t2-$t1) . "s\n"); $t3 = microtime(true); _log("Total benchmark time: " . ($t3-$t0)."\n");

I generated random strings at the beginning of the script. And I concatenate them after, in the loop. Thus, there is not even once the same concatenation happening, thus, no possible caching or whatever.

The benchmarked has been run on a 1.6GHz Atom processor, with the following command:

sudo nice -n -19 php -q echobanchmark.php > /dev/null

So the process was the most prioritized one on the OS and then there is no reason for any interference between the loops (moreover, the system was idle during the test (and there are 3 other virtual processors for doing whatever work the OS would need to do).

And do you know the result?

Here it goes:

Concatenation, cached: 7.4381861686707s
Concatenation, not cached: 9.9010219573975s
Two echos, not cached: 10.4353120327s
Two echos, cached: 14.883654117584s
Two parameters, not cached: 10.179102897644s
Two parameters, cached: 11.904446840286s
Total benchmark time: 928.97792601585

Conclusion: Concatenation is fast, very fast. It is rougly 30% faster than using the two parameters for echo (26.9268987% exactly) and roughly 30% faster than two echo statements as well (28.720999% exactly) and

The other conclusion here is that PHP does not seem to be caching strings very well. Both the two-parameters and two-statements echo loops are much slower when using a fresh new string and much faster when using something from the previously generated array. The difference between cached / non-cached loop for the concatenation loop is also not that impressive if we observe that my « not cached » loop is using strings of random length that can go until 200 chars whereas the « cached » one is a very short string (so the difference of 2 seconds is certainly also due to the difference in length of the strings).

If you have any suggestion to improve the benchmark, feel free to post a comment.

posté par Troll dans PHP,Scripts, astuces, dév. web avec aucun commentaire