Entorno inicial

Por shammael, 20 septiembre 2009 8:36

Perdón por no haber escrito en las ultimas dos semanas, un par de cursos que necesitaba pero que han venido en mal momento, dos “releases” de emergencia y dos normales entre un montón de bugs y problemas me han mantenido ocupado durante los últimos 20 días.

Bien, hasta ahora he estado hablando de mi y de mi experiencia, ya es hora de que empiece a hablar del entorno inicial de mi trabajo actual y el entorno de desarrollo que existía. Básicamente, este ultimo punto se puede resumir en una palabra: Inexistente.

El problema es que ya había mas de 10 aplicaciones siendo desarrolladas, mantenidas y funcionando. Todo hecho por varios trabajadores temporales y externos. Algunos bastante buenos, la mayoría con solo un conocimiento básico de lo que estaban haciendo.

La compañía no era de mucha ayuda en esto. Esta especializada en dar servicios de infraestructura a una corporación (mucho) mayor, se creo hace poco tiempo (unos 4 o 5 años) y cuyo principal cometido es mantener funcionando los servidores y los mainframes. El software, en esta compañía, vino después y casi todas las aplicaciones que funcionan en estos servidores han sido heredadas de las otras compañías (“entidades” en la jerga local) que forman la corporación.

Esto es el infierno para un desarrollador.

Casi todos los empleados son administradores de sistemas o de red, esta gente prácticamente no usa sus ordenadores, simplemente ejecutan un par de aplicaciones locales y los usan para conectarse a los diferentes servidores, routers, switches… La gente que trabaja con los mainframes hacen lo mismo. Así que la especificación básica para una “estación de trabajo” aquí es un P4 con 512MB de RAM. Intenta usar una base de datos local, un Websphere AS también en local y tu entorno de desarrollo java preferido (entre otras herramientas y aplicaciones como el cliente de correo, editor de textos…) y las cosas pueden llegar a ser exasperantes.

También están todas las diferentes políticas. Básicamente, yo he sido el primer empleado “normal” (fuera del reducido grupo de IT, quiero decir) que consigue privilegios de administrador local. Desgraciadamente es algo basico si tienes que andar instalando y desinstalando herramientas de desarrollo, usando debuggers con procesos en ejecución y cosas de esas. Quizás no las necesites todo el tiempo, pero si que necesitas tener la opción. En el caso de las herramientas seleccionadas por la compañía, es totalmente necesario. El entorno esta basado en las herramientas de IBM (Websphere AS, Websphere Studio, DB2, MQSeries…) y simplemente para ejecutar el servidor de aplicaciones Websphere integrado en el Websphere Studio necesitas permisos de administrador local. Un error en el programa? Algo que se puede arreglar con permisos mas específicos? Es posible, pero no he tenido tiempo de toquetear y probar y si consigues los permisos de administrador el problema se soluciona.

Esta forma de pensar se extiende a los servidores. No me entendáis mal, estoy totalmente a favor de tener unas políticas de seguridad estrictas en los servidores de producción. Aun siendo un desarrollador experimentado (o precisamente por serlo) es fácil que te cargues algo, así que es mejor si solo tienes acceso cuando y donde lo necesitas. Pero que pasa con las maquinas de pruebas? Os suena bien el tener que pedir permiso para actualizar una aplicación en una maquinas de pruebas? Es, después de todo, un entorno de pruebas, se supone que cambia con rapidez y que tiene siempre las ultimas versiones de todo (versiones de desarrollo). Al menos ahora el proceso es automático, pero aun así, significa que no hay una manera sencilla de montar un entorno de integración continua.

Tengo que decir, llegados a este punto, que aunque el entorno de trabajo no sea el mejor y que algunas de las políticas parezcan estar diseñadas para entorpecer el desarrollo, los directores tienen la mente bastante abierta y han sido mis mejores aliados para facilitarle las cosas a todo el mundo. Simplemente cinco minutos delante de mi monitor y conseguí 2GB extra de memoria. Un correo explicando que eran los permisos de administrador y por que los necesitaba y los tuve al día siguiente (y los perdí a la siguiente semana y tuve que recurrir al correo otra vez hasta que los tuve de manera permanente). Ambos cambios han sido incluidos en las necesidades estándar del departamento de java y ahora espero que el resto de departamentos (que hasta ahora han tenido que hacer malabarismos para hacer su trabajo) empiecen a pedir las cosas que necesitan.

