jueves, 20 de enero de 2011

MacOSX en Virtual Box

Parece mentira, pero si queremos desarrollar algo para iPhone/iPad, la única opción es hacernos con un Mac. No contaba con tener disponible el SDK para Linux, pero es que para Windows tampoco lo hay.


No sé si habrá algún motivo técnico o es una decisión comercial. Pero es lo que hay.


En cualquier caso, también tenemos que pagar la licencia de desarrollo, que viene a costar unos 79€ al año.


Si queremos trastear un poco, antes de desembolsar el dinero que cuesta un Mac y las licencias correspondientes, podemos hacer alguna prueba con VirtualBox.


Primeramente tenemos que obtener una imagen de OSX compatible con la máquina virtual, como por ejemplo: http://thepiratebay.org/torrent/5203531/Snow_Leopard_10.6.1-10.6.2_Intel_AMD_made_by_Hazard


Una vez instalada, procederemos a instalar iOS SDK y XCode, la plataforma de desarrollo. Pero resulta que requiere OSX 10.6.4. Así que hay que actualizar nuestro sistema recién instalado.


El problema es que, si lo hacemos sin más, al reiniciar nos dará un error "kernel mismatch".


Para evitarlo, podemos obtener un kernel compatible en: http://3rr0rists.net/driver/legacy-kernel-10-6-6-10-6.html. Lo instalaremos antes de reiniciar la actualización a 10.6.x (10.6.6 en el momento de hacer las pruebas)

martes, 18 de enero de 2011

Túneles

Seguro que todos sabéis hacerlo, pero yo siempre me lío.


Muchas veces tendremos la necesidad de acceder a un servicio en un puerto remoto hacia el que no tenemos visibilidad desde el entorno local.


Para poder acceder sin necesidad de usar IPs públicas, abrir firewalls y demás, podemos hacer un túnel SSH.


La sintaxis sería la siguiente:



ssh -L puerto_local:host_destino:puerto_destino usuario@host

Por ejemplo, yo necesitaba conectar al MySQL de la plataforma, que está en servidorX. Sin embargo, sólo hay visibilidad de servidorY. Así que, abriendo el siguiente túnel, tengo visibilidad de la base de datos en el puerto P de mi máquina:



ssh -L P:servidorX:3306 usuario@servidorY

Cómo manejar directorios con muchos ficheros

Estaba configurando el script de PHPDoc y me he encontrado con la limitación de que no permite indicar ficheros con wildcards. Es decir, o le dices que escanee un directorio, y lo hará por completo (subdirectorios incluidos), o bien le indicas qué ficheros quieres que parsee, separados por comas (pero sin espacios).


Lo de sin espacios es importante, ya que ls -m no genera una salida válida para PHPDoc.


Así que tenemos que tirar de un poco de shell. La solución implementada, además, permite el manejo de directorios de cualquier número de ficheros (gracias al comando find):



find $DIR -maxdepth 1 -name "*.php" -exec echo -n "{}," \; | sed -e 's/,$//g'