Feeds:
Posts
Comments

You can’t ship a design. You can ship working code.

Grande Obama!

E’ passata la riforma sanitaria alla Camera degli USA!

E sapete che c’è? Che sono quasi commosso a leggere quell’articolo: dopo tanto schifo nella politica di questo Paese e di altre parti del mondo, dove la gente si spinge sempre di più a destra ed in mano a politici non politici ma agitatori di popolo, o (peggio?) a sostenitori del capitalismo spinto e delle lobbies, finalmente un’ottima notizia che giunge questa mattina (e di cui mi ero quasi dimenticato, tra una cosa e l’altra).

Ora aspettiamo l’ultimo passetto in Senato e la firma del Presidente.

P.S.: chissà cosa avrebbe detto Crichton di questa riforma…

Si discute su Ubuntu

Tanto per cambiare, si discute su Ubuntu, e naturalmente i commenti sono perlopiù contrari alla politica che Canonical sta perseguendo (e mi riferisco, ad esempio, al rinnovamento del brand), ma ormai a questo ci siamo abituati, ed è un fatto dovuto principalmente al fatto che i geek che stanno intorno a Linux troppo spesso lasciano avvicinarsi solo coloro che sanno come minimo ricompilare un kernel, altrimenti (a loro parere) dovresti restare col tuo bel Windows/Mac.

Dopo aver letto un paio di post interessanti, vorrei semplicemente aggiungere che, di fatto, Canonical sta cercando di mantenere sia l’aspetto commerciale che l’aspetto comunitario del proprio prodotto (che, ricordiamolo, resta un prodotto rivolto ad un mercato, non è fatto da hobbisti); in particolare, regge il secondo tramite il nome, l’idea che sta dietro al nome, ed alcuni servizi interessanti (riflettevo, mentre facevo login per scrivere quest’articolo, che uso proprio l’OpenID di Launchpad…), mentre per il primo decide di dare una fresh look al brand, e si rivolge a grafici privati e non alla community.

Il secondo post afferma che il generare una specie di “gara” tra gli utenti avrebbe portato ad un lavoro magari di qualità inferiore ma che avrebbe ulteriormente cementato la comunità: ebbene, è un discorso che non ha alcun senso: Canonical deve vendere il suo brand, non crea un logo per la gloria(TM), ma per motivi di marketing, e non può farlo fare a cani porcique.

Può essere che, ad un certo momento, facciano come Red Hat e creino una distro collaterale (Fedora), può darsi che invece decidano di continuare a mantenere tutto insieme come ora, ma di certo (come, del resto, anche Pollycoke scrive) non si può pretendere che abbiano comportamenti completamente dettati dalla community stessa.

A chi utilizza Wine con programmi che riproducono audio: finalmente Pulseaudio gestisce anche questo!

Seguendo le istruzioni contenute in questo post, è possibile ricompilare Wine e poter scegliere il noto layer audio come uscita predefinita: in questo modo, si evitano gracchiamenti vari che a volte si sentono ad esempio in videogiochi o altri applicativi. Da notare che esistono un paio di problemi in fase di compilazione, in particolare

  1. nel file dlls/winepulse.drv/Makefile.in, dopo il patching, va rimossa la riga @dependencies@, che non viene risolta dalla fase di configurazione
  2. se su un sistema a 64bit, e se state compilando con il supporto agli mp3, ad un certo punto vi verrà restituito un errore in una chiamata alla libmpg123: tale chiamata va modificata aggiungendo _64.

Insomma, pur restando del parere che è Flash che incasina le cose di solito quando altri programmi cercano di accedere ad Alsa, posso comunque confermare il mio apprezzamento a Pulseaudio, che si sta sempre di più dimostrando in questi ultimi mesi un prodotto maturo e funzionante.

On behalf of human kind, universe, I’d like to apologize for what happened to Ripley. He was born a cute little puppy. And then the people who adopted him wanted to kill him because they were too stupid to realize that … he would grow into a big dog.

Ripley was a good dog. He didn’t want to fight. But he did it to please his master. He didn’t want to attack a human being, but he did it to please his master. You know, it wasn’t Ripley’s fault that his … master was cruel and selfish. Like all dogs, Ripley only saw the good in people. Dogs are like that. People should take a lesson.

Chickens and pigs

A chicken and a pig are together when the chicken says, “Let’s start a restaurant!” The pig thinks it over and says, “What would we call this restaurant?” The chicken says, “Ham n’ Eggs!”

The pig says, “No, thanks. I’d be committed, but you’d only be involved!”

Tre giorni fa ho dato l’esame di Linguaggi Formali e Compilatori, la parte teorica (speriamo bene!), ed è stato l’ennesimo esame fatto di corsa: due ore e mezzo per fare tutti gli otto esercizi, senza alcuna possibilità di ricontrollare alcunchè, pena l’impossibilità di concludere tutto entro il tempo stabilito.

