Xurrency en TV

30 junio 2007 at 18:10

Fecha Filed in Internet, Computers, Video
Tags Tags: ,

Aunque lo desconocía, hace unas semanas uno de mis servicios, Xurrency, fue mencionado en un programa de Antena 3 Neox llamado Interneox. Hacen una referencia a la utilización de Xurrency, mostrando lo sencillo que es usarlo.


Cádiz en la distancia

29 junio 2007 at 00:09

Fecha Filed in Carnaval, Andalusia
Tags Tags: , , ,


Te siento tanto Cádiz en la distancia
que es mucho tiempo lejos sin tenerte
y si dos lagrimitas
mis dos ojitos vierten
son dos penas penitas
tan grandes como fuentes
llorando por mi Tacita
mi Cádiz simplemente

Simplemente Cádiz, 2002

Evento Blog España 2007

27 junio 2007 at 16:46

Fecha Filed in Events, Video, Blogs
Tags Tags: ,

Evento BlogHace unos minutos se ha lanzado oficialmente la fecha de celebración de la segunda edición de Evento Blog España. Tal evento tendrá lugar de nuevo en la capital andaluza, durante los días 23, 24 y 25 de Noviembre. Cómo aliciente de este año, se trataran temas como el éxito del microblogging, la emergente televisión online o la influencia que ha adoptado el fenómeno Second Life, a parte de interesantes conferencias y mesas redondas que abarcarán diversos temas relacionados con la blogosfera. Por otro lado, esta nueva edición hará hincapié en una mesa especial de proyectos, donde se permitirá dar a conocer nuevas aplicaciones web y startups de emprendedores nacionales.

La semana pasada se grabó un vídeo por las calles de Sevilla (donde aparecemos varios) para promocionar Evento Blog 2007. El tag ebe07 ya está rulando. No faltéis.


Más información | Evento Blog España

Apps Mania abre sus puertas

26 junio 2007 at 15:09

Fecha Filed in Internet, Bussiness 2.0
Tags Tags: ,

Apps ManiaBajo el lema Ars longa, vita brevis (Arte largo, vida breve), se presenta Apps Mania. Se trata de un showcase de aplicaciones web al más puro estilo de CSS Mania. Bajo la producción de Blogs Media, un equipo de lujo detrás, busca convertirse en un sitio de referencia para emprendedores y desarrolladores de aplicaciones web. Tal como dicen en el anuncio del lanzamiento en su web corporativa, aunque hayan sitios similares, Apps Mania incluye nuevos datos inéditos como descripción, elevator pitch, URL Demo, URL API, tags, …

Solo me queda felicitar al equipo de Blogs Media por este magnífico trabajo, y desearles toda la suerte del mundo de cara al futuro.

You're just too good to be true

26 junio 2007 at 04:31

Fecha Filed in Personal
Tags Tags:

Alex y Alfonso

You’re just too good to be true.
Can’t take my eyes off you.
You’d be like Heaven to touch.
I wanna hold you so much.
At long last love has arrived
And I thank God I’m alive.

Gracias

26 junio 2007 at 04:00

Fecha Filed in Personal

Aunque en los últimos meses no he escrito básicamente nada, tal vez porque no me haya venido inspiración, o porque me haya venido inspiración pero no ganas (que puede ser); sí que he recibido muchos mails y comentarios apoyando mis letras, bien porque les hayan gustado o bien porque en algunas ocasiones simplemente se sienten identificados. A mi me resulta gratificante como una persona puede sentirse identificada, despertarle algún suspiro o incluso sacarle alguna lagrimilla. Este comentario que me gustó mucho lo he sacado de aquí.


He caído en este blog de la manera más tonta (estoy estudiando y necesitaba buscar una cosa en google). Hace más de una hora que no consigo despegarme del ordenador… Desde luego este hombre es un artista… No sé en que parte del blog he leído que hay cosas que prefieres decirlas con letrillas; yo soy de las que pensaba al revés, que hay cosas imposibles de decir con palabras… hasta ahora. De todo lo mucho (o poco, según se mire) que he estado viendo, me quedo con la pasión por Cádiz, con sus Carnavales, con la Caleta, con el modo en que expresas tantas emociones y por supuesto… con este texto de arriba. Muchas gracias Alfonso.

How I explained REST to my wife

26 junio 2007 at 03:42

Fecha Filed in Internet, Computers
Tags Tags: ,

Esta la versión original del artículo de Ryan Tomayko titulado How I explained REST to my wife. Aunque se podría extender a otros temas (e incluso a otras disciplinas), es un ejemplo muy bueno para explicar algo a un dummie, que generalmente (sin ofender) podrían ser nuestras propias mujeres.

Wife: Who is Roy Fielding?

Ryan: Some guy. He’s smart.

Wife: Oh? What did he do?

Ryan: He helped write the first web servers and then did a ton of research explaining why the web works the way it does. His name is on the specification for the protocol that is used to get pages from servers to your browser.

Wife: How does it work?

Ryan: The web?

Wife: Yeah.

Ryan: Hmm. Well, it’s all pretty amazing really. And the funny thing is that it’s all very undervalued. The protocol I was talking about, HTTP, it’s capable of all sorts of neat stuff that people ignore for some reason.

Wife: You mean http like the beginning of what I type into the browser?

Ryan: Yeah. That first part tells the browser what protocol to use. That stuff you type in there is one of the most important breakthroughs in the history of computing.

Wife: Why?

Ryan: Because it is capable of describing the location of something anywhere in the world from anywhere in the world. It’s the foundation of the web. You can think of it like GPS coordinates for knowledge and information.

Wife: For web pages?

