Today I took a light rail with my son, to bring him to school. That tram is 90 years old. It has been maintained for 90 years. Milan city sold some of them to San Francisco too.
Ciao a tutti, è venerdì!
Se avete due minuti di tempo, volevo indicarvi un articolo su un algoritmo non banale, molto ben descritto qui:
This is the story of a clever trick that’s been around for at least 35 years, in which array values can be left uninitialized and then read during normal operations, yet the code behaves correctly no matter what garbage is sitting in the array.
In soldoni, viene descritto come implementare un “Set sparso” in modo che quasi tutte le sue operazioni avvengano in tempo costante:
|Operation||Bit Vector||Sparse set|
The sparse set is as fast or faster than bit vectors for every operation. The only problem is the space cost: two words replace each bit. Still, there are times when the speed differences are enough to balance the added memory cost.
E voi vi chiederete: cosa me ne faccio di un set ordinato e veloce?
I set molto grandi di interi sono una struttura base usata da Google per il calcolo del PageRank, ed in generale fanno capolino in qualunque database NoSQL
Ops I did it again. Although I repeatedly said I didn’t love emacs Lisp, I finally managed to learn it.
So I want to share with you my tips, to help entering in the Emacs Lisp world in a fast, fun and easy way.
First of all Lisp is a very elegant language, as you may expect.
Lisp is so elegant you will have to take your time to learn it, because it is a bit cryptic. To make things even worst, emacs function names are less than intuitive. The solution anyway is here: cookbooks!
The second thing you must learn to master is the C-h f (describe-function) key bindings, because will help you a lot. Take the time to study the code of the basic functions you find in your way.
Learn by Example
The best way to start is to use ert unit testing framework which is built in in the last version of Emacs…
(ert-deftest testname () (let (...) .... (should ....) ))
To start playing, see the example on this web page http://steve-yegge.blogspot.it/2008/01/emergency-elisp.html
Lisp magical constructs
To understand better lisp, take a look to this “useless” library http://www.emacswiki.org/emacs/SyntacticSugar
which simply create “alias” to the same function (!)
unwind-protect is the emacs lisp function for “try……finally” idiom. It is very important to use it because will avoid you fatal error on the go. Anyway I like also this form
(condition-case nil (progn (do-something) (do-something-else)) (error (message "oh no!") (do-recovery-stuff)))
Arduino Esplora is here!
The Arduino Esplora is a microcontroller board derived from the Arduino Leonardo. The Esplora differs from all preceding boards in that it provides a number of built-in, ready-to-use setof onboard sensors for interaction.
News said the price will be around 45 euros
Take a look at the board here
Okey I love emacs, you are allowed to say I am a nerd.
But I use emacs.
So I could solve your problems with a Ctrl-Alt-x kung fu combination, involving yoga-like finger movements.