Principia Programmatica

cvm Ars Compilandi & Ars Interpretandi

Mis Apps: Google Quick Search Box

0

Hace tiempo, salió un lanzador de aplicaciones revolucionario para la época, QuickSilver. Un lanzador de aplicaciones es una utilidad que nos permite iniciar otras aplicaciones fácilmente, sin necesidad de ir navegando por /Applicaciones ni sobrecargar el Dock con iconos de aplicaciones que usamos esporádicamente.

QuickSilver estuvo en una perpetua beta, y tenía tantas funcionalidades y plugins que resultaba difícil sacarle todo el partido. Durante mucho tiempo no hubo releases nuevas, y a pesar de estar disponible el código fuente, el propio desarrollador advertía que era un poco ofuscado. Con lo cual, los usuarios de QuickSilver estaban en un estado más o menos precario, en especial al actualizar a Snow Leopard.

Pues bien, el desarrollador de QuickSilver pasó a trabajar para Google. Y el proyecto en el que trabaja es el heredero de QuickSilver, Quick Search Box. Quick Search Box es una evolución de QuickSilver, mucho más sencilla y más estable pero igualmente potente.

screenshot de QSB

Y como funciona QSB? pues lo primero, es invocarlo. Cuando QSB está funcionando, normalmente no aparece su icono en el Dock (es una opción, pero la más habitual). Lo que tenemos que hacer es pulsar ⌘+⌘ (o bien ⌃-espacio) y aparece una caja de texto en el centro de la pantalla.

A partir de aquí, las posibilidades se multiplican. QSB está esperando que le introduzcamos un texto, y a medida que vamos tecleando irá ofreciendo posibilidades mostrándonos objetos del sistema o acciones que podamos hacer con ese texto.

Por ejemplo, si queremos hacer un cálculo rápido y no queremos esperar a que se lance la calculadora, podemos invocar QSB e introducir una fórmula sencillita: 20*0.76. QSB nos ofrecerá un menú de opciones, con el resultado de la operación como primera opción, y a continuación otras opciones. La primera opción, si la seleccionamos, nos abrirá la calculadora. Otras opciones que nos pueden salir - según como hayamos configurado QSB- son buscar ese texto en Google, utilizarlo directamente como URL, o bien, si existe algún fichero en el sistema cuyo nombre coincida con lo introducido, abrir ese fichero. Algunas acciones, como la última que he mencionado, pueden tener diferentes variaciones: cuando QSB determina que nos estamos refiriendo al nombre de un fichero, si pulsamos TAB en lugar de Return para confirmar la selección, navegaremos a un submenú donde nos aparecen varias opciones más: abrir el fichero, abrir el directorio que contiene ese fichero en el Finder, moverlo a la papelera, obtener información...

QSB utiliza Spotlight para encontrar ficheros, documentos, correo, etc. que pueda estar relacionado con el texto introducido. Luego, las opciones posibles dependerán del tipo de objeto seleccionado: enviar por correo, mostrar texto en letras grandes, y así un sinfín de opciones, que podemos tunear a nuestro gusto.

Quick Search Box tiene documentación extensiva y código fuente disponible en la página del proyecto en Google Code.

whereami

He creado una pequeña utilidad de línea de comandos para Snow Leopard. Se llama whereami y, sorprendentemente, sirve para determinar tu posición, usando Core Location para ello.

Esta utilidad es open source y puedes hacerte con el código en http://github.com/victor/whereami

Mis Apps: Desktop Notifications

Inicio una nueva serie que espero que interese a familiares, amigos, coworkers y conocidos varios que recientemente se han pasado al Mac. Empezar en una nueva plataforma es siempre algo complicado, especialmente cuando no tienes referentes sobre qué aplicaciones usar para hacer tus tareas habituales, y que en otras plataformas ya puedes tener por la mano siguiendo un flujo que tal vez sea posible realizar con alguna aplicación, pero por desconocimiento de la misma, te obligan a adaptarlo a la primera aplicación que has podido encontrar.

En resumen, lo que sigue es un listado de las aplicaciones que a mi, personalmente, me gusta usar (o me veo obligado a usar), sin perjucio que haya otras que sean mejores para determinadas tareas. En la medida en que conozca alternativas a las mismas, también las pondré, aunque no las haya usado, si me consta que hay usuarios que las conocen y las encuentran útiles. De hecho, agradeceré comentarios indicando alternativas, ya que así el post será el doble de útil a gente que esté buscando software.

Desktop Notifications Empezaré con una pequeña utilidad para los adictos a la red social por excelencia (al menos, entre la audiencia que tengo en mente para este post): Desktop Notifications. Esta aplicación es un MenuItem que nos permite, en cualquier momento, actualizar nuestro estado, postear enlaces o acceder a las últimas notificaciones que hemos recibido, sin necesidad de usar ningún navegador.

Parece mentira, pero esta aplicación permite ahorrar mucho tiempo al cabo del dia, si somos activos en esta red social. No tener que abrir un navegador, identificarnos, etc. hace que cualquier actualización que queramos hacer pierda prácticamente la fricción que podría desanimarnos de hacerlo en cualquier otro caso. Además, esta aplicación monitoriza nuestro feed de noticias y hace aparecer un pop-up con las últimas actualizaciones de nuestros amigos, con lo cual no hemos de estar pendientes de ir refrescando dicha aplicación en una pestaña de un navegador.

Curso de programación de iPhone en Stanford

En Stanford han decidido ofrecer uno de sus cursos de programación a través de iTunes U, una iniciativa de Apple y diversas universidades americanas para ofrecer sus cursos (o, al menos, las clases) gratuitamente a través de internet.

En concreto, el curso es CS193P - iPhone Application Programming. De momento, está disponible ya para descarga la primera clase (con RickRoll incluido) y están disponibles también en la web las presentaciones. Lo que no he sido capaz de encontrar es una dirección públicamene accesible para el Podcast, únicamente es posible subscribirse mediante iTunes.

Por lo que he visto de momento, no es necesario ningún libro en concreto si no que se basan exclusivamente en la documentación de Apple y diversos websites (como stepwise o cocoabuilder) de acceso libre. En cuanto a los requerimientos, lo mínimo es un Mac Intel, el iPhone o iPod Touch son opcionales. Y eso si, tener conocimientos previos de C o C++.

Usando NSURLDownload

He estado un par de días peleándome con esto, así que voy a postearlo por si puede servir a alguien que se esté topando contra el mismo muro: Al tratar de usar NSURLDownload, obtenía siempre el mismo mensaje de error justo después de conectar con éxito con el servidor web remoto:

cannot open file http://example.com/file

Al final, me he dado cuenta que el directorio de destino del fichero no existía. Para crearlo, hay que hacerlo de la siguiente manera (el siguiente código funciona solo en Leopard, por cierto):

Lo que hace la llamada a createDirectoryAtPath:withIntermediateDirectories:attributes:error: es crear el directorio especificado y todos los intermedios, lo cual es bastante práctico. Si el directorio ya existe dará un error, pero se puede ignorar como lo he hecho yo, pasando un NULL al argumento error.

Cuentas de iTunes Music Store sin limitación geográfica

Hace unas semanas, me enteré de la forma de crear cuentas de la iTMS (la tienda de música, videos y aplicaciones de Apple) de Estados Unidos, y de otros países, sin necesidad de tener una tarjeta de crédito con domicilio en el país en cuestión.

La ventaja que tiene para nosotros, pobres ciudadanos españolitos, es primero, que los precios están en dólares, segundo, que se pueden comprar videos musicales, series y películas (o alquilarlas, estas últimas), además de que el catálogo es ligeramente diferente, y tercero, que cada semana hay freebues que con un botón se pueden descargar sin costo alguno. Ah si! y cuarto, que Ramoncín no ve ni un duro de ello.

Eso si, si nos decidimos a comprar algo, será necesario pagar de algún modo... como hacerlo? Pues comprando tarjetas de regalo en eBay. Con la ventaja de que salen más baratas que el precio nominal (en serio, si sabes pujar bien, puedes conseguir tarjetas de $200 por alrededor de $125). Lo mismo aplica para la store del Reino Unido y otras.

El truco consiste en canjear ciertos códigos de regalo, que habilitan una opción en los formularios de inscripción para que en medio de pago puedas poner la opción None. De este modo, no es necesario introducir una tarjeta de crédito para completar el alta. Simplemente poner una dirección postal real del país de cuya Store te estás dando de alta. Yo, por ejemplo, he usado las direcciones de las oficinas en el extranjero de la empresa. Da lo mismo, por que Apple no envia correspondencia allí.

Y como obtener estos códigos? Bueno, diversos sitios web los proporcionan. Yo os remito a la página donde encontré el truco, donde periódicamente van añadiendo nuevos códigos. No os preocupe que estén caducados, no podréis canjearlos por música pero si os permitirán dar de alta la cuenta: http://www.winandmac.com/tips/free-itunes-account-no-matter-where-you-live/

NDA de iPhone levantado

Cuando Apple anunció el SDK para el iPhone, muchísimos desarrolladores se regocijaron. Pudieron descargar las betas, y la versión definitiva, para empezar a desarrollar aplicaciones para el iPhone y el iPod Touch. Para ellor era necesario aceptar un NDA, es decir, un acuerdo de no divulgación. Esto es algo típico en esta industria y significa que los desarrolladores se comprometen a no hablar con nadie sobre lo que aprendan desarrollando con un sistema, y se utiliza para proteger secretos industriales o comerciales. Normalmente tienen una vigencia determinada hasta que se hace público el producto en cuestión.

El caso es que, una vez liberada la versión definitiva del kit de desarrollo, Apple seguia manteniendo vigente el NDA, con lo cual, los desarrolladores estaban impedidos de discutir entre ellos o en foros detalles, ejemplos o cuestiones que se les ocurriera. Apple llegó incluso a prohibir que se hablara de las aplicaciones rechazadas en la App Store (Apple es la única distribuidora de software para el público en general, y tiene poder de veto sobre las aplicaciones) y de los motivos que se argumentaban para el rechazo. De hecho, esto último levantó su propia polvareda sobre esto ya que, en el fondo, se estaban perjudicando los intereses de la propia Apple, ya que si una empresa se decidía a invertir en el desarrollo de una aplicación, no tenía garantizado el poder comercializarla. Pero ese es otro tema...

El caso es que no se podia mostrar código de ejemplo para el iPhone, ni discutirlo, ni nada... y claro, en una plataforma nueva, esto es esencial. Por fin, hoy Apple ha levantado la veda, pero solo para productos ya comercializados. Es decir, no puedes mostrar código de tu aplicación si no está ya en la App Store. Craig Hockenberry, por ejemplo, ha sido uno de los primeros en mostrar código fuente, y además, con un curioso ejemplo de como hacer que se comuniquen diferentes aplicaciones entre si (algo que el modelo de ejecución y desarrollo para terceras partes del iPhone hace difícil). La verdad es que es un ejemplo muy interesante...

Salvapantallas para Mac

He pensado que podría liberar el salvapantallas que uso en mi Macbook Pro. Como sabéis, en Mac OS X es posible utilizar una composición Quartz como salvapantallas. Un dia se me ocurrió hacer un experimento y salió más o menos bien. Y como he pensado que a alguno de mis lectores le puede gustar, pues aqui lo dejo. No cuelgo ningún pantallazo por que no quedaría bien y para dar un aire de intriga he he...

Un dia de estos ya lo empaquetaré con licencia y tal. De momento, descárgalo aqui. Para instalarlo, mueve el fichero a la carpeta ~/Library/Screen Savers (~ significa tu directorio de usuario. Por ejemplo, en mi caso, se trata de /Users/victor/Library/Screen Savers) y desde el panel de preferencias de Escritorio y Salvapantallas, al final de todo, bajo el epígrafe Otra, te aparecerá para que lo selecciones. Alternativamente, puedes abrir este mismo panel de preferencias y arrastrar el fichero dentro, que el sistema ya se encargará del resto.

Hala pues, a disfrutarlo!

iPhone 3G

Hace dias que tengo varios posts pendientes de escribir. Me compré un MacBook Pro de los nuevos (el modelo de más alta gama), un coche nuevo para llevar a las niñas (un Mazda 5 de penúltima generación, que son más baratos :) ), mi mujer metiéndose a blogger sin que yo la haya empujado... en fin, unas cuantas novedades. Pero lo que me ha llevado a romper mi racha de silencio y postear ha sido ver esta mañana la Keynote de ayer de Steve Jobs en la WWDC2008.

Después de ver algunos de los ejemplos de aplicaciones de terceras partes (y de haber trasteado con las betas del SDK), y ver el peazo móvil que estará disponible por estos lares... se me ocurre que debo replantear mi carrera, y especializarme en desarrollo sobre la plataforma iPhone (si, es una nueva plataforma). Con mi background en desarrollo web y web services, y los pinitos que hecho en Cocoa y Objective-C con el iMac, tengo una ligerísima ventaja sobre una parte de la horda de programadores que vaticino van a interesarse en desarrollar sobre esta plataforma.

iPhone simulator

Lo que necesito es pensar un par de aplicaciones sencillas que sirvan de showcase de mis habilidades, y ponerlas cuanto antes en el App Store. No para ganarme la vida con ellas - según como, igual las pondría gratis para evitar tener que declarar ganancias- si no para que cualquier posible empleador las pruebe. Y claro, también para ganar una mínima experiencia, ya que no es lo mismo Cocoa que Cocoa Touch, claro!

Asi pues, qué aplicaciones podria hacer que sean sencillitas a la par que vistosas? Lo primero que me viene a la cabeza es alguna herramienta para editar blogs, o un puzzle con fotos de flickr. Pero no se, no se... estoy seguro de que si me esfuerzo un poquito más, podré tener algo más interesante!

WebKit: exporta a PDF

Una de las novedades que han aparecido recientemente en los builds de WebKit es la opción de exportar a PDF: un nuevo menú contextual permite volcar toda la página actual en un documento PDF de una sola página (o sea, un rollo de papel contínuo).

La característica no es del todo estable aún: una de cada dos veces que la he probado, Safari ha acabado petando. Además, si la página utiliza CSS específicas para impresión, se utilizan (es decir, es como si imprimiéramos la página actual a un PDF contínuo). Por eso, si lo que queremos es obtener un pantallazo largo de la página que estemos visitando, tal como se ve en el browser, sigue siendo mejor opción utilizar Paparazzi.

Noticias FNAC: te explicamos lo que pasó antes de ayer

Cuando los mailings (en papel) de la FNAC me avisan de actividades y promociones que ya se han pasado, lo achaco sobre todo a que vivo en un pueblo pequeño y el correo llega tarde. Pero lo que me han enviado por correo electrónico esta tarde no tiene nombre:

El link (con mi código de tracking incluido, supongo) es este: http://ems6.net/a/?E=XTC-DAQG-J5C0M-DD-CAOI9 Como supongo que caducará tarde o temprano, dejo aqui una copia.

Como veis, explican una promoción para entrar en el sorteo de un iPod con la compra de un Leopard. Dicho sorteo se efectúa a las 20:30h, dos horas y media después de poner Leopard a la venta. Bueno, es algo justo de tiempo, pero casi mejor, ya que hay más posibilidades de que te toque. Pero, a qué hora han hecho el mailing?

Pues a las 20:11h!!!

Suponiendo que lo lea a tiempo, si esperan que deje lo que estoy haciendo para bajar a comprarlo, es que son muy optimistas.... Vamos, me pregunto si habrá base legal para hacer una reclamación por publicidad engañosa o algo así.

He estado mirando esta mañana la web de Apple para ver los eventos que organizaban. Se mencionaba que en la FNAC harían demos, pero nada de promoción alguna. O sea, que quien haya podido participar, habrá sido o por casualidad, o por que es el cuñao de algún empleado de la FNAC que dispone de información privilegiada. Por que lo que somos el resto...

Safari para Windows ya muestra texto

Es decir, el nightly build de WebKit para Windows ya muestra el texto sin problemas.

Estaba curioseando por el changelog deWebKit y he visto unos cuantos commits relacionados con las fuentes. Así que he probado el último nightly, a ver que tal, y la sorpresa ha sido grata: parece que están solventados la mayoría de los problemas de renderizado de texto:)

Así que os recomiendo que si queréis probar la experiencia Safari, os bajéis el útimo nightly. Os lo recomiendo también a los usuarios de Mac, ya que ahora incorpora el nuevo inspector. Podéis encontrar más información sobre este nuevo inspector en http://trac.webkit.org/projects/webkit/wiki/Web Inspector

Update Sin embargo, persisten algunos bugs bastante incómodos, como el que me ha impedido editar correctamente esta entrada en el blog.

Safari Beta 3.0.1 para Windows

En cuanto salió Safari para Windows, unos cuantos investigadores de seguridad se pusieron a buscarle fallos de seguridad, y vaya si los encontraron! Los típicos de gestión de handlers para protocolos específicos, un poco un error de pardillo.

El caso es que ya lo han arreglado y ya se puede descargar el bugfix. No os pongo URL, tenéis una aplicación llamada Apple Software Update que se encargará de ello.

Ya tenemos los nightlies de WebKit para Windows

Solo hay que ir a buscarlos a http://nightly.webkit.org/.

Para ejecutarlo, descargar el archivo y descomprimirlo en alguna parte (no hace falta machacar la instalación estable de Safari). Entonces, hacemos doble clic sobre el fichero de comandos que encontraremos, y este ya se encarga de lanzar el Safari del sistema pero indicándole que debe usar las DLL del directorio desde donde lo lanzamos. Por que los nightlies de WebKit son básicamente esto, solo el motor de renderizado y deben usar la aplicación Safari ya preinstalada para que los contenga.

De momento, parece que los favoritos ya funcionan sin el hack que comenté ayer...

Para los más aventureros, podemos descargar el código fuente desde SVN y compilarlo nosotros mismos. Las instrucciones, en http://webkit.org/building/tools.html. Como se ve, con el compilador gratuito Visual C++ Express de Microsoft es suficiente, no hace falta el full monty que es Visual Studio.

Pages

Categories

Tags