Installare una chiavetta WIFI USB digicom Nano 150 dongle su Ubuntu

Qualche giorno fa ho deciso di comprare una pennetta USB per wifi (questo), per connettermi dal desktop senza dover ogni volta usare il cellulare. Ovviamente ho scelto questo dispositivo perché sulla confezione era scritto in bella mostra la compatibilità con Linux… e dato che ho avuto non pochi problemi ho deciso di scrivere qui tutta l’avventura!! 😀

Iniziamo intanto a dare qualche dato tecnico: dal comando lsusb la pennetta viene vista come

ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter

Appena scartato ho letto le istruzioni, ed ho usato il CD incluso nella confezione: conteneva il driver da compilare… che non compilava!! 😀
Sono allora andato sul sito del produttore e ho scaricato il driver aggiornato (da questa pagina non bisogna cliccare sul link in fondo, ma su Manuale a lato): compilazione OK e pennetta wifi funzionante. 😀
Peraltro, di questo driver aggiornato ne esiste anche una versione pacchettizzata molto molto comoda. 🙂

In preda all’euforia ho allora deciso di procedere alla formattazione del computer, per installare una versione più recente del sistema (passando da Linux Mint 13 Cinnamon – basato su ubuntu 12.04 -  a Ubuntu Mate 14.04) e per “pulire” il sistema da un po’ troppe versioni installate. Una volta installata la nuova versione del sistema la pennetta è stata riconosciuta subito, ma la linea cadeva frequentemente (ogni 5′ circa), anche se il sistema appariva ancora connesso.
Scelgo allora di ricompilare il driver aggiornato… e non compila!!! 😀
Vado alla radice del problema, scarico il driver non dal produttore della pennetta ma dal produttore del chip (RealTek)… e non compila!!! 😀

Cercando l’errore scopro, con mio sommo orrore, che il driver non è compatibile con le ultime versioni del kernel (ed infatti sul sito RealTek viene dato per buono fino alla versione 3.9), per cui dopo aver smadonnato e perso un bel po’ di tempo, decido di ri-formattare il tutto con Linux Mint 13 Mate (avevo oramai deciso di utilizzare questo ambiente), e usando il driver impacchettato tutto funziona…

Non ricordandomi un piccolo dettaglio su un’ultima configurazione, cerco su Google “ubuntu realtek 8129″… e il primo risultato è questo: una versione aggiornata del driver compilabile sulla versione 3.11 (ma a me ha compilato anche sulla 3.13) e pronta all’uso con dkms
Mandando a fanculo tutto, riformatto per l’ennesima volta e ora funziona tutto. 😀

Meno male che la re-installazione di Ubuntu è quasi automatica!! 😉

Libertà e sicurezza in punta di dito

Ma non per i possessori di cellulari di ultimissima generazione, quelli fighi con la possibilità di leggere l’impronta del dito e di utilizzarla per sbloccare il dispositivo (al posto della passeraword).

Samsung Galaxy S5
Samsung Galaxy S5

Secondo un giudice americano, l’impronta del dito non è tutelata dal V emendamento della costituzione degli Stati Uniti (che praticamente discrimina le autoconfessioni, cioè tra una cosa che so e una che ho). Praticamente un bel po’ della sicurezza va a farsi benedire, al contrario dell’uso di password imparate a memoria!! 😀
Sarà pubblicizzata a sufficienza la cosa? 😀

ShellShock: falla pericolosa in Bash

È appena uscita la notizia che esiste una falla clamorosa nella bash, la più diffusa shell su Linux (e MacOSX).

Come descritto qui, per verificare se la vostra macchina è vulnerabile, basta dare il comando

$ env x='() { :;}; echo vulnerabile' bash -c "echo prova"

Se il sistema risponde con “vulnerabile”, siete vulnerabili!! 😀

Se invece risponde con “prova” o con

bash: attenzione: x: ignoring function definition attempt
bash: errore nell'importazione della definizione di funzione per "x"
prova

allora siete a posto. 🙂

Una macchina senza

La notizia dell’altro giorno, relativa al rimborso di Windows preinstallato sui computer in vendita, ha scatenato i troll repressi della rete. Nonostante chiunque (diverso da Microsoft) dovrebbe essere contento, come consumatore, di poter avere più scelta, si sono succeduti commenti alle notizie , ripetuti quasi come una litania, del tipo:

Ma i pc senza os li vendono, se uno vuole un pc senza os perchè non prende quelli?
Come se io volessi un’auto senza aria condizionata, ne compro una con e poi la porto in assistenza a farla togliere e farmi rimborsare.

(secondo commento qui)

Ora, lo so che, come si dice in questi casi: “DON’T FEED THE TROLL!!“, ma penso che sia giusto chiarire un paio di concetti falsi errati, alcuni già trattati, concentrati nei commenti come quello di cui sopra… magari è utile a qualcuno che vuole genuinamente capire meglio com’è la situazione.

  1. i PC senza OS li vendono: vero, ma che PC sono? e quanto sono disponibili? ricordiamo che il problema di tutta questa storia è che un monopolista (Microsoft) sta usando la sua posizione per imporre ulteriormente il suo prodotto, limitando la scelta dell’utente finale/consumatore…
    Per esempio, esistono aziende che producono portatili (per i PC fissi il problema è più contenuto) con Linux (se uno vuole Linux, ma non è detto), come la System76, ma sono poche e non italiane (prima c’era la Garlach44, ma ora non vende più portatili con Linux), per cui la spedizione costerebbe parecchio…
  2. voglio il rimborso anche per i Mac Apple: non sono esperto giurista, ma la situazione è diversa, dato che Apple vende direttamente il tutto (Acer, Asus e compagnia, invece, danno Windows tramite accordi con Microsoft) e, soprattutto, Apple non è monopolista!!
    Stessa cosa, ovviamente, per telefonini, tablet e compagnia bella… 🙂
  3. chi lo farà ci metterà una copia pirata: forse si, forse no. Potrebbe voler usare Linux. O potrebbe metterci una versione di Windows che già possiede…
    Le situazioni possono essere le più varie possibili, ma mi pare che chi dica questo o è il primo che lo farebbe, o non trova niente di meglio da dire, E soprattutto è un non-problema, dato che quello che ci voglio fare sono affari miei!!
  4. se è così allora chiedo il rimborso dell’autoradio comprata insieme all’automobile: se si può fare, qual è il problema??
    Ricordiamo una cosa per i distratti: il diritto al rimborso è scritto nel contratto Microsoft!! È un diritto dell’utente!! Se per utilizzare la macchina che ho appena comprato, fossi costretto a firmare un contratto in  cui accetto di utilizzare le gomme nuove, e nel contratto c’è scritto che se non l’accetto non posso usarle e ho diritto ad un rimborso, la situazione è semplice: posso chiedere il rimborso delle gomme non utilizzate!!
  5. per pochi soldi non ne vale la pena, visto che devo spedire a mie spese il portatile al produttore: anche qui una non-obbiezione, dato che questa zozzata pratica la fa solo (che io sappia) Acer… vediamo alla luce di questa sentenza se viene ancora mantenuta…

Insomma, basta capire due concetti (posizione dominante e rimborso come da contratto) e tutto dovrebbe essere più chiaro…

Rimborso Windows: sì della Cassazione

Spinoso quesito quello della possibilità del rimborso di Windows e altro software preinstallato su un PC al momento dell’acquisto. C’è chi lo vuole per risparmiare qualcosina, e chi non lo vuole dare, nonostante in molti casi sia espressamente previsto dall’EULA di Windows stesso!!
Ultimamente la Cassazione si è espressa sulla questione: semplicemente si può fare!! 😀


fonte immagine

Certo che finché per ottenere il rimborso devo pagare due spedizioni, come nel caso di prodotti Acer, non si potrà fruire appieno di questo diritto… 🙁

Compilatori e compilati (UPD)

Qualche tempo fa mi è successo uno sgradevole incidente: ho perso un’intera cartella piena di file .java!! Ovviamente, nonostante tutte le mie buone intenzioni, nessun backup recente!! 😀

Avendo a disposizione, però, ancora i file .class compilati, ho provveduto a decompilarli usando il programma jd (Java Decompiler). Il programma mi ha ripristinato quasi tutto il codice (non c’è riuscito con un solo metodo, che ho ripreso con un altro decompilatore), per qui alla fin fine ho perso solamente i commenti e la documentazione javadoc…

