Blog | All

06/07/10

Il costo di un sito web: sviluppatore vs cliente

Argomento dolente! Anche quando si realizzano dei siti o dei portali web di qualità, è sempre estremamente difficile farsi riconoscere dal cliente il giusto prezzo. Non si capisce per quale ragione, ma la realizzazione di un sito web (parlo sempre di lavori di una certa qualità, ovviamente) difficilmente viene percepita dal cliente come un vero lavoro.

Io sono solito dire che la realizzazione di un sito web equivale più o meno al “lavoro di un sarto” che cuce per il cliente un “vestito su misura” e non alla vendita di prodotti da discount (senza nulla togliere a questi ultimi, ma qui serve un efficacie paragone!). Ogni sito web realizzato dovrebbe rispecchiare appieno la nostra immagine aziendale o personale e come tale è in pratica il nostro biglietto da visita sul web, o il passaporto per la nostra identità virtuale.
E questo vale a maggior ragione se il sito in questione offre anche servizi, come ad esempio un catalogo prodotti per il commercio elettronico. Nessuno di noi vorrebbe avere un’immagine che poco lo rappresenti o, peggio, brutta o carente o magari scopiazzata da qualcun altro!

E per raggiungere questo obiettivo è chiaro che serve un certo lavoro di mani (e teste) esperte! E che quindi, come tale, va corrisposto con un adeguato compenso economico. Lavoro, per inciso, che non termina quasi mai con la realizzazione e la messa in opera del sito: il cliente va seguito ed accompagnato nel suo percorso sul web anche e soprattutto dopo, una volta che il sito è effettivamente on-line…

Leggi anche l’articolo originale.

06/07/10

Posizionamento sui motori di ricerca…

Un articolo molto interessante di www.innovando.it conferma quello che spesso dico ai miei clienti. C’è una profonda differenza tra il disporre di un sito ben confezionato e ben indicizzato (per quel che realmente rappresenta!) ed un sito affidato ai cosiddetti “venditori di posizionamento” o esperti di keywords un tanto al chilo e cose simili.

Una volta che il sito è on-line, se ricco di contenuti “interessanti” e prodotto da gente esperta rispettando certi accorgimenti e regole precise, dopo un certo tempo verrà indicizzato dai principali motori di ricerca (Google in primis…). Successivamente si potrà procedere all’ottimizzazione del processo e, chiaramente, servono un certo tempo ed un minimo di pazienza per ottenere dei risultati apprezzabili.

E poi la storia continua: una volta ottenuto un certo posizionamento sui motori di ricerca, è molto importante anche saperlo mantenere. E per questo, purtroppo, non esistono facili scorciatoie…

Leggi anche l’articolo originale.

26/04/10

PCLinuxOS 2010

Da pochi giorni è stata rilasciata la versione ufficiale di PCLinuxOS 2010, distribuzione Linux che da 3 anni a questa parte è il mio principale sistema operativo nonchè impagabile strumento di lavoro. PCLinuxOS è una distro con “rolling release”, ovvero che rilascia aggiornamenti a ciclo continuo: in pratica da quando ho installato la 2007 finora ho solo dovuto scaricare gli aggiornamenti via Synaptic (su base quotidiana o settimanale normalmente).

In questo caso, con la versione 2010 le novità sono tante e tali per cui è richiesta una nuova installazione. Poco male, avendo al tempo ben strutturato le partizioni (ho una /home separata più altri mount point convenienti) non dovrebbe essere un grande lavoro 🙂

Con questa release, PCLinuxOS si annuncia come una delle distro più interessanti del 2010, e come al solito si dimostra in grado di ottenere performance superiori rispetto anche alle distro “maggiori” (Ubuntu, Mandriva, OpenSuse…). Di seguito alcune delle novità principali:

  • Kernel 2.6.32.11-bfs, altamente ottimizzato per il desktop computing
  • KDE 4.4.2 completo ed ottimizzato, con driver nVidia e ATI fglrx (ma anche Gnome 2.30, LXDE, XFCE and Enlightenment E-17)
  • supporto network, wireless e printer pressochè completo
  • localizzato in 60 lingue differenti
  • OpenOffice, tradotto in oltre 100 lingue
  • tutti i principali applicativi, aggiornati all’ultima versione (Firefox 3.6.3, Thunderbird 3.0.4, Dropbox…) per un totale di oltre 12000 pacchetti disponibili
  • disponibile in versione LiveCD installabile, con aggiornamenti automatici

Leggi anche la recensione di OSNews.

12/04/10

Cattive notizie per Java…


Nulla da fare, purtroppo sembra veramente che l’acquisizione di Sun da parte di Oracle, come purtroppo si temeva all’inizio, stia portanto alla fuga di moltissime teste illustri.

Proprio in questi giorno sono state annunciate le dimissioni niente meno che di James Gosling, il padre di Java. E non è il solo purtroppo.

Dovremo aspettarci presto qualcosa di nuovo da open jdk?

Leggi tutti gli annunci: 1, 2, 3 e 4

08/07/09

Arriva 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 🙂

Leggi anche gli articoli originali: 1 e 2

07/07/09

Un file di properties ordinato

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
final Properties vProps = new Properties() {
    private static final long serialVersionUID = 1127046528812232390L;
 
    @Override
    public Enumeration keys() {	// this is for key reordering...	
       final Vector vKeysEnum = new Vector();	
       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(...);
error: