Crystal Reports 2011 : The Product Keycode is not valid INS00140. Soluzione al problema.

Ho deciso di scrivere questo post e proporre la soluzione nel download, perchè molta gente (come me) è diventata matta nell’installare SAP Crystal Reports 2011.
Al momento dell’installazione infatti pur disponendo di un codice di attivazione originale, l’installazione si blocca con questo snervante errore : “The Product Keycode is not valid INS00140.
Il motivo per cui generi quest’errore mi è sconosciuto, ma ho trovato un modo semplice ed efficace per bypassare la validazione del codice e proseguire l’installazione senza ulteriori errori.

Nota : Si ricorda che questo metodo viene divulgato per quegli utenti in possesso di una licenza d’uso originale e una regolare chiave d’attivazione.

Alla base dell’errore c’è il malfunzionamento dell’eseguibile isKeyCodeValid.exe che per oscuri motivi ritorna 0 all’installer, invece di 1, e dunque risulta impossibile proseguire.
L’hack è dunque piuttosto semplice, basta infatti sostituire il file isKeyCodeValid.exe con uno creato adhoc che ritorna 1 (lo trovate nel download alla fine di questo articolo) per bypassare la validazione del codice di attivazione e proseguire indisturbati nell’installazione.

L’eseguibile è stato prodotto tramite Visual C++ in appena 3 righe di codice :

#include “stdafx.h”

int _tmain(int argc, _TCHAR* argv[])
{
    return 1;
}

Il file da sostituire lo trovare nella cartella di installazione, ovvero : DATA_UNITS\CrystalReports\dunit\product.crystalreports-4.0-core 32\actions\isKeyCodeValid.exe

Per chi non ha dimestichezza con linguaggi di programmazione e compilatori, l’eseguibile precompilato può essere scaricato alla fine di questo articolo cliccando sul bottone download.
Sostituite il file originale con quello che avete scaricato da qui e proseguite sereni con l’installazione.

English note for all non italian readers :

if u cannot install Crystal Report 2011 cause setup return “The Product Keycode is not valid INS00140.” error, download file at the end of this post, extract and replace  DATA_UNITS\CrystalReports\dunit\product.crystalreports-4.0-core 32\actions\isKeyCodeValid.exe with isKeyCodeValid.exe found in the downloaded archive.

Cause unknow reason the original isKeyCodeValid.exe sometimes don’t validate original key code activation and return 0 to setup installer. The replacement file return 1 and allow the installation.

Aruba Hosting : Low Costing e MySQL senza InnoDB. Non è tutt’oro quel che luccica.

Normalmente non ci piace parlare dei nostri concorrenti (in questo caso oltretutto ci sentiamo come Davide contro Golia in termini di numeri) ma crediamo sia più che lecito parlarne quando oltre ad essere competiror sono anche fornitori dei nostri clienti e indirettamente dunque ci troviamo nelle vesti di clienti o meglio utilizzatori “costretti” ad utilizzare i loro servizi.

E’ bene infatti chiarire che sebbene forniamo noi stessi servizi di hosting Linux (LAMP) e server dedicati, ci occupiamo di gestire tramite servizi managed server VPS o dedicati presso altre server farm, (tra cui Aruba) e di aiutare clienti nella configurazione e installazione di software Web (solitamente che si basa su PHP e MySQL) sui loro pacchetti Hosting Linux.

Se avessimo voluto parlarne male, l’opportunità andava colta qualche settimana fa quando ci fu quel guasto elettrico divampato poi in incendio che mise down l’intero datacenter e i milioni di domini che essa ospita.

Non l’abbiamo fatto. L’imprevisto è dietro l’angolo, chi conosce Murphy lo sa fin troppo bene.  Sciagure di questo tipo sono successe a BIG mondiali come ThePlanet e piccolini come il nostrano Tophost.
La gestione dell’incidente e il ripristino dei servizi è stato a nostro avviso eccelso.

Nulla da eccepire nemmeno nell’assistenza (in particolar modo quella dei server dedicati) che comunque è repentina e gestita da personale tecnico (non le centraliniste) preparato.

Vanno invece fatte delle considerazioni sui loro spazi WebHosting, sulle feature che offrono e sul rapporto qualità/prezzo per un servizio professionale e completo dalla A alla Z.

Innanzitutto è bene precisare che Aruba punta molto del suo successo sull’offerta di spazio disco illimitato. In realtà lo spazio illimitato è un’utopia o meglio un sofismo utile ad aumentare la potenza commerciale di Aruba suscitando false sicurezza nell’utente.

Lo spazio illimitato non esiste ed ovviamente non può esistere come concetto informatico.

Al prezzo base infatti una 20ina di euro + IVA comprerete il fantomatico spazio illimitato, ma se volete dei servizi aggiuntivi ?

  • Le statistiche professionali ad esempio costano 12.91 + IVA l’anno. Se si fa web seriamente non si può far a meno di un servizio di statistiche utili al fine del webmarketing ma non solo.
  • L’antivirus e l’antispam è fondamentale, evita noie e pericoli informatici ed ha un costo tutto sommato accettabile e proporzionato, “solo” 2 euro l’anno + IVA.
  • Il servizio IMAP consente di poter configurare le proprie caselle di posta sfruttando il protocollo IMAP4 in alternativa a quello POP3. A differenza del protocollo POP3, con quello IMAP4 sono possibili più connessioni contemporanee allo stesso account di posta, con l’opportunità di controllare i cambiamenti apportati da ogni utente che si collega. Anche questa opzione è a pagamento a 2 euro l’anno più iva.
  • Il servizio Backup anch’esso obbligatorio per un utilizzo professionale e non vogliate correre il rischio di perdere tutto per colpa di accessi abusivi o guasti hardware. Attivabile ad un costo di 2 euro + iva l’anno.
  • Abilitare domini di terzo livello, del tipo terzolivello.dominioprincipale.it ha un costo annuale di 5 euro più IVA.

 

Fin qui tutto “bene” insomma, il concetto esposto e chiaramente percepito è che i servizi aggiuntivi sono al di fuori dell’offerta iniziale e vanno ordinati e pagati a parte. Politica aziendale del tutto legittima ed a nostro avviso anche onesta se confrontate con ipotetiche offerte di diretti concorrenti.

L’assurdità però avviene con il seguente servizio : il Database ! Ovvero MySQL 5.

Come riportato dal loro sito http://hosting.aruba.it/servizi_aggiuntivi.aspAruba.it ha attivato fra le proprie offerte anche il supporto a MySql: tecnicamente si tratta di un DBMS (Database Management System) ovvero, un sistema di gestione per Database, in pratica è un Database veloce e di grandi prestazioni, che consente la creazione di siti web dinamici con backend MySql. Con il servizio MySQL è possibile disporre di un massimo di 5 database e di uno spazio su disco complessivo di 100Mb. Il servizio è utilizzabile solo da domini ospitati dai nostri servizi hosting o Serverdedicati. Lo spazio su disco e’ incrementabile con pacchetti aggiuntivi da 100Mb l’uno. Il linguaggio di interazione predefinito è il PHP, ma è possibile, grazie alla presenza dei driver MyODBC, interagirvi anche tramite pagine ASP.

Ciò che omettono di dire a riguardo è che sebbeno forniscano il servizio a 7 euro + IVA l’anno (a cui aggiungono il servizio opzionale di backup MySQL ad ulteriori 3 euro + IVA l’anno) non forniscono lo storage engine InnoDB o qualsiasi altro engine transazionale (vedi ad esempio XtraDB) che fanno di MySQL un vero DBMS relazionale e non un semplice giocattolino per appoggiare i dati.

Come riportato dalla loro Knowledge Base all’indirizzo http://ticket.aruba.it/KB/a244/utilizzo-di-tabelle-innodb.aspxIl servizio MySql offerto non prevede il supporto per tabelle di tipo InnoDB.“.

E’ incredibile (nel senso più etimologico della parola stessa) che non forniscano (e sopratutto non lo dichiarino in fase d’ordine) un motore transazionale così potente e affidabile come InnoDB che è alla base di molti software web open source come ad esempio tra i più famosi : Magento, Druapl 7, Docebo, ecc…

Ogni software serio che si rispetti che sia sviluppato da ingegneri e non da peracottari che soddisfi le condizioni A.C.I.D, acronimo inglese Atomicity, Consistency, Isolation, e Durability (Atomicità, Coerenza, Isolamento e Durabilità), deve necessariamente usare un engine di tipo transazionale come ad esempio InnoDB per evitare tutte una serie di problematiche di difficile e ardua risoluzione da un punto di vista
applicativo che sarebbero risolvibili automaticamente tramite l’utilizzo delle chiavi esterne (foreign Key), e funzionalità avanzate come Transazioni, Stored Procedure, Stored Function, Trigger che sono disponibili esclusivamente su MySQL esclusivamente tramite  InnoDB o XtraDB ma sono assolutamente assenti nel vecchio giocattolino MyISAM, l’unico per ora disponibile sui piani hosting offerti da Aruba.

