A menos que vivas debajo de una piedra, sabrás que iOS 8 Beta lleva ya un tiempo rondando entre nosotros y a los que nos apasiona siempre tener lo más nuevo ya andamos con ganas de descargarlo en nuestro dispositivo ya sea iPhone o iPad, pero ¿vale la pena actualizar ahora?

La respuesta corta es; si no eres desarrollador NO.

iOS 8 Beta para Desarrolladores

iOS 8 Beta para Desarrolladores

Ahora les explico el porque, la razón principal es que iOS 8 no incluye grandes cambios visibles como los de iOS 7 en su momento, no me malentiendan internamente si tiene muchos cambios muy agradables pero la mayoría de ellos sólo los vamos a poder notar hasta que los desarrolladores actualicen sus Apps con estas nuevas características (widgets, teclados personalizados, poder responder desde las notificaciones), así que si no eres desarrollador para empezar vas a lograr tener un sistema más inestable (no olvidemos que es una versión Beta y eso precisamente es lo que implica), por otro lado hay algunas aplicaciones que NO sirven con iOS 8 o que se cierran de golpe, el ejemplo más claro es WhatsApp y para todos los que la ocupamos a diario seguramente será un dolor de cabeza el que se cierre a cada momento.

En cambio si eres desarrollador de iOS puedes “aguantarte” un poco con estos problemas con el fin de mejorar tus aplicaciones y/o adaptarlas al nuevo sistema, con la Beta 4 el sistema es mucho más estable que la Beta 1 pero WhatsApp por ejemplo sigue sin funcionar bien (y me temo que será así hasta que iOS 8 salga de forma oficial).

La recomendación es que si no eres desarrollador no busques formas de instalarlo en tu dispositivo, terminarás arrepintiéndote y quizá hasta formateando tu iPhone o iPad para regresar a iOS 7 que tampoco es un proceso sencillo, en estos casos hay que ser pacientes.

 

AppCooker Storyboard

Como desarrollador de Apps Móviles sé que la creación de una App va más allá del código, primero hay que tener una buena idea, luego hay que plantearla, diseñarla y por último programarla, normalmente es complicado hacer todo esto ya que nos basamos en diferentes herramientas, pues bien AppCooker es una App para diseñar Apps para iOS.

He probado la App y puedo decirles que es una pequeña maravilla, ya que abarca muchas áreas del desarrollo, nos permite por ejemplo definir la idea de la que partimos, clasificar nuestra App según las categorías de la App Store, tomar notas de las funcionalidades, requisitos y distinciones que va a tener nuestra creación, también incluso existe una sección para diseñar nuestro icono a manera de “Mockup” o “Bosquejo” para un posterior diseño en una aplicación específica, o si ya contamos con este diseño podemos importarlo para ver cómo se verá en los diferentes tamaños que se necesitan.

AppCooker

También podemos hacer un Mockup de las pantallas de las que constará nuesta aplicación, ya que AppCooker incluye muchos de los elementos gráficos que Xcode nos permite utilizar, de esa manera creamos bosquejos rápidos muy similares y a veces idénticos a lo que podemos realizar en programación, esto es excelente para presentarle un diseño previo ya sea a nuestros clientes o a nuestro equipo de trabajo.

¿Lo mejor? No sólo son bosquejos estáticos, sino que podemos hacerlos dinámicos para que nuestros clientes o colaboradores puedan ver cómo funcionaría a grandes razgos la App, esto creando transiciones y enlaces entre las diferentes pantallas y con ayuda de otra App llamada “AppTaster” la cual es gratuita de descargar y nos permite enviarle a diferentes personas el prototipo dinámico para que nos den sus opiniones, además de que AppCooker ya fue actualizada para iOS 7 incluyendo los componentes estilizados a la nueva interfaz.

La desventaja es que AppCooker sólo está disponible para iPad lo cual es bastante lógico debido a que nos permite mayor control sobre las diferentes opciones que nos presenta, sin embargo no estaría de más que hubiera una versión para iPhone para cuando se nos occuren ideas y sólo tenemos el teléfono a la mano.

AppCooker Storyboard

No es una App especialmente barata, cuesta $200 pesos mexicanos en la AppStore, sin embargo para los que nos dedicamos al desarrollo de Apps para iOS realmente lo vale, nos ayuda a través del largo proceso de desarrollo y más aún nos ayuda a crear algo visual antes de empezar a tocar código.

Ahora la sorpresa; En GigaBriones tenemos 5 códigos para descargar AppCooker completamente gratis y van para las primeras personas que sigan los pasos:

1.- Sigan a @GigaBriones en Twitter

2.- Mandar un tweet que diga “Quiero mi código para descargar gratis #AppCooker cortesía de @GigaBriones”

Cabe mencionar que tienen que tener un iPad con iOS 7 para que les funcione, y por favor no pidan el código si no van a utilizar la App, dejémos que los que la necesitan se beneficien.

Descargar AppCooker en AppStore

