PDI^2

Note dal Ruby Social Club Milano 3

ruby, personale, rubyonrails, ruby-it September 27, 2008 1:41 pm (Save post)

Passando da milano un paio di giorni fa i rubyisti locali hanno avuto l’ottima idea di organizzare un meeting.
In fondo un po’ me lo meritavo, essendo stato presente al primo storico RSC dovevano farmi vedere come siam cresciuto in due anni :)

E cavolo se siamo cresciuti! La prima volta eravamo in cinque o sei, se non ricordo male, stavolta eravamo una trentina! Note sparse:

  • l’accoglienza di mikamai è stata ottima. Anche perché mi hanno fatto stare da loro per due giorni oltre alla sera del meeting :)
  • ben tre donne!
  • nei talk si è parlato, tra le altre cose, di tecnologie di scraping, amazon EC2, assistenti virtuali, visualizzazione di social network con Processing
  • all’ultimo momento ho scoperto di dover fare un mini-talk anche io. Come speaker faccio schifo. La micropresentazione è online, ma siccome è stata accroccata in fretta e con il takahashi method non credo ci capirete niente. Però se volete chiedere fate pure :)
  • Matteo Vaccari ha tenuto una pico-sessione al proiettore presentandoci un problema interessante:

    supponiamo di voler partizionare/ordinare un array in modo che tutti gli elementi X vengano prima di quelli Y.
    Ad esempio, ordinare [1,2,3,4,5,6,7] in modo che tutti i pari vengano prima dei dispari.
    La cosa va fatta in place, in modo che lo spazio usato sia costante (qualche variabile ausiliaria va bene). E in tempo lineare.
    Questo è facile, effettuando uno scan della lista e scambiando ogni volta l’elemento i-esimo con l’elemento j-esimo, dove i è inizialmente zero (incremento quando non scambio) e j è array.length -1 (fine array, decremento quando scambio).
    In questo algoritmo l’invariante è che ogni passo riduce la dimensione dell’array lasciando le parti esterne ordinate (l’inizio che si è già passato perché composto da elementi “minori” e la fine che si è allontanata perché composta da elementi “maggiori”).
    Come si fa con una partizione in tre (minori, medi, maggiori) ?

    Divertitevi, sulla ML c’è un thread (spezzato in due) a riguardo

  • io avevo anche promesso a un paio di persone di dargli i dati precisi di un altro problemino, ma non mi ricordo a chi l’ho detto. Beh in ogni caso il problema è il seguente:

    Dato un array A di lunghezza N vogliamo produrre in output un array B della stessa lunghezza in cui ogni a ogni elemento A[i] corrisponda il prodotto di tutti gli elementi dell’array tranne se stesso.
    Ad esempio per A= [1,2,3,4] avremmo B= [2*3*4, 1*3*4, 1*2*4, 1*2*3] = [24, 12, 8, 6].

    Ovviamente, in tempo lineare.
    Se ora state per dire “basta usare la divisione..” beh ovviamente no, senza usare divisione, modulo e similari.

  • tra le altre cose di cui mi ricordo di aver parlato: couchdb, linguaggio io, bloody mary, le cameriere, django, biologi, ungheria, irlanda, etc etc
  • è sempre bello incontrare persone che hai sempre letto sullo schermo e scoprire che hanno una terza dimensione

Mi scuso con quelli che mi son stati vicini perché credo di aver parlato troppo e ascoltato poco, ma mi ha fatto molto piacere incontrarvi, spero si possa fare di nuovo, e d’altronde sarebbe anche ora di fare un nuovo RSC meeting a roma :)

script/performance/request in rails 2

personale, rubyonrails January 13, 2008 10:27 am (Save post)

Avete visto che figa la nuva fìciur che c’è in rails2? In pratica script/performance/request permette di eseguire uno scriptino che simula un’interazione dell’utente effettuandone il profiling.

