PROJET AUTOBLOG


Sam & Max: Python, Django, Git et du cul

Site original : Sam & Max: Python, Django, Git et du cul

⇐ retour index

Bougez avec la poste… 13

mercredi 8 juillet 2015 à 18:04

On a décidé de commander quelques trucs pour bidouiller un raspberry PI sur un site américain.

Grâce au Tracking chez UPS on peut savoir où se balade notre colis.
C’est assez cocasse…

Apparement le colis est arrivé dans notre ville mais a du repartir à Paris pour enfin revenir demain ou…

Heureusement que c’est pas un bon Maroilles bien vieux.

laposte

Tester Python 3.5 beta 14

mercredi 8 juillet 2015 à 08:55

Python 3.5 est en phase beta, et c’est une release très (mais alors très très très) attendue.

Si vous ne voulez pas attendre et tester le bouzin de suite, il est facile de setup la bestiole sous linux :

Un exemple possible :

cd /tmp
sudo apt-get install python-dev gcc # ou yum install python-devel gcc
wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0b3.tgz
tar -xvf Python-3.5.0b3.tgz
cd Python-3.5.0b3
./configure
make
sudo make altinstall

Ne faites surtout PAS sudo make install, qui écraserait votre python principal.

Ensuite on lance :

$ python3.5
$ python3.5
Python 3.5.0b3 (default, Jul  5 2015, 23:52:07) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
  File "/home/sam/Scripts/pythonstartup.py", line 119, in 
    store = Store(os.path.join(TEMP_DIR, 'store.%s.db') % python_version)
  File "/home/sam/Scripts/pythonstartup.py", line 93, in __init__
    object.__setattr__(self, 'DICT', shelve.DbfilenameShelf(filename))
  File "/usr/local/lib/python3.5/shelve.py", line 227, in __init__
    Shelf.__init__(self, dbm.open(filename, flag), protocol, writeback)
  File "/usr/local/lib/python3.5/dbm/__init__.py", line 91, in open
    "available".format(result))
dbm.error: db type is dbm.gnu, but the module is not available
>>> import types
>>> print(':)')
:)
>>>

En dehors du vomi d’intro, tout marche chez moi.

Subreddit Sam et Max 9

dimanche 5 juillet 2015 à 13:49

Il manque un forum pour le blog, et une zone de discussion meta pour IndexError, un vecteur alternatif de propagation d’info à twitter…

On a tenté discourse, trop chiant.

Un vieux forum en PHP, meh.

Coder le truc nous même, trop long.

Ce n’est pas de l’info critique, on a pas besoin d’avoir la main dessus, et si demain on nous ferme on peut vivre avec.

On s’est chauffé à récupérer le code de reddit : python, libre, forum simple. Mais pourquoi se faire chier ? On a juste ouvert un subreddit Sam et Max.

C’est un complément au chan IRC (freenode.net#sametmax) pour discuter d’un peu tout en rapport avec le blog. J’y posterai aussi la plupart des liens que je poste sur twitter, car je sais que plein de gens n’aiment pas twitter.

Tout comme le blog et le compte twitter, ce sera NSFW. Souvenez-vous, les seuls trucs SFW qu’on a pour le moment sont 0bin.net et IndexError.net.

Pas encore de politique de modération précise ou de ligne éditoriale, donc on va affiner au fur et à mesure. Évitez évidemment de poster :

Oui vous pouvez poster des annonces de job. Oui vous pouvez poster un article cool sur une techno JS sympa. Le reddit est plus souple, si c’est pas du Python, c’est pas grave : y a un système de vote qui tuera votre post si tout le monde s’en branle.

Tous les contributeurs les plus actifs du blog, de IE et les modos officiels peuvent d’office demander les droits modo. Il suffit de faire la demande en commentaire dans la version reddit de ce post.

Le don du mois : sublime text 13

samedi 4 juillet 2015 à 14:20

Se faire plaisir et faire plaisir aux autres n’est pas incompatible.

Par exemple, quand Sublime Text est sorti j’ai pris un an avant d’acheter la licence. Là, j’ai sublime text 3 depuis à peu près la même période sur mon ordi, et je vais me payer la licence.

Pour moi, c’est une forme de don. En effet, l’auteur permet d’utiliser 100% de son logiciel pour toujours, et sans rien raquer. La seule chose, c’est que toutes les X sauvegardes, une pop up apparaît pour vous demander si vous voulez l’acheter. Vous pouvez ne jamais le faire. Beaucoup ne le font jamais.

Aujourd’hui, je vais faire sauter la pop up, et je remercie l’auteur pour me fournir un joujou que j’adore.

N’oubliez pas, si vous utilisez un IDE commercial (PyCharm, Komodo, etc), acheter la licence vous apporte des choses à vous, mais aussi, est un bon moyen de témoigner votre reconnaissance aux auteurs. Après tout, vous gagnez votre vie en partie grace à eux.

Si votre éditeur est gratuit, voire libre (je pense aux trolls de VI et Emacs qui frétillent dans les commentaires), pensez à faire un don à ces projets. Le fait qu’ils soient bien établis ne veut pas dire qu’il n’en ont pas besoin, bien au contraire.

Sublime n’est pas donné, et je paie de ma poche 70$, avec plaisir néanmoins, car cet outil les vaut largement.

Bref, la morale de ce mois, c’est que les donations ne sont pas uniquement pour les groupes à but non lucratif. Vous pouvez donnez à des boîtes, des administrations, des clodos dans la rue. Vous pouvez racheter un livre que vous avez déjà lu, offrir un morceau que vous avez déjà écouté. Le don n’a pas de forme propre, la seule condition étant l’intention.

A propos des attributs préfixés de deux underscores 2

vendredi 3 juillet 2015 à 10:18

En Python, il n’y a pas d’attributs privés au sens propre, uniquement une convention disant que tout ce qu’on préfixe d’un underscore ne fait pas partie de l’API publique.

Cette convention est tellement bien établie que les outils de génération de documentation et de complétion de code la prennent souvent en compte.

Ca fait partie de la philosophie du langage : tout est ouvert. Guido parle même d’open kimono, le petit coquin.

Pourtant il existe une fonctionnalité qui semble rendre un attribut privé, qui est d’utiliser un préfix de DEUX underscores :

class Yo(object):
    def __init__(self):
        self.__bitch = True
>>> Yo().__bitch
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-5-225402ba2794> in <module>()
----> 1 Yo().__bitch
 
AttributeError: 'Yo' object has no attribute '__bitch'

En fait, l’attribut n’a pas été rendu privé, mais son mécanisme de résolution de nom a été changé :

>>> Yo()._Yo__bitch
    True

C’est ce qu’on appelle le name mangling, et cette obscure fonctionnalité a été utilisée pour s’assurer qu’un attribut ne sera pas écrasé par erreur par une classe enfant.

L’attribut n’est pas privé, il est juste accessible autrement, c’est tout.