miércoles, marzo 30, 2011

como cambiar extensión a múltiples ficheros en Linux/bash

for f in $(find . -name '*.impl'); do git mv $f ${f/\.impl/.cxx}; done

martes, marzo 29, 2011

Linus Tordvalds opina



Linus Torvalds 2010-11-30 20:50:25 EST
(In reply to comment #128)
>
> In Adobe's software.
>
> > I'm no great fan of flash but it's an essential part of life on the web these
> > days and I had thought that the Fedora project had finally put its days of
> > broken flash support behind it.
>
> Fedora's flash support is fine. Adobe's software is broken.

Quite frankly, I find your attitude to be annoying and downright stupid.

How hard can it be to understand the following simple sentence:

THE USER DOESN'T CARE.

Pushing the blame around doesn't help anybody. The only thing that helps is
Fedora being helpful, not being obstinate.

Also, the fact is, that from a Q&A standpoint, a memcpy() that "just does the
right thing" is simply _better_. Quoting standards is just stupid, when there's
two simple choices: "it works" or "it doesn't work because bugs happen".

Standards are paper. I use paper to wipe my butt every day. That's how much
that paper is worth.

Reality is what matters. When glibc changed memcpy, it created problems. Saying
"not my problem" is irresponsible when it hurts users.

And pointing fingers at Adobe and blaming them for creating bad software is
_doubly_ irresponsible if you are then not willing to set a higher standard for
your own project. And "not my problem" is not a higher standard.

So please just fix it.

The easy and technically nice solution is to just say "we'll alias memcpy to
memmove - good software should never notice, and it helps bad software and a
known problem".

viernes, marzo 18, 2011

goldmand sachs y erlang

Goldan Saschs tenía un sistema de trading automático con el que ganaba mucho dinero

Este sistema se basa en un error conceptual de mercados en EEUU

En estos mercados, había varios tipos de clientes y conexiones.


Los de pata negra (que pagan bien) podían ver las órdenes un pelín
antes de que fueran inyectadas al resto de gorrinos rositas


Entonces goldman montó un sistema (con un hacker ruso muy bueno) para
ganar dinero


Consistía en tener una máquina tan rápida, que fuera capaz de ver el
cruce en nuevas posiciones, y generar ambas contrapartidas ganando el
diferencial


Si lo hacían con suficiente velocidad, ya no habría en el mercado más
agresiones "a la cola" que no fueran de Goldmand


El caso es que les fue muy bien, pero el ruso se marchó porque le
pagaban el triple y Goldmand le acusó de robarles su programa que
parece que sí lo robó


Fue en ese momento cuando se descubrió el pastel


En mi opinión, a los gestores del mercado y a Goldmand les deberían
haber sancionado (no sólo al ruso)


Lo que hacía Goldmand, era una pura maniobra especulativa ¿Para eso
queremos los mercados electrónicos? ¿No se suponía que ofrecían
limpieza y transparencia? ¿O al menos no deberían intentar hacerlo?



El caso y lo que quería contar...


¿En qué estaba escrito ese super programa de automatic trading?
Hasta la fecha el más complejo y mejor programa en el sector




http://en.wikipedia.org/wiki/Sergey_Aleynikov
http://en.wikipedia.org/wiki/Erlang_(programming_language)



jueves, marzo 17, 2011

intentando explicar la virtualización

Permíteme intentar explicar un poco de que va eso de la virtualización.
Un ordenador es hierro (la parte que se puede tocar) y programas.
Uno de los programas es un programa especial, es el sistema operativo (que puede ser Windows, Linux, AIX, Solaris y muchos otros)
Este programa es especial porque es el único que habla con las partes “hierro” (las partes físicas)
El resto de programas le dicen al sistema operativo, escribe en disco tal cosa, pinta en la pantalla tal cosa, escribe en el cable de red tal cosa, etc…
Y es el sistema operativo el que le dice a las aplicaciones, “oye tú, han pulsado tal tecla, y ahora han movido el ratón, etc…)
Por tanto, cada ordenador tiene instalado un sistema operativo para interactuar con el hardware (la parte física)
Ahora supongamos que hacemos un programa mentiroso, y este programa, engaña a otro programa (que es un sistema operativo), haciéndole creer que está hablando con una máquina real, cuando en realidad es un programa mentiroso
Conseguimos de esta forma que un programa diseñado para hablar con la parte física del ordenador, en realidad hable con otro programa, pero sin saberlo, ha sido engañado.

