14 novembre 2011

E poi dicono delle Poste Italiane...


from the ups dept.

Ecco il giretto che sta facendo il mio Kindle...

Bergamo, Italy 14/11/2011 5:45
14/11/2011 3:02
Koeln, Germany 14/11/2011 1:49
Bergamo, Italy 14/11/2011 1:06
Koeln, Germany 13/11/2011 18:36
Louisville, KY, United States 13/11/2011 4:19
Louisville, KY, United States 12/11/2011 5:25
12/11/2011 0:38
Bergamo, Italy 12/11/2011 4:41
Campbellsville, KY, United States 11/11/2011 19:12
United States 11/11/2011 17:18

...e poi dicono delle Poste Italiane! Che diavolo di giro del mondo si sta facendo?

11 ottobre 2011

eXtreme Polymorphism

from the object-oriented dept.


Idea idea! What about polymorphic conditionals? In such a way, we don't need the if, else and related keywords. Let's try in Ruby:





Great, isn't it? But wait, someone already invented this! :-)

Ruby is a great language, however it has too many keywords that could be substituted with object-level messages. Simplicity always leads to elegant solutions, and Smalltalkers know what I am talking about.

11 maggio 2011

The Observer Pattern and Syntactic Sugar

From the simplicity dept.


The Observer Pattern is a convenient way of updating collaborating objects upon status update. It happens that the .NET Framework and in particular the C# language provides native support for it, in the form of events.

Uhm. This approach to design patterns is incorrect to me since it requires to add a good amount of syntactic sugar only to handle this in a more "integrated" way. The real problem is that in this way language designers and users learn that every and each interesting capability should have its own syntax.

A radically different approach is provided in Smalltalk. The Object (yes, the Object class) provides convenient methods to handle status updates through the updating category of methods: changed, updated, addDependent, etc.

So, what's simpler? :-)

18 aprile 2011

Don't Manage Complexity with Bruce Force

from the xp dept.

Last Thurdsay I was discussing with my XP Team about the Single Responsibility Principle.
The coach pointed out the relation with Rigidity and all of sudden something familiar came to my mind.

In the last years I've worked on a well-covered projects where almost every new feature required a tremendous effort fixing the entire test suite. The real problem there is in objects with very low cohesion and high coupling that prevent us to concentrate on a specific area of the code when thinking about a concept.

In that team however all the people were smart and "fast", so the underlying problem was, in fact, dominated with Bruce Force. The problem with Brute Force is that it doesn't scale well, and prevents you to really go at full speed.

So, don't use Brute Force in your projects ;-)


28 febbraio 2011

Class Naming

Ecco un elenco di parti di nomi di classe che sarebbe il caso di smettere di dare perché poco speaking e OO. Sono casi particolari di questo smell.

  • helper
  • manager
  • adapter
  • provider
  • utils (peggio ancora testutils)
  • entity
  • formatter
  • serializer
Thanks Antonio Ganci per la collaborazione nel trovare i nomi ;-)

25 febbraio 2011

Belle persone

E' quando apprendo che esistono o sono esistite persone come questo medico che sono contento di vivere in questo mondo.


Grazie.

16 febbraio 2011

TestCaseSource


Why can't I use lambdas or methods for TestCaseSource?
It's a limitation of .NET Attributes: only statically instantiated stuff can be used as arguments.


04 gennaio 2011

Smalltalk and Ruby

from the agile dept.

This is my post in the attempt to embrace the Smalltalk way of doing things. In the process, I'm following Davide's course.

The power of Smalltalk is due to the language and its environment, that of course has a bunch of native, old-style C-code for its VM. The question I want to answer is: how much power is hidden in the VM and how much in the ST part? Is the VM hiding something to us?

Let's compare the ST VM to the Ruby VM. Why Ruby? Because the Ruby and ST object models are very similar, and some principles are shared between the two - however, the Ruby syntax is far more verbose (e.g. 40 keywords vs 6 of ST). And because both are written in the old-school C language.

How big is the Smalltalk VM (SqueakVM for instance) compared to Ruby (MRI)?

squeakvm/win32 r2249

22006 .c LOC
33404 .h LOC

ruby 1.9.2 p136

722475 .c LOC
32253 .h LOC

