El lamentable estado de las herramientas de desarrollo iOS

Apelando a Murphy, voy a escribir esto justo antes de la WWDC, a ver si Apple me deja por tonto cambiando todo de lo que me voy a quejar aquí. Por desgracia no lo espero. Espero que presenten «otras 1000 APIs» que realmente no necesito. Lo que necesito es que eliminen los bugs que existen en las que ya hay. Y que las herramientas funcionen. No que añadan cosas. Que arreglen bugs.

Hace tres años escribí sobre El lamentable estado de las herramientas de desarrollo Android. En aquella época, lo que existía para desarrollo Android (oficial) era el plugin ADT para Eclipse. Y, como relato en el post, no funcionaba algo que era un simple ZIP. Eclipse, Java 6, fallos en las herramientas, un Android Studio que estaba en Alpha, una documentación horrorosa, una API discutible (ver p.ej. el método isUserAGoat en UserManager), la lentitud de Gradle si probabas AS… Esto era la muerte por mil cortes, comparado con el mundo iOS, con esas APIs Cocoa tan consistentes, un Xcode tan bonito y que entonces no fallaba tanto…

Y encima Apple presentó Swift en Junio de 2014. La promesa de un nuevo lenguaje, compatible con Objective-C, con C, C++, pero funcional, con inmutabilidad, Opcionales, genéricos, … Todo se veía de color de rosa desde el mundo iOS, comparado con el cenagal que era el desarrollo Android.

Apple: Non-Pro Macs

Apple ya no hace ordenadores para desarrolladores. Y me parece muy bien, si así gana más dinero. Pero debe entonces afrontar las cosecuencias, que van a ser (porque esto ya ha lo he visto antes en otras plataformas):

  • los desarrolladores se compran otras máquinas y se montan un Hackintosh para seguir desarrollando en iOS / Mac. MacOS se convierte en «ese sistema operativo que te ves obligado a usar por el trabajo». Apple no gana dinero con las máquinas. Tienes dual-boot y cada vez usas más Windows. Peligro.
  • los desarrolladores directamente se pasan a Windows 10 / Linux con mejores portátiles (y a mejores precios, que no todos tenemos una mina de oro en el sótano de casa) y usan MacOS en una máquina virtual (cosa que prohíbe la licencia, como el Hackintosh, pero ponle puertas a ese campo…). Goto 1
  • algunos desarrolladores se cabrean tanto con el poco aprecio que sienten desde Apple que directamente abandonan la plataforma, algo que a dia de hoy se puede hacer ya que el mercado de trabajo tiene ofertas casi para todo tipo de perfiles de desarrollo.

Si los programadores se van de una plataforma, esta se muere. Lo he visto con OS/2, con Amiga, con Linux (¿este es el año de Linux en el escritorio? Y sí, ya se que se usa mucho Linux en Android, que es Linux, y en la RaspberryPi, y que llevo usando Linux desde el 93, que no me cuentes de qué va eso que yo voté porque Tux fuera la mascota de Linux y tú no).

Casi le pasa a Microsoft. El rechazo que generó con sus Internet Explorers le ha llevado a ceder casi toda la cuota de mercado a Chrome. Y no hablemos del patinazo Vista, que enmendó con Windows 7. Es por eso el titánico esfuerzo que está haciendo ahora mismo Microsoft, permitiéndote ejecutar Linux en Windows de forma nativa, o dándote la bash. Atraer programadores que son los que riegan este campo con sus aplicaciones.

2017

Es 2017. Swift va a sacar la versión 4, con nuevos cambios que te obliguen a actualizar tu código, o no compila. Con ese asistente que tiene Xcode tan bueno. Si no tenías listo el lenguaje en 2014… ¿para qué sacarlo? ¿Porque Chris Latter estaba harto y se quería ir? Pero bueno, era 2014 y podíamos entenderlo, Apple. Pasamos por Swift 1, 1.1, 1.2, y los cambios a Swift 2. Y Swift 3. Contínuamente cambiando una base de código que funciona para hacer que siga funcionando. Es decir, gastar horas para seguir en el mismo punto. No añadir nuevas funcionalidades. Que compile. Coding is fun.

Al menos el compilador de Swift es rápido. Tanto, que cuando ejecuto Gradle en Android me parece instantáneo. Gradle, quiero decir. Pero en cada WWDC nos dicen que «ahora el compilador de Swift es un 20% más rápido». Con tantos avances en velocidad mi código debería terminar de compilar… en 1984. De lo rápido que compila. Pero la realidad es la realidad, y Swift es horriblemente más lento compilando que su equivalente en Objective C. Y es una pena, porque el lenguaje es muy bonito. Apple ha hecho un Sherlock de Kotlin con Swift, lo que está bien. Si ahora hiciese un Sherlock de IntelliJ, todos contentos.

Porque cansa ver cómo se arrastra el compilador. Cómo haces Cmd+click en un símbolo y no lo encuentra (es una función de ámbito global y no la encuentra). O cómo el autocompletado es totalmente random. O cómo pones un punto de ruptura dentro de una clausura y no puedes depurar el valor de las variables de la clausura. Bueno, sí puedes… usando println. NSlog oriented debugging FTW!

Al menos podemos refactorizar nuestro código. Esto significa que puedes cambiar el nombre a una clase. Fin de los refactors. Y en Objective-C. En Swift nada. Zero. Nil. Y de generar código ni hablamos. Últimamente Xcode no es capaz ni de comentar líneas de código con Cmd + / o acertar y autocompletarte los nombres de las librerías en los imports.