Es como matrix pero al revés (el engañado es un programa)
Una vez dado este paso, es trivial engañarle varias veces. Podemos tener varios sistemas operativos ejecutándose al mismo tiempo en una sola máquina real
¿Para qué sirve esto?
En el pasado se utilizó para probar programas y especialmente probar sistemas operativos mientras estos se están creando.
Ahora se están haciendo populares por ahorro de costes.
Se ahorran costes comprando menos máquinas y no menos importante, se ahorran costes de mantenimiento.
AHORRO POR COMPRA DE MÁQUINAS
Sin extenderme mucho, los programas no son capaces de sacarle jugo a toda la máquina (y en el futuro podrán menos, todo por culpa de una decisión en los años 60)
Además, salvo en contextos específicos, las máquinas están tocándose las narices esperando que le pidan que haga algo.
Por estas dos razones, podrías comprar menos máquinas y compartir los recursos físicos de las máquinas creando máquinas virtuales dentro de la máquina principal.
No hay recursos suficientes para que todos demanden el 100% de la máquina al mismo tiempo, pero… eso no suele pasar; y si sucediera, supondría un comportamiento más lento durante unos segundos de las máquinas. Si eso no es un problema, se ahorra mucho (comprando menos máquinas, uso más eficiente, menos consumo eléctrico)
AHORRO MANTENIMIENTO
Supongamos que se rompe una máquina, hay que comprar otra, reinstalar el sistema operativo y todos los programas, recuperar todos los documentos, configuraciones, etc…
Es una tarea pesada.
Supongamos que hay que cambiar la máquina porque es antigua o le falta memoria o disco duro o…
Lo mismo, muy pesado en tiempo y propenso a problemas (especialmente la parte de resintalación y recupareración de datos y configuraciones)
Para todo esto es necesario sacar copias de seguridad de todo. Esto debería de verificarse periódicamente (casi nunca se hace por lo pesado que es).
Por cierto, todo sistema de contingencia no verificado periódicamente, es peor que ningún sistema de contingencia (crea una falsa sensación de seguridad)
O simplemente hace falta una máquina nueva
¿Cómo sería con un sistema virtualizado?
La máquina virtual con TODO, está en un fichero.
¿Copia de seguridad? Es tan sencillo como copiar el fichero (la máquina virtual).
¿Una máquina necesita más disco duro o memoria?
Pues se le da VIRTUALMENTE, sin necesidad de abrir ninguna caja.
Máquina nueva… copia de fichero, ajustes de configuración y voalá
Se cambia una máquina física y nadie se entera, siendo además un proceso muchísimo más sencillo, sólo hay que copiar un fichero por cada máquina (virtual).
Se pueden virtualizar servidores y ordenadores de trabajo (workstations con su Windows Excel y resto de programas)
Esta es la virtualización de máquinas, pero hay otra cosa llamada virtualización de aplicaciones, que también es muy, muy interesante.
Para sistemas de alto rendimiento o tiempo real (son cosas diferentes), la virtualización es un problema delicado, pero todo depende de los niveles de exigencia que hay que valorar con el ahorro de costes.
La virtualización es algo que los usuarios deberían tener en casa para reducir también costes de mantenimiento (que generalmente un usuario no sabe hacer), pero seguramente llegue antes la nube para ayudar a los usuarios (google tiene un proyecto muy ambicioso en este sentido y los usuarios necesitan mucha ayuda)
De la nube, si quieres te cuento en otro momento, pero te anticipo que suele haber virtualización de máquinas (engañar al programa sistema operativo), virtualización de aplicaciones (engañar a un programa “normal”), sistemas distribuidos (las cosas están por ahí vs las cosas están ahí)
Espero que no hay sido muy aburrido y ojalá haya podido ayudar a que entendáis mejor esto
hablamos

miércoles, marzo 09, 2011

Nada nuevo bajo el sol eclipsado del Copyright

http://reyero.net/es/rick_falkvinge/nada_nuevo_bajo_el_sol_eclipsado_del_copyright



Nada nuevo bajo el sol eclipsado del Copyright

Escriba - El Sol Eclipsado del Copyright

Esto es una traducción de Nothing New Under The Copyright-Eclipsed Sun, de Rick Falkvinge.

La industria del copyright ha utilizado los mismos trucos y retórica a lo largo de 500 años, además de ser aficionados a intentar reescribir la historia. Pero el relato de los libros de historia difiere claramente de lo que la industria del copyright está intentando pintar.

Cuando la imprenta llegó en 1453, copista era una profesión en gran demanda. La Peste Negra había causado un gran número de bajas en los monasterios, que no habían sido cubiertas todavía, de ahí que la copia de libros fuera cara.

Retirar a los antiguos copistas no era una opción que le gustase a la Iglesia Católica, quién intento prohibir la imprenta con crueles castigos, incluida la pena de muerte por usarla para copiar libros.

“¿Cómo cobrarán los monjes?”, argumentaban para justificarlo. Aún así, ni siquiera la pena de muerte pudo parar el copiado.

Desde luego, el problema no era el sueldo de los monjes que en realidad, a la Iglesia Católica no podía importarle menos. Todo tenía que ver con el control del conocimiento y la cultura. Una vez que la mayor parte del pueblo hubiese aprendido a leer, la Iglesia perdería su dominio para siempre.

Inglaterra eligió un camino distinto. Viendo que ni la pena de muerte había funcionado, la reina María I necesitaba un aliado dentro de la industria de la impresión. Adjudicó el monopolio de la impresión al gremio de impresores de Londres, la London Company of Stationers, a cambio de poder censurar cualquier cosa antes de ser publicada.

El monopolio fue adjudicado el 4 de mayo de 1557. Fue llamado copyright.

Esta alianza entre la industria y el Gobierno funcionó bien para suprimir las disputas. Pasados 138 años, la censura dejó de ser algo moderno. El Parlamento británico dejó expirar el monopolio del copyright en 1695, y los impresores perdieron un lucrativo monopolio. Solicitaron recobrarlo por un periodo de 15 años.

Finalmente, el Parlamento fue persuadido. Los impresores y distribuidores reclamaron que nada pudiese ser impreso o distribuido sin un monopolio. (Obsérvese que esto es muy, muy diferente a que nada seacreado sin un monopolio.) Pero ellos sugirieron que este monopolio tuviese su origen en el autor y fuese clasificado como propiedad, así podía ser vendido a un impresor.

Haciendo esto, los impresores mataron tres pájaros de un tiro. Uno, consiguieron cumplir el requisito del Parlamento de que no hubiese otro punto centralizado de censura, para que así reconsiderasen el monopolio. Dos, los impresores tendrían todavía el monopolio de hecho ya que los autores estarían obligados a vender el monopolio a los impresores. Tres, clasificaron artificialmente el monopolio como “propiedad” pudiendo inscribirlo dentro del Derecho Consuetudinario (Ley Común) mejor que en la Jurisprudencia, dándole un estatus legal mucho más fuerte.

El monopolio del copyright fue sancionado de esta forma en 1709, y tomó efecto el 10 de abril de 1710, en el llamado “Estatuto de Anne”.

Los Estados Unidos adoptaron un pasaje similar en su posterior Constitución, pero con una justificación más clara, que el único legítimo beneficiario del monopolio del copyright es el público.

Avanzando hasta el advenimiento de las bibliotecas, el monopolio de los editores, ahora fuertes en su creencia casi religiosa de que ellos tenían derecho a dictaminar cómo la gente podía leer, intentaron prohibir el préstamo de libros. “No puedes permitir a la gente leer sin pagar por su propia copia”, argumentaban. Cuando los políticos consideraron las bibliotecas públicas, el monopolio de los editores puso el grito en el cielo.

“¡No puedes dejar que nadie lea ningún libro gratuitamente! ¡Ni un solo libro será vendido nunca más! ¡Nadie podrá vivir de sus escritos! ¡Ningún autor volverá a escribir un solo libro si se aprueba esta ley!”

Sin embargo, el Parlamento en el S. XIX era más sensato que hoy en día, y se dio cuenta exactamente del por qué de la rabieta del monopolio del copyright. Decidieron que el acceso público al conocimiento y a la cultura tenía un gran valor para la sociedad, más que un monopolio que pretendía ser pagado cada vez que un libro fuera abierto, y así, la primera biblioteca pública del Reino Unido abrió en 1850. Y como todos nosotros sabemos, claro está, ni un solo libro más ha sido escrito desde entonces. Oh, espera. Se están escribiendo más libros que nunca en la historia. Quiero decir, el argumento usado es tan falso cuando se usa hoy en día como lo era entonces.

Después de internacionalizar el monopolio del copyright en 1886, la música se convirtió en algo cada vez más interesante. La industria discográfica fue invitada a Roma en 1933 por la Confederazione Generale Fascista dell'Industria Italiana con la intención de corporativizar el monopolio del copyright un poco más. La IFPI fue creada en esta reunión de Roma. La ambición tuvo éxito con el advenimiento de la Convención de Roma en 1961, cuando a la industria discográfica se le concedió un monopolio del copyright-idéntico llamado “derechos conexos”.

Uno se da cuenta aquí de que el monopolio de la industria discográfica es tan reciente como de 1961. No la imagen que ellos pintan.

En la actualidad, los Estados Unidos están intentando intimidar al resto de los países para que respeten los cada vez más fuertes privilegios del monopolio del copyright. Publican todos los años la "Lista especial 301" (Special 301 list), que se supone es la lista negra de los peores "delincuentes" del mundo. La mayoría de la población mundial está en la lista. España y Canadá también han llegado a la lista este año. Para mí, una meta política personal es devolver a Suecia a su lugar en la lista.

En resumen, la batalla sobre quién controla el conocimiento y la cultura se ha extendido a lo largo de 500 años. Las mismas justificaciones han sido utilizadas a lo largo de esos 500 años. Pero aprendiendo de la historia, podemos ver como el movimiento de estrangulación de la Iglesia Católica fue vencido. Debemos repetir ese mismo curso de la acción con el monopolio del copyright hoy. Enseña a todo el mundo a compartir. Haz que todos experimenten cómo es tener todo el conocimiento y la cultura de la Humanidad en sus manos. Una vez obtenida, no les podrán robar esta experiencia, igual que hace 500 años no se podía hacer que la gente "desaprendiese" a leer.

---

Rick Falkvinge es columnista habitual en TorrentFreak, donde comparte sus pensamientos de vez en cuando. Es el fundador del Partido Pirata Sueco, un aficionado al whisky, y un piloto de motocicleta de baja altitud. Su blog en http://falkvinge.net se centra en la política de la información.

Sigue a Rick Falkvinge en Twitter en @Falkvinge y en Facebook como /rickfalkvinge.

---

Traducción al castellano realizada por María Goretti Glez Pacios y Jose A. Reyero.

el a-gilismo metodología ágil desarrollo software

http://queridointernet.wordpress.com/2011/03/02/descubriendo-metodologias-agiles-el-a-gilismo/



Descubriendo metodologías ágiles: el a-gilismo
Publicado el 02/03/2011 por David Viruega
Rate This


Am I stupid?


Querido Internet:
Esta es mi definición de agilismo

(de a-, gilí e -ismo)

a-
(Del gr. ἀ-, priv.).
1. pref. Denota privación o negación. Acromático. Ateísmo. Ante vocal toma la forma an-. Anestesia. Anorexia.

gilí.
(Del caló jili, inocente, cándido, der. de jil, fresco).
1. adj. coloq. Tonto, lelo. U. t. c. s.

-ismo.
(Del lat. -ismus, y este del gr. -ισμός).
1. suf. Forma sustantivos que suelen significar doctrinas, sistemas, escuelas o movimientos. Socialismo, platonismo, impresionismo.

En resumen, significa dejar de hacer el gili. Y es que después de varios años involucrado en la dirección técnica de equipos y proyectos desde distintos departamentos, una de las cosas que más he echado en falta es una forma de dirigir poyectos que esté basada en el comportamiento real de las personas.

Y tras descubrir las metodologías ágiles hace algún tiempo me dí cuenta que llevabamos muchos años haciendo en los proyectos lo que dice la definición de arriba, el lelo.


¿Cuántos de vosotros os habéis encontrado con un cliente que una vez comienza un proyecto decide cambiar de idea sobre lo que quiere, o solicita cambios de alcance o de orientación? En estas circunstancias las metodologías predictivas de gestión de proyectos se centran en encorsetar al cliente, impedir los cambios o reducirlos al máximo, o hacer que estos cambios resulten muy caros para el cliente.

¿Y en qué nos escudamos? Decimos que el cliente no sabe lo que quiere, que cambia de opinión, que no lo tiene claro, que nos pide imposibles y que todo lo que hemos ido haciendo no vale para nada y tenemos que volver a empezar tras cada reunión de seguimiento del proyecto. “Es normal que los proyectos se retrasen, si cada semana se nos piden cosas diferentes así no hay quien se aclare”.

Como project managers sabemos que es nuestra responsabilidad ejecutar los proyectos con el tiempo, alcance y coste definidos, pero la realidad nos dice que solamente un tercio de los proyectos se pueden considerar exitosos. Esto hace que el trabajo de project manager sea muy frustrante, estresante y muchas veces poco reconocido.

Y aquí es cuando descubres las metodologías ágiles de desarrollo de software, y te das cuenta que es lo que has estado buscando desde hace mucho tiempo, por varios motivos:

El cambio de especificaciones no solamente hay que dejar de intentar evitarlo, sino que además se considera bueno y enriquecedor para el proyecto. A medida que avanza el desarrollo de un proyecto el cliente sabe más sobre él y lo que quiere obtener, y sus peticiones pueden cambiar.
Las metodologías ágiles definen un rol específico que representa al cliente, en el caso de Scrum es el Product Owner. En las metodologías predictivas el cliente solamente se representa mediante el catálogo de requisitos, pero no hay una persona con un rol específico que lleve la voz del cliente.
De todas las funcionalidades que se desarrollan en un proyecto, el 64% no se usa nunca, el 16% se usa raras veces y el 20% restante es verdaderamente útil. Demos prioridad a las tareas que aporten valor al negocio y el resto ya veremos si es realmente necesario implementar.
En la mayoría de proyectos tenemos como condicionante el coste (precio cerrado) y el plazo de entrega, y en muchos también el alcance. Las metodologías ágiles (bien implementadas) gestionan este problema bastante bien.
Porque es el equipo de desarrollo el que decide hasta donde puede hacer en cada iteración, y se compromete a cumplirlo, y ellos son los que más saben del día a día del desarrollo del proyecto.
Porque permite controlar de forma más eficiente las posibles desviaciones del proyecto, haciendo que la vida del gestor de proyecto sea más fácil.
Y por último, aunque con toda seguridad lo más importante, porque la satisfacción del cliente es mayor cuando está involucrado y tiene poder de decidir sobre el proyecto, y además recibe entregables incrementales y perfectamente funcionales de forma periódica.
El carácter latino nos invita además a este tipo de comportamientos. Siempre preferimos empezar a andar y mientras tanto abrir el mapa, y ya vamos viendo poco a poco cómo vamos hacia donde queremos ir. Scrum y otras metodologías ágiles aprovechan este comportamiento en favor del producto final y de la satisfacción del cliente.

No olvidemos que Scrum como tal no define una forma concreta de desarrollar, sino unas serie de mecanismos para organizar equipos de trabajo en entornos ágiles, y de hecho esta metodología de organización de personas se tiene que complementar con otras que son puramente de desarrollo. Scrum habitualmente se combina con eXtreme Programming, pero también da buenos resultados con otras.

Hay gran cantidad de información en Internet sobre Scrum y metodologías ágiles en general, pero yo creo que es de obligada lectura la obra de Henrik Kniberg “Scrum y XP desde las trincheras”, traducida al castellano por uno de los grandes conocedores y “evangelizadores” de la agilidad, Angel Medinilla.

¿Qué otras fuentes de información recomendarías tú?

Suyo afectísimo.