Archivi categoria: trip malato

Primi passi con Android

Nuovo telefono: Sony Xperia Pro.

Sbloccato bootloader e flashato Cyanogenmod appena fuori dalla scatola.
Durata della batteria vergognosa: il mio fido Nokia E72 faceva senza problemi dai 5 ai 7/8 giorni in base all’utilizzo. Questo invece va dalla mezza giornata di smanettamento estremo ai 2 giorni. Forse 2,5 giorni al massimo. Confesso che se ci penso mi viene da vomitare.

Ma l’ho preso per avvicinarmi al mondo di Android, mi incuriosiva troppo.

Tralascio tutte le stronzate che nel 2012 non dovrebbero proprio esistere (penso che farò un altro post a riguardo), Android è un sistema che offre molte possibilità. Senza ombra di dubbio: ben progettato, mal sviluppato, oddio, non MALE, diciamo nella direzione sbagliata. Vedere uno sfondo animato con l’acqua e le foglie che si muovono QUANDO NON E’ ANCORA SUPPORTATO L’USB HOST O LA SINCRONIZZAZIONE A CERTI ORARI, mi fa venir voglia di prendere la testa di chi ha inventato quei cazzo di sfondi animati (fighissimi, per carità!) e percuoterla ripetutamente sulla sua ricca scrivania finchè non ha capito QUALI SONO LE PRIORITA’ di un sistema operativo per cellulari.

Beh, però mi piace come ogni applicazione si appoggi su un database SQLite. Gli sms, i contatti, i dati delle applicazioni, tutto è su database. E i database sono belli perchè puoi leggerli, modificarli, utilizzarli a tuo piacimento.

In particolare stasera ho scaricato da Google Play un client RDP e VNC sviluppato dalla Wyse (che poi è la Dell), si chiama Wyse PocketCloud. Non ho provati molti, anzi, non ne ho provato nessuno, questo è il primo che ho trovato e mi piace molto. Fa quello che deve fare.

Nella schermata principale è possibile salvare delle connessioni per poter connettersi rapidamente al desktop remoto desiderato. Hem. Ho scritto connessionI? No, connessionE: al secondo click sul pulsante per aggiungere un link [+], la versione gratuita si lamenta:

Che tristezza dai. Far pagare 12,24 € per creare dei link nella schermata principale? No.

Dicevo che Android è bello perchè c’è questo standard dei database, per non parlare dell’ADB, permette di fare TUTTO, di essere padroni del proprio telefono. Ok. Mi si accende una lampadina… sfida accettata!

Usando QtADB navigo nella memoria del telefono. Cercando a casaccio trovo la cartella dove PocketCloud salva i dati: /data/data/com.wyse.pocketcloudfree/databases/

Benissimo. C’è wyse.db, non è .sqlite ma sicuramente è in formato SQLite. Me lo scarico sul Desktop.

Primo gestore di db che trovo su internet: SQLite Manager, estensione per Firefox. Preso.

Apro il db. C’è una tabella “rdp_connections”… guarda guarda!

Amo SQLite Manager: c’è la funzione Duplicate. Seleziono il primo record, clicco Duplicate, incremento l’ID primario, OK. Ripeto per 4-5 volte per ottenere un po’ di record “a muzzo”.

Chiudo il db. Con QtADB sovrascrivo wyse.db del telefono con quello appena modificato… Apri PocketCloud e, come sospettavo:

Adesso ho 5 “slot” per creare le connessioni che mi pare (basta editarle e inserire nuovi nomi/indirizzi ip eccetera).

Bene. Ho ottenuto quello che volevo. Ho i miei collegamenti del cavolo senza aver pagato i 12,24 euro della versione pro (che comunque avrà anche altri vantaggi oltre i collegamenti, spero)

Perchè non sono felice?

