Blog | All

28/06/13

Nuove regole SEO per il 2013

seo-man-typingIn seguito al continuo aggiornamento degli algoritmi di ranking da parte di Google (l’ultimo è stato ‘Penguin‘) basati sull’osservazione delle abitudini e comportamenti degli utenti, anche le regole di SEO sono in continuo cambiamento.
Pertanto, se ci si basa soltanto sul ranking delle proprie keyword si rischia addirittura di essere penalizzati!
Alcune regole, aggiornate al 2013:

  • Concentrati sul numero di keyword, non sul ranking delle stesse: i motori di ricerca sono diventati più intelligenti e specifici; oltre il 70% delle ricerche contiene tre o più termini di ricerca ed oltre il 20% delle query di ricerca sono totalmente nuove, ovvero rappresentano ricerche mai effettuate prima. Quindi la strategia vincente è quella di incrementare il numero di keyword, piuttosto che migliorare il posizionamento di quelle esistenti: l’insieme delle stesse è detto keyword portfolio.
  • Pubblica contenuti orientati al problem-solving: è utile pubblicare contenuti presi dalla propria proprietà intellettuale: how-to, white paper o studi di ricerca. Questo è ciò che gli utenti cercano e può essere indicativo della vostra professionalità.
  • Pubblica contenuti basati su fonti di qualità: l’aggiornamento ‘Penguin’ penalizza i contenuti di bassa qualità e i siti considerati non attendibili. Pertanto bisogna concentrarsi sull’ottenimento di riferimenti di alta qualità da parte di siti web attendibili del settore, evitanto i siti “free” e le content farm.
  • Distribusci e promuovi il contenuto attraverso i social media: i social media sono un canale molto efficiente per distribuire e promuovere i propri contenuti e consentono di raggiungere milioni di utenti istantaneamente. Google e Bing hanno ammesso di utilizzare i segnali provenienti dai social media nei loro algoritmi di ranking.

Leggi anche l’articolo originale.

23/05/13

Migliorare le performance di Drupal

Per continuare la carrellata sui CMS, di seguito alcuni accorgimenti che possono aiutare a migliorare le performance di un sito realizzato con Drupal. Benchè Drupal sia un ottimo sistema, non è conosciuto per essere particolarmente performante. Fortunatamente, con un po’ di attenzione, si possono ottenere dei buoni risultati.

  • Pianificazione: occorre scegliere accuratamente quali moduli installare o disinstallare, la scelta di installarli “tutti” non è mai quella migliore
  • Aggiornamenti: in genere mantenere aggiornato il sistema (core e moduli) può aiutare
  • Pressflow: è una particolare versione di Drupal, patchata per l’utilizzo di componenti terze-parti. Versione consigliata a chi utilizza Drupal6, diverse modifiche della quale sono state inserite in Drupal7
  • APC (Alternative PHP Cache): una cache php che può offrire ottime prestazioni se usata con Drupal
  • Memcache: un ottimo modulo per Drupal6 e Drupal7
  • Varnish: può essere installato sul web server (Apache, nginx or lighttpd) e aumentare le performanche di Drupal per quanto riguarda soprattutto gli accessi degli utenti anonimi
  • Boost: un’ottima alternativa a Varnish, quanto quest’ultimo non è installabile (hosting condiviso ad esempio)
  • CDN: può aiutare nel caso di risorse statiche come immagini, documenti, css e javascript
  • Views: è uno dei moduli più potenti e versatili di Drupal, ma occore saper utilizzare bene le varie opzioni per non rischiare di ottenere query molto lente. Alcuni moduli aggiuntivi possono aiutare (Views lite pager, Views cache)
  • Block cache: un altro modulo di Drupal che può migliorare di molto le performance, specialmente se utilizzato con Memcache
  • Ottimizzazioni del filesystem: quando le risorse statiche sono molte può essere utile organizzare il file system in path organizzati per data. A tale scopo può essere utile il modulo File(field) Paths
  • Fast 404: un altro modulo molto utile nel caso di “pagine non trovate”: soprattutto quando si ha un nuovo sito in fase di sviluppo
  • Moduli scadenti: benchè in genere molto rari, nel core di Drupal ci sono 3 moduli con performanche piuttosto scarse. In genere è bene disattivarli (Database logging, Statistics, PHP Filter)
  • Monitoraggio delle performance: utile soprattutto in fase di sviluppo. Devel è sicuramente un modulo utile, New Relic un servizio terze-parti che funziona bene con Drupal
  • Frontend: è certamente utile abilitare l’opzione di aggregazione delle risorse css e javascript offerte dai vari moduli e ridurre le dimensioni delle immagini caricate (Image cache, Image profiles)

