Programación
Publicado el 03/09/2009 a las 8:45 am por Franco Catrin

Hace más de un mes se divulgó una falla de seguridad en Linux que hasta el día de hoy se discute desde varios puntos de vista: La reacción de los desarrolladores, la forma en que se manejan estos problemas, y las decisiones de diseño que pueden ayudar a que éstas ocurran.
El problema en sí es bastante sencillo, y es fácil de entender para todo aquél que alguna vez haya tenido que programar en lenguajes cercanos a la máquina como es el caso del lenguaje C. Uno de los problemas comunes es el uso de variables no inicializadas, específicamente referencias a la dirección 0, también conocida como null.
Esto ocurre cuando se usa una variable que debería apuntar a un objeto válido en memoria, pero al no ser inicializada apunta a la dirección 0 (null pointer dereference). Esto podría provocar resultados indeterminados, pero en Linux se usa una característica del hardware para que este tipo de errores se detecte inmediatamente. Lo que se hace es que en la dirección cero no se mapea ninguna página de memoria, por lo tanto cualquier intento de acceder a esa zona provocará una excepción de hardware indicando que no hay nada en esa ubicación, lo que el usuario ve como un Segmentation Fault.
Continuar Leyendo Cuando pequeños detalles desencadenan complejos problemas »
Publicado el 31/08/2009 a las 10:28 pm por Franco Catrin

A veces no es necesario mirar al futuro para encontrar cosas interesantes. Revisando antiguos correos encontré este clásico de la web, se trata de un sitio que analiza diversas interfaces de usuario de aplicaciones supuestamente profesionales, en donde se cometieron errores garrafales de diseño, y en alguno casos también de programación. La interfaz que acompaña este artículo es un buen ejemplo de algunas joyitas que se pueden encontrar.
En el sitio, podemos encontrar aplicaciones de diversos fabricantes, en donde no se salva Apple ni Microsoft. La última actualización es del año 2000, así que también podremos ver cómo han evolucionado las interfaces de usuario en los últimos 10 años.
El material está agrupado en categorías, por ejemplo mal uso de colores, abuso de metáforas, mensajes de error inapropiados o software programado con avanzadas técnicas de estupidez artificial y lógica confusa.
Aquel desarrollador que no haya caído en uno de estos problemas, que arroje la primera piedra.
Link : Interface Hall of Shame
Publicado el 13/07/2009 a las 11:30 pm por Snidel
Para todos quienes tengan cercanía, sueñan con ser o son desarrolladores, tenemos que contarles que este miércoles 15 se llevará a efecto el lanzamiento del primer concurso de diseño y desarrollo de aplicaciones para el iPhone/iPod.
Este concurso es organizado por la Fundación y país y la Universidad del Desarrollo y está dirigido a estudiantes de pregrado, universitarios y de institutos profesionales chilenos.
El concurso se realizará en la Universidad del Desarrollo en San Carlos de Apoquindo, auditorio 101, Av. plaza 700, comuna de Las Condes; y la aplicación podrá ser finalizada hasta antes de 15 de septiembre.
El primer premio se traduce en la asistencia a la Worldwide Developers Conference 2010 en San Francisco con todos los gastos pagados, pero antes de seguir mareándolos, les recomendamos ver las bases del concurso.
Publicado el 04/03/2009 a las 10:27 pm por Boxbyte

Sir Charles Antony Richard Hoare
El británico Tony Hoare conocido por inventar el algoritmo Quicksort en 1960, dará una conferencia en el QCon de Londres llamada “Null References: The Billion Dollar Mistake“, donde asegura que desde la invención del puntero o referencia nula en 1965 para un lenguaje orientado a objetos (ALGOL W), esta ha causado dolores de cabeza a programadores en los innumerables errores, vulnerabilidades y fallos de sistema que probablemente han causado mil millones de dólares en daños en lo últimos 40 años.
Asegura que su objetivo principal era que todo manejo de referencias estuviera completamente seguro.
Si alguna vez has programado en un lenguaje orientado a objetos sabrás de que dolores de cabeza se trata, ¿Pero que sería de Java, C/C++ y Visual Basic sin punteros (nulos) bajo responsabilidad y uso adecuado por parte del programador?
Link: Null References, the Billion Dollar Mistake (Slashdot)
Publicado el 02/01/2009 a las 7:05 pm por Alexander Schek

(c) Pastie.org
Para los más fanáticos o para aquellos que requieren de una explicación lógica ante un problema complejo, ya está disponible el código de programación que hizo que miles de reproductores Zune dejaran de funcionar colectivamente. El error comienza en la línea 249.
En circunstancias normales, esto funciona muy bien. La función sigue restando ya sea 365 o 366 hasta que se reduce a menos de un año para luego convertirse en el mes y el día de mes.
Lo que pasa es que en el caso del último día de un año bisiesto, continúa hasta que llega a 366. Debido al if (days>366) la ejecución para de sustraer si el bucle (loop) pasa a ser un año bisiesto. Pero 366 es demasiado grande para salir del bucle principal, lo que se traduce en que el Zune continue en el loop infinito sin hacer nada.
Si el error no se arregla, lo mismo va a suceder el 31 de diciembre del 2012… Microsoft, tienes 3 años… ¿alcanzarás?
Link: PQOAL Real-time clock (RTC) routines for the MC13783 PMIC RTC (Pastie.org)
Publicado el 16/10/2008 a las 9:40 am por Nacho
La competencia mundial organizada por google, Google Code Jam, consiste en un desafío en el cual estudiantes y programadores profesionales deben resolver problemas complejos en un tiempo limitado. Lo interesante de este concurso es que puedes utilizar el lenguaje de programación que más te guste.
Para el consuelo de los argentinos que leemos FayerWayer, tengo el agrado de comentarles que Google Code Jam tiene ganadores regionales. Ellos pasarán a la gran final, que se disputará en los headquarters de Google, en Mountain View, California.
Continuar Leyendo Google Code Jam: Con sabor latino »
Publicado el 24/09/2008 a las 11:51 pm por ZooTV

Cuando hablamos de red social se nos vienen a la mente Facebook, MySpace, Hi5 y así hacia el infinito más uno.debug_mode=on también es una red social, pero orientada a un público bastante más segmentado, el de los informáticos (aquellos raros individuos que gustan de la informática en sus distintos sabores).
En palabras de sus creadores:
Por Internet es frecuente encontrar páginas de una temática concreta. Sobre una plataforma, sobre un lenguaje,… Sin embargo no sólo nos interesa una plataforma o lenguaje. La informática es una ciencia multidisciplinar. Un desarrollador web debe saber de HTML, CSS, javascript, seguridad, lenguajes del lado del servidor, SEO… Un administrador de sistemas debe saber de bash, perl, python, Linux, Windows,… Por eso hemos querido hacer una página de referencia sobre programación, administración de sistemas, desarrollo web, etc. en la que puedas encontrar la información que necesitas. Por eso hemos hecho debug_mode=ON: una red social para programadores e informáticos en general.
La verdad que al revisar un tanto esta red, más bien parece un repositorio de artículos clasificados en ciertos grupos y con una cantidad de usuarios bastante limitado, pero tenemos que darle el tiempo suficiente para que se vaya “depurando” y creciendo.
Link: debug_mode=on (vía Geekzone)
Publicado el 25/07/2008 a las 10:13 am por Eduardo Diaz
Aunque no sean tan populares como las olimpiadas atléticas, o un mundial de futbol, las olimpiadas académicas convocan todos los años a miles de jóvenes de todas partes del mundo, y en particular las Olimpiadas Internacionales de Informática (International Olympiad in Informatics – IOI) representan una oportunidad para que muchos jóvenes programadores del mundo midan sus conocimientos.
Hay muchas competencias internacionales para programadores, siendo las más conocida en el último tiempo, la famosa Google Code JAM, en que junto al jugoso premio de 80.000 dolares, tienes la oportunidad de que Google se interese en tus capacidades y habilidades como programador. Pero hay más eventos de este tipo, como los torneos que diariamente se efectúan en el sitio TopCoder, auspiciados por importantes empresas tecnológicas transnacionales.
Sin embargo la IOI es especial, porque está orientado a alumnos de secundaria, entre 15 y 20 años de todas partes del mundo, los que representan a sus respectivos países, es decir, en este evento no sólo buscas tu gloria personal, sino que tienes el orgullo de representar los colores de tu país, como corresponde a una olimpiada hecha y derecha.
Es torneo fue creado por la UNESCO en 1989 y cuenta con el auspicio de la Federation on Information Processing (IFIP). En sus veinte años de existencia se ha convertido en la más importante competencia de este tipo a nivel internacional. La versión de este año se realizará entre el 16 y el 23 de agosto en Egipto y convocará a 87 países.
“La competencia consiste en resolver tareas de naturaleza algorítmica, pero los competidores tienen que tener dominio básico de análisis de problemas, diseño y conocimiento de algoritmos y estructura de datos y por supuesto la habilidad de programar y probar sus soluciones.” Sin duda alguna los jóvenes que participan en esta competencia son los mejores
en computación a nivel mundial.
Continuar Leyendo Egipto 2008: Olimpiadas Internacionales de Informática »
Publicado el 19/03/2008 a las 6:03 pm por Alexander Schek

Con el fin de divulgar los conocimientos computacionales a estudiantes y educadores en todo el mundo, Google acaba de abrir la Google Code University.
Este sitio es totalmente gratuito y contiene clases, conferencias, presentaciones y ejemplos de programación y tecnologías en diversas áreas como: Programación en AJAX, Computación distribuida, seguridad Web y lenguajes de programación en general.
Además cuenta con una sección de herramientas donde podrás encontrar temas de interés como bases de datos y MySQL entre otros.
También tendrás la oportunidad de buscar temas de aprendizaje de interés y cursos publicadas por los departamento de ciencias de la computación de las universidades en todo el mundo, tales como MIT, Stanford, Yale, entre otras.
Link: Google Code University
Publicado el 17/12/2007 a las 11:09 am por tricky
Quizás algunos ya lo conocen, o quizás no. A principios de diciembre Google abrió al público su API para generar gráficos. Es un API muy completo y bien documentado, y permite generar gráficos de puntos, barras, pie, líneas y diagramas de Venn. Es muy fácil pasarle datos, que pueden ser cargados dinámicamente desde tu base de datos y te ahorras el procesar los gráficos.
Sigue leyendo para aprender a generar tus propios gráficos vía Google.
Continuar Leyendo Google Chart API: Gráficos via Google »
Publicado el 08/12/2007 a las 6:36 pm por tricky
Después de casi un año de desarrollo, está lista la version 2.0 de Rails, más conocido como Ruby on Rails (ROR), un framework MVC (Modelo Vista Controlador) de aplicaciones web. Para los que piensan que la frase anterior viene directamente desde lo más profundo del diccionario geek, es un lenguaje de programación que hace más sencilla la creación de aplicaciones web. Se ha usado en proyectos como Odeo, Bubble Share, Basecamp y La Coctelera.
Pueden ver todas las novedades de esta nueva versión en el blog de desarrollo.
Link: Rails 2.0: It´s done! (via slashdot)
Publicado el 12/11/2007 a las 11:04 pm por JI Stark
Vaporware o no, Android comienza a mostrar los colmillos. Como lo prometieron hace siete días, la Open Handset Alliance puso al alcance de los hambrientos desarroladores el SDK del sistema operativo y también un video donde Sergei Brin y Steve… Horowitz (Director de Ingeniería de Google) muestran lo que puede llegar a hacer.
Pero lo primero es lo primero: ¿Me volví loco o eso en la pantalla de espera es un dock? Ya, está bien, en la BlackBerry hay algo parecido, pero diablos que se parece a OS X — sin el encanto visual, claro está. Me gustó, en todo caso, como la interfaz maneja como un ticker los mensajes de IM y que el navegador esté basado en WebKit.
Lo otro: cuando están jugando Quake, ¿como controlan el juego, si la pantalla es touchscreen? Para tratar de aclarar sus dudas, el primer “dispositivo” que muestran es una Trèo 500; el segundo es un LG Prada.
¿Y ahora qué? Pura Futurología™, chicos. Las dudas quedarán resueltas cuando algunos afortunados desarrolladores se repartan USD$10 millones por crear la mejor aplicación. A eso le llamo yo tener poquita fe.
No me van a entender nada de lo que dije si no ven el video aquel. Míralo tras el salto.
Continuar Leyendo Android en acción: ¿3D? ¿Un dock? ¿En mi celular? »
Publicado el 02/11/2007 a las 12:23 pm por tomás pollak

¿Alguien dijo niñito pica’o? Después de ver cómo Microsoft se quedaba con la “chica linda de la fiesta” (y de morderse la lengua un buen rato, probablemente), Google decidió volver al laboratorio a planificar un nuevo ataque. Como dijo un viejo sabio por ahí, si no puedes unirte a Facebook, combáteles.
La decisión de los cabecillas fue clara: si Google quiere hacerle la pelea a Facebook, tiene que lanzar algo incluso más abierto que la competencia. Bien lo puso Techcrunch: “si Facebook es 98% abierto, Google quiere ser un 100%”.
Pero la apuesta de Google no se trata de una nueva aplicación/plataforma “tipo Facebook” (recordemos que ya tienen a Orkut). Los tipos apuntan a integrar sus actuales servicios, sumarles otros, y agregarles a todos ellos una “capa social”. En el fondo, si ya tienen todos nuestros datos repartidos en sus servicios (contactos en Gmail, feeds en Reader, eventos en Calendar, fotos en Picasa Albums, etcétera), ¿por qué no darles un uso útil e integrarlos en un sólo lugar? La movida de Google parece bien lógica… y el nombre del nuevo proyecto también.
Hola OpenSocial.
Continuar Leyendo Aguántate Facebook, que se viene OpenSocial »
Publicado el 24/04/2007 a las 5:35 pm por Leo Prieto
No tiene valquirias, ni jabalíes rostizados, ni copas rebosantes de hidromiel. Es un pedazo de software después de todo, y probablemente te puedas conseguir una novia, una hamburguesa y una cerveza para que junto a Coda finalmente no te falte nada. Realmente, porque Coda tiene todo lo que necesitas para vivir en el Valhalla del desarrollo web:
Coda es un editor de código, cliente FTP, editor de CSS, terminal SSH, libros de referencia, y navegador web basado en Safari para previsualizar tus páginas. Todo integrando, todo en una misma ventana.
Generalmente no hablamos sobre software en FayerWayer, mucho menos cuando únicamente está disponible para una plataforma (en este caso, únicamente para Mac OS X). Pero este pedazo de programa es uno de los que más me ha impresionado en el último tiempo. Personalmente no soy muy fanático de las soluciones todo-en-uno. No me gusta el hardware que trata de hacerlo todo, y mucho menos los programas que intentan lo mismo, ya que en la mayoría de los casos hacen todo a medias y no hacen nada bien. Pero creanme cuando les digo que Coda lo hace todo bien. Impresionantemente bien.
Actualmente cuando trabajo en un sitio web, uso una serie de programas: Photoshop para las imágenes, TextMate para escribir y editar todo el código, Transmit para el FTP, el Terminal de Apple para trabajar por SSH en el servidor, y Firefox con el Web Developers Toolbar para previsualizar y revisar. Con gusto he pagado todo lo que hay que pagar. Especialmente TextMate, por lejos mi editor de texto/código favorito. De hecho este artículo lo estoy escribiendo en TextMate. Pero siempre había algo que hacia molesto el hecho de estar intercambiando entre tantos programas diferentes.
Hasta que llegó Coda e integró todas esas cosas en uno, por lo cual estoy eternamente agradecido. Bueno, excepto Photoshop. Así que en realidad uso sólo dos cosas para hacerlo todo: Coda + Photoshop.
Continuar Leyendo Panic Coda: El Valhalla del desarrollo web »
Publicado el 11/04/2007 a las 10:18 am por Leo Prieto
Nos hemos dado cuenta que muchos de los lectores de FayerWayer también tienen blogs personales, o directamente trabajan desarrollando sitios web. Pero sea cual sea el nivel de experiencia que tengan, casi todos han tenido que aprender un poco de HTML. Las versiones de HTML con las que generalmente trabajamos (HTML 4.01 y XHTML 1.0), fueron definidas por la W3C hace 7 y 8 años. Todo este tiempo, se han estado preparando las próximas versiones de ambas tecnologías.
El sitio Digital Web publica un buen artículo explicando lo que se viene, y cual de los dos deberíamos estar revisando. HTML5 (también conocida como Web Applications 1.0), es una evolución de HTML 4.01, y está siendo preparada por WHATWG, una comunidad abierta fundada por Mozilla, Opera y Apple. XHTML2 está siendo preparada por la W3C, el organismo oficial que define los estándares de la Web, y tal como su nombre implica, es una actualización o reemplazo de XHTML 1.0. Después de esa explicación, uno pensaría que el camino a seguir, el estándar futuro, debería ser XHTML2.
Sin embargo, curiosamente, la conclusión del autor es que el futuro será HTML5 (principalmente por culpa de Internet Explorer, que, según él, todavía no soporta XHTML 1.0 y probablemente tarde años en soportar XHTML2). Pero no te guies por este resumen, lee el artículo.
Link: HTML5, XHTML2, and the Future of the Web (via digg)
Próxima Página →