2011-12-11

Upgrade TaskUnZip for SSIS

Ho aggiornato il tool TaskUnZip for SSIS. Permette di gestire, comprimere e decomprimere file zip all'interno di un flusso di SSIS.

Per maggiori informazioni qui: http://taskunzip.codeplex.com/.

Ver. 1.3.0.1
  • Add: Support SQL SERVER 2008 and SQL SERVER 2008 R2.
  • Add: installation batch file for x86 e x64 (tnx JohannesHoppe).
  • Upgrade sample with foreach loop task.
  • Upgrade SharpZipLib for .NET Framework ver. 0.86.
  • Upgrade solution to Visual Studio 2010.
  • Remove version for SQL Server 2005 (use ver. 1.2.0.0).

un paio di libri...

Consiglio un paio di libretti per rilassare il neurone durante le ferie natalizie...

Arduino. La guida ufficiale: l’ho quasi finito di leggere. Un libro che vi introduce nel fantastico mondo di Arduino e dell’elettronica. L’autore (tra le altre cose ingegnere che ha partecipato alla progettazione di Arduino stesso) è molto bravo nell’accompagnare il lettore capitolo dopo capitolo nell’approfondire le varie tematiche.

http://www.amazon.it/Arduino-guida-ufficiale-Informatica-Massimo/dp/8848124240/ref=sr_1_1?ie=UTF8&qid=1323597891&sr=8-1

iWoz: Computer Geek to Cult Icon e (ovviamente) Steve Jobs: ho già ad entrambi dato una veloce occhiata e devo dire che trovo quello di “Woz” sicuramente più interessante. Forse per il modo di approcciare la discussione o per gli argomenti trattati... in ogni caso fra i due ad un primo impatto preferisco quello di Steve Wozniak.

http://www.amazon.it/iWoz-Computer-Geek-Cult-ebook/dp/B000VUCIZO/ref=sr_1_3?ie=UTF8&qid=1323599582&sr=8-3

http://www.amazon.it/Steve-Jobs-Italian-Edition-ebook/dp/B00606NPIW/ref=sr_1_4?ie=UTF8&qid=1323598481&sr=8-4

Questi ultimi due libri sono disponibili anche per Kindle.

2011-10-15

Powershell e Svn Dump

Scrivo questo post, perché magari risparmio a qualcuno la perdita di circa un ora di tempo e un principio di infarto... :)

Questa mattina aggiorno SVN alla versione 1.7. Rivedo gli script di backup, anche perché con la ver. 1.7 è stato introdotta una nuova utility -svnrdump- per eseguire il dump, e mi viene la brillante idea di utilizzare Powershell per eseguire gli script di backup e di verifica.

Realizzo un dump di prova per verificare che tutto sia ok e per sicurezza eseguo anche il restore. Il dump va a buon fine ... il restore non tanto. In un primo momento penso che sia dovuto al cambio di versione, ma prestando più attenzione noto che il dump è di dimensione quasi doppie rispetto al precedente. C'è qualcosa che non torna.

Esaminando il file di dump noto che il contenuto è formattato diversamente, quindi (per esclusione) riprovo a fare tutta la trafila senza utilizzare la Powershell, tutto torna a funzionare correttamente.

A questo punto mi sorge il dubbio che la Powershell abbia una modalità di funzionamento (per quanto riguarda i comandi in pipe) che risulta essere non compatibile con SVN e facendo una ricerca con Google il mio dubbio sembrerebbe essere confermato.

Farò altre indagini...


2011-09-10

FlyJSONP

Un utile libreria per gestire richieste (get e post) cross-domain via json.

http://alotaiba.github.com/FlyJSONP/

2011-09-01

2011-08-25

Amazon Kindle!

Lunedì avevo fatto l'ordine per acquistare un Kindle sul web site Amazon.com. Ho notato che ancora Amazon non ha messo a disposizione il Kindle qui in Italia.

Detto questo ieri mi è stato consegnato in ufficio...

Il pacchetto che contiene il Kindle è interamente in cartone, spacchettato il contenuto è costituito dal suddetto Kindle, un cavetto USB e un breve manuale.
Essenziale.

Quello che mi ha colpito è stato che una volta spacchettato il lettore, noto che sul display è presente una scritta. In un primo momento pensavo che fosse un semplice foglio illustrativo e vado (o tento) per toglierlo, scoprendo che in verità il lettore era già acceso!!

Il display è davvero notevole! La lettura avviene in maniera assolutamente naturale e non risulta assolutamente "stressante" per gli occhi. Il peso è contenuto e sia le braccia che i polsi non ne risentono anche dopo qualche ora. Se poi si ha l'accortezza di regolare le opzioni che riguardano la visualizzazione dei font... il gioco è fatto.

Ho preso il 6 pollici.
Non sapendo se lo avessi trovato comodo ho voluto evitare di prendere il modello da 10', ma se da qui a qualche mese non riscontro grossi problemi probabilmente acquisterò anche il modello più grande.

Lo inauguro con due libri: "Metro 2033" e "Start Small, Stay Small: A Developer's Guide to Launching a Startup".

Alla prossima...

2011-08-24

TortoiseSVN e Ommwriter

Qualche settimana fa è stata rilasciata la nuova release di TortoiseSVN (1.7 Beta2). Tante piccole novità sia a livello di funzionalità che per quanto riguarda l'integrazione con il sistema operativo. Se si possiede Windows 7 il nostro TortoiseSVN si integrerà molto meglio non solo con la shell (menu click destro del mouse) ma anche con il menu in alto. Segnalo anche, per i possessori di Total Commander, che adesso anche utilizzando la versione X64 di TortoiseSVN è possibile eseguire direttamente le varie operazioni senza dover passare dall'apposito menu (X64) e sono sempre visibili gli overlay sulle icone (yeaaaaa!).

Altro programmino che segnalo è quello con cui sto editando questo post. E' un editor un po vecchiotto, uscito qualche tempo fa (se non sbaglio) su Mac e ultimamente "portato" anche su Windows. Ommwriter. Vi lascio scoprire a voi potenzialità e limiti...

2011-07-27

Cassandra 1

Con questo post apro (tempo permettendo ;) ) una serie di post dedicati a questo No-SQL Database.

Cassandra è un database NO-SQL che garantisce alte prestazioni e alti livelli di scalabilità. Le strutture dati messe a disposizione e le relative funzionalità sono (volutamente) ridotte al minimo indispensabile. Come vedremo più avanti, Cassandra non offre funzionalità avanzate per quanto riguarda l'archiviazione dei dati o la ricerca. Uno degli obiettivi che il progetto Cassandra si è posto, è quello di offrire uno strumento che garantisca prestazioni eccellenti, garantendo sempre la disponibilità dei dati. Prima di trattare più nel dettaglio il funzionamento e le funzionalità messe a disposizione da Cassandra, è bene sapere che ad oggi sono disponibili driver che permettono di interagire con il suddetto database, per piattaforma C#, Java, Python, Php e Ruby. Per ragioni di progetto il sottoscritto ha utilizzato la soluzione Python su Windows / Linux.


Breve (molto breve) introduzione...

Cassandra si allontana parecchio dalla concezione classica di database relazionale; una struttura basata su una matrice di righe e colonne. Non per nulla è classificato fra i database "Column oriented" :-).
A questo punto vale la pena introdurre un paio di concetti nuovi.
Quello che sicuramente può spiazzare in un primo momento è la semplicità delle strutture dati e le funzionalità messe a disposizione da Cassandra.
Tutto in Cassandra si potrebbe riassumere in una struttura ricorsiva (a quattro o cinque livelli) basate sul concetto di chiave / valore.

  • Column Family:è una struttura (forse la più complessa) che funge da contenitore delle Colonne e il relativo Valore.
  • La Chiave: è l'entità principale per mezzo della quale Cassandra può recuperare i dati contenuti in una Column Family. La chiave deve essere univoca a livello di Column Family, può essere generata applicativamente e può essere un numero, una stringa, una data (timestamp) o un generico uuid. Più avanti farò un breve cenno a quali sono i tipi dati supportati da Cassandra.
  • Colonna: all’interno di una Column Family trovano posto una o più coppie chiave / valore, dove la chiave viene chiamata Colonna. L’unione di una chiave il suo relativo set di Colonne è chiamato “Riga”. 

Queste tre entità sono le principali e quelle per mezzo delle quali Cassandra gestisce i dati. Per completezza aggiungo:


  • KeySpaces: che si potrebbe paragonare al database, quindi un “contenitore” di Column Family e relative Chiavi. Il KeySpaces ha anche l’importante ruolo di stabilire il fattore di replica (quante copie di ogni singola Riga devono essere garantite) e la tipologia di replica.
  • Super Column: è un aggregato di Column Family. Torna molto utile per creare legami fra più Column Family. Per quanto riguarda i KeySpaces e le SuperColumns verranno approfonditi più avanti.


Tipi dati supportati

Cassandra ha una gestione dei dati relativamente e volutamente “lasca”. Sia le chiavi che i nomi che verranno dati alle colonne devono essere caratterizzati da una tipologia, questo per due motivi:

  1. la tipologia assegnata ad una entità ne caratterizza anche il suo ordinamento
  2. viene applicato un controllo dei dati in ingresso e se non rispettano la tipologia assegnata all'entità, Cassandra genererà un eccezione. 

Detto questo in ogni caso e bene precisare che la tipologia non è obbligatoria assegnarla e nel caso in cui non venga specificata viene applicata quella di default (BytesType) che praticamente accetta di tutto ;-) applicando un generico ordinamento.

Le seguenti tipologie di dati, sono quelle che Cassandra gestisce nativamente. E’ possibile estendere per mezzo di moduli scritti ad-hoc le suddette tipologie native o crearne di nuove.

  • AsciiType
  • BytesType
  • LexicalUUIDType: generico UUID a 128 bit
  • LongType: generico numero a 64bit.
  • IntegerType: generico numero a 32 bit (più veloce da gestire rispetto il Long)
  • TimeUUIDType: Cassandra non gestisce nativamente il tipo dati “Datetime”, bensì lo converte in un UUID a 128 bit.
  • UTF8Type: più lento rispetto al tipo ASCII. Utile nel caso in cui si lavori per esempio con XML

Con questo chiudiamo. Nel prossimo post approfondiremo le Colonne, SuperColonne e le Chiavi.

2011-06-23

Python

E’ da un po di tempo che non scrivo, il motivo è che nel frattempo son cambiate parecchie cose, non ultimo anche il posto di lavoro e tanti impegni personali mi hanno spinto a trascurare il blog. Il tempo è sempre pochissimo, ma volevo condividere il forte interesse che, per ragioni di lavoro, mi hanno spinto ad approcciare questo “nuovo” linguaggio.

Che dire se non che è davvero straordinario, semplice, con una comunità enorme e grandi realtà (chi ha parlato di Google?) che lo supportano.