This is great advice and it comes for free:

Now will saying ‘yes’ get you in trouble at times? Will saying ‘yes’ lead you to doing some foolish things?

Yes, it will. But don’t be afraid to be a fool. Remember, you cannot be both young and wise.

Young people who pretend to be wise to the ways of the world are mostly just cynics. Cynicism masquerades as wisdom, but it is the farthest thing from it. Because cynics don’t learn anything. Because cynicism is a self-imposed blindness, a rejection of the world because we are afraid it will hurt us or disappoint us. Cynics always say no.

But saying ‘yes’ begins things. Saying ‘yes’ is how things grow. Saying ‘yes’ leads to knowledge. ‘Yes’ is for young people. So for as long as you have the strength to, say ‘yes’.

(Stephen Colbert to the 2006 graduating class of Knox College)

Lately there has been some talking in Ruby-Talk on how to send files using scp. Some people are doing just fine by calling scp with a pre-shared password, but I don’t like that approach and it doesn’t work for my purpose, so I did a bit of experimentation and found this code works:

require 'net/ssh'
require 'net/sftp'

class SSHAgent
  def initialize
        @agent_env = Hash.new
        agenthandle = IO.popen("/usr/bin/ssh-agent -s", "r")
        agenthandle.each_line do |line|
          if line.index("echo") == nil
                  line = line.slice(0..(line.index(';')-1))
                  key, value = line.chomp.split(/=/)
                  puts "Key = #{key}, Value = #{value}"
                  @agent_env[key] = value
          end
        end
  end
  def [](key)
        return @agent_env[key]
  end
end

agent = SSHAgent.new
ENV["SSH_AUTH_SOCK"] = agent["SSH_AUTH_SOCK"]
ENV["SSH_AGENT_PID"] = agent["SSH_AGENT_PID"]
system("/usr/bin/ssh-add")

Net::SSH.start( '192.168.1.12',
                :username=>'pgquiles',
                :compression_level=>0,
                :compression=>'none'
              ) do |session|
                     session.sftp.connect do |sftp|
                     sftp.put_file("bigvideo.avi", "bigvideo.avi")
                end
end

I was using a passwordless private key for this experiment. Should you want to use a password-protected private key, you might want to set the DISPLAY and SSH_ASKPASS environment variables or use a smartcard reader and the ‘-s reader’ parameter.

The SSHAgent class comes from a public paste (I don’t know who its author is or the license that code is under).

Lastly, there is an undesired behaviour in Net::SFTP: when you use the put_file method it loads the whole file in memory, therefore you need loads of memory if you want to send big files. I’ve tried a naive fix (iterating writes) but it didn’t work (it complains about “no such file”, I think it’s a channels-related issue). Jamis Buck, the author of Net::SFTP, told me he currently has no time to fix this issue. In case you feel brave enough, the offending method starts in line 202 in

net-sftp-1.1.0/lib/net/sftp/session.rb.

A few weeks ago Troll Tech released official QtJava bindings under the name of Jambi. With Jambi, you can build native applications for Windows, Unix and MacOS X using Qt and Java. It’s a good idea and a good implementation, although nothing revolutionary, I myself have been successfully using QtRuby bindings for a few months.

But this mad head of mine started to think about the potential of bindings, compilers and code generation.

There are thousands of Qt developers who know the C++ API to Qt very well.

Qt is able to build native applications for many platforms (Windows, Unix and Mac OS X).

There is a number of unofficial Qt bindings (Ruby, Python, Java, Ada, Scheme, etc).

So here comes the idea: Qt-Web bindings/compiler/whatever. How could this mad idea be implemented? I have some ideas.

Keep in mind the point in the Qt-Web idea is not to have the best possible webapp development framework but to take advantage of the horde of Qt-literated people out there. Let me re-phrase that: this idea makes more sense to Troll Tech who be selling more Qt licenses and support contracts, than it makes to web developers.

