Feeds:
Posts
Comments

Archive for the ‘Virtual world’ Category

image

Ecco disegnato lo schema elettrico del circuito di Tweetino: si tratta di fatto dei collegamenti standard per l’LCD, cui si aggiunge l’uso di una uscita PWM per regolare il contrasto (con le variazioni rese più “smooth” da un condensatore) e di un LED che segnala quando il programma sta aggiornando il tweet corrente da internet. Da notare che la scarsità di uscite dovuta alla scheda ethernet sull’Arduino Uno obbliga ad usare anche i pin 0 e 1, e di conseguenza a non poter più usare la connessione seriale nella versione finale del programma.

Appena arriva l’LCD 16×2, metto tutto nella scatola adatta e pubblico le foto finali!

Read Full Post »

I’ve just released the first version of Tweetino, a little sketch for the Arduino which downloads the latest tweets and displays them on an LCD.

The idea is quite simple: the application periodically polls the Twitter servers for getting the latest tweet for the given user, and then the text is shown on a screen; there is already a similar sketch in the new Ethernet libraries for Arduino IDE 1.0, but the difference here is that the connection to the servers uses OAuth, so it is able to get tweets from private accounts (and not just the public ones, like the other implementation cited before).

The code is hosted on Github, as usual, and it has to be filled with several details before being used, in particular it needs the token and access keys that a user can obtain from dev.twitter.com by registering a new application; in particular, the secret keys are to be stored in the EEPROM memory before launching the Tweetino application. Please refer to the README file for more details.

Remarks

First and foremost: I know that a good OAuth implementation should be developed in a separated library, instead of being entangled with the whole program, but the problem is that I’m testing everything on an Arduino Uno, which has just 2 KB of SRAM and OAuth requires some string manipulation, and there is not much space for it; moving everything in an external library requires some work which I have not done (yet), so for now just play around with the current code. Probably an Arduino Mega would help the development (having 8 KB of SRAM), but I don’t have any. Besides, trying to stick everything in just 2 KB has been quite fun.

Second, there is a known bug (sorry!): the Base64 library that I’m using sometimes returns a wrong value (at least with respect to the Erlang code implementation to which I am doing comparisons), and the request is refused by Twitter; given this fact (and the fact that I have no idea, for now, on the cause of the error), I have just added some code to repeat the request a few times in each cycle, in the hope that at least one of the calls behaves correctly. So, don’t expect some real time behavior!

Some images

Tweet in the Web site...

Tweet in the Web site...

... and straight to Arduino!

... and straight to Arduino!

Read Full Post »

KDE 4.7

KDE 4.7

KDE 4.7

Read Full Post »

Non so perchè mi ero perso questa cosa, ma è disponibile da maggio ormai la versione beta della 1.0 di Arduino IDE; i tarball si possono trovare qui, mentre il branch Git è qui.

Sì, so che è software non ancora stabile, ma a parte il fatto che questo non mi ha mai fermato, la cosa importante (almeno per me, oggi) è che il client DHCP funziona. Fino alla versione 0.22, infatti, era necessario utilizzare una libreria esterna che a me personalmente ha sempre dato problemi; in particolare, con Arduino Uno e l’Ethernet Shield di Adafruit, le richieste inviate al server DHCP sono malformate la maggior parte delle volte e la scheda non riesce a rispondere al DHCPOFFER, di fatto impedendo l’acquisizione di un indirizzo IP corretto.

Con la nuova versione dell’IDE, le librerie ethernet hanno (finalmente) incluso tutte le funzionalità di indirizzamento dinamico, e lo sketch di esempio per DHCP ha funzionato al primo colpo; questo mi basta a decidere di passare a questa versione (direi definitivamente, ma questo lo stabilirò solo dopo ulteriori test). Presto vi farò sapere quali seghe mentali esperimenti ho in ballo…

Read Full Post »

Dopo il discorso di ieri di Richard Stallman, ho iniziato a pensare al software installato nel mio PC, e che uso abitualmente e negli ultimi tempi, e riporto qui la riflessione se sia veramente possibile abbandonare completamente il software proprietario e passare interamente a quello libero. Premetto che io non ho alcun problema nell’uso del software proprietario, quando funziona ovviamente, anche se preferisco il software libero se ho la possibilità di scegliere.

