Mar 01 2010

I’ll speak at “Better Software” 2010

Category: me,presentationgiordano scalzo @ 2:38 pm

Better Software 2010
Better Software is a quite new IT Conference, mainly addressed to non technologic parts of making software.
This year I’ll give a speech about passion, enthusiam and pride to be a developer, and the how that can be used by the companies to make a lot of money ;-) . See you there!

Technorati Tags: ,

Tags: ,


Feb 06 2010

Milano XpUg January Coding Dojo

Category: java,presentationgiordano scalzo @ 3:04 pm

Lately, I’m more and more involved in Milan XpUg meetings; last week I had the pleasure to attend my first Coding Dojo.
A Coding Dojo is a meeting where some people practice Tdd and try to learn new things, without schedule and deadline pressure.
As introduction I prepared a little presentation, mainly with the aim to clarify the “Ocp Way” to do katas, as conceived by Matteo Vaccari in his blog:

We had a lot of fun, and we are committed to arrange another Dojo, at the end of February.
If someone is interested to practice more, here you can find the text of the kata we practiced and here the code we produced.

Technorati Tags: , ,

Tags: , ,


Jan 19 2010

Objective-C for busy Java Developers 1: Calling methods

Category: java,objective-c,tutorialgiordano scalzo @ 2:34 pm

At last I got a wonderful MacBookPro, so I started to study Objective-C to develop some cool Iphone applications.

Objective-C is a language derived from C, to which it adds some modern features as ObjectOriented or Smalltalk-style messaging.

As far I’m a complete newbie, I’m trying to learn it recalling some well know patterns and scenarios as made in Java , following this good tutorial.

Objective-C has a little strange way to call method, that could be disorienting at first glance:

Java:

object.method;
object.methodWithInput(input);

output = object.methodWithOutput();
output = object.methodWithInputAndOutput(Object input);

Objective-C:

[object method];
[object methodWithInput:input];

output = [object methodWithOutput];
output = [object methodWithInputAndOutput:input];

Obviously, it’s possible to call methods of class, instead of instance:

Java:

Object oString = new String();

Objective-C:

id oString = [NSString string];

The

id

refers any kind of object, so it’s little different from Java counterpart.
Better code is:

Java:

String sString = new String();

Objective-C:

NSString* sString = [NSString string];

With this style, it’s a little cumbersome write nested calls:

Java:

calculator.add(numbers.split());

Objective-C:

[calculator add:[numbers split]];

This syntax disencourage the nesting of more than one method.

Some methods take multiple input arguments, Objective-C deals with that allowing split method names:

Java:

boolean writeToFile(String path, boolean useAuxiliaryFile)

boolean result = myData.writeToFile("/tmp/log.txt", false);

Objective-C:

-(BOOL)writeToFile:(NSString *)path withAuxFile:(BOOL)useAuxiliaryFile;

BOOL result = [myData writeToFile:@"/tmp/log.txt" withAuxFile:NO];

Objective-C has properties built in, in Java you need to implement getters and setters:

Java:

photo.setCaption("Day at the Beach");
output = photo.getCaption();

Objective-C:

photo.caption = @"Day at the Beach";
output = photo.caption;

A property should be marked

@property

in declaration and

@synthesize

in implementation.

To create an object, the function

alloc

should be called and then an init method should be called:

Java:

object = new ComplexObject(1.0f);

Objective-C:

object = [[ComplexObject alloc] initWithFloat:1.0f];

When working in an environment without garbage collector, any object created with alloc should be released:

Objective-C:

[object release];

To complete this introductory post, take a look at this ObjectiveC CheatSheet: it contains all the most used constructs needed to start to code for Mac.

Technorati Tags: , ,

Tags: , ,


Dec 23 2009

What I learned doing a Katacast

Category: me,presentationgiordano scalzo @ 10:32 am

As said before, last week at Milan Xpug meeting, we organized a kata evening, with the same challenge done with different language.
During the practice to reach a quite well solution, I publicized my attempts through Twiiter gaining attention from Corey Haines hinself who asked me if I was interested to appear on katakasts.com as a guest: wow, I felt like a teenage U2 fan who, while playing in garage, receive a call from The Edge asked him if interest to play some concerts with them!

Anyway, I tried to record a good enough kata, that means without compilation error, in resonable time and typed in smooth way.
That could sound as a straightforward thing to do (I thought it that way), but I invite everyone tho give it a try: I did almost 10 complete recording, not counting all false starts or big mistakes near the end of kata.
I noticed how often I did errors in first steps, I think while I’m not into the “flow”, or at the end, when I start to relax.

Anyway, the only way to perform a Kata in a acceptable time for katakasts.com (less than 15 minutes) is to master the editor of choice.
I use vim for kata, but I’m far to be ‘fluent’ on it! Anyway, to save precious time, I learned a few usefu thricks.