As I was saying, I have several ideas on how to implement this:

  • Use Jambi to build Java applets. The return of Java applets 10 years later, wooohooo. Horrible, I know. And there is the disadvantage of downloading part of Jambi as needed or get Jambi included in the official Java repository. But that could work.
  • Qt-Flash bindings. You develop your application in ActionScript using Qt and you get a SWF. It would be more or less like the previous approach.
  • Qt-to-Flash compiler. You develop your application in C++, using the very same APIs and tools you use to develop a desktop application and you have a new “make all_flash” target that generates a SWF. 96% of computers have Macromedia Flash installed.
  • Qt-to-AJAX “compiler” (I think “translator” or “generator” would be a more appropiate word). You develop your application in C++, using the very same APIs and tools you use to develop a desktop application and you have a new “make all_ajax” target that generates HTML, CSS and Javascript. Now this has the potential to become Web 3.0: you develop webapps just like you would develop desktop apps!

Dice la SGAE que las ventas de CDs en el top manta están acabando con las ventas legales en tiendas. En el top-manta un CD cuesta 3 euros. A cambio se obtiene un CD grabado, con una funda de plástico cutre y una fotocopia de mala calidad en blanco y negro.

Y digo yo, ¿a nadie se le ha ocurrido aprovecharse de eso legalmente?

En mi opinión, el éxito del top-manta no es tanto el precio (3 EUR) como la penetración: hay vendedores del top manta a docenas, y además siempre están en los lugares en los que más “vulnerables” a la compra somos: paseos, zonas comerciales, zonas de ocio-pubs-y-discotecas, etc. Cuando uno camina por esos lugares, ya anda predispuesto a sacar la cartera y gastarse unos euros. Si va con la novia, más todavía. Y claro, con tanta saturación de manteros exhibiendo discos, la gente acaba picando y comprando. “Compra impulsiva” se llama en la jerga del marketing. Es lo mismo que hacen los supermercados e hipermercados, Wal-Mart incluso tiene una lista de los 200 CDs que en cada momento debe poner para que la gente ejerza su predisposición a la compra impulsiva.

Las discográficas podrían intentar aprovechar esa penetración para vender versiones “recortadas” de los discos. Podrían vender la versión “normalita” de un disco, sin DVDs extras, sin libreto, simplemente con una portada en color, a 5 ó 6 EUR y la gente lo compraría. Los retos a los que se enfrentan para que esto sea posible son una distribución eficiente y gastar menos en publicidad, para que los precios finales puedan ser bajos. Haciendo matemáticas, los números salen: se gana menos por disco, pero se venden más discos. Además, se consigue que la gente compre discos legalmente.

El objetivo último debería ser barrer por completo las mafias que venden los discos ilegales, conseguir que los manteros corten sus lazos con las mafias. A los manteros no les hace ninguna gracia trabajar para las mafias: las mafias juegan sucio (lo de partir piernas no es cosa de películas, pasa en la realidad) y si hay que salir corriendo porque viene la Policia y hay que dejar la manta, hay que pagarle los discos a la mafia. Por poco que se gane vendiendo un disco legal en top manta a 5 EUR, el beneficio es doble: se vende un disco legal, se deja de vender un disco ilegal.

Y cuando digo 5 ó 6 EUR, quiero decir 5 ó 6 EUR, ni un céntimo más. No hagan como los genios de Telefónica, que han decido vender películas para descargar por Internet a 20 EUR por película, en calidad VHS y sin extras.

Obviamente, podría suceder que todo siga como hasta ahora y que la gente siga comprando discos piratas en el top manta, pero creo que poniendo en una balanza lo que se puede perder (unos cuantos millones de euros en el diseño y lanzamiento de la estrategia) y lo que se puede ganar (la continuidad de la industria discográfica tal como la conocemos), el beneficio supera con mucho al riesgo.

El único punto débil de todo este razonamiento es que muchos manteros son inmigrantes ilegales, sin permiso de trabajo ni residencia, así que no podrían conseguir el permiso para la venta ambulante. Estoy seguro, sin embargo, que los abogados de la SGAE, curtidos en mil batallas, sabrían encontrar una solución a ese problema.

Visto que en España la costa mediterránea se termina y que la economía española depende sobremanera de la construcción y el turismo, propongo crear una nueva zona costera: el Mar Interior de España, a imitación del Mar Menor en Murcia (aunque el Mar Menor tiene origen natural).

La idea es muy sencilla: aunque Madrid está en una meseta, en general el interior de España está por debajo del nivel del mar. Además, esas zonas son económicamente menos desarrolladas que las costas (Euskadi, Cataluña, Comunidad Valenciana), así que sólo hay que comprar algunos miles de hectáreas de tierras, muchas de las cuales están abandonadas o semiabandonadas, y dejar paso al agua.

¿De dónde sacar el agua para este Mar Interior? Del Oceano Atlántico preferiblemente, porque el Mar Mediterráneo se está quedando sin agua, y tampoco es cuestión de acelerar la muerte del Mediterráneo. El lugar más factible por donde abrir la vía de agua es Andalucía, dado que Galicia, Cantabria, Asturias y el País Vasco son zonas montañosas, y no creo que Portugal permita hacer una obra de esta magnitud en su territorio para que luego se beneficie el vecino de al lado (España).

Como consecuencia de la creación del Mar Interior, los madrileños ya no tendrían que ir a veranear a Valencia o Cataluña: ¡Majahonda y Getafe tendrían playa!. Albacete pasaría a ser una isla. Toledo y Segovia, como tienen Patrimonios de la Humanidad, podríamos protegerlos con unas cuantas presas. Cáceres pasaría a ser una zona turística de primer orden, con apartamentos en la playa y todo eso. Transmediterránea tendría que cambiarse el nombre a Transmarítima, para que así le den la concesión del ferry Madrid – Valencia. Lo que ahora son estaciones de servicio en la autovía y la autopista pasarían a ser chiringuitos en la playa. Toda una revolución, oiga.

En Microsiervos están con un meme que me interesa: las series de TV. Aquí van mis favoritas.

  • Alias Sydney Bristow y familia son espías de la CIA y su trabajo consiste en que las organizaciones de espías “malos” no consigan sus objetivos. Me enganchó tanto que para no tener que esperar al doblaje, la vi en inglés (grabado de USA). La tercera temporada y la primera mitad de la cuarta son bastante flojitas. El capítulo piloto es memorable. La quinta temporada sólo tuvo 15 capítulos porque Jennifer Garner dio a luz a su primer hijo a mitad de temporada.
  • 24 Jack Bauer es agente de la Unidad Antiterrorista de la CIA y su objetivo es evitar atentados masivos. Esta serie la pillé bastante tarde (ya iba por mitad de la cuarta temporada en inglés), pero me gustó mucho. La tercera temporada me pareció tan mala que la dejé de ver cuando iba por el capítulo 12. La quinta temporada es, para mí, la mejor de todas. Y si no lo digo, reviento: David Palmer es un presidente cojonudo.
  • The 4400 Una serie de verano con un éxito inesperado. A lo largo de 50 años, 4400 personas desaparecen misteriosamente. Un buen día, son “devueltos” a la Tierra. Ellos no han envejecido, no hay ningún cambio aparente. Excepto uno: cada retornado tiene un poder especial. Me encanta la canción principal de la serie (“A place in time”, cantada por Amanda Abizaid) y no me explico cómo Antena 3 la cortó: es lo primero que te engancha de la serie. Vi las dos primeras temporadas antes de que la serie llegara a España.
  • LAX El día a día de los gerentes del Aeropuerto Internacional de Los Ángeles. Bastante entretenida, sobre todo por historia amor-odio entre Heather Locklear y Blair Underwood. No emitida en España La estrenan el 9 de julio en España.
  • CSI. Cómo se lo hace el Laboratorio Forense de Las Vegas para resolver los crímenes que les llegan día a día, salpicado on pequeñas historias personales de cada protagonista. Lo que me gustó de esta serie es que Grissom, el jefe del equipo forense, tiene muy claro en qué se puede confiar: en las pruebas. Sólo método científico, cual discípulo del Señor Spock. Hay dos spin-offs, CSI Miami y CSI New York. La primera no me gusta nada, la segunda sí. CSI Miami y CSI New York empecé a verlas antes de que llegaran a España.
  • Prison Break En prisión todos son inocentes y a veces hasta lo son de verdad. La historia de cómo un hermano intenta sacar a otro hermano de prisión. La serie es buenísima, el final bastante malo. Veremos si con la segunda temporada lo arreglan. No emitida en España.
  • NY-LON Miniserie romanticona: él es de Nueva York, ella es de Londres. Se conocen por casualidad y se enamoran. Romance transatlántico. No emitida en España.
  • Lost (Perdidos). Un avión de pasajeros se estrella en una isla aparentemente desierta y en la que hay restos de algún tipo de experimento. Bastante entretenida. Empecé a verla antes de que fuese conocida en España y me alegro, porque doblaje al castellano es infumable.
  • Doctor en Alaska (Northern Exposure). Un médico judío urbanita es enviado a un pueblo perdido en Alaska. Tiene de todo: ternura, romance, aventura, comedia, misterio. Genial. Emitida (¿debería decir “maltratada”?) en España hace bastantes años.