Ryan: For anything really. That guy, Roy Fielding, he talks a lot about what those things point to in that research I was talking about. The web is built on an architectural style called REST. REST provides a definition of a resource, which is what those things point to.

Wife: A web page is a resource?

Ryan: Kind of. A web page is a representation of a resource. Resources are just concepts. URLs–those things that you type into the browser…

Wife: I know what a URL is…

Ryan: Oh, right. Those tell the browser that there’s a concept somewhere. A browser can then go ask for a specific representation of the concept. Specifically, the browser asks for the web page representation of the concept.

Wife: What other kinds of representations are there?

Ryan: Actually, representations is one of these things that doesn’t get used a lot. In most cases, a resource has only a single representation. But we’re hoping that representations will be used more in the future because there’s a bunch of new formats popping up all over the place.

Wife: Like what?

Ryan: Hmm. Well, there’s this concept that people are calling Web Services. It means a lot of different things to a lot of different people but the basic concept is that machines could use the web just like people do.

Wife: Is this another robot thing?

Ryan: No, not really. I don’t mean that machines will be sitting down at the desk and browsing the web. But computers can use those same protocols to send messages back and forth to each other. We’ve been doing that for a long time but none of the techniques we use today work well when you need to be able to talk to all of the machines in the entire world.

Wife: Why not?

Ryan: Because they weren’t designed to be used like that. When Fielding and his buddies started building the web, being able to talk to any machine anywhere in the world was a primary concern. Most of the techniques we use at work to get computers to talk to each other didn’t have those requirements. You just needed to talk to a small group of machines.

Wife: And now you need to talk to all the machines?

Ryan: Yes - and more. We need to be able to talk to all machines about all the stuff that’s on all the other machines. So we need some way of having one machine tell another machine about a resource that might be on yet another machine.

Wife: What?

Ryan: Let’s say you’re talking to your sister and she wants to borrow the sweeper or something. But you don’t have it - your Mom has it. So you tell your sister to get it from your Mom instead. This happens all the time in real life and it happens all the time when machines start talking too.

Wife: So how do the machines tell each other where things are?

Ryan: The URL, of course. If everything that machines need to talk about has a corresponding URL, you’ve created the machine equivalent of a noun. That you and I and the rest of the world have agreed on talking about nouns in a certain way is pretty important, eh?

Wife: Yeah.

Ryan: Machines don’t have a universal noun - that’s why they suck. Every programming language, database, or other kind of system has a different way of talking about nouns. That’s why the URL is so important. It let’s all of these systems tell each other about each other’s nouns.

Wife: But when I’m looking at a web page, I don’t think of it like that.

Ryan: Nobody does. Except Fielding and handful of other people. That’s why machines still suck.

Wife: What about verbs and pronouns and adjectives?

Ryan: Funny you asked because that’s another big aspect of REST. Well, verbs are anyway.

Wife: I was just joking.

Ryan: It was a funny joke but it’s actually not a joke at all. Verbs are important. There’s a powerful concept in programming and CS theory called polymorphism. That’s a geeky way of saying that different nouns can have the same verb applied to them.

Wife: I don’t get it.

Ryan: Well.. Look at the coffee table. What are the nouns? Cup, tray, newspaper, remote. Now, what are some things you can do to all of these things?

Wife: I don’t get it…

Ryan: You can get them, right? You can pick them up. You can knock them over. You can burn them. You can apply those same exact verbs to any of the objects sitting there.

Wife: Okay… so?

Ryan: Well, that’s important. What if instead of me being able to say to you, “get the cup,” and “get the newspaper,” and “get the remote”; what if instead we needed to come up with different verbs for each of the nouns? I couldn’t use the word “get” universally, but instead had to think up a new word for each verb/noun combination.

Wife: Wow! That’s weird.

Ryan: Yes, it is. Our brains are somehow smart enough to know that the same verbs can be applied to many different nouns. Some verbs are more specific than others and apply only to a small set of nouns. For instance, I can’t drive a cup and I can’t drink a car. But some verbs are almost universal like GET, PUT, and DELETE.

Wife: You can’t DELETE a cup.

Ryan: Well, okay, but you can throw it away. That was another joke, right?

Wife: Yeah.

Ryan: So anyway, HTTP -this protocol Fielding and his friends created- is all about applying verbs to nouns. For instance, when you go to a web page, the browser does an HTTP GET on the URL you type in and back comes a web page.

Web pages usually have images, right? Those are separate resources. The web page just specifies the URLs to the images and the browser goes and does more HTTP GETs on them until all the resources are obtained and the web page is displayed. But the important thing here is that very different kinds of nouns can be treated the same. Whether the noun is an image, text, video, an mp3, a slideshow, whatever. I can GET all of those things the same way given a URL.

Wife: Sounds like GET is a pretty important verb.

Ryan: It is. Especially when you’re using a web browser because browsers pretty much just GET stuff. They don’t do a lot of other types of interaction with resources. This is a problem because it has led many people to assume that HTTP is just for GETing. But HTTP is actually a general purpose protocol for applying verbs to nouns.

Wife: Cool. But I still don’t see how this changes anything. What kinds of nouns and verbs do you want?

Ryan: Well the nouns are there but not in the right format.

Think about when you’re browsing around amazon.com looking for things to buy me for Christmas. Imagine each of the products as being nouns. Now, if they were available in a representation that a machine could understand, you could do a lot of neat things.

Wife: Why can’t a machine understand a normal web page?

Ryan: Because web pages are designed to be understood by people. A machine doesn’t care about layout and styling. Machines basically just need the data. Ideally, every URL would have a human readable and a machine readable representation. When a machine GETs the resource, it will ask for the machine readable one. When a browser GETs a resource for a human, it will ask for the human readable one.

