PDI^2

Politica in salsa 2.0?

web, italia March 31, 2006 1:37 am (Save post)

Questo blog gode nell’inoltrare l’interessante post di assente che fa scoprire che la rosa nel pugno ha aperto un wiki per scrivere il proprio programma relativo ai problemi delle frontiere digitali.

Ed in piena par condicio, un grosso plauso anche ai Riformatori Liberali che non solo hanno un blog, ma hanno pure un blogroll corposo.
Perché io mi incazzo quando vedo blog come quello di Di Pietro.

Voglio dire, apprezzo che uno abbia la sua tribuna personale via HTTP, quantomeno è un buon metodo per andare alla fonte delle idee invece di passare per giornalisti incompetenti, interessati, semplificatori (o magari onesti e precisi, ma vallo a capire).

Ma il concetto chiave del blog dovrebbe essere la partecipazione, la trasformazione di un sacco di solisti in un’orchestra.
O dico una cazzata?

Sullo scrutinio elettronico

personale, italia March 29, 2006 9:27 am (Save post)

Un articolo interessante sullo scrutinio elettronico che ci sarà alle prossime elezioni.

Sinceramente non mi è ben chiara la preoccupazione allarmista dell’autore (oh mio dio faranno coincidere i voti a forza invalidando il risultato!“), o meglio mi preoccuperebbe se non avessi già fatto lo scrutatore e conosciuto gente che l’ha fatto.

In pratica il punto chiave è che dopo i due scrutini (elettronico e manuale) si dovrebbe solamente certificare se il primo è differente dal secondo, e la trasmissione dei dati verrebbe poi effettuata telematicamente.
Chi invece è stato coinvolto nei corsi preparatori dice che a loro hanno insegnato che i dati vanno corretti a mano e portati a coincidere per forza.

Io sospetto che verrà comunque rilevato se c’è stato bisogno di una tale correzione, e che comunque venga sfruttato il vantaggio della trasmissione telematica, ma non è dato sapere.

Però qualcosa da dire ce l’ho: certo, non posso dire che ho assistito a correzioni a mano delle schede perché non tornavano i conti, eliminazione coatta di alcune schede perché un votante aveva preso 4 schede dello stesso tipo piuttosto che di tipi diversi, gente che votava con la tessera elettorale del fratello e se ne sono accorti solo dopo che era entrato in cabina, di “Mario Gianni” che votava per errore al posto di “Gianni Mario”, di signore secolari che da dentro la cabina uscivano con la scheda aperta per chieder verifica ai figli se avessero votato correttamente, di quelli che devi fermare quasi a forza perché “io esco con la scheda aperta lo devono sape’ tutti che nun li voto più!“, dei presidenti che si perdono le matite copiative e le vanno a rubare ad altri etc..

Non posso dire che certe cose siano successe, assolutamente no. E poi sarebbero quasi tutti reati.
Però posso dire che a fine giornata elettorale si perde un sacco di tempo per far tornare i conti, aggiungi un computer e perderai ancora un sacco di tempo per far tornare i conti.

Rails 1.1 su ubuntu

personale, rubyonrails March 28, 2006 3:43 pm (Save post)

Se per caso se state usando Ubuntu e vi beccate un messaggio:

    Rails does not work with Ruby version 1.8.3.
    Please upgrade to version 1.8.4 or downgrade to 1.8.2.

quando voi sapete benissimo che la vostra applicazione funzionava con la versione ruby 1.8.3 (2005-06-23) [i486-linux] che vi siete trovati via apt, basta che apriate $rubydir/gems/1.8/gems/rails-1.1.0/lib/initializer.rb
e commentiate una riga:

    def check_ruby_version
#      require 'ruby_version_check'
    end

Mica per dire, ma sono in grado di capire da solo se la mia applicazione funziona o no:

41 tests, 104 assertions, 0 failures, 0 errors
RubyOnRails 1.1

personale, rubyonrails, ruby-it 9:36 am (Save post)

Oh, beh, ancora non ci state giocando?
Chissà se Federico sta già aggiornando acts_as_networked (che sul mio hd rimane rinominato come has_self_references) per usare has_many :through..

Piccola nota aggiuntiva quasi completamente scollegata: sono diventato membro di un o’reilly user group senza fare assolutamente niente, grazie chiaroscuro!
In pratica significa che la O’Reilly ci da materiale e supporto e sconti in cambio di… beh.. di niente.
Ok, ovviamente non esiste un pranzo gratis, quello che stanno facendo è conquistarsi una base di utenti con una politica di marketing subdolamente malvagia, lo so, ma è meglio di niente.

Ed ora torno tristemente a studiare Sistemi Distribuiti.

