Danielside

informática softwarelibre divagaciones música

GNU/Linux, PHP, Software Libre, XMPP

Mi cloud con Haproxy y LXC

Me ha costado un poco pero finalmente he conseguido reestructurar mi vetusto servidor de DigitalOcean con Debian 7, donde tengo varias aplicaciones personales (nextcloud, gnusocial, prosody, etc.) a uno con Debian 10 en el que cada aplicación reside en un contenedor LXC 3 sin privilegios usando Alpine 3.10 (el mismo que usa Docker por defecto)

Seguir leyendo… 1 comentario

Administración Electrónica, Internet, Legal, Programación

Buscador de puestos de trabajo de funcionarios, la APP

Y no es que sea yo muy amigo de Google, ya sabéis, pero cuando se trata de obtener una retribución por algo en estos tiempos que corren, es difícil a no ser que sea obligatorio. Lo sé por pasadas experiencias con proyectos como LinuxAE: cientos de descargas y poco “retorno” :).

Así que me metí en el mundo app y pasé la funcionalidad del buscador de puestos de trabajo de funcionarios de la Administración General del Estado a Google Play y por menos de lo que te cuesta un café puedes hasta buscar por provincia.

GNU/Linux, PHP, Programación

PHP moderno en servidor VPS viejuno

Me encanta Debian por su estabilidad. Cuando el mundo acabe, las cucarachas vivirán sobre la faz de la tierra y quedará un servidor Debian encendido.

La desventaja es que son muy conservadores para actualizar las versiones del software, lo cual puede generar problemas de seguridad y también de rendimiento. Yo tengo un servidor virtual contratado para mis aplicaciones y en la época en la que comencé estaba disponible Debian 7 “Wheezy”, eso estaba haciendo que ya no pudiera instalar versiones modernas de ciertas aplicaciones, que se habían pasado a versiones de PHP más modernas y que corrigen fallos importantes. Me encontraba en la 5.4

Seguir leyendo…

1 comentario

GNU/Linux, Internet, LUA, Programación

Recepción de mensajes Telegram en XMPP/Jabber

De entre las plataformas de mensajería instantáneas existentes, poniendo en la balanza la libertad y también la masa de usuarios, he decidido que usaría Telegram, por muchos motivos.