Ecco le parti proprietarie che ho installate nel PC in questo momento (tra parentesi ho indicato sia la motivazione dell’uso di quel software, sia se la sostituzione con alternativa free sia possibile):

  • driver ATI (supporto completo alla mia scheda video sul Dell): questi valgono solo per uno dei miei computer, e l’ultima volta che ho controllato non mi era possibile abbandonarli, dato che quelli free non supportavano il throttling della potenza (quindi temperatura a 70+ gradi); ammetto di non aver controllato l’ultima versione (FORSE NO, ma nel caso solo sul Dell)
  • Google Chrome (scelto in alternativa a Chromium dato che utilizzo molti servizi di Google, e suppongo questo garantisca una migliore integrazione): facilmente sostituibile con Chromium, non so effettivamente quali funzionalità perderei, ma non credo sarebbe una tragedia (in fondo ho usato per anni Firefox, alla peggio potrei tornare a quello) (SI)
  • Oracle JDK (miglior JDK per Java): qui bisognerebbe verificare, dato che utilizzo Java per lavoro e di conseguenza non so se OpenJDK sia compatibile per le funzionalità di cui io ho bisogno (FORSE SI)
  • Dropbox (comodo per condividere file tra i miei computer): software non essenziale alla mia esistenza, ma di nuovo lo utilizzo (tra le altre cose) per lavoro; potrei comunque accedervi dalla sola interfaccia grafica. Non esiste un’alternativa libera (SI)
  • Mono (software che uso da parecchio tempo, ed in cui ho salvati parecchi dati): utilizzo due software basati su C#, Tomboy e F-Spot; possono essere sostituiti con alternative basate su altri linguaggi (SI)
  • Flash Player (incluso in Chrome): la stragrande maggioranza del mio uso di Flash è per i video di Youtube, e dato il supporto di quest’ultimo ad HTML5, non dovrebbero esserci problemi a segarlo (SI)
I formati:
  • codec video: potrei anche rinunciare alla libdvdcss, e guardare i DVD in un lettore da tavolo, ma non so se potrei farlo anche con i DivX, dato che VCast non supporta formati liberi come OGG Theora; di fatto, queste sono le mie fonti principali di video (NO)
  • codec audio: l’abbandono dell’mp3 implicherebbe due cose, ovvero procurarsi un lettore con supporto ad OGG Vorbis (esistono, ma sono ben pochi) e non comprare più musica online, dato che praticamente tutti i rivenditori usano gli mp3. Certo, una volta acquistati si possono riconvertire, ma questo implicherebbe comunque sostenere il mercato degli mp3 stessi, cosa che resterebbe comunque sbagliata. Certo, potrei continuare a comprare CD, ad un prezzo superiore e in direzione contraria rispetto alla mia idea di passaggio completo al digitale (NO)
  • libri: epub è un formato libero, ma avrei comunque bisogno di un convertitore verso mobi per poter usare il Kindle, senza contare il fatto che i libri di Amazon sono protetti a loro volta da DRM (come gli epub italiani, peraltro). Certo, il problema di conversione si risolverebbe con un lettore tipo il Nook (che, detto per inciso, ha l’aria di essere spettacolare, anche meglio del Kindle), ma l’acquisto di epub con DRM sarebbe come acquistare mp3 per poi convertirli in ogg (NO)
Da questo elenco si deduce come il vero problema, oggi come oggi, sia sui formati multimediali più che sui programmi in sè (di fatto, ad oggi l’unico software che da informatico ho usato in versione proprietaria per la mancanza di alternative valide è Matlab). Questo in parte si potrebbe risolvere non appena le case editrici capiranno la cazzata del DRM e inizieranno a vendere epub aperti. A quel punto resterà la sola questione dell’audio.

Read Full Post »

I have just published the packages for the latest version (R14B03) of Erlang: as usual, you can find them in my PPA.

As a reminder, they have been backported directly from Debian Unstable, without changes, so they work for me and may work for you, but I have published them “as are“, and I am not taking any responsibility for bad behavior.

