venerdì 12 ottobre 2012

Troppo bello per essere vero :/

Nel penultimo post esultavo per la rinascita del mio vecchio portatile, il cui chip grafico si é, diciamo così, 'cotto'. Dopo due settimane siamo al punto di partenza: computer inutilizzabile, e io che mi arrangio a scrivere questo post con lo smartphone. Nei prossimi giorni deciderò se riprovarci o se passare oltre.

giovedì 27 settembre 2012

Restyling curriculum


Ok era giunta l'ora. Anni e anni di lavoro ed esperienze varie non avevano fatto altro che ingrassare il mio curriculum vitae che, tra l'altro, in questi giorni ha ripreso a circolare in diversi contesti, non ultimo quello di un progetto di ricerca europeo nel quale l'azienda per cui lavoro mi ha coinvolto. Rivedendolo, tre giorni fa, mi ha dato l'impressione di qualcosa di prolisso, datato, e graficamente pesante. Era necessaria una robusta sforbiciata. Via tutte quelle informazioni che, seppur vere, andavano a riempire un malloppo di sei pagine che io stesso mi sarei rifiutato di guardare. Dopo aver letto qualche post del gruppo Linkedin Restyling curriculum senza lucro (da cui ho preso in prestito il titolo del post), ho optato per un il formato europass scaricabile dall'omonimo sito. Il risultato è visionabile, come sempre dal link accanto.

Notte

lunedì 24 settembre 2012

La rinascita...

Bene, nello spirito del blog, riporterò quanto successo al mio laptop, un dell precision m4300 con scheda video nVIDIA Quadro FX 360M con 512MB. Ok non è una macchina recente, ma con alcuni ritocchi, come i 4Gb di RAM, ed l'HDD ibrido SSHD Seagate Momentus XT da 500Gb + 4Gb SSD, hanno reso l'esperienza con Ubuntu 12.04 LTS estremamente efficace. Veniamo al sodo. La settimana scorsa avviando il computer come al solito mi sono trovato di fronte ad una schermata d'avvio con degli strani artefatti, ed all'avvio del sistema operativo niente supporto grafico.


"Ok è un problema di Ubuntu..., avviamo Windows 7...". Peggio niente supporto grafico, e tra i dispositivi di sistema, l'icona della scheda grafica è barrata da una X molto esplicita. Avete presente la scena dell'aereo più pazzo del mondo? "No panic, ...no panic, ...OK PANIC!!!". Piccola ricerca su internet dallo smartphone, e... . E' un problema noto del mio laptop, per il quale negli Stati Uniti c'è stata una class action che ha obbligato DELL ad estendere la garanzia e sostituire tutte le schede madri affette dal problema. Purtoppo io il mio M4300 l'ho comprato in Italia, quindi niente sostituzione. AMEN. Ormai rassegnato, ho iniziato una piccola indagine di mercato per un potenziale sostituto. Tuttavia l'idea di buttare una macchina che poteva ancora dare tanto mi rodeva e non poco. Mi rimetto su internet e scopro che un problema del tutto simile a quello presentato alla mia nVIDIA è comune a tutte le schede grafiche ad alte prestazioni, legato alle saldature BGA saltate a causa delle alte temperature d'esercizio. Soluzioni possibili:
  1. Ripristinare la saldatura ad un costo non inferiore ai 100€, e con un esito incerto;
  2. il seguente tutorial trovato Youtube.


Ok nel laboratorio di elettronica una saldatrice ad aria calda c'è, ed un tentativo non costa niente.... Risultato: SI PUO' FAAREE!!! ed infatti sto scrivendo questo post con il portatile rinato.

Speriamo che duri...

Enjoy


sabato 18 agosto 2012

Un piccolo suggerimento...

Nel video un suggerimento ovvio (spero) per i pochi (spero) che non hanno ancora deciso di utilizzare uno strumento di controllo di versione distribuito DVCS.




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

giovedì 22 marzo 2012

Rossella Urru LIBERA!

Anche se non è nello spirito del blog, nell'occasione del suo compleanno, voglio rinnovare l'appello per la liberazione di Rossella Urru e di tutti quelli che, come lei, italiani e non, sono nelle mani di rapitori, mercenari e terroristi.

LIBERATELI!!!

martedì 13 marzo 2012

A Better Way To Program

Segnalo un articolo raggiungibile dal link che riporta il video sotto che, cito: "cambierà il vostro modo di pensare alla programmazione". E' un abbastanza lungo, ma vale la pena spendere un pò di tempo per guardare il nostro lavoro/divertimento da un'altra prospettiva.



Enjoy

giovedì 8 marzo 2012