Aunque en apariencia sea igual a whatsucks, tiene innumerables ventajas desde el punto de vista de tu libertad. Las desventajas son las de siempre 1) que no controlas los servidores por donde pasan tus comunicaciones, 2) que no te puedes fiar al 100% de la corrección del cifrado de mensajes. Pero más allá de eso, nos ofrece:

  1. Las aplicaciones cliente son libres y su código está disponible, cualquier lo puede inspeccionar y si no le gusta instalarse la del market, compilarlo.
  2. Está en f-droid.
  3. Y más importante que eso, siempre han facilitado enormemente la creación de clientes no oficiales que usen su red, realizando esl esfuerzo de crear APIs (https://core.telegram.org/api) que permiten construir clientes con la totalidad de las funciones de la plataforma. De esta manera, podrías implementar el cifrado extremo a extremo que te diera la gana, como el omnipresente OTR el nuevo OMEMO de Conversations (https://conversations.im/omemo/)

En definitiva, siendo también un servicio opaco, creo que es una plataforma que da un amplio grado de libertad y eso la hace mucho más divertida.

Seguir leyendo…

1 comentario

Programación

Aislar y abstraer

Este es un principio de programación propio muy sencillo pero que trae muchos beneficios. Seguro que no es totalmente “propio” y tiene algún nombre en algún manual, pero es algo que suelo hacer por iniciativa propia.

Cuando estás tomando decisiones con estructuras condicionales -por ejemplo mostrar/ocultar elementos de la interfaz- en diversas partes del mismo documento -controlador, vista, etc- tienes que expresar en cada condición lo que quieres o no quieres hacer, sin basar esa condición en información o estados anteriores. Es decir, que si lo que quieres es mostrar o no un widget con un mapa, simplemente pregunta:

Seguir leyendo…

GNU/Linux, Programación

Montar tus entornos de desarrollo con virt-manager

Durante el tiempo que estuve -por motivos profesionales- trasteando con plataformas de provisión de máquinas virtuales basadas en web, como OpenNebula, OpenStack y demás, nunca me imaginé que en realidad pudiera ser tan fácil como es con virt-manager. Aunque tiene truco, porque supongo que todo lo que sufrí peleando con OpenNebula me sirvió para adquirir algunos conocimientos que me han ayudado a saber como configurar bien virt-manager con KVM.

Seguir leyendo…

Ingeniería del Software, Laravel, PHP, Programación

Un buen uso de Traits en Laravel

Profundizando en el uso que estoy haciendo de este framework, siempre me he preocupado por seguir las mejores prácticas. No simplemente copiar y pegar todo lo que pueda encontrar en StackOverflow sobre lo que son “mejores prácticas” si no aquéllo que para mi tenga sentido. Laravel no es un framework tan opinionated como lo pueda ser Ruby on Rails, lo que a mi parecer te deja más flexibilidad. Cualquier crítica será bienvenida 😉

Seguir leyendo…

3 comentarios

Programación

Iterando en PHP

A veces no le damos más de una vuelta a una cosa aparentemente tan sencilla como recorrer todos los elementos de un array, pero la opción que elijamos puede llegar a tener un impacto considerable en el rendimiento de la aplicaciójn.

Tradicionalmente recorrer un array ha estado ligado a la estructura de control for, que en PHP es tan potente como en C.

A veces, también, nos perdemos en los océanos de Internet para buscar cosas y nos olvidamos de buscar en el manual, que en el caso de PHP es un buen manual, repleto de consejos. No hay muchos proyectos que tengan una documentación de tanta calidad como PHP. Su calidad unido a que dejan hacer comentarios y aportaciones en cada página, hace que sea la referencia más importante de este lenguaje.

Seguir leyendo…

GNU/Linux, Programación, Software Libre

Mi entorno para programación con i3-wm y Emacs

Alan Kay fue el verdadero visionario, el genio detrás de las cortinas. Trabajando en los laboratorios de Xerox Parc, inventó algo que nos suena mucho: el concepto de ventanas donde se ejecutan programas y la interacción con esas ventanas (moverlas, activarlas, cerrarlas,…) mediante algún dispositivo apuntador. Hoy día parece simple, pero en un mundo de arcanos comandos e informáticos de bata blanca, era una revolución.

Se dice, se comenta y se rumorea que Steve Jobs andaba de visita por Xerox y Alan le enseñó el invento, todo emocionado. Muchos días me imagino aquél encuentro en clave de “Celebrities” (Muchachada Nui) viendo como Steve habla con Alan manteniendo una cara de “Sí, no está mal” mientras esa pensando “ME VOY A FORRAR, ESTO LO ROBO YA”. Cosas parecidas se dicen de Bill Gates en una visita similar.

El caso es que gracias al curre de Alan, que por cierto también presentó genialidades como Smalltalk y el Dynabook (precedesor de las tablets) y la posterior comercialización por parte de estos sujetos, se hicieron enormemente populares las interfaces WIMP (Windows, Icons, Menus, Pointers). Pero ¿significa eso que son la herramienta idónea para cualquier trabajo? Definitivamente no.

Seguir leyendo…

Internet, Programación, Software Libre

Hacking on GNU social: Unicode Smileys

As you probably know already, GNU social is a GNU Affero licensed microblogging server software written in PHP that implements the OStatus protocol, an open standard for distributed status updates.

Everyone can deploy her own server and follow people in her own server or any other, as I explained here https://www.fsf.org/blogs/community/thousands-of-spaniards-leave-twitter-for-gnu-social.

I have run my own server for quite a long time, and the time to make some contribution back to this great software has come! I always thought that it would be great to take advantage of Unicode characters to insert some emojis in GNU social notices. You can always copy and paste these entities (http://unicode-table.com/en/) but the experience is better if that feature is integrated, so I decided to create a plugin.

Seguir leyendo…