Bueno, creo que es suficiente por hoy. Continuare la semana que viene con esto, pero mas centrado en el lado del software (y posiblemente me quejare un poco de los contractors).

De donde vengo

Por shammael, 30 agosto 2009 2:20

Bueno, este va a ser el primer “post” de verdad de este blog.

Creo que, para poder explicar bien las cosas de las que quiero escribir aqui, es necesario algun tipo de introduccion. Un sitio en el que un visitante pueda leer un poco sobre mi y quizas entender mejor las razones que tengo para decir cualquier estupidez que este diciendo en ese momento.

Antes de nada, soy un ingeniero informatico. En mi pais, en la manera en que las universidades funcionan alli, esto significa que que se un monton de teoria de todas las cosas minimamente relacionadas con la informatica (desde ingenieria y desarrollo de software, teoria de compiladores, estructuras de datos, algoritmia, inteligencia artificial pero tambien diseño de hardware, electronica, robotica, proceso de señales… A organizacion de un centro de datos, administracion de empresas y derecho y cosas basicas como fisica, algebra, calculo, analisis matematico y numerico…) pero muy poca practica y casi ninguna posibilidad de especializacion (ni siquiera la posibilidad de centrarse mas en sotware que en hardware o vice versa). Toda la practica que tuvimos fueron un par de laboratorios sobre circuitos y varios ejercicios de programacion a lo largo de los cinco años de carrera.

Casi todas estas clases estaban dadas por gente que se ceñia a un libro o a otro y no querian (o podian) llegar mas lejos o siquiera aconsejar a algun alumno que quisiera aprender mas alla de lo que decia el libro.

Empece a trabajar en mi segundo año de carrera, en una punto com (era el año 1999) y para mi fue un mundo completamente diferente con un monton de libertad para aprender, investigar y proponer ideas (supongo que mucha gente se extrañara de que tuviera mas libertad para hacer todo esto en un trabajo que en clase, pero asi es como me senti). No paso mucho tiempo antes de que empezara a encargarme de proyectos pequeños (y generalmente el unico trabajando en ellos), lo que me forzo y motivo a estudiar y a aprender muchisimo mejor que todas las clases y profesores juntos.

Entonces vino la crisis de las punto com y esta compañia cayo (bueno, en realidad no, fue comprada por otra compañia mas grande que cambio tanto la manera de trabajar que hizo que desaparecieran casi todas las cosas que me gustaban de ella). Probablemente hable otra vez de este sitio en el futuro, teniamos algunas formas de trabajar interesantes de las que solo he oido hablar en otras compañias desde entonces (Google, con su 20% del tiempo de los empleados para otros proyectos es un ejemplo). Al mismo tiempo se presento una oportunidad para trabajar en un proyecto grande para un fabricante de coches, con aplicaciones y sistemas por todo el mundo, asi que la aproveche y me tuve que enfrentar a un entorno totalmente diferente, lleno de codigo antiguo y con reglas muy estrictas.

Desde entonces me he movido bastante, he estado en compañias grandes y pequeñas (una de ellas la mia propia, aunque solo duro un par de años), en proyectos nuevos y manteniendo aplicaciones ya hechas, desde pequeñas aplicaciones web internas a sistemas bancarios complejos, todo en unos 10 años de experiencia laboral, mas o menos el mismo numero de empresas y tres paises diferentes. Siempre he intentado ver tanto las cosas buenas como las malas de estas empresas e intentar aprender de ellas, algunas veces incluso lo he conseguido, creo… Bueno, al menos eso espero y sigo intentando.

Así que aquí estoy, con una buena oportunidad de intentarlo y montar las cosas a mi gusto (como dije en mi anterior post) y ver si consigo ser mejor que todos esos managers y jefes de los que me he estado quejando todos estos años. Al menos espero no ser peor que ellos.

A ello

Por shammael, 26 agosto 2009 7:16

Llevo queriendo empezar este blog desde hace varios meses, pero siempre hay algo que acaba apareciendo.

O estoy muy ocupado, o muy cansado, o tengo cosas mas importantes que hacer… Basta.

Espero empezar a que a partir de ahora esto se convierta en un blog de verdad.

Uno de los temas principales de esta web sera el desarrollo de software, después de todo, llevo trabajando como desarrollador los últimos 10 años (principalmente con java, pero también he hecho cosillas en varios lenguajes mas, desde cobol (puagh!) a .Net).

Ahora mismo estoy creando un departamento de java desde cero en mi trabajo, que nunca ha tenido nada similar. Asi que estoy escribiendo procedimientos, instalando herramientas, ayudando a otros desarrolladores, lidiando con otros departamentos y, al mismo tiempo, intentando controlar varias aplicaciones java que andan por aquí salvajes (y que han sido el origen de una cantidad increíble de momentos pero-que-cojones…?). Intentare hablar de mis experiencias sobre esto para mi mismo y por si a alguien le resulta útil.

Nos leemos!

Actualización!

Por shammael, 16 abril 2009 9:06

Pues si, he actualizado! Ni yo mismo me lo creo…

El caso es que he decidido un poco para que voy a usar este blog (si, he tardado, soy lento, y que?) y el primer paso ha sido importar todas las entradas que tenia en mi bitacora de barrapunto, mi primer blog y lo unico que tengo digno de ser llamado asi.

En cuanto al resto, intentare publicar mas a menudo, pero no voy a prometer nada…

Nuevo exploit para procesadores Intel

Por shammael, 19 marzo 2009 11:40

Leo en networkworld.com que hoy se presenta un nuevo exploit que se aprovecha de un error grave de los chips de Intel.

Los investigadores Joanna Rutkowska y Loïc Duflot van a publicar un articulo y código de ejemplo para un nuevo exploit del SMM que se instala a través de una vulnerabilidad del sistema de cache de los chips Intel. El exploit permite hacer una escalada de privilegios desde el anillo 0 hasta el SMM en muchas placas Intel modernas. Joanna, que ya era conocida por descubrir Blue Pill hace unos años, ha aclarado que no van a publicar un rootkit, pero que sin embargo seria posible usar este exploit para instalar rootkits de SMM ya existentes.

Lo preocupante de un exploit de este tipo es que el SMM tiene mas privilegios que el hypervisor y que no es controlable por ningún sistema operativo. Así que este no es capaz ni de interceptar ni de desactivar las interrupciones de este sistema. En la practica, no hay forma de saber que se esta ejecutando en ese nivel del sistema y no hay nada que el sistema operativo pueda hacer.

La razón de publicarlo ahora es que ambos investigadores avisaron a Intel hace un año y todavía no se ha resuelto. Es mas, la primera mención sobre la posibilidad de un ataque de este tipo es del 2005, de manos de los propios ingenieros de Intel. En resumen, esa vulnerabilidad lleva ahí años, y si tanto los ingenieros de Intel la conocían y estos dos investigadores la han descubierto, hay razones para creer que otra gente la conozca y que hasta la estén usando. En palabras de la propia Joanna:

Si hay un bug en alguna parte y se queda sin arreglar el tiempo suficiente, esta garantizado que otra gente la (re)descubrirá y la explotara, antes o después. Así que, no culpen a los investigadores que buscan y publican información acerca de estos errores, en realidad están haciéndole un favor a nuestra sociedad.

Entrada publicada originalmente en Barrapunto

Microsoft pierde terreno en Islandia.

Por shammael, 10 marzo 2009 7:55

<disclaimer>
Aquí va un texto interesante que he encontrado en el blog de Smári McCarthy. El titulo original es “Microsoft Skull-fucks Iceland’s Economy, Contracts Syphilis”, que viene a significar algo así como “Microsoft jode la economía islandesa y contrae la sífilis”.

Personalmente no creo que las cosas salgan tan bien como este hombre parece creer, pero el simple hecho de que este pasando me parece un ejemplo para cualquier empresa de cualquier país.

A continuación, la traducción de parte del articulo.
</disclaimer>

Microsoft se ha creado un negocio a base de vender licencias para ejecutar un software que puede ser copiado con un coste marginal, eso es algo que todo el mundo sabe. Básicamente, crean software, pero su producto no es código de ordenador, es código legal. Contratos.

Hacen tratos con compañías, el trato mas común es una licencia de uso no exclusiva y no transferible para el uso del sistema operativo Microsoft Windows y la suite ofimática Microsoft Office durante tres años. También se vende una gran cantidad de licencias de uso de Microsoft Dynamics NAV (anteriormente llamado Navision Financials, me referiré a este programa como Navision).

Las compañías e instituciones que compran estas licencias generalmente no lo hacen directamente de Microsoft. En vez de eso Microsoft vende paquetes de licencias a los MCPs (Microsoft Certified Partners), que son empresas locales que promueven dicho software, generalmente perdiendo dinero con ello, porque saben que el cerrojo de Microsoft es tan fuerte que solo conseguirán vender esas licencias si ofrecen un importante descuento sobre los productos Microsoft.

La duración de la licencia es de tres años, pero el pago se hace anualmente. Aquí es donde empieza la diversión.

Pongamos, por ejemplo, que una economía se colapsa. Digamos que unas mil quinientas empresas en tu economía local quiebran. Ahora pongamos que Microsoft viene a cobrar su pago anual de los MCPs. Los MCPs argumentan, por supuesto, que “dado que las compañías a las que les vendimos el contrato han quebrado, nosotros no deberíamos pagar”.

“Aja!” dice el trajeado de Redmond. “Hicisteis un trato con nosotros y otro con ellos. El que las empresas clientes no puedan mantener su parte del trato no invalida el acuerdo al que llegasteis con nosotros”.

Esto es lo que he oído de colegas en la industria. Colegas a los que están puteando ahora mismo. En pocas palabras, los MCPs tienen que pagar las licencias de las compañías en quiebra.

La sorpresa de tener que hacer esto esta empezando a llegar a la economía islandesa, bastante dañada ya por el colapso de casi todas las empresas financieras privadas y la subsecuente quiebra de casi mil quinientas compañías. Y ahora le toca el turno a los MCPs de Islandia.

El diablo esta en los detalles. Microsoft solo esta cobrando lo que se le debe, forzando un caso que, en la mayor parte de lugares, seria perfectamente razonable. Bueno, no. Pero se podría decir así. Al final, todo es cuestión de beneficios.

Pero la respuesta ha sido sorprendente. Varios de los mayores MCPs de Islandia esta ahora luchando por sobrevivir en un mar ya revuelto por culpa de la depresión económica. La mierda ya ha llegado al ventilador, pero ahora, ademas, Microsoft les esta jodiendo.

Y que haríais vosotros en este caso? Bueno, mis fuentes me dicen que esta habiendo mucho movimiento. Varios MCPs están quitándose de problemas, migrando a Software Libre y re-estructurando su modelo de negocio. Mantener los beneficios dentro de Islandia, vender mejores servicios técnicos por menos dinero y, aun así, doblar sus beneficios. “Por que no hicimos esto antes?”.

Entrada publicada originalmente en Barrapunto

Sarkozy acusado de violación de copyright

Por shammael, 2 marzo 2009 10:12
Esta puede ser la historia mas irónica del 2009 en lo que respecta al debate del copyright. La CBC ha informado que el partido en el poder en Francia ha sido denunciado por una banda independiente por violación del copyright.

El presidente y su administración son bien conocidos por tratar de fortalecer las leyes del copyright no solo en Francia sino también por toda Europa. Ha aprobado la primera ley de los “tres avisos” por la cual si un usuario recibe tres quejas oficiales por violación del copyright, es desconectado de internet. La ley de los tres avisos nació en Francia y se ha extendido por todo el mundo gracias a los intentos de la industria para que otros países adopten la misma ley. De hecho, la administración francesa ha presionado a la Unión Europea para que adopte esta política, aunque el proceso se ha topado con opiniones contrarias, incluyendo a los representantes de Suecia que argumentaron que la gente depende de internet para el intercambio cultural.

Seguro que el presidente francés desearía ahora que todo el asunto del copyright desapareciera. Ha admitido el uso de la canción varias veces durante la campaña electoral, un uso que esta mas allá de la licencia obtenida. Así que la administración ofreció solucionar el caso pagando un precio simbólico de 1€. La banda ha rechazado la oferta, calificándola de insultante.

Visto en The Daily Irrelevant, noticia original en “MGMT ‘insulted’ by €1 offer from Sarkozy’s party”

Entrada publicada originalmente en Barrapunto

Funciones que hacen que Firefox cargue el plugin Java

Por shammael, 27 febrero 2009 12:16

El titulo del articulo original es “Here comes the sun” y lleva el subtexto: “Propiedades mágicas hacen que Firefox cargue de manera síncrona el plugin de java”. A continuación traduzco la nota:

Aqui hay un pequeño problema para desarrolladores web. Hay unas cuantas propiedades “mágicas” en el interfaz DOMWindow de Mozilla para soportar LiveConnect que lanzan el plugin de Java y todo lo que eso conlleva (en el caso de plugins modernos, lanzar java.exe como subproceso). Solo es necesario buscar estas propiedades en el objeto window.

Por ejemplo, veamos esta pagina de ejemplo:

<!DOCTYPE html>
<html>
<head>
<script type=”text/javascript”>
function sun() {}
</script>
</head>
<body>
</body>
</html>

Inocua, no? En realidad, no. Resulta que Firefox trata window.sun como una propiedad mágica de LiveConnect (Lo probé con Firefox 3.0.6 en Windows). Que es LiveConnect? Fue introducido en Netscape 4 para permitir controlar plugins a través de scripts. Acceder a cualquier propiedad mágica de LiveConnect lanzara el plugin de Java, incluso aunque tu codigo no tenga nada que ver con Java. Y usar el plugin de Java implica cargar la JVM. Ah! Y he mencionado que todo esto ocurrirá de forma síncrona? Y que Firefox dejara de cargar la pagina y se quedara esperando a que la JVM cargue? Y todo eso simplemente por acceder a la propiedad window.sun.

“Pero, pero, pero…” Te oigo tartamudear. “No estoy accediendo a la propiedad window.sun!”. Si, si lo estas haciendo. Declarar una función global es como asignar una propiedad al objeto window (el valor de la propiedad es la función en si). Y para asignar esa propiedad, Firefox la busca antes de reasignarla. Y cuando la busca… carga la JVM. De forma síncrona.

La lista de estas propiedades mágicas de LiveConnect que matan el rendimiento está enterrada dentro de la documentación del código fuente de Mozilla. Son las siguientes:

* java
* Packages
* netscape
* sun
* JavaClass
* JavaArray
* JavaMember

En otras palabras, no defináis una función a nivel de ventana que se llame sun(). Matara el rendimiento de tu pagina porque al menos un navegador moderno pensara que quieres usar Java, gracias a una “característica” que invento Netscape en 1997.

Entrada publicada originalmente en Barrapunto

La camara del iphone

Por shammael, 21 enero 2009 11:48

Mirando blogs por ahí he encontrado esta fotografia de una hélice de avión hecha con el iphone. Esta es una de las veces que echo en falta la posibilidad de poner imágenes en barrapunto, porque la verdad es que merece la pena verla.

La foto no esta retocada ni se ha usado nada especial, simplemente es así como la ha tomado el sensor.

El autor de la foto achaca ese efecto a que el sensor es un sensor CMOS barato y que no escanea toda la imagen al mismo tiempo, sino que lo hace columna a columna. Sin embargo me parece que hay otra explicación, quizás mas plausible (sin meterme en la calidad del sensor del iphone, algo de lo que no tengo ni idea), y es la forma en que la cámara deja pasar la luz, usando lo que se conoce como rolling shutter (no encuentro ninguna traducción “oficial”, pero a mi me suena igual al obturador de cortina) y que deja pasar la luz columna a columna, con lo que cada columna correspondería a un momento en el tiempo ligeramente diferente.

A continuación mas imágenes así (todas tomadas con el iphone):
- Time Traveling Metra – Rodgers Park Stop
- Prop 1
- Prop 2

Entrada publicada originalmente en Barrapunto

Si te acusan de compartir en internet, eres culpable.

Por shammael, 7 enero 2009 3:41

Si te acusan de compartir en internet, eres culpable. Así, sin mas, sin juicios, sin comprobaciones, sin historias.

Esto es lo que ocurrirá en Nueva Zelanda a finales de febrero, cuando se ponga en marcha la seccion 92 del Acta de reforma del copyright. La medida dice, básicamente, que cualquier persona acusada de compartir archivos en internet sera considerada culpable automáticamente y se le desconectara de internet.

Reíros de los planes de “tres avisos” que se intentan aprobar en varios países.

Por eso la fundación Creative Freedom ha comenzado una campaña y una petición para que se retiren estas medidas.

No creo que a los que estemos aquí nos afecte demasiado, al menos no de momento (“cuando las barbas de tu vecino veas cortar…”), ni que realmente podamos hacer algo para evitar que esa medida llegue a ponerse en marcha (en todo caso, eso corresponde a los neozelandeses). Sin embargo si que creo que es un tema importante y que merece la pena hablar de el.

Entrada publicada originalmente en Barrapunto

Panorama Theme by Themocracy