Otras series que me han gustado son:

  • Eyes Sobre una agencia de detectives un tanto particular. Bastante divertida, pero cancelada en USA después de 5 capítulos. Dudo que llegue a España.
  • Numb3rs Un matemático ayuda a la policía a resolver ciertos crímenes. En algunos capítulos la presencia de las matemáticas entra con calzador. Dejé de verla por falta de tiempo, igual que CSI. La ví mucho antes de que llegara a España (y en realidad, no sé cuántos capítulos se han emitido en España).
  • Bullshit! Documental-serie de TV escéptica y muy divertida. Conducida por los humoristas Penn & Teller. Dejé de verla por falta de tiempo. No creo que se emita nunca en España, pero lo lo que sé el DVD americano tiene doblaje al castellano.

Por otra parte, no veo las series de TV en TV, sino que me las bajo de Internet en inglés. No es por pijotería ni nada, simplemente se trata de que así las veo un año antes y además oigo las voces originales (porque después de escuchar el doblaje de Jack en "Perdidos" (Lost), se queda uno sin ganas de ver la serie).

After reading Penguin.swf, it looks like the reason for Adobe not to open source the Flash Player is third-party codecs (On2, Sorenson, etc).

I’d like to shoot in the air. Maybe I’ll catch a bird.

I guess Flash Player does not re-implement those codecs but uses it as an external library. Therefore, a possible solution would be:

  1. Adobe releases the Flash Player source code that belongs to Adobe, not the third-party libraries. How is this going to benefit Adobe and Flash Player in general? A lot more people would hack in the Flash Player source, improving it.
  2. Adobe defines the API to access and use these third-party libraries or even a general API for codec access. Nobody modifies those source files because if someone breaks that API, Flash would not work with third-party codecs.
  3. Flash Player may be compiled without those third-party libraries. Whenever Flash Player tries to play a Flash movie that needs codec X, it searches the local computer for the codec. If codec X is not installed, Flash Player downloads it from Adobe as a binary. Something like what the Microsoft Windows Media Player does. How is this going to benefit Adobe and Flash Player in general? Whenever Adobe decides On2 VP6 is old and wants to use On2 VP7, no new version of Flash Player is needed: just download the new codec. Using a little part of wine/darwine (just like mplayer does), this method would work in every platform.

In short, what I’m proposing is a limited-capability, full open source Flash Player and third party codecs being downloaded from Adobe as needed. After a couple of movies, everybody would have the codecs they need (unless they choose not to install them, but that’s their option).

Update There was a comment on Reddit saying wine only runs on Linux-x86 and OSX-x86. Wrong. Wine runs at least on Solaris (x86 and Sparc), Linux (x86, Sparc and PowerPC), OSX (PPC and x86) and FreeBSD (at least, x86).

I am not a Microsoft Windows user, but 870 million people are. On January, 2007, Microsoft will release the newest version of its desktop operating system, christened “Windows Vista”.

Recently I have gathered knowledge Windows Vista will, by default, put the computer in a stand-by status when you will try to shut it down. You can check this by yourselves looking at this article (look at point 5, the second half of the page) on Computer World magazine (screenshot)

So, to summarize it: you will believe your computer is not consuming any power, but it will be wasting 25% of electricity. Now multiply this 25% by 870 millions of computers. Assuming each computer will consume 250-350 Watts (this is a pretty realistic value for a computer like the one Microsoft requires to run Windows Vista) and you have:
0.25 * 300W * 870Million = 65250 MegaWatts

I think we should immediately start a campaign for Microsoft to change its mind. We cannot afford such a waste of energy. In case Microsoft does not attend to reason, I think we should suggest people not to buy a Windows Vista-preloaded computer, but an Apple Macintosh (operating system: Apple Mac OS X) or a computer with the Linux operating system.

Update ENERGY STAR-labeled computers are required to power down to 15 percent of their maximum power use. So we will only be wasting a measly 39170 MegaWatts. What a relief!