Read Full Post »

[…] In this last resort, I appeal to you, representatives of the programming profession in the United States, and citizens concerned with the welfare and safety of your own country and of mankind: Do not allow this language (ADA, N.d.R.) in its present state to be used in applications where reliability is critical, i.e., nuclear power stations, cruise missiles, early warning systems, anti-ballistic missile defense systems. The next rocket to go astray as a result of a programming language error may not be an exploratory space rocket on a harmless trip to Venus: It may be a nuclear warhead exploding over one of our own cities. An unreliable programming language generating unreliable programs constitutes a far greater risk to our environment and to our society than unsafe cars, toxic pesticides, or accidents at nuclear power stations. Be vigilant to reduce that risk, not to increase it.

Read Full Post »

Benchmarks

(Nota bene: ciascuno dei test riportati sotto ha una scritta che indica se il valore massimo o il valore minimo sono da considerarsi meglio come performance)

Ho passato l’ultimo weekend a casa a giocare con la test suite di Phoronix, più che altro con l’intento di mostrare quanto pena faccia l’Atom N270, anche comparato ad un AMD Sempron Mobile di sei anni fa. Posso dire che la missione è discretamente riuscita, per quanto in realtà la gran parte dei test di CPU che ho lanciato misurino le performance sfruttando uno solo dei core disponibili (se sono più di uno, come nel caso dei miei due Atom). Per aumentare il divertimento, ho anche lanciato gli stessi test sul Core 2 Duo del mio portatile serio.

Innanzitutto, ecco un’overview dei sistemi coinvolti:

Systems

Systems

Ed ecco il test CPU maggiormente significativo, dato che sfrutta appieno la parallelizzazione (se disponibile):

Parallel BZIP2 compression

Parallel BZIP2 compression

Vorrei far notare come il Core 2 Duo vinca in maniera quasi imbarazzante sugli altri computer, e come invece il computer desktop, quello equipaggiato con l’AMD Sempron Mobile 3000+, perda dai due Atom ma di soli 8 secondi su 240 (il 3-4% circa), a dimostrazione di quanto siano estremamente lenti questi ultimi processori (che sono una delle prime generazioni, ormai hanno due anni di vita circa).

A titolo esemplificativo, riporto uno dei test mono-core:

BYTE test

BYTE test

In questo caso, l’unico core del Sempron vince sul singolo core dell’Atom, perdendo clamorosamente dal singolo core Intel. Infine, ecco un test sui dischi (lanciato con client count a 1, data la durata di detto test ed il poco tempo a disposizione nel weekend passato a casa):

Dbench - 1 client

Dbench - 1 client

Il fatto che l’Eeebox perda così tanto anche solamente dall’Eeepc spiega in parte la lentezza estrema di quella macchina, confrontata con un sistema molto simile ad essa. Il desktop è equipaggiato con un Sata1, degli altri non ho controllato i dettagli sull’interfaccia a disposizione (suppongo sia una Sata2 per il Dell, dato che asfalta democraticamente tutti gli altri).

Insomma: l’N270 fa veramente pena, e tra i due Eee, il Box è veramente vergognoso (causa dischi, essenzialmente). Non ho fatto test grafici, dato che la Radeon 9200 del PC desktop usa i driver open source che sono inguardabili, ed i due piccoli hanno una scheda Intel piuttosto vecchiotta. Ah, non mi ritengo troppo responsabile di eventuali incomprensioni con l’interpretazione dei dati della test suite, dato che è la prima volta che la uso…

Read Full Post »

(Edit: lo davo per scontato, ma meglio chiarirlo: nel grafico sottostante l’asse Y è misurato in millisecondi di esecuzione per ciascun test, quindi un valore inferiore è preferibile)

Uno dei punti di forza da sempre declamati di Erlang è la capacità del runtime di gestire la concorrenza anche di migliaia di processi leggeri, grazie alle capacità del runtime, sviluppato appositamente attorno (tra le altre cose) a questa caratteristica. E’ anche il motivo per cui si dice che linguaggi concorrenti implementati su altre macchine virtuali (ad esempio, Scala sulla JVM) non potranno mai avere le medesime prestazioni.

