Visualizzazione post con etichetta informatica. Mostra tutti i post
Visualizzazione post con etichetta informatica. Mostra tutti i post

giovedì 31 luglio 2008

Action Cam - Oregon scientific

Un aggeggio interessante, avuto in cambio di un ostica installazione di Linux su un portatile particolarmente resistente al cambiamento, nato per vista ma arrivato al limite e desideroso di libertà e velocità di funzionamento.
Una telecamera per le riprese in azione, installabile a piacere su un casco o sul manubrio della bici durante le sessioni di downhill, su uno skateboard, in immersione (sino a 3 metri è garantita come stagna), nei lanci col parapendio, ma anche in mano grazie all'impugnatura estraibile di serie. Il modello è l'ATC-2k, alimentato a 3 volts (20W) con due batterie AA, risoluzione massima 640X480 VGA Cmos (impostabile anche a 320X240 o 160X120) con frame rate variabile da 15 a 30 fps, memoria interna 32 mega, alloggiamento per scheda memoria SD da 2 giga, fuoco da 1,5 metri ad infinito, registra filmati i formato AVI. Che dire? Un buon affare. L'ho già installata sul manubrio della MTB, non senza difficoltà dovuta alla mancanza di spazio, visto il numero di apparecchiature elettroniche ad oggi installate (GPS, Navigatore satellitare Garmin Nuvi 200, Fanali HLux, Campanello, Leve Cambio maggiorate, Regolatore di tensione...). Dalle prove effettuate, la ripresa si presenta fluida anche a 15 fps, un pò carente nelle riprese notturne in strade illuminate con lampioni ma con buona resa dei colori. Il limite dei 2 giga della memoria SD e l'impostazione alla risoluzione minima al più basso valore di frame per secondo dovrebbe garantire una durata di riprese di 794 minuti, ovvero circa 13 ore e mezza, mentre alla risoluzione massima a 30 fps si arriva a 60 minuti, 1 ora di riprese. Non male se si pensa che durante le azioni più intense che richiedono notevoli sforzi fisici, difficilmente queste si protraggono per più di 1 ora. Per una buona documentazione di un escursione si può utilizzare l'action cam ove non sia consigliabile l'uso di una normale telecamera, quest'ultima adatta alle fasi di preparazione e conclusione dell'evento, sia per ragioni di maneggevolezza, peso e facilità d'uso della prima.
Difetti? Per ora nessuno. Forse il micro display lcd nella parte superiore poteva essere progettato con dimensioni un pò più generose o maggiormente leggibile. Così com'è, la lettura dei parametri di impostazione è un pò difficoltosa, specie per un "vecchietto" come me che ha dei problemi di vista dovuti all'età, ma del resto credo che il prodotto sia destinato aduna fascia di età ben inferiore alla mia. Manca il display per la visione di cosa si sta riprendendo... è progettata per azioni in movimento, o la va o la spacca. se le riprese vengono bene, bene, altrimenti si ripete il lancio sino a quando non viene. L'inquadratura è comunque abbastanza larga per garantire una buona ripresa e l'importante è avere le mani libere. Si riprende cosa si sta guardando se installata sul caschetto, cosa si sta affrontando se installata su un mezzo mobile, come ci si sta agitando se tenuta in mano. Prevedo delle belle avventure, stavolta documentate, visto che le eseguo quasi sempre in solitaria. Ho visto cose che voi 'unani' non potete nemmeno immaginare... alla prossima.

P.S. Aldo dice 32 per 18. Ripeto: Aldo dice 32 per 18.

mercoledì 16 luglio 2008

eeePC 900

