giovedì 26 aprile 2012

MySQL case sensitiveness on Windows Platform

Come si evince dal titolo, il problema è il seguente: Se creo un database o una tabella su un RDBMS MySQL installato su sistemi windows, i relativi nomi sono sempre minuscoli (lowercase). La ragione di tale comportamento sta nel fatto che il filesystem del sistema operativo di Microsoft è case insensitive, ovvero il nome di files e/o cartelle viene sempre considerato minuscolo. Di norma questo non è un problema, tranne che in queste due situazioni (almeno quelle di cui sono a conoscenza):
  • Voglio fare il deploy del mio database da un server Windows ad uno Linux. Poichè il filesystem quest'ultimo è case sensitive, tutte le queries, procedure e funzioni scritte per la piattaforma Microsoft, con buona probabilità smetteranno di funzionare sul nuovo server;
  • Voglio fare il porting del mio database verso un RDBMS case sensitive come, ad esempio, SQL Server. Stesso problema.
La causa del problema, sta nella configurazione iniziale di MySQL, ed in particolare nella chiave del file di configurazione lower_case_table_names che, per default ha valore 0 (zero, nomi di database e tabelle sono salvati su disco in modo case sensitive) su piattaforme Linux e valore 1 (in nomi di database e tabelle sono salvati sempre in minuscolo) su quelle Windows o Mac OSX. Esiste una terza alternativa che prevede il valore 2 per tale parametro, valore per il quale i nomi di database e tabelle vengono salvati su disco così come sono stati scritti nelle queries di creazione, ma nelle operazioni di confronto, MySQL li tratta tutti come se fossero scritti in minuscolo.  Una trattazione più scientifica è data dalla documentazione ufficiale di MySQL che può essere ragguinta da qui.
Come modificare il parametro in questione? Semplice.
  1. Modificare o aggiungere al file di configurazione di MySQL, my.ini, il valore lower_case_table_names = 2;
  2. Riavviare il servizio di MySQL;

Enjoy

mercoledì 18 aprile 2012

in beetween…(windows and linux) episode 2

Continuiamo la breve rassegna di strumenti cross-platform che possono tornare utili nell’utilizzo quotidiano del nostro PC a prescindere, per quanto possibile, dal sistema operativo che ci gira sopra.
Per la categoria alternative a microsoft office:
OOo_Website_v2_copy
OpenOffice, anzi, ora Apache OpenOffice (incubating) è il pacchetto che sostituisce egregiamente il concorrente a pagamento di microsoft, sulle mie macchine Windows da diversi anni. Anche per questo pacchetto vale il supporto per piattaforme windows, linux ed apple.

libre_office
Nato da un fork di OpenOffice.org dopo l’acquisizione di quest’ultimo da parte di Oracle, LibreOffice, è la suite di produttività personale che accompagna di default le ultime versioni di Ubuntu. Anche per questo pacchetto sono disponibili versioni per Windows, Linux e MAC
enjoy

sabato 14 aprile 2012

in beetween…(windows and linux)

Come già detto in un altro post, la mia ‘vita informatica’ è sospesa tra due mondi. Per l'a precisione tra due sistemi operativi. Il primo, Windows (in tutte le sue varianti) è il mondo nel quale è ambientata la mia vita lavorativa, Linux (per la precisione Ubuntu nell’ultima delle sue release) l’ambiente che uso maggiormente per I miei hobbies. Per ridurre al minimo le difficoltà di ambientamento tra le due realtà, ho individuato una serie di strumenti cross-platform con I quali eseguire le operazioni più comuni (scrivere, disegnare ritoccare foto, …). Questo post inizia una serie di suggeriementi o mini recensioni di softwares gratuiti (il che non guasta) per eseguire i compiti di tutti I giorni senza curarsi dello sbattimento che inevitabilmente nasce passando da uno strumento all’altro.

Inizio la serie con l’ultimo degli strumenti installati. Si tratta di un CAD bidimensionale che, per un utilizzo base, sostituisce egregiamente il ben più noto AutoCAD e che a differenza di quest’ultimo è supportato per I seguenti sistemi operativi:

  • Windows;ds
  • Mac OS X;
  • Linux Ubuntu;
  • Linux Fedora;
  • Linux Suse;
  • Linux Mandriva;

L’oggetto in questione è DraftSight, prodotto da Dassault Systemes (quelli di SOLIDWorks per intenderci). I giudizi sul web sono per lo più buoni. L’ho già detto che è GRATIS.

Enjoy