Se è vero che ogni azienda ha la libertà di vendere e commercializzare ciò che vuole, è anche vero che il cliente ha il DIRITTO di sapere in fase d’ordine che il loro “Database veloce e di grandi prestazioni” viene azzoppato e privato di importantissime funzionalità magari vitali per l’utilizzo futuro del cliente.

Un po’ come se un concessionario vi vendesse una bellissima e luccicante Ferrari e omettesse (volutamente ?) di dirvi che nel suo bel motore da 350 Km/h è stato applicato un limitatore che non vi fa andare oltre i 100 Km/h ?

Voi come ci rimarreste ?


 

Personalizzare checkbox html. Customizing checkbox form html. Ie6 compatibile.

Se avete mai avuto il bisogno di poter effettuare lo skinning di elementi checkbox in pagine html, ovvero sostituire il bruttissimo e classico quadratino per la spunta, con la vostra grafica, per dare un tocco di eleganza e personalizzare la vostra pagina web, potrete vedere nel seguente videotutorial i passi da fare per riuscire in pochissimi minuti nell’impresa altrimenti non proprio banale.

In questo tutorial vedremo dunque come :

  1. nascondere il checkbox originale.
  2. Sostituire il checkbox originale con uno creato ad hoc da noi stessi.
  3. Come far in modo che il checkbox sia cliccabile in tutti i browser (da internet explorer 6 in poi) anche quelli che non supportano CSS3

 

Il progetto si avvale esclusivamente di “trucchi” CSS per soddisfare i primi 2 punti, e dell’aiuto di selectivizr ( una utility JavaScript che emula le pseudo-classi CSS3 e i selettori di attributo in Internet Explorer 6 a Internet explorer 8 ) per rendere la nostra checkbox cliccabile.

Inoltre la tecnica utilizzata non genera “interferenze” o incompatibilità rendendo comunque il codice validabile e non effettua il replacement a runtime come alcuni plugin per lo styling delle form html (jqTransform ad  esempio) che successivamente danno l’impossibilità di accedere a runtime agli elementi html precedentemente dichiarati.

Attualmente questo è il modo più semplice e pulito per effettuare la personalizzazione di checkbox html.

Il file zip con l’esempio è scaricabile cliccando qui.

L’importanza del mockup in wireframing per il Web. Uno sguardo al software Balsamiq Mockups.

Il wireframe è sostanzialmente la prima bozza del sito e serve a definire l’organizzazione dei contenuti e le funzionalità delle singole pagine web. Questo scheletro è composto da blocchi, tratti e didascalie, con lo scopo di descrivere e tenere traccia della disposizione dei vari elementi all’interno del layout, senza disegni, immagini o colori.

Esso è utile sia al webdesigner che al cliente perchè permette di definire a grandissime linee il layout e il risultato finale del sito web.
Potrà oltretutto essere alla base di ulteriore brainstorming nel caso si lavori in team e di essere riadattato e modificato velocemente in caso di necessità con un notevole risparmio di tempo e denaro.

Normalmente per accingersi a questo tipo di lavoro ognuno ha le sue regole e le proprie preferenze : chi preferisce fare sketching matita su carta classica, chi sketching matita su griglie apposite (o meglio template per lo sketch), chi si affida a software classici di grafica (photoshop, fireworks, paint shop pro …), chi invece a software specifici per wireframing.

Volevamo dunque parlare di Balsamiq, trovato a dir poco ottimo (testing e acquisto già dopo 3 giorni d’utilizzo).
Balsamiq è un prodotto tutto italiano di spopolato successo a livello mondiale: un software per sviluppatori, designer, progettisti e creativi, sviluppato per creare wireframe, ovvero design di interfacce utente.

Usandolo potrete facilmente creare schizzi di schermate per applicazioni di tutti i tipi: siti web, applicazioni web, deskop e mobile.

