In order to share a wesbite in facebook you can use a simple link like this:{url_to_your_website}

Facebook will scrap the contents of the provided URL and will use it to fill the text and image to be displayed in your wall.
If you want to make sure which image and title is displayed, you can use the OpenGraf tags:

<meta property="og:image" content="{absolute_path_to_your_image_URL}"/ >
<meta property="og:title" content="{your_title_here}"/ >

Note that the image URL must be absolute; I haven’t been able to use relative ones.

I’ve seen suggested to also include this tag “just in case”:
<link rel="image_src" href="{absolute_path_to_your_image_URL}"/ >

But I didn’t use it and it worked well anyway.

Also, keep in mind that Facebook will cache the URL (and the image), so you may want to try adding a random parameter to the URL (i.e. “?v1”, “?v2”, etc…).
Facebook has an online debugging to test this sort of stuff, check it out here:

Regarding the image, it will be scaled to fit in the available area. Looks like a square shape (as opposed to a rectangle one) works best.


So, I just enrolled the Model Thinking (MT) online course by Stanford University. Here’s the first one of a series of posts covering the course and containing my personal notes. As you’ll see, these are pretty brief and schematic. They are mainly for personal use, but I’m sharing it here so that you can discuss/criticize/expand if you want. Hopefully I’ll have more clear ideas by the end of the course… :)

Reasons for Model Thinking

  1. Understand the world: The world is a complex system containing all kinds of subsystems and patterns. MT provides methodologies to make sense of it.
  2. Better thinking: Thought is influenced by all kinds of personal, historical and cultural parameters. MT helps out by providing a rational and abstract point of view.
  3. Understand data: Nowadays, we have far too much information. And it is usually convoluted as a hairball. MT aims to set things appart and make them understandable as a whole.
  4. Better design strategies: Reaching goals requires good planning, getting ready. MT brings formal tools to do so.


Course Structure

Although the course is intended to be non-linear so that you can jump from unit to unit based on your own needs, here’s the structured list of sections:

  1. Introduction: Why Model? 
    – Why Model
    - Intelligent Citizens of the World
    – Thinking More Clearly
    – Using and Understanding Data
    – Using Models to Decide, Strategize, and Design
  2. Segregation and Peer Effects
    – Sorting and Peer Effects Introduction
    – Schelling’s Segregation Model
    – Measuring Segregation
    – Peer Effects
    – The Standing Ovation Model
    – The Identification Problem
  3. Aggregation
    - Central Limit Theorem
    - Six Sigma
    - Game of Life
    - Cellular Automata
    - Preference Aggregation
  4. Decision Models
    - Introduction to Decision Making
    – Multi-Criterion Decision Making
    – Spatial Choice Models
    – Probability: The Basics
    – Decision Trees
    – Value of Information
Each section is structured like this:
  • The Model (theoretical background)
    – Assumptions
    – Results
    – Applications
  • Technical Details (how to put it into practice)
    – Measures
    – Proofs (easy, medium, hard math)
    –  Practice problems
  • Fertility (What are the outcomes?)
    – What is the model for
    – How does it work

Course Format

The course is based on a series of video lectures (from 8 to 15 minutes length), some of which contain questions within to make sure you follow the main concepts involved. It also includes some readings accessible through a Wiki, assignments to practice relevant topics, and quizzes to test it all out. Finally, a discussion forum serves as a community hub / helping platform.


* * *

Are you enrolled in this course? Started the lectures? Please leave a comment if you think there’s something missing or wrong in this article. Thanks!



[Update: Actually, some of the courses are not Stanford’s but Berkeley’s, California U’s, and more… which can be grouped under the Coursera umbrella. I just updated the post title to reflect this.]

I’ve been keeping an eye on Stanford University‘s free online courses, most of which are starting this month. They look like an interesting (and affordable!) way to gather new knowledge/skills at your own pace. Teachers are renowned professionals and academics, and the multimedia format of the courses look like they’ll be fun and comfortable to follow (they consist of video lectures, transcripts, slides, assignments and quizzes). Here’s the list of announced courses (please let me know if I’m missing anything):

Taking any of these courses require some considerable amount of time, suggesting about  5-10 hours a week, which can be a bit tricky to achieve if you are engaged in a 9-to-5 job, do some regular sport and have a family to take care of. If you are interested in more than one of these courses, your weekly schedule will get even tighter.

Nevertheless, I signed-up to some of them and decided to give’em a try. As an intent to help myself keep up with the courses, I’m planning to publish a series of brief posts here in this blog containing my class notes. I’ll be doing this mostly for my own consumption, so don’t expect them to be truly insightful. However, clarification comments or questions are more than welcome.

Esta tarde me he acercado a la clase de Comunicación que Conor Neill ha impartido en IESE, organizada por el grupo Barcelona Internet Startups de Meetup, así que he decidido publicar este post para recopilar algunas notas que he tomado.

