dic 30
Reloj. No marques las horas. Que el 2011 se acaba... Foto de Flickr. Click para ver original

Reloj. No marques las horas. Que el 2011 se acaba... Foto de Flickr. Click para ver original

El otro día, mientras buscaba siguientes acciones y repasaba tareas en mi sistema GTD (en el que uso Things e iCal entre otros) me encontré con una tarea titulada: “Escribir post resumen año”. Era del año pasado. GTD, pese a lo que mucha gente piense te hace ser más productivo pero no te permite “hacerlo todo”. Te centras en acabar aquello que es realmente importante. Y hay cosas que pueden quedar aparcadas. Estas cosas aparecen en las revisiones, que para eso están. Lo importante: hacer primero las cosas importantes. Las otras, a veces no son ni necesarias.

El caso es que este año sí que quiero cumplir e instaurar una costumbre. Cada año quiero, en Enero, plantearme una serie de retos, de objetivos, de propósitos, de cosas a cumplir. Revisarlas durante el año, para ver si voy cumpliendo, y luego, en Diciembre, echar la vista atrás. Para mortificarme con las cosas no conseguidas (que será lo más normal, dada la tendencia que tenemos a autoflagelarnos), pero para disfrutar igualmente con aquello que nos planteamos hacer y hemos hecho. Nos merecemos una auto-palmadita en la espalda cada vez que hacemos algo bien. Y muchas veces, cuando conseguimos algo que nos ha costado sangre, sudor y lágrimas no dedicamos ni cinco minutos a sentarnos, reflexionar y disfrutar de ese pequeño triunfo. Así que escribiré posts resumen de cada año a partir de ahora.

Nota: además, me empujó a ello que Xelecto había escrito el suyo.

Este año realicé la revisión del 2010 en Febrero del 2011, un poco tarde. Pero los propósitos de año nuevo los llevo apuntando en una libreta desde Navidades de 2009. Así que este año es la tercera vez que los preparo. Y, al menos a mí, me funcionan. Me ayudan a saber por qué me levanto cada mañana, qué quiero conseguir, qué es realmente importante. No apunto cosas como “ser feliz”. Si considero que para ser feliz tengo que visitar, al menos una vez en la vida la India, entonces el objetivo será hacer un viaje. Que se descompondrá en tareas, claro: conseguir pasta, actualizar el pasaporte, buscar vuelos… Pero todo empieza con plantearte qué quieres. Que no es fácil. Si te preguntan “¿qué necesitas para sentirte mejor?” veréis que no es sencillo responder a esta pregunta.

Resumen del 2010 2011

2011 ha sido un año “montaña rusa”. Comencé el año publicando dos mini aplicaciones en la App Store (que, por cierto, tengo abandonadas; ahora les toca). Y con muchas dudas. Dudas sobre si debía volver a trabajar por cuenta ajena, sobre si me había equivocado, sobre si daba la talla, sobre si podría aprender. Cocoa no me entraba en la cabeza. Problemas de salud de mi padre. Estaba amargado. Enero y Febrero. Malos tiempos.

Como estaba pensando demasiado y programando poco, me lancé a una “orgía” de impartir formación: cursos de Java de todos los colores: básicos, avanzados, de Java EE, de preparación para las certificaciones, de frameworks (Struts2, JSF). Hasta impartí un curso de programación en C (que, por cierto, disfruté como un enano). Me metí una sobredosis de trabajo, para sacudirme las tonterías de encima. Y funcionó. Incluso pude desarrollar una App para iPad (la primera). Y volví a escribir para una revista, con pequeñas colaboraciones en forma de columna (iPhone World). Lógicamente, se cumplió la Ley DFreniche del agobio en el trabajo: “las mejores ideas para programas se te ocurren justo cuando no tienes tiempo para programar” (Citation needed).

Llegó el verano. Me fui de vacaciones. Y me picó el bicho del freelancing de nuevo. No quería trabajar para nadie. Esto iba a funcionar. Era capaz de todo. ¡Voy a ponerme la capa y los leotardos, puedo volar!. Me ayudaron varias cosas a volver a tener ganas. Primero, facturar, que siempre se nota. Sentirme útil. Ser capaz de hacer la App de iPad. Y ser contactado por varias empresas que querían contratarme, en base a mi perfil en LinkedIn. Muchas de ellas, muy interesantes. Que alguien considere contratarte, tal y como están las cosas, es señal de que algo estás haciendo bien. O eso, o mientes maravillosamente :-)

Encima en Agosto pude comenzar a programar para WebOS y aprender JavaScript. He disfrutado / sufrido con el desarrollo, pero he aprendido mucho. Y en Septiembre acudí al iOSDevUK, una experiencia fantástica. Lo mejor: conocer un trocito de Gales y estar con Fernando y Bernardo. Y luego vino la conferencia NSCoder ES en Vilanova i la Geltrú. Y empecé a grabar Café y Cocoa. Y ahora José Antonio Blanco me deja hablar con él y otros cracks como él de vez en cuando en We.Developers. Y me entrevistó Luis-Philippe. Y estoy preparando varias Apps para iOS. Y he escrito dos artículos para MacWorld. Y…

Muchos proyectos, muchas cosas terminadas en lo profesional. Y en lo personal. Me planteé este año acostumbrarme a hacer deporte, y se ha convertido en un hábito. Si paso 3 días sin correr / caminar me siento mal. Ya lo que me cuesta es no hacer nada. Me planteé perder peso, y eso lo he conseguido a medias (he recuperado parte del peso, los mantecados). Pero no me preocupa, mientras siga haciendo deporte. Me fijé como meta correr la nocturna del Guadalquivir y lo hice, aunque acabé bastante mal :-D . Y de propina, me caminé 23 Km. en el Homenaje a la 101 de Ronda, que repetiré en 2012.

Y claro, otras muchas cosas no las he conseguido. Hay defectos personales en los que tengo que trabajar. Y un proyecto se convirtió en una pesadilla horrible, de lo peor del año. Este año me gustaría leer libros no de informática, para variar. E insistir en hacer lo que sea preciso para conseguir cumplir mis sueños. Tengo suerte de tener la mujer y la familia que tengo, de ganarme la vida con una profesión que me apasiona, de tener amigos de verdad y conocer a un montón de gente interesante. Es hora de devolver, en forma de trabajo bien hecho, de esfuerzo y de responsabilidad. Y de alegría.

Feliz 2012. Puedes hacer que este año sea como tú quieras. No te resignes. Yo no lo voy a hacer.

dic 13

Llevo usando una tablet TouchPad de HP desde mediados de Agosto. Si, si, justo esa: la que HP comenzo a vender con WebOS a precio de iPad, que luego rebajó y acabo poniendo a precios de saldo, casi suplicando que se la quitaran de las manos. Esa que esta en estado de zombie: es un no-muerto que camina. Esa que el anterior CEO de HP, Leo Apotheker (un genio en esto de quebrar empresas, por lo visto) decidio cancelar de un plumazo, dejando a propios y extraños con cara de tontos.

