Glass en Google Chrome

15 Sep

Por fin ha llegado la extensión de Glass para Google Chrome.

Hemos tenido que esperar por una razón de seguridad. Google Chrome 5 no nos permitía proteger los datos del usuario a la hora de posicionar los ‘slides’ en la pagina web. Pero la nueva versión lanzada, Google Chrome 6 (6.0.472 para ser más específicos) si que nos permite poner los ‘slides’ en la pagina con la seguridad de que nadie ni nada puede acceder a ellas, tal y como la extensión de Firefox está diseñada.

Para instalarte la extensión en Google Chrome, tienes que seguir los siguientes pasos:

1 Conseguir una cuenta de Glass

Si no tienes una cuenta de Glass no te preocupes, simplemente entra en:

http://www.writeonglass.com

Y en el recuadro de los códigos,

Escribe el código bamboo.

Sigue el proceso de registro y ya tienes una cuenta.

2 Entrar en Glass

Si ya tenias una cuenta, entonces lo que tienes que hacer es entrar en Glass. Simplemente, en http://www.writeonglass.com haz click en «Login»:

Introduce tu correo y contraseña de Glass y haz click en «Login».

3 Descargar la Extensión

La extensión se encuentra en la sección de «Download» en el menú principal de arriba a la derecha:

Cuando pulses en «Download» re aparerecerá abajo a la izquierda las instrucciones para que te instales Glass:

Cuando hayas instalado Glass finalmente, te aparecerá un botón arriba a la derecha del navegador:

4 Disfrutar de Glass

Ya es hora de que pruebes la extensión para Chrome.  Cuando estes en una página de Internet que te interese compartir con alguien, haz click en el botón de Glass de tu navegador (o pulsa dos veces seguidas la tecla Control). Te aparecerá el siguiente menú:

Si hacemos click en «New Slide» (o pulsamos la tecla ‘N’) nos aparecerá en la página el Slide preparado para ser rellenado. Primero lo movemos a la parte de la página donde pensamos que tendrá más significado (puedes arrastrar el Slide a la posición que creas más conveniente).

Lo único que tenemos que hacer es rellenar el Slide con las personas a las que queremos remitir nuestro comentario:

Y a continuación, el mensaje que queremos enviar:

Y pulsar Post.

Y ya tenemos nuestro Slide compartido con Andrew. Recibirá una notificación en su propio Glass que le llevará a la página donde hemos situado nuestro Slide y se lo mostrará solamente a Andrew.

What is Glass?

26 Ago

For all of you that wanted to know what I am working on right now, here is a very explanatory video:

And if you want to join, go to:

www.writeonglass.com

And insert the code bamboo

Redmine Task Management

16 Jul

En la misma linea que mi ultimo post, he decidido publicar tambien el codigo del sistema de administracion de tareas que he creado para el equipo.

Este sistema optimiza el flujo de trabajo de los Team Leads y de los programadores. Tambien ayuda a los Team Leads a tener una vision periferica mayor sobre lo que sus desarrolladores estan haciendo.

El repositorio y las instrucciones se encuentran en GitHub:

http://github.com/joax/Redmine-Task-Manager

Os adjunto algunas capturas de pantalla:

Vision general de la pantalla

Lista de TODO en detalle.

Detalle de una de las tareas (una feature) con su contenido.

Detalle del cambio de los colores en las listas.

Redmine Toolbar v2

2 Jul

Hi all,

If you are a Redmine addict or you happen to work with your team with Redmine, here is a helper to your day to day life. The Redmine Toolbar v2 helps you to save dozens of clicks in order to get into your tickets, projects wikis and also repositories.

This toolbar allows you to have multiple redmines configured, what means that you can have both your job Redmine and your opensource project redmine. And any others you would like to have!

If you would like to install it, here is the repo:

http://github.com/joax/redminetoolbar

The toolbar works this way:

1. Create an environment in the Options menu bar (right side of Redmine Toolbar v2)

2. Each environment refers to different redmine instances. The toolbar automatically crawls the instance to fetch the different projects you are joined and display them properly.


