Gracias a Internet cada día compartimos más información, incluso sin darnos cuenta. ¿Qué tanto pueden llegar a saber las empresas de mí? Algunas herramientas pueden ayudar a hacernos una idea:

  • WolframAlpha Personal Analytics for Facebook– Un análisis de la red social personal, las aplicaciones usadas, patrones de uso, entre otras cosas. En uno de los post sobre la herramienta nos podemos hacer a una idea de lo que nos puede decir sobre nuestra cuenta, pero al probarla podemos descubrir cosas interesantes.

    WolframAlpha
    WolframAlpha
  • LinkedIn dejó de soportar,  hace relativamente poco, InMaps, una herramienta que permitía visualizar la red social y detectar comunidades, algo interesante especialmente por la naturaleza de las conexiones.  Con algo de conocimiento de programación, usando el API de LinkedIn y Gephi, podemos hacerlo.
  • El correo electrónico se ha vuelto parte de nuestras vidas, y se ha resistido a dejar de serlo aunque hayan varias propuestas para reemplazarlo. Immersion del MIT nos permite visualizar los intercambios de correo que hemos realizado y, usando sólo los metadatos, nos permite descubrir información interesante. Especialmente me parece útil ver los cambios que se tienen en las relaciones en el tiempo.
  • Gracias a Google Dashboard podemos ver todos los servicios que usamos de Google en una sola página. Es muy útil, pero no es todo lo que sabe Google sobre nosotros, también podemos revisar cómo nos ve Google Ads (en lo que se basa para mostrarnos publicidad), el historial de búsquedas y el historial de ubicaciones. También podemos exportar los datos usando Google Takeout.
  • Búsqueda de Google y Google Alerts. ¿Qué encontrará quien busque mi nombre en Google? El resultado puede, pero no debería, sorprendernos. Utilizar una alerta de Google para saber qué aparece sobre nosotros en el buscador puede ser una buena idea.
  • Cada vez que visitamos una página no sólo la empresa que visitamos recibe información. Ghostery, una extensión para Google Chrome, y Lightbeam, una extensión para Firefox, nos permiten conocer quién nos rastrea. La visualización que nos ofrece Lightbeam es especialmente atractiva.

Estaba buscando actividades, para asignarles como “Bono” a los estudiantes de algorítmica y programación, y recordé blockly, que permite programar usando elementos visuales (como armar un rompecabezas). Blockly permite generar código en los lenguajes Javascript, Dart, Python o XML. La filosofía del lenguaje de Blocky lo hace perfecto para nuevos programadores.

Mi solución al laberinto (Demo de blockly)
Una solución para el Laberinto

El editor de Blocky es libre (bajo licencia Apache) e implementado en Javascript, lo que permite incluirlo fácilmente en cualquier proyecto web, sin requerimientos especiales en el lado de servidor. Después de hacer checkout y copiarlo al servidor, podemos usar el playground que se encuentra en los test.

Por defecto tiene un conjunto de “bloques” bastante completo, que incluye: Estructuras de control, manipulación de texto, manejo de variables, listas, expresiones aritméticas, expresiones lógicas, definición y llamada a procedimientos. Si necesitamos algo que no está definido, el lenguaje se puede extender fácilmente. Por ejemplo, si quiero que puedan mostrar un mensaje al usuario (Lo que en JavaScript sería un alert…) puedo definir el bloque diciendo en qué categoría se mostrará, que valores tendrá como entrada, si retorna o no un valor, entre otras cosas. Una vez el bloque está definido es necesario implementar los generadores para los lenguajes que queremos soportar (para las funciones incluidas, Blockly incluye generadores para JavaScript, Dart y Python).

if (!Blockly.Language) {
  Blockly.Language = {};
}
Blockly.JavaScript = Blockly.Generator.get('JavaScript');
Blockly.Dart = Blockly.Generator.get('Dart');
Blockly.Python = Blockly.Generator.get('Python');

Blockly.Language.alert = {
  // Bloque para mostrar un mensaje al usuario (alert)
  category: 'Commands',
  helpUrl: 'http://www.christian-ariza.net/techstuff/Blockly#alert',
  init: function() {
    this.setColour(290);
    this.appendTitle('alert');
    this.setPreviousStatement(true);
    this.appendInput('Mensaje', Blockly.INPUT_VALUE, 'MSG');
    this.setNextStatement(true);
    this.setTooltip('Muestra un mensaje (modal) al usuario');
  }
};