Wife: So people would have to make machine formats for all their pages?

Ryan: If it were valuable.

Look, we’ve been talking about this with a lot of abstraction. How about we take a real example. You’re a teacher - at school I bet you have a big computer system, or three or four computer systems more likely, that let you manage students: what classes they’re in, what grades they’re getting, emergency contacts, information about the books you teach out of, etc. If the systems are web-based, then there’s probably a URL for each of the nouns involved here: student, teacher, class, book, room, etc. Right now, getting the URL through the browser gives you a web page. If there were a machine readable representation for each URL, then it would be trivial to latch new tools onto the system because all of that information would be consumable in a standard way. It would also make it quite a bit easier for each of the systems to talk to each other. Or, you could build a state or country-wide system that was able to talk to each of the individual school systems to collect testing scores. The possibilities are endless.

Each of the systems would get information from each other using a simple HTTP GET. If one system needs to add something to another system, it would use an HTTP POST. If a system wants to update something in another system, it uses an HTTP PUT. The only thing left to figure out is what the data should look like.

Wife: So this is what you and all the computer people are working on now? Deciding what the data should look like?

Ryan: Sadly, no. Instead, the large majority are busy writing layers of complex specifications for doing this stuff in a different way that isn’t nearly as useful or eloquent. Nouns aren’t universal and verbs aren’t polymorphic. We’re throwing out decades of real field usage and proven technique and starting over with something that looks a lot like other systems that have failed in the past. We’re using HTTP but only because it helps us talk to our network and security people less. We’re trading simplicity for flashy tools and wizards.

Wife: Why?

Ryan: I have no idea.

Wife: Why don’t you say something?

Ryan: Maybe I will.

Top 5 de casas prefabricadas más pequeñas

25 junio 2007 at 22:15

Fecha Filed in Curiosities
Tags Tags: ,

1 - WEEHOUSE
El valor es de 93 euros por metro cuadrado aproximadamente. La WeeHouse es un módulo que se puede instalar en cualquier sitio, incluyendo un tejado. La unidad básica está construida a partir de acero y madera.

Weehouse

2 - TUMBLEWEED
Las dimensiones de esta pequeña casa oscilan entre 40 y 500 pies cuadrados y acomoda una gran cantidad de necesidades tanto de oficina como casa de vaciones u hogar permanente.

Tumbleweed

3 - SUSTAIN MINIHOME
La Sustain MiniHome es prácticamente una pequeña casa ecológica, fabricada a partir de toneladas de materiales y tecnologías ecológicas. Nada de materiales tóxicos, certificado del FSC, ventilación natural, energía renovable, …

Sustain Minihome

4 - LOFTCUBE
El LoftCube es ideal para entornos urbanos donde no hay nada para construir. Esta pequeña casa puede ser instalada en una azotea y te proporciona una pequeña pero inteligente solución para tus necesidades de alojamiento. Construida por Werner Aisslinger, el precio asciende a 55.000 dólares.

Loftcube

5 - MICROCOMPACT HOME
Esta casa proporciona cama doble, cuarto de baño, lobby, sala de estar para 4-5 personas y tecnología de última generación. El precio de esta casa llega a los 50.000 euros. La superficie de la Microcompact Home es de 77 pies cuadrados.

Microcompact Home

Vía | Inhabitat

Lista de palabras inventadas por Shakespeare

25 junio 2007 at 21:18

Fecha Filed in Curiosities
Tags Tags: ,

ShakespeareA través del blog Joel Laumans descubro que William Shakespeare inventó sobre 1.700 palabras (entre nombres, verbos y adjetivos) de las que usamos frecuentemente hoy en día (en inglés). Entre todas sus obras, sonetos y poemas, el escritor inglés usó una cifra aproximada de 17.677 palabras (de la cuales 1.700 fueron inéditas). Esta es una lista reducida de algunas de las palabras que inventó:

  1. Accused
  2. Addiction
  3. Advertising
  4. Amazement
  5. Arouse
  6. Assassination
  7. Bandit
  8. Bedroom
  9. Beached
  10. Blanket
  11. Bump
  12. Cater
  13. Champion
  14. Countless
  15. Epileptic
  16. Fixture
  17. Flawed
  18. Generous
  19. Hint
  20. Lonely
  21. Manager
  22. Mimic
  23. Negotiate
  24. Obscene
  25. Premeditated
  26. Rant
  27. Successful
  28. Summit
  29. Torture
  30. Varied
  31. Worthless
  32. Zany

Aquí podemos encontrar una lista bastante amplia, y algunas frases que él inventó a través de este enlace.

HOMER: Un agente que planifica

25 junio 2007 at 20:42

Fecha Filed in Computers
Tags Tags: , ,

Un interesante experimento en el campo del diseño de agentes inteligentes fue dirigido por Vere and Bickmore en el año 1990. Su estudio se centraba en las tecnologías que permitían desarrollar agentes inteligentes con habilidades lingüisticas, planificadoras y capacidades de actuar. Desarrollaron un agente que fue bautizado como HOMER. Este agente era un robot que simulaba un submarino, el cual tenía solo un conocimiento parcial. HOMER ejecutaba instrucciones ordenadas por un usuario descritas en un limitado subconjunto del inglés (un vocabulario aproximadamente de 800 palabras). Las instrucciones podían tener sofisticadamente referencias temporales. HOMER podía planificar cómo realizar sus instrucciones y cómo ejecutar sus planes, modificándolas si era necesario. El agente tenía una memoria limitada, y usándola, podía responder a cuestiones referentes a su pasado.

Vamos a ver un sencillo ejemplo de un diálogo con HOMER. Vamos a preguntarle qué ve en frente suya:

USUARIO: What is in front of you?
HOMER: A log.
USUARIO: Do you own the log.
HOMER: No, I don't.

El usuario entonces le dice a HOMER que se apropie del tronco. Esta es una nueva información, así que HOMER expresa sorpresa.

USUARIO: The log belongs to you.
HOMER: Oh.

En este punto, el usuario le pide a HOMER mover el tronco. Cuando se vuelve, HOMER espera ver el tronco, y expresa sorpresa.

USUARIO: Turn away from your log.
HOMER: OK, I am turning.
[LOG IS MOVED]
USUARIO: Turn around.
HOMER: OK, I am turning.
HOMER: I've lost the log!

En el siguiente diálogo, el usuario le da a HOMER una tarea que cumplir:

USUARIO: Drop the package at the barge next Saturday at 9pm.
HOMER: OK.

HOMER entonces genera un plan apropiado para esta tarea. Cuando preguntamos sobre sus planes para el sábado, HOMER responde lo siguiente:

USUARIO: Are you going to the barge next Saturday?
HOMER: Yes.
USER: What time?
HOMER: 8.56pm.

Más información | Episodic Memory in HOMER

Real Madrid, id ensayando esta postura

22 junio 2007 at 23:28

Fecha Filed in Football
Tags Tags: , ,

Henry

Tmsnc - Cliente para MSN en modo consola

18 junio 2007 at 15:36

Fecha Filed in Computers
Tags Tags: ,

Tmsnc es un cliente para la red de MSN Messenger principalmente para GNU/Linux. La aplicación está escrita en C usando la librería Ncurses para dibujar la interfaz en modo texto, por lo que se ha exportado versiones para otros sistemas operativos basados en UNIX como OpenBSD y Mac OS X. Ideal para aquellos que no tienen servidor gráfico instalado en su sistema.

Tmsnc

Página Oficial | Tmsnc

Bye, bye, Genciencia

17 junio 2007 at 18:43

Fecha Filed in Personal, Blogs
Tags Tags: ,

GencienciaCuando un hobbie se convierte en rutina, el hobbie pasa a ser un trabajo. Y cuando hay algo que haces por hobbie y pasa a ser un trabajo, se convierte en algo tedioso y pesado. Y es que no estoy hecho para mantener un ritmo de publicación estipulado, y menos para hacer posts decentes, ya que lo único que conlleva es presión y hacer las cosas rápido. Hace dos meses quise hacer un paréntesis por si me volvía a picar el gusanillo y volver a escribir, pero hoy he decidido dejar definitivamente Genciencia. A parte de falta de motivación se une la falta de tiempo, ya que no puedo tirar cohetes por ello. Desde Agosto hasta Abril, más de 115 artículos. Gracias a Javi y Mar (VelSid), Alberto, Ambrosio, Esteban y Antonio por estos meses. Suerte.

Blogaditas cambia de look

15 junio 2007 at 23:46

Fecha Filed in Andalusia, Blogs
Tags Tags: , ,

Hoy Alberto Alvarez-Perea ha anunciado en su blog el nuevo cambio de look que ha sufrido Blogaditas. Para quién no lo conozca, Blogaditas es un directorio para weblogs gaditanos, que tal como dice su lema reúne bitácoras con Cádiz, para Cádiz, desde Cádiz, por Cádiz, en Cádiz, sobre Cádiz e incluso contra Cádiz. El mayor atractivo de Blogaditas es su planet, espacio donde sindica los contenidos de los blogs que constituyen el directorio.

Además de cambio en el diseño, Alberto ha cambiado el sistema por completo, usando ahora Feevy, una herramienta que fue desarrollada en un principio para crear blogrolls dinámicos, aunque como vemos en el ejemplo de Blogaditas se puede aprovechar para realizar otras funciones.

Blogaditas

Ontologías para comunicación entre agentes

14 junio 2007 at 16:36

Fecha Filed in Computers
Tags Tags: , , , ,

An ontology is a formal definition of a body of knowledge. The most typical type of ontology used in building agents involves a structural component. Essentially a taxonomy of class and subclass relations coupled with definitions of the relationships between these things.

Jim Hendler

Una ontología es una especificación de objetos, conceptos y relaciones de un determinado área de interés. En el ejemplo de Blocks-World, el término Block representa un concepto y el término On (lo utilizábamos para indicar que un bloque está encima de otro) representa una relación. Los conceptos pueden ser representados mediante lógica de primer orden como predicados unitarios. Para expresar la idea de que un bloque es un objeto físico, podríamos utilizar la siguiente expresión de primer orden:

Para todo x el bloque x es un objeto físico

Hay otras más representativas. En lugar de (Block A), se podría usar la expresión (instanceOf A Block). Tanto A como Block son objetos del universo que estamos tratando, y se introducen las nuevas relaciones instanceOf y subclassOf:

(class Block)
(class PhysicalObject)
(subclassOf Block PhysicalObject)
∀x, y, z (instanceOf x y) Λ (subclassOf y z) → (instanceOf x z)

El último código es una regla que expresa la idea de un tipo de jerarquía. Un ontología es más que una taxonomía de clases (o tipos). La ontología debe describir las relaciones que existen entre sus elementos. Las clases y las relaciones se deben representar en la ontología, en cambio no es necesario incluir las instancias de la clase. Por ejemplo, no hay necesidad de representar A en la ontología al igual que tampoco (Block A) o (instanceOf A Block). Una ontología es análoga al esquema de una base de datos, donde no incluimos las tuplas existentes en el esquema.

Ejemplo de Ontología: Vehicle