Quello che mi ha incuriosito è stato però come il codice sia stato trasformato dal compilatore, ovvero come alcuni costrutti sintattici del linguaggio comodi da utilizzare vengano poi trasformati in fase di compilazione, tra cui:

  • eliminazione dei generics: in particolare, in caso di estrazione da una collezione di un’oggetto, viene fatto un cast
  • nel caso di metodi con un numero variabile di argomenti, chiamando la funzione l’insieme dei parametri viene convertito automaticamente in un array di oggetti
  • alcune variabili final (ad esempio di tipo int) vengono sostituite nel codice con il loro valore (per cui me le sono dovute andare a ripescare)
  • nel caso di boxing e unboxing, vengono aggiunti i comandi per la creazione dell’oggetto (ad esempio new Integer(i)) e per estrarne il valore (ad esempio, .intValue(), che poi è quello che lancia un eventuale NullPointerException)
  • in caso di dichiarazioni multiple, me le ha separate (ad esempio “int a, b;” è stato cambiato in “int a; int b;“)
  • i cicli foreach me li ha tutti cambiati in for+iterator, e sono impazzito a trovare il modo di riottenerli come prima
  • la costruzione di una inner class è stata completamente stravolta: anche qui ho dovuto ricostruirla piano piano (peraltro, in questo caso, il codice decompilato non veniva più riconosciuto come valido dal compilatore…)

Oltre a questi trucchetti sintattici, il compilatore ha operato anche alcune ottimizzazioni, tra cui:

  • alcune sequenze di if/else concatenate sono state parzialmente riscotruite (ad esempio un “if{} else{ if{} else{}}” è stato cambiato in “if{} else if{} else{}“)
  • in caso di cicli con dentro una dichiarazione di variabile, la dichiarazione è stata spostata fuori dal ciclo (forse perché è più prestante riutilizzare lo stesso riferimento che non ricrearlo ogni volta), ad esempio un “while(){String a=...}” è stato cambiato in “String a; while(){a=...}
  • nei metodi con costrutti try/catch/finally, eventuali istruzioni di return sono state duplicate in ogni blocco

Insomma, una bella avventura che mi ha permesso di scoprire un po’ di cosette e fatto amare ancora di più i backup!! 😀

Aggiornamento 29/08/2014: se per caso ne avreste bisogno, il codice per istanziare una inner class del tipo

A.B obj = a.new B();

(con a oggetto già creato) viene trasformato in

A tmp135_134 = a;
tmp135_134.getClass();
A.B obj = new A.B(tmp135_134);

I numeri del riferimento temporaneo possono cambiare. 🙂

Un’idea geniale

Avete presente il pizzo-compenso della mafia-SIAE? Quello che qualche tempo fa è stato aumentato (è stato appena pubblicato sulla gazzetta ufficiale) per far contenti i vari papponi?
Visto che il sovrapprezzo, giacché ne dicano vari coglionatori, lo dobbiamo pagare noi utenti, qualcuno ha avuto una geniale idea per far capire agli utenti (tutti, anche quelli meno avezzi a seguire questo tipo di notizie) la reale portata di questo fenomeno: mettere nel cartellino del prezzo del dispositivo la voce chiara e semplice “tassa SIAE” (anche con una dicitura diversa)!! 😀

logo mafia-SIAE

Chissà come la prenderà il truzzo italiota, quando vedrà da cosa è composto il prezzo che sta pagando… sarebbe da fare anche per la benzina!! 😀

Rimodulazione capziosa e strumentale

Il governo, nella persona di Dario Franceschini, ha recentemente deciso, tra una cazzata e un’altra e un documento sparito, di aumentare rimodulare le tariffe dell’equo-pizzo, dopo un tavolo di trattative in cui si è dato ascolto solo alla mafia-SIAE…

logo mafia-SIAE

Per capire bene la situazione consiglio (a chi ancora non conosce il tutto) di leggere questo articolo, che spiega bene il livello di capziosità nelle parole di Franceschini…

Poi dicono che è immorale scaricare… 👿