Dopo qualche tentativo veramente andato a male ecco il risultato di un pò di tempo passato alle prese con Hugin.
Sicuramente grossolana, ma per ora non so proprio come migliorarla…
Dopo qualche tentativo veramente andato a male ecco il risultato di un pò di tempo passato alle prese con Hugin.
Sicuramente grossolana, ma per ora non so proprio come migliorarla…
A causa di qualche post di troppo sui lettori mp3, mi sono ricordato di aver qualche piccolo problema con il mio e quindi mi sono messo alla ricerca di un upgrade del firmware… mi si è aperto un mondo. La famigghia è più grande di quanto pensassi….
Dal sito a cercare di capire quale tipo (board id) di lettore avessi, il passo è stato breve:
Alla fine sono riuscito ad ottenere la preziosa informazione, ma solo dopo aver smontato il display LCD ed aver spostato la batteria: ho un SCD049-REV1. Pochi istanti dopo ho realizzato che il board id è praticamente inutile dato che non esistono firmware alternativi a quello standard, ma…
E si’, c’è sempre un “ma”, infatti esiste una specie di sdk casereccio per programmare questi aggeggi e della gente, che per mia sventura è di windowsiana natura, ci sta buttando un po’ di energie per veder di realizzare un firmware opensource.
Quindi mi sono detto, perchè non provare a far girare uno stupido programmino sull’aggeggio, magari ne approfitto per ripassare il caro vecchio assembly Z80?
Dopo un po’ di fatica cercando di raccogliere ed “adattare” informazioni dal SDK in C e dagli esempi in assembly, grazie a questo tool sono riuscito a scaricare questa mia stupenda creazione ottenendo il risultato seguente:
Alla prossima: !
Come a molti altri, questo articolo (GrokLaw) mi è piaciuto, specialmente la trascrizione dell’intervista di Eben Moglen: c’è del vero in quello che dice…
Cercando informazioni su un problema avuto con NHibernate al lavoro, mi sono imbatutto nel più classico dei quesiti sul design di tabelle in un DB relazionale: le chiavi primarie devono essere definite su attributi che identificano univocamente l’entità che la tabella rappresenta “naturali” oppure possono essere il classico id automatico “surrogati”?
Ovviamente confrontare questi approcci ha un senso solo se la chiave “naturale” è una chiave composta da più campi e quindi più difficile da gestire rispetto all’equivalente “surrogato” che è sempre un singolo numero.
Non molti giorni fa avevo avuto una discussione proprio con Alessandro sullo stesso tema, quindi oggi ho deciso di approfondire un po’ la questione.
Il risultato come in tutte le cose non è una regola ferrea da seguire e come al solito ci sono fazioni che si scannano senza alcun senso proprio sull’argomento.
Sulla base dei commenti (n.b. commenti) di questo articolo Composite keys are evil e dell’autorità di chi ha scritto quest’altro primary keyvil mi sono fatto una prima idea sui pro e contro.
Le chiavi surrogate non hanno una “funzione descrittiva” dell’entità e ciò è male molto male, sono solo un espediente tecnico per rendere più facile (e sembra di molto) la vita di chi utilizza ORM tipo [N]Hibernate. I “surrogati” hanno un qualche vantaggio in prestazioni che però è tutto da verificare dato che per filtrare un qualsiasi dato in una query si è quasi sempre costretti ad eseguire join ulteriori.
E’ praticamente impossibile sostituire “logicamente” una chiave “naturale” con una “surrogata” pena bug difficili da tracciare ed una base dati “più fragile”, quindi alla fine, anche se non come chiave primaria, sarà sempre necessario definire la chiave “naturale” e probabilmente anche con l’attributo “unique”.
Ho quindi l’impressione che sia “giusto” ragionare sempre in termini di chiavi “naturali” e che sia invece “pratico” affrontare e risolvere alcuni problemi tecnici grazie all’utilizzo dei “surrogati”.
Rimane ora il dubbio: primary keys “surrogate” ed indici univoci “naturali” o viceversa?
Oppure niente “surrogati” in attesa che i vendor di RDBMS e che i vari ORM sistemino le loro magagne tecniche?
P.S.
Per quanto riguarda NHibernate gestire chiavi composite “naturali” mi è costato solo un’oretta per scrivere un paio di classi ed implementare due metodi, so che sono all’inizio, ma mi sto ancora chiedendo: qual’è la difficoltà nell’utilizzo di ORM e chiavi composite? Forse arriverà andando avanti…
Di tutte le implementazioni di xeyes che abbia mai visto questa è semplicemente fantastica!
Non c’è niente da fare, anche se la situazione del multimedia sotto linux è leggermente inferiore rispetto alla concorrenza, sia essa Microsoft o Apple, per quello che mi riguarda Rhythmbox è diventato indispensabile ed al lavoro (quindi con Windows) ne sento proprio la mancanza.
Come ha fatto nonostante il supporto per i file audio non sia allo stesso livello di Media Player? Il motivo è semplice, ho la mia libreria di file mp3, i podcast, le internet radio, Magnatune e Jamendo dai quali posso ascoltare e nel caso di Jamendo anche “downloadare” quintali di nuovi brani ed ora anche last.fm con le sue radio ed i suoi tag tutti integrati nel player.
Vorrei proprio la stessa cosa anche in WMP.
Dopo firefox, ardour… ecco un altro programma che ha passato il segno, da sostituto decente di WMP per ascoltare musica a programma fondamentale per il mio modo di ascoltare e anche di cercare nuova musica.
Settimana pesantuccia, ma finalmente sono riuscito a trovare un po’ di tempo per rigiochicchiare con Ardour e questa volta come si deve!
Il risultato è questo brano al solito suonato maluccio, ma nato da un giro che non pensavo mi portasse mai a niente, quindi diciamo inaspettato.
Questo è il primo mixdown di in movimento ovviamente provvisorio dato che ho l’esigenza di risuonare alcuni punti con errori troppo grossolani, accorciare alcune parti ed aggiungerne altre, ma comunque eccolo. E per dimostrare tutta la mia imperizia uno screenshot di ardour che svela come sono stato costretto a spezzare la registrazione in varie tracce poiché non riesco a suonare le parti una dopo l’altra…
E’ dalla prima caduta del nostro caro governo, giorno infausto di reinstallazione, che combatto con ardour2 (miii il mio multitraccia preferito!).
Ogni volta che tentavo di ricompilarlo incappavo in un errore del linker che, senza troppi complimenti, mi informava che non riusciva a trovare le funzioni:
in libart_lgpl. In realtà tali funzioni sono definite come è facile vedere con un
nm --dynamic /usr/lib/libart_lgpl_2.so.2.3.19 | grep 'art_free\|art_alloc'
Cosa strana ed incomprensibile fino a quando cercando in rete non sono incappato in questo post, che tra le altre cose conteneva anche la soluzione al mio problema (grazie Laurent Montel).
Subito mi è stato chiaro che essendo ardour scritto in c++, la mancanza di quell’ extern “C” prima della definizione di art_alloc e compagni, non impediva al compilatore (g++) di trattare la chiamata a quelle funzioni come nativa c++ e di fare quello che fa di solito con i nomi di funzioni in c++.
Finalmente posso di nuovo produrre, ma soprattutto riascoltare, del rumore.
Sono passati ben 9 giorni dal mio ultimo post e tutto sembrava andare per il meglio. Avevo appena installato windows Vista, mosso i primi passi nel fantastico mondo di Aero Glass, ma al momento dell’utilizzo serio e sul campo il sogno è magicamente svanito.
Non funziona nulla, nada, nothing!
E non mi sto riferendo a software vecchio ed obsoleto come Visual Basic 6! Ma a Visual Studio 2005 o Microsoft SQL Server 2005. Anche se installati da amministratore non funzionano, danno continuamente errori e problemi di accesso al registro. Il server web integrato in Visual Studio dà praticamente picche dopo pochi secondi dall’avvio e si ha la sensazione di un sistema fragile ed ancora immaturo. Non meraviglia il fatto che per l’ambiente di sviluppo il 6 Marzo sia già uscita una nuova service pack e proprio specifica per Vista!
Scordatevi quindi di usare Vista come utente normale poichè sarete trattati proprio da “unprivileged” user: a pesci in faccia!
Un ultimo consiglio, giusto per essere anche un po’ costruttivi: se proprio volete farci un giro, installate il vostro software come amministratori supremi ed intoccabili del sistema, disattivate l’U.A.C. (Ufficio Affari Complicati – User Account Control) e per non farvi mancare nulla eseguite i setup cliccando col dx del mouse e selezionando “Esegui come amministratore”.
Io ho installato tutto il mio software partendo da utente non privilegiato ed eseguendo i setup “come amministratore” (del resto sono abituato a fare così da anni con Linux), quindi senza appartenere effettivamente al gruppo Administrators e con l’UAC attivo. Il risultato è stato un obrobrio con il registro mezzo sputtanato che alla fine mi ha costretto ad una bella formattazione e reinstallazione di Windows XP.
L’unica cosa che mi consola è che non sono solo:
Non voglio essere definitivo e come molti aspetterò o la Service Pack 1, oppure di avere un po’ di tempo per ritentare un’installazione come SUPERAMMINISTRATOREGLOBALEDELMONDOINTERO, ma per ora basta dato che non è Microsoft a pagarmi lo stipendio.
P.S.
E’ ovvio che i problemi non sono imputabili a Vista per se, ma al software che non è proprio “Vista ready”, ma alla fine il risultato è lo stesso: un computer con software Microsoft totalmente inutilizzabile…
Dopo due giorni di tricchete e tracchete nel mio nuovo portatile ho installato Uindouvs Vista con tutto il pane e companatico che mi serve per lavorare.
Le prime impressioni:
Tuttavia proprio nella gestione dell’utente senza privilegi ho riscontrato diverse carenze…
Manca e spero sia rilasciata a stretto giro di aggiornamento la gestione del “portachiavi” alla Mac OS X o Gnome o KDE. Giuro che ho digitato cosi’ tante volte la password dell’amministratore che ormai per decifrarla basta vedere quali sono i tasti consumati!
Infine, come in tutte le installazioni di un nuovo s.o. targato Microsoft, mi diverto a scoprire se si sono accorti che la finestra di dialogo del installa/rimuovi font viene direttamente da windows 3.1. Ebbene siori e siore eccola in tutto il suo splendore:
Dopo 22 anni dall’uscita del primo windows la Microsoft batte l’ennesimo primato: la prima finestra “fossile” mai inclusa in un sistema operativo!
Concludendo: bene la base l’avete fatta, ora dovete solo pareggiare i conti con la concorrenza… avete tutto l’anno davanti a voi per rilasciare patch ed aggiungere qualche funzionalità che vi è proprio sfuggita.
Non pensavate mica di incantarmi solo con qualche ombreggiatura e animazione 3D fatta con aero vero?!?!
Qualche giorno fa grazie ad un post in un blog ho scoperto Jamendo un sito di musica libera principalmente (ma non solo) francese.
Ho provato ad utilizzare il player web al lavoro, ma in firefox non mi funziona bene mentre qui a casa cerco per quanto posso di evitare flash et similia che, anche se con la versione 9 ha fatto passi da gigante, non è mai privo di bug ed utilizza un sacco di memoria per nulla…
Sapevo inoltre che un nuovo plugin per rhythmbox sarebbe stato rilasciato con la versione 0.9.8 e lo stavo attendendo trepidante.
Finalmente oggi è apparso fra gli aggiornamenti disponibili in Synaptic. L’ho installato ed è veramente bello.
Al primo utilizzo ha scaricato il database dal sito Jamendo (così posso fare ricerca anche offline) ed ora ho la bellezza di 21426 nuovi brani da ascoltare in streaming o dowloadare in p2p con bittorrent! Il tutto ovviamente in piena legalità!