Il software ha il vantaggio di essere multipiattaforma (sia creativi Apple che Windows saranno entusiasti), è molto leggero ed easy ed un costo alla portata di qualunque tasca.
Ha tutto ciò di cui si ha bisogno per creare layout con interfacce anche complesse. Sono presenti numerosissimi controlli (permette di scaricarne numerosissimi altri gratuitamente dal sito e di scambiarli con la comunità) e offre il vantaggio di fare schizzi in stile hand made (come se fossero realmente fatti a mano) ad una velocità a dir poco impressionante se abituati a realizzarli a matita su carta o peggio ancora in programmi di grafica come photoshop.

Per rendere l’idea abbiamo realizzato un esempio con Balsamiq Mockups :

e successivamente abbiamo realizzato il design in photoshop sulla base dello sketching precedente ottenuto con Balsamiq :

In definitiva un utilissimo ed economicissimo strumento (appena 79 dollari) per definire in fare preliminare il risultato dell’interfaccia grafica e del layout.

Se siete designer provatelo non potrete farne a meno.

Maggiori informazioni direttamente nel loro sito ufficiale http://balsamiq.com/ da cui potrete scaricare anche una Demo perfettamente funzionante.

I problemi nel gestire un server dedicato o una VPS linux. Il vantaggio dei servizi managed.

E’ evidente che a differenza di un decennio fa il mondo dei server è cambiato in modo radicale.
L’hardware sempre più performante ed a basso costo, la banda sempre di migliore qualità ed ampiezza, la “moda” della virtualizzazione ad alte perfermance (Xen, Kvm, Vmware ad esempio), la concorrenza spietata tra i sempre maggiori fornitori italiani ed europei, hanno dato la possibilità di noleggiare un dedicato a prezzi stracciati nell’ordine dei 50/60 euro mensili, e server VPS da 20 euro (ed anche meno) al mese.

Con queste invitanti prerogative molti “ragazzini” e utenti si sono improvvisati sysadmin dalla notte alla mattina e si sono cimentati nella configurazione e amministrazione di server Linux.

L’esperienza accumulata in questi ultimi sei anni e i numerosi casi che ci han visto come risolutori di innumerevoli problemi (spesso anche gravi) per i nostri clienti ci ha portato a trarre una triste conclusione :
troppi utenti non hanno le competenze tecniche per gestire elegantemente un sistema linux“.

Ciò diventa un problema in quanto spesso sul server gestito dal “ragazzino” di turno, spesso manca un hardening che garantisce la sicurezza del sistema da parte di attaccanti, manca un firewall, manca un IDS, manca un tuning dei servizi atto ad ottimizzare le performance del server stesso, manca un sistema di backup e disaster recovery, e spesso e volentieri si fanno moltissime scelte sbagliate che potrebbero portare a fastidiosi downtime e fermi macchina, o nei casi più estremi ad una perdita parziale o totale dei dati.

Quello che più preoccupa è che questa moda del “sistemista fai da te” non è radicata solo nella psicologia curiosa e avventuriera dello smanettone di turno, che sceglie questa difficile strada per hostare e gestire il suo piccolo sito personale, ma è una moda in vigore anche nelle piccole e medie imprese dove sul loro serverino dedicato noleggiato a 50 euro al mese fanno girare l’ecommerce che è un elemento vitale per la loro azienda in quanto genera vendite ed introiti mensili pari a qualche centinaia di migliaia di euro.

C’è  purtroppo l’inconsapevolezza dei rischi a cui si va incontro approcciando la gestione di un server linux senza le giuste conoscenze tecniche, sperando che il buon pannello di controllo grafico (a prova d’idiota) come Plesk o cPanel possa essere l’ancora di salvezza per il sysadmin della domenica e possa essere l’altenativa ad anni di studi teorici e pratici passati a lanciare stranissimi comandi da un terminale di testo di fronte ad un cursore a forma di dollaro o cancelletto (shell unix n.d.r.).

Sicuramente questi “surrogati”, quali sono i pannelli di controllo, sono sufficienti a mandare avanti il tutto in modo piuttosto elegante e funzionale, almeno fino a quando il giocattolo non si rompe, o lo si rompe cliccando a caso ad eventuali richieste generate da questi pannelli di controllo web.

  • Quanti utenti Plesk ad esempio aggiornando ad una nuova versione si sono trovati il pannello non più accessibile perchè in fase di aggiornamento non venivano creata la tabella ‘servers’ relativa nel db mysql ? Come ci si comporta di fronte ad un errore di questo tipo : error-message on plesk – when i will create a db-user: Table ‘mysql.servers’ doesn’t exist ?
  • Quanti utenti Plesk ad esempio hanno ingenuamente aggiornato da PHP 5.2 a PHP 5.3 per accorgersi che i loro siti non funzionavano più a causa delle funzioni deprecate sul nuovo interprete ? Cosa fare poi ?

