Posts Tagged ‘programming’

Mi ricorda qualcosa che mi è veramente accaduto…

Tuesday, August 12th, 2008

Spostare un repository Subversion (SVN)

Monday, October 8th, 2007

Questa 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

  1. Qualsiasi programma, quando funziona, è obsoleto
  2. Qualsiasi programma costa di più e ci mette di più
  3. Se un programma è utile, dovrà essere cambiato
  4. Se un programma è inutile, dovrà essere documentato
  5. Ogni programma si espanderà fino a occupare tutta la memoria disponibile
  6. Il valore di un programma è direttamente proporzionale all’ingombro del suo output
  7. La complessità di un programma si arresta solo dopo aver oltrepassato le capacità del programmatore

ActiveRecord troubles

Tuesday, August 7th, 2007

Ho 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, 2007

My 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, 2007

Nella 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, 2007

Un 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 :-)

Leggi l’articolo intero.

Ciao Piero

Div trascinabile con gli Script.aculo.us

Tuesday, January 30th, 2007

Un 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, 2007

Realizzare 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, 2007

In 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