Archive for the ‘Programación’ Category

Ponente en la WipJam en el MWC 14

Estoy muy contento de ir este año al Mobile World Congress como ponente de una charla en la WipJam. Concretamente va a ser de Core Data (como la charla y taller que impartí el año pasado en la conferencia NSSpain). No soy yo el máximo experto en Core Data del mundo, ni siquiera de mi barrio, pero poder acudir a un evento internacional y compartir conocimiento con otros programadores me motiva bastante. Y algún proyecto con Core Data he desarrollado.

Encima, para mejorar la cosa estaré parando en la casa de Rafa Aguilar (responsable de [Objective-C.es], 3 además de programador iOS en Wallapop y crack absoluto). Y dormirá con nosotros (juntos, pero no revueltos) Luis Ascorbe, el 50% de NSSpain. Y Pedro Muñoz andará por allí con su proyecto de iBeacons… Y todos los demás amigos de Barcelona… Vamos, que no se puede pedir más.

Bueno, sí. Puedo pedir terminar de una vez la App iOS que estoy ultimando y así poderme ir tranquilo a BCN. Y acabar las transparencias a tiempo, y no en el tren, que me veo como siempre…

La comunidad de desarrollo Mac en España

He recibido un par de correos preguntándome sobre esto mismo en los últimos días. Además, es algo que me gusta comentar en los cursos que imparto sobre iOS (y en los de Android, solo que en esos hablo lógicamente de la comunidad Androide). Así que voy a resumir y reunir aquí lo que necesitas para acceder a la misteriosa y privilegiada comunidad de desarrollo iOS/Mac en España.

Sin miedos

Primero, lo más importante: si te interesa el desarrollo con tu Mac, en Cocoa, usando Xcode y Objective C ya eres miembro de esta comunidad. No ha sido tan difícil entrar, ¿no?. Como en cualquier comunidad, sólo hace falta que tengas interés, o curiosidad, o conocimientos, y que quieras compartirlos. No hay que hacer pactos con el Anticristo, ni con los bancos, ni firmar contratos con la sangre de un gallo. Cosa asquerosa, por cierto.

Puedes disfrutar de esta comunidad a distancia, usando tu ordenador e Internet, pero yo siempre recomiendo el contacto cara a cara, personal. El periodo más productivo de mi vida como programador fue cuando estudiaba la carrera de Informática. Y así lo recuerdo por el grupo de personas con las que me reunía a programar y a hablar sobre programación. Probablemente es más la sensación de que “cualquier tiempo pasado fue mejor” que algo objetivo (probablemente, no, seguro, mi código era una abominación), pero hablar con gente que sabe mucho más que tú es algo que estimula mucho, motiva y te fuerza a mejorar para no sentir que haces el ridículo entre ellos.

Aunque eso nunca pasa: nadie, nunca, se va a reír del que no sabe. Lo que hará es ayudarle. Así que destierra ese miedo de tu mente, esa pesadilla que alguna vez has tenido: nadie se va a levantar, en medio del bar señalándote y gritando “mirad al pardillo este, que no sabe nada de nada”. Si alguien actuara así es causa objetiva para que te tatúen tonto en la frente, y de no ser parte de esta comunidad.

Blogs

Pongo aquí una lista de los mejores blogs de programación Cocoa en Español que conozco y leo. Debe haber más: apórtalos en los comentarios. Siempre son bienvenidos. Van sin un orden concreto, salvo Objective-C.es, el blog de Rafa, claro ejemplo de superación personal y, como se que al final acabará en Apple, le voy haciendo ya la pelota para que pase mi CV cuando llegue el momento.

Reuniones periódicas

Aquí tenemos las reuniones que se tienen en distintas ciudades de España, con distintas periodicidades. Si no tienes ninguna cerca siempre puedes animarte y fundar la tuya propia. Sólo necesitas a una segunda persona interesada en lo mismo.

Todas estas reuniones tienen su propio Twitter. Busca y ponte en contacto con ellos.

“La” Conferencia

La conferencia de la comunidad Cocoa Española, el sitio al que hay que ir es la NSSPain. Es una conferencia internacional (luego es en Inglés), pero es la que más cerca vas a encontrar con mejor contenido. Yo me he hecho fijo en el primer año.

Twitter

Hay montones de gente interesante a la que seguir. Te recomiendo que sigas por twitter a los blogueros anteriores y que mires a quiénes siguen. Es la forma más rápida.

Preguntas y respuestas

El portal NSCoderCenter es lo que buscas

Pull request

Si quieres que incluya un apartado, o quieres completar todo esto con más información, usa los comentarios más abajo. Gracias.

Curso gratuito iOS en Cádiz AKA ayudando a la comunidad

Ser awesómico es la marca de la casa de David Bonilla. Montar movidas guapas la de Jorge Galindo. La mía, probablemente, es ponerse palote con cualquier trozo de código.

El caso es que, por culpa de David y su #weareatwar se están haciendo cosas y hay gente predispuesta a hacer cosas que antes no se nos hubieran ocurrido. Está dinamizando a la comunidad TI española que quiere escuchar. Esas son las razones que han llevado a Jorge a dejarse liar (aunque para liar a Jorge tampoco es que tengas que esforzarte mucho) y pegarse el curro de cargar con todas las tareas necesarias para que yo pueda llegar a Cádiz e impartir este curso. Lo explica muy bien en su blog.

Yo quería contar aquí el porqué de esta iniciativa. Cómo es que un camarada mercenario como yo deje el vil metal de lado y decida pasar un fin de semana en Cádiz hablando de desarrollo iOS.

La primera razón es que tampoco es tan malo como parece. Cuando tu trabajo te gusta tanto como a mi, estar hablando de desarrollo y programando es casi lo mismo que haces para divertirte. Así que tampoco es tan dura la cosa. Cierto es que a mucha gente la perspectiva de impartir 20h de curso entre Viernes, Sábado y Domingo frente a un grupo de 15 personas le aterraría. Bueno, a mi me aterra la contabilidad. Todos tenemos limitaciones (yo, muchas).

Pero esto es algo que me lleva dando vueltas en la cabeza desde el año pasado. La idea de que somos pocos informáticos, de que es una carrera / estudios que se cursan poco. De que los que estamos cada vez somos más viejos. Que hay pocos chavales. Y chavalas, ni te cuento. Y no es bueno. Pensando en la ley de Oferta y Demanda, cuantos menos seamos, más pasta y trabajo para los que quedemos. Pero la realidad es que la demanda crece muy muy por encima de la oferta, y esto va a seguir así en el futuro. No sólo son los móviles. Son los wearables. Son los edificios conectados. El Internet de las cosas. Los coches. Todo. Todo necesita un ordenador conectado y Apps para eso. Las TVs. Las nuevas consolas. Y no hay manos para todo este trabajo.

Y cuando nos vienen los agobios uno se dedica a vampirizar la comunidad. Copiamos código de Stack Overflow. Usamos librerías de Github. Preguntamos en nuestras reuniones (como la NSCoder Night de Sevilla). Nos pasamos trabajo unos a otros. Escuchamos podcasts. Nos seguimos en Twitter. Nos vemos en las conferencias. La comunidad nos motiva y nos enseña. La necesitamos para ser mejores programadores.

Esta es la segunda razón por la que he querido poner este granito de arena: ampliar la pequeña comunidad iOS / Cocoa en Andalucía. Y, de paso, ayudar en lo que pueda a una de las zonas de España con más paro, en lo poco que pueda. Ojo, que no soy Teresa de Calcuta. Pero muchas veces no hacen falta grandes gentos: con ser un poco mejor cada día y dar la mitad para tí y la mitad para los demás, basta.

Así que ya sabes. Si estás parado y sabes programar, o eres estudiante (que, por definición, está parados a no ser que seas tonto como yo y trabajes mientras estudias, forma perfecta de no acabar la carrera) intentaremos meterte en una de las 15 plazas del curso de desarrollo iOS que vamos a impartir en Cádiz. Todos los detalles aquí.

Espero dar un curso awesómico, que sea una movida tan guapa que todos nos pongamos palotes.

Notación Húngara: contrapost

¿A quién no le gusta una buena polémica?

Polémica Tuitera

Esta semana en Twitter Sendoa Portuondo planteó una conversación bastante interesante sobre si era conveniente (o estaba de moda) usar prefijos en las variables de nuestros programas Objective-C. Mi respuesta fue que, a veces los usaba. Especialmente uso los prefijos para los IBOutlets, de forma que puedo completar el código rápidamente (o encontrar un Outlet sin tener que hacer un viaje al@interface correspondiente.

Fernando Rodríguez (Cocoa Mental, Big Nerd Ranch, super Bad-Ass Master of the Universe) argumentaba totalmente en contra y ha escrito un artículo en Cocoa Mental al respecto. Normalmente estoy de acuerdo con las cosas que publica Fernando, más que nada porque voy al blog a leer para aprender y puedo aportar poco. Pero en este tema concreto (el uso o no de prefijos para identificar qué es una variable), no estoy de acuerdo.

Sus argumentos, que he visto esgrimidos en muchos sitios, se basan en la horrenda interpretación que se hizo de la Notación Húngara propuesta por Charles Simonyi. Nadie lo explica mejor que Joel Spolsky en el artículo Doing it wrong, pero por si no tenéis ganas de leerlo (mal!, dejad en este momento todo esto y leed el blog de Joel de cabo a rabo), voy a intentar explicarlo.

Notación Húngara

Si lees el paper original de Simonyi, encontrarás que la idea que presenta es: “pongamos el qué es de una variable en el prefijo, de forma que sepamos de qué estamos hablando al usarlo luego”. Probablemente por no ser el Inglés su lengua materna Simonyi usó la palabra type. Pero no se refiere al tipo que el compilador asigna a una variable, sino a su forma, características, esencia, chi o como lo llames. Su Kind. En un párrafo hablando de cómo prefijar cantidades (índices, filas, etc.) podemos leer:

Quantities are named by their type possibly followed by a qualifier. A convenient (and legal) punctuation is recommended to separate the type and qualifier part of a name. (In C, we use a capital initial for the qualifier as in rowFirst: row is the type; First is the qualifier.)

Si os fijáis atentamente, para dar nombre aquí a una variable que representa una fila, la llama *row_First, y no longFirst o intFirst. Es decir, usa _qué_ es esa variable y no el _tipo_ de nuestro lenguaje elegido para representar a ese elemento. Los grandes detractores de la notación húngara han visto código escritos por otros que no la han entendido y que les obligaban a hacer tonterías como:

int *ptrFirstNumber;        // ¡ya sabemos que el tipo es un puntero a int!
char *strName;              // con leer la declaración, basta...
NSString stringAddress;     // esto es de nota

Apple Will Never Do That

Por cierto y como nota inocente. Dado que esto lo extendió Microsoft y dado que Apple nunca se equivoca, Cocoa es elegante, etc. etc. en Cocoa no encontraremos nunca esta horrible notación, ¿no?. Bueno, no esta, sino notación húngara a la inversa (HungarianNotation^-1): usando sufijos en los tipos. Por ejemplo estas cositas:

AboutViewController *vc;    // ¡ejem! Ya sabemos que vc es de tipo "Pantalla About". 

¿Pero realmente es necesario poner “ViewController” al final de un tipo que extiende de UIViewController? Ya puesto así, que se llame AboutViewControllerUIResponderNSObject, y vemos todas las clases de las que hereda, ¿no?. ¡Error!.

Aquí Apple está marcando en el nombre de la clase qué es, y no su tipo. Para Apple, un ViewController es una pantalla en un programa iOS. Fijáos que el sufijo no es UIViewController, que sería el tipo. Además, sólo leyendo AboutViewController no sabes si es un UIViewController, un UITableViewController, … lo que sí entiendes es que es una pantalla.

Hungarian Notation at its best!

Un ejemplo, que me duermo

Quiero cerrar con un pequeño ejemplo. Supongamos que tenemos una clase que nos devuelve Usuarios (de un servicio web o una BD). Es la clase Users. Esta clase dispone de dos métodos:

+ (NSDictionary *)allUsers;
+ (NSDictionary *)allUsersOrderedByName;

Los nombres de los métodos son autoexplicativos. Usamos un diccionario en el que buscaremos usando una clave (en este caso, el nº de usuario).

Si en mi código, más adelante, quiero guardar estos dos diccionarios (uno está ordenado por los valores de sus claves, que ya que estamos es la forma de ordenar un diccionario, el otro no) podría usar Hungarian Notation Dark Side Style, la criticada por Fernando:

NSDictionary *dictionaryAllUsers = [Users allUsers];
NSDictionary *dictionaryAllUsersOrdered = [Users allUsersOrderedByName];

Aquí, el ver que son un NSDictionary no me aporta nada. Es una tontería redundante poner estos prefijos. Mucho mejor usando Hungarian Notation Luke Style:

NSDictionary *listUsers;
NSDictionary *orderedListUsers;

Aquí usamos qué es para nosotros estas variables, qué representan en el flujo del programa. Son listas de usuarios. Que utilizaremos para mostrar en pantalla, buscar o lo que sea. Me da igual su tipo. Pueden ser NSDictionary, NSArray, un tipo propio, un B-Tree… Lo que me interesa es comprender de un vistazo que a) son listas y b) una de ellas viene ordenada.

Conclusión

Así que, sí, estoy de acuerdo con Fernando en que poner el tipo del compilador al identificador de una variable es una chorrada. Pero eso no es Notación Húngara. Es la mala interpretación que se hizo de ella. La Notación Húngara tal y como se definió es valiosa.

Vale, pero al final, ¿tú lo usas?

Pues creo que sí. Pero no de una manera consciente. Este tipo de discusiones, que algunos obsesionados por “hacer que funcione” verán como una pérdida de tiempo son las que nos permiten aprender y entender por qué hacemos las cosas como las hacemos. Es lo que nos hace Informáticos. Que no Ingenieros. Los Ingenieros no entenderían esto :-D. Pero esta polémica la dejo para otro post.

iOSDevUK 2013: retrospectiva personal

Otro año más esperando en la estación de tren de Aberystwyth para irme definitivamente. Otro iOSDevUK más al que acudo (y van tres seguidos). Creo que soy el más pesado de los delegados internacionales de esta conferencia. Tanto, que necesitaban a un guiri representativo de la conferencia en la radio de Gales y Chris (el organizador de la conferencia) tuvo la idea de invitarme para hablar sobre Apps. A las 6:30 de la mañana. Sí, están puestas las calles y las emisoras de radio a esas horas.

Chris Price en la Radio de Gales

Chris Price en la Radio de Gales

Mi balance de la conferencia, como el de otros años, es: awesome.

Pero este año se han añadido varios factores que me han hecho disfrutar de la estancia como nunca.

  • Debido a los cambios que estoy realizando en múltiples aspectos de mi vida, este año he venido muy relajado y con una clara mentalidad: aprovechar el momento al máximo. Suena a cliché barato, pero la realidad es que muchas veces sale uno de viaje y en lugar de disfrutar las cosas buenas del viaje te dedicas a quejarte por las inevitables incomodidades y, por un lado a recordar lo bien que estabas en casa y por otro a estresarte por todo el trabajo que te espera a la vuelta. La verdad, para tener este estrés, casi mejor no viajar ¿no?. Pues este año no ha sido así: he podido hacer muchas cosas, y en cada momento he estado completamente presente y disfrutando de lo que hacía, ya fuera conversando con otros compañeros, comiendo, paseando, bebiendo cerveza o corriendo.
  • he venido con un viaje mucho mejor organizado. Para mi, la mejor ruta es avión Málaga – Birmingham y desde el aeropuerto tren directo a Aberystwyth. Nada de conducir desde Londres como el primer año con Fernando Rodríguez o de pasarme la noche vagando por Nottigham como el segundo año tras llegar al East Midlands Airport. Si el viaje es más descansado, lo tienes claro y la ruta es conocida todo va bastante mejor. Además, me he dado montones de tiempo entre las conexiones tren – avión. Tiempo en teoría muerto (aunque el tiempo es el que es, todo depende de lo que tú haces con el; es decir, que lo matamos nosotros, no viene muerto de serie). Esta vez me he dedicado a leer y escribir. Well done.
Compañeros de carreras

Compañeros de carreras

Más corredores

Más corredores

  • ha sido la primera vez que he podido / querido hacer deporte. Además, he podido contar con compañeros que me han ayudado en los momentos difíciles, cuando ves que tu barriga te impide subir la colina. Gracias a Sebastián, Pedro y Raimón he podido correr por bosques de cuento viendo a los conejos correr a esconderse, y trepar a acantilados a ver el pueblo desde arriba. O perdernos por caminos en los que los helechos me llegaban a los hombros (lo que es fácil con mi altura por otra parte, pero aún así…)
  • he disfrutado las noches en el pub mucho más que nunca. Tanto en el Varsity como en el Pier Royal, han caído muchas pintas de Carling y varias de sidra Strongbow. Y muchas conversaciones muy interesantes sobre trabajo, programación, tecnología, chistes, la forma de vida de cada uno… La culpa de esto ha sido el rat pack que hemos formado, con gente como Fernando Rodríguez, Antonio, Pedro, Javier, Sebastián, Raimón, René, Petteri, …
Comer fruta en una conferencia: achievent unlocked

Comer fruta en una conferencia: achievent unlocked

  • he dormido algo menos, pero no lo he echado tanto de menos. Y quitando el último día, en el que he prescindido de dietas, he comido bastante bien y de forma muy razonable.
  • las charlas a las que he asistido me han inspirado, ayudado, enseñado, me han hecho pensar y tomar decisiones. El taller de Core Data fue de una calidad y nivel espectacular. iOSDevUK es un evento especialmente enfocado en los desarrolladores indie (entre los que no me encuentro, ya que no vendo mis productos, hago cosas para otros como freelance) y me ha vuelto a entrar el gusanillo de publicar mis Apps y volver a intentar vender mis ideas. Tengo miedo al rechazo, a crear aplicaciones feas y horribles que nadie quiera. La única forma de vencer esto es escribir código, construir cosas y publicarlas. Y ver qué pasa entonces.
  • He conocido a gente increíblemente inteligente, brillante, divertida, humilde. En estos sitios siempre eres el retrasado de la clase. Lo cual es muy bueno: tienes ganas casi de llorar cuando ves a Alan Cannistraro preguntando cosas a Marcus Zarra. Pero esta impotencia y sentimiento de soy tonto es lo que nos anima a continuar aprendiendo.
  • he visto algo más de esta maravillosa ciudad. Creo que ya casi se pronunciar su nombre correctamente. He ido en el tren de vapor al Valle de Rheidol, he vuelto a pasear por sus calles y he visitado el museo de Gales. Y me he comprado un libro del Canal Historia sobre la Primera Guerra Mundial como autoregalo. No se puede pedir más.

En mi caso tras el iOSDevUK 2013 vuelvo aún más motivado a seguir aprendiendo, pero sobre todo, quiero escribir líneas de código. Tengo ganas de programar.

Y en una semana me voy a Logroño, a disfrutar del Evento iOS internacional que desesperadamente necesitamos en España: NSSPain. ¿Te lo vas a perder?

Borrar un AVD que se niega a morir

Al intentar borrar un AVD (la configuración de un emulador de Android, conocido como Android Virtual Device) me he encontrado con este mensaje:

AVD no se puede borrar

En este caso, he tenido claro desde el principio cual era el problema sin consultar con StackOverflow. Había lanzado ese AVD antes y se había colgado. Y pensé que seguramente había dejado algún fichero indicando que el emulador estaba en marcha, y por eso ahora al intentar borrarlo pensaba que seguía encendido.

Nada que un poco de Terminal no pueda arreglar. Debemos ir, en una terminal, a la carpeta .android/avd que está dentro de nuestra carpeta $HOME. En mi caso, como mi usuario es dfreniche, la carpeta está en la ruta:

/Users/dfreniche/.android/avd/

Para llegar a ella, usamos a nuestro viejo amigo cd:

cd /Users/dfreniche/.android/avd

Una vez allí, veremos una carpeta por cada AVD que tengamos creado en Eclipse. Si hacemos ls:

Tesla:avd dfreniche$ ls -al
total 24
drwxr-xr-x   8 dfreniche  staff  272 22 ago 12:58 .
drwxr-xr-x  17 dfreniche  staff  578 19 ago 19:41 ..
drwxr-xr-x  12 dfreniche  staff  408 22 ago 12:58 Intel.avd
-rw-r--r--   1 dfreniche  staff  114 22 ago 12:58 Intel.ini
drwxr-xr-x  11 dfreniche  staff  374 20 ago 06:48 Nexus4.avd
-rw-r--r--   1 dfreniche  staff  116 19 ago 19:32 Nexus4.ini
drwxr-xr-x  10 dfreniche  staff  340 22 ago 11:22 Nexus4_API4.3.avd
-rw-r--r--   1 dfreniche  staff  130 20 ago 06:47 Nexus4_API4.3.ini

Podemos ver que los terminados en .avd son carpetas (en los atributos empiezan con una d de directory) mientras que los .ini son ficheros normales.

Si entramos en el AVD problemático (en este caso, Intel.avd) con un cd Intel.avd y hacemos ls veremos unos cuantos ficheros sospechosos acabados en .lock.

Tesla:Intel.avd dfreniche$ ls
cache.img       hardware-qemu.ini.lock  userdata-qemu.img.lock
cache.img.lock  sdcard.img      userdata.img
config.ini      sdcard.img.lock
hardware-qemu.ini   userdata-qemu.img

Con borrar estos ficheros, basta: rm *.lock

Tras esto, Eclipse nos dejará borrar tranquilamente el AVD desde su interfaz:

AVD arreglado para ser borrado

AVD arreglado para ser borrado

La NSSpain

NSSpain logo

La NSSpain es una conferencia dirigida a programadores Cocoa, tanto iOS como Mac. Al final, todo lo que empieza por NS* viene a ser un aviso del estilo de esto va de programar con el lenguaje ese raro de los corchetes. Por cierto, la insistencia en el prefijo NS (como las NSCoder Night) viene del S.O. NextStep donde se gestó el framework Cocoa y donde estuvo mantenido en crio sueño hasta su popularización, primero en el mundo Mac y luego definitivamente gracias al iPhone.

La NSSpain va a tener lugar en Logroño (La Rioja – España), aunque es una conferencia internacional. Viene gente de diferentes países y los ponentes son nacionales (los menos) y muchos extranjeros. La lista de ponentes es excepcional (dado que yo soy la excepción que confirma la regla) y van maestros como Fernando Rodríguez, de AGBO (el gran Jedi Master Cocoa) o Alfonso Alba (mi maestro Git, que me hizo abrir los ojos y cuyo curso de Git no deberías perderte si en 12 h quieres enterarte al fin de qué va Git). Por el precio que tiene la NSSpain es un regalo, viendo la gente que viene.

Se desarrolla íntegra en Inglés (por aquello de que es internacional).

<English-fear-rant>

Acabo de sentir una conmoción en la parte cateta de la fuerza “¡oh, Dios, mi Inglés no es lo suficientemente bueno para enterarme de las ponencias! Es más, todos se van a dar cuenta y se van reír de mi. Me sacarán al escenario desnudo a leer trabalenguas, y finalmente vendrá Godzilla y me arrancará la cabeza”. Vamos a ver, que se va a estar hablando de punteros, bucles, bloques, objetos… que nadie se va a poner a declamar a Shakespeare. Que con un vocabulario mínimo puedes perfectamente seguir una de estas charlas. Hay que perderle definitivamente el miedo al Inglés: es el primer lenguaje que debes aprender si quieres programar.

</English-fear-rant>

Así que este Septiembre nos veremos allí (del 16 al 19). Yo acudo como ponente (tras varios intercambios de correo, logré engañarles y hacerles creer que podía impartir una charla con cierto criterio; ahora lo malo es que hay que impartirla). En mi caso, voy a actuar dos veces: el día previo a la conferencia, con un taller de Core Data fundamentos, para explicar lo necesario (y algo más) para funcionar con Core Data. El primer día de la conferencia, vuelvo hablando de Core Data con algunos trucos avanzados, librerías y utilidades que suelo usar para mis proyectos.

Y claro, como en toda conferencia, además de los ponentes lo mejor suele ser la gente, la comunidad Cocoa. Gente que conozco físicamente o sólo por Twitter, pero que aprecio y respeto, de la que siempre aprendes y con la que quieres estar. No me voy a poner a nombrarlos uno a uno, porque sería una pesadez y de todas formas les voy a ver allí.

Lo que me lleva al último punto: que nunca he estado en Logroño. Así que este viaje me va a permitir ver algo (supongo que no mucho, que yo se cómo son estas cosas luego) pero al menos darme un paseo por la ciudad y tomarme un café en el centro, que es lo que me gusta.

Ya sabes: Logroño está cerca de todos lados (al menos, más cerca que Cupertino para muchos), el precio es de risa comparado con lo que vas a aprender, conocerás a gente alucinante y te lo pasarás pipa con personas que te entienden cuando les hablas excitado de programación. No como tu pareja, que te escucha y asiente, pero que realmente no sabe de qué le hablas.

Nos vemos en la NSSpain.

Volver a empezar

No, no me refiero al hecho de que dijera que tenía que escribir más y leer menos, y luego no he escrito desde hace meses. Me refiero a que tengo que volver a empezar a programar, después de tres semanas largas de vacaciones totalmente desconectado de un teclado. Y me cuesta.

Programar es como cualquier otro trabajo / afición. Es igual que correr, o escribir en tu blog (si lo haces, claro, no como yo ahora) y supongo que será como tocar un instrumento. Cuanto más practiques, mejor sabes hacerlo. Y más sencillo te resulta, con lo que tienes más ganas de volver a ello. Y practicas otro montón. Se crea ese círculo virtuoso que habrá sentido todo el que, tras tres semanas de correr de forma regular, siente la adicción a las endorfinas. Por cierto, que esa es otra cosa que tengo que volver a empezar a hacer…

Recientemente he leído varios artículos sobre cómo aprender a hacer cosas mucho más rápido. Todos estos artículos tienen una idea común: practica mucho, “comprime” en el mínimo tiempo posible la práctica de un año de formación normal y obtendrás los resultados de un año de experiencia. Siempre he sido reacio a esta idea, y he pensado que aprender las cosas lleva su tiempo. Pero, ¿y si estoy equivocado, y con una forma distinta de ver las cosas puedo aprender un lenguaje nuevo de programación, tocar un instrumento, correr mejor o aprender un idioma más rápido? Este verano, voy a hacer algunos experimentos sobre la forma en que hasta ahora he tratado de aprender las cosas. A ver cómo me va.

Y eso me devuelve a la idea inicial: que tengo que ponerme de nuevo a programar. Pese a lo que puedan pensar los que quieren aprender a programar, a todos nos cuesta, a los que empiezan o a los que llevamos algo más de tiempo. Siempre cuesta empezar. Lo bueno, es que como dijo Pitágoras de Samos, “el principio es la mitad del todo”.

¡Así que, menos llorar, y más programar! (Empecemos procastrinando viendo vídeos de la WWDC 2013, cuando vuelva a estar operativo el portal de Apple para Desarrolladores, claro :-) )

Mi participación en la 7ª Betabeers de Sevilla

Hablando en la Betabeers de Sevilla

Hablando en la Betabeers de Sevilla

Hace ya algunos días (concretamente el pasado 24 de Enero) se celebró en Sevilla la séptima Betabeers SVQ. Estas Betabeers, para quien no lo sepa (yo entre ellos no hace mucho) son reuniones de informáticos con diversos intereses, en las que se exponen temas y en los que su punto fuerte es el networking que se puede hacer. Es decir, que conoces a un montón de gente, lo cual te puede servir para que te echen una mano si estás atascado en un problema, para no sentirte solo siendo el único programador Clojure de tu ciudad, para encontrar empleo (si te sabes vender), buscar compañeros para un proyecto o, por qué no, contratar a alguien.

Los orgaizadores tuvieron la amabilidad de invitarme y brindarme la posibilidad de hablar sobre cómo iniciarse en el desarrollo iOS. Acostumbrado como estoy a estar siempre hablando de lo mismo a veces pienso si no seré un pesado y que todo el mundo ya sabe programar para iOS. Pero parece que no, así que aproveché para contar cómo empezar en esto de iOS y, ya que estaba, para promocionar la NSCoder Night de Sevilla (nuestra reunión de programadores Cocoa en Sevilla). Espero que la charla en sí gustase y fuera instructiva. Divertida, a juzgar por las risas lo fue. Si he atraído al lado correcto de la Fuerza a unos cuantos Sith me sentiré satisfecho.

Ambiente en la Betabeers

Tras las charlas (en esta ocasión también nos hablaron de cómo dar de alta bugs en Debian y de cómo realizar activismo social en Internet, charlas ambas muy interesantes y recomendables, como sus ponentes, @amayita y @edipotrebol) se retiraron las sillas y, ya todos de pie en corrillo, empezó la parte de “beers” de la reunión. Al estilo de una reunión de autoayuda, nos fuimos presentando y contando cada uno lo que hacemos. Es una buena manera de romper el hielo y conocer de un vistazo a gente con intereses similares a los tuyos.

Y tras estas primeras cervezas “de fogueo” nos fuimos a una cervecería donde, por un precio muy bueno salimos ciegos de comer y beber. En mi caso, Coca-Cola, que tenía que conducir. Soy un triste, ya lo sé…

Si quieres ver el ambiente, aquí hay un montón de fotos del evento.

Cosas que me han sorprendido

No tenía expectativas creadas, ya que era la primera Betabeers a la que iba en mi vida. Pero me esperaba una reunión pequeñita de programadores locales. Todos hombres. Varias sorpresas:

  • de pequeñita, nada. 70 personas es una reunión con nombre y apellidos. Esto no lo “juntamos” en una NSCoder Night ni pagando.
  • de local, nada. Allí había gente que ahora vivirá en Sevilla, pero que era de toda España. Esto me lo esperaría en Madrid o Barcelona, pero uno tiende a seguir pensando en Sevilla como un pueblo… el más bonito del mundo, eso sí :-D
  • multinacional. Había gente de otros países. Los había incluso que no hablaban Español, lo cual siempre da pie a una charla en Inglés. Esto es muy bueno, porque nos aporta la experiencia y puntos de vista de fuera.
  • había mujeres. Sin ir más lejos, Amaya que habló de Debian. Quien me conoce sabe que me da igual cómo seas, siempre que sepas hacer bien tu trabajo. Pero es raro encontrarse con mujeres en nuestro sector (una pena, esto parece un seminario). ¡Pero con mujeres que hablen de Debian!. Eso es para nota. Si llega a abrir una bash entro en shock… Aunque esto cada vez me pasa menos: en las últimas conferencias en las que he estado (especialmente en el iOSDevUK) he conocido a cada “mónstrua” que te deja pensando: “¿y ésta de dónde saca tiempo para meterse todo eso en el cerebro?”.
  • muy, muy bien organizado todo. El sitio, la división en tiempo, la forma de facilitar el networking

Resumiendo este rollo: volveré, como dijo Schwarzenegger en Terminator.