¿Quién no quiere un Nexus One?

Pues yo desde luego quiero uno y si encima me lo regalan los chicos de El Androide Libre mejor que mejor. Si vosotros malditos insistís en minimizar la probabilidad de que me toque aquí tenéis las bases.

Suerte,

En defensa de los derechos fundamentales en internet

Manifiesto “En defensa de los derechos fundamentales en internet”

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que…

1.- Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.

2.- La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial – un organismo dependiente del ministerio de Cultura -, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.

3.- La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.

4.- La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.

5.- Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.

6.- Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.

7.- Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.

8.- Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.

9.- Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.

10.- En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

Este manifiesto, elaborado de forma conjunta por varios autores, es de todos y de ninguno. Si quieres sumarte a él, difúndelo por Internet.

The Three Laws of TDD.

Conviene repetirlas mentalmente 10 veces :P

TheThreeRulesOfTdd

1. You are not allowed to write any production code unless it is to make a failing unit test pass.
2. You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures.
3. You are not allowed to write any more production code than is sufficient to pass the one failing unit test.

via:butunclebob.com

CodCamp .NET 2009

Otro año mas que no puedo ir a la CodeCamp, esta vez tengo una buena razón… me caso J.

Si vosotros podéis ir:
http://www.codecamp.es/CodeCamp/tabid/39/language/en-US/Default.aspx

Nace 32 minutos podcast

logo 32 minutos

Hadi Hariri y yo hemos lanzado un nuevo podcast sobre tecnología llamado 32minutos que puedes encontrar en www.32minutos.net. De esta manera podrás vacilar entre tus amigos y conocidos de conocer a al menos uno de los autores :P

Lejos de bromas espero que lo encuentres interesante y si esta en tu mano hacernos algo de publicidad será bienvenida.

Del mismo modo recibiremos estoicamente todas las criticas y comentarios que tengas a bien hacer.

Saludos y gracias,

Felices Fiestas!!!

Elegid la que más os guste…

wma2mp3 batch process

Ayer necesité convertir "demasiados" archivos wma a mp3. Buscando en google encontré este script, pero es para linux. Así que ni corto ni perezoso me puse y los pase a windows.

Tenéis que descargar mplayer y lame en sus versiones para windows.

fichero1.bat

Visual Basic:
  1. for /f  "tokens=*" %%a in ('dir *.wma /s/b') do fichero2.bat "%%a"

fichero2.bat

Visual Basic:
  1. set entrada=%1
  2. mplayer %entrada% -ao pcm
  3. set wavfile=%entrada:wma=wav%
  4. move audiodump.wav %wavfile%
  5. set mp3file=%entrada:wma=mp3%
  6. lame %wavfile% %mp3file%
  7. del %wavfile%
  8. del %entrada%

Lo único que tienes que modificar es la ruta donde hacer el dir y rular el fichero1.bat. Para alguien con  bastos conocimientos en la materia seguramente sea muy cutre pero fue bastante rápido y funciona. No obstante si tienes alguna mejora dejarla en los comentarios.

Manteniendo una aplicación Round 1

Descripción:

Imagínate que acabas de de llegar al trabajo y te dicen que el error que descubriste ayer tiene que ser solucionado de una manera lo mas genérica posible y “ensuciando” lo menos posible el código. El escenario con el que tienes que lidiar es el siguiente:

Diagrama de clases

Diagrama de clases

Independientemente de la calidad de dicho diseño del que podremos hablar también en otra ocasión, hay que meter la consabida modificación para que el usuario nos invite a un cafecito. ¿Por donde empezamos a meter mano?

1º Aproximación:

Lo primero que intente, en vista del diseño, fue meterle mano al control. En el VisibleChanged dependiendo del valor de la propiedad Visible quitaba o ponía el AxWebBrowser en la colección de controles de ControlwebBrowser. El problema es como detectar que el Form se oculta.

Pero antes de resolver este problema pensemos en si esto es correcto o no. Desde el punto de vista del programador usuario del control es de esperar que el control funcione bien. Independientemente de que lo incluyamos en un MDI o no. Tampoco sabe si mi control contiene un AxWebBrowser y por tanto aun conociendo el fallo no esperara este comportamiento y le será muy complicado llegar a esta conclusión. Por tanto parece evidente que es el propio control el que debe incluir el código que corrija dicho bug.
Por favor dad vuestra opinión al respecto en los comentarios.

Volviendo al problema de detectar el cierre del formulario… otra ñapa... se me ocurre suscribirnos al VisibleChanged del formulario contenedor e implementar la solución. Desde el punto de vista del diseñador del control este no debería dar por hecho nada que este fuera de el. Inclusos poniéndonos paranoicos… ¿Qué pasaría si cambiáramos el formulario contenedor del control? ¿Cómo controlamos esto?

Bueno de momento esta solución es admisible pero no me deja del todo contento. ¿Se os ocurre alguna idea?

Ocultar un formulario que contiene AxSHDocVw.AxWebBrowser

Problema:

Tenemos una aplicación que es un MDI en cuyo interior solo se muestra una ventana a la vez. Para esto tiene implementado un "sofisticado control" (nótese la ironía) que oculta y muestra convenientemente las ventanas. Pues bien, en este escenario a veces se muestran ventana que contiene el dichoso control COM AxSHDocVw.AxWebBrowser. La primera vez que carga dichas ventanas no hay problema. El problema surge cuando se cambia de ventana activa,  la ventana que contiene el navegador se oculta y después si queremos volver a mostrarla el navegador aparece en un blanco inmaculado y no muestra nada.

Observaciones:

Jugando un poco con el navegador he observado que cuando el form que lo contiene se oculta algo cambia en él, no he podido determinar este algo. Y el navegador deja de estar incrustado en el windows form y se convierte en una ventana a parte.

Error AxSHDocVw.AxWebBrowser

Primera solución:

Normalmente ante un problema primero busco una solución mas o menos admisible y después busco una mejor solución.

La primera solución a la que he llegado consiste en sacar el navegador de la colección de controles del formulario antes de que el formulario se oculte y viceversa. Funciona bastante bien pero no deja de ser una ñapa del 15.

Solución más correcta:

De momento he decidido que para este caso y dado que el control esta obsoleto no merece la pena invertir tiempo buscando una solución mejor.

Bases de datos

Mapa en construcción. Si quieres colaborar pide una invitación.