Ora, vi invito a guardare il changelog, che mostra questo fantastico esempio;

    $ cat login_session.rb
    get_with_redirect '/'
    say \"GET / => #{path}\"
    post_with_redirect '/sessions', :username => 'john', :password => 'doe'
    say \"POST /sessions => #{path}\"
    $ ./script/performance/request -n 10 login_session.rb

Ora, cosa c’è che non va in questo eempio, diranno i miei piccoli lettori? Quello che non va in tutti gli esempi che ci sono in rails dalla versione 1.2 in poi, il fatto che non funziona.

Perché? Semplicemente perché post_with_redirect e get_with_redirect non esistono. say, d’altro canto, è un puts inutuile e non si capisce perché ci sia, forse perché a jeremy kemper piace molto perl6.

I dati, che verranno generati anonimamente nella directory tmp/ del vostro progetto, senza che ci sia modo di saperlo, sono d’altronde i normali dati di ruby-prof, il che significa che vi mostreranno come il 99% del tempo sia speso da rails per definire dei metodi. Sigh sob. Ah e ad ogni esecuzione request si lamenta di non trovare un file descriptor per la console (?) .

Mi chiedo che fine abbia fatto quella pulizia e precisione che c’era in rails pre 1.0 :/

Ancora on language design

programmazione, italia, rubyonrails September 5, 2006 7:12 am (Save post)

In caso ve lo foste perso, Joel Sposky ha scritto una tirata contro l’uso di ruby/rails (ma estensibile a python/twisted, perl/catalyst, smalltalk/seaside, etc/etc). DHH, che tende a innervosirsi con facilità se l’è subito presa.

Vabè, il cuore del discorso non è complesso. Joel fa semplicemente notare l’ovvietà, nessuno sarà licenziato per aver scelto Java.

Sinceramente non riesco a capire perché Joel abbia un seguito messianico, cavolo ha anche un suo subreddit. Dice cose molto sensate ed altre meno, ma non mi pare questo grande divulgatore, boh.

Comunque, nel discorso in questione mi pare che il suo ragionamento sia altamente condivisibile. La cosa simpatica però è come faccia notare che la sua società utilizza un linguaggio sviluppato in casa per lo sviluppo della sua applicazione di punta, il che cozza drasticamente con l’idea che ruby e rails possano non essere maturi. Ma lo fa solo se uno è prevenuto e vuole sostenere la maturità di una piattaforma a tutti i costi, se DHH accendesse la testa un secondo vedrebbe com’è chiaro che le due cose non sono in contraddizione.
Nessuno viene licenziato se sceglie lo stack J2ee o .NET o PHP, ma se è il capo a dire “beh potremmo farci il nostro compilatore” è evidente che ugualmente non viene licenziato nessuno che lo usi. Ed il fatto che J2EE/.NET/PHP siano scelte sicure non significa che debbano sempre essere fatte.

Ovviamente, la classe non è acqua, e la risposta di matz è da incorniciare.

Tornando al discorso dello sviluppo di linguaggi in house sapete che è un argomento che mi piace :) Sembra che Wasabi, il linguaggio fatto da joel, sia una specie di VBScript moderno e con un po’ di integrazione di database.
E con il riferimento di Joel al Dragon Book , che è un po’ IL libro sui compilatori, ho l’occasione per far notare come sia appena uscita la nuova edizione.

Per quel che riguarda lo sviluppo casalingo di compilatori per linguaggi custom, avrei voluto farvi conoscere Quendi, una società italiana che scoprii un anno fa per puro caso e che solo ora mi è tornata in mente. Erano apprezzabili per i riferimenti continui a tolkien, per il fatto che avevano una sezione “ricerca” nel sito e che lavoravano con linguaggi atipici, tra cui due o tre sviluppati da loro stessi.
AFAIR questi erano sviluppati grazie a CAMLP4, uno strumento che permette di creare nuovi linguaggi basati su OCAML tramite preprocessing dei sorgenti.
Vabè, ma ora il sito sembra morto, potete forse recuperarlo con la wayback machine.

Adesso vado, mi attende l’aereo. In caso aveste mancato l’annuncio vi ricordo che ho aggiornato i feed, per favore se non usate http://feeds.feedburner.com/pdi2 aggiornate i vostri aggregatori.

UPDATE:
il sito di quendi.it è tornato online, per chi fosse curioso.

Usare feedburner con typo

web, rubyonrails August 30, 2006 2:04 pm (Save post)

In caso serva a qualcuno, ecco delle note sul modo in cui sono riuscito a far funzionare l’altro mio blog, basato su typo, con feedburner.

L’operazione è abbastanza semplice:

Aggiungete una route al file $typodir/config/routes.rb con un codice come questo:


  map.xml 'hidden/:format/hiddenfeed.xml',
                   :controller => 'xml',
                   :action => 'feed',
                   :type => 'feed'

questa servirà a creare un nuovo url nascosto al mondo da dare in pasto a feedburner.
Aggiungete la linea dopo quelle relative agli altri feed, ovvero le linee che iniziano per map.xml.
Ora registrate il vostro nuovo url per il feed su feedburner, che ve ne darà uno nuovo del tipo http://feed.feedburner.com/pippo.

A questo punto dovete far si che i vecchi percorsi siano reindirizzati, a questo nuovo url, usando un classico file .htaccess come questo:


Redirect permanent /xml/rss/feed.xml http://feeds.feedburner.com/pippo
Redirect permanent /xml/rss20/feed.xml http://feeds.feedburner.com/pippo
Redirect permanent /xml/atom/feed.xml http://feeds.feedburner.com/pippo

Se il vostro host non legge il .htaccess in /public, create una sottodirectory /public/xml e mettetelo lì.
Potete usare anche una sola regola se usate mod_rewrite, ma le regole qui sopra funzionano anche con apache liscio.

A questo punto potete teoricamente già fermarvi. Per fare le cose per bene potreste decidere di far si che tutti i futuri lettori usino il nuovo feed sin dal principio, senza passare per il redirect, e questo è possibile mettendo mano un po’ più in profondità dentro typo.

In particolare dovrete modificare il file app/helpers/article_helper.rb ed in particolare il metodo
page_header, potete facilmente trovare le linee in cui vengono usate #{@auto_discovery_url_atom} e {@auto_discovery_url_rss}.
Sostituite queste variabili con il vostro nuovo feed. Se volete potete eliminarle e lasciare un solo link, tanto un feed solo è sufficiente.

Infine, potete verificare che il tema che state usando sia ancora coerente, perché alcuni fanno delle porcate.
Usare feedburner con typo è abbastanza semplice, ma penso che si potrebbe fare di meglio.
Magari… che ne so.. si potrebbe scrivere un bel plugin, no?

Rails incluso con OSX

personale, software, rubyonrails August 8, 2006 8:17 am (Save post)

Ruby, Rails & Mongrel inclusi di default in OSX versione server, questa come la vedete per un framework che non è enterprise e mainstream? :)

Alla faccia di rhymes che mi ha detto che ero monotematico quando ho commentato sulle note del WWDC di macrumors che dicevano questa cosa :D

RailsDay 2006!

personale, rubyonrails June 9, 2006 12:55 am (Save post)

Non ho tempo di stare a ciarlare, per ora vi passo solo il link.

UPDATE:

Per chi lo ignorasse il railsday è uno sprint nel quale gruppi di max 3 persone scrivono un’applicazione con rails in 24 ore.

Ricchi premi ovviamente, da piani di hosting a vita a libri a licenze software a buoni per l’acquisto di tutto. E noto che tra gli sponsor c’è anche l’italia 16bugs, bravissimo Michele Finotto che ha capito che si poteva ottenere un bel ritorno di immagine con minimo sforzo.

Le regole sono semplici, in sostanza usate solo quello che si può installare facilmente via gem o script/install, alcune librerie javascript predefinite, e non avvantaggiatevi col lavoro. Il gorno dedicato è il 17 giugno, per via sei fusi orari da noi comincia verso le 7 del mattino, credo.

