Moving persistent data out of Redis

Transitioning all that information transparently involved planning and coordination. For each problem domain using persistent Redis, we considered the volume of operations, the structure of the data, and the different access patterns to predict the impact on our current MySQL capacity, and the need for provisioning new hardware. For the majority of callsites, we replaced persistent Redis with GitHub::KV, a MySQL key/value store of our own built atop InnoDB, with features like key expiration. We were able to use GitHub::KV almost identically as we used Redis: from trending repositories and users for the explore page, to rate limiting to spammy user detection. ...

January 14, 2017 · 1 min · 110 palabras · Nacho Cano

Instalar Spotify en Ubuntu 16.04

Si queremos instalar el cliente de Spotify en Ubuntu Xenial Xerus, tan sólo tenemos que instalar la clave: $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886 Executing: /tmp/tmp.imoQkQ9ZVV/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886 gpg: solicitando clave D2C19886 de hkp servidor keyserver.ubuntu.com gpg: clave D2C19886: clave pública "Spotify Public Repository Signing Key <operations@spotify.com>" importada gpg: Cantidad total procesada: 1 gpg: importadas: 1 (RSA: 1) Añadimos el PPA oficial: $ echo "deb http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list Actualizamos e instalamos: ...

December 15, 2016 · 1 min · 91 palabras · Nacho Cano

Instalar Postgresql 9.6 en Ubuntu 16.04

La versión de Postgresql que viene en los repositorios de Ubuntu Xenial Xerus es la 9.5. Si queremos instalar la 9.6, podemos recurrrir al PPA oficial. Importamos la clave: $ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - Añadimos el PPA: $ echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list Actualizamos e instalamos: $ sudo apt update $ sudo apt install postgresql-9.6 postgresql-contrib Referencias » linoxide.com

December 13, 2016 · 1 min · 69 palabras · Nacho Cano

Never write for-loops again

It’s been a while since I started exploring the amazing language features in Python. At the beginning, it’s just a challenge I gave myself to practice using more language features instead of those I learned from other programming language. And things are just getting more fun! Not only the code become shorter and cleaner, but also code looks more structured and disciplined. I’ll get into those benefits more in this article. ...

December 12, 2016 · 1 min · 77 palabras · Nacho Cano

Tor at the heart: bridges and pluggable transports

Censors block Tor in two ways: they can block connections to the IP addresses of known Tor relays, and they can analyze network traffic to find use of the Tor protocol. Bridges are secret Tor relays—they don’t appear in any public list, so the censor doesn’t know which addresses to block. Pluggable transports disguise the Tor protocol by making it look like something else—for example like HTTP or completely random. ...

December 11, 2016 · 1 min · 146 palabras · Nacho Cano

Qué son los cypherpunks y por qué son tan importanes en la lucha por la privacidad

Los punkis trajeron cambios a nivel estético: crestas de colores, tatuajes, botas militares, cazadoras de cuero, escarceos con las drogas y música que el grupo vasco Eskorbuto definiría en su momento como “antitodo”. En resumidas cuentas, a partir de 1977 el punk se convirtió en anarquía de la estética. Y cuando se añadieron ordenadores y redes a la mezcla para los años 90 del siglo pasado, entonces aparecieron los cyberpunks. ...

December 11, 2016 · 1 min · 75 palabras · Nacho Cano

Cómo montar una mini consola con Raspberry Pi

En el siguiente artículo vamos a ver, paso a paso, como montar una mini consola similar a la Mini NES Classic, pero a nuestro gusto, con la posibilidad de emular una larga lista de consolas, utilizando una Raspberry Pi, un ordenador de bajo consumo y bajo coste, y gran cantidad de software libre, por un precio de unos 70 euros como mínimo. Las características más interesantes de nuestra Raspberry Pi (aunque no las únicas) serán las siguientes: ...

December 7, 2016 · 1 min · 196 palabras · Nacho Cano

Undebt: how we refactored 3 million lines of code

Peter Seibel wrote that to maximize engineering effectiveness, “Let a thousand flowers bloom. Then rip 999 of them out by the roots.” Flowers, in how the metaphor applies to us, are code patterns — the myriad different functions, classes, styles, and idioms that developers use when writing code. At first, new flowers are welcome — maybe the new pattern seems easier to use, more scalable, more efficient, or more suited to some particular task than the old. ...

December 7, 2016 · 1 min · 153 palabras · Nacho Cano

Se vende censor de desnudos: de compras por un mercadillo de algoritmos

Hay un bazar en internet que se dedica a la compraventa de inteligencia artificial, esa que algunos temen por si se nos va de las manos. En los puestos de Algorithmia, este supermercado del siglo XXI, los desarrolladores web pueden añadir a su carrito virtual un fragmento de código capaz de reconocer formas y colores o analizar sentimientos pese a no comprenderlos. algorithmia.com » Cristina Sánchez | yorokobu.com

December 7, 2016 · 1 min · 68 palabras · Nacho Cano

How to teach endian

One of the major disciplines in computer science is parsing/formatting. This is the process of converting the external format of data (file formats, network protocols, hardware registers) into the internal format (the data structures that software operates on). It should be a formal computer-science discipline, because it’s actually a lot more difficult than you’d expect. That’s because the majority of vulnerabilities in software that hackers exploit are due to parsing bugs. Since programmers don’t learn about parsing formally, they figure it out for themselves, creating ad hoc solutions that are prone to bugs. For example, programmers assume external buffers cannot be larger than internal ones, leading to buffer overflows. ...

December 7, 2016 · 1 min · 114 palabras · Nacho Cano