lunedì 23 dicembre 2013

C# e IMEI

Ero incuriosito da come gli imei funzionassero.
Prima di informarmi, ancora non sapevo che fossero necessariamente lunghi 15 cifre e che l'ultima servisse a verificare la validità delle prime 14.
Ho scritto un algoritmo per controllare la validità di un imei e/o generare la sua cifra di controllo.
Tra il codice trovate anche i come e i perché. Di solito non commento mai i programmi che scrivo, però era meglio fare un'eccezione questa volta ;-)

Ammetto che avevo fatto il ciclo di imeiCheckDigit in Linq, poi mi sono dato dell'idiota e l'ho riscritto come si deve. :D

MP3 e ConcurrentQueue

L'altro giorno ho realizzato che avere i propri LP (per la vecchia scuola) in flac su un telefonino è oltremodo stupido, in quanto probabilmente nessuno noterebbe mai la differenza.

Decido quindi di convertire la libreria in MP3 (320k).

Siccome un programmatore non è contento se non fa le cose da sé, ho scritto un piccolo wrapper per ffmpeg (che a sua volta include le librerie LAME) avendo cura che le conversioni occupino tutta la potenza di calcolo disponibile, lanciando una istanza per core.

Per evitare di incorrere in elaborazioni "doppione", è necessario sincronizzare i thread affinché si eviti che più di un thread gestisca un singolo file.

Ci viene in aiuto il namespace System.Collections.Concurrent che include delle collezioni concepite allo scopo.

Nella fattispecie, ho scelto ConcurrentQueue per la sua logica FIFO (First In First Out).

Per Queue si intende una coda, proprio come quella del supermercato o delle poste: chi prima arriva, prima se ne va.

Per questo tipo di applicazione poteva andar bene anche uno Stack (pila) con logica LIFO (Last In First Out) perché l'ordine in cui vengono convertiti i file non è importante.

domenica 22 dicembre 2013

Prime esperienze con LG G2

State parlando con una persona che fino a poche ore fa aveva un Galaxy S4 (e lo odiava) e che ha avuto tra le mani S2, S3, Note e Note 2.

La svolta che ha dato LG con il G2 mi ha fatto rivedere tutti i pregiudizi ed abbandonare definitivamente samsung senza mai voltarmi neanche un istante.

Premetto che tutto il post potrà essere riassunto con una sola parola: WOW. O con una singola immagine:

sabato 21 dicembre 2013

Asus N53SV/SN: problema alle hotkey

Ora voglio parlare di un PC che mi ha dato tante soddisfazioni, sia per la qualità costruttiva, che per l'esperienza utente.

Di una cosa però non riuscivo a capacitarmi: che le hotkey (i tasti fn, per capirci) non funzionassero a dovere con windows 8 (e successivi).

il perché di questo è presto detto: queste sono state implementate coi piedi (non diciamo parolacce va) nel DSDT, non tenendo in considerazione che l'OS potesse volersele gestire da sé.

questo ovviamente genera varie complicazioni che, alla pressione delle suddette hotkey. impediscono effettivamente di attuare il comando impartito.

Ho pubblicato il bios patchato qui.

Grazie asus per aver ignorato le richieste d'aiuto di chi possiede questo piccolo pezzo d'arte.

DVR Naway

Ho aperto questo blog perché credo possa essere utile a qualcuno.

Sono una persona molto interessata alla tecnologia, a come funziona, e soprattutto a come aggiustarla quando si rompe.

Il mio primo post riguarda un DVR, cinese, senza nome. Chi ne ha avuto a che fare riconoscerà il nome Naway.

Bene, tutto ok, finché arrivò android 4.2: questo nuovo major update di android porta, oltre alle migliorie, un cambiamento nella gestione dei ByteBuffer. Per farla breve, c'è molta probabilità che un programma che non abbia implementato correttamente i ByteBuffer ora crashi, perché android ora li avanza da solo, e quindi una applicazione che credeva che tale ByteBuffer fosse sempre in posizione 0 (tranne se modificato esplicitamente) ora se lo ritrova in posizione finale.

Ciò porta al lancio di una RuntimeException, che può essere risolto semplicemente facendo il rewind del buffer prima di riutilizzarlo.

Tada, tutto funziona di nuovo.

Naway+