Leggi anche l’articolo originale.

24/04/13

Drupal o WordPress: cosa è meglio?

Drupal o WordPress? Cosa è meglio? Come sempre dipende da quali sono i nostri obiettivi.

Vuoi creare un blog?
Non credo ci siano dubbi: la scelta di elezione è senza dubbio WordPress, in fondo è nato proprio per questo! In più è facile da installare, da configurare e utilizzare anche da parte del neofita. Il problema sorge semmai quando il sito cresce e si vogliono aggiungere altre feature di tipo diverso. In questo caso WordPress potrebbe non rivelarsi più all’altezza.

Semplicità vs complessità
E’ opinione comune che WordPress sia semplice in tutti i suoi aspetti, mentre Drupal sia decisamente più complesso e, anche se ciò è vero, è chiaro che le due piattaforme non sono paragonabili. Drupal è anche molto più potente, ha pagine di amministrazione più curate, un’interfaccia più pulita, è più sicuro, ha un sistema di permessi decisamente flessibile e risulta adatto anche all’uso in contesti entreprise.

Moduli vs plugin
Un plugin è un pezzo di codice già pronto, destinato ad uno scopo ben preciso. Si può espandere WordPress in molti modi utilizzando gli appositi plugin, ma difficilmente si potrà fare qualcosa di più di ciò che i plugin consentono di fare. I moduli di Drupal invece superano questi limiti e per la loro struttura possono essere combinati tra loro in vari modi (o modificati) in modo da poter espandere il sistema praticamente all’infinito.

Temi
WordPress fornisce molti temi di ottima qualità completamente free e immediati da utilizzare, ma tutto sommato abbastanza statici, ovvero composti di regioni fissi nelle quali piazzare widget a piacimento. All’occorrenza può risultare abbastanza difficile uscire da questi schemi. I temi di Drupal invece sono organizzati in regioni piuttosto flessibili nelle quali si possono piazzare a piacimento i vari moduli. Inoltre esistono diversi temi di base che possono essere espansi o configurati a piacimento (Bootstrap, Omega, Zen).

Conclusioni
In conclusione, ancora una volta, se le intenzioni sono quelle di andare oltre al semplice blog o poco più (per il quale WordPress è la scelta perfetta) è bene pensare fin da subito a Drupal, che rappresenta una scelta migliore e più duratura nel tempo.

Leggi anche l’articolo originale.

23/04/13

Drupal vs Joomla vs WordPress

cms-logos

Con questo post cercherò di analizzare i punti di forza e di debolezza di alcuni dei CMS più diffusi come Drupal, Joomla/Mambo e WordPress.

Drupal
Vantaggi

  • codice molto pulito
  • buon controllo del progetto da parte di Aquia
  • ottimi sviluppatori
  • è strutturato in modo che sia quasi impossibile programmarlo male
  • è piuttosto scalabile e quindi efficiente lato server

Svantaggi

  • meno plugin già pronti che in altri CMS (relativamente)
  • interfaccia di default piuttosto vasta
  • pochi sviluppatori
  • sviluppatori più costosi

Joomla/Mambo
Vantaggi

  • buon sistema di menu
  • struttura fortemente statica delle pagine
  • offre nativamente il supporto per membri e community
  • è da molto tempo sul mercato