Ebbene, dopo un post intrigante in una mailing list, ho esplorato le prestazioni del progetto Erjang (Erlang sulla JVM) versus Erlang stesso, utilizzando un programma di test distribuito direttamente con i sorgenti di quel progetto: gli autori di Erjang stesso dichiarano che le performance sono, in media, in linea con quelle del runtime originario; il mio test è stato fatto sull’Atom N270 dell’Eeepc, ed è interessante vedere come in alcuni punti la versione Java riesca ad avere le performances più alte.

Grafico del confronto

Grafico del confronto

Ammetto di non aver fatto i test in modo eccessivamente scientifico, in ogni caso i valori sono stati presi alla seconda esecuzione del test stesso, supponendo che la prima possa essere inficiata dal caricamento o dalla compilazione del codice.

Read Full Post »

(tratto da un mio post in una mailing list)

[…] Allora, il concetto che sta alla base di ogni forma d’arte è il seguente: le persone che ci si applicano sono poste in una struttura piramidale (inevitabilmente), dove in cima ci sono i geni, alla base tutti quelli che lo fanno per diletto ma senza esserne minimamente portati, nel mezzo tutti i vari livelli di bravura.

Oggi il sistema pone un’asticella ad una certa altezza: se devi scrivere una voce di un’enciclopedia medica, devi essere un medico con determinate referenze, se vuoi pubblicare un libro, questo deve essere interessante, se vuoi pubblicare un album devi essere musicalmente valido.

Ovviamente questa validità non è oggettiva, ma soggettiva sulla base del pubblico che si vuole avere: twilight ha un suo pubblico (indovina dove si colloca nella scala culturale tale pubblico?), ma anche il nome della rosa ha un suo pubblico; lady gaga ha un suo pubblico, ma anche $gruppo_jazz ha un suo pubblico.

Se tu abbassi l’asticella, automaticamente aumenti il numero di persone che possono fare quella cosa, dai loro gli strumenti e la visibilità: in questo modo recuperi quei pochi che per qualche motivo erano rimasti tagliati fuori dal sistema, ma la stragrande maggioranza sarà mediocre; è esattamente come togliere un test d’ingresso da un corso di studi, o non bocciare più alle scuole superiori (ogni riferimento allo stato attuale delle cose è puramente casuale).

Ora, il fatto che quello “strato” possa pubblicare le proprie forme d’arte non è un problema in sè, io stesso pubblico video su youtube e scrivo su un blog, lo faccio principalmente per me e per vedere se qualcuno mi vede/legge, se nessuno lo fa, pace.

Ma se queste persone invece scrivono (ad esempio) di una materia senza conoscerla o senza conoscerla a fondo, ecco che il livello culturale medio scende. Se una persona qualunque scrive sul blog post da giornalista, ma non fa il lavoro di un giornalista (es. le fonti) perchè nessuno glielo ha insegnato, magari avrà un signor seguito: magari io e te non lo leggiamo, ma questo non toglie che possa anche fare migliaia di visite. Si chiama (nel caso del giornalismo) qualunquismo.

Il fatto (citato da Keen) che Wikipedia non ti richieda delle credenziali per scrivere di fisica, fa sì che le voci di fisica possano essere cannate alla grande, e non è detto che la gente se ne accorga, e magari se ne accorge dopo parecchio tempo, e nel frattempo un certo numero di persone le hanno prese per buone. Tutti siamo incappati in voci senza una bibliografia decente, in genere ce ne allontaniamo, ma non tutti lo fanno.

Non tutti fanno una scuola superiore tale da renderli capaci di scrivere un articolo, in questo Paese non ci sono solo licei, ma anche istituti tecnici e professionali, non tutti hanno fatto il percorso di studi che noi stiamo facendo.

Ribadisco, questo non vuol dire che sia tutto da buttar via, ma certamente le cose presenti su Internet (soprattutto testi) vanno prese cum grano salis, e deve esserci qualcuno che ti insegna a prenderle in questo modo, a fare una chiamiamola “navigazione critica”. La scuola oggi insegna a farlo?

Read Full Post »

« Newer Posts - Older Posts »