Americo gravinese

Nov 9, 2010 - 0 comments - Archiviato in: #Cazzate

Piccole e grandi coincidenze tra la lingua americana e il dialetto gravinese, valide in un intorno con un raggio di 10km massimo.

Stingy (sting’): tirchio
Droopy (drupè): in inglese maldestro, in gravinese “cadere”
Damage (dammagge): stesso significato

Bonus: mouse (mauus). Verso di richiamo per gatti, non sto scherzando. Sinceramente non ho nessuna teoria a riguardo.

-quack

Lunedì quiz - 5

Nov 8, 2010 - 0 comments - Archiviato in: #Cazzate

Data una struttura che rappresenta un nodo “persona” con due puntatori ai nodi “genitori” (padre e madre); dati due nodi di partenza, scrivere una funziona che determini se i due nodi hanno un antenato in comune.

-quack

Offsite backup–parte 4: finale?

Nov 2, 2010 - 0 comments - Archiviato in: #Backup

I pezzi del puzzle e gli appuntamenti precedenti:

  1. la prima parte era dedicata ai requirement generali
  2. la seconda parte, dedicata ai punti fondamentali e ad una analisi delle possibili soluzioni
  3. la terza parte a come ho risolto il problema del criptaggio dei dati
  4. un intermezzo dedicato ad un piccolo problema con SSH

Questo post finale è dedicato al mettere insieme i vari pezzi che compongono la mia soluzione.

Hardware: un HD esterno Seagate con dock. Il vantaggio di tale soluzione è che ci sono dei dock con micro-Linux che potrebbero funzionare stand-alone ad un costo irrisorio per le funzionalità offerte. Ad ogni modo mi sono limitato ad usarlo come unità esterna collegata al PC offsite.

Software:

  • OpenSSH, da installare in versione server sul server casalingo. Ovviamente va aperta l’apposita porta (22) sul firewall. Discusso in dettaglio al punto 3 di cui sopra.
  • Un client SSH fatto a mano: non è pronto per il mondo in quanto c’è ancora qualche baco da sistemare, ma l’idea è di creare un client inossidabile. Gli altri client che ho provato hanno il difetto di disconnettersi senza avvertire.
  • DeltaCopy, una versione grafica di RSync. Da installare lato client sul server casalingo e lato server sul PC offsite. Ho provato tante GUI ma questa seppur spartana ha tutte le feature che interessano: task scheduler integrato con quello di sistema e client SMTP che alla fine di ogni backup invia una mail dettagliata
  • PeoneFS, vedasi punto due di cui sopra

Praticamente il PC offsite si collega via SSH al server casalingo. Nel collegarsi crea un tunnel-rovesciato sulla porta di RSync (873). Questo significa che la porta 873 sul server di casa sarà un tonnel alla stessa porta del server RSync sul PC offsite. Sul server casalingo ci gira il client RSync e PeoneFS; il client è configurato per fare il backup dal drive PeoneFS al server RSync ad una certa ora specifica di ogni giorno.

Sperando che un diagramma valga più di cento parole:

OffsiteDiagram

Possibili miglioramenti: rsync, per quanto sia molto efficiente nel trasferire spezzoni di file, non mi sembra sia altrettanto efficiente nel caso di confronto di directory molto ampie. Quando ci sono tantissimi file in ballo come nel mio caso un backup dura almeno un’ora. Sto pensando ad un modo di utilizzare il Remote Differential Protocol in combinazione con il Sync Framework per ottenere il migliore dei mondi possibili. Ma questo è un progetto per più di un weekend.

-quack

Lunedì quiz - 4

Nov 1, 2010 - 0 comments - Archiviato in:

Data una matrice di caratteri NxM ed un array di stringhe che definisce un vocabolario, trovare tutte i vocaboli contenuti nella griglia usando le regole del paroliere. Ovvero: si può partire da qualsiasi lettera e muoversi in ciascuna delle otto direzioni (incluse le diagonali) passando per una determinata lettera solo una volta. Esempio la parola ROZZA nella griglia qui sotto:

image

La griglia ha dimensioni conosciute ma non determinate a priori (ovvero non si può ottimizzare su dimensioni specifiche).

-quack

Weekend coding

Oct 29, 2010 - 0 comments - Archiviato in: #Codice

Uno degli spezzoni più topici di “Office Space” è il momento in cui il protagonista chiede al vicino di casa che cosa farebbe se avesse un conto in banca multi milionario: spiega che il modo in cui una persona risponde da indicazioni sulle proprie inclinazioni e trovare un lavoro che risponda a tali inclinazioni è fonte di quotidiana serenità. Il vicino di casa per la verità un po’ rustico risponde che con un tal conto in banca farebbe un mini Bunga Bunga party (two chicks at the same time, man!). Il tutto mi ha fatto riflettere su come ho speso una piccola parte del mio weekend scorso…

lawrence-office-space

Eravamo rimasti che con MyMovies ho avuto l’opportunità per utilizzare al meglio le quintalate di byte non utilizzate. Ho pensato perciò al modo più pratico di rippare i neo-classici senza sbattermi tanto. Ho creato una piccola applicazione che non fa altro che aspettare l’inserimento di un DVD, copiarne il contenuto e sputarlo fuori. L’unica operazione manuale rimanente è quella di sfilare un DVD e infilarne un altro. Mi è sembrato opportuno fare girare l’applicazione sul server che di suo è sempre online, ma ci voleva un sistema per notificare che tutto andasse per il verso giusto o meno senza dover tenere gli occhi incollati ad uno schermo. Ho deciso per una notifica audio con tre wav distinti: uno “accessing data” per indicare che il DVD video è stato riconosciuto come tale e due suoni distinti per indicare l’esito del ripping con o senza errori. A questo punto, forte dell’esperienza di PeoneFS, ho deciso di convertire l’applicazione in un servizio (demone) in modo tale da essere resiliente al reboot e non richiedere un’utenza loggata per il tutto. Ovviamente sviluppo su Windows 7 e con dei brevi esperimenti non sono riuscito a trovare il modo per far proferire neppure un sibilo dal servizio tirato su alla meno peggio; mi son meravigliato della cosa e cercando su Google ho trovato le teorie più assurde: all’atto pratico però l’audio era perfettamente funzionante su XP/Win2k3. Ho deciso di chiedere delucidazioni interne e…

…sorpresa! Il problema è dovuto ad un baco introdotto in Windows Vista dovuto al fatto che la sessione in cui girano i servizi non è più la stessa di quella in cui gira il desktop. Un mio collega mi ha ringraziato per la scoperta ma dubito che il baco verrà sistemato con i prossimi SP. Io mi son tranquillizzato, seguirà un po’ di fit&finish e vai con un bel ripping di massa.

-quack

My Movies

Oct 27, 2010 - 0 comments - Archiviato in: #Recensioni

Disclaimer: i creatori di questa applicazione WorkWare promettono una licenza in regalo per chi fa una recensione. Io però non ho ancora visto niente e comunque la “recensione” la faccio volentieri lo stesso.

Ho un serverozzo che ha ormai due slot da 3.5” liberi; ho un paio di HD impolverati da qualche tera e una prateria di byte disponibili in diminuzione costante ma non tragica. Ho pensato di utilizzare piccole lande di byte per rippare i film più neo-classici della filmografia italiana quando ho scoperto l’esistenza di “my movies”. Un plugin per Windows Media Center e Windows Home Server che permette di gestire la libreria virtuale.

L’applicazione – accoppiata con un WebService favoloso – è una bomba in quanto fa da:

  1. gestione della collezione con tanto di meta-dati (attori, anno di produzione, copertine) sincronizzabili automaticamente con il WS04
  2. plugin per mediacenter che permette di usufruire della libreria senza sbattere tanto la testa. Scorrendo i film per copertina ed avendo accesso a tutte le funzionalità di un DVD virtuale
  3. ripping engine per Windows Home Server; configurato in una certa maniera può automaticamente rippare i dischi ed aggiungerli alla libreria automagicamente
    01 - Music Disc Copier.png

Funzionalità a parte, che sono esattamente quello che uno vorrebbe vedere in un prodotto simile, la fattura dell’applicazione è decente seppur con qualche noia di troppo. Ad esempio, se riconosce un DVD, compare un riquadro sullo schermo del mediacenter (una specie di finestra di dialogo) che richiede l’uso del telecomando per mandarla via. Stessa cosa per l’avviso di un upgrade. Probabilmente da qualche parte c’è l’opzioncina adatta, ma mi aspetterei che di default le finestre di dialogo siano visibili per non più di qualche secondo. Un’altra noia è il modo un po’ arzigogolato con cui si devono “registrare” film non riconosciuti, come è tipico di alcuni DVD prodotti con i piedi (la maggior parte di quelli italiani, diciamolo!).

La nota dolente è la parte dell’upgrade. My Movies infatti ha un database centralizzato basato su SQL che una volta sì e una volta pure viene aggiornato con una nuova versione del client che rende gli altri client incompatibili. Questo significa che se per sbaglio si accetta l’upgrade, lo si deve accettare su tutti gli altri PC, incluso l’Home Server. Poi mi aspetterei che lo schema di un database alla versione 3.passa non debba aver bisogno di essere aggiornato così spesso, ma come Chrome insegna ognuno conta le versioni a modo suo, non c’è nessuna regola scritta.

L’applicazione ha alcune feature di base gratuite ed altre a pagamento sotto forma di punti (in vendita anche in cambio di moneta contante). Ci sono feature da 500 punti, da 1250 punti, ecc. però non sono mutualmente esclusive. Ovvero se compro 500 punti, sblocco tutte le feature che ne richiedono non più di 500. Se ne comprassi altri 500, sbloccherei le feature che ne richiedono mille e così via. Le feature più costose (il ripping automatico) costano in tutto 2500 equivalenti a circa 100$ che non è male. Ma la cosa più interessante è che si può acquistare punti contribuendo all’arricchimento del webservice, ovvero provvedendo i dati per i film non presenti nel loro archivio. Ogni film, in base a cosa si contribuisce, elargisce fino ad una cinquantina di punti.

Il tutto mi ha spinto a scrivere un ripping engine per WHS molto più spartano ma anche molto più efficiente: i particolari seguiranno, è un’altra storia interessante.

Il download e le funzionalità di base, che poi tanto di base non sono, di MyMovies sono completamente gratuite incluso l’uso del webservice, per tanto il consiglio è il solito: accattatavillo!

-quack

Lunedì quiz - 3

Oct 24, 2010 - 0 comments - Archiviato in: #Codice

Mi porto un po’ avanti con un quiz molto facile rispetto ai soliti. La difficoltà più grossa è descrivere un tale algoritmo per telefono.

Dato un albero binario di nodi contenenti due valori per ogni nodo (X, Y) e ordinato per X, trovare e stampare tutti i nodi che hanno entrambi i valori più grandi di un nodo di riferimento.

In poche parole, implementare: PrintNodes(node root, node referenceNode)

-quack

(*)ordinato per X: tutti i nodi a sx di un determinato nodo K hanno X <= X(K)

Mac Security Features

Oct 21, 2010 - 0 comments - Archiviato in: #Apple #Security

AppleSloppy

[cit.]

Per i miracoli, si stanno ancora attrezzando…

Offsite Backup–intervallo

Oct 20, 2010 - 0 comments - Archiviato in: #Backup

Avevo promesso un post dedicato all’assemblaggio dei vari pezzi ma mi son scontrato con qualche difficoltà con OpenSSH a cui penso valga la pena dedicare questo post. La modalità SSH che mi interessa è quella senza password e cioè basata su keyfile per fare in modo che il client installato sul mio PC di test si collegasse automaticamente al server. Il keyfile in pratica sostituisce l’uso della password tramite una chiave privata RSA.

È stato un bagno di sangue ma ce l’ho fatta. In sintesi quello che ho scoperto. Ci sono due versioni di SSHWindows:

  1. quella ‘ufficiale’ 3.81p-1 datata 9 Luglio 2004
  2. quella derivata, 4.2p2-2, qualche anno più nuova

La prima ha un baco molto antipatico: non riconosce i permessi per Windows e si rifiuta, nonostante sia considerato un “warning” e non un errore, di caricare un keyfile senza i permessi settati correttamente; la cosa buffa è che settarli correttamente è impossibile. Il problema si scavalca installando la ‘nuova’ versione ma non è finita.

Sul lato server l’installazione di SSHWindows crea un servizio con permessi di LocalSystem. Questo previene la possibilità di impersonare l’utente desiderato usando il keyfile restituendo un errore di tipo “public key auth seteuid fails”. Cercando su Google e passando per tipi misteriosi che dichiarano che Windows 2003 non è un sistema multi user e blah blah blah mi son ficcato solo in vicoli ciechi. Ho provato invece a far girare il servizio OpenSSH con le credenziali di destinazione sperando che funzionasse al primo colpo. Un ulteriore intoppo, i permessi sbagliati nella cartella dei log, facilmente sistemabile.

Riassumendo i passi correttivi:

  1. installare sshwindows in versione “derivata” su entrambi i lati della connessione
  2. seguire il tutorial indicato in questa pagina per generare la chiave RSA
  3. cambiare i permessi con cui gira il servizio OpenSSH
  4. aggiungere l’utente desiderato al folder di log

