Chromium updater

21 agosto 2009 - Fonte: http://fripp.wordpress.com

Per passatempo ho scritto in questi giorni un piccolissimo script python che controlla se esiste una nuova versione per il browser Chromium per Mac OS X; in tal caso scarica il file .zip da http://build.chromium.org/buildbot/snapshots/chromium-rel-mac, lo scompatta e salva l’applicazione Chromium.app sul Desktop, in modo che successivamente l’utente possa copiarla dove meglio crede.

Ecco il codice


#!/usr/bin/env python
'''
Created on 18/ago/2009

@author: feanor
'''
import urllib
import string
import shelve
import os
import sys
import shutil
import commands

class...

Leggi il seguito »

Programmazione di classi singleton in Java

1 aprile 2009 - Fonte: http://fripp.wordpress.com

“Il Singleton è un design pattern che ha lo scopo di garantire che di una determinata classe venga creata una e una sola istanza, e di fornire un punto di accesso globale a tale istanza.” (fonte Wikipedia).

Qui riporto la soluzione al problema proposta da Bill Pugh.

La struttura della classe Singleton è molto semplice e sfrutta alcune peculiarità del linguaggio Java. Ecco il codice:


class Prova {
	protected Prova() {

	}

	private static class ProvaHolder {
		private final static Prova INSTANCE = new Prova();
	}

	public static Prova getInstance() {
		return ProvaHolder.INSTANCE;
	}
}

Il costruttore della classe è definito protected e questo...

Leggi il seguito »

Le piccole soddisfazioni della vita

4 gennaio 2009 - Fonte: http://fripp.wordpress.com


#!/bin/sh
var=echo -n $(dpkg -l|grep 'xserver-xorg-video'|awk '{print $2}')
apt-get remove --purge $(for i in $var; do tmp=$(echo $i|grep 'intel'); if [[ -z "$tmp" ]]; then echo $i; fi; done)
       ...

Leggi il seguito »

VirtualBox(R) Images: statistiche annuali

1 gennaio 2009 - Fonte: http://fripp.wordpress.com

Dopo un anno di esistenza del progetto VirtualBox(R) Images, fondato da Emanuele Cipolla e portato avanti anche da me, mi piace tirare le somme di questa interessante esperienza.

Il progetto nacque nel gennaio del 2008 e dopo un anno ha raggiunto dei livelli di successo davvero inaspettati, forse perchè siamo stati i primi ad offire un servizio del genere per la piattaforma di virtualizzazione VirtualBox(R) o forse perchè abbiamo fatto un buon lavoro (o forse abbiamo avuto solo culo :D ).

All’inizio il progetto forniva immagini di poche distro di Linux (Debian, Slackware, OpenSUSE); oggi le distribuzioni di Linux son ben 23, dalla piccola Damn Small Linux alla...

Leggi il seguito »

VirtualBox® Images: che successo!

1 novembre 2008 - Fonte: http://fripp.wordpress.com

Arrivato alla fine di ogni mese mi piace guardare le statistiche del progetto VirtualBox® Images, che porto avanti da qualche mese insieme all’amico Emanuele.

Il numero di visite al sito del progetto è aumentato in maniera considerevole rispetto agli inizi, come si evince da questo grafico

Nel mese di ottobre abbiamo ricevuto ben 26141 visite, 5300 in più rispetto al mese di settembre. Un successo davvero notevole, che va ben...

Leggi il seguito »

Performance di alcuni linguaggi di programmazione

14 luglio 2008 - Fonte: http://fripp.wordpress.com

Non avendo nulla di meglio da fare, mi son messo a valutare le performance di esecuzione dei linguaggi che conosco nella risoluzione del “Problema di Flavio Giuseppe”, la cui soluzione vi permetterà di salvarvi nel caso abbiate deciso all’ultimo minuto di salvarvi da un suicidio di massa (leggete prima in cosa consiste il problema per capire la battutaccia ) ).

Ho testato le prestazioni di C, Java, Python, Ruby, C# usando per tutti le stesse condizioni:

  • 100000 iterazioni
  • risoluzione, ad ogni iterazione, del problema che dovette affrontare Flavio Giuseppe in persona: 40 partecipanti al suicidio...

    Leggi il seguito »

registerimage 1.0.3

10 luglio 2008 - Fonte: http://fripp.wordpress.com

Ho completamente riscritto in Python registerimage, la mia applicazioncina per registrare le immagini virtuali preconfezionate del progetto VirtualBox Images.

Ho deciso di usare Python per vari motivi:

  • per imparare un nuovo linguaggio;
  • per aumentare la portabilità;
  • per realizzare un’applicazione self-contained;

Questa nuova versione di registerimage non usa alcuna libreria esterna, ma solo moduli nativi della Python Standard Library; non uso più la libxml2 per fare il parsing dei file .xml, ma uso il modulo built-in xml.dom.minidom.

Ho semplificato pure l’interfaccia del programma; questa nuova versione prende sempre due argomenti...

Leggi il seguito »

Come ordinare e “ripulire” una wordlist gigante

22 giugno 2008 - Fonte: http://fripp.wordpress.com

In questi giorni ho contribuito ad aumentare la temperatura della mia stanza facendo lavorare come un matto il mio povero computer.

Mi sono ritrovato con una wordlist da 700MB con più di 75 milioni di parole; mi sono accorto che era piena di ripetizioni: la sola lettera “a” compariva 59 volte!

Mi sono ingegnato per risolvere il problema.

Occorreva innanzitutto ordinare la wordlist.

Per fare questo ho pensato di usare il comando sort dei sistemi Unix. Purtroppo il file gigante è codificato in unicode e sort si incazza un poco.

Per risolvere il problema ho reimpostato la variabile LC_ALL in questo modo:

export LC_ALL=C; sort wordlist.txt > sortedwordlist.txt

Dopo un poco di elaborazione,...

Leggi il seguito »

Scrivere un curriculum in formato europeo con LaTeX

21 giugno 2008 - Fonte: http://fripp.wordpress.com

In questi giorni ho avuro l’esigenza di redigere il mio CV per mandarlo ad alcune aziende che me ne hanno fatto richiesta. L’idea di usare i modelli di MS Word non mi andava affatto e pertanto mi sono affiadato al mio “amico” \LaTeX (adoro scrivere \LaTeX e non LaTeX!!!!!!).

Mi sono messo a spulciare su ctan.org e ho trovato quello che cercavo: la classe europecv, un’implementazione \LaTeX...

Leggi il seguito »

Mandare email a più persone usando AppleScript

9 giugno 2008 - Fonte: http://fripp.wordpress.com

Mi capita spesso di dover mandare la stessa email a tutte le persone del gruppo LiberaMente, di cui faccio parte.

Per automatizzare la cosa, ho creato un piccolo script AppleScript.

Ecco il sorgente:


set date_dialog to display dialog "Inserisci l'oggetto" default answer ""
set the_subject to text returned of date_dialog

tell application "Address Book"
    set name_list to every person of group "Liberamente"

    set email_value_list to {}

    repeat with p in name_list

        set end of email_value_list to value of every email of p

    end repeat

end tell

tell application "Mail"
    activate

    set new_message to make new outgoing message with...

Leggi il seguito »