Posts | 2009

08/07/09

Introducing the Google Chrome OS

Si può quasi dire “c’era da aspettarselo…” In effetti Google ne ha fatta di strada, da quando Brin e Page ancora studenti gettarono le basi per quello che sarebbe diventato il motore di ricerca più famoso ed utilizzato al mondo. Ed ora Google è una delle realtà più interessanti nel mondo dell’informatica mondiale. Oltre al motore di ricerca, Google offre servizi e strumenti di altissima qualità oltre a software, API e via dicendo.
Non c’è da stupirsi che siano arrivati al sistema operativo. Dopo Android per i dispositivi mobile, ora si parla di Google Chrome OS (anche se non arriverà prima della seconda metà del 2010). Google Chrome OS è un nuovo concetto di sistema operativo “moderno”, web-oriented e destinato al settore dei netbooks, ma non solo…
I punti salienti sono:

  • tempi di startup ridotti, leggero e veloce
  • connesso al web in pochi secondi
  • interfaccia utente minimale, la maggior parte delle interazioni avvengono sul web
  • sicuro by design

L’architettura software è semplice: si parla di un nuovo sistema a finestre basato su un kernel Linux. Dal punto di vista dello sviluppatore la piattaforma è il web. Funzioneranno tutte le web applications e si potranno creare nuove applicazioni utilizzando le tecnologie web preferite. Il target ovviamente sono tutti quegli utenti che passano la maggior parte del tempo sul web 🙂

07/07/09

An ordered properties file

Mi è capitato di dover salvare un file di properties “ordinato” ovvero nel quale le chiavi fossero ordinate rispetto ad un certo criterio. Poichè la classe java.util.Properties estende java.util.Hashtable<Object, Object> normalmente le properties sono memorizzate senza alcun ordinamento specifico.
In qualche caso invece, se il file ottenuto è di grandi dimensioni, può essere utile disporre di un qualche tipo di ordinamento. La soluzione è abbastanza “tricky”, pertanto la pubblico.
La seguente classe rappresenta la chiave:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
 * A key in the form Sn, where n is an integer number.
 *
 */
public class MessageKey implements Comparable {
 
    private Integer key;
 
    public MessageKey(final String pKey) {
        final String vKey = pKey.substring(1);
        try {
            key = Integer.valueOf(vKey);
        } catch (NumberFormatException vExc) {
            Logger.error(vExc);
        }
    }
 
    public Integer getId() {
        return key;
    }
 
    public int compareTo(final MessageKey pKey) {
        return key.compareTo(pKey.getId());
    }
 
    @Override
    public String toString() {
        return "S" + key;
    }
 
}

A questo punto occorre creare il nuovo oggetto Properties, facendo l’override del metodo keys() per ottenere, all’atto del salvataggio, il file ordinato. Il tutto senza ridefinire classi di sistema. Sono necessari alcuni passaggi per costruire una Enumeration ordinata (utilizzata nell’implementazione base della classe Properties), transitanto attraverso un Vector ed una List, riordinabile con il metodo standard Collections.sort(…). La soluzione risulta compatibile con Java5 e Java6.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
final Properties vProps = new Properties() {
    private static final long serialVersionUID = 1127046528812232390L;
 
    @Override
    public Enumeration<Object> keys() {
	// this is for key reordering...
	final Vector<MessageKey> vKeysEnum = new Vector<MessageKey>();
	for (Enumeration<Object> vEn = super.keys(); vEn.hasMoreElements();) {
	    vKeysEnum.add(new MessageKey((String) vEn.nextElement()));
	}
	final List<MessageKey> vKeysList = Collections.list(vKeysEnum.elements());
	Collections.sort(vKeysList);
 
	final Vector<Object> vOrderedKeys = new Vector<Object>();
	for (final MessageKey vKey : vKeysList) {
	    vOrderedKeys.add(vKey.toString());
	}
	return vOrderedKeys.elements();
    }
 
};
//...
vProps.setProperty("S" + vMsgKey.getId(), "something");
//...
vProps.store(...);
13/03/09

PCLinuxOS 2009.1

Dopo quasi due anni di attesa dall’uscita dell’ottima PCLinuxOS 2007, finalmente la nuova release!

Ho effettuato da poco l’upgrade ed è andato tutto liscio 🙂 Del resto, PCLinuxOS nasce come rolling distribution, ovvero come una distro con aggiornamenti continui (via Synaptic) pertanto l’upgrade dalla 2007 alla 2009 in realtà non è un cambio di versione vero e proprio (a parte i nuovi splash screen e alcune modifiche al tema grafico). In pratica eseguendo costantemente gli upgrades il sistema evolve di continuo. E questa è una delle caratteristiche che due anni fa mi ha fatto scegliere proprio questa distro per il mio laptop. Ne riassumo di seguito i principali punti di forza:

  • stabilità: PCLinuxOS è una distro abbastanza “conservativa”, nota per essere molto stabile. Nel ciclo di aggiornamenti ho intallato anche la beta1 e la beta2 e anche queste si sono rivelate decisamente stabili!
  • semplicità: è una live che si installa e configura davvero in una ventina di minuti
  • performance: secondo alcuni test PCLinuxOS 2007 era seconda solo a sidux in quanto a performance. Verosimilmente anche la 2009 lo sarà
  • è basata su KDE, il window manager che preferisco (ma esistono “remaster” con Gnome/Xfce/Enlightment…)
  • è possibile creare appunto dei “remaster”, ovvero delle nuove distribuzioni, generando una live distro a partire dalla propria installazione. Infatti esistono diverse distro derivate da PCLinuxOS
  • unisce “the best of two world”: ad esempio molto comodo è il Control Center derivato da Mandriva, come pure Synaptic per la gestione dei pacchetti rpm derivato da Debian
  • i repository sono piuttosto aggiornati: abilitando la sezione “nonfree” si ha accesso anche ai codec, font o driver non strettamente open-source. Quando non si può fare a meno è sicuramente comodo

E da ultimo, ma non ultimo, basta dire che si tratta di Linux. Perciò una distro è solo una base di partenza, e una volta installata la si può personalizare come si vuole 🙂

13/01/09

Linux & Distributions through the Years

L’anno 2008 che si è appena concluso rappresenta secondo molti l’anno  della consacrazione di Linux. Una serie di eventi tra cui il lancio tanto contestato di Windows Vista hanno spinto molti utenti a migrare da Windows verso altre piattaforme (Linux, Mac OS X). Personalmente ho sempre utilizzato Linux (affiancandolo a Windows), soprattutto in ambito server. Ma da ormai un paio di anni ritengo che sia maturo anche per il desktop. Stabile, efficiente, performante, con un supporto dell’hardware decisamente migliorato e una ricca dotazione di software, ormai è piuttosto facilile da usare e installare.

Quest’articolo di Distrowatch ne ripercorre la storia a partire dagli arbori nel 1991 quando la prima versione del kernel venne scritta da Linus Torvalds, passando per le principali distribuzioni che ne hanno decretato il successo come Slackware, Debian, Red Hat, SuSE fino a Mandriva, Ubuntu e Fedora (o PCLinuxOS) e via dicendo…
Quindi si parla delle applicazioni Desktop che con KDE o Gnome non hanno ormai nulla da invidiare a Windows o Mac OS X fino all’ambiente mobile, nuovo traguardo recentemente raggiunto da Linux ad esempio con il celebre Google Android. E a mio modo di vedere siamo solo l’inizio…