El caso es que en Agosto me propusieron desarrollar algunas Apps para WebOS, el S.O. de la TouchPad. Y no pude negarme. La idea de aprender un nuevo lenguaje (JavaScript), con un framework de desarrollo desconocido (Enyo) sobre un S.O. del que habia escuchado maravillas (pero nunca había probado) y poder cacharrear con un nuevo chisme me hicieron aceptar sin pensar. La unica condicion que puse era poder disponer de un dispositivo real sobre el que probar, y poder quedármelo. Y así ha sido: ahora soy el orgulloso propietario de una TP de 32 GB, con la que estoy muy contento.

En tres meses he desarrollado tres aplicaciones que ya estan en la tienda de aplicaciones de HP para la TouchPad (HP App Catalog). Por motivos de acuerdos de confidencialidad no puedo decir cuales son. Busca las tres mas bonitas, y esas son las mias :-) . Por si alguien no lo ha pillado, repito: en tres meses, partiendo desde conocimientos nulos en todo (S.O., lenguaje, framework, herramientas) tres aplicaciones acabadas. WebOS / Enyo es un entorno increiblemente sencillo, potente y productivo para desarrollar, cuando le coges el tranquillo. Es una autentica pena que se cargasen este S.O. Pero asi es la vida.

Y antes de seguir hablando de mis experiencias y usos de la tableta, quiero dejar este punto bien claro. WebOS esta muerto sin posibilidad de resucitar. Seguira existiendo, en una medio vida, mantenido por una fiel comunidad de aficionados. Pero no va a existir ningun “comeback” triunfal de WebOS, ni va a destronar a iOS, ni nada de nada. He visto esto mismo montones de veces en el tiempo que llevo alrededor de esta industria. Lo vi cuando Amstrad acabo comprando Spectrum, que en su epoca fueron de los pioneros en las micros. O cuando Amiga sucumbio ante Windows. O cuando OS/2 Warp desaparecio de escena. O, año tras año, cuando se anuncia, ya de broma, que sí, que de verdad este va a ser el ano de Linux en el Escritorio y se va a desbancar a Windows.

Ser mejor tecnicamente que otros no es garantia de exito. Vender mucho y con buen margen si. Eso es lo que tendrian que haber pensado antes de sacar la HP TouchPad. Pero da la impresion de que Leo queria que la tableta fracasase rapidito para quitar “esta tonteria de Palm” lo antes de la idea que tenia de la nueva HP, una empresa enfocada solo al sector profesional. Al final, Leo ha dejado de ser CEO de HP antes que WebOS muera, pero el daño ya está hecho. Ahora deshojan una margarita para ver cómo malvender Palm. Al final, WebOS creo que acabará siendo Software Libre. Como Maemo o Meego. Ambos, dos excelentes productos. Y sí, con esas cotas de popularidad.

(Nota: esto lo había escrito antes de que HP anunciase que, efectivamente, va a liberar el código de WebOS y Enyo. Pero a día de hoy no se conoce ni el proceso, ni la licencia, ni nada)

El caso es que disfruto mucho con mi TouchPad. Su factor de forma es parecido al del iPad 1. De hecho, las fundas de iPad 1 son compatibles con la TouchPad. Usan el mismo display (1024 x 768, el mismo del iPad 2 por cierto). Y tiene muchas cosas chulas. Por ejemplo, al conectarla por USB aparece como una unidad mas y puedo intercambiar ficheros sin limitacion. Puedo usarla de disco USB de 32 GB, lo cual no esta mal. Creo que esto, para un usuario no avanzado es un problema. Para un geek como yo, es una puerta abierta al cacharreo.

Otra cosa que me encanta es que puedo pasar los videos de iTunes directamente ya que reproduce sin problemas H.264. Asi que puedo ver los vídeos de la WWDC o de formacion de Stanford simplemente copiándolos. Y tiene algo que odio, pero que debo reconocer que he usado en no pocas ocasiones para ver video: Flash. Puedo ver videos directamente en la pagina de YouTube o en Vimeo sin problemas. Y es una gozada cuando no quieres bajarte nada, directamente te vas al video y listo, lo ves en streaming. Comiéndote la batería, eso sí.

Cuando te compras la TouchPad viene en una caja con todo muy “apretado”. Y vienen pocas cosas: la tableta, un cargador de pared (que es también cable USB para sincronizarla) y poco más. Pero aprovechando que en Septiembre estuve en el iOS Dev UK tuve la suerte de encontrarme en un Carphone Warehouse un teclado inalámbrico HP y la base de carga TouchStone. He grabado este vídeo mostrando la tableta y sus accesorios. Grabado con el iPhone 4 y poca luz, pero creo que se ve.

Como se puede ver en el vídeo, la TouchPad admite “dual boot” de WebOS y Android. Tengo instalado CyanoGen Mod 7 con un Android 2.3.7 que va francamente bien. Aunque la experiencia no es igual de pulida que en WebOS, pero está bien el poder usar más de un S.O. en la TP. Si no encuentro suficientes juegos para los niños, reinicio en Android y listo.

Si puedo y tengo tiempo, voy a seguir desarrollando mis propios proyectos para WebOS 3.0 / Enyo. Quiero profundizar en JavaScript y aprender Node.js. Igualmente, me gustaría tener una App con mi nombre en una segunda Store. Y así, irlas colonizando todas :-)

Tagged with:
nov 28
Logo de We.Developers

Logo de We.Developers

Que soy gran fan y seguidor de José Antonio Blanco (y de su otra mitad, Valen) del podcast Macniacos no es ningún secreto. Desde que Juaco me comentara que escuchaba a dos pesados hablando dos horas seguidas sobre Mac y lo mucho que le servía, empecé a escucharles y me aficioné a su podcast. Cuando en el EBE 09 pude grabar su episodio en directo, junto con TaZZiTo, Serantes y Berto Pena (vaya lujo de equipo) lo pasé como un enano.

Por eso, cuando Jose me comentó que tenía ganas de empezar un podcast en paralelo con Macnicacos, pero más hardcore, más orientado a informáticos / programadores, donde poder hablar sin tapujos de frikadas de las que no puedes contarle a tus amigos no informáticos no lo dudé ni un segundo y dije que cuando y donde fuera, pero que yo quería participar. Y así ha nacido We.Developers, un podcast coral (Jose será el hilo conductor, e irán desfilando distintas personas que irán hablando de temas diversos de programación) sólo apto para programadores. Un sitio donde comentar que te gusta hacerlo todo con void * en C sin que nadie te mire raro. O en el que defiendas a COBOL y su espíritu de hacer un código que se autodocumente, escribiendo sentencias muy, muy largas. Mira, justo como se hace en Cocoa hoy en día… :-D

De momento se ha grabado el episodio piloto, pero como hay ganas seguiremos. Por culpa de esto (y de Café y Cocoa) me he comprado un micrófono Blue SnowBall, para sonar algo mejor en las grabaciones. En el podcast, en su web y en el logo se nota (mucho) la mano y el cariño que Jose le pone a sus proyectos.

Así que ya sabes: si te gusta programar, escúchalo y anímate a proponer temas. De cualquier lenguaje y plataforma. Ver el mundo desde distintos puntos de vista ayuda mucho a comprenderlo mejor.

:wq *

* he robado hoy el cierre del post a otro maestro.

nov 04

Este pasado fin de semana tuve el placer de asistir a la primera Conferencia que ha organizado a nivel nacional la Asociación NSCoders España. Asociación a la que pertenezco y, la verdad, y no es por ser nosotros los organizadores, pero nos ha salido casi redondo. Y encima no sólo iba a escuchar. Cometieron el error de dejarme hablar. Y claro, me dediqué a desvariar un rato y, entre chiste y chiste, contaba cómo hacer un cliente RSS para iPhone.

Aún no se si realmente alguien aprendió algo de mi charla. Yo me lo pasé muy bien, aunque no las tenía todas conmigo. El Viernes anterior había estado toda la mañana programando con JavaScript y el framework Enyo para la HP TouchPad. Y por la tarde había estado viendo detalles intrincados de Java en un curso de preparación para el OCP Java SE 6 que estoy impartiendo. Y Cocoa ya no me cabía en mis maltrechas neuronas. Al final parece que Cocoa fluyó (con ayuda de muchos cafés) y me pude escapar sin demasiados tomatazos. Y aquí es donde empezó realmente lo bueno.

Este año he ido a otra conferencia, el iOSDevUK en Gales, que me encantó. Pero comparando ambas, en la NSConf11 he escrito código. No sólo he escuchado, aprendido y charlado de código. He trabajado el código. Como en el increíble taller de TDD que impartió Pedro Santos, tras su charla sobre Behaviour Driven Development. Aquí tuve el privilegio de picar código mientras hacíamos pair programming aplicando el proceso paso a paso de TDD. O la charla sobre Chipmunk de Óscar Cardona, que nos dejó a todos atontados y pensando “esto no puede ser así de simple, o hay más código o este tío explica muy bien esto”. O el taller de Core Plot, donde vimos cómo hacer gráficas complejas con esta librería, gracias a la demo de Víctor Jalencas. Y tantas y tantas ponencias interesantes. La única pena: las que me perdí mientras yo hablaba, y las que tuve que elegir, perdiendo la que se presentaba en paralelo.

Lo mejor, la gente que he conocido. Gente con muchas ganas de aprender, compartir y enseñar. Gente encantadora y que, como los miembros de la NSCoder_bcn que han organizado el evento, se han matado para que todo estuviera perfecto, como al final ha sido. Creo que nadie pensaba que en una primera conferencia íbamos a tener tanto público. Esto puede llegar a ser una WWDC hispana. Trabajaremos por ello. Gracias a José Juan, nuestro presidente, o a Guillem o Leandro, o Xabi, o… por la paliza enorme que se han dado.

He podido conocer en persona (yo no “desvirtualizo” a las personas: las conozco) a José Lobato, ídolo de masas Geeks y gran bebedor de cerveza :-D . El tío en persona es para comérselo, y gran parte de la “culpa” de que todo esto se originara es la semilla plantada desde 85% Cocoa con las NSCoder Nights. Otro que me ha impresionado y he podido escuchar con respeto reverencial es Iván Leider. Él es un Maestro Jedi del desarrollo. Yo, ni Padawan…

Y demostrando que el mundo geek también es un pañuelo, conocí a Daniel García, el programador de la App de Minube para la TouchPad. Creo que allí estábamos los dos únicos programadores Enyo de toda España :-) . Bueno, alguno más habrá, pero no creo que más de 10…

Y claro, me he hinchado a comer, he visto algo de Vilanova i La Geltrú (principalmente de noche) y no he parado de hablar. La experiencia no merece la pena: es imprescindible si desarrollas en Cocoa. Yo el año que viene, repito. Espero que alguien recapacite y no me dejen hablar.

Os dejo con un Vídeo de Vilanova Digital en la que “el presi” de la Asociación explica (en Catalán, pero se entiende perfectamente) qué es la NSConf11

Y el que quiera el código del RSS Reader que utilicé de ejemplo, lo tiene en: https://github.com/dfreniche/SimpleRSSReader

Tagged with:
oct 20
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!

Tagged with:
ago 27

Si no te quieres leer todo este rollo, puedes ir a GitHub y bajarte el código fuente.

Este año he tenido la gran suerte de que se me presenten muchos proyectos, a cual más interesante y excitante. Desde una oportunidad para trabajar como Genius en una Apple Store hasta la posibilidad de integrarme en una compañía fantástica de desarrollo móvil, como es Mobivery. Oportunidades realmente estimulantes, que me hacen pensar que estoy vendiendo la moto de forma inconsciente, porque tampoco soy tan bueno programando. Aunque sí que me merezco los sueldos más altos que se puedan pagar :-)

No me he arrepentido de no aceptar estas ofertas porque volví de las vacaciones con mi “vocación emprendedora” más fuerte que nunca. Con ganas de hacer cosas, y sobre todo, de programar. Y parece que el Karma me ha recompensado, ya que se me planteó la posibilidad de desarrollar para la plataforma WebOS, y concretamente para la tableta de HP/Palm TouchPad. Tenía muchas ganas de conocer otra plataforma de desarrollo móvil, y, aunque ya me había hecho el “Hello World” con QT para Maemo y no acabo de encontrar ganas para explorar Android, no me lo pensé y acepté. Con una condición: quería un dispositivo para hacer las pruebas. ¡Me encantan los chismes!

He dedicado Agosto a aprender sobre el desarrollo de WebOS, a la vez que iba desarrollando la App para el cliente. No tenía ni idea, nunca había visto nada de WebOS (aparte del S.O. a nivel de usuario, y a través de vídeos). Empecé viendo vídeos sobre el desarrollo con Mojo, hasta que me di cuenta de que para la nueva versión del S.O. WebOS (la que viene con la TouchPad) es necesario desarrollar con el framework Enyo. Me instalé el SDK y el emulador, y me lancé a probar ejemplos. Me registré como desarrollador en Palm. Era divertido. Salvo cuando no lo era. Apenas hay ejemplos de Enyo por ahí para mirar, casi ningún tutorial, y en StackOverflow muy pocas preguntas / respuestas. Me quedaban los propios foros de Palm.

A esto hay que sumarle que yo no tengo ni idea de JavaScript. Cuando digo ni idea me refiero a que podía usar una biblioteca de funciones, pero sin conocer el lenguaje. Esto tiene fácil arreglo y me he lanzado a aprender JavaScript.

Y entonces llegó el bombazo: HP abandona la producción de dispositivos con WebOS, vende de forma apresurada las TouchPads para quitarse de en medio el Stock, y dice que quiere vender su parte del negocio de venta de PCs. Muy divertido. Incluso he bromeado en Twitter, viendo mis últimas adquisiciones y su posterior destino (Nokia N900, HP TouchPad) sobre mi capacidad gafe para hundir una empresa. Aunque pocas bromas: el proyecto que estaba haciendo entró en soporte vital, y estuve unos días esperando a ver qué pasaba. Finalmente se ha decidido concluir las Apps y subirlas a la tienda española, que se abrirá espero en Septiembre / Octubre. un alivio, porque realmente me gusta el desarrollo con Enyo, me parece un cambio tan radical desde Cocoa que me permite mantenerme fresco programando todo el día: un rato Cocoa y luego Enyo / Javascript.

Pero hay muy pocos ejemplos sobre Enyo. Así que, tras sufrir unos días con una parte de la App, he decidido crear un pequeño ejemplo de una App con un menú fijo a la izquierda, y con vistas que van cambiando según se pulsan las opciones de menú. Nada espectacular, pero hasta dar con la tecla de cómo combinar los Enyo.Pane con los Enyo.SlidingPanel me ha llevado un rato. Así que, si quieres probar la app, te instalas el SDK (lo necesitas para tener la librería Enyo), te bajas el código fuente del ejemplo de GitHub, y lo pruebas con un navegador WebKit (Chrome o Safari). También puedes usar el código como esqueleto para tus nuevos proyectos con Enyo, si es que te animas.

Os dejo unas capturas de la App, para que la veáis en acción:

Primera opción de menú

Primera opción de menú

Segunda opción de menú

Segunda opción de menú

Lo más complicado: el menú y los sliding Panels

Lo más complicado: el menú y los sliding Panels

Tagged with:
ago 16

Esta es la vida del informático. Da igual los años que tengas: la sensación es que nunca tienes ni idea de nada. Avanza tan rápida la industria que, por mucho que hagas, siempre te quedas atrás. Y hay que tomar decisiones. Los tiempos aquellos de poder ser un “informático renacentista” que sabía de hardware, de software, de todo un poco, pasaron. Yo hace tiempo que desistí de aprender ciertas cosas (como BB.DD.) y me centré en otras. Si no enfocas sobre un tema, no hay manera.

Por eso te recomiendo que sigas mi “método” sobre cómo aprender, en general, mientras avanzas en tu carrera profesional como informático:

  • asúmelo: siempre va a haber muchas más cosas que NO sepas, que las que sabes. Aunque ahora aprendas Ruby, mañana necesitarás Java. O JavaScript. O C++, Clojure, o lo que sea. Nunca lo vas a saber todo. Y no pasa nada.
  • hablar estas cosas y admitir las propias carencias frente a nuestros compañeros nos quita un gran peso. Porque la mente es mala, y constantemente te dice “mira que no saber CSS, seguro que todos estos ya hacen transformaciones CSS3 mientras duermen, y tú aquí, sin tener ni zorra idea de nada, mira que eres torpe…“. Nos machacamos sin piedad, y resulta que cuando preguntas no todo el mundo está tan avanzado. Es más, si tienes esta inquietud, probablemente tú ya sepas algo: “sólo se que no se nada“. Uno de los motivos por los que voy a las NSCoder Night es por hacer esta “terapia de grupo”.
  • no te dejes llevar por el agobio, o el estrés. Sí, vale, que tienes que entregar el proyecto para ayer: entonces usa Google (o mejor, stackoverflow). Pero márcate unos objetivos cada año, y aprende o profundiza en algún aspecto que te sirva y te interese: un lenguaje de programación, dominar un IDE, ver qué sistema de control de versiones te gusta más, patrones de diseño, UML, etc. Si tienes esos objetivos marcados y los cumples, cada año sabrás más que el anterior. No son importantes los años de experiencia, sino lo que experimentas durante esos años.
  • lee libros. Internet es fantástico para búsquedas de dudas, y hay muchos tutoriales. Pero muchos de ellos no se pueden comparar al material que encuentras en un libro: bien pensado, estructurado, con ejemplos. Además, leer un libro supone un esfuerzo y desarrollar una concentración que nos viene bien como programadores: cada vez somos menos capaces de concentrarnos durante un par de horas, por culpa de las interrupciones. Leer te obliga a trabajar esos conocimientos, y así a aprender.
  • una vez leas libros, busca vídeos del tema. En iTunes (y en Internet en general) hay vídeos de casi todo. Es bastante ameno ver cómo se hace algo, en lugar de tener que leerlo. Pero hazlo siempre después de leer el libro.
Estos son los pasos que suelo dar, y me han servido tanto para las certificaciones Java, como para aprender Cocoa Touch. Y este verano me ha surgido la oportunidad de poder empezar a desarrollar Apps para otra plataforma móvil, WebOS y el HP TouchPad. El problema es que (ver punto primero) no tengo ni idea de JavaScript. Solución: tirar de Amazon.co.uk (que a partir de una cantidad no cobra gastos de envío) y pedirme estos dos libros sobre JavaScript:
Libros JavaScript

Libros JavaScript

Tienen el visto bueno de los Tuiteros expertos en JavaScript (José Blanco y Luis Medel), así que deben ser la pera.
Con ellos voy a seguir explorando el Framework Enyo y WebOS, a la espera de que me llegue una unidad de pruebas HP TouchPad para depurar las Apps. Cuando llegue, pondré por aquí mis impresiones.
Tagged with:
jun 19

He terminado y entregado mi primera App para iPad. Ha sido un encargo, muy especial, para crear un cartel interactivo dentro de un museo. Así que no la busques en la App Store, porque no va a aparecer. La App está dedicada a narrar los sucesos que llevaron hasta la primera Constitución democrática de España, “La Pepa”, proclamada en 1812. Es visualmente muy sencilla (debía ser “minimalista”) y muy fácil de usar: se desplazan los sucesos con un “swipe” o bien se avanza por un “cover flow” en la parte inferior.

Mi App para iPad en funcionamiento

Mi App para iPad en funcionamiento

Con esta App he aprendido muchas cosas:

  • cómo desarrollar pensando en la resolución del iPad
  • cómo hacer pruebas con el iPad de mi mujer cuando ella no lo está usando
  • cómo usar a fondo UIScrollView
  • cómo encontrar trozos de código en Internet que me resuelvan problemas :-)
  • cómo distribuir una App de forma sencilla para que el cliente la pruebe sin tener que ir yo a instalarla en sus dispositivos (gracias @xelecto por enseñarme BetaBuilder)
  • a hacer un MVC del que me sienta contento
  • a comenzar un proyecto pensando en cómo voy a reutilizar el código
  • que el iPad no tiene motor de vibración :-P
  • que desarrollar para un estudio de diseñadores te abre los ojos sobre muchos aspectos de diseño, pero también a ratos te hace odiar a la raza humana.
Cambiando de evento

Cambiando de evento

Increíblemente he cumplido “casi” perfectamente en tiempo, pese a estar con mil cosas a la vez. Y me he vendido muy barato, debo decirlo, porque el proyecto me atraía mucho.

Tengo ahora una buena base para plantearme una App que cuente cuentos, o explique cosas (al estilo de aquellos estupendos libros de “Cómo funcionan las cosas”).

Así que ya sabes: si tienes una App interesante para desarrollar, dinero en el bolsillo y las ideas claras, siempre puedes contactar conmigo para contratarme como desarrollador Freelance. O directamente puedes donarme el dinero y ya yo voy haciendo algo “magical” :-D

Batalla de Trafalgar

Batalla de Trafalgar

Tagged with:
jun 18

Los sistemas de control de versiones son adictivos. No puedes probarlos, porque luego no puedes vivir sin ellos. Aunque sea un pequeño ejemplo el que vas a programar, te sientes perdido sin tu repositorio y empiezas a pensar “¿y si se me ocurre cambiar esto o lo otro, y luego me arrepiento?”. Ese tipo de “problemas” se solucionan casi en el acto con un VCS. Y si es distribuido (Git o Mercurial), mejor que mejor.

Antes de seguir, quiero dejar claro que no entro en las guerras religiosas entre los DCVS Git o Mercurial. Yo uso Mercurial porque Joel Spolsky lo explica de forma increíblemente sencilla. Aunque ahora que Git viene integrado con XCode4, probablemente es una buena alternativa… bueno, no :-) . En fin, usa el que te de la gana, pero usa uno.

Para casi todos mis proyectos uso Mercurial. No lo uso para los ejemplos que escribo para mis cursos. Y estaba pensando “¿porqué no usarlo?”. Por pereza mental, y por hacer siempre las cosas de la misma forma. Mi padre dice que “si un burro tira de una noria para un lado y le das la vuelta, ya no sabe tirar de ella”. Y es que nos acostumbramos a hacer siempre lo mismo, de la misma forma, y nos estancamos. De vez en cuando hay que revisarlo todo con una mirada fresca y en lugar de pensar “¿hay una manera de optimizar esto que estoy haciendo?” debemos plantearnos “¿en serio tengo que seguir haciendo esto?”.

El caso es que un sistema de control de versiones es casi perfecto para dar clases. Puedes tener una primera versión, sencilla, y luego ir promoviendo a las distintas versiones más avanzadas, que pueden ser changesets o bien nuevas ramas. Los cambios que hagas durante la clase para demostrar algo siempre puedes revertirlos sin problemas. Para eso está el DCVS. Y distribuir el código es más sencillo: compartes tu repo, y los alumnos se clonan los repositorios y punto. No hay que andar con historias de copiar los Workspaces de Eclipse y que luego falle (los WS de Eclipse dependen del sistema en el que los uses, hay que cambiar luego los Build Paths, etc.). Como se puede ver, todo son ventajas. La pregunta es porqué no lo he usado hasta ahora…

Instalar Mercurial

Evidentemente, antes de nada lo primero es instalar Mercurial, ya sea para Linux, Windows o Mac, o para donde vayas a usar el DCVS. Si no, el plugin de Eclipse no podrá usar Mercurial porque no lo encontrará en tu sistema. Te lo bajas de su sitio web oficial.

Instalando hgEclipse

HgEclipse es un plugin para Eclipse que añade soporte Mercurial a tus proyectos. Una vez instalado, en el menú contextual del proyecto encontrarás en la opción Team > Share la parte de Mercurial. Para instalarlo, iremos a Help > Install New Software e introduciremos el repositorio http://cbes.javaforge.com/update. En mi caso (instalándolo en Mac) no necesito los binarios de Mercurial para Windows, así que no los marco para instalar.

Instalando hgEclipse: repositorios

Instalando hgEclipse: repositorios

Cuando pulsemos Next, pasaremos a descargar e instalar el plugin. Al final no hay más remedio que reiniciar Eclipse. Así que hazlo :-)

hgEclipse instalándose

hgEclipse instalándose

Usando HgEclipse

Una vez con todo instalado, lo primero es crear el repositorio Mercurial en nuestro proyecto. Eso lo prepara todo para poder gestionar las versiones de tu codigo fuente. Equivale a un “hg init”. Para ello, pulsaremos con el botón derecho del ratón en el nombre de nuestro proyecto y seleccionaremos Team > Share Project. Si todo está correctamente instalado nos aparecerá una ventana como la siguiente:

Share > Project

Share > Project

Como queremos crear un repo Mercurial, basta con pulsar siguiente. Nos mostrará dónde va a crear el repositorio (que es una carpeta llamada .hg, dentro de nuestra carpeta de proyecto). Aparecerán unos nuevos iconos en las carpetas y ficheros de nuestro proyecto y la palabra [new] indicando que el repo es nuevo, pero aún no se ha realizado el primer commit.

Repositorio tras el init

Repositorio tras el init

¡Vamos a añadir ficheros a nuestro repositorio! Botón derecho en el proyecto > Share Project, pero ahora aparece un menú con un montón de opciones. Seleccionamos Add. Esto añade los ficheros del proyecto al repositorio. Yo suelo añadir únicamente el código fuente, pero no los ajustes del proyecto, ni las carpetas propias de Eclipse, como muestro a continuación:

Añadamos ficheros al repo!

Añadamos ficheros al repo!

Ahora que hemos añadido, los iconos de los ficheros fuente cambian y tienen un “+” azul al lado. Están ya controlados por el repositorio, pero no hemos subido este cambio, que en este caso es subir la primera versión. Para ello, Team > Share Project > Commit y añadimos un mensaje de commit. HgEclipse nos muestra los ficheros que va a subir, y los que no tiene “controlados”, por si queremos añadirlos.

Commit

Commit

Al pulsar OK, ¡listo!. Ya tenemos control de versiones funcionando. Ahora, si modificamos un fichero se nos mostrará como cambiado y podremos hacer un commit con esos cambios. O podremos compartir el código fuente del proyecto por la red con la opción Serve. Cualquiera en la red podrá hacer un Pull del repo y bajarse este código fuente. Mucho más rápido que compartir el proyecto en una carpeta SMB y encima evitas problemas con las configuraciones de Eclipse (yo lo uso en Mac y mis alumnos, normalmente, en Windows)

Las opciones del menú de Share Project son muy amplias. Os animo a irlas probando y a aprender Mercurial entre todos. El que tenga un truco especial de cómo usa Mercurial, ya sabe, que use los comentarios.

hg commit -m "post acabado"
hg tag -m "v1.0"
Tagged with:
abr 05

Me paro un momento y miro en lo que estaba trabajando, y los programas que tengo abiertos ahora mismo, y no puedo evitar pensar que soy lo más alejado del minimalismo. Al menos en lo que se refiere al ordenador. Era minimalista cuando no tenía dinero más que para mi querido Amstrad CPC 464 con el monitor fósforo verde, con su unidad de casetes. El único periférico que tenía era un Joystick. Y a usarlo. Pero veía en las películas a gente en países lejanos y extraños, en salas llenas de ordenadores.

Como el programador de Parque Jurásico (que, por supuesto, además de ser el malo, cobarde y torpe, estaba mal pagado y era gordo y feo). Por cierto, si veis de nuevo JP os llamarán la atención dos cosas: una, que están programando fumando, algo impensable en cualquier entorno de hoy en día. La otra, que el sistema de “bug tracking” que usan es una libreta donde van anotando los errores :-)

Volviendo al tema que me traía aquí, en esta mañana he comenzado programando en C, en el IDE Eclipse corriendo sobre Windows 7. Ese Windows 7 está instalado en mi MBP. Por si fuera poco frikismo, he usado el escritorio remoto de Windows para programar esos ejemplos en una ventana del iMac de 27″, que para eso tengo una pantalla grande. Mientras programaba iba actualizando la presentación de Keynote que acompaña al curso, en el iMac. Sonaba la música desde iTunes, donde estaba restaurando mi iPhone 3Gs con una copia de seguridad de ayer: mis niños han borrado algunas fotos en un descuido.

He terminado con C y me he pasado a WordPress. Arrancando una máquina virtual VMWare de Bitnami, que ya tiene un entorno WP completo sobre Linux, me he dedicado a crear un nuevo sitio para migrar una vieja web que hice hace ya la tira en Typo3. Es decir, instala plugins, widgets, temas, escribe posts, importa información, etc.

Ahora toca pensar en el próximo curso de Java EE que tengo que impartir a finales de mes. Java, Servlets, EJBs, JBoss, Eclipse de nuevo (aunque ahora en su “sabor” Java). Tendré que ojear un libro, que tengo en formato CHM (formato típico de Windows en otra época). Y luego, un poco de Objective C para comenzar un proyecto iPad que me han encargado. Tengo cosas que leer de UML…

Es por este desbarajuste de trabajo que tengo, con tantas tecnologías, frameworks, lenguajes, herramientas y entornos distintos por lo que amo a mis dos Macs. Necesito ser anti-minimalista, ya que si lo fuera no podría hacer la mitad de las cosas que hago. Esta es la razón de haber ampliado mi iMac a 12 GB de RAM. Aún así, procuro no instalar nada si ya tengo una aplicación que hace más o menos lo mismo, que si no acabas con un montón de aplicaciones similares que no acabas de dominar en profundidad.

Bueno, sigo, que quiero ir terminando. Que no hace mucho me comentaron que a lo mejor tengo que aprender CLIPS:-)

mar 18

85% Cocoa Podcast. Pulsa para ir al podcast. Imagen usada sin consentimiento de nadie. Espero que no me denuncien

85% Cocoa Podcast. Pulsa para ir al podcast. Imagen usada sin consentimiento de nadie. Espero que no me denuncien

Que escucho 85% Cocoa habitualmente es algo que cualquiera que se lea mi timeline de Twitter verá en un rato. Es un podcast que te anima a seguir aprendiendo cosas en el mundo del desarrollo Mac con Cocoa, y que trata también temas extrapolables al desarrollo con cualquier lenguaje. ¡Jose Antonio Lobato hasta habla de cómo correr en su podcast!. Te lo recomiendo si programas en cualquier lenguaje. Bueno, si lo haces en Haskell o BrainFuck estás más allá de toda ayuda o tratamiento…

En el episodio 19 Jose tuvo a bien invitarme a hablar, junto con su socio en Binary Tricks, Jesús Fidalgo (@jfid), sobre los sistemas de gestión de bugs, tareas, tickets o asuntos (issues) que usamos. En mi caso, hablé de FogBugz, que es el que actualmente uso. Me he dado cuenta de que en esta entrada prometía hablar de FogBugz en el blog. Bueno, considero mi cuenta saldada conmigo mismo :-)

La charla me resultó muy, muy agradable. Me la pasé rebién, que dicen los argentinos. La hora que estuvimos hablando se fue en un momento, y tratamos muchos temas. Quiero dejar aquí el enlace al artículo en el que Joel Spolsky explica su “Evidence Based Scheduling”, es decir, su sistema de “predicción” estadística de la probabilidad real que tienes de lanzar tu producto en las fechas que tú propones. Es lectura obligada.

Curiosamente ha levantado cierto revuelo la frase “el terrible complejo de sentirse inútil”, que es lo que cada informático siente todos los días de su vida cuando se levanta de la cama. Con el ritmo de cambio habitual, siempre tienes la sensación de no saber nada. Pero eso no es real. Voy a dedicar algún post a este tema, ya que creo que necesitamos mucha terapia de grupo.

Y nada más. Que espero que lo disfrutéis y que, si no conocíais el podcast os apuntéis a el. Y, por cierto, es harto desagradable la experiencia de escucharte a ti mismo durante una hora. Nadie debería tener una voz que suene distinta fuera de su cabeza.

Tagged with:
feb 03
ClockRing rechazada :-)

ClockRing rechazada :-)

ClockRing ha sido rechazada. No se por qué, pero me lo olía. Bueno, realmente no ha sido rechazada. Me explico. La App es correcta, pero no la pueden subir al App Store porque los materiales de márketing (los textos, imágenes, iconos, etc. que aparecen luego en iTunes) no pasan el filtro. Me esperaba algún problema con la licencia, que es GPL, pero como eso no aparece de entrada, no hay bronca (el problema lo tienen aplicaciones que, nada más abrirlas, te informan de su licencia y otras historias).

El correo que he recibido del equipo de revisión me parece perfecto, en serio. Muy educado, te dan las gracias por enviar Apps al App Store y te explican exactamente cual es el problema (en mi caso una de las capturas de pantalla que había enviado) y cómo solucionarlo. Acabo de crear una nueva captura y la he enviado ya para que me la revisen, a ver si ahora todo funciona OK. No entiendo los programadores que se quejan todo el rato del proceso de revisión. Yo hasta ahora he tenido dos problemas, y en ambos casos me han indicado qué pasaba y cómo arreglarlo. Y todo como la seda, oiga.

Lo que me hace gracia es la razón exacta del rechazo:

3.2   Apps with placeholder text will be rejected

Bueno, mi captura de pantalla inicial lo que mostraba era un anuncio vacío (un iAd sin nada, ya que estaba probando la App). Y yo tenía que interpretar que un texto de relleno (placeholder text) es lo mismo que un iAd sin anuncios. Es por eso que habría que crear una hermenéutica de las reglas de Apple, de forma que mentes ilustradas nos expliquen a los más torpes exactamente qué puedes y qué no puedes hacer :-)

En resumen, que si mandas esto, te rechazan:

Captura de ClockRing App que NO cumple las reglas :-)

Captura de ClockRing App que NO cumple las reglas :-)

Pero si mandas esto otro, todo es perfecto:

Esta es la buena

Esta es la buena

Nunca me había alegrado tanto de tener mi licencia de Pixelmator. Problema solucionado en 5 min. Bueno, eso si te acuerdas de cambiar las imágenes promocionales en todas las App Stores. Si no, te mandan otro amable correo rebosante de paciencia pidiéndote que cambies los screenshots de la App española :-)

Por cierto, ClockRing ya está disponible en el App Store. Y su código fuente está aquí.

Tagged with:
ene 27

Pues eso, que he mandado a revisión por parte de Apple mi tercera App. Actualmente ya tengo dos subidas: MyEvents, para gestionar tus eventos importantes y saber cuántos días quedan hasta ellos, y FXPlayer, una App escrita a cuatro manos con la ayuda de @jnhidalgo @jnhernandez, y que te permite superponer efectos de sonido a una canción que tengas sonando en el iPod. Puedes verlas en la web de Femtocoders (Inglés) o en la sección iOS Apps del blog.

Esta tercera se llama ClockRing, y la idea es muy sencilla: hace que suene un pitido de señal horaria en tu iPhone, como los relojes Casio de toda la vida. Con la particularidad que te permite escoger qué quieres que suene: una campana de iglesia, un reloj de cuco, un pitido típico de la radio…

ClockRing App

ClockRing App

Se me ocurrió la idea tras enterarme a través de José Mª Ortiz, un compañero de Jonathan Chacón (primer desarrollador ciego en el mundo que ha publicado una App en el App Store, bromitas pocas), de que MyEvents era accesible. Empecé entonces a pensar en los temas de accesibilidad y se me planteé “¿bueno, y un ciego cómo sabe de un vistazo que son las dos de la tarde y tiene que irse a comer?”. Evidentemente no “de un vistazo”, tienen que estar activando el iPhone, y VoiceOver te canta la hora. Pero se me ocurrió la idea de clockRing y pensé que podría ser útil. Además, José Mª, me pidió que implementase “para ayer” la posibilidad de programar alarmas en MyEvents (cosa que empiezo a preparar ya para la v1.2). Así que ClockRing era la oportunidad perfecta para practicar con la API de LocalNotifications.

La App es gratis, e incluye iAds para ver si me puedo pagar alguna cerveza a su costa. Pero hace tiempo que estoy con ganas de liberar algo de código. Así que ClockRing es Software Libre, según establece la licencia GPL v2. Vamos, que puedes ver el código, compilarlo, usarlo en tus proyectos, o para aprender, o para reírte, o para lo que quieras. Pero los trabajos derivados deben ser también libres. Si quieres una copia del código, pásate por la Wiki de la App ClockRing que tengo en FogBugz (otro día  hablaré de FogBugz y su increíble sistema de Bug Tracking, predicción del tiempo de entregas, Wikis, repositorios de código, etc.)

ClockRing aún no está disponible para su descarga desde el App Store, ya que está en el proceso de aprobación (cruzad los dedos). En el momento en que esté disponible lo anunciaré aquí (actualizando esta entrada) y en Twitter.

Actualización: ya puedes bajarte ClockRing gratis.

Happy coding!

Tagged with:
ene 05

Tengo que impartir un curso de introducción a la programación, utilizando el lenguaje C, dentro de unos días. ¡Bien!. Ya hacía años que no podía disfrutar con un curso así, en el que puedes enseñar los fundamentos a un grupo de personas, y ves cómo aprenden desde el principio y cómo van evolucionando. Encima, para mayor regocijo del docente, el lenguaje elegido es C. Siempre he considerado C como mi lenguaje totem, el hogar a la que volver, con el que me siento más a gusto. En los 90 programé bastante en C y C++. Pero a finales de la década, llegaron primero Visual Basic y luego Java, y no volví a programar en C. Hasta que el año pasado empecé a aprender Cocoa y Objective C para hacer Apps en Apple iOS. Y me ilusioné al descubrir que Objective C es un superconjunto estricto de C, es decir, que tiene todo lo que tiene C, y más cosas.

Así que el curso pinta bien. Si lo pudiera impartir en Linux, ya sería la repera (porque en Mac ni me lo planteo: las empresas cárnicas aún no lo usan). Pero todo no puede ser perfecto. El cliente quiere Windows. Bueno, sin problemas, yo no soy anti-nada. Windows 7, como ya he comentado antes, me parece un buen S.O. No es mi elección para el día a día, porque me siento más cómodo en UNIX (Mac en este caso), pero la última versión es una buena elección para sus usuarios. El problema entonces era encontrar un compilador y entorno integrado que fuese cómodo para programar y que ya conociese. Y si fuera Software Libre, perfecto.

Con estos requisitos, Visual Studio queda fuera. Cierto, llevas el IDE y el compilador integrados de una vez, pero no lo he usado nunca. Y aunque ahora es gratis la versión exprés (o podría usar una de prueba para el curso) no me apetecía pelearme con otro IDE. Netbeans cumple casi todo, pero no lleva integrado el compilador. Ni Eclipse, pero ya que conozco razonablemente Eclipse tras todo el tiempo que le he dedicado impartiendo cursos de Java y preparando certificaciones, me parecía la mejor opción. Así que vamos con la instalación de Eclipse para programar en C en Windows.

Instalar el compilador de C

Lo primero que hay que tener claro es que Eclipse sólo es un Entorno Integrado de Desarrollo. Un IDE. Un editor potente, un programa para organizar tus proyectos de software y no pelearte con ficheros sueltos en una carpeta, un sitio donde ver los errores de compilación y leer la ayuda. Un aglutinador de herramientas. Pero no es un compilador. No lo incluye. E igual que cuando preparas un Elcipse para programar en Java hay que instalar previamente el JDK, que incluye el compilador de Java, aquí hay que instalar el compilador de C.

Buscando uno libre y moderno (el último compilador de C que usé en S.O. Microsoft fue el djgpp sobre MSDOS), di con MinGW, Minimalist GNU for Windows, un conjunto de herramientas GNU (las mismas que se encuentran en GNU/Linux) pero compiladas para Windows. ¡Perfecto!. Instalando esto ya tengo GCC (el compilador de C en Linux y Mac de toda la vida), make y el resto de herramientas de desarrollo desde la linea de comandos. Instalarlo es descargar el ejecutable y pulsar en Siguiente, Siguiente hasta el final. Ojo: instala MinGW en C:\MinGW para evitar problemas posteriores. Es el sitio que aparece por defecto al instalar, así que déjalo como esté.

Tras la instalación, y para que Eclipse pueda encontrarlo, tendremos que añadir la carpeta con los ejecutables de MinGW al PATH del sistema (instrucciones en Inglés, o bien sigues leyendo). Para poder usar cualquier programa en Windows tenemos dos opciones: o bien vamos a la carpeta donde está el programa y lo lanzamos desde ahí, o incluímos la carpeta en la variable PATH del sistema de forma que cada vez que se necesite ejecutar ese programa Windows lo encuentre. Vamos a ello. Abrimos un explorador de Windows (Tecla Windows + E) y pulsamos con el botón derecho del ratón sobre Equipo.

Configuración del Sistema

Configuración del Sistema

Si pulsamos en “Configuración Avanzada del Sistema” nos aparecerá la ventana clásica de “Propiedades del Sistema” de XP. Si no está abierta, hacemos click sobre la pestaña “Opciones avanzadas” y veremos un botón abajo del todo que pone “Variables de entorno”. Entrando, veremos dos tipos de variables: del Sistema y de nuestro usuarios. Las variables del Sistema tienen efecto para cualquier usuario que inicie sesión en esta máquina, mientras que las del usuario sólo nos afectan a nosotros mismos. Cuando añado algo al PATH, me gusta que sea a nivel del Sistema, así que buscamos PATH y doble click. En la ventana que se abre, debemos ir al final de la lista de directorios, añadir un punto y coma y la carpeta donde está MinGW.

Configurando PATH

Configurando PATH

Mi PATH queda algo como:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;...;C:\MinGW\bin

La prueba definitiva de que todo está OK es abrir un intérprete de comandos de Windows, pulsando la Tecla Windows + R y escribiendo “cmd” en el diálogo que aparece. Si escribimos gcc -v y nos aparece información sobre nuestra versión instalada del compilador de C GCC, felicidades. Ya podemos compilar.

MinGW funciona!

MinGW funciona!

Instalar un entorno JRE de Java

Eclipse es un programa que está escrito en Java. Luego para poder ejecutarlo necesitamos instalar en nuestro Windows el JRE (Java Runtime Environment). Una vez que lo tengamos, podremos ejecutar cualquier programa Java, así como Applets en el navegador. Probablemente ya lo tengas instalado (puedes ver si tienes en Archivos de Programa una carpeta llamada Java) pero si tienes dudas, instálate el último JRE de la página de Sun (ahora Oracle). Para comprobarlo, desde una terminal, escribe java -version.

Instalar Eclipse CDT

Siguente paso: descargar Eclipse. Para ello, buscaremos la versión correcta, ya que Eclipse es un IDE que sirve para todo. Con Eclipse podemos programar en C, C++, Java, PHP, … casi en cualquier cosa. Por ello, hay paquetes ya precreados con un Eclipse totalmente configurado para un uso determinado. El que nos hace falta en este caso es el Eclipse CDT

Descargamos el fichero (tardará un rato, pesa unos cuantos MB) y una vez lo tengamos, lo movemos a la carpeta que queramos. Aunque Eclipse sea un programa no se “instala” en Archivos de Programa, aunque podemos moverlo ahí. Realmente se descomprime, se abre, se pulsa sobre el icono de Eclipse y listo.

Si todo ha ido bien, podremos crear un nuevo proyecto C, añadir un fichero y compilar sin problemas. Pero esto va a ser material para otro post.

Tagged with:
nov 30

Foto de Felipe Vieria

Foto de Felipe Vieria

Si aún no sabes de qué estoy hablando, en este post ya hablé de qué eran y para qué servían las NSCoder Nights. Resumiendo mucho, son reuniones de gente interesada en desarrollar aplicaciones Cocoa. Así que los asistentes pueden ser programadores para el Mac, para el iPhone (y cualquier otro dispositivo iOS), diseñadores, empresarios buscando algún programador que les ayude, curiosos… Si te interesa, puedes también leer el post de Javier Rodríguez sobre cómo comenzar el desarrollo con iOS. MacWorld también se hace eco de las NSCoder Nights.

Hoy tenemos nuestra segunda reunión en Sevilla, y ya hay otros capítulos en Madrid, Barcelona, Gijón, Valencia, Almería, Málaga, … Bueno, pero ¿qué hacer si te gusta la idea, pero en tu ciudad no hay aún una NSCoder Night? Esa fue básicamente la duda que surgió en los comentarios que comenzó David en el post sobre cómo estaba aprendiendo a programar para iOS. Tras algunos correos, quedó inaugurado NSCoder_zgz, y pronto tendrán su primera reunión. Así que se me ocurrió listar la serie de pasos que debes ejecutar para localizar tu NSCoder Night más cercana, o bien crear la tuya propia.

  1. [Twitter getTwitterHandle]; Si no tienes usuario en Twitter, lo primero es creártelo. Te servirá para estar al día de las NSCoder Nights. No todas tienen sitio web, pero todas tienen Twitter.
  2. [NSCoderNight listAll] consulta la lista de NSCoder Nights que tenemos en el capítulo de Sevilla. Procuramos mantenerlas actualizadas. Si dudas de si hay alguna cercana, pregunta, que para eso estamos.
  3. if ([NSCoderNight isNear]) exit(0); Si encuentras alguna cerca / en tu ciudad, has terminado. Sigue a su usuario en Twitter y listo.
  4. else … Bueno, si no hay ninguna cerca, la solución es fácil: la creas tú. ¿Cómo? sigue leyendo
    1. Crea un usuario en Twitter para esa NSCoder Night. El nombre debe ser: NSCoder_xxx, donde xxx será una abreviatura del nombre de tu ciudad, como sev, zgz, mlg, bcn, etc. (etc no lo uses)
    2. Copia la bio de otro NSCoder Night. Así somos más homogéneos.
    3. Copia el icono de otra NSCoder Night
    4. [Opcional] Crea un sitio web para tu NSCoder Night. En tumblr, también por ser homogéneos.
    5. Añade a tu nuevo sitio web las FAQ que magistralmente escribió Vicente Vicens.
    6. Pon un enlace en el perfil de la cuenta de Twitter al nuevo sitio web.
  5. Una vez que has terminado con la parte técnica, ahora viene lo mejor. Busca un sitio que te guste, un bar, cafetería, restaurante, tu casa, una iglesia o un gimnasio. Un sitio donde quepáis de cinco a diez personas, con sus portátiles. ¿Lo tienes?
  6. Publica la primera reunión. Ponle fecha, y hora. La mayoría empezamos sobre las 19:00, pero puede ser a cualquier hora. Aunque el apellido de las reuniones “Nights” igual te da una pista sobre el horario.
  7. Apóyate en la promoción de las otras NSCoder Nights. Siempre te haremos un RT :-)
  8. Ve a la primera reunión. Si va alguien, fantástico. Si no, persevera. Tendrás ese tiempo para tí, para programar / leer fuera de tus tareas habituales. Sigue el ejemplo de José Vázquez en su inigualable “Hazte Indie“.
  9. Sube fotos y cuéntanos cómo te va :-)
Tagged with:
preload preload preload