blog

Tag 'code'

17-03-2018

A guide to Ruby in ten lines of code

This is a slightly unorthodox introduction guide to the Ruby language. Through this guide we will examine just ten one-line snippets of code, and discover a lot of features from each of them. This is the post version of a talk I gave for LibreIM. ## Syntax ruby puts "Hello #{gets.strip}!" This snippet accepts a string from standard input,…

10-03-2018

Deploying Mastodon on a single DigitalOcean droplet

What happened I bought a super cheap domain with a cool name. I had to put something there, so why not Mastodon? I had a 10$ coupon from DigitalOcean so I could try it for free for a month or two. ## Prerequisites You’ll need a domain name for this. There are free domains available in certain TLDs, and…

30-11-2017

Time tracking in Emacs with org-clock

This is yet another short post about a little feature in Emacs that turned out to be pretty useful. If you ever feel that you’d like to know how much time you are spending working on different projects (and are an Emacs user), this is the post for you. ## org-clock After searching for a simple app to track my…

01-09-2016

Unsupervised Deep learning

Deep learning is a branch of machine learning dedicated to algorithms which find abstractions or partial representations of data through multiple layers of neurons or other complex structures. Unsupervised Deep Learning studies neural architectures which learn from data without requiring labels. Published works: * A practical tutorial on autoencoders for nonlinear feature fusion: Taxonomy, models, software and guidelines. D. Charte,…

22-08-2016

Un sistema de contribuciones a blogs Jekyll para gente sin conocimientos de Jekyll, GitHub o Markdown

Durante un tiempo, los colaboradores del blog de LibreIM hemos tenido que componer los posts prácticamente a mano, haciendo uso de un editor de texto para escribirlos, Git para llevar el registro de cambios y una pull request en GitHub para enviar el post, revisarlo y corregirlo. Evidentemente, este puede ser un proceso ideal para desarrolladores acostumbrados al proceso, pero…

07-11-2014

Instalación y configuración de un cliente Oracle en Linux

Instalar un cliente de bases de datos puede ser tedioso, y más cuando se trata de Oracle. Además, el soporte y la ayuda para Linux suelen ser más bien nulos. Así que aquí va una guía rápida de cómo instalar un cliente de Oracle (SQL*Plus) y configurarlo para conectarlo al servidor de bases de datos. Nota: La guía de...

19-10-2014

Algoritmos de clasificación en Minería de datos

Algoritmos de clasificación en Minería de datos<p></p> <p>La Minería de datos es el análisis de datos para tratar de encontrar patrones no triviales que aporten información útil. En concreto, el Problema de clasificación implica aprender las relaciones entre los datos que se poseen para predecir características de datos futuros.</p> <p>Se han redactado unos apuntes sobre clasificación…

24-06-2014

Introducción a JavaScript. Programación con prototipos

Introducción a JavaScript. Programación con prototipos<blockquote> <p>JavaScript (JS) es el lenguaje de programación desarrollado por Netscape para la web. Se trata de un lenguaje de script, generalmente interpretado por el navegador del usuario, esto es, se ejecuta en el cliente. Hablamos del cliente refiriéndonos a la máquina del usuario final que visitará el sitio web, y del servidor para…

26-03-2014

Iterando sobre contenedores de C++

Si escribís código en C++ y usáis los contenedores de la STL (std::vector, std::list, etc.) probablemente estéis hartos de la forma de iterar sobre ellos: for (std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) La vida es demasiado corta para estar escribiendo cabeceras de bucles de ese estilo, así que aquí viene una solución en forma de macro...

31-05-2013

Truco: Botones de 2 estados usando solo CSS

Un botón de dos estados es como un interruptor, puede estar activado o desactivado. Para crear y manejar un botón de este estilo, normalmente utilizaríamos Javascript y un par de clases CSS para cambiar entre los dos estados. Esta no es una mala solución, pero con un poco de ingenio podemos obtener el mismo efecto utilizando únicamente el CSS, lo...

20-04-2013

Distribuyendo contenido en columnas mediante CSS

Por lo general, para estructurar un contenido en columnas se utilizan tablas HTML (¡horror!) o bien se utiliza la propiedad float de los elementos para que se distribuyan en filas de forma fluida. Pero si lo que queremos es crear una distribución fluida en columnas, podemos utilizar unas nuevas propiedades de CSS3 que lo permiten. #exterior { column-width: 300px;} …

06-04-2013

Truco (Javascript): Seleccionando elementos con querySelector

Una de las novedades recientes de Javascript es la inclusión de un nuevo método para seleccionar elementos que ofrece mucha más funcionalidad que los tradicionales getElementById, getElementsByTagName, etc. Se trata de querySelector. La sintaxis es sencilla, seleccionamos elementos igual que en CSS, usando . para denotar clases y # para identificadores. var con_id = document.querySelector("#elemento_con_id");var elegante = document.querySelector(".elemento_con_clase");var familia =...

10-03-2013

Ordenando vectores en C++: la forma fácil

Esta es la forma más cómoda de ordenar un vector de la STL en C++. Probablemente no es la más eficiente ni se pueda adaptar a lo que necesitemos en cada momento, pero está bien tenerla a mano para utilizarla si queremos evitar tener que implementar nuestro propio método de ordenación. #include <cstdlib> #include <algorithm> #include <vector> int main(int argc,...

07-03-2013

Hello World!

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.+++++++++++++.>.+++.------.--------.>+.>. Esto es el típico programa Hello World, pero escrito en el lenguaje de programación brainfuck, que como su propio nombre indica, puede provocar que acabes mal de la cabeza. Os aseguro que eso de arriba, tras compilar, imprime los códigos ASCII correspondientes a la cadena “Hello World!” (en este artículo de la Wikipedia se describe el funcionamiento...