Et voilà il gioco è fatto. Visto che sono riuscito a procurarmi ben due librerie diverse per .Net che consentono la connessione SSH, spero di trovare un ritaglio di tempo per creare un client customizzato da fare girare come un servizio alla stregua di PeoneFS. Nella prossima puntata metto tutti i pezzi insieme, ma garantisco che non sarà l’ultima. Ho in mente una versione due dell’accrocchio che… ssst…

-quack

Lunedì quiz - 2

Oct 18, 2010 - 0 comments - Archiviato in: #Codice

Mentre il nonno termina la stesura dell’algoritmo precedente, il resto della tribù può focalizzarsi sul nuovo quiz.

Input: Array di interi positivi con cardinalità N; ogni elemento appartiene al range 1…N-1; trovare un elemento duplicato (ce ne potrebbe essere più di uno). L’array è sconquassabile a piacere. Fonte interna.

Melazioni

Oct 15, 2010 - 0 comments - Archiviato in: #Cazzate

Non so in quanti l’avranno notato, ma sulla sx di questo blog c’è un nuovo gadget, un salvadanaio che rappresenta la resa finanziaria dell’acquisto di azioni Apple che ho fatto tra qualche mese fa ed oggi. Davvero niente male, considerando le piccole cifre dell’investimento iniziale e come dicevo su twitter spero che entro la Holiday season 2010 possano permettere a Babbo Natale di:

  • Comprare una Kinect in bundle con una xbox nuovo tipo (indeciso tra la 4GB e la 250GB) da installare sul retro dell’LCD casalingo
  • La steering wheel per giocare a F1 2010, con il quale non mi divertivo dai tempi di Crammond’s GP4 o del Sega’s F355 (con Alexis e il nonno navigatori in sottofondo: cen’cinquanta, cento, cinquanta!)
  • un seggiolotto come questo da tenere in ufficio con l’armamentario di cui sopra, fatta eccezione per la Kinect ad uso famigliare, per le lunghe pause di compilazione

Non c’è nella lista un fonino WP7. Ci hanno detto che ne avrebbero ‘offerto’ uno ad ogni employee, ma il regalo si è rivelata una grossa presa per i fondelli. Infatti se vogliamo il regalo dovremmo

  • comprare l’oggetto del desiderio a nostre spese (subsidized o meno)
  • compilare moduli in triplice copia per avere il rimborso del prezzo subsidized
  • pagare di tasca nostra piano telefonico e piano dati
  • lasciare il diritto di proprietà all’azienda: non possiamo rivenderlo o regalarlo
  • per finire l’uso personale viene definito “ok”. Cioè, la casa madre potrebbe usare il mio telefono ad esempio spiandomi o chiamandomi a mie spese (visto che qui in america l’abbonato paga sempre l’air time) mentre io dovrei chiedere quasi umilmente il permesso per usare banda dati e banda voce che dovrei pagare di tasca mia.

Ci è mancato poco che all’autore di tale genialata non gli scrivessi una mail con semplicemente “ma un grosso vaffanMulo, no??”. Quindi per principio, se le cose non cambiano con ulteriori delucidazioni e chiarimenti di fraintendimenti, sicuramente non approfitterò di siffatta vantaggiosa offerta. Certo si fa per risparmiare, ma sempre per risparmiare non si potrebbe evitare di mandare in giro grande capo aggratis (visto che il suo stipendio all’azienda costa svariati centoni al minuto) a parlare di informatica agli universitari visto che sembrerebbe come mandare un rivenditore di auto a parlare di Fisica e Aereodinamica alla scuola Normale di Pisa? Le azioni stagnano, meglio rivendere e trasformarle in melazioni…

Bah!

Offsite Backup–parte 3: PeoneFS

Oct 12, 2010 - 0 comments - Archiviato in: #Backup #Software

Dove eravamo rimasti? Una buona alternativa all’encryption di RsyncCrypto, unico tool “compatibile” con l’algoritmo di Rsync, doveva essere farina del mio sacco. Ecco al mondo la versione “stabile” di PeoneFS.