Finalmente mi è arrivato. Dopo le recensioni prezzolate che si trovano in rete, scritte da chi è pagato per parlarne bene a scapito della propria credibilità, il desiderio si è avverato. Un cambio merce, per un lavoretto di falegnameria in cambio un eeePC nuovo di zecca. L'accordo era per il modello minore, il 700 con schermo più piccolo e disco da 4 giga. Al momento dell'acquisto il cliente si sente dire che "...li abbiamo finiti, in cambio ci sono questi...". Proprio quello che desideravo. ultraportatile, veloce al punto giusto, alimentato a 12 volts, 20 giga di disco, wifi, installabile sulla bicicletta da gran turismo ed alimentabile con un paio di pannelli solari. Ho già proceduto con l'installazione della eeexubuntu (l'interfaccia linux preinstallata mi sa tanto da utonto e poi oltre a mancare un terminale per i comandi, manca la possibilità di installare ciò che mi pare). La migrazione è stata piacevole. L'unico sacrificio è la mancanza dell'audio...sto indagando... ed il fatto che il softphone ekiga proprio non ne vuole sapere di "vedere" la telecamera integrata da 1.3 mpixel. Il gioiellino lo voglio proprio utilizzare per le chiamate telefoniche voip al volo... senza audio è un problema.
Nella foto lo potete vedere in grembo al fratellone maggiore, tanto per capire un pò le dimensioni veramente ridotte. Devo ora procurarmi due pannelli solari , magari flessibili, pieghevoli o arrotolabili e progettarmi un inverter o perlomeno uno stabilizzatore a 12 volts portatile di potenza adeguata (l'alimentatore originale ASUS è da 3 ampere). Via.... un altra realizzazione di unamico. Se mi va, posterò qui i progetti, gli schemi i piani costruttivi, solo se avrò sentore che qualcuno possa meritarseli.... ciao

P.S. il bavaglino è da cambiare. Ripeto: il bavaglino è da cambiare.

giovedì 26 giugno 2008

Gli incredibili

Che questo paese sia messo veramente male se ne sente parlare parecchio, nonostante i tentativi di questo governo a dire che va tutto bene e chi ne parla male è un comunista. Ci si rende conto, quotidianamente che "qualcosa non va", quando si ha a che fare con enti, istituzioni, carrozzoni vari, pulcinelle e burocrati incalliti.
Vediamo la storia che ha dell'incredibile.
Tizio è una persona fisica con un codice fiscale.
Tizio è un professionista, una ditta individuale con partita iva
Il legale rappresentante della ditta tizio Informatica è tizio con un codice fiscale che corrisponde a quello della persona fisica ed a quello della ditta individuale
La ditta di tizio ha ragione sociale Tizio informatica.
Tizio informatica registra un dominio internet intestato a tizio informatica che si chiama "A.it".
Negli anni Tizio decide di modificare la propria ragione sociale da "Tizio Informatica" a "Tizio Telematica"
Tizio registra un secondo dominio internet a nome di Tizio con partita iva
Tizio è quindi titolare di due domini internet "A.it" e "B.it", uno intestato a "Tizio informatica" e l'altro intestato a "Tizio" ma con partita iva, ovvero azienda.
Ad un certo punto tizio decide di cambiare Mantainer a X-MNT a Y-MNT
Per fare questo occorre inviare una richiesta al NIC, ovvero al Registro ccTLD "it" presso l'Istituto di informatica e Telematica del CNR, che chiameremo simpaticamente il NIC.
Qui cominciano le "stranezze". Ricordiamoci che Tizio persona fisica, Tizio ditta individuale, Tizio legale rappresentante dell'azienda ditta individuale, sono la stessa persona, con lo stesso codice fiscale, con lo stesso indirizzo di residenza, che coincide con lo stesso indirizzo dell'azienda, che coincide con lo stesso indirizzo del luogo di nascita.
Tizio è un tipo preciso e pignolo, scrupoloso nel seguire le regole. Prima di richiedere il cambio di provider, effettua una visura whois per verificare a chi sono intestati i domini e scopre, dalla visura effettuata nel sito ufficiale del NIC, un dominio, "A.it" risulta intestato a Tizio informatica e l'altro "B.it" è intestato a Tizio, senza nessuna indicazione se sia Tizio individuale o Tizio azienda. Tizio decide di fare ordine e trasferire "A.it" a Tizio persona fisica, supponendo che il tizio di "B.it" sia indifferentemente Tizio persona fisica o Tizio ditta individuale, sono la stessa identica cosa!
Correttamente Tizio decide di inviare per "A.it" una richiesta di cambio del Registrante da "Tizio Informatica" a Tizio persona fisica e contestualmente compilare la lettera di assunzione di responsabilità (LAR) di Tizio che subentra a "Tizio Informatica", mentre per "B.it" decide di utilizzare il modulo di richiesta da persona fisica a persona fisica.
In parole povere Tizio codice fiscale TZZXX99, legale rappresentante di Tizio informatica con codice fiscale TZZXX99 e P.iva 999 cede a Tizio con codice fiscale TZZXX99 la titolarietà del dominio "A.it" e Tizio codice fiscale TZZXX99 sottoscrive la LAR per "A.it".
Tizio con codice fiscale TZZXX99 cede la titolarietà di "B.it" a Tizio con codice fiscale TZZXX99.
Il NIC respinge la seconda domanda relativa a "B.it" e tace "A.it"
Tizio si allarma e chiede spiegazioni al nuovo mantainer Y-MNT. Si scopre il problema. Per "B.it", Tizio è un azienda e non una persona fisica, occorre utilizzare il modulo di trasferimento da Tizio azienda, con il tramite di Tizio legale rappresentante di Tizio Azienda a Tizio privato. Per il silenzio su "A.it", forse non sono riusciti a leggere i dati e se passano 2 o 3 giorni occorre re-inviare il tutto nuovamente, facendo attenzione alla data di richiesta che non sia troppo antecedente quella di invio del fax.
Per mettere un pò di ordine allora Tizio decide di intestare anche "B.it" a tizio persona fisica, tenuto conto che è intestato a Tizio azienda e che occorre scomodare anche Tizio legale rappresentante (e anche persona fisica) di Tizio Azienda.
Quindi per "finire" occorre mandare una richiesta che suona più o meno così per entrambi i domini, con una piccola variazione:
per "A.it", Tizio persona fisica legale rappresentante di "Tizio informatica" cede a Tizio persona fisica il dominio. Tizio e Tizio firmano lo stesso foglio, ma Tizio deve anche assumersi la responsabilità del dominio e deve mettere una doppia firma nel modulo LAR. per "B.it", Tizio persona fisica legale rappresentante di "Tizio" cede a Tizio persona fisica il dominio. Tizio e Tizio firmano lo stesso foglio, ma Tizio deve anche assumersi la reesponsabilità del dominio e deve mettere una doppia firma nel modulo LAR.
Bene. Così dovrebbe andare. In sintesi il NIC chiede alla stessa persona di trasferirsi i domini a se stesso e dichiarare la responsabilità che aveva già da prima...
Ora mi chiedo alcune cose....
1) al NIC non potevano accorgersi che Tizio azienda, persona fisica e legale rappresentante sono la stessa entità? Sapranno leggere? Saranno in possesso di un minimo di "Granu salis"?
2) l'Istituto di informatica e Telematica che ospita il Registro è al corrente che accadono queste cose? Non prova un minimo di vergogna?
3) perchè la stessa persona deve compilare e firmare tre pagine di carta che devono essere rigorosamente stampate su carta ed obbligatoriamente inviate via fax e non per posta elettronica? forse non sanno che esiste la firma digitale, le marche temporali, la posta certificata?? Potrebbero chiedere all'Istituto di Informatica e Telematica.... forse lì lo sanno....
4) i Regolamenti del NIC sono stati redatti da degli scimpanzè?

