Comprar un portátil para desarrollo en 2019

Posted: mayo 13th, 2019 | Author: | Filed under: Sin categoría | Tags: , , , , | No Comments »

Toca cambiar de portátil. 8GB de RAM ya se quedan cortos. La patilla de la pantalla está dañada y no parece que vaya a aguantar mucho más. Y la batería con una vm, el ide y el navegador no dura mucho más de 1h.

Para situarnos el anterior comprado hace cuatro años era un MSI GE60 2PC Apache:

  • Micro i7-4720HQ. 2.60GHz de frecuencia base, hasta 3.60GHz con el Turboboost. 4 cores, 8 threads, 6MB de cache y un TDP de 47W.
  • 8GB RAM SODIMM DDR3 a 1600 fabricada por Kingston. No se cual es la latencia.
  • Nvidia GeForce GTX 850M con 2MB RAM
  • Disco duro mecánico de 1TB a 7200rpm
  • Pantalla de 15.5 y resolución de 1920×1080 normalita
  • Wireless-AC 3160, b/g/n y bt 4.0
  • hdmi, vga. 2 puertos USB 2.0 y 2 puertos USB 3.0, además de jacks para salida y entrada de audio.
  • 383 x 249 x 30 y 2.6kg de peso con batería
  • Batería de 6 celdas, 49Wh

Cuando lo compré escribí una guía de compra de portátil que aunque desactualizada me sirve de base para buscar uno nuevo. En base al rendimiento actual los requisitos no han variado demasiado:

  • Todo lo importante debe funcionar al 100% con linux. Si no va la luz del teclado me da igual. Si deja de funcionar el wifi con cada actualización del kernel adios.
  • Mínimo 16GB de RAM
  • Un i7 o equivalente en AMD. Un vistazo rápido me dice que los i5-82xxu que se montan en este rango de precios no son mucho mejores que mi micro actual y no me interesa averiguar si con un i5 me llega.
  • Resolución pantalla mínima 1920 x 1080. Como la mayoría del tiempo uso una externa como principal no necesito que sea extraordinariamente buena pero no quiero quemarme los ojos así que será un plus interesante
  • Mínimo 1TB de disco
  • No tengo necesidad de gráfica dedicada pero prefiero que no me coma RAM extra
  • No lo quiero más grande ni pesado que el actual. A pesar de que el 85% del tiempo está apoyado en una mesa, el 15% restante de viajes en tren, reuniones y uno o dos viajes de trabajo al año hacen que prefiera uno más pequeño. Pero no voy a sacrificar más de 150€ o rendimiento por ello
  • Quiero un teclado «bueno» a pesar de que la mayor parte del tiempo use uno externo
  • No tengo demasiadas necesidades de conectividad y puertos, no necesito Bluetooth y me da igual que tenga salida VGA y lector de DVD. Estos detalles me ayudaran en la decisión final pero asumo que con el resto de características que busco las necesidades mínimas en este aspecto estarán cubiertas. Update: Cuando revisé las opciones disponibles esto varió un poco, más en otro post
  • La marca no me preocupa. Hay demasiadas opiniones y experiencias particulares a favor y en contra de todas las marcas. Por experiencias cercanas doy puntos positivos a MSI y Slimbook y negativos a los HP y los Dell pero sólo en la clasificación final cuando haya dudas. No a priori. Y lo mismo con otras consideraciones como el uso de minerales de zonas de conflicto
  • Mi orquilla inicial es amplia y la reduciré a medida que investigue un poco. Empezaré por portátiles entre 900 y 1300€ con IVA. Una cantidad por la que se puede comprar algo aceptable para cuatro años si estás dispuesto a sacrificar alguna característica a cambio de precio como: batería, tamaño o potencia.

Hay un par de puntos clave sobre los que tenía dudas al principio:

  • Tamaño de la pantalla. Probablemnte la decisión más eliminadora a la hora de comprar el portátil. El de ahora es de 15.6 y para mi uso es cómodo. Pero siempre dudo con coger uno más pequeño. 14» sería perfecto. A los de 13» les tengo algo de manía. Update: Al poco de empezar a buscar los de 14» quedaron prácticamente descartados porque no me interesaba tanto sacrificar rendimiento o precio a cambio de mejoras de tamaño y batería
  • Con el disco duro también tengo dudas. De comprar unicamente un único disco magnético (HDD) tengo claro que sea de 7.200rpm. Una búsqueda rápida me dice que hay algún SSD de 1TB (lo ideal) a partir de 1.100€ pero en general suben bastante el precio. La opción de dos discos SSD + HDD puede ser buena pero me da que consume bastante batería y me puede fastidiar un poco mi organización actual de particiones, donde guardo las cosas cifrado y backups. Update: Cerca de tomar la decisión final quedó claro que en ese rango de precios tengo que sacrificar mi organización actual.

Con esto en la cabeza preparo mi hoja de cálculo y la inicializo con un par de configuraciones de Slimbook que me servirán de referencia. Luego voy rellenando algunos datos principales y descartando algunos directamente a partir de la búsqueda en un par de páginas. Fundamentalmente:

  • https://www.pccomponentes.com/
  • https://slimbook.es/
  • https://www.vantpc.es/
  • Amazon

y un vistazo rápido a:

  • http://tiendas.mediamarkt.es/ordenadores-portatiles
  • https://www.worten.es/inicio/informatica/ordenadores/portatil.html
  • http://www.elcorteingles.es
  • https://www.dell.com/es-es
  • https://www.pcbox.com/
  • https://www.lenovo.com/

Si estás interesado en este tema puedes ver otros artículos parecidos o seguir esta serie en esta etiqueta.


Virtualbox + Windows + VideoConferencia Múltiple en Skype

Posted: julio 24th, 2018 | Author: | Filed under: Sin categoría | Tags: , , , , , , | No Comments »

Si usas linux no sería extraño que alguna vez te hayas encontrado con una ineludible videoconferencia de grupo por Skype y hayas tenido que hacer números para poder participar.

Quien dice Skype, dice alguno de esas extrañas aplicaciones privativas de videoconferencia que alguna gente (clientes) insisten en usar.

Si tienes una licencia de Windows que puedas reusar para una máquina virtual, a mi estas instrucciones me funcionan en Ubuntu 18.04 para poder usar webcam y micro.


# Substituir por el usuario deseado
USER=$(whoami)

sudo apt install virtualbox virtualbox-ext-pack virtualbox-guest-additions-iso virtualbox-guest-x11 virtualbox-dkms
sudo usermod -a -G vboxusers $USER
sudo usermod -a -G video,audio,pulse-access $USER
sudo usermod -a -G audio pulse

Tras crear la máquina guest con Windows:

  • Encender la máquina virtual
  • `Dispositivos ópticos` -> `montar una nueva iso` -> En `/usr/share/virtualbox` seleccionr VBoxGuestAdditions.iso.
  • En caso de que no se ejecute automáticamente el cd/iso, ejecutaremos el .exe desde el explorador de archivos.

Con estas instrucciones tendremos una máquina virtual que soporte webcam, audio, usbs, portapapeles bidireccional (a activar en la configuración de cada máquina), …


Cifrar una disco duro externo en Ubuntu

Posted: junio 10th, 2018 | Author: | Filed under: Sin categoría | Tags: , , , , , , | No Comments »

La sencillez con que se pueden hacer ciertas tareas en Ubuntu u otras distros GNU/Linux ha mejorado enormemente desde la última vez que escribí sobre esto como cifrar un disco duro.

A día de hoy en Ubuntu la mejor opción es usar el asistente gráfico. Llega con insertar el USB y desmontarlo. A continuación desplegamos el menú contextual del disco externo pulsando con el botón derecho sobre él en el navegador de archivos y seleccionamos Format.

En la ventana de opciones seleccionamos las que aparecen en la siguiente captura.

Y listo, ya tenemos un disco duro externo cifrado en formato ext4 ideal para hacer copias de seguridad.


Migrar a GitLab manteniendo mirrors en GitHub

Posted: junio 9th, 2018 | Author: | Filed under: Sin categoría | Tags: , , , , , , , , | No Comments »

En iCarto habíamos planificado hace un tiempo migrar nuestra infraestructura de desarrollo (repositorios de código principalmente) a GitLab. Estos días hemos terminado la migración y he aprovechado para escribir un artículo de como se pueden mantener mirrors de los repos de gitlab en github a través de la propia plataforma o con un servidor intermedio.


Libro: El corredor del laberinto

Posted: diciembre 31st, 2017 | Author: | Filed under: Sin categoría | Tags: , , | No Comments »

He aprovechado las vacaciones de navidad a uno de mis «placeres culpables» que es la lectura de sagas Young Adult de ciencia ficción o fantasía. En este caso toco el turno de «El corredor del laberinto» de James Dashner.

Poco que decir de este libro a parte de ser una decepción absoluta. De los que me he tragado hasta ahora Harry Potter, Los Juegos del Hambre, Divergente, … esta serie es la peor y no la recomiendo.

Clasificación: 2/5

Te gustará si: Eres un fan incodicional de este tipo de novelas y Divergente te pareció buena.

Puedes comprarlo en Amazon, aunque hay quien te lo presta gratis en epubgratis.

Si este post te ha valido para ahorrarte unos euros y un par de horas puedes comprar alguno de los libros que si recomiendo desde los enlaces de mis artículos. Me llevo un pequeño porcentaje que me anima a seguir ahorrando tiempo a quien se fíe de mis críticas :)


Libro: Dive Into Python

Posted: diciembre 8th, 2017 | Author: | Filed under: Sin categoría | Tags: , , , , | No Comments »

Hay una versión del libro para python 2, cuya última edición es de 2004, y una versión centrada en python 3 con algo de contenido reescrito. El autor original Mark Pilgrim hace tiempo que desapareció de internet, pero los libros continúan siendo mantenidos aunque poco actualizados en github.

Ambas versiones de los libros tienen buenas puntuaciones en Amazon [v2] [v3] y Goodreads [v2] [v3]

Se venden como un hands-on en python, es decir poca teoría y presentar ejemplos prácticos.

La estructura de ambas versiones es la misma para todos los capítulos comienza con un ejemplo de código, y a continuación lo explica paso a paso. Durante el proceso va introduciendo nuevas funcionalidades del lenguaje. Tal y como está estructurado no es adecuado para alguien sin conocimientos de programación previos. Tampoco me parece adecuado para gente que sepa de otro lenguaje y quiera aprender python.

Algunos de los capítulos de la segunda versión se quedan antiguos y/o muy específicos como trabajar con http, xml o html. La parte de testing, tdd y refactoring es bastante limitada y no me acaba de convencer, aunque hay que reconocer que pocos libros no específicos tratan estos temas, por lo que es de agradecer que al menos los mencionen. Los primeros tres capítulos y el de expresiones regulares son casi un relleno, me parecen avanzados para alguien que no sepa python, poco útiles para quien ya controle del lenguaje. Los capítulos de Introspección, POO, Programación Funcional y Funciones dinámicas pueden aportar algún conocimiento de interés y funcionalidades del lenguaje algo menos habituales de usar.

En la versión 3 pasa más o menos lo mismo, aunque los capítulos sobre Closures & Generatos, Classes & Iteratos, Advanced Iteratos, y Special Method Names son interesantes. Esta versión tiene un poco menos de carga en la parte de Programación orientada a objetos, así que esos capítulos se pueden revisar en la versión para python 2. Los capítulos sobre migración de python 2 a python 3 sólo son de interés para quien tenga que abordar un proyecto de ese tipo.

Si estás buscando un libro para aprender python sepas o no programar previamente esta no es una buena opción. Pero si merece la pena cuando ya tengas idea del lenguaje y estés buscando aprender un poco más y conocer algunos idioms, sobre todo en modo lectura rápida. Abre cada capítulo y trata de entender el ejemplo propuesto, si no tienes dudas puedes pasar al siguiente capítulo. Si el ejemplo tiene algo que te resulta de interés lee un poco más de ese capítulo.


Libro: Think Python: How to Think Like a Computer Scientist

Posted: noviembre 15th, 2017 | Author: | Filed under: Sin categoría | Tags: , , , , | No Comments »

How to Think Like a Computer Scientist es un libro clásico entre los recomendados para comenzar a programar en python. La primera edición es de 2002, escrito por Jeffrey Elkner, Allen B. Downey y Chris Meyers bajo licencia GNU FDL. El ser tan «antiguo» y el estar publicado bajo licencia libre ha hecho que a lo largo del tiempo hayan aparecido diversas versiones del libro.

Tenemos dos versiones del libro para python 2

  • How to Think Like a Computer Scientist: Learning with Python 2nd edition, sería la última edición para python 2 del libro original, y está fechada en 2012. Las soluciones a algunos ejercicios se pueden encontrar en wikibooks (y seguramente valgan para otras versiones).
  • La primera edición (2002) de ese mismo libro la podemos encontrar en Green Tea Press la página personal (y «editorial») de Allen B. Downey uno de los autores originales
  • Y también en Green Tea Press podemos encontrar una reedición distinta del mismo libro para python, renombrada simplemente a Think Python. Revisando el github donde se mantiene el libro los últimos cambios serios parecen ser de 2015

También tenemos varias versiones del libro enfocadas a python 3.

  1. La que podríamos considerar primera, de 2012, es How to Think Like a Computer Scientist: Learning with Python 3, reeditada fundamentalmente por Peter Wentworth como libro de texto para un primer curso de programación.
  2. Otra versión sería una adaptación de la de Peter Wentworth, hecha por varios profesores de la Universidad de Groningen, para emplearla también como libro de texto para sus clases. En el prólogo declaran que su idea era cambiar la filosofía del libro, de «how to think like a computer scientist» to «how to think as a scientist with a computer», pero revisándolo en mi opinión, los cambios no son tan significativos como para conseguirlo. Está en readthedocs por lo que también se puede descargar
  3. En Green Tea Press también encontramos una versión (los últimos cambios serios en el github son de 2016). Esta sería algo así como la segunda edición de Think Python
  4. Por último, un experimento interesante. Un libro interactivo, que parece basado fundamentalmente la versión de Wentworth. Consiste en una aplicación web que permite ejecutar código en el propio navegador, depurar paso a paso a modo educativo y responder a cuestionarios

En la página de Green Tea Press hay un dos artículos explicando porqué publicar «free books», y su filosofía a la hora de escribir libros de texto. Además en el prólogo del libro se puede leer algo sobre su historia para entender los autores y los cambios a lo largo del tiempo.

Todas las versiones (inluída la interactiva) están en repositorios de código en github o launchpad, por lo que es posible colaborar en su mejora. Y están escritos en reStructuredText o Markdown y convertidos a libros con sphinx u otras herramientas.

No resulta sencillo decir «cual es mejor», cada una de las veriones tiene sus puntos fuertes y débiles:

  • Los que hemos hemos numerado como dos y como tres son los que tienen para mi un orden de capítulos más lógico. Por ejemplo trata listas, tuplas y diccionarios en capítulos contiguos mientras que en las otras versiones los diccionarios están separados del resto de tipos de datos. Pero en dos han juntado varios capítulos en uno sólo por lo que su lectura se hace algo más difícil. Además los capítulos sobre numpy, matplotlib y data handling no encajan muy bien como están escritos en un libro para principiantes. Por tanto a pesar de ser el más actualizado yo en principio descartaría esta versión.
  • El uno tiene algún material adicional respecto a los otros como capítulos sobre estructuras de datos más avanzadas (pilas, colas y árboles). Si bien creo que estos capítulos son de interés, tampoco pasa nada por prescindir de ellos en un primer contacto, porque hay otros libros más avanzados o más específicos que tratan mejor este tipo de temas.

  • El número tres (Think Python) tiene para mi otros alicientes como que algunos de los problemas y soluciones están resueltos en el github del autor. Es de los que siguen un orden más lógico, capítulos cortos, y una sección «debugging» al final de cada capítulo que explica «técnicas mentales» a la hora de depurar y construír un programa que resultan útiles. Además se puede comprar a través de Amazon, descargar gratuitamente en PDF, leer en html… Así que seguramente esta es la versión más recomendable.
  • La versión interactiva también me ha sorprendido gratamente. El texto no es tan bueno como el de Think Python, pero el poder jugar con el código mientras leemos el texto, da muchas opciones a alguien que se introduce en el lenguaje y le permite aprender sin tener que liarse con el entorno. Además la opción de debug (codelens en su terminología es especialmente útil para ver lo que pasa en el programa). Esta tambień es un opción recomendable.

Entre la opción interactiva y Think Python es difícil decidirse, si quieres avanzar rápido y tener una panorámica general, el libro seguramente es mejor, y la irrupción de cajas y botones en medio del texto menos molesta. Depende del estilo de aprendizaje de cada uno. Leer un par de capítulos de cada uno y decide tu mismo.

Si está revisión te ha ahorrado tiempo y quieres agradacerme el esfuerzo planteate donar usando el botón de la derecha, comprar el libro a través del enlace al principio del texto o simplemente dejar un comentario en esta entrada.


Hacen falta más programadores contando sus miserias

Posted: noviembre 12th, 2017 | Author: | Filed under: Sin categoría | Tags: , , , | No Comments »

Desde que Andrés planteara hace ya dos años el reto de escribir sobre la selección tecnológica en pymes llevo queriendo escribir algo sobre ello.

Todavía no va a ir de esta, pero valga este mini-post para referenciar dos enlaces que han entrado en mi radar esta misma semana. En el primero Matt Mullenweg quota a Jony Ive de Apple para afirmar que tan importante como el producto (o el servicio) que proporcionas a tus clientes es el proceso, o el aprendizaje, con el que has llevado hasta él. Algo en lo que creo firmemente y que también leí en Kent Beck (aunque ahora no encuentro el enlace). En el segundo nos hablan de como no todas las arquitecturas valen para todos los casos.

Basicamente mi opinión va en la línea de que los creadores de opinión en torno al software, son lógicamente, increiblemente expertos en sus campos. Los frameworks con más éxito, son hechos por empresas como Google o Facebook. Las conferencias están llenas de gente que hace cosas muy chulas con las últimas tecnologías. Pero cuando tengas que decidir, si estás leyendo este post, seguramente no trabajes en Google, ni serás un mega-experto. Puede que tus clientes para hacer el deploy te hagan conectarte a un teamviewer ejecutándose en un Windows en una red interna donde te permiten abrir un putty al servidor y «monitorizan» todo lo que tecleas que debe hacerse a mano para validarlo. Trata de hablar con ellos de docker (o incluso de scripts para automatizar).

Hace falta más conferencia, más libros y más posts de gente contando sus miserias, y de como su trabajo es tan necesario como el de quien tiene la suerte de poder desplegar en AWS, porqué también están resolviendo problemas reales.


Libro: A Byte of Python de Swaroop C H

Posted: noviembre 11th, 2017 | Author: | Filed under: Sin categoría | Tags: , , , , | No Comments »

El libro «A Byte of Python» es uno de los que se suelen recomendar en las QA de como iniciarse en el desarrollo con Python. Es un libro corto, unas 120 hojas en la versión impresa que se puede ojear en apenas un par de horas. Está distribuído bajo licencia CC-by-sa 4.0 y el desarrollo se realiza en github. Al ser libre hay distintas versiones en la red, la canónica está en la página del autor y es la que se debería leer.

El libro hace un repaso básico a la sintaxis del lenguaje, sin entrar en demasiada profundidad en ningún tema y con ejemplos tipo «¡Hola mundo!». Tampoco se para demasiado en conceptos de teoría de la programación, como explicar que es una variable o un lenguaje interpretado pero si lo menciona. Eso sí, la terminología que emplea para hacer referencia a los conceptos es correcta.

Creo que es una buena guía si ya sabes algo de programación en otro lenguaje y quieres de una forma rápido poder empezar a hacer cosas con python, pero no es adecuado como primer contacto con el mundo del desarrollo.


Porqué creo que es útil discutir de Tabuladores y Espacios

Posted: agosto 15th, 2017 | Author: | Filed under: Sin categoría | Tags: , , , , | No Comments »

Discutir de tabuladores y espacios es importante útil.

Por mucho scrum y mucha retro, generar el clima de confianza adecuado para cagarse en el facilitador o que los nóveles opinen si se debe usar una arquitectura hexagonal es difícil. Discutir sobre el color del cobertizo para bicicletas, en algunos contextos será una perdida de tiempo y energía. En otros será una buena actividad, un ejercicio práctico antes de elevar el nivel de abstracción de las discusiones.

Y en todo caso, es algo que hay que decidir, así que mejor que sea por consenso.