O cómo la comunidad ha tenido que solucionar problemas básicos que Apple se niega a ver. ¿Resolución de dependencias y librerías de terceros? En Android: Gradle. Soportado. En iOS: CocoaPods, Carthage, o a mano. Todos proyectos de la comunidad. ¿Plugins? En Android: Android Studio tiene de todo. En iOS: han metido un sistema de plugins tan restringido que, la verdad, no conozco a nadie que esté usando algún plugin que merezca la pena (indicadme por Twitter los mejores, por favor). Y de paso se han cargado un proyecto como Alcatraz, que sí que ofrecía un montón de plugins, temas y plantillas de ficheros porque, ¿quién quiere algo mejor cuando mi versión inferior patentada por Apple ya viene con Xcode? Y sí, entiendo los problemas de seguridad de los plugins, y que Xcode viene firmado y todo eso. Pero digo yo que habrá alguna solución intermedia colocando los plugins en otro proceso fuera del sandbox de Xcode…

WWDC

Así que, en esta próxima Developers Conference, vamos a abrir la Keynote hablando de lo mucho que vendemos, de lo buenos que son los portátiles con la ToyBar, de lo chulos que son los auriculares Beats, de todas esas cosas que nos interesan muchísimo a los programadores, que es a los que debe ir dirigida la Keynote. Nuevos colores para las correas del reloj. Nuevas animaciones en macOS para organizar tus ventanas en 15 espacios para que nadie lo use nunca, porque todos usamos un monitor externo. Y Apple Music, que todo programador necesita música de fondo y eso. Pagando.

Pues no. Este año no renové mi Apple Membership por primera vez en 6 años. Y cada vez me cuesta más y me duele más abrir Xcode. Porque veo lo que podría ser, lo comparo con un excelente IDE (con sus problemas, pero mucho mejor para escribir código) como IntelliJ y me sangra el corazón. Quiero seguir programando en un Mac en 2027. No me eches de tu jardín, Apple.

j j j

Cómo instalar Xcode 6 GM (o cualquier versión final de Xcode) sin sobreescribir la anterior

De nuevo es esa época del año. Vuelta al cole. Fin del verano. Nuevo Xcode.

Me encanta el olor a nuevo Xcode por la mañana

Y siempre, el mismo temor: ¿qué pasa al instalar? ¿Voy a sobreescribir mi Xcode actual?

Un poco de teoría

Una App en OS X no es más que una carpeta (un bundle) que contiene los ficheros ejecutables y recursos que la App necesita. Podemos verlo más claro desde el Finder pulsando con el botón derecho del ratón y escogiendo Mostrar contenido del paquete. Desde la terminal es aún más evidente. Si hacemos:

$ cd /Applications/ 
$ ls -d Xcode*

drwxr-xr-x@ 3 dfreniche admin 102B 10 sep 09:47 Xcode.app/ 
drwxr-xr-x  3 root wheel 102B 16 abr 10:30 Xcode5.app/ 
drwxr-xr-x@ 3 dfreniche admin 102B 2 jul 02:52 Xcode6-Beta3.app/ 
drwxr-xr-x@ 3 dfreniche admin 102B 1 ago 23:17 Xcode6-Beta5.app/ 
drwxr-xr-x@ 3 dfreniche admin 102B 16 ago 00:35 Xcode6-Beta6.app/ 
drwxr-xr-x@ 3 dfreniche admin 102B 28 ago 09:01 Xcode6-Beta7.app/

veremos todas las versiones de Xcode que tenemos instaladas. No son más que directorios UNIX normales

La práctica

Durante la fase de Betas la imagen de disco con Xcode que descargamos contiene una carpeta con un nombre como Xcode6-Beta5. Este nombre es distinto de Xcode, con lo que no hay conflicto.

Cuando llega la GM y la versión definitiva, Apple distribuye un DMG con una App que ya se llama Xcode. Es Xcode 6, pero tiene el mismo nombre de carpeta que el Xcode 5 que ya tienes instalado en tu disco duro. Si lo copias, vas a perder Xcode 5.

Xcode5 antes de copiar Xcode6 GM

]Xcode5 antes de copiar Xcode6 GM

Solución sencilla: antes de copiar nada a la carpeta Applications, renombra Xcode (como si fuera un fichero o carpeta normal, probablemente tengas que introducir tu clave de administrador) y ponle de nombre Xcode 5 (o el que prefieras, yo tengo por ahí una llamada Ye olde Xcode 4.3)

Instalando Xcode 6 tras renombrar Xcode 5

]Instalando Xcode 6 tras renombrar Xcode 5

Fácil, ¿no?

j j j

Especial MacWorld Mountain Lion

MacWorld Práctico Especial Mountain Lion

No es ninguna novedad y, probablemente ya no quede ninguno en los quioscos. Pero sentía que tenía una deuda conmigo mismo y quería hablar acerca de lo último que escribí para la ahora difunta MacWorld España. Concretamente, este número especial sobre cómo usar OS X Mountain Lion que se publicó en Enero. Mi legendario efecto gafe, capaz de acabar con webOS o poner en serio aprieto a Nokia, ha sido capaz de acabar con la revista para la que a veces escribía como colaborador.

El caso es que estuve dedicado a escribir este tocho durante Agosto de 2012, esperando que si me enfocaba y esforzaba lo suficiente finalmente lo acabaría para primeros de Septiembre. A punto de llegar Septiembre vi que no lo tenía listo del todo, pero sí que había reunido un tocho considerable y que no me quedaría tanto: había cumplido con el plan de trabajo. Una vez enviado el borrador, me dieron la mala noticia de que el enfoque no era el esperado: se necesitaba un tutorial paso a paso, y no una review y opinión sobre el nuevo sistema operativo de Apple. Patinazo en toda regla.

Durante Septiembre y Octubre estuve muchas horas, muchas, dedicado a ir avanzando el libro. Finalmente lo entregué. Parir cualquier cosa escrita siempre es más duro de lo que uno espera. Pero cuando hablamos de un documento de este tamaño (más de 140 páginas de revista escrita casi sin publicidad, lo que haría un librito de unas 200 páginas o más) cualquier previsión que hago siempre se me cae al suelo. Y debería tener experiencia: en 2011 estuve escribiendo unos manuales para cursos de teleformación, he escritos algunos artículos para MacWorld y PCWorld y hace mucho se publicó un especial sobre Linux (era mi época Linuxera) que tecleé enterito.

Con una suerte digna de mejor causa, en Enero me encontré al pasar por un kiosko, en Madrid, con la revista. Iba a impartir una de las jornadas del curso a medida avanzado de iOS que tuve el gusto de dar a la gente de Redsys junto con Mobile Business School. Cuando tuve la revista en las manos, no la reconocía. Claro, yo sólo la había visto en la pantalla de mi iMac dentro de Pages, pero no había visto la versión final. Supe que era la mía por el artículo sobre accesibilidad que Jonathan Chacón tuvo la deferencia de escribirme para que apareciera en el especial (¡gracias, Jonathan!). Y ahora, aquí la tengo.

Es un recordatorio de varias cosas, y con el ansia de automachaque que define a todo buen informático, para empezar todas las que me recuerda son malas:

  • la próxima vez no uses Pages para escribir un libro. Si tienes una licencia de Scrivener, aprende a usarlo. Es la aplicación definitiva para escritores. Ahora me he dado cuenta, tarde, pero mejor que nunca.
  • si te encargan escribir sobre algo, pregunta antes de empezar por el enfoque. Define los requisitos, como con un programa. Si al cliente no le gusta lo que has hecho, vas a tener que empezar de nuevo y no va a ser divertido.
  • se pesimista con las estimaciones, y después de eso, aplica un factor de corrección de +50% del tiempo que has estimado. Y aún así ni te acercarás. Escribir lleva mucho tiempo, y por mucho que invoque mis capacidades super heroicas, luego no se avanza al ritmo que se quiere, sino al que se puede.

Pero también he aprendido mucho sobre mí mismo y sobre las herramientas que he usado. Vamos, que algunas cosas he hecho bien:

  • ya que tenía que escribir sobre OS X Mountain Lion, he aprendido mucho sobre el OS. Ahora hay un montón de cosas más que se hacer.
  • he mantenido un ritmo constante de escritura. He sido bastante disciplinado y todos los días escribía un par de horas. Ni yo me lo creo.
  • me he agobiado, pero dentro de un límite. Cuando me dieron la mala noticia, en lugar de cabrearme y gritar saqué mi libreta y me hice un mapa mental para comerme ese marrón. Y convertí el problema amorfo en una lista de tareas que podía ir resolviendo.
  • tengo a mi lado un recordatorio en papel, algo físico, de que soy capaz de escribir un librito si me pongo a ello. No me he dado el tiempo para disfrutar de esto, quizás es ahora la primera vez que estoy reflexionando sobre ello.
  • he aprendido a usar algo más de Pixelmator, para editar las imagenes de las capturas. Mola.

Así que ya está. El libro está en mi mesa. El trabajo terminado. Pero MacWorld ha cerrado, mucha gente ha perdido su trabajo y probablemente nadie lea este número, al que he dedicado tantas horas. Al no estar en edición digital (en Zinio, por ejemplo) poca gente lo va a leer. Y eso me deja un poco triste.

Ahora tendré que matar el gusanillo de escribir de alguna manera. Probablemente escribiendo un libro para enseñar a desarrollar Apps para iOS. ¿Alguien interesado? Acepto ideas y sugerencias. Luego haré lo que me de la gana, pero prometo tenerlas en cuenta 😀

j j j

Mi nueva máquina y por qué no me he comprado un rMBP

Foto de mi MBP 13 pulgadas abierto, con Safari corriendo Hace ya un tiempo que estoy por esas carreteras llevando mi nueva máquina, entre curso de iOS y Android. Lo anunciaba en Noviembre, mientras lo esperaba. Es un MBP 13″ no retina. Y para colmo con la CPU menos potente que vende Apple, un Core i5 dual core a 2,5 Ghz. «¿Cómo?», se preguntarán algunos, «¿todo el día hablando de tecnología y te compras eso?». Pues sí. Os cuento qué máquina me he comprado, las razones que me llevaron a ella y cómo la uso.

La máquina

Ventana Acerca de Este Mac abierta, mostrando las características del MBP

El equipo en sí es un MBP 13″ no retina, de Julio 2012. Por ello, tiene una resolución de pantalla infame (1280×800) pero a cambio tiene otras cosas muy interesantes dentro de su cuerpo unibody de aluminio: USB 3, una CPU que al tener dos núcleos con hiperthreading, se convierten en cuatro núcleos de ejecución, una tarjeta gráfica HD 4000 (no demasiado buena, pero es lo que hay) y un HD de 500 GB bastante lento. Dado que la máquina es capaz de direccionar hasta 16 GB RAM, pensé que en lugar de poner una CPU enorme era mejor equilibrar el rendimiento global del equipo. Así que compré un par de módulos de 8 GB y un SSD de 256 GB. En cuanto me llegó, le monté el SSD y la memoria y el rendimiento global es bastante impresionante. Evidentemente, un rMBP de 15″ tendrá el mismo rendimiento o más. Entonces ¿porqué esta?

Mis razones

El retina MBP es una máquina impresionante. Es como mirar al futuro y ver cómo serán los ordenadores dentro de cinco años. Pero mi equipo, además de mirarlo, tengo que usarlo. Y mucho. Y lo uso para dos tareas muy concretas: programar en el sofá o llevarlo a los cursos de programación que imparto. Así que casi todo el tiempo es acerca de programar. Una mayor resolución siempre es bienvenida (y ya me he quejado antes de la triste resolución máxima del MBP 13″, máxime cuando el MBA 13″ tiene 1440×900), pero entre la resolución retina y todo lo que pierdes a cambio, preferí el resto. ¿Y qué pierdes?

  • sensor de infrarrojos. No está en el rMBP. Ya no puedo usar mi mando a distancia Apple de aluminio para controlar KeyNote. Que sí, que puedo comprar uno BlueTooth, pero ya que tengo este y es sencillo de manejar…
  • indicador de batería. En el lateral del MBP 13″ hay una línea de LEDs y un botón. Lo pulsas y sin encender el equipo ves si tiene o no batería suficiente. Lo uso mucho.
  • puertos. Tengo discos FireWire que me gusta usar. Al igual que me gusta conectarme a la red con un cable Ethernet. Llámame viejo, o bien que 1Gbps siempre es más que 300 Mbps. Como tres veces más rápido y fiable. Ethernet no se «cae». O funciona bien, o se te ha quemado el switch. No hay otras calidades de servicio. Y se que tengo la posibilidad de usar el puerto Thunderbolt, en ambos equipos, pero no me gusta llevar adaptadores colgando, si puedo evitarlo.
  • posibilidad de ampliación sin hipotecarme. He podido ponerle un HD SSD y ampliar la memoria a mi MBP 13″. Al rMBP no se le puede ampliar, porque todo viene soldado.
  • mi mujer tiene un venerable MacBook blanquito de 2007. Su cargador es compatible con el mío. Nada de MagSafe2 ni historias: si pierdo el mío o explota, tengo un reemplazo de emergencia cerca.
  • pasta. El rMBP cuesta bastante más que el MBP 13″ y en mi opinión, salvo la pantalla y que pesa algo menos, no me aporta demasiado por su coste. Prefiero buscar ese MBP 13″, ampliarlo y comprar Apple Care. Y ya, para rematar el ahorro, he comprado el equipo Refurbished, con lo que te ahorras unos buenos euros.

El equipo que pienso es el que más prestaciones te da actualmente a un precio razonable es un MBP 15″ con resolución extra (1.680 por 1.050) y pantalla mate y con 16 GB RAM + SSD. Al tener una gráfica discreta, es la mejor opción. Pero quería renovar mi viejo MBP 15″ del 2008 por lo mínimo posible, y además quería cambiar de factor de forma y pasar a algo más compacto.

El rMBP 13″ me parece una buena idea, pero esperaría a una segunda o tercera versión. No tiene sentido que lleve la misma gráfica y CPU que el no retina y que por esa resolución extra tengas que pagar 498 Eur.

Cómo lo uso

Mi MBP es el equipo que uso para los cursos y salidas varias: a Conferencias, Hackathones, reuniones de la NSCoder Night de Sevilla, etc. Es muy compacto y me transmite una sensación de solidez. Arranca en muy pocos segundos (menos de 10) y todo es instantáneo. Con los 16 GB de RAM, nada hace swap y todos los procesos tienen más memoria de la que puedan necesitar. Y el acceso a disco es muy rápido gracias al SSD. El S.O. está instalado en el SSD y los datos en el HD. Todo como la seda.

Además de para los cursos, cuando puedo levantarme temprano lo uso para escribir código en Xcode / Eclipse. Y probar las Apps. Para eso, es perfecto.

Pero no todo es perfecto. Alguien pensará qué pasa cuando necesito más resolución, para trabajar cómodamente o usando Pixelmator o similares. Respuesta sencilla: para esos casos tengo mi iMac 27″ con su segundo monitor de 24″. Creo que con 2560×1440 + 1920×1080 (5.760.000 pixeles) tengo de sobra. Y pensar que mi primer AMSTRAD, en su modo de máxima resolución (MODE 2) alcanzaba 640*200 (128.000 pixeles). Eso sí, en blanco y negro, o en mi caso, en fósforo verde encendido o fósforo verde apagado 😀

j j j

La dulce espera

No, no estoy esperando un bebé. No estoy «embarazado»‘, como se suele decir en estos casos. No, espero un «niño», pero de otro tipo. Me he comprado un ordenador nuevo. Y, de nuevo, como cada vez desde que me compraron mis padres mi primer Amstrad CPC 464, cuento las horas y fantaseo pensando en lo rápido que va a funcionar el nuevo equipo, la de cosas que voy a poder hacer con el, lo feliz que me va a hacer…

Así somos los informáticos. Tontos hasta decir basta. No conozco otras profesiones en las que pase esto. No me imagino un albañil llegando por la noche a casa excitado porque en el trabajo le han puesto una hormigonera nueva y contándole a su mujer: «no veas lo bien que hace el hormigón, no hace apenas ruido, está limpita y con la pintura aún sin ensuciar, me voy a pasar toda la noche haciendo hormigón y mañana voy a grabar una comparativa con las otras hormigoneras…». Vamos, que no lo veo. En lo nuestro el salario es algo importante, pero los chismes también. Nos gustan demasiado los gadgets. Es también lo que nos ayuda a no volvernos locos, con tantos cambios (y tan rápidos).

Material para la ampliación del nuevo MBP

El Jueves, cuando  llegue el equipo, le voy a instalar algunas ampliaciones, que podéis ver en la foto. Los detalles del «mini-bicho», cuando esté montado 😀

La única «pena» que tengo: he tenido que vender mi viejo y queridísimo MBP 15″. Ha sido mi primer Mac, y ahora me está dando realmente pena deshacerme de el. Pero las cosas cambian, y hay que cambiar con ellas. Al menos se que estará en buenas manos.

j j j

El iPhone de mil pulgadas

Magic Ball. Author: http://www.flickr.com/photos/28931095@N03/2699978095/

Se acerca el lanzamiento de un nuevo iPhone. Lo puedo sentir, en los rumores que los recaudadores de adsense de esa cámara de eco que llamamos Blogosfera propagan copiándose unos a otros, sin demasiado pudor, muchas veces tirando de copy y paste. Eso sí, al final del post copiado ponen, en un tipo de letra diminuto, un enlace donde usando la lupa magnificadora podemos leer «fuente».

Es en estos días previos a los lanzamientos donde se crean nuevos rumores, o se reciclan los viejos. Total, si seguimos probando igual alguna vez acertamos y Apple saca el iPhone de 4″. Que ahora es «inevitable«. Como lo era reproducir Flash o tener almacenamiento externo y batería intercambiable cuando salió el iPhone y el iPad. Echadle un vistazo al Nexus 7 de Google y es curioso no escuchar a nadie al borde del suicidio porque la tableta cumpla religiosamente con los cánones de San Steve. Puyas aparte, y dependiendo del precio que tenga cuando se ponga a la venta en España es un dispositivo que me gustaría tener. ICS en una tableta Android es bastante chulo.

El caso es que hay dos rumores opuestos pululando por ahí. Ambos de «fuentes confiables», como pueden ser mi pescadero o mi cuñada. Ambos opuestos

Por un lado parece que el iPhone tiene la pantalla demasiado pequeña algo de lo que los millones de clientes de Apple (pobres Fanboys!) aún no se han dado cuenta y necesita desesperadamente tener 4, 4.2 o incluso 5 pulgadas. Por otro, el iPad es insoportablemente grande y pesado, con sus desproporcionadas 9.7″. Hay que reducirlo por imperativo legal a 7″.

Yo no llevo mucho tiempo siguiendo el mundo Apple. Apenas unos 5 años. Pero creo que todos estaremos de acuerdo en que Apple no se distingue por dar muchas opciones. ¿Quieres un iPhone? Lo tienes en blanco o en negro. Y punto. Es famosa la cita de Tim Cook, cuando aún no era CEO de Apple:

We can put all of our products on the table you’re sitting at. Those products together sell $40 billion per year. No other company can make that claim except perhaps an oil company.
We are the most focused company that I know of, or have read of, or have any knowledge of.
We say no to good ideas every day; we say no to great ideas; to keep the number of things we focus on small in number.

Todos los iPhones e iPads hasta ahora han tenido los mismos tamaños de pantalla. Pero parece que ahora no va a ser así, dicen los «expertos». Entonces, ¿cómo quedaría la línea de productos de Apple? Actualmente se venden el iPhone 3Gs, el 4 y el 4s. ¿Van a eliminar el 3Gs y el 4 y dejar el 4s y el nuevo «iPhone diseñado para el guante de béisbol»? Si esto es así, ¿el modelo de entrada va a ser el 4s? Si dejan el 4 y el 4s, con una bajada de precios del 4s y con la única mejora previsible de la pantalla «gorda» y quizás nueva GPU y CPU, ¿hay argumentos para comprarse el nuevo?

Y con el iPad, qué dejan: ¿iPad3 AKA New iPad, iPad2 y el iPad mini? ¿Los tres? El iPad mini este tendría la resolución del iPad 2 para no molestar a los desarrolladores? Parecería lo lógico. Lo que no queda claro es si comprar un iPad de 7″ o un iPhone de 5″, ya que estarían casi en el mismo rango de tamaños. Y tendríamos 3,5″ y 4.2″ (iPhones) y 7″ y 9,7″ (iPads). Demasiadas opciones. Goto cita Tim Cook.

De todo esto, sólo le doy pábulo a dos cosas:

  • Por un lado, es evidente que Apple va a sacar el iPhone 5, new iPhone o como lo llamen. iOS 6 anda ya por la Beta 4 y entiendo que quieran lanzar el S.O. con un hardware que le haga justicia. He visto modelos de un iPhone más delgado. Misma pantalla. Eso me lo creo. No creo que cambien el tamaño de la pantalla, porque para seguir siendo «retina» tendrían que aumentar el número de pixeles por pulgada. Eso cambiaría la resolución, que ya no sería 960×480 y «mataría» a miles de desarrolladores y diseñadores. Además de algún gatito.
  • Un iPad de 7″, con una resolución igual a la del iPad 2 (1024×768) y a buen precio (unos 299$) plantaría cara al Nexus 7 y daría mucha guerra en el segmento de abajo. Sin afectar a las ventas del New iPad. Si quieres retina y potencia, ráscate el bolsillo.
Bueno, en un mes o así veremos. Igual me tengo que comer mis palabras. O no. Esta vez, como se equivoquen de nuevo, me parece que me voy a dedicar a crear un portal que se llame: rumoresappletelodije.com, a ver si cuando se hable de las cosas, se hace con algo de criterio.

Casi a la vez, Migue en Enteratec deja su versión: «Reflexión sobre la nueva presentación de Apple y su nuevo iPhone. Nadie tiene ni puta idea.«. Más claro…

j j j

Enero 2012: Apocalipsis Maya para mis dos ordenadores Apple

Tren descarrilado. Foto de la IMLS DCC

Este Enero mis capacidades gafe han llegado a cotas insospechadas. Si no lees habitualmente este blog, igual no sabes que me pasé completamente a Mac, porque pienso que los Macs no son caros. Y que en mi escritorio trabajo habitualmente con dos equipos, mi iMac de 27″ Core i7 y mi viejo Mac Book Pro. También sabrás que anteriormente se me ha roto hardware de Apple, y que Apple me lo arregló gratis, aunque ya no estuviera en garantía.

El caso es que desde Noviembre vengo quejándome del horroroso rendimiento de Lion en el iMac. Con un Core i7 quadcore 2.8 Ghz y 12GB espero que todo vuele. Ni SSD ni gaitas. Lo tienes todo en memoria y punto. Máquina hay de sobra. Pero no era así. Y el HD hacía un ruído horroroso. No se por qué me empeñé en que el fallo era software, y probé a desactivar, reactivar y toquetear casi todos los ajustes del sistema. Instalé y quité aplicaciones para ver si encontraba a la App culpable. Incluso desactivé las copias de seguridad con Time Machine, para que no me enlentecieran el equipo. Pero nada. Lion era desesperante. Y el HD cada vez sonaba más y más. Aunque me avisaban desde Twitter que a ver si no era un problema hard, yo ni caso. Al final, instalando el programa Tech Tool Pro 6, para defragmentar el disco del iMac, me avisó de que el estado SMART del disco avisaba de fallo inminente. El estado SMART es un sistema que en teoría te avisa de un fallo futuro en el hardware del disco duro, de forma que antes de que el disco muera puedas hacer algo.

En mi caso, lo primero que hice fue copiar el HD entero en una imagen de disco (un DMG) desde la utilidad de discos. Luego llamé a Apple, a ver qué podíamos hacer. Lo primero que me dicen es que mi iMac no tiene Apple Care. Les digo que no, que yo compré el Apple Care y que el comercial me indicó que se auto activaba.  Pues no. Busqué la caja del Apple Care y lo activamos correctamente con otra llamada a Apple. Una vez comprobado que el HD daba error SMART me ofrecieron cambiarlo sin coste alguno. Incluso podía elegir a dónde llevar la máquina. Así que preferí hacerlo en Golden Mac, que para eso son el APR de Sevilla y es allí donde imparto algún curso de iOS que otro. Llevé la máquina, estuvo allí una semana y ha vuelto como nueva. He reinstalado Lion, aplicado actualizaciones y recuperado el sistema desde el DMG que creé y he continuado desde ese punto. Esta parte, tras el disgusto, ha sido fácil.

Y además tenía mi querido MBP para seguir trabajando, ¿no?. Pues no. Un Sábado estoy trabajando con el y de pronto pega un «pantallazo» y se pone en modo CGA. Los viejunos me entenderán. Pero se recupera solo, y sigue funcionando sin normalidad. Le echo la culpa al driver de vídeo de Lion, total, la culpa siempre va a ser de Lion, ¿no? Cierro el MBP y lo dejo en reposo, como siempre. El Domingo, me levanto con ganas de hacer cosas y abro el equipo. Pero la pantalla está en negro. No se ve nada. Intento todas las combinaciones de teclas y al final lo apago con un «botonazo». Arranco y no se ve nada. Además, antes de apagarlo le quité el sonido y no suena el Mac al encender. Luego no se si está arrancando bien o no. Tras varios apagados en modo Chuck Norris, decido conectarlo a un monitor externo. No Luck. No se ve nada. Pienso que es la placa base, que se ha ido al garete. Pero veo que desde una máquina windows puedo hacer ping a la IP del portátil. Luego está vivo. No suena porque le quité el sonido. Y no se ve porque la gráfica nVidia ha muerto. Busco por Internet y tras un rato me encuentro con esta página, en la que Apple reconoce un fallo en las nVidia de los MBP que coinciden con el mío. Y tienen un programa de cobertura: si el equipo tienen menos de 4 años, aunque no esté en garantía, si se le va la gráfica te cambian la placa base gratis.

De nuevo, llamada a Apple. Y paseo a Golden Mac. Recojo el iMac y dejo mi MBP. Y tras dos semanas, aquí están en mi mesa de nuevo los dos, trabajando codo con codo. He superado la «crisis hardware» mayor que he sufrido en mi vida (en casa).

Moralejas. Varias. Las cosas de Apple se rompen, como las de todos. Pero con una llamada y pulsar una tecla te atiende una persona que te informa si sí, si no, o le que cuesta. Y se hacen cargo de sus fallos. Los reconocen y los pagan. Y hay puntos de servicio por toda España. No quiero imaginarme lo que hubiera pasado con dos equipos Acer o Dell. Envío a portes debidos, mala atención, etc. Así que con Apple se paga un poco más, que en mi opinión está muy justificado por la calidad de los materiales y el soporte postventa, que es el mejor.

Y otra moraleja. Pensaba que tenía muchos ordenadores en casa. Y es verdad. Pero en una semana «murieron» en combate dos de golpe. Tuve que tirar durante una semana de mi viejo Dell 17″ (un PC transportable, más que portátil), pero que me ha sacado del apuro. Una experiencia insufrible volver a XP después de OS X, si al menos fuese Win 7… El caso es que cierta redundancia en hardware, si te dedicas a esto, nunca está mal. Lección aprendida.

Espero que ahora las cosas se calmen un poco, deje de romper cosas y pueda centrarme en crear algo interesante. Tus historias de miedo, a continuación en los comentarios. Siempre es bueno ventilar esos problemas 😀

j j j

Conferencia NSCoders Apple Conference 2011, ¡ya casi está aquí!

NSCoders Apple Conference 2001

NSCoders Apple Conference 2001

¿Cómo? ¿Que aún no te has apuntado a la NSCoders Apple Conference 2011? ¡Pues ya estás tardando! Podrás ver allí a lo más granado de las distintas NSCoder Nights de toda España. Yo voy a impartir una de las sesiones. Así que ya sabes: no hay excusa para no invitarme a un café, o a un MacBook Air, lo que te venga mejor.

Por si esto de la NSCoder te deja frío y no sabes de qué te hablo, te recuerdo que las NSCoder Nights son reuniones de programadores, diseñadores, gente interesada en el desarrollo en plataforma Apple, que se juntan en un bar a charlar, tomar unas copas, e incluso programar. En Sevilla tenemos una muy animada, a la que te invito a venir, si te pasas por la ciudad. Incluso puedes montar la tuya propia.

El caso es que la idea ha cuajado, y han surgido como setas las NSCoders. Y claro, todos queremos más. Realmente nos da envidia la WWDC, pero es que es una pasta ir a San Francisco :-D. Y aquí va a ir gente de auténtico nivel. Yo voy de relleno.

No le des más vueltas y reserva ya. ¡Es gratis!. Vente en barco, en avión o en burro, pero vente con tu Mac.

Keep coding!

j j j

El primer día de la era Post Steve

Steve en mi iPhone

Steve en mi iPhone

Es cerca de la una de la madrugada mientras escribo estas líneas. Estoy sentado, solo, en total oscuridad. Los vecinos duermen. Y la habitación se ilumina, por un lado, con la luz de la pantalla TFT de mi Macbook Pro. Por el otro, gracias a luz de la manzana de Apple. Esa manzana que todos los que amamos esta compañía reconocemos y nos hace felices. Esa misma luz que se ha apagado un poquito hoy.

Hoy es uno de esos días en los que he tenido que trabajar 12 horas. Y estoy agotado. Pero algo se mueve en mi mente, algo que tengo que expresar con palabras para poder dormir. Hoy es uno de esos días en los que estoy seguro que dentro de diez años recordaré y me vendrá a la cabeza dónde estaba cuando me enteré de la muerte de Steve Jobs. Hoy es uno de esos días en los que uno sigue trabajando, aunque no tenga ánimos. En los que se siente triste. Uno de esos días en los que ves una noticia más, y sin querer se te saltan las lágrimas.

Y habrá mucha gente que no me entienda, que se rían de mi. “¿Llorar por Steve Jobs, un tipo al que nunca conocí, un multimillonario americano?. ¡Fanboy!”. Sí. Porque Steve no era sólo alguien a quien admiraba. Era una persona que cambió el mundo. Y, especialmente, cambió mi mundo.

He contado en este blog cómo me compré mi primer Mac, este Macbook Pro que va para 4 años y sigue conmigo como el primer día. O cómo nos hemos convertido en una iFamily. O cómo dejé el trabajo que tenía para aprender a desarrollar Apps para iOS. Y de cómo he ido creando mis modestas Apps. O cómo ha nacido Café y Cocoa. Nada de esto hubiera sido posible sin Steve. No podría trabajar, como hago ahora, sentado frente a mi iMac en mi despacho de casa, haciendo algo que me apasiona y me da de comer. Ni mis hijos asumirían que todos los ordenadores se manejan tocándose, como el iPad que usan para ver sus series de Clan TV, cuando se lo quitan a su madre. Sin Steve, mi vida y mi mundo serían ahora distintos.

Y además de los cambios externos, o visibles que he podido experimentar, están las lecciones que Steve nos dejó, como su memorable discurso en Stanford. El supo expresar con palabras ideas que ya estaban en mi cabeza y en mi corazón, y que me empujaron a querer hacer un poco mejor las cosas cada día. El me motivó y me enseñó.

Por todo esto, gracias Steve. Seguiremos teniendo a tu Apple, y los maravillosos productos con los que has cambiado el mundo. Pero no te tendremos a tí. Y aunque no te conociera, eras importante para mí. Y para muchos otros.

We love you, Steve!

j j j

Creando una lista de Podcasts en iTunes

Uno de los objetivos que me planteé este año fue volver a hacer deporte de forma habitual. Sin querer convertirme en un Iron Man (aunque estaría chulo poder correr una de esas), el objetivo era incorporar el deporte de nuevo a mi rutina de vida diaria. Y lo he conseguido. Ahora salgo todas las semanas, 3 ó 4 veces, a caminar, marchar o trotar de forma suave.

Me he habituado a ir escuchando música mientras camino. Ya, ya se que la mayoría de la gente lo hace, pero es que yo era un «anti-cacharros» para correr, y me molestaban hasta las zapatillas. Pero el iPhone 4 engancha, y más si usas una herramienta de tracking como RunKeeper Pro. Durante el Invierno y la Primavera he ido con el iPhone sin problemas. Pero ahora en Verano me apetecía algo más ligero. Y mi mujer tenía tirado por aquí, sin usar, un iPod Shuffle de 2GB (rosa, eso sí). Ante tamaño sacrilegio, no tuve más remedio que ponerlo en uso y cargarlo con música.

Y todo perfecto. Pero echo de menos mis podcasts. Porque cuando antes he dicho que escucho música he mentido: yo escucho podcasts, y así aprovecho el deporte para enterarme de cosas, o entretenerme. Es la mejor radio, y la que más escucho. El caso es que en el Shuffle, que lo cargué de emergencia con un aleatorio de canciones de 5 estrellas, no había ni un podcast. Tenía que solventarlo. Mi mente ya sabía lo que quería:

«Dile a iTunes que SELECT * FROM podcasts WHERE nombre_podcast = Game Over OR Macniacos OR 85% Cocoa OR …»

El problema es que aún no he terminado el Interfaz Mente de Diego – iMac. Está en preAlpha :-). Así que tenía que pelearme con el interfaz de iTunes, que será muy intuitivo, pero para otros. Porque lo que es para mí…

Lo que sí tenía claro, es que debía ser una lista de reproducción, y luego cambiarle los criterios hasta llegar a algo como el SELECT de arriba. ¡ERROR!. Las listas de reproducción te permiten arrastrar ahí canciones para luego reproducirlas, pero no definir criterios. Lo que necesito es una nueva lista de reproducción inteligente.

Listas de reproducción inteligentes

Listas de reproducción inteligentes

Me lancé a crear la lista, pero eso de hacer que me listara todos los podcast Y que luego pusiera los capítulos no reproducidos de unos cuantos de ellos, seleccionados a mano me ha llevado unos minutos hasta comprenderlo. Sí, soy demasiado estúpido. Pero una búsqueda booleana directa me gustaría más. A mí al menos… Sin aburrir más al personal, para crear la lista he llegado a:

Configuración de la Lista de Reproducción

Configuración de la Lista de Reproducción

Ahora esto hace lo que yo quiero: me saca 10 podcasts de entre los de arriba que no estén marcados como reproducidos. ¡Bien!. iTunes 0, Diego 1.

El resultado de la Lista: los podcast que quiero escuchar

El resultado de la Lista: los podcast que quiero escuchar

Actualización 27/07/2011:

Tal y como aparece la captura de pantalla con las reglas anteriores, NO se muestran los 10 podcasts añadidos recientemente y que no se han reproducido. Sólo se muestran los 10 añadidos hace menos tiempo. Eso me ha llevado a que, por ejemplo, si me bajo 10 episodios de 85% Cocoa y otros 10 de iCharlas, y escucho todos los de iCharlas me seguirán apareciendo en la lista (aunque ya los he escuchado) porque son los últimos que he añadido. Se soluciona con una condición «Nº de reproducciones es 0», quedando las reglas:

Nuevas reglas de la lista inteligente

Nuevas reglas de la lista inteligente

Sincronizando el iPod Shuffle

El Shuffle que tengo es uno de los de primera generación. Que por cierto, son los que más me gustan de diseño. Los de la 3ª generación han vuelto a este diseño original del que nunca debieron apartarse 🙂

Si tratas de autorellenar uno de estos Shuffles desde iTunes con la lista de podcasts, una ventanita te dice que tralará:

Error Shuffle 1ª generación: no soporta podcasts

Error Shuffle 1ª generación: no soporta podcasts

Y Apple te lo deja bien clarito:

La función Autorrelleno de iTunes no añadirá audiolibros y podcasts a ningún modelo de iPod. Es posible añadirlos manualmente si los arrastras hasta el iPod shuffle en iTunes.

Así que nada de hacer las cosas automáticamente (bueno, sí puedes si te dejas la pasta en un Shuffle de los nuevos). En mi caso, la sincronización la hago en tres pasos:

  1. borro todo del Shuffle
  2. copio los podcasts de mi lista en el Shuffle
  3. y entonces que iTunes autorellene con mis canciones favoritas. No caben todas, OK, mete las que quieras
Y de esta forma, llevo podcasts y música en el Shuffle. El problema ahora es encontrar los podcasts para reproducirlos, pero esa es otra historia 😉
j j j