PROJET AUTOBLOG


Sam et Max

source: Sam et Max

⇐ retour index

Moi de septembre off

jeudi 29 août 2013 à 18:07

Ce mois de septembre, je ne serai pas sur le blog.

Je vous laisserai donc avec Max.

flattr this!

Connaissez vous l’objet slice en Python ?

mardi 27 août 2013 à 09:56

Python, le langage sans fond. Arriverai-je à n’avoir plus jamais d’article à écrire un jour ?

Tenez, hier, j’étais en train de lire un blog sur le Web, le bourrelet paresseusement calé entre mon dossier et la table, quand soudain, boum !

Je tombe sur ça :

>>> slice
<type 'slice'>

Aucun import. Rien.

Attend, il y a un type built-in slice en Python ? What the actual fucking fuck ?

Alors je testouille un truc, y croyant vaguement :

>>> lst = ['a', 'b', 'c', 'd']
>>> lst[1:3]
[u'b', u'c']
>>> lst[slice(1,3)]
[u'b', u'c']

Donc plutôt que de se trimbaler avec des tuples de valeurs dont il faudra tester ou imposer la taille. Plutôt que d’attendre en paramètre uniquement des entiers positionnels ou forcer le passage de None, on peut aussi tout simplement passer un slice à vos fonctions qui font du slicing.

Ça veut dire des objets slices en valeurs par défaut.

Ça veut dire des objets slices dans les mapping, les iterables, etc.

Un seul regret :

>>> from itertools import islice
>>> islice(lst, slice)
Traceback (most recent call last):
  File "<ipython-input-5-7eb2c7533070>", line 1, in <module>
    islice(lst, slice(1,3))
ValueError: Stop argument for islice() must be None or an integer: 0 <= x <= maxint.

Et ça c’est vraiment con.

flattr this!

Style CSS du blog pour les créatures nocturnes

lundi 26 août 2013 à 21:07

Ceci est un post invité de cactus posté sous licence creative common 3.0 unported.

Comme tout bon codeur, je travaille la nuit ou alors la journée mais seulement avec les volets fermés.
Et si y’a bien un défaut avec ce blog, c’est qu’il arrache la rétine à la pince anglaise !
Du coup, de mes petits doigts agiles et gracieux je me suis bricolé un petit CSS maison pour ne plus pleurer chaque fois que j’ai besoin de relire un des articles, en rendant le site ténébreux plus qu’un gothique un soir sans lune !
Comme vous pouvez le constater, la différence est flagrante :

Le Paradis domine l'Enfer !

S&M : comparaison entre sans et avec thème

Pour l’appliquer, j’utilise l’extension Stylish de mon navigateur (l’addon est disponible pour tous les navigateurs populaires).
Voici donc le style :

@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document domain("sametmax.com") {
	body {
		background: none !important;
		background-color: black !important;
		color: white !important;
	} code, pre, blockquote {
		background-color : #101010 !important;
		color : white !important;
	} #slogan {
		color: white !important;
	} a {
		color: grey !important;
	} #header ul li {
		color: white !important;
		background-color: #101010 !important;
	} ul.nav li:hover a {
		background-color: #202020 !important;
	} #header ul {
		background-color: black !important;
	} * {
		text-shadow: none !important;
	}
}

Pour pousser un peu plus loin il y a le problème de la coloration syntaxique. En effet, le style est codé directement dans les balises html, qui ne sont pas modifiées par le CSS, et la coloration syntaxique foire parfois. Du coup pour ceux qui veulent se montrer tatillons, il faut utiliser un petit script (à intégrer par exemple à GreaseMonkey) pour modifier la coloration syntaxique.
Voilà le script :

// ==UserScript==
// @name        Sam&Max - Litlle Color Fix
// @namespace   sametmax.com
// @description Fix a color bug for code coloring on sametmax.com with Stylish "Darker" theme
// @include     http://sametmax.com/*
// @version     1
var spans = document.getElementsByTagName("span");
console.info(spans.length + " spans trouvés by GreaseMonkey/Sam&Max - Little Color Fix");
var white = 0;
for (var i=0; i < spans.length; i++) {
	if (spans[i].style.color == "black" || spans[i].style.color == "#000000" || spans[i].style.color == "rgb(0, 0, 0)") {
		spans[i].style.color = "white";
		white++;
	}
	if (spans[i].style.color == "#000000") {
		spans[i].style.color = "blue";
	}
}
console.info(white + " spans colorisés by GreaseMonkey/Sam&Max - Little Color Fix");
// ==/UserScript==

Enfin, pour ceux qui se plaignent qu’il y ait du cul dans les articles de SM, un petit Stylish pour enlever les images :

@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document domain("sametmax.com") {
	.wp-caption, .wp-post-image {visibility: hidden !important;}
}

flattr this!

Échange de liens, article publicitaire et autres requêtes marketing

lundi 26 août 2013 à 17:19

On reçoit parfois des mails de ce genre :

Subject: Parler de notre site

Message Body:
Bonjour,

Nous aimerions parler de notre site [censored] sur http://sametmax.com/, est-ce envisageable ? De notre coté on peut publier un article sur ton site, en parler sur notre page facebook (380,000 fans), ou autre. Qu’en penses tu ?

Cordialement,

La réponse est non.

flattr this!

Demande d’aide via le formulaire de contact

dimanche 25 août 2013 à 18:55

On reçoit de plus en plus de demandes d’aide via le formulaire de contact, et à chaque fois on y a répondu autant que possible, mais en y ajoutant le commentaire suivant :

Les mails ne sont pas un bon moyen de chercher de l’aide.

D’abord, cela prend beaucoup de temps pour nous de lire, résoudre et répondre à votre problématique.

Ensuite, c’est du un par un, et personne d’autre que vous ne profite de la réponse. A moins qu’on prenne ENCORE plus de temps pour faire un résumé sur le blog.

Et puis il y a le formatage du mail qui est à chier pour le code, le fait que l’historique soit moins clair que sur d’autres support, le fait qu’on ne bénéficie pas de l’aide en commentaires (car oui, nos lecteurs nous aident).

Mais surtout…

il y a d’autres endroits pour ça

Honnêtement, si vous ne trouvez pas ce que vous cherchez sur ces supports, il y a peu de chance que nous ayons la réponse de toute façon.

Alors je sais, le forum de Django-fr a un design des années 90, et celui de l’afpy est la négation même de l’ergonomie. On a plusieurs fois réfléchi à ouvrir une sorte de forum nous-même, mais on a mis en stand by. Manque de courage.

Bref, le formulaire de contact, gardez-le pour : les questions non techniques, les compliments et insultes, les signalements et partages, les demandes d’article, etc.

Une SEULE exception :

Envoyez nous les scripts que vous ne pigez pas.

flattr this!