Todos los agentes que compartan una misma ontología para la representación de conocimiento tendrán un entendimiento de palabras en el lenguaje de comunicación que usen. Muchos agentes poseen conocimientos donde las relaciones están definidas a mayor detalle. Por ejemplo, el dominio y el rango de una relación binaria se puede especificar de la siguiente manera:

(domain On PhysicalObject)
(range On PhysicalObject)

Estas restricciones limita ciertos valores para usar las relaciones. (On A B) está permitido si tanto A como B son instancias de PhysicalObject mediante un cierre transitivo de subclassOf; (On A Dream1) estaría prohibido si Dream1 no es un PhysicalObject (objeto físico).

Anteriormente ya hemos visto un lenguaje con el que podríamos definir ontologías: KIF. Usando KIF podemos expresar las propiedades de un dominio y las relaciones que existen entre los objetos de dicho dominio. Como KIF no fue ideado principalmente para ser un lenguaje para el uso de humanos (más bien para el procesamiento en máquinas), se han desarrollado herramientas para permitir desarrollar ontologías en KIF. La aplicación más conocida es Ontolingua, un servicio basado en web que ofrece una plataforma común donde las ontologías desarrolladas por diferentes grupos se pueden compartir.

El componente central es una librería de ontologías, expresadas en el lenguaje de definición de ontologías de Ontolingua (basado en KIF). Una aplicación residente en el servidor proporciona el acceso a esta librería. Se puede acceder a la librería de diferentes modos: editando directamente de una interfaz web o a través de aplicaciones que se conectan de forma remota al servidor a través de una interfaz NGFP. El servidor de Ontolingua es capaz de transformar automáticamente ontologías expresadas es un formato a otros (CORBA, …).

XML LogoHay otros lenguajes para definir ontologías más intuitivos para el ser humano. Uno de los más importantes (y más sencillos en mi opinión) es XML (eXtensible Markup Language). Para entender de donde viene XML, es necesario echar un vistazo a la historia de la web. La web esencialmente comprende a grandes rasgos dos elementos: un protocolo (HTTP) que proporciona una conjunto de reglas para permitir a los servidores y clientes comunicarse el uno con el otro, y el formato para el intercambio de documentos HTML (Hypertext Markup Language). HTML define esencialmente una gramática para intercalar información con etiquetas definidas. Esas etiquetas dan indicaciones al navegador de cómo mostrar un documento (HTML no es un lenguaje de programación, sino un lenguaje descriptivo). La gramática de HTML está definida por un documento de declaración de tipo llamado DTD (Document Type Declaration). Un DTD podría ser análogo a las gramáticas formales que se usan para definir la sintaxis de un lenguaje de programación. Un documento DTD está expresado en un lenguaje formal llamado SGML (Standard Generalized Markup Language). Podríamos decir que SGML es un lenguaje para definir otros lenguajes. XML fue desarrollado para responder a una de las mayores críticas de la web: la falta de etiquetas semánticas.

I have a dream for the Web [in which computers] become capable of analysing all the data on the Web - the content, links, and transactions between people and computers. A Semantic Web, which should make this possible, has yet to emerge, but when it does, the day-to-day mechanisms of trade, bureaucracy and our daily lives will be handled by machines talking to machines. The intelligent agentes people have touted for ages will finally materialise.

Tim Berners Lee

Más información | Ontolingua
Más información | Wikipedia
Más información | Multiagent Systems and Societies of Agents, M. H. and Larry M. S.
Más información | MultiAgent Systems, Michael Wooldridge

La Musicalité - Adiós

14 junio 2007 at 05:00

Fecha Filed in Music, Video
Tags Tags:


La Musicalité - Adiós

Nunca he visto una tormenta
nunca he visto como tiembla
el cielo cuando lleva tempestad.
Nunca he sentido miedo
nunca me ha tumbado el viento
excepto por la soledad.
Nunca vi pasar las horas
nunca el tiempo fue en mi contra
cuando veo la vida pasar.

Y temo, que se acerque el momento
de gritarte en silencio tan solo una palabra más…
Adiós, sin más palabras, sin más suspiros que el de tu voz.
Y sólo decirte que te quiero, que te quiero y adiós.

Siempre estarás conmigo
enseñándome el camino
como un faro en la oscuridad.
Contigo nunca he sentido el frío,
ni el vacío, ni el olvido
que causarán no verte más.
Cada vez que te recuerde
sentiré como me duele
gritar una palabra más.

Adiós, sin más palabras,
sin más suspiros que el de tu voz.
Y sólo decirte, que te quiero, que te quiero y adiós.

Hoy intento escribir, lo que te quise decir
aunque sé que ya no servirá.
Esta noche sentiré miedo por primera vez,
miedo si te llamo y no estás.
Pero ya te has ido, y aunque no te olvido
debo despedirme de ti una vez más.

Adiós, sin más palabras,
sin más suspiros que el de tu voz.
Y sólo decirte, que te quiero, que te quiero y adiós.
Adiós, sin más palabras,
sin más suspiros que el de tu voz.
Y sólo decirte, que te quiero, que te quiero y adiós.

Cada vez que te recuerde sentiré
como me duele gritar una palabra más.

Bloggers con Traje

14 junio 2007 at 04:46

Fecha Filed in Personal, Memes
Tags Tags: , , ,

Me pasa Sergio Sola un meme sobre bloggers con traje. Tal como él mismo dice, no me suelo poner trajes tampoco. La última vez que recuerdo fue en un St Valentine Ball (Baile de San Valentín) en Sheffield. Aún en la foto ya tenía quitada la chaqueta. Salgo con mi socio el Dr. Luis Manuel Cabezas, un crack.

Alfonso Jiménez y Luis Cabezas

Se lo envío a Manuel Martín, Carlos Mantero, Pedro Blanco, Pablo Kabytes y al Follonero. Que rule, que rule.