Ovviamente il codice scritto va rilasciato sotto licenza libera, il che significa che comunque si fa un gran bene alla comunità

L’anno scorso erano venute fuori molte applicazioni carine durante il RD, l’unica di cui trovo ancora traccia è YubNub.

Io ovviamente ho partecipato fallendo miseramente anche gli obiettivi minimi che mi ero preposto, purtroppo era impossibile ritirarsi. Probabilmente l’errore è stato cominciare a programmare con rails proprio quel giorno, ed al tempo stesso perdermi in interessanti problemi con i CSS invece di andare avanti a scrivere codice, tenetelo a mente.

Se qualcuno vuole uno sviluppatore a mezza giornata (nel senso che dopo pranzo devo andare via) per fare un gruppo faccia un fischio ;)

Starter Kit for Db2 on Rails

ruby, rubyonrails June 5, 2006 9:46 am (Save post)

Non c’è due senza tre.
In tema di rilasci, Antonio esagera, tirando fuori un pacchetto per lo sviluppo con DB2 e ruby/rails direttamente dal cappello che gli ha dato Mamma IBM. Chissà se è possibile intergrarlo in modo pulito con InstantRails (hint hint).

Voglio dire solo due cose: primo, per favore placatevi che io non posso rilasciare il mio administration generator almeno per un paio di giorni. Secondo, chi è che ha detto Enterprise la dietro? ;)

Ruby @ JUGPadova & il mondo

ruby, java, personale, blogosfera, fun, rubyonrails May 23, 2006 9:04 am (Save post)

Insomma l’hanno fatto. Il meting del java user group padovano su ruby & rails intendo.
E pare sia andato alla grande, viva l’ interimpollinazione informatica.
Il mio sogno di organizzare una conferenza a linguaggi unificati sembra ogni giorno meno assurdo, peccato che fino a dicembre/gennaio non se ne parla..

Ma quello che volevo dire in questo post è che seguo pensieri sparsi perché l’autrice usa scrive.it ed i suoi commenti sui film erano in linea con i miei e della mia dolce metà.
E poi è un blog simpatico :) .

(Notiamo che scrive.it è fatto con rails. )

Poi oggi, guardando il suddetto blog ho trovato nel fotostream di monja le foto dell ruby@jugp.

Il mondo è decisamente troppo piccolo.

Che dite, è il caso di dire che è una figata ?

ItalyOnRails, chi vuole dare una mano?

italia, rubyonrails, ruby-it May 12, 2006 4:51 pm (Save post)

Purtroppo io non sarò in italia in quel periodo, e porca miseria mi rode, ma per chi ne avesse la possibilità è stata attivata una maling list per collaborare alla realizzazione della prima conferenza europea su RubyOnRails, che una volta tanto si terrà nel nostro bel paese. Sotto gente :D

L’annuncio è appena stato dato da Gianluigi Spagnuolo, e mi pare giusto notare che, tra le altre cose, lui è stato il primo artefice della nascita di Ruby Italia nel febbraio 2003, mandando una mail a me, bard, matley, ed un Andrea che credo fosse fondatore di un gruppo utenti ruby di genova, ma non non ricordo bene :(
La mail iniziava così:

salve,
se Google non mente dovreste essere programmatori Ruby, o
quantomeno interessati a tale linguaggio.

Sniff :°)

Scalare con Rails

web, rubyonrails April 26, 2006 3:40 pm (Save post)

Non mi pongo il problema finché non ho tempo di buttare giù quell’idea da 5 dollari che cambierà il mondo, ma nel frattempo potrebbe interessarvi Scale With Rails.

Il sito è markettaro, ma c’è una presentazione sulla scalabilità (che tocca solo marginalmente rails) molto interessante.
In realtà tende a diventare marketing della sun ad un certo punto, ma è gustosa.

Nel frattempo, io mi diverto con nitro.

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