
Posts Tagged ‘programming’
Mi ricorda qualcosa che mi è veramente accaduto…
Tuesday, August 12th, 2008Spostare un repository Subversion (SVN)
Monday, October 8th, 2007Questa mattina mi è capitato di dover spostare un Repository Subversion da un server ad un altro. L’operazione si è rivelata molto semplice:
Prima di tutto ho eseguito il dump del repository
piero@keplero:~$ svnadmin dump /path/to/repository > repository-name.dmp
dopo di che mi è bastato creare il nuovo repository sul server di destinazione
piero@galileo:~$ svnadmin create repository-name
in fine ho scompattato il dump nel file system
piero@galileo:~$ svnadmin load /new/path/to/repository-name < repository-name.dmp
E tutto è tornato operativo!
Leggi di Murphy per programmatori classici
Wednesday, September 19th, 2007
ActiveRecord troubles
Tuesday, August 7th, 2007Ho dovuto un po’ sclerare su modello Rails inquando mi generava un errore piuttosto strambo quando eseguivo una find:
compile error
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1358: syntax error, unexpected tINTEGER
Object::1
^
Come ho risolto? All’interno della tabella avevo un campo integer di nome Type che mi mandava in panne la Find.
Rinominando quel campo, tutto è tornato a posto…
Che idiota… mai usare parole che hanno l’aria di ‘riservate’!
Remote Pair Programming with Eclipse and XPairtise
Tuesday, July 10th, 2007My friend Andrea (bimbomix1) has suggested to me to use XPairtise.
What is XPairtise? It’s a fantastic eclipse plugin for remote pair programming in a complete XP-style! The plugin concurs to share and modify the same code like a driver (who write the code) or navigator (who suggest the code). A comfortable perspective provide a chat session, a blackboard for notes and sketches, and a little project manager. Like in a true pair programming session, the navigator can’t write code (the keyboard is locked by XPairtise) until the driver switch the role with the navigator (for example at the end of Pomodoro…).
Use the plugin with Skype (for talk between pairs) is very cool and useful, but Isn’t a real substitution for the real pair programming.
You can get it here
Mocks Aren’t Stubs
Saturday, May 19th, 2007Nella mailing list dell’XpUg di Varese è apparsa una interessante discussione sull’utilizzo dei mock objects.
Alla fine ne è saltato fuori questo paper presente sul sito di Martin Folwer
Mocks Aren’t Stubs
Se siete interessati all’argomento, buona lettura.
Linguaggi Web Oriented, il migliore?
Friday, February 2nd, 2007Un interessante articolo sull’argomento è stato pubblicato su CmsWire.com lo scorso novembre. L’articolo metteva a confronto tre linguaggi di programmazione / framework per lo sviluppo di applicazioni Web: Java, PHP e Ruby On Rails.
Nell’articolo venivano fatte delle valutazioni (alquanto soggettive, dato che non si riportano i dati, ma apparentemente fedeli alla realtà) su fattori importanti al fine di individuare quale fosse il migliore. Questi fattori sono la scalabilità, la velocità di sviluppo, gli strumenti di sviluppo e la manutenzione.
Ognuno dei linguaggi ha un proprio cavallo di battaglia: PHP è molto scalabile (ovviamente dipende molto da come è stato scritto il codice), JAVA ha ottimi strumenti di sviluppo, e Rails si distingue per la sua velocità di sviluppo e per la sua manutenzione.
Ovviamente la conclusione che si può trarre è che la scelta del linguaggio dipende dal dominio del problema, da notare però che Rails prende il massimo dei voti su due parametri di giudizio su quatto e gli linguaggi arrivano al massimo a uno su quattro
Ciao Piero
Div trascinabile con gli Script.aculo.us
Tuesday, January 30th, 2007Un caratteristica interessante di Rails è che ha già impacchettati i famosi Script.aculo.us, script che consentono di creare pagine graficamente dinamiche. Ad esempio è possibile creare un div simile ad una finestra (cliccabile e trascinabile con il mouse) in poche righe di codice.
Nella view scriveremo
<%= javascript_include_tag "prototype" %>
<%= javascript_include_tag "scriptaculous" %>
per importare i Javascript necessari
Poi creeremo un Div e lo chiameremo “finestra”
<div id="finestra"> clicca su di me per trascinarmi! </div>
Ora modifichiamo il css a lui appicato
#finestra {
position: absolute;
z-index: 70;
height: 400px;
width: 300px;
top: 20px;
right: 300px;
background-color: #FFFFDD;}
Ora inseriamo uno script appena dopo <div id=”finestra”>
<script type="text/javascript"> new Draggable('finestra'); </script>
Il gioco è fatto, avremo un div che si comporterà come una finestra…
Referenze
Sito ufficiale di Ruby On Rails: www.rubyonrails.org
Sito ufficiale degli Script.aculo.us
Ciao Piero
Rails e Ajax
Tuesday, January 30th, 2007Realizzare applicazioni moderne, di forte impatto grafico, solitamente porterebbe via molto tempo. Oggi grazie ai tanti framework di sviluppo web agile che si stanno diffondendo è molto più semplice e veloce scrivere intere applicazioni ben fatte con un notevole risparmio di tempo e divertendosi. Esistono diversi framework: primo tra tutti Ruby On Rails, poi segue Nitro (sempre in ruby), e Django scritto in Phyton.
Rails supporta nativamente Ajax ed è molto semplice da utilizzare. Per eseguire una richiesta Ajax è sufficiente utilizzare gli appositi helpers.
Nell’html head della View scriveremo
<%= javascript_include_tag "prototype" %>
per importare le funzioni javascript necessarie.
Mentre per fare un link che aggiornerà un div via ajax scriveremo
<%= link_to_remote( "clicca qui", :update => "div_da_aggiornare", :url =>{ :action => :funzione_remota_da_chiamare }) %>
Rails provverderà a generare il codice javascript necessario per eseguire le richieste via Ajax.
Con questo comando verrà richiamato il controller corrente alla funzione “funzione_remota_da_chiamare” e l’output sarà inserito nell’apposito div chiamato “div_da_aggiornare”.
il codice del controller remoto sarà simile a questo
def funzione_remota_da_chiamare
render :text => “Ciao Ciao”
end
Facile no?
Ciao Piero
Per approfondimenti onLamp – Ajax on Rails: OnLamp
Simulare tipi enumerativi in Java
Sunday, January 14th, 2007In certi linguaggi, come ad esempio Java, non sono a disposizione i tipi enumerativi, ecco che allora posso sfruttare la potenza della programmazione ad oggetti per poter creare una classe che ne simula il funzionamento.
Per poter far ciò posso scrivere una classe autoreferenziante. Ad esempio:
class Edificio{
private Edificio(){} /* Costruttore vuoto */
public static final Edificio Casa = new Edificio(); /* elemento del tipo Edificio*/
public static final Edificio Villa = new Edificio();public static final Edificio Appartamento = new Edificio();
public static final Edificio Magazzino = new Edificio();
}
In questo modo potrò fare operazioni del tipo:
Edificio MioEdificio = Edificio.Casa();
oppure
Edificio MioEdificio = Edificio.Villa();
Potrebbe essere utile…
Ciao Piero