iSight en Ubuntu

13 junio 2007 at 20:02

Fecha Filed in Computers
Tags Tags: , , ,

Una de las cosas que me faltaba por instalar en mi MacBook Pro era la iSight. Como no es algo que uso habitualmente la tenía olvidada. La he instalado en Ubuntu Feisty Fawn 7.04 (kernel 2.6.20-15-generic) y funciona de maravilla:

cd ~
wgethttp://files.i-nz.net/projects/linux-kernel/isight/uvcvideo-isight.tar.gz
tar xvzf uvcvideo-isight.tar.gz
cd against-revision-100
make
sudo make install

Cargamos el módulo uvcvideo en el kernel y comprobamos su carga:

modprobe uvcvideo
lsmod | grep uvc

Debería de mostrarnos algo como lo siguiente

uvcvideo             46468  0
compat_ioctl32  2304  1 uvcvideo
videodev             28160  1 uvcvideo
v4l1_compat      15236  2 uvcvideo,videodev
v4l2_common    25216  2 uvcvideo,videodev

Para realizar una prueba podemos utilizar Ekiga. Debemos de usar el video plugin V4L2. Si no lo tenemos podemos conseguirlo desde universe:

sudo apt-get install libpt-plugins-v4l2

KIF - Knowledge Interchange Format

13 junio 2007 at 04:05

Fecha Filed in Computers
Tags Tags: , ,

NonakaKSpiralEl otro día hablábamos de KQML y podimos ver por encima que KIF era una sintaxis formal que servía para representar el conocimiento. Los agentes necesitan descripciones de los objetos del mundo real. Las descripciones se podrían expresar en lenguajes naturales, como el castellano o el inglés, capaces de describir una gran variedad de objetos y situaciones. Sin embargo, el significado de una expresión en lenguaje natural puede ser ambigua, con lo cual nos llevaría a varias interpretaciones de una misma expresión. La lógica matemática es una herramienta que nos permite describir cosas. Mediante lógicas simples (por ejemplo la lógica de primer orden) podemos describir cualquier cosa para las personas y los agentes inteligentes. Dentro de esas cosas se incluyen hechos concretos, definiciones, abstracciones, reglas de inferencia, restricciones y metaconocimiento (el conocimiento sobre el conocimiento).

KIF es un lenguaje propuesto como estándar para describir cosas. Es legible tanto para personas como para máquinas. Además, fue especificamente diseñado para funcionar como una interlingua, o un mediador entre la traducción de otros lenguajes. La descripción del lenguaje incluye una especificación para su sintaxis y otra para su semántica. Un ejemplo de KIF podría ser el siguiente:

(salary 015-46-3946 widgets 72000)
(salary 026-40-9152 grommets 36000)
(salary 415-32-4707 fidgets 42000)

Las expresiones de arriba codifican 3 tuplas en una base de datos personal. Se muestra el salario de 3 trabajadores de una compañía, especificando tres argumentos: identificador del empleado, departamento asignado y salario, respectivamente.

Para información más complicada se puede usar expresiones con términos complejos. Por ejemplo, la siguiente sentencia indica que una chip es más grande que otro:

(> (* (width chip1) (lenght chip1))
         (* (width chip2) (lenght chip2)))

KIF incluye una variedad de operadores lógicos que ayudan a la codificación de información lógica, tal como negación, disyunción, unión, reglas y fórmulas cuantitativas. La expresión que se muestra abajo es un ejemplo de una sentencia compleja en KIF. Indica que el número obtenido por el aumento de cualquier número real x a una potencia par n es positivo:

(=> (and (real-number x)
                (even-number n))
        (> (expt x n) 0))

Por otro lado KIF proporciona también ayuda para la codificación del conocimiento sobre el conocimiento, usando los operadores (`) y (,) y un vocabulario relacionado. Por ejemplo, la siguiente sentencia afirma que el agente Joe está interesado en la recepción de triples en la relación de salarios (vista en un ejemplo anteriormente).

(interested joe `(salary ,x ,y ,z))

Sin las comas, esta misma sentencia diría que el agente Joe está interesado en la sentencia (salary x y z) en lugar de sus instancias.

KIF también se puede usar para describir procedimientos. Es muy útil para desarrollar programas o scripts para agentes. Dada la sintaxis de KIF, los programas se parecen mucho a los de LISP o Scheme. El siguiente ejemplo es un procedimiento de tres pasos escrito en KIF. El primer paso se asegura de que hay una línea limpia (fresh line) en la salida estándar. El segundo paso imprime Hola! en la salida estándar. Y el tercer paso añada un carácter de retorno de carro en la salida.

(progn (fresh-line t)
           (print "Hola!")
           (fresh-line t))

La semántica del núcleo de KIF (KIF sin reglas y definiciones) es muy parecida a la lógica de primer orden. Hay una extensión para manejar operadores no estándar (por ejemplo las comas), y hay una restricción que obliga a que los modelos deban satisfacer ciertos axiomas (para dar significado al vocabulario básico). A pesar de estas extensiones y restricciones, el núcleo del lenguaje posee las características fundamentales de la lógica de primer orden, incluyendo compactness (afirma que un conjunto de sentencias de primer orden es satisfactible si y solo si todos los subconjuntos finitos de él son satisfactibles) y semi-decidibilidad de implicaciones lógicas.

Más información | Universidad de Stanford
Más información | UMBC
Más información | Multiagent Systems and Societies of Agents, M. H. and Larry M. S.

KQML - Knowledge Query and Manipulation Language

10 junio 2007 at 23:42

Fecha Filed in Computers
Tags Tags: , ,