Resoconto del 2° incontro del Ruby Social Club romano

personale, ruby-it March 27, 2006 9:10 am (Save post)

In cui si parla di come i nostri eroi affrontino le avverse sorti, ma nonostante l’accanirsi del fato alla fine ne escano vittoriosi.

Dunque, alle se e 30 siamo teoricamente tra 4 ed otto persone a dover andare a cena, io mi dirigo verso roma, inveendo mentalmente contro Federico che è la solita sòla e non s’è fatto sentire, e con undici anni di anticipo rispetto all’orario stabilito per incontrarmi con Chiaroscuro, che avrei dovuto recuperare al centro per poi dirigermi verso la prenestina.
Ovviamente, mi ero dimenticato del fatto che io dentro roma non posso entrarci causa targhe alterne :( .

< /p>

Dopo vari contatti telefonici con lui ci accordiamo per incontrarci a largo preneste in cui giungerò passando dal raccordo e lui prendendo i mezzi.

Nel frattempo mi arriva un messaggio da parte di qualcuno che non può venire per problemi al lavoro. Grande suspense perché io il numero non ce l’ho ed il nom,e non mi è stato scritto.

Ovviamente io e Chiaroscuro affrontiamo il problema di ritrovarci in modo serio e composto: Ovviamente il suo autobus bypassa largo preneste rendendo praticamente impossibile ritrovarci, e così lui mi sorpassa in una direzione, io faccio inversione di marcia imprecando e nel frattempo era tornato indietro, poi cerco di raggiungere una strada in cui credo si trovi e invece mi accorgo di averla superata da tre semafori (sulla prenestina, un semaforo è un’unità di misura). Poi crediamo di trovarci in un posto ed andiamo a finire in un altro.

Fortunatamente applicando quello che abbiamo imparato in anni di sviluppo software (lui, io li ho imparati in anni di smarrimenti in giro per l’europa) manteniamo un feedback loop particolarmente intenso (non so quante telefonate, ma tante), e riusciamo a realizzare il nostro obiettivo “voglio stare al ristorante alle 21.00” addirittura all’interno dei tempi stimati, ovvero arrivando alle 20.59.
Memorabile l’entrata di lui in auto “Per fortuna abbiamo mantenuto un atteggiamento Agile, la prossima volta ci diamo tutti appuntamento in un posto sconosciuto e vediamo che succede

Ovviamente, come in ogni storia che segua da presso la legge di Murphy, il ristorante è chiuso.
Resistendo alla tentazione di scoppiare a piangere decidiamo di attendere un po’ per vedere se arriva ( Raffaele+1|Roberto(+1?)).

In quel momento arriva un sms, a me, che ha per mittente: Ruby-Quagli, indica un ritardo di mezz’ora e si conclude con un misterioso xyzxyz — soap4r.
Il nostro interrogarci sul mistero dell’sms (messaggi sms via soap con ruby? quaglie via soap con salsa? ritardi con quaglie in via manfredonia? ) viene al fine risolto dall’arrivo di raffaele con annessa dolce metà, e dopo aver constatato che il posto è chiuso usiamo il nostro sistema HA-pizza (cluster di ristoranti in altà disponibilità) ripiegando sul “laboratorio 3″ dove aggrediamo felicemente un paio di litri di vino, un numero irragionevole di arrosticini, bruschette, pizza, focaccia ed anche il tavolo, che alla fine della cena risulterà in uno stato che in confronto il codice del wiki sembra ordinato.

Ma di cosa si è parlato? Ebbene, siccome siamo un gruppo di rubyisti, si è ovviamente parlato di semiotica, che è il tema più strettamente collegato. So che spesso Umberto Eco parla di Nitro/Og, in effetti.
Effettivamente dopo un po’ cominciavo ad esere convinto anche io che ciò fosse assolutamente logico.

Si è parlato di linguaggio e di capacità espressiva, degli Hopi e della tesi di Sapir-Whorf e del fatto che i giapponesi usino un sacco di parole inglese (indovinate come si dice tavolo?) ed ovviamente piccola incursione su Wittgenstein.
Ora, non vorrei sembrasse che tutti noi conoscessimo questi argomenti, semplicemente si formavano dei minidialoghi a geometria variabile. Io di Wittgenstein, come ho precisato anche l’altra sera, conosco un paio di aforismi e poco più.

Poi c’è stata un reprense sul modello educativo inglese/romano/italiano e su quanto Visual Basic 6 fosse in realtà uno strumento fenomenale con una comunità di incompetenti; abbiamo poi sbavato su cosa potrebbe essere ruby con un ide VB-like, ed ho stupito tutti ricordando che in effetti la prima versione di VB si chiamava Ruby.

Si è ovviamente discusso di rails, e Raffaele mi ha fatto scoprire questo progetto molto interessante , ed ovviamente c’è stata una capatina nel magico mondo dell’implementazione dei DSL, tra l’altro finalmente Chiaroscuro è riuscito ad illustrarmi bene il suo progetto di avere una grammatica generativa per produrre fiabe, basata sugli studi di un tizio di cui non ricordo il nome (potete reperire info negli archivi della mailing list) , l’idea è che sia possibile costruire una fiaba russa (è cruciale la russità) applicando alcuni schemi ricorsivamente, e se una cosa è descrivibile algoritmicamente allora è possibile farne un’implementazione. Piccola deriva sull’idea di scrittura creativa, gioco combinatorio e sul fatto che assurdamente tutti avessimo letto Gli Esercizi di Stile .

In realtà ho l’impressione che si sia discusso di un sacco di altre cose, anche perché poi sono arrivato a casa alle due di notte, ma sinceramente non mi ricordo tanto bene, quindi se qualcuno vuole precisare è il benvenuto :)

