Skip to content

Instantly share code, notes, and snippets.

💭
😏

Pietro Di Bello xpepper

💭
😏
Block or report user

Report or block xpepper

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@xpepper
xpepper / spike.md
Last active Aug 29, 2015
A spike on using postgresql's HSTORE to store metadata
View spike.md

A spike on using postgresql's HSTORE to store metadata on the Cover model (Exmu project)

These are the migration to start with.

The first one activate the extension HSTORE and adds an hstore column 'metadata' on the covers table

class AddMetadataToCovers < ActiveRecord::Migration
  def change
    execute 'CREATE EXTENSION hstore'
    add_column :covers, :metadata, :hstore
@xpepper
xpepper / image_asset.rb
Created Feb 8, 2014
An alternative solution to fetch extra data from elasticseach after finding a record from the db
View image_asset.rb
class ImageAsset < ActiveRecord::Base
include Flex::ModelIndexer
flex.sync self
#...
after_find :fetch_extra_data_from_elasticsearch
def fetch_extra_data_from_elasticsearch
self.searchable ||= Flex.get(id: id, type: self.class.name.underscore)['_source']
@xpepper
xpepper / Whiteboard Cleaner Script.md
Last active Aug 29, 2015 — forked from lelandbatey/whiteboardCleaner.md
Take a picture of a whiteboard and use parts of the ImageMagick library with sane defaults to clean it up tremendously
View Whiteboard Cleaner Script.md

Description

This simple script will take a picture of a whiteboard and use parts of the ImageMagick library with sane defaults to clean it up tremendously.

The script is here:

#!/bin/bash
convert "$1" -morphology Convolve DoG:15,100,0 -negate -normalize -blur 0x1 -channel RBG -level 60%,91%,0.1 "$2"

Results

View test_induced_design_damage.rb
# Original Rails controller and action
class EmployeesController < ApplicationController
def create
@employee = Employee.new(employee_params)
if @employee.save
redirect_to @employee, notice: "Employee #{@employee.name} created"
else
render :new
end
@xpepper
xpepper / Agile Coach definition (italian).md
Last active Aug 29, 2015
From the ExtremeProgramming-IT forum: "Chi è il coach agile?" (italian)
View Agile Coach definition (italian).md

(from https://it.groups.yahoo.com/neo/groups/extremeprogramming-it/conversations/topics/11233)

Matteo Vaccari

Sono d'accordissimo che la competenza tecnica è fondamentale. Ma non è tutto; lo sviluppo software è un esercizio sociale e non è per niente scontato che mettere delle persone insieme produca la collaborazione desiderata. Anche se le persone sono bravissime tecnicamente. C'è dell'altro. Ci sono delle competenze specifiche che hanno a che fare con la collaborazione; ci sono delle skill che hanno a che fare con capire come interagire con le persone e capire come aiutare le persone a fare il prossimo passo. Bisogna studiarle. [...]

Quindi che cos'è un coach agile? Ci sono aziende che vogliono migliorare e si rendono conto di non riuscire a fare il passo completamente da soli. Il coach agile interviene lì. Qualche volta quello che faccio è consigliare una tecnica di programmazione, qualche volta spiego come funziona il planning game, qualche volta conduco una retrospettiva, qualche volta ascolt

@xpepper
xpepper / [xp-it] Il ruolo di Scrum Master e' un enorme spreco di potenziale umano.md
Last active Aug 29, 2015
Il ruolo di Scrum Master è un enorme spreco di potenziale umano (italian discussion on the xp-it newsgroup)
View [xp-it] Il ruolo di Scrum Master e' un enorme spreco di potenziale umano.md

Paolo Perrotta:

Eppure XP "funziona", nel senso che migliora il modo di lavorare delle persone. E Scrum "funziona", nel senso che convince il manager intontito dalle puttanate che ha studiato (o più probabilmente da quelle che non ha studiato) a cambiare approccio, costruire team di persone invece che accozzaglie di risorse allocate al 25%, mettere insieme un backlog anziché arrancare dietro al già accaduto, focalizzarsi sul timebox anziché sul timesheet, eccetera. Se vi sembra poco, siete stati più fortunati di me.

Andrea Tomasini:

Scrum è stato uno dei primi approcci "Lightweight" documentati, è come tutti gli altri che hanno seguito sotto l'ombrello Agile aveva ed ha ancora oggi l'obiettivo principale di installare una "nuova" cultura del lavoro basata su rispetto, collaborazione, auto organizzazione e focus. In un contesto di cambio culturale, seguire alcune pratiche è un modo per realizzare quei pattern comportamentali che producono la cultura che si vuole raggiungere. Non è però l'unico modo

@xpepper
xpepper / Jenkins top slowest tests.md
Last active Aug 29, 2015
A shell script to extract from Jenkins the top slowest tests
View Jenkins top slowest tests.md

Just connect to your Jenkins instance, localize the junit tests report folder (e.g. /data/jenkins/jobs/Jeronimo/workspace/Repository/target/surefire-reports) and then issue this shell command:

grep -h "<testcase" `find . -iname "TEST-*.xml"` | sed 's/<testcase name="\(.*\)" classname="\(.*\)" time="\(.*\)".*/\3\t\2.\1/' | sort -rn | head
@xpepper
xpepper / Liftoff.notes.md
Last active Aug 29, 2015
Notes on Liftoff taken while reading "Liftoff: Launching Agile Teams & Projects"
View Liftoff.notes.md

Liftoff notes

These notes are taken while reading "Liftoff: Launching Agile Teams & Projects".

Introduction

When projects start, a liftoff generates the momentum team need to overcome the inertia presented by lack of common purpose, unclear communication channels, undefined working relationships, and other areas of ambiguity.
A liftoff also provides the positive force that moves a project toward its destination's successful delivery.

A great proportion of the issues teams wrestle with can be traced back to a lack of clarity and alignment from early days of the project: miscommunications, unexamined assumptions, and misperceptions create an environment in which people make decisions and take actions that unintentionally work at cross-purposes and undermine overall progress.

View i metodi agili.md

Il punto centrale dei metodi agili è la massimizzazione del valore consegnato nell'unità di tempo. E' la continua ricerca di questo obbiettivo.

I valori assieme contribuiscono a questo obbiettivo

  • feedback per sapere continuamente dove si è rispetto a dove si vuole andare
  • coraggio per lasciare perdere le funzionalità inutili anche se "fighe" e per non aver paura di stabilire un rapporto di mutuo beneficio con il cliente (nei processi tradizionali invece di solito il rapporto è un rapporto di conflitto e "io vinco e tu perdi").
  • semplicità per evitare fronzoli e portare avanti il minimo insieme di feature che realizza le aspettative del cliente, senza pretendere di fare un grande disegno di come sarà tutto il sistema (salvo poi buttarlo perché sconfessato dall'evoluzione delle cose)
  • comunicazione perché la causa principale del fallimento di un progetto software è proprio un difetto di comunicazione tra le parti: all'interno del team, tra team e cliente, etc.

Poi cardine dei metodi agili

You can’t perform that action at this time.