L'autre speed dating des alternatives par esperanzah blog - 6/7/2014

Je suis allé ce samedi à l'événement "L'Autre Speed Dating!" organisé, entre autre mais pas que, par le village des possibles de Esperanzah.

J'étais assez méfiant au début de la formule "speed dating" mais en fait ça s'est révélé très cool: en arrivant on marque une association et votre prénom sur un mini badge puis vous piochez 2 bouts de papiers dans un panier, un vous disant quoi faire (eg: demander à la personne de vous présenter quelqu'un qu'elle connait) et l'autre qui rencontrer (eg: quelqu'un de l'association X). Le résultat était très chouette, les gens chaleureux et dans le bon état d'esprit, ça a vraiment bien marché pour rencontrer du monde à qui je ne serai pas allé parler normalement Je ne suis pas convaincu que ça marcherait pour toutes les communautés (/me regarde les hackerspaces) mais c'est clairement une idée à reprendre.

La deuxième partie était en fait extrêmement proche d'un BarCamp, appelé un "Forum Libre" et présenté de manière très chouette et chaleureuse ("les gens avec qui vous êtes sont les bons gens"):

(Description simplifié, j'ai plus les règles à 100% en tête, mais c'était vraiment comme un BarCamp.)

J'étais à une table avec la question "Quel file rouge pour nous rassembler ?" qui était vraiment la question de "Pourquoi on devrait faire ça". Le débat était vraiment riche, toute la question est en fait de comment définir les gens de ces mouvements, autour de quelles valeurs les rassembler et c'est vraiment un exercice difficile tellement ces mouvements sont d'origines différentes et spontanées sans forcement une réflexion derrière autre que résoudre un problème local.

De mémoire, des pistes et partie de définition:

Puis ça s'est malheureusement arrêté là à cause du foot (90% des gens souhaitant le regarder), ça a pas mal brisé le rythme de l'événement, je suis resté dans un pièce d'en haut avec quelques rescapés mais c'était frustrant, l'événement n'ayant duré que 2h30, les gens commençaient à bien être chaud pour discuter de tout et n'importe quoi.

Des mouvements que j'ai découvert/rencontré:

Review: Garrett Smith - Why The Cool Kids Don't Use Erlang reviews - 5/7/2014

Garrett Smith - Why The Cool Kids Don't Use Erlang from Erlang Solutions on Vimeo.

In this talk Garrett try to explain why "cool kids" don't use Erlang (instead of Ruby for example). To do so he has made a short survey. He is talking to Erlang people while making this talk.

Questions of the survey (all are open questions):