Blockly.JavaScript.alert= function (){
  var mensaje=Blockly.JavaScript.valueToCode(this, 'MSG',
      Blockly.JavaScript.ORDER_NONE) || '\'\'';
  console.log(mensaje);
  var code="alert ("+mensaje+");\n";
  return code;
}
Blockly.Dart.alert= function (){
  var mensaje=Blockly.Dart.valueToCode(this, 'MSG',
      Blockly.Dart.ORDER_NONE) || '\'\'';
  console.log(mensaje);
  var code="window.alert ("+mensaje+");\n";
  return code;
}
Blockly.Python.alert= function (){
  var mensaje=Blockly.Python.valueToCode(this, 'MSG',
      Blockly.Python.ORDER_NONE) || '\'\'';
  console.log(mensaje);
  var code="print("+mensaje+")\n";
  return code;
}

Definiendo estos elementos ya podemos usar el nuevo bloque:

Ejemplo usando el nuevo bloque "alert"
Ejemplo usando el nuevo bloque “alert”

El código generado sería:

JavaScript

var x;
var item;
function procedure(x) {
  item = x;
  alert ('Hola');
  alert (item);
}

procedure('Parametro X');

Dart

Para que funcione el alert en Dart, haría falta importar una librería que maneje DOM, ej #import(“dart:dom”), ese import no fue generado (No encontré como especificarlo…)

var x;
var item;
void procedure(x) {
  item = x;
  window.alert ('Hola');
  window.alert (item);
}

main() {
  procedure('Parametro X');
}

Python

x = None
item = None
def procedure(x):
  global item
  item = x
  print('Hola')
  print(item)

procedure('Hola mundo')

Si quieren seguir experimentando con Blockly pueden usar el “ambiente” que usaré en el curso, es básicamente el demo de generador de código, con el bloque alert que acabo de crear. La idea es ir agregándole nuevos bloques según sea necesario para alguna actividad en particular.

Si el experimento de los bonos es un éxito, el siguiente paso será que construyan una aplicación para Android usando el App Inventor,  puede ser para el último nivel del curso :P.

Después de un tiempo sin recomendados vuelven recargados :), y por primera vez separados por categorías :P…

Desarrollo Web

Permanent link to this comic: http://xkcd.com/979/
Wisdom of the Ancients
  • Muchas veces es evidente que un diseño fue hecho por un desarrollador, en especial cuando no lleva mucho tiempo trabajando en la Web. La presentación Design for developers viene a darnos algunas pausas útiles, en especial en cuanto a usabilidad (la palabra es criticada por algunas personas y prefieren el uso de “facilidad de uso” aunque para mí encierra un significado más amplio).
  • Muchas veces necesitamos desarrollar rápidamente aplicaciones web. Bootstrap, de Twitter, es un framework para front-end que nos permite tener rápidamente formularios, tablas, botones, estructura, entre otras cosas usando un pequeño css de sólo 47KB (que se convierten a 6KB si se usa compresión con gzip).
  • Más que en desarrollo debería ir en infraestructura, pero para no crear otra categoría… 😛 Enrique Dans habla sobre por qué demasiado mantenimiento en los datacenters es malo.

Internet

Música

Varios

— Todo lo que no cabe en otra categoría, pero vale la pena revisar 😛

Esto es todo por esta entrega, quedan varios enlaces en el tintero que vendrán en la próxima, que espero no sea tan lejos. 

Los recomendados de la semana llegan mezclando algo de reflexión, comics, social media, entre otras cosas:

  • ¿Por qué marchan los estudiantes?, en contravía, expone los  argumentos de los estudiantes, frente a los del gobierno, sobre la ley 30. Entre otros recursos, la vicerrectoría de sede Bogotá de la universidad Nacional de Colombia ha puesto a disposición del público una recopilación de documentos sobre la reforma para su discusión. 
  • El poyecto “Rooftop” busca rediseñar los trajes de los superheroes de toda la vida. Reciben permanentemente contribuciones, que únicamente deben cumplir sus guidelines.