Sono  questi i casi in cui per fortuna (nostra, non loro) finiscono col contattarci e implorarci di risolvere il problema nel minor tempo possibile (e magari anche al costo di una pizza).

L’utente medio purtroppo che gestisce una VPS o un dedicato ha scarsa cultura informatica e finisce per diventare carne da macello nonchè vittima ed assassino allo stesso tempo.
Avere una macchina zombie ed essere ignori coautori di attacchi DDOS (attacchi distribuiti) porta nella più frequente delle ipotesi ad essere disconnessi dalla rete, fino nei casi più seri in cui la macchina viene usata come testa di ponte per un attacco verso un altro server in rete, ad esser denunciati per accesso abusivo a sistema informatico, e onde dimostrare in tribunale (mano al portafogli per gli avvocati e tante belle pratiche burocratiche e adempimenti da assolvere) che si è del tutto ignari della vicenda e che anche voi risultate parte lesa.

Non sarebbe stato meglio per l’azienda investire in personale qualificato affidando in outsourcing la gestione managed del loro server con un costo irrisorio che oscilla dai 50 ai 100 euro al mese ?

Non sarebbe stato meglio per quell’azienda che ha perso un intero sito ecommerce e l’intero DB clienti (causa mancanza backup e politiche di disaster recovery) affidare il loro business a sistemisti professionisti ?

Non sarebbe stato meglio per quell’azienda che decise di installare Fedora Linux optare per un sistema RPM based come CentOS che ha cicli di sviluppo decennali contro i cicli cortissimi di Fedora ?

Non sarebbe meglio se ognuno nella vita facesse ciò che sa fare, piuttosto che cimentarsi in smanettamenti virtuosi che possono portare al fallimento di un’azienda ?

Ricordando sempre  : “Ciò che non conosci potrebbe danneggiarti”.

Oracle is Evil ? Storia di un commento su Facebook : censura e considerazioni personali.

Oracle non ci piace. Non ci è mai piaciuta.
Non che non ci piacciano i loro prodotti (per cui forniamo assistenza e sviluppo), ma non ci piace il loro modo di far business.

Un’azienda di vecchio stampo, ricca e senza scrupoli che mira solo ed esclusivamente ai profitti fregandosene di concetti etici e community nate con l’avvento dell’Open Source.

Sarebbe da aprire un dibattito sull’acquisizione di Sun Microsystem e delle scelte adottate nei confronti dei prodotti Sun, un’azienda innovatrice che ha saputo stare sul mercato ai massimi livelli in simbiosi con la comunità Open Source.
Sarebbe appunto, ma non lo facciamo perchè non basterebbero migliaia di righe per approfondire l’argomento, per cui ci limiteremo solo a porre le seguenti domande :

  • A Oracle interessava veramente un DBMS nettamente inferiore al suo (MySQL), una suite da ufficio gratuita (OpenOffice), un linguaggio ormai in declino se non fosse usato da google su android (Java) ?
  • Ha veramente senso citare in tribunale Google per il codice Java integrato nella piattaforma Android ?

O ha acquistato Sun con l’unico scopo di fare da patent troll ?

Ognuno si faccia pure la propria idea in merito. A buoni intenditor poche parole.

Vale invece la pena spendere qualche parola, o meglio qualche riga, sulla vicenda di ieri 9 Maggio nella pagina Fan Ufficiale di Oracle http://www.facebook.com/Oracle, al commento del post giallo evidenziato in basso.

All’invito ad iscriversi alla Newsletter di Oracle Unbreakable Linux infatti, commento testualmenteOracle use Redhat package. Oracle is Evil.
Ne ricavo un ban dalla loro pagina ufficiale a cui mi riscrivo stamane cliccando mi piace, ma come si vede dallo screenshot precedente, non ho più la possibilità di commentare i loro post.

Cos’è stato detto di male ? Che Oracle a suo modo sfrutta i sorgenti di Redhat per trarne profitti ? Anche CentOS lo fa ma almeno lo fa a livello community e in modo etico e responsabile.
O forse Big Oracle si è “stranita” a causa dell’affermazione Oracle is Evil ?