Inviare Ping a Technorati in ruby

ruby, blogosfera March 22, 2006 11:35 pm (Save post)

Creare un feed con ruby è di una banalità disarmante, sia creando il file a mano sia utilizzando una delle varie librerie esistenti come RSS::Maker (parte della distribuzione), FeedTools eccetera.

Ma come qualsiasi blogger saprà, un feed che cade in una foresta vuota non fa’ rumore.

Il modo giusto per fare rumore è inviare un ping ai vari servizi di aggregazione/indicizzazione dei blog come Technorati, che è una cosa sorprendentemente semplice, e va fatta usando XMLRPC.
Stamattina mentre prendevo il caffé ho quindi messo insieme questo spezzone di codice che sembra funzionare:


require ‘xmlrpc/client’
Blog =Struct.new(:name, :url) do

  Services= %w{
    http://rpc.pingomatic.com/
    http://ping.blo.gs/
    http://rpc.weblogs.com/RPC2
    http://ping.feedburner.com
    http://api.feedster.com/ping.php
    http://www.syndic8.com/xmlrpc.php

    http://api.my.yahoo.com/RPC2
    http://rpc.technorati.com/rpc/ping
  }
    
  def ping_all(services=Services)
    services.map do |s|

      ping(s)
    end
  end
  
  def ping(service)

      client= XMLRPC::Client.new2(service)
      res = client.call( “weblogUpdates.ping”,name,url )

      raise StandardError.new(res[‘message’]) if res[‘flerror’]

      “ping sent to #{service} succesfully: #{res[’message’]}”
  rescue Exception=>e
      “Unable to ping #{service}: #{e.message}”
  end
end

puts Blog.new(“Il figoso blog di Mario”, “http://mario.com”).ping_all

Il codice è semplice:

  1. Carica la libreria xmlrpc
  2. Crea una classe con due campi, nome del blog ed url. Piuttosto che scrivere la classse da me ho preferito usare Struct.new, che restituisce una classe con campi accessibili per ogni argomento, il corpo del blocco è come se fosse definito nella classe
  3. Crea una lista di servizi a cui inviare un ping, il literal %w{a b c} serve a creare un array i cui elementi sono le stringhe contenute tra i delimitatori ripulite dagli spazi di separazione
  4. Un client viene creato passando l’url del server
  5. vengono catturate le eccezioni, che possono essere errori generici o timeout, e si controlla che il messaggio ricevuto non contenga un error (xmlrpc usa codici di errore embedded )

Niente di strano, insomma, più difficile da spiegare che da scrivere.

Esempio di output:


ping sent to http://rpc.pingomatic.com/ succesfully:
	
Pings being forwarded to 16 services!
	
ping sent to http://ping.blo.gs/ succesfully: 
	
Succeeded.
	
ping sent to http://rpc.weblogs.com/RPC2 succesfully: 
	
Thanks for the ping.
	
ping sent to http://ping.feedburner.com succesfully: 
	
Ok
	
ping sent to http://api.feedster.com/ping.php succesfully: 
	
Thanks for the ping.
	
ping sent to http://www.syndic8.com/xmlrpc.php succesfully: 
	
Thanks for pinging Syndic8
	
ping sent to http://api.my.yahoo.com/RPC2 succesfully: 
	
OK
	
ping sent to http://rpc.technorati.com/rpc/ping succesfully: 
	
Thanks for the ping

Ovviamente c’è il problema che i delay dei vari ping si sommano, la soluzione usando i thread è semplice ma è lasciata come esercizio per il lettore ;)

YADIS 1.0

web, Identity 7:48 pm (Save post)