Una decisión fundamental para la interación entre agentes es separar la semántica del protocolo de comunicación (el cual debe ser un dominio independiente) de la semántica del mensaje que se desea transmitir (el cual depende del dominio). El protocolo de comunicación debe ser compartido universalmente por todos los agentes. Debería de ser conciso y solo tener un número limitado de primitivas de actos de comunicación. KQML (Knowledge Query and Manipulation Language) es un protocolo para el intercambio de información y conocimiento. La elegancia de KQML reside en que toda la información para el entendimiento del contenido del mensaje se incluye en la comunicación de sí mismo. El protocolo básico está definido por la siguiente estructura:

(KQML-performative
           :sender       <word>
           :receiver     <word>
           :language   <word>
           :ontology    <word>
           :content      <expression>
           ...)

La sintaxis que se emplea en KQML es muy similar a la de Lisp, sin embargo, los argumentos (indentificados por palabras claves precedidas por dos puntos) deben de tener un orden. Las performativas en KQML están modeladas en actos de habla performativas. De este modo, la semántica es un dominio independiente, mientras que la semántica del mensaje está definida por los campos :content (que contiene el mensaje en sí), :language (el lenguaje que se emplea para expresar el mensaje) y :onlogy (el vocabulario de palabras usado en el mensaje). KQML envuelve un mensaje en una estructura que pueda entender cualquier agente. Claro que está, que para entender el mensaje que contiene, el receptor debe de entender el lenguaje y tener acceso a la ontología usada.

Los términos :content, :language y :ontology representan la semántica del mensaje. Otros argumentos que se pueden utilizar, como :sender, :receiver, :reply-with y :in-reply-to, son parámeros de la transmisión del mensaje.

KQML

KQML es parte de una extensa investigación para desarrollar una metodología para distribuir información a través de diferentes sistemas. Una parte del esfuerzo envuelve la definición del KIF (Knowledge Interchange Format), una sintaxis formal para la representación del conocimiento. KIF está basado en cálculo de predicados de primer orden. Otra parte del esfuerzo es definir ontologías que definan los conceptos comunes, atributos y otras relaciones para diferentes subconjuntos del conocimiento universal. Las definiciones de ontologías es lo que da significado a las expresiones representadas en KIF. Por ejemplo, en una ontología Blocks-World, si el concepto de bloque de madera de un tamaño dado es representado por el predicado unitario Block, entonces el hecho de el bloque A está encima del bloque B se podría comunicar (o decir) del siguiente modo:

(tell
           :sender       Agent1
           :receiver     Agent2
           :language   KIF
           :ontology    Blocks-World
           :content      (AND (Block A) (Block B) (On A B))
           )

El lenguaje en un mensaje KQML no está restringido solo para KIF, sino que se puede emplear otros languajes como PROLOG, LISP o SQL. Los agentes que soportan KQML usan la arquitectura básica de las comunicaciones: cliente-servidor. Las comunicaciones pueden ser síncronas o asíncronas. Para una comunicación síncrona el agente emisor espera una respuesta. En cambio, para una comunicación asíncrona el agente emisor continua con su razonamiento o acto, el cual podría ser interrumpido cuando la respuesta llega antes o después de time.

Los mensajes KQML puede ser anidados, de modo de que el contenido de un mensaje KQML puede ser otro mensaje KQML. Por ejemplo, si un Agente1 no puede comunicarse directamente con un Agente2 (pero si puede comunicarse con un Agente3), el Agente1 puede pedir al Agente3 que envie un mensaje KQML determinado al Agente2:

(forward
           :from          Agent1
           :to               Agent2
           :sender       Agent1
           :receiver     Agent3
           :language   KQML
           :ontology    kqml-ontology
           :content      (tell
                                    :sender       Agent1
                                    :receiver     Agent2
                                    :language   KIF
                                    :ontology    Blocks-World
                                    :content      (AND (Block A) (Block B) (On A B))
                               )
           )

Los actos de habla performativos en KQML se pueden dividir en siete categorías básicas:

  • Consultas básicas performativas (evaluate, ask-one, ask-all, …)
  • Consultas multirespuesta performativas (stream-in, stream-all, …)
  • Respuestas performativas (reply, sorry…)
  • Performativas informativas (tell, achieve, cancel, untell, …)
  • Performativas generadores ( standby, ready, next, …)
  • Performativas capaces de definir (advertise, subscribe, monitor, …)
  • Performativas networking (register, unregister, forward, broadcast, …)

La performativa advertise la usa un agente :sender para informar a una :receiver sobre las capacidades del :sender:

(advertise
           :sender       Agent2
           :receiver     Agent1
           :language   KQML
           :ontology    kqml-ontology
           :content      (ask-all
                                    :sender        Agent1
                                    :receiver      Agent2
                                    :in-reply-to  id1
                                    :language    Prolog
                                    :ontology     Blocks-World
                                    :content      "on(X,Y)"
                               )
           )

Ahora el Agent1 hace una consulta al Agent2:

(ask-all
           :sender        Agent1
           :receiver      Agent2
           :in-reply-to  id1
           :reply-with   id2
           :language    prolog
           :ontology     Blocks-World
           :content       "on(X,Y)"
           )

El Agent2 podría responder con afirmaciones de su conocimiento base:

(tell
           :sender        Agent2
           :receiver      Agent1
           :in-reply-to  id2
           :language    prolog
           :ontology     Blocks-World
           :content       "[on(a,b),on(c,d)]"
           )

KQML debe de operar sin una infraestructura de comunicación que permita a los agentes localizar a otro. La infraestructura no es parte de la especificación de KQML, y los sistemas implementados usan programas llamados routers o facilators para realizar esta función. KQML está todavía en progreso y su semántica no ha sido completamente definida. Labrou y Finin han propuesto recientemente una nueva especificación de KQML. Sin embargo, todavía no hay una especificación de KQML donde los programadores de agentes puedan confiar.