Then more general questions to have an idea of who answered this survey (he didn't say to who he sent the survey).

He had 181 responses, most of the answers came from experienced and influential developers working in team.

Most of the answers are quite expected (hard to learn, people are fanatic about it, hard to find devs) but some of them are quite noticeable:

Additional informations:

I'm still a bit septic by the fact that to answer this question, the speaker asked the Erlang users instead of asking the "cool kids". And by a matter of fact, he didn't end up concluding with an answer to his question but more with a call for trying to fix this situation and pushing ideas.

Andrew godwin designing djangos migrations pycon 2014 reviews - 5/7/2014

A talk by the developper of the Django South migration explaining his work of integrating migrations directly in the core of Django 1.7 (unreleased right now).

Interesting informations:

This talk is quite short (20min of speach, 5 of Q&A) so there isn't that much informations but this give a good otherview of what to news migrations will be like and how it has been done.

Docker base image feedback blog - 29/6/2014

This post a more a less a "I've tested this, this worked and I use it that way" post since I know that some people that follows what I do are interested by this subject.

This is about a better base image (for ubuntu) for Docker that the official one. The official docker ubuntu image has a series of problem:

As promised by base-image, this image indeed solves all those issues and I've just got the impression of having a plain ubuntu server when using it.

I use this docker for 3 things: prototyping installation working/testing salt states in a clean environment * testing stuff that I don't want to install on my computer

Extract from my DockerFile which install salt minion:

FROM phusion/baseimage:0.9.11  # choose your version here (just pick the version number)
                               # https://github.com/phusion/baseimage-docker/blob/master/Changelog.md

MAINTAINER Bill Gates "bill.gates@microsoft.com"

ENV HOME /root
CMD ["/sbin/my_init"]

RUN sed 's/main$/main universe/' -i /etc/apt/sources.list
RUN sed 's/trusty universe/trusty universe multiverse/' -i /etc/apt/sources.list
RUN sed 's/trusty-updates universe/trusty universe multiverse/' -i /etc/apt/sources.lists

# install salt
RUN add-apt-repository -y ppa:saltstack/salt
RUN apt-get update

RUN mkdir /srv/salt -p
RUN mkdir /srv/pillar -p

# my custom renderer for salt because yaml/jinja has way too much overhead to write (https://github.com/Psycojoker/dawdaw)
RUN mkdir /srv/salt/_renderers -p
RUN curl "https://raw.githubusercontent.com/Psycojoker/dawdaw/master/dawdaw_template.py" > /srv/salt/_renderers/dawdaw_template.py
RUN salt-call --local saltutil.sync_renderers

RUN apt-get install -y vim python-software-properties salt-minion python-pip git zsh python-dev screen tmux

# I want to use zsh
RUN sed '1s/bash/zsh/' -i /etc/passwd

# change root password
RUN sed '1s#:[^:]\+:#:put your password string here:#' -i /etc/shadow

# add your stuff here

# clean stuff
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

I've also made 2 zsh function because I'm lazy and that I don't like to remember docker commands:

# my docker image is tagged/named 'proto'

# usage:
# start_proto
# or
# start_proto $SOME_DOCKER_IMAGE_IDENTIFIANT
# same for start_protoi

# start the container in daemon mod, you'll need to ssh to it after
# (general they have the ip 172.17.0.*, do a nmap -sP 172.17.0.* if you can't find it)
# (or a "docker ps" then "docker info $ID_TAKEN_FROM_PS" | grep IPAddress)
start_proto()
{
    docker run -t -d $([ "$1" ] && echo $1 || echo proto) /sbin/my_init
}

# start the container in interactive mode (you'll end up in zsh)
start_protoi()
{
    docker run -t -i $([ "$1" ] && echo $1 || echo proto) /sbin/my_init -- zsh -l
}

And my zsh completion script (I've just RTFM how to make them, it's super easy, I'm making one for everything now /o):

#compdef start_proto

_arguments "1: :($(docker images | awk '{print $1}' | sed '1d' | grep -v "<none>" | sort | uniq))"

And

#compdef start_protoi

_arguments "1: :($(docker images | awk '{print $1}' | sed '1d' | grep -v "<none>" | sort | uniq))"

You need to put them in a _start_proto and _start_protoi files somewhere on the path listed by "echo $fpath" (or extend this path: typically 'fpath=(~/.zsh/completion $fpath)' in your ~/.zshrc and make sure to have "autoload -U compinit" and "compinit" in your ~/.zshrc)

Release of dawdaw, a custom saltstack states renderer for extremly lazy python devs blog - 19/5/2014

I've just release dawdaw, a custom saltstack (a config management tool) states render for extremely python devs like me.

Here is an extract of the README:

Introduction

Dawdaw is an experiment to make a SaltStack custom renderer (the stuff that allows you to write your states in yaml/jinja2/mako/other) in an attempt to solve those problems:

Disadvantages: you move await from full declarative code (which you were already doing in fact with jinja2 templates) to go back to python code. This is, on one hand very powerful, on the other hand probably too powerful (and may be way less easy to understand for devops that don't come from a programming background). That works for me because I'm a python dev and I'm using this for my personal usages, but that might not fit your case.

Sample

Move from:

include:
  - dotfiles

wyrd-pkgs:
  pkg.installed:
    - name: wyrd
    - require:
      - sls: dotfiles

reminds.git:
  git.latest:
    - name: ssh://git@bitbucket.org/psycojoker/reminds.git
    - runas: psycojoker
    - target: /home/psycojoker/reminds/
    - require:
      - pkg: git

cd /home/psycojoker/reminds/ && bash init:
  cmd.run:
    - unless: ls /home/psycojoker/.reminders /home/psycojoker/.reminders.gcl
    - user: psycojoker
    - require:
      - git: reminds.git

To:

#!dawdaw_template

from dawdaw.states import pkg, git, cmd, include
from dawdaw.utils import default, test, debug

dotfiles = include("dotfiles")

with default(user="psycojoker", runas="psycojoker"):
    pkg.installed("wyrd",
                  require=[dotfiles.get("pkg", "dotfiles-pkgs")])
    git.latest("ssh://git@bitbucket.org/psycojoker/reminds.git",
               target="/home/psycojoker/reminds/")

    if not test("ls /home/psycojoker/.reminders /home/psycojoker/.reminders.gcl"):
        cmd.run("cd /home/psycojoker/reminds/ && bash init")

Read the rest on github.

Atom feed