Mirroring di MySQL

logo-mysql-110x57Primo post del 2012 (è ovvio che non sono un blogger molto prolifico, ma la ‘mission’ del blog è quella del quaderno degli appunti ad uso più che altro personale). L’argomento del post è la configurazione di due server, un master ed uno slave, sul quale un database viene replicato al fine di:
  • realizzare un sistema ridondante che garantisca l’immediata disponibilità dei dati in caso di problemi tecnici sul server che ospita il master. In questo modo è possibile commutare sul server che ospita lo slave interrompendo il processo produttivo per un tempo minimo.
  • ottenere un efficace sistema per il bilanciamento del carico del sistema, che consenta di eseguire le operazioni di scrittura sul master e quelle di lettura sullo slave.
  • consentire backup frequenti dei dati senza inficiare le prestazioni del master.
Ovviamente per le informazioni che seguono sono state tratte dalla documentazione ufficiale: http://dev.mysql.com/doc/refman/5.6/en/replication.html.

Configurazione del master

  1. Nel file di configurazione di MySql (my.ini o my.cnf a seconda che il database sia ospitato su server Windows o Linux), individuare il gruppo di parametri sotto la chiave [mysqld], ed aggiungere le seguenti chiavi:
    server-id=1
    log-bin=mysql-bin
  2. Riavviare il server, riavviando il relativo servizio mysqld;
  3. Creare un nuovo utente con privilegi di replica, seguendo I seguenti passi:
    1. Accedere ad una shell di comando mysql con il comando
      mysql –u <username> –p<password>
    2. mysql> GRANT REPLICATION SLAVE ON *.* TO ‘user’@’%’ IDENTIFIED BY ‘password’;oppure
      mysql> GRANT REPLICATION SLAVE ON *.* TO ‘user’@’IP dello slave’ IDENTIFIED BY ‘password’;
      Per precisione l’utente ‘user’ dovrebbe essere creato con il comando:
      mysql> CREATE USER ‘user’@’%’ IDENTIFIED BY ‘password’
      o
      mysql> CREATE USER ‘user’@’IP dello slave’ IDENTIFIED BY ‘password’
      ma l’esecuzione del solo comando GRANT ha come effetto la creazione dell’utente nel caso quest’ultimo non esista.
  4. Bloccare le scritture sul server per consentirne la ‘clonazione’ sullo slave, eseguendo sulla shell di mysql il comando:
    FLUSH TABLES WITH READ LOCK;
  5. Copiare il database dal master allo slave copiando fisicamente I files di mysql o mediante il comando mysqldump
    mysqldump –u ‘user’ –p’password’ db_instance>db_instance.sql;
    mysql –u ‘user’ –p’password’  db_instance< db_instance.sql;

    o, in alternativa, è possibile creare un'istanza vuota del database dal prompt di mySQL
    mysql>CREATE DATABASE db_instance;
    e, successivamente, eseguire il dump via rete:
    mysqldump –u ‘user’ –p’password’ db_instance | mysql –u ‘user’ –p’password’ -h'hostname' db_instance
  6. Sulla shell di mysql eseguire il comando
    SHOW MASTER STATUS;
    che ritornerà lo stato del file di log del master, ed il punto nel file in cui il master si trova prima del blocco eseguito al punto 3. Prendiamo nota di queste informazioni che serviranno nel seguito;

Configurazione dello slave

  1. Nel file di configurazione di mysql aggiungere alla sezione [mysqld] la chiave
    server-id=2
    o qualunque valore intero diverso da quello utilizzato per la configurazione del master;
  2. Riavviare il servizio mysqld;
  3. Da una shell di comando di mysql lanciata sullo slave, lanciare il comando:
    CHANGE MASTER TO
    MASTER_HOST=’X.X.X.X’,
    MASTER_USER=’user’,
    MASTER_PASSWORD=’password’,
    MASTER_PORT=3306,
    MASTER_LOG_FILE=’mysql-bin.000001’,
    MASTER_LOG_POS=98,
    MASTER_CONNECT_RETRY=10;

    modificando il valore dei parametri in modo concorde alla configurazione del master.
  4. Sempre dalla shell di mysql eseguire il comando
    START SLAVE;
  5. Sbloccare la scrittura sul master con il comando (ovviamente da un prompt di mySQL collegato al master)
    UNLOCK TABLES;
Se tutto è andato a buon fine, nel file di log di mysql dello slave dovrebbe esserci qualcosa di simile:
091104 8:42:02 [Note] Slave I/O thread: connected to master ‘root@X.X.X.X:3306?, replication started in log ‘mysql-bin.000001? at position 98
Enjoy.