Ecco una bella figura dell'Italiota di turno... che crede che il "press any key" significhi premere il tasto "any"...
Leggere il thread per credere
http://www.hwupgrade.it/forum/showthread.php?t=1263518
domenica 30 dicembre 2007
mercoledì 19 dicembre 2007
Lavorare in un ambiente confortevole: quanto conta nell'IT?
vedere per credere!
[youtube R90Zs60HXms]
[youtube R90Zs60HXms]
giovedì 13 dicembre 2007
10 Things Every Java Programmer Should Know About Ruby
Sul sito Ruby-doc sono riportate le slides di Jim Weirich alla Open Source Conference del 2005 riguardo a ruby.
Sono molto interessanti e utili, la lettura non porta via più di 10 minuti...
Il link è questo
Il blog di Weirich è questo
Sono molto interessanti e utili, la lettura non porta via più di 10 minuti...
Il link è questo
Il blog di Weirich è questo
Compile Time? Runtime? Anytime!
Una delle prime domande che mi viene posta quando parlo di Ruby a qualcuno è 'come viene compilato il codice?"
In parte rispondo con la pagina 400 del libro 'Pragmatic Ruby Programming 2nd edition' di Dave Thomas (che consiglio vivamente di acquistare)
"The important thing to remember about Ruby is that there isn’t a big difference between
'compile time' and 'run time'. It’s all the same. You can add code to a running process.
You can redefine methods on the fly, change their scope from public to private, and
soon. You can even alter basic types, such as Class and Object.
Once you get used to this flexibility, it is hard to go back to a static language such as
C++ or even to a half-static language such as Java.
But then, why would you want to do that?"
Il grande vantaggio di Ruby è la possibilità di modificare e aggiungere metodi a runtime. Come è possibile questo?
Cominciamo col dire che, similmente a SmallTalk, per ruby ogni cosa è un oggetto con i suoi metodi, dal numero alla stringa, non come avviene in Java dove, ad esempio, abbiamo i tipi primitivi privi di metodi.
In un linguaggio OO standard gli oggetti vengono identificati dalla classe che ha istanziato l'oggetto stesso, as esempio un oggetto di tipo String in java sarà istanziato da una classe String. In ruby il tipo degli oggetti viene identificato in base ai metodi che possiedono. Ecco che grazie a questo abbiamo librerie come ActiveRecord (lo strato ORM di Rails) che senza scrivere quasi una riga di codice e senza scrivere metodi di accesso ai campi di una tabella ti permette di interrogare il database. Tutto viene fatto in automatico, a runtime.
In parte rispondo con la pagina 400 del libro 'Pragmatic Ruby Programming 2nd edition' di Dave Thomas (che consiglio vivamente di acquistare)
"The important thing to remember about Ruby is that there isn’t a big difference between
'compile time' and 'run time'. It’s all the same. You can add code to a running process.
You can redefine methods on the fly, change their scope from public to private, and
soon. You can even alter basic types, such as Class and Object.
Once you get used to this flexibility, it is hard to go back to a static language such as
C++ or even to a half-static language such as Java.
But then, why would you want to do that?"
Il grande vantaggio di Ruby è la possibilità di modificare e aggiungere metodi a runtime. Come è possibile questo?
Cominciamo col dire che, similmente a SmallTalk, per ruby ogni cosa è un oggetto con i suoi metodi, dal numero alla stringa, non come avviene in Java dove, ad esempio, abbiamo i tipi primitivi privi di metodi.
In un linguaggio OO standard gli oggetti vengono identificati dalla classe che ha istanziato l'oggetto stesso, as esempio un oggetto di tipo String in java sarà istanziato da una classe String. In ruby il tipo degli oggetti viene identificato in base ai metodi che possiedono. Ecco che grazie a questo abbiamo librerie come ActiveRecord (lo strato ORM di Rails) che senza scrivere quasi una riga di codice e senza scrivere metodi di accesso ai campi di una tabella ti permette di interrogare il database. Tutto viene fatto in automatico, a runtime.
mercoledì 12 dicembre 2007
Imparare a fare i test con Rails
Stiamo finalmente affrontando lo sviluppo con i test (Piero dirà: Era ora!!!). Una buona guida si trova QUI.
Da una certa soddisfazione vedere che il codice che scrivi è più robusto e che può essere sottoposto a stress per vedere come si comporta e scoprire che si comporta bene!
Da una certa soddisfazione vedere che il codice che scrivi è più robusto e che può essere sottoposto a stress per vedere come si comporta e scoprire che si comporta bene!
venerdì 7 dicembre 2007
Rails 2
Sto aggiornando le ruby gems sul mio mac e ho appena avuto una sorpresa: Rails 2!
La mia applicazione che sto sviluppando non lamenta di warning, ora farò la prova del nove :D
La mia applicazione che sto sviluppando non lamenta di warning, ora farò la prova del nove :D
Zuccherini sintattici in Ruby
Quando qualcuno inizia a programmare in Ruby si porta dietro degli orrori sintattici provenieneti da altri linguaggi. Ad esempio:
in Ruby posso utilizzare il metodo nil? implementato in ogni oggetto ed eliminare il then che non è obbligatorio. Quindi il nostro codice diventerà:
per sintetizzare ancora, posso utilizzare lo stile condiviso con Perl, ovvero posso mettere la condizione dopo l'espressione da eseguire:
che può essere ancora più accorciato in
Un altro esempio che possiamo fare di come ruby sia molto compatto è con le iterazioni.
se volessi iterare l'array
in uno linguaggio come il C dovrei fare
in Ruby tutto diventa più semplice!
il ciclo può diventare
...accorciando...
oppure
come direbbe il buon Zio Ben di SpiderMan "Un grande potere impone grandi responsabilità”...
quindi anche se abbiamo a disposizione una sintassi molto compatta e malleabile bisogna fare attenzione a scrivere codice che sia comprensibile agli altri componenti del nostro team.
if element == nil then
puts 'Youppppy!'
end
in Ruby posso utilizzare il metodo nil? implementato in ogni oggetto ed eliminare il then che non è obbligatorio. Quindi il nostro codice diventerà:
if element.nil?
puts 'Youppppy!'
end
per sintetizzare ancora, posso utilizzare lo stile condiviso con Perl, ovvero posso mettere la condizione dopo l'espressione da eseguire:
puts 'Youppppy!' if element == nil
che può essere ancora più accorciato in
puts 'Youppppy!' unless element
Un altro esempio che possiamo fare di come ruby sia molto compatto è con le iterazioni.
se volessi iterare l'array
pagine_interessanti = [1,2,5,7,19,45,99,167,98]
in uno linguaggio come il C dovrei fare
int pagine_interessanti[] = {1,2,5,7,19,45,99,167,98}
for (count = 1; count <= sizeof(pagine_interessanti), count++){
printf("Ho trovato interessante la pagina %dn",pagine_interessanti[count]);
}
in Ruby tutto diventa più semplice!
pagine_interessanti = [1,2,5,7,19,45,99,167,98]
for pagina in pagine_interessanti do
puts "Ho trovato interessante la pagina #{pagina}n"
end
il ciclo può diventare
pagine_interessanti = [1,2,5,7,19,45,99,167,98]
pagine_interessanti.each |pagina|
puts "Ho trovato interessante la pagina #{pagina}n"
end
...accorciando...
pagine_interessanti = [1,2,5,7,19,45,99,167,98]
pagine_interessanti.each{|pagina| puts "Ho trovato interessante la pagina #{pagina}n"}
oppure
[1,2,5,7,19,45,99,167,98].each{|pagina| puts "Ho trovato interessante la pagina #{pagina}n"}
come direbbe il buon Zio Ben di SpiderMan "Un grande potere impone grandi responsabilità”...
quindi anche se abbiamo a disposizione una sintassi molto compatta e malleabile bisogna fare attenzione a scrivere codice che sia comprensibile agli altri componenti del nostro team.
Iscriviti a:
Post (Atom)