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

Writing efficient JavaScript

This entry describes simple techniques to fulfill the JavaScript compiler optimization process which results in faster running code. Especially in games you immediately notice frame drops and when the garbage collector has to hit in with a big stack of work to do. » Felix Maier | medium.com

November 30, 2016 · 1 min · 48 palabras · Nacho Cano

Hype Driven Development

Software development teams often make decisions about software architecture or technological stack based on inaccurate opinions, social media, and in general on what is considered to be “hot”, rather than solid research and any serious consideration of expected impact on their projects. I call this trend Hype Driven Development, perceive it harmful and advocate for a more professional approach I call “Solid Software Engineering”. Learn more about how it works and find out what you can do instead. ...

November 25, 2016 · 1 min · 83 palabras · Nacho Cano

Hasta el infinito y más allá. Bienvenido IPv6 (I)

El principal motivo de la creación de IPv6 fue la falta de direcciones IPv4 por la expansión de países altamente poblados como China e India. La principal y más conocida ventaja es el tamaño de su rango de direcciones. Como todo el mundo sabe, una dirección IPv4 consta de 32 bits, lo cual posibilita un direccionamiento de 2^32 máquinas (4.294.967.296). En cambio, una dirección IPv6 está formada por 128 bits, dando lugar a 2^128 direcciones posibles, este número es muy difícil de imaginar, o de manejar, ya que el ser humano no esta acostumbrado a números de tal magnitud. ...

November 25, 2016 · 1 min · 104 palabras · Nacho Cano