domenica 21 ottobre 2007

Campioni del mondo!!!



Che gara!!!
CAMPIONI DEL MONDOOOO!!!!!

lunedì 8 ottobre 2007


Oggi ho partecipato al Lotus Collaboration Summit; posterò le mie impressioni in un secondo momento; pur essendo di taglio molto commerciale per i miei gusti, ho molto apprezzato la vision delineata dal mitico Ed Brill.

A presto.

giovedì 4 ottobre 2007

DominoPoint Day 2007 - La mia presentazione


Composite Apps


From: stemax, 10 minutes ago




Eccola!
La mia presentazione al DominoPointDay 2007

Buon divertimento.

SlideShare Link

Composite Application Editor per Lotus Expeditor

E' disponibile il Composite Application Editor per Lotus Expeditor, come annunciato dal Composite Apps Blog di IBM.


Il componente è liberamente scaricabile dalla SandBox.

martedì 2 ottobre 2007

Sviluppo Notes Agile

Uno dei paradigmi emergenti dell'ingegneria del software è lo sviluppo Agile.

Non voglio qui tracciare la storia e le caratteristiche di questa metodologia, mi limito solo a dare qualche riferimento che ho trovato utile:
Agile Manifesto
Agile Alliance

Inoltre cito anche il sito della comunità italiana che organizza l'Agile Day che è sempre molto interessante (ho partecipato alle ultime due edizioni) e la prossima sarà a breve:
Agile Day

Fra i blog che trattano dell'argomento trovo estremamente interessante quello di Piergiorgio Grossi e quello dell'amico Emanuele (Bonus), anche se quest'ultimo è molto specifico per .Net.

Per mancanza di tempo non ho, purtroppo, approfondito l'argomento come merita, ma da quello che ho superficialmente e sottolineo superficialmente ho colto, le basi della metodologia Agile sono le seguenti (qualsiasi correzione è ben accetta ;-)):
  • coinvolgimento molto forte del cliente durante tutto il processo di sviluppo;
  • rilasci stabili e molto "vicini" (una, al massimo due settimane) di nuove features;
  • scrittura e gestione di test che permettano di controllare che eventuali modifiche inficino quanto scritto in precedenza (Unit test);
  • refactoring, ossia riscrittura continua del codice al fine di renderlo il più "snello" ed efficiente possibile.
Ovviamente, ripeto, le metodologie Agili prevedono molte più cose, ma per me i punti salienti sono questi.

Dopo questa sbrodolata iniziale vado finalmente al punto: com'è possibile applicare le metodologie agili allo sviluppo Notes?

Personalmente devo dire che da sempre (ancora prima di conoscere le metodologie Agili ;-) ) applico i primi due punti: a volte mi rendo conto di essere pedante, ma sviluppando praticamente da cliente mi trovo ogni 5 minuti a chiedere: "Ti piace così o preferisci cosà?".
Devo dire che questo a volte rallenta i tempi di sviluppo, ma mi porta difficilmente a correggere qualcosa che porto in produzione (a meno di enormi bachi miei ;-P).
Inoltre difficilmente trascino lo sviluppo di caratteristiche particolari per più di due settimane.
In questo sono ovviamente molto aiutato dalle caratteristiche di sviluppo di Lotus Domino/Notes: costruire un form o una vista e modificare al volo campi e colonne è estremamente veloce e ti permette di aderire senza fatica, almeno a mio parere, alle caratteristiche che dicevo.

Le cose molto più difficili da fare in ambiente Lotus sono invece il Test e il refactoring.
Nonostante la nascita di qualche strumento in tal senso (vedi LSUnit) vedo molto difficile la strada del test in LotusScript e il versionamento di quanto fatto.
Certo, si potrebbe portare lo sviluppo solamente in Java e in Eclipse con strumenti tipo Domiclipse, ma a parer mio si perderebbe velocità e immediatezza dovendo usare poi strumenti di testing non nati per il mondo Lotus.
Non ho ancora provato LSUnit e mi auguro di riuscire a farlo presto, magari vi farò sapere o, se qualcuno l'ha già usato mi farà sapere.

