lunes, 28 de enero de 2008

Nokia compra Trolltech

La gigante finlandesa de la telefonía celular Nokia anunció que estará comprando a la noruega Trolltech, más conocida por su software Qt4 que es la fundación del popularísimo escritorio KDE 4.0 y de todas sus aplicaciones. La adquisición (por un monto no especificado y todavía sujeto a la aprovación de los accionistas de Trolltech) le permitirá a Nokia "acelerar su estrategia de software multiplataforma para los dispositivos móviles y aplicaciones de escritorio".

viernes, 25 de enero de 2008

Lo que traerá Linux 2.6.24

  • Mejoras del gestor de procesos: Además de unas mejoras de rendimiento que ponen a CFS al nivel del antiguo gestor de procesos (e incluso un poco mejor), en 2.6.24 se podrá escoger cómo particionar el tiempo de CPU. Hay dos métodos: uno que lo particiona por cada usuario, es decir, si un usuario ejecuta un programa con un bucle cerrado y otro usuario ejecuta dos, el primer usuario tendrá un 50% para su programa y el otro el otro 50% para sus dos programas (25% cada uno). Para un servidor multiusuario esto es muy útil; las "bombas fork" por poner un ejemplo no serían capaces de afectar a otros usuarios. El otro sistema particiona la CPU de un modo completamente configurable: Se crean "grupos de control de recursos", se configura el grupo, ej: que tenga el doble de tiempo de CPU disponible para sus procesos, y se pueden asignar los PIDs que tu desees a ese grupo. El PID heredará las propiedades del grupo automaticamente, es decir, tendrá más prioridad que un proceso normal, es decir, como un "nice", pero aplicado a un grupo de procesos aleatorio, no a uno solo ni a un solo usuario. Este sistema está basado en su parte de configuración en los "task control groups", que tambien es algo nuevo y se comenta y se entiende mejor en el siguiente punto.

  • Task Control Groups, o grupos de control de procesos. Este es un invento que sirve para la asignación y control de recursos a grupos de procesos, que es algo que algunos UNIX tienen hace tiempo y que Linux, aunque lleva años pensando el como y tiene mil implementaciones sueltas por ahí, añade finalmente en esta versión despues de años de trabajo. La idea es que el usuario crea "grupos de control de procesos", algo que en la práctica consiste crear uno o varios directorios en un sistema de archivos virtual especial. Ese directorio contiene, nada más crearle, un monton de archivos que pone ahí el kernel y que son la interfaz de configuración. Leyendo o escribiendo a esos archivos uno configura las propiedades del grupo creado: ej. el tiempo de CPU, como se explicaba en el punto anterior. Por supuesto, por si solo un grupo configurado no sirve de nada, para que tenga alguna utilidad hay que añadir procesos al grupo creado, que en la práctica se traduce a escribir su PID en un archivo del directorio del grupo que has creado: Ese proceso herederá automáticamente las propiedades del grupo. Puedes crear todos los grupos que quieras, configurarle las propiedades que quieras y vincular los procesos que quieras con él. Se ha mencionado que se puede configurar el tiempo de CPU, pero tambien se pueden configurar otras cosas, como las CPUs o nodos de memoria en los que quieres que se ejecuten los procesos del grupo; incluso puedes especificar que no se permita que otros procesos se ejecuten en las CPUs que has reservado. De manera que puedes hacer cosas como que unos procesos que a ti te caen bien tengan el doble de tiempo de CPU que un proceso normal, se ejecuten solo en las CPUs 1, 2, 5, 10 y 11, y que su memoria se ubique solamente en el nodo de memoria 1. Esta es la infraestructura base de asignación de recursos a procesos, y a día de hoy existen las posibilidades citadas: control del tiempo de cpu, de CPU y nodo de memoria en el que se ejecutan los procesos...pero en el futuro se añadirán más posibilidades (máximo tamaño de memoria ocupado, quizás prioridades I/O, etc).

  • Soporte de Tickless (NO_HZ) para x86-64, PPC, UML, ARM, MIPS....por cierto, tambien está "cpuidle", una nueva infraestructura para gestionar el tiempo muerto de la CPU, con una política (opcional) optimizada para NO_HZ. En resumen, que es algo que sirve, como titulaba una charla de un ingeniero de Intel, para...How to do nothing...efficiently.

  • Reunificación de las fuentes de x86-32 y x86-64: Ya no hay arch/i386 y arch/x86_64, hay un solo directorio arch/x86 (aunque se conservan algunos enlaces simbólicos en los directorios antiguos, por compatibilidad). Esto no significa que se elimine una arquitectura: en realidad, buena parte del código fuente sigue sin compartirse y se compila exactamente igual siempre. Lo que se ha hecho es mover todos los archivos de las dos arquictecturas a ese arch/x86, pero añadiendo los sufijos "_32.c" y "_64.c" a los archivos de cada arquitectura. Poco a poco, los programadores buscan similitudes entre los archivos de nombres equivalentes pero sufijos distintos, lo unifican y lo ponen en un mismo archivo sin sufijo. Es una manera de unificar la máxima cantidad de código fuente posible entre ambas arquitecturas.

  • Puntos de montaje "bind" de solo lectura: A día de hoy existe, aunque no se utilize mucho, la opcion "mount --bind". --bind sirve para montar un directorio o punto de montaje ya existente en cualquier otro lado. Por ejemplo, si haces "mount --bind ~/midirectorio /tmp", tu directorio "midirectorio" se montará y será accesible en /tmp tambien. Pues bien, ahora en 2.6.24 se pueden hacer monturas --bind de solo lectura, de manera que no se pueda escribir al directorio montado. Esto util desde el punto de vista de seguridad, para dar a los servidores para servir directorios a los que no se podrá escribir si un cracker logra acceso al sistema.

  • Espacios de nombres para los PIDs y la pila de red: Esto tiene que ver con la virtualización a nivel de sistema operativo, tipo vserver o openvz, las "jails" de los BSDs o los "containers" de solaris: un proceso puede crear un nuevo espacio de nombes de PIDs...de manera que al mirar la lista de procesos del sistema, solo verá....¡su proceso! Todos los demás procesos del sistema no le serán visibles. Es como un chroot, pero mejor hecho. Idem respecto a los espacios de nombre de la pila de red: cada espacio de nombres de red podrá tener sus propias reglas de cortafuegos, y cosas así. Esto es muy bonito pero solo será util cuando se haya introducido el soporte completo de containers y utilizando las utilidades de vserver/openvz. Como tantas otras cosas, esto estaba disponible hace años en forma de vserver/openvz, pero solo ahora entra a formar parte del kernel principal.

  • Límites de memoria "sucia" para cada dispositivo: Aunque parezca raro, hasta el día de hoy Linux mantenía un límite global de la cantidad de memoria que puede estar "sucia" (sin escribir a disco). Esto tiene unos efectos divertidísimos cuando tienes en una máquina dispositivos como ej: un disquete y unos discos ultra rápidos, que "limpian" la memoria a velocidades muy diferentes. Y no cuento nada en el caso de dispositivos de bloques "anidados", como es el caso de cualquier máquina con LVM/MD. En 2.6.24 los límites son independientes para cada dispositivo y se calculan dinámicamente teniendo en cuenta el ritmo de escritura de cada dispositivo. Esto mejora el rendimiento en muchas configuraciones.

  • Soporte SPI/SDIO en la capa MMC: ¿Sabían ustedes que las mierdas de ranuras donde se meten las tarjetas de memoria MMC en las camaras digitales pueden actuar como bus si al fabricante le da la gana añadir los cables y chips necesarios, y que se les puede conectar tarjetas wireless y cosas así? El diablo no dejará nunca de sorprendernos. En cualquier caso, ahora Linux soporta esa tecnología diabólica, para que ustedes condenen sus almas con esos inventos propios de Microsoft.

  • Autorización USB: Pues resulta que como parte de los esfuerzos para soportar USB wireless (si, hay USB sin cables, aunque aun es muy nuevo) ahora la pila USB puede configurarse a través de sysfs para que los dispositivos USB conectados al sistema no pasen a funcionar inmediatamente. Han de estar "autorizados" para funcionar. En el caso de USB wireless, es imprescindible pues no se puede permitir que los dispositivos USB wireless que pasen por tu lado se conecten automaticamente a tu ordenador. Pero puesto que esto tambien esta disponible para el USB normal y corriente, es muy útil para crear configuraciones "kiosk" en cibers o en "clientes tontos" en los que sea imposible conectar cosas a la torera si no hay autorización expresa.

  • Markers: Esta es una de las partes que conforma lo que podríamos llamar "Dtrace de linux", es decir, systemtap (la otra es kprobes, que ya está; ya solo falta utrace). Un sistema como systemtap puede insertar "probes" en cualquier lado dinámicamente, pero hay puntos del kernel (ej; donde se gestionan los "fallos de página", para contarlos) que por su importancia se tiende a insertar "probes" muchas veces en ellos: Por eso es más práctico añadir un "probe" estático, que además es más eficiente.

  • Antifragmentación de la memoria: tres años, tres, ha estado un tipo implementando unos parches que reduzcan la fragmentación de la memoria, es decir, que permitan satisfacer grandes asignaciones de memoria contigua (es decir, múltiplos de 4KB en x86 - 8KB, 12KB, 16 KB) despues de que el sistema lleve mucho tiempo siendo utilizado. Sin estos parches, un sistema muy utilizado puede tener MBs disponibles de memoria libre...¡pero puede que ni tan siquiera unas pocas decenas de KB de esos MB sean contiguos! Si se ha tardado tanto es porque se trata de una mejora que afecta a la asignación de memoria al más bajo nivel posible, y ha habido mucha discusión sobre como debía hacerse, y los parches se han rehecho mil veces, incluso ha habido parches implementado más de una alternativa. El caso es que por fin se ha incluido, que mucha falta hacía.

  • Drivers para dispositivos inalámbricos: En Linux se añaden drivers continuamente, pero en esta ocasión se ha añadido una buena cantidad: 8, 2.3 MB de código en C, soportando una amplia variedad de dispositivos: Intel PRO/Wireless 3945ABG/BG, Intel Wireless Wifi Link AGN (4965), rt2400 pci/pcmcia, rt2500 pci/pcmcia, rt61 pci/pcmcia, rt2500 usb, rt73 usb, BCM43xx IEEE 802.11G, prism54....además de esos, se incluyen otros cuantos de red pero no-wireless; Intel(R) 82598 PCI-Express 10GbE, E1000E pci-express, IP1000A....

jueves, 24 de enero de 2008

DDR3 y DDR2 pronto al mismo precio

Intel está impulsando agresivamente la implantación de memorias DDR3 en sus plataformas, por los que los fabricantes de DRAM en Taiwan están incrementando el volumen de producción con el objetivo de que el coste entre una y otra sea menor al 10% en el segundo semestre del año.

Los fabricantes señalan que la memoria DRAM DDR3 despegará finalmente este año al reducir drásticamente su precio, esperando que al final de 2008 esté implantada en el 30% de los ordenadores nuevos que se pongan a la venta.

El estándar DDR3 permite voltajes más bajos y un ahorro del 40% en el consumo frente a DDR2. Además pueden transferir datos a mayor velocidad aunque los fabricantes han “subido de vueltas” la DDR2 por encima de las especificaciones aprobadas por la organización JEDEC.

El tope del estándar sería el DDR3-2000, a 1.000 MHz de E/S y una capacidad máxima de transferencia de 15 GB/s.

Ahora mismo los precios de 2 módulos de memoria DDR2 de 2 GB rondan los 50 euros, frente a los 200 que puede costar la misma cantidad en DDR3, aunque el impulso de Intel y el consiguiente aumento de producción podrían reducir drásticamente esa diferencia según los fabricantes.

KDE se vuelve multiplataforma

Parece que el entorno de escritorio KDE se vuelve multiplataforma. La gente de KDE están desarrollando las versiones para Windows y Mac OS X. Además de portar las principales librerías de KDE y las aplicaciones, los desarrolladores también están portando software basado en KDE, como el reproductor multimedia Amarok o la suite ofimática KOffice. Los binarios para Windows fueron liberados el 22 de enero y están disponibles en los mirrors KDE a través de un programa de instalación automatizada. El port de Mac OS X está disponible a través de BitTorrent en el formato binario. ¿Conseguirá esta acción decantar la balanza hacia KDE en contraposición de Gnome?

IBM no liberará OS/2

Finalmente IBM respondió a una petición de la comunidad del sitio OS/2 World de Noviembre del año pasado para liberar el código fuente del sistema operativo OS/2 como Open Source. La respuesta de IBM fué negativa, citando motivos técnicos, de negocios y razones legales. Lo cierto es que IBM decretó la muerte de OS/2 hace tanto como en el 2002, terminando además con todo su soporte técnico en Diciembre del 2006.

Recordemos que OS/2 World hizo su primera petición de este tipo hace 3 años consiguiendo 11.000 firmas.

miércoles, 23 de enero de 2008

Los dos tipos de programador

En Coding Horror, un blog bien interesante para programadores, Jeff Atwood escribe un post titulado “The Two Types of Programmers”, donde plantea una agrupación más general de los tipos de programadores.

“Contrario al mito, no hay catorce tipos de programadores.. Hay realmente solo dos, como nos recuerda Ben Collins-Sussman.

Hay dos “clases” de programadores en el mundo del desarrollo del software: voy a llamarlos el 20% y el 80%. Los tipos del 20% son lo que se llamarían programadores “alfa” - los líderes, el tipo que lugares como Google y Fog Creek software buscan contratar desesperadamente. Éstos tipos fueron los primeros en instalar Linux en su casa en los 90´s; la gente que escribe compiladores en Lisp y aprende Haskell los fines de semana “por diversión”; participan activamente en proyectos open source; siempre están al tanto de las últimas, y más frescas tendencias en la programación y herramientas.

Los tipos del 80% hacen el bulto de la industria del desarrollo de software. No son estúpidos; son meramente vocacionales. Fueron a la escuela, aprendieron suficiente Java/C#/C++, luego obtuvieron un trabajo escribiendo aplicaciones internas para bancos, gobiernos, firmas de viajes, firmas legales, etc. El mundo usualmente ni ve su software. Usan cualquier herramienta que les provee Microsoft — usualmente VS.NET si están en C++, o capaz un GUI IDE como Eclipse o IntelliJ para desarrollar en Java. Nunca han usado Linux, y no están muy interesados en él de todas formas. Muchos nunca han usado siquiera control de versiones. Si lo han hecho, es con cualquier herramienta entregada con la caja Microsoft (como SourceSafe), o alguna cosa antigua que le hayan entregado. Saben exactamente lo suficiente para hacer su trabajo, luego se van los fines de semana a casa y se olvidan de las computadoras.”Personalmente, convivo con esta teoría a diario en clase. Una frase típica, a tono de burla, en mi salón de clase es: “Eso el Visual Studio te lo hace solo” ó “¿Para qué vas a aprender eso si ya está hecho?” ó “Ésto nunca lo vas a usar, es al pedo aprenderlo“. Con esa mentalidad se maneja este 80%.

El problema, el primer año aprendimos a usar Visual Basic, un IDE que te autocompleta, te tabula, y el framework .NET que incluye todo. Y resulta muy difícil para la mayoría salir de eso. Trabajar en C a bajo nivel es como darse contra un muro de piedra en un automóvil a 90 km/h y sin cinturón de seguridad…

Lo peor no es ésto, sino la cabeza de no salir de lo que ya se aprendió, de aprender una cosa que resulta “cómoda”, y no salir de eso. Muchos dijeron cuando empezamos con la materia: “¿Para qué quiero aprender C si nunca lo voy a usar?” ó “Yo nunca voy a programar un sistema operativo, ¿para qué quiero aprender C?” Conociendo esa mentalidad, ¿quién contrataría a ésta gente para un puesto de programador?

Me imagino la situación (situación Dilbert):
Jefe - “Mirá, tenés que hacer una librería en C que interactúe con nuestro framework de persistencia para controlar el puerto serie del servidor
Empleado - “¡Ah no!, yo eso no lo sé hacer, aparte el Visual no trae cómo hacerlo…

Son el tipo de gente que cumple con las 12 señales de que eres un mal programador. Son una nueva generación de 80% que se está gestando…

Para reafirmar más ésta teoría, se aplica la teoría general del Dr. Gregory Walter Graffin III, quien declaró que

En cualquier muestra al azar de la población general, se encontraría que el 80% de la gente son completos idiotas.

Es totalmente compatible, aislamos una muestra de la población, con la característica en común de ser programadores. El 80%, por ende, no son muy inteligentes…
El artículo de Coding Horror continúa diciendo:

“Cuando trabajo con equipos de programadores en el campo, consistentemente me asombro con el abismo entre ese 20% y el resto del mundo. Hace que la división entre el campo open-source y el campo Microsoft parezca un charco llano.

Declaración shockeante #1: La mayor parte de la industria está hecho del 80% de los programadores.. Sí, la mayoría del mundo son tiendas pequeñas de desarrollo para Windows, o firmas pequeñas que contratan programadores internos. La mayoría de las compañías tienen unos pocos tipos del 20%, y son generalmente los que presionan a sus jefes de pelo parado para cambiar políticas, actualizar herramientas, o usar un sistema de control de versiones sano.
Declaración shockeante #2: La mayoría de los alpha-geeks se olvidan de la declaración shockeante #1. La gente que trabaja con software open source, participan en argumentos apasionantes de criptografía en Slashdot, y bajan los últimos lanzamientos GIT son extremadamente propensos a perder de vista el hecho de que “el 80%” existe. Se emocionan con la última distro de Linux o herramientas de AJAX o sistema SCM distribuido, pasan todo el fin de semana en eso, bloguean al respecto… y luego están confundidos sobre porqué no pueden lograr que su oficina empieza a usarlo.

Tal vez no es algo impresionante para mí, pero un excelente e importante recordatorio para todos, sin embargo.

A menudo pienso que perdemos el tiempo escribiendo blogs los cuales son mayormente leído por el mismo 20%. En mi experiencia existe un pequeño efecto de goteo de los programadores alfa hacia todos los demás. Y si lo hay, lleva décadas.”

Jeff continúa su artículo incitando al 20% a cambiar, a construir un puente entre el 20% y el 80%:

“Si realmente quieres cambiar el status quo del desarrollo de software, si realmente quieres marcar una diferencia este año, tienes que ayudar fuera del pequeño grupo insular de programadores alfa y crear el cambio en el otro 80% del mundo. Y eso es mucho, mucho mas difícil que predicarle al convertido 20%. Es por eso que admiro a gente como Scott Mitchell, porque entiende la importancia de llegarle al otro 80%.”
(…)
“Desearía que fuera más sencillo para mí, porque estoy de acuerdo con Scott” (…) “Creo que la verdadera medida de éxito no es cuántos alpha geeks podés hacer que te presten atención. Es cuántos típicos, poogramadores promedio has alcanzado, aunque sea de una forma pequeña. Si realmente te importa el arte del desarrollo de software, nos ayudarás a construir ese puente entre el 80% y el 20% también.

Es difícil lidiar con éste 80%, pero a lo largo de la carrera, van a estar siempre presentes. ¿Qué piensas al respecto? ¿Te consideras ofendido por el post? Estás en el 80…

Articulo original Aqui

¿Quién mató al ingeniero de software?

Este articulo es muy interesante y muestra la problemática real del desarrollo de software, la pregunta es todos deberían estudiar informática?


Robert Dewar, autor junto Edmond Schoenberg del artículo “¿Dónde están los Ingenieros de Software del mañana?” continuó la discusión al respecto en otra entrevista para Datamation. A continuación una traducción general con algunas opiniones de dicha entrevista:

Su argumento se resume así: los programas universitarios de ciencia de la computación no son lo suficientemente rigurosos, y no promueven la resolución de problemas y pensamiento en profundidad. En vez de eso, en un esfuerzo por aumentar el matriculado, los programas se enfocan en un currículo fácilmente accesible, y fallan en preparar a los estudiantes a competir con sus colegas internacionales.
Describe que su artículo fue malinterpretado en el punto en que comenta que la adopción de Java como primer lenguaje en los cursos ha llevado a ésta decadencia. Si bien Dewar entiende que las bibliotecas gráficas de Java permiten a los estudiantes crear software sin entender el código fuente por debajo, éste no es el problema principal.

“Mucho se trata de ‘hagamos ésto más divertido’. Sabes, ‘la matemática no es divertida, reduzcamos los requerimientos de matemáticas. Los algoritmos no son divertidos, deshagámonos de ellos. Ewww - bibliotecas gráficas son divertidas. Hagamos que la gente juegue con las bibliotecas. Y [olvidarse] todo éste asunto con ‘línea de comando’ - haremos que la gente use interfaces visuales lindas donde puedan apuntar y hacer clic y crear cosas gráficas llamativas y divertirse.”

Dewar menciona que su casilla de correo se llenó de respuestas positivas a su artículo, de estudiantes así como empleadores. Mucho lectores le han agradecido por hablar de una situación que creen necesario debe ser atendida, cuenta. Un email era de un IR que trabaja con un programador junior. El trabajador más viejo sugirió que el joven ingeniero chequeara el stack del núcleo para ver sobre un problema, pero desafortunadamente, “nunca había oído sobre un stack de núcleo”.

Desde el punto de vista de Dewar, la culpa es de las universidades que están deseperadas por compensar las bajas matriculaciones en programas de ciencia de la computación, aunque signifique destrozar los programas. Es conocido ampliamente que las matriculaciones han decrecido. Las causas principales: la caída de las punto com, y los encabezados constantes sobre outsourcing.
Responden a ésta baja en estudiantes del sector “atontando” los programas, esperando hacerlos más accesibles y populares. Lo que sea muy demandante o percibido como tedioso, se reemplaza con material simplificado que atraiga más enrolamientos. Obviamente como dice Dewar, ésto es contraproducente.

“Para mí, los números no son necesariamente la primera preocupación. La primer preocupación es que la gente obtenga una buena educación.”
Éstos estudiantes que fueron alimentados con material fácil no están preparados para competir globalmente.

Dice, uno de los pasos más contraproducentes que dieron las universidades fue adoptar Java como el lenguaje más usando en los cursos introductorios de programación, en un deseo de hacer la carrera más popular. Recuerda una discusión en la NYU hace varios años cuando decidieron cambiar el lenguaje introductorio de Pascal a Java. Pascal nunca había sido tan popular en la industria, cosa que no importaba; aprender Pascal tendía a promover prácticas de programación sólidas.
“Enseñaban Pascal porque parecía pedagógicamente la mejor opción”, dice Dewar.
El cambio a Java se hizo “puramente sobre la base de la demanda percibida de los estudiantes”. Para estar seguro, es un código popular para aplicaciones web y es relativamente fácil para los principiantes. Sin embargo, es exactamente ésta facilidad que lleva al núcleo de lo que está mal con los currículos de hoy en día.

“Si vas a una tienda y compras un libro de Java, son 1.200 páginas; 300 páginas son el lenguaje y 900 son bibliotecas misceláneas. Y es verdad que puedes sortear muchas cosas juntas en java muy fácilmente… así que puedes sortear cosas juntas sin un conocimiento mínimo,” dice. “Pero para mí, eso no es ingeniería del software, eso es algún tipo de programación consume-nivel.”

“El problema con Java es que esconde muchas cosas… esconde los temas de compilación - ¿qué está haciendo un compilador? Creo que si fuera a hablarle a un estudiante de Java, ni conocerían la palabra ‘compilador’. Si la conocieran, estoy seguro que no voy a obtener una idea si preguntara ‘¿qué hace un compilador?’”
El problema, a nivel de mercado en Norte América sería “Si la gente sale de las escuelas y saben Java y programación Web, y saben cómo armar cosas usando bibliotecas, ese es el tipo de habilidades que no se demandan”, Los trabajos que requieren no más que éstas habilidades de bajo nivel puede perfectamente hacerse desde países con sueldos bajos.
Como resúmen, el constructor a partir de bibliotecas de Java de hoy, es el repartidor de pizzas de mañana.

¿Quién debería estudiar (y quién no) Ciencias de la Computación?

Se necesita una persona con un set bien específico de inclinaciones y talentos para ser un programador de computadoras, comenta Dewar. Son éstas personas específicas para quienes deberían apuntar sus programas las escuelas - no la masa de personas semi-interesadas que usan bibliotecas pre-hechas para crear aplicaciones sin inspiración. Reflexión final de Dewar:

“La mayoría de los que entramos en programación realmente lo hacíamos porque lo encontrábamos divertido. Encontramos el desafío intelectual divertido. Encontramos que enfrentarnos a un problema complicado, luego pensar soluciones algorítmicas interesantes, es divertido. Encontramos estructuras de datos listas que resuelven problemas interesantes, divertidas.”
“Tal vez no sea divertido para una audiencia más grande, pero la educación de ciencias de la computación debería ser más sobre encontrar a esas personas que disfrutan ese tipo de diversión y enfocarse a ellos en vez de hacerlo todo fácil.”
“Si la gente encuentra aburrido computar algún valor interesante, entonces corre ese programa y obtiene un valor de 42 cuando debería ser 83, y encuentre porqué obtuvieron 42 en vez de 83, si encuentran eso tedioso y aburrido, entonces no son la clase de gente que necesitamos.”

Para los que se sientan identificados con la gente que describe en su reflexión final, creo que vamos por buen camino.

También podría interesarte:

En éste enlace, pueden leer una traducción completa de la entrevista. Está traducido por DanielSan, usuario de Barrapunto, en su bitácora.

¿Escalan bien los lenguajes dinámicos?

En The Server Side comentan un artículo en el que se debate la supuesta falta de escalabilidad de los lenguajes dinámicos.«Siempre me he preguntado si los lenguajes dinámicos pueden escalar. Uso la palabra 'escalar' en el sentido de "desarrollo escalable" más que en el de "sistema escalable". Escalabilidad en el desarrollo significa construir un sistema entre varios equipos independientes. La pregunta es: ¿Se puede utilizar un lenguaje dinámico para desarrollar sistemas grandes?.» En TSS se congratulan de que el artículo no sea el habitual festival trolero "Ruby es de juguete, Java es la única respuesta". ¿Cómo se desarrolla un sistema para que crezca más allá de su alcance original e incluso sobreviva al equipo de desarrollo inicial con elegancia?

QEmu OSX

Aparentemente, el proyecto QEmu OSX de Alexander Graf fué el primero en lograr ejecutar una versión no modificada de Mac OS X en un entorno virtualizado. Llamativamente ganándole a soluciones comerciales como VMWare Fusion y Parallels, QEmu OSX está logrando su objetivo de "hacer que cualquier versión de Mac OS X ejecute sin modificaciones en software de virtualización", inicialmente en QEmu y KVM y próximiamente también en Xen y VirtualBox.

La "magia" se logra en realidad usando versiones modificadas de QEmu y KVM.

miércoles, 16 de enero de 2008

Linux gana terreno en el escritorio, Microsoft no sabe que hacer con Vista

InformationWeek ha presentado un informe del nuevo mercado para los equipos de computo: las computadoras de escritorio y portátiles con precios muy accesibles al consumidor. Todo parece indicar que Linux ha ganado este mercado y Microsoft ha perdido demasiado con Vista.

Algunos ejemplos:

-- Es por todos conocido que Dell ha triunfado con sus portatiles con Ubuntu preinstalado.
-- Lenovo acaba de anunciar que venderá portátiles con Suse Linux preinstalado.
-- Wallmart no pudo satisfacer a todos sus clientes que pedian adquirir la famosa Everex gPC,
-- Se ha anunciado el Everex Cloudbook es un portátil de bajo costo con un VIA C7 a 1,2 GHz y un disco duro que se venderá a partir del 25 de enero por 399 dólares, con Linux Instalado.

Mientras tanto Windows Vista sigue perdido en un mercado que nunca han podido encontrar y cada vez es mas común escuchar No queremos utilizar Vista.

Fuente:
http://www.informationweek.com/news/showArticle.jhtml?articleID=205604334

Intel lanza 16 nuevos procesadores, incluido el primer chip de 45nm para portátiles

Intel Corporation lanzó el pasado 8 de enero, 16 nuevos productos, incluyendo los primeros procesadores de 45 nanómetros para los portátiles basados en la tecnología de procesador Intel Centrino.

Todos estos nuevos chips están diseñados según la nueva formula de fabricación de transistores de 45nm de la compañía, que mejora la velocidad de los ordenadores, reduce el gasto de energía, incrementa la vida de las baterías, es respetuosa con el medio ambiente y presenta una reducción del tamaño del encapsulado, para permitir diseños portátiles más compactos y modernos. Con la introducción de estos nuevos procesadores, Intel está ofreciendo actualmente un total de 32 productos para sobremesa, portátiles y servidores, basados en esta innovadora solución.

La compañía también da a conocer hoy cómo sacar el máximo provecho a estos avances en la fabricación de los transistores, que permiten la creación de una nueva categoría de dispositivos de pequeño tamaño, alto rendimiento y bajo consumo de energía, con conexión a Internet de banda ancha para llevar en el bolsillo. Los procesadores son hasta un 25% más pequeños que las versiones anteriores, por lo que los fabricantes pueden diseñar nuevos ordenadores portátiles todo en uno para los consumidores más móviles.

De estos 16 nuevos productos, 12 corresponden a los segmentos de sobremesa y portátiles y 4 a servidores. Ninguno de ellos contiene plomo1 y, comenzando este año, también están libres de halógeno2, respetando así el medio ambiente.

Windows 7, el sucesor de Vista, llegará en el segundo semestre de 2009

Fuentes de la industria han confirmado a tgdaily que una versión previa de Windows 7 (el antiguo Blackcomb Viena) ha sido enviada a “socios clave” con el código “Milestone 1”. El roadmap que el sitio web ha recibido indica que el nuevo sistema operativo sería lanzado en la segunda mitad de 2009.

Microsoft habría revisado el plan de trabajo y adelantado -supuestamente- el lanzamiento previsto para 2010 de su nuevo sistema operativo. No sabemos si los “mejorables” resultados de Vista tendrán algo que ver.

La actual M1 está disponible en inglés para los socios tecnológicos clave de la compañía y en versiones x86 y x64, según la información.

El roadmap indica que la M2 llegaría en el mes de mayo y la M3 en el tercer trimestre. Las fechas para la primera beta y la Release Candidate están sin determinar. Tendremos más pistas cuando Microsoft anuncie los cambios para Windows 7 de su “Windows Logo Program”. Según la política de la empresa esto suele producirse 18 meses de la RTM.

Poco se conoce del sucesor de Vista; quizá lo más interesante de lo anunciado sea el kernel MinWin aunque otras fuentes indican que es más de lo mismo porque ya estaría presente en Windows Vista y en Windows Server 2008.

Oracle compra BEA system

Tres meses después que BEA rechazase una oferta anterior, por fin Oracle se hace con el control del suministrador de Middleware, pagando 19,375 dólares por acción con una prima del 24% sobre el cierre bursátil de ayer.

Oracle indicó que el acuerdo, valorado en 7.200 millones de dólares netos, con 1.300 millones en efectivo, incrementará sus ganancias por acción en 2 centavos de dólar en el primer año. Con esta compra, Oracle potenciará Fusion, su propia suite de middleware con la que se convertirá en el segundo suministrador mundial de esta tecnología tras IBM.

El consejo de administración de BEA Systems, aprobó de forma unánime la venta tras las presiones de Carl Icahn, el primer inversor de la compañía con una participación del 13%.

Si el resto de accionistas de BEA system aprueban la transacción, las compañías prevén cerrar el acuerdo a mediados de 2008 tras el pertinante visto bueno del regulador.

Otro gran movimiento en el software mundial, tras el anuncio hoy mismo de la MySQLcompra por Sun Microsystems de MySQL, una de las empresas de software libre más famosas (y gratuitas) para bases de datos, por 1.000 millones de dólares, un precio sorpresivo y nunca visto en el sector de las licencias libres.

Un fallo de diseño en los routers caseros facilita los ataques remotos

Expertos en seguridad han descubierto que un fallo en el UPnP hace que los routers domésticos sean hackeados y redireccionados a páginas web fraudulentas.


El exploit funciona incluso cuando el usuario ha cambiado la contraseña que trae por defecto el router y es independiente del sistema operativo o del navegador al que esté conectado el dispositivo, siempre y cuando tenga instalada una versión reciente de Adobe Flash.

El problema ha sido calificado de “grave” por Adrian Pastor, de la organización GNUCitizen. Reside en el Universal Plug and Play (UPnP), una arquitectura de software abierta presente en la mayoría de los routers domésticos y que se utiliza para que los equipos puedan hacer funcionar juegos, programas de mensajería instantánea y otras aplicaciones. Cuando el usuario está expuesto a un archivo Flash maligno escondido en una página web, los atacantes pueden utilizar la UPnP para modificar el router.

El ataque más serio que puede hacerse es cambiar los servidores que el router utiliza para acceder a las páginas web. Esto podría llevar al usuario a páginas de bancos que parecen verdaderas pero que no lo son y que van a robarle sus datos personales.

Entre los routers vulnerables se encuentran los de las marcas Linksys, Dlink y SpeedTouch. La mayoría de los routers vienen con la UPnP habilitada de fábrica. La única forma de evitar estos ataques es apagando la función, algo que puede hacerse en algunos dispositivos, pero no en todos.

Roban registro electoral en Estados Unidos

El fin de semana anterior a Navidad, personas desconocidas lanzaron una piedra contra una ventana de las oficinas de la Comisión Electoral del Condado de Davidson, en Nashville (Tennessee, Estados Unidos). Acto seguido se apoderaron de un router valorado en 3.000 dólares, una cámara digital y dos ordenadores portátiles conteniendo el listado de registro de votantes del condado, que incluye los datos personales sin cifrar de más de 300.000 personas.

En cumplimiento de las leyes que obligan a notificar este tipo de incidencias, la Comisión Electoral remitió el pasado 2 de enero una carta a cada uno de los afectados.

El incidente podría costar un millón de dólares al Condado de Davidson, que es el coste total previsto de un seguro de protección frente al robo de identidad durante un año para cada una de las personas afectadas.

Multiproceso con el nuevo planificador de Linux

El kernel Linux 2.6.23 incorporó un nuevo planificador de tareas modular y un CFS (Completely Fair Scheduler, planificador completamente equitativo), que supuso una reescritura completa del planificador de tareas de Linux. En este artículo (en inglés), pueden verse resumidas las principales características del CFS, echar un vistazo a cómo funciona y, finalmente, conocer algunos de los cambios que se esperan para la versión 2.6.24 en relación a este tema.

Presentada la Biblioteca Digital Hispánica

Tal y como he visto hoy en algunos medios de comunicación, he podido acceder a la biblioteca digital hispánica y ver (en mi caso) la edición de 1605 de El Quijote. Aunque el interfaz es algo incómodo, me parece un gran ejemplo de difusión de la cultura aprovechando la tecnología. Cuando muchas otras entidades y personas dificultan tanto la difusión y por lo tanto el desarrollo de la cultura con el tan manido canon, algunas leyes, etc; resulta muy agradable ver que este tipo de iniciativas salen adelante.» Son casi 10.000 documentos, muchos de ellos valiosísimos, los que se han puesto a disposición del público (el objetivo es que haya 200.000 en 2012). Una gran iniciativa que supone el inicio, por fin, del proyecto de digitalización masiva del patrimonio bibliográfico de la Biblioteca Nacional y que se integrará en el gran proyecto multilingüe de Biblioteca Digital Europea.

Sun compra MySQL AB

Sun Microsystems anunció un acuerdo para adquirir a la empresa sueca MySQL AB, los creadores de la popularísima base de datos abierta del mismo nombre que tiene entre sus usuarios a gigantes como Google, Yahoo!, YouTube y MySpace, por un total de U$S 1000 Millones (U$S 800 en efectivo y U$S 200 en otras opciones).

Para darnos una idea de lo que significa ese astronómico número, sólo mencionemos que es aproximadamente 5 veces más de lo que pagó Novell cuando compró SUSE en el 2003.

Los 400 empleados de MySQL AB trabajarán ahora para Sun y Marten Mickos, el ex-CEO de MySQL, seguirá a cargo de la base de datos dentro de su nueva empresa.

Probelmas con Jaybird 2.1.1

Jaybird el controlador JDBC para acceso a firebird presenta problemas en el momento de la actualización de registros en una tabla que tiene llave primaria compuesta.
Es un problema del cual me percate y he solucionado como lo menciono en este blog
También allí encontraran el código corregido asi como una versión compilada para el Jdk 1.5

domingo, 13 de enero de 2008

Blog de Experiencias y Temas Tecnicos

Después de haber desarrollado varios sistemas en los últimos 10 años he disidido publicar mis experiencias así como temas técnicos en este blog :http://oscarzeladapd.blogspot.com.

Les invito a todos a dar una mirada sobre los diferentes artículos que estoy publicando el cual lo he dividido en los siguientes temas:
  • Experiencias
  • Linux
  • Java
  • PowerBuilder
  • Delphi/Pascal
  • Firebird
  • Anecdotas
En este blog también publicare los avances y problemas que se me presentan en los diferentes proyectos que estoy desarrollado.

Es mi anhelo contribuir en algo con este aporte.

Espero sugerencias para mejorar estos artículos.
Gracias a Todos.

Atte. Ing. Oscar Zelada Pozo

viernes, 4 de enero de 2008

Liberada la versión 3.0 de Octave

Ha sido liberada la versión 3.0 de Octave la cual es la alternativa a Matlab, programa por excelencia para el desarrollo matemático.


GNU Octave es un lenguaje de programación de alto nivel para control numérico. Proporciona una interfaz de línea de comandos para solventar problemas matemáticos lineales y no lineales así como mejorar otros aspectos de cálculo usando un lenguaje que es compatible con Matlab. Octave es además un lenguaje orientado a procesos.

Fuente:
http://www.gnu.org/software/octave

FreeBSD 7.0 RC1

Con algunas semanas de retraso, FreeBSD 7.0 acaba de entrar en fase Release Candidate. Desde el mismo comunicado se aclara que se han encontrado algunos problemas por resolver en esta primera RC, pero que no son críticos para la instalación. Está prevista una versión "RC2" antes del lanzamiento final.

FreeBSD 7.0 RC1 está disponible para la mayoría de sus arquitecturas soportadas (incluyendo AMD64), aunque a la sparc64 todavía le queda un buen tramo por recorrer.

¿Por qué Linux es más seguro que Windows?

Un revelador artículo ha desglosado con acierto las razones por las cuales muchos seguimos pensando que Linux es un sistema operativo más seguro que las distintas versiones de Windows. La propia filosofía de las distribuciones Linux han ayudado a construir unas soluciones realmente estables y seguras que se afianzan en varios pilares:

  1. Mejores herramientas de gestión.
    Las actualizaciones de Linux afectan a todos los componentes, mientras que en Windows cada aplicación debe ser actualizada y parcheada por separado.
  2. Mejor configuraciones de serie: Linux fue diseñado como un sistema operativo multiusuario, y como tal los ficheros ‘importantes’ están protegidos aun cuando la identidad de un usuario se vea comprometida.
  3. Diseño modular.
    Si un componente del sistema está fallando o es vulnerable, es más fácil desactivarlo para que no dé problemas.
  4. Mejores herramientas para la protección contra ataques Zero-Day.
    Los ataques basados en vulnerabilidades que no han sido corregidas por los fabricantes y desarrolladores a tiempo y que los exploits aprovechan son menos peligrosos en Linux. Herramientas como SELinux o AppArmor proporcionan un control de seguridad con una granularidad muy alta.
  5. Arquitectura Open Source.
    Todos ven el código, de modo que cualquiera puede colaborar para corregir fallos.
  6. Entorno muy diverso.
    Mientras que en Windows el entorno es único y los exploits se extienden fácilmente gracias a que funcionan por ser muy genéricos, las distintas versiones de Linux y de sus aplicaciones hacen más complicado el desarrollo de exploits que tengan un gran potencial.

Particiones en Linux.

Un completísimo documento en castellano en el que se nos describe con todo lujo de detalles que significa y como maneja Linux los sistemas de particiones.

El equipo de redacción de Fentlinux publica un completísimo documento dedicado en exclusividad al tema de las particiones Linux.

Qué son, que significan los nombres que emplea Linux, puntos de montaje, comandos relacionados, programas que existen para particionar...

Un manual totalmente recomendable, e incluso diriamos que imprescindible para los usuarios de Linux.
Aqui la primera parte de este interesante documento:

"Todo empezó un abril del 2005 para conmemorar nuestro primero aniversario, hoy el equipo que forma FL lanza su última entrega, 100% dedicado al fascinante mundo de las particiones desde gnu/linux."

PARTICIONES

Particiones: palabra que amedrenta, barrunta desastres y propicia taquicardias. Aunque existen algunas maneras de usar una distribución Linux sin tener que reparticionar el disco, siendo las más populares los live-cds, si queremos una instalación de GNU/Linux, digamos, “en serio”, no habrá más remedio que enfrentarse a ellas, de modo que vamos a realizar el intento de compartir nuestros modestos conocimientos, explicando lo mejor que sepamos lo que hemos aprendido.

Trataremos el asunto desde nuestras propias experiencias, así que quede bien entendido que allá cada cual con lo que decida hacer, a nosotros no nos pidáis cuentas si se os tuesta el disco duro o se os enfría la pizza.

Índice de contenido

1. Geometría de un disco duro
2. ¿Qué es, en este mundo, una partición?

3. Tipos de particiones
4. Nombres de las particiones
5. Puntos de montaje de las particiones
6. Decisiones a tomar sobre particiones para una instalación de GNU/Linux
7. Programas para particionar

8. Algunas sugerencias para distintos esquemas de particionado
9. Comandos relacionados con las particiones y su formateo

10. El archivo /etc/fstab
11. Formateado de una memoria flash desde Linux
12. Concluyendo
13. Agradecimientos y créditos. Punto y final.

Articulo Completo Aqui

Europa se prepara para matar al eMule en 2008.

La Comisión Europea "quiere promover procedimientos de cooperación entre los proveedores de Internet, los titulares de los derechos de propiedad intelectual y los consumidores para asegurar una adecuada protección de los derechos de autor y una cooperación más estrecha en la lucha contra la piratería y la compartición de archivos no autorizada.

La comisaria europea de Sociedad de la Información, Viviane Reding, quiere tener, a mediados de 2008, una propuesta de regulación para el Parlamento Europeo dirigida a crear un mercado único de contenidos distribuidos a través de Internet.

"La Unión Europea debe tender a promover el rápido desarrollo de nuevos modelos de negocio para la creación y distribución de contenidos a través de Internet", comenta el documento.

Entre las propuestas se incluye la creación de licencias de derechos multiterritoriales, que faciliten las economías de escala de los distribuidores de contenidos al permitir operar en diferentes países; y la interoperabilidad y transparencia de cada al usuario de los sistemas de limitación de copias privadas (DRM).

Los servidores raiz de Internet pasan el mes que viene a IPv6.

Falta menos de un mes para que los principales servidores raiz de Internet comiencen a usar direcciones IPv6.

Concretamente a partir del próximo día 4 de febrero los 4 principales servidores raiz de ICANN/IANA comenzarán a emplear direcciones IPv6 en detrimento de IPv4.

Un cambio más que necesario, sobre todo si tenemos en cuenta que al ritmo de crecimiento actual, y según las estimaciones más optimistas, las direcciones IP basadas en la actual versión del protocolo (IPv4) se agotarían en 2011.

De hecho se calcula que actualmente tan solo quedan disponibles algo menos del 15% del total de direcciones.

miércoles, 2 de enero de 2008

Convierte a Windows XP en otro sistema operativo

Muchos usuarios no están demasiado contentos con el aspecto de Windows XP, y modifican algunos de sus apartados visuales. No obstante, existen ya ‘paquetes de transformación’ que ayudan a que XP se convierta por arte de magia en Vista, Mac OS X, e incluso Fedora o Ubuntu. Un curioso artículo en un blog ha recogido cinco ‘Transformation Packs” que permiten al usuario de Windows XP cambiar la apariencia visual de sus Windows XP para que en lugar de la interfaz convencional se encuentren trabajando con los escritorios de otras ofertas.

Estos packs gratuitos transforman a Windows XP en Windows Vista, Mac OS X - un par de ofertas al respecto - e incluso en Fedora y Ubuntu, dos de las distribuciones Linux más extendidas del mercado.

No os confundáis, no obstante: lo que habrá debajo seguirá siendo Windows XP, pero desde luego los resultados son espectaculares.

linux-fedora.jpg


Bill Gates presenta su último CES: se retira este año

Gates se despedirá de sus fans en el CES de Las Vegas, pero no sin antes responder a las preguntas que los lectores de la BBC quieran hacerle de forma digital. Una última oportunidad para que nos explique la clave de su éxito.

A un paso de retirarse definitivamente de Microsoft, su cofundador y uno de los hombres más ricos del mundo contestará a las preguntas que se le hagan a través de esta página dentro del Consumer Electronics Show de Las Vegas, del que será presentador por última vez el próximo domingo.

Novell recibió 355,6 millones de dólares el año pasado de Microsoft

Según la edición inglesa de The Inquirer, los ejecutivos de Novell están que se salen este año por lo lucrativa que ha resultado su amistad con Microsoft.


John Dragoon, responsable de Marketing, dice en su blog que el “67 por ciento de los centros de datos utilizan una combinación de Linux y Windows”. Son datos de Gartner, pero según el directivo, da idea de las oportunidades que está teniendo Novell gracias a Microsoft.
Jeff Jaffe, CTO de Novell, escribe satisfecho también en su blog sobre los buenos progresos de la estrategia técnica de Novell, especialmente respecto al plan conjunto de software interoperable con Microsoft. Habla en concreto del soporte dado por Novell para portar Linux al Silverlight de Microsoft con el Flash de Adobe y el JavFX de Sun.
Otra razón por la que deben estar satisfechos tiene que ver, como apunta ChannelWeb, con los resultados de Novell para 2007, que indican que la compañía ha obtenido 355,6 millones de dólares por el acuerdo suscrito con Microsoft.

Adobe, bajo sospecha

Los usuarios de la suite CS3 de Adobe (que incluye aplicaciones tan populares como Photoshop, Illustrator y otras) andan molestos porque se sienten engañados o espiados, según prefiera cada cual ver el asunto.

El origen de su malestar radica en que, tras arrancar algún programa de esta suite, se intenta una conexión a una dirección IP bastante peculiar: 192.168.112.2O7 punto net (ojo: fijarse en que se trata de 2-o(letra)-7, no de "207" (número). La imagen que sigue ha sido tomada en mi propio equipo:

El dominio 2o7 punto net pertenece a la empresa Omniture, dedicada al análisis de estadísticas Web.

Caben diferentes opiniones sobre si esta conexión representa o no una intromisión en la privacidad de los usuarios de Adobe CS3, pero lo que resulta especialmente desafortunado (y sí, también sospechoso) es haber elegido para ello una dirección IP engañosa, que puede fácilmente ser confundida por un usuario poco atento con una dirección IP local (formato 192.168.x.x). De esta forma, el usuario puede permitir la conexión sin en realidad desearlo...


Mas información en www.kriptopolis.org