Nel caso reale, Tizio aveva 8 domini da trasferire, ha dovuto compilare quattro pagine per 8 domini per due volte, stampare 64 fogli, firmare 64 volte, faxare 16 volte 4 pagine alla volta, perdere tempo per dei deficienti che sono pure pagati per divertirsi alle nostre spalle. Tizio ha inoltre dovuto indire 8 riunioni con se stesso per deliberare.

A Tizio viene un dubbio. Tizio, TIZIO e tizio, per il NIC sono la stessa cosa o sono tre cose diverse??

Questo paese è davvero messo male. Se si continua ad affidare mansioni semplici a delle menti malate, i risultati possono essere solo questi. La cosa che preoccupa, all'aldilà di tutto, è che al CNR ricercano... che cosa?
Per il bene dell'umanità, andatevene affanculo!

P.S. l'onda arriva lenta. Ripeto: l'onda arriva lenta.

domenica 1 giugno 2008

Reti resitive

Nel frugare fra i componenti elettronici, deciso a verificare il funzionamento del modulo che ho sviluppato per il kernel linux con la realizzazione di un circuito a led da collegare alla porta parallela che dovrà pilotare lo stepper installato nel fusore progettato per realizzare i circuiti stampati col metodo a trasferimento di toner, mi sono trovato in mano un cassettino etichettato "Resistenze da catalogare". Quale miglior posto per reperire 8 resistenze da 1000 ohm 1/8 di watt?
Ad una più attenta analisi trovo anche dei componenti neri con i piedini tutti in una fila e con una sigla sconosciuta, accantonati in attesa di essere classificati ed ordinati. Sono delle reti di resistenze confezionate in quel modo per risparmiare spazio sui circuiti stampati, generalmente usate come resistenze di pull-up. Dopo averle separate dal resto, inizio un paziente lavoro di raggruppamento per valore... già, ma quale valore? Una rapida e superficiale ricerca in rete non mi è molto di aiuto. Decido di andare ad intuito. Innanzitutto occorre scoprire come sono disposte le resistenze, solitamente con un capo in comune o singolarmente separate le une dalle altre.
Per fare questo infilo il componente in una breadboard sperimentale e con dei ponticelli di filo "porto fuori" i collegamenti per poterli misurare agevolmente con i puntali del tester. Una piccola serie di misurazioni confrontata con le sogle stampigliate sul contenitore della rete resistiva mi permette di classificarle molto rapidamente. Dalle prove sperimentali ci si accorge che ogni produttore adotta un proprio metodo di sigle che però, con un minimo di fantasia è possibile decodificare, fatte salve alcune eccezioni. Facciamo alcuni esempi con alcune sigle...
Una lettera A o B indica nel primo caso un collegamento della rete resistiva con un comune a tutte le resistenze, mentre nel secondo caso (ove può comparire anche la lettera "C") indica che ogni resistenza è isolata dalle altre. In alcune codifiche, la lettera A o B è preceduta da un numero che può indicare o il numero di resistenze presenti nella rete resistiva o il numero di pin che caratterizza la rete. La cifra 9 ad esempio può indicare la presenza di 8 resistenze più un capo in comune (quindi rete resistiva di tipo A).
Poi solitamente esiste un numero a tre cifre, le prime due delle quali indicano il valore a cui va aggiunto un numero di zeri pari alla terza cifra (è il moltiplicatore simile a quello delle resistenze con le bande colorate). Una lettera "finale" J o G dovrebbe indicare, presumo, la tolleranza. In alcuni casi il valore è indicato in chiaro con tanto di unità di misura. Un puntino o una barretta serigrafata, indica il pin comune a tutte le resistenze collegate secondo la disposizione di tipo "A".

Ecco alcuni esempi:
AE10K
9A103J
10KJ
1A103J
10KohmJ
Le sigle qui sopra sono sigle comuni per rete resistiva di tipo A, composta da resistenze del valore di 10 Kohm