E’ strano che al giorno d’oggi tutti puntano il dito contro Microsoft, Google, Facebook e nessuno se non pochi addetti ai lavori si rendano conto dei danni alla comunità che un’azienda come Oracle POTREBBE fare con la loro business strategy, avendo in mano prodotti tecnologici di rilevanza utilizzati in molteplici contesti e nella vita di tutti i giorni. (basti pensare MySQL e Java per fare un esempio).

E’ in questi casi che bisogna lodare Stallman e la sua licenza GPL alla base di moltissimi prodotti che Oracle dispone dopo l’acquisto di Sun, che permette fork di progetti vitali onde evitare il predominio di aziende sfacciate che non hanno scrupoli a far morire prodotti validi e di pubblica utilità solo per rimanere leader sul mercato.

iPad, iPhone, iDioti e siti web. Perchè non usare Adobe Flash nel web ?

Una delle limitazioni di iOS più sentite dagli utenti è la mancanza del Flash player.

Considerando dunque la crescita sempre più forte di dispotivi Apple come iPad e iPhone e l’ormai evidente noncuranza di Adobe nel fornire un player flash per questi dispositivi, diventa sempre più lecito chiedersi se ancora ha senso utilizzare questa tecnologia nello sviluppo di siti web.

Esistono diverse scuole di pensiero in proposito, alcune decisamente “forzate” in quanto alcuni webmaster usano solo ed esclusivamente Flash e rinnegare il loro strumento di lavoro significherebbe smettere di lavorare o quantomeno rimmettersi sui libri nello studio di tecnologie come XHTML, CSS, Ajax e i nuovi HTML5 e CSS3.

Vien subito da dire che Flash non è morto, si può ancora usare a patto di essere coscienti dei pro e dei contro che esso comporta e dunque ponderare coscientemente e intelligentemente l’utilizzo (e il modo di utilizzo) in base agli obiettivi che si vuol raggiungere.

A meno che non si vogliano ottenere effetti grafici strepitosi (Holliwoodiani oserei dire) ricchi di multimedialità audio e video, si può tranquillamente buttare Flash nel cestino e rimpiazzarlo elegantemente con l’html, i fogli di stile e qualche pizzico di AJAX.

Cioè permetterà di non perdere come target i potenziali visitatori che utilizzano i dispositivi di casa Apple e nello stesso tempo migliorare l’indicizzazione dai motori di ricerca rispetto ai poco indicizzabili siti flash.

Qualora non se ne possa proprio fare a meno invece l’ideale sarebbe quello di raddoppiare il budget per una doppia versione del sito web, una per i normali browser e una per i dispositivi che non dispongono di un player flash.

Tramite l’identificazione dell’user-agent del browser per via di linguaggi server side (Asp o PHP ad esempio) è possibile “dirottare” il navigatore verso un sito o l’altro a seconda del browser che si utilizza e dunque permettere la visualizzazione ad un parco utenza del 100%.

Noi facciamo valere la regola, se puoi evitare flash : evitalo.

Migrare server mail e caselle IMAP con Imapsync.

Può capitare di dover migrare per necessità proprie, caselle email o addirittura interi server mail che magari utilizzano formati di memorizzazione email diversi come Mailbox e Maildir, candidati incompatibili per una migrazione grezza spostando solamente i file da una cartella all’altra lavorando a livello filesystem, oppure semplicemente la volontà di voler migrare il contenuto di una casella mail (magari una di quelle gratuite come gmail, al nostro nuovo dominio).

La soluzione migliore, più professionale e performante è quella di utilizzare il tool IMAPSYNC che lavorando a riga di comando permette di effettuare una migrazione incrementale da casella A a casella B in modo del tutto indolore.

Questo tool recuperabile su http://freshmeat.net/projects/imapsync/ e disponibile per sistemi windows e Linux può essere installato con estrema semplicità tramite l’apt per i sistemi debian e derivati e yum per sistemi redhat derivati dopo aver aggiunto il repository Rpmforge alla configurazione di yum.

Il suo utilizzo è decisamente elementare: in pratica è necessario passargli i dati per collegarsi al server da cui copiare e poi quelli del server in cui vanno copiate le mail.
Questo un esempio di sintassi:

imapsync --host1 INDIRIZZO_SERVER1 --user1 UTENTE_1 --host2 INDIRIZZO_SERVER2 --user2 UTENTE_2 --authmech1 PLAIN --authmech2 PLAIN --noauthmd5 --ssl2