¡Disfruten!

 

Keychain

¿Compraste una Mac de uso y ahora no tienes la clave de Administrador?

Este problema es muy recurrente, y bien puede ser que nunca hayas tenido la clave o bien que la olvidaras, pero ¡que no cunda el pánico! Aquí tienes la solución:

1.- Primero tienes que arrancar tu MacBook en modo consola, o el llamado “Single user mode” ¿cómo? para hacer esto deberás reiniciar tu Mac y mantener presionadas las teclas “Comando + S” (Comando o command es la tecla que está justo antes de la tecla espacio) durante el arranque, como verás la Mac empezará arrancar mostrando en modo consola.

2.- Hay que tener mucho cuidado con lo que hacemos en modo consola, lo primero que tenemos que hacer aquí es montar la unidad a la que queremos acceder, normalmente será tu disco principal el cual se nombra como “/”. El comando que debes ejecutar es:

sudo mount -uw /

 

3.- Ahora solo necesitamos borrar un archivo que es el que hace que la Mac detecte que ya se inició por primera vez. El comando a ejecutar es el siguiente:

rm -rf /var/db/.AppleSetupDone

Hay que tener cuidado con este comando ya que tenemos permisos de administrador y no queremos borrar otra cosa salvo ese archivo en particular.

4.- Por último utilizaremos el comando para reiniciar la computadora:

reboot

Ya una vez reiniciada tu Mac comenzará el proceso de configurar tu computadora como si fuera un nuevo equipo y es entonces cuando te pedirá crear un nuevo usuario en donde podrás volver a tener acceso a todo ya que serás nuevamente administrador. Aunque si intentas crear una cuenta con el mismo nombre de la que perdiste el password no te dejará hacerlo, ya que el usuario aún no ha sido borrado del sistema, lo que puedes hacer es crear una cuenta con un nombre diferente y después quitarle el password a la que quieres recuperar y setear uno nuevo.

Espero la información les sirva para recuperar sus contraseñas y disfrutar de su Mac 😉

En mi trabajo actual utilizan el gestor de Base de Datos de Informix para algunos de los sistemas en los que desarrollamos, y es aquí donde me encontré una vez con un error como el siguiente al ejecutar una consulta:

 [Error Code: -528, SQL State: IX000]  Maximum output rowsize (32767) exceeded.

El problema es que la documentación de Informix tanto oficial como de los propios usuarios suele estar en su mayoría en Inglés y a veces aunque uno entienda el idioma de Shakespeare también suele haber muchas preguntas en foros sin respuestas que lo dejan a uno más frustrado que al principio. Es por eso que escribo el post para poder brindar alguna ayuda a quien tenga el mismo problema.

Dicho error solo se me presentaba con una consulta que tenía la particularidad de hacer un SELECT con muchos campos solicitados, al final encontré una explicación en una página que listaba los errores de Informix:

528 Maximum output rowsize max-size exceeded.

The total number of bytes that this statement selects exceeds the maximum that can be passed between the database server and the program. Make sure that the columns selected are the ones that you intended. Check that you have not named some very wide character column by mistake, neglected to specify a substring, or specified too long a substring. If the selection is what you require, rewrite this SELECT statement into two or more statements, each of which selects only some of the fields. If it is a join of several tables, you might best select all desired data INTO TEMP; then select individual columns of the temporary table. If this is a fetch via a cursor in a program, you might revise the program as follows. First, change the cursor to select only the ROWID of the desired row. Second, augment the FETCH statement with a series of SELECT statements, each of which selects one or a few columns WHERE ROWID = the saved row ID.

Lo cual explica básicamente que este error aparece debido a que se excede el límite de bytes que pueden ser transferidos desde el servidor de base de datos y el programa o la aplicación que realiza la consulta, la cual está limitada a 32k (esto no lo dice ahí pero se infiere en el error), lo que se recomienda es lo lógico, lo cual es bien quitar campos en el SELECT que no vayamos a utilizar, y de no ser posible esto entonces dividir la consulta en dos o más sentencias, de esta manera cada consulta se ejecutará correctamente y luego en nuestra aplicación tendríamos que hacer una fusión de los datos devueltos en cada una de las consultas. También ofrece una opción un poco más complicada referente a pasar la información a una tabla temporal utilizando el ROWID, pero debido a la complicación que conlleva no se me hace una opción viable.

En resumen el error solo se muestra cuando una fila es demasiado pesada para poder transferirse del servidor a la aplicación, esto también puede pasar debido a que los campos solicitados son demasiado grandes, es decir si tenemos campos de texto con mucha capacidad y llamamos muchos entonces provocaremos que se exceda este límite, por lo que otra solución puede ser en la consulta sacar un substring límitado a la información necesaria de cada uno de los campos de texto que tengan capacidad para más caracteres de los que en realidad utilizamos. O bien cambiar la tabla/tablas modificando los campos con capacidades menores de ser posible.

Espero les sirva la información.