Perchè siamo nel 2012, e un’applicazione votata da 21.000 utenti (figuriamoci quanti la usano senza votarla!) programmata dalla DELL (non Fujitsu Siemens o Packard bell, o la Microforum se esiste ancora) è così malleabile.

Capisco che un programmatore costi, il tempo costa, tutto costa, pero’ dai, già mi immagino il programmatore di questa app che scrive…

click.tasto.aggiungi.link {
  se num.link > 1 {
    display.errore.paga.dei.soldi;
    return 0;
  }
  aggiungi.link;
}

-- tanto codice scritto senza dubbio malissimo --

carica.lista.link {
  leggi.tutto.il.db.anche.se.contiene.30.link;
}

CAZZO!

MA DAI!

SE SALVI I DATI IN UN DB NON CRITTOGRAFATO, NON TI VIENE IN MENTE CHE UNO COME ME CHE IN STE SERE SI ANNOIA PERCHè NON PUO’ USCIRE CON CHI VOLEVA (*ROAR*) IN 10 MINUTI TI BYPASSA STO LIMITE DEL CAZZO?

Sapere che ci sono programmatori LA FUORI che prendono piu’ soldi di me e non sanno fare il proprio mestiere mi fa innervosire A MANETTA.

La programmazione di driver, sistemi operativi, app, tutto è sempre piu’ sul superficiale, sul “fighetto”, sulle “api”, su JAVADIMERDA. Ovvero: il lavoro lo fa qualcun altro al tuo posto e tu riutilizzi spezzoni già fatti di codice senza preoccuparti di cosa succede e come funziona.

Non credo alla fine del mondo nel 2012 ma di sicuro credo che la fine dell’informatica ben funzionante sia vicina, se continua a proliferare gente così. Buonanotte, vado a letto inacidito. Ma con i cazzo di collegamenti di straforo su PockedCloud.

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.)

Previsioni del tempo

Quando appaiono nuvoloni neri e si sentono tuoni in lontananza, la mia ADSL si comporta così:

DOWNLOAD: 800 kb/s -> 300 kb/s
PING: 60 ms -> 80 ms
DROP: 0% -> 10%

Tralasciando che è veramente una ciofeca (ma ho una connessione di backup, per fortuna), stavo pensando di generare delle previsioni del tempo.

PHP, MySQL e via.

Un network di computer che pingano altri computer, quando la latenza aumenta vuol dire che il temporale si sta avvicinando. Che figata.

Clippy

Mi son ritrovato a prestare una graffetta per poi richiederla indietro.

Una graffetta, vi rendete conto di che tirchio di merda sono?

E solo adesso mi rendo conto che forse ho un po’ esagerato.

Ma non l’ho fatto per il suo valore, è che in casa non ne ho, e poi c’ero affezzionato. Insomma, per una cartoleria una graffetta sarà solo another brick in the wall, ma per me è qualcosa di speciale.

No, non sono MacGyver, ma diverse volte ho avuto l’urgenza di resettare qualche dispositivo gps/htc/merda. Ed ecco la graffetta.

Stessa cosa per i leghini (io chiamo leghini questi cosi qui): una mattina stavo andando al lavoro, appena sceso dalla macchina mi salta il bottone dei pantaloni (ovviamente larghi, e senza cintura). Senza i LEGHINI sarei stato fottuto, ma invece taaac: Leghino tra l’asola del bottone e il primo “attacco” per la cintura. Maglia giù per coprire il tutto ed ecco una giornata lavorativa salvata da un’eventuale tragedia (no dico, vi immaginate lavorare in mutande? che d’estate sarebbe anche più carino, ma.. cazzo.)

Un’altra volta volevo scrivere TVB ad una mia amica, per lasciarlo nel tergicristalli della sua macchina. Sarebbe stato carino (secondo me) uscire dal lavoro e trovare un TVB. Cioè, sarebbe il mio sogno, non so se è anche quello di altri, comunque questo è un altro discorso, il fatto è che non avevo la penna.
Chiederla? Giammai.
Avevo un’accendino e una graffetta. Ho scaldato con l’accendino la graffetta, aprendola, quindi ho scritto su uno scontrino (è risaputo che gli scontrini, in genere, sono stampati su carta termica). Ed ecco un TVB un po’ rustico ma ‘sudato’.

