Archivos de Tags: Programación

Breves: Aprende a programar en Codecademy como si fuera un juego

Leyendo un enlace que encontré no recuerdo cómo, y que contenía un comentario sobre la historia de JavaScript, me he encontrado con Codecademy, una pequeña joya:

Se trata de una especie de “juego”, en el que se ganan medallas (como si fueras el Mago Andreu, o estuvieras jugando en Facebook o en tu móvil) por cada concepto aprendido. Además es posible compartir tu progreso con otras personas, o saber hasta dónde llegaste.

Las primeras dos lecciones están muy bien como introducción, y el resto tiene buena pinta. Lo mejor es que no es obligatorio registrarse, si no quieres que nadie lleve la pista de lo que hiciste o no…

Así que si tienes curiosidad por aprender a programar, aquí tienes un sitio donde empezar… si el inglés no es problema.

Enlace: Creando bibliotecas compartidas en múltiples plataformas

Enlace: Codificando datos en URLs con JavaScript y PHP

  • En un URL no puede ir cualquier carácter ASCII, y por eso es necesario recodificar los caracteres no permitidos que se quieran pasar como parámetro a dicho URL. Lamentablemente, JavaScript (mediante las funciones escape/unscape) realiza una codificación que es distinta de la que realiza PHP, y además si se realiza la codificación/decodificación en un sentido, y se pasa a la inversa, el resultado no es idéntico.

    Este artículo presenta cómo lograr una codificación de URLs compatible con JavaScript, y de paso repasa algunas técnicas de búsqueda y sustitución.

Enlace: MacRuby, la guía definitiva (en inglés)

  • Introducción a MacRuby, la versión de Ruby con soporte para interoperar con Objective-C y las bibliotecas de funciones Cocoa, publicado bajo licencia CC-Atribución-No Comercial-Sin Derivados por parte de O'Reilly y su autor, Matt Aimonetti.

    La parte publicada como CC son los primeros cuatro capítulos, para tener una idea de cómo funciona el sistema.

Enlaces: El iPad necesita su propio HyperCard, y TileStack, HyperCard Web 2.0

Enlaces: Libros en la era del iPad, Smalltalk, y otros

Enlace: Astropython

Enlaces: Gestionar registros en Python con namedtuple

Enlaces: Módulos de Python para astrofísica, seleccionados por el IAC

  • Lista de módulos Python de interés para quienes usan datos astrofísicos, aunque muchos de ellos son de interés para la manipulación de datos científicos en general, y su representación y transformación. Seleccionados por el Instituto de Astrofísica de Canarias, que tiene un centro de cálculo bastante mejor dotado (ejem) que el del IAA… A ver si el CSIC se entera, e invierte en la computación en el IAA… por la cuenta que podría traerme ;-)

Humor: Ventilando el desánimo: Los comentarios del autor de Xee sobre el formato PSD

No sé si estáis familiarizados con Xee, un pequeño visor de archivos gráficos —à la ACDSee— para Mac OS X. El caso es que se trata de un proyecto de código abierto, y entre los comentarios al módulo de lectura de archivos PSD (PhotoShop Document), en lugar de lo que podríamos esperar —por ejemplo los detalles de cómo funciona el formato PSD, cómo están separadas las diferentes capas, canales, etcétera—, encontramos la siguiente perla, que no tiene desperdicio.

En este punto, me gustaría dedicarle un momento a hablaros del formato PSD de Adobe. El formato PSD no es un buen formato de archivo. El formato PSD ni siquiera es un mal formato. Llamarlo malo sería insultar a otros malos formatos, como PCX o JPEG. No, el formato PSD es desastroso. Al haber trabajado en este código durante varias semanas ya, mi odio por el formato PSD ha llegado al nivel de una llama desatada que brilla con la fiera pasión de un millón de soles.

Si hay dos formas diferentes de hacer algo, PSD hará las dos, en diferentes lugares. Después se inventará tres formas más que ningún humano racional imaginaría, y también las llevará a cabo. PSD hace de la inconsistencia una forma de arte. ¿Por qué, por ejemplo, decide de repente que *ciertos* trozos particulares tienen un alineamiento a cuatro bytes, y que el espacio de alineamiento extra *no* se incluya en el tamaño? Otros trozos de datos, en otras partes, o bien no están alineados, o están alineados con el espacio extra incluido en el tamaño. Aquí, sin embargo, no está incluido. Cualquiera de estos comportamientos estaría bien. Un formato sensato escogería uno de ellos. PSD, por supuesto, usa los tres, y más.

Intentar sacar datos de un archivo PSD es como intentar encontrar algo en el desván de tu excéntrico tío que murió por culpa de un extrañísimo ataque de tiburones de agua dulce en su quincuagésimo octavo cumpleaños. Este último detalle puede que carezca de importancia para los fines del símil, pero en este momento paso mucho tiempo imaginando el destino de la gente responsable de este formato de archivo que es un invento del TBO. [N. de T.: El profesor Franz de Copenhage, responsable de los inventos del TBO, estaba inspirado en el norteamericano Rube Goldberg, que es el autor mencionado en el original.]

Una vez, intenté obtener la última especificación del formato de archivo PSD. Para conseguirlo, tuve que pedirles permiso para pedirles que considerasen enviarme este tomo sagrado. Esto habría implicado el enviarles por fax alguna clase de documento, probablemente firmado con sangre. Sólo me cabe en la cabeza que el proceso sea tan difícil porque estén vivamente avergonzados de haber creado esta abominación. Como es natural no fui tan crédulo como para pasar por todo ese proceso, pero si lo hubiera hecho, habría imprimido todas y cada una de las páginas de la especificación, y les habría prendido fuego. Si estuviera en mi mano, conseguiría todos y cada uno de los ejemplares de esas especificaciones en existencia, y las lanzaría en una nave espacial directamente al sol.

Y termina con:

El formato PSD no es mi favorito.

Eso se llama utilizar la frustración de forma creativa ;-)

Por cierto, el comentario añadido en la última versión del archivo también es de traca:

La carga de archivos Photoshop está TERMINADA por ahora; que te den, Adobe

Vía Daring Fireball Linked List < David Weiss

ps. En su momento, tuve que escribir un plugin para PhotoShop 3.0 para que pudiera leer el formato PGM, y la especificación era curiosa, pero se podía obtener simplemente pidiéndola. Creo que por la época de PhotoShop 6.0 se implantó el mecanismo de “pedir permiso enviando un documento firmado”… que evidentemente no utilicé.

Enlaces: De la ley de Ahmdal, la de Moore, y la de los retornos decrecientes

  • Resumen de las Leyes de Moore (el número de transistores que se puede empaquetar en un circuito electrónico se dobla cada 12-18-24 meses) y de retornos decrecientes (el 10% del trabajo da el 90% del beneficio, y cada vez cuesta más trabajo conseguir el porcentaje restante), junto a la Ley de Amdahl (la aceleración sufrida por un algoritmo paralelizado está limitada por la fracción del problema de debe ejecutarse en serie).

    Este repaso sirve para hacerse una idea de cómo los diseñadores de microprocesadores están cambiando su filosofía de diseño para acomodar múltiples núcleos, y cómo eso implica un esfuerzo de los creadores de software.

    Pero también sirve para darnos cuenta de algunas de las limitaciones fundamentales de nuestro modelo actual de computación, que es muy posible que necesite cambiar en el futuro.

Enlaces: Historia de los interfaces gráficos, El interfaz del Mac cupado en nacer, y cómo Mac OS X carga los programas

Enlaces: Zen Bound, y programando la Palm Pre

  • Sitio oficial de Zen Bound, el juego de Piedra, Madera y Cuerda que te sumerje en una relajante, a la vez que estimulante, dedicación al detalle en una tarea aparentemente sencilla: hay que conseguir pintar de la forma más completa posible diferentes formas, usando una cuerda que desprende pintura por contacto. Parece una tontería, pero al igual que Enigmo, ¡me hace tener ganas de tener un iPod touch!
    Vía eduo en Twitter.
    ps. ¿Os imagináis una versión de alta resolución para MacBooks con pantalla táctil/trackpad multitouch?
  • Vídeo creado por los desarrolladores de Zen Bound, en el que no se ven los controles, sino que el protagonismo es, fundamentalmente, para los gráficos y la música, perfectamente pensados para el juego.
  • Otro vídeo de ZenBound, esta vez con énfasis en la forma de jugar, de uno de los juegos más interesantes y originales disponibles para iPhone y iPod touch, creedme.
  • Estupenda presentación, a cargo de Mitch Allen, Jefe Técnico de Software de Palm (el cargo que ocupaba Avie Tevanian respecto a Mac OS X hasta su salida), en la que se muestra la forma de programación para el webOS de la Palm Pre. Me parece que, gracias al Mojo framework, y al soporte de HTML5 (disponible en el iPhone desde el firmware 2.x), realmente programar para Palm se parece más a cómo se programarían widgets si Apple hubiese preparado algo como el framework Mojo… o más Mac, como el framework http://cappuccino.org/

Enlaces: Astrometry.net en Flickr

Enlaces: Interactuar con servicios web SOAP usando Cocoa