Integración continua, Jenkins e iOS

Logo Jenkins¿Qué es la integración continua?

La integración continua  (Continuous Integration o CI) tiene como objetivo principal comprobar que cada actualización del código fuente no genere problemas en una aplicación que se está desarrollando. En un marco de trabajo en el que varios desarrolladores suben actualizaciones constantes de código fuente, fusionando el trabajo entre ellos, la integración continua permite que se compruebe en cada commit, si el nuevo ejecutable generado con los nuevos aportes, sigue funcionando correctamente con todos los test creados anteriormente. De esta forma se detectan los posibles errores en una fase muy temprana, identificando fácilmente cuales son los cambios recientes y la corrección se hace mucho más sencilla.

Read more

Truco: Copiar y pegar sin formato entre aplicaciones en Mac OS X

Cmd + CSeguro que te suena está situación, quieres copiar un texto de un correo de un cliente para añadirlo en tu documento de Análisis, pero cuando lo pegas se queda con el formato del correo, así que tienes que volver a seleccionar el texto y cambiar el tipo de letra, el tamaño y el color… pues hay una solución para hacer todo este proceso más fácil. Read more

Cómo trabajar contra un API Rest desde iOS de forma cómoda

Postman logoUna de las tareas más habituales que los desarrolladores de iOS tenemos que lidiar en el día a día, es la comunicación con una API Rest, enviarle una petición con parámetros concretos, y recibir una respuesta, normalmente en JSON. Si esa API la están desarrollando también en el momento que tú haces tu aplicación, siempre te encuentras con algún fallo que en un primer momento no sabes si es culpa de la respuesta de la API o la interpretación que estás haciendo tú en tu código. Para poder saber rápidamente de que lado está el fallo, podemos usar una herramienta muy útil en estos casos, llamada Postman.

Read more

Cómo hacer libros para iOS

Después de haber estado investigando como hacer revistas para iOS el paso lógico era buscar como hacer libros en iOS. En este caso Apple ha creado una aplicación sencilla, fácil de usar, y muy potente, llamada iBook Author, que permite crear libros impresionantes y publicarlos con el mínimo esfuerzo. La interfaz de esta aplicación (solo para Mac) recuerda mucho a un mítico Word o Pages, con componentes para hacer interfaces muy vistosas (llamados widgets), como carruseles de fotos, incrustar vídeos, encuestas (con posibilidad de elección de fotos o o imágenes), imágenes interactivas (con zonas de pulsación, etiquetas… etc), incluso poder incrustar tu propio código HTML.

Read more

GitHub para Snow Leopard


Logo GitHub

Logo GitHub

La semana pasada os hacía un resumen del fantástico sistema de control de versiones GIT. En esa entrada os hablé de un programa para poder gestionar de modo visual las operaciones con el repositorio, add, commit, ramas, push, historial de commits y archivos… etc. Hoy quería subiros aquí una versión antigua de GitHub para Snow Leopard. Me acuerdo que cuando la intenté conseguir me pasé mucho tiempo buscándola, ya que en la página oficial (http://mac.github.com/) solo te permite descargar la última versión, me imagino que ahora compatible con Lion y Mountain Lion.

Después de descargarla se actualiza automáticamente a la versión 1.2.3 que es la última para el sistema operativo Snow Leopard.

Introducción a GIT

Logo Git

Logo Git

El otro día me propusieron que diera a mis compañeros un seminario de GIT. GIT es un sistema de control de versiones (SCV) con muchas ventajas frente a otros sistemas como CVS y SVN, habituales entre los desarrolladores.

GIT fue creado en 2005 por Linus Torvalds, el creador de Linux, debido a que el control de versiones que estaban usando hasta ese momento, BitKeeper, pasó a ser de pago. En ese momento decidieron hacer su propio control de versiones, nació GIT. Sus principales características son rapidez, diseño sencillo, fuerte apoyo al desarrollo no lineal (es decir usando miles de ramas paralelas) y es capaz de manejar grandes proyectos, como el núcleo de Linux, de manera eficiente (velocidad y tamaño de los datos).

Una de sus principales novedades, es que es distribuido, es decir, todos los ordenadores tienen una copia del repositorio completo. Gracias a esta funcionalidad puedes estar trabajando en local sin conexión a internet, hacer commits, ramas y luego cuando vuelvas a estar conectado, subirlo al repositorio principal.

GIT además entiende cada uno de los commit, que recuerdo que son locales, como una instantánea del proyecto en ese momento, no como diferencias en archivos como otros SCV. De esta forma podemos volver a un estado anterior fácilmente si usamos mensajes descriptivos al hacer dichos commit.

El repositorio “origin” (así lo llama GIT, es el principal), se puede colocar en cualquier directorio de la red local, acceder por SSH, o incluso colgarlo de un acceso HTTP.

Para aprender los comandos básicos de GIT y empezar a usarlo, os dejo el enlace a este guía de referencia:

Además si queréis profundizar en las entrañas de este sistema de control de versiones, el enlace al libro gratuito de git en español:

Después de dar el seminario, me di cuenta de la reticencia que tienen “ingenieros” en usar la consola de comandos, nos hemos acostumbrado a un entorno visual, mucho más perezoso y poco potente, pero que muchos no saben trabajar sin él. Así que para los que seáis así, saber que tenéis muchas herramientas visuales para usar GIT, y que solo son un envoltorio de las operaciones reales en consola de comandos. De entre todos destacar uno multiplaforma y hecho por la gente de github.com:

http://windows.github.com/

http://mac.github.com/

Y un plugin para eclipse, para los que están acostumbrados a este IDE:

http://www.eclipse.org/egit/

Os animo a todos a que lo probéis, una vez que se pasa la barrera del cambio a algo nuevo, que siempre nos cuesta a todos, estaréis encantados de su eficiencia, rapidez y sencillez. Muy pocas veces he tenido que hacer un merge a mano.

Solución al “Fatal Error Out of Memory” de WordPress

Wordpress Logo

Wordpress Logo

Llevo usando desde hace unos años wordpress en un blog personal, y nunca me había dado ningún problema con los proveedores de servicio en los que lo tenía alojado. Sin embargo en este nuevo proveedor enseguida me he encontrado con fallos de memoria del WordPress al subir una simple imagen, o al realizar tareas cotidianas como editar una entrada e intentar usar el modo “Visual” y no el HTML. Después de muchas vueltas buscando en internet y probando las mil y una soluciones que se exponen, esta tan sencilla es la que nos ha funcionado en nuestro proveedor (por cierto es 1&1):

  • Crear un fichero de texto que se llame “php.ini” en la carpeta wp-admin de nuestro wordpress con el siguiente contenido:

memory_limit = 128M

Con esto todo solucionado, ya no hay más errores de out of memory.

Como curiosidad, este es uno de los errores que nos daba:

Fatal error:  Out of memory (allocated 29622272) (tried to allocate 311296 bytes) in /homepages/30/XXXXX/htdocs/porexpertos.es/wp-includes/js/tinymce/langs/wp-langs.php on line 215

 

Seguir usando Snow Leopard con iOS 5.1 para no pasarte a Lion y su Xcode

iOS 5.1

Si has encontrado este post, seguro que te encuentras en la misma situación que nosotros hace unos días, cuando uno de los iPhones que usamos para desarrollo lo actualizamos, más o menos sin querer. La situación era que cuando lo conectábamos al Xcode para probar las aplicaciones que estamos desarrollando nos daba un error de compatibilidad, le faltaba el SDK del 5.1 para poder continuar. Buscando información la conclusión a la que llegas es actualizar el Xcode 4.2 a una nueva versión, pero esa nueva versión en la 4.3.1 y solo está hecha para Lion. Aquí tenemos el problema, ¿actualizamos todos los Macs de desarrollo a Lion, sin tener en cuenta si modificará otros entornos de desarrollo con otras tecnologías que están montados en ellos? Nos parecía un poco arriesgado, así que decidí buscar otra solución. Después de unas cuantas vueltas la encontré. Se trata de bajarte el “Xcode 4.3.1 for Lion” montarlo en tu Mac, y luego copiar solo los archivos necesarios para poder compilar con el SDK 5.1, para el iPhone y para el emulador. Los pasos son:

Descargar Xcode 4.3.1 for Lion

  • Montar el .dmg que se ha descargado.
  • Ejecutar en el terminal estos comandos:
sudo cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/ 
sudo cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ 
sudo cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/5.1 (9B176) /Developer/Platforms/iPhoneOS.platform/DeviceSupport/ 
cd /Developer/Platforms/iPhoneOS.platform/DeviceSupport/ 
sudo rm -f ./Latest 
sudo ln -s ./5.1 (9B176) ./Latest 
  • Reiniciar el Mac (importante, si no fallará).
  • Hacer un clean de los proyectos antes de volver a compilar.

Espero que os sirva.

Los gadgets y las emergencias

Rescate en la Pedriza

Quería empezar este nuevo blog con un post sobre una de mis pasiones, a parte de la tecnológica/gadgets. Y aunque no me considero ningún experto, son ya muchos los años que llevo en contacto con ella, y quieras que no la experiencia se va acumulando.

Esta gran pasión es la montaña, en sus múltiples disciplinas, trekking como se dice ahora (yo lo sigo llamando pateo), carreras de orientación, escalada, recientemente vías ferratas…

Read more