Tuesday, 27 April 2010

Just for fun: obfuscated hello world, in C

main(int argc,char*argv[]){memset(&argc,0,1);char*s[11]={0,-3,4,4,7,-40,15,7,10,4,-4};while(argc<11)printf("%c",s[argc++]+0x48);}

What could this code do? =)

The reason behind this code is here.

Thursday, 22 April 2010

IE - object does not support property or method

Have you ever experienced the error message I wrote in the title? Are you hitting the walls with your head wondering what the frak it means? This post might be useful to you!

I wrote a page that worked seemlessly inside every know browser but Internet Explorers. Well, nothing new under the sun, web developers' work consists mainly in making things run inside that shit.

Anyway, I was surprised by the nature of the error message: "object does not support property or method", raised during a getElementById call:

foo = document.getElementById("foo");

Element "foo" was a DIV placed in the middle of the page.

So I asked to myself: "what is IE trying to say?". If it really meant that a method wasn't supported, therefore it had to be the getElementById() function, because no other method was involved. But I'm pretty sure that document object HAS a getElementById method. 

The other possibility is the lack of support for the property... but which one? The foo variable?? Yay man! The correct answer is this: you cannot give a variable the name of an element's id. By renaming the variable everything works correctly.

baz = document.getElementById("foo");

Here we go. Do you think this is nonsense? Well, so do I. 

  • First, there's no reason why an HTML element should interfere with javascript variables. 
  • Second, the error raised is totally incomprehensible and misleading. 
  • Third, it's incredible that in 8 versions of IE Microsoft did not think of fixing this.

Saturday, 17 April 2010

Un percettrone per il portalone


Da un po' di tempo a questa parte mi frulla l'idea di rendere in qualche modo "intelligente" le generazione del primo piano del portale www.unimib.it.

Fresco del corso di machine learning del prof. Mauri ho deciso di tentare l'implementazione di un software in grado di imparare dagli esempi - storici e futuri - la mentalità con cui realizziamo giornalmente il primo piano, arrivando un giorno a realizzarlo in maniera automatica. A.N.N.N.E, questo il nome del programma, attualmente sfrutta una semplice rete neurale feed-forward. Nell'esperimento cui si riferisce lo screenshot ha avuto in pasto circa 1700 esempi, tutti classificati in base ad una manciata di attributi.

Gli esempi sono stati sufficienti per avere circa il 22% di errori di classificazione; non è male ma temo che il problema, più che della rete in sè, sia nella limitatezza del modello che non tiene in alcun modo conto della componente temporale.

Può capitare infatti che qualche notizia/evento importante non finisca nel primo piano per banali ragioni di congestionamento. Inoltre, gli eventi è più probabile che finiscano in primo piano nei giorni immediatamente precedenti l'evento stesso. Per le notizie vale l'opposto: più tempo è trascorso e più è probabile la discesa negli avvisi normali. Entrambi gli aspetti non sono considerati al momento, e sicuramente influiscono negativamente nel risultato.

L'inizio è comunque stimolante.