Buscar en Mind w/o Soul

lunes, enero 25, 2010

A taxonomy for storage of data in the Cloud

TO DO: Add lots of practical examples. And graphics!

In a nutshell: Provide constant feedback for the state of all data in distributed on-line services ("the Cloud"), with respect to connection (synchronized, unsynchronized) and access speed (slow, fast).


The problem of storage in a connected world

Information in computers has been traditionally stored in filesystems. This is a storage model that worked well for mainframes and corporate networks, where an expert administrator took care of the filesystems, and that survived a transition to personal computers (somewhat transformed by the "desktop metaphor") where the amount of available data was reduced and limited to a single device.

Most programmers will not realize it most of the time, but files are by itself an abstraction model over a more complex technology model - that of persistent storage media, which handle blocks of electric signals in physical electronic devices.

The abstraction provided by filesystems is less than perfect for the typical data needs of people in the mainstream information sphere, where both corporate and personal users share information through the decentralized system that is the Internet. Not the smaller problem is that nobody will be responsible for administering data, or when they do, this creates a single point of control and failure - two undesirable traits.


The Cloud - on sunny days

The ideal data model for personal user data should be one of "always persistent, always accessible, anywhere". This puts users again in control of the information they own, using a simple centralized abstraction.

The problem is, current technology still doesn't support this directly. The proposed "cloud" metaphor has been marketed to users as an approximation of that model, but it still fails to deliver the promised experience because of abstraction leaks.

Abstraction leaks are situations where there is a mismatch between the model expectations induced by the metaphor and the actual system behavior. Sometimes the limits of underlying technology will skip through the details of the proposed model: network connection will fail, local storage disks will break... The resulting error situation and steps required to fix it are utterly difficult to explain to people not expert in the used technology.


The Cloud Storage taxonomy

There are two axis that directly affect user experience of data stored in the cloud, and thus should be included in the user model for cloud storage:
- Location: Connected vs Disconnected.
- Speed: Fast vs Slow.

Note that Location is not primarily about the physical position of the stored data (which is mostly independent to the problem of data storage, thanks to the Internet) but one of logical access: devices can be a part of the Net sometimes, but sometimes not. Connected/disconnected is the relevant fact to know about a device when thinking of retrieving the same data later.

So, the different and fundamental kinds of persistent data introduced by the Cloud, in addition to the abstraction of "Document" and "Media type" already supported by filesystems, are these four classifications:

* Connected data located in a fast medium.
* Disconnected data located in a fast medium.

* Connected data located in a slow medium.
* Disconnected data located in a slow medium.

Why are these four states relevant, and why should they be treated as different one to each other in the user model?

The first state (connected, fast) is the ideal situation, the one that best matches the promised Cloud metaphor of "always on, anywhere" data. But as soon as the technical limits appear, the experience degrades:

- Disconnected data is one that is created or modified in a device without a connection to the Internet. The problem with disconnected data is that it breaks the Cloud metaphor: if I move to a different device, my new data or recent edits will not be available. This problem is what prompted users to abandon mail clients in favor of webmail, and the reason why web services are the trend.

- Slow data is one that takes time to stabilize and get "imported" into the cloud; it's data I must wait for after I've finished my work. Fast data is instantly protected as soon as it's created; I can be confident that closing the application, unplugging the USB key or turning off the computer will not be a problem - I have enough feedback to be sure that the data is safe. On the contrary, with slow data, in all those scenarios I have babysit the data saving process before I can proceed with my life.

- Disconnected AND slow merits a separate because, in addition to the problems listed above, it shows an important trait: user data is at the highest risk of being lost. Any system problem may cause open data to be destroyed. A simple power glitch, or an application crash will destroy the user current session and all the ongoing work in it will be lost.

Connected slow data can protect against it by saving data in the background; in case of failure the latest online version can be retrieved, even if a bit outdated.

Fast disconnected is even safer in this scenario; a power failure or broken application will not destroy data, because fast data will already be saved to a persistent state. It doesn't protect in the case of a lost or broken device, but that's less severe because for cloud data, disconnected is supposed to be a transient state anyway; as soon as the device gets reconnected, it will synchronize to the cloud and the data will be safe again.


The sad thing is, disconnected slow data is the default storing model for desktop applications, so it's the most common. Online web applications may change this, but they are more likely to copy this dangerous model from desktop apps.


"Saved" state

There's a third dimension (saved / unsaved) that is relevant to system designers and programmers but should be transparent to users, following the principle by Jef Raskin of "treat user data as sacred" (see Your data is sacred, Always safeguard users' data) and its corollary "don't force users to input the same data twice". This means that all user-introduced data should be instantly saved in some way, and it shouldn't be lost except by catastrophic failure (and ideally, even in that case too).

Information architecture of restaurant menus

How to layout information of meals, attaining the stated goals (of the restaurant to sell more).

http://www.guardian.co.uk/lifeandstyle/2010/jan/21/menus-cunning-marketing-ploys

It includes a taxonomy 4 kinds of products:

Profitable:
  • Star: popular, profitable
  • Puzzle: unpopular, profitable
Unprofitable
  • Ploughhorse: popular, unprofitable
  • Dog: unpopular, unprofitable

