# Claudio Cherubino's blogLife of a Googler

23Jan/093

Have you ever tried looking for "FizzBuzz" on a search engine?

If you do, you'll surely land on this page on Coding Horror, the blog written by Jeff Atwood.

To make a long story short, Jeff states that the vast majority of the developers is unable to write a tiny program that should take no more than 10 minutes to code.

This is the famous FizzBuzz problem:

Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.

You should be outraged now, if you aren't I hope you don't make a living as a developer!

I found out that Facebook also considers FizzBuzz as a good starting test for job applicants. There is a programming puzzles page, where you can find a set of good problems, ranging from blindingly easy to very hard.

The first one is called HoppityHop! and it is just a variation of the good old FizzBuzz:

The program should iterate over all integers (inclusive) from 1 to the number expressed by the input file. For example, if the file contained the number 10, the submission should iterate over 1 through 10. At each integer value in this range, the program may possibly (based upon the following rules) output a single string terminating with a newline.

* For integers that are evenly divisible by three, output the exact string Hoppity, followed by a newline.
* For integers that are evenly divisible by five, output the exact string Hophop, followed by a newline.
* For integers that are evenly divisble by both three and five, do not do any of the above, but instead output the exact string Hop, followed by a newline.

Being a developer myself I couldn't resist writing a solution for this problem, obviously in F#:

```#light

let HoppityHop n =
let printHop x =
match x with
| x when (x % 15 = 0)-> printfn "Hop"
| x when (x % 3 = 0) -> printfn "Hoppity"
| x when (x % 5 = 0) -> printfn "Hophop"
| _ -> ()
[1 .. n] |> Seq.iter printHop
```

I know many of you will feel the urge to suggest a better solution, you're welcome, the comment area is yours to use!

23Jan/091

## A lezione di giapponese

Ieri sera ho assistito gratuitamente ad una lezione introduttiva di lingua giapponese proposta da JIT Services & Solution, un'azienda catanese che si occupa proprio della promozione della cultura nipponica.

Tenere una lezione introduttiva non è per niente facile, non può essere uguale alla prima lezione del vero corso perché sarebbe fin troppo noiosa e si deve invece riuscire a dare una visione d'insieme ampia abbastanza da invogliare i partecipanti ad iscriversi ma esagerare con il rischio di spaventarli e farli quindi desistere.

L'incontro di ieri, durato circa un'ora, si è pertanto incentrato sull'auto-presentazione (dire il proprio nome, la professione, la nazionalità e l'età) e, partendo da questi argomenti, si è divagato un pò sulla struttura della lingua giapponese in generale, in modo da soddisfare le curiosità di noi partecipanti.

In generale la lezione è andata bene, ovviamente sarà necessario seguire il corso (e studiare!) per padroneggiare anche solo i rudimenti di una lingua così diversa dalla nostra.

Se qualcuno fosse interessato ad unirsi al prossimo corso per principianti lo invito a visitare il sito di JIT Services & Solutions e non esitare a contattare i responsabili per qualunque chiarimento, con me sono stati disponibili e praticamente immediati nel rispondere.

Prima che me lo chiediate, ci tengo a chiarire che io non sono in nessun modo legato a questa azienda e se vi sembra che possa essere di parte nei miei giudizi, sappiate che è soltanto perché loro sono stati bravi ad accattivarsi le mie simpatie e quelle degli altri partecipanti al corso di ieri.

Alla fine il passaparola da parte dei clienti soddisfatti non è il modo migliore per promuoversi? Peccato che siano ben poche le aziende delle nostre parti che lo capiscano...

14Jan/090

## Il codec miracoloso

Sapete come funziona la compressione MP3?

