Danielside

informática softwarelibre divagaciones música

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…

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…

Divagaciones, Programación

Me gustan los lenguajes dinámicos

Y Ruby en particular, por la cantidad de maneras diferentes que hay de contar hasta tres 🙂

i = 0
while i < 3 do   puts i+=1 end

i=0
puts i+=1 while i<3

i=0
puts i+=1 until i==3

for i in (1..3) do
  puts i
end

def a(i)
  yield(i)
end
for i in (1..3) do
  a(i) {|i| puts i}
end

(1..3).each{|i| puts i}

¿Conoces más? 😉

GNU/Linux, Programación

Emacs y modo Markdown automático

Emacs se ha convertido en mi editor favorito, una bestia que ni Stallman podría dominar hoy al 100%. Tiene vida propia.

Lo puedes usar tanto en un terminal real, como en un terminal virtual, como en entorno gráfico. Tiene un conjunto de atajos de teclado que -para mi- tiene mucho más sentido que el de vi(m), tiene plugins para todo lo que te puedas y no te puedas imaginar y encima está disponible en todos los sistemas operativos. La flexibilidad que te da para trabajar con varios archivos al mismo tiempo -especialmente usando una pantalla grande- para mi es inigualable.

El formato Markdown de formateo de texto me parece uno de los inventos más geniales de los últimos años, es pensar en aquéllos cutreformatos previos a la era de los procesadores de texto y hacer que tengan sentido. Luego puedes transformar ese cutreformato a HTML sencillamente. Ejemplos:


# Formatos de marcado
Describimos algunos formatos de marcas populares.
## HTML
Expresivo y estándar, dificultad media.
## TeX
Muy expresivo y flexible. Profesional. Dificultad alta.
## Markdown
Muy fácil de aprender, menos expresivo. Lista de ventajas:
* Editable con cualquier editor.
* Disponible en muchas plataformas.

Con Emacs hace una gran pareja. Incluso cuando estás editando en un terminal real (sin entorno gráfico) te detecta y colorea el documento. En debian, para tener el modo Markdown disponible, hay que instalar el paquete emacs-goodies-el.

Lo que venía a añadir con esta entrada es que podemos hacer que Emacs cargue automáticamente este modo cuando abrimos archivos con la extensión que se suele usar para los archivos Markdown, que suelen ser: .md (lo usa github), .mdwn (lo usa un plugin de Owncloud). Para ello no tenemos más que editar el archivo ~/.emacs y añadir:


(autoload 'markdown-mode "markdown-mode"
"Major mode for editing Markdown files" t)
(add-to-list 'auto-mode-alist '("\\.mdwn\\'" . markdown-mode))
(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))

Electrónica, GNU/Linux, Programación, Raspberry Pi

Refrescando al Pi Solar (I)

Hace calor, mucho calor. Los seres basados en carbono pasamos calor, pero tenemos voluntad propia para refrescarnos de la manera que sea. Los seres basados en silicio dependen de nosotros para eso.

Por ello, después de montar el Portátil Raspberry Pi Solar estaba pensando en ponerle un ventilador. Pero ya que lo hacía, quería hacerlo bien, introduciéndome en el maravilloso mundo del GPIO. No es un pájaro, son las siglas de General-purpose input/output o Entrada/Salida de propósito general, y son esas dos hileras de pines (40 en el modelo B o superior) que aparecen en la placa.

Es muy interesante romper esa barrera entre el mundo del software y el mundo real, siempre me ha llamado la atención. En este caso, lo que quiero conseguir es que el ventilador se apague o encienda en función de la temperatura, un mecanismo que damos por hecho en cualquier PC. Gracias a la ayuda del amigo http://dontmakeitdouble.blogspot.com.es/ por ponerme en el camino de como se hace esto. Invitadle una cerveza, que os lo agradecerá.

Seguir leyendo…