viernes, enero 22, 2010

Canvas 3D

Enlaces a tutoriales y librerías para programar extensiones 3D con javascript

Canvas 3D JS Libary

Google O3D

Enlaces a varias librerias

Cross Browser Support

ExplorerCanvas: http://code.google.com/p/explorercanvas/
One using SVG (Scalable Vector Graphics): http://me.eae.net/archive/2005/12/29/canvas-in-ie/
FlashCanvas - using Flash as a bridge: http://www.azarask.in/blog/post/flash-canvas/
The folks at Cappuccino use combinations of various Technologies to accomplish what canvas can do on all browsers. http://cappuccino.org ( http://280slides.com is an example of this.)

Simulated 3D with 2d context
http://www.tapper-ware.net/canvas3d/
http://www.benjoffe.com/code/demos/canvascape/

Firefox Tab prototypes challenge

Concurso de ideas sobre tabs - brainstorming

Mozilla Labs Design Challenge: Summer 09 - together with IxDA and Johnny Holland
finding creative solutions to the question: "Reinventing Tabs in the Browser - How can we create, navigate and manage multiple web sites within the same browser instance?"

jueves, enero 21, 2010

Semantic tools that make sense

Firefox plugins to summarize web pages and Google searches on the fly:

http://www.semanticengines.com/plugins.htm

SenseBot for Search Results Page adds SenseBot capabilities to your Google searches. After you add the extension to your browser, it becomes seamlessly integrated with Google results page. When you do a search on Google, a cloud of key concepts appears on top of search results. You can click on a concept to do a subsequent search, focussing on the concept. You can also click the "Show text" button, and a text summary of content of the search results will be generated and displayed on the same page.
Note that summarizing multiple pages as a whole makes more sense for informational queries, i.e. those where you are trying to understand a concept or get an overview of a topic.

• SenseBot Summarizer is an experimental plug-in that generates a text summary of the Web page you are viewing. After you add the extension to your browser, a menu item called "SenseBot" is added to the browser Tools menu. Also, when you right-click on any page, "SenseBot" appears as one of the actions. When you select the action, a popup window is opened containing a text summary of the current page, generated by SenseBot.
Note that there should be a sufficient amount of text accessible from the page in order to generate a summary. Sometimes even pages that look like they are full of content do not fit this requirement (e.g., Yahoo.com). In this case the summarizer will inform you that the text is too short to summarize.

• LinkSensor semantically analyzes blog posts on-the-fly and highlights key concepts in the text. When your mouse is over a highlighted word, a small balloon shows up suggesting other articles from the blog related to the word. After you add the extension to your browser, a menu item called "LinkSensor" is added to the browser Tools menu, and is also available in the mouse right-click menu.
If you are a blogger or a publisher, you can get LinkSensor setup for your blog.

miércoles, enero 20, 2010

Good Bad Applications

Applications are bad

- Data should not be held ransom inside the walled garden of an application.
- It should be freely editable through the standard Operating System tools,
- and easy to export and import from the application repositories.

Applications, as designed today, tend to make all of the former difficult.


Applications are good
- Applications gather a collection of tools related and suitable to one purpose.
- They organize information and give name to concepts useful to accomplish user goals.
- They make easy for the user to follow task flows pertinent to the goals.
- They allow the user to learn about new concepts in the problem domain, new ways to manage information, and which tools are available in the system for the domain

The concept of an Application is a good information architecture and design pattern for well known problems, where most user needs are anticipated by the designer. If only they weren't niches inside which data gets trapped, they would be a good way to design user interactions!

Wharton’s four questions for user-centered HCI

Tale of two tutorials

4 questions for a cognitive walkthrough:
  • How do users know their goal is attainable?
  • How do users know what to do?
  • How will users know they have done the right thing?
  • How will users know they have attained their goal?
Now this may come as something of a surprise if you are primarily involved in HCI, but these questions are profound to software and web site developers since most will never have considered user interaction in this way

The Fable of the User-Centered Designer

http://www.userfocus.co.uk/fable/

HCI - Tale - Historia - Cuento del diseño centrado en usuario. Para hacerlo leer a los programadores de /. slashdot cuando se quejan de que los usuarios no saben dar requisitos.

viernes, enero 15, 2010

SocialDesktop4KDE

Leyendo este post de ASeigo sobre ayudar a los proyectos de KDE en problemas, se me ha ocurrido una idea para el Social Desktop:

Integrar en un menú de cada aplicación un diálogo estándar (como el Visor de Ayuda o el About) que permita conectar directamente con las conversaciones de los usuarios, filtrados por cada aplicación.
Esto permitiría:
  • que los desarrolladores tengan acceso directo de los usuarios reales de su aplicación, en un sitio centralizado. (Gracias al API de Social Desktop, el diálogo estandar podría publicar a cualquier servidor que quieran configurar para su proyecto - o por defecto al servidor público de Social Desktop).
  • que los usuarios tengan un sito fácil desde el que reportar bugs y feature requests (la inspiración me la ha dado una propuesta similar de un usuario para Basket). Esta propuesta es una generalización de aquella idea.
  • que los usuarios puedan conectar con otros usuarios de la misma aplicación - para compartir trucos, recursos (como el "Get more...", pero social).
El Social Desktop plasmoid no sirve para estos objetivos, porque es demasiado general (aplica a contenidos del proyecto KDE completo). Creando una interfaz asociada a cada aplicación, se consigue centrar en unos objetivos concretos en torno al manejo de la misma (por tanto es más goal-oriented) .
-

Update:
Hay nuevo movimiento en forma de proyectos para poner al día y relanzar los sitios web de KDE:
http://blog.lydiapintscher.de/2010/01/17/help-needed-with-kde-org-relaunch/
http://community.kde.org/Scratchpad/www-rework/

... y para integrar la web con las aplicaciones de escritorio (Silk):
http://thread.gmane.org/gmane.comp.kde.devel.core/60677

sábado, enero 09, 2010

viernes, enero 08, 2010

Prototipos dinámicos con AJAX en Visio

VisDynamica

A tool that can turn a Microsoft Visio™ project into a webpage. It uses the existing “Save as Webpage” feature, but while this function produces just a set of static images inside a frames structure, VisDynamica is supposed to make the result much closer to a real-life website.

http://visdynamica.com/live-demo/pages/page2.png

lunes, enero 04, 2010

Objetos más rápidos que la luz

La teoría de la relatividad normalmente se interpreta como que "ningún objeto puede moverse más rápido que la luz...". Sin embargo en la explicación popular se omite que la frase se refiere a objetos "...dentro del mismo marco de referencia" (inercial).

En realidad la teoría (general) de la relatividad sí que admite objetos que se separan más rápido que la luz - de hecho las galaxias más lejanas en el universo observable estarían alejándose de nosotros a una velocidad mayor que c.

La clave para entender esta (aparente) paradoja en la teoría de la relatividad se explica a fondo en el artículo "Expanding Confusion: common misconceptions of cosmological horizons and the superluminal expansion of the Universe" por Tamara M. Davis y Charles H. Lineweaver:
http://arxiv.org/abs/astro-ph/0310808

Aparte de un detallado tratamiento matemático (también incluido en el artículo), la explicación intuitiva de la discrepancia está en que la "imposibilidad de superar c" es sólo una limitación de la teoría de la relatividad especial (es decir, en cuerpos moviéndose dentro del mismo sistema inercial - mismo marco de referencia).

Esto afecta a distancias cósmicas locales, pero no a los objetos más lejanos del universo - que (según lo que he entendido del artículo) pertenecerían a marcos inerciales distintos al nuestro y por tanto no están afectados por esta limitación de su velocidad respecto a nosotros.

El artículo explica cómo la relatividad general es coherente con dichas velocidades superlumínicas. En principio se suele usar la idea de que la expansión del universo puede hacer alejarse los objetos más rápido de lo que la luz viaja "dentro del universo", pero esta explicación sólo desplaza el problema al de entender qué significa eso de la "expansión del universo".

El problema de interpretación surge cuando los físicos intentan hacer divulgación y explicar en términos no matemáticos la explicación intuitiva de dichas fórmulas. Muchas veces, hasta los profesionales se hacen un lío y usan fórmulas de relatividad especial en sitios donde sólo tiene sentido la general (por ejemplo medir la velocidad de quásares con efecto Dopler, asumiendo que tiene que ser sublumínica). En algunas interpretaciones de la teoría esto es necesario, pero en otras no lo es. Los autores achacan estos problemas de intuición, incluso entre profesionales, a que hasta hace muy poco no se disponía de una medición precia de la radiación del fondo de microondas, y sin dicha precisión los márgenes de error eran demasiado amplios para que estas distinciones teóricas fueran relevantes en la práctica observable.

El artículo aporta pruebas empíricas que dan indicios de que las interpretaciones superlumínicas podrían ser correctas (por ejemplo, hay galaxias con mediciones de desplazamiento al rojo que - bajo la relatividad general estándar, sin modificaciones para abordar el fenómeno - corresponderían a galaxias alejándose a velocidad superlumínica).

Finalmente, el artículo desmonta varias de esas "explicaciones intuitivas" erróneas (misconceptions) sobre las interpretaciones de la teoría. Sería incorrecto decir, por tanto, que:

- Mito 1: la velocidad de alejamiento no puede superar la velocidad de la luz. (Pista: sí puede)
- Mito 2: la inflación tras el Big Bang pudo causar la expansión superlumínica del universo, pero la expansión normal no puede. (Pista: también puede)
- Mito 3: existen galaxias alejándose a una velocidad superlumínica, pero nos resulta imposible verlas. (Pista: sí podríamos ver - algunas de ellas/todas/ninguna, en función del modelo cosmológico utilizado).

Y por último una ambigüedad: la forma de representar los horizontes "fundamentales" en los diagramas espaciotemporales introduce problemas conceptuales, ya que el horizonte de Hubble / el horizonte de eventos / y el horizonte de partículas no son necesariamente iguales (tienen distintas definiciones), y sólo serían físicamente idénticos en algunos modelos cosmológicos - pero no en todos.

viernes, enero 01, 2010