Svantaggi

  • performace piuttosto scadenti
  • url predefiniti orribili
  • debole sezione weblog
  • è difficile applicare temi (tutti i siti fatti con Joomla/Mambo tendono ad assomigliarsi tra loro)
  • caratteritiche SEO poco curate
  • pessimo codice, difficile da riparare
  • comunità divisa (dopo la separazione tra Joomla e Mambo nel 2006)
  • molti dei plugin migliori sono a pagamento
  • sviluppatori piuttosto mediocri

WordPress
Vantaggi

  • enorme comunità
  • le performanche possono essere ottimizzate facilmente grazie ad appositi plugin
  • è molto facile applicare dei temi personalizzati
  • ottima architettura a plugin
  • ci sono plugin di ogni tipo
  • molti sviluppatori professionali
  • ciclo di sviluppo veloce, ci sono cambiamenti ogni anno
  • leadership attiva e buona gestione del team grazie a Mark Jaquith

Svantaggi

  • codice non all’altezza di Drupal, ma migliore di Joomla e in costante miglioramento
  • molti sviluppatori improvvisati
  • molti plugin popolari con performanche piuttosto scadenti
  • diversi temi commerciali scadenti che possono anche compromettere le performanche del sito
  • debole gestione delle pagine statiche, che però può essere compensata dai plugin
  • ciclo di aggiornamenti molto rapido, occorre prestare attenzione in caso di aggiornamenti

Quindi Drupal risulta essere la piattaforma ideale per progetti ampi e strutturati, per la sua stabilità, ottimizzabilità e programmbilità. Le funzionalità base possono essere estese praticamente senza limiti grazie ai moduli. I costi di gestione possono essere superiori, ma questo di solito non è un problema per le grandi aziende. WordPress si adatta bene alle realtà piccole e medie (o anche grandi) e ad una grande varietà di progetti (weblog, corporate site, ecommerce ecc ecc) per la sua facilità d’uso e la ricca dotazione di plugin. In genere invece la principale ragione per utilizzare Joomla/Mambo risulta la semplicità o l’esistenza di progetti legacy difficili da migrare verso altre piattaforme.

Leggi anche gli articoli originali: 1 e 2

14/04/13

Tutto su Java 8

Una carrellata di tutte le novità attese in Java 8. E sono davvero tante!

  • Miglioramento nelle interacce
  • Interfacce funzionali
  • Espressioni Lambda
  • Miglioramento nei tipi generici
  • Aggiunte alla Collections API
  • Aggiunte alla Concurrency API
  • Aggiunte alle IO/NIO API
  • Cambiamenti a Reflection ed Annotation
  • Nashorn JavaScript Engine
  • Miglioramenti delle performance

Leggi anche l’articolo originale.

05/03/13

PhoneSat: i mini satelliti Android della NASA

PhoneSat2Un budget di 3500$ e un vecchio smartphone, più del semplice materiale del commercio: così nasce il progetto PhoneSat prodotto da un team di ingegneri del NASA’s Ames Research Center. Lo scopo è quello di produrre un sistema di controllo per satelliti a basso costo, il cui componente principale è appunto uno smartphone usato con cpu da 1Ghz, un processore più potente di quelli utilizzati in molti progetti spaziali precedenti.

Ne sono state prodotte due versioni, PhoneSat 1.0 e PhoneSat 2.0, entrambi di forma cubica di soli 10cm per lato e con budget molto ridotti, soprattutto se riferiti al campo aero-spaziale!

PhoneSat 1.0 è equipaggiato con uno smartphone Google Nexus One, al quale sono state disabilitate tutte le funzionalità telefoniche (in pratica è stato settato in “airplane mode”), mentre il PhoneSat 2.0 usa un Samsung Nexus S, dotato di giroscopio e GPS.