Ovviamente dovrete sostituire le parti in maiuscolo:

INDIRIZZO_SERVER1 e’ l’indirizzo IP o l’hostname del server numero 1
INDIRIZZO_SERVER2 e’ l’indirizzo IP o l’hostname del server numero 2
UTENTE_1 e’ l’utente sul server numero 1
UTENTE_2 e’ l’utente sul server numero 2

Lo script vi chiedera’ le password dei due utenti, dopodiche comincera’ la sincronizzazione.

Il parametro –ssl2 e’ necessario in quanto l’autenticazione PLAIN e’ solitamente permessa solo su canale criptato ssl.

imapsync ha il vantaggio di sincronizzare i server in maniera incrementale, i file gia’ sincronizzati non vengono piu’ spostati consentendo un minor tempo in caso di sincronizzazioni successive.

Tra le opzioni disponibili possiamo indicare se usare una connessione ssl, escudere messaggi troppo grossi o troppo vecchi e/o escudere intere directory.

Tuning e ottimizzazione server web linux. Quando il gioco si fa duro …

Quando il gioco si fa duro … i duri cominciano giocare” esclamava il buon John Belushi in Animal House.
Questa regola era validissima nei tempi passati in cui l’informatica era un terreno poco fertile, l’hardware aveva dei prezzi proibitivi e si era disposti a passare intere nottate in bianco per risparmiare 50k di RAM ottimizzando le routine più complesse direttamente in assembly.

Oggi il panorama è cambiato, l’hardware ha costi irrisori se paragonati a quelli dell’epoca e non c’è più tempo, capacità e voglia di ottimizzare : quando qualcosa non funziona bene si passa semplicemente ad hardware più potente. Quando la banda non basta più si compra più banda.

La convinzione ovvero che basti mettere mano al portafogli per risolvere tutti i problemi informatici del momento.

Questo è vero in alcuni casi ma rimane sempre una soluzione errata ed eticamente scorretta quando magari con un’ora di intelligente ottimizzazione si può incrementare le performance di oltre il 400%.
Il concetto è valido in particolar modo per i Webserver che sono spesso il risultato di sottocomponenti distinte (DBMS, Linguaggio lato server, Server web) su cui gira un sito internet che elabora dati e presenta contenuti multimediali al navigante.

Morale della favola : aspettate prima di montare un altro processore e quadruplicare la RAM, provate invece ad ottizzare le singole componenti software per rendere il sito web snello e scattante e in grado di sopravvivvere ad un traffico di centinaia di visite al secondo senza crashare.

Un buon modo di iniziare è sapere su cosa metter mano, ovvero ciò che il mercato offre nell’ambito di server LAMP, cosa installare e cosa ottimizzare per avere i miglior risultati possibili.

Innanzitutto vale sempre il metodo top-down, ovvero risolvere il problema scomponendo il problema in più sottoproblemi, ricordando in questo caso che l’inefficienza di ogni sottocomponente si ripercuoterà in modo incisivo sull’efficienza o meno dell’intero server. L’imperativo è dunque : evitare i colli di bottiglia.

Se ad esempio facciamo un uso massiccio di PHP, molti accessi concorrenti al Database con query complesse, utilizzo di CMS del calibro di Drupal, Joomla o WordPress e ci aspettiamo di riuscire a soddisfare una mole di richieste non indifferente bisogna seguire scrupolosamente i seguenti passi :

Scelta di un Hardware decente : ormai un server di fascia alta ce lo si può permettere per meno di 100 euro al mese. Configurazioni interessanti basate su intel i7 o addirittura Xeon, quad o six core, 12 giga o più in triple channel e dischi raid sata3.
Se si vuol essere performanti bisogna sempre fare una scelta a livello hardware adatta alle esigenze. Dischi SSD in RAID 1 sicuramente aumentano le performance diminuendo la latenza disco.
Se invece siamo nella condizione di avere un “macinino” e il nostro sito diventa sempre più popolare e non abbiamo voglia di migrare tutto su hardware più potente … ottimizziamo.
Qualunque siano i casi ottimizziamo a prescindere.

Web server : è ormai uno standard, lo danno installato di default con la nostra distribuzione Linux e ce lo teniamo come se fosse il miglior webserver del mondo. Apache esatto. Ottimo webserver facilmente ottimizzabile variando i parametri in httpd.conf.
Oppure possiamo optare per il meno conosciuto NGINX. Nginx si sta configurando sempre più chiaramente come una valida alternativa ad Apache: sembra infatti che, benchmark alla mano, Nginx risulti molto più leggero e performante del famoso rivale che spesso e volentieri soffre di memory leak i quali possono causare un consumo di memoria piuttosto “imbarazzante”. Se poi Nginx viene utilizzato in abbinamento con PHP FPM (FastCGI Process Manager), una versione di PHP ottimizzata per siti a traffico elevato, allora la differenza con la classica configurazione Apache+PHP diventa sensibile!

Database : normalmente ci si appoggia a MySQL come DBMS standard, più raramente a PostgreSQL. Database relazionali destinati alla realizzazione di progetti molto ambiziosi grazie a feature come integrità referenziale, stored procedure, stored function, viste, triggers, transazioni ACID.
Qualora il vostro sito non faccia uso di queste funzionalità optate per un DBMS senza queste funzioni ma più veloce e performante come ad esempio Drizzle.
Se siete pigri per passare a Drizzle e l’applicazione web (o sito) non ha una business logic complessa e non avete bisogno dell’integrità referenziale e tutte le altre belle cosucce elencate prima limitatevi a utilizzare tabelle MyISAM di MySQL piuttosto che le più complete ma meno performanti InnoDB.
A livello di progettazione Database vale la pena ricordare che una progettazione ad-hoc è fondamentale per una buona performance dell’intero progetto. Dunque ottimizzare i tipi di dato in uso nella creazione del database, le giuste tabelle, eliminare le ridondanze, fare un buon uso di indici, partizionare le tabelle, ma sopratutto ottimizzare le query SQL. A volte la performance di una query ottimizzata può essere di oltre il 1000 % (mille avete letto bene).
Una meticolosa analisi in ambito di progettazione a partire da uno schema E/R corretto è d’obbligo.
Vale la pena ricordare che un corretto tuning delle variabili d’ambiente in my.cnf (il file di configurazione di MySQL) può portare a vantaggi tangibili (spesso addirittura notevoli) sopratutto all’aumentare delle richieste concorrenti.

Script server side : diamo per scontato che programmiate in PHP e che dunque gli script siano scritti bene, o se magari non l’abbiate scritti voi che comunque siano performanti, o che comunque performanti o non performanti che siano non avete la possibilità o la capacità per modificarli.
E’ bene sapere che esistono degli opcode cacher per PHP come APC o eAccelerator che possono far risparmiare importanti risorse nella fase di fetching del codice php. Sarebbe complesso e decisamente lungo da spiegare nel dettaglio ma vi basti sapere che in media con l’adozione di tali strumenti (gratis oltretutto) le prestazioni aumentano da un 50% fino ad oltre il 400%.

Qualora intendiate dunque ottimizzare le performance del vostro sito web o vogliate consulenza per la realizzazione di siti web ad alto traffico, contattateci. Siamo in grado di metter mano ad ogni aspetto del vostro webserver e aumentare sensibilmente l’efficienza del vostro server benchmark alla mano.

Linux compie 20 anni. Buon compleanno Linux.

Linux (o GNU/Linux), è un sistema operativo libero di tipo Unix (o unix-like) costituito dall’integrazione del kernel Linux con elementi del sistema GNU e di altro software sviluppato e
distribuito con licenza GNU GPL o con altre licenze libere. Supporto da società come IBM, Sun Microsystems, Hewlett-Packard, Red Hat e Novell.

20 anni fa Linus Torvalds decise di condividere col mondo il suo sistema operativo embrionale. Poco dopo insieme a Richard Stallman creatore del progetto GNU, abbracciò la licenza GPL (GNU Public License).
Numerosi sviluppatori parteciparono al progetto contribuendo con la scrittura di codice e da allora  Linux è cresciuto ogni giorno di più.

Attualmente Linux viene utilizzato inconsapevolmente in molti aspetti della nostra vita quotidiana. Linux infatti è dentro i telefonini, dentro i bancomat, distributori automatici, elettrodomestici, apparecchiature medicali, GPS, Server,  ed è alla base di numerosissimi successi tra cui : Google, Facebook, Amazon, Twitter. Si può affermare che ogni volta che si naviga in rete inconsapevolmente si usa un servizio che gira su Linux.

Linux è anche un sistema operativo per server e fa funzionare i 10 supercomputer più veloci nel mondo.

Buon compleanno Linux.