Insomma, sono piccole cose che preferirei avere sempre in macchina.

Perchè non si sa mai.

PS: Tra i diversi usi di una graffetta, ci sono anche:

  • cortocircuitare il filo verde con un filo nero a caso in un alimentatore atx: si accenderà anche senza scheda madre
  • infilarla nel piccolo foro presente praticamente in tutti i cdrom: la tray si aprirà anche se il pc è spento o se il drive è rotto
  • cortocircuitare i due pin di atx_pwr su una scheda madre, per diagnosticare problemi al pulsante Power di un pc
  • last but not least: tenere insieme due pezzi di carta

Logresolve.

Ok, gestire un server non è facile.

Per esempio: offrendo chat telnet ho la 23 aperta. Ok, invece che telnetd risponde il server di chat, ma ricevo uno SBROZZO di connessioni al minuto, tutte che si collegano, digitano utente e pass, e aspettano. E rimangono lì, anche per mesi, e io ho 400 connessioni OPEN, e ODIO QUESTA COSA. Bot di merda!

Ho dato la possibilità ai visitatori di scrivere nel guestbook o di spedirmi sms, ed ecco che anche lì arrivano TONNELLATE di spam. E mi tocca restringere al massimo le richieste che “passano”, facendo controlli sulla nazionalità dell’ip, sul referer, sulle parole inserite, e su eventuali domande-captcha.

Oggi, al ritorno dal Mc Donald (…) ho scoperto che da qualche tempo che il mio server non analizzava più le log. Con analizzare intendo Risolvere IP->HOST, e generare le statistiche. Risolvere gli IP in HOST è necessario perchè un host fornisce (solitamente) più informazioni.

Bene, vado per eseguire MANUALMENTE il mio mitico script che ha girato sui vari server da ANNI ed ecco:

Microsoft (R) Windows Script Host Versione 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tutti i diritti riservati.

I risolti sono 21927
In totale erano 6029
Ci sono quindi -15898 da processare.

-15898 da processare.

Mh. Qui qualquadra non cosa.

Mi son messo a leggere lo script, è PAZZESCO, è roba da MATTI CAVERNICOLI.

In pratica, ho il server che mi butta giù di continuo le log con gli indirizzi ip (eseguire una ricerca dns ad ogni richiesta ricevuta è un enorme carico di rete e di cpu, inoltre non so come si fa). Quindi cos’ho pensato?

Ogni giorno a mezzanotte:
1) Conto  le righe di access.log (le log con gli IP) e di risolti.txt (le log con gli HOST).
2) Prelevo da access.log tutte le righe a partire dal numero di righe di risolti.txt, e lo metto in temp.txt (così temp.txt avrà tutti gli ip dell’ultima giornata).
3) Risolvo temp.txt con logresolve.
4) Lo do in pasto al programma di analisi.
5) Lo appendo a risolti.txt
6) Ogni fine mese sposto i risolti.txt in una cartella “old”, rinominandoli in automatico con anno-mese.txt

Bene. Di recente ho aggiornato la versione di Apache e di PHP, quindi l’access.log è andato perso/resettato, ma risolti.txt l’ho copiato, insieme a tutti gli altri file dello script.
Questo ha generato la situazione surreale: I RISOLTI erano PIU di quelli da RISOLVERE.

Risultato: lo script calcolava un numero negativo, non creava correttamente temp.txt, che non veniva risolto da logresolve, che non veniva analizzato dal programma di analisi. E sbom. Non funzionava piu’ niente.

Mi chiedo ancora cos’è che mi fa andare avanti…