Innanzitutto un po’ di teoria. Ci sono tanti algoritmi crittografici con svariati livelli di sicurezza. Per un backup offsite casalingo un algoritmo superveloce anche se poco sicuro è la migliore soluzione. Una classificazione piuttosto grossolana divide tali algoritmi in due macro-classi: crittografia a blocchi e crittografia a stream (non ho l’equivalente italiano a portata di mano). Questi ultimi si basano di solito sulla simmetria delle operazioni di XOR e sul fatto che un algoritmo XOR perfetto è impenetrabile (Vernam cipher) come dimostrato da Shannon in altri tempi: quest’ultimo si basa sul concetto di “password” infinita che però non ha nessuna implementazione pratica. Algoritmi più pratici come l’RC4 si basano su una password “infinita” pseudo-casuale genata da una normale chiave di testo o sequenza di byte. Come approssimazione è abbastanza buona, anche se comunque attaccabile: questo non è un problema per l’uso che di questo algoritmo ne va fatto. Io ho fatto una piccola ulteriore modifica personale per ottenere una maggiore velocità in cambio di un’ulteriore debolezza: la chiave invece di essere infinita ha un periodo di 64MB, che sono abbastanza per la tipologia di file interessata. Un’ulteriore debolezza intrinseca è il fatto che per tutti i file viene usata praticamente la stessa chiave; con l’RC4 è infatti consigliato l’uso di un nonce che però davvero non saprei per ora come implementare e se ne valga davvero la pena. L’obiettivo è di scoraggiare il ladro occasionale dallo sbirciare le foto del mio album di famiglia e – secondo la mia modesta opinione – l’obiettivo dovrebbe essere più che centrato (centratissimo?).

Lato pratico ho voluto creare un EXE portabilissimo anche se richiede l’uso di .Net 4. Si può lanciarlo in modalità di test o previo opportuno parametro chiederne l’installazione/disinstallazione come servizio. Nel primo caso non c’è bisogno di privilegi amministrativi, nel secondo l’eseguibile provvederà a richiedere un prompt UAC, autorilanciarsi/installare/eseguire/ritornare senza colpo ferire. Questa parte tecnica è risultata essere molto interessante in quanto sono riuscito a mantenere l’illusione che ad eseguire il compito è lo stesso processo mentre in realtà viene creato un processo figlio elevato e non-visibile che comunica con il padre via named-pipe ricreando l’output nel terminale del processo di partenza. Forse parlo arabo, ma ciò nonostante la cosa si è rivelata alquanto interessante. Tutta la configurazione infine avviene tramite un banale file di configurazione con cui è possibile “montare” più folder criptati. Il download è disponibile nell’apposita pagina.

Update. Dettaglio importante: oltre a criptare il contenuto dei file, il nome dei file e dei folder viene pesantemente offuscato sempre in maniera simmetrica. Ciò significa che se si copia un file dal folder criptato al folder originario lo stesso file apparirà in chiaro.

Nel prossimo (ultimo?) appuntamento racconterò come tutti i pezzi del puzzle si incastrano per creare l’offsite backup casalingo più spensierato che ci sia.

-quack

Lunedì quiz - 1

Oct 11, 2010 - 0 comments - Archiviato in: #Codice

Periodo di colloqui, domande e rompicapo. Questo è interessante, fonte Amazon.com

Data una matrice binaria (n x m), individuare la grandezza del blocco di ‘uni’ contigui (N, S, O ed E) più grande. Ad esempio nella matrice qui sotto

0011000000
0011000100
0011001100
0001111100
0000000001
1111111111
0011110010
0000001111
0000000010

il blocco più grande è quello evidenziato con 21 uni.

-quack

Offsite backup-parte 2

Oct 7, 2010 - 0 comments - Archiviato in: #Backup #Hardware

Segue la seconda parte della serie. La prima parte è qui.

Ho cercato in lungo ed in largo applicazioni che supportassero i seguenti requisiti:

  1. supporto backup differenziale e parziale (ovvero se modifico una sola parte di un solo file, non backuppare tutti gli altri 200 e passa gigabait di dati). Questo si traduce più o meno con il supporto per server RSync
  2. supporto per il criptaggio dei backup: significa che i file devono uscire dalla mia home network possibilmente già criptati; è preferibile che i nomi dei file vengano pure offuscati
  3. leggero e veloce in quanto tutta la baracca deve girare su un Atom D510
  4. possibilità di fare il seeding ovvero il bootstrap del backup verso un disco USB da portare nella locazione remota
  5. che sia compatibile con il reverse tunneling SSH