First of all, we need to forget to navigate the text throught 'hjkl' or arrows keys, and use the line numbers features of vim.
With this command:

:set number

every line will appear with its number.
Almost every command of vim should be applied to a range of rows.
For example with this:

:20,30 co 35

we copy the block from line 20 to line 30 to line 35.
Or with this:

:20,30s/java/scala/g

we change word java with scala in previous code.
A little variant is

:20,30 co .

that copies the block at the current cursor position.

Anyway, you can enjoy these and other basic vim tricks in my Katacast:

KataCast: StringCalculator in Scala from giordano scalzo on Vimeo.

Technorati Tags: , ,

Tags: , ,


Dec 17 2009

StringCalculator Kata at Xpug

Category: agile,bddgiordano scalzo @ 2:18 pm

Last evening the wonderful Xpug Milano hosted a Kata Meeting: three people, three language, one problem, one pomodoro each!

After the launch of http://katacasts.com/, this kind of practice has begun to spread around the world.

As far as I know, that was one of the firsts meeting held in Italy and it has been exciting (and a little scaring) to be one of the performer.

The simple problem to solve was the StringCalculator kata, proposed by Roy Osherove as simple exercise to repeat to assimilate Tdd.

Luca Marrocco performed the kata in Ruby, Raffaele Salmaso a Python version, the benevolent dictator of Xpug Milano a backup kata in Erlang, and yours truly a Scala version.

Below the live recording of my session, with errors, mistakes and pauses made during the execution:

StringCalculator in Scala Kata live at Xpug Milano from giordano scalzo on Vimeo.

Any kind of suggestion about the solution, the process, the way I performed are absolutely welcome.

Technorati Tags: , ,

Tags: , ,


Dec 04 2009

An evening at Xpug: Bdd presentation

Category: agile,bdd,me,presentationgiordano scalzo @ 10:24 pm

Last evening, I gave a speech about Bdd, at the wonderful Milan XPUg.
The meeting has been very pleasant: I believe the members are among the most brilliant mind I know.

I could admit I didn’t know very well Bdd, but following the good old advice “teach to learn“, I got a triple win:
I taught something new to Xpug guys, I learned a lot of new things and I improved my presentation skill.

Moreover, after a couple of hours after I put online my slides, the Slideshare team promoted my presentation in home page as features presentation: what a great result for a weekend presentation hack!

Technorati Tags: , ,

Tags: , ,


Nov 30 2009

Astonishing

Category: presentationgiordano scalzo @ 10:27 am

I believe Ted is a place full of wonderful and inspiring things.
Take a look to this:

Technorati Tags: ,

Tags: ,


Nov 18 2009

Italian Agile Day is coming

Category: agile,megiordano scalzo @ 4:23 pm


It’s near the end of November, it’s Italian Agile Day time.
As each year, it’s the time to gather all Italian Agile Practitioners, or wannabe-Agile, for a community day.
The site is the nice Hotel Savoia Regency in Bologna.
As usual, the timetable is very interesting, and I still haven’t decided what conferences attend: I’ll float around and I’ll make gut decisions.

See you, there!

Technorati Tags: ,

Tags: ,


Nov 12 2009

Using Google Wave as learning tool

Category: rubygiordano scalzo @ 2:53 pm


Google Wave is live since early October, but still it seems “empty”: it lacks functionalities, users and goals.

After Wave was launched, first Twitter-sphere was full of “I need a Wave account!!! then of “I’m on Wave, what can I do?”.
Maybe Google Wave is so new that is difficult to understand, or maybe is a big flop: only time will give us an answer.

Anyway, something is moving.
Satish Talim, of Rubylearning fame, just started an experimental course to JRuby using Google Wave.

Currently only two chapters have been published, and the course seems not much different from an email or web based course; neverthless I think it’s an interesting experiment and I’m sure it will be more interactive when the arguments will be less introductory.

Technorati Tags: , ,

Tags: , ,


Nov 10 2009

My brand new Business Cards

Category: megiordano scalzo @ 2:35 pm

Business Cards
Last week I realized I needed some personal business cards; so I decided to design something different to be printed by Moo.
And yesterday they arrived.

They are very simple: in front, my name, blog and email addresses, the ideogram for “kaizen” (continuous improvement), and a Turkish proverb I like very much “No matter how far you have gone on the wrong road, turn back”; in back a Google-like page with others web places I live.
They lack my telephone number, in part because I own only work telephone and those business cards are about the “other” me, and in part because I feel telephone so ’90s ;-)
What do you think? Do you like the layout?

Technorati Tags:

Tags:


« Previous PageNext Page »