0
Dic 26 2013

C++ Logger

Ultimamente non stavo più andando avanti con progetti di programmazione, ma, riprendendo, ho sentito la necessità di fare un buon sistema di logging basato sugli stream di C++.

In passato avevo già affrontato l’argomento, ma questa è stata una sfida per vedere se riuscivo a fare tutto da capo e da solo. Ce l’ho fatta, così ho deciso di pubblicare qui i risultati.

Come requisiti ho tenuto in mente la versatilità e la sicurezza per l’uso con i thread.

La versatilità l’ho ottenuta mediante la divisione per modulo (per esempio networking, audio etc…) e livello (errore, informazione…). A coordinare tutto c’è il Log Manager, una classe che coordina i vari log. È un singleton (ottenuto tramite la mia classe allegata), e ritorna degli stream, uno per ogni coppia modulo-livello (che insieme fanno il LogId), assicurandosi che queste istanze siano uniche. Inoltre dispone di una funzione per mandare direttamente in output una stringa, dove in più si può specificare anche il file e la linea, magari usando le macro __FILE__ e __LINE__.

Ho pensato come vari output lo standard output e error, in più un file e un’eventuale consolle interna al programma, configurabili per ogni log, con… [Leggi il resto...]

0
Dic 08 2013

Ulteriore, deludente sperimentazione sul DSL-504T

Ultimamente non ho molto tempo da dedicare ai miei progetti perché sono stato assorbito da altre attività. Il miller è fermo ormai da inizio novembre, anche se spero in dei progressi durante le festività, e dei progetti a computer non ne parliamo neanche. L’unica cosa cui ho dedicato un po’ di tempo domenica scorsa e un po’ ieri, è stato cercare di riciclare il DSL-504T di cui avevo già parlato per usarlo almeno come router insieme all’altro che ho.

Il mio chiodo fisso è quello di avere un ruoter con l’ottimo firmware libero OpenWRT per godere di funzionalità altrimenti possibili solo con router di livelli più alti. Tra queste ci sono IPv6, supportato nativamente dal mio provider, ma anche DNS interni, configurazioni avanzate di ogni servizio dovute all’accesso completo al router.

Tempo fa avevo già cercato di usarlo autonomamente, sfruttando quindi il modem ATM incluso nel dispositivo, senza tuttavia avere successo. Forse perché, come ho scoperto solo ieri, le informazioni del wiki di OpenWRT si applicano solo alla seconda generazione del 504T, la revisione C, mentre il mio è una versione A1.

In ogni caso, avevo abbandonato quest’idea in favore dell’uso del… [Leggi il resto...]

9
Nov 17 2013

GNOME 3.8: gli screenshot

Finalmente, con un bel po’ di ritardo, mi sono preso del tempo per creare degli screenshot per far vedere GNOME 3.8 al buon Lantaca :-) .

In realtà presto c’è già GNOME 3.10 ma ho voluto fare lo stesso la mia selezione di funzionalità, anche per spiegare un po’ meglio le novità che avevo segnalato precedentemente.

Una precisazione: le immagini contengono software rilasciato sotto licenze libere, perciò, essendo delle opere derivate, ne ereditano la licenza. Tutto il software proviene da Debian. Precisamente i vari programmi sono: GNOME Shell, GNOME Control Center, Nautilus (soprannominato File), GNOME Terminal, Icedove (ovvero Thunderbird di Mozilla) e Chromium. Lo sfondo è uno di quelli inclusi in Debian.

0
Nov 03 2013

Torno a GDM

Da molto tempo in alcuni computer sto utilizzando LightDM anziché GDM.

Entrambi sono due gestori di display, ovvero permettono il login grafico e controllano il server X. Il primo è nato con lo scopo di essere leggero, permette una personalizzazione in HTML ed è diventato la scelta predefinita di Ubuntu già da alcune versioni, il secondo è quello ufficiale di GNOME.

Su Debian GDM3 è ancora il DM predefinito per chi ha GNOME, però mi sembrava lento all’avvio, perciò avevo deciso di cambiarlo.

Da tempo, però, pensavo di tornare a GDM perché non mi sembrava più così male come tempi d’avvio, inoltre non era stato rimosso dall’avvio e ad ogni boot veniva fuori il messaggio che era disabilitato.

Una cosa che poi mi seccava parecchio, riguardo LightDM, era che ad ogni aggiornamento dovevo ripristinare l’opzione di visualizzare la lista degli utenti anziché mettere lo username ogni volta, anche se magari esisteva un modo per fare file di configurazione separati dal resto.

Negli ultimi tempi ho avuto qualche problema con GNOME: non si montavano le unità di massa automaticamente e come ultimo bug non funzionavano più l’arresto del sistema o lo standby da parte dell’utente.

[Leggi il resto...]

0
Nov 02 2013

PCB Miller: idee sulla struttura

Ho colto l’occasione del ponte per buttare giù un progettino del PCB miller.

4_rendering_XZ.png

Questo è un rendering degli assi X e Z.

Ho fatto il progetto con Sketchup. Purtroppo è un software proprietario e non gira su Linux, ma visto che in futuro probabilmente dovrò usarlo per altri scopi, ho anche un po’ imparato a usarlo. Devo dire che è molto semplice da usare e per queste cose veloci è ottimo. Il rendering l’ho fatto invece con Blender.

Ho ripreso l’idea della Mantis 9.1 per l’asse delle Z. All’inizio volevo usare due ingranaggi ripresi dalla stampante, però avevo il problema della cintura dentata. Prenderne una compatibile con i miei ingranaggi su internet non era così semplice, avrei dovuto prendere anche tutto il resto. Non che non ne valga la pena ma lo spirito del progetto è un altro :-) .

Nel rendering manca il sostegno dell’asse X, che dovrebbero essere tre barre filettate (due da una parte e una dall’altra). Le cose marroncine sono fatte di compensato, per il momento ho messo spessore 5mm perché è quello che ho, ma probabilmente ne prenderò uno più grosso.

La barra filettata è quella più grossa, le altre sono aste non filettate.

Quelli grigi scuri sono i motori e la… [Leggi il resto...]