Más información | SICS Computer Systems Laboratory
Más información | University of Maryland
Más información | Multiagent Systems and Societies of Agents, M. H. and Larry M. S.

Peter Griffin

10 junio 2007 at 20:10

Fecha Filed in Curiosities
Tags Tags: ,

Peter Griffin

Jornada de Infarto

10 junio 2007 at 05:01

Fecha Filed in Football
Tags Tags: , , ,

Ramón CalderónJornadas así, hacen que la vida pueda ser maravillosa. Me motiva ver partidos con el corazón en un puño, analizando meticulosamente cada jugada y esperando cada minuto que el esférico entre en la portería contraria. Sin duda ésta penúltima jornada de liga ha sido una de las mejores que recuerdo. Debo de reconocer que se me hizo un nudo en la garganta cuando la afición del Real Madrid estalló de alegría sin motivo precedente. Raúl Tamudo en el último minuto acababa de poner las tablas en el marcador del Camp Nou y destrozar las ilusiones de miles de almas barcelonistas. Aunque normalmente peco de ser demasiado subjetivo, pero reconozco que el verdadero triunfador de esta noche ha sido el Real Madrid, un equipo que para nada practica el joga bonito, pero si se merece ganar la liga es gracias a su espíritu de equipo, consistencia y ambición. Quizás por méritos, el Sevilla FC sería el que más se merece la liga, un equipo fuerte, trabajado y efectivo. El FC Barcelona no ha demostrado el juego romántico que ha prácticado estos dos últimos años. A pesar de que han jugado a base de destellos de inspiración, dejando en varias ocasiones jugadas y goles para recordar, han cometido muchos fallos garrafales imperdonables para un equipo de primera categoría. Muchas veces sus triunfos se han reducido a actuaciones personales, teniendo gran importancia en ellos Lionel Messi (esta temporada le ha servido para consolidarse como crack) y Andrés Iniesta.

Ya tan solo queda una jornada, en la cual el Real Madrid tendrá todas las papeletas para lograr su liga tras 4 años en blanco. El FC Barcelona solamente debe de preocuparse en ganar su partido frente al Nástic, y cruzar los dedos para que ocurra un milagro en el Santiago Bernabeu. El equipo hispalense lo tendrá algo más complicado, ya que debe de ganar y esperar que tanto Barça como Real Madrid pinchen en sus respectivos encuentros.

La nota negativa de la jornada ha sido ver a Ramón Calderón, presidente del Real Madrid, dando la vuelta de honor en La Romareda. Me parece que es una falta de respeto por parte del presidente blanco, aunque ya nos tiene acostumbrados a sus disparates y a la falta de clase que tanto le caracteriza. Este personaje me recuerda mucho a Joan Gaspart, un auténtico cáncer que sufrió el FC Barcelona, causando a través de la provocación muchas mofas y burlas.

Cuanto cuesta fabricar el Apple TV

07 junio 2007 at 19:31

Fecha Filed in Computers
Tags Tags: ,

Apple TVPara poder evaluar con cierto criterio si un producto es caro o barato (no indico precio justo porque casi nadie está de acuerdo con él) es importante saber el coste de producción. iSuppli estima que el coste los componentes y materiales usados para fabricar el Apple TV es de $237 (aproximadamente unos 175 euros). Apple lo vende a $299, el cual le deja un beneficio de $62 o el 20% por cada unidad que venda.

Esto sería un gran cambio de la inclinación que Apple estaba llevando al cabo con márgenes bastante gruesos, donde algunas veces superaba el 50%, por ejemplo en la fabricación de ordenadores. También es el caso de los iPods (más información sobre su costo de fabricación) o del nuevo iPhone, que será lanzado a final de mes.

El componente más caro del Apple TV, es el microprocesador Intel que lleva dentro, valorado en $40. Este microprocesador es una variante de la familia Pentium M para ordenadores personales, pero la frecuencia es menor que los procesadores M normales (eso baja el coste). Andrew Rassweiler, analista de iSuppli, dijo: “Si se incluyese un chip Intel de los que ahora vende Apple en los Macs, no habría cabida para un margen de beneficios con un precio de $299″. También hay que añadirle $28, gastos para conectar el procesador principal con la memoria y otras partes del dispositivo. El material para el Apple TVque Apple gasta en Intel es de $68, o el 28% del total.

El chip gráfico es un Nvidia (NVDA) GeForce GO 7300, con un costo de $15. Esta tarjeta permite al Apple TV ofrecer video de alta definición (HD). El disco duro que tiene incluido el Apple TV es un Fujitsu de 40 gigabytes, que cuesta $37. Debido al poco espacio que ofrecerá (40 gigabytes), ya se ha hablado de lanzar otras versiones con discos duros con una capacidad superior.

Otro de los componentes es el Broadcom (BRCM), el cual brinda una WiFi 802.11n, que cuesta $19. Cypress Semiconductor (CY) ofrece dos chips que combinan $1.65, y Silicon Storage Technology (SSTI) incluye un microcontrolador de $1. La parte más barata es un chip de audio suministrado por la compañía taiwanesa RealTek Semiconductor que solo cuesta 75¢.

Más información | Business Week

Me entrevistan en Maestros del Web

07 junio 2007 at 02:53

Fecha Filed in Personal, Internet, Computers
Tags Tags: ,

Ayer fue publicada la entrevista que Stephanie Falla Aroche me hizo hace unos días para Maestros del Web.

Maestros del Web

She dictates me

06 junio 2007 at 02:30

Fecha Filed in Personal, Video