Ho analizzato i seguenti prodotti:

  • Duplicati, open source e gratuito. Per lo più scritto in C#; supporta una modalità differenziale/parziale anche se non RSync: la differenza è che l’operazione di restore è più lenta, ma è poco importante; scartata in quanto non implementa il punto 5. Interessante in prospettiva in quanto potrei metterci le mani e modificarlo a mio diletto e piacimento.
  • Syncrify, commerciale ma gratuito per uso personale; se ben ricordo non supporta l’offuscamento dei nomi dei file.
  • StoreGrid, commerciale: il server è gratuito mentre la versione pro del client ha costi accessibilissimi (30$). Purtroppo installa una quantità inverosimile di pacchetti: Apache, PHP, mysql e chissà quale altra roba. Scartato per il motivo 3.
  • Amanda/Zmanda ha un approccio interessante al problema in quanto il backup server accede ai file del client e non viceversa. Purtroppo, pur credendo che in fondo in fondo sia compatibile con il requirement 5., non credo che sia una soluzione per i deboli di cuore come me
  • QtdSync: una GUI open source molto ben fatta per RSync/windows con la possibilità di passare alcuni parametri RSync a mano; purtroppo niente encryption o similari supportate nativamente
  • BackupAssist: commerciale, costosetto forse per una soluzione casalinga, ma in grado di soddisfare tutti i requirement di cui sopra. Versione trial per 30 giorni

Ho pertanto deciso di provare backup assist, collegando un disco esterno via USB ed iniziando il seeding: il risultato è stato disastroso dal punto di vista della velocità. 50MB/h significa che il prodotto è prettamente inusabile. Però ho notato che altro non è che una GUI intorno ad una versione particolare di RSync/Windows e RSyncrypto una utility a riga di comando sempre open source che implementa l’encryption AES e l’offuscamento dei nomi dei file in maniera trasparente. Credo che gli autori di backup assist abbiano cappellato alla grande in quanto da un Atom D510 mi aspetterei molto più di 50MB di AES ad ora.

Il prossimo step è di fare qualche test con Rsyncrypto e valutare di conseguenza: c’è infatti un’altra idea che continua a rimbalzare tra i due neuroni della mia scatola cranica ed è quella di scrivere un FS filter driver ad hoc risolvendo il problema numero 2. di cui sopra. Con Dokan anche un bambino può farlo (e persino in .Net anche se non saprei se azzardarmi). A quel punto qualsiasi soluzione basata su RSync o similari sarebbe più che buona, anche se ci sono 35$ di buoni motivi per preferire RSync ad un qualsiasi altro protocollo.

-quack

Millesimo

Oct 4, 2010 - 0 comments - Archiviato in: #Cazzate

File:1000+.svg

Inutile post auto-celebrante e celebrativo sul numero dei post presenti su questo blog. Dal prossimo si torna ad essere di nuovo se-se-se-serii. Se.

-quack

10 e lode

Oct 1, 2010 - 0 comments - Archiviato in: #Microsoft

FunnyBallmer

L’anno scorso, causa “crisi e stringiamo la cinta”, il management aveva deciso di dare una sforbiciata agli aumenti di tutti gli employee. Per chi non è avvezzo con la matematica, questo si traduce in realtà un taglio di stipendio pari all’inflazione. Pochi giorni dopo uscirono i dati che si riferivano agli aumenti al management dovuti all’anno precedente che erano stellari e quest’anno si pensava che anche loro nel 2009 avessero subito la stessa sorte. Ed invece.

Ballmer si è dato un aumento del 5.8% ma come lui tutti i top-executives. Ancora più pazzesca l’auto-assegnazione del bonus, praticamente il 100% del target prefissato. In poche parole SteveB ha deciso di assegnarsi un 10 e lode giudicando il suo operato nel 2008. Era l’anno in cui Steve investiva in Kin, andava dicendo in giro che l’iPhone avrebbe venduto poco meno di qualche migliaia di unità ed altre insolite scemenze.

Sempre troppo tardi.

-quack

Mezza iterazione

Sep 29, 2010 - 0 comments - Archiviato in: #Backup #Hardware

Mai dire mai, mai dire ultimo quando si parla di tecnologia.

In due parole: sistemando l’inventario di hard-disk a riposo, ovvero hard-disk rimossi per upgrade a capacità superiori, backup esterni mai implementanti, ecc. mi son ritrovato con un bel po’ di terabyte a disposizione. Ho pensato subito di espandere lo storage di Windows Home Server in attesa di Vail, ma il case precedente non può accomodare più di due pezzi da tre e mezzo. In più da un bel po’ di tempo mi farneticava l’idea di prendere un case che permettesse l’hot-swap nel caso di morte prematura di qualche disco dati o di migrazione alle superiori capacità (Seagate ha messo in commercio un disco esterno da 3TB).

