Adaptation française d'une présentation sur le "Lean Code"

20/01/2012

Cet atelier a pour but de reproduire en 1 heure les mêmes problèmes que peuvent avoir des projets sur plusieurs mois. Il permet de se remettre en question sur beaucoup de sujet : outils de contrôle de version, tests unitaires, utilisation des specifications/tests d'acceptance. J'ai découvert cette présentation lors de mon stage à TIM Group. La trouvant vraiment intérressante, je l'ai traduite en français et pratiqué au ClubCode de Télécom SudParis.

Pour permettre un démarrage rapide, des bases en différents langages sont disponibles sur github.

Version anglaise : http://chrismdp.github.com/2011/05/lean-code-slides-and-feedback/

FreeRADIUS: REST backend

21/12/2011

An experiment with FreeRADIUS (on github). For each request, radius makes a HTTP GET on a webserver which answers a bit of json. With this backend, you are free in your choice of database. You don’t have to change radius code, just write a little webserver.

require 'sinatra'

get '/base/authenticate' do
  content_type "application/json"

  # mac address = params["mac"]
  # login = params["login"]

  '{"password" : "some NTLM password", "vlan" : "a vlan number"}'
end

Bind9: REST backend (using JSON)

21/11/2011

An experiment with Bind (on github). For each lookup, bind makes a HTTP GET on a webserver which answers a bit of json. With this backend, you are free in your choice of database. You don’t have to change bind code, just write a little webserver.

require 'sinatra'

db = {
  "www" => "192.168.0.105",
  "ns1" => "192.168.0.55",
  "ns2" => "192.168.0.54"
}

get '/example.com/lookup' do
  content_type "application/json"

  name = params["name"]

  return '{"type" : "NS", "field" : "ns1.example.com."}' if name == "@"
  return '{}' unless db.has_key?(name)

  '{"type" : "A", "field" : "#{db[name]}"}'
end

get '/example.com/authority' do
  content_type "application/json"

  '{
      "data" : [
          {
              "type" : "SOA",
              "field" : [
                  "ns1.example.com.",
                  "dns.example.com.",
                  2010122701
              ]
          },
          {
              "type" : "NS",
              "field" : "ns1.example.com."
          },
          {
              "type" : "NS",
              "field" : "ns2.example.com."
          }
      ]
  }'
end