I primi esperimenti, che sono partiti nel 2010, hanno avuto discreto successo sia in ambiente simulato, sia in ambiente aperto (salvo la rottura iniziale di uno smartphone) con la permanenza di 10-14 giorni nell’atmosfera, prima del rientro sulla terra. Grazie al budget ridotto e ai materiali costruttivi facilmente reperibili, il team ritiene di poter effettuare numerosi test in breve tempo prima di ottenere la piattaforma completa.
Il prossimo lancio è atteso per l’estate del 2013…

Leggi anche l’articolo originale.

27/02/13

Lo smartphone può trasformarsi in un pc

android-phonePC, smartphone o… entrambi? Ora è possibile, dal momento che gli smartphone spesso sono dotati di cpu con 2 o più core e di ram in abbondanza.  Ubuntu for Android consente a questi smartphone di “fascia alta” di trasformarsi in un pc a tutti gli effetti, equipaggiati del sistema operativo Ubuntu, la più celebre tra le distro Linux e tra i sistemi operativi free ed open-source.

Una volta che lo smartphone viene inserito nell’apposito dock e quindi collegato a monitor, tastiera e mouse il gioco è fatto. E poichè sia Android, sia Ubuntu condividono lo stesso kernel Linux le funzionalità di telefono e desktop pc risultano disponibili nello stesso momento e, naturalmente, non è necessario nessun software di sincronizzazione dati dal momento che la memoria di archiviazione è condivisa.

Ciò può rappresentare sia un vantaggio per gli operatori di rete, sia per le aziende che vogliono dotare i propri dipendenti di una postazione pc e di un dispositivo mobile utilizzando un unico prodotto. Naturalmente poi bisognerà vedere se saprà accogliere i favori del mercato… sicuramente non rivoluzionario, ma interessante!

Leggi anche l’articolo originale.

10/10/12

L’iPhone compie 5 anni: come ha cambiato il mondo

Non sono mai stato un grande estimatore di Apple, ma devo tuttavia riconoscerne il merito. Non si può discutere che l’iPhone sia e sia stato uno dei prodotti più rilevanti e rivoluzionari nel mondo tecnologico, avendo aperto di fatto il mercato di smartphone e tablet come lo conosciamo ora.

Per il resto, fatti e numeri parlano da sè:

  • Appena 5 anni fa l’iPhone non esisteva ed ora genera un fatturato di 100 miliardi di dollari all’anno, più di molte grandi aziende
  • Da solo genera un volume di affari superiore a Microsoft stessa, azienda che esiste da 30 anni ed è stata a lungo leader nel mondo IT
  • Genera un profitto annuale di almeno 30 miliardi di dollari (più di Microsoft, più di Google, più di Walmart)
  • Ha distrutto o indebolito molte grandi compagnie negli ultimi 5 anni (Palm, Research in Motion, Nokia, Microsoft, HP e Dell)
  • Ha creato una nuova industria e un nuovo ecosistema (le apps) che hanno portato nuovo lavoro per aziende e sviluppatori
  • Ha inspirato una mezza dozzina di competitori diretti (primo fra tutti Samsung) con i quali la sfida è attualmente aperta
  • Ha reso Apple l’azienda di maggior valore e profitto del mondo

Decisamente, preferenze personali a parte, non mi sembra poco!

Leggi anche l’articolo originale.

19/09/12

Il buono e il cattivo programmatore

Per rimanere in tema, una lunga e accurata classificazione (con caratteristiche e sintomi) del buon programmatore e, ovviamente, per contro anche del cattivo programmatore. Gli articoli sono lunghissimi, ne riassumo solo i punti principali.

Segni distintivi del buon programmatore

  1. Instinto di sperimentare le cose (verificare che funzionino)
  2. Distacco emotivo dal codice e dal progetto
  3. Desiderio di riparare ciò che non funziona
  4. Fascino per l’incomprensibile
  5. E’ costretto a insegnare