Ho finito per comprare un Chenbro ES34169 con ben quattro slot hot-swap da 3.5”, uno da 2.5” interno e opzione per card reader e dvd ottico. Il prezzo è basso se si considera che il valore di mercato di ogni bay hot-swap si aggira intorno ai 20$.

Piccola recensione del case:

Pro:

  • è facile da installare, il vassoio della scheda madre viene via previo svitamento di 4 viti phillips
  • è abbastanza ben aerato
  • i quattro slot hot-swap sono una geek-porno-figata
  • i materiali e la costruzione sono eccellenti

Contro:

  • le ventole sono rumorosissime, almeno rispetto al case precedente. Ho dovuto sostituirle con delle altre che – nonostante attenuate – sono comunque rumorosette (sto pensando di dotarle di un bel variatore di velocità per ridurre il tutto al minimo)
  • manca una ventola frontale
  • la post-vendita; quest’ultimo punto merita un piccolo pensiero a parte

Volevo comprare sia il card-reader integrato che i bracket di supporto per il lettore ottico. Non avendone trovato traccia presso il rivenditore, mi son rivolto direttamente a Chenbro. La prima email non ha ricevuto risposta. Ho chiamato il supporto vendita, lasciato il mio numero di telefono e a quel punto hanno risposto alla mia mail mandandomi una lista con l’elenco delle opzioni, la sigla di ciascuna di queste e il relativo prezzo. Ho risposto che ero interessato al lettore e al bracket e non ho ricevuto più risposta. Ho richiamato e un tipo di nome Joey mi ha detto che non fanno vendita al dettaglio ma che avrei dovuto cercare su internet i rivenditori appropriati. Peccato che ho trovato due rivenditori diversi, uno dei quali vendeva solo il card-reader, l’altro solo il supporto per il lettore DVD. Con umile pazienza ho effettuato i due ordini scoprendo che il card-reader richiede un cavo particolare per la connessione USB venduto separatamente ma che “il rivenditore non era autorizzato a vendere”. Ho richiamato Joey che si è fatto una piccola risata e mi ha detto di contattare il supporto via mail con il mio indirizzo postale e il mio numero di telefono. Ho fatto e mi ha risposto con una mail indicandomi i costi del cavo e della spedizione e l’invito ad autorizzarlo a chiamarmi per telefono per avere il numero di carta di credito a cui addebitare.

La cosa buffa è che il pacco contenente il lettore sd-card è partito dalla stessa sede Chenbro in California con cui mi son messo in contatto per telefono: mi hanno praticamente messo (involontariamente) nelle condizioni di richiedere tre spedizioni diverse quando ne sarebbe bastata una sola (o sòla, in romanicum antico).

Opzioni a parte il case è ben fatto e son contento così.

-quack

Stipa-link #1

Sep 28, 2010 - 0 comments - Archiviato in: #Link

Chicca finale:

  • Come disabilitare la chat di facebook nel browser tramite un filtro (adblock o similia); chattare con i contatti Facebook via MSN è figo, ma l’inconveniente è che si attiva in automatico la chat di facebook con gli scomodissimi popup non appena si visita la pagina. Con questo filtro la chat di facebook via Web viene completamente disabilitata; filtro per mia futura memoria:
    facebook.com#div(id*=presence)

-quack

Offsite backup–parte 1

Sep 27, 2010 - 0 comments - Archiviato in: #Backup #Hardware

Torno su un argomento a me carissimo per annunciare urbis et orbis che ho finalmente trovato una soluzione elegante… o per lo meno che vi ci stia convergendo verso a passo decisamente sostenuto.

Il problema: fare un backup offsite di circa 300-400 GB di foto, video e altri file personali.

Soluzione 1: usare uno dei tanti servizi già pronti come ad esempio backblaze che offre per meri 5$ al mese storage infinito (che carini sono i “pod” da 67TB per 7867$). A parte l’antipatia di un costo mensile vs. un drive da qualche tera che dopo due anni è già bell’e ammortizzato, c’è il discorso del boot-strap: ci vorrebbero _MESI_ per avere il primo backup completo online e _SETTIMANE_ intere per scaricare il tutto in caso di disastro.

