Terça-feira, 1 de Maio de 2012
Topography of Terror

Today I visited the Topography of Terror exhibition in Berlin. I realized that Humankind's refusal to acknowledge itself as a one and only race, after the atrocities perpetrated during the Second World War, is the biggest failure of our collective experience. This incapacity to recognize other humans of different countries/religions/colours as peers will eventually allow such atrocities to be repeated in the future, and will ultimately be the cause of our species' demise.

Never forget.

Sexta-feira, 25 de Novembro de 2011
Elevator Pitch: Proposta de um Modelo Semântico para o Sapo Campus Escolas

Sexta-feira, 7 de Outubro de 2011

To better grasp the problems I’ll face while studying the problem at hand I wrote a small program that interprets simple assumptions like {’bill’, ‘follows’, ‘steve’} or {’sima’, ‘belongs_to’, ‘!mcmm’ } (where the ! denotes a group) and whenever a user produces an event, tries to notify the interested parties.

I’m attaching the code to this post, but right now, here’s what it does. We start by stating a couple of truths...

$D->assume ('lpedro', 'teaches', '!seminario');
$D->assume ('nsimaria', 'belongs_to', '!seminario');
$D->assume ('flacerda', 'belongs_to', '!seminario');
$D->assume ('rcosta', 'belongs_to', '!seminario');
$D->assume ('drei', 'belongs_to', '!seminario');
$D->assume ('noliveira', 'belongs_to', '!seminario');
$D->assume ('csantos', 'follows', 'lpedro');
$D->assume ('csantos', 'follows', 'nsimaria');

$D->assume ('csantos', 'is_colleague_of', 'lpedro');
$D->assume ('lpedro', 'follows', 'csantos');

...then we trigger some actions, to see who the program decides to notify for each type of action, and for each case:

$D->decide ('lpedro', 'asks', 'há dúvidas?');
$D->decide ('nsimaria', 'questions', 'qual é a matéria?');
$D->decide ('nsimaria', 'says', 'the beat starts here.');
$D->decide ('csantos', 'says', 'em aula...');

The output for each decision is this:

lpedro asks "há dúvidas?"
nsimaria notified with "há dúvidas?"

flacerda notified with "há dúvidas?"
rcosta notified with "há dúvidas?"
drei notified with "há dúvidas?"
noliveira notified with "há dúvidas?"

nsimaria questions "qual é a matéria?"
nsimaria notified with "qual é a matéria?"
flacerda notified with "qual é a matéria?"
rcosta notified with "qual é a matéria?"
drei notified with "qual é a matéria?"
noliveira notified with "qual é a matéria?"

nsimaria says "the beat starts here."
csantos notified with "the beat starts here."

csantos says "em aula..."
lpedro notified with "em aula..."
lpedro notified with "em aula..."

At first glance, it seems that the program is working coherently, but if you look closer, you’ll see that some people are being notified twice, others are being notified of their own messages, and others aren’t notified at all (lpedro should have been notified by what nsimaria questions, as the first is the teacher of the latter’s class).

Anyway, the important thing here isn’t the program, its the concept behind it. According to O’Reilly’s Programming the Semantic Web, to implement this kind of logic, one good way to do it is to implement a triplestore. So that’s what I tried to do.

The theory behind it is fairly simple: you start by storing each statement (a statement is a subject-object-predicate triplet) three times: indexing it by subject, indexing it by object, and indexing it by predicate, leaving you with a graph-like structure that you can then analyze. But when you start doing it, some technical and coherence issues arise. So I think I’ll start trying out some triplestore libs I discovered on the intertubes, either to use them, or to learn from them. As its been already said in class, it wouldn't be wise to get distracted on reinventing the wheel, when what matters is the car.

Check out the code (not commented, sorry, but pretty readable): Decider.zip

Quarta-feira, 28 de Setembro de 2011
First Meeting

On the first formal (yet improvised) meeting with my thesis advisors, Professors Luis Pedro and Carlos Santos on September 20th, we discussed some ideas for what I intended to do on my MCMM thesis.

I prepared a low-budget keynote that you can see below (meaning I wrote something on a piece of paper) that explained the path I intended to follow on this early stage.

But first, some context on what we’re already doing at labs.sapo.pt/ua. We are currently working on Sapo Campus Escolas (SCE), a new and improved version of Sapo Campus UA for the general public. I am developing the news stream and notifications layer, which is that piece of the system that allows a user to see what has happened on the platform recently. Much like Twitter’s timeline or Facebook’s newsfeed, each user’s timeline is different depending on who he follows, or what schools he belongs to. If you want to find out more on how we’re doing this, read this post here (portuguese only).

This sets the mood for the first low-budget keynote’s slide, which is a simple model of the system that we have been currently working on:


Slide 1


Basically, it says that we have a wide set of notices (platform contents and events), divided on two big sub-sets: human content (articles, videos and photos generated by the users) and feed contents (imported from external sources). With our current system, we can easily retrieve the sub-set of notices pertaining the user. We can also retrieve a sub-set of this sub-set. For instance, all “published articles pertaining to user X that where published by another user”.

So this is done, and its working, but is also flawed. Not technically, but conceptually. And solely because of SCE’s main purpose which is to bring to portuguese schools a social platform that is engaging to students and teachers, and that improves their productivity and learning levels. Let’s assume I’m a highschool student using SCE. I’m very likely to follow some of my classmates, a couple of my teachers, and even people on other schools. But being a rebel teenager, there are lots of people that I don’t want to follow, specially that unfair teacher that gave me a C when I thought I deserved a B+. But even if I don’t follow him, the SCE platform should notify me whenever he posts any content that concerns my class.

This brings us to our second slide...


Slide 2

...which, basically, states two things:

· There can be no urgency without semantics. Which means that we cannot design a system that filters or ranks information without having a set of semantic rules that can be applied to all pieces of information on that system.

· User semantics complements content semantics. The urgency degree of a content pertaining a user X can only be asserted if we also apply semantic rules between the users. We must extend the follower/non follower relation between users to a more complex relation system, in order to understand the urgency of any given piece of content to any given user. Also, the system would greatly benefit if we extended the post/update/delete content actions to a wider set of actions (asked, warned, replied, assigned, etc).

What all this means is that, ideally, being an highschool student, I should be notified when someone in my class asks a teacher a question on the platform, even if I don’t follow any of them. For this to work, the inter-user relations (which is NOT the same thing as user hierarchy) should somehow be explicitly defined on the platform, allowing it to make decisions on what’s a content’s urgency degree for any user, depending on who published it, with what intent, directed to whom, and so on.

All this makes us quickly identify three different urgency degrees (there are certainly more):

· Something happened publicly - the user is probably not even notified, maybe he’ll see the notice on his school’s timeline or searching the platform, or maybe not.

· Someone I follow did something - the user is notified, and will see the notice on his timeline.

· Someone I don’t follow, but that has a special relation with me (teacher, school’s principal) did something on a context that pertains me - the user is notified, probably on a more explicit way than usual, and will see the notice on his timeline.

 There is a lot of research and analysis to be done before trying to define a model for this behaviour, and I specially have to be really careful to not let this thing get out of hand, because when you start talking about semantics, you jump right to AI, and what could be done in a year becomes a life’s work. And we won’t have any of that, thank you.


P.S: There are also a third and fourth slides, but they don’t really add anything to this post. Check them out if you feel like it.

Sexta-feira, 2 de Setembro de 2011
Review of Tom Stonier’s Information and Meaning: an Evolutionary Perspective


A couple of weeks ago, I went to the library to find some books that would get me started on my thesis about the urgency of information. I had it more or less clear that the obvious place to start would be by understanding Shannon’s Information Theory. So I read Shannon’s original article, and suddenly remembered that I had flunked calculus, concluding that maybe it would be better if someone explained Shannon’s theory to me, hence Stonier’s book.

I really couldn’t have been luckier on my first pick. As it says on the back of it: “Information and Meaning is the third book in a trilogy exploring the nature of information, intelligence and meaning” being this volume solely dedicated to the latter concept: meaning. I had hit the jackpot, as urgency, at our human level of perception, has everything to do with meaning and, of course, context.

Stonier starts his book with a “Philosophical Preface” questioning the current physics model that states that the Universe is made of mass and energy and suggests that: “Information, like energy, is conceived as a basic property of the universe; and like energy, which is traditionally defined operationally as possessing the capacity to perform work, so information is defied operationally as possessing the capacity to organize a system”. So there you go. Right there, off the bat, questioning the laws of physics.

Gradually, he introduces, defines (presenting a lot of different authors theories), and extensively explains concepts that gradually build on themselves, starting with the nature of information, moving on to information processing systems and the nature of intelligence, confronts biological and mechanical (and electronic) intelligence, details the origins of human speech and ends up with a theoretic model for how neurons create thought. Stonier’s writing is fluid, and has a great sense of the basic points that you have to get across to explain the fundamental concepts of a given theory. 

Although this book is not new (1997) its a thorough introduction to the advanced theories behind the study of information and communication, and even though I won’t use half the notes I took on my thesis, it was well worth the reading.


Terça-feira, 17 de Maio de 2011
Monografia Aphex Twin
Open publication - Free publishing - More aphex twin

Sábado, 2 de Abril de 2011
Processing + JMyron + OSC

 Processing camera transformation controlled through a mobile phone with OSC.

Terça-feira, 8 de Março de 2011
VJing with Processing and Arduino

 A small test with two potentiometers (one for sphere size and one for sphere colour), and a touch sensor (sphere opacity), concluding that Processing and Arduino are great tools for VJing. 

Quinta-feira, 3 de Março de 2011
Nunchuk Norris

 Um primeiro hello world com Arduino, Processing e um Nunchuk da Wii.


Quinta-feira, 24 de Fevereiro de 2011
jMyron e Processing

Andei a brincar com o Processing antes de pôr mãos à obra para o projecto de NJI + MAA + DCM do MCMM. Resultado:

.mais sobre mim
.pesquisar neste blog
.Maio 2012






.posts recentes

. Topography of Terror

. Elevator Pitch: Proposta ...

. Triplestores

. First Meeting

. Review of Tom Stonier’s I...

. Monografia Aphex Twin

. Processing + JMyron + OSC

. VJing with Processing and...

. Nunchuk Norris

. jMyron e Processing


. Maio 2012

. Novembro 2011

. Outubro 2011

. Setembro 2011

. Maio 2011

. Abril 2011

. Março 2011

. Fevereiro 2011

. Janeiro 2011

. Dezembro 2010

. Outubro 2010


. todas as tags


. participe neste blog

blogs SAPO
.subscrever feeds