A102J rete resistiva di tipo A, da 1 Kohm
B100J rete resistiva di tipo B, da 10 ohm
C10ohm rete resistiva di tipo C (?), da 10 ohm
B472J rete resistiva di tipo B, da 4,7 Kohm
A472J rete resistiva di tipo A, da 4,7 Kohm
A472G rete resistiva di tipo A, da 4,7 Kohm
A8472J rete resistiva di tipo A, da 4,7 Kohm
9A472J rete resistiva di tipo A, da 4,7 Kohm

Di fronte alla sigla 316J, dato che il mio multimetro misura solo sino a 2 mega ohm, suppongo siamo in presenza di resistenze da 31 mega ohm

Esistono anche delle sigle "esotiche", quali:
10X561G rete da 9 resistenze (10 pin) collegate con lo schema A (1 capo in comune), da 560 ohm
L101S104 rete da 10 resistenze collegate con lo schema A (1 capo in comune), da 100 Kohm

E per finire la sigla misteriosa su un contenitore tipo DIL da 16 piedini compatibili con gli zoccoli a passo integrato. Sigla IAM E3318. Le prime tre lettere presumo indichino il produttore, la cifra indica 8 resistenze indipendenti da 330 ohm.
OK. Ora, "finalmente" anche questi componenti sono in ordine nei cassetti. Pian piano, man mano che mi serve qualcosa, ne approfitto per mettere un pò d'ordine. Non penso nemmeno alle sorprese che avrò quando inizierò a catalogare i chip di memoria flash, i processori, le E2prom, le interfacce rs232 che so di avere da qualche parte in attesa che li utilizzi per qualche progetto. Per stasera basta. Mi sono meritato un pò di riposo. alla prossima.


P.S. Attenti al lupo. Ripeto: Attenti al lupo.

sabato 24 maggio 2008

Discriminazione informatica

Please log into your account on a PC-based machine. Our software is not compatible with Linux or Mac operating systems.
Il messaggio è inequivocabile. Mi chiedono di collegarmi con un computer "PC-based". Che idioti. Non sanno che linux gira sui PC basati su architettura x86? Va bene che il "loro" software va solo per winzozz, ma auto-ghettizzarsi così mi pare proprio da idioti. La rete è nata per mettere in comunicazione macchine diverse (culture diverse) con un linguaggio comune. Poi arriva un pirla che riscrive le regole a suo uso e consumo, gettando di fatto delle barriere allo sviluppo, alla cooperazione ed alla comunicazione. Il fatto che su questa cosa ci abbia fatto i miliardi, dimostra come la classe dei "ricchi" (economicamente parlando) è rappresentata da persone ottuse, oscurantiste, retrograde, ignoranti, egoiste, arroganti, poco inclini al prossimo... potrei elencare una lista quasi infinita di pessime qualità. Dimostra inoltre come gran parte del popolo è poco incline a ragionare con la propria testa e che poco si interessa a ciò che viene loro propinato. Un popolo che non si interessa di queste cose non è un popolo innoquo e pacifico ma un popolo inutile!
Vorrei da ultimo ricordare quel ministro (itagliano), nostro dipendente, che ha bollato linux come una cosa da "no-global". Non voglio nemmeno commentare, così non voglio nemmeno accogliere l'invito a rispettare le "cariche" dello stato. In queste condizioni non si può proprio.
V

P.S. Meglio un gelato in culo che un culo gelato. Ripeto: Meglio un gelato in culo che un culo gelato.

mercoledì 21 maggio 2008

PCI Express 1x

E' un progetto ambizioso. Prendere una scheda PCI express (R) 1x e collegarci dei segnali direttamente sul pettine, per utilizzare la scheda senza inserirla nella mother board di un PC. L'idea è venuta ad un collega programmatore, privo di nozioni inerenti l'hardware. Per iniziare, ho bisogno di un socket PCIe 1x da dissaldare da una mother board defunta ma di recente costruzione. Non ne ho a magazzino. L'hardware che recupero è troppo obsoleto e quel tipo di socket si trova nelle mother board che vengono mandate in riparazione in garanzia. Mi sa che dovrò fare un giretto fra i rivenditori di zona e frugare nella "spazzatura" tecnologica che si accumula nel corso dei loro interventi di "riparazione". sperando in un colpo di fortuna. Il pinout di un socket PCI Express comprende l'alimentazione a 3.3 e 12 volts (oltre alla massa), un canale Jtag (interessante per l'accesso diretto al processore), un bus SMB (I2C 1 wire) anche questo interessantissimo per sviluppare una cascata di sensori collegabili direttamente alla mother board ed altri segnali che per ora non mi interessano.
PCI-E è un bus seriale che usa due coppie di segnali differenziali a basso voltaggio (Low-voltage Differential Signal LVDS) con transfer rate da 2.5Gb/s in ciascuna direzione [una coppia in trasmissione ed una coppia in ricezione].
Ho già in mente alcune soluzioni per espandere le possibilità di utilizzo di un paio di PC che giacciono in attesa di modifiche. Stay tuned.

P.S. Ultrasuoni e calore nel camino. Ripeto: Ultrasuoni e calore nel camino.

