feb 20 2012

Non tutti sanno che

C’è un pezzo di “amico” in ogni mio programma.

Dai più sconosciuti, che tengo per me o che uso solo in ambito lavorativo, al più famoso, Install-O-Matic. Serve una chiave per un pizzico di crittografia? Il suo nome. Serve inventarsi un MD5 “fasullo”? Bene, il suo nome, scritto in HEX.

Insomma, c’è sempre una variabile o una chiave o un messaggio sulla console di debug che ricorda qualcuno. E se ne lascio fuori qualcuno, al prossimo programma è sicuro che ci sarà.

Tutte le persone che erano, sono, saranno (?) importanti nella mia vita.

Siete famosi, siete codice che viene eseguito da gente in giro per l’Italia.

Ok, non è un gran che, ma… butta via!


ott 25 2011

Crollo.

[articolo tecnico ma non troppo, gustabile anche dai comuni mortali]

Ok, da oggi dichiaro ufficialmente chiusi i servizi Adam RPC e frab sms system.

Ma prima di dirgli addio per sempre, vediamo un attimo cos’erano e perchè mi/ci(?) mancheranno:

Adam RPC, nome derivato da Adam’s song del Blink 182 + RPC (Remote Procedure Call) nacque da un problema che mi tormentava quando ancora non era famoso Shazam e non avevo internet sul cellulare: molte volte gli speaker alla radio non annunciavano il titolo delle canzoni, facendomi innervosire.

Così feci uno schizzo su uno scontrino, immaginando: mando un sms ad un cellulare, si attiva uno script sul computer, il computer va sul sito della radio selezionata e cerca la sezione “IN ONDA”, decifra titolo e artista, e mi risponde con un sms.

Da lì ho interfacciato un vecchio Nokia 3510 (in seguito 3330) con il Frab Server, e programmato una specie di framework in php che mi permetteva di inviare e ricevere sms in modo completamente automatico. Notti intere a decifrare degli xml incasinatissimi, roba compressa, degli stream stranissimi non documentati, un disastro. Ma funzionava. E bene. In seguito programmai anche le funzioni meteo (previsioni da tempoitalia.it), cinema (che, indicando una città, trovava i cinema vicini a quella città con orari dettagliati), trama (trama di un film), wikipedia (ricerca su wikipedia), wifik (decrittazione della chiave WPA di default delle reti Alice/Fastweb).

Purtroppo con gli anni non sono riuscito a stargli dietro: i servizi su cui mi basavo (radio 105, virgin, tempoitalia, comingsoon) si evolvono troppo rapidamente per star lì a rifare tutto ogni volta che fanno un update del sito. Quindi lascio stare. Peccato perchè prometteva bene.

Veniamo al secondo: frab sms system.

Nato come esperimento per impratichirmi sul CSS e su MySQL, era un servizio che permetteva l’invio di sms gratuiti verso Vodafone. Qualcosa come 500 al giorno – non spiego come ho fatto, o almeno, non pubblicamente, peccato perchè era ingegnoso :P – nella storia ha visto molte evoluzioni, addirittura invio multiplo, rubrica, storico messaggi con i singoli messaggi eliminabili. Da qualche mese Vodafone ha chiuso “la porta” che usavo per mandare tutti questi sms, e posso chiudere “all’attivo” con 8728 sms inviati tra Marzo 2009 e Agosto 2011. Se consideriamo un costo di 0,15 €/sms, si può teorizzare un risparmio (non mio, ma diviso tra gli utenti) di circa 1300 €. Insomma, good game per un progettino nato per caso.

Grazie a tutti quelli che hanno usato questi servizi, a quel semo di MirkolofYO, a quel tizio anonimo di Vodafone che mi sgridò per fare queste cazzate con i loro server (epico il messaggio che ricevette il mio server al tempo delle prime prove tecniche: “Studia il protocollo SMTP meglio e non usare gli indirizzi email degli altri. Primo avviso.“).

Sono un pò dispiaciuto che mesi e mesi di lavoro finiscano così, senza aver lasciato un segno, ma è stato bello e ho imparato molto. Specialmente che con voglia, tempo e PHP, una qualsiasi idea può passare dallo stato “SOGNO” allo stato “FUNZIONANTE”.