La parte che vedo più complessa è la gestione del versionamento.
Io vedo due vie.
La prima prevede di copiare gli elementi di Design e poi agire su una versione nuova.
La seconda è quella di fare una copia del modello del database e lavorare su quello.
Il problema di entrambe le soluzioni si potrebbe già vedere nel singolo database (come faccio ad automatizzare i test?), ma diventa spinoso in un'applicazione multi database: non saprei come tracciare tutte le interazioni: anche se sono poche, spesso sfuggono e diventa un problema poi gestirle nel modo più opportuno.

giovedì 27 settembre 2007

Domino Point Day 2007 - Le mie considerazioni

Mi sono preso un po' di tempo prima di fare un'analisi della mia esperienza al Domino Point Day appena trascorso, per evitare che l'emozione prendesse il sopravvento.

Innanzi tutto alcune considerazioni relative al mondo Lotus.
Lavoro in ambito Lotus Notes da anni ormai e da sempre lotto con clienti e altri consulenti che dicono nell'ordine: Lotus Notes è morto, Lotus Notes è solo posta oppure (mi è stato detto ieri da un cliente) ha un'interfaccia "vecchia" e non all'altezza dei prodotti Microsoft.
Beh, il vedere la numerosità dei partecipanti e il loro interesse a un evento di questo tipo, non solo mi ha stupito, ma mi ha anche rinfrancato; ho pensato: non sono il solo.

Un'altra considerazione riguarda le novità estremamente stimolanti che sono state inserite nella nuova versione e la versatilità di utilizzo della piattaforma.
Ascoltando le presentazioni degli altri speaker ho avuto la conferma di quanto la piattaforma sia estendibile e ho avuto parecchi spunti di riflessione per trasformare e migliorare le mie applicazioni, nonché per costruirne di nuove.
Escludendo la mia presentazione per ovvi motivi (sono un giudice abbastanza severo di me stesso) devo dire che le presentazioni degli altri colleghi, anche su argomenti che già conoscevo e avevo affrontato, mi hanno fornito punti di vista diversi e aperto nuovi orizzonti. Inoltre, lasciatemelo dire, sempre escludendo il sottoscritto, sono state tutte di altissimo livello.
Non so quali siano stati i feedback lasciati dal pubblico, ma lo scopo di un incontro "tecnico" come il DominoPointDay, a mio parere doveva essere questo e mi sembra che sia riuscito benissimo.

Passo ora ad alcune considerazioni su quanto ho esposto: le applicazioni composite.
E' un argomento estremamente nuovo per gli sviluppatori Domino puri e anche parlando con colleghi/amici è difficile a volte da comprendere.
Il taglio della mia presentazione voleva essere: aprite gli orizzonti...ora si può fare (quasi) tutto.
Non so se ci sono riuscito, ma per me questo argomento è estremamente stimolante.
Non appena riuscirò a costruire qualcosa di decente la pubblicherò di sicuro.
Spero di farlo al più presto, altrimenti il Portal Evangelist, anch'egli molto interessato all'argomento, mi sommergerà di spunti e applicazioni.

Un'ultima considerazione, di cui ho già accennato a caldo.
A parer mio l'aspetto più positivo di questo evento è stata la possibilità di conoscere delle persone preparatissime e straordinarie dal punto di vista umano.
Sia la preparazione sia i giorni trascorsi insieme all'evento mi hanno trasmesso un forte spirito di squadra e di appartenenza a una comunità che ha voglia di crescere!
Grazie a tutti ragazzi.


Ah, il cliente mi chiedeva perché fare l'upgrade e confrontava la versione 5.x di Domino con Outlook 2007 ;-P

mercoledì 26 settembre 2007

Domino Point Day - La mia prima fotografia


Stefano Mastella
Originally uploaded by stefano.mastella
Eccomi!!!

Guardate che professionalità ;-)

La splendida maglietta è stata distribuita dapprima solamente a noi speaker e poi a tutti i partecipanti al Domino Point Day 2007.

