Snow Leopard: Grand Central Dispatch


Oh! que tiempos aquellos cuando comprabas un procesador y se lo andabas presumiendo a tus cuates (el procesador): “mira mi procesador, es Pentium III a poco más de 700 MHz, a las pocas semanas salía Pentium 4 y tu frustración no podía ser mayor. Con cada nueva versión más y más megahertz o incluso gigahertz de frecuencia de reloj, y asi hasta que llegó el momento que físicamente no se pudo mas.

Seguramente habrás notado que de un tiempo para acá, los procesadores no han aumentado sus frecuencias mucho que digamos, lo más que recuerdo es un procesador Core 2 Quad a 3.06GHz; sin embargo aumentar el número de núcleos parecer ser la tendencia, ya que al aumentar la velocidad del reloj se genera más calor y hay mas consumo de energía (lo cual preocupa a los usuarios móviles). Esto significa menos horas chateando sin requerir de un cargador.

Iniciamos con 2 nucleos, actualmente el estándar es 4. Para los mas exigentes, léase gamers existe una cosa brutal llamada Core i7 o bien AMD Phenom del lado de la competencia. A lo que voy es que actualmente los limites físicos han impedido hacer procesadores más rápidos, y en su lugar se han ido agregando más núcleos.


El problema aquí es que los sistemas operativos actuales no aprovechan del todo los núcleos de los procesadores, por la misma razón expuesta en el articulo anterior: el computo paralelo. Si eres programador sabrás que programar una aplicación multiproceso, multitarea o multithreaded como dicen los gringos, es una tarea no muy fácil que digamos. Esto ha generado a lo largo de la historia grandes problemas que han sido motivo de estudio en asignaturas de sistemas operativos por ejemplo, si estudiaste sistemas recordarás los interbloqueos entre procesos o deadlocks, condiciones de carrera y otros dolores de cabeza al respecto.

Para los cuates, una aplicación multitarea debe dividirse en varios threads a bajo nivel. Un thread básicamente es una porción de código que se ejecuta de manera independiente al resto del programa. Lo difícil es cuando 2+ threads intentan usar un recurso al mismo tiempo y bueno… esto parece un libro de Tanenbaum, mejor hablemos del leopardo.

Snow Leopard presenta una nueva tecnología (¿cuantas veces he escrito eso?) que intenta exprimir hasta la ultima gota de procesamiento de tu pequeño juguete, y es llamada Grand Central Dispatch. Su objetivo es liberar al programador del rollo necesario para gestionar los threads de sus aplicaciones, de manera que en el código solamente indique cuales líneas van a ejecutarse dentro de un thread y listo, el felino hace el resto.

Blah, blah, blah. Pero a mi como usuario final ¿para que me sirve eso? Como mencionaba en el articulo anterior, si una aplicación no está segmentada en threads, aunque tengas un procesador de 8 nucleos, tu programa correrá de manera secuencial casi igual que si no tuviera threads. Al segmentar el código, cada nucleo puede procesar una parte distinta del código logrando mayor rapidez y eficiencia de ejecución.


De esta forma, si todas las aplicaciones de Snow Leopard van a ser migradas a Grand Central Dispatch, teóricamente el desempeño debe ser brutal, pues GCD va un paso más alla en la gestión de threads. Normalmente si tu aplicación está segmentada digamos en 15 threads, todos están ocupando espacio en memoria, pero en el caso de GCD libera los recursos de los que no se están ejecutando, es decir, tu Mac no se alenta por procesos ociosos.

Grand Central Dispatch es una tecnología única en su tipo, que permitirá un desempeño tremendo del sistema operativo, haciendo que las aplicaciones sean sumamente responsivas y rápidas. Otra idea genial por parte de los de Cupertino.

Bonus: Con este articulo termina el análisis de Snow Leopard en su semana de lanzamiento. Como ves es una actualización que “por fuera” no notarás grandes cambios, pero por dentro ya conoces cuales son los cambios que se vienen. Es cierto que el proceso de migración de aplicaciones a este top 3 de tecnologías llevará algo de tiempo, pero solo nos queda esperar a que los desarrolladores se pongan las pilas. Imagina cualquier aplicación corriendo en modo 64 bits, con graficos y cálculos apoyados por OpenCL y segmentado en N-threads gestionados por Grand Central Dispatch…… Excitante, sencillamente, excitante…

Snow Leopard: OpenCL


Open Computing Language es un tandem formado por un lenguaje de programación y una API (Application Programming Interface), que están basados en el paralelismo a nivel de datos y de tareas, cuya finalidad es distribuir las cargas de trabajo entre la CPU y la GPU. What the fuck was all that shit????