domenica 18 maggio 2008

Modulo driver per kernel 2.6.x

Dopo un pò di googling in rete, ho trovato alcuni esempi di come programmare i moduli per il kernel 2.4.x
Il nuovo kernel 2.6.x attualmente in distribuzione presenta alcune differenze che hanno reso inutili gli esempi pubblicati sino ad oggi. Vediamo quindi qui alcune considerazioni utili a realizzare un modulo per la porta parallela, che mi servirà a pilotare il motore stepper unipolare già postato in precedenza e che è in fase di sviluppo. Premetto che maggiori info si possono trovare nei repository ufficiali della distribuzione che si utilizza (inutile mettere qui i link che ce ne sono a iosa)
Il kernel di linux fa un largo uso di driver caricabili dinamicamente quando serve, il che ci dà la possibilità di evitare la ricompilazione dello stesso in caso fosse necessario utilizzare delle periferiche nuove. Un altra comodità di linux è che "tutto è un file", ovvero i dispositivi possono essere utilizzati come se fossero dei files. Ci posso scrivere e ci posso leggere. Ciò ci permette di avere accesso ad aree di memoria protette o accedere a basso livello alle periferiche che normalmente equipaggiano i PC. Per fare ciò è necessario "vedere" il dispositivo nella gerarchia /dev. Negli esempi di codice che seguono, si utilizza il linguaggio C. Il codice è preso da vari esempi, cercando di tradurre alcune istruzioni scritte in klingon che si trovano "spezzettate" in vari post di altri programmatori.

Apertura del driver
static int miaporta_open(struct inode *inode, struct file *filep)
{
//ci limitiamo a scrivere un messaggio
printk("Dispositivo aperto\n");
return 0;
}

Chiusura del driver
static int miaporta_release(struct inode *inode, struct file *filep)
{
//anche qui scriviamo solamente un messaggio
printk("Dispositivo chiuso\n");
return 0;
}

La scrittura sul driver
static ssize_t miaporta_write(struct file *filep, const char *buf, size_t count, loff_t *f_pos)
{
outb(0x00,0x37A); // porta parallela 1 in uscita
outb(buf[0],0x37B); // Scrittura sul registro ADDRESS
return 0;
}

La lettura dal driver
static ssize_t miaporta_read(struct file *filep, char *buf, size_t count, loff_t *f_pos)
{
outb(0x20,0x37A); // Porta parallela1 in Input
buf[0]=inb(0x37B); // lettura dal registro ADDRESS
return 0;
}

Occorre ora associare le procedure alle funzioni dei files. Per farlo, quest’ultime devono essere esportate al sistema. Questo lavoro viene svolto riempendo una struttura particolare di tipo ”file operations”, definita nell’header file ”linux/fs.h”.

struct file_operations epp_fops =
{
owner: THIS_MODULE,
open: miaporta_open,
release: miaporta_release,
read: miaporta_read,
write: miaporta_write,
};

Per l'inizializzazione del modulo occorre anche associare, con la funzione "register chardev", un ben definito device al nostro driver. Basta passare come parametri, nell’ordine, il major-char-number (20), una stringa con il nome del driver e la struttura con registrate le funzioni specifiche di accesso.