P.S.: la fotografia (e le altre relative all'evento che potete trovare su Flickr nella mia pagina personale) sono tutte state scattate con la mia nuovissima Canon EOS 400D.

P.P.S.: altre foto le trovate sul sito dell'evento: DominoPoint Day 2007

lunedì 17 settembre 2007

Lotus Notes - Modificare qualsiasi campo da Barra degli strumenti

Per modificare i campi all'interno di un qualsiasi documento ho trovato utile questo tip trovato qui: Breaking Par Consulting

Per usarlo fare i seguenti passi:
1. andare in File -> Preferenze -> Barra degli strumenti
2. selezionare Personalizza barra (consiglio di scegliere la barra Universal);
3. trovare un'icona a proprio piacimento;
4. dargli un titolo;
5. inserire nella parte del codice il codice seguente...


REM {Get a listing of all the fields on the current document};
List := @DocFields;
REM {Possible data types to choose from.};
REM {I called Number Integer because use keyboard to select what you want with keyboard quicker.};
DataTypes := "Text" : "Date" : "Integer" : "Password" : "Name" : "Common Name" : "**** Remove Field ****" : "Text Multi Value" : "Date Multi Value" : "Integer Multi Value" : "Name Multi Value";
REM {Prompt for which field needs to be updated.};
EditField := @Prompt([OkCancelList]; "Select Field To Update"; "Select the field you wish to update:"; ""; List : "**** ADD A NEW FIELD ****");
REM {If adding a new field, prompt for the field name};
NewFieldName := @If(EditField = "**** ADD A NEW FIELD ****"; @Prompt([OkCancelEdit]; "Enter Field Name"; "Enter the name of the new field:"; ""); "");
CheckFieldName := @If(@IsMember(NewFieldName; List) & NewFieldName != ""; @Return(@Prompt([Ok]; "Already In List"; "The field " + NewFieldName + " already exists on the document.")); "");
UpdateVariable := @If(NewFieldName = ""; ""; EditField := NewFieldName);
REM {Prompt for which data type you would like the data to be};
REM {This needs to be done before value prompt to determine if the};
REM { Picklist or any prompting needs to be used.};
DataType := @Prompt([OkCancelList] : [NoSort]; "Choose Data Type"; "Please Select the correct data type or action for field: " + EditField; "Text"; DataTypes);
REM {For multi-valued fields, let the user choose the separator to use};
Separator := @If(@Contains(DataType; "Multi Value"); @Prompt([OkCancelList] : [NoSort]; "Choose Separator"; "Choose the separator to split out your multiple values"; ":"; (":" : ";" : "+" : "-" : "*")); "");
REM {Pull out the current value of the field};
CurrValue1 := @Eval(@Text(EditField));
CurrValue2 := @Abstract([TextOnly]; 254; ""; @Text(EditField));
CurrValue := @If(@IsNumber(CurrValue1) | @IsTime(CurrValue1); @Implode(@Text(CurrValue1); Separator); CurrValue2 != ""; CurrValue2; @Implode(@Text(CurrValue1); Separator));
REM {Based on what type of data is being entered different prompts will happen if any at all.};
RawValue := @If(
@Contains(DataType; "Name Multi Value"); @PickList([Name]);
@Contains(DataType; "Name"); @PickList([Name] : [Single]);
DataType = "**** Remove Field ****"; "";
@Contains(DataType; "Multi Value"); @Prompt([OkCancelEdit]; "New Value"; "Please enter the new desired value for: " + EditField + " seperated with " + Separator + " for each value."; CurrValue);
@Prompt([OkCancelEdit]; "New Value"; "Please enter the new desired value for: " + EditField + "."; CurrValue)
);
REM {If data conversion doesn't work then don't set field.};
@If(
DataType = "Date"; @If(@SetField(EditField; @TextToTime(RawValue)));
DataType = "Integer"; @If(@IsError(@TextToNumber(RawValue)); ""; @SetField(EditField; @TextToNumber(RawValue)));
DataType = "Password"; @SetField(EditField; @Password(RawValue));
DataType = "**** Remove Field ****"; @SetField(EditField; @DeleteField);
DataType = "Text Multi Value"; @SetField(EditField; @Explode(RawValue; Separator));
DataType = "Date Multi Value"; @SetField(EditField; @TextToTime(@Explode(RawValue; Separator)));
DataType = "Integer Multi Value"; @If(@IsError(@TextToNumber(@Explode(RawValue; Separator))); ""; @SetField(EditField; @TextToNumber(@Explode(RawValue; Separator))));
DataType = "Name Multi Value"; @SetField(EditField; @Explode(@Name([Canonicalize]; RawValue); Separator));
@SetField(EditField; RawValue)
);
""



et voilà il gioco è fatto.
Funziona solo su un documento alla volta quindi non per cose di massa, ma l'ho trovata utile.

sabato 15 settembre 2007

DominoPoint Day


Ebbene sì il gran giorno è arrivato...ed è già trascorso.

Ieri ho partecipato come speaker al DominoPoint Day.
Che emozione: ho parlato e scambiato opinioni con tante persone e, soprattutto ho conosciuto persone simpatiche e preparatissime.

Non vedo l'ora che arrivi il prossimo per poter di nuovo parlare davanti a 300 persone ;-)

Presto inserirò le fotografie dell'evento, la mia presentazione ed alcuni aggiornamenti.

lunedì 12 marzo 2007

Che tipo di programmatore sono?

Leggo da programmazione.it: Il test della personalità del programmatore e subito vado a fare il test (Doolwind's Game Coding Site)

con il seguente risultato:
PLTB

Mi sorprende il Low Level, ma...

sabato 10 marzo 2007

Lotus Domino/Notes 8 public beta pubblicata

L'attesa è finita!!!

Ne parlavo giusto nel mio post di ieri.
La public beta di Lotus/Domino 8 è scaricabile (vedi Notes & Domino beta home page), ho già cominciato a scaricarla (ci vorrà un po': la dimensione totale è quasi 1,5 GB) e spero di cominciare a testare da lunedì.

Stay tuned per le prime impressioni.

venerdì 9 marzo 2007

Lotusphere comes to you

Ripensando a Lotussphere comes to you cui ho partecipato lunedì: Lotus sta facendo davvero un buon lavoro.

Mi è estremamente piaciuta l'idea sottesa a Lotus Connections: riunire in un'unica piattaforma blog, wiki, dogear, contatti e attività per permettere la centralizzazione della conoscenza aziendale, strutturata e non .

Non vedo l'ora di provarlo, come non vedo l'ora di provare la nuova versione di Domino/Notes 8: sono curioso di testare il nuovo client per le composed application.

Un'altro aspetto, per me importantissimo, sottolineato all'evento dai relatori è il nuovo approccio di Lotus alla costruzione dell'interfaccia utente e delle funzionalità.
Il responsabile dello sviluppo (Mary Beth Raven) chiede agli utenti, attraverso il suo blog (http://www-03.ibm.com/developerworks/blogs/page/marybeth) il feedback sulle scelte da prendere.

FANTASTICO!

Fra le altre cose sta chiedendo anche come modificare l'interfaccia dei siti istituzionali Lotus....a suo modo anche questa è folksnomy.

giovedì 8 marzo 2007

Lotus - Strategia Agile

5 semplicissime slide di Ed Brill sulla strategia Lotus per il 2007.

Da non perdere.

http://www.slideshare.net/edbrill/lotus-software-strategy-1h07-business-drivers

Buona lettura

P.S.: e la prossima settimana dovrebbe uscire la prima beta pubblica di Notes 8...non vedo l'ora di provarla (ibm.com/lotus/getnd8now)

Quello sporco ultimo miglio

E' incredibile quanto sia diventato dipendente dalla connessione ad internet.
Grazie a Telecom Italia sono di nuovo disconnesso da Internet.

E' casualmente successo altre due volte proprio quando ho rinunciato ai loro servizi per cambiare operatore.
Non c'è che dire non mancano certo di un tocco di sadico sarcasmo: aspettano che firmi un altro contratto, aspettano 5-7 giorni e, sorpresa, la linea si stacca e io sono isolato.
E poi mi dicono al call center che per loro la linea funziona salvo aprire dopo qualche millisecondo la chiamata per la riparazione.

Tornando alla dipendenza: anche se spesso da casa non mi connetto più, ho sentito la mancanza della connettività come una violenza!
Ovviamente mi sono venuti in mente mille siti da visitare o da ricercare, ho dovuto optare per un buon libro, che consiglio "Tre tazze di Té" di Greg Mortenson e devo dire che un po' la mia dipendenza si è placata.

Almeno per poco.

venerdì 5 gennaio 2007

Let's start

"
The direction of the eye
So misleading
The defection of the soul
Nauseously quick
I don't question
Our existence
I just question
Our modern needs
"
Pearl Jam

Dunque eccomi, mi affaccio nel mare magnum dei blog non sapendo bene perché, ma soprattutto dubbioso sull'utilità del mio piccolo contributo.
Benvenuti.