Project : Rooftop – P:R Redesign : Michelle Sciuto’s Harley Quinns!
Con esto terminan los recomendados de la semana, para cerrar los dejo con el último vídeo de Simon’s Cat  😆

Después de un retiro, en parte explicado por una tesis de maestría, vuelve la actividad al blog 🙂

Los recomendados de esta semana estarán salpicados de html5, música y social media.

Eso es todo por hoy, cerramos con un recomendado musical, Laralala de Patricia Bermúdez:


Después de un par de semanas sin recomendados, con una carga abismal de trabajo, y aunque aún queda mucho por hacer… llegan los enlaces recomendados de la semana, algunos de ellos tienen que ver con Cloud Computing… quienes conozcan mi área de investigación sabrán por qué :P, llega un punto en el que no se deja de trabajar ni en los momentos de ocio 😛

  • Un gran impedimento para la penetración del paradigma Cloud Computing en el mundo empresarial es el manejo de datos en la nube, el nivel de confianza y dependencia hacia el proveedor. SalesForce que ha sabido ganarse la confianza de muchas empresas, lanza Database un SMBD en la nube. Provee autenticación y acceso a los datos a través de estándares abiertos. El hecho de que sea SalesForce quien lo ofrece es una de las razones que llevan a Antonio Ortiz a plantearlo como posible rival para Oracle.
  • Google lanza el programa piloto de Chrome OS, para la gente que vive en la web, ofreciendo un netbook a cada participante. Lástima que para poder participar sea necesario tener un domicilio en los Estados Unidos…
  • Me he sentido identificado con algunas… 32 Síntomas que indican que estás afectado por el desarrollo. (via error500).
  • Más sobre las novedades presentadas en el evento de Googe, sobre Chrome OS, en Genbeta.
  • Priority Inbox de Gmail es una funcionalidad interesante, aunque a veces no funciona como debería y el usuario no se entera el por qué. Ahora Google ha mejorado el algoritmo de priority Inbox y explica por qué se ha marcado el mensaje como importante.
  • Una interesante reflexión sobre reputación y Google en Genbeta.
  • GrooveShark es uno de mis servicios favoritos, sin embargo nunca es malo tener alternativas. Musicuo, es una buena alternativa, desarrollada en html5(aunque con un componente de flash para audio en los navegadores que lo soporten). (via Genbeta)

Esto es todo por el momento, para terminar, una charla animada que dará algo en qué pensar, SMILE OR DIE:

Llegan los recomendados de la semana, mientras puedo sacar tiempo para terminar alguno de los post que tengo en borrador(entre otros… el de Mahout, una reflexión y algunos delirios)  😛

  • A veces queremos ejecutar una aplicación sin necesidad de instalarla y manteniendo la configuración, para eso llega Spoon que nos ofrece la Virtualización de aplicaciones desde la nube. Aún le falta ser multiplataforma, pero prometen que lo será. Via Genbeta. (También vale la pena darle un vistazo a Spoon Server)
  • Enrique Dans comparte un genial corto, CineEspañol, algo de humor sobre el mundo del cine en España.
  • Nadie puede negar que el equipo de Google Chrome sabe algunas cosas sobre la Web y los navegadores. Por eso vale la pena darle al menos una ojeada a 20 Things I learned about browsers and the web. Las ilustraciones y animaciones en html5 son un plus.
  • La capacidad de cambiar de opinión no exclusiva ni inherente al ser humano. Eduardo Punset habla de la capacidad de cambiar de opinión y de simular una situación como indicadores de inteligencia en Acostumbramos a vivir por encima de nuestros medios.
  • Cuando pensamos en un PetaByte, probablemente no estamos consientes de la magnitud que representa, la infografía How much is a petabyte nos da una idea. (vía microsiervos)

Eso es todo por el momento, para terminar una genial caricatura de Montt, a más de uno le recordará algo.

Los recomendados de esta semana vienen cargados de diferentes temas: SEO, aplicaciones….

Para terminar, ahora que se acerca Navidad (y muchas personas la celebran desde octubre…) una genial caricatura de Montt:

Llegan los recomendados de la semana, con algunos eventos, lanzamientos, herramientas y artículos:

Eso es todo por ésta ocasión, terminemos con un anuncio de Google, vía la Cocina creativa.