Con el título “Develop Your Communication Skills: Moving People to Action“, la charla (y no solo charla, porque algún ejercicio nos ha tocado hacer) ha girado en torno al uso de la palabra como herramienta de persuasión (que no de manipulación). Hemos empezado con un breve repaso de los orígenes de la retórica y sus tres pilares:

  • Logos (premisas racionales, argumentación lógica)
  • Ethos (reputación o credibilidad que merece el interlocutor)
  • Pathos (componente emocional)

Todo buen comunicador debe cuidar cada una de estas dimensiones en su justa medida, pues ninguna es prescindible y se complementan entre sí.

Barcelona Internet Startups MeetUp groupSin embargo, más importante que lo que uno dice, suele ser lo que uno escucha. Conor ha hecho hincapié en la necesidad de saber escuchar activamente. Desde niños aprendemos que en un debate o conversación lo normal es defender nuestras convicciones e ideas, a menudo confrontando e incluso rechazando las de los demás. Pero de este modo es muy difícil sacar nada útil de la conversación. Escuchando uno conoce las necesidades y problemas de los demás, de su manera de ver el mundo, de su contexto. Y de ahí puede uno aprender, obtener información nueva. Como no podía ser de otro modo, el principio de Pareto no ha tardado en aparecer: en una conversación uno debería intentar invertir un 80% de su tiempo en escuchar y un 20% en hablar. Como todos sabemos, la mayoría tendemos a invertir esta proporción.

Pero la cosa iba de persuasión; de la idea aristotélica de influenciar a los demás en su pensamiento guiándoles hacia nuestras ideas e impulsándoles a la acción. Por tanto, al preparar una charla uno debería preguntarse “Cuando termine de hablar, ¿qué hará mi audiencia?”. Es decir, enfocar el contenido y la forma de la comunicación hacia un objetivo claro en cuanto a qué acción se quiere obtener. Aplicado a los negocios, la comunicación siempre persigue (o debería perseguir) dos objetivos:

  • Aprender (obtener información; del mercado, del producto…)
  • Cambiar mentes (percepción de la marca, predisposición del cliente…)

Y he aquí un concepto clave de la case de hoy:

La gente no se resiste al cambio. Se resiste a ser cambiada

Morihei Ueshiba, maestro fundador del aikido. Fuente: Wikipedia

O sea, que las personas no tenemos en general problemas en cambiar nuestras convicciones o ideas iniciales siempre y cuando seamos nosotros quienes lideran dicho cambio. Si el cambio viene impuesto desde fuera, se produce un efecto de rechazo que contraviene el objetivo inicial. De este modo, para conseguir el cambio en los demás debemos escuchar para conocer sus inquietudes, evitar la confrontación y en su lugar empatizar (se ha mencionado aquí cierto paralelismo con los principios del Aikido) y dedicarnos a guiar ese cambio desde el acompañamiento y no desde el enfrentamiento.






After a really long time without running Flash CS5, today I decided to do so in order to generate some graphic assets for a game I’m planning to develop. I do all my ActionScript code with Flash Builder 4.5, so I decided to follow the nice instructions found in this article by Big SpaceShip.The article is rather old, but still I’ve found this workflow pretty useful in the past, so decided to give it a go.

Basically, what you do is set up a Flash Builder project with all your code base on one side, and a Flash (*.fla) file containing all graphic stuff (MovieClips) in the other. Some simple code in the *.fla file allows compiling from there (nice if you want to test things straight away ) while still being able to compile from Flash Builder as well (which is what you’ll probably want to do more often than not, given its far superior debugging/coding capabilities).

The mentioned article is easy to follow, and going through the instructions step by step will get you a running draft in few minutes. However, chances are that after compiling and running the project in Flash Builder you get an error like this:

ReferenceError: Error #1069:
Property assets_container not found on Test3_fla.MainTimeline__Preloader__ and there is no default value.

When I got this in the console panel, first thing I thought was: WTF? “__Preloader__”? Did I put anything remotely similar to that in my *.fla file? Of course, I searched for that both in the timeline and library; double checked that the fla’s main timeline actually contained an instance named “assets_container”, that the swf had been recently published, and so on. After a few minutes trying to find what was going on, Google got me this answer from Adobe’s support pages:

When loading child SWFs that contain Text Layout Framework (TLF) content into a parent SWF, you receive reference errors due to the preloading methods used by TLF.

I had no idea I was using the TLF thingie at all, but indeed I had some textfields around, so looked like this could help me solve the problem. However, the suggested solutions in that article are:

  • Complicated procedure involving specific asset linkage method, preloading frames, and other devils
  • Using a custom Loader class (available attached to the article)

Maybe these are really the only options for certain project configurations. In my case, though, having a really simple Flash file with a few MovieClips here and there, I could solve it just by publishing the swf again, this time as a Flash 9 movie:

File -> Publish Settings -> Flash -> Player: Flash Player 9 (instead of Flash Player 10, which is what you’ll probably have by default)