Running containers with Docker

Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.

This post describes how to run Docker machines with the help of Boot2Docker.

Continue reading “Running containers with Docker”

Planning a Cluster for Hadoop BigData

This post is about how to plan, for the first time, a cluster for Apache Hadoop and HBase. Hadoop, together with its friends, enable us to elaborate a large amount of data in a cheaply way: by large I mean data large about 100 gigabytes and above.

Hadoop implements the MapReduce framework, that is a way to take a query (or Job) over a dataset, divide it in several queries (or Tasks), and the run these queries in parallel over multiple node of a cluster. Nothing new until now, this looks like the divide-et-impera paradigm: the innovation lies in the fact that the cluster node that is in charge of executing a task has already the data on which process the query. So we are not moving data in order to elaborate them, but we’re assigning task on the right cluster node that already has the data!

Continue reading “Planning a Cluster for Hadoop BigData”

A GIT branching model for medium-size companies

This article explains how a medium size company, which has several teams, can adopt GIT for the source code management. As a software configuration management, GIT serves two different functions. The first one is the management support for controlling changes to software products, and the second one is merely development support for coordinating file changes among product developers. In particular here I want to talk about the branching model.
Continue reading “A GIT branching model for medium-size companies”

GIT explained for Subversion users

This guide shows the most common procedures usually performed by SVN users, but using GIT.
Why this guide should be better than the others already on-line? There isn't a particular reason ;) . I'm now a SVN user and I'm just migrating to GIT, so I'm going to find a way to perform with GIT all the operations that I usually do with Subversion: this will be useful for Subversion users who want to start using GIT quickly.

Continue reading “GIT explained for Subversion users”

ISDN Technology

Integrated Services Digital Network, o ISDN, è una rete digitale che dà supporto a molti servizi di voce e dati. La definizione tecnica dell’ISDN, che investe diverse componenti delle reti, risale alle raccomandazioni ITU-T della serie I del 1984 e comprende numerose altre pubblicazioni dello stesso ITU-T e dell’ETSI (European Telecommunications Standard Institute) fatte negli anni successivi.
Continue reading “ISDN Technology”

Very brief introduction to Regular Expressions

Le espressioni regolari sono utili per descrivere la validità di valori, come ad esempio valori di attributi, dati caratteri, e qualsiasi tipo di valore esprimibile con un certo alfabeto.

Il concetto di espressione regolare è un formalismo importante utilizzato, in varie forme, in svariate applicazioni… ad esempio nei linguaggi di schema (come DTD di XML) per descrivere sequenze di elementi o caratteri. I linguaggi regolari sono utilizzati in molte altre aree dell’informatica oltre a XML, dall’elaborazione del testo e del linguaggio naturale alla verifica formale dei componenti hardware.

Potrebbe essere necessario, ad esempio, vincolare un valore ‘data’ in modo tale da rispettare il formato dd-mm-yyyy, ovvero sia composto da due cifre per il giorno, seguite da due per il mese e quattro per l’anno, tutto separato da un segno meno “-”. Alternativamente possiamo specificare che un certo valore deve essere un numero intero.

Chiamiamo Σ un alfabeto consistente in un insieme di atomi, che tipicamente sono caratteri Unicode o nomi di elementi. Un’espressione regolare su Σ è costruita in base alle seguenti regole:

Continue reading “Very brief introduction to Regular Expressions”

Tuning Ubuntu Linux 9.04

Sulla rete ci sono parecchie guide sul come fare il tuning di ubuntu (cioè come alleggerire ubuntu) ma ho deciso di raggruppare il tutto in questa guida.

Ubuntu Linux è una distribuzione piuttosto semplice da usare ma ma stabile, poiché basata su debian, tuttavia ubuntu di default ha molti pacchetti e servizi che si possono tranquillamente disabilitare o adattare secondo le proprie esigenze, così facendo guadagneremo in spazio sull’hdd e qualche mb di ram, questo significa avere un sistema operativo più snello e più reattivo.

La presente guida è valida per la maggior parte degli utenti, ma ovviamente informatevi prima se un servizio\pacchetto non vi serve davvero… ad esempio chi possiede una stampante HP non dovrebbe disabilitare i relativi servizi per la sua gestione :-P

Continue reading “Tuning Ubuntu Linux 9.04”

Windows-Linux commands cheat-sheet

In un sistema operativo, una shell (o terminale) è un programma che permette agli utenti di comunicare con il sistema e di avviare altri programmi. È una delle componenti principali di un sistema operativo, insieme al kernel. La shell è l’ambiente di lavoro attraverso il quale è possibile impartire al computer comandi, richiedendo l’esecuzione di programmi.
Esistono molti tipi di shell; quando si parla semplicemente di “shell”, o anche di “terminale”, si intende di solito una shell testuale con cui l’utente interagisce attraverso un terminale o un emulatore di terminale.
Continue reading “Windows-Linux commands cheat-sheet”

Installation guide of Windows Server 2003

Successore di Windows 2000, Microsoft Windows Server 2003 (Nome in codice Whistler Server, o anche Windows NT 5.2 o ancora Windows .NET Server) (2003) è una tappa della evoluzione della serie server dei sistemi operativi di Microsoft. Il lancio è avvenuto il 24 aprile 2003.
Windows Server 2003 è basato sulla provata stabilità di Windows 2000 Server e la compatibilità con altre caratteristiche di Windows XP.

Questa guida all’installazione e configurazione di Windows Server 2003 è rivolta ai sistemisti alle prime armi, oppure a chi vuole costrure il proprio server a casa :)
Sarà copera la parte della configurazione Hardware di un buon server; successivamente sarà indicato come configurare il Windows Server 2003 appena dopo l’installazione

Continue reading “Installation guide of Windows Server 2003”