ago 08

Soy un convencido del uso Evernote como “almacén digital total” desde que lo descubri gracias a ThinkWasabi. Leer el libro de Berto me ayudó a ver su utilidad: en un mundo con cada vez menos papel y más documentos digitales, las carpetas de las que habla David Allen en su libro de GTD para guardar los materiales relacionados con un proyecto se han encarnado en las libretas de Evernote. Evernote te permite acceder a esos trozos de información desde cualquier dispositivo: tu ordenador, el teléfono, etc.

Como consecuencia de este uso, para cada búsqueda de información que hago en Internet para un proyecto, voy creando un conjunto de notas que agrupo en una libreta: notas que redacto yo, páginas web interesantes, artículos que encuentro, etc. Por ej., preparando el viaje que voy a hacer en Septiembre al iOSDevUK me encontré con un montón de páginas abiertas en Safari: información sobre la conferencia, sobre el pueblo donde se celebra, sobre Gales, sobre el Galés (el lenguaje), etc. El caso es que, tras cerrar las petañas con las búsquedas de Google, tenía un montón de información interesante que quería seguir revisando en otro momento. La solución: copiar todas esas URLs a una nota de Evernote. Empecé, y cuando iba por la segunda pensé: “tiene que haber una manera más sencilla de hacer esto”. Gracias a los cielos soy perezoso, y esa noche teníamos una reunión en la NSCoder Night de Sevilla. Allí planteé mi duda, y me respondieron con este script (no recuerdo quien, y me molesta, porque no puedo buscar en mis tweets para encontrarlo), que copia las pestañas abiertas de Safari en una nota de Evernote.

Guardar script como Aplicacion

Guardar script como Aplicacion

Si sigues los pasos de la web (haces click para abrirlo en el editor de AppleScript) puedes guardarlo como una aplicación. Esto te crea un fichero .app, justo como las aplicaciones que instalamos normalmente. Se usa abriéndolo (haciendo doble click sobre el icono, lanzándolo con Spotlight, vamos, como cualquier otra aplicación de tu Mac) y te creará una nota en el Inbox de tu Evernote con todas las pestañas que tengas abiertas en ese momento en la ventana de Safari. Yo antes de lanzarlo cierro las pestañas que no me interesan para la “foto” y uso la opción de menú de Safari Ventana > Fusionar todas las ventanas. Así tengo una sola ventana con los tabs que quiero guardar. Por rizar el rizo de la productividad, tengo asociado en Keyboard Maestro una secuencia de teclas a ambas acciones, así que me resulta muy sencillo.

 

Tagged with:
ago 06
Download Snow Leopard & Lion :-)

Download Snow Leopard & Lion :-)

Lion, la versión 10.7 de OS X (ya no se llama Mac OS X), ya está aquí. Bueno, lleva ya un tiempo aquí, porque salió a la venta el 20 de Julio, así que ya tiene unas semanas de vida. Unas semanas en la que la gente que usa Macs parece que se han vuelto locos y se han lanzado en no se qué concurso de a ver quién descarga e instala primero el S.O. Se han comentado muchas cosas, se han escrito ya muchas reviews (la mayor parece que es esta, aunque seguramente poco a poco iremos aprendiendo cosas nuevas que hace el sistema) y se ha hablado de muchas obviedades. Aunque hay algunos temas que no he visto tratados por ahí, y que a mí me han sorprendido, y que voy a comentar junto con mi actual situación respecto a Lion.

La descarga del S.O.

Hace ya tiempo que se venía hablando del super centro de proceso de datos que había construido Apple. Pero no se sabía a ciencia cierta para qué era. Ahora está claro: para descargar cosas como Lion, y para dar cobertura a todos los datos que se van a subir con iCloud. Y nadie ha comentado que, dado el tamaño de la descarga y la avidez del personal, el volumen del tráfico iba a ser morrocotudo y lo normal es que hubiera cortes. Pero no, parece que las descargas de Lion en general han ido bien y no he visto quejas.

Aunque el día 20 me conecté a la Mac App Store y se “atragantó” un poco, mostrándome esta pantalla :-) . Tras refrescarla ya todo funcionó sin problemas.

Lion atascado en la Mac App Store

Lion atascado en la Mac App Store

El Magic Mouse es inútil

Tímidamente empiezo a leer por ahí que si Apple lo va a abandonar, que si lo va a rediseñar, etc. El Magic Mouse es un producto revolucionario en su concepción: un ratón con una superficie multitouch. Pero la verdad es que a la hora de usarlo no es cómodo. No tan cómodo como un ratón normal. Y ejecutar muchos gestos en su superficie no es fácil. Pero fue un primer paso y en este caso, como muchas veces, los early adopters no nos llevamos el producto mejor acabado. En mi caso, tengo dos Magic Mouse, y los voy a conservar como un “eslabón perdido” que mostrar dentro de 10 años, cuando usemos superficies táctiles proyectadas sobre las mesas, o en el aire, o lo que usemos.

Curiosamente, para usar Lion lo ideal es un Magic Trackpad. Un producto que, antes de Lion, no tenía mucho sentido. Ahora con Lion los gestos ganan terreno, el Magic Trackpad se convierte en algo básico y empieza a servir de algo. Yo aún no tengo uno, pero probablemente acabe usándolo como comentaba Terrón: Magic mouse a la derecha y Magic Trackpad a la izquierda para los gestos.

El coste de Lion

Esta es una de las cosas que me encantan de Apple, pese a todas las quejas existentes. Te dan un hard de excelente calidad, con un S.O. que es el que más me gusta. Y encima, cuando lo actualizan, es muy barato. Mucho. Lion cuesta 23,99 € en la Mac App Store. Dado que se puede instalar hasta en 5 máquinas que tengas por casa no te sale cada instalación ni a 5 €. Igualito que en otros sistemas. Ya, ya se que Linux es más barato, pero hablamos de productos comerciales :-) .

En mi caso, Lion me ha costado exactamente 0 €. Aproveché el pasado 6 de Junio el Día Sin Iva de MediaMarkt y me compré un Mac Mini, que uso de Mediacenter (o eso pretendo, que no lo tengo configurado en condiciones, pero bueno…). El caso es que Apple tiene un programa de actualización gratuita del S.O. a los clientes recientes. Concretamente, si te has comprado un Mac entre el 6 de Junio (acerté!)  y la fecha de lanzamiento de Lion, te dan un código para que te lo bajes de la Mac App Store. Llamé a Apple Care para enterarme y los machaqué a preguntas. Y ha sido todo cierto. Me mandaron un correo con el código, que canjeé en la Mac App Store y pude ver esta deliciosa pantalla:

Lion bajada gratis de la Mac App Store

Lion bajada gratis de la Mac App Store

Encima esta descarga, como todas de la Mac App Store, me va a permitir actualizar el Mac Mini, el iMac 27″ y mi MacBook Pro por 0 €. La pena es que el Macbook “blanquito” de mi mujer no es “apto” para Lion: es un CoreDuo de los primeros Intel que se usaron. Pero bueno, mi mujer tiene totalmente cubiertas sus necesidades de computación con Snow Leopard, su “blanquito”, su iPhone 4 y su iPad 1.

Estado actual de instalaciones

Lion 0 – Snow Leopard 3. Así podría resumirse. No me he actualizado. Ninguna máquina. Ni lo voy a hacer, al menos, hasta que aparezca la primera actualización 10.7.1. Prefiero dejar que la comunidad se dedique al “Beta testing”, y no interrumpir mi trabajo parcheando cosas, o viendo si alguna aplicación ha dejado de funcionar, o lo hace de manera extraña. Estoy ahora con varios proyectos simultáneos de desarrollo en iOS, con Java, usando máquinas virtuales Windows y desarrollando para WebOS. Y no me apetece meterme en más problemas de los que ya me dan las herramientas. Así que me bajé Lion, lo he grabado en un DVD (para instalarlo cómodamente, sin tener que bajarlo en las otras máquinas) y todas las mañanas veo al León esperando pacientemente en mi Dock. No te preocupes. ¡Ya te llegará tu hora, Simba!

Lion en mi Dock

Lion en mi Dock

Tagged with:
jul 19

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 ;-)
Tagged with:
jul 18

Me gusta el porno Geek. Y mucho. Eso de mirar chismes “me pone”. Y no te rías: si estás leyendo esto, es porque te gusta esa variante del porno Geek, para voyeurs, llamada Home Office Setups. Me encanta ver las oficinas de otras personas (si son informáticos mejor, ya que entonces el factor Geek se multiplica).

Comencé esta afición con dos clásicos, las increíbles oficinas de Mitch Haile y de Stefan Didak. Vídeos como los de Bilsta57 no me ayudaron mucho a superar este vicio. Finalmente me hice seguidor de Workstation Setups en Twitter. Y ahora he dado un paso más. Ya que mucha gente tiene curiosidad en ver cómo amontono los ordenadores que atesoro, he decidido hacer una fotos (bastante malas, aviso), y subirlas a Flickr. Abajo tienes una presentación “bonita” de las fotos, pero si quieres, puedes ir a Flickr y ver las fotos con sus descripciones, comentarlas, etc.

Ya sabes, me encantaría que me enseñaras tus “vídeos caseros”. En el buen sentido, claro ;-)

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:
may 18

Estoy terminando una App para iPad que me han encargado y me he encontrado con un problema. Tenía 32 imágenes, con nombres 1.png, 2.png, así hasta 32.png y necesitaba crear una versiones reducidas para tener una “vista previa”. Vamos, lo que se conoce como un thumbnail. En Mac yo lo hago con vista previa:

  • selecciono todos los ficheros del 1.png al 32.png, pulsando Cmd+A
  • los arrastro a una carpeta vacía que acabo de crear, pulsando la tecla Opción de Mac (Alt). Así en lugar de mover los ficheros, se copian
  • selecciono todos los ficheros recién creados, pulsando de nuevo Cmd+A
  • los abro todos a la vez con Vista Previa (Cmd+Flecha abajo)
  • una vez en vista previa, los selecciono todos de nuevo (Cmd+A)
  • y les cambio el tamaño con Herramientas -> ajustar tamaño
  • una vez listo, los grabamos todos (Archivo -> Guardar todo)

Ahora tengo, en dos carpetas distintas, 32 ficheros que se llaman 1.png, .. 32.png, como se puede ver aquí:

Miniaturas antes de renombrar

Miniaturas antes de renombrar

Es decir, tengo los originales y los que he reducido de tamaño. El problema viene cuando ahora quiero cambiar el nombre de los ficheros para que se llamen thumb1.png, … thumb32.png. Renombrarlos uno a uno es un rollo. Y desde terminal me daba pereza hoy. Así que he buscado una herramienta gráfica y me he encontrado con NameChanger, una pequeña Aplicación que funciona perfectamente para esto.

NameChanger en funcionamiento

NameChanger en funcionamiento

NameChanger nos permite renombrar, o añadir algo al principio o final de una serie de archivos, o hacer cambios más potentes usando caracteres comodín. Y siempre te muestra antes de hacer nada, cual va a ser el resultado. Como se puede ver, es una de esas herramientas obligatorias de tener a mano.

Tagged with:
may 11

Hace ya un tiempo que publiqué en el App Store mi tercera App, ClockRing. Es una utilidad que hace que tu iPhone suene cada hora, como suena la radio, con esos pitidos. Aunque puedes escoger otros sonidos, claro. Es una aplicación muy sencilla, que usé para aprender a usar las LocalNotifications de iOS y decidí dejar como Software Libre. Lo que significa que si quieres ver cómo está escrita la App, siempre puedes bajarte su código fuente de su Wiki.

El caso es que para que suene algo cuando se lanza una notificación necesitas un archivo con un efecto sonoro. En mi caso, los busqué libres también y me los bajé de FreeSound.org. Bueno, pues muchas veces vienen en un formato que no está soportado directamente por el iPhone (los que se admiten para LocalNotifications están en esta lista):

  • Linear PCM
  • MA4 (IMA/ADPCM)
  • µLaw
  • aLaw

Se me ha dado el caso hoy de tener que convertir de nuevo efectos de sonido, en este caso desde AIFF hasta WAV. Y no recordaba cómo hacerlo. Ni con qué herramienta. Y resulta que iTunes lo hace todo. Paso a paso:

  • Selecciona los ficheros de audio con los efectos de sonido y arrástralos a iTunes. Aparecerá el típico “+” verde y se añadirán a tu biblioteca.
  • Busca esos ficheros en iTunes, para tenerlos localizados.
  • Ve a Preferencias > General (se debe abrir por ahí)
Preferencias iTunes

Preferencias iTunes

  • Ahora, pulsamos en Ajustes de importación. Se nos abre esta ventana:
Ajustes importación

Ajustes importación

  • Aquí podremos cambiar la forma de importar audio, es decir, cómo queremos que iTunes convierta de un formato a otro. Esto se usa para convertir por ejemplo los CDs en ficheros con un formato determinado, pero también sirve para convertir.
  • Disponemos de los siguientes formatos:
codecs-audio

codecs-audio

  • Ahora ya basta con seleccionar los efectos de sonido, que hemos copiado en iTunes y pulsar en Avanzado > Crear versión de WAV. Esta opción de menú va cambiando para reflejar el ajuste anterior.
  • Pulsando con el botón derecho del ratón sobre estos efectos puedes “Mostrar en el Finder”, lo que te abrirá la carpeta en la que están estos ficheros, por si prefieres trabajar ya con ellos desde el Finder. En mi caso, desde aquí los copio a XCode.

Y así, sin instalar nada más, únicamente con iTunes que viene con cada Mac, podemos realizar esta sencillísima tarea (pero que para un inútil total del audio como yo, es un mundo). Si alguien conoce una forma más sencilla, por favor, que la cuente en los comentarios. Le estaré eternamente agradecido… o lo que dure este blog.

Tagged with:
abr 20

pertinaz.

(Del lat. pertinax, -acis).

  1. adj. Obstinado, terco o muy tenaz en su dictamen o resolución.
  2. adj. Muy duradero o persistente. Enfermedad pertinaz.

Sea el iPad, el iPhone o lo que sea de Apple, últimamente la blogosfera tecnológica me parece la sección de necrológicas del periódico. Sólo les falta empezar con aquello de “La familia y amigos de Steve piden un ruego por el alma de esta pobre tablet…” cada vez que otro fabricante anuncia que va a publicar las especificaciones futuras de algo que a lo mejor a finales de año empiezan a fabricar.

Porque es así de esperpéntico. Imaginemos esto en otra industria, por ejemplo la del automóvil. ¿Alguien se imagina cómo caerían las acciones de Renault si se descolgaran diciendo que van a fabricar un coche que va a ser el Ferrari-killer, sin mostrarlo?. Porque al menos en este sector, en las ferias, te enseñan un prototipo, en un stand dando vueltas y rodeado de niñas monas que no se qué hacen ahí, porque ni te explican cómo funciona el coche ni nada. Es decir, no se atreven a hacer anuncios de humo y esperan a tener algo más o menos tangible. No acabado, prototipos, pero algo.

En el sector del software / hardware, como es virtual (o eso se piensa más de uno al que la corbata le constriñe el riego del tronco cerebral) se puede anunciar cualquier parida y salir ante la prensa con un PowerPoint, dos papelitos y un PNG pasado por PhotoShop y listo. Y esto no sería demasiado grave, si no estuviera ahí el coro de palmeros blogueros. Porque empresas moribundas como Nokia o RIP (digoooo, RIM) pueden hacer todas las tonterías que quieran. Pero al que escribe su opinión desde su independencia se le debe exigir un mínimo criterio.

Pero claro, esto de los blogs se ha convertido en un negocio (para algunos, yo soy demasiado torpe para ni siquiera pagar el alojamiento de esto, que a fin de cuentas es mi página personal). Y ves comparativas del iPad2 y el Motorola Xoom junto con los modelos que los fabricantes dicen que van a sacar, que sí que sí, que verdad de la buena, para el Verano, o luego, o ya veremos, que te haremos una actualización OTA, y si no me tocas lo que rima… Entiendo que los grandes blogs viven de las visitas a sus sitios y de la publicidad, y que si pones dos semanas seguidas: “Últimas noticias en la guerra de las tablets: no hay guerra, el iPad sigue machacando a sus no-competidores, porque ni se ven” la gente deja de acudir porque total, para que me cuentes lo mismo semana tras semana…

Y nada crea más expectación que una buena pelea, aunque en realidad esa pelea no exista, porque de momento es uno pegando y los demás recibiendo. Y se inventan que si han visto el iPhone blanco, el de colores, te hablan de los rumores de lo que traerá, comparan cosas con precio y duración de la batería con papeles, etc. Pues eso no son “noticias tecnológicas”. Es basura. Es el equivalente a los programas de chismorreo de los famosos, llevado a las máquinas. Son el Hola del periodismo tecnológico. Ni aprendes, ni ves nada tangible. Sólo noticias sacadas apresuradamente repitiendo como papagayos lo que las relaciones públicas de los fabricantes les pasan en las ferias (donde por cierto les pagan los viajes, comidas, etc.) o traduciendo rumores del Inglés al Español.

¿Qué me gustaría a mí, que me creo tan listo para criticar al resto? Dos cosas:

  • menos prisa por escribir chorradas y más profundidad en los análisis. No hay que ser el primero en la fiesta, sino el mejor, que decía el tito Steve.
  • una competencia seria y creíble al iPad. La competencia nos hará más fuertes, es lo que siempre digo. Hará un mejor iPad para los que queramos usarlo y mejores productos para los que no. La situación actual de monopolio de facto de Apple no es buena para nadie, ni siquiera para Apple, que aunque gane pasta a camiones se acaba relajando y, por ejemplo, nos mantiene el sistema de notificaciones de iOS, que está claramente diseñado por un retard.
</rant>
<feed-the-troll-in-the-comments-section>
Tagged with:
abr 13

En el último post comenté que estaba usando una máquina virtual de Bitnami para hacer sitios web con WordPress y me pidió Fernando que explicara cómo subir el resultado de ese sitio web a un servidor que tengamos contratado en hosting. Ya que lo estoy haciendo esta semana, voy a anotarlo (para que no se me olvide), pero me gustaría empezar por el principio. Y ya advierto: este post está lleno de frikismo, comando UNIX de terminal y cosas ininteligibles. Luego no te quejes.

¿Por qué una máquina virtual? ¿Y qué es Bitnami?

Una máquina virtual es un programa que me permite ejecutar un S.O. completo dentro de otro. Por ejemplo, puedo arrancar Linux dentro de Windows 7, o Windows XP dentro de Mac OS X. Las máquinas virtuales tienen múltiples usos, pero a mi me encantan para no llenar de programas mi S.O. base. Así no se ralentiza, ni tengo el disco duro lleno de programas de “usar y tirar”.

En el caso de crear un sitio web con WordPress es aún peor. Sin la máquina virtual necesitas:

  • un servidor web, como Apache, que soporte PHP
  • un servidor de BB.DD., como MySQL
  • configurarlo todo
  • instalar WordPress
  • y luego, claro, crear tu sitio con WP, es decir, instalar plugins, ponerlo en Español, crear contenido, probar diferentes temas, etc.

Todo esto se podría hacer directamente en nuestro servidor (ese que tenemos contratado en hosting), pero los inconvenientes son varios:

el sitio está visible mientras lo preparamos (a no ser que lo protejamos, por ej. mediante autenticación HTTP, pero eso exige aún más trabajo)

si la conexión que tenemos a Internet es mejorable, vamos a tardar bastante

Por eso, lo ideal es disponer de una máquina virtual, por ejemplo con Linux ya instalado y que lo traiga todo (Linux, Apache, MySQL, PHP y WordPress). Esto es lo que se llama un servidor LAMP + WordPress. Buscando en el catálogo de máquinas virtuales gratuítas que tiene VMWare me encontré con la Appliance de Bitnami. Es una máquina virtual VMWare con todo lo anterior ya instalado y configurado, gracias a la empresa Bitnami. Para instalarla, la descargamos y descomprimidos, y listo: ya podemos abrirla con VMWare. En mi caso, me he bajado la versión basada en Ubuntu, porque dominio mejor los Linux Debian-based que otros.

Manejando la máquina virtual de Bitnami

La máquina cuando arranca nos muestra una pantalla poco espectacular. Termina con un mensaje que nos indica cómo nos podemos conectar al WordPress que tiene dentro, y poco más.

MV Bitnami

MV Bitnami

En mi caso me indica que conectándome a la IP http://10.0.1.25 me aparecerá la interfaz web de la máquina virtual. Esa interfaz es una página web con información y el acceso al WP que está instalado dentro. Inicialmente el usuario es “user” y el password “bitnami”. Al entrar, llegamos a un WP vacío, que podemos proceder a adaptar. En mi caso, lo que he estado haciendo ha sido:

  • traducirlo al Español. Abajo lo cuento con detalle.
  • instalar un tema de pago que queda bonito y que tenía por ahí abandonado. Me lo compré en el bundle de diseño Bundlehunt.
  • instalar unos cuantos plugins, para tener un formulario de contacto, mapas de Google, etc.
  • crear las páginas necesarias y copiar el contenido (texto y fotos) del sitio web antiguo

Probablemente lo más “complicado” sea traducir WP a español. Pero es muy sencillo. Sólo hay que ir a la página que tiene la traducción de WordPress y bajarse el ZIP.  Lo descomprimimos y veremos que un WP completo, sólo que ya traducido. Como a mí me gustan las cosas complicadas, prefiero pasar sólo los ficheros de localización al Español y decirle a WP que está en Español :-)

Para eso, debemos iniciar sesión en la máquina virtual, e ir a la carpeta: /opt/bitnami/apps/wordpress/htdocs/wp-content/ con un:

$ cd  /opt/bitnami/apps/wordpress/htdocs/wp-content/

Bitnami guarda en /opt/bitnami/apps las aplicaciones web que lleva el appliance, concretamente PhpMyAdmin y WP.

Ahora, vamos a copiar los ficheros que antes descomprimimos. Los vamos a copiar por scp (suponiendo que te conectes a una máquina *NIX), con algo como:

$ scp usuario@la-ip-de-tu-maquina-real:/Users/tu-usuario/Desktop/wordpress/wp-content/languages/* .

Lo que hace la “frase mágica” anterior es conectarse a tu ordenador real (debes indicar la IP), con tu usuario (con el que has iniciado sesión). Te pedirá tu clave. Lo que hace es copiar los ficheros de la ruta que le hemos indicado, en la carpeta de la máquina virtual en la que estábamos.

Bueno, WP tiene los ficheros en su sitio, pero no los va a usar hasta que no se lo digamos. Para ello, hay que modificar el fichero wp-config.php  (en nuestro caso, está en /opt/bitnami/apps/wordpress/htdocs, por lo que bastará con hacer un cd ..). Yo lo he modificado con vi, que para eso estoy en modo geek :-) . Hay que buscar la línea que pone:

define ('WPLANG', 'xxxx');
y dejarla así:
define ('WPLANG', 'es_ES');

Una vez que hemos acabado, grabamos y listo. Yo reinicié la máquina virtual completa (con reboot) para comprobar que todo estaba OK.

Subiendo todo esto a mi servidor en hosting

Ahora que todo funciona como queremos y hemos terminado en local ¿cómo subimos todo esto a mi servidor web?. Supongo que tienes un dominio, pongamos www.misuperwebquemevaahacerrico.com y su alojamiento asociado. Hay que tener claro lo que hay que subir:

  • por un lado, el sitio web de WordPress. Nada más en el apartado web. Es decir, ni la configuración de Apache, ni otras cosas. En el caso de bitnami, sería la carpeta /opt/bitnami/apps/wordpress de la máquina virtual
  • por otro, la base de datos asociada a esta web. Esa BD está en el MySQL que tiene la máquina virtual de bitnami.

Subiendo el wordpress

Lo primero que vamos a hacer va a ser comprimir la carpeta. En la máquina virtual tecleamos:

$ cd /opt/bitnami/apps

una vez en la carpeta apps, nos convertimos en root (ya que si no no podremos leer algunas de las carpetas del WP), con:

$ sudo su

comprimimos con el proverbial tar:

tar cvfz wp.tgz wordpress

esto va a comprimir la carpeta wordpress completa en un fichero llamado wp.tgz. Ahora hay que subir ese fichero a nuestro proveedor de alojamiento. Para eso, primero lo voy a copiar a la máquina física, usando de nuevo scp:

$ scp wp.tgz usuario@la-ip-de-tu-maquina-real:/Users/tu-usuario/Desktop/

Eso debería dejar el fichero wp.tgz en tu escritorio. Espero :-)

Ahora sólo te queda subirlo, usando el interfaz que te de tu proveedor de alojamiento. En mi caso, esto va a RedCoruna y tienen, como todo el mundo, CPanel, que viene con un explorador de ficheros integrado en el navegador que permite subir cosas. Cuando lo tengas en la carpeta que te interesa, descomprímelo. Podrás acceder mediante: http://www.tudominioesequetevaahacerrico.com/wordpress. Y te va a fallar. Recuerda: no hay base de datos aún.

Subiendo la BD

Para subir la BD, primero vamos a exportarla. Para ello, necesitamos activar una aplicación que viene en la máquina virtual, pero que por razones de seguridad está desabilitada. Es PhpMyAdmin, una aplicación web para administrar el servidor de BB.DD. MySQL. Para activarlo, vamos a /opt/bitnami/apps/phpmyadmin/conf/ y editamos phpmyadmin.conf

$ cd /opt/bitnami/apps/phpmyadmin/conf/
$ vi phpmyadmin.conf

y cambiamos la línea que pone

Allow from 127.0.0.1

por

Allow from all
Configurando phpMyAdmin

Configurando phpMyAdmin

Debemos reiniciar el servidor Apache para que este cambio entre en funcionamiento. En el caso de la máquina virtual de bitnami lo hacemos con:

$ /opt/bitnami/ctlscript.sh restart apache

Ahora, apuntando un navegador a http://10.0.1.25/phpmyadmin nos aparecerá una pantalla de login. Usuario: administrator, clave: bitnami y al fin se abre el PhpMyAdmin

Dentro de PhpMyAdmin veremos la lista de BB.DD. a la izquierda:

Lista de BB.DD.

Lista de BB.DD.

Escogemos la nuestra (bitnami_wordpress) y nos vamos a la solapa “Exportar”. Tal como viene debe funcionar. Marcamos la opción “Enviar (genera un archivo descargable)” y se nos descargará, al pulsar Continuar, un fichero con extensión .sql en nuestra máquina. ¡Esa es nuestra BD!

Ojo: en ese fichero (que es la BD de WordPress) las URLs están metidas “a pelo”. Es decir, está lleno de 10.1.0.25 por todos lados. Y no queremos eso. En mi caso, he usado TextEdit de Mac para buscar y sustituir todas las ocurrencias de 10.0.1.25 por www.viajescarrasco.com, que es el dominio que estaba usando. Es un poco lamentable que WP meta en su BD referencias al dominio “hardcoded” en lugar de usar una variable, pero es lo que hay.

Ahora sólo nos queda subirla a nuestro dominio (probablemente usando el PhpMyAdmin de nuestro CPanel). Pista importante: ahora hay que buscar la pestaña “importar” de PhpMyAdmin e indicarle el fichero .sql anterior :-) . Casi seguro que tendremos que crear la BD, un usuario para la misma y darle permisos a ese usuario para esa BD. Todo se hace en CPanel.

Configurar el sitio web

Pero aún no funciona nada. ¿Por qué?. Porque hemos subido un sitio web WordPress que piensa que está instalado en http://10.0.1.25, en lugar de en http://www.midominioetcetc.com. Hay que configurar eso. Para ello, buscamos el fichero wp-config.php (sí, el mismo que tocamos para el idioma) y cambiar el nombre de la BD, usuario y password. Nos debe quedar algo como:

define('DB_NAME', 'minombrededb');

/** MySQL database username */
define('DB_USER', 'usuarioquehecreado');

/** MySQL database password */
define('DB_PASSWORD', 'laclave');

/** MySQL hostname */
define('DB_HOST', 'localhost:3306');

Además, debemos cambiar el fichero .htaccess que viene con bitnami y dejarlo así:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Este fichero hace la “magia negra” de la reescritura de URLs, de forma que funcionen los nombres de página en WP, por ej., cuando escribimos blog.freniche.com/formacion y nos lleva a la página correcta. No existe una carpeta llamada formación: se “traduce” al vuelo de forma que el WP lo interprete correctamente.

Conclusión

Como puedes ver, el proceso de traslado del sitio web es un poco laborioso. Lo bueno que es esto te serviría para mover tu WordPress entre diferentes proveedores de alojamiento. Y lo mejor de todo es que con la máquina virtual puedes hacer todas las pruebas que quieras, sin riesgos.
EOF.

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:-)

abr 01

Sabiendo mi afición por las Google Screen Of Death (GSOD), me manda Francisco Páez (gracias!) esta de un error 404 en Google:

GSOD

GSOD

Increíblemente a Francisco, tras sufrirme como profesor Stasi-Style en el curso de preparación para la certificación SCJP que impartí el pasado verano, le han quedado ganas de leerme y ayudarme con mis neuras.

Y por cierto, si quieres certificar en tu empresa a un grupo de programadores, no lo dudes: mi método de ser el más pesado del mundo funciona :-)

Tagged with:
mar 31

Hace un par de días que estoy con mi número principal en Simyo. He abandonado Movistar de nuevo (lo dejé hace un montón de años para irme a Orange y luego volví). Mi estancia en MS, y los 18 meses que he mantenido el contrato han tenido una buena razón: el iPhone 3Gs de 32 GB que hoy en día sigue siendo mi teléfono principal. Cuando me planteé actualizarme desde mi iPhone 3G, comprado libre en Bruselas, miré las ofertas y si hacía portabilidad desde Orange a Movistar con la tarifa de 25 Eur de datos me quedaba el 3Gs por 49 Eur. En esa época mi consumo de datos era alto, así que me venía muy bien el trato.

Pero las cosas cambian con el tiempo. Dejé Isotrol (de nuevo, por segunda vez) y me quedé en casa haciendo mis Apps para iPhone y preparando mis cursos. Y claro, en casa hay WiFi. Encima donde vivo Movistar no tiene cobertura 3G. Ni buena ni mala: no hay. Resultado: estaba pagando por un tráfico de datos que no consumía.

Cuando se ha cumplido la permanencia, he llamado a Movistar para liberar el 3Gs por IMEI. Sólo me ha costado un par de llamadas. Lo probé con una SIM de Simyo, que tenía para ir probando el servicio y como segunda línea por si las moscas, y todo funcionaba perfectamente. Estaba listo para el salto.

He escogido la tarifa del 3 de Simyo. No hay permanencia. Pagas cada mes 8 Eur. + IVA y tienes 500 MB de datos. Y, por supuesto, pagas lo que hables, a 3 céntimos de Eur. el minuto + establecimiento de llamada. Los SMS son baratos (aunque ya los uso muy poco, pero siempre es mejor que sean baratos, ¿no?). No he pasado un mes completo con Simyo, así que ya veremos como son las facturas. Bueno, si me he equivocado siempre puedo cambiarme a otra.

La portabilidad ha tenido algún que otro bache. Tras solicitarla, me llegó una carta de Simyo con la SIM. Hasta aquí sin problemas. Me llamaron de Movistar para que no abandonase el redil, pero les dije que eso de “mucho te quiero perrito, pero pan poquito” no iba ya conmigo. Si tan buen cliente soy, dame un iPhone 4 gratis y mejores tarifas. ¿Que pido mucho? Vale, pues me voy.

Superada la llamada de MS estuve esperando el SMS que según Simyo me mandarían para indicarme que esa noche se realizaría la portabilidad. El SMS no llegaba. Estaba temiendo que comenzaría el nuevo mes sin estar “portado” cuando me di cuenta la otra mañana que no tenía cobertura en el móvil. Así que pensé “¿a que me han portado y no me lo han comunicado?”. Cambié la SIM y… voilá. Teléfono funcionando. Pequeño fallo de comunicación, pero bueno. En teoría me debía llegar la configuración de los datos del iPhone por SMS. Tampoco me llegó. Llamé al soporte técnico de Simyo (antes de ver que la configuración estaba descrita en sus FAQs) y conseguí hacer que el iPhone mandase correos, tras introducir los nuevos parámetros y sincronizar con iTunes (esto último no me lo indicaron).

¿Resultado final? Tengo más cobertura 3G con Simyo que con Movistar. Y telefónica. Todo funciona bien y la web de Simyo está a años luz de la de Movistar, que es de lo más complicado y anti-cliente que he visto. Encima, tras quejarme en twitter, me han “pasado la mano por el lomo” los de @Simyo_es. Da gusto.

P.D.: puse un ticket en la web de Simyo preguntando por la activación de los datos. Me han respondido ahora, aunque se supone que ya me resolvieron el problema por teléfono. Detecto descoordinación entre el Call Center y su soporte de primer nivel. Encima el correo viene del dominio kpn.es, que es la propietaria de Simyo y no de Simyo.es, que es lo que esperaría cualquiera. Señores, contraten una consultoría ITIL ASAP. A mi, si es posible. Facturo tan caro como necesiten :-)

Tagged with:
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:
mar 15

No recuerdo dónde escuché esta cita por primera vez. Debió de ser en los años de la carrera, allá por el 94 ó 95. Sí, en la prehistoria. El caso es que la he usado muchas veces. Y la última vez ha sido para responder a gente que se asustaba en Twitter de que le he puesto al iMac 12 GB de RAM. ¿Es mucho?. ¿Es poco?. Vamos con ello.

Lo  primero, dar la razón fundamental de ponerle tanta memoria al iMac: porque puedo. Sí, así de sencillo. En el 94 ni hubiera soñado con estas cantidades de memoria, ni siquiera para un disco duro. Es como pensar hoy en una RAM de 32 Hexabytes. Así que no podía plantearme si era mucho o poco: simplemente no podía. Pero hoy en día, cuando 8 GB cuestan 120 Eur. IVA inc., si necesitas esa memoria, o te apetece, tampoco es una inversión que te lleve a la bancarrota.

Además, cuando es aquí donde me gasto mi dinero. Quiero decir, que no tengo moto, no me gustan los coches potentes, ni la ropa de diseñador, ni juego al bingo, ni me gusta la coca, ni jugar al póker. Mis vicios son baratos ¡qué le vamos a hacer!. Nada me gusta más que un buen gadget electrónico. Hay quien le da por coleccionar sellos, o montar maquetas. O tener un yate. Yo tengo chismes.

Así que nada mejor para complementar a mi querido iMac Core i7 que estos 8 GB, que se han sumado a los 4 GB que traía de fábrica. Ahora tengo una máquina redonda, muy equilibrada, potente y estable. Y de la pantalla, para qué hablar :-)

En un día normal de trabajo, si miro el consumo de memoria me puedo encontrar con algo como esto:

Memoria usada

Memoria usada

Este es el consumo que tengo mientras escribo estas líneas. Se puede ver que, usado (ya sea por programas, por el S.O. o que está “cacheando” algo en memoria) tengo 4,59 GB. Algo más que los 4 GB originales. Hace unos meses, el equipo estaría paginando, es decir, tendría que sacar algún programa de memoria y guardarlo en disco (normalmente el que hace más tiempo que no se usa). El dato de Paginación (salidas) sería mayor que 0, y todo el sistema me iría más lento. Estaría tratando de ejecutar, a la vez, más programas de los cabrían en mi memoria RAM.

Como se puede ver, el problema ahora no es ese. Me sobran 7,40 GB. ¿Excesivo?. Para nada. En cuanto tenga que correr alguna máquina virtual con VMWare, o lanzar XCode 4 (con todo lo que ello implica), o jugar a Left 4 Dead 2 sin parar algo ;-) la memoria disminuye y se queda en algo como esto:

Usando memoria

Usando memoria

Uso el ordenador muchas horas al día. Por trabajo, y por placer. Y no hay cosa que me irrite más que quedarme sin espacio en disco, o ver que la máquina no va todo lo “fina” que debiera, por una tontería como es la RAM. Así que, como dice el título, un poco de RAM me hace mucho más feliz. ¡Comprueba la tuya!

P.D.: Si quieres saber cómo interpretar el uso de memoria que está haciendo tu Mac, te recomiendo este excelente post de MPG.

Tagged with:
preload preload preload