Archivi per Giugno 2008

Pensierino del giorno

09-06-2008 20:55:15 CEST Postato in: gente di un certo livello, post a caso | Commenta

Per la legge del contrappasso, 3 pere equivalgono grossomodo a 3 mesi di emorroidi dolorose e persistenti per Donadoni.

Firefox download day

18-06-2008 17:34:11 CEST Postato in: gente di un certo livello, nerdate | Commenta

<luxid> oggi è il download day! aiuta firefox ad entrare nel guinnes dei primati con il massimo numero di download in 24 ore! http://www.spreadfirefox.com/it/worldrecord entro le 20 di oggi

E' da ieri che Azzurra è piena di questa immondizia - e non oso immaginare cosa stiano combinando i soliti maniaci delle catene su MSN.

Se ormai l'unico modo per pubblicizzare l'opensource è armare orde di spammer deficienti, allora abbiamo sbagliato su tutta la linea e meritiamo di essere presi per il culo dai troll di PI.

Il rosik dell'anno

17-06-2008 22:37:52 CEST Postato in: gente di un certo livello, real life | Commenta

Le sélectionneur de la France Raymond Domenech a fustigé l'arbitrage ce soir après France-Italie (0-2), estimant que le directeur de jeu, Lubos Michel, avait "carrément donné le match aux Italiens" en sifflant penalty et en excluant Eric Abidal à la 24e minute de jeu.

FNV-0 in Python

16-06-2008 23:09:48 CEST Postato in: nerdate, python | Commenta

Piccolo code snippet per estimatori del pitone.

def fnv_hash(data):
   """
    Returns a 32bit FNV-0 hash of the given string.

    >>> fnv_hash('3dcb910fb26bafb97e4a9660493afd9704536743')
    -1588890617L
    >>> fnv_hash('deb114355f8b912c4f7c7f0aceac7adceaa5db10')
    317390073L
    """
   h = long(0)
   for i in xrange(len(data)):
      h += (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24)
      h ^= ord(data[i])
   # Everything after the 32th bit is meaningless
   h &= 0xffffffffL
   # Perform sign extension
   if h & 0x80000000L:
       h = -(~(h - 1) & 0xffffffffL)
   return h

I compagni di merende che masticano C avranno sicuramente storto il naso vedendo sia l'AND che l'estensione di segno fatta in quel modo becero, quindi precisiamo:

  • Python promuove automaticamente gli interi alla storage class superiore (ANCHE oltre i 64 bit) per evitare l'overflow, quindi solo i 32 bit inferiori contengono valori sensati;
  • per quanto appena esposto, l'estensione di segno non può essere effettuata con un banale OR (che promuoverebbe l'intero per conservare il segno!) ma è necessario fare ricorso alla definizione scolastica di complemento a 2.

Singhiozzo

04-06-2008 22:46:16 CEST Postato in: rants | Commenta

VAFFANCULO

Il senso della vita

02-06-2008 19:59:33 CEST Postato in: real life | Commenta

Ridere! L'importante nella vita è ridere sempre!
-- Raffaello Mascetti

Quando leggo certe cose...

24-06-2008 19:14:50 CEST Postato in: gente di un certo livello, post a caso | Commenta

...mi cascano i coglioni per terra:

Massima stima per Luca Toni, e grazie ai ragazzi della nazionale.
Un giocatore non si giudica dall'ultima partita
<cut>
Toni è uno dei migliori centravanti al mondo; come è stato giustamente notato, giocare con Klose e Ribery sulle ali non è proprio come dover tenere palla da soli mentre un centrocampo stanco cerca di salire.
<cut>
Comunque la nostra nazionale è stata battuta ai rigori, non durante i 90 minuti.
Saremo stanchi, ma dannatamente coriacei.

Ora, dico io:

  1. come cazzo si fa a difendere Luca Toni che ha fatto solo lo spaventapasseri per quattro partite?
  2. come cazzo si fa a vantarsi di aver fatto 120 minuti di puro catenaccio all'italiana sperando in un miracolo di Buffon?

Vi prego, ditemelo, ché io non so spiegarmelo...

The pasta theory of design

11-06-2008 15:50:58 CEST Postato in: nerdate, python | Commenta
  • Spaghetti: each piece of code interacts with every other piece of code [can be implemented with GOTO, functions, objects]
  • Lasagna: code has carefully designed layers. Each layer is, in theory independent. However low-level layers usually cannot be used easily, and high-level layers depend on low-level layers.
  • Ravioli: each part of the code is useful by itself. There is a thin layer of interfaces between various parts [the sauce]. Each part can be used elsewhere.
  • ...but sometimes, the user just wants to order Ravioli, so one coarse-grain easily definable layer of abstraction on top of it all can be useful.

(from Twisted Matrix documentation)