3. You can choose the project you would like to see on the left side of the RedmineToolbar v2.


The functionalities are:

You can access the news, activity, issues, repository, forum boards and wiki pages instantly of any project you have access to in the Redmine instance selected.


You can bookmark your own wiki pages in each project, to give you faster access to them instead of bookmarking all your pages on the bookmarking tool of Firefox (too cluttered)


You have direct access to create Issues on each project


You have direct access to each Repository, including the different commits done in them in real time

If you would like to see the repository with the extension code, go here:

http://github.com/joax/redminetoolbar

From Los Angeles with love

15 Mar

The very first day somebody explained to me what Glass was about I just struggled. I saw there the next step the Internet was taking. I was astonished by the technology they were trying to apply plus the people that was making it possible. But lets start from the very first thing, the concept.

The World Wide Web, was born in the CERN in the 1990’s. The purpose of it was to host a bunch of documents that could be shared among the multiple scientists that were in the institution. This later, coupled with the Internet network, spreaded all over the world in no more that a decade.

The www, as we know it now, has developed from a simple information repository to a really complex platform of interaction. The steps taken to arrive to this modern world network that has all of us interconnected are really simple to explain.

Once the Internet was a really big repository that hosted any sort of information, going through the vast amount of documents alone was almost impossible. I still remember when search engines as Lycos or Excite started to be popular. In Spain for example, ozu.es came to be as one of the first Spanish search engines. They really improved the Internet surfing, but also closed the scope of what you were seeing of it. From there, including Google, the Internet was only what they had listed in their files and maps. From one side it was enough, but from the other side, the Internet became then a small sample of all its potential. If you were not in listed in a search engine, you were not in the Internet.

After this boom of webpages, the technology advance to a place where allowed users to send information to the webpages itself. The interaction between the user and the Internet started there. Forums exploded, places to write reviews and also the famous guestbooks where you could post an opinion about the website. This made a new era of the Internet, where we could potentially leave our fingerprint into the Internet. Allowed us to be part of the Internet. This is how small personal publishing media started to launch. Blogs as we know them now started in 1997 with the Web Log terminology that later was shortened to we «blog».

Also the appearance of the Wiki (litteral translation of the word «fast» from Hawaiian) made the collective creation of content fusible. Now you don’t need to be an expert on a general matter but an expert on a small portion of the matter to add value to a document that other experts have written for you. This simplifies the document and content creation.

At this point, the so-called Internet 2.0 started to explode. Interaction sites started to grow as meeting sites and social networks. Hi5, myspace, and others blew the Internet users with new potential usages of their time than just surfing around pages or posting blogs to the public. They could actually use the Internet as a communication tool.

Facebook followed and Twitter made a new perspective mixing the short message concept with the Internet «everywhere-including my mobile» potential. This Internet came completely different from the starting one. From a simple Information repository we have moved to a social Internet where we hold and store our life relationships. A place where we won’t forget about a friend’s birthday or our marriage aniversary. Where we can post a message instantly when a catastrophe happens in our family’s country and find out how they are.

But here is a clue, both worlds of the Internet are still separated. The information repository does not have much to do with the social networking Internet. There is some gaps in the middle filled up with some blogging, some twittering and some reviews postings. But there is no physical connection between both worlds as we understand them.

Lately we are seeing how the big corporations were moving to this gap. Microsoft started Bing to be more than a search engine, but a decision making helper. This means that community reviews of something are more relevant to the search than the search itself. Google has launched various tools to move into this place too, with Google Sidewiki and Buzz. Tools that allow to leave a comment in any public webpage than later anybody can read. But none has yet arrived to the real place in the middle of both worlds, where your real social life interacts with the Internet information repository to improve your Internet experience.

Glass does this exactly perfect. While the other tools are modifying their interfaces and software to cover this gap, Glass is designed and developed just for that. It connects your social world with your Internet information repository.

Imagine that while you are surfing the Internet, you can have in real time the pages where your connections have left their opinion of these pages. Not only that, but also imagine that the comments they put in a page in form of a small note (like post-it notes on paper documents) are focused personally. I can literally put a small «slide» (this is how these notes are called) for my friend in Spain about an actress in her webpage and in the meantime I can set another slide to my other friend in LA that is looking for atresses for his movie. Both slides won’t have the same content, and also the page is going to be completely different for both persons, as my view of this page for each of them is not the same!.

This is a new place in the Internet evolution, where the social connections now affects to your surfing of the information repository. From now on, your Google searches, your news reviews and your social sharing places are not going to be the same. You are able, with Glass, to show your different points of views and relevance to each person you are connected to.

And this is what I saw in Glass that brought me to Los Angeles from Spain. And from the part I contribute to the project, in Data Products, I see a huge potential. The point that allow us to drive all this product data back to the user in a way like any other tool has never done before. We are in a place where we can tell the user what is behind each link, allowing them to make a different relevance order to the links they see in a page. Furthermore, we can enhance their experience when going to places they could have never seen without Glass. Places hidden in the Internet from the usual search engines and relevant to your connections.

Also for the Internet, this data can be a new way to see how the connections affect to their websites. How the people are clustered around their websites and concepts. How the social links drive people to their websites and potentially to their products. How a slide in a blog can potentially drive a sale in their online e-commerce site. Also how the idea of a person leaving his impression into a page can drive dozens of thousands of people to it.

Now the right content is relevant to the right people.

Welcome to your real Internet, welcome to Glass!

Los Ángeles prepárate, ¡que vamos!

10 Ago

Estas últimas semanas he estado revoloteando un poco por Los Ángeles por una razón muy evidente, y es que una vez asentado el proyecto de Tuenti, ya va siendo hora de que me mueva hacia adelante.

Hace dos semanas estuve de viaje por la glamurosa ciudad para descansar y de paso echarle un vistazo a un proyecto que iniciaron hace un año unos amigos. El proyecto, que aún no tiene forma oficial -hay que lanzarlo- tiene muy buena pinta, y la verdad es que me cautivó. Tanto me atrajo la idea, que cuando me hicieron la oferta para irme a ayudarles, no lo pude resistir.

Irme a vivir a Los Ángeles agiliza además el plan de mi vida, en el que tengo pendiente irme a estudiar un MBA a una universidad americana. Por qué americana os preguntaréis. Pues bien, para el mundo de Internet, y de las nuevas tecnologías, las universidades americanas nos llevan una cierta ventaja -no así su mercado, en el cual estamos empezando a cogerles en Europa.

La idea es quedarse un año ayudando a este proyecto, y posteriormente subirme a San Francisco o a Boston para empezar en 2010 el máster. Tengo muchas ganas y tengo muchas fuerzas para ayudar en este proyecto, dado que Tuenti se ha convertido en un monstruo. Y un emprendedor echa siempre de menos esos momentos iniciales al lanzamiento donde todo puede salir mal y nada bien… ¡es una sensación que engancha!

Nuevo iTunes ¿gratis?

20 Jul

Y es que llevo siguiéndole la pista a este proyecto:

www.gatunes.com

Gatunes

Como véis en la imagen, tiene muy buena pinta, y tiene algo muy diferente a otros de su misma especie (véase www.moof.com, www.lala.com): incluye la música de goear.com. Esto es una novedad puesto que hace que nuestra música no sólo se base en los enormes videos de Youtube, pero también en los ligeros MP3 de este portal.

Los autores, ambos amigos desde los inicios de Tuenti, tienen una filosofía muy clara, trabajan para vivir. Y van desarrollando en esta herramienta a medida que se les va ocurriendo. Ahora están a punto de lanzar una nueva versión, la cual estamos todos esperando con muchas ganas.

¡Enhorabuena a los creadores y espero que os vaya muy bien!

Portátil con 3G integrado

10 Jul

Tengo un Dell XPS M1210 con el que llevo dos años trabajando y jugando -tiene muy buena tarjeta gráfica y además mucha potencia. Pero hace sólo dos meses que descubrí que en Dell tienen un accesorio que es la Dell WAN 5500. Hay que tener en cuenta que solo el portátil XPS con la cámara integrada viene con la antena preparada para VWAN. El resto de los modelos no incluye la antena aunque sí el slot mini PCI para poder instalarla… una pena vamos.

Para poder encargar una, simplemente os váis a la página de Dell donde compráis el módulo desde Irlanda, y aunque os digan que sólo vale para Vodafone, vosotros no hacéis caso de ello ya que en realidad viene liberado pero con una tarjeta SIM de Vodafone que opcionalmente podmeos activar -que obviamente, al ser de Vodafone Irlanda, no vamos a activar-:

Cuando os llegue el paquete, que conmigo tardaron sólo 3 días, lo abrís y empezáis la instalación tal y como reza las instrucciones. Para que os hagáis una idea, detrás del portátil hay una tapa que se abre donde hay dos slots de mini PCI, uno ocupado por la tarjeta WLAN y el otro slot libre. En otros portátiles estos slots se encuentran debajo del teclado, como en los Latitude.

Finalmente una vez instalada la tarjeta y correctamente conectadal a antena, procedemos a encender el portátil con nuestro Linux. El que yo uso es GNU/Linux Debian Lenny con un kernel 2.6.24 con los módulos de HSDA activados y compilados. Por lo que este mini tutorial puede aplicarse a otros Linux que tengan en el kernel activado el soporte de las tarjetas de red WAN con GPRS, HSDA y UMTS.

Usando wvdial, y teneiendo en /etc/wvdial.conf lo siguiente:

[Dialer Defaults]
Phone = *99***1#
Username = MOVISTAR
Password = MOVISTAR
Dial Command = ATDT
Stupid Mode = 1

[Dialer reset]
Modem = /dev/ttyUSB0
Init1 = AT

[Dialer movistar]
Phone = *99***1#
Modem = /dev/ttyUSB0
Baud = 460800
Init2 = ATZ
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ISDN = 0
Modem Type = USB Modem
Init5 =AT+CGDCONT=1,"IP","movistar.es";

He conseguido tener mi portátil conectado a la red HSDA de movistar.

Algunos links interesante:

http://forums.whirlpool.net.au/forum-replies-archive.cfm/668054.html

Mi primer post desde el iphone

27 Ene

Este es el primer post que escribo desde el iphone. De hecho, este es el primer post que escribo desde hace meses. El trabajo y mi despreocupación han hecho que no haya publicado nada hasta hoy.

Esta aplicación para el iphone está fenomenal, porque aunque pueda llevarme el portátil con conexión 3g, con el móvil puedo enviar los artículos in situ en tiempo récord.

Voy a aprovechar más está funcionalidad…

Pero antes tengo que hacerme con con el Autocompletado del escritor de textos del teléfono.

Cómo iniciar una replicación Maestro – Esclavo en MySQL >5.0

3 Dic

La replicación en MySQL funciona de una manera muy sencilla. Existe un maestro, que es el encargado de propagar los cambios y los esclavos, que son los que reciben estos cambios a fin de tener una copia exacta de lo que tiene el maestro.

Para que esto suceda, los esclavos tienen una conexión abierta contínua con el maestro para recibir estos cambios. Con esta conexión se comprueba desde el esclavo la última posición escrita en el log binario del maestro -eso es, se replican por medio del log binario. Cuando sucede algún cambio en el log binario del maestro, se remiten estos cambios a los esclavos, que posteriormente ejecutan estos cambios en sus tabla.s

Para empezar una replicación maestro esclavo sencilla hay que tener como mínimo dos instancias del servidor MySQL, una que haga de maestro y otra que haga de esclavo.

En el maestro tienen que estar las siguientes líneas en el fichero de configuración [my.cnf]:

log-bin=mysql-bin
server-id = 1

Por otro lado, en el esclavo tendremos que tener las siguientes lineas:

server-id = 2