Ora, questo è stato l’ennesimo corso in cui si decide di far selezione soprattutto sulla velocità, piuttosto che sulla difficoltà degli esercizi (che comunque non erano banali, intendiamoci): ma possibile che non ci sia un modo più umano per selezionare la preparazione degli studenti? Tenendo presente che la stragrande maggioranza di noi informatici (ma di tutti gli studenti in generale, direi) non dovrà mai risolvere un problema informatico in 15 minuti (salvo qualche lavoro estremamente particolare), allora perchè in un esame devo fare così?

Io sinceramente preferisco pensare ad un problema, eseguirlo e poi ricontrollarlo, anche perchè spesso lascio indietro qualche dettaglio; posso, ad esempio, pensare all’esame di elettronica: sono quattro esercizi in tre ore, se sai tutto e molto bene il compito lo concludi in due ore, altrimenti hai comunque un po’ di margine per pensare al da farsi ed arrivare ad una soluzione.

Perchè quindi non puntare ad esercizi magari un po’ più complessi, ma risolvibili in un tempo umano?

Mi sto rendendo sempre più conto che i sistemi ibridi saranno decisamente il futuro dei sistemi informatici.

Prima nello studio di processi e thread, all’interno dei sistemi operativi, ci si è resi conto che la realizzazione ibrida a livello kernel ed a livello software è la soluzione maggiormente utile, e non posso non pensare ad Erlang ed alla sua gestione interna dei processi, a sua volta poi ripartita su thread distribuiti sulle CPU esistenti.

Spesso e volentieri inoltre si parla della pesantezza del kernel Linux, che è costruito in modo monolitico, rispetto a come potrebbe essere invece un microkernel; forse, tuttavia, anche qui la soluzione alla fine si rivelerà essere in un qualche modo ibrida (e non sono un profondo conoscitore dell’ambiente, quindi non so se esistano veramente dei progetti in tal senso o sia solo una mia idea): d’altronde, i microkernel non sono usati (almeno, così come stanno) in nessun sistema operativo “di produzione”…

Ed infine, anche i progetti software di questi anni sono sempre più orientati verso l’uso di sistemi misti di programmazione/esecuzione, e lampante è una presentazione recente sul sistema di chat di Facebook, che usa C/C++ per la parte di logging, Erlang per gestire i canali di comunicazione, PHP/JS per la parte di presentazione (AJAX, naturalmente). Di fatto, ogni linguaggio e runtime ha le sue peculiarità, e sempre più spesso si utilizza un determinato linguaggio solo per la parte in cui risulta maggiormente performante o più semplice da usare.

Insomma: sistemi ibridi a tutti i livelli, penso saranno inevitabili.

The exam session is almost over, so I’m getting back to development, after more than a month without any activity…

I already have a TODO list for Sembrowser, so expect some new features soon; in the meantime I have added a small utility, which you can find in the misc/ subdirectory on Git, useful for testing the application itself: if you are like me, and you create detailed directory trees for your files, then with the Python script that I have added (which, by the way, has been also an interesting experiment with KDE bindings under Python) you can specify a directory (say: /home/user/Documents/University/Some course name) and all the files found under that directory will be tagged with each fragment of their path (or part of it, for example Documents, University and Some course name will be tags applied to all files under that path). Check the script options for a more precise usage example.

This can be useful for having a bunch of tags automatically associated to some files, so you can then try Sembrowser itself having something to browse, if you don’t usually use tags.

See you soon!

Sono stato un po’ incerto se valesse la pena scrivere qualcosa in proposito, ed alla fine ho deciso che due righe vanno citate: i giudici italiani hanno condannato tre dirigenti di Google riguardo il caso del 2006, quando alcuni ragazzi di Torino (peraltro già condannati) hanno filmato un episodio di bullismo verso un ragazzo Down ed hanno postato il video su Youtube.

Si tratta solo del primo grado, e speriamo vivamente che nei gradi successivi la sentenza venga ribaltata, dato che si tratta veramente di una sentenza assurda: come non ribadire, infatti, nuovamente che gli Internet Service Providers non possono assolutamente essere ritenuti responsabili di tutto quello che viene pubblicato, specie quando questi provider offrono hosting a piattaforme di social networking; non è pensabile un monitoraggio completo di tutti i contenuti, così come non è pensabile togliere all’utente la possibilità di poter inserire del contenuto: di fatto, si perderebbe la natura stessa di Internet.

Come ben specificato da Google stesso, la procedura corretta è sicuramente quella seguita: Google ha eliminato detto video, non appena è stata informata della sua presenza, ed ha aiutato la polizia a rintracciare i colpevoli; questo è il comportamento da seguire in questi casi, non certo condannare una manciata di dirigenti, oltretutto muovendosi in direzione contraria a quanto legifera l’Unione Europea (per non parlare della Net Neutrality, per cui tutti ci battiamo).

Insomma: l’ennesimo passo indietro di un Paese che non riesce a comprendere praticamente nulla delle nuove tecnologie e di Internet. Siamo un Paese vecchio, troppo vecchio…