¿Cómo le explicamos REST a nuestros hijos?

Llevo unas semanas analizando cómo simplificar un pequeño sistema que se ha ido creciendo poco a poco hasta resultar bastante complejo. Fruto de este análisis he planteado crear una serie de servicios REST para desacoplar las distintas partes del sistema y poder evolucionar cada componente por separado.

Mientras me documentaba, he localizado varias referencias a un artículo escrito en diciembre de 2004 por Ryan Tomayko en el que, en forma de una conversación con su esposa, explica qué es REST. Desafortunadamente, más o menos a inicios de este año, el propio Ryan Tomayko decidió borrar el artículo porque no se sentía cómodo con una posible interpretación discriminatoria en los roles representados por los dos actores.

Tras una pequeña búsqueda, he logrado encontrar alguna copia del texto para leerlo, en parte por el motivo original de recolectar información y en parte por curiosidad. Borrar un artículo, con el trabajo que supone su creación, por una posible interpretación discriminatoria publicando en su lugar un texto explicando los motivos y pidiendo disculpas no es nada fácil y me parece digno de admiración y respeto.

Tras leer el documento, creo que la interpretación discriminatoria es, cuanto menos, rebuscada: conversaciones similares las he tenido yo tanto con amigos como amigas que no han estudiado informática. Yo tengo un conocimiento un poco más profundo sobre estos temas mientras que cada uno de mis amigos y amigas me dan mil vueltas en bricolaje, calceta, cine, coches, cocina, collages, economía, mecánica, medicina, punto, TV, videojuegos, zapping… son las reglas del juego: todos somos diferentes, nos gustan cosas diferentes y lo que nos hace avanzar es sumar todas esas diferencias.

La forma de explicar el concepto usando una conversación me parece muy amena y descriptiva. Creo que sería una lástima perderlo. Así que he decidido traducirlo e intentar reinventarlo de una forma que es menos susceptible de malinterpretar: unos padres explicándole REST a sus hijos. Evidentemente, se trata de una traducción muy libre y adaptada del texto original.
Read More

Anuncios
iMac (late 2012)

Del PC al iMac

A finales del año pasado tocaba renovar mi equipo de sobremesa que, tras más de 6 años de servicio, empezaba a mandar algo más que avisos: ralentización global del sistema debido al acceso a un disco duro en el final de su vida útil, pantallazos azules cuando algún DIMM de RAM fallaba aleatoriamente, tarjeta gráfica quemada que tuve que reemplazar a finales de 2011…

Sé que hay gente que prefiere ir cambiando componentes individuales y mantener el equipo actualizado año a año (de hecho eso lo hice con mi primer equipo) pero yo prefiero exprimir mi equipo hasta que está amortizada la inversión y luego reemplazar todo el hardware con la última hornada del mercado. Creo que así se minimiza el tiempo que dedico al mantenimiento, al fin y al cabo el ordenador es una herramienta y no un fin en si mismo.

iMac (late 2012)

iMac (late 2012)

En esta ocasión, tras 20 años con PCs, decidí probar un equipo Apple y me decanté por un iMac 27″ de finales del 2012. Windows 8 lo tengo el equipo del trabajo, Windows 7 en el portátil, Linux lo uso intensivamente en los servidores del trabajo y quería probar algo diferente. Ahora puedo decir que he utilizado todos los sistemas operativos mayoritarios (logro desbloqueado).

Tras un par de meses con el equipo, para no dejarme llevar por la primera impresión, he decidido escribir un pequeño resumen de lo que ha supuesto el cambio. No esperes una descripción detallada del proceso o consejos certeros sobre qué hacer: esto solo es una serie de comentarios y sensaciones personales que han surgido durante estas semanas.

Antecedentes

Antes de comprender cómo he llegado a este punto vamos a hacer una retrospectiva para ver de dónde vengo.

Mi afición por la informática empezó a finales de los 80 con un Inves Spectrum+ con el que hice mis primeros programitas en Basic. En 1993 di el salto a un PC clónico (un 486DX2) en el que tuve como sistemas operativos MS-DOS, Windows 3.1 hasta Windows 95 y algunas distribuciones RedHat de mediados/finales de los 90. Desde entonces he tenido un par de equipos más (un Pentium IV y un Dual Core).

Profesionalmente, empecé como administrador Windows en el laboratorio de SSOO y trabajé con todas las soluciones que proporcionaba para configurar el entorno de los usuarios integrando tanto los equipos Windows como Linux: datos de usuario y perfiles compartidos en red entre ambos sistemas, directivas de grupo para instalar software… A partir del último año de carrera y mientras estuve en el Laboratorio con la tesis, ejercí de administrador de ambos sistemas.

Casi desde el inicio he flirteado muchas veces con Linux y lo he tenido más de una vez como sistema principal o en arranque dual en mis equipos con diferentes entornos de escritorio. En cuanto a servidores he utilizado mayoritariamente Linux (gracias al famoso LAMP) con algunos desarrollos esporádicos en IIS.

Mi relación con sistemas de Apple empezó en el 2010 cuando adquirí un iPod Touch 4G, por recomendación de mi amigo Santi, para usarlo de “reproductor de música + PDA”. Cumplía todos los requisitos y funcionaba realmente bien.

Un año después adquirí un iPad 2G como gratificación por un trabajo. Aunque reconozco que no le encontraba sentido cuando fue lanzado, poco a poco descubrí el hueco de mis necesidades que cubría. Como efecto colateral, mi portátil se vió poco a poco relegado hasta el punto que no sé si volveré a adquirir un equipo portátil en el futuro (aunque nunca se sabe).

Finalmente, a finales del 2012 decidí cerrar el salto completo a la plataforma con la compra del iMac como equipo de sobremesa y del iPhone como teléfono.

Ventajas

Algunas de las mejoras respecto a mi equipo anterior:

Escritorio diáfano

El iMac no necesita nada más que un único cable de alimentación y no tiene torre. Tanto el teclado como el ratón como el trackpad son inalámbricos con el receptor integrado por lo que no se necesita ni siquiera conectar una base al USB.

Conexión iMac (late 2012)

El único cable imprescindible para que funcione el iMac

Parece una tontería pero vamos a comparar:

  • Antes tenía encima de la mesa la torre, monitor de 22″, teclado + ratón inalámbrico + base inalámbrica/cuna, altavoces y un dongle WIFI con una base USB para colocarlo encima de la torre por la mayor cobertura.

    Tenía 4 cables de alimentación (torre, monitor, base teclado/ratón y altavoces) con 1 conversor (base teclado/ratón), 1 HDMI, 1 USB/PS2 (base teclado/ratón), 1 USB (dongle WIFI) y 1 jack (altavoces). Evidentemente, me obligaba a utilizar una regleta que pudiera apagar cuando no utilizaba el equipo.

  • Ahora tengo el iMac, teclado, ratón, trackpad y un único cable de alimentación. Cuando es necesario, conecto el cargador de las baterías a cualquier enchufe durante unas horas.

    Podría conectarlo usando un cable Ethernet pero para mi uso diario no es realmente necesario.

Reduciendo al mínimo la cantidad de elementos y cables es más sencillo trabajar y mantener limpio el escritorio. Además, esto me ha permitido ganar unos 10-15cm de mesa que ocupaba la torre y que me impedían poner un monitor mayor de 22″.

Fluidez

La respuesta a casi todo es prácticamente instantánea. Da lo mismo que esté programando, con decenas de pestañas abiertas, escuchando música, con el correo y el chat abierto. Todo se mueve como si acabara de arrancar el equipo.

Se podría argumentar que es algo normal en los equipos nuevos pero mi sensación es que va más fluido que cualquier equipo de última generación con la última versión de Windows/Linux. Que el sistema operativo y el hardware estén hechos el uno para el otro ayuda bastante.

Comodidad

La sensación global con el equipo es muy buena: la pantalla cansa mucho menos mi vista que mi anterior monitor ya utilice gafas o lentillas; los dispositivos de entrada son cómodos y funcionan perfectamente sin problemas en ningún momento; las baterías tienen una duración superior con creces al mes incluso bajo gran demanda…

Aunque al inicio cuesta acostumbrarse, el uso de los gestos para controlar el sistema operativo abre muchas posibilidades. Las teclas rápidas son más o menos estándar con lo que todas las aplicaciones se comportan de forma similar. Estas pequeñas ayudas aceleran muchas de las tareas habituales.

Integración

Casi todo mi entorno está basado en Apple. Esto implica una integración completa: no existen problemas entre ninguno de los componentes y todo funciona a la perfección. Cualquier cosa que haga en cualquiera de mis dispositivos iOS o en el escritorio se refleja automáticamente en los demás.

Aunque parezca una tontería, esto reduce el tiempo que pierdo investigando y arreglando problemas e incompatibilidades. Menos tiempo perdido significa más tiempo para hacer lo que en verdad importa.

Utilidades y herramientas

En el fondo tiene un corazón *nix con lo que muchas herramientas básicas en mi día a día están disponibles: SSH, montajes, NFS, un buen terminal de consola… Y puedo utilizar los mismos scripts y secuencias que utilizo en los servidores del trabajo (son Linux con lo que tengo las mismas herramientas o equivalentes).

Por ejemplo, suelo tener instalado PuTTy, WinSCP, Filezilla y KeePass+KeeAgent para poder utilizar SSH en sistemas Windows y, aunque funciona bastante bien, siempre tengo la sensación de que el puzle no acaba de encajar todo lo bien que debiera.

Inconvenientes

No todo van a ser cosas buenas, todo tiene sus sombras:

Renovar el flujo de trabajo

Tras la configuración inicial y las primeras pruebas toca empezar a hacer cosas serias y es cuando te entra el pánico: nada es como antes. Las primeras semanas estás bastante perdido mientras que te acostumbras a la nueva forma de hacer cosas.

Pasado un tiempo de aclimatación empiezas a encontrar cómo tienes que trabajar a partir de ese momento y a descubrir cosas únicas que nunca habías pensado. En gran medida esa es la gracia de probar el sistema: tener algo completamente nuevo con lo que aprender, que me vuelva a sorprender al sentarme delante de un ordenador y formarme un criterio propio de la plataforma.

Precio

Sin paños calientes: no es un equipo barato. Si lo unes al desconcierto inicial te hace dudar si has hecho una buena inversión.

Comparándolo con montar un PC clónico equivalente (buen monitor del que cuelgues una micro-caja) posiblemente te ahorres un 10-15%, si montas un equipo más convencional con una torre o mini-torre el ahorro puede ser algo mayor pero si buscas un todo-en-uno el margen se estrecha hasta prácticamente equipararse o incluso superarlo en algunas configuraciones.

Cada característica se paga y cada persona tiene su criterio en cuanto a lo que considera más importante: unos preferirán el todo en uno, otros sacrificar ese diseño por una mayor potencia, otros que el equipo sea lo más barato posible o…

Entorno cerrado

No es un equipo pensado para destriparlo y cambiarle piezas. Lo único que puede modificar el usuario a su gusto es la memoria RAM (y sólo en el modelo de 27″). Cambiar cualquier otra pieza no está previsto salvo que lo lleves al servicio técnico.

En mi caso no supone demasiado problema: únicamente cambié la configuración del 486 y la gráfica que falló de mi último equipo. El resto de mis equipos tanto sobremesas como portátiles tal y como los compré fueron reciclados (creo que nunca he tirado un componente operativo: se lo he pasado a un amigo o lo hemos usado como piezas de reemplazo).

Software

Existe mucho software para Mac tanto libre como gratuito o de pago. Casi todas las aplicaciones que utilizo habitualmente están disponibles para las tres plataformas con lo que únicamente hay que cambiar el paquete que se descarga.

De las aplicaciones que no están portadas a Mac añoro principalmente KeePass y Paint.NET, aunque ya tengo reemplazos: el llavero nativo de Mac y Gimp, a los que me estoy acostumbrando.

Otro tema es la conexión con el escritorio remoto (que es parte de la suite de Microsoft para Mac): no acaba de ir fino y pierde la conexión con demasiada frecuencia.

Puede que pruebe (Open|Libre)Office en algún momento o compre las aplicaciones de Apple… no es algo que sea imprescindible en este momento.

Balance

De momento el cambio está resultando muy satisfactorio. Una vez superada la crisis inicial de que nada es como era antes y empiezas a localizar alternativas a tus aplicaciones y formas de trabajo el equipo se convierte en una muy potente herramienta.

La sorpresa: llevo más de 20 años tecleando en PCs pero tras apenas 10 días usando el teclado del iMac me resulta más natural y me cuesta volver al teclado PC en el portátil o en el trabajo. Lo mismo me pasa con el Magic Mouse o el Trackpad. Es extraño ver lo rápido que me he acostumbrado.

La pregunta que me hacen mis contactos: ¿volverías a comprar un Mac? Respuesta a día de hoy: probablemente sí. Pero este equipo espero que dure 4-5 años (una eternidad en la escala de tiempos de la informática) y, cuando toque renovarlo, evaluaré mis necesidades y las distintas alternativas en busca de lo más adecuado. Puede que siga con Mac o puede que vuelva a Windows o quién sabe qué otra alternativa.

Social Media Custom Graphics Cheat Sheet

Personalizando el avatar, nuestra imagen on-line

Un avatar (y no me refiero a la película del mismo nombre que se basa en el concepto) es una imagen que representa a un usuario. Existen distintas tendencias como usar fotos reales, caricaturas, imágenes prediseñadas, autogeneradas o de personajes famosos ya sean reales o de comic, película, videojuego o serie de televisión.

A día de hoy prácticamente la totalidad de los sistemas de mensajería, foros de discusión o redes sociales permiten subir avatares de usuario (que suelen denominar imagen del perfil), fondos o “portadas”. Lo que no suelen especificar es el tamaño más adecuado para subir la imagen.

Aunque empecé con avatares prediseñados con el tiempo he evolucionado a imágenes reales que “humanizan” el perfil. Recientemente, he actualizado la foto que utilizo como mi avatar y me he enfrentado a este problema. Así que empecé a buscar y este es el resumen de mis pesquisas.
Read More

PuTTY icon

SSH en Windows

Uno de los puntos más débiles de Windows el soporte de SSH, estándar de facto para conexiones seguras a otros sistemas. Mientras que en ambientes Linux y Mac acceder a otros sistemas utilizando SSH está a la orden del día, Windows no proporciona ni un mísero cliente con esa misión. Esto limita considerablemente la utilidad de Windows para administración de sistemas.

Por ello es necesario instalar una serie de aplicaciones que proporcionen los clientes necesarios. Dejando a un lado las opciones más completas y pesadas como instalar un OpenSSH portado a Windows o utilizar algún emulador de POSIX (cygwin o similares), el objetivo es disponer de un sistema de conexión remota, completamente operativo y utilizando software abierto.

Y por si fuera poco, también se intenta configurar adecuadamente para mejorar su funcionamiento e incluso incrementar la seguridad en el acceso.

Read More

Proteger la conexión al escritorio remoto en Windows

El escritorio remoto de Windows es una herramienta muy útil para acceder a un equipo con ese sistema operativo desde cualquier lugar. Se incluye en todas las versiones recientes de Windows (a partir de Windows XP) aunque es necesario activar el escritorio remoto manualmente ya no lo está por omisión.

En su implementación permite abrir a pantalla completa el escritorio del equipo remoto pudiendo interactuar con él prácticamente como si “estuviera sentado enfrente del equipo”. Esto permite múltiples aplicaciones como el acceso a documentos, aplicaciones o intranets privadas que sólo son accesibles desde ese equipo.

Como casi todas las cosas, si se utiliza de forma adecuada es una gran herramienta pero puede ocasionar algunos inconvenientes, sobre todo cuando hablamos de seguridad: se trata de una puerta trasera a sistemas con unos privilegios elevados por su ubicación en la red.
Read More

(Geo)localización continua en iOS5

La geolocalización (aunque el término correcto en castellano sería georreferenciación) no es más que ubicar algo en un sistema de coordenadas, aunque el término se usa cuando estamos ubicando físicamente un dispositivo tecnológico. Cualquier smartphone dispone de este tipo de servicios que son útiles cuando se quiere acceder a Google Maps para ver dónde nos encontramos, o buscar una tienda cercana…

Por serendipia, mientras curioseaba entre las opciones de un iOS5, he acabado en un menú de las opciones de localización (Localización > Servicios del sistema). Entre las opciones aparece “Icono en la barra de estado”, que permite mostrar un icono (un triangulito) en la parte superior derecha al lado del porcentaje de batería, como desactivado. Y, como no puedo quedarme quieto, lo he activado.

Opciones localización iOS5

Opciones de Localización > Servicios del sistema con sus valores por omisión en iOS5.

Automáticamente ha aparecido el icono, como si alguna aplicación estuviera usando el servicio de localización en ese momento. Era un poco desconcertante: ninguna de las aplicaciones abiertas debía estar usándolo. Pero, además, sólo debería aparecer si la aplicación en primer plano lo usa, aunque puede que eso hubiera cambiado.

Empecé a cerrar las aplicaciones abiertas, y el icono seguía indicando que algo estaba usando la localización, hasta que no quedó nada abierto: la localización seguía activa. Abrí las opciones de localización para aplicaciones y ninguna aplicación tenía el icono violeta indicando un uso en el momento, pero el icono general seguía insistentemente al lado del de la batería.

Finalmente, descubrí el causante: al retornar a la pantalla en la que había desencadenado esta situación, descubrí que el servicio de zona horaria tenía el icono violeta, indicativo de que estaba utilizando la localización. Tras inhibir el acceso a la localización el icono general desaparece instantáneamente comportándose como en la versión anterior.

Parece que este comportamiento se debe al ajuste automático de fecha y hora (posiblemente, algún tipo de NTP) y, de hecho, si se desactiva dicho ajuste, pasando al modo manual, también desaparece el icono de localización activa. Una posible explicación es que iOS5 está determinando la ubicación del dispositivo para conocer la zona horaria en la que se encuentra y ajustar adecuadamente el reloj. Esta detección automática podría ser de interés en algún caso, pero no para la mayoría que no suelen cambiar de franja horaria prácticamente nunca.

Por si fuera poco, parece que la localización de la zona horaria podría ser la causante de la reducción en la autonomía de la batería de los dispositivos iOS5. Salvo en los casos que se viaje mucho cambiando de zona horaria, puede ser una buena idea desactivarlo ya que no se pierde funcionalidad y puede que se prolongue la duración de la batería.

¡Linux se come mi RAM!

Linux se come mi RAM

¡Linux se come mi RAM!

¡Ayuda! ¡Linux se come mi RAM!

En varias ocasiones me han preguntado, o usado como argumento en contra, por qué en las últimas versiones de los sistemas operativos no queda casi RAM libre y está siempre ocupada. Las variantes son múltiples: “No me queda memoria libre”, “la nueva versión de Windows es peor me consume toda la memoria”…

Finalmente, alguien ha decidido dar respuesta a esta pregunta centrándose en Linux pero, desgraciadamente, en inglés. Este artículo es una traducción libre de Help! Linux ate my RAM!.

Read More