Posts Tagged ‘mac’


Apple ha sido el líder en laptops desde hace varios años. Es prácticamente la laptop oficial de cualquiera que tenga que mostrarse con una laptop ( o sea conductores de TV, artistas, hispters, etc). Incluso yo tengo una y puedo decir que es una laptop que no da problemas de ningún tipo, por lo que es mi primera opción si tengo que trabajar fuera de casa. Incluso, antes de mi Macbook Pro Retina, estuve usando una Macbook Air y a pesar de ser menos potente, me funcionó perfectamente para el trabajo. Parece que la batería durara para siempre y trabajar con múltiples aplicaciones es simplemente espectacular. Además, el cool factor es importante. No hay ninguna laptop Windows que den tantas ganas de usar como una Macbook, hasta ayer.

Microsoft presentó el Surface Book y parece que esa es la laptop que hay que tener porque tiene los specs más altos en hardware y además Windows 10 ya ha demostrado que funciona ligero en todas partes, pero además de eso, ha hecho algo que Apple se ha negado por mucho tiempo: Una laptop que pueda trabajar como tablet. La idea no es nueva y ya tenemos algunos ejemplos de esto,  pero Apple ya dijo que no pasará con Macbook. Es cierto que se han introducido ciertos cambios en Mac OSX para ser más parecido a iOS pero ya rechazaron la integración de ambos. Para Microsoft, todo es Windows 10 y ya quedó demostrado que es cierto: corre en Tablets y en las famosas computer stick que se conectan al televisor.

Siempre quise una super laptop con Windows, pero siempre tuve que comprar la menos decepcionante en lugar de la que realmente quería y luego encontrar que hay muchos líos. Estos líos son los que tienen que resolverse para que Surface Book sea realmente la “Ultimate” laptop como dicen.

  • Distribución de teclado: Apple siempre ha puesto a disposición sus Macbook con varias disposiciones de teclado por lo que siempre pude ordenar la mía con la distribución de teclado Western Spanish. Con todas las laptops Windows, siempre tuve que esperar que salieran localmente porque al momento del lanzamiento solamente se ofrecian con teclado inglés.
  • Cargador con conector universal: Casi todas las laptop Windows vienen con un cargador que tiene un enchufe de 3 puntas donde 1 punta es para la toma de tierra. Ok, esto es más seguro, pero al menos debería venir con el adaptador a 2 porque en Latinoamérica es muy raro que las tomas vengan con la toma a tierra. Algo simple pero que marca mucho
  • Garantía Universal: ya se que esto es muy difícil por la cobertura, pero Apple no tiene oficina local en Perú y a pesar de eso tienen socios locales que cubren la garantía de equipos sin problemas y sobre todo , sin costo si tienes el plan de garantía activo, que cuesta un poco mas pero que vale la pena completamente. Personalmente, le cambiaron la pantalla a mi macbook air sin costo y en un tiempo aceptable. La macbook air no volvió a fallar desde entonces.
  • Cargador Universal: De repente es algo tarde, pero si fuera posible que todos los Surface puedan compartir el mismo cargador sería genial.

Ahora, si esto se puede extender incluso a la siguiente generación Surface, podría significar la consolidación de un nuevo líder en la categoría de laptops. Lo paradójico es que para tumbarse el liderazgo de Apple en laptops, Microsoft tuvo que crear una nueva categoría de computador que fuera tan buena que desapareciera todas las anteriores. Veamos si funciona de esa manera, mientras tanto, esperaré por una Surface Book con teclado en español.

Advertisements

Durante todos estos años como programador, mi mayor problema siempre ha sido la instalación de software y si es Open Source con mayor razón. Si eres un programador me entenderás que eso de fijar variables de entorno, copiar archivos, modificarlos es una jarana criolla en Barrios Altos. Incluso, hasta hace unos años era cool decir “voy a hacer una partición linux” para probar ciertos programas. Hoy eso queda huachafo.

La solución hasta hace un par de años, o incluso menos, era la de hacer máquinas virtuales con tu VMWare o Virtual Box si eras misio (pero no por eso con menos funciones). Simple, cuando querías algún otro sistema operativo prendías la máquina virtual y listo, instalabas ahí todo lo que querías probar. Para los que enseñaban Oracle, esta era la opción pues comenzaban la clase, hacían destrozos en su VM y luego regresaban a la versión original y listo para el siguiente turno.

Para las empresas, también las máquinas virtuales ayudaron a aprovechar el hardware mucho mejor. La lección aprendida es que una PC, Servidor o cualquier tipo de computador no utiliza el hardware a plenitud a menos que se lo exijas, y con una sola aplicación no lo vas a lograr a menos que estés programando a bajo nivel. Con las máquinas virtuales eso se hizo más simple y  permitió ahorrar mucha plata a pesar de que aún hay gente que les tiene miedo.

La cosa no queda ahí. El año pasado de la nada recibí un correo presentando un proyecto llamado Dockers que no tiene nada que ver con pantalones. Después de muchas pruebas puedo decir ahora que es lo que faltaba tanto para programadores como para administradores: La posibilidad de crear entornos aislados donde una aplicación pueda correr, casi como una VM pero para una aplicación en particular. El día de hoy ya veo porque tiene cada vez mas empresas apoyando esta tecnología incluso grandes como Google.

Primero tratemos de ver en forma simple de que se trata Dockers. Primero pensemos en una app que puede ser Java. Para que funcione bien hemos aprendido todos estos años que hay que fijar primero el Entorno, es decir, las rutas y variables indicando donde están los archivos principales y los valores que indiquen que version de Java estamos usando. Para muchos esto queda oculto pues le dan al instalador en Windows y no hacen nada mas. Los verdaderos programadores de Java en cualquier plataforma han tenido que fijar su entorno para lograr trabajar sin problema. Con el entorno fijado, ahora hay que asegurar que estamos usando la versión correcta del SDK  para compilar los programitas y también verificar la versión del runtime. Y, finalmente para casos extremos ya teníamos que fijarnos que ciertos puertos estuvieran disponibles para cosas raras como JMX o JMS o probar un servidor HTTP. Todo esto era algo que tomaba casi 1 día en configurar y probar para recién empezar a programar o para publicar nuestra aplicación en producción.

En resumen: Entorno, Archivos y Red.

En una VM no hay problema porque es como tener una máquina limpia para una sola aplicación, pero ya vemos que es casi un desperdicio a pesar de que podemos controlar la asignación de recursos. Aquí es donde entra Dockers. ¿Qué tal si en lugar de 1 máquina nos dan 1 usuario totalmente limpio para nuestra aplicación? Ya sabemos que los entornos de ejecución de cada usuario son totalmente independientes con excepción de los servicios y la configuración de red. Lo principal aquí es que una app ejecutada bajo el usuario Juan no se puede tumbar a otra app que se ejecuta bajo el usuario Andrés a menos de que se trate de un bug muy feo.

Docker hace eso, crea una máquina virtual en tu máquina y crea un usuario para cada “VM” que quieras usar y le agrega un administrador de archivos y de configuración de red de tal forma que tu solo tienes que acceder a tu app a través del un IP virtual en tu máquina y un puerto. Genial. Esto significa que si quieres jugar con entornos como Nginx, Yii2, Node.js y demás que están fuertemente ligados a entornos ya no necesitas tener un entorno con variables PATH gigantes, pero lo mas importante, ya no vas a configurar tu entorno nunca mas.

La cosa no queda ahí nomás. Docker provee un registro o biblioteca de “Contenedores” que no son más que aplicaciones ya configuradas listas para usar. Por ejemplo, por alguna razón Couchbase no me funciona en Windows, después de varios días de prueba me puse Dockers y bajé un contenedor con Couchbase ya listo y funcionando en menos de 5 minutos, en un par de comandos. Lo mismo en Mac OSX, pues como saben viene con su propio PHP y hay casos como YII2 que requiere de un PHP mas reciente, después de meses de fallar, le puse Docker al Mac y el contenedor Yii2 y listo en 5 minutos. Para un entorno productivo el proceso tendría que ser mas o menos igual, con la diferencia que habría que fijar los volúmenes de seguridad y configurar un poco mas a medida la maquina virtual host y todo eso, pero lo mas pesado ya no sería problema.

Ahora, Docker no es para todo tipo de aplicaciones. Básicamente, Docker es para servicios del lado del servidor que puedan ser publicados de forma “headless”. En cristiano, si tu app del lado de servidor se instala tipo Windows, ya fuiste. La cosa es que la instalación del servicio se pueda hacer mediante la simple copia y configuración de archivos, algo que para el mundo UNIX es algo normal. Además, se debe tener en cuenta que Docker utiliza un sólo “HOST” virtual donde pone a todos los contenedores, y por ahora ese HOST corre Linux. No creo que pase mucho para que Microsoft haga algo al respecto.

Por mientras, hay una serie de funciones adicionales que tiene Docker que hay que revisar como es la gestión de volúmenes a fin de hacer cosas interesantes como “Contenedores” redundantes apuntando a un mismo espacio en disco. Cool.

Mientras tanto, para ser superficial, Docker es un “must have” si es que eres programador y estas con el tema de desarrollo de aplicaciones basadas en el mundo Open Source. Y si eres un “hard core” hay otra cosa mágica llamada Vagrant pero ya será tema de otro post.

Dense una vuelta por Docker.com y dejen de perder el tiempo fijando variables de entorno y compatibilizando versiones.





%d bloggers like this: