2008/12/31

2009


2009, originally uploaded by -Xv.

Enjoy!

2008/12/28

Patience

Memo to self:

Do you have the patience to wait
till your mud settles and the water is clear?
Can you remain unmoving
till the right action arises by itself?
Lao-Tzu (Tao Te Ching)

Nope. The mud has not settled. Have to wait.

2008/12/21

Hipòtesi confirmada

M'he passat anys convençut de que hi uns pocs bons amics de fa mil anys, amb els que hi ha poquíssim contacte, als que podria recórrer en qualsevol moment. I sentir-me còmode explicant coses que no explicaria gairebé a ningú. I sentir-me alleujat en explicar-ho.

Avui he tingut moltes ganes de confirmar aquesta hipòtesi amb una d'aquestes perles que vaig conèixer fa més de vint-i-cinc anys. I m'he sentit còmode i alleujat. Estic content.

2008/12/18

No son cosas

Siguiendo con mi ánimo sermoneante...

No es una lavadora. No es ni un perro ni un hamster. Ya no es un bebé. Pero no es nada raro encontrarme a alguien por ahí que describe los defectos y virtudes de su hijo a otra persona como si el niño no estuviera ahí.
¿Te has imaginado alguna vez que como te sentirías si te lo hicieran a ti?
¡Yuju! ¡Respeto!

2008/12/16

En los zapatos de los niños

Un gracioso y buen ejemplo de la poca capacidad que solemos tener los adultos de ponernos en los zapatos de los niños. Del suplemento es de La Vanguardia:

"¿Cómo te sentirías si tu pareja trajera a otra persona a vivir en casa y te dijera que no te preocupes, que quiere mucho a esa persona y la tienes que tratar muy bien pero que eso no quiere decir que a ti te vaya a querer menos?"
Los psicólogos recurren a esta reflexión para hacer entender a los padres que los celos y la rivalidad entre hermanos son una reacción natural, tan normal que lo que se considera extraño es que un niño no sienta celos.
Y, ya que estamos de sermón, un recordatorio de servicio público: son pequeños, no idiotas.

2008/12/10

Pushing agility from the business side?

A possible scenario:

1. IT happy with status-quo: Big Design Up Front and Waterfall.
2. Stakeholders accept non-agility as a fact of life.
3.Tell stakeholders that they are entitled to learn, to defer
decisions until the have more info, to change their opinion. That some
of their competitors use those right to their advantage.
4. Stakeholders will push agility upon IT

Just in case it helps Ferran Rodenas to get some idea to break the status-quo

2008/12/09

Some notes about troubleshooting

From Why Programs Fails: A Guide to Systematic Debugging:

Some terminology: from defects to failures

  1. The programmer creates a defect.
  2. The defect causes an infection (the program state differs from what the programmer intended)
  3. The infection propagates
  4. The infection causes a failure (an externally observable error in the program state).

Debugging can be decomposed into seven steps:
Track the problem in the database
Reproduce the failure
Automate and simplify the test case
Find possible infection origins
Focus on the most likely origins:
Known infections
Causes in state, code, and input
Anomalies
Code smells
Isolate the infection chain
Correct the defect

Note the TRAFFIC mnemonic.

Opinion ON:

That's nice theory. Unfortunately, the complexity of IT has teached us that computers are non-deterministic beasts. The first thing that we do in case of a problem is restart the system, hope that the problem will go away, and be able to keep doing our job. And it often works.

But we, software developers and support technicians, need to un-learn our hide the symptoms urge. If we suspect that there is some defect in the code (and trust this old software developer, you can be confindent that it very likely that there is one), our goal should always be to find the defect, instead of changing things so that the defect is not executed or the infection does not end up causing a failure. Leaving that defect unfixed is very likely to cause pain in a future situation. À la programming by coincidence.

Some advice
  • avoid corrective actions before the issue is understood. Before the failing code is identified, you should only use temporary corrective actions to help you frame the problem. I'm guilty of having neglected this rule lots of times, and requested customers to just upgrade the code to see if the issue goes away.
  • when possible, use tools that minimize the infection propagation (that, crash as soon as possible). On Windows, I was recently introduced to pageheap and I'm in love with. More on it another day.
  • defects come from source code: give support technicians access and knowledge to read the source code. Support people and developers should change seats quite often.

2008/12/07

Present and in awe

From Anne Lamott's Bird by Bird (p100):

Try walking around with a child who's going, "Wow, wow! Look at that dirty dog! Look at that burned-down house! Look at that red sky!" And the child points and you look, and see, and start going "Wow! Look at huge crazy hedge! Look at that teeny little baby! Look at that scary dark cloud!" I think this is how we are supposed to be in the world - present an in awe.
Some times, like when my kids were very young, or when I'm experiencing some special scenery, this view of the world comes naturally. Others, I'm smart enough to remember to put the inner child in control.


I've spent the last few weeks walking in the street as if I were the Little Red Riding Hood on synthetic recreational drugs (smile boing-boing-boing smile), and I realized that it had lots to do with the inner child getting in control without asking for permission. This reminded me about Lamott's quote, and, in turn, to remind myself to keep letting the inner child handle the driving wheel.

2008/12/03

Macacos

Ayer envié esto, en relación a mi actuación como enlace con el equipo de soporte de un producto del que no sé casi nada, en la que últimamente me limito a esperar órdenes de gente que está en una zona horaria equivocada:

Entiendo que el problema está en un punto en el que yo aporto poco más que un macaco al teclado
Si hay suerte, hoy le pasaré los trastos a un chimpancé y podré dedicarme a cosas más interesantes. Deberé enseñarle a Pobre Chimpancé algunas cosas que he aprendido cuando he sido yo el que daba soporte:
  • que hay que ser paciente y no irritarse cuando te preguntan por séptima vez la misma cosa: no es nada personal.
  • que entre lo que digan los logs y lo que digas tú, soporte no dudará en creer lo que dicen los logs. Y te preguntarán una octava vez.
¡Oh, queridos ex-clientes! ¡Estos días he comprendido a qué torturas os he sometido durante tantos años!

2008/12/02

Resum executiu

Dropped ice-cream
Extractes d'un intercanvi de notes sms-iques entre la meva bona amiga O. i jo, durant i després d'un tercer grau:

Xavier:

M., del 71 (...) Amb un punt de chiflada que em mola molt. Seguiremos informando.
Xavier:
>Seguiremos informando.
M'ha plantat.
Dos mesos molt divers. Una pena. Joder, que en sou de complicades!
O.:
La generació dels 70 va abusar massa de les drogues i han quedat tots molt perjudicats.
Carpe diem.
:-)

La petita lluita entre lamentar-me pel cucurutxo que no m'he cruspit i sentir-me afortunat d'haver-ne fet un tastet l'està guanyant l'opció intel·ligent.
Recreation by Chris Glass of a NY subway sign replacement by True

2008/11/30

Exhibición impúdica

Esta semana me han dado varias pastillas de Egolín en forma de cosas agradables sobre mi que alguien le ha dicho a otra persona. Y, con toda la inmodestia, las transcribo

  • Tu padre mola. Se lo ha dicho a G. un compañero de cole, supongo que sorprendido de que un adulto recuerde que tiene piernas y las use para hacer carreras por el parque.
  • Xavier's assistance on this issue was most appreciated, en relación a una actuación de bombero en un cliente.
  • Xavier a fait un excellent travail en décrivant les étapes du project (...) Xavier est un excellent professionnel.
Y como, a pesar de un buen principio, no ha sido una semana brillante en todos los frentes, ¡no me ha ido mal enterarme!

Actualización: aunque esta me la han dicho directamente, también ha sido una deliciosa pastilla de Egolín: Una de las primeras personas a las que acudo cuando tengo problemas de código y me quedo bloqueado. Y una de las más desinteresadas y resolutivas. Gracias.

Pastillas naranjas

2008/11/25

Tweets my friends like

Twitter lets you mark as favorites the tweets you like. Some people doesn't care about this, but others do add stars to tweets that are fun, enlightening, or both. I wanted to be aware of what my twitter friends mark as favorite, and after no obvious google hit, Yahoo! Pipes came again to the rescue.