Io ne parlai tempo fa’, ma sembra che nessun’altro nella blogosfera.it sia stato interessato dalla nascita di YADIS, uno standard aperto, interoperabile, totalmente decentralizzato e soprattutto estensibile per la gestione dell’identità su internet.

YADIS non solo ha il vantaggio di integrare tecnologie esistenti come OpenID, TypeKey e LID, ma anche di essere estensibile, e con già diverse implementazioni.

Tramite YADIS è possibile eliminare tutti quei captcha orrendi, (oltretutto limitanti per (ipo|non)vedenti) e permettere a tutti di commentare sul vostro blog sapendo che si tratta effettivamente di quella persona, non importa quale sia la piattaforma che usate, oltretutto usando il Single Sign On stile MS-passport.

Possiamo tenere traccia della nostra presenza su Internet, unificando gli account su centinaia di servizi differenti, e dimenticare quelle duemila permutazioni di login/email/password che abbiamo lasciato in giro.

La specifica YADIS, che ha appena raggiunto la versione 1.0 (pdf), ha la potenzialità di permettere un salto epocale per il lato sociale di Internet.
È un peccato che come al solito da noi l’idea sembri ancora del tutto ignorata.

Link per imparare il giapponese da italiano

personale, web, studio, italia 10:10 am (Save post)

Listible.com è una figata, non fa altro che aggregare liste di cose.
Devo ammettre che inizialmente non avevo capito a cosa servisse, ora invece lo ritengo un’idea buona se non ottima. Pensandoci bene è una una di quelle da 5 dollari.

Vabè, fatto sta che ho messo su una mia lista personale di risorse online per imparare il giapponese per italiani.

Una lista di risorse di lingua inglese esiste già, ma mettetela come volete, io leggo e scribacchio engrish ma preferisco sempre la mia di lingua, in particolare quando devo sentire cose tipo “japanese is an incredible language, you can actually omit the subject of the sentence and it will be inferred and you can even omit the “ka” for interrogative forms if you use a suitable emphatization” o spiegazioni interminabili su come siano da pronunciare le vocali in giapponese.

Vabè, insomma, se avete qualcosa da parte vi invito ad aggiungerlo alla lista imparare il giapponese.

Post Archivio n. 7

ruby, personale, blogosfera, pugs March 21, 2006 8:54 am (Save post)

è tardi! è tardi! ripeteva il nabaztag.

  • Salvatore Cariello si accorge che gli internauti stanno virando salla semplice ricerca di keyword (”gnocca”) ad una più articolata (”dove trovo una gran gnocca”). Sono stato un pioniere, già nel 2003 usavo google per dimostrare agli amici che 1 non è un numero primo.
  • blog italirubyci in aumento, volevo fare un link dump ma mi sono perso l’opml.. comincio a pensare che ci voglia un’aggregatore, se qualcuno lo scrive (nah, planet no).
  • in un giorno ho scoperto che due mie idee per diventare ultramiliardario nel tempo libero esistono già, sigh. Consiglio però la lettura di questo ottimo articolo che spiega come per fare soldi con internet oggi ci voglia un’idea da 5 dollari. Di quelle che gli amici ti dicono “ah cazzo, e ci hai pure pensato?”, e che non diresti mai ad un membro del sesso opposto (“sai ho inventato datey.org, un sito che serve a xyz”) perché ti vergogneresti
  • Luca Conti fa notare che fra un po’ forse ci sarà digg in italiano, prima che ci sia un digg italiano.
  • se usate ancora win32 e non vi piace il software di masterizzazione interno, e non avete voglia di stare li a crackare nero (che poi magari avete originale ma datato da qualche parte) consiglio l’uso di CD Burner XP PRO 3 (freeware)
  • C’è ancora che dice che ruby non è enterprise ready. Un disastro ferroviario in attesa di avvenire, secondo questo tizio.
    self.notes < < "verificare se mcgovern è un demente"
  • Audrey Tang e Koichi Sasada a scrivere codice insieme per far si che Pugs possa usare YARV come backend. Sono quasi spaventato.
Secondo introntro rubyista a roma

personale, cibo, ruby-it March 20, 2006 10:02 pm (Save post)

Avete da fare giovedì 23 marzo di sera?
Se siete liberi venite a fare due chiacchiere da geek (direi su ruby, ma viste le discussioni dell’altra volta su amiga e amos e XP e implementazione di MS-basic e meriti relativi della guinnes non sarebbe troppo esatto) ed a mangiare&bere da veri zozzoni con noialtri.

Maggiori info sul ruby italia wiki.
Ovviamente, Caro Lettore, tu puoi contattarmi pure via commenti e non solo via email, ma in caso volessi venire fammelo sapere sennò non ci si trova.

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