Para los cuates CPU es Central Processing Unit (no mi estimado n00b, CPU no es la cajota donde metes los cds que está al lado de tu monitor) y GPU es Graphics Processing Unit; pero ya fue suficiente verborrea técnica, vamos con un poco de historia. A finales de la decada de los 80 y principios de los 90 salian al mercado los primeros juegos para computadora, los cuales debido a las limitantes de hardware no eran muy vistosos que digamos (aun asi, nos tenian pegados a la computadora por horas), ¿quien no recuerda Space Invaders o el primer Need For Speed?. Pronto, los desarrolladores quisieron incluir mucho más realismo a sus creaciones y el procesador por si solo no alcanzaba para procesar (valga la expresion) tantos calculos necesarios para el renderizado de poligonos y texturas en la pantalla, lo cual ha llevado a crear juegos tan exigentes de hardware como los que hay en la actualidad.


De esta manera nacieron las tarjetas gráficas o tarjetas de video, como un ayudante de la CPU, la cual basicamente se encargaria de realizar los calculos relativos a las aplicaciones tridimensionales, librando a la CPU de estas tareas y ocupandolo en el procesamiento del resto de actividades, tales como gestionar el teclado, mover el mouse, atender los servicios/daemons del sistema operativo, etc. En la actualidad la labor de la GPU no ha cambiado tanto desde entonces, si no juegas mucho o editas video muy seguido, probablemente tu GPU está siendo desperdiciada, si acaso renderizando las transaparencias de la interfaz AERO o Aqua o los efectos de Compiz Fusion; pero en general no realiza mucho trabajo. Todo esto hasta ahora.


OpenCL presenta una tecnologia bastante interesante la cual en pocas palabras intenta hacer que la GPU tenga poco tiempo de ocio y no sea utilizada solamente en aplicaciones 3D. Es decir, cuando no se este jugando (por ejemplo) y estes realizando tareas ofimaticas la idea es que la GPU ayude al procesador y entre los 2 realicen el procesamiento de manera paralela, agilizando drásticamente el desempeño del sistema. Si tomamos en cuenta el poder de calculo de una GPU actual, de un madral de FLOPS (Floating Point Operations Per Second), aunado al desempeño de un procesador multinucleo, en teoria el sistema debe andar pero en chinga.


Nuevamente el problema actual es que las aplicaciones deben estar programadas para soportar este tipo de procesamiento (más informacion sobre computo paralelo en el proximo articulo de esta serie), y para ello Apple ha incluido en Snow Leopard la API que mencionaba. Su intención es que no todo el código de las aplicaciones tenga que reescribirse sino solamente una parte, esto con el fin de que el sistema operativo pueda decidir qué segmento de codigo se ejecuta en la CPU y qué segmento en la GPU.

OpenCL es un estandar abierto para programación en paralelo muy interesante. Esperemos que pronto los desarrolladores migren sus aplicaciones a este paradigma y finalmente se puedan exprimir los componentes de hardware como se debe.

Snow Leopard: 64 Bits


Mucho se ha hablado de los procesadores, arquitecturas y buses de 64 bits. Suena bien, en computacion más es mejor pero ¿para que diantres me sirve como usuario un procesador o arquitectura de 64 bits?

La caracteristica mas notable es la eficiencia. Piensa en un procesador de 64 bits como una carretera de 8 carriles en lugar de 4; probablemente los autos no circulan más rapido pero pasan más autos por segundo (qué claridad de explicación, seguramente nunca te habian explicado 64 bits de esa forma).

Otra característica son las limitantes de la memoria RAM. 32 bits alcanzan para direccionar un espacio de aproximadamente 4GB de RAM (no voy a hacer las cuentas ahora, consigue una calculadora binaria y hazlo tu mismo). Si tienes 4GB o más de memoria RAM en tu computadora y haz instalado un sistema operativo de 32 bits (digamos Windows) notarás que no reconoce toda tu RAM y te marca entre 3.3 y 3.7 GB de RAM (y te sentiste robado); he aqui el ejemplo del problema de direccionamiento. Por cierto con 64 bits, el límite de memoria RAM es de 16 billones de gigabytes, es decir es decir 16 exabytes. Suena exagerado, pero si hace 5 años alguien te decia que tendría 4GB de RAM en su computadora le preguntabas si estaba drogado

Es importante aclarar que aun si tu sistema está corriendo en modo 64 bits, si las aplicaciones no están programadas en 64 bits, de poco te sirve. En el caso de Snow Leopard, la transición se está realizando paulatinamente. Las aplicaciones que aun son de 32 bits son:

  • iTunes

  • Grapher

  • Front Row

  • DVD Player

Las aplicaciónes que ya están en 64 bits son:

  • Finder

  • Dock

  • Mail

  • TextEdit

  • Safari

  • iChat

  • Address Book

  • Dashhboard

  • Help Viewer

  • Installer

  • Terminal

  • Calculator

  • y todo lo demás

Snow leopard es capaz de correr en modo 32 bits o 64 bits, pero uno a la vez, ya que en tiempo de ejecución un proceso pertenece solamente a uno de estos 2 modos y carga codigo de bibliotecas, plugins, etc. unicamente de ese tipo.


Snow Leopard por defecto arranca en modo 32 bits, de hecho no cualquier Mac puede arrancar en modo 64 bits. Las macs compatibles son:


Si tu Mac es compatible, para entrar en modo de 64 bits al momento del arranque mantén presionadas las teclas 6 y 4 (qué creativo este truco). Para volver al modo 32 bits... exacto, manten presionadas las teclas 3 y 2.

Como ves, el tema de 64 bits es muy extenso pero en general se resume en eficiencia de procesamiento e incremento de los límites de cálculo del sistema ya sea para direccionar memoria RAM o bien para que el kernel trabaje mas cómodamente.

Opera 10 Turbocharged


Ayer martes salió la versión definitiva del navegador más infravalorado del mundo (como alguna vez lo comenté) nuevamente innovando en características como ya es costumbre de éste equipo de desarrollo noruego. Alguien en alguna ocasión decía: "si quieres saber qué características van a traer las próximas versiones de los navegadores, instala la versión actual de Opera". Opera tuvo un periodo larguísimo de desarrollo para poder lograr esta versión, pero considero que valió la pena.

Nueva interfaz: Mejor diseñada, visualmente más atractiva y con nuevo logo. No me digas que éstas cosas no te interesan.

Opera Turbo: Es un modo que permite compactar la información que se envía entre el cliente y el servidor de manera que se mejore el desempeño en conexiones lentas.

Reubicación de la barra de pestañas: Es posible colocarla en cualquiera de los cuatro extremos de la pantalla, muy util sobre todo a los lados en pantallas widescreen. Esta característica probablemente sea pirateada por Firefox en un futuro.


Previsualización de pestañas: Si antes ya tenia previsualización al hacer Ctrl+Tab (lo cual Firefox también está pensando piratear) o bien al pasar el mouse sobre las pestañas, ahora es posible hacer más grande la barra de pestañas para obtener una previsualización ahi mismo.

Presto 2.2: Nuevo motor de renderizado mucho más rápido que Opera 9. Lo he probado en Windows 7 y creeme que va rapidísimo.

Mejora de Speed Dial: La cual fue pirateada descaradamente por Google Chrome y luego por Safari 4.


Mejora de Opera Link: Esta característica es la ley. Sirve para sincronizar en la nube tus favoritos e historial. Por cierto Google esta trabajando para piratearla proximamente en Chrome.

Además del resto de caracteristicas como Cliente de Correo, Chat IRC, Lector de Feeds RSS, Gestos del Mouse, Manejo por Voz, Cliente de BitTorrent, Sesiones de Navegación, Zoom Completo, Widgets, Varita Mágica para gestión de contraseñas (ésta última también es la ley, sobre todo para los que tenemos que autenticarnos en 10 sitios diariamente)... en fin.

Si tienes problemas con flash, instala la última versión de Adobe Flash Player para que Opera muestre correctamente éste tipo de animaciones. También te sugiero cambiar la opción que viene por defecto para la carga de las páginas de "Dibujar luego de un segundo" a "Dibujar inmediatamente".


Opera es un muy buen navegador con muchas características bastante interesantes incluidas de fábrica (Firefox fans: estamos hablando del navegador recien instalado sin extensiones) que vale la pena probar, personalmente me parece excelente, lástima que no tenga la cuota de mercado de los demás navegadores. Lo puedes descargar desde http://www.opera.com/browser.

Snow Leopard: Análisis


Finalmente el leopardo de las nieves salió a la venta el viernes 28 de agosto pasado, presentando a sus usuarios una actualización de rendimiento al sistema más que un sistema operativo completamente nuevo, de hecho como dijo Bertrand Serlet hace tiempo, éste sistema operativo presenta 0 (cero) características nuevas (algo sin precedentes). A pesar de esto, fue finamente retocado. Aqui algunos ejemplos.

Empezamos por el Finder, el cual es mucho más ligero que antes y adiciona leves mejoras como las busquedas personalizadas en Spotlight o el agrandado de iconos para visualizaciones previas sin tener que abrir el archivo. Exposé ha sido integrado con el Dock de manera que puedas acceder a las ventanas que tienes abiertas de esa aplicación, tan solo al dejar presionado el click sobre el icono correspondiente. Las Pilas ya te permiten hacer scroll sobre ellas para que veas todos los documentos que contienen, no solamente los 7~8 archivos que aparecían en Leopard, por otro lado Time Machine realiza las copias de seguridad un poco más de prisa, y tu Mac se apaga mucho más rápido.


Con respecto al software, incluye Quicktime X y Safari 4, las últimas versiones de estos programas los cuales agregan controles mejorados e interfaces más atractivas que puedes consultar aqui y aqui. La característica más notable de Snow Leopard es que al instalarlo recuperas espacio en lugar de perderlo. ¿Cuando habias escuchado que al actualizar tu sistema operativo recuperaras espacio? La razón de esto es porque Snow Leopard deja de dar soporte a la arquitectura PowerPC, por lo cual remueve todos los archivos que la hacian funcionar.

Vamos al precio que es lo que duele (nah torrents to the rescue). En México la actualización desde Tiger o Leopard tiene un valor de 419 varos, o puedes adquirir el paquete completo llamado Mac Box Set que incluye Snow Leopard, iLife y iWork por 2399 varos. Como ves, Snow Leopard no tiene grandes cambios a nivel interfaz pero por dentro está completamente optimizado para velocidad. Los ingenieros de Apple realizaron esto con el objetivo de no acumular codigo obsoleto en el sistema, (no como en el caso de Windows, cuyo kernel aun arrastra código de hace un buen rato).

Snow leopard tambien incluye 3 nuevas tecnologias de las que hablaré de forma individual por su relevancia: 64 bits, OpenCL y Grand Central Dispatch. Snow Leopard es una actualización que vale la pena para usuarios de Leopard para incrementar su rendimiento, y para usuarios de Tiger vale aún más la pena, ya que ellos si notarán las "nuevas" características que fueron mostradas en Leopard.

Genera Tu Live - USB Con Unetbootin

Enviado por: tavohm

¿Cuantas veces necesitamos recurrir a un live-cd para arreglar una máquina, respaldar información sin usar el sistema operativo que viene en el equipo en cuestión o simplemente por curiosidad? Bueno, pues qué pasa cuando la unidad de CD/DVD esta estropeada, el CD/DVD esta rayado o simplemente no contamos con dicha unidad??

Primero, creo que la mayoria ya conoce que es un “cd vivo” o live-cd, pero para aclarar las cosas, según wikipedia “es un sistema operativo almacenado en un medio extraible, tradicionalmente un CD o un DVD, que puede ejecutarse desde éste sin necesidad de instalarlo en el disco duro de una computadora...” ya que hemos definido que es un live-cd, podemos decir que un live-usb es idéntico a un live-cd con la diferencia que el medio de almacenamiento es un una memoria USB, con esta es posible arrancar un equipo sin las restricciones del CD/DVD (obviamente requerimos que el equipo permita arrancar desde medios extraibles..sino, ¿¿como arrancamos la USB?? jeje).

Existen multitud de distribuciones GNU/Linux en formato live-cd, de las más populares estan Elive, Ubuntu, Kubuntu, Xubuntu, pero cómo logramos convertir o pasar de este formato a la usb? Pues simple, para ello tendremos que hacer uso de una aplicación llamada Unetbootin (Universal Netboot Installer) que es multiplataforma y nos permite la instalación de varias distribuciones GNU/Linux desde una memoria USB como si se tratase de un Live-CD pero prescindiendo de éste último. Si desean conocer mas acerca de esta herramienta pueden visitar el sitio web en sourceforge o la wiki.

Básicamente para crear un live-usb para instalar, por ejemplo, GNU/Linux Debian Lenny en una AAO (Acer Aspire One) tendriamos que bajar la aplicación unetbootin para nuestra plataforma, en mi caso GNU/Linux desde esta liga; luego, le asignamos permisos de ejecución con:

“chmod +x unetbootin-linux-356”

Y lo ejecutamos con:

./unetbootin-linux-356”

Se nos mostrará la siguiente pantalla:


Y aquí un video para mejor comprensión. Cabe señalar que si poseemos el archivo ISO de nuestro distro a colocar en la memoria USB solamente tendremos que indicárselo a la aplicación y seleccionar el archivo ISO reduciendo el tiempo de creación, pues de lo contrario la imagen ISO tendrá que ser descargada de internet.


Saludos!!