Soluzione 2: Backup p2p; Crashplan (il più interessante di tutti) non funziona oltre a richiedere un server centralizzato; Cucku è stato chiuso per problemi legati a Skype e ad una noia legale con BackupStream. Quest’ultimo, oltre ad avere la home page hackerata e inspirare bassissima fiducia, richiede l’uso di una porta aperta ben lungi da un “set e forget”.

Il mio backup ideale sarebbe uno scatolotto, più piccolo e meno costoso possibile, da essere portabile (per il bootstrap e il recovery), banale da installare (lo colleghi al router e va) ed affidabile, cioè basato su tecnologie molto stabili.

Da un po’ di tempo stavo giocando con l’idea di usare un server RSync su una macchina in ufficio per sperimentare, ma abbiamo un proxy/firewall che ha pochissima pietà che è in grado di filtrare anche i pacchetti UDP in uscita: se sto parlando arabo, l’idea è presentata in questa pagina nella sezione “ENTER UDP”.

Ad un certo punto mi è venuta voglia di scrivere un reverse tunnel di mio pugno, ma prima di accingermi a farlo ho cercato ovviamente in giro soluzioni già pronte. La mia ignoranza su Unix mi ha finora tenuto nascoste le pieghe di SSH. Poi son finito per caso su questa pagina e mi si è letteralmente aperta una porta sul mondo.

Oggi ho fatto il primo passo testando una connessione Remote-Desktop dal mondo esterno vs. il mio desktop di lavoro: non solo funziona, ma è simpatico l’effetto “Optical Feedback” mozzato che se ne ottiene.

Nella prossima puntata: un backup server da 30$ o poco più.

-quack

Disfuctioning JavaScript

Sep 22, 2010 - 0 comments - Archiviato in: #Codice

La release seppur beta di IE9 ha portato scompiglio dappertutto. Anche questo blog, la parte che gestisce l’editor online basata su TinyMCE, ha subito qualche dissestamento (?). Ero arrivato a scegliere TinyMCE dopo aver provato un po’ di tutto per due motivi essenziali:

  1. mi sembrava abbastanza stabile e coerente con l’output
  2. supportava correttamente le citazioni non ricorsive

Purtroppo però col tempo anche TinyMCE ha smesso di essere Tiny e capire dove fosse la fonte dei guai è diventato difficile. Aggiungiamoci che il caching Javascript di IE9 è bacato e l’immagine è completa.

Mi son chiesto quanto fosse complicato scrivere un editor che funzionasse con i tre maggiori engine (sorry Courtaud!) e mi son imbattuto in un post interessantissimo. A leggere la descrizione sembrava pure piuttosto banale. Ho trovato poi in rete su codeplex qualcosa che fosse ispirato alla stessa filosofia, basato su jQuery per il quale ho acquistato adeguata familiarità, e che soprattutto fosse senza fronzoli anche senza il supporto per il blockquote: in più la licenza è molto meglio di quella di TinyMCE.

Ho voluto implementare il blockquote ed allora mi son imbattuto contro ostacoli insormontabili per lo meno all’apparenza.

  1. il codice che gestisce la posizione del caret e del testo selezionato non fa (faceva) parte di nessuno standard. Fu introdotto da IE nel passato remoto. Chi venne dopo decise di “standardizzarlo” usando un’interfaccia diversa (questi parrucconi!)
  2. quando si clicca Enter/Invio ogni browser fa a modo suo. Chrome inserisce i DIV, IE inserisce i <p/>, Firefox inserisce <br/> o <p/> a seconda se è premuto il tasto SHIFT o meno
  3. anche un’interfaccia standard o quasi come execCommand è stata implementata in alcuni casi in maniera disastrosa. IE inserisce un blockquote, Firefox un <p con style>, Chrome uno <span>

A complicare le cose la funzionalità particolare di blockquote. Martellando un po’ di codice qua e là sono riuscito a mettere su un’implementazione alla buona seppur abbastanza bacata. Ho deciso di sbirciare nel codice di TinyMCE e ho scoperto che, per difendersi da queste variazioni assurde di implementazione, hanno scritto un engine RTE completamente separato tra l’altro pure molto bene.

Purtroppo il supporto ad IE9, in quanto estremamente frustrante, non è un task molto appealing. Qualcuno ci ha messo una pezza per fortuna, ma parecchi problemi restano.

A questo punto credo che tutte le mie buone intenzioni per jHTMLArea siano completamente irrealistiche e penso ti tornare fra qualche giorno all’ovile, con il capo cosparso di cenere.

-quack