static int __init init_mod(void)
{
int result;
if ((result = register_chrdev(20, "miaporta", &epp_fops)) < style="color: rgb(51, 204, 0);">Chiusura del driver (deregistrazione9

static void __exit end_mod(void)
{
unregister_chrdev(20, "miaporta");
printk("Driver MIAPORTA unloaded.\n");
}

Per ultimo occorre aggiungere la linea in testa MODULE_LICENSE("GPL"); (o altre opzioni disponibili in base al tipo di licenza prescelto) e in fondo

module_init(init_mod);
module_exit(end_mod);

Per compilare, occorre creare un Makefile come segue:

obj-m:= miaporta_drv.o
KDIR = /lib/modules/$(shell uname -r)/build
PWD = $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
rm -f *.mod.* *.o *.ko

Una volta compilato occorre caricare il modulo con insmod ./miaporta_drv.ko e per poterlo utilizzare basta dare il comando mknod -m 0666 /dev/miaporta c 20 0
Funziona?. non lo so, devo ancora provare.

In attesa che sviluppi il codice e inizi a testarlo vediamo come si prevede di utilizzarlo all'interno del programma che lo utilizza...

#include "fcntl.h"
#include "stdio.h"
int main()
{
char buffer[1];
int fd;
fd=open("/dev/miaporta",O_RDWR);
buffer[0]=0x00;
write(fd,buffer,1,NULL); //scrivo il byte
read(fd,buffer,1,NULL); //leggo i byte
printf("Valore : 0x%02x\n",buffer[0]);
close(fd);
}

Dovrebbe funzionare. Se nei prossimi giorni trovo il tempo di svilupparlo e mi accorgo che qualcosa non va, provvederò alle modifiche. Per ora STOP. Una domenica passata al PC approfittando del maltempo mi pare sufficiente. Ora un pò di relax. un abbraccio

P.S. Mille bit fanno un megabit. Ripeto: Mille bit fanno un megabit.

sabato 17 maggio 2008

Magicrescue per linux

Speravo tanto di non doverlo mai fare. Oggi ho combinato un pasticcio degno del più principiante degli informatici. Accidentalmente, nell'usare incautamente un file manager appena installato, ho cancellato il 90% dei sorgenti di un progetto che sto sviluppando da quasi un mese. Me ne sono accorto solo alla ri-accensione del sistema. Persi i sorgenti, le impostazioni del progetto, le form... una piccola catastrofe. Com'è noto, gli informatici sono i primi a bacchettare i clienti che non salvano i dati con i backup giornalieri, salvo poi non farli mai per se stessi. Ho dovuto quindi procedere con un tentativo di recupero utilizzando magicrescue per linux. Dopo aver ri-montato la partizione da ext3 a ext2 (non journaled), ho proceduto con la programmazione dei "recipes" (le configurazioni). Fortunatamente, fresco di sviluppo, ricordo a memoria i nomi dei files e delle form create. Credo di aver recuperato tutto il minimo per tentare una ri-compilazione. Al massimo avrò perso solo le ultime righe di codice sviluppato. Al limite, proverò con sleuthkit sul dd effettuato sulla partizione interessata, oppure con Autopsy.
Ora è troppo tardi per un tentativo. è dalle 7 di stamattina che programmo e sono un pò stanchino. Vado a riposare e sabato, invece di dedicarmi ai miei hobbies preferiti, proverò a sistemare gli ultimi dettagli. Notte.

Aggiornamento 17.5.2008 - Tutto ok. Files recuperati al 98%. Tre ore di lavoro per lo sviluppo dei sorgenti mancanti e il software è tornato operativo. Utilizzato Magicrescue per linux.

P.S. il ragno non esce dal buco. Ripeto: il ragno non esce dal buco.

martedì 13 maggio 2008

Lazarus per linux - Reports


Lazarus è un IDE (ambiente di sviluppo) del linguaggio di programmazione Free Pascal. E' compatibile con il linguaggio Delphi di Borland. Lo sto utilizzando per sviluppare alcune procedure software in ambiente linux. Il progetto Lazarus è in fase embrionale (versione 0.9.x Beta) e la documentazione davvero scarsa. Per chi ha sviluppato in Delphi per anni come me, la cosa non rappresenta un grosso problema, ma in alcuni casi serve sempre ancora un pò di supporto, specie per quei componenti "nuovi" che in Delphi non ci sono o sono diversi. Allora, per contribuire, visto che non ho trovato indicazioni in rete, voglio pubblicare qui alcuni "tutorial" che possano essere utili a chi inizia o non ha troppo tempo da perdere nel cercare fra i forum in inglese e le varie wiki perennemente under development...
Iniziamo con i componenti per creare i report (le stampe) con un esempio minimale. Vogliamo creare dei report da un database MySQL su un server remoto (host) utilizzando i componenti ZeosDBO per l'accesso alle tabelle.
Passo 1 - Creare un nuovo progetto con la classica form1. Ci mettiamo un Bottone per lanciare l'esecuzione dei componenti
Passo 2 - depositare nella form i seguenti componenti:
  • ZConnection1
  • ZTable1
  • frDBDataset1
  • frReport1
  • Opendialog1
Passo 3 - Colleghiamo i vari componenti e settiamo le proprietà minime per farle funzionare (alcune proprietà le mettiamo "hardcoded" a design time, anche se è semplice farlo a run-time
Proprietà ZConnection1
  • Hostname = 192.168.2.x (dipende dalla tua rete locale) è l'indirizzo del server ove è installato il database. indica "localhost" se apache risponde sulla macchina su cui stai lavorando.
  • User = il nome dell'utente abilitato ad accedere
  • Password = la password di autenticazione abbinata all'utente (senon ce l'aqhi chiedi all'amministratore della rete o al provider se ti sati collegando ad un server su internet)
  • Protocol = mysql-5 in questo esempio. dipende dal tipo di archivio che stai usando.
  • Catalog = nome del database (compare in un menu drop-down dopo aver settato host, user e password)
  • Database = scrivilo a mano uguale al nome del Catalog se si tratta come in questo esempio di un database remoto
  • Active=True

Proprietà ZTable1
  • Connection = Zonnection1
  • Active=True
Al termine con un doppio click sul componente sulla form sei in grado di aggiungere i campi che desideri gestire.

Proprietà frDBDataset1
Va collegato a Table1

Proprietà frReport1
Va collegato a frDBDataset1

Passo 4 - Ora passiamo alla scrittura del codice per attivare il disegnatore dei report, con salvataggio e stampa.
Per lanciare il designer basta chiamare la procedura DesignReport come segue, in concomitanza all'evento OnClick del Bottone:

frReport1.DesignReport;

Una volta creato e salvato il report, per aprirlo ed eseguirlo basta la seguente procedura:
if Opendialog.execute then
begin
frReport.LoadFromfile(Opendialog1.filename);
frReport.Showreport;
end;

Nei prossimi giorni prometto, forse, di ampliare le indicazioni e completarle. Adesso, dopo 15 ore di lavoro, mi prendo una pausa per andare a dormire. Buona notte

P.S. Il pollo è cotto. Ripeto: il pollo è cotto.

domenica 30 marzo 2008

PCB - Toner fuser

Procede bene il lavoro di costruzione del laminatoio per la produzione dei circuiti stampati (PCB - Printed circuit board) a trasferimento di toner. Dopo aver risolto il problema della coppia di torsione del motore stepper utilizzato (vedi post precedenti) ho realizzato lo scheletro di base per trasmettere il movimento dell'asse al fusore di toner recuperato da una stampante laser HP. La difficoltà maggiore è stata nel togliere il pignone dall'asse del motorino senza un adeguato estrattore. Dopo vari tentativi alla fine sono riuscito a sostituirlo con un ingranaggio di recupero (in teflon) recuperato dal mucchio di ruote ed ingranaggi pazientemente accumulati nel tempo).
Il nuovo pignone, dopo aver adeguato il diametro del perno, funziona egregiamente. Un minimo di lavoro di falegnameria per posizionare motore e fusore in modo che l'accoppiamento lavori meccanicamente senza perdita di passi è stato fatto con l'aiuto di normale attrezzatura da hobbista.
La staffa di fissaggio del motore è incollata alla base tramite tre tasselli in legno da 6 millimetri, centrati sul pannello multistrato utilizzato. Per fortuna il fusore utilizzato ha 2 leve di regolazione della distanza tra i rulli. Lasciano il posto per il PCB che avanza senza eccessivo sforzo.
L'inserimento del PCB deve un pò essere agevolato "a spinta" all'inizio. Una volta entrato avanza senza difficoltà.
Per la velocità di avanzamento dovrò fare delle prove sperimentali e calcolare il tempo necessario di trasferimento del toner sul rame in base alla temperatura dei rulli (il rullo che scalda è quello superiore). Per ora ho settato via software le pause tra una fase e l'altra (step time) a 250 mS, sufficienti per un avanzamento lento che a occhio dovrebbe andare bene.
Implementazioni future: Un pulsante per incrementare o decrementare la velocità di avanzamento; Un regolatore di corrente per la temperatura del rullo. Dei pulsanti per invertire il moto di rotazione avanti ed indietro in modo da fare eventualmente più passate senza dover reinserire più volte il PCB; un display che mi visualizza i valori di laminazione tipo velocità, temperatura, direzione, tempo totale di lavoro. Cose "superflue" ma utili per imparare.
Per ora basta, è domenica ed è una bellissima giornata tiepida e profumata. Mi sa che mi prendo una pausa a cavalcare la mountain bike per un giretto in collina. Ne ho proprio bisogno. Un abbraccio




P.S. Il burattino è nel sacco. Ripeto: Il burattino è nel sacco.

mercoledì 5 marzo 2008

Consulenza tecnica

Consulenza tecnica di parte... una interminabile riunione per ribadire a voce quanto già scritto dall'avvocato in quasi mille pagine di ricorsi e memorie.Servono le verifiche tecniche per cui il giudice dispone una Consulenza Tecnica d'ufficio, per verificare attraverso un CTu se la "vessata quaestio" è fondata in diritto o se gli avvocati sono dei pinocchi (come spesso accade). E' uno dei percorsi per far valere dei diritti. Alla riunione a cui ho partecipato in veste di CTP sono presenti il CTU, due consulenti di parte (CTP) e due persone di supporto tecnico. Due parti in lite di fronte all'ausiliario del giudice. Una delle due parti è in evidente difficoltà visti i risultati di una precedente ATP (Accertamento tecnico preventivo). L'ATP ha stabilito che dopo 3 anni l'installazione di un software gestionale non può ancora definirsi utilizzabile, nonostante il fornitore, in evidente ritardo, avesse preventivato lo start-up in tre mesi. Incredibile ascoltare una interminabile sequela di scuse, pretesti, asserzioni fasulle (puntualmente smentite), accuse e quant'altro controparte ritiene di apportare per favorire "la (loro) verità!". L'ausiliario tecnico di controparte è un "uomo marketing", uno di quelli che cambiano il significato alle parole comunemente conosciute per definizione universalmente accettata. Noto immediatamente che "l'ingeniere" CTU si sta facendo abbindolare e manipolare (un punto di demerito alla sua pretesa imparzialità). Devo agire in fretta per porre fine alle menzogne credibili dell'imbonitore. Purtroppo in veste di CTP non ho poteri per imporre l'allontanamento di chi disturba, e visto che il CTU sembra ormai totalmente ipnotizzato, devo correre ai ripari facendo appello ai molti anni di esperienza nel settore. Inizio una serie di legittimi interventi verbali, posturali e mimico-facciali che in soli 5 minuti riescono a far incazzare come una bestia l'uomo marketing, il quale come previsto e privo ovviamente di argomenti validi si alza e si allontana dalla sala. Se non posso farti uscire faccio in modo che esca tu di tua spontanea volontà, coglione! Mi hai preso per un pirla? Ci sei cascato e mi hai permesso nei 15 minuti che sei rimasto fuori di agire e riportare nei binari la percezione dei fatti concreti addotti a bilanciare a mio favore le fanfaluche campate per aria che sino a pochi minuti prima aleggiavano pericolosamente. Nel campo dell'informatica non è raro imbattersi in commerciali travestiti da informatici che con le parole riescono ad incantare i serpenti. Solo che io non sono una serpe ma un camaleonte, con esperienza sufficiente a cambiare strategia, in base a tanta esperienza pratica, adattandomi alle situazioni. Non ti aspettavi un osso duro vero?.

Da buono come sono ho proposto una conciliazione, per dare una dignitosa via di uscita alla controparte e nel rispetto della regola di cortesia nei rapporti di colleganza. L'avvocato di controparte rifiuta, come avevo previsto in quanto evidentemente preso dal sogno ipnotico indotto dall'informatico imbonitore. Seconda vittoria. Il giudice ne terrà debito conto.

Propongo al CTU un documento preparato nei mesi precedenti che evidenzia ritardi, quantifica i tempi (con tanto di riferimenti alle prove documentali) e da precisa risposta ai quesiti assegnati dal giudice... ed il CTU lo accetta volentieri, ho fatto il 70 % del lavoro che doveva fare lui...terza vittoria.

Ora la botta finale. Memoria tecnica che smonterà in base a prove certe il castello accusatorio, agevolato anche dall'irritazione del CTU che forse è riuscito ad intuire la volontà manipolatoria della controparte, e una super sintesi chiarificatoria con tanto di grafici e disegnini d'aiuto al giudice.

Morale del racconto: tutto ciò per far comprendere ad un giudice che nonostante la promessa di consegna in tre mesi non siano bastati tre anni per onorare gli impegni presi e sottoscritti. Se stessimo parlando ad esempio di mattoni nessun problema, ma se l'oggetto è software... allora sono tutti autorizzati a non capirci nulla. Complimentoni.

P.S. i bit sono aggiornati. Ripeto: i bit sono aggiornati.

domenica 9 dicembre 2007

Informatici precari, uniamoci!

Il 31 ottobre 2007 a Genova in seduta costituente ha preso via ufficialmente il F.U.L.P.P. Federazione Unitaria dei Lavoratori e Professionisti Precari, prima organizzazione nazionale a carattere sindacale che ha come obiettivo l’attuazione di attività specificamente mirate alla tutela di tutte le categorie di lavoratori e professionisti precari, con l'intento di dar voce e "svegliare" la società sul problema del precariato che investe non solo l' Italia ma anche l' Europa; i dati sono altamente preoccupanti, l'Europa conta già ben 40 milioni di precari di cui 8 milioni italiani...queste cifre sono abnormi ed è abnorme l'indifferenza della politica e degli organismi di informazione su tale argomento, è inconcepibile che ogni tipo di "regola" nell'ambito del precariato sia decisa al tavolino all'oscuro di chi paga sulla sua pelle ogni giorno tali decisioni, è "vergognoso" che non via sia una rappresentanza e che coloro proposti nelle decisioni che riguardano il precariato precari non lo siano! Lo stato delle cose ha determinato la nascita di questa organizzazione che vuole raccogliere le esperienza di vita e soprattutto l'adesione dei precari in forma completamente gratuita.
L’obiettivo primario è di unire solidalmente in forma unitaria gli interessi sociali ed economici di tutti i precari per consentirne la democratica rappresentanza necessaria al raggiungimento di maggiori diritti e migliori regole riguardanti l’ampio settore del precariato (co.co.co. e pro., partite iva monocomittente, dipendenti “liberi” professionisti e consulenti, agenti, rappresentanti e venditori porta a porta, lavoratori determinati, contrattisti del pubblico impiego, lavoratori occasionali “dipendenti”, incaricati e stagisti “dipendenti in nero” ecc.), i precari rappresentano un terzo della forza lavorativa italiana! E non contano nulla, la loro voce non viene ascoltata perchè il "sistema" li isola e non gli consente di essere rappresentati adeguatamente, L'INDIFFERENZA! Lavoratori di serie B anzi di serie C costantemente sotto ricatto! I sindacati nazionali (CGIL, CISL, UIL) non sono sufficienti a rappresentare i precari in quanto organizzazioni sindacali a tutela principalmente dei diritti dei lavoratori dipendenti per cui anche per loro i precari si riducono ad un problema “di secondo piano”, è necessaria un organizzazione autonoma che si occupi solo ed esclusivamente dei precari sia lavoratori nelle diverse categorie che professionisti nelle diverse discipline ed è questo il compito che si prefigge di svolgere il F.U.L.P.P.
Il FULPP INVITA tutti i lavoratori e professionisti precari a registrarsi ed iscriversi a questa organizzazione gratuitamente all’indirizzo WWW.FULPP.TK per esprimere le vostre opinione, le vostre idee e soprattutto unirci per manifestare con maggiore intensità le nostre esigenze come soggetti referenti primari! Un solo motto "INSIEME ED UNITI POSSIAMO FARCELA" , per far capire alla società che non siamo solo figure di passaggio ma che siamo lavoratori e professionisti con pari diritti e pari dignità.