A grandi linee potremmo dire che per trasformare una traccia audio in questo formato si eliminano le informazioni non essenziali (ad es. quelle che non potrebbero essere udite dall'orecchio umano) e poi si utilizzano degli algoritmi standard di compressione dati.

La cosa importante da sottolineare è che per ottenere quegli ottimi risultati che sicuramente conoscerete, alcune informazioni vengono eliminate e si parla quindi di compressione "lossy" (con perdite).

Esistono degli algoritmi senza perdite di informazioni ("lossless"), ma ovviamente questi sono molto meno efficaci nel ridurre la dimensione del file originale.

Anche il formato DIVX è di tipo lossy ed è per questo che si riesce a comprimere un'ora di filmato con una qualità abbastanza buona in qualche centinaio di Mb.

Vi starete chiedendo perché vi racconto tutto ciò.

Il fatto è che molti "giornalisti" non hanno idea di quello che scrivono e riportano semplicemente qualunque notizia gli passi per le mani, generando obbrobri come questo articolo del Mattino:

http://www.ilmattino.it/articolo.php?id=41864&sez=SCIENZA

Secondo l'articolo, una ditta di Napoli avrebbe ricevuto ben 5 milioni di Euro dal Ministero per lo Sviluppo Economico per sviluppare un codec miracoloso, che permetterebbe di stipare 20 minuti di filmato "in qualità DVD" in un floppy da 1.44 Mb!

Miracolo? Se la notizia fosse vera sicuramente lo sarebbe, peccato che sia assolutamente impossibile, a meno di ridurre il video ad una dimensione di pochi pixel e con una qualità infima ma non credo che sia questa la "qualità DVD" di cui si parla.

Ovviamente l'azienda è dovuta correre a ripari e sulla home page del sito adesso appare una precisazione da parte del presidente il quale spiega che la durata del filmato era 20 secondi e non 20 minuti come riportano i giornali.

Chissà se il giornalista in questione ha notato l'errore...

9Jan/090

## Il sesso dei blog…

...o meglio dei loro autori (evviva i titoli civetta!).

Sapevate che uomini e donne scrivono in maniera differente e che è possibile dedurre il sesso di una persona solo leggendo ciò che questa scrive?

Pare che sia proprio la verità e per dimostrarlo è stato lanciato il sito GenderAnalyzer, che è in grado di analizzare i contenuti di un blog/sito e scoprire il sesso dell'autore.

Io ho fatto una serie di tentativi e GenderAnalyzer non ha mai sbagliato, rispondendo sempre in maniera esatta e con un buon grado di confidenza.

L'unica limitazione, almeno per adesso, è che sono supportati solo blog scritti in lingua inglese e quindi ho fatto i test con FSharp.it (che è mio ed è stato attribuito ad un uomo con una probabilità dell'86%), Sara Ford's WebLog (donna al 99%) e Joel on Software (uomo al 75%).

Alla fine dell'analisi GenderAnalyzer permette anche di segnalare se la deduzione è stata corretta, consentendo al sistema di migliorare continuamente la propria capacità di riconoscimento.

Chi mi spiega quali sono le differenze nella scrittura fra uomo e donna?

5Jan/090

## L’anno che verrà

E così il 2008 si è concluso e con esso anche il secondo anno di vita di questo blog, è quindi di nuovo il momento di stilare un bilancio.

Guardando i numeri, la situazione non è proprio rosea. La quantità di post pubblicati è praticamente dimezzata rispetto all'anno precedente, però ho delle ottime scuse.

Nel 2008 infatti ho lanciato un secondo blog, cambiato lavoro, traslocato e, soprattutto, mi sono sposato!

Nonostante il calo dei contenuti, il numero di visite è raddoppiato e lo stesso ha fatto il numero di click sui banner pubblicitari, tanto che dopo solo un anno e mezzo di attività ho ricevuto ben 100 dollari da Google!

E pensare che ho anche avuto la fortuna di beccare il momento in cui il rapporto Euro/Dollaro era enormemente a favore del primo, trasformando i 100 Dollari in pochi Euro.

E che mi dite del vostro 2008?
Siete soddisfatti o sperate in un rilancio nel 2009 che è appena iniziato?