PDI^2

tetramine day

italia, fun July 25, 2007 8:01 am (Save post)

Lettore, lo so che non scrivo molto, ma sono impegnato, e un po’ demotivato.
Però non posso non segnalarti la giornata del tetramini, ovvero vestiti da pezzo di tetris, vai in piazza e incastrati agli altri.

Io odio: chi l’italia non la vede (2/??)

italia, fastidio July 16, 2007 9:44 pm (Save post)

Continuo il veleno, scusate ma è una giornata così.

Nel blog di ZV un bel consiglione a veltroni ma diamo importanza alla creatività e all’innovazione tecnologica in ‘italia!“. Bello, giusto.

E leggo

Da noi le cose sono esattamente all’opposto. Se si potesse usare l’espressione “internet italiana” si dovrebbe rappresentarla come un luogo inospitale, pieno di chiacchiere e senza vere realtà creative.
[…]
La nostra tecnologia, i contenuti della nostra internet sono o la “localizzazione” di cose americane, o il marketing delle grandi aziende di telecomunicazione e per il resto tanta chiacchiera avvelenata.

A me, al volo, ne vengono in mente parecchi di creativi, da quelli che vengono candidati come giovane imprenditore europeo dell’anno a quelli che il citizen journalism lo implementano invece di parlarne, da quelli che lavorano con gli americani a quelli che gli americani li fanno lavorare. E quelli che hanno idee talmente grosse da fare paura, e quelli che hanno idee talmente semplici da farle usare a una marea di gente .

Io con la gente che vuole fare e che sa fare ci parlo di continuo, e scusate se non vi cito tutti, ma se mi conoscete sapete già la stima che ho per voi.

Siamo un paese del cazzo, certo. Abbiamo un sacco di problemi, come no. Lo stato non aiuta e gli investitori si cagano addosso.

Però sarebbe bello che quando facciamo qualcosa i compatrioti ci cagassero, invece di continuare a darsi consigli e stilare manifesti.

Rebuild of Evangelion ?

personale 6:32 pm (Save post)

io non ne sapevo niente, ma sul tumblr di NRK ho beccato il primo trailer di Rebuild of Evangelion, ovvero un atteso quartetto di OAV per quello che è uno degli anime con i seguaci più assatanati che conosco.

E lo dico, non per me che so a memoria la tesi degli angeli crudeli e passo il tempo a trovare connessioni tra NGE e il pendolo di foucalt, ma perché effettivamente mio fratello ascolta solo le tracce 25 e 26 sul suo lettore MP3 e sta progettando il suo GeoFront da anni.

Non lo dimenticherò che mi dice “ahah senti questa: hai visto troppo NGE quando sai chi è mana kirishima!“.
Nico’, chi cavolo è mana kirishima?
Silenzio imbarazzato.

Desiderare Rei come fidanzata mi sembra invece del tutto ragionevole per un qualsiasi geek e non mi preoccupa.

Ah scusate, ovviamente plagiavo questo, ma già lo sapevate.

Io odio: i turisti americani in treno (1/??)

fastidio 4:56 pm (Save post)

Io odio i turisti americani in treno.
Non tutti, ovviamente, c’è pure gente normale, ma in particolare le famiglie composte di un numero tra 4 e 28 elementi, in cui:

  • i bambini urlano e si lanciano oggetti
  • tutti si tolgono le scarpe, il che dopo sette ore a passeggiare per roma rende il vagone impraticabile
  • lasciano cartacce, bottigliette, incarti del McDonalds, biglietti e giornali sui sedili e per terra
  • gli adolescenti decidono di far sentire hip hop a me che cerco di leggere e/o studiare e/o parlare con qualcuno. Perché le cuffie non sono trendy e/o vogliono farci capire quanto son fighi, credo
  • tutti mettono i piedi sul sedile di fronte, e io devo chiedergli di levarli se voglio sedere
  • alcuni decidono che il sedile di fronte non è abbastanza azzardato e lasciano impronte di piedi (sporchi) sui poggiatesta, i finestrini, il sedile di lato e sul coso per le cartacce di cui non ricordo il nome
  • i bambini mettono il nintendo DS a palla, credo, o sono in grado di emettere dei rumori ultrasonici

Non sarò corretto, ma mi auguro che la nave su cui vi state per imbarcare a civitavecchia affondi e le scialuppe che userete per salvarvi siano bucate.

il barbiere 3d-audio.

personale July 15, 2007 9:24 am (Save post)

Non ho tempo di fare un cavolo. Fisica è deprimente quando uno deve studiarla per forza. Ma questo è fico.

UPDATE: non mi va di fare un altro post, ma anche questo è strafico, molto _why-ish

Aggiornare tumblr da cellulare

italia, software July 9, 2007 11:56 am (Save post)