The pipe creates a feed with the tweets that some one's contacts have marked as a favorite. Keep in mind that it only works for the up to 36 contacts that are shown in a user's page, since I did not want to get into the authentication issues required to get a full list of contacts. If you want, you can add additional users, that don't need to be your contacts.

Customize it with your accounts and grab it at http://pipes.yahoo.com/xverges/friendsfavs.

Credits: Microformat-scrapping the page is the only way I that found to get access to a list of contacts without authentication. I used Duane Cato's Microformats contacts extractor as a starting point, and just copied how he uses http://microformatique.com/optimus/ to grab the info that twitter kindly puts in hCards.

2008/11/21

PAPItastimumoadeuunpato

Letter
La C. ha fet el millor ús del Dymo que s'ha fet mai!

2008/11/19

ABCs of z/OS System Programming

One of the side effects of my recent research has been to learn that the famous ABCs of System Programming redbooks have been updated and have gone from 5 volumes to... 11!!

I've been browsing Volume 6: Security on z/OS, RACF, and LDAP. Kerberos and PKI. Cryptography and EIM. and it has been quite useful (though, in fact, it did not point me where I needed to go). Not all the volumes have been published as today. The pages for all the volumes list them all.

Certificate-based logon to zOS

DCAS (zOS Communications Server's Digital Certificate Access Server) has come to my rescue. From the docs:

The DCAS can be used by providers of logon and single sign-on services where access to z/OS-based applications is needed. The DCAS is a TCP/IP server that enables clients to connect over the network and obtain a passticket and z/OS user ID from RACF.

Clients that connect to DCAS must use the SSL protocol (DCAS supports SSL Version 3). Client authentication is performed.

Clients can request a user ID and passticket for an application. The client sends an x.509 certificate. DCAS converts the x.509 certificate to a valid user ID, which is returned. The x.509 certificate must have been mapped to a valid user ID in RACF
It's the second time in a few months that DCAS is the solution to the problem that I'm working on; unfortunately, I had forgotten about the first time, so it has taken my a while to get rescued. Not a complete waste of time: if learned a few things about PKI and RACF.

The first time it was about a service to generate passtickets (strings that can be used as passwords for a short while). Despite my recommendation, the customer's choice was to not use DCAS and code it from scratch; go figure.

Now it is about authenticating to RACF from a application that uses a smartcard reader. I'm looking forward to code the smartcard-based RACF logon, since working with smartcards has been in my wish list for very long.

And since google and DCAS don't seem to be big friends, I'm posting this.

2008/11/17

Kyrgyzstan existe



Intercambio de mails con un amigo al que he visto sólo una noche en los últimos 15 años. Está en viaje de negocios:

Pue si hijo si, no hay nada mas triste que en Kyrgyzstan y con jet lag...

Kyrgyzstan??!! Kirguistán, Kirguizistán o República Kirguisa??!! De la wikipedia, algunos datos no especialmente relevantes:
  • 5 millones de habitantes
  • la "Suiza de Asia central", no por el chocolate, los bancos o los relojes, sino por no tener mar y porque un 80% de su territorio es montañoso
  • aunque ilegal, aun se practica el rapto de novias. En un principio, en un país donde eran habituales los matrimonios pactados, el novio procedía a un rapto consesuado con la novia con la que quería casarse si no podía pagar el precio del mismo o la familia de ella se oponía a la boda. Por otra parte, algunos de estos raptos ya no son consensuados, sino que se tratan de raptos reales.
  • un amor de clima: el lago Issyk-Kul (el segundo lago de montaña más grande del mundo, tras el Titicaca) tiene gran amplitud térmica, con un mes frío, enero, con medias inferiores a -25ºC, y un mes cálido, julio, con medias superiores a los 45ºC.

Si su bandera no es la más chula del mundo, seguro que está en la final. Los cuarenta rayos de sol representan las cuarenta tribus que se unieron para luchar contra Genghis Khan. La parte central es lo que se ve dentro de una yurta cuando sale el sol.
Y, diga lo que diga el pobre Jose, en flickr he visto cosas que me hacen tenerle envidia.

Jurta - Kyrgyzstan
Jurta - Kyrgyzstan, originally uploaded by zsoolt.

2008/11/15

Som àngels!

Angel
Young angel
Visca el majara que ha enganxat unes ales de cartulina a la parada d'autobús i ens ha fet riure abans d'anar a l'escola!

2008/11/11

Aprendre

Aquest matí he plorat de content i li he enviat això al meu fill

Estimat G,

avui he trobat una cosa que vaig escriure fa uns anys, després de llegir una carta teva al Papà Noel. Potser tu ho recordes, però jo no ho recordava, i m'ha encantat trobar-ho. Explica-li a la mamà que segur que també li agradarà.

Després de la teva llista de joguines deies una cosa semblant a,

però el millor regal seria que em contestesis a aquestes preguntes
  • Tens ajudants? [s][n]
  • Quants? [_][_][_][_][_]
  • Dones els regals als nens d'aqui i els d'Australia al mateix temps?
Voler aprendre és el que ens fa llestos. Que mai et marxin aquestes ganes de saber més!

2008/11/08

Got no desk :-(


Got no desk :-(, originally uploaded by -Xv.

My very own ibm desk is gone... No place to hang C's drawings, to keep my pencils (I really just care about the one that was a present from C.), the books I'm reading... I'll also miss sitting by my former team mates after so many years...

But I really cannot complain: I'm working very often from home now, so it makes little business sense to have a dedicated empty desk at the office.

2008/10/09

Passion for the craft

Denilson Nastacio's unsolicited advice to executive teams:

promote a passion for the craft rather than demanding a passion for the business. That is empowerment over chastisement. People who understand their craft are more likely to be enthusiastic about it, when people discover they can learn something new and become good at it, they are inspired; with any luck, even passionate.

When people are enthusiastic about what they do, and that boundless enthusiasm is backed by technique rather than unchecked madness, customers tend to love it too. And when that feeling of elation comes out of succeeding at a task or beating a competitor, chalk one up to a job well planed and well done, not for passion for the business.



My own unsolicited advice? Read Denilson's full post, keep in mind his story about that goalkeeper's career, and enjoy being passionate (about something you can understand and can take away with you wherever you go).

Mmmm, I'm now scheduling a meeting with myself to review my latest career decisions. (Hi, M-the-sweet-hurricane! My being green with envy about your passion and focus on working on a radical career change also have lots to do with this meeting :-)

2008/10/07

2008/09/27

sprintf_s() is not snprintf()

You are compiling some legacy code with Microsoft Visual Studio. You get a warning telling you
warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead.
Of course! So you just change that dangerous sprintf() for a sprintf_s(). The IDE tells you about an additional buffer size parameter, so you may wrongly end up thinking that you are getting the equivalent to Unix's snprintf() or the old MSV _snprintf().

Nope. If you read the docs, you'll learn that sprintf_s() is not truncating the string, but instead invoking the run-time invalid parameter handler, and usually terminating the program. Far better than letting a buffer overflow happen, but maybe not what you were expecting.

La mujer del viajero en el tiempo


Sábado pegado al sillón por culpa de La mujer del viajero en el tiempo. de Audrey Niffenegger. No creo que esta haya sido la última vez que lo leo.

2008/09/24

Happy Stop Software Patents Day!



The problems with software patents go far beyond those trivial patents that get linked from time to time.

Usual disclaimer
(stolen from Read This Blog!) applies here specially: IBM has its opinions and plans; I have mine. Any resemblance between the two is coincidental

2008/09/14

Links are cool. Links are bad.

Some days I spend way too much time in my computer...







Drawn with Animatee in my lovely Nintendo DS.

2008/08/09

Verbose business cards

Learned from Kellypuffs that linkedin users can get 50 free MOO cards. Enter Jonathan Feinberg's Wordle (and a bit of javascript).




2008/08/05

Gmail will automatically invite some contacts

Gmail will automatically invite some contacts

If there are other Gmail users whom you frequently email, you'll be able to chat and see each other online without having to send an invitation.
This wasn't the default setting some time ago, now it is, and I think it shouldn't be. To make it worse, disabling this behaviour is not reliable. My privacy is not happy.

2008/08/03

Falta chico con experiencia

Uno ya se va acostumbrando a que el papel del programador no se valore mucho, incluso por gente que se supone mejor informada, pero esta perla me ha hecho reir:

Falta chico con experiencia en programación PHP, AJAX, MySql, sistemas, etc. También precisamos un diseñador gráfico manejando bien Photoshop y Flash. Interesados enviar CV con datos completos, teléfono de contacto y horario para llamar. Si cumples el perfil puedes tener una entrevista de inmediato.

2008/08/02

Keep hopes up (textual street art)


More brilliant street art enjoyed today while sitting at home...

The Loch Ness Monster in NYC


Some brilliant street art by Joshua Allen Harris made emerge some months ago an inflatable Nessy in the streets of New York City.

2008/07/10

Another reason to want a DS...

...and another reason why Sacha Chua rocks: How to sketch with the Nintendo DS



And while you are at slideshare, check Sacha's Web2.0@work: In Pursuit Of Passion:

I liked the "Cynicism (...) directly affects the bottom line" quote from Dov Seidman's How. And, for that matter, falling into cynicism also makes work suck.

2008/07/06

2008/06/30

Jornades de Programari Lliure


Dimecres comencen les VII Jornades de Programari Lliure. Programa al Google Calendar.

Si m'ho puc apanyar, vull anar a

  • Dijous 12:30 - 13:00.
    Aprenentatge de la Programació al Citilab: Squeak i Scratch
  • Divendres 13:00-14:00.
    eyeOS
    : Portant el Sistema Operatiu a la Xarxa
  • Divendres 15:30-16:30.
    Eines de virtualització lliures per a sistemes GNU/Linux
  • Divendres 16:30-19:00.
    Taller d’Arduinos (open-hardware)

M'ho pugui apanyar o no, dissabte aniré a la Jornada de Python (de 10:00 a 14:00), doncs he dit que faria una xerrada sobre Sugar, l'interface d'usuari del XO o OLPC o $100 Laptop

2008/06/11

SuperHappyDevHouseBarcelona polls

Baby steps towards having a hackathon event that combines serious and not-so-serious productivity with a fun and exciting party atmosphere: SuperHappyDevHouseBarcelona... two polls:

2008/06/05

The BallmerBot

Segway+Ballmer=The BallmerBot

Ok, not a segway but a uBot-5 from The Laboratory for Perceptual Robotics at UMass, Amherst.

Picture by Simon Bisson


Video: BallmerBot

2008/06/01

SuperHappyDevHouseBarcelona? Why not?

SuperHappyDevHouse is a non-exclusive event intended for creative and curious people interested in technology. We're about knowledge sharing, technology exploration, and ad-hoc collaboration. Come to have fun, build things, learn things, and meet new people. It's called hacker culture, and we're here to encourage it.
I've been wanting to attend to something similar to SuperHappyDevHouse since I first heard about it years ago, thanks to an intranet post by Tessa Lau telling how much she enjoyed one.

It shouldn't be too hard to find a handfull of people in Barcelona interested in a hackathon event that combines serious and not-so-serious productivity with a fun and exciting party atmosphere. Summer nights are nice, and probably there are higher chances to find available venues. Mmm...

Next actions:
  • get first reactions from fellow hackers (and hopefully draft co-organizers)
  • explore some venue candidates. I don't have high hopes of finding one that allows a dusk-dawn event (the format of the first editions), but a shorter/earlier hackaton would also be cool.

2008/05/29

Milers de blocs a les escoles


Via janquim, aprenc que a http://blocs.xtec.cat/ hi ha més de 11.000 blocs d'escoles, d'accéss lliure i privat. La meva escola en té un!

2008/05/22

Why are we able to answer emails on sunday...

...but unable to go to the movies on Monday afternoons?

Why can't we take the kids to wok if we can take work home?

Those are very good questions asked by Ricardo Semler in his The Seven-Day Weekend.

2008/05/20

Why most organizations grow fat



"Piled Higher and Deeper" by Jorge Cham
www.phdcomics.com


2008/05/19

Notes to self (voice to gmail)

I often use my phone as a voice recorder to keep track of things that I don't want to forget while on the go. It has proven to be more reliable than my unreadable hand written notes. As an additional bonus, my kids love the idea and they often want to have their say in the recording, so processing the voice notes is often more fun than just listening to my odd ideas.

1955 portable recorder
However, the phone's interface to listen to them is quite crappy, and checking if I have some unprocessed note has not become part of my habits. They really belong in my mail inbox, so I now have setup things to send them to my gmail account (after an unsuccessful attempt of using ShoZu, that's already gone from my phone).

Teaching my Sony Ericsson k610i to contact gmail has not been obvious, since the net seems to be full of uninformed advice about this. As correctly reported here, the problem is that the phone is missing a root certificate required by to verify smpt.gmail.com. To fix it,

  1. Download a zip with a bunch of root certificates from http://www.thawte.com/roots/ (no need to answer to the form that you get there)
  2. Extract the missing certificate,
    thawte-roots.zip\Thawte Primary Root CA\Thawte_Primary_Root_CA.cer
  3. Send it to the phone using bluetooth, so that the phone recognizes it and prompts you to install it.
I only use the native email interface to be able to quickly send files from the phone, since http://www.google.com/mobile/mail feels more convenient.

I also had to upgrade RealPlayer to be able to listen the AMR format used by the phone. And fix the wrong .3gp extension associated to mime type audio/amr in HKEY_CLASSES_ROOT\MIME\Database\Content Type\audio/AMR

2008/05/15

Children are viruses

I'd love to run without anti-virus and anti-spyware, but children (especially teenagers) are incredibly adept at filling any PC with trojans and viruses in a matter of minutes. They even know how to bypass most internet filter software. I sometimes think children are viruses!

Seen on a comment on a Coding Horror post about the performance hit of antivirus software (what we really need is Anti-Anti-Virus software to keep us safe from the ongoing Anti-Virus software pandemic).

Ory Segal (an IBMer after watchfire's acquisition) also "celebrates" 20 years of anti-virus software.

2008/05/01

Back in the U.S.S.R.


East Germany may no longer exist, but now we have companies featuring central planning by Troikas, mission statements crafted by apparatchiks, quinquennial planning, no right to choose leaders in companies, no democracy in the workplace, a clear distinction between intelligentsia and peasants (top CEOs make 512 times the median salary and enjoy company 'dachas', jets and limos), and 'state' monitoring (time clocks, dress codes, drug-screening, 'employee assistance' plans, e-mail monitoring, smoking and personal conduct rules, as family-life audits). [1]
This is not a quote from a labor union leader, an anti-globalization essay or a witty comedian. It's from a proponent of democracy and transparency in the workplace that happens to be a business owner putting his money where his unconventional mouth is [2]: Ricardo Semler, in The Seven-Day Weekend [3].

I loved this book, even if its writing style is not that great. Its main point is showing how Semco, Semler's company is run. When Semler and Clovis Bojikian started changing the traditional command and control ways,
"We wanted to demonstrate that the workplace could be a place of satisfaction, not of suffering. Work should be a pleasure, not an obligation. But this wasn’t just some humanitarian thesis. We believed that people working with pleasure could be much more productive.”
To Semler, it's not about values: it's about competitive advantage.

Hurry up and read his book, or take a peek into The Semco Way by reading a 1989 article by Semler in the Harvard Business Review or a 2006 article about him in Strategy+Business. I'm sure that it will give you lots of food for thought.

[1] Soviet/Corpororate parallels quote: It's a funny coincidence that I read this during International Workers' Day
[2] Unconventional mouth quote: by Geoffrey Colvin in a Fortune article
[3] Even if Semler is a best selling author, I never heard about him until I recently read a post by Jon Lister. Thanks so much, Jon!

2008/04/15

A simple way to manage Firefox privileges

If you are familiar with the 'enhanced abilities' Firefox security prompt, and you ever clicked on the 'Remember this decision' check box

you may want to check http://firefoxprivileges.tiddlyspot.com.

When this prompt appears as a result of loading a file from your hard drive, you may not be aware of the exact meaning of the 'Remember this decision' check box. While you probably mean "I trust this file and I don't want you to annoy me anymore", Firefox understands "I trust every html file loaded from the hard drive". This broad trust is not a good idea from the security point of view.

This tool allows to easily cancel that effects of "remember this", and tell Firefox that you only trust some specific files (per-file permissions). Before hacking it, I used to have to mess with the user.js file, much less convenient.

The tool is implemented as a TiddlyWiki plugin. If you are not familiar with TiddlyWikis (super cool wikis in a single file), this is a good chance to get to know them.

Edit:
Some strings to make this post googleable for the right people:
UniversalXPConnect UniversalBrowserRead UniversalBrowserWrite UniversalFileRead CapabilityPreferencesAccess UniversalPreferencesRead UniversalPreferencesWrite
netscape.security.PrivilegeManager.enablePrivilege signed.applets.codebase_principal_support

2008/04/03

In YouTube times...

...I don't want to have to download (and install!?) your video. And I don't want to have to find out what is the missing codec that I need to view it. And if you have been nice/smart enough to create a transcript of your video, don't make it only accessible from the huge installer.

Breathing, forgetting about the wasted time in my Introduction to Visual Web Developer 2008 Express Edition video fiasco, and going back to work...

2008/03/11

Do Take Notes

Manuel Blum:

Finite Automata can add but not multiply.
Turing Machines can compute any computable function.
Turing machines are incredibly more powerful than Finite Automata.
Yet the only difference between a FA and a TM is that the TM, unlike the FA, has paper and pencil.
Think about it.
It tells you something about the power of writing.
Without writing, you are reduced to a finite automaton.
With writing you have the extraordinary power of a Turing machine.
via David Singer's Read This Blog!

2008/03/04

Debugging Emergency Kit

Debugging and the scientific method
The image above is the hand-out of the last talk I gave. Rubber ducks have long been known as one of the most effective debugging devices [1].

Very often, while debugging, you *know* that you are almost there. The problem is that, before you notice, the morning has gone by with you being "almost there". If you don't really get there after a couple of quick and dirty iterations and want to avoid wasting a morning "almost there", it is very useful to make explicit the steps that everyone takes while debugging: enter your notebook and the scientific method (quoting from Andreas Zeller's Why Programs Fail: A Guide to Systematic Debugging)

  1. Observe a failure
  2. Invent a hypothesis consistent with the observations
  3. Use the hypothesis to make predictions
  4. Test the hypothesis by experiments and further observations
    • If the experiment satisfies the predictions, refine the hypothesis
    • If the experiment does not satisfy the hypothesis, create an alternate hypothesis
  5. Repeat steps 3 and 4 until the hypothesis can no longer be refined
Keeping a written track of the steps is the key here. The advice is quite obvious, but we often forget about obvious things that work very well [2].

[1] This is not the only surprising ability of rubber ducks: http://en.wikipedia.org/wiki/Rubber_duck#Oceanography
[2] I'm writing this post after a most ineffective "almost there" afternoon

2008/02/24

Innovation, productivity, learning

The concept of innovation means very different things to different people. It may be useful to set some common ground by summarizing some of the definitions and research findings in the classical book Diffusion of Innovations, by Everett M. Rogers.

An innovation is an idea, practice, or object that is perceived as new by an individual. It matters little, so far as human behavior is concerned, whether or not an idea is "objectively" new as measured by the lapse of time since its first use or discovery. The perceived newness of the idea for the individual determines his or her reaction to it. If an idea seems new to the individual, it is an innovation.

It should not be assumed that the diffusion and adoption of all innovations are necessarily desirable. Some harmful and uneconomical innovations are not desirable for either an individual or a social system. Further, the same innovation may be desirable for one adopter in one situation but undesirable for other potential adopter whose situation differs.

Five characteristics of an innovation, as perceived by individuals, are specially important in explaining its rate of adoption:

  1. Relative advantge (the degree to which an innovation is perceived as better than the idea it supersedes. It may be measured in economic terms, but social prestige, convenience and satisfaction are also important factors).
  2. Compatibility (the degree to which an innovation is perceived as being consistent with the existing values, past experiences and needs of potential adopters).
  3. Complexity (the degree to which an innovation is perceived as difficult to understand and use).
  4. Trialability (the degree to which an innovation may be experimented with on a limited basis).
  5. Observability (the degree to which the results of an innovation are visible to others).

The innovation-decission process consists of a series of choices and actions over time through which an individual or social system evaluates a new idea an decides whether or not to incorporate the innovation into ongoing practice. During this process, different information-seeking and information-processing activities take place This process can be conceptualized in five steps:

  1. Knowledge occurs when an individual is exposed to an innovation's existence and gains understanding of how it functions.
  2. Persuasion occurs when an individual forms a favorable or unfavorable attitude towards the innovation.
  3. Decision takes place when an individual engages in activities that lead to a choice to adopt or reject the innovation.
  4. Implementation occurs when an individual puts a new idea into use.
  5. Comfirmation takes place when an individual seek reinforcement of an innovation-decision already made, but he may reverse this previous decision.

The previous summary contains some points that are relevant to any organization that wants to achieve higher productivity through innovation:

  • innovation is not necesarilly good. The choice of a new technology because of its coolness or the implemenation of a redundant bureaucratic control are samples of the kind of innovation that an organization does not want. In the rest of this post, I'll use the term innovation only to refer to those new ideas that can lead to higher productivity, either directly (e.g. automating manual tasks) or indirectly (e.g. better organizational climate).
  • perceived newness is a key component in the definition of innovation, although often overlooked: your obvious working pattern may be my innovation. We must understand that innovations that can lead to higher productivity are very diverse: from the latest Rational tool or a break through idea from a Research Lab, to a 30 year old programming principle or some simple recipe to manage effectively the email in-box. While few important innovations may lead to radical productivity improvements, we must not neglect the cumulative effect of dozens of smaller innovations that can lead to small increments in productivity.
  • adoption of a new idea requires time and effort. Expecting the adoption of innovations without allocating time for the innovation-decision process is closer to wishful thinking than to a viable strategy.

Beyond the buzzword, innovation is about learning, setting the learning targets in those technologies, ideas and practices that can lead to a productivity improvement, and actively looking for opportunities to apply this learning and find new learning targets.

(This is a post from feb 2005 in my IBM internal blog; its leaving the firewall because I like it and it is relevant for an exchange I'm having with a non IBMer)

2008/02/15

Más envidia

Kelly me hace mirar un vídeo (1:39) en el que el candidato McCain habla mientras alguien canta sus mismas palabras, con una producción brillante. Hilarante. Me entusiasma.

Veo que es una parodia sobre un vídeo (4:30) de una canción basada en un discurso de Obama. Me entusiasma.

Veo el vídeo (13:09) del discurso de Obama. No sé si en castellano me resultaría empalagoso y ridículo. Me entusiasma.

Sospecho que volveré a sentirme decepcionado después de una de esas raras victorias electorales en las que, emocinado, empiezo convencido de hay una gran persona capaz de grandes cosas. Pero, durante unos meses, disfrutaré viendo que alguna campaña electoral no es la habitual pugna entre lo malo y lo peor.

2008/01/20

dreamer, coder, hacker


Diagram by Paul Downey (of the Web Is Agreement fame), based on (I think) an idea by Y!'s Spo0nman/Pankaj

Humans

In case that your computer addiction have made you forget how humans look like, you could use three minutes watching people from 1 to 100 years of age, in a lovely video made by Lenka Clayton and James Price (via Kellypuffs).

If that hasn't been an overexposure to human looks, the humancalendar.com is and the humanclock.com are also very cool (and the later is a nice TV-Wii-powered screensaver).

2008/01/09

Envidia

De candidatos que dicen cosas como esta:

Ha llegado el momento de un presidente (...) que no sólo os diga lo que queréis oír, sino lo que tenéis que saber.
De seguimiento parlamentario independiente e imparcial : sobre TheyWorkForYou.com. Y de discusiones civilizadas sobre la actividad parlamentaria.

¡Bah! La envidia no es buena: volvamos al ra-ra-ra local...