Se per caso qualcuno ha voglia di portare avanti il tutto, di leggere i sorgenti, o di farmi domande, sono disponibile ad ogni tipo di chiarimento, contattatemi tramite l’apposita sezione in homepage. Tutto il lavoro svolto è disponibile sotto licenza Beerware.

So Long, and thanks for all the fish.


set 10 2011

Sostituzione serratura Givi E36, E45, E52 Maxia

Ho da poco acquistato le due valigie laterali Givi E36 & Givi E45. Sì, le ho prese diverse, dal lato marmitta il telaio sporge di più, quindi ho optato per una valigia più piccola (info su http://www.stromtrooper.com/dl650-specific-wee-strom/34084-asymmetrical-givi-setup.html) e ovviamente mi sono arrivate con serrature diverse.

Dato che avevo ordinato anche un kit serratura (articolo Givi Z227, info qui), credevo che il negozio mi avesse già fatto il lavoro, e invece no, quando vado per portarmele a casa mi dicono”Ancora qualche giorno”. ANCORA QUALCHE.. COSA? NO. LE VOGLIO. SUBITO.

Così porto a casa il tutto e guardo questo nuovo oggetto sconosciuto. In effetti è un’operazione da 5 minuti e servono solo un paio di cacciaviti.

 

Passo 1: Rimuovere il blocco serratura.

Nelle E36/E45 c’è solo una vite:

Nel E52 Maxia sono 4 viti e tutto viene fuori facilmente, attenzione però alla rondella alla fine della molla nel pezzo rosso, se sta ferma è solo merito del grasso che ha messo la Givi.

 

Passo 2: Rimuovere il fermo.

Questo lascerà il “catenaccio” libero. Attenzione: ricordatevi il verso della chiave e il verso del catenaccio, è da reinstallare nello stesso modo.
Una volta rimosso, la serratura cascherà senza bisogno di spingere. L’anello di ferro potrebbe andare bene anche per la nuova serratura (mi sembra che siano tutte compatibili) ma ho preferito cambiarlo.

Attenzione per l’E52 Maxia: c’è una pallina (in basso a destra) tenuta spinta da una molla, e tende a schizzare via, fate attenzione

 

Passo 3: Sostituire l’anello, sostituire la serratura, rimettere il “catenaccio”, rimettere il fermo.

Controllate che ci sia lo spazio che permette al fermo di incastrarsi, se non c’è provate a girare la chiave, toglierla, rimetterla, sicuramente non è nella posizione giusta.

 

Passo 4: Rimontare il blocco serratura.

Nelle E36/E45 basta assicurarsi che la parte in metallo si infili nelle apposite scanalature. Nell’E52 Maxia basta riassemblare il tutto.

 

Un po’ di grasso nelle parti metalliche, collaudo, e via.


set 1 2011

Windows Update: 0X80072EFE

Alle 17.00 mi danno un pc da assemblare che deve essere pronto per le 8.30 del giorno dopo (io inizio a lavorare alle 8.30).

Tralasciando che, se fossi io il capo lì dentro, le cose andrebbero decisamente in modo diverso es:
CL: “Vorrei un pc assemblato come dico io per domani mattina”
IO: “Ahahahha, perchè non per ieri sera?”
CL: “Come scusi? Guardi che la fuori è pieno di altri negozi. Vuole perdere un cliente?”
IO: (mentalmente) “Everybody, move your feet and feel united, oh oh oh” (*)
CL: “Ma mi sta ascoltando?”
IO: “Don’t stop don’t stop don’t stop the beat….”
(stanco il cliente se ne va)

Dicevo, pc da fare, ok, si, si può fare, in un pomeriggio una volta ho assemblato e installato Windows su 4 PC, questo non è di certo un problema. Installo tutto e arrivo agli aggiornamenti al pelo (erano le 19, io smetto alle 19).

Windows 7 Professional X64 soltanto con i drivers. Nessun programma, nessuna chiavetta inserita, nessun virus. Aggioramenti: Windows Update: Errore sconosciuto (0X80072EFE)

MA PORCA!

Prima provo le mie soluzioni:
- Riavvio il pc
- Data e ora sono ok?
- Installo Internet Explorer 9 (o comunque l’ultima versione), riprovo
- file degli host, servizi fondamentali, dns, firewall di windows / di terze parti

Poi cerco su internet altre eventuali soluzioni:
- Può essere Kaspersky  http://press-f1.co.uk/personal-stuff/pc-and-gaming/kaspersky-and-windows-update/
- Possono essere Virus, quindi consigliano di fare una passata di MBAM, Security Essentials, Spybot
- Possono essere ANTI Virus, quindi consigliano di rimuoverli con le apposite utility
- FIX di terze parti

NIENTE.

Dopo solo mezz’ora di straordinario (forse sotto pressione rendo di più, non so) sono atterrato su questa KB:

“Quando si utilizza Windows Update o Microsoft Update per installare gli aggiornamenti, è possibile riscontrare errori temporanei relativi alla connessione”
http://support.microsoft.com/kb/836941

 

In fondo c’è una lista di codici di errori in formato più comprensibile, ecco il nostro caso:

0x80072EFE -2147012866 ERROR_INTERNET_CONNECTION_ABORTED

Grande giove!

E’ solo un problema di INTERNET.

Attivo Joikuspot sul mio Nokia, mi collego in Wifi, e gli aggiornamenti funzionano.

Ora mi è difficile criticare Windows perchè da sempre lo ritengo uno dei più flessibili e compatibili sistemi operativi che ci siano in giro (ho visto recuperi di alcune installazioni che.. vabbè, con linux ve lo sognavate), però CAZZO.

Non so cosa c’è dietro, ma Window Update ti visualizza l’errore SCONOSCIUTO (0X80072EFE) e sul sito della Microsoft c’è una tabellina che ti indica 0X80072EFE = INTERNET CONNECTION ABORTED, ORA DIMMI, CHE CAZZO TI COSTAVA SCRIVERE DIRETTAMENTE SU WINDOWS UPDATE “ERRORE CONNESSIONE INTERNET”?

Non dico di limare ogni difetto, per carità, Windows mi piace così, mi piace diventare matto con regedit, mi piace cercare su Google delle ore, mi piace conoscere ogni cartella dentro system32, ma cazzo, BASTAVA QUELLA SCRITTA, BRUTTI STRONZI.

 


giu 17 2011

New life for a USR9105

Non buttare via niente: è questo alla base del disordine che ho in casa e dei principali hack ben riusciti.

Frugando tra le mie cianfrusaglie, ho incontrato lo sguardo di un vecchio US Robotics USR9105 che mi diceva “usami usami usami usami”. Lo usai per qualche anno ma poi si ruppe il modem adsl, non si allineava più (attualmente il mio gateway è un Linksys AG241V2, acceso e dimenticato lì dal 2007).

Subito penso: ci piazzo DDWRT e ci gioco: Non è compatibile. Ci sono dei vecchi progetti per Linux su BroadCom96345, qui e qui, ma si limitano al compilare qualcosa di ridotto e uploadarlo sul router (ok, limitano non è il termine adatto, IN TEORIA compilando e uploadando si puo’ fare piu’ o meno tutto, ma ci vorrebbe mooolto moooolto tempo).

Boh, mi telnetto.


USR ADSL Gateway
Login: admin
Password:
> help

? help logout reboot adsl atm brctl cat df echo ifconfig kill arp defaultgateway dhcpserver dnsrelay lan passwd ppp remoteaccess restoredefault route save swversion wan ping ps pwd sysinfo traceroute

Niente di speciale, insomma. Provo sh.

BusyBox v0.60.4 (2005.04.21-17:46+0000) Built-in shell (msh)
Enter 'help' for a list of built-in commands.

#

Già meglio, ma non ho accesso a niente di interessante. ls non funziona.

# ls
ls: not found
#

Non so come o perchè ci sono arrivato, ma ho provato echo /*

# echo /*
/CVS /bin /dev /etc /lib /linuxrc /mnt /proc /sbin /upnp /usr /var /webs
#

AAAAHHH. Iniziamo a ragionare.

/bin è piena di cose interessanti, tra cui spiccano:


# dumpmem
usage: dumpmem <address_in_hex> <length_in_decimal>

(ma è per veri hax0rz)

e

# ledctrl
Usage: ledctrl led_name led_state

Supported led names:
Adsl
Wireless
Usb
Hpna
WanData
PPP
Voip

Supported led states:
Off
On
BlinkOnce
SlowBlinkContinues
FastBlinkContinues

Ahm. Controllare led quindi? Benissimo. Userò il led ADSL dato che è rotto il modem.

Raccatto un ULN2003A (altamente inutile, bastava un transistor darlington, ma quello l’avevo già in casa, il transistor no – forse) e uno stabilizzatore 7812, e un relè.

Led + collegato a IN1 dell’ULN2003A
Led – collegato a GND

12 V+ collegato a COMMON FREE WHEELING DIODES dell’ULN2003A
12 V- collegato a GND

OUT1 collegato a – Relè
12 V+ collegato a + Relè

Il mini circuito l’ho incollato nello spiazzo dedicato al modulo wireless assente (per quello c’era il fratellino maggiore USR9106). In questo modo si riesce a richiudere il tutto.

Beh, risultato:

Un interruttore attivabile da TCP/IP (basta telnettarsi, fare il login, e usare ledctrl)

Posso comandarlo via SMS (sms gateway sul frab server)
Posso comandarlo con PHP (sito internet)
Posso comandarlo con WinLIRC (telecomando della tv)
Posso comandarlo con qualsiasi programma (pc, notebook, win, linux)

Cosa ci attacco? :S

(“il cazzo” non è una risposta carina, seriously.)


mar 13 2011

Qualità. Costante. Nel tempo.

Sto lavorando sulla nuova versione di Install-O-Matic.

Sono arrivato ad un punto dove devo calcolare l’hash MD5 di un pacchetto (servirà per le funzioni di aggiornamento). Nella vecchia versione, lanciavo un programma esterno, md5.exe, e leggevo il valore in uscita. E’ un’operazione abbastanza… brutta.

Cercando alternative, ho trovato una libreria che mi permette di calcolare l’md5 internamente, con le sole funzioni del linguaggio di programmazione.

Ma poi mi son posto una domanda: quale dei due modi è più performante? Chiamare un programma esterno, o calcolarlo internamente?

Così ho scritto velocemente un programma che calcola 1000 volte l’MD5 di uno stesso file, usando i due metodi e misurando il tempo impiegato ogni volta. Inoltre, non eseguo i due calcoli in modo alternato ma in sequenza casuale, per evitare ottimizzazioni varie hw/sw (prefetch di vario tipo che non conosco, ma che voglio evitare).

Di media, per un file di 47 MB, i tempi (ms) sono:

Intel Core i7 920 @ 2.67 Ghz:
Interno: 352 Md5.exe: 322

Intel Atom 330 @ 1.60 Ghz:
Interno: 1407 Md5.exe: 483

Via C7 @ 1000 Mhz:
Interno: 3595 Md5.exe: 964

Per non saper né leggere né scrivere, penso che usare md5.exe (http://www.fourmilab.ch/md5/) sia la soluzione migliore. Quindi continuerò ad usare lo stesso metodo. Ma ora so che è il metodo migliore per l’utente finale.

Nota per i più nerd: Certo, potevo studiarmi come funzionava l’hash MD5 e costruirmi una funzione, ma sicuramente non sarebbe stata ottimizzata abbastanza per battere questi tempi. E poi Install-O-Matic è GRATIS :P

 


feb 25 2011

Voltmetro con ICL7107

Volevo costruire un voltmetro per monitorare lo stato della batteria della mia Ibiza (quasi 4 anni che non la cambio, nuova autoradio, nuovo sub, sono a rischio!). Mi sono basato su uno dei primi risultato su Google: http://electronics-diy.com/ICL7107_volt_meter.php. Ho acquistato l’ICL7107 e un 7660 su eBay (si trovano entrambi a 4/5 euro).

Guardando il circuito sembra tutto una cavolata: una decina di resistenze, condensatori, e via. Montato tutto con molto ordine e ottimismo. Dopo un’adeguata taratura, a 12 V indicava 12, ma a 5 V indicava 7. Shit.

Cerco ancora con il fidato Google e trovo CENTINAIA DI SCHEMI, UNO DIVERSO DALL’ALTRO. Tutti con fondo scala a 200 mV o 200V. A me serviva un comunissimo 0-20V.

Dopo diverse serate di sperimentazione “alla cazzo” (sul datasheet ci capisco poco e niente, mi spiace), sono riuscito a modificarlo, e funziona benissimo. Ho capito alcune cose che riporto nella speranza siano utili a qualcuno:

- Lo schema che si avvicina alla perfezione è questo http://www.circuitstoday.com/digital-voltmeter-using-icl7107, io ho usato C5=10nF, attaccato il punto decimale nel secondo display, e ho preso la parte che genera i -5 V con il 7660  da qui http://electronics-diy.com/ICL7107_volt_meter.php

- L’ICL7107 fa solo da 0 a 200 mV e da 0 a 2 V, per altre scale bisogna fare un partitore di tensione sull’ingresso (31 e 30).

Per un fondoscala di 200mV:
R3=47 kΩ
C4=470 nF
vRef (tra il pin 35 e il 36) deve essere 1 mV (poi le regolazioni “fini” si faranno con il trimmer R6)

Per 2V (che ho utilizzato per fare 0-20V)
R3=470 kΩ
C4=47 nF
vRef=1 V

- Il negativo dell’ingresso(30) l’ho collegato a massa.

- Se la lettura non è stabile si puo’ aumentare C2 a 1 uF, inoltre ho notato che R4 influisce sulla stabilità (sembra che migliori aumentando)

- R4 e R5 formeranno il partitore, dicono che “R4=1.2K gives 0-20V range, R4=12K gives 0-200V range”. Io pero’ dopo un po’ di conti e di prove ho usato R4=22K e R5=220K.

- E’ meglio prendere almeno R4 (sarebbe meglio anche R7, R6, R5) con tolleranza 1%. Usando resistenze a tolleranza ORO, ho degli errori di circa 0.10/0.20 V in  base alla temperatura (in questa stagione in macchina la temperatura cambia facilmente, si fa presto a passare dai 0 a 18 gradi con il riscaldamento)

Alla fine però ci sono riuscito :D


nov 19 2010

Pidgin: Impossibile validare il certificato

AGGIORNAMENTO: In data 22/11/2010 è stato pubblicato Pidgin 2.7.6, che dovrebbe risolvere questo problema senza bisogno di sporcarsi le mani. E’ disponibile su http://pidgin.im/. Attenzione però: nella pagina del bug #12906 si trovano ancora lamentele riguardo i certificati anche con la 2.7.6. Quindi questo articolo puo’ tornare ancora utile.

E’ da ieri (18/11/2010) che tutti i seguaci di Pidgin che si collegano a MSN ottengono questo “Errore certificato SSL”:

Rapidamente vediamo la Soluzione:

- Scaricare questo e questo file, e metterli nella sottocartella “ca-certs” di Pidgin:

Per chi ha Win7/Vista:
C:\Program Files\Pidgin\ca-certs\

Per chi ha Win7/Vista 64bit:
C:\Program Files (x86)\Pidgin\ca-certs\

Per chi ha Win2000/XP:
C:\Programmi\Pidgin\ca-certs\

Per chi ha Linux *di default dovrebbe essere*:
/usr/share/purple/ca-certs/

- Infine riavviare Pidgin.

Dettagli

Sembra che si tratti di un problema di certificati, causato dai sysadmin in casa Microsoft, tanté che nel Changelog appare  “because their server admins are incompetent and are still supplying the old intermediates on the wire.” LOL.

Maggiori info alla pagina del bug #12906 di Pidgin.


nov 17 2010

SistemaTS

Andare dal dottore con un febbrone da CAVALLO (!) e sentirsi dire “avrei questa cosettina che non va sul portale TS”: NON HA PREZZO.

(ultimamente al lavoro seguo un sacco di dottori per le nuove cagate funzioni di Progetto Sole e Sistema TS)

Un’esperienza mistica. Insomma, tu ripari me, io riparo il tuo computer. Wow. Siamo dei fighi.


ott 22 2010

Stagnatore

19.13: Esco dal lavoro, apro la bici e parto.

Le luci non funzionano.

Torno in negozio e parcheggio la bici davanti alla vetrina.

Entro. Peter prepara una prolunga, prendo lo stagnatore, gratto i fili ossidati dagli anni.

Stagno, lavoro perfetto. Nastro isolante e via.

Mi sento al sicuro. Ho un negozio su cui poter contare.