Dovere di cronaca: continuo a non usare tumblr ma siccome so che svariati tra i lettori lo fanno (e se volete potete lasciare un commento e dirmi dove sta il vostro tumblelog, nel caso non lo abbia ancora trovato) mi pare giusto fare propagando a questa applicazioncina di Federico che permette di postare su tumblr da cellulare.

Dannati geek che non siete altro :P .

Dedicato alla mia preferita

personale July 5, 2007 12:14 pm (Save post)

Mi ricordo quando ti vidi la prima volta, 7 anni fa, se non sbaglio.
Non è che mi piacevi troppo, carina, certo, ma in fondo non appariscente, e poi io ero ancora legato a quella rossa.

Poi ti ho voluto bene subito, e abbiamo condiviso tanto, girato un sacco di posti, fatto le prime esperienze brutte. Abbiamo girato spagna, francia e mezza italia, e se sei sempre stata affidabile e piacevole, anche se un po’ rumorosa :)

Ti sei mostrata piacevole anche con i miei amici, quando siamo andati in vacanza insieme. E ti perdono quell’incidente con mio fratello, lo so che non era colpa tua.

Grazie al cielo non hai mai bevuto tanto, e anche se ci siam fatti dei bei sonni insieme negli autogrill, mi hai sempre riportato a casa, anche se magari in ritardo.

Insomma, cara mia Punto, auguri per i duecentomila chilometri!

Fare casino con IRB, binding ed eval

ruby July 3, 2007 9:49 pm (Save post)

Ricordate quando parlavo del mio piccolo doctest per ruby?

Ok, continua ad essere sporco e puzzolente, ma adesso ha un paio di feature in più, tra cui la possibilità di effettuare il replay di una sessione passata.
Questo significa che se avevate un test-esempio


>> a = 10
=> 10
>> b = 20
=> 20
>> def sum(a,b)
>>  a+b
>> end
=> nil
>> sum(a,b)
=> 30

potete effettuare il replay della sessione ed andare avanti con


>> def triplesum(a,b)
>>  sum(sum(sum(a,b),b),b)
>> end
=> nil
>> triplesum(a,b)
=> 70

Che è molto carino, e utile imo.
Ora, dove sta il problema? Primo, nel modo in cui funziona eval, secondo, nel modo in cui è scritto IRB.

evil eval
Che eval sia fondamentalmente malvagio è una cosa rinomata, ma per scrivere un REPL rimane la cosa più sensata.
Quello che potreste non sapere è che in ruby eval() non può definire una variabile nello scope in cui è richiamata. O quasi.

Lasciate stare IRB e provate questo:

ruby -e \"eval('a=10');a\"

Se tutto funziona normalmente dovreste beccarvi un bel NameError. Questo perché il parser non ha mai visto nessuna a nello scope corrente.
Se però provate questo:

ruby -e \"eval('a=10');p eval('a')\"

vedrete stampato un bel 10 che dimostra che la variabile esiste solo che non è accessibile con il solito approccio.

good IRB
IRB però vi frega in questo, guardate un po’:

>> eval(\"a=10\")
=> 10
>> a
=> 10

Perché? Perché ovviamente IRB usa internamente eval, non fa il parsing come l’interprete farebbe normalmente, e quindi tutto funziona.

good require
Se caricate un file con require() le variabili locali rimangono.. beh.. locali, e quindi non sono accessibili all’esterno. Allora come facciamo a caricare le variabili locali che avevamo nella sessione precedente?
Non possiamo fare un dump del codice su un file e caricarlo con questo metodo, ma possiamo usare eval() per definirle in un oggetto Binding e poi convincere IRB che deve usare quell’oggetto come spazio di lavoro.

evil IRB
Solo che IRB, di default, non permette di effettuare questa cosa. C’è un casino di setup quando la console interattiva viene inizializzata, che va dal caricare l’encoding al verificare la configurazione di default all’impostare il nome del programma, e tutto questo è fatto tramite IRB.start che non ammette alcun parametro utile per i nostri scopi.

Soluzione
Qual’è la prima forma di riuso? Il copia&incolla, esatto. Quindi per definire la nuova funziona ci si limita a ricopiare il codice di quella originale in modo quasi identico, cambiandolo dove serve.

In attesa che qualcuno ci dia una versione di IRB che ci semplifichi la vita, potete quindi usare il mio IRB.start_in_binding che crea una console per il binding dato (o per TOPLEVEL_BINDING).
Pare funzionare, in caso non andasse potete ravanere nei sorgenti di IRB da soli o sfruttare il lavoro fatto da flgr in ruby-breakpoint

uʍop ǝpısdn

personale July 2, 2007 8:43 am (Save post)

(: ɐʇɐbıɟ ɐun è ɐsoɔ ɐʇsǝnb

Get free blog up and running in minutes with Blogsome
Theme designed by Janis Joseph