Segni distintivi del “fantastico” programmatore

  1. Pazienza incorruttibile
  2. Ricerca distruttiva della perfezione
  3. Conoscenza enciclopedica della piattaforma
  4. Pensiero in codice
  5. A Roma, si comporta da romano (per ogni linguaggio e ogni progetto sa scegliere il giusto approccio)
  6. Creazione dei propri tool

Segni distintivi di chi è destinato a compiti superiori

  1. Indifferenza alla gerarchia
  2. Eccitazione per i fallimenti
  3. Indifferenza alle circostanze
  4. Ininfluenza agli obblighi
  5. Dedizione all’impegno
  6. E’ guidato dall’esperienza

E per continuare, c’è anche l’altra faccia della medaglia:

Segni distintivi del cattivo programmatore

  1. Incapacità di ragionare sul codice
  2. Scarsa comprensione del modello di programmazione del linguaggio
  3. Scarsa conoscenza della piattaforma e capacità di ricerca
  4. Incapacità di comprendere i puntatori
  5. Difficoltà a ragionare sulla ricorsione
  6. Creazione di codice “fuorviante”

Segni distintivi del programmatore mediocre

  1. Incapacità di pensare per insiemi o blocchi
  2. Mancanza di spirito critico
  3. Programmazione “flipper” (un colpo a destra e un colpo a sinistra finchè le cose funzionano)
  4. Scarsa familiarità con i principi di sicurezza
  5. Creazione di codice “incasinato”

Segni distintivi di chi non avrebbe mai dovuto programmare

  1. Incapacità di determinare l’ordine di esecuzione di un programma
  2. Insufficiente capacità di pensare in modo astratto
  3. Sindrome dei “Collyer brothers” (accaparramento compulsivo)
  4. Senso di causalità non funzionante
  5. Indifferenza ai risultati

Leggi anche gli articoli originali: good e bad.

11/09/12

La giornata dello sviluppatore

Come programmatore sono rimasto positivamente colpito da quest’articolo. Quali sono le attività principali nella giornata dello sviluppatore e che percentuale di tempo viene dedicata alle stesse? Nessun programmatore dedica il 100% del suo tempo a scrivere righe di codice! E’ chiaro (ed è anche buona cosa) che non sia così…

Le attività principali sono quindi:

  • Analisi del codice: il tempo che viene dedicato a questa attività da parte dei bravi programmatori può andare dal 50% al 80% dell’intera giornata lavorativa. E la cosa non mi stupisce, anch’io mi comporto così.
    Se si vuole scrivere del buon codice ed ottenere un’applicazione elegante e funzionale non si possono semplicemente incollare dei pezzi di codice già scritto e collaudato, ma serve anche saper “incastrare bene i pezzi tra loro”, valutando per bene anche i possibili incastri. E perciò un’attenta analisi e una perfetta conoscenza del codice preesistente sono indispensabili.
  • Progettazione: anche questa è un’attività indispensabile. Farla bene o male può significare un grosso investimento, come una grossa perdita di tempo. Per progettare del buon software (soprattutto se si prevedono un lungo ciclo di vita e future evoluzioni) occorre pensare “a lungo termine”.
  • Verifica: anche se molte aziende hanno degli interi settori dedicati al testing e al controllo di qualità, il primo lavoro di testing deve partire dal programmatore stesso. I test possono essere di vario tipo: di unità, di integrazione, generativi, di accettazione ecc. e nessuno di questi andrebbe trascurato. La riuscita di un buon progetto dipende anche dall’esecuzione di tutti i i tipi di test sopra citati, senza esclusioni, sia automatici, sia manuali.
  • Scrittura del codice: ovviamente non può mancare, è una fase essenziale! Ma ormai credo che sia definitivamente superata la vecchia concezione degli sviluppatori pagati un “tot a riga di codice”. Non dimentichiamo che scrivere codice può anche voler dire aggiungere cattivo codice ad un progetto. Per questo motivo questa fase segue e dipende da tutte le precedenti!

Leggi anche l’articolo originale.

error: