1. Implementar un API REST sobre ReactPHP
Necesito implementar una nueva funcionalidad para un proyecto que tengo entre manos.
Tengo un Sistema de Notificaciones, escrito en PHP, cuyo único acceso desde el exterior es a través de conexiones WebSocket implementadas en una aplicación que llamaré simplemente Servidor. Los clientes de este sistema son aplicaciones web que crean una conexión permanente desde el navegador y mediante la cual reciben notificaciones de distinto tipo.
Necesito acceder al sistema a través de un API REST, para poder hacer peticiones al sistema y extraer así cierta información: monitorización, configuración,…
2. Never binge again
de Glenn Livingston
Por qué lo he leído
El título lo dice claro, ¿no? No te metas un atracón nunca más (bueno, más o menos, esta es mi traducción particular).
Tengo tendencia a incrementar mi masa. No creo que sea por nada malo en particular, simplemente, me gusta comer, disfruto comiendo, y los dulces me encantan. Así que cualquier excusa es buena para pasarme de la cuenta comiendo.
Vi por twitter que alguien lo recomendaba, que tenía buenos consejos para corregir cierto vicios, en especial los de la comida, y ahí que fui.
3. How to become a better software developer
Aquí recojo las notas sobre el artículo titulado How to become a better software developer, de Tyle Hakes, en el blog de 7pace.
Por el título, esperaba encontrar consejos, técnicas sobre cómo mejorar, cómo y qué practicar, no sé alguna cosa concreta.
En el artículo vi que lo importante para el autor es aprender. De hecho, casi copia/pega el curso de Aprender a aprender. Aunque algo nuevo sí que había, algún buen consejo sí que saqué.
4. Centralized logging with Elastic stack
Notas tomadas sobre el curso Centralized Logging with the Elastic Stack: Getting Started de JP Toto en Pluralsight. El curso muestra cómo usar y configurar Logstash, Elasticsearch y Kibana para centralizar y monitorizar servidores, tráfico de red o aplicaciones.
5. You are your own gym
de Mark Lauren
Por qué lo he leído
Tengo predisposición a coger peso. He tenido ya varios ciclos de adelgazar, engordar, adelgazar y volver a engordar. Tengo claro que lo de adelgazar lo consigo casi exclusivamente con la dieta, con la alimentación. Pero también tengo claro que debo hacer ejercicio.
Debido a mi trabajo, llevo una vida bastante sedentaria. Me gusta salir a la calle, jugar con mi hijo, montar en bicicleta, y me divierte practicar casi cualquier deporte. Otra cosa es que les dedique el suficiente tiempo semanalmente.
Este libro describe cómo hacer ejercicio sin ninguna otra herramienta que tu propio cuerpo. Seguro que eso disminuiría la fricción de hacer deporte.
6. Real Software Engineering
Charla de Glenn Vanderburg titulada Software Art Thou, real software engineering sobre qué es ingeniería y cómo vemos la ingeniería en el mundo del software. Similitudes y diferencias con otras ingenierías y discusiones sobre si desarrollar software es o no una ingeniería de verdad.
En realidad, creo que esta es la segunda vez que veo la charla, pero no encuentro las notas por ningún lado, así que ahí van.
Como bonus, van las notas de una charla parecida del mismo autor hablando sobre Ingeniería y Artesanía del Software.
7. Play by play: Machine learning exposed
Notas tomadas de un curso de Pluralsight titulado Play by play: machine learning exposed. Los play by play son cursos donde un par de personas trabajan juntas en un proyecto o problema. Normalmente una de ellas es una experta en el tema, y la otra hace de estudiante, aportando una visión novedosa e ingenua del tema.
En este caso, Katharine Beaumont es la experta en machine learning y James Weaver es el novato en el campo, aunque aporta su visión experta en el mundo del desarrollo de software.
8. La pirámide de tests en la práctica
Unas pocas notas sobre un artículo de Ham Vocke publicada en la web de Martin Fowler titulada The practical test pyramid.
No son notas sobre todo el artículo, porque la mayoría son conceptos que conozco y estoy de acuerdo, pero alguna idea nueva sí que he descubierto.
9. Material extra de Learning how to learn
Cuando seguí el curso sobre Aprendiendo a aprender, en Coursera/Whatever, había unos cuantos artículos como material extra, relacionados sobre el tema que me resultaron interesantes.
10. 30 días con RxJS
Jorge Cano, inspirado por la iniciativa de Web Bos de 30 días con JavaScript, creó 30 días con RxJS. Y aquí están mis notas, que he ido tomando a lo largo de los días, siguiendo el camino de Jorge, un día cada vez.
Bueno, Jorge no llegó a producir los 30 días. Veremos hasta qué día llego yo consumiéndolo.
11. Refactorizar, ¿por dónde empiezo?
Notas sobre el artículo de J.B. Rainsberger titulado Refactoring: where do I start?. Rainsberger es una persona a la que admiro como profesional, suele expresarse con bastante claridad y suele hablar/escribir/comunicar sobre temas que me interesan bastante.
12. Curso sobre RxJS
Notas tomadas durante la realización del curso de Pluralsight RxJS: Getting started de Brice Wilson.
Es un curso (parece que bastante completo) sobre programación reactiva en JavaScript. Tiene conceptos que ya he aprendido en otro momento, pero al trabajar con Angular siento que necesito profundizar en algunos conceptos de RxJS. Veamos si este curso me sirve para ampliar mis conocimientos en este tema.
13. Desplegar una aplicación Angular en producción
Estoy desarrollando una aplicación que consta de varios sistemas. No se trata para nada de algo hecho con microservicios, pero el sistema completo está compuesto de varias aplicaciones. Algunas del lado servidor, y una applicación web escrita en Angular.
En estas notas quiero apunta cómo desplegar una applicación Angular y servirla a través de un servidor HTTP nginx.
14. Curso: How to Think About Machine Learning Algorithms
No hay muchos cursos sobre Machine Learning en Pluralsight. Buscando entre los que parecen más generales, más teóricos que prácticos, este tiene buena pinta.
Busco cursos más generalistas para ir aprendiendo los conceptos. Los más específicos, los que hablan más sobre herramientas que sobre conceptos, no me interesan todavía. Todo llegará.
15. Seven Ineffective Coding Habits of Many Programmers
Charla de Kevlin Henney sobre 7 hábitos poco efectivos de muchos programadores donde habla precisamente de eso, de ciertos hábitos perjudiciales para trabajar en equipo.
16. Curso: Understanding Machine Learning
Machine Learning es un concepto que lleva sonando mucho tiempo. No es que pretenda convertirme en un experto del día a la mañana, pero el curso Understanding Machine Learning es corto y parece que puede explicar los conceptos básicos de una forma sencilla.
17. Empezando con ZeroMQ
En el trabajo nos hemos encontrado con un problema: tenemos un servidor al que los clientes se conectan a través de Web Sockets desde un navegador. Este servidor se encargará de generar datos en tiempo real para esos clientes. La idea es que sea capaz de soportar cuantos más clientes mejor, claro. Para ello, digamos que el trabajo del servidor debería ser lo más liviano posible y no bloquearse nunca, no hacer ninguna operación que sea bloqueante. Estrictamente, leer de un fichero o hacer una llamada a través de la red ya sería bloqueante.
En definitiva, la solución que vamos a probar es comunicar dos procesos: el servidor y el proceso bloqueante a través de un software de intercambio de mensajes. Vamos a comenzar con ZeroMQ, que es una herramienta que parece que funciona bien con las tecnologías que estamosç utilizando.
18. Dockerizar una base de datos
Llevo entre manos un proyecto software, da un poco igual de qué se trata. Pero como casi todo software, necesita guardar datos, y la idea es guardarlos en una base de datos.
¿Qué base de datos utilizar? En un principio había pensado en PostgreSQL, por ser software libre, pero no tengo nada de experiencia con ella. Sí estoy acostumbrado a MySQL, pero prefiero usar software libre, así que me voy a decidir por MariaDB, que es prácticamente un MySQL, pero en software libre.
19. Recursos sobre reactividad
Aquí espero ir recogiendo unos cuantos recursos para la serie de artículos en el blog sobre programación reactiva en JavaScript. Espero que estos recursos me ayuden a aprender sobre el tema y que puedan ayudar a otros a hacer lo mismo.
- Animated cards to learn Reactive programming: una serie de animaciones para comprender muchos aspectos de la programación reactiva, como operadores, comparativas entre ellos, algunas nuevas funcionalidades de JavaScript y otros tutoriales. Al menos son unos recursos muy, muy vistosos.
- Learn to combine RxJs sequences with super intuitive interactive diagrams: animaciones que demuestran cómo funcionan unos cuantos operadores de RxJS. No he llegado a las interactivas, pero aún así, si encuentras el del operador que estás buscando, seguro que te aclara cómo funciona.
20. Parsear ficheros XML con Node.js
Sí, todavía hay sistemas que utilizan XML como formato de salida de sus datos. En este caso, necesito poder parsear ficheros XML reportados por impresoras con información del nivel de tinta en sus cartuchos y otra información. En principio, la idea que tengo es la de extraer dicha información mediante XPath, para no tener que recorrer el fichero nodo por nodo, hijos, y toda la estructura de árbol.
Todos los ficheros XML tendrán el mismo formato, por lo que con un solo parser podría extraer información de diversas máquinas.
En una primera búsqueda, parece que los paquetes npm
[xpath] y [xmldom] son unas herramientas adecuadas para comenzar.