Una vez configurados los servidores, podemos arrancarlos -obviamente aún no van a replicar porque no les hemos indicado que empiecen a replicar.

Cuando estén arrancados, en el maestro creamos o instalamos las tablas y la base de datos que queremos replicar. Cuando estén creadas y hayamos insertado los datos necesarios dentro de las tablas entonces tendremos que hacer un volcado de la base de datos a un archivo de texto. La razón de esto es que vamos a instalar esta misma base de datos en el esclavo. Para ello lo podremos hacer así:

mysql> GRANT REPLICATION PRIVILEGES ON *.bbdd TO 'usuario_replicacion'@'192.168.0.3' IDENTIFIED BY 'pass_replicacion';
mysql> flush privileges;
mysql> LOCK ALL TABLES READ ONLY
mysql> exit

Ahora desde la línea de comandos sacamos un DUMP del maestro:

joax@maestro> mysqldump bbdd > bbdd_dump_20071202.sql

Una vez terminado el proceso, tenemos que recordar la situación del log binario en el master:

mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000005 | 98 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

Con esto ya podemos desbloquear las tablas en el maestro:

mysql> UNLOCK ALL TABLES;

Y con ello, en el esclavo ahora ejecutamos lo siguiente:

joax@esclavo> mysql bbdd < bbdd_dump_20071202.sql

Y una vez que el esclavo tenga generada la base de datos, lo configuramos para que esté posicionado con respecto al maestro:

mysql> CHANGE MASTER TO MASTER_HOST = '192.168.0.2';
mysql> CHANGE MASTER TO MASTER_USER = 'usuario_replicacion';
mysql> CHANGE MASTER TO MASTER_PASSWORD = 'pass_replicacion';
mysql> CHANGE MASTER TO MASTER_LOG_FILE = 'mysql-bin.000005';
mysql> CHANGE MASTER TO MASTER_LOG_POS = 98;
mysql> start slave;

Ahora el esclavo comenzará la replicación con el maestro. Quedándose a 0 segundos de él una vez copiado todo el log binario que le resta de lo sucedido hasta la fecha. Para comprobar que realmente está replicando, tendremos que ejecutar el siguiente comando en la consola de MySQL:

mysql> show slave status \G

Eso muestra:

*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.2
Master_User: usuario_replicacion
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000005
Read_Master_Log_Pos: 98
Relay_Log_File: esclavo-relay-bin.000001
Relay_Log_Pos: 98
Relay_Master_Log_File: mysql-bin.000005
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: bbdd
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 98
Relay_Log_Space: 98
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.00 sec)

Lo importante es lo que sigue a Seconds_Behind_Master: porque es el valor que indica el retraso de este esclavo con respecto al maestro.

En definitiva y a modo de resumen:

1. Cambiar la configuración del maestro con las líneas:

server-id=1
log-bin=mysql-bin

2. Cambiar la configuración del esclavo:

server-id=2

3. Bloquear las tablas del maestro y hacer un dump:

mysql> LOCK ALL TABLES READ ONLY
mysql> SHOW MASTER STATUS
mysql> exit
joax@maestro> mysqldump bbdd > bbdd_dump_20071202.sql

4. Instalar la base de datos en el esclavo:

joax@esclavo> mysql bbdd < bbdd_dump_20071202.sql
mysql> CHANGE MASTER TO MASTER_HOST = '192.168.0.2';
mysql> CHANGE MASTER TO MASTER_USER = 'usuario_replicacion';
mysql> CHANGE MASTER TO MASTER_PASSWORD = 'pass_replicacion';
mysql> CHANGE MASTER TO MASTER_LOG_FILE = 'mysql-bin.000005';
mysql> CHANGE MASTER TO MASTER_LOG_POS = 98;
mysql> start slave;

En un cluster podremos incluir tantos esclavos como necesitemos. He llegado a ver clusteres de varias decenas de esclavos sobre el mismo maestro. Pero son puntos donde a lo mejor tienes que tomar una estrategia de particionado de la base de datos. Estrategia que veremos próximamente.