hey, RubyVM's about 30 times bigger than SmalltalkVM! This is a raw evidence that the power of Smalltalk is not in the native/C part but in the Smalltalk part (surprise!?).

01 ottobre 2010

PHP Debugging

Just a few notes for my (hope not so many) future PHP projects:

  • Install Eclipse + PDT
  • Installed XDebug (follow the excellent online wizard)
  • Added in php.ini:
  • xdebug.remote_enable=1
  • xdebug.remote_host="localhost"
  • xdebug.remote_port=9000
  • xdebug.remote_handler="dbgp"
  • Configured Debug in Eclipse with XDebug

        12 marzo 2010

        NihongoToLinux

        A simple method for KDE: install uim-applet-kde, anthy & run im-switch, then select option 13 (uim-applet-qt)

        17 gennaio 2009

        State attenti

        from the bull-shit dept.

        La prossima volta che bevete dell'acqua, abbiate un po' di rispetto. Potrebbe ricordarsi...

        11 luglio 2008

        Sardegna 2008

        from the relax dept.

        Finalmente un aggiornamento a quest'ormai polveroso blog per un breve report sulla vacanza a San Teodoro, Sardegna, dal 17 giugno al 2 luglio con Laura. Le nostre ultime (o penultime?)"ferie" al mare da fidanzati... dall'anno prossimo come già saprete... ;-)

        Il tutto è iniziato nel pomeriggio di lunedì 17, partendo alla volta di Genova per l'imbarco sulla nave "La Suprema" del gruppo Grimaldi. Come sempre è andato tutto molto bene ed i servizi di bordo sono stati impeccabili: la cabina era ben tenuta e comoda, persa in un labirinto di corridoi ma dopo qualche ora riuscivamo bene o male a raggiungerla senza troppi errori :D

        Diversamente dagli altri anni abbiamo deciso di rimanere fissi al campeggio San Teodoro "La Cinta", girando le spiagge nelle vicinanze e godendocì un po' (colazione al bar tutte le mattine, pesce fresco, etc...) la vacanza nell'ozio più totale. Devo dire che le due settimane mi hanno aiutato a riprendermi, anche se la quantità di gente era più o meno comparabile con quella ad Agosto in Corsica, l'anno scorso.

        Dato che siamo rimasti fermi ho deciso di scrivere qualche punto sulle cose che mi hanno più colpito, lasciando magari a vacanze future il compito di descrivere le varie località dell'isola.

        1. Giochiamo a nascondino?
        Primo appunto: per trovare le calette in Sardegna bisogna essere sardi. Sì perché i cartelli per arrivarci giocano più che volentieri a nascondino, quasi non volessero essere trovate. Il modo più rapido è, ovviamente, fermarsi a prendere qualcosa in un bar e chiedere ad un oriundo...

        2. Prego prego?
        Non andate in sardegna a giugno. O forse, anche in altri mesi. Non che cel'abbia con i venditori ambulanti, anzi, ma siccome mi scoccia essere scortese (ignorarli), si finisce per dire "No, grazie" anche 30 e più volte al giorno. In due settimane sono 450 "No grazie".
        Mi ha colpito anche il fatto che arrivavano anche nelle calette più nascoste: forse che si faccia prima chiedendo a loro?

        3. Formaggio desiderate?
        Non ero mai stato in Sardegna, e mi ha colpito quando un ragazzo passeggiando per la spiagga ci ha chiesto "Formaggio desiderate ragazzi? (aiò)". All'uscita della spiaggia, non so come, era poi possibile ritirare il prodotto "prenotato".

        4. Tiiiiscali!
        Come ben sapete Tiscali è stata creata ormai anni fa dal sardo Renato Soru. E (quasi) tutti gli esercizi "senza dominio" hanno email, ovviamente, tiscali.it!
        A quanto pare è il nome di un monte, e si trovano pure formaggi con nomi che derivano da esso.

        23 gennaio 2008

        Aggiornamenti vari

        from the updates dept.

        Si lo so, è un po' che manco gli aggiornamenti... ma le cose da fare sono sempre tante, ed appena ho un attimo di tempo preferisco rilassarmi un po'.

        Vediamo.. pensieri vari

        1. finalmente io e Laura abbiamo trovato casa (!!!)
        2. l'oggetto procedente è un apribottiglie (!)
        3. il lavoro ed il dottorato procedono bene, anche se in modo molto intenso
        4. pulchess è stato aggiornato sotto le vacanze di Natale con un bel po' di migliorie, ma lo metterò pubblico soltanto appena avrò ancora un po' di relax
        5. lo stato di non disponibile in Skype sembra non voler dire nulla alla gente, che ti scrive lo stesso
        6. idem su emme-esse-enne
        Alla prossima ;-)

        03 dicembre 2007

        Oggetto misterioso

        from the kore-wa-nan-desu-ka dept.

        Oggetto misterioso... che cos'è?
        What's this?
        これはなんですか (primo tentativo di portare un po' di giapponese sul blog :P)


        Dunque la scheda SD dovrebbe dare indicativamente le dimensioni, per il resto è un oggetto che arriva dalla Tanzania, Africa. E' totalmente in ebano se non per la vite in alto.

        Di cosa si tratta? :-)

        29 novembre 2007

        Maldive 2007: Alimathà Bravo Club

        from the vacation-and-relax dept.

        Ebbebe anche questa vacanza é terminata. Vacanza, sì: io e la mia fidanzata Laura abbiamo trascorso una splendida settimana nell'isola di Alimathà, atollo di Felidhoo, Maldive. L'isola è un villaggio Bravo-Alpitour, tenuto molto molto bene e caratterizzato da un'animazione scarsamente invasiva (leggasi: se vuoi rilassarti puoi farlo). Arriviamo e subito scopriamo la prima regola: sull'isola non si usano calzature; abbiamo così trascorso l'intera vacanza a piedi scalzi.

        Il posto è meraviglioso, ma ciò che ci ha colpito di più è l'innata gentilezza e disponibilità dei maldiviani (e popoli vicinanti), condita da una notevole "voglia di fare" che si traduce in incessante operosità, volta a mantenere questo paradiso terrestre come tale: ogni giorno 130 dipendenti del posto si occupano di mantenere la sabbia pulita, ordinata, di fare manutenzione di vario tipo alle strutture ed alle piante, di preparare le stanze, il cibo, etc. Grazie ai maldiviani (ed agli indiani, i cingalesi ed i bengalesi) quindi l'isola si offre nel suo massimo splendore.

        Abbiamo avuto la possibilità di effettuare un'escursione all'isola dei pescatori, di cui riporto una foto in questo post. Questa visita di mezza giornata permette di capire quale sia la vita quotidiana di un vilaggio maldiviano, incentrata sul lavoro (pesca e turismo) e sulle attività religiose (i maldiviani sono islamici). Al termine del giro turistico-informativo si ha la possibilità di acquistare qualche souvenir, come parei (sia da donna che da uomo), oggettistica, bevande (tra cui la Coca cola alla vaniglia), sigarette, dolciumi, birra maldiviana (succo di limone!). I maldiviani sembrano molto felici, anche se apparentemente possiedono molte meno cose di noi.

        Tornando all'isola di Alimathà, la cucina in stile italiano offre ogni giorno una varietà di antipasti, primi, secondi, dolci e frutta decisamente sovrabbondante: essendo il servizio a buffet è assai facile lasciarsi andare riscoprendo poi al ritorno che i calzoni non ne vogliono più sapere di entrare. Notevole quindi la capacità dei cuochi maldiviani & co di immedesimarsi nei gusti nostrani, anche se spesso lasciano tradire le loro tradizioni lasciandosi prendere la mano abbondando col peperoncino o con l'aglio. La serata del mercoledì inoltre è dedicata totalmente al pesce, quella del venerdì alla cucina locale. Gli altri giorni non sono da meno, comunque: l'abbondanza e la qualità la fanno sempre da padrone.

        Chiudo con un'immagine scattata (vi riporto l'originale, non ho apportato ritocchi) dal nostro bungalow overwater (ovvero una sorta di palafitta): i paesaggi al chiaro di luna ed al tramonto sono veramente incantevoli, e la foto non rende certamente l'effettiva bellezza. Certo ne avrei mill'altre da mostrare, ma preferisco preservarle per chi avrà la pazienza di visionarle direttamente con noi, di persona ;-)