<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on Karpoke - Just Another Blog</title><link>http://karpoke.ignaciocano.com/posts/</link><description>Recent content in Posts on Karpoke - Just Another Blog</description><generator>Hugo -- 0.159.0</generator><language>es</language><lastBuildDate>Mon, 27 Apr 2026 17:27:44 +0100</lastBuildDate><atom:link href="http://karpoke.ignaciocano.com/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>EML: una función para generarlas a todas</title><link>http://karpoke.ignaciocano.com/2026/04/27/eml-una-funcion-para-generarlas-a-todas/</link><pubDate>Mon, 27 Apr 2026 17:27:44 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/04/27/eml-una-funcion-para-generarlas-a-todas/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El operador Exp–Minus–Log (EML) muestra que, usando una sola función
(y la constante 1), se pueden generar números, operaciones y funciones
elementales —desde e hasta la unidad imaginaria— mediante expresiones
anidadas. Este artículo explica la construcción, ofrece ejemplos y
plantea dudas sobre posibles argumentos circulares.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» ^DiAmOnD^ | &lt;a href="https://www.gaussianos.com/eml-una-funcion-para-generarlas-a-todas/"&gt;gaussianos.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Cyphering Prompts &amp; Answers para evadir Guardarraíles</title><link>http://karpoke.ignaciocano.com/2026/04/01/cyphering-prompts-answers-para-evadir-guardarrailes/</link><pubDate>Wed, 01 Apr 2026 17:00:09 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/04/01/cyphering-prompts-answers-para-evadir-guardarrailes/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La técnica de utilizar las capacidades de cifrado para saltar los controles
de los guardarraíles fue publicada en el año 2023, y se basa en establecer
con el modelo unas reglas de cifrado y descifrado del contenido, para luego
enviarle el contenido de otro Prompt cifrado, y que él mismo lo ejecute.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» elladodelmal.com | &lt;a href="https://www.elladodelmal.com/2026/01/cyphering-prompts-para-evadir.html"&gt;elladodelmal.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>ASCII characters are not pixels: a deep dive into ASCII rendering</title><link>http://karpoke.ignaciocano.com/2026/04/01/ascii-characters-are-not-pixels-a-deep-dive-into-ascii-rendering/</link><pubDate>Wed, 01 Apr 2026 14:33:54 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/04/01/ascii-characters-are-not-pixels-a-deep-dive-into-ascii-rendering/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A look at how I used shape vectors to achieve sharp, high-quality ASCII
rendering.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» alexharri.com | &lt;a href="https://alexharri.com/blog/ascii-rendering"&gt;alexharri.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Cómo ver documentales del ciclo reproductivo de la langosta por Internet/IPTV [Tutorial]</title><link>http://karpoke.ignaciocano.com/2026/03/07/como-ver-documentales-del-ciclo-reproductivo-de-la-langosta-por-internet-iptv-tu/</link><pubDate>Sat, 07 Mar 2026 14:41:38 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/03/07/como-ver-documentales-del-ciclo-reproductivo-de-la-langosta-por-internet-iptv-tu/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Tutorial humorístico que explica, usando la metáfora de &amp;ldquo;documentales
sobre el ciclo reproductivo de la langosta&amp;rdquo;, cómo ver contenido de
IPTV por Internet mediante Acestream, VPNs (Mullvad, CyberGhost) y
proxies para sortear los bloqueos de los ISPs españoles impuestos por
orden judicial.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» carademalo | &lt;a href="https://www.meneame.net/story/como-ver-documentales-ciclo-reproductivo-langosta-internet-iptv"&gt;meneame.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Scaling PostgreSQL</title><link>http://karpoke.ignaciocano.com/2026/02/28/scaling-postgresql/</link><pubDate>Sat, 28 Feb 2026 22:11:48 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/28/scaling-postgresql/</guid><description>&lt;blockquote&gt;
&lt;p&gt;How OpenAI scaled PostgreSQL to handle millions of queries per second for
800 million users. Through rigorous optimizations, connection pooling,
caching strategies, and careful workload isolation, PostgreSQL powers
ChatGPT with a single primary and nearly 50 read replicas across regions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Bohan Zhang | &lt;a href="https://openai.com/index/scaling-postgresql/"&gt;openai.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The Internet Was Weeks Away From Disaster and No One Knew</title><link>http://karpoke.ignaciocano.com/2026/02/28/the-internet-was-weeks-away-from-disaster-and-no-one-knew/</link><pubDate>Sat, 28 Feb 2026 21:51:07 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/28/the-internet-was-weeks-away-from-disaster-and-no-one-knew/</guid><description>&lt;blockquote&gt;
&lt;p&gt;How a single hack infected the world’s most important operating system.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/aoag03mSuXQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» Veritasium | &lt;a href="https://www.youtube.com/watch?v=aoag03mSuXQ"&gt;youtube.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Build a Hash Table in Python With TDD – Real Python</title><link>http://karpoke.ignaciocano.com/2026/02/28/build-a-hash-table-in-python-with-tdd-real-python/</link><pubDate>Sat, 28 Feb 2026 15:58:32 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/28/build-a-hash-table-in-python-with-tdd-real-python/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In this step-by-step tutorial, you&amp;rsquo;ll implement the classic hash table
data structure using Python. Along the way, you&amp;rsquo;ll learn how to cope
with various challenges such as hash code collisions while practicing
test-driven development (TDD).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Real Python | &lt;a href="https://realpython.com/python-hash-table/"&gt;realpython.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Blue Light Filters Don't Work</title><link>http://karpoke.ignaciocano.com/2026/02/25/blue-light-filters-dont-work/</link><pubDate>Wed, 25 Feb 2026 00:00:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/25/blue-light-filters-dont-work/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A deep dive into the science behind blue light filters and why they may
not actually be as effective as commonly claimed. Explores the research
on how blue light affects sleep, eye strain, and cognitive performance.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Patrick Mineault | &lt;a href="https://www.neuroai.science/p/blue-light-filters-dont-work"&gt;neuroai.science&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Por qué Linux AHORA es tan bueno en GAMING?</title><link>http://karpoke.ignaciocano.com/2026/02/24/por-que-linux-ahora-es-tan-bueno-en-gaming/</link><pubDate>Tue, 24 Feb 2026 06:10:21 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/24/por-que-linux-ahora-es-tan-bueno-en-gaming/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Por qué Linux AHORA es tan bueno en GAMING?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/eqPQc0Y5HKE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» Nate Gentile | &lt;a href="https://www.youtube.com/watch?v=eqPQc0Y5HKE"&gt;youtube.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Fundamentos de Inteligencia Artificial - Segunda parte: Orígenes</title><link>http://karpoke.ignaciocano.com/2026/02/20/fundamentos-de-inteligencia-artificial-segunda-parte-origenes/</link><pubDate>Fri, 20 Feb 2026 15:30:07 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/20/fundamentos-de-inteligencia-artificial-segunda-parte-origenes/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La Inteligencia Artificial tiene mucha relación con el Linuxverso, por
ello, hoy te ofrecemos esta segunda parte para aprender más sobre ella.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Jose Albert | &lt;a href="https://blog.desdelinux.net/inteligencia-artificial-ia-para-linuxeros-segunda-parte/"&gt;blog.desdelinux.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Resolve DNS name in ubuntu</title><link>http://karpoke.ignaciocano.com/2026/02/17/resolve-dns-name-in-ubuntu/</link><pubDate>Tue, 17 Feb 2026 17:09:24 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/17/resolve-dns-name-in-ubuntu/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Enabling Active Directory DNS Resolution on Ubuntu Problem Statement: An
Ubuntu VM needs to communicate with several Windows VMs that are m&amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» tuxthink.blogspot.com | &lt;a href="https://tuxthink.blogspot.com/2026/02/resolve-dns-name-in-ubuntu.html"&gt;tuxthink.blogspot.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Adiós a las excusas. Cómo monté mi VS Code en un servidor</title><link>http://karpoke.ignaciocano.com/2026/02/17/adios-a-las-excusas-como-monte-mi-vs-code-en-un-servidor/</link><pubDate>Tue, 17 Feb 2026 17:09:18 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/17/adios-a-las-excusas-como-monte-mi-vs-code-en-un-servidor/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Aprende a montar tu entorno de desarrollo remoto con Code Server y
Docker para programar profesionalmente desde cualquier tablet Android o
navegador.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» atareao con Linux | &lt;a href="https://atareao.es/podcast/adios-a-las-excusas-como-monte-mi-vs-code-en-un-servidor/"&gt;atareao.es&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Why is Debian Called the Universal Operating System, Again?</title><link>http://karpoke.ignaciocano.com/2026/02/17/why-is-debian-called-the-universal-operating-system-again/</link><pubDate>Tue, 17 Feb 2026 17:08:10 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/17/why-is-debian-called-the-universal-operating-system-again/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Debian&amp;rsquo;s official tagline is &amp;ldquo;Universal Operating System&amp;rdquo;. It&amp;rsquo;s more
than just a tagline: it&amp;rsquo;s a deeper concept that underpins the very
nature of Debian as a project.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» It&amp;rsquo;s FOSS | &lt;a href="https://itsfoss.com/debian-universal-operating-system/"&gt;itsfoss.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Linus Torvalds, creador de Linux: "La programación es como cualquier deporte, tienes que trabajar duro. Si solo juegas al golf un día a la semana, no mejoras mucho"</title><link>http://karpoke.ignaciocano.com/2026/02/16/linus-torvalds-creador-de-linux-la-programacion-es-como-cualquier-deporte-tienes/</link><pubDate>Mon, 16 Feb 2026 10:43:04 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/16/linus-torvalds-creador-de-linux-la-programacion-es-como-cualquier-deporte-tienes/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Linus Torvalds, creador de Linux, compara la programación con el
deporte: para mejorar hay que practicar constantemente. Reflexiones
sobre dedicación, disciplina y el futuro del desarrollo de software.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» elhacker.NET | &lt;a href="https://blog.elhacker.net/2026/02/linus-torvalds-creador-de-linux-la.html"&gt;blog.elhacker.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>1995: El punto de inflexión de la ofimática y la informática personal</title><link>http://karpoke.ignaciocano.com/2026/02/13/1995-el-punto-de-inflexion-de-la-ofimatica-y-la-informatica-personal/</link><pubDate>Fri, 13 Feb 2026 13:59:28 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/13/1995-el-punto-de-inflexion-de-la-ofimatica-y-la-informatica-personal/</guid><description>&lt;blockquote&gt;
&lt;p&gt;1995: El punto de inflexión de la ofimática y la informática personal&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Manuel Llaca | &lt;a href="https://parceladigital.com/podcast/1995-el-punto-de-inflexion-de-la-ofimatica-y-la-informatica-personal"&gt;parceladigital.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>How to Save Multiple Drafts in Git: A Guide to Using Stash</title><link>http://karpoke.ignaciocano.com/2026/02/09/how-to-save-multiple-drafts-in-git-a-guide-to-using-stash/</link><pubDate>Mon, 09 Feb 2026 17:54:04 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/09/how-to-save-multiple-drafts-in-git-a-guide-to-using-stash/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Writing code can be similar to writing tutorials. In both cases, you’ll
typically need to create and work on multiple drafts before reaching the
final version. In an ideal setting, you would write cod&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» freeCodeCamp.org | &lt;a href="https://www.freecodecamp.org/news/how-to-save-multiple-drafts-in-git-a-guide-to-using-stash/"&gt;freecodecamp.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>5 veces que la termodinámica casi rompe la realidad (y por qué no lo hizo)</title><link>http://karpoke.ignaciocano.com/2026/02/09/5-veces-que-la-termodinamica-casi-rompe-la-realidad-y-por-que-no-lo-hizo-aulaque/</link><pubDate>Mon, 09 Feb 2026 11:07:40 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/09/5-veces-que-la-termodinamica-casi-rompe-la-realidad-y-por-que-no-lo-hizo-aulaque/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La termodinámica tiene mala fama: se enseña como la ciencia de las
máquinas de vapor y los pistones. Pero si la estudias en profundidad y
te acercas a sus límites, deja de ser ingeniería aburrida para
convertirse en pura filosofía. Desde demonios que abren puertas
moleculares hasta agujeros negros que se evaporan: un viaje matemático
por los límites donde las reglas del universo parecen quebrarse.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Jose Luis Bernal | &lt;a href="https://aulaquest.com/4-veces-que-la-termodinamica-casi-rompe-la-realidad-y-por-que-no-lo-hizo/"&gt;aulaquest.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Emuladores legales para tener una consola con miles de juegos retro</title><link>http://karpoke.ignaciocano.com/2026/02/08/emuladores-legales-para-tener-una-consola-con-miles-de-juegos-retro/</link><pubDate>Sun, 08 Feb 2026 16:59:36 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/08/emuladores-legales-para-tener-una-consola-con-miles-de-juegos-retro/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Recopilación de emuladores legales que permiten jugar a miles de juegos
retro de consolas clásicas, con opciones para diferentes plataformas y
sistemas operativos.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» elhacker.NET | &lt;a href="https://blog.elhacker.net/2026/02/emuladores-legales-para-tener-una.html"&gt;blog.elhacker.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>paste: combina lineas de varios ficheros de forma horizontal</title><link>http://karpoke.ignaciocano.com/2026/02/04/paste-combina-lineas-de-varios-ficheros-de-forma-horizontal/</link><pubDate>Wed, 04 Feb 2026 18:00:12 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/04/paste-combina-lineas-de-varios-ficheros-de-forma-horizontal/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Herramienta para combinar líneas de uno o varios archivos en columnas,
ideal para unir datos y generar tablas simples desde la terminal.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» voidNull | &lt;a href="https://voidnull.es/paste-combina-lineas-de-varios-ficheros-de-forma-horizontal/"&gt;voidnull.es&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Top 2026 de proyectos de ciberseguridad en GitHub</title><link>http://karpoke.ignaciocano.com/2026/02/03/top-2026-de-proyectos-de-ciberseguridad-en-github/</link><pubDate>Tue, 03 Feb 2026 13:00:46 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/03/top-2026-de-proyectos-de-ciberseguridad-en-github/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Recopilación de los mejores proyectos de ciberseguridad disponibles en
GitHub para el año 2026, incluyendo herramientas de pentesting, análisis
de vulnerabilidades y recursos de formación.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» HackHispano | &lt;a href="https://foro.hackhispano.com/threads/48964-Top-2026-de-proyectos-de-ciberseguridad-en-GitHub?goto=newpost"&gt;foro.hackhispano.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>El Superprogramador: cómo la IA está cambiando el futuro de los programadores</title><link>http://karpoke.ignaciocano.com/2026/02/03/el-superprogramador-como-la-ia-esta-cambiando-el-futuro-de-los-programadores/</link><pubDate>Tue, 03 Feb 2026 12:59:27 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/03/el-superprogramador-como-la-ia-esta-cambiando-el-futuro-de-los-programadores/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La IA está afectando a todas las áreas productivas. Hoy por hoy, parece
que los más afectados somos los programadores, ya que es por donde ha
empezado a func&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Cecilio Álvarez Caules | &lt;a href="https://www.arquitecturajava.com/el-superprogramador/"&gt;arquitecturajava.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>¿Cuántos parámetros son demasiados parámetros?</title><link>http://karpoke.ignaciocano.com/2026/02/03/cuantos-parametros-son-demasiados-parametros/</link><pubDate>Tue, 03 Feb 2026 12:57:49 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/03/cuantos-parametros-son-demasiados-parametros/</guid><description>&lt;blockquote&gt;
&lt;p&gt;¿Cuántos parámetros son demasiados parámetros?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» José María Aguilar (jmaguilar) | &lt;a href="https://www.variablenotfound.com/2026/02/cuantos-parametros-son-demasiados.html"&gt;variablenotfound.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The "Vibe Coding" Disaster: How a Simple Bug Exposed 4.75 Million Records on the AI Social Network Moltbook</title><link>http://karpoke.ignaciocano.com/2026/02/03/the-vibe-coding-disaster-how-a-simple-bug-exposed-4-75-million-records-on-the-ai/</link><pubDate>Tue, 03 Feb 2026 12:56:02 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/02/03/the-vibe-coding-disaster-how-a-simple-bug-exposed-4-75-million-records-on-the-ai/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Wiz Research exposes a critical flaw in Moltbook, the AI-only social
network. 1.5M API tokens and plaintext OpenAI keys leaked due to
AI-coded security gaps.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Ddos | &lt;a href="https://securityonline.info/the-vibe-coding-disaster-how-a-simple-bug-exposed-4-75-million-records-on-the-ai-social-network-moltbook/"&gt;securityonline.info&lt;/a&gt;&lt;/p&gt;</description></item><item><title>cpx: una alternativa moderna y más rápida al comando cp en Linux | SoloLinux</title><link>http://karpoke.ignaciocano.com/2026/01/30/cpx-una-alternativa-moderna-y-mas-rapida-al-comando-cp-en-linux-sololinux/</link><pubDate>Fri, 30 Jan 2026 21:47:41 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/01/30/cpx-una-alternativa-moderna-y-mas-rapida-al-comando-cp-en-linux-sololinux/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Lejos de pretender sustituir directamente a cp, cpx se presenta como una
alternativa moderna pensada para escenarios más exigentes&amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» RubenMaverick | &lt;a href="https://sololinux.es/cpx-una-alternativa-moderna-y-mas-rapida-al-comando-cp-en-linux/"&gt;sololinux.es&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Le preguntaron a Richard Stallman: ¿Es mala la piratería de software?</title><link>http://karpoke.ignaciocano.com/2026/01/30/le-preguntaron-a-richard-stallman-es-mala-la-pirateria-de-software/</link><pubDate>Fri, 30 Jan 2026 16:55:27 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/01/30/le-preguntaron-a-richard-stallman-es-mala-la-pirateria-de-software/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El pasado viernes, Richard Stallman, de 72 años, ofreció una
presentación de dos horas y 20 minutos en el Instituto Tecnológico de
Georgia, donde habló sobre temas como la IA, los coches conectados , los
smartphones, las leyes de verificación de edad y su distribución de
Linux…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Javier Orovengua | &lt;a href="https://www.linuxparty.es/60-software/12632-le-preguntaron-a-richard-stallman-%C2%BFes-mala-la-pirater%C3%ADa-de-software.html"&gt;linuxparty.es&lt;/a&gt;&lt;/p&gt;</description></item><item><title>El maravilloso ojo humano ¿seguro?</title><link>http://karpoke.ignaciocano.com/2026/01/30/el-maravilloso-ojo-humano-seguro/</link><pubDate>Fri, 30 Jan 2026 12:43:45 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/01/30/el-maravilloso-ojo-humano-seguro/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Uno de los principales “argumentos” que han expuesto desde siempre los
creyentes de las alucinaciones judeocristianas para defender la
existencia de un dios “creador” y negar el evolucionismo ha si…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» La Ciencia y sus Demonios | &lt;a href="https://cnho.wordpress.com/2026/01/30/el-maravilloso-ojo-humano-seguro/"&gt;cnho.wordpress.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>File Format Gallery for Kaitai Struct</title><link>http://karpoke.ignaciocano.com/2026/01/29/file-format-gallery-for-kaitai-struct/</link><pubDate>Thu, 29 Jan 2026 09:56:38 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/01/29/file-format-gallery-for-kaitai-struct/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Kaitai Struct is a formal language for binary format specification that
can be compiled into parser code&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» formats.kaitai.io | &lt;a href="https://formats.kaitai.io/"&gt;formats.kaitai.io&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Richard Stallman, el inventor del código abierto: "Llaman inteligencia artificial a lo que no es, yo lo llamo inteligencia fingida"</title><link>http://karpoke.ignaciocano.com/2026/01/26/richard-stallman-el-inventor-del-codigo-abierto-llaman-inteligencia-artificial-a/</link><pubDate>Mon, 26 Jan 2026 16:41:57 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/01/26/richard-stallman-el-inventor-del-codigo-abierto-llaman-inteligencia-artificial-a/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Richard Stallman, fundador del movimiento del software libre, critica
el término &amp;ldquo;inteligencia artificial&amp;rdquo; y propone llamarla &amp;ldquo;inteligencia
fingida&amp;rdquo;, argumentando que estos sistemas no poseen verdadera
inteligencia.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» elhacker.NET | &lt;a href="https://blog.elhacker.net/2026/01/richard-stallman-el-inventor-del-codigo.html"&gt;blog.elhacker.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Learn Dynamic Programming Through Dynamic Visuals</title><link>http://karpoke.ignaciocano.com/2026/01/21/learn-dynamic-programming-through-dynamic-visuals/</link><pubDate>Wed, 21 Jan 2026 20:20:31 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/01/21/learn-dynamic-programming-through-dynamic-visuals/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Dynamic programming (DP) is often considered one of the most
intimidating topics in coding interviews. It has a reputation for being
abstract and counterintuitive, but it doesn&amp;rsquo;t have to be. We just
published a comprehensive Dynamic Programming cours&amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» freeCodeCamp.org | &lt;a href="https://www.freecodecamp.org/news/learn-dynamic-programming-through-dynamic-visuals/"&gt;freecodecamp.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Libros de "Ciberseguridad paso a paso" disponibles para descarga gratuita</title><link>http://karpoke.ignaciocano.com/2026/01/12/libros-de-ciberseguridad-paso-a-paso-disponibles-para-descarga-gratuita/</link><pubDate>Mon, 12 Jan 2026 11:07:23 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/01/12/libros-de-ciberseguridad-paso-a-paso-disponibles-para-descarga-gratuita/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Libros de &amp;ldquo;Ciberseguridad paso a paso&amp;rdquo; disponibles para descarga
gratuita. Recursos de formación en ciberseguridad publicados por Chema
Alonso en su blog El lado del mal.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Chema Alonso | &lt;a href="https://www.elladodelmal.com/2026/01/libros-de-ciberseguridad-paso-paso.html"&gt;elladodelmal.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Unit testing your code’s performance, part 1: Big-O scaling</title><link>http://karpoke.ignaciocano.com/2026/01/11/unit-testing-your-codes-performance-part-1-big-o-scaling/</link><pubDate>Sun, 11 Jan 2026 14:21:47 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/01/11/unit-testing-your-codes-performance-part-1-big-o-scaling/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Your software’s speed needs some form of testing; big-O scaling is a
good starting point.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Itamar Turner-Trauring | &lt;a href="https://pythonspeed.com/articles/big-o-tests/"&gt;pythonspeed.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>8 WhatsApp Features to Boost Your Security and Privacy</title><link>http://karpoke.ignaciocano.com/2026/01/06/8-whatsapp-features-to-boost-your-security-and-privacy/</link><pubDate>Tue, 06 Jan 2026 09:18:28 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/01/06/8-whatsapp-features-to-boost-your-security-and-privacy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Meta’s end-to-end encrypted messaging app is used by billions of people.
Here’s how to make sure you’re one of the most locked-down ones out
there.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Kate O&amp;rsquo;Flaherty | &lt;a href="https://www.wired.com/story/5-features-that-boost-security-and-privacy-on-whatsapp/"&gt;wired.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>6.4: Viroides, Virusoides y Priones</title><link>http://karpoke.ignaciocano.com/2026/01/05/6-4-viroides-virusoides-y-priones/</link><pubDate>Mon, 05 Jan 2026 11:27:44 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/01/05/6-4-viroides-virusoides-y-priones/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Otros agentes acelulares como viroides, virusoides y priones también
causan enfermedades. Los viroides consisten en ARNmc pequeños y desnudos
que causan enfermedades en las plantas. Los …&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» LibreTexts Español | &lt;a href="https://espanol.libretexts.org/Bookshelves/Biologia/Microbiologia/Microbiolog%C3%ADa_(OpenStax)/06:_Pat%C3%B3genos_acelulares/6.04:_Viroides,_Virusoides_y_Priones"&gt;espanol.libretexts.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Efecto: Building Real-Time ASCII and Dithering Effects with WebGL Shaders | Codrops</title><link>http://karpoke.ignaciocano.com/2026/01/05/efecto-building-real-time-ascii-and-dithering-effects-with-webgl-shaders-codrops/</link><pubDate>Mon, 05 Jan 2026 11:26:20 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/01/05/efecto-building-real-time-ascii-and-dithering-effects-with-webgl-shaders-codrops/</guid><description>&lt;blockquote&gt;
&lt;p&gt;An exploration of how classic image algorithms and CRT-era visuals come
alive through real-time shaders on the web.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Codrops | &lt;a href="https://tympanus.net/codrops/2026/01/04/efecto-building-real-time-ascii-and-dithering-effects-with-webgl-shaders/"&gt;tympanus.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>¿Recordáis el paper sobre agujeros negros que llegó a portada? He programado una simulación</title><link>http://karpoke.ignaciocano.com/2026/01/03/recordais-el-paper-sobre-agujeros-negros-que-llego-a-portada-he-programado-una-s/</link><pubDate>Sat, 03 Jan 2026 16:23:27 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/01/03/recordais-el-paper-sobre-agujeros-negros-que-llego-a-portada-he-programado-una-s/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Hace unos días, el comentario más votado en la noticia sobre la
simulación de agujeros negros decía justamente eso:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Menéame | &lt;a href="https://www.meneame.net/story/recordais-paper-sobre-agujeros-negros-llego-portada-flipo-tanto-1"&gt;meneame.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Implicit string concatenation</title><link>http://karpoke.ignaciocano.com/2026/01/02/implicit-string-concatenation/</link><pubDate>Fri, 02 Jan 2026 01:02:07 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/01/02/implicit-string-concatenation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Python automatically concatenates adjacent string literals thanks to
implicit string concatenation. This feature can sometimes lead to bugs.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Trey Hunner | &lt;a href="https://www.pythonmorsels.com/implicit-string-concatenation/"&gt;pythonmorsels.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Debugging Microservices: A Journey into Distributed Debugging | HackerNoon</title><link>http://karpoke.ignaciocano.com/2026/01/01/debugging-microservices-a-journey-into-distributed-debugging-hackernoon/</link><pubDate>Thu, 01 Jan 2026 12:45:08 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2026/01/01/debugging-microservices-a-journey-into-distributed-debugging-hackernoon/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A framework for debugging microservices using gRPC interceptors to
automatically collect and propagate debug information across service
calls.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» HackerNoon | &lt;a href="https://hackernoon.com/debugging-microservices-a-journey-into-distributed-debugging"&gt;hackernoon.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Una sola pregunta para mejorar tu carrera profesional en 2020</title><link>http://karpoke.ignaciocano.com/2019/12/26/una-sola-pregunta-para-mejorar-tu-carrera-profesional-en-2020/</link><pubDate>Thu, 26 Dec 2019 16:49:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/12/26/una-sola-pregunta-para-mejorar-tu-carrera-profesional-en-2020/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El consultor José Miguel Bolívar (@jmbolivar) clasifica los comportamientos
productivos en cuatro niveles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Eficacia es prestar atención a las cosas correctas.&lt;/li&gt;
&lt;li&gt;Eficiencia es prestar la atención correcta a cada cosa.&lt;/li&gt;
&lt;li&gt;Efectividad es prestar la atención correcta a las cosas correctas.&lt;/li&gt;
&lt;li&gt;Equilibrio es prestar la atención adecuada a todas las cosas.
Tal vez no muchos directivos y profesionales puedan asegurar que están
siquiera en el nivel 1 de productividad, es decir, que están prestando
atención a las “cosas correctas”, porque para poder hacerlo, antes hay que
decidir de forma específica cuáles son ahora los objetivos correctos en su
empresa y/o en su carrera.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Alfonso Alcántara | &lt;a href="https://empresas.blogthinkbig.com/carrera-profesional/"&gt;blogthinkbig.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Color Theory and Contrast Ratios</title><link>http://karpoke.ignaciocano.com/2019/12/26/color-theory-and-contrast-ratios/</link><pubDate>Thu, 26 Dec 2019 16:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/12/26/color-theory-and-contrast-ratios/</guid><description>&lt;blockquote&gt;
&lt;p&gt;There are no definites with color. Sure, you have your red, your green, and
so on — but even that is relative. Try to describe a specific red color to a
friend. Chances are the description will settle on, for example, is the color
more of a brick-red or a fire truck-red?
Describing a color that looks similar to another color is natural way to
discuss or express color. But when getting into specifics — accurately
defining what it a certain color is — it’s almost impossible. Color, at its
core, is a relative and personal experience.&lt;/p&gt;</description></item><item><title>An OAuth 2.0 introduction for beginners</title><link>http://karpoke.ignaciocano.com/2019/12/16/an-oauth-2-0-introduction-for-beginners/</link><pubDate>Mon, 16 Dec 2019 23:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/12/16/an-oauth-2-0-introduction-for-beginners/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This article doesn’t want to be the final guide to OAuth 2, but an
introduction to the flows that this framework is composed of. You’ll have a
look at the four basic flows and some practical scenarios, to understand the
involved actors and the detailed behaviors. The goal is to be able to choose
a flow that best fits your needs.
To make it as easy as possible, the experts will forgive me, we can say that
there are four different versions. Or, more correctly, four different flows.
OAuth 2 is the totality of these flows. It’s not mandatory to implement them
all, but only the ones that you need.&lt;/p&gt;</description></item><item><title>Design Patterns in Python</title><link>http://karpoke.ignaciocano.com/2019/12/16/design-patterns-in-python/</link><pubDate>Mon, 16 Dec 2019 23:44:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/12/16/design-patterns-in-python/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Traditionally, design patterns have been classified into three main
categories: Creational, Structural, and Behavioral. There are other
categories, like architectural or concurrency patterns, but they&amp;rsquo;re beyond
the scope of this article.
There are also Python-specific design patterns that are created specifically
around the problems that the structure of the language itself provides or
that deal with problems in special ways that are only allowed because of the
structure of the language.&lt;/p&gt;</description></item><item><title>Now You See It: Understanding Display</title><link>http://karpoke.ignaciocano.com/2019/12/16/now-you-see-it-understanding-display/</link><pubDate>Mon, 16 Dec 2019 23:29:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/12/16/now-you-see-it-understanding-display/</guid><description>&lt;blockquote&gt;
&lt;p&gt;CSS Layout is all about boxes. We know that some boxes are blocks, and others
are inline, and we can change the display type of elements by changing the
value of the display property. That property holds the key to much more than
this, however. It is the foundation on which all layout is built; the core of
the inbuilt CSS layout system. Learning Grid Layout, or Flexbox, without
understanding Display, leaves you with a wobbly foundation and more questions
than answers.
The real question isn’t “Should I use Grid or Flexbox?” but instead, “How do
I want these boxes to behave?” Understanding the interaction between layout
methods will enable you to easily create fallbacks for older browsers, and
knowing how the various formatting contexts behave unlocks margin collapsing
and the behavior of items inside grid or flex layout. By the end of the hour,
you’ll understand how the display property underpins the layout system we
have today, the things coming in the future, and be able to make more
informed decisions when deciding how to build any part of your design, big or
small.&lt;/p&gt;</description></item><item><title>Más allá de GRUB</title><link>http://karpoke.ignaciocano.com/2019/11/23/mas-alla-de-grub.md/</link><pubDate>Sat, 23 Nov 2019 12:57:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/11/23/mas-alla-de-grub.md/</guid><description>&lt;blockquote&gt;
&lt;p&gt;GRUB (Grand Unified Bootloader) es un gestor de arranque disponible del
proyecto GNU. Un gestor de arranque es muy importante ya que es imposible
iniciar un sistema operativo sin él. Es el primer programa que se inicia
cuando se enciende el ordenador. El cargador de arranque transfiere el
control al núcleo del sistema operativo.
GRUB es el gestor de arranque predeterminado para casi todas las
distribuciones de GNU/Linux. Esto se debe a que es mejor que muchas de las
versiones anteriores de los cargadores de arranque. Pero ¿Hay vida más allá
de GRUB?&lt;/p&gt;</description></item><item><title>Linux VS open source UNIX</title><link>http://karpoke.ignaciocano.com/2019/11/23/linux-vs-open-source-unix/</link><pubDate>Sat, 23 Nov 2019 12:15:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/11/23/linux-vs-open-source-unix/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This is mainstream opinion. Linux is better than anything else and money is
poured in constantly, more than in other platforms. And aside this is not
true, this is not based in facts but on feelings. Most GNU/Linux
distributions are very average on many aspects. The fact they run on many
servers on this planet and many developers work on them, doesn’t make them
better than ‘X’. They are popular but that’s it.&lt;/p&gt;</description></item><item><title>130+ Essential Vim Commands</title><link>http://karpoke.ignaciocano.com/2019/11/23/130-vim-essential-vim-commands.md/</link><pubDate>Sat, 23 Nov 2019 12:12:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/11/23/130-vim-essential-vim-commands.md/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Since the 1970’s, Vi and its successor Vim have been included by default on
many operating systems, including almost all GNU/Linux distributions. Vim is
free and open-source and is one of the most popular code editors. It can be
downloaded on Vim official site.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Jean-Baptiste Jung | &lt;a href="https://catswhocode.com/vim-commands/"&gt;catswhocode.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>PC Keyboard: The First Five Years</title><link>http://karpoke.ignaciocano.com/2019/10/27/pc-keyboard-the-first-five-years/</link><pubDate>Sun, 27 Oct 2019 16:20:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/10/27/pc-keyboard-the-first-five-years/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The vast majority of PC users today have no memory of what PC keyboards
looked like before the standard 101/102-key layout arrived, even though
various OEMs do their best to mangle the standard layout in order to minimize
usability, especially on laptops. OEM-specific modifications aside, the basic
layout of the main block of alphanumeric keys has not changed in over 30
years, since 1986.&lt;/p&gt;
&lt;p&gt;However, up until that point the PC keyboard layout and the keyboard hardware
changed quite a bit, and looking at the 1981-1986 IBM Technical References is
key to understanding a) why the standard keyboard scan codes are so complex,
and b) why there are so many seemingly odd vendor-specific modifications of
the standard layout.&lt;/p&gt;</description></item><item><title>10 Data Structure &amp;amp; Algorithms Books Every Programmer Should Read</title><link>http://karpoke.ignaciocano.com/2019/06/21/10-data-structure-amp-algorithms-books-every-programmer-should-read/</link><pubDate>Fri, 21 Jun 2019 15:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/06/21/10-data-structure-amp-algorithms-books-every-programmer-should-read/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A collection of awesome Algorithms books which should find a place in every
programmer’s book self. Includes language specific books in Java, Python,
and JavaScript for easy learning. Algorithms are language agnostic and any
programmer worth their salt should be able to convert them to code in their
programming language of choice.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Hacker Noon | &lt;a href="https://hackernoon.com/10-data-structure-algorithms-books-every-programmer-should-read-d50487313127?source=rss----3a8144eabfe3---4"&gt;hackernoon.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 Popular Websites Built With Django</title><link>http://karpoke.ignaciocano.com/2019/05/28/10-popular-websites-built-with-django/</link><pubDate>Tue, 28 May 2019 19:14:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/05/28/10-popular-websites-built-with-django/</guid><description>&lt;blockquote&gt;
&lt;p&gt;What is the framework Regardless of the sphere you work in, one of your most
important tasks is to create a fast, good-looking website. Today, almost
every business needs a website, which acts as a sort of business card for a
company or online service. It helps you engage with customers, promote your
business, increase sales and so on.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Hacker Noon | &lt;a href="https://hackernoon.com/10-popular-websites-built-with-django-906cc310aa0a"&gt;hackernoon.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 OOP Design Principles Every Programmer Should Know</title><link>http://karpoke.ignaciocano.com/2019/05/06/10-oop-design-principles-every-programmer-should-know/</link><pubDate>Mon, 06 May 2019 09:56:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/05/06/10-oop-design-principles-every-programmer-should-know/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The Object-Oriented Design Principles are the core of OOP programming, but I
have seen most of the Java programmers chasing design patterns like
Singleton pattern, Decorator pattern, or Observer pattern, and not putting
enough attention on learning Object-oriented analysis and design. It’s
important to learn the basics of Object-oriented programming like
Abstraction, Encapsulation, Polymorphism and Inheritance. But, at the same
time, it’s equally important to know object-oriented design principles.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Hacker Noon | &lt;a href="https://hackernoon.com/10-oop-design-principles-every-programmer-should-know-f187436caf65?source=rss----3a8144eabfe3---4"&gt;hackernoon.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 moments that shaped Linux history</title><link>http://karpoke.ignaciocano.com/2019/04/30/10-moments-that-shaped-linux-history/</link><pubDate>Tue, 30 Apr 2019 09:01:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/04/30/10-moments-that-shaped-linux-history/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In August 2018, Opensource.com posted a poll with seven options asking
readers: What was the most important moment in the history of Linux? I
thought I would expand on the list and present 10 moments that I think have
played an important part in shaping the history of Linux.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Opensource.com | &lt;a href="https://opensource.com/article/19/4/top-moments-linux-history"&gt;opensource.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Un paseo matemático por la Alhambra: cuando el arte se basa en los números</title><link>http://karpoke.ignaciocano.com/2019/04/01/un-paseo-matematico-por-la-alhambra-cuando-el-arte-se-basa-en-los-numeros/</link><pubDate>Mon, 01 Apr 2019 14:33:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/04/01/un-paseo-matematico-por-la-alhambra-cuando-el-arte-se-basa-en-los-numeros/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A ojos de alguien no-experto en matemáticas, el arco que encabeza estas
líneas puede transmitir una gran armonía, pero resultaría difícil explicar
el por qué. La causa de esa armonía está en las matemáticas empleadas para
su diseño, para una composición extraordinariamente calculada.
Este arco en concreto es el arco del mihrab islámico cordobés del granadino
palacio de la Madraza, un lugar que indica hacia qué dirección se debe rezar
según la religión musulmana. Si nos fijamos, los arcos interior y exterior
no son concéntricos, es decir, no comparten el mismo eje. El arco interior
está elevado R/2 por encima del eje de impostas, y el arco exterior elevado
un R/5.&lt;/p&gt;</description></item><item><title>10 Awesome Security Tips for Python Enthusiasts</title><link>http://karpoke.ignaciocano.com/2019/03/03/10-awesome-security-tips-for-python-enthusiasts/</link><pubDate>Sun, 03 Mar 2019 22:28:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/03/03/10-awesome-security-tips-for-python-enthusiasts/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Software development is an amazing job that can sometimes feel like juggling
chainsaws. Between maintaining your current code base and releasing new
features and projects, it is fairly easy to think of security as Someone
Else&amp;rsquo;s Problem &amp;ndash;you have enough to deal with. But there is a major benefit
to incorporating security consciousness into your workflow.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» DEV Community | &lt;a href="https://dev.to/hayleydenb/10-awesome-security-tips-for-python-enthusiasts-3729"&gt;dev.to&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 Cool Command Line Tools For Your Linux Terminal</title><link>http://karpoke.ignaciocano.com/2019/02/03/10-cool-command-line-tools-for-your-linux-terminal/</link><pubDate>Sun, 03 Feb 2019 21:14:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/02/03/10-cool-command-line-tools-for-your-linux-terminal/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In this article, we will share a number of cool command-line programs that
you can use in a Linux terminal. By the end of this article, you will learn
about some free, open source, and exciting, text-based tools to help you do
more with boredom on the Command line.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Tecmint: Linux Howtos, Tutorials &amp;amp; Guides | &lt;a href="https://www.tecmint.com/cool-linux-commandline-tools-for-terminal/"&gt;tecmint.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 Tools To Power Up Your Command Line</title><link>http://karpoke.ignaciocano.com/2019/01/04/10-tools-to-power-up-your-command-line/</link><pubDate>Fri, 04 Jan 2019 15:35:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2019/01/04/10-tools-to-power-up-your-command-line/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This post is the first in series of showcases of some of the best
non-standard command line tools I&amp;rsquo;ve discovered in recent years. If you ever
make use of the command line, you&amp;rsquo;ll probably find that at least one item on
this page will make your life easier.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» DEV Community | &lt;a href="https://dev.to/_darrenburns/10-tools-to-power-up-your-command-line-4id4"&gt;dev.to&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 Myths About Microservices</title><link>http://karpoke.ignaciocano.com/2018/12/25/10-myths-about-microservices/</link><pubDate>Tue, 25 Dec 2018 07:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/12/25/10-myths-about-microservices/</guid><description>&lt;blockquote&gt;
&lt;p&gt;10 myths about Microservices, that we often hear to believe it is true.
Micro-services has become a very hot topic in the last half-decade. After
Agile, DevOps, its Microservices that we hear everywhere I go. The
unfortunate thing that I witnessed though, is that, every organization and
every person in that organization has their own definition of what a
Microservice is.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Hacker Noon | &lt;a href="https://hackernoon.com/10-myths-about-microservices-aadd06782260"&gt;hackernoon.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>¿Qué son los argumentos universales?</title><link>http://karpoke.ignaciocano.com/2018/12/18/que-son-los-argumentos-universales/</link><pubDate>Tue, 18 Dec 2018 21:45:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/12/18/que-son-los-argumentos-universales/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Los argumentos universales son los relatos o situaciones dramáticas que se
repiten en todas las culturas, épocas y formatos. Se repiten una y mil veces
en el cine, el teatro, la literatura, la televisión, el videojuego&amp;hellip;
George Polti en su libro clásico &amp;ldquo;Las 36 situaciones dramáticas&amp;rdquo; redujo toda
posible acción teatral en 36 paradigmas.
En &amp;ldquo;La semilla inmortal. Los argumentos universales en el cine&amp;rdquo;, los autores
Jordi Balló y Xavier Pérez sostienen que en el cine hay 21 argumentos que se
repiten continuamente. En dicho libro proponen un recorrido por las grandes
películas de la historia del cine relacionando los argumentos con obras
maestras de la literatura. Cada uno de los 21 capítulos del libro comienza
con la explicación de un argumento original para después explicar cómo el
cine toma las constantes de dicho argumento y las desarrolla por múltiples
vías pero manteniendo siempre la estructura del relato original.&lt;/p&gt;</description></item><item><title>5 Fatal Docker Gotcha's 😱 - for new users</title><link>http://karpoke.ignaciocano.com/2018/11/20/5-fatal-docker-gotcha-s-for-new-users/</link><pubDate>Tue, 20 Nov 2018 18:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/11/20/5-fatal-docker-gotcha-s-for-new-users/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Developing with docker containers is great! And we at uilicious run our
entire backend on top of docker. It would have been impossible to have
launch uilicious at our current cost and scale without docker. However as
with all technologies, there are hidden, not so obvious, gotcha’s reaching
there, especially when running Docker at scale across multiple hosts.
Especially for those migrating from physical servers, or virtualized
machines workload.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» DEV Community | &lt;a href="https://dev.to/uilicious/5-fatal-docker-gotchas----for-new-users-2o87"&gt;dev.to&lt;/a&gt;&lt;/p&gt;</description></item><item><title>La historia del sistema operativo Unix y los ordenadores de la época narrada por Rob Pike</title><link>http://karpoke.ignaciocano.com/2018/11/11/la-historia-del-sistema-operativo-unix-y-los-ordenadores-de-la-epoca-narrada-por-rob-pike/</link><pubDate>Sun, 11 Nov 2018 21:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/11/11/la-historia-del-sistema-operativo-unix-y-los-ordenadores-de-la-epoca-narrada-por-rob-pike/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Sus inicios coincidieron con el Sistema 360 de IBM, máquinas que andaban por
las universidades en los 70 curiosamente «un tanto desocupados» porque la
gente no sabía muy bien qué hacer con ellos. Pike aprendió allí a programar.
Luego tuvo acceso a un PDP-11 en la universidad de Toronto y a otras
máquinas. Cuando llegó a los los laboratorios Bell se encontró con el Unix
recién nacido y trabajó con Ken Thompson y con Kernighan y Ritchie,
creadores del lenguaje C.&lt;/p&gt;</description></item><item><title>10 Data Structure, Algorithms, and Programming Courses to Crack Any Coding Interview</title><link>http://karpoke.ignaciocano.com/2018/10/26/10-data-structure-algorithms-and-programming-courses-to-crack-any-coding-interview/</link><pubDate>Fri, 26 Oct 2018 04:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/10/26/10-data-structure-algorithms-and-programming-courses-to-crack-any-coding-interview/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Many junior developers dream of making it at one of the larger tech
companies, but, to be honest with you, getting your first job is never easy.
It is, in fact, one of the hardest things in your life and you need to put
your best effort to find a job in your dream company.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Hacker Noon | &lt;a href="https://hackernoon.com/10-data-structure-algorithms-and-programming-courses-to-crack-any-coding-interview-e1c50b30b927"&gt;hackernoon.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>4 Ways to Disable Root Account in Linux</title><link>http://karpoke.ignaciocano.com/2018/10/21/4-ways-to-disable-root-account-in-linux/</link><pubDate>Sun, 21 Oct 2018 04:41:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/10/21/4-ways-to-disable-root-account-in-linux/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The root account is the ultimate account on a Linux and other Unix-like
operating systems. This account has access to all commands and files on a
system with full read, write and execute permissions. It is used to perform
any kind of task on a system; to create/update/access/delete other users’
accounts, install/remove/upgrade software packages, and so much more.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Tecmint: Linux Howtos, Tutorials &amp;amp; Guides | &lt;a href="https://www.tecmint.com/disable-root-login-in-linux/"&gt;tecmint.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 Basic Tips on Working Fast in UNIX or Linux Terminal</title><link>http://karpoke.ignaciocano.com/2018/10/18/10-basic-tips-on-working-fast-in-unix-or-linux-terminal/</link><pubDate>Thu, 18 Oct 2018 04:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/10/18/10-basic-tips-on-working-fast-in-unix-or-linux-terminal/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Have you ever amazed to see someone working very fast in UNIX, firing
commands and doing things quickly? Yes, I have seen that a couple of times
and It has always inspired me inspired to learn from those superstar
developers. In this article, or tutorial, or whatever you call it, I have
shared some UNIX command practices I follow to work fast, quick, or
efficiently in Linux.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Hacker Noon | &lt;a href="https://hackernoon.com/10-basic-tips-on-working-fast-in-unix-or-linux-terminal-5746ae42d277"&gt;hackernoon.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 React JS Articles Every Web Developer Should Read</title><link>http://karpoke.ignaciocano.com/2018/10/06/10-react-js-articles-every-web-developer-should-read/</link><pubDate>Sat, 06 Oct 2018 09:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/10/06/10-react-js-articles-every-web-developer-should-read/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Hello Guys, React or React JS is a JavaScript front-end library from Facebook
which lets you create HTML based GUI. It makes the task easier by providing a
component-based architecture which was only available to languages like Java
and C# before. Because of this awesome feature, React is quickly becoming the
standard JavaScript library for developing front-end. That’s the reason many
programmers and developers are learning React or React JS.&lt;/p&gt;</description></item><item><title>Should you learn C to “learn how the computer works”?</title><link>http://karpoke.ignaciocano.com/2018/10/04/should-you-learn-c-to-learn-how-the-computer-works/</link><pubDate>Thu, 04 Oct 2018 06:24:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/10/04/should-you-learn-c-to-learn-how-the-computer-works/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I’ve often seen people suggest that you should learn C in order to learn how
computers work. Is this a good idea? Is this accurate? I’m going to start
with my conclusion right upfront, just to be crystal clear about what I’m
saying here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;C is not “how the computer works.”&lt;/li&gt;
&lt;li&gt;I don’t think most people mean this phrase literally, so that is sort of
irrelevant.&lt;/li&gt;
&lt;li&gt;Understanding the context means that learning C for this reason may still
be a good idea for you, depending on your objectives.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Steve Klabnik | &lt;a href="https://words.steveklabnik.com/should-you-learn-c-to-learn-how-the-computer-works"&gt;steveklabnik.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 años de Android: así ha evolucionado el mejor sistema móvil</title><link>http://karpoke.ignaciocano.com/2018/09/24/10-anos-de-android-asi-ha-evolucionado-el-mejor-sistema-movil/</link><pubDate>Mon, 24 Sep 2018 20:19:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/09/24/10-anos-de-android-asi-ha-evolucionado-el-mejor-sistema-movil/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El día 23 de septiembre de 2008 es una fecha marcada para Google en el
calendario, ese día se presentó al público la versión 1.0 de Android. Un
sistema que, aunque parece llevar con nosotros desde siempre, cumple hoy
diez años. Nada más y nada menos. Aunque su desarrollo empezó varios años
antes de 2008, en una época en la que los reyes del sector eran Symbian y
BlackBerry.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» El Androide Libre | &lt;a href="https://elandroidelibre.elespanol.com/2018/09/android-decimo-aniversario.html"&gt;elandroidelibre.elespanol.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>8 Python packages that will simplify your life with Django</title><link>http://karpoke.ignaciocano.com/2018/09/21/8-python-packages-that-will-simplify-your-life-with-django/</link><pubDate>Fri, 21 Sep 2018 09:13:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/09/21/8-python-packages-that-will-simplify-your-life-with-django/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Django developers, we&amp;rsquo;re devoting this month&amp;rsquo;s Python column to packages
that will help you. These are our favorite Django libraries for saving time,
cutting down on boilerplate code, and generally simplifying our lives. We&amp;rsquo;ve
got six packages for Django apps and two for Django&amp;rsquo;s REST Framework, and
we&amp;rsquo;re not kidding when we say these packages show up in almost every project
we work on.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Opensource.com | &lt;a href="https://opensource.com/article/18/9/django-packages"&gt;opensource.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 practices for readable code</title><link>http://karpoke.ignaciocano.com/2018/09/19/10-practices-for-readable-code/</link><pubDate>Wed, 19 Sep 2018 19:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/09/19/10-practices-for-readable-code/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I’ve been writing code for 20 years. During that time I’ve worked with 17
teams coding different languages to build hundreds of projects. These
include everything from a simple blog site, to APIs supporting 3,000
requests/second, to top selling apps. From these experiences, combined with
the books I’ve read, it’s become apparent to me what matters most in code:
readability.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Jason McCreary | &lt;a href="http://jason.pureconcepts.net/2018/09/practices-write-readable-code-less-complex/"&gt;jason.pureconcepts.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>4 open source monitoring tools</title><link>http://karpoke.ignaciocano.com/2018/08/30/4-open-source-monitoring-tools/</link><pubDate>Thu, 30 Aug 2018 09:16:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/08/30/4-open-source-monitoring-tools/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Isn’t monitoring just monitoring? Doesn’t it include logging, visualization,
and time-series data? The terminology around monitoring has caused a lot of
confusion over the years and has led to some poor tools that tout the
ability to do everything in one format. Observability proponents recognize
there are many levels for observing a system. Metrics aggregation is
primarily time-series data, and that’s what we’ll discuss in this article.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Opensource.com | &lt;a href="https://opensource.com/article/18/8/open-source-monitoring-tools"&gt;opensource.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 Alpine Linux apk Command Examples</title><link>http://karpoke.ignaciocano.com/2018/08/27/10-alpine-linux-apk-command-examples/</link><pubDate>Mon, 27 Aug 2018 21:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/08/27/10-alpine-linux-apk-command-examples/</guid><description>&lt;blockquote&gt;
&lt;p&gt;New to lightweight and systemd free Alpine Linux and package management? Try
my simple guide that explains how to install, remove, query and manage
packages on an Alpine Linux.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» nixCraft: Linux Tips, Hacks, Tutorials, And Ideas In Blog Format | &lt;a href="https://www.cyberciti.biz/faq/10-alpine-linux-apk-command-examples/"&gt;cyberciti.biz&lt;/a&gt;&lt;/p&gt;</description></item><item><title>5 open source tools for container security</title><link>http://karpoke.ignaciocano.com/2018/08/23/5-open-source-tools-for-container-security/</link><pubDate>Thu, 23 Aug 2018 09:07:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/08/23/5-open-source-tools-for-container-security/</guid><description>&lt;blockquote&gt;
&lt;p&gt;As containers become an almost ubiquitous method of packaging and deploying
applications, the instances of malware have increased. Securing containers
is now a top priority for DevOps engineers. Fortunately, a number of open
source programs are available that scan containers and container images.
Let’s look at five such tools. Anchore, Clair, Dagda, OpenSCAP and Sysdig
Falco.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Opensource.com | &lt;a href="https://opensource.com/article/18/8/tools-container-security"&gt;opensource.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Automating backups on a Raspberry Pi NAS</title><link>http://karpoke.ignaciocano.com/2018/08/15/automating-backups-on-a-raspberry-pi-nas/</link><pubDate>Wed, 15 Aug 2018 09:14:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/08/15/automating-backups-on-a-raspberry-pi-nas/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In the first part of this three-part series using a Raspberry Pi for
network-attached storage (NAS), we covered the fundamentals of the NAS setup,
attached two 1TB hard drives (one for data and one for backups), and mounted
the data drive on a remote device via the network filesystem (NFS). In part
two, we will look at automating backups. Automated backups allow you to
continually secure your data and recover from a hardware defect or accidental
file removal.&lt;/p&gt;</description></item><item><title>10 Best Android News App Templates</title><link>http://karpoke.ignaciocano.com/2018/08/14/10-best-android-news-app-templates/</link><pubDate>Tue, 14 Aug 2018 19:51:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/08/14/10-best-android-news-app-templates/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The best news app templates organise news into a few broad categories, allow
users to save news stories they want to read later in a favourites list, and
have a powerful search feature that helps them find relevant news stories
quickly and easily. Whether you’re interested in building a news app from
posts on your own website, creating an app for a localised news source, or
pulling together all mll major news sources into one handy app, you’re sure
to find a template that’s right for you from among these ten best Android
news app templates available at CodeCanyon.&lt;/p&gt;</description></item><item><title>10 Best Kodi Repositories For Downloading Popular Addons | 2019 List</title><link>http://karpoke.ignaciocano.com/2018/08/09/10-best-kodi-repositories-for-downloading-popular-addons-2019-list/</link><pubDate>Thu, 09 Aug 2018 09:24:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/08/09/10-best-kodi-repositories-for-downloading-popular-addons-2019-list/</guid><description>&lt;blockquote&gt;
&lt;p&gt;With online streaming becoming popular by the day, there has been a rise in
the portals and apps that allow you to stream content in a hassle-free
manner. Now, to watch the content from different sources, you would need a
centralized media player and this is where Kodi comes into the picture.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Fossbytes | &lt;a href="https://fossbytes.com/10-best-kodi-repositories-2019-list/"&gt;fossbytes.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 cosas de Google que aún no conoces</title><link>http://karpoke.ignaciocano.com/2018/08/06/10-cosas-de-google-que-aun-no-conoces/</link><pubDate>Mon, 06 Aug 2018 07:00:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/08/06/10-cosas-de-google-que-aun-no-conoces/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Hablar de Google es mencionar a una multinacional sin precedentes en el
mundo de la tecnología. Los avances de esta compañía estadounidense a lo
largo de los años han sido increíbles, pero no todo lo que esta empresa hace
sale a la luz pública de forma sencilla. Por esta razón, hoy hemos querido
recopilar 10 curiosidades de Google que seguro no conoces o nunca
escuchaste.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Wwwhat&amp;rsquo;s new? | &lt;a href="https://wwwhatsnew.com/2018/08/05/10-cosas-de-google-que-aun-no-conoces/"&gt;wwwhatsnew.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 libros de seguridad informática para leer este verano</title><link>http://karpoke.ignaciocano.com/2018/07/23/10-libros-de-seguridad-informatica-para-leer-este-verano/</link><pubDate>Mon, 23 Jul 2018 10:15:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/07/23/10-libros-de-seguridad-informatica-para-leer-este-verano/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Tal y como hiciéramos en las navidades pasadas, vamos a recomendar unos
cuantos libros para que el estío se nos haga más soportable. Abundan las
calores y nada mejor que un librazo y algo fresco que echarse al coleto para
aguantar las terribles temperaturas que nos quedan por soportar. En HISPASEC
nos gustan los libros, mucho, y cuando salimos de vacaciones asaltamos la
biblioteca de empresa y sacamos varios volúmenes (algunos incunables)
prestados, para devolverlos sanos y salvos (aunque con algo de salitre y
tufillo a carbón de chiringuito) de vuelta a la estantería cuando comienza
el nuevo curso escolar.&lt;/p&gt;</description></item><item><title>10 killer tools for the admin in a hurry</title><link>http://karpoke.ignaciocano.com/2018/07/04/10-killer-tools-for-the-admin-in-a-hurry/</link><pubDate>Wed, 04 Jul 2018 09:16:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/07/04/10-killer-tools-for-the-admin-in-a-hurry/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Administering networks and systems can get very stressful when the workload
&amp;lt; piles up. Nobody really appreciates how long anything takes, and everyone
wants their specific thing done yesterday. So it&amp;rsquo;s no wonder so many of us
are drawn to the open source spirit of figuring out what works and sharing
it with everyone.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Opensource.com | &lt;a href="https://opensource.com/article/18/7/tools-admin"&gt;opensource.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 common security gotchas in Python and how to avoid them</title><link>http://karpoke.ignaciocano.com/2018/06/19/10-common-security-gotchas-in-python-and-how-to-avoid-them/</link><pubDate>Tue, 19 Jun 2018 18:39:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/06/19/10-common-security-gotchas-in-python-and-how-to-avoid-them/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Writing secure code is hard. When you learn a language, a module or a
framework, you learn how it supposed to be used. When thinking about
security, you need to think about how it can be misused. Python is no
exception, even within thestandard library there are documented bad
practices for writing hardened applications. Yet, when I’ve spoken to many
Python developers they simply aren’t aware of them.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Hacker Noon | &lt;a href="https://hackernoon.com/10-common-security-gotchas-in-python-and-how-to-avoid-them-e19fbe265e03"&gt;hackernoon.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 7zip (File Archive) Command Examples in Linux</title><link>http://karpoke.ignaciocano.com/2018/05/31/10-7zip-file-archive-command-examples-in-linux/</link><pubDate>Thu, 31 May 2018 12:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/05/31/10-7zip-file-archive-command-examples-in-linux/</guid><description>&lt;blockquote&gt;
&lt;p&gt;7-Zip is a free open source, cross-platform, powerful, and fully-featured
file archiver with a high compression ratio, for Windows. It has a powerful
command line version that has been ported to Linux/POSIX systems.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Tecmint: Linux Howtos, Tutorials &amp;amp; Guides | &lt;a href="https://www.tecmint.com/7zip-command-examples-in-linux/"&gt;tecmint.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>3 Python command-line tools</title><link>http://karpoke.ignaciocano.com/2018/05/31/3-python-command-line-tools/</link><pubDate>Thu, 31 May 2018 09:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/05/31/3-python-command-line-tools/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Sometimes the right tool for the job is a command-line application. A
command-line application is a program that you interact with and run from
something like your shell or Terminal. Git and Curl are examples of
command-line applications that you might already be familiar with.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Opensource.com | &lt;a href="https://opensource.com/article/18/5/3-python-command-line-tools"&gt;opensource.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>You-Get, descarga contenido multimedia utilizando la terminal</title><link>http://karpoke.ignaciocano.com/2018/05/20/you-get-descarga-contenido-multimedia-utilizando-la-terminal/</link><pubDate>Sun, 20 May 2018 12:23:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/05/20/you-get-descarga-contenido-multimedia-utilizando-la-terminal/</guid><description>&lt;blockquote&gt;
&lt;p&gt;En el siguiente artículo vamos a echar un vistazo a You-Get. Se trata de un
programa de CLI escrito en Python. Nos va a permitir permite descargar
imágenes, audio y vídeos de algunos sitios web populares como son Youtube,
Facebook, Twitter, Vimeo y mucho más. Actualmente tiene unos 80 sitios web
compatibles.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Ubunlog | &lt;a href="https://ubunlog.com/you-get-descarga-contenido-multimedia/"&gt;ubunlog.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>12 hackers que preceden la invención del ordenador personal</title><link>http://karpoke.ignaciocano.com/2018/05/17/12-hackers-que-preceden-la-invencion-del-ordenador-personal/</link><pubDate>Thu, 17 May 2018 18:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/05/17/12-hackers-que-preceden-la-invencion-del-ordenador-personal/</guid><description>&lt;blockquote&gt;
&lt;p&gt;En las últimas décadas la palabra hacker ha sido automáticamente asociada con
los ordenadores personales, sin embargo, la historia nos dice que el hacking
como práctica precede por mucho al inolvidable IBM PC. Tarjetas perforadas,
teléfonos y telégrafos fueron los blancos favoritos de expertos y entusiastas
por igual, enfocados en demostrar las debilidades de esos sistemas, obtener
un par de dólares extra, y en casos más críticos, salvar vidas. Hoy vamos a
nombrar a algunos de ellos.&lt;/p&gt;</description></item><item><title>10 comandos de terminal que quizás no conocías</title><link>http://karpoke.ignaciocano.com/2018/05/14/10-comandos-de-terminal-que-quizas-no-conocias/</link><pubDate>Mon, 14 May 2018 02:39:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/05/14/10-comandos-de-terminal-que-quizas-no-conocias/</guid><description>&lt;blockquote&gt;
&lt;p&gt;En el día a día del administrador de sistemas o del cada vez más popular
DevOps, utilizar la terminal es algo que consume gran parte de nuestro
tiempo, ya sea realizando tareas normales, tareas de automatización o
durante procesos de configuración de sistemas. Pasamos gran parte de nuestro
tiempo delante de una terminal y debemos aprender los comandos más
interesantes que nos ayuden a realizar las tareas más rápida y cómodamente.&lt;/p&gt;</description></item><item><title>12 “Manager READMEs” from Silicon Valley’s Top Tech Companies</title><link>http://karpoke.ignaciocano.com/2018/05/03/12-manager-readmes-from-silicon-valley-s-top-tech-companies/</link><pubDate>Thu, 03 May 2018 17:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/05/03/12-manager-readmes-from-silicon-valley-s-top-tech-companies/</guid><description>&lt;blockquote&gt;
&lt;p&gt;What does tech management at Slack, HubSpot, Netflix, Etsy, Shopify,
InVision, and more have in common? A lot, apparently! When we launched our
first SoapBox hero I was surprised to discover a document used to introduce
her working style to her team. I had never seen that before and it was
awesome! Did others have these? I needed to know. Eventually, I found a
treasure trove of examples by Engineering Leaders from companies with some of
the best culture in tech.&lt;/p&gt;</description></item><item><title>10 Biggest Features Of New Gmail For Web You Need To Use</title><link>http://karpoke.ignaciocano.com/2018/04/30/10-biggest-features-of-new-gmail-for-web-you-need-to-use/</link><pubDate>Mon, 30 Apr 2018 08:28:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/04/30/10-biggest-features-of-new-gmail-for-web-you-need-to-use/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The much-awaited makeover of Gmail web interface is here after five long
years. Google has not only redesigned the look but also added several new
functionalities. However, you will get to the see the new features only if
you opt-in for the new Gmail layout. While there are a bunch of features
that are neat but many of them are minor ones. So let’s take a look at the
ones that are actually useful.&lt;/p&gt;</description></item><item><title>10 computadoras clásicas que hicieron historia</title><link>http://karpoke.ignaciocano.com/2018/04/20/10-computadoras-clasicas-que-hicieron-historia/</link><pubDate>Fri, 20 Apr 2018 15:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/04/20/10-computadoras-clasicas-que-hicieron-historia/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Mucho más tarde se inventó el algoritmo, el cálculo numérico, la regla de
cálculo, la máquina de calcular, la tarjeta perforada o la primera
calculadora automática que se fabricó y empleó a escala industrial. En 1936
llegó la revolución cuando el matemático Alan Turing -considerado con
justicia el &amp;ldquo;padre de la ciencia de la computación&amp;rdquo;- formalizó los conceptos
de algoritmo y de máquina de Turing.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Foro de elhacker.net - Noticias | &lt;a href="https://foro.elhacker.net/noticias/10_computadoras_clasicas_que_hicieron_historia-t482814.0.html;msg2160532#msg2160532"&gt;foro.elhacker.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 DevOps Interview Answers</title><link>http://karpoke.ignaciocano.com/2018/04/05/10-devops-interview-answers/</link><pubDate>Thu, 05 Apr 2018 11:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/04/05/10-devops-interview-answers/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In a previous post, I put together a list of 10 questions for DevOps team
managers to use as a point of reference when interviewing potential DevOps
engineers. Each question included an in-depth explanation and follow-up
questions, so in case you were, or are now, a candidate, that list could
help you prepare for interviews.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Logz.io | &lt;a href="https://logz.io/blog/community/10-devops-interview-answers/"&gt;logz.io&lt;/a&gt;&lt;/p&gt;</description></item><item><title>1.1.1.1: servicio DNS que acelera tu internet y valora tu privacidad</title><link>http://karpoke.ignaciocano.com/2018/04/02/1-1-1-1-servicio-dns-que-acelera-tu-internet-y-valora-tu-privacidad/</link><pubDate>Mon, 02 Apr 2018 20:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/04/02/1-1-1-1-servicio-dns-que-acelera-tu-internet-y-valora-tu-privacidad/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Cloudflare** ha anunciado un nuevo servicio de **DNS gratuito bajo los IPs
1.1.1.1 y 1.0.0.1 con dos objetivos: acelerar la conexión de internet y
proteger la privacidad de cualquier persona que lo use.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» ALT1040 | &lt;a href="https://hipertextual.com/2018/04/1-1-1-1-dns"&gt;hipertextual.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Quién era Kurt Gödel, el hombre que caminaba con Albert Einstein (y al que comparan con Aristóteles)</title><link>http://karpoke.ignaciocano.com/2018/04/02/quien-era-kurt-godel-el-hombre-que-caminaba-con-albert-einstein-y-al-que-comparan-con-aristoteles/</link><pubDate>Mon, 02 Apr 2018 18:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/04/02/quien-era-kurt-godel-el-hombre-que-caminaba-con-albert-einstein-y-al-que-comparan-con-aristoteles/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Pero ahora lo acompañaba un hombre más joven, con una vestimenta más
tradicional, gruesas gafas y una expresión austera. Aunque no tan famoso,
era muy conocido, particularmente en los círculos académicos por haber
&amp;ldquo;sacudido los fundamentos de nuestra entendimiento (…) de la mente humana&amp;rdquo;,
según declaró la Universidad de Princeton al otorgarle un doctorado
honorario. El acompañante de Einstein era el matemático austríaco Kurt
Gödel, a menudo descrito como el más grande filósofo lógico desde
Aristóteles.&lt;/p&gt;</description></item><item><title>10 Pure CSS Responsive Navigation Code Snippets</title><link>http://karpoke.ignaciocano.com/2018/03/28/10-pure-css-responsive-navigation-code-snippets/</link><pubDate>Wed, 28 Mar 2018 12:26:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/03/28/10-pure-css-responsive-navigation-code-snippets/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Designing a responsive layout doesn’t need to be difficult. Especially if you
initially wireframe to plan ahead and figure out exactly what you’re
creating. One of the hardest parts of a good responsive site is the
navigation. This can take a while to figure out and there are plenty of
tutorials to help with that. But I’m also a fan of using code snippets like
the ones I’ve collected for this article.&lt;/p&gt;</description></item><item><title>5 Ways to Hack MySQL Login Password</title><link>http://karpoke.ignaciocano.com/2018/03/08/5-ways-to-hack-mysql-login-password/</link><pubDate>Thu, 08 Mar 2018 17:05:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/03/08/5-ways-to-hack-mysql-login-password/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In this article, we will learn how to gain control over our victim’s PC
through mysql service via port 3306. There are various ways to do it and let
take time and learn all those because different circumstances call for
different measure. Medusa Medusa is intended to be a speedy, massively
parallel, modular, login brute-forcer. It supports many protocols: AFP, CVS,
FTP, HTTP, IMAP, rlogin, SSH, S&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Hacking Articles | &lt;a href="http://www.hackingarticles.in/5-ways-to-hack-mysql-login-password/"&gt;hackingarticles.in&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 Best Practices to Follow for Android Application Security</title><link>http://karpoke.ignaciocano.com/2018/02/23/10-best-practices-to-follow-for-android-application-security/</link><pubDate>Fri, 23 Feb 2018 09:56:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/02/23/10-best-practices-to-follow-for-android-application-security/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Mobile phones enable us to do almost everything online—from any place and at
any time. As mobile activities are soaring, and digital activities are
thriving, hackers aren’t long ways behind. In case you’re making an app or
already have an app in the market, it’s essential to secure your
application, your information, and your user’s information. Here’s why?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Open Source For You | &lt;a href="http://opensourceforu.com/2018/02/10-best-practices-follow-android-application-security/"&gt;opensourceforu.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Recuperar un disco corrupto</title><link>http://karpoke.ignaciocano.com/2018/01/30/recuperar-un-disco-corrupto/</link><pubDate>Tue, 30 Jan 2018 20:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/01/30/recuperar-un-disco-corrupto/</guid><description>&lt;p&gt;Un par de comandos útiles para recuperar datos de un disco problemático.&lt;/p&gt;
&lt;p&gt;Para copiar el disco, mostrando una barra de progeso:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;dd if=/dev/sda | pv | dd of=/dev/sdb conv=noerror,sync
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Lanzamos &lt;code&gt;ddrescue&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ddrescue -d -r3 /dev/sda /dev/sdb output.log
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>10 alternativas al software Nmap disponibles para Linux y otros sistemas operativos</title><link>http://karpoke.ignaciocano.com/2018/01/25/10-alternativas-al-software-nmap-disponibles-para-linux-y-otros-sistemas-operativos/</link><pubDate>Thu, 25 Jan 2018 17:14:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/01/25/10-alternativas-al-software-nmap-disponibles-para-linux-y-otros-sistemas-operativos/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Se trata de uno de los softwares más utilizados por usuarios y profesionales
para conocer, sobre todo, las conexiones activas existentes en un equipo.
Posee licencia GNU y se puede adquirir de forma totalmente gratuita. Está
desarrollado utilizando varios lenguajes, como C, Java o incluso Python.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» RedesZone | &lt;a href="https://www.redeszone.net/2018/01/24/10-alternativas-al-software-nmap-disponibles-linux-otros-sistemas-operativos/"&gt;redeszone.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 Lessons from 10 Years of AWS (part 2)</title><link>http://karpoke.ignaciocano.com/2018/01/16/10-lessons-from-10-years-of-aws-part-2/</link><pubDate>Tue, 16 Jan 2018 20:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/01/16/10-lessons-from-10-years-of-aws-part-2/</guid><description>&lt;blockquote&gt;
&lt;p&gt;As explained in part one, I recently presented a talk at the AWS Community
Day in Bangalore. The tweet following the talk became my most popular tweet
ever and I received quite a few requests for more details. This is part two
of the blog post. Hope you enjoy as-well! Please do not hesitate to give
feedback, share your own stories or simply like :)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Hacker Noon | &lt;a href="https://hackernoon.com/10-lessons-from-10-years-of-aws-part-2-5dd92b533870"&gt;hackernoon.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 Tools To Add Some Spice To Your UNIX/Linux Shell Scripts</title><link>http://karpoke.ignaciocano.com/2018/01/14/10-tools-to-add-some-spice-to-your-unix-linux-shell-scripts/</link><pubDate>Sun, 14 Jan 2018 21:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/01/14/10-tools-to-add-some-spice-to-your-unix-linux-shell-scripts/</guid><description>&lt;blockquote&gt;
&lt;p&gt;With the following tools, you can build powerful, interactive, user-friendly
UNIX/Linux bash shell scripts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» nixCraft: Linux Tips, Hacks, Tutorials, And Ideas In Blog Format | &lt;a href="https://www.cyberciti.biz/tips/spice-up-your-unix-linux-shell-scripts.html"&gt;cyberciti.biz&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 Best VPN Services Of 2019: Top VPN Provider Reviews &amp;amp; Buying Guide</title><link>http://karpoke.ignaciocano.com/2018/01/11/10-best-vpn-services-of-2019-top-vpn-provider-reviews-amp-buying-guide/</link><pubDate>Thu, 11 Jan 2018 12:26:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/01/11/10-best-vpn-services-of-2019-top-vpn-provider-reviews-amp-buying-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Using a top-rated VPN is one of the best ways to protect your online privacy
in today’s times. They also serve other purposes like website unblocking,
remote access to company resources, bypassing censorship, etc. In this
article, we’ve reviewed the top VPN services and listed their best features
to help you make an informed decision while spending your hard-earned money.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Fossbytes | &lt;a href="https://fossbytes.com/best-vpn-services-providers-review/"&gt;fossbytes.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>3 paradojas que le quitan el sueño a los matemáticos y filósofos</title><link>http://karpoke.ignaciocano.com/2018/01/11/3-paradojas-que-le-quitan-el-sueno-a-los-matematicos-y-filosofos/</link><pubDate>Thu, 11 Jan 2018 08:35:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/01/11/3-paradojas-que-le-quitan-el-sueno-a-los-matematicos-y-filosofos/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El barco en el que Teseo y la juventud de Atenas regresaron de Creta tenía
treinta remos, y fue conservado por los atenienses incluso hasta la época de
Demetrio de Falero, ya que retiraron los viejos tablones a medida que se
descomponían e introdujeron madera nueva y más resistente en su lugar, tanto
que este barco se convirtió en un ejemplo permanente entre los filósofos,
para la pregunta lógica de las cosas que crecen, un lado sostiene que el
barco sigue siendo el mismo, y el otro afirma que no.&lt;/p&gt;</description></item><item><title>10 Lessons from 10 Years of AWS (part 1)</title><link>http://karpoke.ignaciocano.com/2018/01/10/10-lessons-from-10-years-of-aws-part-1/</link><pubDate>Wed, 10 Jan 2018 20:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/01/10/10-lessons-from-10-years-of-aws-part-1/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I recently presented a talk at the AWS Community Day in Bangalore. The tweet
following the talk became my most popular tweet ever and I received quite a
few requests for more details.
For the last 10 years, I have had the chance to work in companies that
embraced the cloud, and in particular AWS. This two-part blog post is an
attempt to share that experience with you. Hope you enjoy!&lt;/p&gt;</description></item><item><title>10 películas para adentrarse en el mundo del anime</title><link>http://karpoke.ignaciocano.com/2018/01/05/10-peliculas-para-adentrarse-en-el-mundo-del-anime/</link><pubDate>Fri, 05 Jan 2018 18:05:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2018/01/05/10-peliculas-para-adentrarse-en-el-mundo-del-anime/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Es hablar de anime y a mucha gente le salen sarpullidos. Son muchos los que
reniegan de todo un universo sin haberse adentrado nunca él. Un universo
lleno de mil mundos distintos en el que puedes encontrar amor, aventura,
ciencia ficción, acción, drama, terror, comedia, fantasía… Un universo
reinado por Studio Ghibli y su primer espada Hayao Miyazaki. Un universo sin
límites que cada año nos sorprende con auténticas joyas.&lt;/p&gt;</description></item><item><title>10 libros de seguridad informática para regalar estas navidades</title><link>http://karpoke.ignaciocano.com/2017/12/22/10-libros-de-seguridad-informatica-para-regalar-estas-navidades/</link><pubDate>Fri, 22 Dec 2017 11:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2017/12/22/10-libros-de-seguridad-informatica-para-regalar-estas-navidades/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Llegan las navidades, aunque comercialmente ya empezaron hace casi un mes, y
que mejor que dar ideas para regalar o ser regalado. ¿No sabes que
encargarle a los reyes magos? No te preocupes, vamos a comentar los 10
libros de seguridad informática que más leemos en Hispasec. Esos que yacen
desgastados en los escritorios de auditoría, malware o el equipo 24x7 de
Antifraude, nuestros incansables vigilantes. Leer y hacer son dos palabras
claves en la construcción de un buen profesional, sea de la rama que sea.
La formación es importante y una de las cosas que siempre ha estado presente
en Hispasec es que el personal no le falte lectura, alimento para el
cerebro.&lt;/p&gt;</description></item><item><title>10 Best Hacking Movies You Need To Watch In 2018</title><link>http://karpoke.ignaciocano.com/2017/12/10/10-best-hacking-movies-you-need-to-watch-in-2018/</link><pubDate>Sun, 10 Dec 2017 10:50:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2017/12/10/10-best-hacking-movies-you-need-to-watch-in-2018/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In this age of smartphones and computers, the electronic devices have become
our true companions. For technology enthusiasts and geeks, this is even
truer. However, there are only a handful of movies that showcase the geek
and hacker culture in a true sense. In this article, I’ve tried to compile
my favorite and best hacking movies that you shouldn’t miss.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Fossbytes | &lt;a href="https://fossbytes.com/best-hacking-movies-geek/"&gt;fossbytes.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 curiosidades del idioma español</title><link>http://karpoke.ignaciocano.com/2017/12/08/10-curiosidades-del-idioma-espanol/</link><pubDate>Fri, 08 Dec 2017 16:07:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2017/12/08/10-curiosidades-del-idioma-espanol/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El español es el idioma oficial en más de 20 países del mundo y se calcula
que hay alrededor de 490 millones de hispanohablantes en todo el planeta.
Una lengua tan extendida por fuerza ha de tener muchas peculiaridades. Te
explicamos 10 curiosidades del idioma español que quizá no conocías. 10
curiosidades del idioma español 1. ¿Español o castellano?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Supercurioso | &lt;a href="https://supercurioso.com/curiosidades-del-idioma-espanol/"&gt;supercurioso.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 experimentos psicológicos que revelan la verdadera naturaleza humana</title><link>http://karpoke.ignaciocano.com/2017/12/06/10-experimentos-psicologicos-que-revelan-la-verdadera-naturaleza-humana/</link><pubDate>Wed, 06 Dec 2017 14:29:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2017/12/06/10-experimentos-psicologicos-que-revelan-la-verdadera-naturaleza-humana/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La mente humana necesita saber sobre sí misma. Y en más de una ocasión, la búsqueda de ese conocimiento provocó que factores como la ética y la moral caigan a un plano inferior. En las últimas décadas se han desarrollado diferentes experimentos que de ser reproducidos en la actualidad encenderían más de una alarma, y hoy queremos repasar varios de ellos. Si bien no todos son considerados «malos»&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» NeoTeo | &lt;a href="http://www.neoteo.com/10-experimentos-psicologicos-que-revelan-la-verdadera-naturaleza-humana/"&gt;neoteo.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 File Globbing examples in Linux/Unix</title><link>http://karpoke.ignaciocano.com/2017/12/02/10-file-globbing-examples-in-linux-unix/</link><pubDate>Sat, 02 Dec 2017 05:23:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2017/12/02/10-file-globbing-examples-in-linux-unix/</guid><description>&lt;blockquote&gt;
&lt;p&gt;What is file globbing in Linux? File globbing is a feature provided by the
UNIX/Linux shell to represent multiple filenames by using special characters
called wildcards with a single file name.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://feeds.feedburner.com/TheLinuxJuggernaut"&gt;http://feeds.feedburner.com/TheLinuxJuggernaut&lt;/a&gt; | &lt;a href="https://www.linuxnix.com/10-file-globbing-examples-linux-unix/"&gt;linuxnix.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>4 Ways to Speed Up SSH Connections in Linux</title><link>http://karpoke.ignaciocano.com/2017/11/29/4-ways-to-speed-up-ssh-connections-in-linux/</link><pubDate>Wed, 29 Nov 2017 09:57:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2017/11/29/4-ways-to-speed-up-ssh-connections-in-linux/</guid><description>&lt;blockquote&gt;
&lt;p&gt;SSH is the most popular and secure method for managing Linux servers
remotely. One of the challenges with remote server management is connection
speeds, especially when it comes to session creation between the remote and
local machines.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Tecmint: Linux Howtos, Tutorials &amp;amp; Guides | &lt;a href="https://www.tecmint.com/speed-up-ssh-connections-in-linux/"&gt;tecmint.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 Free CSS Tooltip Snippets To Save Time On Your Web Projects</title><link>http://karpoke.ignaciocano.com/2017/11/21/10-free-css-tooltip-snippets-to-save-time-on-your-web-projects/</link><pubDate>Tue, 21 Nov 2017 06:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2017/11/21/10-free-css-tooltip-snippets-to-save-time-on-your-web-projects/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Adding a simple tooltip into your page isn’t hard. You can find a bunch of
free tooltip plugins and JS scripts that can help with this. But pure CSS is
another option, and it’s quickly becoming the preferred choice for many web
designers. If you’re looking for CSS tooltips, then this collection should
have something for you.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Speckyboy Design Magazine | &lt;a href="https://speckyboy.com/free-css-tooltip-snippets/"&gt;speckyboy.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 Best LaTeX Editors For Linux</title><link>http://karpoke.ignaciocano.com/2017/11/20/10-best-latex-editors-for-linux/</link><pubDate>Mon, 20 Nov 2017 21:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2017/11/20/10-best-latex-editors-for-linux/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Once you get over the learning curve, there is nothing like LaTex. Here are
the best LaTex editors for Linux and other systems. What is LaTeX? LaTeX is
a document preparation system. Unlike plain text editor, you can’t just
write a plain text using LaTeX editors. Here, you will have to utilize LaTeX
commands in order to manage the content of the document.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» It&amp;rsquo;s FOSS | &lt;a href="https://itsfoss.com/latex-editors-linux/"&gt;itsfoss.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>El viaje del héroe y los arquetipos de la migración</title><link>http://karpoke.ignaciocano.com/2017/11/15/el-viaje-del-heroe-y-los-arquetipos-de-la-migracion/</link><pubDate>Wed, 15 Nov 2017 21:23:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2017/11/15/el-viaje-del-heroe-y-los-arquetipos-de-la-migracion/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El creador de la psicología analítica, el psiquiatra suizo Carl Jung propuso
que las narraciones míticas de viajes iniciáticos, como los de Marco Polo,
Ulises o Hércules, pueden ser entendidas como expresiones simbólicas de un
proceso de transformación psíquica que todas las personas se ven abocadas a
desplegar a lo largo de la vida. Jung denominó este proceso como viaje del
héroe o proceso de individuación.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» La Mente es Maravillosa | &lt;a href="https://lamenteesmaravillosa.com/el-viaje-del-heroe-y-los-arquetipos-la-migracion"&gt;lamenteesmaravillosa.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Locking Down Your Website Scripts with CSP, Hashes, Nonces and Report URI</title><link>http://karpoke.ignaciocano.com/2017/11/15/locking-down-your-website-scripts-with-csp-hashes-nonces-and-report-uri/</link><pubDate>Wed, 15 Nov 2017 09:50:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2017/11/15/locking-down-your-website-scripts-with-csp-hashes-nonces-and-report-uri/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I run a workshop titled Hack Yourself First in which people usually
responsible for building web apps get to try their hand at breaking them. As
it turns out, breaking websites is a heap of fun (with the obvious caveats)
and people really get into the exercises. The first one that starts to push
people into territory that&amp;rsquo;s usually unfamiliar to builders is the module on
XSS.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Troy Hunt&amp;rsquo;s Blog | &lt;a href="https://www.troyhunt.com/locking-down-your-website-scripts-with-csp-hashes-nonces-and-report-uri/"&gt;troyhunt.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Coding with clarity</title><link>http://karpoke.ignaciocano.com/2017/10/28/coding-with-clarity/</link><pubDate>Sat, 28 Oct 2017 16:42:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2017/10/28/coding-with-clarity/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Working code isn’t necessarily good code. Your code also needs to be easy to
read, understand, and modify. It needs clarity, and to achieve that, it has
to be organized well, with careful planning and proper separation of ideas
taking place before you even open your code editor. Coding for clarity is
something that separates the great developers from the merely good, and there
are a few basic principles that can set you on that path.&lt;/p&gt;</description></item><item><title>Así funcionaba el primer gran sistema que evitaba que hicieras copias de VHS</title><link>http://karpoke.ignaciocano.com/2017/10/22/asi-funcionaba-el-primer-gran-sistema-que-evitaba-que-hicieras-copias-de-vhs/</link><pubDate>Sun, 22 Oct 2017 22:51:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2017/10/22/asi-funcionaba-el-primer-gran-sistema-que-evitaba-que-hicieras-copias-de-vhs/</guid><description>&lt;blockquote&gt;
&lt;p&gt;ya en la década de los 80 había tecnologías anticopia en las películas. Una
de las más populares fue Macrovision, que protegía los VHS haciendo que
cuando se creasen copias estas fueran defectuosas. El sistema estuvo vigente
durante varios años, e incluso acabó dando el salto al DVD.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Yúbal FM | &lt;a href="https://www.xataka.com/historia-tecnologica/asi-funcionaba-el-primer-gran-sistema-que-evitaba-que-hicieras-copias-de-vhs"&gt;xataka.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Moving persistent data out of Redis</title><link>http://karpoke.ignaciocano.com/2017/01/14/moving-persistent-data-out-of-redis/</link><pubDate>Sat, 14 Jan 2017 14:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2017/01/14/moving-persistent-data-out-of-redis/</guid><description>&lt;blockquote&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>Instalar Spotify en Ubuntu 16.04</title><link>http://karpoke.ignaciocano.com/2016/12/15/instalar-spotify-en-ubuntu-16-04/</link><pubDate>Thu, 15 Dec 2016 07:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/12/15/instalar-spotify-en-ubuntu-16-04/</guid><description>&lt;p&gt;Si queremos instalar el cliente de Spotify en Ubuntu Xenial Xerus, tan sólo
tenemos que instalar la clave:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ 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 &amp;#34;Spotify Public Repository Signing Key &amp;lt;operations@spotify.com&amp;gt;&amp;#34; importada
gpg: Cantidad total procesada: 1
gpg: importadas: 1 (RSA: 1)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Añadimos el PPA oficial:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ echo &amp;#34;deb http://repository.spotify.com stable non-free&amp;#34; |
sudo tee /etc/apt/sources.list.d/spotify.list
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Actualizamos e instalamos:&lt;/p&gt;</description></item><item><title>Instalar Postgresql 9.6 en Ubuntu 16.04</title><link>http://karpoke.ignaciocano.com/2016/12/13/instalar-postgresql-9-6-en-ubuntu-16-04/</link><pubDate>Tue, 13 Dec 2016 19:24:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/12/13/instalar-postgresql-9-6-en-ubuntu-16-04/</guid><description>&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Importamos la clave:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc |
sudo apt-key add -
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Añadimos el PPA:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ echo &amp;#34;deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main&amp;#34; |
sudo tee /etc/apt/sources.list.d/postgresql.list
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Actualizamos e instalamos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo apt update
$ sudo apt install postgresql-9.6 postgresql-contrib
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="referencias"&gt;Referencias&lt;/h2&gt;
&lt;p&gt;» &lt;a href="http://linoxide.com/tools/setup-postgresql-access-phppgadmin-ubuntu-16-04/"&gt;linoxide.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Never write for-loops again</title><link>http://karpoke.ignaciocano.com/2016/12/12/never-write-for-loops-again/</link><pubDate>Mon, 12 Dec 2016 00:22:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/12/12/never-write-for-loops-again/</guid><description>&lt;blockquote&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>Tor at the heart: bridges and pluggable transports</title><link>http://karpoke.ignaciocano.com/2016/12/11/tor-at-the-heart-bridges-and-pluggable-transports/</link><pubDate>Sun, 11 Dec 2016 22:43:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/12/11/tor-at-the-heart-bridges-and-pluggable-transports/</guid><description>&lt;blockquote&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>Qué son los cypherpunks y por qué son tan importanes en la lucha por la privacidad</title><link>http://karpoke.ignaciocano.com/2016/12/11/que-son-los-cypherpunks-y-por-que-son-tan-importanes-en-la-lucha-por-la-privacidad/</link><pubDate>Sun, 11 Dec 2016 03:49:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/12/11/que-son-los-cypherpunks-y-por-que-son-tan-importanes-en-la-lucha-por-la-privacidad/</guid><description>&lt;blockquote&gt;
&lt;p&gt;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 &amp;ldquo;antitodo&amp;rdquo;. 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.&lt;/p&gt;</description></item><item><title>Cómo montar una mini consola con Raspberry Pi</title><link>http://karpoke.ignaciocano.com/2016/12/07/como-montar-una-mini-consola-con-raspberry-pi/</link><pubDate>Wed, 07 Dec 2016 21:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/12/07/como-montar-una-mini-consola-con-raspberry-pi/</guid><description>&lt;blockquote&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Las características más interesantes de nuestra Raspberry Pi (aunque no las
únicas) serán las siguientes:&lt;/p&gt;</description></item><item><title>Undebt: how we refactored 3 million lines of code</title><link>http://karpoke.ignaciocano.com/2016/12/07/undebt-how-we-refactored-3-million-lines-of-code/</link><pubDate>Wed, 07 Dec 2016 20:57:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/12/07/undebt-how-we-refactored-3-million-lines-of-code/</guid><description>&lt;blockquote&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>Se vende censor de desnudos: de compras por un mercadillo de algoritmos</title><link>http://karpoke.ignaciocano.com/2016/12/07/se-vende-censor-de-desnudos-de-compras-por-un-mercadillo-de-algoritmos/</link><pubDate>Wed, 07 Dec 2016 20:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/12/07/se-vende-censor-de-desnudos-de-compras-por-un-mercadillo-de-algoritmos/</guid><description>&lt;blockquote&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://algorithmia.com/"&gt;algorithmia.com&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Cristina Sánchez | &lt;a href="http://www.yorokobu.es/mercadillo-algoritmos/"&gt;yorokobu.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>How to teach endian</title><link>http://karpoke.ignaciocano.com/2016/12/07/how-to-teach-endian/</link><pubDate>Wed, 07 Dec 2016 20:26:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/12/07/how-to-teach-endian/</guid><description>&lt;blockquote&gt;
&lt;p&gt;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).&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>Actualizar nuestra IP en el panel de OpenDNS</title><link>http://karpoke.ignaciocano.com/2016/12/03/actualizar-nuestra-ip-en-el-panel-de-opendns/</link><pubDate>Sat, 03 Dec 2016 14:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/12/03/actualizar-nuestra-ip-en-el-panel-de-opendns/</guid><description>&lt;p&gt;Si estamos usando el servicio &lt;a href="https://signup.opendns.com/homefree/"&gt;OpenDNS Home&lt;/a&gt; y tenemos una IP dinámica,
podemos utilizar &lt;code&gt;ddclient&lt;/code&gt;, disponible en los repositorios, para actualizar
la IP registrada en dicho servicio cada vez que &lt;a href="https://support.opendns.com/hc/en-us/articles/227987727-Linux-IP-Updater-for-Dynamic-Networks"&gt;cambie nuestra IP&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Para ello, lo único que necesitamos es editar el fichero de configuración en
&lt;code&gt;/etc/ddclient.conf&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;##
## OpenDNS.com account-configuration
##
use=web, web=myip.dnsomatic.com
ssl=yes
server=updates.opendns.com
protocol=dyndns2
login=username@example.com
password=opendns_password
opendns_network_label
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Los espacios en el nombre dado a la red se deben sustituir por guiones bajos
&amp;ldquo;_&amp;rdquo; y si la contraseña contiene caracteres especiales, se debe encerrar entre
comillas simples &amp;ldquo;&amp;rsquo;&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Writing efficient JavaScript</title><link>http://karpoke.ignaciocano.com/2016/11/30/writing-efficient-javascript/</link><pubDate>Wed, 30 Nov 2016 08:34:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/11/30/writing-efficient-javascript/</guid><description>&lt;blockquote&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Felix Maier | &lt;a href="https://medium.com/@xilefmai/efficient-javascript-14a11651d563#.k634iq2t7" title="Writing efficient JavaScript"&gt;medium.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Descargar archivos de zippyshare desde el terminal con plowshare</title><link>http://karpoke.ignaciocano.com/2016/11/26/descargar-archivos-de-zippyshare-desde-el-terminal-con-plowshare/</link><pubDate>Sat, 26 Nov 2016 23:56:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/11/26/descargar-archivos-de-zippyshare-desde-el-terminal-con-plowshare/</guid><description>&lt;p&gt;&lt;a href="https://github.com/mcrapet/plowshare"&gt;plowshare&lt;/a&gt; es una herramienta diseñada para descargar y subir
ficheros a los sitios de intercambio de ficheros más populares. Hace ya
un tiempo la podíamos usar para &lt;a href="http://karpoke.ignaciocano.com/2011/09/18/descargar-archivos-de-megaupload-desde-el-terminal-con-plowshare/"&gt;descargar archivos de Megaupload&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="instalación"&gt;Instalación&lt;/h2&gt;
&lt;p&gt;Primero, instalamos las dependencias:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo aptitude install curl recode imagemagick tesseract-ocr-eng spidermonkey-bin rhino perlmagick aview
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Podemos descargar el código fuente desde el repositorio Git y compilarlo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ git clone https://github.com/mcrapet/plowshare.git
$ cd plowshare
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Podemos instalarlo mediante &lt;code&gt;sudo make install&lt;/code&gt;, o si no tenemos privilegios de
root, podemos sobreescribir el prefijo &lt;code&gt;/usr&lt;/code&gt; con
&lt;code&gt;make install prefix=$home/local&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Comprobar la firma de Xposed</title><link>http://karpoke.ignaciocano.com/2016/11/25/comprobar-la-firma-de-xposed/</link><pubDate>Fri, 25 Nov 2016 22:26:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/11/25/comprobar-la-firma-de-xposed/</guid><description>&lt;p&gt;Ayer mismo, se subió una &lt;a href="http://dl-xda.xposed.info/framework/sdk23/arm/"&gt;nueva versión&lt;/a&gt; del &lt;em&gt;framework&lt;/em&gt; &lt;a href="http://repo.xposed.info/"&gt;Xposed&lt;/a&gt;, el
cual tengo instalado en un Samsung S4.&lt;/p&gt;
&lt;p&gt;Si queremos descargarla y comprobar mediante la firma que lo que nos hemos
bajado no ha sido alterado, no tenemos más que hacer uso de &lt;code&gt;gpg&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Descargamos los archivos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ wget http://dl-xda.xposed.info/framework/sdk23/arm/xposed-v87-sdk23-arm.zip
$ wget http://dl-xda.xposed.info/framework/sdk23/arm/xposed-v87-sdk23-arm.zip.asc
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Y comprobamos la firma:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ gpg --verify xposed-v87-sdk23-arm.zip.asc
gpg: Signature made jue 24 nov 2016 22:26:15 CET using RSA key ID 852109AA
gpg: Can’t check signature: public key not found
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En este caso, la firma no está certificada por una autoridad de confianza, y
tampoco la tenemos importada en nuestro sistema. Vamos a buscarla y, si nos
fiamos de esa cuenta de correo, tenemos la opción de importarla:&lt;/p&gt;</description></item><item><title>Hype Driven Development</title><link>http://karpoke.ignaciocano.com/2016/11/25/hype-driven-development/</link><pubDate>Fri, 25 Nov 2016 20:29:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/11/25/hype-driven-development/</guid><description>&lt;blockquote&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>Hasta el infinito y más allá. Bienvenido IPv6 (I)</title><link>http://karpoke.ignaciocano.com/2016/11/25/hasta-el-infinito-y-mas-alla-bienvenido-ipv6-i/</link><pubDate>Fri, 25 Nov 2016 18:33:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/11/25/hasta-el-infinito-y-mas-alla-bienvenido-ipv6-i/</guid><description>&lt;blockquote&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>Bullet proofing Django models</title><link>http://karpoke.ignaciocano.com/2016/11/07/bullet-proofing-django-models/</link><pubDate>Mon, 07 Nov 2016 01:17:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/11/07/bullet-proofing-django-models/</guid><description>&lt;p&gt;Related:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We recently added a bank account like functionality into one of our products.
During the development we encountered some textbook problems and I thought it
can be a good opportunity to go over some of the patterns we use in our
Django models.
This article was written in the order in which we usually address new
problems:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Define the business requirements.&lt;/li&gt;
&lt;li&gt;Write down a naive implementation and model definition.&lt;/li&gt;
&lt;li&gt;Challenge the solution.&lt;/li&gt;
&lt;li&gt;Refine and repeat.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Haki Benita | &lt;a href="https://medium.com/@hakibenita/bullet-proofing-django-models-c080739be4e#.pqtppqgoj"&gt;medium.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The open guide to Amazon Web Services</title><link>http://karpoke.ignaciocano.com/2016/11/07/the-open-guide-to-amazon-web-services/</link><pubDate>Mon, 07 Nov 2016 00:20:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/11/07/the-open-guide-to-amazon-web-services/</guid><description>&lt;p&gt;Related:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A lot of information on AWS is already written. Most people learn AWS by
reading a blog or a “getting started guide” and referring to the standard
AWS references. Nonetheless, trustworthy and practical information and
recommendations aren’t easy to come by. AWS’s own documentation is a
great but sprawling resource few have time to read fully, and it doesn’t
include anything but official facts, so omits experiences of engineers. The
information in blogs or Stack Overflow is also not consistently up to date.&lt;/p&gt;</description></item><item><title>Streisand: Una herramienta que permite evadir la censura de Gobiernos y ISP de forma fácil</title><link>http://karpoke.ignaciocano.com/2016/11/06/streisand-una-herramienta-que-permite-evadir-la-censura-de-gobiernos-y-isp-de-forma-facil/</link><pubDate>Sun, 06 Nov 2016 13:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/11/06/streisand-una-herramienta-que-permite-evadir-la-censura-de-gobiernos-y-isp-de-forma-facil/</guid><description>&lt;p&gt;Related:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Cuando los Gobiernos y proveedores de Internet bloquean un portal, nos
tenemos que buscar la vida cambiando los DNS, conectándonos a servidores
Proxy y VPN e incluso a la red Tor. Streisand es una herramienta gratuita
que nos permite automatizar el proceso de configuración de nuevos servidores
VPN, Proxy y Tor para proporcionar a los usuarios una solución rápida y
fácil, ideal para activistas en Internet.&lt;/p&gt;
&lt;p&gt;Ver el proyecto en &lt;a href="https://github.com/jlund/streisand"&gt;github.com&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Linux containers in 500 lines of code</title><link>http://karpoke.ignaciocano.com/2016/11/01/linux-containers-in-500-lines-of-code/</link><pubDate>Tue, 01 Nov 2016 15:09:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/11/01/linux-containers-in-500-lines-of-code/</guid><description>&lt;p&gt;Relatd:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I’ve used Linux containers directly and indirectly for years, but I wanted
to become more familiar with them. So I wrote some code. This used to be 500
lines of code, I swear, but I’ve revised it some since publishing; I’ve
ended up with about 70 lines more.&lt;/p&gt;
&lt;p&gt;I wanted specifically to find a minimal set of restrictions to run untrusted
code. This isn’t how you should approach containers on anything with any
exposure: you should restrict everything you can. But I think it’s important
to know which permissions are categorically unsafe!&lt;/p&gt;</description></item><item><title>8 simple rules for a robust, scalable CSS architecture</title><link>http://karpoke.ignaciocano.com/2016/11/01/8-simple-rules-for-a-robust-scalable-css-architecture/</link><pubDate>Tue, 01 Nov 2016 14:43:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/11/01/8-simple-rules-for-a-robust-scalable-css-architecture/</guid><description>&lt;p&gt;Related:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This is the manifest of things I’ve learned about managing CSS in large,
complex web projects during my many years of professional web development.
I’ve been asked about these things enough times that having a document to
point to sounded like a good idea.&lt;/p&gt;
&lt;p&gt;I’ve tried to keep the explanations short, but this is essentially the tl;dr:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Always prefer classes&lt;/li&gt;
&lt;li&gt;Co-locate component code&lt;/li&gt;
&lt;li&gt;Use consistent class namespacing&lt;/li&gt;
&lt;li&gt;Maintain a strict mapping between namespaces and filenames&lt;/li&gt;
&lt;li&gt;Prevent leaking styles outside the component&lt;/li&gt;
&lt;li&gt;Prevent leaking styles inside the component&lt;/li&gt;
&lt;li&gt;Respect component boundaries&lt;/li&gt;
&lt;li&gt;Integrate external styles loosely&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Jarno Rantanen | &lt;a href="https://github.com/jareware/css-architecture/blob/master/README.md"&gt;github.com&lt;/a&gt; | via &lt;a href="https://css-tricks.com/8-simple-rules-robust-scalable-css-architecture/"&gt;css-tricks.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The design of CockroachDB</title><link>http://karpoke.ignaciocano.com/2016/10/02/the-design-of-cockroachdb/</link><pubDate>Sun, 02 Oct 2016 14:42:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/10/02/the-design-of-cockroachdb/</guid><description>&lt;blockquote&gt;
&lt;p&gt;CockroachDB is a distributed SQL database. The primary design goals are
scalability, strong consistency and survivability (hence the name).
CockroachDB aims to tolerate disk, machine, rack, and even datacenter
failures with minimal latency disruption and no manual intervention.
CockroachDB nodes are symmetric; a design goal is homogeneous deployment
(one binary) with minimal configuration and no required external
dependencies.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Spencer Kimball | &lt;a href="https://github.com/cockroachdb/cockroach/blob/develop/docs/design.md"&gt;github.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Improve your photographic composition by following these guidelines</title><link>http://karpoke.ignaciocano.com/2016/09/29/improve-your-photographic-composition-by-following-these-guidelines/</link><pubDate>Thu, 29 Sep 2016 00:16:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/29/improve-your-photographic-composition-by-following-these-guidelines/</guid><description>&lt;blockquote&gt;
&lt;p&gt;First of all we have to define what is meant by ‘composition’.
Composition refers to the way the various elements in a scene are arranged
within the frame. As I’ve already mentioned, these are not hard and fast
rules but guidelines. That said, many of them have been used in art for
thousands of years and they really do help achieve more attractive
compositions. I find that I usually have one or more of these guidelines in
the back of my mind as I’m setting up a shot.&lt;/p&gt;</description></item><item><title>The basics of web application security</title><link>http://karpoke.ignaciocano.com/2016/09/25/the-basics-of-web-application-security/</link><pubDate>Sun, 25 Sep 2016 13:04:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/25/the-basics-of-web-application-security/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Somewhere, way down at the bottom of the list of requirements, behind, fast,
cheap, and flexible is “secure”. That is, until something goes wrong, until
the system you build is compromised, then suddenly security is, and always
was, the most important thing.&lt;/p&gt;
&lt;p&gt;Security is a cross-functional concern a bit like Performance. And a bit
unlike Performance. Like Performance, our business owners often know they need
Security, but aren’t always sure how to quantify it. Unlike Performance, they
often don’t know “secure enough” when they see it.&lt;/p&gt;</description></item><item><title>Por qué no utilizo métricas</title><link>http://karpoke.ignaciocano.com/2016/09/25/por-que-no-utilizo-metricas/</link><pubDate>Sun, 25 Sep 2016 12:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/25/por-que-no-utilizo-metricas/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Al principio me molestaba en calcular métricas sobre el código fuente
(utilizaba cosas como Source Monitor para ello), que me indicaran número de
líneas de código, complejidad ciclomática, nivel máximo de anidamiento,
profundidad de jerarquías…., en fin todo tipo de datos para disfrutar con
un poco de porno de estadísticas. Además, analizaba la cobertura de código
que alcanzaban mis tests (con NCover, si no recuerdo mal), y tenía
configurados mis avisos si no llegaban a determinados niveles.&lt;/p&gt;</description></item><item><title>A nerd’s guide to color on the web</title><link>http://karpoke.ignaciocano.com/2016/09/25/a-nerds-guide-to-color-on-the-web/</link><pubDate>Sun, 25 Sep 2016 12:42:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/25/a-nerds-guide-to-color-on-the-web/</guid><description>&lt;blockquote&gt;
&lt;p&gt;There are a lot of ways to work with color on the web. I think it’s helpful
to understand the mechanics behind what you’re using, and color is no
exception. Let’s delve into some of the technical details of color on the
web.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Sarah Drasner | &lt;a href="https://css-tricks.com/nerds-guide-color-web/"&gt;css-tricks.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Music theory for nerds</title><link>http://karpoke.ignaciocano.com/2016/09/25/music-theory-for-nerds/</link><pubDate>Sun, 25 Sep 2016 12:26:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/25/music-theory-for-nerds/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I don’t know anything about music. I know there are letters but sometimes
the letters have squiggles; I know an octave doubles in pitch; I know you
can write a pop song with only four chords. That’s about it.&lt;/p&gt;
&lt;p&gt;The rest has always seemed completely, utterly arbitrary. Why do we have
twelve notes, but represent them with only seven letters? Where did the key
signatures come from? Why is every Wikipedia article on this impossible to
read without first having read all the others?&lt;/p&gt;</description></item><item><title>Fixing E.T. The Extra-Terrestrial for the Atari 2600</title><link>http://karpoke.ignaciocano.com/2016/09/24/fixing-e-t-the-extra-terrestrial-for-the-atari-2600/</link><pubDate>Sat, 24 Sep 2016 17:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/24/fixing-e-t-the-extra-terrestrial-for-the-atari-2600/</guid><description>&lt;blockquote&gt;
&lt;p&gt;If you’re reading this page, chances are that you’re already well aware
that E.T. for the Atari 2600 is one of the most reviled games ever made. I
never understood why. As a child, it was one of my favorite games. I still
think it’s a good game. Apparently, I’m not alone.&lt;/p&gt;
&lt;p&gt;On this page I’m going to briefly explore why people hate E.T., and how the
game can be fixed.&lt;/p&gt;</description></item><item><title>How Dropbox securely stores your passwords</title><link>http://karpoke.ignaciocano.com/2016/09/24/how-dropbox-securely-stores-your-passwords/</link><pubDate>Sat, 24 Sep 2016 13:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/24/how-dropbox-securely-stores-your-passwords/</guid><description>&lt;blockquote&gt;
&lt;p&gt;It’s universally acknowledged that it’s a bad idea to store plain-text
passwords. If a database containing plain-text passwords is compromised,
user accounts are in immediate danger. For this reason, as early as 1976,
the industry standardized on storing passwords using secure, one-way hashing
mechanisms (starting with Unix Crypt). Unfortunately, while this prevents
the direct reading of passwords in case of a compromise, all hashing
mechanisms necessarily allow attackers to brute force the hash offline, by
going through lists of possible passwords, hashing them, and comparing the
result. In this context, secure hashing functions like SHA have a critical
flaw for password hashing: they are designed to be fast. A modern commodity
CPU can generate millions of SHA256 hashes per second. Specialized GPU
clusters allow for calculating hashes at a rate of billions per second.&lt;/p&gt;</description></item><item><title>The curious case of the switch statement</title><link>http://karpoke.ignaciocano.com/2016/09/22/the-curious-case-of-the-switch-statement/</link><pubDate>Thu, 22 Sep 2016 08:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/22/the-curious-case-of-the-switch-statement/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The earliest incarnation I can find is in ALGOL 58. The original
description of ALGOL 58 is a fascinating read — it’s written like a math
paper, with literal text in italics and heavy use of subscripts. Character
classes are even named by Greek letters, with λ representing letters and so
on. The example program at the end is completely incomprehensible, with
almost every variable being a single letter and labels forming their own
entire column on the left side. I guess that last bit came from FORTRAN.&lt;/p&gt;</description></item><item><title>Programming Pearls and Python fails</title><link>http://karpoke.ignaciocano.com/2016/09/22/programming-pearls-and-python-fails/</link><pubDate>Thu, 22 Sep 2016 08:30:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/22/programming-pearls-and-python-fails/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Computer science books contains timeless wisdom, but performance advice
doesn’t always age well. When reading Programming Pearls, by Jon Bentley,
I’ve found more modern hardware advances that puts conventional wisdom on
its head.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Franklin He | &lt;a href="https://medium.com/@n0mad/programming-pearls-and-python-fails-c4fc2962c3ed#.h0k9913hy"&gt;medium.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Los tres años que cambiaron para siempre la industria del videojuego</title><link>http://karpoke.ignaciocano.com/2016/09/18/los-tres-anos-que-cambiaron-para-siempre-la-industria-del-videojuego/</link><pubDate>Sun, 18 Sep 2016 15:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/18/los-tres-anos-que-cambiaron-para-siempre-la-industria-del-videojuego/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Es un periodo en la historia del software bien diferenciado. Uno en el que
muchos jugadores se sumaron a la industria, sin saber apenas qué había
antes. Probablemente también fueron los años en los que nacieron un mayor
número de propiedades intelectuales. Y también es el inicio de la
generación PlayStation, asentándose un modelo de negocio (consumo rápido,
gran oferta de videojuegos) que permanece hasta nuestros días. Hablamos de
una época que empieza en 1993 y acaba en 1996. Tres años en los que los
videojuegos en dos dimensiones pasaron de dominar la industria (y ser casi
el único camino viable en ella) a prácticamente desaparecer por completo.&lt;/p&gt;</description></item><item><title>Volcado de memoria #RAM en #Linux - #LiME</title><link>http://karpoke.ignaciocano.com/2016/09/17/volcado-de-memoria-ram-en-linux-lime/</link><pubDate>Sat, 17 Sep 2016 14:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/17/volcado-de-memoria-ram-en-linux-lime/</guid><description>&lt;blockquote&gt;
&lt;p&gt;En primer lugar, igual que hice en la entrada anterior “Volcado de memoria
RAM en Windows – OSForensics”, voy a recordar la importancia de las buenas
prácticas, recordando la necesidad de conocer y seguir la &lt;a href="https://www.ietf.org/rfc/rfc3227.txt"&gt;RFC 3227&lt;/a&gt;, que
lleva por título “Guidelines for Evidence Collection and Archiving”,
(Directrices para la recolección y archivo de la Evidencia). Vuelvo a decir:
recomiendo encarecidamente su lectura.&lt;/p&gt;
&lt;p&gt;En esta ocasión, vamos a realizar un volcado de memoria de un sistema Linux.&lt;/p&gt;</description></item><item><title>A guide to fix hacked WordPress sites</title><link>http://karpoke.ignaciocano.com/2016/09/17/a-guide-to-fix-hacked-wordpress-sites/</link><pubDate>Sat, 17 Sep 2016 14:43:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/17/a-guide-to-fix-hacked-wordpress-sites/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Our content, web design, and development teams spent months putting together
a brand new guide to walk users through the process of identifying and
clearing a WordPress hack, as well as ensuring post-hack actions are taken
using the free Sucuri plugin.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Alycia Mitchell | &lt;a href="https://blog.sucuri.net/2016/09/guide-for-hacked-wordpress.html"&gt;sucuri.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Transistors - The invention that changed the world</title><link>http://karpoke.ignaciocano.com/2016/09/17/transistors-the-invention-that-changed-the-world/</link><pubDate>Sat, 17 Sep 2016 00:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/17/transistors-the-invention-that-changed-the-world/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/OwS9aTE2Go4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» Real Engineering | &lt;a href="https://www.youtube.com/watch?v=OwS9aTE2Go4"&gt;youtube.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>La estética del código fuente: a la búsqueda del Arte en la Programación</title><link>http://karpoke.ignaciocano.com/2016/09/16/la-estetica-del-codigo-fuente-a-la-busqueda-del-arte-en-la-programacion/</link><pubDate>Fri, 16 Sep 2016 21:45:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/16/la-estetica-del-codigo-fuente-a-la-busqueda-del-arte-en-la-programacion/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Un lenguaje informático no es más que un conjunto de instrucciones que
introducimos en una máquina para que esta opere permitiéndonos así
desarrollar programas. De este modo, las distintas formas en que combinamos
dichas instrucciones dan lugar a los diferentes estilos y escuelas
responsables de lo que podemos denominar ‘la estética de la programación‘.&lt;/p&gt;
&lt;p&gt;Esa estética, según las reglas a las que responda, se puede clasificar a su
vez en cuatro grandes grupos que tradicionalmente, como muchas corrientes
artísticas, han coexistido de forma simultánea…&lt;/p&gt;</description></item><item><title>Mr. Robot S02E06: easter eggs más elaborados y un curso acelerado de hacking</title><link>http://karpoke.ignaciocano.com/2016/09/11/mr-robot-s02e06-easter-eggs-mas-elaborados-y-un-curso-acelerado-de-hacking/</link><pubDate>Sun, 11 Sep 2016 18:52:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/11/mr-robot-s02e06-easter-eggs-mas-elaborados-y-un-curso-acelerado-de-hacking/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Volvemos a la crónica tecnológica de Mr. Robot con el análisis del sexto
capítulo de la segunda temporada. El inicio nos dejó bastante descolocados
a casi todos los seguidores de la serie, especialmente por el cambio de
registro. No vamos a entrar en detalles puesto que es una sorpresa que merece
que cada uno vea libre de spoilers pero, personalmente, creo que es de lo
mejor que se ha hecho en televisión en los últimos años.&lt;/p&gt;</description></item><item><title>The simple solution to eliminate traffic</title><link>http://karpoke.ignaciocano.com/2016/09/11/the-simple-solution-to-eliminate-traffic/</link><pubDate>Sun, 11 Sep 2016 17:09:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/11/the-simple-solution-to-eliminate-traffic/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Here’s a simple way to make traffic disappear.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/iHzzSao6ypE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» &lt;a href="https://www.youtube.com/channel/UC2C_jShtL725hvbm1arSV9w"&gt;CPG Grey&lt;/a&gt; | via &lt;a href="https://www.geeksaresexy.net/2016/09/03/simple-solution-eliminate-traffic/"&gt;geeksaresexy.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Reverse debugging for Python</title><link>http://karpoke.ignaciocano.com/2016/09/11/reverse-debugging-for-python/</link><pubDate>Sun, 11 Sep 2016 14:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/11/reverse-debugging-for-python/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A ”reverse debugger” is a debugger where you can go forward and backward in
time. It is an uncommon feature, at least in the open source world, but I
have no idea why. I have used undodb-gdb and rr, which are reverse debuggers
for C code, and I can only say that they saved me many, many days of poking
around blindly in gdb.&lt;/p&gt;
&lt;p&gt;The PyPy team is pleased to give you ”RevPDB”, a reverse-debugger similar to
rr but for Python.&lt;/p&gt;</description></item><item><title>datetime vs Arrow vs Pendulum vs Delorean vs udatetime</title><link>http://karpoke.ignaciocano.com/2016/09/11/datetime-vs-arrow-vs-pendulum-vs-delorean-vs-udatetime/</link><pubDate>Sun, 11 Sep 2016 13:55:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/11/datetime-vs-arrow-vs-pendulum-vs-delorean-vs-udatetime/</guid><description>&lt;blockquote&gt;
&lt;p&gt;So I setup a benchmark, which can be found here to compare Python datetime,
Arrow, Pendulum, Delorean and udatetime on a performance level. I picked 4
typical performance critical operations to measure the speed of those
libraries.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Decode a date-time string&lt;/li&gt;
&lt;li&gt;Encode (serialize) a date-time string&lt;/li&gt;
&lt;li&gt;Instantiate object with current time in UTC&lt;/li&gt;
&lt;li&gt;Instantiate object with current time in local timezone&lt;/li&gt;
&lt;li&gt;Instantiate object from timestamp in UTC&lt;/li&gt;
&lt;li&gt;Instantiate object from timestamp in local timezone&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Simon Pirschel | &lt;a href="https://aboutsimon.com/blog/2016/08/04/datetime-vs-Arrow-vs-Pendulum-vs-Delorean-vs-udatetime.html"&gt;aboutsimon.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Editor wars: the revenge of vim</title><link>http://karpoke.ignaciocano.com/2016/09/11/editor-wars-the-revenge-of-vim/</link><pubDate>Sun, 11 Sep 2016 13:42:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/11/editor-wars-the-revenge-of-vim/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Al, like a lot of you out there, thinks that he “knows how to use vi”.
I’m here to tell you that he doesn’t. And unless you’ve spent the last
few years alone in a cave high in the Himalayas, with only food, drink,
a laptop, and Vim Golf, you probably don’t either. Heck, I don’t
consider myself a Vim master, but I’m going to write this overwrought
essay praising it (using Vim, naturally).&lt;/p&gt;</description></item><item><title>Demystifying the regular expression that checks if a number is prime</title><link>http://karpoke.ignaciocano.com/2016/09/10/demystifying-the-regular-expression-that-checks-if-a-number-is-prime/</link><pubDate>Sat, 10 Sep 2016 18:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/09/10/demystifying-the-regular-expression-that-checks-if-a-number-is-prime/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A while back I was researching the most efficient way to check if a number
is prime. This lead me to find the following piece of code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public static boolean isPrime(int n) {
return !new String(new char[n]).matches(”.?|(..+?)\\1+”);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I was intrigued. While this might not be the most efficient way, it’s
certainly one of the less obvious ones, so my curiosity kicked in. How on
Earth could a match for the .?|(..+?)\1+ regular expression tell that a
number is not prime (once it’s converted to its unary representation)?&lt;/p&gt;</description></item><item><title>DEF CON 24 - Panel - MR ROBOT Panel</title><link>http://karpoke.ignaciocano.com/2016/08/26/def-con-24-panel-mr-robot-panel/</link><pubDate>Fri, 26 Aug 2016 18:47:10 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/08/26/def-con-24-panel-mr-robot-panel/</guid><description>&lt;blockquote&gt;
&lt;p&gt;DEF CON 24 - Panel - MR ROBOT Panel&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/_bBrj6QBPW0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» DEFCONConference | &lt;a href="https://www.youtube.com/watch?v=_bBrj6QBPW0"&gt;youtube.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>What the heck is the event loop anyway? | Philip Roberts | JSConf EU</title><link>http://karpoke.ignaciocano.com/2016/08/25/what-the-heck-is-the-event-loop-anyway-philip-roberts-jsconf-eu/</link><pubDate>Thu, 25 Aug 2016 11:07:01 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/08/25/what-the-heck-is-the-event-loop-anyway-philip-roberts-jsconf-eu/</guid><description>&lt;blockquote&gt;
&lt;p&gt;What the heck is the event loop anyway? | Philip Roberts | JSConf EU&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/8aGhZQkoFbQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» JSConf | &lt;a href="https://www.youtube.com/watch?v=8aGhZQkoFbQ"&gt;youtube.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Motivos por los que recomiendo usar la distribución Debian en Linux</title><link>http://karpoke.ignaciocano.com/2016/08/14/motivos-por-los-que-recomiendo-usar-la-distribucion-debian-en-linux/</link><pubDate>Sun, 14 Aug 2016 13:29:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/08/14/motivos-por-los-que-recomiendo-usar-la-distribucion-debian-en-linux/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Llevo más de 5 años usando Debian y la verdad es que estoy más que
satisfecho. De momento no me planteo cambiar de distribución
básicamente por los siguientes motivos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sus repositorios son excelentes&lt;/li&gt;
&lt;li&gt;La metodologia de desarrollo seguida por debian&lt;/li&gt;
&lt;li&gt;Estabilidad y seguridad&lt;/li&gt;
&lt;li&gt;Soporte existente para la distribución&lt;/li&gt;
&lt;li&gt;Ofrece múltiples posibilidades de instalación y uso&lt;/li&gt;
&lt;li&gt;Filosofia de la distribución&lt;/li&gt;
&lt;li&gt;La instalo una vez y me olvido para siempre&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Joan | &lt;a href="http://geekland.eu/motivos-para-debian-en-linux/"&gt;geekland.eu&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Meterpretear una apk</title><link>http://karpoke.ignaciocano.com/2016/08/14/meterpretear-una-apk/</link><pubDate>Sun, 14 Aug 2016 12:49:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/08/14/meterpretear-una-apk/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Primero digamos que en este post vamos a tocar los temas de las APKs de
Android, que es el formato utilizado para empaquetar las aplicaciones.
También vamos a tocar Metasploit, una gran herramienta para los pentesters,
esta herramienta se basa en módulos los cuales permiten hacer (sobre todo
intentos) de explotación de sistemas, con los módulos de exploit que cuenta
la herramienta, o módulos auxiliares. Usaremos dos de las herramientas con
las que cuenta metasploit: msfvenom (para generar payloads, dando la
posibilidad de pasarlos por un encoder) y msfconsole (consola de comandos
para hacer uso de exploits, modulos auxiliares&amp;hellip;).
Vamos a realizar un sencillo proceso de Ingeniería inversa en android, pero
bastante sencillo.&lt;/p&gt;</description></item><item><title>Lepton image compression: saving 22% losslessly from images at 15MB/s</title><link>http://karpoke.ignaciocano.com/2016/07/17/lepton-image-compression-saving-22-percent-losslessly-from-images-at-15mbps/</link><pubDate>Sun, 17 Jul 2016 23:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/07/17/lepton-image-compression-saving-22-percent-losslessly-from-images-at-15mbps/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Lepton achieves a 22% savings reduction for existing JPEG images, by
predicting coefficients in JPEG blocks and feeding those predictions as
context into an arithmetic coder. Lepton preserves the original file
bit-for-bit perfectly. It compresses JPEG files at a rate of 5 megabytes per
second and decodes them back to the original bits at 15 megabytes per second,
securely, deterministically, and in under 24 megabytes of memory.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Daniel Reiter Horn | &lt;a href="https://blogs.dropbox.com/tech/2016/07/lepton-image-compression-saving-22-losslessly-from-images-at-15mbs/"&gt;dropbox.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Programming the Pi over USB</title><link>http://karpoke.ignaciocano.com/2016/07/10/programming-the-pi-over-usb/</link><pubDate>Sun, 10 Jul 2016 00:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/07/10/programming-the-pi-over-usb/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A comprehensive video covering how to set up your Raspberry Pi Zero so that
you can access it via the USB port. Yes, plug it in to a USB port and you
can use the command line or with a few tweaks a full graphical desktop.
Great for on the go or when another monitor or screen is not suitable.
(It even supports Minecraft which can be played)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/4gLzJGrkfVw?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» Te Co Ed | &lt;a href="https://www.youtube.com/watch?v=4gLzJGrkfVw"&gt;youtube.com&lt;/a&gt; | via &lt;a href="https://www.raspberrypi.org/blog/programming-pi-zero-usb/"&gt;raspberrypi.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>How We Teach Computers to Understand Pictures</title><link>http://karpoke.ignaciocano.com/2016/06/29/how-we-teach-computers-to-understand-pictures/</link><pubDate>Wed, 29 Jun 2016 01:33:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/06/29/how-we-teach-computers-to-understand-pictures/</guid><description>&lt;blockquote&gt;
&lt;p&gt;When a very young child looks at a picture, she can identify simple elements:
”cat,” ”book,” ”chair.” Now, computers are getting smart enough to do that
too. What’s next? In a thrilling talk, computer vision expert Fei-Fei Li
describes the state of the art — including the database of 15 million photos
her team built to ”teach” a computer to understand pictures — and the key
insights yet to come.&lt;/p&gt;</description></item><item><title>Sentirás nostalgia al ver los puertos que has utilizado en tu PC</title><link>http://karpoke.ignaciocano.com/2016/06/28/sentiras-nostalgia-al-ver-los-puertos-que-has-utilizado-en-tu-pc/</link><pubDate>Tue, 28 Jun 2016 07:42:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/06/28/sentiras-nostalgia-al-ver-los-puertos-que-has-utilizado-en-tu-pc/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Los que llevamos unos cuantos años utilizando ordenadores hemos visto pasar
por nuestras manos todo tipo de puertos. Hasta la introducción y
estandarización del USB, muchos de los dispositivos que utilizábamos tenían
conectores diferentes, y algunos hasta propietarios. Vamos a recordar algunos
de ellos.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="Sentirás nostalgia al ver los puertos que has utilizado en tu PC" loading="lazy" src="http://karpoke.ignaciocano.com/images/puertos.jpg"&gt;&lt;/p&gt;
&lt;p&gt;» Alberto García | &lt;a href="http://www.adslzone.net/2016/06/23/sentiras-nostalgia-al-ver-los-puertos-que-has-utilizado-en-tu-pc/"&gt;adslzone.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Así es como la ingeniería inversa cambió la historia de la informática para siempre</title><link>http://karpoke.ignaciocano.com/2016/06/13/asi-es-como-la-ingenieria-inversa-cambio-la-historia-de-la-informatica-para-siempre/</link><pubDate>Mon, 13 Jun 2016 13:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/06/13/asi-es-como-la-ingenieria-inversa-cambio-la-historia-de-la-informatica-para-siempre/</guid><description>&lt;blockquote&gt;
&lt;p&gt;IBM era el dueño y señor de los bits y los bytes a principios de los 80. En
aquella época Apple, Microsoft y los fabricantes de aquellos legendarios
ordenadores de 8 bits también despuntaban, pero todo daba igual: el gigante
azul dominaba con mano firme la informática empresarial, y para muestra un
botón: el PC no se llamaba PC. Se llamaba IBM PC.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Javier Pastor | &lt;a href="http://www.xataka.com/historia-tecnologica/asi-es-como-la-ingenieria-inverso-cambio-la-historia-de-la-informatica-para-siempre"&gt;xataka.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Solving Unicode Problems in Python 2.7</title><link>http://karpoke.ignaciocano.com/2016/06/08/solving-unicode-problems-in-python-2-7/</link><pubDate>Wed, 08 Jun 2016 22:24:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/06/08/solving-unicode-problems-in-python-2-7/</guid><description>&lt;blockquote&gt;
&lt;p&gt;One of the toughest things to get right in a Python program is Unicode
handling. If you’re reading this, you’re probably in the middle of
discovering this the hard way.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The main reasons Unicode handling is difficult in Python is because the
existing terminology is confusing, and because many cases which could be
problematic are handled transparently. This prevents many people from ever
having to learn what’s really going on, until suddenly they run into a brick
wall when they want to handle data that contains characters outside the ASCII
character set.&lt;/p&gt;</description></item><item><title>La polémica SystemD</title><link>http://karpoke.ignaciocano.com/2016/06/05/la-polemica-systemd/</link><pubDate>Sun, 05 Jun 2016 20:08:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/06/05/la-polemica-systemd/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Es un programa que genera una inmensa polémica, del que se está oyendo
hablar cada vez más y que es utilizado por la mayoría de
distribuciones. Sus detractores son muchos, sin embargo es utilizado cada
vez por más distribuciones Linux. Así que surgen las preguntas. ¿Porqué
SystemD es tan malo? Y si es tan malo, ¿porqué cada vez más distribuciones
lo están utilizando?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Amancio | &lt;a href="https://lignux.com/la-polemica-systemd/"&gt;lignux.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>El origen del tono que escuchamos al hacer una llamada</title><link>http://karpoke.ignaciocano.com/2016/06/02/el-origen-del-tono-que-escuchamos-al-hacer-una-llamada/</link><pubDate>Thu, 02 Jun 2016 00:44:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/06/02/el-origen-del-tono-que-escuchamos-al-hacer-una-llamada/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Hay aspectos tan mínimos en lo que usamos a diario que a menudo no reparamos
en ellos hasta que, de repente, nos los cambian. Un ejemplo es esto que
comentaremos ahora: ¿suenan igual todos los tonos de espera tras el marcado?
Si sólo llamáis a contactos de vuestro país no habréis notado la
diferencia, pero la cosa cambia para las llamadas internacionales.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Ivan Linares | &lt;a href="http://www.elandroidelibre.com/2016/06/historia-tonos-espera-llamadas.html"&gt;elandroidelibre.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The Joel Test: 12 Steps to Better Code</title><link>http://karpoke.ignaciocano.com/2016/05/31/the-joel-test-12-steps-to-better-code/</link><pubDate>Tue, 31 May 2016 07:49:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/05/31/the-joel-test-12-steps-to-better-code/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Have you ever heard of SEMA? It’s a fairly esoteric system for measuring
how good a software team is. No, wait! Don’t follow that link! It will take
you about six years just to understand that stuff. So I’ve come up with my
own, highly irresponsible, sloppy test to rate the quality of a software
team. The great part about it is that it takes about 3 minutes. With all the
time you save, you can go to medical school.&lt;/p&gt;</description></item><item><title>España y el software que fue</title><link>http://karpoke.ignaciocano.com/2016/02/29/espana-y-el-software-que-fue/</link><pubDate>Mon, 29 Feb 2016 09:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/02/29/espana-y-el-software-que-fue/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La abadía del crimen fue publicado en 1987, en el cénit de los viejos
microordenadores de 8-bits. Sus diseñadores, Paco Menéndez y Juan
Delcán, lo diseñaron en un Amstrad CPC6128, el último gran ordenador
de ese periodo —tecnología punta de 1985, con 128 KB de RAM y una
inusual disquetera de tres pulgadas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Roger Senserrich | &lt;a href="http://www.jotdown.es/2016/02/espana-software-fue/"&gt;jotdown.es&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The history behind the decision to move Python to GitHub</title><link>http://karpoke.ignaciocano.com/2016/02/07/the-history-behind-the-decision-to-move-python-to-github/</link><pubDate>Sun, 07 Feb 2016 15:16:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/02/07/the-history-behind-the-decision-to-move-python-to-github/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I asked on Twitter if people would be interested in having me write
down the history behind my decision to choose GitHub for Python’s
future development process and people said ”yes”(some literally),
hence this blog post.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Brett Cannon | &lt;a href="http://www.snarky.ca/the-history-behind-the-decision-to-move-python-to-github"&gt;snarky.ca&lt;/a&gt;&lt;/p&gt;</description></item><item><title>How to C in 2016</title><link>http://karpoke.ignaciocano.com/2016/02/07/how-to-c-in-2016/</link><pubDate>Sun, 07 Feb 2016 15:01:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/02/07/how-to-c-in-2016/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The first rule of C is don’t write C if you can avoid it. If you must
write in C, you should follow modern rules. C has been around since
the early 1970s. People have ”learned C” at various points during its
evolution, but knowledge usually get stuck after learning, so
everybody has a different set of things they believe about C based on
the year(s) they first started learning.&lt;/p&gt;</description></item><item><title>¿Cuál es el origen de “Hello world”?</title><link>http://karpoke.ignaciocano.com/2016/02/07/cual-es-el-origen-de-hello-world/</link><pubDate>Sun, 07 Feb 2016 14:55:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/02/07/cual-es-el-origen-de-hello-world/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Brian Kernighan, autor de uno de los libros de programación más
famosos de la historia: C Progamming Language (1978). Previamente,
también habría escrito en 1973 un libro llamado A Tutorial
Introduction to the Programming Language B, en el cual introdujo por
primera vez el ejemplo del famoso “Hello World”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Nicolás Rivera | &lt;a href="http://hipertextual.com/2016/01/hello-world-origen"&gt;hipertextual.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Los geniales Huevos de Pascua de LucasArts</title><link>http://karpoke.ignaciocano.com/2016/02/07/los-geniales-huevos-de-pascua-de-lucasarts/</link><pubDate>Sun, 07 Feb 2016 12:53:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/02/07/los-geniales-huevos-de-pascua-de-lucasarts/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La facilidad de manejo gracias al motor SCUMM y la mezcla única de una
buena historia y muchos toques de humor que LucasArts aplicaba en sus
aventuras gráficas, se convirtieron a la vez en garantía de calidad y
su sello personal. Además del humor que podemos encontrar durante la
trama, LucasArts escondió también en sus aventuras gráficas numerosos
huevos de pascua y guiños a sus películas o a otros videojuegos.&lt;/p&gt;</description></item><item><title>Why ‘print’ became a function in Python 3</title><link>http://karpoke.ignaciocano.com/2016/01/31/why-print-became-a-function-in-python-3/</link><pubDate>Sun, 31 Jan 2016 16:22:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2016/01/31/why-print-became-a-function-in-python-3/</guid><description>&lt;blockquote&gt;
&lt;p&gt;But the real key to the print function is somewhat subtle and it all
has to do with flexibility, both for the users and the Python
development team. For users, making print a function lets you use
print as an expression, unlike the print statement which can only be
used as a statement.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Brett Cannon | &lt;a href="http://www.snarky.ca/why-print-became-a-function-in-python-3"&gt;snarky.ca&lt;/a&gt;&lt;/p&gt;</description></item><item><title>«¿De quién es el pez?», resuelto mediante Prolog</title><link>http://karpoke.ignaciocano.com/2015/12/26/de-quien-es-el-pez-resuelto-mediante-prolog/</link><pubDate>Sat, 26 Dec 2015 19:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/12/26/de-quien-es-el-pez-resuelto-mediante-prolog/</guid><description>&lt;p&gt;Éste es un viejo &lt;a href="http://hipertextual.com/2015/12/acertijo-de-einstein"&gt;acertijo lógico&lt;/a&gt;, atribuido a Einstein:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El inglés vive en la casa roja.&lt;/li&gt;
&lt;li&gt;El sueco tiene perro.&lt;/li&gt;
&lt;li&gt;El danés toma té.&lt;/li&gt;
&lt;li&gt;El noruego vive en la primera casa.&lt;/li&gt;
&lt;li&gt;El Alemán fuma Prince.&lt;/li&gt;
&lt;li&gt;La casa verde queda inmediatamente a la izquierda de la blanca.&lt;/li&gt;
&lt;li&gt;El dueño de la casa verde toma café.&lt;/li&gt;
&lt;li&gt;La persona que fuma Pall Mall cría pájaros.&lt;/li&gt;
&lt;li&gt;El dueño de la casa amarilla fuma Dunhill.&lt;/li&gt;
&lt;li&gt;El hombre que vive en la casa del centro toma leche.&lt;/li&gt;
&lt;li&gt;El hombre que fuma Blends vive al lado del que tiene un gato.&lt;/li&gt;
&lt;li&gt;El hombre que tiene un caballo vive al lado del que fuma Dunhill.&lt;/li&gt;
&lt;li&gt;El hombre que fuma Bluemaster toma cerveza.&lt;/li&gt;
&lt;li&gt;El hombre que fuma Blends es vecino del que toma agua.&lt;/li&gt;
&lt;li&gt;El noruego vive al lado de la casa azul.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ante estas afirmaciones, la pregunta es: ¿de quién es el pez?&lt;/p&gt;</description></item><item><title>Ryan Seddon: So How Does the Browser Actually Render a Website? | JSConf EU 2015</title><link>http://karpoke.ignaciocano.com/2015/12/04/ryan-seddon-so-how-does-the-browser-actually-render-a-website-jsconf-eu-2015/</link><pubDate>Fri, 04 Dec 2015 13:14:09 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/12/04/ryan-seddon-so-how-does-the-browser-actually-render-a-website-jsconf-eu-2015/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Ryan Seddon: So how does the browser actually render a website | JSConf EU 2015&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/SmE4OwHztCc?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» JSConf | &lt;a href="https://www.youtube.com/watch?v=SmE4OwHztCc"&gt;youtube.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Relatividad general, ondulaciones en el espaciotiempo</title><link>http://karpoke.ignaciocano.com/2015/11/07/relatividad-general-ondulaciones-en-el-espaciotiempo/</link><pubDate>Sat, 07 Nov 2015 14:57:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/11/07/relatividad-general-ondulaciones-en-el-espaciotiempo/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La teoría del electromagnetismo viene codificada en cuatro ecuaciones,
solo cuatro, las ecuaciones de Maxwell. Estas ecuaciones controlan
todos los procesos electromagnéticos conocidos, todos, al menos a
nivel clásico. Eso no está mal del todo porque el electromagnetismo es
la piedra angular de nuestra tecnología y, de paso, de nuestra
química.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://cuentos-cuanticos.com/2015/11/06/relatividad-general-ondulaciones-en-el-espaciotiempo/"&gt;cuentos-cuanticos.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Lo que sucede cuando un software se convierte en un agujero negro</title><link>http://karpoke.ignaciocano.com/2015/11/07/lo-que-sucede-cuando-un-software-se-convierte-en-un-agujero-negro/</link><pubDate>Sat, 07 Nov 2015 13:35:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/11/07/lo-que-sucede-cuando-un-software-se-convierte-en-un-agujero-negro/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Fue a Bjarne Stroustrup a quién le leí que “un sistema grande y
complejo que no ha evolucionado a partir de otro más simple que
funcionaba bien, no funciona y, además, es imposible arreglarlo para
que funcione” (creo que esto es del libro The Design and Evolution of
C++ publicado en 1994). Tal hipótesis se comprobó empíricamente muchas
veces en el siglo XX y es por eso que se cambió el foco a proyectos
ágiles.&lt;/p&gt;</description></item><item><title>10 ways to ruin your start-up’s culture, in cartoons</title><link>http://karpoke.ignaciocano.com/2015/11/07/10-ways-to-ruin-your-start-ups-culture-in-cartoons/</link><pubDate>Sat, 07 Nov 2015 13:28:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/11/07/10-ways-to-ruin-your-start-ups-culture-in-cartoons/</guid><description>&lt;p&gt;» Liz Fosslien and Mollie West | &lt;a href="http://qz.com/536181/10-ways-to-ruin-your-start-ups-culture-in-cartoons/"&gt;qz.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Probability, Paradox, and the Reasonable Person Principle</title><link>http://karpoke.ignaciocano.com/2015/10/17/probability-paradox-and-the-reasonable-person-principle/</link><pubDate>Sat, 17 Oct 2015 12:05:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/10/17/probability-paradox-and-the-reasonable-person-principle/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In this notebook, we cover the basics of probability theory, and show
how to implement the theory in Python.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Peter Norvig | &lt;a href="http://nbviewer.ipython.org/url/norvig.com/ipython/Probability.ipynb"&gt;nbviewer.ipython.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>RebornDB: The next generation distributed key-value store</title><link>http://karpoke.ignaciocano.com/2015/07/08/reborndb-the-next-generation-distributed-key-value-store/</link><pubDate>Wed, 08 Jul 2015 21:34:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/07/08/reborndb-the-next-generation-distributed-key-value-store/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Redis is advanced key-value cache and store, under BSD license. It is
very fast, has many data types(String, Hash, List, Set, Sorted Set …),
uses RDB or AOF persistence and replication to guarantee data
security, and supplies many language client libraries. Most of all,
market chooses Redis. There are many companies using Redis and it has
proved its worth. Although redis is greate, it still has some
disadvantages, and the biggest one is memory limitation. Redis keeps
all data in memory, which limits the whole dataset size and lets us
save more data impossibly.&lt;/p&gt;</description></item><item><title>Stealing Keys from PCs using a Radio: Cheap Electromagnetic Attacks on Windowed Exponentiation</title><link>http://karpoke.ignaciocano.com/2015/06/25/stealing-keys-from-pcs-using-a-radio-cheap-electromagnetic-attacks-on-windowed-exponentiation/</link><pubDate>Thu, 25 Jun 2015 22:16:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/06/25/stealing-keys-from-pcs-using-a-radio-cheap-electromagnetic-attacks-on-windowed-exponentiation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;We demonstrate the extraction of secret decryption keys from laptop
computers, by nonintrusively measuring electromagnetic emanations for
a few seconds from a distance of 50 cm. The attack can be executed
using cheap and readily-available equipment: a consumer-grade radio
receiver or a Software Defined Radio USB dongle. The setup is compact
and can operate untethered; it can be easily concealed, e.g., inside
pita bread. Common laptops, and popular implementations of RSA and
ElGamal encryptions, are vulnerable to this attack, including those
that implement the decryption using modern exponentiation algorithms
such as sliding-window, or even its side-channel resistant variant,
fixed-window (m-ary) exponentiation. We successfully extracted keys
from laptops of various models running GnuPG (popular open source
encryption software, implementing the OpenPGP standard), within a few
seconds. The attack sends a few carefully-crafted ciphertexts, and
when these are decrypted by the target computer, they trigger the
occurrence of specially-structured values inside the decryption
software. These special values cause observable fluctuations in the
electromagnetic field surrounding the laptop, in a way that depends on
the pattern of key bits (specifically, the key-bits window in the
exponentiation routine). The secret key can be deduced from these
fluctuations, through signal processing and cryptanalysis.&lt;/p&gt;</description></item><item><title>A flaw in the design (Part I)</title><link>http://karpoke.ignaciocano.com/2015/06/13/a-flaw-in-the-design-part-i/</link><pubDate>Sat, 13 Jun 2015 11:30:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/06/13/a-flaw-in-the-design-part-i/</guid><description>&lt;blockquote&gt;
&lt;p&gt;David D. Clark, an MIT scientist whose air of genial wisdom earned him
the nickname “Albus Dumbledore,” can remember exactly when he grasped
the Internet’s dark side. He was presiding over a meeting of network
engineers when news broke that a dangerous computer worm — the first
to spread widely — was slithering across the wires. One of the
engineers, working for a leading computer company, piped up with a
claim of responsibility for the security flaw that the worm was
exploiting. “Damn,” he said. “I thought I had fixed that bug.” But as
the attack raged in November 1988, crashing thousands of machines and
causing millions of dollars in damage, it became clear that the
failure went beyond a single man. The worm was using the Internet’s
essential nature — fast, open and frictionless — to deliver malicious
code along computer lines designed to carry harmless files or e-mails.&lt;/p&gt;</description></item><item><title>A repository with 44 years of Unix evolution</title><link>http://karpoke.ignaciocano.com/2015/06/06/a-repository-with-44-years-of-unix-evolution/</link><pubDate>Sat, 06 Jun 2015 09:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/06/06/a-repository-with-44-years-of-unix-evolution/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The evolution of the Unix operating system is made available as a
version-control repository, covering the period from its inception in
1972 as a five thousand line kernel, to 2015 as a widely-used 26
million line system. The repository contains 659 thousand commits and
2306 merges. The repository employs the commonly used Git system for
its storage, and is hosted on the popular GitHub archive. It has been
created by synthesizing with custom software 24 snapshots of systems
developed at Bell Labs, Berkeley University, and the 386BSD team, two
legacy repositories, and the modern repository of the open source
FreeBSD system. In total, 850 individual contributors are identified,
the early ones through primary research. The data set can be used for
empirical research in software engineering, information systems, and
software archaeology.&lt;/p&gt;</description></item><item><title>A Map Of The Most Common Paths For All 32 Chess Pieces</title><link>http://karpoke.ignaciocano.com/2015/06/04/a-map-of-the-most-common-paths-for-all-32-chess-pieces/</link><pubDate>Thu, 04 Jun 2015 17:34:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/06/04/a-map-of-the-most-common-paths-for-all-32-chess-pieces/</guid><description>&lt;blockquote&gt;
&lt;p&gt;There are just 32 pieces on a chessboard, but the number of patterns
in which those pieces can move in the course of an individual game are
astronomical. Still, as these maps show, despite all those different
possibilities, each piece has a pretty clear pattern behind it. The
maps, which track the most common trajectories of each chess piece,
are the works of Steve Tung. Tung explained the process behind the
maps to io9, noting that each map represents condensed data from over
2 million individual games of chess.&lt;/p&gt;</description></item><item><title>Alfonso Azpiri y la época dorada del software español</title><link>http://karpoke.ignaciocano.com/2015/05/30/alfonso-azpiri-y-la-epoca-dorada-del-software-espanol/</link><pubDate>Sat, 30 May 2015 11:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/05/30/alfonso-azpiri-y-la-epoca-dorada-del-software-espanol/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Por aquel entonces, Azpiri se había ganado merecidamente su fama de
buen dibujante en periódicos, revistas y álbumes de historietas, por
lo que Dinamic contactó con él para realizar su primera portada de un
videojuego, el famoso ‘Rocky‘ de 1985. Poco después, en el mismo año,
ilustró la aventura ‘Abu Simbel, Profanation‘, para el que escribe uno
de los mejores, más adictivos y complicados videojuegos de la historia
del entretenimiento digital.&lt;/p&gt;</description></item><item><title>Cómo la Dama se convirtió en la pieza más poderosa del Ajedrez</title><link>http://karpoke.ignaciocano.com/2015/05/30/como-la-dama-se-convirtio-en-la-pieza-mas-poderosa-del-ajedrez/</link><pubDate>Sat, 30 May 2015 08:56:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/05/30/como-la-dama-se-convirtio-en-la-pieza-mas-poderosa-del-ajedrez/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La Dama en el Ajedrez no siempre tuvo los movimientos que tiene hoy,
de hecho esta figura femenina ni siquiera existía en el tablero. Esta
es la historia de como la Dama del Ajedrez se convirtió en la pieza
más poderosa.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Gabriela González | &lt;a href="http://hipertextual.com/2015/05/dama-del-ajedrez"&gt;hipertextual.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Guide for Technical Development</title><link>http://karpoke.ignaciocano.com/2015/05/30/guide-for-technical-development/</link><pubDate>Sat, 30 May 2015 08:55:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/05/30/guide-for-technical-development/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Having a solid foundation in Computer Science is important to become a
successful Software Engineer. This guide is a suggested path for
university students to develop their technical skills academically and
non-academically through self paced hands-on learning. You may use
this guide to determine courses to take, but please make sure you are
taking courses required for your major in order to graduate. The
online resources provided in this guide are not meant to replace
courses available at your university. However, they may help
supplement your learnings or provide an introduction to a topic.&lt;/p&gt;</description></item><item><title>How Chess Has Changed Over The Last 150 Years</title><link>http://karpoke.ignaciocano.com/2015/05/29/how-chess-has-changed-over-the-last-150-years/</link><pubDate>Fri, 29 May 2015 18:45:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/05/29/how-chess-has-changed-over-the-last-150-years/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The rules of chess have remained consistent since the early 19th
Century, but that doesn’t mean our approach to the game has stayed the
same. Here are some intriguing and surprising ways the Game of Kings
has changed its shape over the past 150 years. The history of chess
dates back 1,500 years, but it wasn’t until the introduction of
competitive chess in 1834 that the rules were solidified. Since that
time, players of all calibers have diligently worked to find new and
better ways of winning.&lt;/p&gt;</description></item><item><title>LogJam — This new encryption glitch puts Internet users at risk</title><link>http://karpoke.ignaciocano.com/2015/05/20/logjam-this-new-encryption-glitch-puts-internet-users-at-risk/</link><pubDate>Wed, 20 May 2015 18:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/05/20/logjam-this-new-encryption-glitch-puts-internet-users-at-risk/</guid><description>&lt;blockquote&gt;
&lt;p&gt;After HeartBleed, POODLE and FREAK encryption flaws, a new encryption
attack has been emerged over the Internet that allows attackers to
read and modify the sensitive data passing through encrypted
connections, potentially affecting hundreds of thousands of
HTTPS-protected sites, mail servers, and other widely used Internet
services. A team of security researchers has discovered a new attack,
dubbed Logjam, that allows a man-in-the-middle (MitM) to downgrade
encrypted connections between a user and a Web or email server to use
extremely weaker 512-bit keys which can be easily decrypted.&lt;/p&gt;</description></item><item><title>Initializing and Managing Services in Linux: Past, Present and Future</title><link>http://karpoke.ignaciocano.com/2015/05/20/initializing-and-managing-services-in-linux-past-present-and-future/</link><pubDate>Wed, 20 May 2015 18:38:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/05/20/initializing-and-managing-services-in-linux-past-present-and-future/</guid><description>&lt;blockquote&gt;
&lt;p&gt;One of the most crucial pieces of any UNIX-like operating system is
the init dæmon process. In Linux, this process is started by the
kernel, and it’s the first userspace process to spawn and the last one
to die during shutdown. During the history of UNIX and Linux, many
init systems have gained popularity and then faded away. In this
article, I focus on the history of the init system as it relates to
Linux, and I talk about the role of init in a modern Linux system. I
also relate some of the history of the System V Init (SysV) scheme,
which was the de facto standard for many Linux distributions for a
long time. Then I cover a couple more modern approaches to system
initialization, such as Upstart and systemd. Finally, I pay some
attention to how things work in systemd, as this seems to be the
popular choice at the moment for several of the largest distributions.&lt;/p&gt;</description></item><item><title>The Twelve-Factor App</title><link>http://karpoke.ignaciocano.com/2015/05/18/the-twelve-factor-app/</link><pubDate>Mon, 18 May 2015 22:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/05/18/the-twelve-factor-app/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In the modern era, software is commonly delivered as a service: called
web apps, or software-as-a-service. The twelve-factor app is a
methodology for building software-as-a-service apps that: Use
declarative formats for setup automation, to minimize time and cost
for new developers joining the project; Have a clean contract with the
underlying operating system, offering maximum portability between
execution environments; Are suitable for deployment on modern cloud
platforms, obviating the need for servers and systems administration;
Minimize divergence between development and production, enabling
continuous deployment for maximum agility; And can scale up without
significant changes to tooling, architecture, or development
practices. The twelve-factor methodology can be applied to apps
written in any programming language, and which use any combination of
backing services (database, queue, memory cache, etc).&lt;/p&gt;</description></item><item><title>Las matemáticas explican por qué no puedes ganar al Tetris hagas lo que hagas</title><link>http://karpoke.ignaciocano.com/2015/05/05/las-matematicas-explican-por-que-no-puedes-ganar-al-tetris-hagas-lo-que-hagas/</link><pubDate>Tue, 05 May 2015 22:13:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/05/05/las-matematicas-explican-por-que-no-puedes-ganar-al-tetris-hagas-lo-que-hagas/</guid><description>&lt;blockquote&gt;
&lt;p&gt;“La única forma de ganar es no jugar”. Tom Murphy, programador, creó
en 2013 un programa que era capaz de aprender a jugar a Super Mario
Bros de forma que en sucesivas partidas conseguía salvar los distintos
obstáculos que se encontraba el personaje hasta ganar el juego. Cuando
enfrentó su software al Tetris, sin embargo, Murphy se encontró con
que no había victoria posible.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» R. Pérez | &lt;a href="http://www.elconfidencial.com/tecnologia/2015-05-02/las-matematicas-explican-por-que-no-puedes-ganar-al-tetris-hagas-lo-que-hagas_786085/"&gt;elconfidencial.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Cómo tu traidor cerebro te hace gastar dinero en los juegos freeplay</title><link>http://karpoke.ignaciocano.com/2015/05/03/como-tu-traidor-cerebro-te-hace-gastar-dinero-en-los-juegos-freeplay/</link><pubDate>Sun, 03 May 2015 15:04:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/05/03/como-tu-traidor-cerebro-te-hace-gastar-dinero-en-los-juegos-freeplay/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El cerebro es un órgano fascinante y relativamente desconocido para la
ciencia (y para muchos que tienen uno y lo usan poco, pero eso es otra
historia) y es capaz de cosas realmente increíbles, como por ejemplo
ser consciente de si mismo, pero sin embargo también tiene un buen
número de defectos que permite engañarlo de una manera relativamente
fácil. Las desarrolladoras lo saben y muchas de ellas se aprovechan de
ellas, pervirtiendo un modelo como el free-to-play que podría tener
enormes virtudes y convirtiéndolo en una máquina sacacuartos del Lado
Oscuro.&lt;/p&gt;</description></item><item><title>Mechanical LEGO Display Is Another Level Of Awesomeness</title><link>http://karpoke.ignaciocano.com/2015/05/03/mechanical-lego-display-is-another-level-of-awesomeness/</link><pubDate>Sun, 03 May 2015 11:30:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/05/03/mechanical-lego-display-is-another-level-of-awesomeness/</guid><description>&lt;blockquote&gt;
&lt;p&gt;You don’t often see clever builds like this Technic Dot Matrix Display
by AncientJames from New Zealand. As the reel starts rolling, the
patterns on the cards inside correspond with the patterns on the
display and can show anything that fits into a 5x5 square. The
creator’s video is titled, “Everything is awesome”. Well, this build
certainly is!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Gergo Vas | &lt;a href="http://kotaku.com/mechanical-lego-display-is-another-level-of-awesomeness-1699666287"&gt;kotaku.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The Locksmith Who Picked Two “Unbeatable” Locks and Ended the Era of “Perfect Security”</title><link>http://karpoke.ignaciocano.com/2015/05/03/the-locksmith-who-picked-two-unbeatable-locks-and-ended-the-era-of-perfect-security/</link><pubDate>Sun, 03 May 2015 10:25:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/05/03/the-locksmith-who-picked-two-unbeatable-locks-and-ended-the-era-of-perfect-security/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The pursuit of lock-picking is as old as the lock, which is itself as
old as civilization. But in the entire history of the world, there was
only one brief moment, lasting about 70 years, where you could put
something under lock and key—a chest, a safe, your home—and have
complete, unwavering certainty that no intruder could get to it. This
is a feeling that security experts call “perfect security.” Since we
lost perfect security in the 1850s, it has remained elusive. Despite
tremendous leaps forward in security technology, we have never been
able to get perfect security back.&lt;/p&gt;</description></item><item><title>50 años de la ley de Moore, quizás la ”ley” más incomprendida de la tecnología</title><link>http://karpoke.ignaciocano.com/2015/04/19/50-anos-de-la-ley-de-moore-quizas-la-ley-mas-incomprendida-de-la-tecnologia/</link><pubDate>Sun, 19 Apr 2015 14:22:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/04/19/50-anos-de-la-ley-de-moore-quizas-la-ley-mas-incomprendida-de-la-tecnologia/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El 19 de abril de 1965, Gordon Earle Moore publicaba una editorial en
la revista Electronics que cambió el cómo entendíamos la tecnología.
En ella aseguraba que la complejidad de los circuitos integrados se
duplicaría cada año (luego se modificó para fijar el periodo de dos
años), a la vez que los precios y costes de fabricación se verían
reducidos. Cincuenta años después conocemos esta afirmación como la
Ley de Moore, un exponente de la tecnología que se ha ido cumpliendo
generación tras generación, pero con muchas dudas al respecto.&lt;/p&gt;</description></item><item><title>The Visual 6502</title><link>http://karpoke.ignaciocano.com/2015/04/08/the-visual-6502/</link><pubDate>Wed, 08 Apr 2015 21:34:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/04/08/the-visual-6502/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A complete simulation of the 6502 processor (used in the Commodore 64,
Apple ][ and the NES).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://www.visual6502.org/JSSim/"&gt;visual6502.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 Years of Git: An Interview with Git Creator Linus Torvalds</title><link>http://karpoke.ignaciocano.com/2015/04/07/10-years-of-git-an-interview-with-git-creator-linus-torvalds/</link><pubDate>Tue, 07 Apr 2015 22:13:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/04/07/10-years-of-git-an-interview-with-git-creator-linus-torvalds/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Ten years ago this week, the Linux kernel community faced a daunting
challenge: They could no longer use their revision control system
BitKeeper and no other Software Configuration Management (SCMs) met
their needs for a distributed system. Linus Torvalds, the creator of
Linux, took the challenge into his own hands and disappeared over the
weekend to emerge the following week with Git. Today Git is used for
thousands of projects and has ushered in a new level of social coding
among programmers.&lt;/p&gt;</description></item><item><title>Piratería: cuando la mentira repetida mil veces se convierte en verdad</title><link>http://karpoke.ignaciocano.com/2015/04/06/pirateria-cuando-la-mentira-repetida-mil-veces-se-convierte-en-verdad/</link><pubDate>Mon, 06 Apr 2015 15:14:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/04/06/pirateria-cuando-la-mentira-repetida-mil-veces-se-convierte-en-verdad/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Pero nada, oye, les da igual. Da igual que las webs de descargas, con
la ley en la mano, no sean ilegales. Da igual que ningún juez en
España (ninguno, ¿eh? que se dice pronto) haya cerrado nunca una web
de descargas. Da igual que las pocas que han cerrado lo hayan hecho
motu proprio por miedo o por acorralamiento. Da igual que gran parte
de las querellas contra webs de descargas ni siquiera hayan llegado a
juicio, sino que los jueces hayan sobreseído los casos al ver evidente
la ausencia de delito. Todo eso les da igual.&lt;/p&gt;</description></item><item><title>Stealing Data From Computers Using Heat</title><link>http://karpoke.ignaciocano.com/2015/03/23/stealing-data-from-computers-using-heat/</link><pubDate>Mon, 23 Mar 2015 22:28:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/03/23/stealing-data-from-computers-using-heat/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Security researchers at Ben Gurion University in Israel have found a
way to retrieve data from an air-gapped computer using only heat
emissions and a computer’s built-in thermal sensors. The method would
allow attackers to surreptitiously siphon passwords or security keys
from a protected system and transmit the data to an internet-connected
system that’s in close proximity and that the attackers control. They
could also use the internet-connected system to send malicious
commands to the air-gapped system using the same heat and sensor
technique. The proof-of-concept attack requires both systems to first
be compromised with malware. And currently, the attack allows for just
eight bits of data to be reliably transmitted over an hour—a rate that
is sufficient for an attacker to transmit brief commands or siphon a
password or secret key but not large amounts of data. It also works
only if the air-gapped system is within 40 centimeters (about 15
inches) from the other computer the attackers control. But the
researchers, at Ben Gurion’s Cyber Security Labs, note that this
latter scenario is not uncommon, because air-gapped systems often sit
on desktops alongside Internet-connected ones so that workers can
easily access both.&lt;/p&gt;</description></item><item><title>Servicio de SSH con Latch en Ubuntu</title><link>http://karpoke.ignaciocano.com/2015/03/22/servicio-de-ssh-con-latch-en-ubuntu/</link><pubDate>Sun, 22 Mar 2015 02:01:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/03/22/servicio-de-ssh-con-latch-en-ubuntu/</guid><description>&lt;p&gt;Mediante &lt;a href="https://latch.elevenpaths.com/"&gt;Latch&lt;/a&gt;, podemos añadir una capa extra de seguridad a nuestro
servicio SSH, limitando la ventana de tiempo durante la cual permitimos
iniciar sesión en el servidor.&lt;/p&gt;
&lt;h2 id="instalación"&gt;Instalación&lt;/h2&gt;
&lt;p&gt;Descargamos los paquetes que vamos a necesitar:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo aptitude install gcc make
$ sudo aptitude install libpam0g-dev libcurl4-gnutls-dev libssl-dev
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;(Si ya teníamos instalado el paquete &lt;code&gt;libcurl4-openssl-dev&lt;/code&gt;, podemos
usar éste en lugar de &lt;code&gt;libcurl4-gnutls-dev&lt;/code&gt;.)&lt;/p&gt;
&lt;p&gt;Descargamos el código de github y compilamos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ git clone https://github.com/ElevenPaths/latch-plugin-unix.git
$ cd latch-plugin-unix
$ ./configure prefix=/usr sysconfdir=/etc &amp;amp;&amp;amp; make &amp;amp;&amp;amp; sudo make install
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Antes de continuar, vamos al &lt;a href="https://latch.elevenpaths.com/www/developers/editapplication"&gt;área de desarrolladores&lt;/a&gt; y creamos una
cuenta para este servicio. Ahí obtenemos el identificador de aplicación
y la contraseña.&lt;/p&gt;</description></item><item><title>11 Ways To Track Your Moves When Using a Web Browser</title><link>http://karpoke.ignaciocano.com/2015/03/15/11-ways-to-track-your-moves-when-using-a-web-browser/</link><pubDate>Sun, 15 Mar 2015 12:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/03/15/11-ways-to-track-your-moves-when-using-a-web-browser/</guid><description>&lt;blockquote&gt;
&lt;p&gt;some tracking methods do attempt to track the user over a long time,
and in particular attempt to make it difficult to evade the tracking.
This is sometimes done for advertisement purposes, but can also be
done to stop certain attacks like brute forcing or to identify
attackers that return to a site. In its worst case, from a private
perspective, the tracking is done to follow a user across various web
sites. Over the years, browsers and plugins have provided a number of
ways to restrict this tracking. Here are some of the more common
techniques how tracking is done and how the user can prevent (some of)
it&lt;/p&gt;</description></item><item><title>Exploiting the DRAM rowhammer bug to gain kernel privileges</title><link>http://karpoke.ignaciocano.com/2015/03/14/exploiting-the-dram-rowhammer-bug-to-gain-kernel-privileges/</link><pubDate>Sat, 14 Mar 2015 12:45:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/03/14/exploiting-the-dram-rowhammer-bug-to-gain-kernel-privileges/</guid><description>&lt;blockquote&gt;
&lt;p&gt;“Rowhammer” is a problem with some recent DRAM devices in which
repeatedly accessing a row of memory can cause bit flips in adjacent
rows. We tested a selection of laptops and found that a subset of them
exhibited the problem. We built two working privilege escalation
exploits that use this effect. One exploit uses rowhammer-induced bit
flips to gain kernel privileges on x86-64 Linux when run as an
unprivileged userland process. When run on a machine vulnerable to the
rowhammer problem, the process was able to induce bit flips in page
table entries (PTEs). It was able to use this to gain write access to
its own page table, and hence gain read-write access to all of
physical memory.&lt;/p&gt;</description></item><item><title>9 truths that computer programmers know that most people don’t.</title><link>http://karpoke.ignaciocano.com/2015/03/14/9-truths-that-computer-programmers-know-that-most-people-dont/</link><pubDate>Sat, 14 Mar 2015 11:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/03/14/9-truths-that-computer-programmers-know-that-most-people-dont/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Ever wondered why programmers are known as nightbirds? Why we stay up
all night? Because it allows us to get into the zone, it allows us to
focus on one thing and not have to worry about being interupted by
someone - because they are all asleep. It’s a long stretch of the day
where no one is up and no one is calling or trying to talk to us. It’s
a great time to program, and think.&lt;/p&gt;</description></item><item><title>How Video Game Breasts Are Made (And Why They Can Go Wrong)</title><link>http://karpoke.ignaciocano.com/2015/03/12/how-video-game-breasts-are-made-and-why-they-can-go-wrong/</link><pubDate>Thu, 12 Mar 2015 21:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/03/12/how-video-game-breasts-are-made-and-why-they-can-go-wrong/</guid><description>&lt;blockquote&gt;
&lt;p&gt;If you’ve played games that have breast physics, you’ve probably seen
how uncommon it is for games to show breasts that move like what they
actually are: bags of fat affected by gravity. Instead, it’s more
likely for a game to depict breasts as helium balloons that have minds
of their own. Certain games have failed at rendering realistic breasts
so widely that some people seem convinced that bad breast physics are
the result of sexism, or of an industry that likes to objectify women.
I’ve seen unfair conjecture about whether or not developers have ever
interacted with real-life breasts. I’ve seen people imply that
developers simply don’t know how to properly characterize women in
games, and that gaming’s ocean of unrealistic breasts is what happens
when we have so few women developing games.&lt;/p&gt;</description></item><item><title>The greatest program ever written</title><link>http://karpoke.ignaciocano.com/2015/03/08/the-greatest-program-ever-written/</link><pubDate>Sun, 08 Mar 2015 13:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/03/08/the-greatest-program-ever-written/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I’m a programmer. I write games. Games programmers get a lot of
respect, but none of them, not me, not Carmak, and not Abrash. None of
them deserve the honour which I want to bestow on David Horne. This is
because David Horne wrote the greatest program ever written: 1k chess
on the ZX81. David Horne is not an urban myth. David Horne achieved
what many would even now consider impossible. He wrote a chess game,
with AI, that ran on a poorly documented, buggy machine that contained
only 1k of memory.&lt;/p&gt;</description></item><item><title>The MakeLisp Process</title><link>http://karpoke.ignaciocano.com/2015/03/08/the-makelisp-process/</link><pubDate>Sun, 08 Mar 2015 13:23:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/03/08/the-makelisp-process/</guid><description>&lt;blockquote&gt;
&lt;p&gt;So you want to write a Lisp interpreter? Welcome! The goal of the
Make-A-Lisp project is to make it easy to write your own Lisp
interpreter without sacrificing those many ”Aha!” moments that come
from ascending the McCarthy mountain. When you reach the peak of this
particular mountain, you will have an interpreter for the mal Lisp
language that is powerful enough to be self-hosting, meaning it will
be able to run a mal interpreter written in mal itself.&lt;/p&gt;</description></item><item><title>Attack of the week: FREAK (or ’factoring the NSA for fun and profit’)</title><link>http://karpoke.ignaciocano.com/2015/03/05/attack-of-the-week-freak-or-factoring-the-nsa-for-fun-and-profit/</link><pubDate>Thu, 05 Mar 2015 22:19:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/03/05/attack-of-the-week-freak-or-factoring-the-nsa-for-fun-and-profit/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A group of cryptographers at INRIA, Microsoft Research and IMDEA have
discovered some serious vulnerabilities in OpenSSL (e.g., Android)
clients and Apple TLS/SSL clients (e.g., Safari) that allow a ’man in
the middle attacker’ to downgrade connections from ’strong’ RSA to
’export-grade’ RSA. These attacks are real and exploitable against a
shocking number of websites &amp;ndash; including government websites.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Matthew Green | &lt;a href="http://blog.cryptographyengineering.com/2015/03/attack-of-week-freak-or-factoring-nsa.html"&gt;blog.cryptographyengineering.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Computadoras imprescindibles</title><link>http://karpoke.ignaciocano.com/2015/03/01/computadoras-imprescindibles/</link><pubDate>Sun, 01 Mar 2015 11:12:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/03/01/computadoras-imprescindibles/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Gracias a la desbordante imaginación de una dama victoriana del siglo
XIX pudimos dar el salto del cálculo a la computación. Ada creó el
primer programa de ordenador en su mente, simulando una máquina que
nunca existió. La informática nació dentro del cerebro de una mujer.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» txipi | &lt;a href="http://blog.txipinet.com/2015/02/28/computadoras-imprescindibles/"&gt;blog.txipinet.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Proving that Android’s, Java’s and Python’s sorting algorithm is broken (and showing how to fix it)</title><link>http://karpoke.ignaciocano.com/2015/02/28/proving-that-androids-javas-and-pythons-sorting-algorithm-is-broken-and-showing-how-to-fix-it/</link><pubDate>Sat, 28 Feb 2015 14:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/02/28/proving-that-androids-javas-and-pythons-sorting-algorithm-is-broken-and-showing-how-to-fix-it/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Tim Peters developed the Timsort hybrid sorting algorithm in 2002. It
is a clever combination of ideas from merge sort and insertion sort,
and designed to perform well on real world data. TimSort was first
developed for Python, but later ported to Java (where it appears as
java.util.Collections.sort and java.util.Arrays.sort) by Joshua Bloch
(the designer of Java Collections who also pointed out that most
binary search algorithms were broken). TimSort is today used as the
default sorting algorithm for Android SDK, Sun’s JDK and OpenJDK.
Given the popularity of these platforms this means that the number of
computers, cloud services and mobile phones that use TimSort for
sorting is well into the billions. Fast forward to 2015. After we had
successfully verified Counting and Radix sort implementations in Java
(J. Autom. Reasoning 53(2), 129-139) with a formal verification tool
called KeY, we were looking for a new challenge. TimSort seemed to fit
the bill, as it is rather complex and widely used. Unfortunately, we
weren’t able to prove its correctness. A closer analysis showed that
this was, quite simply, because TimSort was broken and our theoretical
considerations finally led us to a path towards finding the bug
(interestingly, that bug appears already in the Python
implementation). This blog post shows how we did it.&lt;/p&gt;</description></item><item><title>Extracting the SuperFish certificate</title><link>http://karpoke.ignaciocano.com/2015/02/23/extracting-the-superfish-certificate/</link><pubDate>Mon, 23 Feb 2015 22:56:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/02/23/extracting-the-superfish-certificate/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I extracted the certificate from the SuperFish adware and cracked the
password (”komodia”) that encrypted it. I discuss how down below. The
consequence is that I can intercept the encrypted communications of
SuperFish’s victims (people with Lenovo laptops) while hanging out
near them at a cafe wifi hotspot. Note: this is probably trafficking
in illegal access devices under the proposed revisions to the CFAA, so
get it now before they change the law.&lt;/p&gt;</description></item><item><title>Lenovo caught installing adware on new computers</title><link>http://karpoke.ignaciocano.com/2015/02/23/lenovo-caught-installing-adware-on-new-computers/</link><pubDate>Mon, 23 Feb 2015 22:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/02/23/lenovo-caught-installing-adware-on-new-computers/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Other users are reporting that the adware actually installs its own
self-signed certificate authority which effectively allows the
software to snoop on secure connections, like banking websites as
pictured in action below. This is a malicious technique commonly known
as a man-in-the middle attack, where the certificate allows the
software to decrypt secure requests, yet Lenovo appears to be shipping
this software with some of its products out of the box.&lt;/p&gt;</description></item><item><title>NSA has hidden software in hard drives around the world</title><link>http://karpoke.ignaciocano.com/2015/02/23/nsa-has-hidden-software-in-hard-drives-around-the-world/</link><pubDate>Mon, 23 Feb 2015 22:04:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/02/23/nsa-has-hidden-software-in-hard-drives-around-the-world/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The U.S. National Security Agency has figured out how to hide spying
software deep within hard drives made by Western Digital, Seagate,
Toshiba, and other top manufacturers, giving the agency the means to
eavesdrop on the majority of the world’s computers, according to cyber
researchers and former operatives.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Joseph Menn | &lt;a href="http://www.businessinsider.com/r-russian-researchers-expose-breakthrough-us-spying-program-2015-2"&gt;businessinsider.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The coming war on general-purpose computing</title><link>http://karpoke.ignaciocano.com/2015/02/23/the-coming-war-on-general-purpose-computing/</link><pubDate>Mon, 23 Feb 2015 22:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/02/23/the-coming-war-on-general-purpose-computing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Enter Digital Rights Management in its most primitive forms: let’s
call it DRM 0.96. They introduced physical indicia which the software
checked for—deliberate damage, dongles, hidden sectors—and
challenge-response protocols that required possession of large,
unwieldy manuals that were difficult to copy. These failed for two
reasons. First, they were commercially unpopular, because they reduced
the usefulness of the software to the legitimate purchasers. Honest
buyers resented the non-functionality of their backups, they hated the
loss of scarce ports to the authentication dongles, and they chafed at
the inconvenience of having to lug around large manuals when they
wanted to run their software. Second, these didn’t stop pirates, who
found it trivial to patch the software and bypass authentication.
People who took the software without paying for it were untouched.&lt;/p&gt;</description></item><item><title>Live patching for 3.20</title><link>http://karpoke.ignaciocano.com/2015/02/23/live-patching-for-3-20/</link><pubDate>Mon, 23 Feb 2015 21:28:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/02/23/live-patching-for-3-20/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Originally, there was kSplice as a standalone project that implemented
stop_machine()-based patching for the linux kernel. This project got
later acquired, and the current owner is providing live patching as a
proprietary service, without any intentions to have their
implementation merged. Then, due to rising user/customer demand, both
Red Hat and SUSE started working on their own implementation (not
knowing about each other), and announced first versions roughly at the
same time.&lt;/p&gt;</description></item><item><title>Historia de los videojuegos: los orígenes</title><link>http://karpoke.ignaciocano.com/2015/02/18/historia-de-los-videojuegos-los-origenes/</link><pubDate>Wed, 18 Feb 2015 21:05:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/02/18/historia-de-los-videojuegos-los-origenes/</guid><description>&lt;blockquote&gt;
&lt;p&gt;En 1972 se ponía en venta en las tiendas norteamericanas la Magnavox
Odyssey, la primera videoconsola de la historia. Un año antes un
estudiante de la Universidad de Stanford y su socio habían construido
la primera máquina recreativa de la historia. A partir de estos dos
acontecimientos clave los videojuegos comenzaron a popularizarse
creando a día de hoy una gigantesca industria de ocio y
entretenimiento capaz de competir en seguidores y volumen de ventas
con el cine o la música.&lt;/p&gt;</description></item><item><title>The scope of index variables in Python’s for loops</title><link>http://karpoke.ignaciocano.com/2015/02/18/the-scope-of-index-variables-in-pythons-for-loops/</link><pubDate>Wed, 18 Feb 2015 00:04:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/02/18/the-scope-of-index-variables-in-pythons-for-loops/</guid><description>&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The Python reference documentation explicitly documents this behavior
in the section on for loops:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The for-loop makes assignments to the variables(s) in the target
list. [&amp;hellip;] Names in the target list are not deleted when the loop
is finished, but if the sequence is empty, they will not have been
assigned to at all by the loop.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Eli Bendersky | &lt;a href="http://eli.thegreenplace.net/2015/the-scope-of-index-variables-in-pythons-for-loops/"&gt;eli.thegreenplace.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>What every beginner absolutely needs to know about the journey ahead</title><link>http://karpoke.ignaciocano.com/2015/02/08/what-every-beginner-absolutely-needs-to-know-about-the-journey-ahead/</link><pubDate>Sun, 08 Feb 2015 19:37:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/02/08/what-every-beginner-absolutely-needs-to-know-about-the-journey-ahead/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Quincy Larson was just a ”guy in a suit in an office” and decided he
wanted to learn how to code. So he asked around. He started by picking
up a bit of Ruby then found himself skimming through other languages
like Scala, Clojure and Go. He learned Emacs then Vim and even the
Dvorak keyboard layout. He picked up Linux, dabbled in Lisp and coded
in Python while living on the command line for more than half a year.&lt;/p&gt;</description></item><item><title>The Exceptional Beauty of Doom 3’s Source Code</title><link>http://karpoke.ignaciocano.com/2015/02/08/the-exceptional-beauty-of-doom-3s-source-code/</link><pubDate>Sun, 08 Feb 2015 19:25:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/02/08/the-exceptional-beauty-of-doom-3s-source-code/</guid><description>&lt;blockquote&gt;
&lt;p&gt;What would ”nice looking”—or ”beautiful”, for that matter—actually
mean when referring to source code? I asked some programmer friends
what they thought that meant. Their answers were obvious, but still
worth stating:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Code should be locally coherent and single-functioned: One
function should do exactly one thing. It should be clear about
what it’s doing.&lt;/li&gt;
&lt;li&gt;Local code should explain, or at least hint at the overall system
design.&lt;/li&gt;
&lt;li&gt;Code should be self-documenting. Comments should be avoided
whenever possible. Comments duplicate work when both writing and
reading code. If you need to comment something to make it
understandable it should probably be rewritten.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Shawn McGrath | &lt;a href="http://kotaku.com/5975610/the-exceptional-beauty-of-doom-3s-source-code"&gt;kotaku.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>El increíble caso de Werner Koch y GPG</title><link>http://karpoke.ignaciocano.com/2015/02/07/el-increible-caso-de-werner-koch-y-gpg/</link><pubDate>Sat, 07 Feb 2015 11:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/02/07/el-increible-caso-de-werner-koch-y-gpg/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Así, cabe preguntarse por qué el principal desarrollador de una pieza
de software tan sensible y popular “va a la quiebra”. ¿Problemas de
juego? ¿Derroche sin más? Porque un programador de ese calibre, en esa
posición, debería cobrar lo suyo y más en Alemania, país de Koch. Pero
la pregunta adecuada no es por qué va a la quiebra o cuánto cobra,
sino de qué vive este hombre. ¿De qué vive -repetimos- el principal
desarrollador de una pieza de software tan sensible y popular como
GPG? La respuesta, desafortunadamente, es que nadie le pagaba por su
trabajo: vivía de la caridad, de las donaciones. ¿Suena duro? Es aún
peor.&lt;/p&gt;</description></item><item><title>Highly critical “Ghost” allowing code execution affects most Linux systems</title><link>http://karpoke.ignaciocano.com/2015/02/06/highly-critical-ghost-allowing-code-execution-affects-most-linux-systems/</link><pubDate>Fri, 06 Feb 2015 16:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/02/06/highly-critical-ghost-allowing-code-execution-affects-most-linux-systems/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The vulnerability in the GNU C Library (glibc) represents a major
Internet threat, in some ways comparable to the Heartbleed and
Shellshock bugs that came to light last year. The bug, which is being
dubbed ”Ghost” by some researchers, has the common vulnerability and
exposures designation of CVE-2015-0235. While a patch was issued two
years ago, most Linux versions used in production systems remain
unprotected at the moment. What’s more, patching systems requires core
functions or the entire affected server to be rebooted, a requirement
that may cause some systems to remain vulnerable for some time to
come. The buffer overflow flaw resides in
__nss_hostname_digits_dots(), a glibc function that’s invoked by
the gethostbyname() and gethostbyname2() function calls. A remote
attacker able to call either of these functions could exploit the flaw
to execute arbitrary code with the permissions of the user running the
application.&lt;/p&gt;</description></item><item><title>Solucionado el error «AttributeError: '_ssl._SSLSocket' object has no attribute 'issuer'» en Ubuntu Utopic Unicorn</title><link>http://karpoke.ignaciocano.com/2015/02/03/solucionado-el-error-attributeerror-_ssl-_sslsocket-object-has-no-attribute-issuer-en-ubuntu-utopic-unicorn/</link><pubDate>Tue, 03 Feb 2015 00:50:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/02/03/solucionado-el-error-attributeerror-_ssl-_sslsocket-object-has-no-attribute-issuer-en-ubuntu-utopic-unicorn/</guid><description>&lt;p&gt;Si al usar la librería de Python para XMPP nos aparece el error:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Traceback (most recent call last):
File &amp;#34;./test_xmpp.py&amp;#34;, line 12, in
cl.connect()
File &amp;#34;/usr/lib/python2.7/dist-packages/xmpp/client.py&amp;#34;, line 205, in connect
while not self.TLS.starttls and self.Process(1): pass
File &amp;#34;/usr/lib/python2.7/dist-packages/xmpp/dispatcher.py&amp;#34;, line 303, in dispatch
handler[&amp;#39;func&amp;#39;](session,stanza)
File &amp;#34;/usr/lib/python2.7/dist-packages/xmpp/transports.py&amp;#34;, line 330, in StartTLSHandler
self._startSSL()
File &amp;#34;/usr/lib/python2.7/dist-packages/xmpp/transports.py&amp;#34;, line 309, in _startSSL
tcpsock._sslIssuer = tcpsock._sslObj.issuer()
AttributeError: &amp;#39;_ssl._SSLSocket&amp;#39; object has no attribute &amp;#39;issuer&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;parece que es debido a un &lt;a href="https://github.com/eventlet/eventlet/issues/124#issuecomment-68836258"&gt;fallo en dicha librería&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>What happens when you type google.com into your browser’s address box and press enter?</title><link>http://karpoke.ignaciocano.com/2015/01/30/what-happens-when-you-type-google-com-into-your-browsers-address-box-and-press-enter/</link><pubDate>Fri, 30 Jan 2015 20:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/30/what-happens-when-you-type-google-com-into-your-browsers-address-box-and-press-enter/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Except instead of the usual story, we’re going to try to answer this
question in as much detail as possible. No skipping out on anything.
This is a collaborative process, so dig in and try to help out!
There’s tons of details missing, just waiting for you to add them! So
send us a pull request, please!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Alex Gaynor | &lt;a href="https://github.com/alex/what-happens-when"&gt;github.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Coder creates smallest chess game for computers</title><link>http://karpoke.ignaciocano.com/2015/01/30/coder-creates-smallest-chess-game-for-computers/</link><pubDate>Fri, 30 Jan 2015 17:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/30/coder-creates-smallest-chess-game-for-computers/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A French coder has developed what is thought to be the smallest-sized
chess computer program. BootChess is only 487 bytes in size, and the
code can be run on Windows, Mac OS X and Linux computers. That makes
it smaller than 1K ZX Chess - a Sinclair ZX81 computer game, which
contained 672 bytes of code and had held the record for 33 years.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Leo Kelion | &lt;a href="http://www.bbc.com/news/technology-31028787"&gt;bbc.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Every Time Travel Movie Ever, Ranked</title><link>http://karpoke.ignaciocano.com/2015/01/29/every-time-travel-movie-ever-ranked/</link><pubDate>Thu, 29 Jan 2015 23:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/29/every-time-travel-movie-ever-ranked/</guid><description>&lt;blockquote&gt;
&lt;p&gt;With the release of yet another time travel movie this week (Project
Almanac), it’s time for us to look back at the great time travel
movies of our past. Here are all the major time travel movies ever,
ranked. Here are the rules: No animation. No short films. And no
movies that where someone is frozen (or something) and then they wake
up in the future (so Mel Gibson’s Forever Young, Encino Man are OUT).&lt;/p&gt;</description></item><item><title>Against DNSSEC</title><link>http://karpoke.ignaciocano.com/2015/01/29/against-dnssec/</link><pubDate>Thu, 29 Jan 2015 19:52:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/29/against-dnssec/</guid><description>&lt;blockquote&gt;
&lt;p&gt;All secure crypto on the Internet assumes that the DNS lookup from
names to IP addresses are insecure. Securing those DNS lookups
therefore enables no meaningful security. DNSSEC does make some
attacks against insecure sites harder. But it doesn’t make those
attacks infeasible, so sites still need to adopt secure transports
like TLS. With TLS properly configured, DNSSEC adds nothing.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Thomas &amp;amp; Erin Ptacek | &lt;a href="http://sockpuppet.org/blog/2015/01/15/against-dnssec/"&gt;sockpuppet.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Cifrar un directorio sincronizado en Mega con encfs</title><link>http://karpoke.ignaciocano.com/2015/01/28/cifrar-un-directorio-sincronizado-en-mega-con-encfs/</link><pubDate>Wed, 28 Jan 2015 23:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/28/cifrar-un-directorio-sincronizado-en-mega-con-encfs/</guid><description>&lt;p&gt;Ya tenemos cuenta en Mega y las &lt;a href="http://karpoke.ignaciocano.com/2015/01/27/megasync-y-megatools-para-acceder-a-mega-desde-ubuntu/"&gt;&lt;code&gt;megatools&lt;/code&gt; instaladas&lt;/a&gt;.
Ahora vamos a cifrar el directorio, pero en lugar de &lt;a href="http://karpoke.ignaciocano.com/2011/04/21/cifrar-el-contenido-de-dropbox/"&gt;utilizar &lt;code&gt;ecrypt&lt;/code&gt; tal como
hicimos con Dropbox&lt;/a&gt;,
esta vez usaremos &lt;code&gt;encfs&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Suponemos que tenemos dos directorios, &lt;code&gt;~/mega&lt;/code&gt; y &lt;code&gt;~/mega.enc&lt;/code&gt;.
Utilizaremos &lt;code&gt;encfs&lt;/code&gt;, disponible en los repositorios, para cifrar el
contenido del primero en el segundo, y compartir el segundo en Mega.&lt;/p&gt;
&lt;p&gt;Creamos el directorio en Mega:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ megamkdir /Root/mega.enc
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Montamos el directorio cifrado:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ encfs --reverse /home/user/mega /home/user/mega.enc
Creando nuevo volumen cifrado.
Por favor, elige una de las siguientes opciones:
pulsa &amp;#34;x&amp;#34; para modo experto de configuracion,
pulsa &amp;#34;p&amp;#34; para modo paranoia pre-configurado,
cualquier otra, o una linea vacia elegira el modo estandar.
?&amp;gt; x
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Seleccionado modo de configuración Manual.
Los siguientes algoritmos de cifrado estan disponibles:
1. AES : 16 byte block cipher
-- Soporta claves de longitud 128 hasta 256 bits
Soporta bloques de tamaño 64 hasta 4096 bytes
2. Blowfish : Cifrado por bloques de 8 bytes
-- Soporta claves de longitud 128 hasta 256 bits
Soporta bloques de tamaño 64 hasta 4096 bytes
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Teclee el numero correspondiente a su eleccion: 1
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Algoritmo seleccionado &amp;#34;AES&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Por favor, elige un tamaño de clave en bits. El cifrado que has elegido
soporta tamaños desde 128 a 256 bits en incrementos de 64 bits.
Por ejemplo:
128, 192, 256
Tamaño de clave seleccionada: 256
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Usando tamaño de clave de 256 bits
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Elige un tamaño de bloque en bytes. El cifrado que tu has elegido
soporta tamaños desde 64 a 4096 bytes en incrementos de 16.
O bien, pulsa Intro para elegir el tamaño por defecto (1024 bytes)
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Tamaño de bloque del sistema de ficheros: 4096
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Usando tamaño de clave de 4096 bits
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Los siguientes algoritmos de cifrado de nombres de archivo estan disponibles:
1. Block : Codificación en bloques, oculta tamaño de los nombres de fichero
2. Null : No encryption of filenames
3. Stream : Codificacion en canal, guarda nombres de fichero tan cortos como sea posible.
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Teclee el numero correspondiente a su eleccion: 1
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Algoritmo seleccionado &amp;#34;Block&amp;#34;&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;--reverse especificado, no se está usando unique/chained IV
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Configuración finalizada. El sistema de ficheros a ser creado tiene
las siguientes propiedades:
Cifrado del sistema de ficheros: &amp;#34;ssl/aes&amp;#34;, versión 3:0:2
Codificacion del nombre de fichero: &amp;#34;nameio/block&amp;#34;, versión 3:0:1
Tamaño de la llave: 256 bytes
Tamaño de Bloque: 4096 bytes
Agujeros en archivos pasados a través del ciphertext.
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Ahora tendrás que introducir una contraseña para tu sistema de ficheros.
Necesitaras recordar esta contraseña, dado que no hay absolutamente
ningún mecanismo de recuperación. Sin embargo, la contraseña puede ser cambiada
más tarde usando encfsctl.
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Nueva contraseña Encfs:
Verifique la contraseña Encfs:
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Si no queremos tener que introducir la contraseña cada vez que montemos
el directorio, podemos un comando que vuelque el contenido de un fichero
con dicha clave, por ejemplo &lt;code&gt;~/.encfs_passwd&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>MegaSync y Megatools para acceder a Mega desde Ubuntu</title><link>http://karpoke.ignaciocano.com/2015/01/27/megasync-y-megatools-para-acceder-a-mega-desde-ubuntu/</link><pubDate>Tue, 27 Jan 2015 21:43:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/27/megasync-y-megatools-para-acceder-a-mega-desde-ubuntu/</guid><description>&lt;p&gt;El servicio de almacenamiento en la nube de Mega ofrece hasta 50 GB de
espacio gratuito (10 GB de transferencia al mes), cifrado,
multiplataforma, con sincronizado selectivo y está disponible desde el
navegador. Con 50 GB da para guardar algunas copias de seguridad de
nuestros archivos, &lt;a href="http://karpoke.ignaciocano.com/2011/07/08/copia-de-seguridad-de-gmail-con-getmail/"&gt;correos&lt;/a&gt; o &lt;a href="http://karpoke.ignaciocano.com/2011/03/27/importar-un-volcado-de-datos-en-mysql/"&gt;bases de datos&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A continuación, veremos cómo instalar el cliente y acceder desde el
terminal de nuestro servidor.&lt;/p&gt;
&lt;h2 id="instalación-en-el-escritorio"&gt;Instalación en el escritorio&lt;/h2&gt;
&lt;p&gt;Aunque vayamos a instalarlo en el servidor, no he querido dejar de
comentar la instalación de escritorio, que es realmente sencilla.
Instalamos la librería &lt;code&gt;libcrypto++9&lt;/code&gt; desde los repositorios y, a
continuación, &lt;a href="https://mega.co.nz/#sync!linux"&gt;descargamos el paquete&lt;/a&gt;, en este caso para Ubuntu
Trusty Tahr 14.04 32 bits, y lo instalamos:&lt;/p&gt;</description></item><item><title>More shell, less egg</title><link>http://karpoke.ignaciocano.com/2015/01/21/more-shell-less-egg/</link><pubDate>Wed, 21 Jan 2015 21:23:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/21/more-shell-less-egg/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The program Bentley asked Knuth to write is one that’s become familiar
to people who use languages with serious text-handling capabilities:
Read a file of text, determine the n most frequently used words, and
print out a sorted list of those words along with their frequencies.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Dr. Drang | &lt;a href="http://www.leancrew.com/all-this/2011/12/more-shell-less-egg/"&gt;leancrew.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>RoboCop (1987) Is an Almost Perfectly Symmetrical Film</title><link>http://karpoke.ignaciocano.com/2015/01/21/robocop-1987-is-an-almost-perfectly-symmetrical-film/</link><pubDate>Wed, 21 Jan 2015 21:13:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/21/robocop-1987-is-an-almost-perfectly-symmetrical-film/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The Old Testament is full of examples of chiasmus, which is a figure
of speech used in ancient times to emphasize balance. It lists a bunch
of ideas or things and then repeats each of them in reverse order.
It’s often not an identical repetition. It frequently uses the
opposite of what came before or something similar to it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Robert Lockard | &lt;a href="http://dejareviewer.com/2014/04/29/cinematic-chiasmus-robocop-is-almost-perfectly-symmetrical-film/"&gt;dejareviewer.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Functional word processor built in Minecraft</title><link>http://karpoke.ignaciocano.com/2015/01/18/functional-word-processor-built-in-minecraft/</link><pubDate>Sun, 18 Jan 2015 22:44:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/18/functional-word-processor-built-in-minecraft/</guid><description>&lt;blockquote&gt;
&lt;p&gt;There was a time not so long ago when Minecraft was actually a game.
Now, it’s an insane sandbox where people build all kinds of incredibly
complex things… like a word processor… out of blocks. This crazy
contraption is the work of a a third-year robotics student who goes by
the name of Koala_Steamed on YouTube. It’s the result of nearly two
years of painstaking work inside the Minecraft world. That’s not
continuous, mind you. Breaks were obviously taken to do things like
attend classes, use the washroom, and interact with people and things
that had curves.&lt;/p&gt;</description></item><item><title>The Rule of The Big Three (and a half) – Resource Management in C++</title><link>http://karpoke.ignaciocano.com/2015/01/18/the-rule-of-the-big-three-and-a-half-resource-management-in-c/</link><pubDate>Sun, 18 Jan 2015 10:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/18/the-rule-of-the-big-three-and-a-half-resource-management-in-c/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The dynamic creation and destruction of objects was always one of the
bugbears of C. It required the programmer to (manually) control the
allocation of memory for the object, handle the object’s
initialisation then ensure that the object was safely cleaned-up after
use and its memory returned to the heap. Because many C programmers
weren’t educated in the potential problems (or were just plain lazy or
delinquent in their programming) C got a reputation in some quarters
for being an unsafe, memory-leaking language.&lt;/p&gt;</description></item><item><title>HSTS Super Cookies</title><link>http://karpoke.ignaciocano.com/2015/01/11/hsts-super-cookies/</link><pubDate>Sun, 11 Jan 2015 18:53:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/11/hsts-super-cookies/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Using HSTS to track your browsing habits evades the features of web
browsers designed to control more normal ”cookie” based tracking
mechanisms. Using ”incognito” or ”private” modes means that existing
cookies won’t be shared with sites you visit. Browsers also let you
entirely delete cookies that could be used to track you. Because HSTS
is a security feature and isn’t intended to be used for tracking, web
browsers treat it differently from cookies. It is only by intentional
misapplication that HSTS can be exploited to track users.&lt;/p&gt;</description></item><item><title>How we made editing Wikipedia twice as fast</title><link>http://karpoke.ignaciocano.com/2015/01/11/how-we-made-editing-wikipedia-twice-as-fast/</link><pubDate>Sun, 11 Jan 2015 18:07:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/11/how-we-made-editing-wikipedia-twice-as-fast/</guid><description>&lt;blockquote&gt;
&lt;p&gt;HipHop Virtual Machine, or HHVM, reduces the median page-saving time
for editors from about 7.5 seconds to 2.5 seconds, and the mean
page-saving time from about 6 to 3 seconds. Below, I’ll explain the
technical background for HHVM on MediaWiki and some of the
far-reaching benefits of this change that will go beyond the recent
performance gains.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Ori Livneh | &lt;a href="https://blog.wikimedia.org/2014/12/29/how-we-made-editing-wikipedia-twice-as-fast/"&gt;blog.wikimedia.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>An unbeatable computer program has finally solved two-player limit Texas hold’em poker</title><link>http://karpoke.ignaciocano.com/2015/01/10/an-unbeatable-computer-program-has-finally-solved-two-player-limit-texas-holdem-poker/</link><pubDate>Sat, 10 Jan 2015 22:27:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/10/an-unbeatable-computer-program-has-finally-solved-two-player-limit-texas-holdem-poker/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Two-player limit Texas hold’em poker has finally been solved,
according to a study published in Science today. Scientists have
designed a computer program, named Cepheus, with a strategy for the
game that is so close to perfect that statistical analysis shows it
can’t be defeated by a human poker player, even if that player
competed against the computer for an entire lifetime. This means that
no matter how the game starts out, the computer will win or break even
in the long run — making it essentially unbeatable. » &lt;a href="http://poker.srv.ualberta.ca/"&gt;Cepheus&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Code rot &amp; OpenBSD</title><link>http://karpoke.ignaciocano.com/2015/01/06/code-rot-openbsd/</link><pubDate>Tue, 06 Jan 2015 19:14:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/06/code-rot-openbsd/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The background is set, you know why I took interest now it’s time to
tell what solidified the decision. Each change made to the OpenBSD
codebase undergoes a code review before it’s committed to the tree. If
you managed to get that far in this article you perfectly know why I
deem that of upmost importance. No matter how many features your
software has, if your documentation is sub-par then your software is
most likely useless. The quality of OpenBSD documentation is on a
level I didn’t expect even after reading about it in so many places.
Not only will you get information on how something works, what’s
possible and how to use it. It will also tell you the best practices
for using the tool and warn you about the common pitfalls.&lt;/p&gt;</description></item><item><title>Secure Secure Shell</title><link>http://karpoke.ignaciocano.com/2015/01/06/secure-secure-shell/</link><pubDate>Tue, 06 Jan 2015 19:09:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/06/secure-secure-shell/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Reading the documents, I have the feeling that the NSA can 1) decrypt
weak crypto and 2) steal keys. Let’s focus on the crypto first. SSH
supports different key exchange algorithms, ciphers and message
authentication codes. The server and the client choose a set of
algorithms supported by both, then proceed with the key exchange. Some
of the supported algorithms are not so great and should be disabled
completely. If you leave them enabled but prefer secure algorithms,
then a man in the middle might downgrade you to bad ones. This hurts
interoperability but everyone uses OpenSSH anyway.&lt;/p&gt;</description></item><item><title>Software Library: MS-DOS Games</title><link>http://karpoke.ignaciocano.com/2015/01/05/software-library-ms-dos-games/</link><pubDate>Mon, 05 Jan 2015 17:53:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/05/software-library-ms-dos-games/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Software for MS-DOS machines that represent entertainment and games.
The collection includes action, strategy, adventure and other unique
genres of game and entertainment software. Through the use of the
EM-DOSBOX in-browser emulator, these programs are bootable and
playable. Please be aware this browser-based emulation is still in
beta - contact Jason Scott, Software Curator, if there are issues or
questions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="https://archive.org/details/softwarelibrary_msdos_games/v2"&gt;archive.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Solucionado el error «ImportError: cannot import name IncompleteRead» al ejecutar pip en Ubuntu Trusty Tahr 14.04</title><link>http://karpoke.ignaciocano.com/2015/01/02/solucionado-el-error-importerror-cannot-import-name-incompleteread-al-ejecutar-pip-en-ubuntu-trusty-tahr-14-04/</link><pubDate>Fri, 02 Jan 2015 13:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/02/solucionado-el-error-importerror-cannot-import-name-incompleteread-al-ejecutar-pip-en-ubuntu-trusty-tahr-14-04/</guid><description>&lt;p&gt;Si al ejecutar &lt;code&gt;pip&lt;/code&gt; nos encontramos con el siguiente error:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Traceback (most recent call last):
File &amp;#34;/usr/bin/pip&amp;#34;, line 9, in
load_entry_point(&amp;#39;pip==1.5.4&amp;#39;, &amp;#39;console_scripts&amp;#39;, &amp;#39;pip&amp;#39;)()
File &amp;#34;/usr/local/lib/python2.7/dist-packages/pkg_resources.py&amp;#34;, line 352, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File &amp;#34;/usr/local/lib/python2.7/dist-packages/pkg_resources.py&amp;#34;, line 2307, in load_entry_point
return ep.load()
File &amp;#34;/usr/local/lib/python2.7/dist-packages/pkg_resources.py&amp;#34;, line 2021, in load
entry = __import__(self.module_name, globals(),globals(), [&amp;#39;__name__&amp;#39;])
File &amp;#34;/usr/lib/python2.7/dist-packages/pip/__init__.py&amp;#34;, line 11, in
from pip.vcs import git, mercurial, subversion, bazaar # noqa
File &amp;#34;/usr/lib/python2.7/dist-packages/pip/vcs/mercurial.py&amp;#34;, line 9, in
from pip.download import path_to_url
File &amp;#34;/usr/lib/python2.7/dist-packages/pip/download.py&amp;#34;, line 25, in
from requests.compat import IncompleteRead
ImportError: cannot import name IncompleteRead
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Parece ser debido a un &lt;a href="http://stackoverflow.com/a/27341847"&gt;problema entre el paquete &lt;code&gt;requests&lt;/code&gt; y &lt;code&gt;pip&lt;/code&gt;&lt;/a&gt;.
A partir de las &lt;a href="https://github.com/tweepy/tweepy/issues/501"&gt;versión 2.4.0&lt;/a&gt; de &lt;code&gt;requests&lt;/code&gt; se eliminó
&lt;code&gt;requests.compat.IncompleteRead&lt;/code&gt;. Sin embargo, las versiones de &lt;code&gt;pip&lt;/code&gt;
anteriores a &lt;a href="https://github.com/pypa/pip/blob/0dedf2b6f5adefcc29d3d295318a7ebc916fc822/pip/download.py"&gt;julio de 2014&lt;/a&gt; aún utilizan &lt;code&gt;IncompleteRead&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Homenaje a un clásico: las 10 mejores curiosidades de Monkey Island</title><link>http://karpoke.ignaciocano.com/2015/01/01/homenaje-a-un-clasico-las-10-mejores-curiosidades-de-monkey-island/</link><pubDate>Thu, 01 Jan 2015 23:19:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/01/homenaje-a-un-clasico-las-10-mejores-curiosidades-de-monkey-island/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Monkey Island es uno de los videojuegos más míticos de todos los
tiempos. Está lleno de pequeñas curiosidades, anécdotas y huevos de
pascua. Estas son 10 de nuestras favoritas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Carlos Rebato | &lt;a href="http://es.gizmodo.com/homenaje-a-un-clasico-las-10-mejores-curiosidades-de-m-1674905686"&gt;gizmodo.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Quake on an oscilloscope: A technical report</title><link>http://karpoke.ignaciocano.com/2015/01/01/quake-on-an-oscilloscope-a-technical-report/</link><pubDate>Thu, 01 Jan 2015 11:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/01/quake-on-an-oscilloscope-a-technical-report/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A summary of some problems I faced when tinkering with Quake to get it
play nicely on an oscilloscope. After seeing some cool clips like this
mushroom thing and of course Youscope, playing Quake on a scope seemed
like a great idea. It ticks all the marks that make me happy:
low-poly, realtime rendered and open source.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Pekka Väänänen | &lt;a href="http://www.lofibucket.com/articles/oscilloscope_quake.html"&gt;lofibucket.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>El ’canon AEDE’: claves del presente y el futuro de la tasa de agregación de contenidos</title><link>http://karpoke.ignaciocano.com/2015/01/01/el-canon-aede-claves-del-presente-y-el-futuro-de-la-tasa-de-agregacion-de-contenidos/</link><pubDate>Thu, 01 Jan 2015 11:49:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/01/el-canon-aede-claves-del-presente-y-el-futuro-de-la-tasa-de-agregacion-de-contenidos/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Este jueves, 1 de enero, entra en vigor gran parte de la ley Lassalle
de propiedad intelectual y con ella su artículo 32.2, que obliga a los
editores y autores a cobrar —aunque no quieran— cuando los agregadores
de Internet enlacen y distribuyan sus contenidos. Estos son los
aspectos clave a tener en cuenta sobre el denominado canon AEDE.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» M.M. | &lt;a href="http://www.20minutos.es/noticia/2333392/0/claves-canon-aede/ley-lassalle/propiedad-intelectual/"&gt;20minutos.es&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 Futurama jokes that will make you smarter</title><link>http://karpoke.ignaciocano.com/2015/01/01/10-futurama-jokes-that-will-make-you-smarter/</link><pubDate>Thu, 01 Jan 2015 11:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/01/10-futurama-jokes-that-will-make-you-smarter/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The Futurama writers had a rule that the show’s more obscure jokes
couldn’t be central to the plot. So the background is stuffed with
nods to mathematics, science, history, and literature. Numbers are
often translated into math problems (instead of Studio 54, the crew
visits Studio 1²2¹3³). Robot information is conveyed in binary (”The
Honking” references the ”Redrum” scene in The Shining, when Bender is
perplexed to see ”0101100101” written in blood on a wall, but then
realizes that it reads ”1010011010” in the mirror, a series of digits
that translates to ”666”). And of course, there’s the Alienese
language. But the writers also built entire episodes around the
Banach-Tarski paradox and the premise of three-dimensional characters
entering two-dimensional space.&lt;/p&gt;</description></item><item><title>Ringing in 2015 with 40 Linux-friendly hacker SBCs</title><link>http://karpoke.ignaciocano.com/2015/01/01/ringing-in-2015-with-40-linux-friendly-hacker-sbcs/</link><pubDate>Thu, 01 Jan 2015 11:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2015/01/01/ringing-in-2015-with-40-linux-friendly-hacker-sbcs/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In May of this year, LinuxGizmos and Linux.com collaborated on a joint
survey, asking our readers to choose their favorite open-spec hacker
SBCs from a list of 32 that run Linux and/or Android. Our SBC survey
winners, ranked one to five, included the Raspberry Pi, BeagleBone
Black, Odroid-XU, CubieTruck, and Banana Pi single board computers.
Thanks to the flood of new open-spec, community-backed boards, as well
as the demise of others, we have updated our list for this end-of-year
snapshot.&lt;/p&gt;</description></item><item><title>The Origins of the Tag</title><link>http://karpoke.ignaciocano.com/2014/12/30/the-origins-of-the-tag/</link><pubDate>Tue, 30 Dec 2014 23:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/12/30/the-origins-of-the-tag/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Sometime in late summer I took a break with some of the other
engineers and went to a local bar on Castro street in Mountain View.
The bar was the St. James Infirmary and it had a 30 foot wonder woman
statue inside among other interesting things. At some point in the
evening I mentioned that it was sad that Lynx was not going to be able
to display many of the HTML extensions that we were proposing, I also
pointed out that the only text style that Lynx could exploit given its
environment was blinking text. We had a pretty good laugh at the
thought of blinking text, and talked about blinking this and that and
how absurd the whole thing would be.&lt;/p&gt;</description></item><item><title>What Absolutely Everyone Needs To Know About Isaac Asimov’s Foundation</title><link>http://karpoke.ignaciocano.com/2014/12/27/what-absolutely-everyone-needs-to-know-about-isaac-asimovs-foundation/</link><pubDate>Sat, 27 Dec 2014 11:52:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/12/27/what-absolutely-everyone-needs-to-know-about-isaac-asimovs-foundation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;It’s an accomplishment all the more remarkable given that the story
driving the Foundation Trilogy — an epic tale of the fall and rise of
future galactic empires —contains virtually none of the usual tropes
that are associated with science fiction. The novels span the entire
galaxy, but no extraterrestrials make an appearance. It depicts the
future history of human society, but it’s neither explicitly a utopian
nor dystopian parable. There’s plenty of futuristic technology—from
faster-than-light spacecraft to personal force fields—but all of this
serves as the background, not the driver, of the plot. In fact,
Foundation appears to contradict Asimov’s own definition of science
fiction, as a ”branch of literature which deals with the reaction of
human beings to changes in science and technology.” In this case,
though, Asimov would later explain that he set out to create a genre
he called ”social science fiction.” He used the future as a template
to explore a pivotal idea that we’ve been asking for centuries: Are
there laws of human history as immutable as the laws of physics?&lt;/p&gt;</description></item><item><title>Recuperar el sistema tras borrar «/var/lib»</title><link>http://karpoke.ignaciocano.com/2014/12/26/recuperar-el-sistema-tras-borrar-varlib/</link><pubDate>Fri, 26 Dec 2014 21:37:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/12/26/recuperar-el-sistema-tras-borrar-varlib/</guid><description>&lt;p&gt;Si por casualidad acabamos ejecutando un &lt;code&gt;rm -fr /var/lib&lt;/code&gt;, tendremos un
pequeño problema. El directorio /var/lib está pensado para que los
programas instalados guarden información variable (ver &lt;code&gt;man hier&lt;/code&gt;).
Puestos a suponer, supongamos que esto es exactamente lo que acaba de
pasar, que aún no hemos reiniciado la máquina y que seguimos teniendo
acceso por SSH.&lt;/p&gt;
&lt;h2 id="copias-de-seguridad"&gt;Copias de seguridad&lt;/h2&gt;
&lt;p&gt;En este momento, ya es tarde para pensar en copias de seguridad si no
las habíamos hecho antes. Habrá información que hayamos perdido y que
sea imposible recuperar, por ejemplo, &lt;a href="http://dev.mysql.com/doc/refman/4.1/en/installation-layouts.html"&gt;las bases de datos MySQL&lt;/a&gt;.
Probablemente, perderemos información importante para los programas y es
posible que recuperar el sistema en lugar de reinstalar favorezca que
haya toda clase de errores extraños.&lt;/p&gt;</description></item><item><title>12 million home and business routers vulnerable to critical hijacking hack</title><link>http://karpoke.ignaciocano.com/2014/12/21/12-million-home-and-business-routers-vulnerable-to-critical-hijacking-hack/</link><pubDate>Sun, 21 Dec 2014 12:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/12/21/12-million-home-and-business-routers-vulnerable-to-critical-hijacking-hack/</guid><description>&lt;blockquote&gt;
&lt;p&gt;More than 12 million routers in homes and small offices are vulnerable
to attacks that allow hackers anywhere in the world to monitor user
traffic and take administrative control over the devices, researchers
said. The vulnerability resides in ”RomPager” software, embedded into
the residential gateway devices, made by a company known as
AllegroSoft. Versions of RomPager prior to 4.34 contain a critical bug
that allows attackers to send simple HTTP cookie files that corrupt
device memory and hand over administrative control. Attackers can use
that control to read plaintext traffic traveling over the device and
possibly take other actions, including changing sensitive DNS settings
and monitoring or controling Web cams, computers, or other connected
devices. Researchers from Check Point’s malware and vulnerability
group have dubbed the bug Misfortune Cookie, because it allows hackers
to determine the ”fortune” of an HTTP request by manipulating cookies.
» Misfortune Cookie | &lt;a href="http://mis.fortunecook.ie/"&gt;mis.fortunecook.ie&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Was the Death Star Attack an Inside Job?</title><link>http://karpoke.ignaciocano.com/2014/12/21/was-the-death-star-attack-an-inside-job/</link><pubDate>Sun, 21 Dec 2014 11:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/12/21/was-the-death-star-attack-an-inside-job/</guid><description>&lt;blockquote&gt;
&lt;p&gt;We’ve all heard the ”official conspiracy theory” of the Death Star
attack. We all know about Luke Skywalker and his ragtag bunch of
rebels, how they mounted a foolhardy attack on the most powerful,
well-defended battle station ever built. And we’ve all seen the video
over, and over, and over, of the one-in-a-million shot that resulted
in a massive chain reaction that not just damaged, but completely
obliterated that massive technological wonder.&lt;/p&gt;</description></item><item><title>Announcing Ubuntu Core, with snappy transactional updates!</title><link>http://karpoke.ignaciocano.com/2014/12/09/announcing-ubuntu-core-with-snappy-transactional-updates/</link><pubDate>Tue, 09 Dec 2014 23:57:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/12/09/announcing-ubuntu-core-with-snappy-transactional-updates/</guid><description>&lt;blockquote&gt;
&lt;p&gt;What if your cloud instances could be updated with the same certainty
and precision as your mobile phone – with carrier grade assurance that
an update applies perfectly or is not applied at all? What if your
apps could be isolated from one another completely, so there’s no
possibility that installing one app could break another, and stronger
assurance that a compromise of one app won’t compromise the data from
another? When we set out to build the Ubuntu Phone we took on the
challenge of raising the bar for reliability and security in the
mobile market. And today that same technology is coming to the cloud,
in the form of a new ”snappy” image called Ubuntu Core&lt;/p&gt;</description></item><item><title>Ten years of Ubuntu: how Linux’s beloved newcomer became its criticized king</title><link>http://karpoke.ignaciocano.com/2014/12/07/ten-years-of-ubuntu-how-linuxs-beloved-newcomer-became-its-criticized-king/</link><pubDate>Sun, 07 Dec 2014 15:01:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/12/07/ten-years-of-ubuntu-how-linuxs-beloved-newcomer-became-its-criticized-king/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In October of 2004, a new Linux distro appeared on the scene with a
curious name”Ubuntu. Even then there were hundreds, today if not
thousands, of different Linux distros available. A new one wasn’t
particularly unusual, and for some time after its quiet preview
announcement, Ubuntu went largely unnoticed. It was yet another Debian
derivative. Today, Canonical, the company behind Ubuntu, estimates
that there are 25 million Ubuntu users worldwide. That makes Ubuntu
the world’s third most popular PC operating system. By Canonical’s
estimates, Ubuntu has roughly 90 percent of the Linux market. And
Ubuntu is poised to launch a mobile version that may well send those
numbers skyrocketing again.&lt;/p&gt;</description></item><item><title>¿Dónde aprendieron los 'hackers' a ser ’hackers’?</title><link>http://karpoke.ignaciocano.com/2014/12/07/donde-aprendieron-los-hackers-a-ser-hackers/</link><pubDate>Sun, 07 Dec 2014 10:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/12/07/donde-aprendieron-los-hackers-a-ser-hackers/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Una de las principales premisas éticas del ’hacker’, desde los
primeros grupos que aparecieron en los años 90 del siglo pasado, es la
difusión de información sobre cómo funcionan las redes, los
ordenadores y, en general, la tecnología. » &lt;a href="http://www.elmundo.es/tecnologia/2014/10/25/5449e3e5ca474136598b456c.html"&gt;II&lt;/a&gt; » &lt;a href="http://www.elmundo.es/tecnologia/2014/11/02/54532c7e268e3ede1d8b456c.html"&gt;III&lt;/a&gt; » &lt;a href="http://www.elmundo.es/tecnologia/2014/11/09/545dcacd22601d1d5e8b456c.html"&gt;IV&lt;/a&gt;
» &lt;a href="http://www.elmundo.es/tecnologia/2014/11/15/5465e4e3ca474129688b4576.html"&gt;V&lt;/a&gt; » &lt;a href="http://www.elmundo.es/tecnologia/2014/11/22/546f412c268e3e77128b4583.html"&gt;VI&lt;/a&gt; » &lt;a href="http://www.elmundo.es/tecnologia/2014/11/29/547822f7e2704efd448b4570.html"&gt;VII&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Mercé Molist | &lt;a href="http://www.elmundo.es/tecnologia/2014/10/19/5440ba19ca4741894a8b456f.html"&gt;elmundo.es&lt;/a&gt;&lt;/p&gt;</description></item><item><title>¿Por qué le darán el Oscar Honorífico a Hayao Miyazaki?</title><link>http://karpoke.ignaciocano.com/2014/12/07/por-que-le-daran-el-oscar-honorifico-a-hayao-miyazaki/</link><pubDate>Sun, 07 Dec 2014 08:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/12/07/por-que-le-daran-el-oscar-honorifico-a-hayao-miyazaki/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La razón por la que eligieron a Miyazaki para el Oscar, que será otorgado en
una ceremonia privada en la sala Ray Dolby, del Hollywood &amp;amp; Highland Center,
es porque &lt;em&gt;este director ha hecho soñar a muchas personas alrededor del
mundo con sus historias&lt;/em&gt;, con sus dibujos, con sus encantadores personajes,
en fin &lt;em&gt;porque es un grande&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Ivonne Lara | &lt;a href="http://hipertextual.com/2014/11/hayao-miyazaki-oscar-honorifico"&gt;hipertextual.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Ya puedes jugar a todas las máquinas recreativas de tu infancia gratis</title><link>http://karpoke.ignaciocano.com/2014/12/06/ya-puedes-jugar-a-todas-las-maquinas-recreativas-de-tu-infancia-gratis/</link><pubDate>Sat, 06 Dec 2014 16:30:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/12/06/ya-puedes-jugar-a-todas-las-maquinas-recreativas-de-tu-infancia-gratis/</guid><description>&lt;blockquote&gt;
&lt;p&gt;¿Conocéis Archive.org? Es una organización sin ánimo de lucro que
desde 1996 y con sede en San Francisco, se dedica a recopilar y
archivar ”textos, audio, imágenes en movimiento, y software, así como
páginas web” para ponerlos a disposición de todos nosotros de forma
gratuita. Desde la organización tuvieron la genial idea de recopilar
900 videojuegos Arcade creados desde 1970 a 1990 y ofrecérnoslos
gratuitamente, on-line, para deleite y regocijo nuestro.
» &lt;a href="https://archive.org/"&gt;archive.org&lt;/a&gt;
» &lt;a href="https://archive.org/details/internetarcade"&gt;The InternetArcade&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Lo posible de lo imposible: la física de un tsunami</title><link>http://karpoke.ignaciocano.com/2014/12/01/lo-posible-de-lo-imposible-la-fisica-de-un-tsunami/</link><pubDate>Mon, 01 Dec 2014 22:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/12/01/lo-posible-de-lo-imposible-la-fisica-de-un-tsunami/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Desde el punto de vista de la física, un tsunami es sencillamente una
onda sostenida por la gravedad terrestre (y no por el viento, como las
olas de la playa. Tampoco es correcta la denominación de ”ondas de
marea”, ya que no son las mareas la razón de su origen) en aguas poco
profundas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Agatha | &lt;a href="http://eltercerprecog.blogspot.com.es/2014/12/lo-posible-de-lo-imposible-la-fisica-de.html"&gt;eltercerprecog.blogspot.com.es&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The programmer’s price</title><link>http://karpoke.ignaciocano.com/2014/11/23/the-programmers-price/</link><pubDate>Sun, 23 Nov 2014 18:12:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/23/the-programmers-price/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Finally, Bradley received an e-mail from 10x, a talent company. 10x
was started by two music and entertainment managers, Michael Solomon
and Rishon Blumberg, who for the past nineteen years have represented
rock stars, including John Mayer and Vanessa Carlton. Recently, in the
wake of the digital revolution and the music industry’s implosion,
Solomon and Blumberg have begun serving as agents for technologists.
10x claims to represent digital ”rock stars”; the company’s name comes
from the idea, well established in the tech world, that the very best
programmers are superstars, capable of achieving ten times the
productivity of their merely competent colleagues. In HBO’s ”Silicon
Valley,” a self-effacing character named Big Head compliments his
friend’s coding skills by saying, ”Richard’s a 10xer. I’m, like,
barely an xer.”&lt;/p&gt;</description></item><item><title>This is how we ZenPayroll: Our Development Workflow</title><link>http://karpoke.ignaciocano.com/2014/11/23/this-is-how-we-zenpayroll-our-development-workflow/</link><pubDate>Sun, 23 Nov 2014 12:33:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/23/this-is-how-we-zenpayroll-our-development-workflow/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A lot of engineers looking to join ZenPayroll are interested in
hearing more about our development workflow. Put more simply, how do
ZenPayrollers write software? The answer to that is constantly
changing, as we’re always refining our workflows to fit our ever
changing needs, but I’ll cover in some detail the way we do things
today.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Edward Kim | &lt;a href="http://engineering.zenpayroll.com/this-is-how-we-zenpayroll-our-development-workflow/"&gt;engineering.zenpayroll.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The Man Who Made ’Tetris’</title><link>http://karpoke.ignaciocano.com/2014/11/23/the-man-who-made-tetris/</link><pubDate>Sun, 23 Nov 2014 12:30:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/23/the-man-who-made-tetris/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Tetris was formally released in June 1984 by the Academy of Sciences,
after initially spreading among academics and the computer literate by
way of copied floppy disks. As a tile-fitting puzzler, Tetris
captivated these members of intelligentsia. After all, here was a game
constructed of pristine shapes taken straight from Platonic idealism.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Jagger Gravning | &lt;a href="http://motherboard.vice.com/read/the-man-who-made-tetris"&gt;motherboard.vice.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Celebra, Dragon Ball cumple 30 años</title><link>http://karpoke.ignaciocano.com/2014/11/22/celebra-dragon-ball-cumple-30-anos/</link><pubDate>Sat, 22 Nov 2014 16:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/22/celebra-dragon-ball-cumple-30-anos/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Ha pasado mucho tiempo luego de que apareciera por primera vez la
historia de Dragon Ball. 30 años en que su creador, Akira Toriyama,
publicara la historia de un pequeño niño que juntos a sus amigos
buscaban unas esferas mágicas que al reunirlas podrían pedir un deseo.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Ivonne Lara | &lt;a href="http://hipertextual.com/2014/11/dragon-ball-cumple-30-anos"&gt;hipertextual.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Daft Punk, el dúo francés que revolucionó la música electrónica</title><link>http://karpoke.ignaciocano.com/2014/11/22/daft-punk-el-duo-frances-que-revoluciono-la-musica-electronica/</link><pubDate>Sat, 22 Nov 2014 16:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/22/daft-punk-el-duo-frances-que-revoluciono-la-musica-electronica/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Han pasado 20 años desde el nacimiento de Daft Punk, y apenas llevan
llevan cuatro álbumes de estudio (además de una banda sonora para
película que, para algunos, cuenta como un quinto álbum), pero es
tanto lo que han cambiado y es tanto lo que nos han sorprendido, que
su meta fue cumplida, revolucionaron la música electrónica.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Eduardo Marin | &lt;a href="http://hipertextual.com/2014/11/daft-punk"&gt;hipertextual.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Everything you need to know about the Shellshock Bash bug</title><link>http://karpoke.ignaciocano.com/2014/11/14/everything-you-need-to-know-about-the-shellshock-bash-bug/</link><pubDate>Fri, 14 Nov 2014 16:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/14/everything-you-need-to-know-about-the-shellshock-bash-bug/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Remember Heartbleed? If you believe the hype today, Shellshock is in
that league and with an equally awesome name albeit bereft of a cool
logo (someone in the marketing department of these vulns needs to get
on that). But in all seriousness, it does have the potential to be a
biggie and as I did with Heartbleed, I wanted to put together
something definitive both for me to get to grips with the situation
and for others to dissect the hype from the true underlying risk.&lt;/p&gt;</description></item><item><title>Everything you need to know about the Heartbleed SSL bug</title><link>http://karpoke.ignaciocano.com/2014/11/14/everything-you-need-to-know-about-the-heartbleed-ssl-bug/</link><pubDate>Fri, 14 Nov 2014 16:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/14/everything-you-need-to-know-about-the-heartbleed-ssl-bug/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Every now and then in the world of security, something rather serious
and broad-reaching happens and we all run around like headless chicken
wondering what on earth it means. Did the NSA finally ”get us”? Is SSL
dead? Is the sky falling? Well it’s bad, but not for everyone and
quite possibly not as bad as many are saying it is.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Troy Hunt | &lt;a href="http://www.troyhunt.com/2014/04/everything-you-need-to-know-about.html"&gt;troyhunt.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>POODLE attacks on SSLv3</title><link>http://karpoke.ignaciocano.com/2014/11/14/poodle-attacks-on-sslv3/</link><pubDate>Fri, 14 Nov 2014 15:24:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/14/poodle-attacks-on-sslv3/</guid><description>&lt;blockquote&gt;
&lt;p&gt;My colleague, Bodo M¶ller, in collaboration with Thai Duong and
Krzysztof Kotowicz (also Googlers), just posted details about a
padding oracle attack against CBC-mode ciphers in SSLv3. This attack,
called POODLE, is similar to the BEAST attack and also allows a
network attacker to extract the plaintext of targeted parts of an SSL
connection, usually cookie data. Unlike the BEAST attack, it doesn’t
require such extensive control of the format of the plaintext and thus
is more practical. Fundamentally, the design flaw in SSL/TLS that
allows this is the same as with Lucky13 and Vaudenay’s two attacks:
SSL got encryption and authentication the wrong way around – it
authenticates before encrypting.&lt;/p&gt;</description></item><item><title>FrootVPN, servicio VPN anónimo y gratuito para Android y Ubuntu</title><link>http://karpoke.ignaciocano.com/2014/11/14/frootvpn-servicio-vpn-anonimo-y-gratuito-para-android-y-ubuntu/</link><pubDate>Fri, 14 Nov 2014 13:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/14/frootvpn-servicio-vpn-anonimo-y-gratuito-para-android-y-ubuntu/</guid><description>&lt;p&gt;&lt;a href="https://www.frootvpn.com/"&gt;FrootVPN&lt;/a&gt; es un servicio VPN que se anuncia enfocado a preservar la
privacidad y el anonimato, a la par que gratuito. Mediante el uso de un
servicio como éste, podremos conectarnos a Internet de forma segura y
anónima desde sitios que pudieran no serlo, por ejemplo, redes abiertas
que no usan cifrado, servicios que restringen el acceso por país, países
que censuran la libertad de expresión o el acceso a la cultura, etc.&lt;/p&gt;</description></item><item><title>Traducción de la Nota G</title><link>http://karpoke.ignaciocano.com/2014/11/14/traduccion-de-la-nota-g/</link><pubDate>Fri, 14 Nov 2014 12:20:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/14/traduccion-de-la-nota-g/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La Máquina Analítica no tiene ninguna pretensión de producir nada.
Puede hacer cualquier cosa que sepamos cómo ordenarle que haga. Puede
seguir un análisis; pero no tiene la capacidad de anticipar ninguna
relación o verdad analíticas. Su función es ayudarnos a hacer
accesible aquello con lo que ya estamos familiarizados. Está diseñada
para hacer esto principalmente, claro está, por medio de sus
facultades ejecutivas; pero es probable que ejerza de otra manera una
influencia indirecta y recíproca sobre la propia ciencia. Porque, al
distribuir y combinar las verdades y las fórmulas del análisis, de
manera que las combinaciones mecánicas de la máquina las puedan
manejar con mayor rapidez y facilidad, las relaciones y la naturaleza
de muchas cuestiones de la ciencia quedarán bañadas en otra luz y
podrán investigarse en mayor profundidad. Sin duda, esto es una
consecuencia indirecta y, en parte, especulativa, de tal invento. Sin
embargo, es evidente que, en general, al concebir una nueva forma de
registrar verdades matemáticas y arrojarlas para su uso, es probable
que nos inspiren nuevas perspectivas que, de nuevo, deben reaccionar
en la fase más teórica del asunto. Todas las ampliaciones del poder
humano, o aumentos del conocimiento humano, conllevan siempre varias
influencias colaterales, aparte de los objetivos principal y
secundario obtenidos.&lt;/p&gt;</description></item><item><title>Creando un dominio .onion (más o menos) personalizado</title><link>http://karpoke.ignaciocano.com/2014/11/14/creando-un-dominio-onion-mas-o-menos-personalizado/</link><pubDate>Fri, 14 Nov 2014 00:29:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/14/creando-un-dominio-onion-mas-o-menos-personalizado/</guid><description>&lt;p&gt;Hace unos días salió a la luz que Facebook estaba disponible a través de
un &lt;a href="https://lists.torproject.org/pipermail/tor-talk/2014-October/035413.html"&gt;dominio .onion&lt;/a&gt; en la red Tor.&lt;/p&gt;
&lt;p&gt;Las direcciones .onion se crean al aplicar una &lt;a href="https://gitweb.torproject.org/torspec.git?a=blob_plain;hb=HEAD;f=rend-spec.txt"&gt;codificación base32 a los primeros 80 bytes del hash SHA1 de la clave privada del servidor&lt;/a&gt;.
Sabiendo esto, crear una dirección que contenga palabras clave concretas
es cuestión de fuerza bruta y tiempo.&lt;/p&gt;
&lt;p&gt;Un programa que nos servirá para crear dominios que cumplan con nuestros
requisitos es &lt;a href="https://github.com/katmagic/Shallot"&gt;Shallot&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Solucionado el error «ImportError: No module named _sysconfigdata_nd» en Ubuntu</title><link>http://karpoke.ignaciocano.com/2014/11/13/solucionado-el-error-importerror-no-module-named-_sysconfigdata_nd-en-ubuntu/</link><pubDate>Thu, 13 Nov 2014 22:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/13/solucionado-el-error-importerror-no-module-named-_sysconfigdata_nd-en-ubuntu/</guid><description>&lt;p&gt;Si estando en un entorno virtual, nos encontramos con el error:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ImportError: No module named _sysconfigdata_nd
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Es debido a un &lt;a href="https://bugs.launchpad.net/ubuntu/+source/python2.7/+bug/1115466"&gt;conocido error en Ubuntu&lt;/a&gt;, por el cual dicho fichero
se encuentra en otra ubicación, en lugar de &lt;code&gt;/usr/lib/python2.7&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En 32 bits:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ dpkg -S _sysconfigdata_nd.py
libpython2.7-minimal:i386: /usr/lib/python2.7/plat-i386-linux-gnu/_sysconfigdata_nd.py
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En 64 bits:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ dpkg -S _sysconfigdata_nd.py
libpython2.7-minimal:amd64: /usr/lib/python2.7/plat-x86_64-linux-gnu/_sysconfigdata_nd.py
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Una manera de evitarlo es crear un enlace simbólico:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ cd /usr/lib/python2.7
$ sudo ln -s plat-*/_sysconfigdata_nd.py .
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Crear un repositorio de paquetes local</title><link>http://karpoke.ignaciocano.com/2014/11/12/crear-un-repositorio-de-paquetes-local/</link><pubDate>Wed, 12 Nov 2014 18:57:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/12/crear-un-repositorio-de-paquetes-local/</guid><description>&lt;p&gt;Al instalar algunos programas a partir del código fuente, tenemos la
opción de &lt;a href="http://karpoke.ignaciocano.com/2014/05/10/crear-paquetes-deb-con-checkinstall/"&gt;crear paquetes &lt;code&gt;.deb&lt;/code&gt; mediante &lt;code&gt;checkinstall&lt;/code&gt;&lt;/a&gt;, de tal forma
que nos sea más sencillo reinstalarlos, o instalarlos en otros equipos.&lt;/p&gt;
&lt;p&gt;La idea es crear un repositorio local que podamos acceder mediante
&lt;code&gt;apt-get&lt;/code&gt; o &lt;code&gt;aptitude&lt;/code&gt;, y así podemos delegar la instalación de
dependencias.&lt;/p&gt;
&lt;h2 id="directorio"&gt;Directorio&lt;/h2&gt;
&lt;p&gt;Si el número de paquetes es relativamente pequeño, de una misma
distribución, de una sola arquitectura, etc, lo único que necesitamos es
crear un listado de los paquetes disponibles y añadirlo como fuente en
el &lt;code&gt;sources.list&lt;/code&gt;. Si no es el caso, ya sea porque tenemos paquetes para
diferentes distribuciones o diferentes arquitecturas, deberemos
organizar los paquetes siguiendo una jerarquía concreta.&lt;/p&gt;</description></item><item><title>MiniDLNA en Ubuntu Trusty Tahr</title><link>http://karpoke.ignaciocano.com/2014/11/11/minidlna-en-ubuntu-trusty-tahr/</link><pubDate>Tue, 11 Nov 2014 15:23:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/11/minidlna-en-ubuntu-trusty-tahr/</guid><description>&lt;p&gt;DLNA define las especificaciones para compartir contenido multimedia
entre diferentes dispositivos mediante el uso de protocolos UPnP.
Instalaremos un servidor DLNA en Ubuntu Trusty Tahr, MiniDLNA (ahora se
llama ReadyMedia), que nos permitirá, por ejemplo, ver películas,
escuchar música o ver fotos en el portátil, el móvil o la televisión.
Actualmente, no se encuentra en los repositorios, así que lo
instalaremos a partir del código fuente. (Otra alternativa sería usar
algún repositorio PPA que ya contenga el paquete compilado.)&lt;/p&gt;</description></item><item><title>chmod sin chmod</title><link>http://karpoke.ignaciocano.com/2014/11/08/chmod-sin-chmod/</link><pubDate>Sat, 08 Nov 2014 19:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/08/chmod-sin-chmod/</guid><description>&lt;p&gt;Durante la desventura de pasar de 32 a 64 bits, tuve el placer de quedarme sin
poder ejecutar ningún binario, ya que estos se habían sobreescrito por sus
versiones compiladas para la arquitectura de 64 bits mientras aún continuaba
con la de 32.&lt;/p&gt;
&lt;p&gt;Ni &lt;code&gt;ls&lt;/code&gt;, ni &lt;code&gt;rm&lt;/code&gt;, ni &lt;code&gt;mv&lt;/code&gt;, ni &lt;code&gt;cp&lt;/code&gt;, ni &lt;code&gt;dpkg&lt;/code&gt;&amp;hellip; nada. Ni tampoco USB, ni
&lt;code&gt;ssh&lt;/code&gt;, y no podía reiniciar aún; un entorno idílico, vamos. El tema está en
que, en un momento dado, necesité hacer uso de las versiones compiladas para 32
bits. Pude descargar aquellos binarios que necesitaba, pero no tenían permisos
de ejecución y tampoco podía usar &lt;code&gt;/bin/chmod&lt;/code&gt;. Por suerte, ya había alguien
que se había imaginado un &lt;a href="http://www.slideshare.net/cog/chmod-x-chmod"&gt;escenario sin &lt;code&gt;chmod&lt;/code&gt;&lt;/a&gt; y había
recopilado toda una serie de alternativas. Ésta es la que yo usé:&lt;/p&gt;</description></item><item><title>How To Become A Hacker</title><link>http://karpoke.ignaciocano.com/2014/11/08/how-to-become-a-hacker/</link><pubDate>Sat, 08 Nov 2014 00:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/08/how-to-become-a-hacker/</guid><description>&lt;blockquote&gt;
&lt;p&gt;There is a community, a shared culture, of expert programmers and
networking wizards that traces its history back through decades to the
first time-sharing minicomputers and the earliest ARPAnet experiments.
The members of this culture originated the term ’hacker’. Hackers
built the Internet. Hackers made the Unix operating system what it is
today. Hackers make the World Wide Web work. If you are part of this
culture, if you have contributed to it and other people in it know who
you are and call you a hacker, you’re a hacker.&lt;/p&gt;</description></item><item><title>Instalar el controlador libre para Broadcom BCM4312 en Ubuntu Trusty Thar</title><link>http://karpoke.ignaciocano.com/2014/11/07/instalar-el-controlador-libre-para-broadcom-bcm4312-en-ubuntu-trusty-thar/</link><pubDate>Fri, 07 Nov 2014 19:28:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/07/instalar-el-controlador-libre-para-broadcom-bcm4312-en-ubuntu-trusty-thar/</guid><description>&lt;p&gt;Al actualizar Ubuntu 14.04 de 32 a 64 bits, se eliminaron los
controladores de la tarjeta de red inalámbrica. Reinstalar el
controlador libre es sencillo. Antes que nada, necesitamos saber qué
chipset tiene, el identificador y qué módulo carga el kernel (si es que
tenemos algún controlador en uso):&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ lspci -vvnn | grep -A 9 Network
04:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g LP-PHY [14e4:4315] (rev 01)
Subsystem: Dell Wireless 1397 WLAN Mini-Card [1028:000c]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast &amp;gt;TAbort- SERR-
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chipset:&lt;/strong&gt; BCM4312&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PCI ID:&lt;/strong&gt; 14e4:4315&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Controlador en uso:&lt;/strong&gt; Ninguno (no aparece la línea que lo debería&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;indicar)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Instalamos el paquete necesario (si no tenemos conexión, deberemos
conectarnos por cable o bien descargarlo desde otro equipo; más
información en el enlace al final):&lt;/p&gt;</description></item><item><title>Secure messaging scorecard</title><link>http://karpoke.ignaciocano.com/2014/11/07/secure-messaging-scorecard/</link><pubDate>Fri, 07 Nov 2014 09:07:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/07/secure-messaging-scorecard/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In the face of widespread Internet surveillance, we need a secure and
practical means of talking to each other from our phones and
computers. Many companies offer ”secure messaging” products”but are
these systems actually secure? We decided to find out, in the first
phase of a new EFF Campaign for Secure &amp;amp; Usable Crypto.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="https://www.eff.org/secure-messaging-scorecard"&gt;eff.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Cómo ’hackear’ un ordenador con la radio del móvil</title><link>http://karpoke.ignaciocano.com/2014/11/04/como-hackear-un-ordenador-con-la-radio-del-movil/</link><pubDate>Tue, 04 Nov 2014 09:50:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/04/como-hackear-un-ordenador-con-la-radio-del-movil/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El sistema truca las ondas electromagnéticas del monitor. De esta
forma se puede transmitir información desde la pantalla a un teléfono
que esté a menos de siete metros, con un ancho de banda de hasta 60
bytes por segundo, suficientes para obtener una contraseña en ocho
segundos, según aseguran los investigadores.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Sergio Ferrer | &lt;a href="http://www.elconfidencial.com/tecnologia/2014-11-03/como-hackear-un-ordenador-con-la-radio-del-movil_434775/"&gt;elconfidencial.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Early Digital Research CP/M Source Code</title><link>http://karpoke.ignaciocano.com/2014/11/03/early-digital-research-cpm-source-code/</link><pubDate>Mon, 03 Nov 2014 09:57:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/03/early-digital-research-cpm-source-code/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Computer Scientist Gary Kildall created just such an operating system
in 1974 for a small computer called the ”Intellec-8ó that Intel had
designed to showcase their new microprocessors. Called ”CP/M”, it was
unlike most other operating systems for small computers because it was
written in PL/M, a portable higher-level language that he had designed
earlier, rather than in the assembly-language of a particular
computer. That meant that CP/M could be ported to run on many
different personal computers. And if the applications were written in
PL/M, they could be ported as well.&lt;/p&gt;</description></item><item><title>What Every App Developer Should Know About Android</title><link>http://karpoke.ignaciocano.com/2014/11/02/what-every-app-developer-should-know-about-android/</link><pubDate>Sun, 02 Nov 2014 10:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/11/02/what-every-app-developer-should-know-about-android/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The goal for this research was to identify the most common problems
and challenges that Android developers face with the devices they
build for. The 288 unique Android device models represent a
significant volume of Android use: approximately 92 to 97% of global
Android volumes, depending on how it gets measured and what regions
and markets are included. This research represents remarkable coverage
of Android usage globally, and it shows the most obvious problems as
well as the status of Android hardware and software from a developer’s
point of view.&lt;/p&gt;</description></item><item><title>Hackers Are Using Gmail Drafts to Update Their Malware and Steal Data</title><link>http://karpoke.ignaciocano.com/2014/10/29/hackers-are-using-gmail-drafts-to-update-their-malware-and-steal-data/</link><pubDate>Wed, 29 Oct 2014 22:18:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/10/29/hackers-are-using-gmail-drafts-to-update-their-malware-and-steal-data/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Researchers at the security startup Shape Security say they’ve found a
strain of malware on a client’s network that uses that new, furtive
form of ”command and control””the communications channel that connects
hackers to their malicious software”allowing them to send the programs
updates and instructions and retrieve stolen data. Because the
commands are hidden in unassuming Gmail drafts that are never even
sent, the hidden communications channel is particularly difficult to
detect.&lt;/p&gt;</description></item><item><title>Cómo lancé un proyecto rentable sin escribir ni una línea de código</title><link>http://karpoke.ignaciocano.com/2014/10/26/como-lance-un-proyecto-rentable-sin-escribir-ni-una-linea-de-codigo/</link><pubDate>Sun, 26 Oct 2014 12:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/10/26/como-lance-un-proyecto-rentable-sin-escribir-ni-una-linea-de-codigo/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Pues bien, se trata más bien de un ’side project’, es decir, el típico
proyecto en el que te embarcas fuera de tu actividad principal, dedicándole o
bien pasta o bien algo de tiempo. En mi caso han sido ambas cosas, pero es
totalmente compatible con mis otros menesteres, como pegar los carteles de
nvivo.es.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» txantxez | &lt;a href="http://www.txarly.com/post/100678426714/como-lance-un-proyecto-rentable-sin-escribir-ni-una"&gt;txarly.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>What are the chances of survival of individual chess pieces in average games?</title><link>http://karpoke.ignaciocano.com/2014/10/26/what-are-the-chances-of-survival-of-individual-chess-pieces-in-average-games/</link><pubDate>Sun, 26 Oct 2014 09:20:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/10/26/what-are-the-chances-of-survival-of-individual-chess-pieces-in-average-games/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In case anyone’s wondering how I approached this as a programming
problem, a quick trick is to not get drawn into writing a whole
chessboard representation. Use a tool like pgn-extract to convert SAN
moves (e.g. ”Nc3”) to long algebraic moves (e.g. ”Nb1c3”) - since we
can safely assume all moves in the PGN are legal, this saves a lot of
effort implementing the rules of chess (although you still have to
handle castling and en passant carefully). » &lt;a href="http://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/"&gt;png-extract&lt;/a&gt; »
&lt;a href="https://github.com/ojb500/SurvivingPieces"&gt;SurvivingPieces&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Happy 10th Birthday, Ubuntu</title><link>http://karpoke.ignaciocano.com/2014/10/25/happy-10th-birthday-ubuntu/</link><pubDate>Sat, 25 Oct 2014 18:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/10/25/happy-10th-birthday-ubuntu/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I’m putting a team of Debian developers together to work full time on
a derivative distribution of Debian. The idea is to provide a
high-quality regular release based on Debian unstable, ensuring that
all patches are given back to Debian, and ensuring that the install
disk of our distribution consists entirely of Free software. Martin
and I spoke at length about the project and he seemed to like the idea
very much. I’m sure he’d be happy to let you know his thoughts
directly. If you’re interested I’d like to give you a call to discuss
it further with you. I’m based in the UK so we’re roughly in the same
timezone, just let me know when and what number to reach you on.&lt;/p&gt;</description></item><item><title>Aprovechan un fallo y le sacan 980.000 dólares a varios casinos</title><link>http://karpoke.ignaciocano.com/2014/10/09/aprovechan-un-fallo-y-le-sacan-980-000-dolares-a-varios-casinos/</link><pubDate>Thu, 09 Oct 2014 20:13:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/10/09/aprovechan-un-fallo-y-le-sacan-980-000-dolares-a-varios-casinos/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Las máquinas de vídeopóquer Game King llegaron a los casinos en 1970 y
fueron un éxito inmediato. Con los años, su software se fue
actualizando, incluyendo nuevos juegos y opciones. En 2002 lanzó su
quinta gran actualización, que presumía de unos gráficos de calidad
nunca vista antes en uno de estos aparatos, así como sonido en estéreo
mejorado respecto a versiones anteriores. Lo que este programa incluía
también, y nadie se dio cuenta, fueron una serie de sutiles errores de
código que tardaron siete años en ser descubiertos.&lt;/p&gt;</description></item><item><title>No Nobel for the Father of the LED</title><link>http://karpoke.ignaciocano.com/2014/10/08/no-nobel-for-the-father-of-the-led/</link><pubDate>Wed, 08 Oct 2014 19:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/10/08/no-nobel-for-the-father-of-the-led/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Nick Holonyak Jr., the person widely credited with the development of
the first visible-light LED, the device that now lights up countless
clocks, traffic signals, and other electronic displays, might be one
of them. On Tuesday, the Royal Swedish Academy of Sciences awarded
this year’s Nobel Prize in Physics to three inventors of the blue
light-emitting diode. Holonyak isn’t exactly complaining that he isn’t
among them; his objection is that his 1962 invention has never been
singled out for recognition by the academy.&lt;/p&gt;</description></item><item><title>Indian Developers Redesigning Linux Kernel With OOP, C++ Support</title><link>http://karpoke.ignaciocano.com/2014/10/05/indian-developers-redesigning-linux-kernel-with-oop-c-support/</link><pubDate>Sun, 05 Oct 2014 11:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/10/05/indian-developers-redesigning-linux-kernel-with-oop-c-support/</guid><description>&lt;blockquote&gt;
&lt;p&gt;DOS Lab IIT Madras and CDAC Chennai out of India are aiming to
redesign the Linux kernel as MOOL, or the Minimalistic Object Oriented
Linux. The project site explains, ”MOOL (Minimalistic Object Oriented
Linux) aims at redesigning the Linux kernel to reduce coupling and
increase maintainability by means of OO (Object Oriented)
abstractions. Excessive common coupling prevails in existing kernel.
Studies have shown that common coupling is increasing in successive
versions of Linux. This will make maintainability of Linux difficult
in coming years. As a starting step we have tried to reduce the number
of global variables of the kernel. Some global variables are used only
by two or three kernel modules. These are passed as function
arguments. The performance of the modified kernel is measured with the
standard performance analysis tools. The modified kernel performs
almost same as original. MOOL features a device driver framework to
write drivers in C++ and insert them as loadable kernel modules.”&lt;/p&gt;</description></item><item><title>Hacking Academia: Data Science and the University</title><link>http://karpoke.ignaciocano.com/2014/09/21/hacking-academia-data-science-and-the-university/</link><pubDate>Sun, 21 Sep 2014 14:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/09/21/hacking-academia-data-science-and-the-university/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The problem we discussed is laid out in some detail in my Brain Drain
post, but a quick summary is this: scientific research in many
disciplines is becoming more and more dependent on the careful
analysis of large datasets. This analysis requires a skill-set as
broad as it is deep: scientists must be experts not only in their own
domain, but in statistics, computing, algorithm building, and software
design as well. Many researchers are working hard to attain these
skills; the problem is that academia’s reward structure is not
well-poised to reward the value of this type of work. In short, time
spent developing high-quality reusable software tools translates to
less time writing and publishing, which under the current system
translates to little hope for academic career advancement. » Jake
Vanderplas | &lt;a href="http://jakevdp.github.io/blog/2013/10/26/big-data-brain-drain/"&gt;The Big Data Brain Drain: Why Science is in Trouble&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Savvy Imgur user builds working 1KB hard drive inside ’vanilla’ Minecraft</title><link>http://karpoke.ignaciocano.com/2014/09/21/savvy-imgur-user-builds-working-1kb-hard-drive-inside-vanilla-minecraft/</link><pubDate>Sun, 21 Sep 2014 11:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/09/21/savvy-imgur-user-builds-working-1kb-hard-drive-inside-vanilla-minecraft/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Imgur user smellystring has officially changed my view of Minecraft –
and he’ll change yours as well. Below is a fully functional 1KB hard
drive, created within Minecraft and it’s incredible. Smellystring
walks us through the process which includes binary blocks, pistons, a
data collection room, indicator lights and ”bit” emulators. Watch and
learn. » &lt;a href="http://reddit.com/r/Minecraft/comments/2e0ghk/fully_functional_1kb_hard_drive_in_vanilla/"&gt;reddit.com&lt;/a&gt; » | &lt;a href="http://imgur.com/a/NJBuH"&gt;imgur.com&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Steven Norris | &lt;a href="http://gearburn.com/2014/08/savvy-imgur-user-builds-working-1kb-hard-drive-inside-vanilla-minecraft/"&gt;gearburn.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Hacker puts Doom on a printer to highlight security vulnerabilities</title><link>http://karpoke.ignaciocano.com/2014/09/20/hacker-puts-doom-on-a-printer-to-highlight-security-vulnerabilities/</link><pubDate>Sat, 20 Sep 2014 23:08:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/09/20/hacker-puts-doom-on-a-printer-to-highlight-security-vulnerabilities/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Running Doom on a printer is more than a gimmick: it’s a security
concern. In 1993, first-person shooter Doom was a groundbreaking game.
In 2014, it’s being used by ethical hackers to demonstrate security
vulnerabilities in connected devices.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Tom Fox-Brewster | &lt;a href="http://www.theguardian.com/technology/2014/sep/15/hackers-doom-printer-canon-security"&gt;theguardian.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Why Archeologists Hate Indiana Jones</title><link>http://karpoke.ignaciocano.com/2014/09/19/why-archeologists-hate-indiana-jones/</link><pubDate>Fri, 19 Sep 2014 17:35:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/09/19/why-archeologists-hate-indiana-jones/</guid><description>&lt;blockquote&gt;
&lt;p&gt;It’s not surprising that academics &amp;ndash; hell bent on taking the fun out
of everything &amp;ndash; would hate our beloved and iconic movie version of
them. But Canuto is no killjoy. His ironic tone and acerbic wit seem
honed by long boring days in the sun. So I bite. I quickly learn that
there’s a good reason why most every archeologist on Earth hates Indy.
And that they might have a point. Because Jones isn’t an archeologist
at all.&lt;/p&gt;</description></item><item><title>Google’s Got an Open Source Android Problem</title><link>http://karpoke.ignaciocano.com/2014/09/14/googles-got-an-open-source-android-problem/</link><pubDate>Sun, 14 Sep 2014 16:41:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/09/14/googles-got-an-open-source-android-problem/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Never has a tweet been more true, or potentially more disastrous for a
vendor. Years ago Google’s Andy Rubin, stung by Steve Jobs’ criticism that
Android wasn’t truly open, tweeted that anyone could fork - i.e., modify -
Android, making it ”open” in the truest sense of the word. Unfortunately for
Google, many OEMs took Rubin at his word. Today, Google’s Android business is
booming, but it’s clear that Android fragmentation minimizes just how much
Google—or its ecosystem of app developers—can make from the open-source
mobile OS. Unfortunately, according to new ABI Research data, it’s only going
to get worse.&lt;/p&gt;</description></item><item><title>Notes from the development of xkcd’s ”Pixels”</title><link>http://karpoke.ignaciocano.com/2014/09/14/notes-from-the-development-of-xkcds-pixels/</link><pubDate>Sun, 14 Sep 2014 12:29:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/09/14/notes-from-the-development-of-xkcds-pixels/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Over the years, I’ve had the pleasure of hacking on the frontend code
for a bunch of xkcd’s interactive comics, including: unixkcd, xk3d,
Umwelt, Time, Externalities, and Lorenz. This weekend, I was pinged
about making something to coincide with the release of What If?:
Serious Scientific Answers to Absurd Hypothetical Questions. The
process of building ”Pixels” was even crazier than our usual April
Fools rush, and had the extra intrigue of being live during Randall
Munroe’s Colbert Report interview. Here’s a few anecdotes from the
development of Pixels and a quick explanation of how it works. I
hadn’t worked with some of the graphics programming patterns
(coordinate systems!) for a while, so I ended up making some classic
mistakes – hopefully you can avoid repeating them. :)&lt;/p&gt;</description></item><item><title>Who invented pointers, amortized complexity, and more?</title><link>http://karpoke.ignaciocano.com/2014/09/09/who-invented-pointers-amortized-complexity-and-more/</link><pubDate>Tue, 09 Sep 2014 22:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/09/09/who-invented-pointers-amortized-complexity-and-more/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Andrey Kolmogorov, Fred Hennie, Richard Stearns, and Walter Savitch
are all famous separately; but they have something in common. Read on,
and see. Today I wish to discuss some algorithmic tricks and show that
they were initially used by complexity theorists, years before they
were used by algorithm designers. To steal a phrase: it`s
computational complexity all the way down. Well not exactly. The
situation is slightly more complex”a bad pun. The complexity theorists
often invented a concept and used it in a narrow way, while later it
was rediscovered and made a general notion.&lt;/p&gt;</description></item><item><title>El primer ’bug’</title><link>http://karpoke.ignaciocano.com/2014/09/09/el-primer-bug/</link><pubDate>Tue, 09 Sep 2014 19:12:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/09/09/el-primer-bug/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Ese día, la programadora Grace Hopper se encontraba trabajando con un
Mark II en la Universidad de Harvard: el ordenador dejó de funcionar,
y los ingenieros encontraron una polilla enganchada a uno de los relés
del ordenador. El bicho pasó a la historia de la informática, porque
pegaron sus restos en el libro de registro del ordenador, junto a una
nota que decía ’First actual case of bug being found’.&lt;/p&gt;</description></item><item><title>Quickly navigate your filesystem from the command-line</title><link>http://karpoke.ignaciocano.com/2014/09/07/quickly-navigate-your-filesystem-from-the-command-line/</link><pubDate>Sun, 07 Sep 2014 10:44:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/09/07/quickly-navigate-your-filesystem-from-the-command-line/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Like many others, I spend most of my day behind a computer. In order
make the most of it (and to keep my body from complaining too much), I
try to maintain an optimized setup. For example, I code in Vim, browse
with Vimperator, and move windows around in i3. Another common task is
filesystem navigation. I prefer to use the command-line for this, but
typing cd ~/some/very/deep/often-used/directory over and over again
does become cumbersome.&lt;/p&gt;</description></item><item><title>Compartiendo archivos en la nube desde el terminal</title><link>http://karpoke.ignaciocano.com/2014/09/06/compartiendo-archivos-en-la-nube-desde-el-terminal/</link><pubDate>Sat, 06 Sep 2014 17:45:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/09/06/compartiendo-archivos-en-la-nube-desde-el-terminal/</guid><description>&lt;p&gt;Hay muchas maneras de compartir archivos, pero con &lt;a href="http://curl.io/"&gt;curl.io&lt;/a&gt; podemos
hacerlo directamente desde el terminal usando &lt;code&gt;curl&lt;/code&gt;, permitiéndonos
archivos hasta 5 GB y durante 4 horas, tiempo tras el cual será
eliminados.&lt;/p&gt;
&lt;p&gt;Por ejemplo, para compartir el archivo &lt;code&gt;/tmp/test&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ curl -F &amp;#34;file=@/tmp/test&amp;#34; http://curl.io/send/nzdqxcmf
File successfully received.
You can download test from this url:
http://curl.io/get/nzdqxcmf/90571b24cf847434a171d41cb2043d6a561cb85b
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Para recuperarlo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ curl -o test http://curl.io/get/nzdqxcmf/90571b24cf847434a171d41cb2043d6a561cb85b
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Tal como nos sugieren en su web, también podemos enviarlo cifrado con
&lt;code&gt;gpg&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Game of thrones: A Compendium of Theories</title><link>http://karpoke.ignaciocano.com/2014/09/06/game-of-thrones-a-compendium-of-theories/</link><pubDate>Sat, 06 Sep 2014 13:33:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/09/06/game-of-thrones-a-compendium-of-theories/</guid><description>&lt;blockquote&gt;
&lt;p&gt;For those less familiar with the story and the theories, I thought it
might be interesting and useful to have a single thread that lists all
of the theories that have arisen given the various questions and
unknowns surrounding the Song. There are a lot of brilliant people on
these boards and some of them have come up with truly excellent
theories, right or wrong, to answer those thoughts we have.&lt;/p&gt;</description></item><item><title>Sistema binario: unos y ceros a través de la historia</title><link>http://karpoke.ignaciocano.com/2014/09/06/sistema-binario-unos-y-ceros-a-traves-de-la-historia/</link><pubDate>Sat, 06 Sep 2014 13:29:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/09/06/sistema-binario-unos-y-ceros-a-traves-de-la-historia/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Los unos y los ceros llevan milenios entre nosotros, desde algunas
culturas primitivas, pero las bombillas se han ido encendiendo poco a
poco hasta llegar a su actual omnipresencia en la electrónica. Primero
fueron Leibniz y la aritmética, luego Boole y la lógica, y finalmente
Shannon y su idea de utilizar el álgebra de Boole para simplificar los
circuitos. Una historia apasionante hasta llegar a nuestro smartphone.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» David G. Ortiz | &lt;a href="http://blogthinkbig.com/sistema-binario/"&gt;blogthinkbig.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Érase una vez unos ’hackers’ hispanos...</title><link>http://karpoke.ignaciocano.com/2014/09/05/erase-una-vez-unos-hackers-hispanos/</link><pubDate>Fri, 05 Sep 2014 22:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/09/05/erase-una-vez-unos-hackers-hispanos/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Vivimos en una era de ’ciberguerras’, intrusiones en línea e
inseguridad informática, pero también en una época de libertad de
acceso a cantidades ingentes de datos e información sin precedentes,
de acceso casi ilimitado al conocimiento. No es posible explicar
semejante paradoja sin asomarse la historia del ’hacking’ y, aunque
parezca mentira, en España esa historia es apasionante. »
&lt;a href="http://hackstory.es/"&gt;hackstory.es&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Pablo Romero | &lt;a href="http://www.elmundo.es/tecnologia/2014/08/29/53ff4ce4e2704eb34f8b4588.html"&gt;elmundo.es&lt;/a&gt;&lt;/p&gt;</description></item><item><title>HubCap Chromecast Root Release</title><link>http://karpoke.ignaciocano.com/2014/08/31/hubcap-chromecast-root-release/</link><pubDate>Sun, 31 Aug 2014 18:01:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/08/31/hubcap-chromecast-root-release/</guid><description>&lt;blockquote&gt;
&lt;p&gt;We’re happy to announce that fail0verflow, GTVHacker, and Team-Eureka
have jointly discovered and exploited a new vulnerability in the
Chromecast which allows root access on the current software build
(17977) as well as new in box devices&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Team-Eureka | &lt;a href="http://forum.xda-developers.com/hardware-hacking/chromecast/root-hubcap-chromecast-root-release-t2855893"&gt;xda-developers.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Open letter to the Linux World</title><link>http://karpoke.ignaciocano.com/2014/08/31/open-letter-to-the-linux-world/</link><pubDate>Sun, 31 Aug 2014 17:34:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/08/31/open-letter-to-the-linux-world/</guid><description>&lt;blockquote&gt;
&lt;p&gt;So, what is systemd? Well, meet your new God. You may have been
praying at the alter of simplicity, but your religion is being
deprecated. It likely already happened without your knowledge during
an upgrade of your Linux box. systemd is the all knowing, all
controlling meta-deity that sees all and supervises all. It’s the new
One Master Process that aspires to control everything it can - and
it’s already doing a lot. It’s what init would look like if it were a
transformer on steroids. It’s complicated, multi-faceted, opaque, and
supremely powerful.&lt;/p&gt;</description></item><item><title>Offline attack shows Wi-Fi routers still vulnerable</title><link>http://karpoke.ignaciocano.com/2014/08/30/offline-attack-shows-wi-fi-routers-still-vulnerable/</link><pubDate>Sat, 30 Aug 2014 17:41:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/08/30/offline-attack-shows-wi-fi-routers-still-vulnerable/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The attack exploits weak randomization, or the lack of randomization,
in a key used to authenticate hardware PINs on some implementations of
Wi-Fi Protected Setup, allowing anyone to quickly collect enough
information to guess the PIN using offline calculations. By
calculating the correct PIN, rather than attempting to brute-force
guess the numerical password, the new attack circumvents defenses
instituted by companies. » &lt;a href="http://www.slideshare.net/0xcite/offline-bruteforce-attack-on-wifi-protected-setup"&gt;Offline bruteforce attack on WiFi
Protected Setup&lt;/a&gt; » &lt;a href="http://arstechnica.com/business/2012/01/hands-on-hacking-wifi-protected-setup-with-reaver/"&gt;Hands-on: hacking WiFi Protected Setup with
Reaver&amp;lt; /a&amp;gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The Feynman Lectures on Physics, completely online</title><link>http://karpoke.ignaciocano.com/2014/08/30/the-feynman-lectures-on-physics-completely-online/</link><pubDate>Sat, 30 Aug 2014 11:56:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/08/30/the-feynman-lectures-on-physics-completely-online/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Last fall, we let you know that Caltech and The Feynman Lectures
Website joined forces to create an online edition of The Feynman
Lectures on Physics. They started with Volume 1. And now they’ve
followed up with Volume 2 and Volume 3, making the collection
complete. » &lt;a href="http://www.feynmanlectures.caltech.edu/I_toc.html"&gt;The Feynman Lectures on Physics, Volume I&lt;/a&gt; » | &lt;a href="http://www.feynmanlectures.caltech.edu/II_toc.html"&gt;The
Feynman Lectures on Physics, Volume II&lt;/a&gt; » &lt;a href="http://www.feynmanlectures.caltech.edu/III_toc.html"&gt;The Feynman Lectures on
Physics, Volume III&lt;/a&gt; » &lt;a href="http://www.openculture.com/free_textbooks"&gt;Free textbooks&lt;/a&gt; » | &lt;a href="http://www.openculture.com/free_ebooks"&gt;Free ebooks&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Hackers transform a smartphone gyroscope into an always-on microphone</title><link>http://karpoke.ignaciocano.com/2014/08/16/hackers-transform-a-smartphone-gyroscope-into-an-always-on-microphone/</link><pubDate>Sat, 16 Aug 2014 09:16:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/08/16/hackers-transform-a-smartphone-gyroscope-into-an-always-on-microphone/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Apps that use your smartphone’s microphone need to ask permission, but
the motion sensors? No say-so needed. That might not sound like a big
deal, but security researchers from Stanford University and defense
firm Rafael have discovered a way to turn Android phone gyroscopes
into crude microphones. They call their app ”Gyrophone” and here’s how
it works: the tiny gyros in your phone that measure orientation do so
using vibrating pressure plates. As it turns out, they can also pick
up air vibrations from sounds, and many Android devices can do it in
the 80 to 250 hertz range &amp;ndash; exactly the frequency of a human voice.&lt;/p&gt;</description></item><item><title>Reflections on Trusting Trust</title><link>http://karpoke.ignaciocano.com/2014/08/15/reflections-on-trusting-trust/</link><pubDate>Fri, 15 Aug 2014 08:05:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/08/15/reflections-on-trusting-trust/</guid><description>&lt;blockquote&gt;
&lt;p&gt;You can’t trust code that you did not totally create yourself.
(Especially code from companies that employ people like me.) No amount
of source-level verification or scrutiny will protect you from using
untrusted code. In demonstrating the possibility of this kind of
attack, I picked on the C compiler. I could have picked on any
program-handling program such as an assembler, a loader, or even
hardware microcode. As the level of program gets lower, these bugs
will be harder and harder to detect. A well installed microcode bug
will be almost impossible to detect.&lt;/p&gt;</description></item><item><title>The VP of Devil’s Advocacy</title><link>http://karpoke.ignaciocano.com/2014/08/07/the-vp-of-devils-advocacy/</link><pubDate>Thu, 07 Aug 2014 21:04:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/08/07/the-vp-of-devils-advocacy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The tenth man. If nine of us look at the same information and arrive
at the exact same conclusion, it’s the duty of the tenth man to
disagree. No matter how improbable it may seem, the tenth man has to
start thinking with the assumption that the other nine are wrong.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» MG Siegler | &lt;a href="http://techcrunch.com/2014/07/27/the-vp-of-devils-advocacy/"&gt;techcrunch.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Why the Security of USB Is Fundamentally Broken</title><link>http://karpoke.ignaciocano.com/2014/08/02/why-the-security-of-usb-is-fundamentally-broken/</link><pubDate>Sat, 02 Aug 2014 11:20:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/08/02/why-the-security-of-usb-is-fundamentally-broken/</guid><description>&lt;blockquote&gt;
&lt;p&gt;That’s the takeaway from findings security researchers Karsten Nohl
and Jakob Lell plan to present next week, demonstrating a collection
of proof-of-concept malicious software that highlights how the
security of USB devices has long been fundamentally broken. The
malware they created, called BadUSB, can be installed on a USB device
to completely take over a PC, invisibly alter files installed from the
memory stick, or even redirect the user’s internet traffic. Because
BadUSB resides not in the flash memory storage of USB devices, but in
the firmware that controls their basic functions, the attack code can
remain hidden long after the contents of the device’s memory would
appear to the average user to be deleted. And the two researchers say
there’s no easy fix: The kind of compromise they’re demonstrating is
nearly impossible to counter without banning the sharing of USB
devices or filling your port with superglue.&lt;/p&gt;</description></item><item><title>Conseguir la lista actualizada de medios AEDE para bloquearlos</title><link>http://karpoke.ignaciocano.com/2014/07/27/conseguir-la-lista-actualizada-de-medios-aede-para-bloquearlos/</link><pubDate>Sun, 27 Jul 2014 11:28:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/07/27/conseguir-la-lista-actualizada-de-medios-aede-para-bloquearlos/</guid><description>&lt;p&gt;La lista de medios asociados a AEDE se puede consultar en su página:
&lt;a href="https://www.aede.es/publica/Periodicos_Asociados.asp"&gt;www.aede.es/publica/Periodicos_Asociados.asp&lt;/a&gt;. Si no queremos visitar ni
por error las páginas de dichos medios, tenemos diferentes alternativas,
desde &lt;em&gt;scripts&lt;/em&gt; de GreaseMonkey para &lt;a href="https://github.com/pykiss/anti-AEDE/blob/master/script.user.js"&gt;Firefox&lt;/a&gt; y complementos para
&lt;a href="https://chrome.google.com/webstore/detail/aede-blocker/olfbaiingdbeoihdemklgmakblhcgpmn?hl=es"&gt;Chrome&lt;/a&gt;, hasta &lt;a href="http://anotacionsalmarge.wordpress.com/2014/02/17/bloquejar-pagines-web/"&gt;añadir los dominios en el fichero &lt;code&gt;/etc/hosts&lt;/code&gt;&lt;/a&gt;,
tal como haríamos si fuesen &lt;a href="http://karpoke.ignaciocano.com/2012/06/21/hphosts-evitando-la-navegacion-por-dominios-maliciosos/"&gt;dominios maliciosos&lt;/a&gt;, o incluso
complementos para &lt;a href="https://wordpress.org/plugins/canon-aede/"&gt;WordPress&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Los siguientes comandos nos facilitan descargar la lista de dominios:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ lynx -dump http://www.aede.es/publica/Periodicos_Asociados.asp |
\grep -Eo &amp;#34;http://[^/\&amp;#34;]+&amp;#34; |
\grep -v aede.es |
sort |
uniq |
awk &amp;#34;{gsub(/http:\/\//, \&amp;#34;\&amp;#34;); print; gsub(/www\./, \&amp;#34;\&amp;#34;); print; }&amp;#34; |
sed &amp;#39;s/^/127.0.0.1 /&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Una alternativa a &lt;code&gt;lynx&lt;/code&gt; sería utilizar el comando &lt;code&gt;curl&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Hacker a los 70: abuelos de la informática moderna que aún pican código a diario</title><link>http://karpoke.ignaciocano.com/2014/07/22/hacker-a-los-70-abuelos-de-la-informatica-moderna-que-aun-pican-codigo-a-diario/</link><pubDate>Tue, 22 Jul 2014 09:00:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/07/22/hacker-a-los-70-abuelos-de-la-informatica-moderna-que-aun-pican-codigo-a-diario/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Estamos tan inmersos en un mundo de electrónica, unos y ceros, que
olvidamos lo recientes que son esos inventos que usamos a diario. Los
primeros ordenadores personales verdaderamente relevantes nacieron a
finales del siglo pasado: el Apple II (1977), el IBM PC (1981), el
Commodore 64 (1982), el primer Macintosh (1984)¦ Windows nació aún más
tarde, en 1985, como una extensión gráfica del sistema operativo
MS-DOS.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» David G. Ortiz | &lt;a href="http://www.yorokobu.es/abuelos-informaticos/"&gt;yorokobu.es&lt;/a&gt;&lt;/p&gt;</description></item><item><title>StackOverflow Update: 560M Pageviews A Month, 25 Servers, And It’s All About Performance</title><link>http://karpoke.ignaciocano.com/2014/07/21/stackoverflow-update-560m-pageviews-a-month-25-servers-and-its-all-about-performance/</link><pubDate>Mon, 21 Jul 2014 17:38:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/07/21/stackoverflow-update-560m-pageviews-a-month-25-servers-and-its-all-about-performance/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The network of sites that make up StackExchange, which includes
StackOverflow, is now ranked 54th for traffic in the world; they have
110 sites and are growing at a rate of 3 or 4 a month; 4 million
users; 40 million answers; and 560 million pageviews a month. This is
with just 25 servers. For everything. That’s high availability, load
balancing, caching, databases, searching, and utility functions. All
with a relative handful of employees. Now that’s quality engineering.&lt;/p&gt;</description></item><item><title>Sarah Harrison: ”No poder negar la verdad es lo que más les aterra”</title><link>http://karpoke.ignaciocano.com/2014/07/21/sarah-harrison-no-poder-negar-la-verdad-es-lo-que-mas-les-aterra/</link><pubDate>Mon, 21 Jul 2014 07:45:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/07/21/sarah-harrison-no-poder-negar-la-verdad-es-lo-que-mas-les-aterra/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Lo mismo sucede con el término de ”seguridad nacional” ampliamente
utilizado desde la aparición de los documentos de la NSA. ”El término
en sí significa proteger la estabilidad de tu país dentro de tus
fronteras, por tanto no hay razón para vigilar a todo un país o
invadir todo un país. Lo que hacen es utilizarlo como término
universal para asustar a la gente evitando que publiquen la verdad y
permitiéndoles tapar sus propios actos ilegales”, y recuerda como en
pro de esta seguridad nacional, la agencia de seguridad nacional
britanica irrumpió el pasado agosto en la redacción del diario
estadounidense The Guardian y destruyó discos duros y documentación,
en un ”extraordinario acto contra la libertad de prensa”. ”Y eso pasó
en un país occidental, pero era por la seguridad nacional”.&lt;/p&gt;</description></item><item><title>El Gobierno de España está librando una guerra en contra del internet y tú eres la víctima</title><link>http://karpoke.ignaciocano.com/2014/07/21/el-gobierno-de-espana-esta-librando-una-guerra-en-contra-del-internet-y-tu-eres-la-victima/</link><pubDate>Mon, 21 Jul 2014 07:38:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/07/21/el-gobierno-de-espana-esta-librando-una-guerra-en-contra-del-internet-y-tu-eres-la-victima/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El canon AEDE se aprobaría el martes 22 de julio y sus implicaciones
son mucho más grandes de lo que parece. Tasar el derecho a cita y
legalizar medidas que atentan contra la libertad de expresión en
internet. En este caso, la víctima eres tú.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Eduardo Arcos | &lt;a href="http://alt1040.com/2014/07/canon-aede-espana-vs-internet"&gt;alt1040.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Visualizing Algorithms</title><link>http://karpoke.ignaciocano.com/2014/06/29/visualizing-algorithms/</link><pubDate>Sun, 29 Jun 2014 18:52:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/06/29/visualizing-algorithms/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Algorithms are a fascinating use case for visualization. To visualize
an algorithm, we don’t merely fit data to a chart; there is no primary
dataset. Instead there are logical rules that describe behavior. This
may be why algorithm visualizations are so unusual, as designers
experiment with novel forms to better communicate. This is reason
enough to study them. But algorithms are also a reminder that
visualization is more than a tool for finding patterns in data.
Visualization leverages the human visual system to augment human
intellect: we can use it to better understand these important abstract
processes, and perhaps other things, too.&lt;/p&gt;</description></item><item><title>The history of Android: The endless iterations of Google’s mobile OS</title><link>http://karpoke.ignaciocano.com/2014/06/17/the-history-of-android-the-endless-iterations-of-googles-mobile-os/</link><pubDate>Tue, 17 Jun 2014 20:14:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/06/17/the-history-of-android-the-endless-iterations-of-googles-mobile-os/</guid><description>&lt;p&gt;Related:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Android has been with us in one form or another for more than six
years. During that time, we’ve seen an absolutely breathtaking rate of
change unlike any other development cycle that has ever existed. When
it came time for Google to dive in to the smartphone wars, the company
took its rapid-iteration, Web-style update cycle and applied it to an
operating system, and the result has been an onslaught of continual
improvement. Lately, Android has even been running on a previously
unheard of six-month development cycle, and that’s slower than it used
to be. For the first year of Android’s commercial existence, Google
was putting out a new version every two-and-a-half months.&lt;/p&gt;</description></item><item><title>Los tres monos sabios de WhatsApp</title><link>http://karpoke.ignaciocano.com/2014/06/15/los-tres-monos-sabios-de-whatsapp/</link><pubDate>Sun, 15 Jun 2014 09:18:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/06/15/los-tres-monos-sabios-de-whatsapp/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Abres WhatsApp cada diez minutos y, sin embargo, nunca has reparado en
la historia fascinante que esconden tres de sus emoticonos más
populares. Están en la categoría de smileys, justo debajo de la fila
de expresivos gatitos amarillos, flanqueados por la máscara del
lengendario Tengu nipón y una imponente calavera. A primera vista, son
solo tres simpáticos y expresivos monos que dan mucho juego en las
conversaciones, pero las apariencias engañan: detrás hay tradición,
misterio y un lejano mito oriental.&lt;/p&gt;</description></item><item><title>La primera hoja de cálculo para PCs cumple 35 años</title><link>http://karpoke.ignaciocano.com/2014/06/11/la-primera-hoja-de-calculo-para-pcs-cumple-35-anos/</link><pubDate>Wed, 11 Jun 2014 21:15:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/06/11/la-primera-hoja-de-calculo-para-pcs-cumple-35-anos/</guid><description>&lt;blockquote&gt;
&lt;p&gt;En la primavera de 1978 mientras que Dan Bricklin se sentaba en una de
las clases del Máster que se estaba sacando en la Escuela de
Empresariales de Harvard (Harvard Business School), se le ocurrió la
idea de plasmar de forma electrónica lo que el profesor estaba
haciendo en la pizarra. Éste, estaba dibujando una matriz con números
en ciertas celdas y operaciones aritméticas en ciertas otras. Es
decir, a Bricklin se le acababa de ocurrir la idea de crear una hoja
de cálculo electrónica.&lt;/p&gt;</description></item><item><title>We are rate limiting the FCC to dialup modem speeds until they pay us for bandwidth</title><link>http://karpoke.ignaciocano.com/2014/06/05/we-are-rate-limiting-the-fcc-to-dialup-modem-speeds-until-they-pay-us-for-bandwidth/</link><pubDate>Thu, 05 Jun 2014 09:34:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/06/05/we-are-rate-limiting-the-fcc-to-dialup-modem-speeds-until-they-pay-us-for-bandwidth/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Since the FCC seems to have no problem with this idea, I’ve (through
correspondence) gotten access to the FCC’s internal IP block, and
throttled all connections from the FCC to 28.8kbps modem speeds on the
Neocities.org front site, and I’m not removing it until the FCC pays
us for the bandwidth they’ve been wasting instead of doing their jobs
protecting us from the ”keep America’s internet slow and expensive
forever” lobby.&lt;/p&gt;</description></item><item><title>Configurar msmtp para enviar correo mediante GMail desde el terminal</title><link>http://karpoke.ignaciocano.com/2014/06/04/configurar-msmtp-para-enviar-correo-mediante-gmail-desde-el-terminal/</link><pubDate>Wed, 04 Jun 2014 23:13:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/06/04/configurar-msmtp-para-enviar-correo-mediante-gmail-desde-el-terminal/</guid><description>&lt;p&gt;Otra alternativa para enviar correos electrónicos desde el terminal sin
necesidad de tener instalado un servidor de correo. Su configuración es
incluso más sencilla que con &lt;a href="http://karpoke.ignaciocano.com/2012/01/14/configurar-ssmtp-para-enviar-correo-mediante-gmail-desde-el-terminal/"&gt;ssmtp&lt;/a&gt;. Si tenemos instalado &lt;code&gt;ssmtp&lt;/code&gt;
deberemos desinstalarlo para poder instalar &lt;code&gt;msmtp&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="instalamos-mstmp-mta"&gt;Instalamos &lt;code&gt;mstmp-mta&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Instalamos el paquete &lt;code&gt;msmtp-mta&lt;/code&gt; desde los repositorios y editamos el
fichero de configuración &lt;code&gt;~/.msmtprc&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;defaults
logfile ~/msmtp.log
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;account gmail
auth on
host smtp.gmail.com
from example@gmail.com
auth on
tls on
tls_trust_file /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt
user example@gmail.com
password secret
port 587
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;account default : gmail
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Le cambiamos los permisos:&lt;/p&gt;</description></item><item><title>ASCII Chart</title><link>http://karpoke.ignaciocano.com/2014/06/01/ascii-chart/</link><pubDate>Sun, 01 Jun 2014 22:42:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/06/01/ascii-chart/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The American Standard Code for Information Interchange (ASCII) was
developed under the auspices of a committee of the American Standards
Association, called the X3 committee, by its X3.2 (later X3L2)
subcommittee, and later by that subcommittee’s X3.2.4 working group.
The ASA became the United States of America Standards Institute or
USASI and ultimately the American National Standards Institute.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Charles Torvalds | &lt;a href="http://www.askapache.com/linux/ascii-codes-and-reference.html"&gt;askapache.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Obtener el listado de rangos de IPs asociados a un dominio</title><link>http://karpoke.ignaciocano.com/2014/06/01/obtener-el-listado-de-rangos-de-ips-asociados-a-un-dominio/</link><pubDate>Sun, 01 Jun 2014 12:57:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/06/01/obtener-el-listado-de-rangos-de-ips-asociados-a-un-dominio/</guid><description>&lt;p&gt;Si queremos obtener el listado de rangos de IPs que puedan estar
asociadas a un dominio, por ejemplo para bloquearlo, podemos ejecutar:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ IP=$(dig +short www.example.com | grep -Eo &amp;#39;([0-9]{1,3}\.?){4}&amp;#39; | head -1)
$ AS=$(whois $IP | awk &amp;#39;/OriginAS/{print $2}&amp;#39;)
$ test -n &amp;#34;$AS&amp;#34; &amp;amp;&amp;amp; whois -h whois.radb.net &amp;#39;!g&amp;#39;$AS | tr -d &amp;#34;\n&amp;#34; | tr &amp;#34; &amp;#34; &amp;#34;\n&amp;#34; | sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En la primera línea, obtenemos la IP asociada al dominio. En la segunda,
obtenemos el registro &lt;em&gt;origin&lt;/em&gt;, el cual utilizamos en la tercera línea
para consultar a whois.radb.net el rango de IPs y mostrar las IPs una
por línea.&lt;/p&gt;</description></item><item><title>The Forgotten History Of CGI</title><link>http://karpoke.ignaciocano.com/2014/05/31/the-forgotten-history-of-cgi/</link><pubDate>Sat, 31 May 2014 20:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/31/the-forgotten-history-of-cgi/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The roots of CGI lie in the first mechanical aids to drawing and
painting. The earliest of these were developed to help solve a problem
every artist has found to be sticky: perspective. Before the
introduction of geometric perspective, the realistic depiction of
nature was not one of the purposes of art. Instead, artists chose the
size and position of objects in a picture by their relative importance
to one another. A distant castle might appear to be larger than one in
the foreground simply because it was considered more important.&lt;/p&gt;</description></item><item><title>The Golden Age of Basic</title><link>http://karpoke.ignaciocano.com/2014/05/31/the-golden-age-of-basic/</link><pubDate>Sat, 31 May 2014 17:39:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/31/the-golden-age-of-basic/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I remember my first program, by which I mean one that I cobbled
together myself, not simply typing in a complete listing from the
manual. I was twelve, the year was 1985, and the computer a Texas
Instruments TI-99/4A (a machine which was actually the first 16-bit
home computer). My program was a very simple text adventure game,
created by chaining together as many IF¦ THEN GOTO statements as I had
patience for.&lt;/p&gt;</description></item><item><title>Programming Sucks</title><link>http://karpoke.ignaciocano.com/2014/05/31/programming-sucks/</link><pubDate>Sat, 31 May 2014 17:30:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/31/programming-sucks/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Every friend I have with a job that involves picking up something
heavier than a laptop more than twice a week eventually finds a way to
slip something like this into conversation: ”Bro,1 you don’t work
hard. I just worked a 4700-hour week digging a tunnel under Mordor
with a screwdriver.” They have a point. Mordor sucks, and it’s
certainly more physically taxing to dig a tunnel than poke at a
keyboard unless you’re an ant. But, for the sake of the argument, can
we agree that stress and insanity are bad things? Awesome. Welcome to
programming.&lt;/p&gt;</description></item><item><title>Enviar y reicibir notificaciones de Telegram desde la línea de comandos</title><link>http://karpoke.ignaciocano.com/2014/05/31/enviar-y-reicibir-notificaciones-de-telegram-desde-la-linea-de-comandos/</link><pubDate>Sat, 31 May 2014 13:27:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/31/enviar-y-reicibir-notificaciones-de-telegram-desde-la-linea-de-comandos/</guid><description>&lt;p&gt;Utilizando &lt;a href="http://github.com/vysheng/tg"&gt;tg&lt;/a&gt;, podemos enviar y recibir mensajes de nuestros
contactos en Telegram, incluyéndonos a nosotros mismos, desde el
terminal.&lt;/p&gt;
&lt;h2 id="envíos-programados"&gt;Envíos programados&lt;/h2&gt;
&lt;p&gt;Combinándolo con &lt;code&gt;expect&lt;/code&gt;, conseguiremos una forma sencilla de programar
notificaciones.&lt;/p&gt;
&lt;p&gt;He aquí un pequeño ejemplo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;#!/usr/bin/env bash
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;function tg {
# First argument, if any, must be the receiver
local to=&amp;#34;$1&amp;#34;
local msg=&amp;#34;&amp;#34;
local cmd=&amp;#34;&amp;#34;
if [ $# -gt 1 ]; then
shift 1
msg=&amp;#34;$@&amp;#34;
else
while read line; do
if [ -z &amp;#34;$msg&amp;#34; ]; then
msg=$line
else
msg=&amp;#34;$msg\n$line&amp;#34;
fi
done
if [ -z &amp;#34;$to&amp;#34; ]; then
to=$(awk &amp;#39;{print $1}&amp;#39; &amp;lt;&amp;lt;&amp;lt; $msg)
msg=$(awk &amp;#39;{$1=&amp;#34;&amp;#34;;print $0}&amp;#39; &amp;lt;&amp;lt;&amp;lt; $msg)
fi
fi
if [[ $msg =~ &amp;#34;\n&amp;#34; ]]; then
file=$(mktemp)
echo -e &amp;#34;$msg&amp;#34; &amp;gt; $file
cmd=&amp;#34;send_text $to $file&amp;#34;
else
cmd=&amp;#34;msg $to $msg&amp;#34;
fi
#echo $cmd
expect -c &amp;#34;
log_user 0
match_max 100000
spawn /path/to/telegram -k /path/to/tg-server.pub
expect \&amp;#34;User \&amp;#34;
send -- \&amp;#34;$cmd\r\&amp;#34;
expect \&amp;#34;Sent\&amp;#34;
send \&amp;#34;quit\&amp;#34;
&amp;#34;
}
tg $@
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Algunos ejemplos de uso:&lt;/p&gt;</description></item><item><title>Programming is social</title><link>http://karpoke.ignaciocano.com/2014/05/31/programming-is-social/</link><pubDate>Sat, 31 May 2014 13:20:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/31/programming-is-social/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Programming is social, too. Most people think it’s not. With
assistance from media portrayals of programmers and sloppy stereotypes
of our own, they think most of us would prefer to work alone in the
dark. Some do, of course, but even then most programmers I know like
to talk shop with other programmers all the time. They like to talk
about the places where they are stuck, as well as the places they used
to be stuck. War stories are the currency of the programmer community.&lt;/p&gt;</description></item><item><title>Unsafe cookies leave WordPress accounts open to hijacking, 2-factor bypass</title><link>http://karpoke.ignaciocano.com/2014/05/26/unsafe-cookies-leave-wordpress-accounts-open-to-hijacking-2-factor-bypass/</link><pubDate>Mon, 26 May 2014 21:50:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/26/unsafe-cookies-leave-wordpress-accounts-open-to-hijacking-2-factor-bypass/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Yan Zhu, a staff technologist at the Electronic Frontier Foundation,
came to that determination after noticing that WordPress servers send
a key browser cookie in plain text, rather than encrypting it, as long
mandated by widely accepted security practices. The cookie, which
carries the tag ”wordpress_logged_in,” is set once an end user has
entered a valid WordPress user name and password. It’s the website
equivalent of a plastic bracelets used by nightclubs. Once a browser
presents the cookie, WordPress servers will usher the user behind a
velvet rope to highly privileged sections that reveal private
messages, update some user settings, publish blog posts, and more. The
move by WordPress engineers to allow the cookie to be transmitted
unencrypted makes them susceptible to interception in many cases.&lt;/p&gt;</description></item><item><title>netcat - Cycles Per Instruction</title><link>http://karpoke.ignaciocano.com/2014/05/25/netcat-cycles-per-instruction/</link><pubDate>Sun, 25 May 2014 11:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/25/netcat-cycles-per-instruction/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Welcome to the most unnecessarily complicated netcat album release
format yet. In this repository, you will be able to compile your own
kernel module, create a /dev/netcat device and redirect its output
into an audio player (tested with mplayer and play from SoX as well).&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; ogg123 - &amp;lt; /dev/netcat
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;;&amp;rsquo; Brandon Lucia, Andrew Olmstead, and David Balatero &lt;a href="https://github.com/usrbinnc/netcat-cpi-kernel-module"&gt;github.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Exploring limits of covert data collection on Android: apps can take photos with your phone without you knowing</title><link>http://karpoke.ignaciocano.com/2014/05/25/exploring-limits-of-covert-data-collection-on-android-apps-can-take-photos-with-your-phone-without-you-knowing/</link><pubDate>Sun, 25 May 2014 09:42:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/25/exploring-limits-of-covert-data-collection-on-android-apps-can-take-photos-with-your-phone-without-you-knowing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Android apps can take photos with your phone in background phones
without displaying any notification and you won’t see the app on the
list of installed applications. App can send the photos over the
internet to their private server. You can also find video with demo in
this post.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Szymon Sidor | &lt;a href="http://snacksforyourmind.blogspot.co.uk/2014/05/exploring-limits-of-covert-data.html"&gt;snacksforyourmind.blogspot.co.uk&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Bash implementation of 2048 game</title><link>http://karpoke.ignaciocano.com/2014/05/24/bash-implementation-of-2048-game/</link><pubDate>Sat, 24 May 2014 17:43:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/24/bash-implementation-of-2048-game/</guid><description>&lt;pre tabindex="0"&gt;&lt;code&gt;Bash 2048 v1.1 (https://github.com/mydzor/bash2048) pieces=16 target=2048 score=2884
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;/------|------|------|------\
| 4 | 2 | 8 | 4 |
|------|------|------|------|
| 2 | 16 | 256 | 32 |
|------|------|------|------|
| 16 | 32 | 16 | 2 |
|------|------|------|------|
| 2 | 8 | 128 | 4 |
\------|------|------|------/
GAME OVER
Your score: 2884
You have lost, better luck next time.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;;&amp;rsquo; mydzor &lt;a href="https://github.com/mydzor/bash2048"&gt;github.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Aunque parezca mentira, siguen existiendo BBS</title><link>http://karpoke.ignaciocano.com/2014/05/24/aunque-parezca-mentira-siguen-existiendo-bbs/</link><pubDate>Sat, 24 May 2014 16:42:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/24/aunque-parezca-mentira-siguen-existiendo-bbs/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Belky es el ”sysop” (administrador) de VampireBBS. Anda estos días muy
contento porque ha puesto de nuevo en marcha su vieja BBS. 32 personas
accedieron al sistema nada más inaugurarlo, lo que en este
prehistórico mundo es un éxito. Las BBS fueron, en la década de los 80
y 90, la Internet de la gente de la calle, la red a la medida humana,
precursoras de todo lo que vendría después y centros de aprendizaje
para muchos programadores, administradores y, en general, hackers. Hoy
quedan muy pocas en pie, sólo tres en España, pero están decididas a
no morir.&lt;/p&gt;</description></item><item><title>SSD breakthrough means 300% speed boost, 60% less power usage... even on old drives</title><link>http://karpoke.ignaciocano.com/2014/05/24/ssd-breakthrough-means-300-speed-boost-60-less-power-usage-even-on-old-drives/</link><pubDate>Sat, 24 May 2014 16:08:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/24/ssd-breakthrough-means-300-speed-boost-60-less-power-usage-even-on-old-drives/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A breakthrough has been made in SSD technology that could mean drastic
performance increases due to the overcoming of one of the major issues in the
memory type. Currently, data cannot be directly overwritten onto the NAND
chips used in the devices. Files must be written to a clean area of the drive
whilst the old area is formatted. This eventually causes fragmented data and
lowers the drive’s life and performance over time.&lt;/p&gt;</description></item><item><title>TRS Drawbot</title><link>http://karpoke.ignaciocano.com/2014/05/24/trs-drawbot/</link><pubDate>Sat, 24 May 2014 15:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/24/trs-drawbot/</guid><description>&lt;blockquote&gt;
&lt;p&gt;On a standard headphone plug, the left channel comes through the outer
”tip” contact, the right channel through the middle ”ring” contact,
and the ground connection through the inner ”sleeve” contact. The
acronym for these so-called ”tip-ring-sleeve” connectors is where TRS
Drawbot gets its name. It has no microchips or circuit boards and uses
free software to turn line graphics into sound files that make almost
any audio device into an on-the-go robot controller.&lt;/p&gt;</description></item><item><title>Why Java is a compiled language and Python is not</title><link>http://karpoke.ignaciocano.com/2014/05/24/why-java-is-a-compiled-language-and-python-is-not/</link><pubDate>Sat, 24 May 2014 07:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/24/why-java-is-a-compiled-language-and-python-is-not/</guid><description>&lt;blockquote&gt;
&lt;p&gt;One comment’s answer was ’marketing’, which in a sense is correct; one
reason we call Java a compiled language is that that’s what Sun called
it from the start. Another comment noted that Java has an explicit
compilation phase that is separate from having the JVM execute your
Java program by interpreting the bytecodes. All of this points us
towards what I feel is the real answer:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In Java, bytecode is a first class object. In Python it’s an
internal implementation detail.&lt;/p&gt;</description></item><item><title>Script-injected ”async scripts” considered harmful</title><link>http://karpoke.ignaciocano.com/2014/05/23/script-injected-async-scripts-considered-harmful/</link><pubDate>Fri, 23 May 2014 21:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/23/script-injected-async-scripts-considered-harmful/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The inline JavaScript solution has a subtle, but very important (and
an often overlooked) performance gotcha: inline scripts block on CSSOM
before they are executed. Why? The browser does not know what the
inline block is planning to do in the script it is about to execute,
and because JavaScript can access and manipulate the CSSOM, it blocks
and waits until the CSS is downloaded, parsed, and the CSSOM is
constructed and available.&lt;/p&gt;</description></item><item><title>Crear un repositorio espejo de Ubuntu</title><link>http://karpoke.ignaciocano.com/2014/05/18/crear-un-repositorio-espejo-de-ubuntu/</link><pubDate>Sun, 18 May 2014 21:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/18/crear-un-repositorio-espejo-de-ubuntu/</guid><description>&lt;p&gt;Si tenemos un gran número de equipos con Ubuntu en nuestra LAN, nos
puede interesar tener un espejo local del repositorio de paquetes de
Ubuntu. Una diferencia entre esta opción y &lt;a href="http://karpoke.ignaciocano.com/2014/05/17/cache-de-paquetes-descargados-en-ubuntu-trusty-tahr/"&gt;utilizar un &lt;em&gt;proxy/caché&lt;/em&gt; de
paquetes&lt;/a&gt; es que, en el primer caso, ya tendremos todos los paquetes
disponibles cuando los vayamos a necesitar.&lt;/p&gt;
&lt;h2 id="clonar-el-repositorio-en-local"&gt;Clonar el repositorio en local&lt;/h2&gt;
&lt;p&gt;Para crear un repositorio local, podemos usar el comando &lt;code&gt;apt-mirror&lt;/code&gt;,
disponible en los repositorios. Una vez instalado, podemos editar el
fichero de configuración en &lt;code&gt;/etc/apt/mirror.list&lt;/code&gt; para, por ejemplo,
cambiar el directorio donde se guardarán los paquetes (por defecto
&lt;code&gt;/var/spool/apt-mirror&lt;/code&gt;), añadir o eliminar fuentes a incluir en el
repositorio, etc. Con las fuentes por defecto, hay que tener en cuenta
que serán necesarios más de 100 GB para alojar el repositorio. Si
optásemos sólo por incluir el &amp;ldquo;main&amp;rdquo;, se queda en 10 GB.&lt;/p&gt;</description></item><item><title>Caché de paquetes descargados en Ubuntu Trusty Tahr</title><link>http://karpoke.ignaciocano.com/2014/05/17/cache-de-paquetes-descargados-en-ubuntu-trusty-tahr/</link><pubDate>Sat, 17 May 2014 01:30:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/17/cache-de-paquetes-descargados-en-ubuntu-trusty-tahr/</guid><description>&lt;p&gt;Si tenemos una LAN con varios equipos, podemos utilizar &lt;code&gt;apt-cacher-ng&lt;/code&gt;
para no tener que descargar las actualizaciones desde los repostiorios
en cada uno de ellos, ya que nos permite reutilizar los paquetes que
hayamos descargado. Otras opciones, como AptProxy parece que han quedado
algo obsoletas.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;apt-cacher-ng&lt;/code&gt; es un &lt;em&gt;proxy/caché&lt;/em&gt; enfocado a gestores de paquetes, que
soporta las distribuciones Debian y Ubuntu, entre otras. Es una buena
alternativa a montar un espejo para pequeñas LANs.&lt;/p&gt;</description></item><item><title>Exclusión de URLs cuando usamos django-debug-toolbar</title><link>http://karpoke.ignaciocano.com/2014/05/15/exclusion-de-urls-cuando-usamos-django-debug-toolbar/</link><pubDate>Thu, 15 May 2014 20:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/15/exclusion-de-urls-cuando-usamos-django-debug-toolbar/</guid><description>&lt;p&gt;&lt;a href="http://github.com/django-debug-toolbar/django-debug-toolbar"&gt;django-debug-toolbar&lt;/a&gt; es una aplicación para Django que nos muestra
información de depuración acerca de las diferentes peticiones y
respuestas que se llevan a cabo en el servidor: variables de contexto,
cabeceras, peticiones SQL, etc.&lt;/p&gt;
&lt;p&gt;Sin embargo, hay algunas URLs para las cuales nos puede interesar que no
se analicen, como por ejemplo, peticiones que se hagan por Ajax o URLs
relativas a diversas aplicaciones instaladas, como el panel de
administración, Rosetta, etc.&lt;/p&gt;</description></item><item><title>Crear paquetes .deb con checkinstall</title><link>http://karpoke.ignaciocano.com/2014/05/10/crear-paquetes-deb-con-checkinstall/</link><pubDate>Sat, 10 May 2014 18:40:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/05/10/crear-paquetes-deb-con-checkinstall/</guid><description>&lt;p&gt;Una forma sencilla de crear un paquete .deb a partir del código fuente
es mediante la utilidad &lt;code&gt;checkinstall&lt;/code&gt;, disponible en los respositorios.&lt;/p&gt;
&lt;p&gt;Para aquellos casos en los que la compilación del código y la
instalación sigue los conocidos comandos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ ./configure
$ make
$ sudo make install
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Bastará sustituir el último paso por:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo checkinstall
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Como ejemplo, podemos crear un .deb a partir del código fuente de
&lt;a href="https://download.libsodium.org/libsodium/releases/"&gt;libsodium&lt;/a&gt;, una librería necesaria para compilar dnscrypt.&lt;/p&gt;</description></item><item><title>Reverse Engineering a Furby</title><link>http://karpoke.ignaciocano.com/2014/01/18/reverse-engineering-a-furby/</link><pubDate>Sat, 18 Jan 2014 15:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/01/18/reverse-engineering-a-furby/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This past semester I’ve been working on a directed study at my university
with Prof. Wil Robertson reverse engineering embedded devices. After a couple
of months looking at a passport scanner, one of my friends jokingly suggested
I hack a Furby, the notoriously annoying toy of late 1990s fame. Everyone
laughed, and we all moved on with our lives.&lt;/p&gt;
&lt;p&gt;However, the joke didn’t stop there. Within two weeks, this same friend said
they had a present for me. And that’s how I started reverse engineering a
Furby.&lt;/p&gt;</description></item><item><title>xkcd 1313: Something is Wrong on the Internet!</title><link>http://karpoke.ignaciocano.com/2014/01/07/xkcd-1313-something-is-wrong-on-the-internet/</link><pubDate>Tue, 07 Jan 2014 01:41:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/01/07/xkcd-1313-something-is-wrong-on-the-internet/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I found that the rollover text,
“&lt;code&gt;/bu|[rn]t|[coy]e|[mtg]a|j|iso|n[hl]|[ae]d|lev|sh|[lnd]i|[po]o|ls/&lt;/code&gt; matches
the last names of elected US presidents but not their opponents.”, is
obviously false. After all there are several last names (like “Nixon” and
“Bush”) that denote both elected presidents and opponents. So no regular
expression could both match and not match “Nixon”.&lt;/p&gt;
&lt;p&gt;So that got me thinking: if we ignore names that are both winners and losers,
what regular expression does cover the winners and not the losers? And let’s
try to find a short one, although perhaps not the very shortest.&lt;/p&gt;</description></item><item><title>Un ejército de ’frikis’ contra Telefónica</title><link>http://karpoke.ignaciocano.com/2014/01/07/un-ejercito-de-frikis-contra-telefonica/</link><pubDate>Tue, 07 Jan 2014 01:19:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2014/01/07/un-ejercito-de-frikis-contra-telefonica/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Hubo un tiempo en que sólo había un camino para surcar las redes: la
Compañía Telefónica Nacional de España. Y una sola pensamiento profundo de los
hackers: engañarla para surcar estas redes sin pagar nada. Entonces
cogió gran importancia una especialidad, dentro de las artes del
hacking, llamada ’phreaking’ (&lt;a href="http://hackstory.net/phreaking)"&gt;http://hackstory.net/phreaking)&lt;/a&gt;,
contracción de ’phone’ (teléfono) y ’freak’ (monstruo). Los
’phreakers’ tienen gran conocimiento de las líneas telefónicas y
saben, entre otras cosas, como usarlas para llamar gratis. En los años
80 y 90 no había grupo de hackers que no contase entre sus filas con
uno o más buenos ’phreakers’.&lt;/p&gt;</description></item><item><title>fix ubuntu</title><link>http://karpoke.ignaciocano.com/2013/12/15/fix-ubuntu/</link><pubDate>Sun, 15 Dec 2013 20:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/12/15/fix-ubuntu/</guid><description>&lt;blockquote&gt;
&lt;p&gt;If you’re an Ubuntu user and you’re using the default settings, each
time you start typing in Dash (to open an application or search for a
file on your computer), your search terms get sent to a variety of
third parties, some of which advertise to you.&lt;/p&gt;
&lt;p&gt;Ubuntu should protect user privacy by default. Since it doesn’t, you
can use the code to the left to disable the parts of Ubuntu which are
invasive to your privacy.&lt;/p&gt;</description></item><item><title>Álbum para celebrar los 30 años de la FAMICOM/NES</title><link>http://karpoke.ignaciocano.com/2013/12/15/album-para-celebrar-los-30-anos-de-la-famicomnes/</link><pubDate>Sun, 15 Dec 2013 15:27:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/12/15/album-para-celebrar-los-30-anos-de-la-famicomnes/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A finales de 1983 la compañía Nintendo sacó al mercado la consola
FAMICOM en Japón, a los pocos años se comercializó también por Europa
y América bajo el nombre de NES. Para celebrar sus treinta años de
existencia algunos entusiastas han decidido no quedarse de brazos
cruzados y le han hecho un merecido homenaje, usándola para componer
un CD de música que se distribuye de manera gratuita bajo licencia
Creative Commons.&lt;/p&gt;</description></item><item><title>Este es el hombre que terminará por destruir Silicon Valley</title><link>http://karpoke.ignaciocano.com/2013/11/18/este-es-el-hombre-que-terminara-por-destruir-silicon-valley/</link><pubDate>Mon, 18 Nov 2013 20:41:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/11/18/este-es-el-hombre-que-terminara-por-destruir-silicon-valley/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El cumplimiento de la ecuación de Moore ha sido posible hasta la fecha
gracias a la reducción constante del tamaño y el precio de los chips,
unido al aumento de su potencia de cálculo. Sin embargo, los límites
de la física están comenzando a imponerse sobre los pronósticos de
Moore.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» David Pérez | &lt;a href="http://www.elconfidencial.com/tecnologia/2013-11-16/este-es-el-hombre-que-terminara-por-destruir-silicon-valley_55203/"&gt;elconfidencial.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Descansad en paz, hackers.</title><link>http://karpoke.ignaciocano.com/2013/11/17/descansad-en-paz-hackers/</link><pubDate>Sun, 17 Nov 2013 13:55:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/11/17/descansad-en-paz-hackers/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Llevamos unos días en los que nos hemos enterado vía twitter de
grandes pérdidas para la comunidad de seguridad informática a nivel
mundial. Los más recientes, y en muy poco espacio de tiempo, Cédric
Blancher y Péter Sz¶r (este último, hace un par de días, el 12 de
Noviembre).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» José A. Guasch | &lt;a href="http://www.securitybydefault.com/2013/11/descansad-en-paz-hackers.html"&gt;securitybydefault.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Command-line Forensics of hacked PHP.net</title><link>http://karpoke.ignaciocano.com/2013/11/05/command-line-forensics-of-hacked-php-net/</link><pubDate>Tue, 05 Nov 2013 12:55:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/11/05/command-line-forensics-of-hacked-php-net/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The good people from Barracuda Labs were kind enough to share a PCAP
file from the PHP.net compromize on their blog.&lt;/p&gt;
&lt;p&gt;I decided to have a closer look at that PCAP file to see what can be
extracted from it. Since the PCAP contains Windows malware I played
safe and did all the analysis on a Linux machine with no Internet
connectivity.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Erik Hjelmvik | &lt;a href="http://www.netresec.com/?page=Blog&amp;amp;month=2013-10&amp;amp;post=Command-line-Forensics-of-hacked-PHP-net"&gt;netresec.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Make a Raspberry Pi into a Anonymizing Tor Proxy!</title><link>http://karpoke.ignaciocano.com/2013/11/04/make-a-raspberry-pi-into-a-anonymizing-tor-proxy/</link><pubDate>Mon, 04 Nov 2013 12:30:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/11/04/make-a-raspberry-pi-into-a-anonymizing-tor-proxy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Feel like someone is snooping on you? Browse anonymously anywhere you
go with the Onion Pi Tor proxy. This is fun weekend project that uses
a Raspberry Pi, a USB WiFi adapter and Ethernet cable to create a
small, low-power and portable privacy Pi.&lt;/p&gt;
&lt;p&gt;Using it is easy-as-pie. First, plug the Ethernet cable into any
Internet provider in your home, work, hotel or conference/event. Next,
power up the Pi with the micro USB cable to your laptop or to the wall
adapter. The Pi will boot up and create a new secure wireless access
point called Onion Pi. Connecting to that access point will
automatically route any web browsing from your computer through the
anonymizing Tor network.&lt;/p&gt;</description></item><item><title>FreeNAS</title><link>http://karpoke.ignaciocano.com/2013/11/03/freenas/</link><pubDate>Sun, 03 Nov 2013 13:35:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/11/03/freenas/</guid><description>&lt;blockquote&gt;
&lt;p&gt;FreeNAS es un sistema operativo basado en FreeBSD pero orientado a
servicios de almacenamiento en red. NAS corresponde a las siglas de
”almacenamiento conectado en red”.&lt;/p&gt;
&lt;p&gt;FreeNAS y su fork Nas4Free son gratuitos, Nas4Free es open-source
basado en licencia BSD. Estos sistemas operativos permiten crear un
servidor doméstico muy potente con multitud de opciones de
configuración como por ejemplo administración de decenas de usuarios
con los permisos adecuados, crear unidades RAID para hacer copias de
seguridad redundantes o aumentar el rendimiento del sistema.&lt;/p&gt;</description></item><item><title>25 años del gusano de Morris</title><link>http://karpoke.ignaciocano.com/2013/11/02/25-anos-del-gusano-de-morris/</link><pubDate>Sat, 02 Nov 2013 13:00:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/11/02/25-anos-del-gusano-de-morris/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El bicho explotaba vulnerabilidades en distintos servicios, como un
fallo en el modo debug de sendmail, un buffer overflow en fingerd y
una incorrecta configuración del rsh/rexec que permitía saltar entre
equipos sin validación. Además de los clásicos usuarios y contraseñas
débiles.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Alejandro Ramos | &lt;a href="http://www.securitybydefault.com/2013/11/25-anos-del-gusano-morris.html"&gt;securitybydefault.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>sshuttle, la VPN de los pobres</title><link>http://karpoke.ignaciocano.com/2013/10/20/sshuttle-la-vpn-de-los-pobres/</link><pubDate>Sun, 20 Oct 2013 21:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/10/20/sshuttle-la-vpn-de-los-pobres/</guid><description>&lt;p&gt;&lt;a href="https://github.com/apenwarr/sshuttle"&gt;shuttle&lt;/a&gt; es una herramienta que nos permite redirigir todo el tráfico
a través de una conexión SSH, incluyendo las peticiones DNS. Está
disponible tanto en los repositorios como en GitHub.&lt;/p&gt;
&lt;p&gt;Su uso es sencillo. Para establecer la conexión:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sshuttle --D --pidfile=/tmp/sshuttle.pid -r user@server:1234 --dns 0/0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Para terminarla:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ kill $(cat /tmp/sshuttle.pid)
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>The 30 CSS Selectors you Must Memorize</title><link>http://karpoke.ignaciocano.com/2013/10/13/the-30-css-selectors-you-must-memorize/</link><pubDate>Sun, 13 Oct 2013 11:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/10/13/the-30-css-selectors-you-must-memorize/</guid><description>&lt;blockquote&gt;
&lt;p&gt;So you learned the base id, class, and descendant selectors – and then
called it a day? If so, you’re missing out on an enormous level of
flexibility. While many of the selectors mentioned in this article are
part of the CSS3 spec, and are, consequently, only available in modern
browsers, you owe it to yourself to commit these to memory.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Jeffrey Way | &lt;a href="http://net.tutsplus.com/tutorials/html-css-techniques/the-30-css-selectors-you-must-memorize/"&gt;tutsplus.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Solucionado el error «DistributionNotFound» al usar pip</title><link>http://karpoke.ignaciocano.com/2013/07/28/solucionado-el-error-distributionnotfound-al-usar-pip/</link><pubDate>Sun, 28 Jul 2013 13:52:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/07/28/solucionado-el-error-distributionnotfound-al-usar-pip/</guid><description>&lt;p&gt;Si al ejecutar &lt;code&gt;pip&lt;/code&gt;, nos aparece el siguiente error:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ pip
Traceback (most recent call last):
File &amp;#34;/usr/local/bin/pip&amp;#34;, line 5, in
from pkg_resources import load_entry_point
File &amp;#34;/usr/lib/python2.7/dist-packages/pkg_resources.py&amp;#34;, line 2707, in
working_set.require(__requires__)
File &amp;#34;/usr/lib/python2.7/dist-packages/pkg_resources.py&amp;#34;, line 686, in require
needed = self.resolve(parse_requirements(requirements))
File &amp;#34;/usr/lib/python2.7/dist-packages/pkg_resources.py&amp;#34;, line 584, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pip==1.1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;puede ser debido a que es necesario actualizar el propio &lt;code&gt;pip&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo easy_install --upgrade pip
Searching for pip
Reading http://pypi.python.org/simple/pip/
Best match: pip 1.4
Downloading https://pypi.python.org/packages/source/p/pip/pip-1.4.tar.gz#md5=ca790be30004937987767eac42cfa44a
Processing pip-1.4.tar.gz
Running pip-1.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-XSmFvr/pip-1.4/egg-dist-tmp-jmeGZW
warning: no files found matching &amp;#39;*.html&amp;#39; under directory &amp;#39;docs&amp;#39;
warning: no previously-included files matching &amp;#39;*.rst&amp;#39; found under directory &amp;#39;docs/_build&amp;#39;
no previously-included directories found matching &amp;#39;docs/_build/_sources&amp;#39;
Adding pip 1.4 to easy-install.pth file
Installing pip script to /usr/local/bin
Installing pip-2.7 script to /usr/local/bin
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Installed /usr/local/lib/python2.7/dist-packages/pip-1.4-py2.7.egg
Processing dependencies for pip
Finished processing dependencies for pip
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Comprobamos que se ha solucionado:&lt;/p&gt;</description></item><item><title>Utilizando un tema hijo en WordPress</title><link>http://karpoke.ignaciocano.com/2013/07/13/utilizando-un-tema-hijo-en-wordpress/</link><pubDate>Sat, 13 Jul 2013 19:04:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/07/13/utilizando-un-tema-hijo-en-wordpress/</guid><description>&lt;p&gt;Un &lt;a href="http://codex.wordpress.org/Child_Themes"&gt;tema hijo en WordPress&lt;/a&gt; es un tema que hereda la funcionalidad de
otro, el tema padre, permitiendo modificar el estilo o añadir
funcionalidades a éste. Es la forma más sencilla y segura de modificar
un tema existente, ya sean cambios grandes o pequeños. Si utilizamos un
tema de otros, ya sea gratuito o de pago, crear un tema hijo es una
buena idea.&lt;/p&gt;
&lt;h2 id="por-qué-crear-un-tema-hijo"&gt;¿Por qué crear un tema hijo?&lt;/h2&gt;
&lt;p&gt;Porqué en algún momento cambiaremos algo del tema que estamos usando, y
en algún momento posterior es posible que haya una actualización de
dicho tema. En el mejor de los casos, nos deberemos preocupar de guardar
los cambios que hemos hecho en el tema y aplicarlos de nuevo tras la
actualización. En el peor, perderemos los cambios que hemos hecho.&lt;/p&gt;</description></item><item><title>10 Colossal Old Computers That Changed History</title><link>http://karpoke.ignaciocano.com/2013/07/07/10-colossal-old-computers-that-changed-history/</link><pubDate>Sun, 07 Jul 2013 20:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/07/07/10-colossal-old-computers-that-changed-history/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Computers have come a long way since the early days, when two of the
machines could take over a four-story building and weigh up to 250
tons. As early as the 1930s, inventors, engineers and physicists were
figuring out ways to use machines to perform complex calculations and
processes, employing pioneering methods to achieve their goals.
Although some of those techniques and devices are now blissfully
obsolete, many early innovators hit upon technologies that are still
in use today. These 10 colossal old computers are a testament to the
alluring potential of computing and the ingenuity of early computer
scientists – as well as a visual demonstration of just how far we’ve
come.&lt;/p&gt;</description></item><item><title>Uncovering android master key that makes 99% of devices vulnerable</title><link>http://karpoke.ignaciocano.com/2013/07/06/uncovering-android-master-key-that-makes-99-of-devices-vulnerable/</link><pubDate>Sat, 06 Jul 2013 13:24:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/07/06/uncovering-android-master-key-that-makes-99-of-devices-vulnerable/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The Bluebox Security research team – Bluebox Labs – recently
discovered a vulnerability in Android’s security model that allows a
hacker to modify APK code without breaking an application’s
cryptographic signature, to turn any legitimate application into a
malicious Trojan, completely unnoticed by the app store, the phone, or
the end user. The implications are huge! This vulnerability, around at
least since the release of Android 1.6 (codename: ”Donut” ), could
affect any Android phone released in the last 4 years1 – or nearly 900
million devices2– and depending on the type of application, a hacker
can exploit the vulnerability for anything from data theft to creation
of a mobile botnet.&lt;/p&gt;</description></item><item><title>La edad de Oro de los videojuegos</title><link>http://karpoke.ignaciocano.com/2013/06/30/la-edad-de-oro-de-los-videojuegos/</link><pubDate>Sun, 30 Jun 2013 23:46:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/30/la-edad-de-oro-de-los-videojuegos/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La edad de oro de los videojuegos en España (1985 - 1991). EL número
de Ordenadores de 8 bits en nuestro país era el suficiente como para
crear una industria del videojuego. Jóvenes emprendedores crearían una
industria lúdica, basada en el videojuego, que sorprendería en todo el
mundo. Esta es la historia de esos programadores, compañías y entorno
que nos embelesó en los inicios de la informática.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/OQb0OCux5V4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» Litos NET | &lt;a href="https://www.youtube.com/watch?v=OQb0OCux5V4"&gt;youtube.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Todo el mundo debería saber programar</title><link>http://karpoke.ignaciocano.com/2013/06/29/todo-el-mundo-deberia-saber-programar/</link><pubDate>Sat, 29 Jun 2013 11:01:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/29/todo-el-mundo-deberia-saber-programar/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/8lp20JFiB4s?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» &lt;a href="http://www.code.org/"&gt;code.org&lt;/a&gt; | Via Friki Cabrón &lt;a href="https://www.youtube.com/watch?v=8lp20JFiB4s"&gt;youtube.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Así vuela un avión, y ojalá que por fin se aclare el tema de una vez por todas</title><link>http://karpoke.ignaciocano.com/2013/06/16/asi-vuela-un-avion-y-ojala-que-por-fin-se-aclare-el-tema-de-una-vez-por-todas/</link><pubDate>Sun, 16 Jun 2013 23:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/16/asi-vuela-un-avion-y-ojala-que-por-fin-se-aclare-el-tema-de-una-vez-por-todas/</guid><description>&lt;blockquote&gt;
&lt;p&gt;”¿Cómo es posible que este montón de metal pueda sustentarse en el
aire?” Esa pregunta nos la hemos hecho muchas veces, y aun hoy el
ciudadano medio tiende a aceptarlo como artículo de fe. Hay muchas
explicaciones en Internet, pero algunas son confusas, otras están
equivocadas y otras más nos dejan como estábamos; y reitero lo que ya
he dicho en Twitter, ”Brujería” no vale.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Arturo Quirantes | &lt;a href="http://naukas.com/2013/05/20/asi-vuela-un-avion-y-ojala-que-por-fin-se-aclare-el-tema-de-una-vez-por-todas/"&gt;naukas.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Ethernet cumple 40 años: Bob Metcalfe</title><link>http://karpoke.ignaciocano.com/2013/06/16/ethernet-cumple-40-anos-bob-metcalfe/</link><pubDate>Sun, 16 Jun 2013 23:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/16/ethernet-cumple-40-anos-bob-metcalfe/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Éranse una vez los años 70, y un lugar denominado Centro de
Investigación de Xerox en Palo Alto, California (Xeros PARC) donde se
trabajaba en lo que sería la oficina del futuro. Dentro de ese
proyecto existían unos ordenadores con capacidades gráficas y ratón
que se llamaban ’Alto’ y, a pesar de lo temprano de los tiempos -en
términos bit-, también se fabricaban allí las primeras impresoras
láser. Tanto los ’Alto’ como las ’printers’ requerían interconexión;
ya que aquellos primitivos ordenadores personales –aquellos primeros
PCs que por robo intelectual o caprichos del destino pasaron por las
nada inocentes manos de Steve Jobs y dieron origen a Apple- debían
mandar los archivos para imprimir a las laser, pero también entenderse
entre sí. La misión de intercomunicarlos y conseguir que los datos de
unas máquinas pasaran a otras; es decir la misión de construir las
primeras redes locales, se encomendó a un joven ingeniero de 27 años,
especialista en comunicaciones, que se había graduado poco antes en el
MIT (Instituto de Tecnología de Masachussets). Su nombre: Robert
Metcalfe.&lt;/p&gt;</description></item><item><title>Gestión de RAID a través de MDADM</title><link>http://karpoke.ignaciocano.com/2013/06/16/gestion-de-raid-a-traves-de-mdadm/</link><pubDate>Sun, 16 Jun 2013 23:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/16/gestion-de-raid-a-traves-de-mdadm/</guid><description>&lt;blockquote&gt;
&lt;p&gt;MDADM (Multiple Device Administrator) es un conjunto de herramientas
que son utilizadas en GNU/Linux para la gestión de RAID (Redundant
Array of Independent Disks, que se traduce como conjunto redundante de
discos independientes) administrado a través de software, distribuido
bajo los términos de la Licencia Pública General de GNU versión 2
(GNU/GPLv2).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Joel Barrios Dueñas | &lt;a href="http://www.alcancelibre.org/staticpages/index.php/como-mdadm"&gt;alcancelibre.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Prince of persia code review</title><link>http://karpoke.ignaciocano.com/2013/06/15/prince-of-persia-code-review/</link><pubDate>Sat, 15 Jun 2013 23:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/15/prince-of-persia-code-review/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Even though it is the Apple II version written in 6502 assembly
language, it was a pleasant experience to dive in the code of that
mythical game: As usual there were many fascinating sofware wizardries
to discover.&lt;/p&gt;
&lt;p&gt;The Apple II apparent poor environment for game programming was
actually ground to unmatched innovation and creativity : From
self-modifying code, in-house bootloader, clever floppy disc format to
skewing lookup tables: Prince Of Persia features engineering treasures
in every modules.&lt;/p&gt;</description></item><item><title>BIOS Based Rootkits</title><link>http://karpoke.ignaciocano.com/2013/06/14/bios-based-rootkits/</link><pubDate>Fri, 14 Jun 2013 23:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/14/bios-based-rootkits/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Everything described here is based on a project I completed in early
2011, which was originally started several years earlier. While
attending CanSecWest in 2009, Anibal Sacco and Alfredo Ortega from
Core Security did a presentation on ’Persistent BIOS Infection’ where
they demonstrated how it was possible to patch the BIOS to do some
nasty/awesome things. Their Phrack write-up is here:
&lt;a href="http://www.phrack.com/issues.html?issue=66&amp;amp;id=7"&gt;http://www.phrack.com/issues.html?issue=66&amp;amp;id=7&lt;/a&gt;. At the time this
seemed really cool, but I never ended up getting the chance to try it
out. A year later I needed to do a term project for school, so I
decided to revisit BIOS hacking, and implement some of it myself.&lt;/p&gt;</description></item><item><title>Iniciar sesión en DynDNS desde el terminal</title><link>http://karpoke.ignaciocano.com/2013/06/10/iniciar-sesion-en-dyndns-desde-el-terminal/</link><pubDate>Mon, 10 Jun 2013 01:00:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/10/iniciar-sesion-en-dyndns-desde-el-terminal/</guid><description>&lt;p&gt;Hace un par de semanas, DynDNS cambió su política de uso de las cuentas
gratuitas para incluir una cláusula por la cual es necesario hacer
mínimo un login al mes si no se quieren perder los dominios que
tengamos:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Starting now, if you would like to maintain your free Dyn account, you
must log into your account once a month. Failure to do so will result
in expiration and loss of your hostname. This activity helps us
eliminate hostnames that are no longer needed and/or dormant. Note
that an update client will not suffice for this monthly login.&lt;/p&gt;</description></item><item><title>The most sophisticated Android Trojan</title><link>http://karpoke.ignaciocano.com/2013/06/09/the-most-sophisticated-android-trojan/</link><pubDate>Sun, 09 Jun 2013 23:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/09/the-most-sophisticated-android-trojan/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Recently, an Android application came to us for analysis. At a glance,
we knew this one was special. All strings in the DEX file were
encrypted, and the code was obfuscated.&lt;/p&gt;
&lt;p&gt;The file turned out to be a multi-functional Trojan, capable of the
following: sending SMS to premium-rate numbers; downloading other
malware programs, installing them on the infected device and/or
sending them further via Bluetooth; and remotely performing commands
in the console. Now, Kaspersky Lab’s products detect this malicious
program as Backdoor.AndroidOS.Obad.a&lt;/p&gt;</description></item><item><title>Conectarse por SSH utilizando sshpass</title><link>http://karpoke.ignaciocano.com/2013/06/09/conectarse-por-ssh-utilizando-sshpass/</link><pubDate>Sun, 09 Jun 2013 15:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/09/conectarse-por-ssh-utilizando-sshpass/</guid><description>&lt;p&gt;&lt;code&gt;sshpass&lt;/code&gt; es un programa que nos permite iniciar sesión en un servidor
SSH de forma no interactiva y sin utilizar claves, para lo que deberemos
proporcionar la contraseña como argumento del programa.&lt;/p&gt;
&lt;p&gt;Para conectar a un servidor SSH, es preferible &lt;a href="http://karpoke.ignaciocano.com/2011/03/03/conectarse-por-ssh-solo-usando-la-clave/"&gt;utilizar claves&lt;/a&gt;,
además de tener en cuenta otros sistemas de seguridad, como la
&lt;a href="http://karpoke.ignaciocano.com/2011/08/05/servicio-de-ssh-con-sistema-de-verificacion-en-dos-pasos-de-google-en-ubuntu-natty-narwhal/"&gt;autenticación en dos pasos&lt;/a&gt;, pero puede haber escenarios en los que
&lt;code&gt;sshpass&lt;/code&gt; sea una alternativa a considerar.&lt;/p&gt;
&lt;p&gt;Su uso es sencillo:&lt;/p&gt;</description></item><item><title>First Glimpse into the Soul of a Tamagotchi</title><link>http://karpoke.ignaciocano.com/2013/06/08/first-glimpse-into-the-soul-of-a-tamagotchi/</link><pubDate>Sat, 08 Jun 2013 23:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/08/first-glimpse-into-the-soul-of-a-tamagotchi/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I dumped the ROM of a Tamagotchi using the code execution ability I
posted previously. I wrote 6502 code that dumped each byte of the
memory space of the Tamagotchi, and output it over port A (which is
usually the Tamagotchi button input) via SPI.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Natalie Silvanovich | &lt;a href="http://www.kwartzlab.ca/2013/05/first-glimpse-soul-tamagotchi/"&gt;kwartzlab.ca&lt;/a&gt;&lt;/p&gt;</description></item><item><title>How crackers ransack passwords like ’qeadzcwrsfxv1331’</title><link>http://karpoke.ignaciocano.com/2013/06/08/how-crackers-ransack-passwords-like-qeadzcwrsfxv1331/</link><pubDate>Sat, 08 Jun 2013 23:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/08/how-crackers-ransack-passwords-like-qeadzcwrsfxv1331/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In March, readers followed along as Nate Anderson, Ars deputy editor
and a self-admitted newbie to password cracking, downloaded a list of
more than 16,000 cryptographically hashed passcodes. Within a few
hours, he deciphered almost half of them. The moral of the story: if a
reporter with zero training in the ancient art of password cracking
can achieve such results, imagine what more seasoned attackers can do.&lt;/p&gt;
&lt;p&gt;Imagine no more. We asked three cracking experts to attack the same
list Anderson targeted and recount the results in all their color and
technical detail Iron Chef style. The results, to say the least, were
eye opening because they show how quickly even long passwords with
letters, numbers, and symbols can be discovered.&lt;/p&gt;</description></item><item><title>Los 10 errores típicos de una PYME en materia de seguridad</title><link>http://karpoke.ignaciocano.com/2013/06/08/los-10-errores-tipicos-de-una-pyme-en-materia-de-seguridad/</link><pubDate>Sat, 08 Jun 2013 23:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/08/los-10-errores-tipicos-de-una-pyme-en-materia-de-seguridad/</guid><description>&lt;blockquote&gt;
&lt;p&gt;No cabe duda de que en los últimos años hemos avanzado mucho en
Seguridad de la Información. Poco a poco, entre las empresas comienza
a implantarse la idea de que la seguridad es un ámbito al que hay que
prestar una atención específica e independiente, más allá de lo que
muchos consideran ”los informáticos”. Sin embargo, si no es bueno caer
en el catastrofismo, no debemos ser demasiado indulgentes: queda mucho
camino por recorrer y los avances no siempre se producen a la
velocidad a la que, afortunadamente para los delincuentes, serían
recomendables o deseables. A diario se producen noticias de empresas u
organizaciones con una fuerte inversión en seguridad cuya
infraestructura tecnológica es vulnerada, lo que da una idea del
desequilibrio de fuerzas existente.&lt;/p&gt;</description></item><item><title>Stage By Stage Boot Process Of Linux In Detail</title><link>http://karpoke.ignaciocano.com/2013/06/08/stage-by-stage-boot-process-of-linux-in-detail/</link><pubDate>Sat, 08 Jun 2013 23:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/08/stage-by-stage-boot-process-of-linux-in-detail/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This article describes linux booting process in detail, what are the
steps involved, which scripts run, what configuration files are read
and their order, from turning on the system till getting the login
prompt. Although this article projects a general view of booting a
Linux system, but some configuration files and commands can be Red Hat
specific. You can also download linux boot process pdf version for
future reference.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Raghu | &lt;a href="http://www.expertslogin.com/booting/boot-process-of-linux-in-detail/"&gt;expertslogin.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Tetris Printer Algorithm</title><link>http://karpoke.ignaciocano.com/2013/06/05/tetris-printer-algorithm/</link><pubDate>Wed, 05 Jun 2013 23:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/05/tetris-printer-algorithm/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The algorithm converts pixels from a source image into squares in the
Tetris playfield, one row at a time from the bottom up. To generate an
individual square, the algorithm assembles a structure consisting of a
rectangular region fully supported by a single square protruding from
the bottom. When the rectangular region is completed, its rows are
cleared, leaving behind the protruding square. Three examples of the
process appear below&lt;/p&gt;</description></item><item><title>A Short History of the O’Reilly Animals</title><link>http://karpoke.ignaciocano.com/2013/06/01/a-short-history-of-the-oreilly-animals/</link><pubDate>Sat, 01 Jun 2013 00:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/06/01/a-short-history-of-the-oreilly-animals/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In the mid-1980s, O’Reilly (aka O’Reilly &amp;amp; Associates) was selling
short books on Unix topics via mail order. These books, known as
”Nutshell Handbooks,” were held together by staples, and had plain
brown covers. Over time, Tim O’Reilly decided that he wanted to sell
the books through brick-and-mortar bookstores, and hired a graphic
designer to create new book covers. Those covers were used for the
first two titles that were sold into bookstores, but Tim wasn’t
satisfied with the design.&lt;/p&gt;</description></item><item><title>¿Influye la edad en la calidad como programador?</title><link>http://karpoke.ignaciocano.com/2013/05/13/influye-la-edad-en-la-calidad-como-programador/</link><pubDate>Mon, 13 May 2013 00:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/05/13/influye-la-edad-en-la-calidad-como-programador/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Se dice que son necesarias 10.000 horas de trabajo de programación
para alcanzar el nivel de experto, pero una vez llegado a él, ¿cuál es
la evolución? ¿Se mantiene? ¿Continúa mejorando? ¿Retrocede?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Juan Palacio | &lt;a href="http://navegapolis.com/index.php/93-programadores-y-edad"&gt;navegapolis.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Cómo 4 ecuaciones cambiaron el mundo</title><link>http://karpoke.ignaciocano.com/2013/05/04/como-4-ecuaciones-cambiaron-el-mundo/</link><pubDate>Sat, 04 May 2013 21:43:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/05/04/como-4-ecuaciones-cambiaron-el-mundo/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Cuenta la anécdota que un día de la primavera de 1855 el físico inglés
Michael Faraday daba una conferencia pública en la que mostraba sus
pioneros experimentos sobre la electricidad y el magnetismo. Entre la
audiencia se encontraba William Gladstone, entonces Ministro de
Hacienda y futuro Primer Ministro. Gladstone se levantó y le espetó al
investigador: ”todo esto es muy bonito, ¿pero alguna vez le
encontraremos una aplicación práctica?”, a lo que Faraday respondió:
”no se preocupe, algún día el gobierno cobrará impuestos sobre esto”.&lt;/p&gt;</description></item><item><title>Luke’s Change: an Inside Job</title><link>http://karpoke.ignaciocano.com/2013/05/01/lukes-change-an-inside-job/</link><pubDate>Wed, 01 May 2013 15:13:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/05/01/lukes-change-an-inside-job/</guid><description>&lt;blockquote&gt;
&lt;p&gt;An examination of some questionable events and circumstances leading
up to the destruction of the Death Star, through the eyes of an
amateur investigative journalist within the Star Wars galaxy. The
focus is mainly on the connections between the people who created and
operated the Death Star and those responsible for destroying it.
For those who don’t care for the obvious, this is a satirical spoof
of the 9/11 truther video Loose Change.&lt;/p&gt;</description></item><item><title>HTTP: The Protocol Every Web Developer Must Know – Part 1</title><link>http://karpoke.ignaciocano.com/2013/04/30/http-the-protocol-every-web-developer-must-know-part-1/</link><pubDate>Tue, 30 Apr 2013 00:12:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/04/30/http-the-protocol-every-web-developer-must-know-part-1/</guid><description>&lt;blockquote&gt;
&lt;p&gt;HTTP stands for Hypertext Transfer Protocol. It’s a stateless,
application-layer protocol for communicating between distributed
systems, and is the foundation of the modern web. As a web developer,
we all must have a strong understanding of this protocol.&lt;/p&gt;
&lt;p&gt;Let’s review this powerful protocol through the lens of a web
developer. We’ll tackle the topic in two parts. In this first entry,
we’ll cover the basics and outline the various request and response
headers. In the follow-up article, we’ll review specific pieces of
HTTP – namely caching, connection handling and authentication.&lt;/p&gt;</description></item><item><title>Una partida ’perfecta’ de Serpiente</title><link>http://karpoke.ignaciocano.com/2013/04/29/una-partida-perfecta-de-serpiente/</link><pubDate>Mon, 29 Apr 2013 13:13:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/04/29/una-partida-perfecta-de-serpiente/</guid><description>&lt;blockquote&gt;
&lt;p&gt;En 1997 esto era lo más avanzado en la industria del entretenimiento
móvil. ”Snake” era conocido en entre los jugadores de PC y otras
plataformas informáticas pero el Nokia 6110 fue el primer teléfono que
lo integró entre sus características.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;[&lt;img alt="Hosted by imgur" loading="lazy" src="http://i.imgur.com/dAtcCfH.gif"&gt;&lt;a href="http://i.imgur.com/dAtcCfH"&gt;1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;» Angel Jimenez de Luis | &lt;a href="http://es.gizmodo.com/un-partida-perfecta-de-serpiente-472150126"&gt;gizmodo.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Imprescindibles: The I.T. Crowd</title><link>http://karpoke.ignaciocano.com/2013/04/28/imprescindibles-the-i-t-crowd/</link><pubDate>Sun, 28 Apr 2013 13:08:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/04/28/imprescindibles-the-i-t-crowd/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Probablemente es una de las series de televisión que más carcajadas me
ha arrancado en los últimos años. Pese a su título (en español, Los
informáticos) tiene bastante poco que ver con el humor ”nerd” de The
Big Bang Theory, por ejemplo. The IT Crowd, para quien todavía no la
haya visto y se la esté perdiendo, es una comedia de malentendidos y
enredos, repleta de situaciones surrealistas que llegan a complicarse
hasta el delirio incluso en los breves minutos que dura cada episodio.&lt;/p&gt;</description></item><item><title>No debes despreciar aquello que más necesitas</title><link>http://karpoke.ignaciocano.com/2013/04/27/no-debes-despreciar-aquello-que-mas-necesitas/</link><pubDate>Sat, 27 Apr 2013 13:07:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/04/27/no-debes-despreciar-aquello-que-mas-necesitas/</guid><description>&lt;blockquote&gt;
&lt;p&gt;En mi opinión el origen de todos los males que afectan a la profesión
del desarrollo de software (no me meto en otras cosas), o mejor dicho
del programador (evito eufemismos tipo ”arquitecto”, ”ingeniero
software”, ”desarrollador” o similares) es el desprecio a programar,
el desprecio de la labor del programador frente a otros tipos de
tareas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Jose María Arranz | &lt;a href="http://saveinformaticos.reeelab.com/2013/04/10/no-debes-despreciar-aquello-que-mas-necesitas/"&gt;saveinformaticos.reeelab.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Time travel in movies</title><link>http://karpoke.ignaciocano.com/2013/04/21/time-travel-in-movies/</link><pubDate>Sun, 21 Apr 2013 20:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/04/21/time-travel-in-movies/</guid><description>&lt;p&gt;&lt;img alt="Time travel in movies" loading="lazy" src="http://karpoke.ignaciocano.com/images/tumblr_mkzuf92pKY1snzjk8o1_500.png"&gt;&lt;/p&gt;
&lt;p&gt;» mr. dalliard | &lt;a href="http://mr-dalliard.tumblr.com/post/47542367365/time-travel-in-movies"&gt;mr-dalliard.tumblr.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Los códigos genéticos e informáticos comparten sorprendentes similitudes</title><link>http://karpoke.ignaciocano.com/2013/04/20/los-codigos-geneticos-e-informaticos-comparten-sorprendentes-similitudes/</link><pubDate>Sat, 20 Apr 2013 15:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/04/20/los-codigos-geneticos-e-informaticos-comparten-sorprendentes-similitudes/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La teoría de la ”supervivencia del más apto” de Darwin puede aplicarse
tanto a los sistemas biológicos como a los sistemas informáticos,
sugiere una investigación del BNL y de la la Stony Brook University de
Nueva York. El análisis del genoma de 500 bacterias y de 200.000
paquetes Linux ha revelado que estas dos redes complejas utilizan el
mismo mecanismo para expandir sus componentes clave. La razón de esta
similitud estaría en que las dos son sistemas de acceso libre, afirman
los científicos.&lt;/p&gt;</description></item><item><title>Señoras y señores, con todos nosotros: La Vida</title><link>http://karpoke.ignaciocano.com/2013/04/10/senoras-y-senores-con-todos-nosotros-la-vida/</link><pubDate>Wed, 10 Apr 2013 21:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/04/10/senoras-y-senores-con-todos-nosotros-la-vida/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La vida es algo de lo que tenemos constancia directa, identificamos si
un sistema está vivo o si no lo está. Sin embargo, aún no tenemos una
definición totalmente satisfactoria del concepto ’vida’. Bien es
cierto que hay una frontera difusa entre lo vivo y lo no vivo, uno
siempre puede recurrir a los virus para forzar la conversación, pero a
partir de cierto nivel la distinción entre sistemas vivos y sistemas
inertes es más que evidente. Y la pregunta es: ¿cómo se originó la
vida? ¿qué condiciones dieron lugar a la misma?&lt;/p&gt;</description></item><item><title>How two volunteers built the Raspberry Pi’s operating system</title><link>http://karpoke.ignaciocano.com/2013/04/06/how-two-volunteers-built-the-raspberry-pis-operating-system/</link><pubDate>Sat, 06 Apr 2013 18:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/04/06/how-two-volunteers-built-the-raspberry-pis-operating-system/</guid><description>&lt;blockquote&gt;
&lt;p&gt;When you buy a Raspberry Pi, the $35 computer doesn’t come with an
operating system. Loading your operating system of choice onto an SD
card and then booting the Pi turns out to be pretty easy. But where do
Pi-compatible operating systems come from?&lt;/p&gt;
&lt;p&gt;With the Raspberry Pi having just turned one year old, we decided to
find out how Raspbian”the officially recommended Pi operating
system”came into being. The project required 60-hour work weeks, a
home-built cluster of ARM computers, and the rebuilding of 19,000
Linux software packages. And it was all accomplished by two
volunteers.&lt;/p&gt;</description></item><item><title>Desarrollan el primer transistor biológico</title><link>http://karpoke.ignaciocano.com/2013/04/05/desarrollan-el-primer-transistor-biologico/</link><pubDate>Fri, 05 Apr 2013 23:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/04/05/desarrollan-el-primer-transistor-biologico/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Un equipo de investigadores de la Universidad de Stanford ha
desarrollado el primer transistor biológico a partir de materiales
genéticos: ADN y ARN. Bajo el nombre de ”transcriptor”, los
científicos hablan de este transistor biológico como el componente
final necesario para la construcción de computadoras biológicas que
funcionen dentro de las células vivas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Miguel Jorge | &lt;a href="http://alt1040.com/2013/04/primer-transistor-biologico"&gt;alt1040.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Free and Openand Their Opposites</title><link>http://karpoke.ignaciocano.com/2013/04/04/free-and-open-and-their-opposites/</link><pubDate>Thu, 04 Apr 2013 21:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/04/04/free-and-open-and-their-opposites/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Merriam-Webster defines a tenet as ”a principle, belief, or doctrine
generally held to be true; especially one held in common by members of
an organization, movement, or profession.” As it happens, Linux is
claimed by two doctrines that are to some degree at odds: those of
free software and open source. This contention began when Eric S.
Raymond published ”Goodbye, ’free software’; hello, ’open source’”, on
February 8, 1998&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Doc Searls | &lt;a href="http://www.linuxjournal.com/content/free-and-openmdashand-their-opposites"&gt;linuxjournal.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The Command Line is Your Best Friend</title><link>http://karpoke.ignaciocano.com/2013/04/03/the-command-line-is-your-best-friend/</link><pubDate>Wed, 03 Apr 2013 23:43:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/04/03/the-command-line-is-your-best-friend/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Yes, it’s that white (or green) on black screen, where mysterious text
flows and strange commands execute. I know great programmers who never
use the CLI; however, I also know basic computer users who do
everything in the CLI instead of the graphical user interface (GUI).
They have console applications to browse the web and file system, read
mail, view images and edit text. They even watch YouTube videos and
read PDF files without a GUI!&lt;/p&gt;</description></item><item><title>Cómo perder peso (en el navegador)</title><link>http://karpoke.ignaciocano.com/2013/04/02/como-perder-peso-en-el-navegador/</link><pubDate>Tue, 02 Apr 2013 22:39:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/04/02/como-perder-peso-en-el-navegador/</guid><description>&lt;blockquote&gt;
&lt;p&gt;¿Y si nos juntáramos un grupo de expertos que trabajan en grandes
sitios para crear una guía para el rendimiento front-end definitiva?&lt;/p&gt;
&lt;p&gt;Y no sólo una de esas aburridas guías hechas para robots, ¿y si
hiciéramos algo divertido? ¿Qué tal reunirse Briza Bueno
(Americanas.com), Davidson Fellipe (Globo.com), Giovanni Keppelen
(ex-Peixe Urbano), Jaydson Gomes (Terra), Marcel Duran (Twitter), Mike
Taylor (Opera), Renato Mangini (Google) y Sérgio Lopes (Caelum) para
crear la mejor referencia posible?&lt;/p&gt;</description></item><item><title>Internet Census 2012: Port scanning /0 using insecure embedded devices</title><link>http://karpoke.ignaciocano.com/2013/04/01/internet-census-2012-port-scanning-0-using-insecure-embedded-devices/</link><pubDate>Mon, 01 Apr 2013 00:50:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/04/01/internet-census-2012-port-scanning-0-using-insecure-embedded-devices/</guid><description>&lt;blockquote&gt;
&lt;p&gt;While playing around with the Nmap Scripting Engine (NSE) we
discovered an amazing number of open embedded devices on the Internet.
Many of them are based on Linux and allow login to standard BusyBox
with empty or default credentials. We used these devices to build a
distributed port scanner to scan all IPv4 addresses. These scans
include service probes for the most common ports, ICMP ping, reverse
DNS and SYN scans. We analyzed some of the data to get an estimation
of the IP address usage.&lt;/p&gt;</description></item><item><title>The 8085’s register file reverse engineered</title><link>http://karpoke.ignaciocano.com/2013/03/31/the-8085s-register-file-reverse-engineered/</link><pubDate>Sun, 31 Mar 2013 20:28:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/31/the-8085s-register-file-reverse-engineered/</guid><description>&lt;blockquote&gt;
&lt;p&gt;On the surface, a microprocessor’s registers seem like simple storage,
but not in the 8085 microprocessor. Reverse-engineering the 8085
reveals many interesting tricks that make the registers fast and
compact. The picture below shows that the registers and associated
control circuitry occupy a large fraction of the chip, so efficiency
is important. Each bit is implemented with a surprisingly compact
circuit. The instruction set is designed to make register accesses
efficient. An indirection trick allows quick register exchanges. Many
register operations use the unexpected but efficient data path of
going through the ALU.&lt;/p&gt;</description></item><item><title>Las primeras programadoras</title><link>http://karpoke.ignaciocano.com/2013/03/31/las-primeras-programadoras/</link><pubDate>Sun, 31 Mar 2013 16:22:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/31/las-primeras-programadoras/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Cuando se habla del nacimiento de los primeros computadores,
normalmente, se suelen asociar a hombres que trabajaban en el equipo
de descifradores de códigos Bletchley Park durante la Segunda Guerra
Mundial (como Alan Turing), John William Mauchly y John Presper Eckert
en el ENIAC o Howard H. Aiken como responsable de la construcción de
la Harvard Mark I; sin embargo, en los equipos de trabajo de estos
pioneros de la computación se encontraban mujeres que ejercieron de
programadoras y diseñadoras de los precursores de los ordenadores y
servidores que sustentan nuestro trabajo diario.&lt;/p&gt;</description></item><item><title>DRM en HTML: la guerra por poseer la Web</title><link>http://karpoke.ignaciocano.com/2013/03/30/drm-en-html-la-guerra-por-poseer-la-web/</link><pubDate>Sat, 30 Mar 2013 20:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/30/drm-en-html-la-guerra-por-poseer-la-web/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Tim Berners-Lee habló hace unos días en las conferencias SXSW acerca
del futuro de HTML, el lenguaje que inventó para construir la Web.
Entre sus dichos habituales sobre la posición de la Web como la
plataforma universal definitiva para acceder al conocimiento,
Berners-Lee dijo algo que desató las protestas del mundo libre
(tecnológicamente hablando): ”si no ponemos las ayudas necesarias para
usar DRM [en la Web], la gente simplemente regresará a usar Flash”.&lt;/p&gt;</description></item><item><title>SSLyze</title><link>http://karpoke.ignaciocano.com/2013/03/29/sslyze/</link><pubDate>Fri, 29 Mar 2013 22:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/29/sslyze/</guid><description>&lt;p&gt;&lt;a href="https://github.com/iSECPartners/sslyze"&gt;SSLyze&lt;/a&gt; es una herramienta para analizar la configuración SSL de un
servidor, diseñada para ser rápida y exhaustiva.&lt;/p&gt;
&lt;p&gt;Un ejemplo de uso:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ python sslyze --regular localhost:443
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; REGISTERING AVAILABLE PLUGINS
-----------------------------
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; PluginCertInfo
PluginSessionRenegotiation
PluginCompression
PluginSessionResumption
PluginOpenSSLCipherSuites
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; CHECKING HOST(S) AVAILABILITY
-----------------------------
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; localhost:443 =&amp;gt; 127.0.0.1:443
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; SCAN RESULTS FOR LOCALHOST:443 - 127.0.0.1:443
-----------------------------------------------------------------
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; * Compression :
Compression Support: Disabled
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; * Session Renegotiation :
Client-initiated Renegotiations: Rejected
Secure Renegotiation: Supported
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; * Certificate :
Validation w/ Mozilla&amp;#39;s CA Store: Certificate is NOT Trusted: self signed certificate in certificate chain
Hostname Validation: OK - Common Name Matches
SHA1 Fingerprint: 12C4EC1C16807D8654269FBE5E0A8DBFBF1244CC
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Common Name: localhost
Issuer: /C=ES/ST=IB/O=Localhost CA/CN=localhost/emailAddress=postmaster@localhost
Serial Number: F525610B96987DAE
Not Before: Mar 20 10:31:07 2013 GMT
Not After: Mar 20 10:31:07 2014 GMT
Signature Algorithm: sha1WithRSAEncryption
Key Size: 2048
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Unhandled exception when processing --sslv2:
utils.ctSSL.errors.ctSSLFeatureNotAvailable - SSLv2 disabled.
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; * Session Resumption :
With Session IDs: Supported (5 successful, 0 failed, 0 errors, 5 total attempts).
With TLS Session Tickets: Supported
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; * TLSV1_1 Cipher Suites :
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Rejected Cipher Suite(s): Hidden
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Preferred Cipher Suite:
RC4-SHA 128 bits HTTP 302 Found - /
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Accepted Cipher Suite(s):
CAMELLIA256-SHA 256 bits HTTP 302 Found - /
AES256-SHA 256 bits HTTP 302 Found - /
DES-CBC3-SHA 168 bits HTTP 302 Found - /
RC4-SHA 128 bits HTTP 302 Found - /
CAMELLIA128-SHA 128 bits HTTP 302 Found - /
AES128-SHA 128 bits HTTP 302 Found - /
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Undefined - An unexpected error happened: None
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; * TLSV1_2 Cipher Suites :
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Rejected Cipher Suite(s): Hidden
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Preferred Cipher Suite:
AES128-GCM-SHA256 128 bits HTTP 302 Found - /
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Accepted Cipher Suite(s):
CAMELLIA256-SHA 256 bits HTTP 302 Found - /
AES256-SHA256 256 bits HTTP 302 Found - /
AES256-SHA 256 bits HTTP 302 Found - /
AES256-GCM-SHA384 256 bits HTTP 302 Found - /
DES-CBC3-SHA 168 bits HTTP 302 Found - /
RC4-SHA 128 bits HTTP 302 Found - /
CAMELLIA128-SHA 128 bits HTTP 302 Found - /
AES128-SHA256 128 bits HTTP 302 Found - /
AES128-SHA 128 bits HTTP 302 Found - /
AES128-GCM-SHA256 128 bits HTTP 302 Found - /
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Undefined - An unexpected error happened: None
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; * SSLV3 Cipher Suites :
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Rejected Cipher Suite(s): Hidden
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Preferred Cipher Suite:
RC4-SHA 128 bits HTTP 302 Found - /
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Accepted Cipher Suite(s):
CAMELLIA256-SHA 256 bits HTTP 302 Found - /
AES256-SHA 256 bits HTTP 302 Found - /
DES-CBC3-SHA 168 bits HTTP 302 Found - /
RC4-SHA 128 bits HTTP 302 Found - /
CAMELLIA128-SHA 128 bits HTTP 302 Found - /
AES128-SHA 128 bits HTTP 302 Found - /
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Undefined - An unexpected error happened: None
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; * TLSV1 Cipher Suites :
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Rejected Cipher Suite(s): Hidden
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Preferred Cipher Suite:
RC4-SHA 128 bits HTTP 302 Found - /
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Accepted Cipher Suite(s):
CAMELLIA256-SHA 256 bits HTTP 302 Found - /
AES256-SHA 256 bits HTTP 302 Found - /
DES-CBC3-SHA 168 bits HTTP 302 Found - /
RC4-SHA 128 bits HTTP 302 Found - /
CAMELLIA128-SHA 128 bits HTTP 302 Found - /
AES128-SHA 128 bits HTTP 302 Found - /
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Undefined - An unexpected error happened: None
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; SCAN COMPLETED IN 16.95 S
-------------------------
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Una disputa en torno al spam genera el mayor ataque DDOS registrado en Internet</title><link>http://karpoke.ignaciocano.com/2013/03/29/una-disputa-en-torno-al-spam-genera-el-mayor-ataque-ddos-registrado-en-internet/</link><pubDate>Fri, 29 Mar 2013 20:00:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/29/una-disputa-en-torno-al-spam-genera-el-mayor-ataque-ddos-registrado-en-internet/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Varios medios se han hecho eco del que puede ser, probablemente, el
mayor ataque de denegación de servicio (DDOS) registrado en la
historia de Internet. Todo parece indicar que tras el ataque está una
disputa en torno al SPAM. Una de las víctimas, CloudFlare, sitio
especializado en la distribución de contenidos, ha confirmado el
hecho.&lt;/p&gt;
&lt;p&gt;El ataque ha tenido lugar entre el 18 y 19 de este mes, afectando a
muchos usuarios de la Red y servicios como Netflix. Para entender
hasta qué punto el ataque ha sido importante, pensad que un ataque
DDOS normal puede suponer un tráfico de 10 Gbps, y éste ha llegado a
picos de 300 Gbps, el más importante que se conoce públicamente.&lt;/p&gt;</description></item><item><title>La obra de M. C. Escher en la cultura popular</title><link>http://karpoke.ignaciocano.com/2013/03/28/la-obra-de-m-c-escher-en-la-cultura-popular/</link><pubDate>Thu, 28 Mar 2013 19:46:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/28/la-obra-de-m-c-escher-en-la-cultura-popular/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La obra de Maurits Cornelis Escher está plagada de composiciones
sorprendentes en las que todos los elementos se fusionan y de
perspectivas imposibles (aunque también produjo otro tipo de
litografías). Su influencia fue enorme y ha repercutido en cientos de
artistas. Pero también se pueden encontrar muchísimos homenajes a
Escher en la cultura popular. Desde el celebérrimo gag del sillón de
Los Simpson a los créditos de Donnie Darko, pasando por uno de los
puzles más conocidos de God of War, estos son algunos ejemplos de la
aparición de los diseños del artista holandés (o inspirados en ellos)
en diversos campos.&lt;/p&gt;</description></item><item><title>Introducing the HTML5 Hard Disk Filler¢ API</title><link>http://karpoke.ignaciocano.com/2013/03/27/introducing-the-html5-hard-disk-filler-api/</link><pubDate>Wed, 27 Mar 2013 21:42:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/27/introducing-the-html5-hard-disk-filler-api/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The HTML5 Web Storage standard was developed to allow sites to store
larger amounts of data (like 5-10 MB) than was previously allowed by
cookies (like 4KB). localStorage is awesome because it’s supported in
all modern browsers (Chrome, Firefox 3.5+, Safari 4+, IE 8+, etc.).&lt;/p&gt;
&lt;p&gt;The standard anticipated that sites might abuse this feature and
advised that browsers limit the total amount of storage space that
each origin could use.&lt;/p&gt;</description></item><item><title>Run time profiling with cProfile</title><link>http://karpoke.ignaciocano.com/2013/03/27/run-time-profiling-with-cprofile/</link><pubDate>Wed, 27 Mar 2013 21:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/27/run-time-profiling-with-cprofile/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Python is distributed with profiling modules. They describe the run
time operation of a pure python program, providing a variety of
statistics.&lt;/p&gt;
&lt;p&gt;The cProfile module is the recommended module. To execute your program
under the control of the cProfile module, a simple form is:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ python -m cProfile -s cumulative mypythonscript.py
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Alain Leufroy | &lt;a href="http://www.logilab.org/blogentry/104898"&gt;logilab.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Visualization of Regular Expression Character Classes</title><link>http://karpoke.ignaciocano.com/2013/03/26/visualization-of-regular-expression-character-classes/</link><pubDate>Tue, 26 Mar 2013 20:52:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/26/visualization-of-regular-expression-character-classes/</guid><description>&lt;blockquote&gt;
&lt;p&gt;We all know the regular expression character classes, right? There are
12 standard classes:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[:alnum:] [:digit:] [:punct:]
[:alpha:] [:graph:] [:space:]
[:blank:] [:lower:] [:upper:]
[:cntrl:] [:print:] [:xdigit:]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But have you seen a visual representation of what these classes match?
Probably not. Therefore I created a visualization that illustrates
which part of the ASCII set each character class matches.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Peteris Krumins | &lt;a href="http://www.catonmat.net/blog/regex-char-classes/"&gt;catonmat.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>El código Asimov</title><link>http://karpoke.ignaciocano.com/2013/03/24/el-codigo-asimov/</link><pubDate>Sun, 24 Mar 2013 21:55:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/24/el-codigo-asimov/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El hombre artificial siempre fue una fantasía que resulta tan
atractiva como inquietante. Como ocurre con las fantasías, tarde o
temprano a alguien pensó en llevarla a la práctica. Desde los
autómatas de Vaucanson y Jacquet-Droz (tan admirados en el Siglo de
las Luces) hasta esos vistosos robots humanoides que la televisión
sueles usar para darles color en sus noticieros, aún suelen provocar
ciertos temores.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Pablo Capanna | &lt;a href="http://www.pagina12.com.ar/diario/suplementos/futuro/13-2816-2013-03-07.html"&gt;pagina12.com.ar&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Hacking the tag in 100 characters</title><link>http://karpoke.ignaciocano.com/2013/03/23/hacking-the-tag-in-100-characters/</link><pubDate>Sat, 23 Mar 2013 12:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/23/hacking-the-tag-in-100-characters/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A short while ago, I discovered that JavaScript allows you to change
the href after you click on it. It may not seem that serious at
first glance, but rest assured, it can trick customers into giving in
their details to fraudsters.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://bilaw.al/2013/03/17/hacking-the-a-tag-in-100-characters.html"&gt;bilaw.al&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Solucionado el error «error: error running non-shared postrotate script for /var/log/samba/log.nmbd of '/var/log/samba/log.nmbd '»</title><link>http://karpoke.ignaciocano.com/2013/03/22/solucionado-el-error-error-error-running-non-shared-postrotate-script-for-varlogsambalog-nmbd-of-varlogsambalog-nmbd/</link><pubDate>Fri, 22 Mar 2013 21:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/22/solucionado-el-error-error-error-running-non-shared-postrotate-script-for-varlogsambalog-nmbd-of-varlogsambalog-nmbd/</guid><description>&lt;p&gt;Si nos encontramos con el siguiente error:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;error: error running non-shared postrotate script for /var/log/samba/log.nmbd of &amp;#39;/var/log/samba/log.nmbd &amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En Ubuntu 12.04.2, con la versión de &lt;code&gt;samba&lt;/code&gt; 3.6.3, podría producirse
cuando el &lt;a href="http://dev-eole.ac-dijon.fr/issues/4524"&gt;&lt;em&gt;script&lt;/em&gt; de &lt;code&gt;logrotate&lt;/code&gt; para &lt;code&gt;samba&lt;/code&gt;&lt;/a&gt;
intenta hacer un &lt;code&gt;reload&lt;/code&gt; del servicio &lt;code&gt;nmbd&lt;/code&gt; y éste no está en ejecución.
Necesita un pequeño cambio en los comandos utilizados en la directiva &lt;code&gt;postrotate&lt;/code&gt;:
deberemos cambiar &lt;code&gt;reload&lt;/code&gt; por &lt;code&gt;reload --quiet&lt;/code&gt;, quedando finalmente así
las respectivas líneas en el fichero &lt;code&gt;/etc/logrorate.d/samba&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Solucionado el error «prelink: ... is not an ELF file»</title><link>http://karpoke.ignaciocano.com/2013/03/21/solucionado-el-error-prelink-is-not-an-elf-file/</link><pubDate>Thu, 21 Mar 2013 21:15:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/21/solucionado-el-error-prelink-is-not-an-elf-file/</guid><description>&lt;p&gt;&lt;code&gt;tiger&lt;/code&gt; es una herramienta que comprueba la integridad de ciertos
ficheros del sistema.&lt;/p&gt;
&lt;p&gt;En Ubuntu 12.04.2, la versión instalada es la 3.2.3, y si además estamos
usando &lt;code&gt;prelink&lt;/code&gt;, puede que &lt;code&gt;tigercron&lt;/code&gt; arroje errores del estilo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;prelink: &amp;#34;/usr/share/vim/vim73/doc/help.txt&amp;#34; is not an ELF file
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;El problema parece estar en un uso incorrecto de &lt;code&gt;prelink&lt;/code&gt;, ya que no
maneja bien la salida de &lt;code&gt;md5sum&lt;/code&gt;. Este error creo que todavía no está
solucionado, pero en &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=505906"&gt;este hilo&lt;/a&gt; se incluye un parche que parece que
funciona.&lt;/p&gt;</description></item><item><title>Exigimos la retirada de la Ley Lassalle (nueva reforma de la Ley de Propiedad Intelectual)</title><link>http://karpoke.ignaciocano.com/2013/03/21/exigimos-la-retirada-de-la-ley-lassalle-nueva-reforma-de-la-ley-de-propiedad-intelectual/</link><pubDate>Thu, 21 Mar 2013 00:00:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/21/exigimos-la-retirada-de-la-ley-lassalle-nueva-reforma-de-la-ley-de-propiedad-intelectual/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Exigimos la retirada de la Ley Lassalle y la apertura de un diálogo
equilibrado, moderado por un mediador neutral, entre las autoridades,
ciudadanía en general, artistas, creadores e industria, con el
objetivo discutir sobre las auténticas reformas necesarias en la LPI
en un diálogo abierto y honesto.&lt;/p&gt;
&lt;p&gt;No podemos aceptar una reforma en la que la copia privada se convierte
de facto en una mera copia personal en una clara desconexión con la
realidad y una involución legislativa que no se podía ni concebir ni a
finales del siglo pasado y que actúa directamente contra los intereses
de creadores y artistas que ven en la copia privada una actividad que
les beneficia y sin la cual, muchos no hubieran llegado a ser tales.&lt;/p&gt;</description></item><item><title>Las claves del nuevo canon digital a las universidades: ¿a quién afecta y a quién beneficia?</title><link>http://karpoke.ignaciocano.com/2013/03/20/las-claves-del-nuevo-canon-digital-a-las-universidades-a-quien-afecta-y-a-quien-beneficia/</link><pubDate>Wed, 20 Mar 2013 23:20:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/20/las-claves-del-nuevo-canon-digital-a-las-universidades-a-quien-afecta-y-a-quien-beneficia/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El Gobierno de Mariano Rajoy planea la creación de un canon digital
que se aplicaría a las universidades por los fragmentos de obras
sometidas a derechos de autor que distribuyen a través de Internet en
sus campus virtuales.&lt;/p&gt;
&lt;p&gt;Según la Conferencia de Rectores de Universidades Españolas (Crue) y
los expertos en derechos de autor y propiedad intelectual, este canon
sería ilegal. Para la sociedad de derechos de autor que gestiona los
intereses de las editoriales y los autores de textos, Cedro, es una
necesidad. ”Si se paga por las fotocopias, cómo no se va a pagar por
las copias digitales”, aduce.&lt;/p&gt;</description></item><item><title>Solucionado el error «error: nagiosgrapher:1 duplicate log entry for /var/log/nagiosgrapher/ngraph.log»</title><link>http://karpoke.ignaciocano.com/2013/03/20/solucionado-el-error-error-nagiosgrapher1-duplicate-log-entry-for-varlognagiosgrapherngraph-log/</link><pubDate>Wed, 20 Mar 2013 21:08:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/20/solucionado-el-error-error-nagiosgrapher1-duplicate-log-entry-for-varlognagiosgrapherngraph-log/</guid><description>&lt;p&gt;&lt;code&gt;nagiosgrapher&lt;/code&gt; es un programa que recoge la información de Nagios y
crea una serie de gráficos a partir de ella.&lt;/p&gt;
&lt;p&gt;En Ubuntu 12.04.2, la versión instalada desde los repositorios, 1.7.1-3,
tiene un pequeño fallo, de tal manera que
&lt;a href="https://bugs.launchpad.net/ubuntu/+source/nagiosgrapher/+bug/466671"&gt;&lt;code&gt;logrotate&lt;/code&gt; arroja el siguiente error&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;error: nagiosgrapher:1 duplicate log entry for /var/log/nagiosgrapher/ngraph.log
error: found error in /var/log/nagiosgrapher/ngraph.log , skipping
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;El fallo está corregido a partir de la versión 1.7.2.&lt;/p&gt;
&lt;p&gt;Podemos confirmar el fallo si vemos que &lt;code&gt;nagiosgrapher&lt;/code&gt; instala dos
archivos como los siguientes en el directorio de &lt;code&gt;logrotate&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>How High Can You Get?</title><link>http://karpoke.ignaciocano.com/2013/03/20/how-high-can-you-get/</link><pubDate>Wed, 20 Mar 2013 01:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/20/how-high-can-you-get/</guid><description>&lt;blockquote&gt;
&lt;p&gt;So I wanted to find out: what exactly is the bug in the program that
causes this behavior and also, can it be fixed?&lt;/p&gt;
&lt;p&gt;First I looked on the Internet to see if the answer has already been
found. Some good starting information is located at
&lt;a href="http://www.jeffsromhack.com/products/donkeykong_tech.htm"&gt;http://www.jeffsromhack.com/products/donkeykong_tech.htm&lt;/a&gt;. There, Jeff
Kulczycki breaks down the math of the kill screen, showing the formula
that is used to compute the bonus for each level. The formula says the
level times 10, plus 40, gives the number of hundreds in the bonus
timer. If the result is too large it is forced back down. The key to
this is that the level number is used in the calculation. On level 22
an overflow occurs, leaving the player with just 400 points on the
timer because the multiplication and addition yields a number larger
than 256.&lt;/p&gt;</description></item><item><title>El principio de exclusión explicado con urinarios</title><link>http://karpoke.ignaciocano.com/2013/03/20/el-principio-de-exclusion-explicado-con-urinarios/</link><pubDate>Wed, 20 Mar 2013 00:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/20/el-principio-de-exclusion-explicado-con-urinarios/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El principio de exclusión de Wolfgang Pauli nos dice que dos electrones en un
mismo átomo no pueden tener todos sus números atómicos iguales. ¿Y qué
significa eso? Aquí es donde entran los urinarios. En un centro comercial
construido en la época dorada del ladrillo, un constructor un poco garrulo
decidió poner un solo baño y con unas características especiales: la
distancia entre los grupos de urinarios era inmensa, pero le daba la
oportunidad de poner anuncios con las innumerables promociones de pisos de
lamentable calidad, ridículo tamaño y exorbitante precio que tenía en venta.
Así que los clientes no tenían más remedio que pasar por interminables
pasillos de promociones fraudulentas para liberarse de su agüita amarilla y,
si había suerte, saldrían con una hipoteca de por vida.&lt;/p&gt;</description></item><item><title>Propiedad intelectual: Preguntas frecuentes sobre la Ley Lasalle</title><link>http://karpoke.ignaciocano.com/2013/03/19/propiedad-intelectual-preguntas-frecuentes-sobre-la-ley-lasalle/</link><pubDate>Tue, 19 Mar 2013 00:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/19/propiedad-intelectual-preguntas-frecuentes-sobre-la-ley-lasalle/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Lo que hace la Ley Lasalle es terminar con ese debate en España
decantándolo a la opción más favorable a la industria de los
contenidos. La Ley define ahora expresamente lo que es ”acceso legal”
y lo restringe a las copias que se hagan de un soporte original -por
lo que la obra ha de estar adherida a un soporte- y siempre que lo
hayas adquirido en propiedad por haberlo comprado, excluyendo así
copias de obras originales pero alquiladas e incluso las que se hacen
de un original que te presta un amigo. Además se exige que esa copia
del original que has comprado la hagas por tus propios medios, si la
haces ”con asistencia de terceros”, será ilícita.&lt;/p&gt;</description></item><item><title>Final Fantasy VII Review (Plot Spoilers)</title><link>http://karpoke.ignaciocano.com/2013/03/18/final-fantasy-vii-review-plot-spoilers/</link><pubDate>Mon, 18 Mar 2013 00:37:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/18/final-fantasy-vii-review-plot-spoilers/</guid><description>&lt;blockquote&gt;
&lt;p&gt;My review of the 7th installment in the Final Fantasy series.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/veEn0k5u5Ko?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» IsanWilshireIII | &lt;a href="https://www.youtube.com/watch?v=veEn0k5u5Ko"&gt;youtube.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>CEO Friday: Why we don’t hire .NET programmers</title><link>http://karpoke.ignaciocano.com/2013/03/17/ceo-friday-why-we-dont-hire-net-programmers/</link><pubDate>Sun, 17 Mar 2013 19:09:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/17/ceo-friday-why-we-dont-hire-net-programmers/</guid><description>&lt;blockquote&gt;
&lt;p&gt;See, experience is cheap. All it takes is time. Skill is harder, but
really only requires hard work ” a lot of people can get that. But
attitude. You either have it, or you don’t. The right sort of person
is so passionate about coding, they can’t be stopped from doing it.
They typically started before high school ” sometimes before middle
school ” and never looked back. They write everything from assembly to
jQuery, on PCs to mobile phones, doing hard core computer graphics to
high level social networking. They’ve tried everything.&lt;/p&gt;</description></item><item><title>Revisa tu contrato: si contiene una de estas cláusulas, Europa lo considera abusivo</title><link>http://karpoke.ignaciocano.com/2013/03/16/revisa-tu-contrato-si-contiene-una-de-estas-clausulas-europa-lo-considera-abusivo/</link><pubDate>Sat, 16 Mar 2013 13:18:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/16/revisa-tu-contrato-si-contiene-una-de-estas-clausulas-europa-lo-considera-abusivo/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La propia Unión Europea reconoce que los abusos más frecuentes son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;excluir o limitar los derechos legales del consumidor con respecto
al profesional en caso de incumplimiento&lt;/li&gt;
&lt;li&gt;imponer al consumidor que no cumpla sus obligaciones una
indemnización desproporcionadamente alta&lt;/li&gt;
&lt;li&gt;incluir la adhesión del consumidor a cláusulas de las cuales no ha
tenido la oportunidad de tomar conocimiento real antes de la
celebración del contrato&lt;/li&gt;
&lt;li&gt;supresión u obstaculización del ejercicio de acciones judiciales o
de recursos.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Ruth Ugalde | &lt;a href="http://noticias.lainformacion.com/economia-negocios-y-finanzas/servicios-bancarios/revisa-tu-contrato-si-contiene-una-de-estas-clausulas-europa-lo-considera-abusivo_cW8mODyncLHot7mipeFUC4/"&gt;lainformacion.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>An open letter from bunnie, author of Hacking the Xbox</title><link>http://karpoke.ignaciocano.com/2013/03/15/an-open-letter-from-bunnie-author-of-hacking-the-xbox/</link><pubDate>Fri, 15 Mar 2013 02:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/15/an-open-letter-from-bunnie-author-of-hacking-the-xbox/</guid><description>&lt;blockquote&gt;
&lt;p&gt;No Starch Press and I have decided to release this free ebook version
of Hacking the Xbox in honor of Aaron Swartz. As you read this book, I
hope that you’ll be reminded of how important freedom is to the
hacking community and that you’ll be inclined to support the causes
that Aaron believed in.&lt;/p&gt;
&lt;p&gt;I agreed to release this book for free in part because Aaron’s
treatment by MIT is not unfamiliar to me. In this book, you will find
the story of when I was an MIT graduate student, extracting security
keys from the original Microsoft Xbox. You’ll also read about the
crushing disappointment of receiving a letter from MIT legal
repudiating any association with my work, effectively leaving me on my
own to face Microsoft.&lt;/p&gt;</description></item><item><title>El día negado</title><link>http://karpoke.ignaciocano.com/2013/03/14/el-dia-negado/</link><pubDate>Thu, 14 Mar 2013 02:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/14/el-dia-negado/</guid><description>&lt;p&gt;Leyendo el &lt;a href="http://espejo-ludico.blogspot.com.es/2013/03/el-dia-negado.html"&gt;espejo lúdico&lt;/a&gt;, me encuentro con estas dos preguntas:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;¿Hay algún día de la semana en el que nunca puede empezar un siglo?
Por el contrario, ¿cuál es el día de la semana que puede ser inicio y
final de un siglo?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;que pueden quedar contestadas rápidamente ejecutando el siguiente
comando:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ for year in `seq 2001 100 3001`; do cal 1 $year | grep -A2 $year; done | grep --color -B2 &amp;#34; 1 &amp;#34;
Enero 2001
do lu ma mi ju vi sá
1 2 3 4 5 6
Enero 2101
do lu ma mi ju vi sá
1
Enero 2201
do lu ma mi ju vi sá
1 2 3
Enero 2301
do lu ma mi ju vi sá
1 2 3 4 5
Enero 2401
do lu ma mi ju vi sá
1 2 3 4 5 6
Enero 2501
do lu ma mi ju vi sá
1
Enero 2601
do lu ma mi ju vi sá
1 2 3
Enero 2701
do lu ma mi ju vi sá
1 2 3 4 5
Enero 2801
do lu ma mi ju vi sá
1 2 3 4 5 6
Enero 2901
do lu ma mi ju vi sá
1
Enero 3001
do lu ma mi ju vi sá
1 2 3
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Los años divisibles por 100 no son bisiestos, a no ser que sean
divisible por 400:&lt;/p&gt;</description></item><item><title>¿Cuánto cuesta hacer un ping todas las direcciones de Internet?</title><link>http://karpoke.ignaciocano.com/2013/03/13/cuanto-cuesta-hacer-un-ping-todas-las-direcciones-de-internet/</link><pubDate>Wed, 13 Mar 2013 00:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/13/cuanto-cuesta-hacer-un-ping-todas-las-direcciones-de-internet/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Internet, la red de redes; todas las organizaciones modernas del mundo
están conectadas a Internet. Un gran número de individuos disponemos
de conexión a Internet, en el trabajo, en el domicilio particular y en
el dispositivo móvil.&lt;/p&gt;
&lt;p&gt;Esto nos puede hacer pensar que estamos hablando de un vasto rango de
direcciones, dentro de las cuales los atacantes pueden centrar sus
ataques en una organización determinada. Por ahora tomaremos como toda
Internet el espacio de direcciones de IPv4. Cuando se despliegue y
esté en uso IPv6, está claro que todo esto cambiara y habrá un nivel
añadido de complejidad.&lt;/p&gt;</description></item><item><title>Godzilla</title><link>http://karpoke.ignaciocano.com/2013/03/09/godzilla/</link><pubDate>Sat, 09 Mar 2013 11:28:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/09/godzilla/</guid><description>&lt;blockquote&gt;
&lt;p&gt;No hay duda de que Japón se ha convertido en el paraíso frikinal (con
permiso de Howard Wolowitz). Desde los dibujos animados de Mazinger Z
de mi niñez al Naruto de la de mis hijos, el país del sol naciente nos
ha proporcionado una buena provisión de cine y literatura friki. Pero
sin duda, el rey de todo ese paraíso es un enorme lagarto, dinosaurio,
dragón o lo que sea. Por supuesto, me refiero a Godzilla.&lt;/p&gt;</description></item><item><title>El cifrado sin control, no sirve de nada</title><link>http://karpoke.ignaciocano.com/2013/03/05/el-cifrado-sin-control-no-sirve-de-nada/</link><pubDate>Tue, 05 Mar 2013 15:23:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/05/el-cifrado-sin-control-no-sirve-de-nada/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Últimamente, tanto en auditorías que realizamos, como en código que
encuentro en la red, hay una cosa que me llama poderosamente la
atención, y es el mal uso (o uso incompleto) de las funciones de
criptografía. Por lo general, el procedimiento que suelen seguir los
desarrolladores que no están en contacto con el mundo de la seguridad,
suelen consistir en coger un método que venga con la API del lenguaje
o en una librería de terceros, buscar el método que implementa el
algoritmo de cifrado de turno, rellenar la firma del método y
almacenar la salida.&lt;/p&gt;</description></item><item><title>Python internals: adding a new statement to Python</title><link>http://karpoke.ignaciocano.com/2013/03/01/python-internals-adding-a-new-statement-to-python/</link><pubDate>Fri, 01 Mar 2013 10:44:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/03/01/python-internals-adding-a-new-statement-to-python/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This article is an attempt to better understand how the front-end of
Python works. Just reading documentation and source code may be a bit
boring, so I’m taking a hands-on approach here: I’m going to add an
until statement to Python.&lt;/p&gt;
&lt;p&gt;All the coding for this article was done against the cutting-edge Py3k
branch in the Python Mercurial repository mirror.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Eli Bendersky | &lt;a href="http://eli.thegreenplace.net/2010/06/30/python-internals-adding-a-new-statement-to-python/"&gt;eli.thegreenplace.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Keyboard rubik’s cube</title><link>http://karpoke.ignaciocano.com/2013/02/25/keyboard-rubiks-cube/</link><pubDate>Mon, 25 Feb 2013 00:27:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/02/25/keyboard-rubiks-cube/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This is my keyboard rubik’s cube. Must be solved in the normal way,
but you have toï’¿ consider the centers and positioning the right way
when you are solving the cube.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/eeOCuVbDmQk?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» Miguel Alonso | &lt;a href="https://www.youtube.com/watch?v=eeOCuVbDmQk"&gt;youtube.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Superman vs Hulk - The Fight</title><link>http://karpoke.ignaciocano.com/2013/02/24/superman-vs-hulk-the-fight/</link><pubDate>Sun, 24 Feb 2013 23:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/02/24/superman-vs-hulk-the-fight/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Superman finds Hulk somewhere in the Mojave Desert. This is a prelude
to a fight sequence in progress and will be posted some time in the
future. Animation by Michael Habjan, created with Autodesk Maya 2009,
composited and edited in Adobe After Effects CS3. Music done with
Propellerhead Reason 5.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/L6dj7YCEKhw?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/BbizTBYs-rQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/CDBNB2hk5t0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/nvoWwY64S5w?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/pBbsvavno8I?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» Michael Habjan | &lt;a href="https://www.youtube.com/user/mhabjan"&gt;youtube.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Logran que un cuadricóptero sea capaz de lanzar y equilibrar un péndulo invertido</title><link>http://karpoke.ignaciocano.com/2013/02/23/logran-que-un-cuadricoptero-sea-capaz-de-lanzar-y-equilibrar-un-pendulo-invertido/</link><pubDate>Sat, 23 Feb 2013 23:22:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/02/23/logran-que-un-cuadricoptero-sea-capaz-de-lanzar-y-equilibrar-un-pendulo-invertido/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Un equipo de investigadores del Instituto de Tecnología de Suecia ha
conseguido que unos cuadricópteros sean capaces de lanzar péndulos
invertidos y, lo que es más sorprendente, atraparlos al vuelo y
equilibrarlos. Para lograrlo, tienen que ser conscientes del ángulo de
lanzamiento y de ’aterrizaje’ del péndulo, entre otros factores, y
deben tener la capacidad de aprender de sus errores.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/15DIidigArA?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» Guillermo del Palacio | &lt;a href="http://alt1040.com/2013/02/cuadricoptero-lanza-equilibra-pendulo-invertido"&gt;alt1040.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Bobina de Tesla reproduce la melodía de Super Mario Bros</title><link>http://karpoke.ignaciocano.com/2013/02/22/bobina-de-tesla-reproduce-la-melodia-de-super-mario-bros/</link><pubDate>Fri, 22 Feb 2013 23:19:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/02/22/bobina-de-tesla-reproduce-la-melodia-de-super-mario-bros/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Estudiantes de ingeniería de la Universidad del Sur de Florida han
trabajado durante 2 años en un proyecto que les ha llevado a construir
una bobina de Tesla de 3 metros de altura capaz de producir corriente
alterna. Su creacíon tiene además la particularidad de que se puede
configurar para que reproduzca versiones de melodías famosas mediante
el tono de los grandes arcos eléctricos que genera. Para demostrarlo,
han hecho que imite el tema principal de Super Mario Bros. Este es el
resultado que han obtenido:&lt;/p&gt;</description></item><item><title>A year in the life of a kernel mantainer by Greg Kroah-Hartman</title><link>http://karpoke.ignaciocano.com/2013/02/22/a-year-in-the-life-of-a-kernel-mantainer-by-greg-kroah-hartman/</link><pubDate>Fri, 22 Feb 2013 23:16:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/02/22/a-year-in-the-life-of-a-kernel-mantainer-by-greg-kroah-hartman/</guid><description>&lt;p&gt;&lt;a href="http://imgur.com/ZqIr0OM"&gt;&lt;img alt="Hosted by imgur" loading="lazy" src="http://i.imgur.com/ZqIr0OM.jpg"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Diez comandos de ADB que deberías conocer</title><link>http://karpoke.ignaciocano.com/2013/02/09/diez-comandos-de-adb-que-deberias-conocer/</link><pubDate>Sat, 09 Feb 2013 15:29:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/02/09/diez-comandos-de-adb-que-deberias-conocer/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Una de las muchas razones por la que una gran cantidad de usuarios
elegimos Android es por la facilidad de uso y las muchas cosas que
podemos hacer cuando conectamos nuestro dispositivo al ordenador.
Muchas veces, al actualizar el teléfono o tablet a una nueva versión,
ponerle una ROM cocinada o conseguir permisos de superusuario (root),
necesitamos tener más contacto con el aparato que el que nos da el
programa que usemos en ese instante (Odín en los Samsung, por
ejemplo). El ADB (Android Debug Bridge) es un programa para ordenador
que nos servirá de puente para conectar nuestros androides a la
computadora y poder así interactuar con ellos de una forma más
”avanzada” y completa. Vamos a ver cómo se hace y algunos comandos
básicos.&lt;/p&gt;</description></item><item><title>Hidden Secret Codes for Google Android Mobile Phones</title><link>http://karpoke.ignaciocano.com/2013/02/09/hidden-secret-codes-for-google-android-mobile-phones/</link><pubDate>Sat, 09 Feb 2013 14:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/02/09/hidden-secret-codes-for-google-android-mobile-phones/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Recently I got a Google Android mobile phone ”Samsung Galaxy I7500”.
While I’m loving playing with it, I also found some interesting secret
codes which can enable/disable lots of hidden settings in the mobile
phone. These codes can also show many useful information about the
phone.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://www.askvg.com/google-android-hidden-secret-codes/"&gt;askvg.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Cifrando el tráfico DNS</title><link>http://karpoke.ignaciocano.com/2013/01/17/cifrando-el-trafico-dns/</link><pubDate>Thu, 17 Jan 2013 19:44:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/01/17/cifrando-el-trafico-dns/</guid><description>&lt;p&gt;&lt;a href="https://github.com/opendns/dnscrypt-proxy"&gt;DNSCrypt&lt;/a&gt; proporciona un servicio local para resolver nombres de
dominio que permite cifrar el tráfico entre nuestro equipo y el servidor
DNS primario, por defecto OpenDNS, lo que ayuda a protegerse de ataques
MitM y &lt;em&gt;phishing&lt;/em&gt; y proporciona cierta confidencialidad en las
peticiones DNS.&lt;/p&gt;
&lt;h2 id="instalación"&gt;Instalación&lt;/h2&gt;
&lt;p&gt;Para instalarlo, basta que nos decarguemos el paquete con el código
fuente:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ wget http://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-proxy-1.2.0.tar.bz2
$ wget http://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-proxy-1.2.0.tar.bz2.sig
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Comprobamos el paquete:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ gpg --verify dnscrypt-proxy-1.2.0.tar.bz2.sig dnscrypt-proxy-1.2.0.tar.bz2
gpg: Firmado el vie 12 oct 2012 01:28:27 CEST usando clave DSA ID 1CDEA439
gpg: Imposible comprobar la firma: Clave pública no encontrada
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Para poder comprobar la firma, buscamos la clave y la añadimos:&lt;/p&gt;</description></item><item><title>EL CASO DE AARON SWARTZ</title><link>http://karpoke.ignaciocano.com/2013/01/13/el-caso-de-aaron-swartz/</link><pubDate>Sun, 13 Jan 2013 13:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/01/13/el-caso-de-aaron-swartz/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Ayer se suicidó Aaron Swartz, uno de los activistas de Internet que
hicieron de la libertad de expresión y un internet abierto una de sus
banderas; parte gigante del freno a SOPA/PIPA, como hacker había
colaborado en la especificación RSS a los 14 años y hasta cofundado
REDDIT¦ tal vez la suma de sus antecedentes depresivos y la decisión
del Gobierno de USA de perseguirlo y hacer un ejemplo con su caso lo
llevaron a suicidarse.&lt;/p&gt;</description></item><item><title>High-Resolution Mandelbrot in Obfuscated Python</title><link>http://karpoke.ignaciocano.com/2013/01/06/high-resolution-mandelbrot-in-obfuscated-python/</link><pubDate>Sun, 06 Jan 2013 01:40:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2013/01/06/high-resolution-mandelbrot-in-obfuscated-python/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Here’s a followup to last month’s post about Penrose Tiling in
Obfuscated Python.
The Mandelbrot set is a traditional favorite among authors of
obfuscated code. You can find obfuscated code in C, Perl, Haskell,
Python and many other languages. Nearly all examples render the
Mandelbrot set as ASCII art.
The following Python script, on the other hand, begins as ASCII art:&lt;/p&gt;
&lt;p&gt;_ _ = (
255,
lambda
V ,B,c
:c and Y(V&lt;em&gt;V+B,B, c
-1)if(abs(V)&amp;lt;6)else
( 2+c-4_abs(V)&lt;/em&gt;&lt;em&gt;-0.4)/i
) ;v, x=1500,1000;C=range(v*x
);import struct;P=struct.pack;M,&lt;br&gt;
j =&amp;rsquo;&amp;lt;qiihhhh &amp;lsquo;,open(&amp;lsquo;M.bmp&amp;rsquo;,&amp;lsquo;wb&amp;rsquo;).write
for X in j(&amp;lsquo;BM&amp;rsquo;+P(M,v_x_3+26,26,12,v,x,1,24))or C:
i ,Y=&lt;/em&gt;;j(P(&amp;lsquo;BBB&amp;rsquo;,_(lambda T:(T_80+T__9
_i-950_T &lt;em&gt;&lt;em&gt;99,T&lt;em&gt;70-880&lt;/em&gt;T&lt;/em&gt;&lt;em&gt;18+701&lt;/em&gt;
T __9 ,T*i&lt;/em&gt;*(1-T*_45_2)))(sum(
[ Y(0,(A%3/3.+X%v+(X/v+
A/3/3.-x/2)/1j)*2.5
/x -2.7,i)**2 for &lt;br&gt;
A in C
[:9]])
/9)
) )&lt;/p&gt;</description></item><item><title>Sin dejar rastro, el ciberactivista paranoico</title><link>http://karpoke.ignaciocano.com/2012/12/30/sin-dejar-rastro-el-ciberactivista-paranoico/</link><pubDate>Sun, 30 Dec 2012 14:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/30/sin-dejar-rastro-el-ciberactivista-paranoico/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Ser ciberactivista cada día es más peligroso en este país donde
asistimos boquiabiertos a la continua detención de personas que han
participado en manifestaciones¦ o que iban a hacerlo como sucedió con
las detenciones preventivas de miembros de la Coordinadora 25S.&lt;/p&gt;
&lt;p&gt;Que no tenemos nada que ocultar es un pensamiento generalizado, pero
no es cierto, máxime cuando se pretende criminalizar hasta la
convocatoria de manifestaciones a través de las redes sociales.&lt;/p&gt;</description></item><item><title>Kbuild: the Linux Kernel Build System</title><link>http://karpoke.ignaciocano.com/2012/12/30/kbuild-the-linux-kernel-build-system/</link><pubDate>Sun, 30 Dec 2012 14:34:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/30/kbuild-the-linux-kernel-build-system/</guid><description>&lt;blockquote&gt;
&lt;p&gt;One amazing thing about Linux is that the same code base is used for a
different range of computing systems, from supercomputers to very tiny
embedded devices. If you stop for a second and think about it, Linux
is probably the only OS that has a unified code base. For example,
Microsoft and Apple use different kernels for their desktop and mobile
OS versions (Windows NT/Windows CE and OS X/iOS). Two of the reasons
this is possible on Linux are that the kernel has many abstraction
layers and levels of indirection and because its build system allows
for creating highly customized kernel binary images.&lt;/p&gt;</description></item><item><title>100 Diagrams That Changed the World</title><link>http://karpoke.ignaciocano.com/2012/12/30/100-diagrams-that-changed-the-world/</link><pubDate>Sun, 30 Dec 2012 14:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/30/100-diagrams-that-changed-the-world/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Since the dawn of recorded history, we’ve been using visual depictions
to map the Earth, order the heavens, make sense of time, dissect the
human body, organize the natural world, perform music, and even
concretize abstract concepts like consciousness and love. 100 Diagrams
That Changed the World (UK; public library) by investigative
journalist and documentarian Scott Christianson chronicles the history
of our evolving understanding of the world through humanity’s most
groundbreaking sketches, illustrations, and drawings, ranging from
cave paintings to The Rosetta Stone to Moses Harris’s color wheel to
Tim Berners-Lee’s flowchart for a ”mesh” information management
system, the original blueprint for the world wide web.&lt;/p&gt;</description></item><item><title>Solucionado el error "Fontconfig warning: reading configurations from ~/.fonts.conf is deprecated." en Ubuntu</title><link>http://karpoke.ignaciocano.com/2012/12/23/solucionado-el-error-fontconfig-warning-reading-configurations-from-fonts-conf-is-deprecated-en-ubuntu/</link><pubDate>Sun, 23 Dec 2012 13:51:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/23/solucionado-el-error-fontconfig-warning-reading-configurations-from-fonts-conf-is-deprecated-en-ubuntu/</guid><description>&lt;p&gt;En Ubuntu, si tenemos el archivo de configuración &lt;code&gt;~./fonts.conf&lt;/code&gt; y
lanzamos una aplicación que lo utilice, es posible que nos aparezca un
error como el siguiente:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Fontconfig warning: &amp;#34;/etc/fonts/conf.d/50-user.conf&amp;#34;, line 9: reading configurations from ~/.fonts.conf is deprecated.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;El motivo, &lt;a href="http://askubuntu.com/questions/206271/fontconfig-warning"&gt;tal como apunta Githlar en este foro&lt;/a&gt;, es que
&lt;code&gt;~/.fonts.conf&lt;/code&gt; será eliminado en el futuro. La solución pasa por mover
el fichero a su nuevo emplazamiento (es posible que necesitemos primero
crear el directorio destino):&lt;/p&gt;</description></item><item><title>etckeeper, control de versiones del directorio /etc</title><link>http://karpoke.ignaciocano.com/2012/12/21/etckeeper-control-de-versiones-del-directorio-etc/</link><pubDate>Fri, 21 Dec 2012 16:41:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/21/etckeeper-control-de-versiones-del-directorio-etc/</guid><description>&lt;p&gt;&lt;code&gt;etckeeper&lt;/code&gt; permite utilizar una herramienta de control de versiones
para registrar los cambios hechos en los ficheros del directorio &lt;code&gt;/etc&lt;/code&gt;.
Se pueden utilizar varias herramientas de control de versiones, como
Bazaar, Git, Mercurial o Darcs.&lt;/p&gt;
&lt;p&gt;Aunque puede ser de gran ayuda tener un historial de los cambios en los
ficheros del directorio &lt;code&gt;/etc&lt;/code&gt;, no debemos olvidar que puede que se
estén copiando ficheros que deberían permanecer secretos, como por
ejemplo &lt;code&gt;/etc/shadow&lt;/code&gt;. Al repositorio sólo puede acceder el
administrador del sistema, pero deberemos tener en cuenta esto si, por
ejemplo, copiamos el repositorio.&lt;/p&gt;</description></item><item><title>Descargando torrents en modo paranoico con Transmission</title><link>http://karpoke.ignaciocano.com/2012/12/19/descargando-torrents-en-modo-paranoico-con-transmission/</link><pubDate>Wed, 19 Dec 2012 18:15:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/19/descargando-torrents-en-modo-paranoico-con-transmission/</guid><description>&lt;p&gt;Si utilizamos Transmission para descargar &lt;em&gt;torrents&lt;/em&gt; podemos activar dos
características interesantes: cifrado de la conexión y uso de listas de
bloqueo de IPs.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Preferencias del Transmission" loading="lazy" src="http://karpoke.ignaciocano.com/images/preferencias-transmission-300x173.png"&gt;&lt;/p&gt;
&lt;p&gt;Vamos al menú Editar &amp;gt; Preferencias &amp;gt; Privacidad:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lista de bloqueos&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;- Activar lista de bloqueo:
&amp;lt;http://list.iblocklist.com/?list=bt_level1&amp;amp;fileformat=p2p&amp;amp;archiveformat=gz&amp;gt;
- Activar actualizaciones automáticas
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;Privacidad&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;- Modo de cifrado: Requerir cifrado
- Usar PEX para buscar más pares
- Usar DHT para buscar más pares
- Usar el descubridor de pares locales para buscar más pares
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h4 id="actualizado-el-12-de-abril-de-2015"&gt;Actualizado el 12 de abril de 2015&lt;/h4&gt;
&lt;p&gt;En las versiones actuales de Transmission, las opciones de PEX y DHT
están en la pestaña de Red.&lt;/p&gt;</description></item><item><title>Does rooting your device void your statutory warranty?</title><link>http://karpoke.ignaciocano.com/2012/12/19/does-rooting-your-device-void-your-statutory-warranty/</link><pubDate>Wed, 19 Dec 2012 17:35:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/19/does-rooting-your-device-void-your-statutory-warranty/</guid><description>&lt;blockquote&gt;
&lt;p&gt;No.
Just the fact that you modified or changed the software of your
device, is not a sufficient reason to void your statutory warranty. As
long as you have bought the device as a consumer in the European
Union.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Matija Å uklje, Carlo Piana | &lt;a href="http://fsfe.org/freesoftware/legal/flashingdevices.en.html"&gt;fsfe.org&lt;/a&gt; | Ismael Callejas
&lt;a href="http://www.elandroidelibre.com/2012/11/no-pierdes-la-garantia-por-rootear-y-flasehar-tu-movil-en-europa.html"&gt;elandroidelibre.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 interpretaciones de los viajes en el tiempo y visiones del futuro en la ciencia ficción</title><link>http://karpoke.ignaciocano.com/2012/12/19/10-interpretaciones-de-los-viajes-en-el-tiempo-y-visiones-del-futuro-en-la-ciencia-ficcion/</link><pubDate>Wed, 19 Dec 2012 00:35:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/19/10-interpretaciones-de-los-viajes-en-el-tiempo-y-visiones-del-futuro-en-la-ciencia-ficcion/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Desde que en 1781 apareció la obra ”Año 7603”, primera en la que se
habla de un viaje en el tiempo, mucho se ha escrito sobre el tema en
la ciencia ficción, sobre posibles paradojas, sobre la posibilidad o
no de cambiar los acontecimientos, etcétera. En cada obra, los efectos
de dichos viajes se interpretan de forma distinta. Y eso es lo que
vamos a ver aquí, 10 interpretaciones en la ciencia ficción sobre lo
que puede pasar cuando se conoce el futuro, ya sea conocido por viajes
en el tiempo, predicciones u otros medios.&lt;/p&gt;</description></item><item><title>Noam Chomsky. La lingüistica, la informática y el activismo</title><link>http://karpoke.ignaciocano.com/2012/12/18/noam-chomsky-la-linguistica-la-informatica-y-el-activismo/</link><pubDate>Tue, 18 Dec 2012 17:05:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/18/noam-chomsky-la-linguistica-la-informatica-y-el-activismo/</guid><description>&lt;blockquote&gt;
&lt;p&gt;En cuanto a la relación de Chomsky con la informática proviene de sus
enormes aportaciones a la Teoría de Autómatas y al estudio de los
lenguajes formales, donde sus ideas se aplican a la perfección. Dichas
aportaciones han resultado elementos indispensables para la
construcción de compiladores y traductores que puedan servir de
intérpretes válidos entre las órdenes que dan los seres humanos y su
correcta recepción y aplicación por máquinas automáticas. Puede
decirse que el papel desempeñado por Chomsky ha resultado crucial en
este importante campo, pues fue imprescindible para dar el siguiente
paso tras los primeros computadores, el ENIAC o el propio ACE de
Turing, programados directamente en código binario, de forma que a
mediados de 1954 ya influyó en la especificación del borrador The IBM
Mathematical Formula Translating System, origen del lenguaje Fortran,
y también John Backus adoptó sus reglas para describir la sintaxis de
Algol, origen de la notación Backus-Naur.&lt;/p&gt;</description></item><item><title>10 PRINT CHR$(205.5+RND(1)); : GOTO 10</title><link>http://karpoke.ignaciocano.com/2012/12/18/10-print-chr205-5rnd1-goto-10/</link><pubDate>Tue, 18 Dec 2012 16:50:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/18/10-print-chr205-5rnd1-goto-10/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This book takes a single line of code”the extremely concise BASIC
program for the Commodore 64 inscribed in the title”and uses it as a
lens through which to consider the phenomenon of creative computing
and the way computer programs exist in culture. The authors of this
collaboratively written book treat code not as merely functional but
as a text”in the case of 10 PRINT, a text that appeared in many
different printed sources”that yields a story about its making, its
purpose, its assumptions, and more. They consider randomness and
regularity in computing and art, the maze in culture, the popular
BASIC programming language, and the highly influential Commodore 64
computer.&lt;/p&gt;</description></item><item><title>¿Cómo funciona la red Tor?</title><link>http://karpoke.ignaciocano.com/2012/12/18/como-funciona-la-red-tor/</link><pubDate>Tue, 18 Dec 2012 13:46:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/18/como-funciona-la-red-tor/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Tor es una red que implementa una técnica llamada Onion Routing
(enrutado cebolla en castellano, aunque suena bastante peor), diseñada
con vistas a proteger las comunicaciones en la Marina de los Estados
Unidos. La ideas es cambiar el modo de enrutado tradicional de
Internet para garantizar el anonimato y privacidad de los datos.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Guillermo Julián | &lt;a href="http://www.genbeta.com/seguridad/como-funciona-la-red-tor"&gt;genbeta.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>El camino a un mejor programador</title><link>http://karpoke.ignaciocano.com/2012/12/17/el-camino-a-un-mejor-programador/</link><pubDate>Mon, 17 Dec 2012 01:08:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/17/el-camino-a-un-mejor-programador/</guid><description>&lt;blockquote&gt;
&lt;p&gt;;`El camino a un mejor programador;’ es un libro que recopila
artículos sobre ingeniería informática escritos por Esteban Manchado
Velázquez, Joaquín Caraballo Moreno y Yeray Darias Camacho.&lt;/p&gt;
&lt;p&gt;La mayoría de los artículos tratan sobre pruebas automáticas de una
manera u otra, pero el tema común es mejorar como profesional de la
informática.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://emanchado.github.com/camino-mejor-programador/"&gt;emanchado.github.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>A successful Git branching model</title><link>http://karpoke.ignaciocano.com/2012/12/16/a-successful-git-branching-model/</link><pubDate>Sun, 16 Dec 2012 14:46:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/16/a-successful-git-branching-model/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In this post I present the development model that I’ve introduced for
all of my projects (both at work and private) about a year ago, and
which has turned out to be very successful. I’ve been meaning to write
about it for a while now, but I’ve never really found the time to do
so thoroughly, until now. I won’t talk about any of the projects’
details, merely about the branching strategy and release management.&lt;/p&gt;</description></item><item><title>Ten Simple Rules for the Open Development of Scientific Software</title><link>http://karpoke.ignaciocano.com/2012/12/16/ten-simple-rules-for-the-open-development-of-scientific-software/</link><pubDate>Sun, 16 Dec 2012 14:44:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/16/ten-simple-rules-for-the-open-development-of-scientific-software/</guid><description>&lt;blockquote&gt;
&lt;p&gt;If you have the choice, embracing an open approach to development has
tremendous benefits. It allows you to build on the work of other
scientists, and enables others to build on your own efforts. To make
the development of open scientific software more rewarding and the
experience of using software more positive, the following ten rules
are intended to serve as a guide for any computational scientist.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Andreas PrliÄ‡1, James B. Procter | &lt;a href="http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1002802"&gt;ploscompbiol.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Merge branch ’x86-nuke386-for-linus’</title><link>http://karpoke.ignaciocano.com/2012/12/16/merge-branch-x86-nuke386-for-linus/</link><pubDate>Sun, 16 Dec 2012 13:41:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/16/merge-branch-x86-nuke386-for-linus/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Pull ”Nuke 386-DX/SX support” from Ingo Molnar: ”This tree removes
ancient-386-CPUs support and thus zaps quite a bit of complexity:&lt;/p&gt;
&lt;p&gt;24 files changed, 56 insertions(+), 425 deletions(-)&lt;/p&gt;
&lt;p&gt;&amp;hellip; which complexity has plagued us with extra work whenever we wanted to
change SMP primitives, for years.&lt;/p&gt;
&lt;p&gt;Unfortunately there’s a nostalgic cost: your old original 386 DX33 system
from early 1991 won’t be able to boot modern Linux kernels anymore. Sniff.”&lt;/p&gt;
&lt;p&gt;I’m not sentimental. Good riddance.&lt;/p&gt;</description></item><item><title>Pong cumple 40 años: un videojuego tan antiguo, tan antiguo que ni siquiera era digital</title><link>http://karpoke.ignaciocano.com/2012/12/16/pong-cumple-40-anos-un-videojuego-tan-antiguo-tan-antiguo-que-ni-siquiera-era-digital/</link><pubDate>Sun, 16 Dec 2012 13:17:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/16/pong-cumple-40-anos-un-videojuego-tan-antiguo-tan-antiguo-que-ni-siquiera-era-digital/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El 29 de noviembre de 1972, hace ahora 40 años, un extraño artilugio
salía del taller de Atari, por aquel entonces una jovencísima empresa
que pretendía prácticamente inventar un nuevo mercado, con conceptos y
aparatos como los videojuegos, las videoconsolas y las máquinas
recreativas de videojuegos.&lt;/p&gt;
&lt;p&gt;Se llamaba Pong y era un enorme armario de madera con un tubo de rayos
catódicos en blanco y negro a modo de pantalla, unas palancas a modo
de mandos y una ranura en la que echar monedas. Esos fueron los
humildes comienzos de una compañía pionera fundada por Nolan Bushnell
y Ted Dabney en Estados Unidos el verano de ese mismo año. El juego en
sí lo desarrolló Allan Alcorn, un ingeniero cuyo nombre también ha
pasado a los anales de la informática y la industria del
entretenimiento.&lt;/p&gt;</description></item><item><title>Cómo trabajar con vhdl usando software libre</title><link>http://karpoke.ignaciocano.com/2012/12/15/como-trabajar-con-vhdl-usando-software-libre/</link><pubDate>Sat, 15 Dec 2012 19:25:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/15/como-trabajar-con-vhdl-usando-software-libre/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Las clases de ingeniería electrónica suelen dictarse usando
herramientas propietarias, así que siempre paso algunas horas buscando
hacer mis trabajos con software libre. Por esta razón, he decidido
compartir la siguiente guía.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» pandacris | &lt;a href="http://usemoslinux.blogspot.com/2012/12/como-trabajar-con-vhdl-usando-software.html"&gt;usemoslinux.blogspot.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Jelly Bean con AndroVM en VirtualBox OSE</title><link>http://karpoke.ignaciocano.com/2012/12/15/jelly-bean-con-androvm-en-virtualbox-ose/</link><pubDate>Sat, 15 Dec 2012 18:40:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/15/jelly-bean-con-androvm-en-virtualbox-ose/</guid><description>&lt;p&gt;&lt;a href="http://androvm.org/"&gt;AndroVM&lt;/a&gt; es una máquina virtual para ejecutar Android. Si queremos
probarla, lo único que tenemos que hacer es &lt;a href="http://androvm.org/blog/download/"&gt;descargarla&lt;/a&gt; y configurar
VirtualBox OSE para ejecutarla.&lt;/p&gt;
&lt;p&gt;&lt;img alt="jelly bean" loading="lazy" src="http://karpoke.ignaciocano.com/images/jelly-bean-300x183.png"&gt;&lt;/p&gt;
&lt;h2 id="descarga"&gt;Descarga&lt;/h2&gt;
&lt;p&gt;Desde la página de &lt;a href="http://androvm.org/blog/download/"&gt;descargas&lt;/a&gt; nos descargamos el fichero
OVA, por ejemplo, &lt;strong&gt;vbox86tp version with gapps &amp;amp; houdini&lt;/strong&gt; (hay varias
versiones, pero ésta es la más completa), y el reproductor para nuestra
plataforma, por ejemplo &lt;strong&gt;Linux 32-bit&lt;/strong&gt;, que emplearemos si queremos
utilizar la aceleración hardware OpenGL.&lt;/p&gt;</description></item><item><title>Hacking my vagina</title><link>http://karpoke.ignaciocano.com/2012/12/15/hacking-my-vagina/</link><pubDate>Sat, 15 Dec 2012 16:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/15/hacking-my-vagina/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This project has been an astonishing little journey. Many of my
previous projects were characterized by an amazing outpouring of
effort to build something highly intricate and ultimately invisible.
This is the opposite kind of project. A little bit of work and a
little custom design to create something new and exciting that I can
immediately use in my everyday life. It also happens to be a sex toy.
In other words, I wanted to hack something I actually use: my vagina.&lt;/p&gt;</description></item><item><title>The Big Internet Museum</title><link>http://karpoke.ignaciocano.com/2012/12/15/the-big-internet-museum/</link><pubDate>Sat, 15 Dec 2012 13:15:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/15/the-big-internet-museum/</guid><description>&lt;blockquote&gt;
&lt;p&gt;You are about to enter the Big Internet Museum. Explore an interactive
and ever-growing collection about the Internet and its remarkable
graphic interface: the World Wide Web.&lt;/p&gt;
&lt;p&gt;By the way, we don’t have a building. The reason is simple: our
collection only exists online. Aside from that it’s a museum like any
other – with curators, a diverse permanent collection, temporary
exhibitions, different wings, donations, and more. In the Big Internet
Museum you can have your name printed on the wall by submitting a
piece to the collection! We might even open a gift shop. There, we’ve
said it.&lt;/p&gt;</description></item><item><title>2012: What a Year for Linux</title><link>http://karpoke.ignaciocano.com/2012/12/15/2012-what-a-year-for-linux/</link><pubDate>Sat, 15 Dec 2012 13:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/15/2012-what-a-year-for-linux/</guid><description>&lt;blockquote&gt;
&lt;p&gt;2012 has been another year of records for Linux. The operating system is the
fastest growing platform across multiple industries and is inspiring new
projects every single day. Join us as we review this amazing year and
celebrate Linux and its global community of developers, contributors and
sponsors. For more information about Linux, please visit
&lt;a href="http://www.linuxfoundation.org"&gt;linuxfoundation.org&lt;/a&gt; and &lt;a href="http://www.linux.com."&gt;linux.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Third-party Video and Photo Credits In order of appearance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Technology Academy of Finland&lt;/li&gt;
&lt;li&gt;Amazon (Kindle)&lt;/li&gt;
&lt;li&gt;Google (Chromebook)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Unfx2qCj6Ao?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» TheLinuxFoundation | &lt;a href="https://www.youtube.com/watch?v=Unfx2qCj6Ao"&gt;youtube.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Subdominios dinámicos en un alojamiento con dominio dinámico en OVH</title><link>http://karpoke.ignaciocano.com/2012/12/15/subdominios-dinamicos-en-un-alojamiento-con-dominio-dinamico-en-ovh/</link><pubDate>Sat, 15 Dec 2012 01:05:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/15/subdominios-dinamicos-en-un-alojamiento-con-dominio-dinamico-en-ovh/</guid><description>&lt;p&gt;Lo que se pretende es conseguir una manera rápida y sencilla de poner
sitios web &lt;em&gt;online&lt;/em&gt;. Una vez configurado el servidor web y el servidor
DNS, lo único que tendremos que hacer para tener accesible un nuevo
sitio web será colocarlo en un directorio concreto del servidor y
podremos acceder a él a través del subdominio con el nombre del
directorio. Por ejemplo, si creamos la web &lt;code&gt;web1&lt;/code&gt;, automáticamente será
accesible desde &lt;code&gt;web1.example.com&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Lista de páginas recomendadas para aprender inglés</title><link>http://karpoke.ignaciocano.com/2012/12/12/lista-de-paginas-recomendadas-para-aprender-ingles/</link><pubDate>Wed, 12 Dec 2012 13:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/12/lista-de-paginas-recomendadas-para-aprender-ingles/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A continuación os pongo una serie de páginas webs que considero
imprescindibles en caso de tener cualquier tipo de duda. Se incluyen
tanto páginas en castellano como en inglés, y junto a la página una
pequeña descripción de lo que podéis encontrar en ella. Espero que os
resulte útil.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Alber | &lt;a href="http://eingleses.com/2012/11/03/lista-de-paginas-recomendadas-para-aprender-ingles/"&gt;eingleses.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Una abadía con muros de plata</title><link>http://karpoke.ignaciocano.com/2012/12/12/una-abadia-con-muros-de-plata/</link><pubDate>Wed, 12 Dec 2012 13:29:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/12/12/una-abadia-con-muros-de-plata/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Tiene veinticinco años y es, posiblemente, la `abadía’ más joven de
las que pueblan el territorio español aunque su ubicación no es
exacta: vive en todos y cada uno de los microordenadores de 8 bits que
un día la alojaron en sus monitores.&lt;/p&gt;
&lt;p&gt;La Abadía del Crimen cumple un cuarto siglo y lo hace como uno de los
referentes máximos del videojuego español y convertida en un objeto de
culto tanto para aquellos que pudieron catarla en su día como para
aquellos que la han descubierto con unos años de retraso.&lt;/p&gt;</description></item><item><title>Powerful Command Line Tools For Developers</title><link>http://karpoke.ignaciocano.com/2012/11/03/powerful-command-line-tools-for-developers/</link><pubDate>Sat, 03 Nov 2012 14:13:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/11/03/powerful-command-line-tools-for-developers/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Good tools are invaluable in figuring out where problems lie, and can
also help to prevent problems from occurring in the first place, or
just help you to be more efficient in general. Command line tools are
particularly useful because they lend themselves well to automation
and scripting, where they can be combined and reused in all sorts of
different ways. Here we cover six particularly powerful and versatile
tools which can help make your life a little bit easier.&lt;/p&gt;</description></item><item><title>IMDB Top 250 in 2 1/2 Minutes</title><link>http://karpoke.ignaciocano.com/2012/11/03/imdb-top-250-in-2-12-minutes/</link><pubDate>Sat, 03 Nov 2012 13:49:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/11/03/imdb-top-250-in-2-12-minutes/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This is one incredible list of films/movies. If Peter Weyland wanted
David to learn about cinema while the crew of Prometheus was still in
hyper sleep, he’d probably have him go down the IMDB Top 250. This
list does change infrequently, and I began the project over a month
prior to November 1, 2012, so attention to my haters&amp;hellip;Yes&amp;hellip;I KNOW
some of these movies are not on the top 250. 53 Titles to be exact
(as of 11/1/12). However, none of my haters can tell me that any of
these 303 titles do not exist on IMDB.&lt;/p&gt;</description></item><item><title>La idea matemática que hizo volar al Voyager</title><link>http://karpoke.ignaciocano.com/2012/10/30/la-idea-matematica-que-hizo-volar-al-voyager/</link><pubDate>Tue, 30 Oct 2012 12:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/30/la-idea-matematica-que-hizo-volar-al-voyager/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La sonda espacial Voyager ha cautivado al mundo con su proeza en los
confines del Sistema Solar, pero su lanzamiento en 1977 sólo fue
posible gracias a las ideas matemáticas y la persistencia de un
estudiante de doctorado que descubrió cómo catapultar sondas al
espacio.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Christopher Riley y Dallas Campbell | &lt;a href="http://www.bbc.co.uk/mundo/noticias/2012/10/121024_ciencia_matematicas_voyager_np.shtml"&gt;bbc.co.uk&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Por Que Tu Cámara No Importa</title><link>http://karpoke.ignaciocano.com/2012/10/30/por-que-tu-camara-no-importa/</link><pubDate>Tue, 30 Oct 2012 12:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/30/por-que-tu-camara-no-importa/</guid><description>&lt;blockquote&gt;
&lt;p&gt;¿Porqué es que fotógrafos cargados con los artefactos más
extraordinarios, que inclusive usan Internet para conseguir las
coordenadas exactas de G.P.S donde Jack o Ansel sacaban sus fotos,
llegando hasta esas ubicaciones geográficas con la imagen en la mano
para poder sacar una copia igual (ilegal por el Derecho Registral de
los EE.UU. y por el sentido común), consiguen algo que puede parecer
similar, pero que carece de todo el impacto y la emoción del original
que creyeron copiar?&lt;/p&gt;</description></item><item><title>Transformada de Fourier discreta en Python con SciPy</title><link>http://karpoke.ignaciocano.com/2012/10/29/transformada-de-fourier-discreta-en-python-con-scipy/</link><pubDate>Mon, 29 Oct 2012 10:00:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/29/transformada-de-fourier-discreta-en-python-con-scipy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;En este artículo vamos a ver cómo calcular la transformada de Fourier
discreta (o DFT) de una señal en Python utilizando la transformada
rápida de Fourier (o FFT) implementada en SciPy. El análisis de
Fourier es la herramienta fundamental en procesamiento de señales y
resulta útil en otras áreas como en la resolución de ecuaciones
diferenciales o en el tratamiento de imágenes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Juanlu001 | &lt;a href="https://pybonacci.wordpress.com/2012/09/29/transformada-de-fourier-discreta-en-python-con-scipy/"&gt;pybonacci.wordpress.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>A Field Guide To Mobile App Testing</title><link>http://karpoke.ignaciocano.com/2012/10/28/a-field-guide-to-mobile-app-testing/</link><pubDate>Sun, 28 Oct 2012 13:07:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/28/a-field-guide-to-mobile-app-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Testers are often thought of as people who find bugs, but have you
ever considered how testers actually approach testing? Do you ever
wonder what testers actually do, and how they can add value to a
typical technology project?&lt;/p&gt;
&lt;p&gt;I’d like to take you through the thought process of testers and
discuss the types of things they consider when testing a mobile app.
The intention here is to highlight their thought processes and to show
the coverage and depth that testers often go to.&lt;/p&gt;</description></item><item><title>High Resolution Time</title><link>http://karpoke.ignaciocano.com/2012/10/28/high-resolution-time/</link><pubDate>Sun, 28 Oct 2012 13:05:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/28/high-resolution-time/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This specification defines a JavaScript interface that provides the
current time in sub-millisecond resolution and such that it is not
subject to system clock skew or adjustments.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Jatinder Mann | &lt;a href="http://www.w3.org/TR/2012/PR-hr-time-20121023/"&gt;w3.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Envenenamiento de cabeceras en Django 1.3 y 1.4</title><link>http://karpoke.ignaciocano.com/2012/10/28/envenenamiento-de-cabeceras-en-django-1-3-y-1-4/</link><pubDate>Sun, 28 Oct 2012 12:57:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/28/envenenamiento-de-cabeceras-en-django-1-3-y-1-4/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Django, framework de desarrollo web basado en Python ha actualizado
las ramas 1.3 y 1.4 para dar solución a una vulnerabilidad que podría,
mediante técnicas de envenenamiento de cabeceras (”Header poisoning”),
redireccionar a un usuario a un sitio malicioso o incluso el robo de
credenciales.&lt;/p&gt;
&lt;p&gt;Para realizar algunas operaciones, Django extrae el nombre del dominio
de la cabecera ”Host” enviada. La vulnerabilidad (CVE-2012-4520)
reside en el parser del método django.http.HttpRequest.get_host(),
que extrae esta cabecera ”Host” incorrectamente.&lt;/p&gt;</description></item><item><title>Automating with convention: Introducing sub</title><link>http://karpoke.ignaciocano.com/2012/10/28/automating-with-convention-introducing-sub/</link><pubDate>Sun, 28 Oct 2012 12:38:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/28/automating-with-convention-introducing-sub/</guid><description>&lt;blockquote&gt;
&lt;p&gt;When I started my on-call shifts, we had pretty little in the way of
automation for day-to-day issues. Tasks like SSH’ing into our cluster,
starting a Rails console, or doing a deep search through our gigantic
mail directories, were either shelved away in someone’s bashrc,
history log, or just ingrained into someone’s memory. This pain was
also felt by a few other of my fellow programmers, and we started
cobbling together a Git repo simply named ”37s shell scripts”.&lt;/p&gt;</description></item><item><title>A dash of algebra on wireless networks promises to boost bandwidth tenfold, without new infrastructure</title><link>http://karpoke.ignaciocano.com/2012/10/28/a-dash-of-algebra-on-wireless-networks-promises-to-boost-bandwidth-tenfold-without-new-infrastructure/</link><pubDate>Sun, 28 Oct 2012 12:01:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/28/a-dash-of-algebra-on-wireless-networks-promises-to-boost-bandwidth-tenfold-without-new-infrastructure/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Academic researchers have improved wireless bandwidth by an order of
magnitude”not by adding base stations, tapping more spectrum, or
cranking up transmitter wattage, but by using algebra to eliminate the
network-clogging task of resending dropped packets of data.&lt;/p&gt;
&lt;p&gt;By providing new ways for mobile devices to solve for missing data,
the technology not only eliminates this wasteful process but also can
seamlessly weave data streams from Wi-Fi and LTE”a leap forward from
other approaches that toggle back and forth. ”Any IP network will
benefit from this technology,” says Sheau Ng, vice president for
research and development at NBC Universal.&lt;/p&gt;</description></item><item><title>Stable Linux kernel hit by ext4 data corruption bug</title><link>http://karpoke.ignaciocano.com/2012/10/26/stable-linux-kernel-hit-by-ext4-data-corruption-bug/</link><pubDate>Fri, 26 Oct 2012 08:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/26/stable-linux-kernel-hit-by-ext4-data-corruption-bug/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Linux kernel developer Theodore ”Ted” Ts’o has released a series of
patches for what he has called ”a Lance Armstrong bug” in the kernel,
meaning behaviour that does not trip up tests but nevertheless makes
the kernel work differently than intended. A user had reported a
problem that caused data loss; the kernel developers quickly narrowed
this down to a fault in the ext4 implementation that was introduced
with the release of Linux 3.6.2 just over a week ago. Apparently, the
data corruption bug was hard to track down as it only manifests itself
if a system is rebooted twice in a relatively short period of time.&lt;/p&gt;</description></item><item><title>Pocos elementos forman sistemas complejos en el mundo físico, biológico o digital</title><link>http://karpoke.ignaciocano.com/2012/10/20/pocos-elementos-forman-sistemas-complejos-en-el-mundo-fisico-biologico-o-digital/</link><pubDate>Sat, 20 Oct 2012 16:22:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/20/pocos-elementos-forman-sistemas-complejos-en-el-mundo-fisico-biologico-o-digital/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Cuando observamos el mundo físico que nos rodea, nos maravillamos de
su &lt;em&gt;extrema variedad&lt;/em&gt; y complejidad. Al examinar el mundo vivo no deja
de sorprendernos la riqueza de animales y plantas que encontramos por
doquier. Sería iluso pretender leer los libros que se han escrito en
la historia. La música ofrece una enorme repertorio de temas que
escuchar. Y el mundo digital sorprende por la desbordante cantidad de
contenidos que nos presenta. Pero todos estos complejos mundos tienen
algo en común: están compuestos por una &lt;em&gt;pequeña cantidadde elementos
combinados en gigantescos números&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>The History of Film</title><link>http://karpoke.ignaciocano.com/2012/10/15/the-history-of-film/</link><pubDate>Mon, 15 Oct 2012 20:37:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/15/the-history-of-film/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This graphic chronicles the history of feature films from the origins
in the 1910s until the present day. More than 2000 of the most
important feature-length films are mapped into 20 genres spanning 100
years. Films selected to be included have: won important awards such
as the best picture Academy Award; achieved critical acclaim according
to recognized film critics; are considered to be key genre films by
experts; and/or attained box office success.&lt;/p&gt;</description></item><item><title>El salto de Felix Baumgartner en Python</title><link>http://karpoke.ignaciocano.com/2012/10/15/el-salto-de-felix-baumgartner-en-python/</link><pubDate>Mon, 15 Oct 2012 20:15:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/15/el-salto-de-felix-baumgartner-en-python/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Supongo que todos estáis al tanto de la hazaña de Felix Baumgartner,
el hombre que ha saltado desde una altura de más de 120000 pies desde
un globo, convirtiéndose en el hombre que más alto ha saltado y el que
ha alcanzado la mayor velocidad sin ayuda mecánica como parte de la
misión Red Bull Stratos.&lt;/p&gt;
&lt;p&gt;En Pybonacci somos tan frikis, que vamos a visualizar el salto
supersónico de Baumgartner como mejor se nos da: con Python ;)&lt;/p&gt;</description></item><item><title>SOLID CSS</title><link>http://karpoke.ignaciocano.com/2012/10/09/solid-css/</link><pubDate>Tue, 09 Oct 2012 21:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/09/solid-css/</guid><description>&lt;blockquote&gt;
&lt;p&gt;CSS was meant to style academic documents and simple sites (eg. wiki,
blogs) where the cascade and descendant selectors makes a lot of
sense. Unfortunately many sites we build nowadays are way more complex
than that, and what used to work on simple projects doesn’t scale very
well. We need to find smarter ways to code CSS to avoid the common
issues and re-think the way we do our work. We should learn from the
experience of other devs working in different domains, and apply into
our own domain. Things like separation of concerns, modularity,
encapsulation, DRY can (and should) be applied to large scale CSS
projects as well. The main problem is that most people who are good at
CSS doesn’t necessarily have a Computer Science background, most of
them started as designers and learned CSS by themselves (that was my
case¦). That’s the main reason why I’m writing this post.&lt;/p&gt;</description></item><item><title>Android, iOS, tiempos de respuestas y por qué nada es gratis en sistemas informáticos</title><link>http://karpoke.ignaciocano.com/2012/10/09/android-ios-tiempos-de-respuestas-y-por-que-nada-es-gratis-en-sistemas-informaticos/</link><pubDate>Tue, 09 Oct 2012 19:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/09/android-ios-tiempos-de-respuestas-y-por-que-nada-es-gratis-en-sistemas-informaticos/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Apple tomó muchas decisiones técnicas con el objetivo de mejorar la
”experiencia de usuario”, pero por sí mismas serían inútiles -o más
perjudiciales- si no van acompañadas de medidas de control estrictas.
Es fundamental el papel de los controles de las aplicaciones en el App
Store (¡ojo! no los justifico). Independientemente de otras
consideraciones políticas, dado su simplicidad y soluciones ad hoc, el
iOS sería muy fácil de ”abusar” por los desarrolladores y
aplicaciones.&lt;/p&gt;</description></item><item><title>Bash One-Liners Explained, Part III: All about redirections</title><link>http://karpoke.ignaciocano.com/2012/10/09/bash-one-liners-explained-part-iii-all-about-redirections/</link><pubDate>Tue, 09 Oct 2012 19:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/09/bash-one-liners-explained-part-iii-all-about-redirections/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Working with redirections in bash is really easy once you realize that
it’s all about manipulating file descriptors. When bash starts it
opens the three standard file descriptors: stdin (file descriptor 0),
stdout (file descriptor 1), and stderr (file descriptor 2). You can
open more file descriptors (such as 3, 4, 5, &amp;hellip;), and you can close
them. You can also copy file descriptors. And you can write to them
and read from them.&lt;/p&gt;</description></item><item><title>Using footnote in tables</title><link>http://karpoke.ignaciocano.com/2012/10/09/using-footnote-in-tables/</link><pubDate>Tue, 09 Oct 2012 17:46:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/09/using-footnote-in-tables/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Have you ever tried to add a footnote to a table inside the tabular
environment? Even though the index is printed, the search for the
actual footnote will be in vain.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Tom | &lt;a href="http://texblog.org/2012/02/03/using-footnote-in-a-table/"&gt;texblog.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>From SQL injection to shell</title><link>http://karpoke.ignaciocano.com/2012/10/08/from-sql-injection-to-shell/</link><pubDate>Mon, 08 Oct 2012 13:00:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/08/from-sql-injection-to-shell/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This course details the exploitation of SQL injection in a PHP based
website and how an attacker can use it to gain access to the
administration pages. Then, using this access, the attacker will be
able to gain code execution on the server.
The attack is divided into 3 steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Fingerprinting: to gather information on the web application and
technologies in use.&lt;/li&gt;
&lt;li&gt;Detection and exploitation of SQL injection: in this part, you
will learn how SQL injections work and how to exploit them in
order to retrieve information.&lt;/li&gt;
&lt;li&gt;Access to the administration pages and code execution: the last
step in which you will access the operating system and run
commands.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="https://www.pentesterlab.com/from_sqli_to_shell.html"&gt;pentesterlab.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>f2fs: introduce flash-friendly file system</title><link>http://karpoke.ignaciocano.com/2012/10/06/f2fs-introduce-flash-friendly-file-system/</link><pubDate>Sat, 06 Oct 2012 13:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/06/f2fs-introduce-flash-friendly-file-system/</guid><description>&lt;blockquote&gt;
&lt;p&gt;NAND flash memory-based storage devices, such as SSD, eMMC, and SD
cards, have
been widely being used for ranging from mobile to server systems.
Since they are
known to have different characteristics from the conventional
rotational disks,
a file system, an upper layer to the storage device, should adapt to
the changes
from the sketch.&lt;/p&gt;
&lt;p&gt;F2FS is a new file system carefully designed for the NAND flash
memory-based storage
devices. We chose a log structure file system approach, but we tried
to adapt it
to the new form of storage. Also we remedy some known issues of the
very old log
structured file system, such as snowball effect of wandering tree and
high cleaning
overhead.&lt;/p&gt;</description></item><item><title>Recopilación de relojes matemáticos</title><link>http://karpoke.ignaciocano.com/2012/10/05/recopilacion-de-relojes-matematicos/</link><pubDate>Fri, 05 Oct 2012 12:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/05/recopilacion-de-relojes-matematicos/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El tiempo&amp;hellip; ese bien tan preciado para muchos, tan desperdiciado por
la mayoría&amp;hellip; Eso que los relojes nos ayudan a medir o controlar a
diario.&lt;/p&gt;
&lt;p&gt;Hablemos de relojes. Los hay de muchísimos tipos: de muñeca, de pared,
analógicos, digitales, con números arábigos, con números romanos, o
hasta sin números. Y, evidentemente, los hay con motivos
friki-matemáticos. Y de esos son los que vamos a ver a continuación,
de relojes matemáticos.&lt;/p&gt;</description></item><item><title>Lostalgic</title><link>http://karpoke.ignaciocano.com/2012/10/05/lostalgic/</link><pubDate>Fri, 05 Oct 2012 12:39:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/05/lostalgic/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This project is based on the entire ABC’s LOST TV show scripts, 115
episodes in 7 seasons, that I managed to parse from Lostpedia. I also
parsed this page with additional information about hidden characters
relations.&lt;/p&gt;
&lt;p&gt;My aim for this project is not (only) to visualize some properties and
patterns out of the script but actually to allow to read and enjoy the
series in a different way.&lt;/p&gt;
&lt;p&gt;I plan to add new views (will inform through twitter), more aimed to
reveal global patterns in the script, and I will include cliffhangers
and writing teams information.&lt;/p&gt;</description></item><item><title>HoneyMap</title><link>http://karpoke.ignaciocano.com/2012/10/01/honeymap/</link><pubDate>Mon, 01 Oct 2012 11:40:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/10/01/honeymap/</guid><description>&lt;blockquote&gt;
&lt;p&gt;You are looking at the HoneyMap, a real-time world map which
visualizes attacks captured by honeypots of the Honeynet Project. Red
markers on the map represent attackers, yellow markers are targets
(honeypot sensors).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Florian Weingarte and Mark Schloesser | &lt;a href="http://map.honeycloud.net/"&gt;HoneyMap&lt;/a&gt; / &lt;a href="http://www.honeynet.org/"&gt;honeynet.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Autenticación hardware mediante un USB</title><link>http://karpoke.ignaciocano.com/2012/09/30/autenticacion-hardware-mediante-un-usb/</link><pubDate>Sun, 30 Sep 2012 13:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/30/autenticacion-hardware-mediante-un-usb/</guid><description>&lt;p&gt;&lt;a href="http://pamusb.org/"&gt;pam_usb&lt;/a&gt; es un módulo que permite añadir autenticación hardware
utilizando unidades de almacenamiento extraíbles &amp;ldquo;normales&amp;rdquo;, como
memorias USB, tarjetas SD/MMC, etc. Mediante &lt;code&gt;pamusb&lt;/code&gt; podemos
especificar que se ejecuten diversas acciones cuando reconoce el
dispositivo conectado, como por ejemplo iniciar sesión sin tener que
introducir la contraseña o desactivar el salvapantallas, por lo que se
puede utilizar para implantar un &lt;a href="http://karpoke.ignaciocano.com/2011/08/05/servicio-de-ssh-con-sistema-de-verificacion-en-dos-pasos-de-google-en-ubuntu-natty-narwhal/"&gt;sistema de autenticación en dos pasos
(2FA)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Sirve cualquier USB, ya que el módulo no modifica su contenido, sino que
comprueba el UUID, el número de serie, el fabricante y el modelo, por lo
que, aunque se copie, no se podrá suplantar fácilmente.&lt;/p&gt;</description></item><item><title>Major security vulnerability in some Samsung phones could trigger factory reset via web page</title><link>http://karpoke.ignaciocano.com/2012/09/26/major-security-vulnerability-in-some-samsung-phones-could-trigger-factory-reset-via-web-page/</link><pubDate>Wed, 26 Sep 2012 17:38:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/26/major-security-vulnerability-in-some-samsung-phones-could-trigger-factory-reset-via-web-page/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A major security vulnerability has been discovered in some
TouchWiz-based Samsung smartphones, including the Galaxy S2 and
certain Galaxy S3 models on older firmware. The bug was first
demonstrated days ago by security researcher Ravi Borgaonkar at the
Ekoparty security conference. It involves the use of a single line of
code in a malicious web page to immediately trigger a factory reset
without prompting the user, or allowing them to cancel the process.
Even more serious is the possibility that this could be paired with a
similar glitch to render the user’s SIM card inoperable. And as the
malicious code is in URI form, it can also be delivered via NFC or QR
code.&lt;/p&gt;</description></item><item><title>How To Ask Questions The Smart Way</title><link>http://karpoke.ignaciocano.com/2012/09/26/how-to-ask-questions-the-smart-way/</link><pubDate>Wed, 26 Sep 2012 10:13:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/26/how-to-ask-questions-the-smart-way/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In the world of hackers, the kind of answers you get to your technical
questions depends as much on the way you ask the questions as on the
difficulty of developing the answer. This guide will teach you how to ask
questions in a way more likely to get you a satisfactory answer.&lt;/p&gt;
&lt;p&gt;Now that use of open source has become widespread, you can often get as good
answers from other, more experienced users as from hackers. This is a Good
Thing; users tend to be just a little bit more tolerant of the kind of
failures newbies often have. Still, treating experienced users like hackers
in the ways we recommend here will generally be the most effective way to get
useful answers out of them, too.&lt;/p&gt;</description></item><item><title>Monitorizar el tamaño de un directorio con monit</title><link>http://karpoke.ignaciocano.com/2012/09/22/monitorizar-el-tamano-de-un-directorio-con-monit/</link><pubDate>Sat, 22 Sep 2012 15:17:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/22/monitorizar-el-tamano-de-un-directorio-con-monit/</guid><description>&lt;p&gt;&lt;code&gt;monit&lt;/code&gt; es un herramienta para monitorizar procesos, ficheros,
directorios y sistemas de ficheros, que permite enviar alertas cuando
suceden eventos tales como que un proceso no arranca, se incrementa la
carga del sistema o el uso de memoria por encima de un umbral
determinado, se modifican ficheros o directorios, etc.&lt;/p&gt;
&lt;p&gt;El problema es que, por ahora, no permite controlar que el tamaño de un
directorio, es decir, de los ficheros contenidos en él, supere cierto
valor. Sin embargo, podemos &lt;a href="https://lists.gnu.org/archive/html/monit-general/2009-01/msg00023.html"&gt;conseguir este resultado&lt;/a&gt; utilizando un
&lt;em&gt;script&lt;/em&gt; que se ejecute de forma periódica y que modifique la fecha de
un fichero concreto mientras el tamaño del directorio sea correcto. Este
fichero de control nos servirá para saber cuándo se ha superado el
limite.&lt;/p&gt;</description></item><item><title>Comprobar que no tenemos configurado Apache como un proxy abierto</title><link>http://karpoke.ignaciocano.com/2012/09/21/comprobar-que-no-tenemos-configurado-apache-como-un-proxy-abierto/</link><pubDate>Fri, 21 Sep 2012 16:53:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/21/comprobar-que-no-tenemos-configurado-apache-como-un-proxy-abierto/</guid><description>&lt;p&gt;Revistando &lt;em&gt;logs&lt;/em&gt; de Apache, he visto que tenía algunas entradas del
tipo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;93.174.93.52 - - [18/Sep/2012:02:23:11 +0200] &amp;#34;GET http://myproxylists.com/my-http-headers HTTP/1.1&amp;#34; 404 1046 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28 (.NET CLR 3.5.30729)&amp;#34;
93.174.93.52 - - [20/Sep/2012:08:21:08 +0200] &amp;#34;GET http://myproxylists.com/my-http-headers HTTP/1.1&amp;#34; 404 1046 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28 (.NET CLR 3.5.30729)&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Este suele ser el resultado de peticiones maliciosas que buscan
encontrar servidores &lt;em&gt;proxy&lt;/em&gt; abiertos. Si encontramos entradas de este
tipo, lo primero que deberíamos hacer es comprobar que tenemos
configurado el servidor correctamente, para no permitir hacer de &lt;em&gt;proxy&lt;/em&gt;
a peticiones de anónimos. De hecho, si no necesitamos un servidor
&lt;em&gt;proxy&lt;/em&gt;, lo mejor es asegurarnos que la directiva &lt;code&gt;ProxyRequests&lt;/code&gt; no
está inicializada a &lt;code&gt;on&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>My dog: the paradox</title><link>http://karpoke.ignaciocano.com/2012/09/20/my-dog-the-paradox/</link><pubDate>Thu, 20 Sep 2012 23:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/20/my-dog-the-paradox/</guid><description>&lt;p&gt;» Matthew Inman | &lt;a href="http://theoatmeal.com/comics/dog_paradox"&gt;theoatmeal.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>An open letter to Senator Rockefeller</title><link>http://karpoke.ignaciocano.com/2012/09/20/an-open-letter-to-senator-rockefeller/</link><pubDate>Thu, 20 Sep 2012 20:49:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/20/an-open-letter-to-senator-rockefeller/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Dear Sen. Rockefeller,&lt;/p&gt;
&lt;p&gt;I am a cyber expert. I invented a key technology known as ”IPS” that
is a standard part of network defense. I invented hacking techniques
like ”sidejacking” that are a standard part of network offense. I am a
coder who has written a million lines of production code. I am a
”pentester” who has performed simulated attacks that confirm your
worst nightmares about power-grid blackouts and financial meltdowns.&lt;/p&gt;</description></item><item><title>Cosmo, the Hacker ’God’ Who Fell to Earth</title><link>http://karpoke.ignaciocano.com/2012/09/16/cosmo-the-hacker-god-who-fell-to-earth/</link><pubDate>Sun, 16 Sep 2012 11:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/16/cosmo-the-hacker-god-who-fell-to-earth/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Cosmo is huge ” 6 foot 7 and 220 pounds the last time he was weighed,
at a detention facility in Long Beach, California on June 26. And yet
he’s getting bigger, because Cosmo ” also known as Cosmo the God, the
social-engineering mastermind who weaseled his way past security
systems at Amazon, Apple, AT&amp;amp;T, PayPal, AOL, Netflix, Network
Solutions, and Microsoft ” is just 15 years old.&lt;/p&gt;
&lt;p&gt;He turns 16 next March, and he may very well do so inside a prison
cell.&lt;/p&gt;</description></item><item><title>How to Argue on the Internet Without Becoming a Troll</title><link>http://karpoke.ignaciocano.com/2012/09/15/how-to-argue-on-the-internet-without-becoming-a-troll/</link><pubDate>Sat, 15 Sep 2012 10:56:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/15/how-to-argue-on-the-internet-without-becoming-a-troll/</guid><description>&lt;blockquote&gt;
&lt;p&gt;It’s September of an election year, and people are drawing lines,
taking stands, and proclaiming their political beliefs. Even the
lurkers, who brag that they ”never post political stuff on Facebook”
find their trigger fingers twitching over the ”share” button. The
internet is a battlefield, and you simply can’t get around online
without being drawn into a shootout from time to time. When that
happens, these tips will keep you knocking down opponents without
losing your cool or becoming a troll.&lt;/p&gt;</description></item><item><title>Southampton engineers a Raspberry Pi Supercomputer</title><link>http://karpoke.ignaciocano.com/2012/09/13/southampton-engineers-a-raspberry-pi-supercomputer/</link><pubDate>Thu, 13 Sep 2012 12:30:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/13/southampton-engineers-a-raspberry-pi-supercomputer/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Computational Engineers at the University of Southampton have built a
supercomputer from 64 Raspberry Pi computers and Lego.&lt;/p&gt;
&lt;p&gt;The team, led by Professor Simon Cox, consisted of Richard Boardman, Andy
Everett, Steven Johnston, Gereon Kaiping, Neil O’Brien, Mark Scott and Oz
Parchment, along with Professor Cox’s son James Cox (aged 6) who provided
specialist support on Lego and system testing.&lt;/p&gt;
&lt;p&gt;Professor Cox comments: ”As soon as we were able to source sufficient
Raspberry Pi computers we wanted to see if it was possible to link them
together into a supercomputer. We installed and built all of the necessary
software on the Pi starting from a standard Debian Wheezy system image and we
have published a guide so you can build your own supercomputer.”&lt;/p&gt;</description></item><item><title>Well, Actually</title><link>http://karpoke.ignaciocano.com/2012/09/10/well-actually/</link><pubDate>Mon, 10 Sep 2012 17:25:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/10/well-actually/</guid><description>&lt;blockquote&gt;
&lt;p&gt;As software developers, we develop habits that allow us to build
products that work and do not fail under stress. Every software
developer knows what an ”off-by-one” error is, and like the Karate
Kid, we train extensively so we can avoid those traps. We learn how to
avoid these and other similar software problems and we sharpen our
skills to find logic errors.&lt;/p&gt;
&lt;p&gt;As we mature as developers, finding logic errors and incomplete
solutions becomes our way of life. It defines us.&lt;/p&gt;</description></item><item><title>HTML Responsive Images Extension</title><link>http://karpoke.ignaciocano.com/2012/09/07/html-responsive-images-extension/</link><pubDate>Fri, 07 Sep 2012 11:18:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/07/html-responsive-images-extension/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This proposal adds new elements and attribute to [HTML5] to enable
different sources of images based on browser and display
characteristics. The proposal addresses multiple use cases such as
images used in responsive web designs and different images needed for
high density displays.&lt;/p&gt;
&lt;p&gt;This proposal allows content authors to provide user agents with the
information they need to select the best image source. The current img
element only allows for a single source of an image, but there are
numerous use cases where document authors need to define different
image sources depending on the factors such as the design, size
resolution, and display density.&lt;/p&gt;</description></item><item><title>WhatsApp is using IMEI numbers as passwords</title><link>http://karpoke.ignaciocano.com/2012/09/07/whatsapp-is-using-imei-numbers-as-passwords/</link><pubDate>Fri, 07 Sep 2012 10:56:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/07/whatsapp-is-using-imei-numbers-as-passwords/</guid><description>&lt;blockquote&gt;
&lt;p&gt;As you probably already heard in recent news, 1,000,001 Apple UDID’s
were leaked. It’s unfortunate that so many apps use UDID’s to identify
users since it’s extremely insecure.&lt;/p&gt;
&lt;p&gt;This brings me to WhatsApp, a free messaging service, used by millions
of people. Their system runs on a modified version of XMPP (Extensible
Messaging and Presence Protocol). There is nothing wrong with using
XMPP, but there is a problem in how WhatsApp handle authentication.&lt;/p&gt;</description></item><item><title>4 unix commands I abuse every day</title><link>http://karpoke.ignaciocano.com/2012/09/06/4-unix-commands-i-abuse-every-day/</link><pubDate>Thu, 06 Sep 2012 18:05:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/06/4-unix-commands-i-abuse-every-day/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A co-worker watched me type the other day and noticed that I use
certain Unix commands for purposes other than they are intended. Yes,
I abuse Unix commands.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Tom Limoncelli | &lt;a href="http://everythingsysadmin.com/2012/09/unorthodoxunix.html"&gt;everythingsysadmin.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Solucionado el error "No se pudo abrir el fichero de bloqueo «/var/lock/aptitude»" al actualizar Raspbmc</title><link>http://karpoke.ignaciocano.com/2012/09/06/solucionado-el-error-no-se-pudo-abrir-el-fichero-de-bloqueo-varlockaptitude-al-actualizar-raspbmc/</link><pubDate>Thu, 06 Sep 2012 13:44:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/06/solucionado-el-error-no-se-pudo-abrir-el-fichero-de-bloqueo-varlockaptitude-al-actualizar-raspbmc/</guid><description>&lt;p&gt;Tengo una Raspbmc instalada en la Raspberry Pi. Al utilizar &lt;code&gt;aptitude&lt;/code&gt;
para instalar cualquier paquete o actualizar el sistema, recibo el
siguiente error:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo aptitude update
[ ERR] Leyendo la información de estado
E: No se pudo abrir el fichero de bloqueo &amp;#34;/var/lock/aptitude&amp;#34; - open (2: No existe el fichero o el directorio)
W: No se pudo bloquear el fichero de almacén. Esto significa habitualmente que dpkg u otra herramienta apt está instalando paquetes. Se abrirá en modo de sólo lectura, ¡se PERDERÁN todos los cambios que realice al estado de los paquetes!
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En realidad, lo que sucede es que &lt;code&gt;/var/lock&lt;/code&gt; es un enlace simbólico que
apunta a &lt;code&gt;/run/lock&lt;/code&gt;, que no existe, y de ahí que no lo encuentre.
Creando el directorio en cuestión, se soluciona el problema:&lt;/p&gt;</description></item><item><title>Solucionado el error "$MFTMirr does not match $MFT (record 0)." al montar una partición NTFS</title><link>http://karpoke.ignaciocano.com/2012/09/06/solucionado-el-error-mftmirr-does-not-match-mft-record-0-al-montar-una-particion-ntfs/</link><pubDate>Thu, 06 Sep 2012 12:46:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/06/solucionado-el-error-mftmirr-does-not-match-mft-record-0-al-montar-una-particion-ntfs/</guid><description>&lt;p&gt;Si intentamos montar un disco o partición en NTFS, el formato que
utiliza Windows, que no ha sido desconectada &amp;ldquo;de forma segura&amp;rdquo;, es
posible que no podamos montarla y que recibamos el siguiente error:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo mount -t ntfs-3g /dev/sdb1 /media/ntfs
$MFTMirr does not match $MFT (record 0).
Failed to mount &amp;#39;/dev/sdb1&amp;#39;: Error de entrada/salida
NTFS is either inconsistent, or there is a hardware fault, or it’s a
SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows
then reboot into Windows twice. The usage of the /f parameter is very
important! If the device is a SoftRAID/FakeRAID then first activate
it and mount a different device under the /dev/mapper/ directory, (e.g.
/dev/mapper/nvidia_eahaabcc1). Please see the &amp;#39;dmraid&amp;#39; documentation
for more details.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Incluso si utilizamos el parámetro &lt;code&gt;-o force&lt;/code&gt; nos sigue devolviendo el
mismo error.&lt;/p&gt;</description></item><item><title>The open source technology behind Twitter</title><link>http://karpoke.ignaciocano.com/2012/09/01/the-open-source-technology-behind-twitter/</link><pubDate>Sat, 01 Sep 2012 12:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/09/01/the-open-source-technology-behind-twitter/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Without open source, Twitter wouldn’t exist. Every Tweet you send and
receive touches open source software on its journey between computers
and mobile devices. We were curious about how much open source is used
at Twitter. Beyond that, we wanted to discover how open source may
influence the culture at Twitter, Inc.&lt;/p&gt;
&lt;p&gt;We asked Chris Aniszczyk, Open Source Manager at Twitter, to share the
company’s open source story. Aniszczyk will be keynoting at this
month’s LinuxCon, August 29 through 31, in San Diego, CA. His topic:
The open source technology behind a Tweet.&lt;/p&gt;</description></item><item><title>Los dueños de la información II</title><link>http://karpoke.ignaciocano.com/2012/08/31/los-duenos-de-la-informacion-ii/</link><pubDate>Fri, 31 Aug 2012 18:43:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/31/los-duenos-de-la-informacion-ii/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Hace año y medio que recopilé datos sobre la distribución de la
propiedad de los medios de comunicación, compilando esos datos en un
solo gráfico: los dueños de la información.&lt;/p&gt;
&lt;p&gt;Parece que el gráfico tuvo buena acogida y a mucha gente le pareció
interesante. A mí, al menos, me parece útil. Una herramienta para
tener presente, cuando consultamos algún medio de comunicación, a qué
intereses sirve. Así que me puse manos a la obra, recopilando datos de
los movimientos empresariales en el sector, para poder mostraros un
nuevo gráfico, ampliado, corregido y actualizado.&lt;/p&gt;</description></item><item><title>Old Spice Muscle Music</title><link>http://karpoke.ignaciocano.com/2012/08/31/old-spice-muscle-music/</link><pubDate>Fri, 31 Aug 2012 16:04:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/31/old-spice-muscle-music/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Watch me jam solo, then use the special interactive player to record
your own remix. Go ahead, show me what you got!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://player.vimeo.com/video/47875656"&gt;Ver vídeo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;» Terry Crews | &lt;a href="http://vimeo.com/47875656"&gt;vimeo.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Walking paper</title><link>http://karpoke.ignaciocano.com/2012/08/30/walking-paper/</link><pubDate>Thu, 30 Aug 2012 11:53:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/30/walking-paper/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Paper Biped Robot making process from H/P MPM (Mechanical Paper
Model)
&lt;a href="http://www.geocities.jp/kikousya290821/newmpm.htm"&gt;http://www.geocities.jp/kikousya290821/newmpm.htm&lt;/a&gt;
All paper made Biped Robot without wooden shafts and elastic band as
power source&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Jx7nS7_Kf7E?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» &lt;a href="http://www.geocities.jp/kikousya290821/newmpm.htm"&gt;geocities.jp/kikousya290821&lt;/a&gt; | via &lt;a href="http://www.microsiervos.com/archivo/juegos-y-diversion/robot-de-papel.html"&gt;microsiervos.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Which Are More Legible: Serif or Sans Serif Typefaces?</title><link>http://karpoke.ignaciocano.com/2012/08/27/which-are-more-legible-serif-or-sans-serif-typefaces/</link><pubDate>Mon, 27 Aug 2012 21:12:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/27/which-are-more-legible-serif-or-sans-serif-typefaces/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Back in 1998 when Times New Roman was still widely used on the web, my
then boss made sure we always designed our web sites with Arial, as
she hated the look of serif fonts on the web. Was it the case that
sans serif fonts were more legible, or was it just a matter of taste?&lt;/p&gt;
&lt;p&gt;In 2003 as part of my master’s degree I reviewed over 50 empirical
studies in typography and found a definitive answer.&lt;/p&gt;</description></item><item><title>Tales Of A First Time Driver Developer</title><link>http://karpoke.ignaciocano.com/2012/08/26/tales-of-a-first-time-driver-developer/</link><pubDate>Sun, 26 Aug 2012 15:25:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/26/tales-of-a-first-time-driver-developer/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Since 2004, I’ve owned a ThinkPad A22m - a laptop that came out in
2001. Much to the dismay of certain friends, I still feel no need to
purchase a newer computer. I’ve often said that this old hardware can
do everything I need while still letting me run modern software.
However, it now seems like I will have to take some responsibility for
the code if I want that to still be true in the future.&lt;/p&gt;</description></item><item><title>Debian and I</title><link>http://karpoke.ignaciocano.com/2012/08/25/debian-and-i/</link><pubDate>Sat, 25 Aug 2012 12:39:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/25/debian-and-i/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Debian is the most influential Linux distribution ever. Of the 305
active distributions listed on Distrowatch, 147 are derived from
Debian, and 87 from Ubuntu, Debian’s most famous off-shoot. In other
words, 77% of the distributions being used today wouldn’t exist
without Debian. That makes Debian’s nineteenth anniversary on August
16 worth a moment’s reflection, not just technologically, but socially
as well.&lt;/p&gt;
&lt;p&gt;For me, Debian and free software are hopelessly intertwined. While I
had played about with Linux before, I only went hardcore when I
started work on 5 July, 1999 at Stormix Technologies, an ultimately
unsuccessful attempt to commercialize Debian. From there, I jumped
ship to work at Progeny Linux System, which was founded by Ian Murdock
and funded by Bruce Perens’ short-lived Linux Capital Group, and very
much traded on the reputation of the two Debian leaders behind it.&lt;/p&gt;</description></item><item><title>¿Es posible tener un smartphone completamente libre?</title><link>http://karpoke.ignaciocano.com/2012/08/24/es-posible-tener-un-smartphone-completamente-libre/</link><pubDate>Fri, 24 Aug 2012 23:51:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/24/es-posible-tener-un-smartphone-completamente-libre/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Desde el punto de vista del usuario ¿Se puede tener una plataforma
Android basada exclusivamente en Software Libre? Este es mi análisis
tras una experiencia de seis meses de uso.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Pablo Hinojosa | &lt;a href="http://osl.ugr.es/2012/08/23/telefono-libre-informe/"&gt;osl.ugr.es&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Decipher MPPE by breaking MS-CHAP v2</title><link>http://karpoke.ignaciocano.com/2012/08/20/decipher-mppe-by-breaking-ms-chap-v2/</link><pubDate>Mon, 20 Aug 2012 19:13:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/20/decipher-mppe-by-breaking-ms-chap-v2/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Our investigation focuses on Microsoft proprietary protocols with the
help of a network trace and references. The steps that will be covered
are specific to authentication view (MS-Chapv2), key derivation for
encryption and the algorithm of the compression feature (MPPE/MPPC).
Finally, to complete our approach, we will illustrate weaknesses
through a new forensic tool dedicated to these protocols.&lt;/p&gt;
&lt;p&gt;Mainline :&lt;/p&gt;
&lt;p&gt;Details on MSChap-v2 : The first chapter aims to understand how the
authentication protocol works ;
Overview of MPPE protocol : We explain briefly the encryption
protocol ;
Overview of MPPC protocol : Here, we take a look at the compression
feature ;
Decipher MPPE by breaking MSCHAP-v2 : We decipher MPPE protocol with
the help of MSChap-v2;&lt;/p&gt;</description></item><item><title>Nyan Cat Telnet Server</title><link>http://karpoke.ignaciocano.com/2012/08/20/nyan-cat-telnet-server/</link><pubDate>Mon, 20 Aug 2012 18:53:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/20/nyan-cat-telnet-server/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This is an animated, color, ANSI-text telnet server that renders a
loop of the classic Nyan Cat animation.&lt;/p&gt;
&lt;p&gt;Open up a supported terminal and run:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;telnet miku.acm.uiuc.edu&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Kevin Lange | &lt;a href="http://miku.acm.uiuc.edu/"&gt;miku.acm.uiuc.edu&lt;/a&gt;&lt;/p&gt;</description></item><item><title>10 Free Color Palettes From 10 Famous Paintings</title><link>http://karpoke.ignaciocano.com/2012/08/20/10-free-color-palettes-from-10-famous-paintings/</link><pubDate>Mon, 20 Aug 2012 13:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/20/10-free-color-palettes-from-10-famous-paintings/</guid><description>&lt;blockquote&gt;
&lt;p&gt;If you want to learn a thing or two about color, why not look to the
true masters whose artistic work has stood the test of time? Great
painters almost always possess a keen understanding of color that is
truly impressive when you stop to appreciate it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Joshua Johnson | &lt;a href="http://designshack.net/articles/inspiration/10-free-color-palettes-from-10-famous-paintings/"&gt;designshack.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Analizando el tráfico de red en Android con tcpdump, netcat y Wireshark</title><link>http://karpoke.ignaciocano.com/2012/08/20/analizando-el-trafico-de-red-en-android-con-tcpdump-netcat-y-wireshark/</link><pubDate>Mon, 20 Aug 2012 01:55:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/20/analizando-el-trafico-de-red-en-android-con-tcpdump-netcat-y-wireshark/</guid><description>&lt;p&gt;Si necesitamos analizar el tráfico de red de nuestro Android, ya sea
para depurar una aplicación o para ver qué uso de la red hacen las
aplicaciones instaladas en el terminal, podemos recurrir a herramientas
bien conocidas como &lt;code&gt;tcpdump&lt;/code&gt;, &lt;code&gt;netcat&lt;/code&gt; y Wireshark.&lt;/p&gt;
&lt;h2 id="antes-de-empezar"&gt;Antes de empezar&lt;/h2&gt;
&lt;p&gt;Antes de continuar, deberemos tener instaladas las &lt;a href="http://developer.android.com/tools/index.html"&gt;herramientas de
desarrollo para Android&lt;/a&gt;. Descargamos el paquete y lo descomprimimos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ wget http://dl.google.com/android/android-sdk_r20.0.3-linux.tgz
$ tar xvzf android-sdk_r20.0.3-linux.tgz
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Añadimos los directorios &lt;code&gt;tools&lt;/code&gt; y &lt;code&gt;platform-tools&lt;/code&gt; al &lt;code&gt;PATH&lt;/code&gt;.
Ejecutamos las siguientes líneas, y las añadimos también en el fichero
&lt;code&gt;~/.bashrc&lt;/code&gt;, para incluirlas en el PATH del sistema:&lt;/p&gt;</description></item><item><title>The Emerging Revolution in Game Theory</title><link>http://karpoke.ignaciocano.com/2012/08/20/the-emerging-revolution-in-game-theory/</link><pubDate>Mon, 20 Aug 2012 00:17:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/20/the-emerging-revolution-in-game-theory/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The world of game theory is currently on fire. In May, Freeman Dyson
at Princeton University and William Press at the University of Texas
announced that they had discovered a previously unknown strategy for
the game of prisoner’s dilemma which guarantees one player a better
outcome than the other.&lt;/p&gt;
&lt;p&gt;That’s a monumental surprise. Theorists have studied Prisoner’s
Dilemma for decades, using it as a model for the emergence of
co-operation in nature. This work has had a profound impact on
disciplines such as economics, evolutionary biology and, of course,
game theory itself. The new result will have impact in all these areas
and more.&lt;/p&gt;</description></item><item><title>El gran fraude de los cosméticos</title><link>http://karpoke.ignaciocano.com/2012/08/17/el-gran-fraude-de-los-cosmeticos/</link><pubDate>Fri, 17 Aug 2012 12:53:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/17/el-gran-fraude-de-los-cosmeticos/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El pasado martes, Mercadona retiró 11 productos cosméticos después de
una evaluación realizada por la Agencia Española de Medicamentos y
Productos Sanitarios. Ayer, esa misma agencia publicó un comunicado
explicando que el problema era de orden administrativo y no existía
ningún peligro para la salud de los consumidores.&lt;/p&gt;
&lt;p&gt;Me parece un buen momento para que hablemos del verdadero problema de
fondo. La industria cosmética se sostiene sobre una mentira: hacer
creer a sus clientes que la eficacia de sus productos tiene una base
científica.&lt;/p&gt;</description></item><item><title>New release under development; suggestions requested</title><link>http://karpoke.ignaciocano.com/2012/08/17/new-release-under-development-suggestions-requested/</link><pubDate>Fri, 17 Aug 2012 12:29:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/17/new-release-under-development-suggestions-requested/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Fellow Linuxers,&lt;/p&gt;
&lt;p&gt;This is just to announce the imminent completion of a brand-new Linux
release,
which I’m calling the Debian Linux Release. This is a release that I
have put
together basically from scratch; in other words, I didn’t simply make
some
changes to SLS and call it a new release. I was inspired to put
together this
release after running SLS and generally being dissatisfied with much
of it,
and after much altering of SLS I decided that it would be easier to
start
from scratch. The base system is now virtually complete (though I’m
still
looking around to make sure that I grabbed the most recent sources
for
everything), and I’d like to get some feedback before I add the
”fancy” stuff.&lt;/p&gt;</description></item><item><title>BSD vs Linux</title><link>http://karpoke.ignaciocano.com/2012/08/15/bsd-vs-linux/</link><pubDate>Wed, 15 Aug 2012 18:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/15/bsd-vs-linux/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I run FreeBSD on my computers. A lot of my friends run Linux, or at
least one of the distributions of it. Naturally, then, we agree that a
Unix-style operating system is the right choice, but we disagree on
which to use.&lt;/p&gt;
&lt;p&gt;It’s been my impression that the BSD communit{y,ies}, in general,
understand Linux far better than the Linux communit{y,ies} understand
BSD. I have a few theories on why that is, but that’s not really
relevant. I think a lot of Linux people get turned off BSD because
they don’t really understand how and why it’s put together. Thus, this
rant; as a BSD person, I want to try to explain how BSD works in a way
that Linux people can absorb.&lt;/p&gt;</description></item><item><title>Game deaths</title><link>http://karpoke.ignaciocano.com/2012/08/15/game-deaths/</link><pubDate>Wed, 15 Aug 2012 18:09:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/15/game-deaths/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A compilation of classic arcade deaths, arranged to an 8-bit cover of
”Mad World”.&lt;/p&gt;
&lt;p&gt;The music is a cover of Mad World, by Tears for Fears.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/gJ6APKIjFQY?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» Rob Beschizza | &lt;a href="http://boingboing.net/2011/03/25/classic-arcade-game-1.html"&gt;boingboing.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Best Paper Awards in Computer Science (since 1996)</title><link>http://karpoke.ignaciocano.com/2012/08/15/best-paper-awards-in-computer-science-since-1996/</link><pubDate>Wed, 15 Aug 2012 17:30:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/15/best-paper-awards-in-computer-science-since-1996/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Much of this data was entered by hand (obtained by contacting past
conference organizers, retrieving cached conference websites, and
searching CVs) so please email me if you notice any errors or
omissions: bestpaper-AT-jeffhuang.com. I tried to collect best paper
awards from the top-tier conferences in each area, but some
conferences do not have such an award (e.g. SIGGRAPH, CAV).
”Distinguished paper award” and ”outstanding paper award” are included
but not ”best student paper” (e.g. NIPS) or ”best 10-year old paper”
(e.g. POPL)&lt;/p&gt;</description></item><item><title>Python Ecosystem - An Introduction</title><link>http://karpoke.ignaciocano.com/2012/08/15/python-ecosystem-an-introduction/</link><pubDate>Wed, 15 Aug 2012 17:26:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/15/python-ecosystem-an-introduction/</guid><description>&lt;blockquote&gt;
&lt;p&gt;When developers shift from PHP, Ruby or any other platform to Python,
the very first road block they face (most often) is a lack of an
overall understanding of the Python ecosystem. Developers often yearn
for a tutorial or resource that explains how to accomplish most tasks
in a more or less standard way.&lt;/p&gt;
&lt;p&gt;What follows is an extract from the internal wiki at my workplace,
which documents the basics of the Python ecosystem for web application
development for our interns, trainees and experienced developers who
shift to Python from other platforms.&lt;/p&gt;</description></item><item><title>Brainfuck beware: JavaScript is after you!</title><link>http://karpoke.ignaciocano.com/2012/08/13/brainfuck-beware-javascript-is-after-you/</link><pubDate>Mon, 13 Aug 2012 19:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/13/brainfuck-beware-javascript-is-after-you/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I just made a tool to transform any javascript code into an equivalent
sequence of ()[]{}!+ characters. You can try it here, or grab it from
github or npm. Keep on reading if you want to know how it works.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What do you know about non-alphanumeric XSS?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The other day one of my friends asked me that question on IRC,
pointing me to some articles on sla.ckers.org where they tried to
create some scripts like alert(1) with non-alphanumeric characters.&lt;/p&gt;</description></item><item><title>I Was a Teenage Hacker</title><link>http://karpoke.ignaciocano.com/2012/08/10/i-was-a-teenage-hacker/</link><pubDate>Fri, 10 Aug 2012 10:38:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/10/i-was-a-teenage-hacker/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Twenty-four years ago today, I had a very bad day.&lt;/p&gt;
&lt;p&gt;On August 8, 1988, I was a senior in high school. I was working my
after school and weekend job at Safeway as a cashier, when the store
manager suddenly walked over and said I better stop ringing up
customers and talk to my mother on the store phone right now. Mom told
me to come home immediately because, well, there were police at the
front door asking for me with some legal papers in hand.&lt;/p&gt;</description></item><item><title>The web architecture of The Internet map</title><link>http://karpoke.ignaciocano.com/2012/08/08/the-web-architecture-of-the-internet-map/</link><pubDate>Wed, 08 Aug 2012 18:04:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/08/the-web-architecture-of-the-internet-map/</guid><description>&lt;blockquote&gt;
&lt;p&gt;You must have heard about The Internet map by now. If not, you can
take a look at it here. Roughly speaking, the Internet Map displays
websites’ location according to users’ behavior. Similar websites
visited by the same people are situated close to one another;
different websites not having mutual visitors are situated at a
considerable distance from each other. The size of a website on the
map is determined by its average click rating while the color is
defined by belonging to a nationality. You can get a more detailed
notion referring to the About section on the website of the Map.&lt;/p&gt;</description></item><item><title>Did Bill Gates Steal the Heart of DOS?</title><link>http://karpoke.ignaciocano.com/2012/08/08/did-bill-gates-steal-the-heart-of-dos/</link><pubDate>Wed, 08 Aug 2012 17:43:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/08/did-bill-gates-steal-the-heart-of-dos/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The history of the computer industry is filled with fascinating tales
of riches that appear to practically fall from the sky.&lt;/p&gt;
&lt;p&gt;Along with stories of riches won, there are stories of opportunities
missed. Take that of Ronald Wayne, who cofounded Apple Computer with
Steve Wozniak and Steve Jobs but sold his shares for just US $2300.
And John Atanasoff, who proudly showed his digital computer design to
John Mauchly”who later codesigned the Eniac, often defined as the
first electronic computer, without credit to Atanasoff.&lt;/p&gt;</description></item><item><title>Why the Cloud Sucks</title><link>http://karpoke.ignaciocano.com/2012/08/07/why-the-cloud-sucks/</link><pubDate>Tue, 07 Aug 2012 01:22:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/07/why-the-cloud-sucks/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I’ve had too many personal experiences get messed up just because
companies change things on the cloud. I’ve come to a depressed state
of feeling that I own nothing on the cloud and have no ability to keep
things working the way they do. Features change and get dropped,
things you depend on disappear, etc. And no company will ever take
responsibility. It’s rare to ever get told what really happened.&lt;/p&gt;</description></item><item><title>Seeing Through Walls With a Wireless Router</title><link>http://karpoke.ignaciocano.com/2012/08/06/seeing-through-walls-with-a-wireless-router/</link><pubDate>Mon, 06 Aug 2012 03:19:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/06/seeing-through-walls-with-a-wireless-router/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Wi-Fi radio signals are found in 61 percent of homes in the U.S. and
25 percent worldwide, so Karl Woodbridge and Kevin Chetty, researchers
at University College London, designed their detector to use these
ubiquitous signals. When a radio wave reflects off a moving object,
its frequency changes”a phenomenon called the Doppler effect. Their
radar prototype identifies frequency changes to detect moving objects.
It’s about the size of a suitcase and contains a radio receiver
composed of two antennas ;íand a signal-processing unit. In tests,
they have used it to determine a person’s location, speed and
direction”even through a one-foot-thick brick wall. Because the device
itself doesn’t emit any radio waves, it can’t be detected.&lt;/p&gt;</description></item><item><title>The website of the world’s first-ever web server</title><link>http://karpoke.ignaciocano.com/2012/08/06/the-website-of-the-worlds-first-ever-web-server/</link><pubDate>Mon, 06 Aug 2012 03:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/06/the-website-of-the-worlds-first-ever-web-server/</guid><description>&lt;blockquote&gt;
&lt;p&gt;CERN, the European Organization for Nuclear Research, is where it all
began in March 1989. A physicist, Tim Berners-Lee, wrote a proposal
for information management showing how information could be
transferred easily over the Internet by using hypertext, the now
familiar point-and-click system of navigating through information. The
following year, Robert Cailliau, a systems engineer, joined in and
soon became its number one advocate.&lt;/p&gt;
&lt;p&gt;The idea was to connect hypertext with the Internet and personal
computers, thereby having a single information network to help CERN
physicists share all the computer-stored information at the
laboratory. Hypertext would enable users to browse easily between
texts on web pages using links. The first examples were developed on
NeXT computers.&lt;/p&gt;</description></item><item><title>Crowd Source Audit Platform for Manual PenTest</title><link>http://karpoke.ignaciocano.com/2012/08/04/crowd-source-audit-platform-for-manual-pentest/</link><pubDate>Sat, 04 Aug 2012 12:24:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/04/crowd-source-audit-platform-for-manual-pentest/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Helping Companies, and Hackers to get things done. Companies test
their servers or Web Apps covered by anonymity and confidentiality,
while Hackers get paid for what they love to do most: Hacking Servers&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://hackaserver.com/"&gt;hackaserver.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>De usuarios en WordPress</title><link>http://karpoke.ignaciocano.com/2012/08/02/de-usuarios-en-wordpress/</link><pubDate>Thu, 02 Aug 2012 13:45:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/02/de-usuarios-en-wordpress/</guid><description>&lt;p&gt;Uno de los peores hábitos, en cuanto a seguridad en informática se
refiere, es utilizar la cuenta de administrador de forma compulsiva para
todo, sin importar que la tarea que estemos haciendo requiera
privilegios de administrador o no. Esto se puede aplicar tanto a la
cuenta de &lt;code&gt;root&lt;/code&gt; en un sistema GNU/Linux como al usuario administrador
en WordPress. Lo ideal sería utilizar una cuenta con el mínimo nivel de
privilegios posible que nos permita llevar a cabo nuestra tarea.&lt;/p&gt;</description></item><item><title>Using Bipolar Transistors As Switches</title><link>http://karpoke.ignaciocano.com/2012/08/02/using-bipolar-transistors-as-switches/</link><pubDate>Thu, 02 Aug 2012 12:41:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/02/using-bipolar-transistors-as-switches/</guid><description>&lt;blockquote&gt;
&lt;p&gt;While transistors have many uses, one of the less known uses by
amateurs is the ability for bipolar transistors to turn things on and
off. While there are limitations as to what we can switch on and off,
transistor switches offer lower cost and substantial reliability over
conventional mechanical relays. In this article, we will review the
basic principles for transistor switches using common bipolar
transistors.&lt;/p&gt;
&lt;p&gt;The most commonly used transistor switch is the PNP variety shown in
Figure 1. The secret to making a transistor switch work properly is to
get the transistor in a saturation state. For this to happen we need
to know the maximum load current for the device to be turned on and
the minimum HFE of the transistor.&lt;/p&gt;</description></item><item><title>La ESI de Ciudad Real libera 4 libros sobre Desarrollo de Videojuegos</title><link>http://karpoke.ignaciocano.com/2012/08/01/la-esi-de-ciudad-real-libera-4-libros-sobre-desarrollo-de-videojuegos/</link><pubDate>Wed, 01 Aug 2012 10:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/08/01/la-esi-de-ciudad-real-libera-4-libros-sobre-desarrollo-de-videojuegos/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La Escuela Superior de Informática de la Universidad de Castilla-La
Mancha ha liberado el material de la primera edición del Curso de
Experto en Desarrollo de Videojuegos. El material, compuesto por 4
libros de más de 1.200 páginas en total y múltiples ejemplos de código
fuente, se basa principalmente en tecnologías y estándares libres.
Casi la totalidad de los ejemplos del curso han sido desarrollados en
GNU/Linux. Puedes descargar los libros gratuitamente en la web del
curso (formato PDF), en EPUB o comprar los libros en papel. Los
ejemplos del libro se distribuye con licencia GPLv3 y el libro con
licencia Creative Commons BY NC ND&lt;/p&gt;</description></item><item><title>Introduction to text manipulation on UNIX-based systems</title><link>http://karpoke.ignaciocano.com/2012/07/31/introduction-to-text-manipulation-on-unix-based-systems/</link><pubDate>Tue, 31 Jul 2012 15:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/31/introduction-to-text-manipulation-on-unix-based-systems/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A basic tenets of UNIX philosophy is to create programs (or processes)
that do one thing, and do that one thing well. It is a philosophy
demanding careful thought about interfaces and ways of joining these
smaller (hopefully more simple) processes together to create useful
results. Normally textual data flows between these interfaces. Over
time, more and more advanced text processing tools and languages have
been developed. For languages, earlier on there was perl, later came
python, and ruby. While these and other languages are very capable
text processors, such tools are not always available, especially in a
production environment. In this article, a number of basic UNIX text
processing commands are demonstrated and may be used individually or
in conjunction with each other to solve problems which may also be
addressed with newer languages. For many people, an example provides
more information than long winded explanations. Please note because of
the variety of UNIX and UNIX-like systems available, command flags,
program behavior, and output differs between implementations.&lt;/p&gt;</description></item><item><title>Learn Vim Progressively</title><link>http://karpoke.ignaciocano.com/2012/07/31/learn-vim-progressively/</link><pubDate>Tue, 31 Jul 2012 14:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/31/learn-vim-progressively/</guid><description>&lt;blockquote&gt;
&lt;p&gt;You want to teach yourself vim (the best text editor known to human
kind) in the fastest way possible. This my way of doing it. You start
by learning the minimal to survive, then you integrate all the tricks
slowly.&lt;/p&gt;
&lt;p&gt;Vim the Six Billion Dollar editor&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Better, Stronger, Faster.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Learn vim and it will be your last text editor. There isn’t any better
text editor that I know of. It is hard to learn, but incredible to
use.&lt;/p&gt;</description></item><item><title>N-Tier Architecture And Tips</title><link>http://karpoke.ignaciocano.com/2012/07/31/n-tier-architecture-and-tips/</link><pubDate>Tue, 31 Jul 2012 14:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/31/n-tier-architecture-and-tips/</guid><description>&lt;blockquote&gt;
&lt;p&gt;N-Tier architecture is an industry-proved software architecture model,
suitable to support enterprise-level client/server applications by
resolving issues like scalability, security, fault tolerance and etc.
.NET has many tools and features, but .NET doesn’t have pre-defined
ways to guard how to implement N-Tier architecture. Therefore, in
order to achieve good design and implementation of N-Tier architecture
in .NET, understanding fully its concepts is very important. However,
many of us may hear, read or use N-Tier architecture for many years
but still misunderstand its concepts more or less. This article tries
to clarify many basic concepts in N-Tier architecture from all
aspects, and also provide some practical tips. The tips in this
article are based on the assumption that a team has a full control
over all layers of the N-Tier architecture.&lt;/p&gt;</description></item><item><title>I won’t hire people who use poor grammar. here’s why.</title><link>http://karpoke.ignaciocano.com/2012/07/31/i-wont-hire-people-who-use-poor-grammar-heres-why/</link><pubDate>Tue, 31 Jul 2012 14:37:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/31/i-wont-hire-people-who-use-poor-grammar-heres-why/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In the same vein, programmers who pay attention to how they construct
written language also tend to pay a lot more attention to how they
code. You see, at its core, code is prose. Great programmers are more
than just code monkeys; according to Stanford programming legend
Donald Knuth they are ”essayists who work with traditional aesthetic
and literary forms.” The point: programming should be easily
understood by real human beings ” not just computers.&lt;/p&gt;</description></item><item><title>Monkey Island y LucasArts: de referencias a referente</title><link>http://karpoke.ignaciocano.com/2012/07/31/monkey-island-y-lucasarts-de-referencias-a-referente/</link><pubDate>Tue, 31 Jul 2012 13:25:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/31/monkey-island-y-lucasarts-de-referencias-a-referente/</guid><description>&lt;blockquote&gt;
&lt;p&gt;En un lugar de Melee Island^TM^ de cuyo nombre no quiero acordarme,
nuestro wannabe pirata se llamaba Guybrush Threepwood. Tenía unos
veinte años, y pesaba poco más de 54 kilos. Aguantaba la respiración
durante 10 minutos, intentaba vender unas bonitas chaquetas de piel y
soñaba con ser pirata. Todo eran peleas de espadas e insultos, grog y
pollos de goma con poleas en medio, hasta que cayó enamorado de la
gobernadora Marley que, tras ser secuestrada, le condujo hasta el
malvado y temible pirata fantasma LeChuck.&lt;/p&gt;</description></item><item><title>El dios de las pequeñas rendijas</title><link>http://karpoke.ignaciocano.com/2012/07/31/el-dios-de-las-pequenas-rendijas/</link><pubDate>Tue, 31 Jul 2012 13:20:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/31/el-dios-de-las-pequenas-rendijas/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Ninguna multinacional tiene tantas sucursales, ninguna empresa engloba
tanto personal a su cargo y ningún holding ha podido sacar al mercado
un producto más rentable. Jamás ha existido un negocio tan beneficioso
y duradero a pesar de haber demostrado con el paso del tiempo estar
tan radicalmente equivocado en sus afirmaciones. Es el sueño dorado de
cualquier empresario: crecer sin límite sin que ninguno de tus errores
detenga tu prosperidad.&lt;/p&gt;</description></item><item><title>Bash prompts</title><link>http://karpoke.ignaciocano.com/2012/07/27/bash-prompts/</link><pubDate>Fri, 27 Jul 2012 19:34:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/27/bash-prompts/</guid><description>&lt;blockquote&gt;
&lt;p&gt;You can tell a lot about a shell user by looking at their prompt. Most
shell users will use whatever the system’s default prompt is for their
entire career. Under many Linux distributions, this prompt includes
the username, the hostname, and the current working directory, along
with a $ sigil for regular users, and a # for root.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Tom Ryder | &lt;a href="http://blog.sanctum.geek.nz/bash-prompts/"&gt;blog.sanctum.geek.nz&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Carcasa en madera de contrachapado para Raspberry Pi</title><link>http://karpoke.ignaciocano.com/2012/07/27/carcasa-en-madera-de-contrachapado-para-raspberry-pi/</link><pubDate>Fri, 27 Jul 2012 11:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/27/carcasa-en-madera-de-contrachapado-para-raspberry-pi/</guid><description>&lt;p&gt;Por ahora, la Raspberry Pi viene sin carcasa, por lo que no sólo hay
opciones comerciales, sino que la comunidad ha tenido ideas muy
creativas: [&lt;a href="http://www.raspberrypi.org/archives/tag/cases"&gt;1&lt;/a&gt;], [&lt;a href="http://venturebeat.com/2012/07/16/9-amazing-raspberry-pi-case-mods-including-one-that-looks-like-a-raspberry/"&gt;2&lt;/a&gt;] y [&lt;a href="http://www.makeuseof.com/tag/8-interesting-diy-raspberry-pi-case-ideas/"&gt;3&lt;/a&gt;].&lt;/p&gt;
&lt;p&gt;Entre todas las opciones, la de &lt;a href="http://www.raspberrypi.org/archives/1310"&gt;imprimir tu propia carcasa&lt;/a&gt; me ha
llamado la atención. Es sencilla, rápida de hacer y, sobre todo, incluye
un &lt;a href="http://squareitround.co.uk/Resources/Punnet_net_Mk1.pdf"&gt;plano&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Utilizando este plano como base, hemos fabricado una carcasa en madera
de contrachapado de 3mm. Las dimensiones del plano encajan en la
Raspberry Pi como anillo al dedo. Lo único que hemos tenido que tener en
cuenta es el grosor de la madera para las piezas laterales:&lt;/p&gt;</description></item><item><title>Saltar a una entrada aleatoria en WordPress</title><link>http://karpoke.ignaciocano.com/2012/07/27/saltar-a-una-entrada-aleatoria-en-wordpress/</link><pubDate>Fri, 27 Jul 2012 00:20:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/27/saltar-a-una-entrada-aleatoria-en-wordpress/</guid><description>&lt;p&gt;Si queremos añadir un enlace que nos permita saltar a una entrada
aleatoria de un blog en WordPress, basta crear un archivo que contenga
lo siguiente:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;?php
require(&amp;#39;wp-blog-header.php&amp;#39;);
query_posts(array(&amp;#39;orderby&amp;#39; =&amp;gt; &amp;#39;rand&amp;#39;, &amp;#39;showposts&amp;#39; =&amp;gt; 1));
if (have_posts()) : the_post();
$url = get_permalink($post-&amp;gt;id);
header(&amp;#34;Location: &amp;#34; . $url);
endif;
wp_reset_query();
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Guardamos el archivo en una ruta accesible, por ejemplo en la raíz del
blog.&lt;/p&gt;
&lt;p&gt;Sólo queda añadir el enlace para que nos lleve a una &lt;a href="http://karpoke.ignaciocano.com/salta/"&gt;entrada
aleatoria&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>The Humble Programmer</title><link>http://karpoke.ignaciocano.com/2012/07/26/the-humble-programmer/</link><pubDate>Thu, 26 Jul 2012 23:07:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/26/the-humble-programmer/</guid><description>&lt;blockquote&gt;
&lt;p&gt;As a result of a long sequence of coincidences I entered the
programming profession officially on the first spring morning of 1952
and as far as I have been able to trace, I was the first Dutchman to
do so in my country. In retrospect the most amazing thing was the
slowness with which, at least in my part of the world, the programming
profession emerged, a slowness which is now hard to believe. But I am
grateful for two vivid recollections from that period that establish
that slowness beyond any doubt.&lt;/p&gt;</description></item><item><title>System Administrator Appreciation Day</title><link>http://karpoke.ignaciocano.com/2012/07/26/system-administrator-appreciation-day/</link><pubDate>Thu, 26 Jul 2012 18:19:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/26/system-administrator-appreciation-day/</guid><description>&lt;blockquote&gt;
&lt;p&gt;System AdministratorAppreciation Dayhis website from its box,
installed an operating system, patched it for security, made sure the
power and air conditioning was working in the server room, monitored
it for stability, set up the software, and kept backups in case
anything went wrong. All to serve this webpage.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://sysadminday.com/"&gt;sysadminday.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>So You Want to Be a Security Expert</title><link>http://karpoke.ignaciocano.com/2012/07/24/so-you-want-to-be-a-security-expert/</link><pubDate>Tue, 24 Jul 2012 20:51:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/24/so-you-want-to-be-a-security-expert/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I regularly receive e-mail from people who want advice on how to learn
more about computer security, either as a course of study in college
or as an IT person considering it as a career choice.&lt;/p&gt;
&lt;p&gt;First, know that there are many subspecialties in computer security.
You can be an expert in keeping systems from being hacked, or in
creating unhackable software. You can be an expert in finding security
problems in software, or in networks. You can be an expert in viruses,
or policies, or cryptography. There are many, many opportunities for
many different skill sets. You don’t have to be a coder to be a
security expert.&lt;/p&gt;</description></item><item><title>Todos los emuladores para Android</title><link>http://karpoke.ignaciocano.com/2012/07/24/todos-los-emuladores-para-android/</link><pubDate>Tue, 24 Jul 2012 19:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/24/todos-los-emuladores-para-android/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Muchos de nosotros somos auténticos gamers en Android, y como buenos
jugones, nos encantan los juegos de vieja escuela. Sí, ya sabéis, los
clásicos: Mario Kart, Super Mario 64, cualquier juego de la Nes/Snes,
etc¦ Y digo yo, con estos auténticas bestias de Android que tenemos,
¿no deberíamos poder jugar a todos ellos? Pues efectivamente, se
puede. El único problema es que por razón X, a Google no le gusta
mucho que hayan emuladores en el Play Store y por ello se encuentran
tan pocos. Pero tranquilos que hoy os traemos una recopilación de
todos los emuladores actuales a los que se puede jugar en Android&lt;/p&gt;</description></item><item><title>Understanding Python Decorators in 12 Easy Steps!</title><link>http://karpoke.ignaciocano.com/2012/07/24/understanding-python-decorators-in-12-easy-steps/</link><pubDate>Tue, 24 Jul 2012 19:52:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/24/understanding-python-decorators-in-12-easy-steps/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Ok, perhaps I jest. As a Python instructor, understanding decorators
is a topic I find students consistently struggle with upon first
exposure. That’s because decorators are hard to understand! Getting
decorators requires understanding several functional programming
concepts as well as feeling comfortable with some unique features of
Python’s function definition and function calling syntax. _Using_
decorators is easy (see Section 10)! But writing them can be
complicated.&lt;/p&gt;
&lt;p&gt;I can’t make decorators easy - but maybe by walking through each piece
of the puzzle one step at a time I can help you feel more confident in
understanding decorators[1]. Because decorators are complex this is
going to be a long article - but stick with it! I promise to make each
piece as simple as possible - and if you understand each piece, you’ll
understand how decorators work! I’m trying to assume minimal Python
knowledge but this will probably be most helpful to people who have at
least a casual working exposure to Python.&lt;/p&gt;</description></item><item><title>The Geek Syndrome</title><link>http://karpoke.ignaciocano.com/2012/07/24/the-geek-syndrome/</link><pubDate>Tue, 24 Jul 2012 19:05:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/24/the-geek-syndrome/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Nick is building a universe on his computer. He’s already mapped out
his first planet: an anvil-shaped world called Denthaim that is home
to gnomes and gods, along with a three-gendered race known as kiman.
As he tells me about his universe, Nick looks up at the ceiling,
humming fragments of a melody over and over. ”I’m thinking of making
magic a form of quantum physics, but I haven’t decided yet, actually,”
he explains. The music of his speech is pitched high, alternately
poetic and pedantic - as if the soul of an Oxford don has been
awkwardly reincarnated in the body of a chubby, rosy-cheeked boy from
Silicon Valley. Nick is 11 years old.&lt;/p&gt;</description></item><item><title>The Mathematics of Autism</title><link>http://karpoke.ignaciocano.com/2012/07/24/the-mathematics-of-autism/</link><pubDate>Tue, 24 Jul 2012 19:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/24/the-mathematics-of-autism/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Autism may be associated with mathematical skills. Autism researcher
Simon Baron-Cohen has published studies that autism is more prevalent
in the familes of physicists, engineers, and mathematicians. Unusual
mathematical skills are reported in a small percentage of cases of
”classic autism.” Movies, television, and popular culture such as
Rainman (1988), Mercury Rising (1998), and many other works often play
up this rare association by presenting autistic characters with
extreme mathematical abilities.&lt;/p&gt;</description></item><item><title>12 Reasons Why Every Linux System Administrator Should be Lazy</title><link>http://karpoke.ignaciocano.com/2012/07/24/12-reasons-why-every-linux-system-administrator-should-be-lazy/</link><pubDate>Tue, 24 Jul 2012 18:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/24/12-reasons-why-every-linux-system-administrator-should-be-lazy/</guid><description>&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Lazy sysadmin is the best sysadmin –Anonymous&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;System administrators job is not visible to other IT groups or
end-users. Mostly they look at administrators and wonder why sysadmins
don’t seem to have any work.&lt;/p&gt;
&lt;p&gt;If you see a sysadmin who is always running around, and trying to put
down fire, and constantly dealing with production issues, you might
think he is working very hard, and really doing his job. But in
reality he is not really doing his job.&lt;/p&gt;</description></item><item><title>Does Bitrate Really Make a Difference In My Music?</title><link>http://karpoke.ignaciocano.com/2012/07/24/does-bitrate-really-make-a-difference-in-my-music/</link><pubDate>Tue, 24 Jul 2012 17:45:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/24/does-bitrate-really-make-a-difference-in-my-music/</guid><description>&lt;blockquote&gt;
&lt;p&gt;While you may have some idea about what bitrate is, the ”can
audiophiles really tell the difference” argument has raged on for
quite some time, and it’s hard to get people to drop their egos and
actually explain what these things mean and whether they really
matter. Here’s a bit of information on bitrate and how it applies to
our practical music listening experience.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Whitson Gordon | &lt;a href="http://lifehacker.com/5810575/does-bitrate-really-make-a-difference-in-my-music"&gt;lifehacker.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Conectar de forma segura en redes abiertas con Android, ConnectBot y ProxyDroid</title><link>http://karpoke.ignaciocano.com/2012/07/24/conectar-de-forma-segura-en-redes-abiertas-con-android-connectbot-y-proxydroid/</link><pubDate>Tue, 24 Jul 2012 14:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/24/conectar-de-forma-segura-en-redes-abiertas-con-android-connectbot-y-proxydroid/</guid><description>&lt;p&gt;Si necesitamos conectarnos desde nuestro terminal con Android a una red
WiFi que no es segura, ya sea porque es una red abierta o porque no es
de confianza, podemos utilizar ConnectBot para crear un túnel SSH para
encauzar todas las conexiones que realicemos desde el terminal a través
de él.&lt;/p&gt;
&lt;p&gt;Para esto necesitaremos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Acceso a un servidor SSH&lt;/li&gt;
&lt;li&gt;Un cliente SSH para Android, por ejemplo ConnectBot&lt;/li&gt;
&lt;li&gt;Un cliente proxy para Android, por ejemplo ProxyDroid&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://code.google.com/p/proxydroid/"&gt;ProxyDroid&lt;/a&gt; es una aplicación que permite crear un &lt;em&gt;proxy&lt;/em&gt;
transparente en terminales Android.&lt;/p&gt;</description></item><item><title>Conectar a un servidor SSH desde Android mediante ConnectBot utilizando claves</title><link>http://karpoke.ignaciocano.com/2012/07/24/conectar-a-un-servidor-ssh-desde-android-mediante-connectbot-utilizando-claves/</link><pubDate>Tue, 24 Jul 2012 13:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/24/conectar-a-un-servidor-ssh-desde-android-mediante-connectbot-utilizando-claves/</guid><description>&lt;p&gt;&lt;a href="http://code.google.com/p/connectbot/"&gt;ConnectBot&lt;/a&gt; es, en mi humilde opinión, el mejor cliente SSH para
Android. Nos permite conectarnos de forma segura a nuestro servidor SSH,
ya sea directamente o mediante la creación de un túnel SSH que sirva de
&lt;em&gt;proxy&lt;/em&gt; al resto de aplicaciones.&lt;/p&gt;
&lt;p&gt;La manera más segura de conectarnos es mediante la utilización de
claves. Este es un sistema de autenticación basado en criptografía
asimétrica, más seguro que utilizar &lt;em&gt;simples&lt;/em&gt; contraseñas.&lt;/p&gt;
&lt;p&gt;ConnectBot no sólo permite utilizar claves, sino que también nos permite
crearlas e importarlas. Para poder conectarnos a nuestro servidor sin
necesidad de utilizar contraseñas, lo primero será que éste esté
&lt;a href="http://karpoke.ignaciocano.com/2011/03/03/conectarse-por-ssh-solo-usando-la-clave/"&gt;configurado para aceptar claves&lt;/a&gt;. En particular, en el fichero
&lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt;, debemos tener la directiva:&lt;/p&gt;</description></item><item><title>History of the browser user-agent string</title><link>http://karpoke.ignaciocano.com/2012/07/17/history-of-the-browser-user-agent-string/</link><pubDate>Tue, 17 Jul 2012 13:09:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/17/history-of-the-browser-user-agent-string/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In the beginning there was NCSA Mosaic, and Mosaic called itself
NCSA_Mosaic/2.0 (Windows 3.1), and Mosaic displayed pictures along
with text, and there was much rejoicing.
And behold, then came a new web browser known as ”Mozilla”, being
short for ”Mosaic Killer,” but Mosaic was not amused, so the public
name was changed to Netscape, and Netscape called itself Mozilla/1.0
(Win3.1), and there was more rejoicing. And Netscape supported frames,
and frames became popular among the people, but Mosaic did not support
frames, and so came ”user agent sniffing” and to ”Mozilla” webmasters
sent frames, but to other browsers they sent not frames.&lt;/p&gt;</description></item><item><title>A Turing Complete Puzzle Game</title><link>http://karpoke.ignaciocano.com/2012/07/17/a-turing-complete-puzzle-game/</link><pubDate>Tue, 17 Jul 2012 13:08:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/17/a-turing-complete-puzzle-game/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The code behind the Google doodle celebrating Alan Turing’s 100th birthday is
now up on Google code. This animated logic puzzle game appeared on the Google
homepage on June 23, 2012. If you missed it, you can still play it in the
doodle archives.&lt;/p&gt;
&lt;p&gt;Our doodle for Turing’s 100th birthday showed a live action Turing Machine
with twelve interactive programming puzzles. Turing Machines are theoretical
objects in formal logic, not physical things, so we walked a fine line
between technical accuracy and accessibility. We focused on finding a good
representation for programs and choosing puzzles of appropriate complexity.
We did considerable user testing and iteration, more than for any past
doodle.&lt;/p&gt;</description></item><item><title>Un largo segundo en el cerebro</title><link>http://karpoke.ignaciocano.com/2012/07/16/un-largo-segundo-en-el-cerebro/</link><pubDate>Mon, 16 Jul 2012 19:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/16/un-largo-segundo-en-el-cerebro/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Millones de impulsos llegan al cerebro desde distintos sentidos.
Millones llegan incluso desde un sentido como la vista. El cerebro
tiene múltiples áreas de procesamiento. En la vista por ejemplo se
procesa en centros distintos el color, la forma o el movimiento. Cada
impulso recorre un camino diferente al resto. Algunos son más largos y
otros son más cortos. Por lo tanto, tardan distinto tiempo en llegar
al cerebro. ¿Cómo sabe el cerebro que dos impulsos que sucedieron a la
vez pero llegan en distinto momento son en realidad simultáneos?&lt;/p&gt;</description></item><item><title>MySQL, MSSQL and Oracle SQL Injection Compilation</title><link>http://karpoke.ignaciocano.com/2012/07/15/mysql-mssql-and-oracle-sql-injection-compilation/</link><pubDate>Sun, 15 Jul 2012 17:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/15/mysql-mssql-and-oracle-sql-injection-compilation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This Knowledge Base was put together and is maintained by Roberto
Salgado, Co-Founder of Websec. It is a compilation of books, papers,
cheatsheets and testing done by Roberto over the years.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Roberto Salgado | &lt;a href="http://websec.ca/kb/sql_injection"&gt;websec.ca&lt;/a&gt;&lt;/p&gt;</description></item><item><title>A Visual Git Reference</title><link>http://karpoke.ignaciocano.com/2012/07/15/a-visual-git-reference/</link><pubDate>Sun, 15 Jul 2012 17:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/15/a-visual-git-reference/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This page gives brief, visual reference for the most common commands in git.
Once you know a bit about how git works, this site may solidify your
understanding.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Mark Lodato | &lt;a href="http://marklodato.github.com/visual-git-guide/index-en.html"&gt;marklodato.github.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Levels of aspiration</title><link>http://karpoke.ignaciocano.com/2012/07/15/levels-of-aspiration/</link><pubDate>Sun, 15 Jul 2012 17:20:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/15/levels-of-aspiration/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Debates over technology, technique, and process often go nowhere
because the participants are arguing from different levels of
aspiration.&lt;/p&gt;
&lt;p&gt;You’re unlikely to convince someone they should switch to programming
Ruby for its beauty, if they’re merely looking to make a living as a
single consultant serving local businesses in Schaumburg, Illinois.&lt;/p&gt;
&lt;p&gt;Questions such as ”does this run on my existing web host?” or ”will my
clients want something their nephew web designer hasn’t even heard
of?” matter far more. Their aspirations are local, finding something
that (sorta) works, and getting paid.&lt;/p&gt;</description></item><item><title>¿Existen los colores en la naturaleza?</title><link>http://karpoke.ignaciocano.com/2012/07/15/existen-los-colores-en-la-naturaleza/</link><pubDate>Sun, 15 Jul 2012 17:17:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/15/existen-los-colores-en-la-naturaleza/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Aparentemente esta pregunta parece absurda, ¿Como no van a existir los
bellos colores de los paisajes que podemos observar a diario? El azul
del cielo, el verde de las hojas de los árboles&amp;hellip; parece evidente que
los colores existen y son uno de los atributos más fundamentales de
todos los objetos que observamos. Sin embargo, como veremos a
continuación la respuesta a esta pregunta es asombrosa e inesperada.
Lo primero que tenemos que hacer para tratar de responderla es
analizar brevemente como y por que vemos los objetos que nos rodean.&lt;/p&gt;</description></item><item><title>Statistical functions in MySQL</title><link>http://karpoke.ignaciocano.com/2012/07/14/statistical-functions-in-mysql/</link><pubDate>Sat, 14 Jul 2012 19:38:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/14/statistical-functions-in-mysql/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Even in times of a growing market of specialized NoSQL databases, the
relevance of traditional RDBMS doesn’t decline. Especially when it
comes to the calculation of aggregates based on complex data sets that
can not be processed as a batch like Map&amp;amp;Reduce. MySQL is already
bringing in a handful of aggregate functions that can be useful for a
statistical analysis. The best known of this type are certainly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;COUNT(x), SUM(x), AVG(x), MIN(x), MAX(x), STD(x)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In addition, there are a number of statistical evaluations which are
also worthwhile - if not even more interesting and meaningful, but
with MySQL only producible with greater efforts. What about the
different averages? The harmonic average, a weighted average or the
geomean? What is in the course of this with the aggregate product? How
do we determine the mode, the median? The covariance?&lt;/p&gt;</description></item><item><title>Ready-to-use virtual machines sporting open-source operating systems</title><link>http://karpoke.ignaciocano.com/2012/07/14/ready-to-use-virtual-machines-sporting-open-source-operating-systems/</link><pubDate>Sat, 14 Jul 2012 19:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/14/ready-to-use-virtual-machines-sporting-open-source-operating-systems/</guid><description>&lt;blockquote&gt;
&lt;p&gt;We provide pre-built images for several open-source operating systems.&lt;/p&gt;
&lt;p&gt;Please note that:&lt;/p&gt;
&lt;p&gt;Every image contains the latest software as of the day the image was
built. Performing updates is on your own, and may require looking for
documentation to read using your favourite search engine.
Default usernames and passwords, where required, can be found next to
the download link of each image. You are warmly invited to create your
own user, or at least to change passwords, if you intend to use the
images in a public environment.&lt;/p&gt;</description></item><item><title>Lynis para auditorías de seguridad</title><link>http://karpoke.ignaciocano.com/2012/07/14/lynis-para-auditorias-de-seguridad/</link><pubDate>Sat, 14 Jul 2012 19:23:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/14/lynis-para-auditorias-de-seguridad/</guid><description>&lt;p&gt;&lt;a href="http://www.rootkit.nl/projects/lynis.html"&gt;Lynis&lt;/a&gt; es una herramienta para realizar auditorías en sistemas Unix.
Escanea el sistema en busca de vulnerabilidades y fallos de seguridad.
También muestra información general del sistema, paquetes instalados y
errores de configuración.&lt;/p&gt;
&lt;p&gt;Su objetivo es ayudar en el proceso de auditoría, actualización del
software y escaneo de vulnerabilidades y &lt;em&gt;malware&lt;/em&gt; en sistemas Unix. Se
puede ejecutar sin necesidad de instalación.&lt;/p&gt;
&lt;p&gt;Se puede utilizar en auditorías Basel II, GLBA, HIPAA, PCI DSS y SOX
(Sabarnes-Oxley). La &lt;a href="http://www.rootkit.nl/files/lynis-documentation.html"&gt;documentación&lt;/a&gt; está disponible en línea.&lt;/p&gt;</description></item><item><title>Cómo medir la eficiencia energética de tu propio coche</title><link>http://karpoke.ignaciocano.com/2012/07/14/como-medir-la-eficiencia-energetica-de-tu-propio-coche/</link><pubDate>Sat, 14 Jul 2012 18:27:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/14/como-medir-la-eficiencia-energetica-de-tu-propio-coche/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Pere Roura (Universitat de Girona) y Daniel Oliu nos cuentan en ”How
energy efficient is your car?,” AJP 80: 588-593, July 2012, cómo medir
de forma práctica la eficiencia energética de tu propio coche. Como
ejemplo utilizan su Volkswagen Lupo 3L, un coche diseñado para ser muy
eficiente con un motor diésel de tres cilindros, un peso de 830 kg y
un consumo récord de solo 3 litros a los 100 km. Según su estudio solo
el 28% de la energía del combustible se transfiere a las ruedas, lo
que sin lugar a dudas es todo un récord en eficiencia para un vehículo
comercial. Sin embargo, también nos recuerda que el 72% de la energía
del combustible se pierde por aerodinámica, fricción, pérdidas
mecánicas y térmicas. En los vehículos de gasolina, la eficiencia
suele ser mucho menor. Para un vehículo típico se estima que solo el
12-13% de la energía del combustible se transmite a las ruedas, según
el estudio de Joseph A. Carpenter, Jr. (Department of Energy, USA) et
al., ”Road Transportation Vehicles,” MRS Bull. 33: 439–444, 2008
[copia gratis], del que he extraído la figura de abajo.&lt;/p&gt;</description></item><item><title>Preliminary discussion of the logical design of an electronic computing instrument</title><link>http://karpoke.ignaciocano.com/2012/07/13/preliminary-discussion-of-the-logical-design-of-an-electronic-computing-instrument/</link><pubDate>Fri, 13 Jul 2012 18:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/13/preliminary-discussion-of-the-logical-design-of-an-electronic-computing-instrument/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Arthur W. Burks / Herman H. Goldstine / John von Neumann&lt;/p&gt;
&lt;p&gt;PART I&lt;/p&gt;
&lt;p&gt;​1. Principal components of the machine&lt;/p&gt;
&lt;p&gt;1.1. Inasmuch as the completed device will be a general-purpose
computing machine it should contain certain main organs relating to
arithmetic, memory-storage, control and connection with the human
operator. It is intended that the machine be fully automatic in
character, i.e. independent of the human operator after the
computation starts. A fuller discussion of the implications of this
remark will be given in Sec. 3 below.&lt;/p&gt;</description></item><item><title>Scaling lessons learned at Dropbox</title><link>http://karpoke.ignaciocano.com/2012/07/13/scaling-lessons-learned-at-dropbox/</link><pubDate>Fri, 13 Jul 2012 18:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/13/scaling-lessons-learned-at-dropbox/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I was in charge of scaling Dropbox for a while, from roughly 4,000 to
40,000,000 users. For most of that time we had one to three people
working on the backend. Here are some suggestions on scaling,
particularly in a resource-constrained, fast-growing environment that
can’t always afford to do things ”the right way” (i.e., any real-world
engineering project ;-). If people find this useful, I’ll try to come
up with more tips and write a part 2.&lt;/p&gt;</description></item><item><title>The Complete Wildfire Index (Root/S-OFF Guides/ROMs/Kernels/Radios/RUU/Recoveries/Themes)</title><link>http://karpoke.ignaciocano.com/2012/07/13/the-complete-wildfire-index-roots-off-guidesromskernelsradiosruurecoveriesthemes/</link><pubDate>Fri, 13 Jul 2012 17:37:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/13/the-complete-wildfire-index-roots-off-guidesromskernelsradiosruurecoveriesthemes/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This thread has 2 Posts, and is categorized as following. You can
scroll down to the Point you are looking for.&lt;/p&gt;
&lt;p&gt;Post 1:&lt;/p&gt;
&lt;p&gt;Getting Root / S-OFF to your Wildfire. A Short overview and Guide
Custom ROM List&lt;/p&gt;
&lt;p&gt;Post 2:&lt;/p&gt;
&lt;p&gt;Custom Kernels List
Radio (Baseband) List
RUU List (ROM Update Utility - Getting back to stock)
Custom Recoveries (ClockWorkMod)
Themes List
Misc tweaks / hacks&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» 3xeno | &lt;a href="http://forum.xda-developers.com/showthread.php?t=1029318"&gt;xda-developers.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>ROM NaRkDrOiD IcX3 (4.0.3 LP8/LP9) para Samsung Galaxy S2</title><link>http://karpoke.ignaciocano.com/2012/07/13/rom-narkdroid-icx3-4-0-3-lp8lp9-para-samsung-galaxy-s2/</link><pubDate>Fri, 13 Jul 2012 17:30:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/13/rom-narkdroid-icx3-4-0-3-lp8lp9-para-samsung-galaxy-s2/</guid><description>&lt;p&gt;[ROM] [UPDATE1] [{^NaRkDrOiD IcX3^}][4.0.3.
LP8/LP9][MejorasVarias][Mods][Extras][Novedades y mucho más!] [ ¿¿TE LO
VAS A PERDER?? ]&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/R0Gnec5UpGs?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» anarko919 | &lt;a href="http://www.htcmania.com/showthread.php?t=332730"&gt;htcmania.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Key Principles of Maintainable JavaScript</title><link>http://karpoke.ignaciocano.com/2012/07/11/key-principles-of-maintainable-javascript/</link><pubDate>Wed, 11 Jul 2012 18:45:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/11/key-principles-of-maintainable-javascript/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The thing to remember, above all else when writing JS code, is that
it’s a dynamic language. This means there are a lot of ways to do
things. You don’t have to deal with strongly typed classes, or some of
the more complex features from languages, like C# and Java. This is
both a blessing and a curse.&lt;/p&gt;
&lt;p&gt;You can read an article on the history of JavaScript here, but the
gist of it is that Brandon Eich, in 1995, was hired by Netscape to
design a language. What he came up with was the loosely typed language
that we know as JavaScript. Over the years, it became ”standardized”
as ECMAscript, but, throughout all the browser wars, the various
browsers implemented these features differently. This, naturally, lead
to a lot of sleepless nights for web developers. This problem, when
combined with the fact that JavaScript was considered to be most
applicable for manipulating images and performing quick bits of
validation, led JavaScript to, incorrectly, be viewed as a terrible
language.&lt;/p&gt;</description></item><item><title>Caching with Twemcache</title><link>http://karpoke.ignaciocano.com/2012/07/11/caching-with-twemcache/</link><pubDate>Wed, 11 Jul 2012 00:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/11/caching-with-twemcache/</guid><description>&lt;blockquote&gt;
&lt;p&gt;We built Twemcache because we needed a more robust and manageable
version of Memcached, suitable for our large-scale production
environment. Today, we are open-sourcing Twemcache under the New BSD
license. As one of the largest adopters of Memcached, a popular open
source caching system, we have used Memcached over the years to help
us scale our ever-growing traffic. Today, we have hundreds of
dedicated cache servers keeping over 20TB of data from over 30
services in-memory, including crucial data such as user information
and Tweets. Collectively these servers handle almost 2 trillion
queries on any given day (that’s more than 23 million queries per
second). As we continued to grow, we needed a more robust and
manageable version of Memcached suitable for our large scale
production environment.&lt;/p&gt;</description></item><item><title>The TTY demystified</title><link>http://karpoke.ignaciocano.com/2012/07/09/the-tty-demystified/</link><pubDate>Mon, 09 Jul 2012 20:09:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/09/the-tty-demystified/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The TTY subsystem is central to the design of Linux, and UNIX in
general. Unfortunately, its importance is often overlooked, and it is
difficult to find good introductory articles about it. I believe that
a basic understanding of TTYs in Linux is essential for the developer
and the advanced user.&lt;/p&gt;
&lt;p&gt;Beware, though: What you are about to see is not particularly elegant.
In fact, the TTY subsystem ” while quite functional from a user’s
point of view ” is a twisty little mess of special cases. To
understand how this came to be, we have to go back in time.&lt;/p&gt;</description></item><item><title>Pitfalls in Random Number Generation</title><link>http://karpoke.ignaciocano.com/2012/07/09/pitfalls-in-random-number-generation/</link><pubDate>Mon, 09 Jul 2012 20:07:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/09/pitfalls-in-random-number-generation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Random number generation is subtle. Random number generators contain
deterministic algorithms designed to produce output that simulates
non-deterministic behavior. It’s amazing that there are algorithms that do
this well enough for many applications. But unless used carefully, random
number generators can misbehave in mysterious ways.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» John D. Cook | &lt;a href="http://www.codeproject.com/Articles/28548/Pitfalls-in-Random-Number-Generation"&gt;codeproject.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>La vida, ¿es inevitable o un simple acontecimiento fortuito?</title><link>http://karpoke.ignaciocano.com/2012/07/07/la-vida-es-inevitable-o-un-simple-acontecimiento-fortuito/</link><pubDate>Sat, 07 Jul 2012 18:35:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/07/la-vida-es-inevitable-o-un-simple-acontecimiento-fortuito/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Bajo la intensa mirada del telescopio espacial Kepler, van apareciendo
ante nosotros más y más planetas similares al nuestro. Todavía no
hemos encontrado uno exactamente igual que la Tierra, pero son tantos
los descubiertos que parece que la galaxia debe estar llena de
planetas habitables.&lt;/p&gt;
&lt;p&gt;Estos descubrimientos nos traen de nuevo una vieja paradoja. Tal como
el físico Enrico Fermi, preguntó en 1950, si hay muchas sitios
adecuados para la vida ahí fuera y las formas de vida extraterrestre
pueden ser comunes, ¿dónde se han metido? Después de más de medio
siglo de búsqueda de inteligencia extraterrestre, hasta el momento nos
quedamos con las manos vacías.&lt;/p&gt;</description></item><item><title>Definitive PHP security checklist</title><link>http://karpoke.ignaciocano.com/2012/07/06/definitive-php-security-checklist/</link><pubDate>Fri, 06 Jul 2012 14:34:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/06/definitive-php-security-checklist/</guid><description>&lt;blockquote&gt;
&lt;p&gt;There was a recent question about a PHP security checklist on a forum
I frequent, and I’ve decided to write my own comprehensive checklist
to fill the void. There’s something for everyone but the security
expert. In fact, you might find an issue that you never thought about.
Securing PHP web applications would be a better title for this
article.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://www.sk89q.com/2009/08/definitive-php-security-checklist/"&gt;sk89q.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Free Software Foundation recommendations for free operating system distributions considering Secure Boot</title><link>http://karpoke.ignaciocano.com/2012/07/06/free-software-foundation-recommendations-for-free-operating-system-distributions-considering-secure-boot/</link><pubDate>Fri, 06 Jul 2012 14:33:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/06/free-software-foundation-recommendations-for-free-operating-system-distributions-considering-secure-boot/</guid><description>&lt;blockquote&gt;
&lt;p&gt;We have been working hard the last several months to stop Restricted
Boot, a major threat to user freedom, free software ideals, and free
software adoption. Under the guise of security, a computer afflicted
with Restricted Boot refuses to boot any operating systems other than
the ones the computer distributor has approved in advance. Restricted
Boot takes control of the computer away from the user and puts it in
the hands of someone else.&lt;/p&gt;</description></item><item><title>Declaration of Internet freedom</title><link>http://karpoke.ignaciocano.com/2012/07/05/declaration-of-internet-freedom/</link><pubDate>Thu, 05 Jul 2012 18:52:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/05/declaration-of-internet-freedom/</guid><description>&lt;blockquote&gt;
&lt;p&gt;We believe that a free and open Internet can bring about a better
world. To keep the Internet free and open, we call on communities,
industries and countries to recognize these principles. We believe
that they will help to bring about more creativity, more innovation
and more open societies.&lt;/p&gt;
&lt;p&gt;We are joining an international movement to defend our freedoms
because we believe that they are worth fighting for.&lt;/p&gt;
&lt;p&gt;Let’s discuss these principles ” agree or disagree with them, debate
them, translate them, make them your own and broaden the discussion
with your community ” as only the Internet can make possible.&lt;/p&gt;</description></item><item><title>Radix Sort Revisited</title><link>http://karpoke.ignaciocano.com/2012/07/05/radix-sort-revisited/</link><pubDate>Thu, 05 Jul 2012 18:43:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/05/radix-sort-revisited/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In every decent programmer’s toolbox lies a strange weapon called a
Radix Sort. Where does it come from ? Who invented it ? I don’t know.
As far as I can remember it was there, fast, easy, effective. Really
effective. So unbelievably useful I’ve never really understood why
people would want to use something else. The reasons ? Most of the
time, they tell me about floats, negative values, and why their new
quick-sort code rocks.&lt;/p&gt;</description></item><item><title>A Gentle Introduction to Algorithm Complexity Analysis</title><link>http://karpoke.ignaciocano.com/2012/07/05/a-gentle-introduction-to-algorithm-complexity-analysis/</link><pubDate>Thu, 05 Jul 2012 18:17:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/05/a-gentle-introduction-to-algorithm-complexity-analysis/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A lot of programmers that make some of the coolest and most useful
software today, such as many of the stuff we see on the Internet or
use daily, don’t have a theoretical computer science background.
They’re still pretty awesome and creative programmers and we thank
them for what they build.&lt;/p&gt;
&lt;p&gt;However, theoretical computer science has its uses and applications
and can turn out to be quite practical. In this article, targeted at
programmers who know their art but who don’t have any theoretical
computer science background, I will present one of the most pragmatic
tools of computer science: Big O notation and algorithm complexity
analysis. As someone who has worked both in a computer science
academic setting and in building production-level software in the
industry, this is the tool I have found to be one of the truly useful
ones in practice, so I hope after reading this article you can apply
it in your own code to make it better. After reading this post, you
should be able to understand all the common terms computer scientists
use such as ”big O”, ”asymptotic behavior” and ”worst-case analysis”.&lt;/p&gt;</description></item><item><title>tl;drLegal</title><link>http://karpoke.ignaciocano.com/2012/07/04/tldrlegal/</link><pubDate>Wed, 04 Jul 2012 00:44:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/04/tldrlegal/</guid><description>&lt;blockquote&gt;
&lt;p&gt;SKIP THE LICENSE
Reading software licenses sucks, so we’ve summarized all of the
popular ones for you in a neat at-a-glance format. Just begin typing
the name of your license on the frontpage and select from the
auto-completing drop-down menu.
TL;DR - We summarize software licenses.&lt;/p&gt;
&lt;p&gt;LET THEM TAKE IT EASY
Do you have people using your software? We all hate reading software
licenses. Let them take it easy and link them to your license on here.
We provide embed and linking options for every license on the site.
Next time include a link alongside your license.
TL;DR - Link a summary in place of a license.&lt;/p&gt;</description></item><item><title>Ubuntu Manual Project</title><link>http://karpoke.ignaciocano.com/2012/07/04/ubuntu-manual-project/</link><pubDate>Wed, 04 Jul 2012 00:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/04/ubuntu-manual-project/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Primeros pasos con Ubuntu 12.04 es una guía para principiantes del
sistema operativo Ubuntu. Se encuentra disponible bajo una licencia de
código abierto y su descarga, lectura, modificación y distribución son
libres.
El manual le ayudará a familiarizarse con tareas cotidianas como
navegar por Internet, escuchar música, escanear documentos y mucho
más. Al centrarse en instrucciones fáciles de seguir, es adecuado para
todos los niveles de experiencia.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://ubuntu-manual.org/"&gt;ubuntu-manual.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Conexión inalámbrica en Raspbmc</title><link>http://karpoke.ignaciocano.com/2012/07/03/conexion-inalambrica-en-raspbmc/</link><pubDate>Tue, 03 Jul 2012 03:33:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/03/conexion-inalambrica-en-raspbmc/</guid><description>&lt;p&gt;&lt;a href="http://karpoke.ignaciocano.com/2012/06/29/raspbmc/"&gt;El otro día&lt;/a&gt; me quedé sin poder probar la conexión inalámbrica en
Raspbmc porque los puertos USB de la Raspberry Pi no dan suficiente
potencia para la antena WiFi USB que tengo. Cada puerto USB proporciona
hasta 100mA, y parece que &lt;a href="https://help.ubuntu.com/community/WifiDocs/Driver/zydas_zd1211"&gt;el consumo de la antena&lt;/a&gt; oscila entre 150mA
y 200mA, por lo que no es suficiente. Quizá conectando un cable USB en Y
desde los dos USB podría llegar a funcionar, pero nos quedaríamos sin
puertos USB libres.&lt;/p&gt;</description></item><item><title>Una cebolla que nos puede hacer llorar</title><link>http://karpoke.ignaciocano.com/2012/07/01/una-cebolla-que-nos-puede-hacer-llorar/</link><pubDate>Sun, 01 Jul 2012 23:51:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/01/una-cebolla-que-nos-puede-hacer-llorar/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El pasado día 26 de junio asistí al evento ”Iniciativas Open Data en
España”, atraído sin duda, por los grandes espadas en la materia que
son Alberto Abella, Roberto Santos y Victoria Anderica, que además del
reconocido prestigio que tienen, llevan años trabajando para que este
país sea algo mejor. Como cabía esperar, no me defraudaron en sus
intervenciones, que fueron tan correctas como acertadas. Como
contrapartida, y diré el pecado, pero no el pecador, tuve que oír de
boca de ”expertos” en la materia, estas dos afirmaciones, que me
preocuparon y mucho, puesto que pueden afectar muy negativamente a la
Ley de Transparencia y su desarrollo posterior:&lt;/p&gt;</description></item><item><title>Paper Enigma</title><link>http://karpoke.ignaciocano.com/2012/07/01/paper-enigma/</link><pubDate>Sun, 01 Jul 2012 21:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/07/01/paper-enigma/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Although the Enigma cipher as a whole is quite complex (it’s
complexity is comparable to modern cryptographic algorithms) the
individual transformations within it are relatively simple. In fact,
they are simple enough that you can decipher an Enigma message with
just a paper model.
Our model is three-dimensional, to illustrate the wiring of a real
Enigma machine. It needs only common household items to construct, and
is completely compatible with all settings of a real Enigma machine
(models I, M1, M2 and M3).&lt;/p&gt;</description></item><item><title>Raspbmc</title><link>http://karpoke.ignaciocano.com/2012/06/29/raspbmc/</link><pubDate>Fri, 29 Jun 2012 04:45:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/29/raspbmc/</guid><description>&lt;p&gt;&lt;a href="http://www.raspbmc.com/"&gt;Raspbmc&lt;/a&gt; es una distribución basada en debian que permite ejecutar
XBMC en la Raspberry Pi, lo que la transforma en un interesante
reproductor multimedia casero (HTPC).&lt;/p&gt;
&lt;p&gt;&lt;img alt="Raspbmc logo" loading="lazy" src="http://karpoke.ignaciocano.com/images/raspbmc-logo.png"&gt;&lt;/p&gt;
&lt;p&gt;Esta distribución recibe actualizaciones constantes que añaden mejoras,
actualizaciones de &lt;em&gt;drivers&lt;/em&gt; y nuevas funcionalidades. Además, permite
compartir el contenido multimedia a través de NFS, SMB, FTP y HTTP.
Raspbmc ha sido creada y está siendo mantenida por Sam Nazarko.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Raspbmc XBMC" loading="lazy" src="http://karpoke.ignaciocano.com/images/raspbmc-xbmc-300x196.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fuente &lt;a href="http://www.retrocomputers.eu/2012/06/20/watching-micro-men-via-xbmc-on-the-raspberry-pi/"&gt;retrocomputers.eu&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>GNU Make in Detail for Beginners</title><link>http://karpoke.ignaciocano.com/2012/06/28/gnu-make-in-detail-for-beginners/</link><pubDate>Thu, 28 Jun 2012 12:56:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/28/gnu-make-in-detail-for-beginners/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Large projects can contain thousands of lines of code, distributed in
multiple source files, written by many developers and arranged in
several subdirectories. A project may contain several component
divisions. These components may have complex inter-dependencies ” for
example, in order to compile component X, you have to first compile Y;
in order to compile Y, you have to first compile Z; and so on. For a
large project, when a few changes are made to the source, manually
recompiling the entire project each time is tedious, error-prone and
time-consuming.&lt;/p&gt;</description></item><item><title>Mostrar las aplicaciones ocultas que se ejecutan al inicio</title><link>http://karpoke.ignaciocano.com/2012/06/28/mostrar-las-aplicaciones-ocultas-que-se-ejecutan-al-inicio/</link><pubDate>Thu, 28 Jun 2012 12:42:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/28/mostrar-las-aplicaciones-ocultas-que-se-ejecutan-al-inicio/</guid><description>&lt;p&gt;Las aplicaciones que se ejecutan al inicio tienen un archivo de
configuración en el directorio &lt;code&gt;/etc/xdg/autostart&lt;/code&gt;. Algunos de estos
archivos de configuración tienen la variable &lt;code&gt;NoDisplay=true&lt;/code&gt;, por lo
que no aparecen en el listado de Aplicaciones al inicio, y por tanto no
se pueden desactivar a golpe de ratón.&lt;/p&gt;
&lt;p&gt;Si queremos que &lt;a href="http://linuxzone.es/2012/06/07/tip-como-ver-las-aplicaciones-que-se-ejecutan-al-inicio-en-ubuntu/"&gt;estas aplicaciones se muestren&lt;/a&gt; y así poder
desactivarlas mediante la interfaz gráfica, ejecutamos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo sed -i &amp;#39;s/NoDisplay=true/NoDisplay=false/&amp;#39; /etc/xdg/autostart/*
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Si además queremos que &lt;a href="http://linuxzone.es/2012/06/07/tip-como-ver-las-aplicaciones-que-se-ejecutan-al-inicio-en-ubuntu/#comment-23800"&gt;cada vez que instalamos un programa se ejecute
este comando&lt;/a&gt;, podemos incluirlo en el archivo &lt;code&gt;/etc/apt.conf&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>El algoritmo de Dios</title><link>http://karpoke.ignaciocano.com/2012/06/28/el-algoritmo-de-dios/</link><pubDate>Thu, 28 Jun 2012 12:15:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/28/el-algoritmo-de-dios/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El algoritmo de Dios es un término que surgió en la búsqueda de aquel
algoritmo que indicara los pasos mínimos que resuelven un cubo de
Rubik cualquiera. El término se usa profusamente, no sólo para el cubo
de Rubik.&lt;/p&gt;
&lt;p&gt;Mucho antes de conocer dicho término, cuando me encontraba con
diversos tipos de problemas, ya me asaltaba recurrentemente una
pregunta irrelevante (para el caso que me ocupaba), pero que espero te
haga pensar un poco en la importancia de algunas cuestiones que quizás
no conoces:&lt;/p&gt;</description></item><item><title>An Introduction to Lock-Free Programming</title><link>http://karpoke.ignaciocano.com/2012/06/27/an-introduction-to-lock-free-programming/</link><pubDate>Wed, 27 Jun 2012 23:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/27/an-introduction-to-lock-free-programming/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Lock-free programming is a challenge, not just because of the
complexity of the task itself, but because of how difficult it can be
to penetrate the subject in the first place.
I was fortunate in that my first introduction to lock-free (also
known as lockless) programming was Bruce Dawson’s excellent and
comprehensive white paper, Lockless Programming Considerations. And
like many, I’ve had the occasion to put Bruce’s advice into practice
developing and debugging lock-free code on platforms such as the Xbox
360.
Since then, a lot of good material has been written, ranging from
abstract theory and proofs of correctness to practical examples and
hardware details. I’ll leave a list of references in the footnotes. At
times, the information in one source may appear orthogonal to other
sources: For instance, some material assumes sequential consistency,
and thus sidesteps the memory ordering issues which typically plague
lock-free C/C++ code. The new C++11 atomic library standard throws
another wrench into the works, challenging the way many of us express
lock-free algorithms.
In this post, I’d like to re-introduce lock-free programming, first
by defining it, then by distilling most of the information down to a
few key concepts. I’ll show how those concepts relate to one another
using flowcharts, then we’ll dip our toes into the details a little
bit. At a minimum, any programmer who dives into lock-free programming
should already understand how to write correct multithreaded code
using mutexes, and other high-level synchronization objects such as
semaphores and events.&lt;/p&gt;</description></item><item><title>Why you should never use hash functions for message authentication</title><link>http://karpoke.ignaciocano.com/2012/06/27/why-you-should-never-use-hash-functions-for-message-authentication/</link><pubDate>Wed, 27 Jun 2012 23:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/27/why-you-should-never-use-hash-functions-for-message-authentication/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The general thrust of this post is: use a MAC function like HMAC to
sign data, don’t use hash functions. Although not all hash functions
suffer from the problem I’m going to illustrate, in general using a
hash function for message authentication comes with a lot of potential
problems because those functions aren’t designed for this task. You
shouldn’t try to work around it by creatively processing the inputs or
inventing some fancy way of chaining hash functions. Just use the
functions that were designed for this task instead of inventing your
own crypto schemes.&lt;/p&gt;</description></item><item><title>All About Unicode, UTF8 &amp; Character Sets</title><link>http://karpoke.ignaciocano.com/2012/06/27/all-about-unicode-utf8-character-sets/</link><pubDate>Wed, 27 Jun 2012 23:52:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/27/all-about-unicode-utf8-character-sets/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This is a story that dates back to the earliest days of computers. The
story has a plot, well, sort of. It has competition and intrigue, as
well as traversing oodles of countries and languages. There is
conflict and resolution, and a happyish ending. But the main focus is
the characters ” 110,116 of them. By the end of the story, they will
all find their own unique place in this world.
This story (or article, as known on Smashing Magazine) will follow a
few of those characters more closely, as they journey from Web server
to browser, and back again. Along the way, you’ll find out more about
the history of characters, character sets, Unicode and UTF-8, and why
question marks and odd accented characters sometimes show up in
databases and text files.&lt;/p&gt;</description></item><item><title>Carta abierta al Presidente Constitucional de la República del Ecuador</title><link>http://karpoke.ignaciocano.com/2012/06/26/carta-abierta-al-presidente-constitucional-de-la-republica-del-ecuador/</link><pubDate>Tue, 26 Jun 2012 17:44:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/26/carta-abierta-al-presidente-constitucional-de-la-republica-del-ecuador/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Estimado Rafael Correa,
Presidente de Ecuador&lt;/p&gt;
&lt;p&gt;En lo referente al asilo de Julian Assange en Ecuador me permito
hacerle la siguiente recomendación.&lt;/p&gt;
&lt;p&gt;El trabajo realizado por Assange y WikiLeaks ha sido muy importante
para transparentar el mundo en el que vivimos. Proteger a Julian
Assange de la persecución de EE.UU. es un deber que tenemos todos y
usted tiene la posibilidad de ayudarle. Las posibles acusaciones de
delitos sexuales son otro asunto, y de ser serias, merecen respeto.
Aquí propongo una manera por la cual Ecuador puede lograr los dos
objetivos.&lt;/p&gt;</description></item><item><title>El extraño caso de la función negada en Javascript</title><link>http://karpoke.ignaciocano.com/2012/06/26/el-extrano-caso-de-la-funcion-negada-en-javascript/</link><pubDate>Tue, 26 Jun 2012 13:23:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/26/el-extrano-caso-de-la-funcion-negada-en-javascript/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Tras este novelesco título lo que se esconde en esta ocasión es una
estructura que podemos encontrar últimamente en bibliotecas y códigos
de terceros. Se trata de una variante de las funciones autoejecutables
(o que se auto invocan) que ya tratamos aquí hace algún tiempo.&lt;/p&gt;
&lt;p&gt;En concreto, se trata de la siguiente pieza de código:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;!function() {
// My awesome code...
}();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;¿Qué es exactamente esta función negada? ¿Cómo y porqué funciona?
Echemos un vistazo a las tripas de Javascript¦&lt;/p&gt;</description></item><item><title>Actualización automática ¿Bendición o condena?</title><link>http://karpoke.ignaciocano.com/2012/06/26/actualizacion-automatica-bendicion-o-condena/</link><pubDate>Tue, 26 Jun 2012 12:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/26/actualizacion-automatica-bendicion-o-condena/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El caso TheFlame ha promovido muchas reacciones: los articulistas
rellenan páginas con prefijos ”ciber” y la palabra ”guerra”. Las casas
antivirus lo usan como arma de venta (aun sin haberlo detectado en
cinco años) y Microsoft queda en evidencia con su PKI y la refuerza.
TheFlame ha minado también la confianza: en los gobiernos, en los
antivirus&amp;hellip; pero sobre todo, en la criptografía y en la actualización
automática.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://unaaldia.hispasec.com/2012/06/actualizacion-automatica-bendicion-o.html"&gt;hispasec.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>lexical scoping and dynamic scoping in Emacs Lisp</title><link>http://karpoke.ignaciocano.com/2012/06/26/lexical-scoping-and-dynamic-scoping-in-emacs-lisp/</link><pubDate>Tue, 26 Jun 2012 12:39:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/26/lexical-scoping-and-dynamic-scoping-in-emacs-lisp/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In this article, I demonstrate:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;difference between dynamic scoping and lexical scoping in Emacs
Lisp&lt;/li&gt;
&lt;li&gt;what to watch out for with dynamic scoping&lt;/li&gt;
&lt;li&gt;what you can do with lexical scoping and lexical closures&lt;/li&gt;
&lt;li&gt;what happens when you mix lexical scoping code and dynamic scoping
code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Emacs Lisp is always dynamically scoped in Emacs 23 and below. Support
for lexical scoping is added to Emacs 24. Nice because many agree that
lexical scoping makes more sense in most cases than dynamic scoping
does. You’ll see why soon in this article. If you have an el file that
you want to load with lexical scoping, you can add -*-
lexical-binding: t -*- as the first line, then when Emacs 24 loads
the file, it will apply lexical scoping to the code in that el file.&lt;/p&gt;</description></item><item><title>Why NULL points to 0?</title><link>http://karpoke.ignaciocano.com/2012/06/26/why-null-points-to-0/</link><pubDate>Tue, 26 Jun 2012 02:40:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/26/why-null-points-to-0/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A few years ago I would answer the above question with ”because NULL
is defined as a void pointer to 0”, which is only half correct (and
close to being wrong). The answer to this question is much more
complicated and thus much more interesting.&lt;/p&gt;
&lt;p&gt;Let’s start with checking what the C standards (or actually drafts of
the standards) say about the (in)famous NULL ptr. The
green/yellow/orange colors mark the part that caught my attention.
I’ll leave the C++0x case for another time (C++0x introduces the
nullptr of std::nullptr_t type btw). For TL;DR scroll down, I
summarize the points anyway.&lt;/p&gt;</description></item><item><title>Golden Axe - Desvelando todos sus secretos</title><link>http://karpoke.ignaciocano.com/2012/06/26/golden-axe-desvelando-todos-sus-secretos/</link><pubDate>Tue, 26 Jun 2012 02:00:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/26/golden-axe-desvelando-todos-sus-secretos/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Buenas, aquí os traigo, en primicia, una guía que destripa los
secretos del sistema de puntuación del juego, uno de los más complejos
de la época y de la historia de los beat em up. Muchos os habreis
acabado este juego, pero seguro que nunca habeis tenido claro porque
la maquina os da al final una puntuacion u otra, incluso aunque hayais
hecho partidas casi iguales la puntuacion cambia ostensiblemente y
nunca queda claro el motivo. Bien, espero con esta breve guia quede
todo claro y a partir de ahora controleis a vuestro antojo los puntos
que obteneis en este juego. Al clarificar el sistema de puntuacion,
tambien se hace mas sencillo intentar lograr una cierta puntuacion en
el juego, pues ahora ya sabemos de qué depende. La guia está basada en
la versión original, esto es, la versión Arcade japonesa. Es
importante este detalle porque algunos enemigos tienen algo menos de
vida en el resto de versiones arcade del juego. Y por supuesto esto
que digo nada tiene que ver con la versiones domésticas.&lt;/p&gt;</description></item><item><title>PHP Database Access: Are You Doing It Correctly?</title><link>http://karpoke.ignaciocano.com/2012/06/25/php-database-access-are-you-doing-it-correctly/</link><pubDate>Mon, 25 Jun 2012 11:52:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/25/php-database-access-are-you-doing-it-correctly/</guid><description>&lt;blockquote&gt;
&lt;p&gt;We’ve covered PHP’s PDO API a couple of times here on Nettuts+, but,
generally, those articles focused more on the theory, and less on the
application. This article will fix that!
To put it plainly, if you’re still using PHP’s old mysql API to
connect to your databases, read on!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://net.tutsplus.com/tutorials/php/php-database-access-are-you-doing-it-correctly/"&gt;tutsplus.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>in which three programming methods are compared</title><link>http://karpoke.ignaciocano.com/2012/06/25/in-which-three-programming-methods-are-compared/</link><pubDate>Mon, 25 Jun 2012 11:25:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/25/in-which-three-programming-methods-are-compared/</guid><description>&lt;blockquote&gt;
&lt;p&gt;There are, roughly speaking, three ways to develop large user-facing
programs, which we will refer to here as 0) the Unix way, 1) the Emacs
way, and 2) the wrong way.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://technomancy.us/161"&gt;technomancy.us&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Un universo desde la nada</title><link>http://karpoke.ignaciocano.com/2012/06/25/un-universo-desde-la-nada/</link><pubDate>Mon, 25 Jun 2012 11:09:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/25/un-universo-desde-la-nada/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Lawrence Krauss da una charla sobre nuestro actual panorama del
universo, cómo éste terminará y sobre todo cómo es que se produjo
desde la nada. Krauss es autor de muchos libros best seller sobre
física y cosmología, incluyendo ”Física de Star Trek.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Fs_MwYZHm7g?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» @polibioinexistente | &lt;a href="https://www.youtube.com/watch?v=Fs_MwYZHm7g"&gt;youtube.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Tesla, el genio que hizo la luz</title><link>http://karpoke.ignaciocano.com/2012/06/25/tesla-el-genio-que-hizo-la-luz/</link><pubDate>Mon, 25 Jun 2012 11:07:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/25/tesla-el-genio-que-hizo-la-luz/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Nicola Tesla, ingeniero y matemático fue uno de los grandes inventores
del siglo XX y también de los más olvidados. Precursor de la
televisión, de la robótica, de los rayos X y de muchos otros
adelantos, Tesla fue el genio que afirmó y demostró en sus
experimentos que podía generar una energía libre, universal y
gratuita. En 2006 las Naciones Unidas conmemoraron el año de Tesla.
Además Tesla ha servido de inspiración para la Real Academia de
Ciencias Exactas, Físicas y Matemáticas, que este año ha reivindicado
su figura. Precisamente ahora, finaliza el ciclo ”Ciencia para todos”
y con él, el proceso de selección de talentos matemáticos entre los
escolares españoles. Es el llamado proyecto ESTALMAT, que sigue los
pasos de las antiguas escuelas de conocimiento.&lt;/p&gt;</description></item><item><title>M.C. Escher - Metamorphose</title><link>http://karpoke.ignaciocano.com/2012/06/25/m-c-escher-metamorphose/</link><pubDate>Mon, 25 Jun 2012 10:40:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/25/m-c-escher-metamorphose/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Maurits Cornelis Escher es un artista holandés nacido en la ciudad de
Leeuwarden, Países Bajos, el 17 de junio de 1898, mejor conocido por
sus grabados en madera, xilografías y litografías que tratan sobre
figuras imposibles, teselados y mundos imaginarios. Su obra
experimenta con diversos métodos de representar (en dibujos de 2 ó 3
dimensiones) espacios paradójicos que desafían a los modos habituales
de representación. No fue precisamente un estudiante brillante, y sólo
llegó a destacar en las clases de dibujo. En 1919, bajo presión
paterna, empieza los estudios de arquitectura en la Escuela de
Arquitectura y Artes Decorativas de Haarlem, estudios que abandonó
poco después para pasar como discípulo de un profesor de artes
gráficas, Jessurum de Mesquitas. Con él, adquirió unos buenos
conocimientos básicos de dibujo, y destacó sobremanera en la técnica
de grabado en madera, la cual llegó a dominar con gran maestría.&lt;/p&gt;</description></item><item><title>Abrir archivos .tec en GNU/Linux</title><link>http://karpoke.ignaciocano.com/2012/06/23/abrir-archivos-tec-en-gnulinux/</link><pubDate>Sat, 23 Jun 2012 13:41:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/23/abrir-archivos-tec-en-gnulinux/</guid><description>&lt;p&gt;Haciendo una copia de seguridad de los datos de un móvil con Android
ICS, he visto que existe un directorio llamado &lt;code&gt;cache&lt;/code&gt; en el mismo
directorio donde se guardan las fotos, &lt;code&gt;/sdcard/DCIM/Camera&lt;/code&gt;, que
contiene archivos cuya extensión es &lt;code&gt;.tec&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Echando un vistazo al contenido de estos archivos con &lt;code&gt;hexer&lt;/code&gt;, parece
ser que se trata de un archivo JFIF:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;00000000: ff d9 66 b3 00 00 ff d8 ff e0 00 10 4a 46 49 46 ..f.........JFIF
00000010: 00 01 01 00 00 01 00 01 00 00 ff db 00 43 00 05 .............C..
00000020: 03 04 04 04 03 05 04 04 04 05 05 05 06 07 0c 08 ................
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Por el nombre del directorio y por el tamaño de las fotos, menos de
100K, parece que &lt;a href="http://androidforums.com/samsung-galaxy-s2-international/427146-dcim-camera-cache.html"&gt;deben ser imágenes en miniatura&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Arch en Raspberry Pi</title><link>http://karpoke.ignaciocano.com/2012/06/22/arch-en-raspberry-pi/</link><pubDate>Fri, 22 Jun 2012 20:41:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/22/arch-en-raspberry-pi/</guid><description>&lt;p&gt;Después de haber estado usando la &lt;a href="http://karpoke.ignaciocano.com/2012/06/21/raspberry-pi/"&gt;Raspberry Pi con Debian&lt;/a&gt;, he
querido probar otras distribuciones, en este caso Arch.&lt;/p&gt;
&lt;p&gt;Desde la página de &lt;a href="http://www.raspberrypi.org/downloads"&gt;descargas&lt;/a&gt;, nos bajamos el torrent, así no
sobrecargamos el servidor.&lt;/p&gt;
&lt;h2 id="crear-una-copia-de-la-tarjeta-sd"&gt;Crear una copia de la tarjeta SD&lt;/h2&gt;
&lt;p&gt;He estado unos días trasteando con Debian, ya sabéis, modificando la
tabla de particiones para utilizar todo el espacio disponible,
instalando paquetes, configurándola a mi gusto, no mucho, pero si ahora
formateo la tarjeta, es un trabajo perdido. No sólo eso, sino que no
descarto tener que repetirlo de nuevo si posteriormente vuelvo a debian.
Puede que al final me quede con Arch, pero me apetece probar alguna
distribución más, como &lt;a href="http://www.raspbmc.com"&gt;Raspbmc&lt;/a&gt; o &lt;a href="http://www.pwnpi.com"&gt;PwnPi&lt;/a&gt;, así que me interesa
guardar una copia de la tarjeta. Quizá sería mejor opción crear una
máquina virtual con &lt;code&gt;qemu&lt;/code&gt; para probar otras distribuciones, o utilizar
tarjetas SD diferentes, pero dado lo sencillo que es hacer la copia esto
será lo primero que haga.&lt;/p&gt;</description></item><item><title>The Linux Graphics Stack</title><link>http://karpoke.ignaciocano.com/2012/06/22/the-linux-graphics-stack/</link><pubDate>Fri, 22 Jun 2012 17:04:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/22/the-linux-graphics-stack/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This is an introductory overview post for the Linux Graphics Stack,
and how it currently all fits together. I initially wrote it for
myself after having conversations with people like Owen Taylor, Ray
Strode and Adam Jackson about this stack. I had to go back to them
every month or so and learn the stuff from the ground up all over
again, as I had forgotten every single piece. I asked them for a good
high-level overview document so I could stop bothering them. They
didn’t know of any. I started this one. It has been reviewed by Adam
Jackson and David Airlie, both of whom work on this exact stack.&lt;/p&gt;</description></item><item><title>Distribución de frecuencias</title><link>http://karpoke.ignaciocano.com/2012/06/22/distribucion-de-frecuencias/</link><pubDate>Fri, 22 Jun 2012 00:53:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/22/distribucion-de-frecuencias/</guid><description>&lt;h2 id="distribución-de-los-comandos-más-utilizados"&gt;Distribución de los comandos más utilizados&lt;/h2&gt;
&lt;p&gt;Una de esas combinaciones de comandos curiosas es aquella que nos
devuelve un listado de los &lt;a href="http://www.commandlinefu.com/commands/view/604/list-of-commands-you-use-most-often"&gt;comandos más utilizados&lt;/a&gt; ordenados por
frecuencia, en este caso limitado a los más frecuentes:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ history | awk &amp;#39;{a[$2]++} END {for (i in a) { print a[i] &amp;#34; &amp;#34; i }}&amp;#39; | sort -rn | head
62 cd
50 sudo
45 vim
39 ls
32 ssh
25 wget
23 memento.sh
23 cat
9 curl
9 man
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A partir de estos datos, podemos obtener una &lt;a href="http://bayesianbiologist.com/2012/06/01/distribution-of-oft-used-bash-commands/"&gt;distribución de su
frecuencia de uso&lt;/a&gt; en relación al número total de comandos diferentes
utilizando el paquete estadístico R:&lt;/p&gt;</description></item><item><title>hpHosts, evitando la navegación por dominios maliciosos</title><link>http://karpoke.ignaciocano.com/2012/06/21/hphosts-evitando-la-navegacion-por-dominios-maliciosos/</link><pubDate>Thu, 21 Jun 2012 21:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/21/hphosts-evitando-la-navegacion-por-dominios-maliciosos/</guid><description>&lt;p&gt;Cuando navegamos por Internet, no somos conscientes de muchas de las
conexiones a diferentes dominios que se están llevando a cabo. Desde
páginas web que cargan o envían datos a otros dominios nada más
visitarlas, hasta casos de &lt;em&gt;phishing&lt;/em&gt; o conexiones realizadas por virus
o troyanos.&lt;/p&gt;
&lt;p&gt;hpHosts es un proyecto que mantiene una recopilación de dominios cuyo
contenido es malicioso, suplanta a otro (&lt;em&gt;phishing&lt;/em&gt;), busca estafarnos o
está relacionado con &lt;em&gt;spam&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>Mario5</title><link>http://karpoke.ignaciocano.com/2012/06/21/mario5/</link><pubDate>Thu, 21 Jun 2012 19:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/21/mario5/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In the history of computer games some games have created and carried
whole companies on their shoulders. One of those games is certainly
Mario Bros. The Mario character first appeared in the game Donkey Kong
and became very famous within its own game series starting with the
original Mario Bros. in 1983. Nowadays a lot of spin-offs and 3D jump
and runs are being produced centering the Mario character. In this
article we will develop a very simple Super Mario clone, which is
easily extendible with new items, enemies, heros and of course levels.&lt;/p&gt;</description></item><item><title>Regular Expression Matching Can Be Simple And Fast</title><link>http://karpoke.ignaciocano.com/2012/06/21/regular-expression-matching-can-be-simple-and-fast/</link><pubDate>Thu, 21 Jun 2012 18:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/21/regular-expression-matching-can-be-simple-and-fast/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Historically, regular expressions are one of computer science’s
shining examples of how using good theory leads to good programs. They
were originally developed by theorists as a simple computational
model, but Ken Thompson introduced them to programmers in his
implementation of the text editor QED for CTSS. Dennis Ritchie
followed suit in his own implementation of QED, for GE-TSS. Thompson
and Ritchie would go on to create Unix, and they brought regular
expressions with them. By the late 1970s, regular expressions were a
key feature of the Unix landscape, in tools such as ed, sed, grep,
egrep, awk, and lex.&lt;/p&gt;</description></item><item><title>Microcódigo en mi código</title><link>http://karpoke.ignaciocano.com/2012/06/21/microcodigo-en-mi-codigo/</link><pubDate>Thu, 21 Jun 2012 18:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/21/microcodigo-en-mi-codigo/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El micro-código corresponde tradicionalmente con la forma más ”pura”
de firmware, instrucciones al fin y al cabo, que controlan una
máquina. Si no te suenan los términos, puede ser una lectura
interesante si quieres conocer cómo funciona un procesador.&lt;/p&gt;
&lt;p&gt;Pero no es de hardware de lo que quiero hablar, sino de una forma
(curiosa u obvia, de ti depende) de escribir ciertas partes de
nuestros programas, que toma la idea básica de las lógicas
micro-programadas.&lt;/p&gt;</description></item><item><title>DNSSEC – ¿Qué es y por qué es importante?</title><link>http://karpoke.ignaciocano.com/2012/06/21/dnssec-que-es-y-por-que-es-importante/</link><pubDate>Thu, 21 Jun 2012 17:55:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/21/dnssec-que-es-y-por-que-es-importante/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Para contactar a otra persona a través de Internet, debe escribir una
dirección en su ordenador: un nombre o un número. Esa dirección tiene
que ser única para que los ordenadores sepan cómo encontrarse entre
sí. ICANN se ocupa de coordinar estos identificadores únicos en todo
el mundo. Sin esa coordinación no tendríamos una Internet global. Al
escribir un nombre, un sistema debe traducir ese nombre en un número
antes de que se pueda establecer la conexión. Ese sistema se denomina
Sistema de nombres de dominio (DNS) y traduce nombres como
&lt;a href="https://www.icann.org"&gt;www.icann.org&lt;/a&gt; en números, denominados direcciones IP (sigla que
corresponde a Protocolo de Internet). ICANN coordina el sistema de
direcciones para garantizar que sean únicas.&lt;/p&gt;</description></item><item><title>Raspberry Pi</title><link>http://karpoke.ignaciocano.com/2012/06/21/raspberry-pi/</link><pubDate>Thu, 21 Jun 2012 13:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/21/raspberry-pi/</guid><description>&lt;p&gt;En pocas palabras, &lt;a href="http://www.raspberrypi.org/"&gt;Raspberry Pi&lt;/a&gt; es un ordenador del tamaño de una
tarjeta de crédito que puede reproducir vídeo en alta definición (HDMI)
y cuesta, dependiendo del modelo, 25$ sin &lt;em&gt;ethernet&lt;/em&gt; o 35$ con
&lt;em&gt;ethernet&lt;/em&gt; [1].&lt;/p&gt;
&lt;p&gt;&lt;img alt="Raspi Colour" loading="lazy" src="http://karpoke.ignaciocano.com/images/Raspi_Colour_R-248x300.png"&gt;&lt;/p&gt;
&lt;p&gt;Cuenta con un procesador ARM11 a 700Mhz, 256MB RAM, USB 2.0, conectores
de audio y RCA. Se alimenta a través de un puerto mini-USB y tiene una
ranura para una tarjeta SD (de hasta 32GB) que es donde se instala el
sistema operativo. No tiene WiFi, pero se le puede añadir una antena
WiFi USB.&lt;/p&gt;</description></item><item><title>The Conscience of a Hacker</title><link>http://karpoke.ignaciocano.com/2012/06/21/the-conscience-of-a-hacker/</link><pubDate>Thu, 21 Jun 2012 03:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/21/the-conscience-of-a-hacker/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Another one got caught today, it’s all over the papers. ”Teenager
Arrested in Computer Crime Scandal”, ”Hacker Arrested after Bank
Tampering”&amp;hellip;
Damn kids. They’re all alike.&lt;/p&gt;
&lt;p&gt;But did you, in your three-piece psychology and 1950’s technobrain,
ever take a look behind the eyes of the hacker? Did you ever wonder
what
made him tick, what forces shaped him, what may have molded him?
I am a hacker, enter my world&amp;hellip;
Mine is a world that begins with school&amp;hellip; I’m smarter than most of
the other kids, this crap they teach us bores me&amp;hellip;
Damn underachiever. They’re all alike.&lt;/p&gt;</description></item><item><title>Hackstory</title><link>http://karpoke.ignaciocano.com/2012/06/21/hackstory/</link><pubDate>Thu, 21 Jun 2012 03:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/21/hackstory/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La Hackstory es una enciclopedia online que versa sobre la cultura e
historia hacker, con especial atención a las iniciativas, grupos,
anécdotas y puntos de encuentro hispanos. La estamos creando desde
finales del verano de 2008, en nuestro tiempo libre, y ya llevamos
entrados unos 200 artículos. Tenemos 18.000 visitas mensuales, 580 al
día.&lt;/p&gt;
&lt;p&gt;En nuestro proyecto, la palabra ”hacker” no es sinónimo de
delincuente, sino de persona experta y entusiasta con la tecnología,
de alguien muy habilidoso con las herramientas que brindan la
informática y las telecomunicaciones. Si quieres saber más, puedes
consultar nuestra definición en hackstory.net/index.php/Hacker&lt;/p&gt;</description></item><item><title>The 8 Queens Problem with Arduino and Adafruit 8x8 Matrix display</title><link>http://karpoke.ignaciocano.com/2012/06/21/the-8-queens-problem-with-arduino-and-adafruit-8x8-matrix-display/</link><pubDate>Thu, 21 Jun 2012 03:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/21/the-8-queens-problem-with-arduino-and-adafruit-8x8-matrix-display/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Using an Arduino and an 8x8 matrix display from Adafruit (with I2C
backpack), we display all the solutions to the classic 8-Queens
problem (see &lt;a href="http://en.wikipedia.org/wiki/Eight_queens_puzzle"&gt;http://en.wikipedia.org/wiki/Eight_queens_puzzle&lt;/a&gt; )&lt;/p&gt;
&lt;p&gt;A solution to the 8 Queen problem is where 8 queens are placed on a
chess board so that no queen can take any other queen.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» @stormingrobots | &lt;a href="https://www.youtube.com/watch?v=5a2xIh6xgo4"&gt;youtube.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>LEGO Turing Machine</title><link>http://karpoke.ignaciocano.com/2012/06/21/lego-turing-machine/</link><pubDate>Thu, 21 Jun 2012 03:43:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/21/lego-turing-machine/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This is a short documentary about the LEGO Turing Machine built by
Jeroen van den Bos and Davy Landman at Centrum Wiskunde &amp;amp; Informatica
(CWI), Amsterdam (Netherlands). They built it for CWI’s exposition
”Turings Erfenis” in honor of the centenary of Alan Turing’s birth on
23 June 1912.
Alan Turing was a brilliant mathematician who helped define the
theoretical model of the computer as we know it today. He was a
visionary, one of the few people of his time who recognized the role
the computer would play for humanity.
The Turing Machine (1936) is an adequate model of a computer. It can
do anything the computers of today or tomorrow can do.&lt;/p&gt;</description></item><item><title>Code vs. power consumption</title><link>http://karpoke.ignaciocano.com/2012/06/16/code-vs-power-consumption/</link><pubDate>Sat, 16 Jun 2012 18:49:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/16/code-vs-power-consumption/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I’ve been wondering for some time whether the power consumption of an
ATmega varies depending on the code it is running. Obviously, sleep
modes and clock rate changes have a major impact – but how about plain
loops?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://jeelabs.org/2012/06/13/code-vs-power-consumption/"&gt;jeelabs.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Linux: The 0.01 Release</title><link>http://karpoke.ignaciocano.com/2012/06/16/linux-the-0-01-release/</link><pubDate>Sat, 16 Jun 2012 18:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/16/linux-the-0-01-release/</guid><description>&lt;blockquote&gt;
&lt;p&gt;”This is a free minix-like kernel for i386(+) based AT-machines,”
began the Linux version 0.01 release notes in September of 1991 for
the first release of the Linux kernel. ”As the version number (0.01)
suggests this is not a mature product. Currently only a subset of
AT-hardware is supported (hard-disk, screen, keyboard and serial
lines), and some of the system calls are not yet fully implemented
(notably mount/umount aren’t even implemented).” Booting the original
0.01 Linux kernel required bootstrapping it with minix, and the
keyboard driver was written in assembly and hard-wired for a Finnish
keyboard. The listed features were mostly presented as a comparison to
minix and included, efficiently using the 386 chip rather than the
older 8088, use of system calls rather than message passing, a fully
multithreaded FS, minimal task switching, and visible interrupts.
Linus Torvalds noted, ”the guiding line when implementing linux was:
get it working fast. I wanted the kernel simple, yet powerful enough
to run most unix software.”&lt;/p&gt;</description></item><item><title>El Top 7 de dilemas que enfrentan los desarrolladores de hoy</title><link>http://karpoke.ignaciocano.com/2012/06/16/el-top-7-de-dilemas-que-enfrentan-los-desarrolladores-de-hoy/</link><pubDate>Sat, 16 Jun 2012 18:40:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/16/el-top-7-de-dilemas-que-enfrentan-los-desarrolladores-de-hoy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Tu jefe lo quiere para ayer, pero más vale que cumpla con los
standards de mañana. Los clientes quieren todas las características
que se puedan imaginar, pero no te atrevas a confundirlos dándoles
todos los botones que desee. Tus compañeros programadores quieren que
documentes tu código, pero ellos simplemente responden ”tl;dr” (Too
Long; didn’t read) a cualquier cosa que escribes.&lt;/p&gt;
&lt;p&gt;Así como la tecnología evoluciona, también lo hacen los dilemas que
enfrentan los desarrolladores. Cada elección, desde la plataforma
hasta el almacenamiento de datos, incluyendo a cuánto control darle a
los usuarios, está cargada de preguntas. Y gracias a la nube, el
crecimiento de la tecnología móvil y la acelerada vanguardia,
pareciera como si el mundo de la programación enfrentara una nueva
elección – y dilema – a un ritmo creciente.&lt;/p&gt;</description></item><item><title>AnonTwi, tweets cifrados</title><link>http://karpoke.ignaciocano.com/2012/06/16/anontwi-tweets-cifrados/</link><pubDate>Sat, 16 Jun 2012 13:23:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/16/anontwi-tweets-cifrados/</guid><description>&lt;p&gt;&lt;a href="http://anontwi.sourceforge.net/"&gt;AnonTwi&lt;/a&gt; es un &lt;em&gt;script&lt;/em&gt; en Python que permite enviar y recibir
&lt;em&gt;tweets&lt;/em&gt; y mensajes cifrados mediante AES y HMAC-SHA1 en Twitter, al que
se conecta mediante SSL. Otras caracterísiticas son la posibilidad de
usar la red TOR, envío de mensajes largos o la falsificación de las
cabeceras que envía.&lt;/p&gt;
&lt;h2 id="instalación"&gt;Instalación&lt;/h2&gt;
&lt;p&gt;AnonTwi está todavía en fase &lt;em&gt;beta&lt;/em&gt; de desarrollo, algo que se debe
tener en cuenta según el uso que queramos darle, pero si queremos
probarlo, podemos usar la última versión descargándola del repositorio:&lt;/p&gt;</description></item><item><title>Sócrates y el efecto Dunning-Kruger</title><link>http://karpoke.ignaciocano.com/2012/06/14/socrates-y-el-efecto-dunning-kruger/</link><pubDate>Thu, 14 Jun 2012 12:38:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/14/socrates-y-el-efecto-dunning-kruger/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El efecto Dunning-Kruger se puede expresar de la siguiente manera: los
peores trabajadores/estudiantes/participantes son los que menos
conscientes son de su propia incompetencia. Toma su nombre de un
estudio de 2003 que realizaron Dunning, Kruger y otros con estudiantes
universitarios con respecto a los resultados de sus exámenes. Después
los resultados han sido reproducidos en varias ocasiones, por ejemplo
con estudiantes de medicina a la hora de evaluar su capacidad para
realizar entrevistas de diagnóstico, con administrativos evaluando su
rendimiento o con técnicos de laboratorios médicos calibrando su nivel
de dominio del trabajo.&lt;/p&gt;</description></item><item><title>pbzip2, un bzip2 más rápido</title><link>http://karpoke.ignaciocano.com/2012/06/13/pbzip2-un-bzip2-mas-rapido/</link><pubDate>Wed, 13 Jun 2012 18:43:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/13/pbzip2-un-bzip2-mas-rapido/</guid><description>&lt;p&gt;&lt;code&gt;pbzip2&lt;/code&gt;, de &lt;em&gt;parallel bzip2&lt;/em&gt;, permite aprovechar toda la potencia de
los procesadores con más de un núcleo a la hora de comprimir o
descomprimir, cosa que &lt;code&gt;bzip2&lt;/code&gt; no hace.&lt;/p&gt;
&lt;h2 id="instalación"&gt;Instalación&lt;/h2&gt;
&lt;p&gt;En Ubuntu se encuentra disponible en los repositorios:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo aptitude install pbzip2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Su uso es idéntico al de &lt;code&gt;bzip2&lt;/code&gt;, por lo que podemos añadir un &lt;em&gt;alias&lt;/em&gt; a
&lt;code&gt;~/.bash_aliases&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;alias bzip2=pbzip2
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="referencias"&gt;Referencias&lt;/h2&gt;
&lt;p&gt;» &lt;a href="http://hackercodex.com/guide/parallel-bzip-compression/"&gt;Speed Up Compression via Parallel BZIP2 (PBZIP2)&lt;/a&gt;&lt;/p&gt;</description></item><item><title>La falacia del Programador Perdido</title><link>http://karpoke.ignaciocano.com/2012/06/12/la-falacia-del-programador-perdido/</link><pubDate>Tue, 12 Jun 2012 20:37:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/12/la-falacia-del-programador-perdido/</guid><description>&lt;blockquote&gt;
&lt;p&gt;La semana pasada desayuné con un polémico artículo de Enrique Dans
titulado ”El Programador Perdido”, en el que lamentaba la falta de
buenos programadores en España. Programadores con cabeza y riñones
suficientes para sacar adelante un proyecto ganador en una industria
global y competitiva como Internet.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Si quieres encontrar un buen programador, básicamente sólo tienes
que hacer una cosa: pagarlo.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pero esa presunción –como las comparaciones con la supuesta
calificación y estatus de los programadores extranjeros- es errónea y
estereotipada. Después de más de 10 años trabajando en la industria
del software, tanto en España como en eso que llaman Silicon Valley,
yo conozco otra verdad. Una verdad incómoda.&lt;/p&gt;</description></item><item><title>webmin, configurando nuestro servidor a través del navegador</title><link>http://karpoke.ignaciocano.com/2012/06/12/webmin-configurando-nuestro-servidor-a-traves-del-navegador/</link><pubDate>Tue, 12 Jun 2012 20:05:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/12/webmin-configurando-nuestro-servidor-a-traves-del-navegador/</guid><description>&lt;p&gt;&lt;a href="http://www.webmin.com/"&gt;Webmin&lt;/a&gt; es una interfaz web para la administración de un servidor,
compatible con cualquier navegador moderno, mediante la que podemos
configurar cuentas de usuario, Apache, DNS, intercambio de ficheros,
etc. Es una alternativa a la configuración manual de ficheros.&lt;/p&gt;
&lt;h2 id="instalación"&gt;Instalación&lt;/h2&gt;
&lt;p&gt;Instalamos las dependencias:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo aptitude install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Descargamos el paquete para Ubuntu y lo instalamos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ wget http://downloads.sourceforge.net/webadmin/webmin_1.580_all.deb
$ md5sum webmin_1.580_all.deb
093c720a988125a536fa9fda16080fe6
$ sudo dpkg -i webmin_1.580_all.deb
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Para usar Webmin, accedemos al servidor en el puerto 10000. El usuario y
la contraseña son los mismos que utilizamos para iniciar sesión en el
servidor.&lt;/p&gt;</description></item><item><title>CVE 2012-2122, saltándose la autenticación para acceder a MySQL y MariaDB</title><link>http://karpoke.ignaciocano.com/2012/06/12/cve-2012-2122-saltandose-la-autenticacion-para-acceder-a-mysql-y-mariadb/</link><pubDate>Tue, 12 Jun 2012 14:37:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/12/cve-2012-2122-saltandose-la-autenticacion-para-acceder-a-mysql-y-mariadb/</guid><description>&lt;p&gt;Un fallo descubierto en MariaDB, y que también afecta a MySQL, permite
saltarse la autenticación para acceder a la base de datos utilizando
cualquier usuario válido, incluido el root, sin importar la contraseña.
Cada vez que un usuario se conecta se genera un &lt;em&gt;token&lt;/em&gt; SHA aleatorio y
se compara con el valor esperado, pero bajo ciertas condiciones el
resultado de esta comparación se considera válido aunque realmente no lo
sea. Dado que el protocolo utiliza cadenas aleatorias, hay una
probabilidad de 1/256 de que esto ocurra.&lt;/p&gt;</description></item><item><title>CDE, creando aplicaciones portables en GNU/Linux</title><link>http://karpoke.ignaciocano.com/2012/06/11/cde-creando-aplicaciones-portables-en-gnulinux/</link><pubDate>Mon, 11 Jun 2012 00:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/11/cde-creando-aplicaciones-portables-en-gnulinux/</guid><description>&lt;p&gt;&lt;a href="http://www.pgbovine.net/cde.html"&gt;CDE&lt;/a&gt; es un programa desarrollado por Philip Guo que permite crear
versiones portables de aplicaciones GNU/Linux, automatizando el proceso
de empaquetado de código, datos y dependencias requeridos para
ejecutarlas en otros equipos, sin que su uso requiera instalación ni
configuración.&lt;/p&gt;
&lt;h2 id="instalación"&gt;Instalación&lt;/h2&gt;
&lt;p&gt;Si queremos instalar la última versión en desarrollo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ git clone git://github.com/pgbovine/CDE.git
$ cd CDE
$ make
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Una vez que termine de compilar, tendremos el programa ejecutable,
&lt;code&gt;cde&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="creando-aplicaciones-portables"&gt;Creando aplicaciones portables&lt;/h2&gt;
&lt;p&gt;Si queremos crear un versión portable, sólo tenemos que llamar al
ejecutable que hemos creado pasándole como parámetro el nombre del
programa. Por ejemplo, para crear una versión portable de &lt;code&gt;gimp&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Client-Side vs. Server-Side Rendering</title><link>http://karpoke.ignaciocano.com/2012/06/04/client-side-vs-server-side-rendering/</link><pubDate>Mon, 04 Jun 2012 14:15:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/04/client-side-vs-server-side-rendering/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Yesterday Twitter announced that it was moving away from client-side
rendering back to server-side rendering in order to improve page load
time. Today I found myself having to defend my position that
server-side rendering will almost always be faster. I figured I’d blog
about it.&lt;/p&gt;
&lt;p&gt;I want to point out a couple things. First, I’m talking specifically
about render performance and page speed. There might be other
compelling advantages to thick-clients; I’m talking about performance.
Secondly, I’m going to get on a high horse here and say that it
worries me that developers think client-side rendering is faster. This
is basic and fundamental knowledge about how the web and browsers
work. Maybe I’ll be proven wrong. If I am, I’ll admit it. It’ll be
embarrassing because it means that I don’t know the fundamentals. But
I’ll be glad to have learned (which is why I blog).&lt;/p&gt;</description></item><item><title>OAuth - Open Authorization Protocol</title><link>http://karpoke.ignaciocano.com/2012/06/04/oauth-open-authorization-protocol/</link><pubDate>Mon, 04 Jun 2012 14:14:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/04/oauth-open-authorization-protocol/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Cuando en 2006 los ingenieros de twitter estaban tratando de
implementar OpenID para permitir a los desarrolladores de aplicaciones
acceder a su API sin que los usuarios tuvieran que introducir sus
credenciales en la propia aplicación, se dieron cuenta, por un lado,
de que OpenID no era la solución que necesitaban y, más importante
aún, de que no existía ningún estándar que permitiera hacer algo
parecido.&lt;/p&gt;
&lt;p&gt;Comenzaron entonces a trabajar en la implementación de OAuth, que
pronto fue apoyada por otras empresas como Google. Hasta que por fin,
en octubre de 2007, se publicó OAuth 1.0. Aunque no fue hasta agosto
de 2010 que no se aprobó como estándar RFC 5849.&lt;/p&gt;</description></item><item><title>Deuda técnica</title><link>http://karpoke.ignaciocano.com/2012/06/04/deuda-tecnica/</link><pubDate>Mon, 04 Jun 2012 14:12:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/04/deuda-tecnica/</guid><description>&lt;blockquote&gt;
&lt;p&gt;¿Qué desarrollador de software nunca ha estado una semana programando
a toda velocidad, casi sin saber que hace, ya que la fecha de entrega
está cerca y todo tiene que estar terminado ”para ayer”? ¿Quién no se
ha encontrado en la situación de saber que está programando una
chapuza, pensando que otro día lo mejorará, y ese día nunca llega?
¿Quién alguna vez, al ver una porción de código fuente no ha exclamado
indignado: ¡qué narices hace este código! o ¡quién leches lo ha
programado!?&lt;/p&gt;</description></item><item><title>Cambiar el firmware del router Comtrend AR-5381u por uno libre</title><link>http://karpoke.ignaciocano.com/2012/06/04/cambiar-el-firmware-del-router-comtrend-ar-5381u-por-uno-libre/</link><pubDate>Mon, 04 Jun 2012 13:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/04/cambiar-el-firmware-del-router-comtrend-ar-5381u-por-uno-libre/</guid><description>&lt;p&gt;Si tenemos un &lt;em&gt;router&lt;/em&gt; Comtrend AR-5381u, uno de los que entrega
Jazztel, podemos &lt;a href="http://bandaancha.eu/tema/1684224/nuevos-firms-no-oficiales-libres-fin-d-ar-5381u-soporte-3g-dlna-act-4-septiembre"&gt;actualizar el firmware que trae por uno libre no
oficial&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="por-qué-actualizar-el-firmware"&gt;¿Por qué actualizar el firmware?&lt;/h2&gt;
&lt;p&gt;Porque nos permite configurar completamente el &lt;em&gt;router&lt;/em&gt;, sin
restricciones. En particular, podremos cambiar el usuario de acceso al
&lt;em&gt;router&lt;/em&gt; o deshabilitar TS-069 (administración remota por parte de
Jazztel y que es imposible deshabilitar con el &lt;em&gt;firmware&lt;/em&gt; oficial) si
queremos.&lt;/p&gt;
&lt;h2 id="instalación"&gt;Instalación&lt;/h2&gt;
&lt;p&gt;Lo primero es escoger uno de los &lt;em&gt;firmware&lt;/em&gt; disponibles. En mi caso, he
probado el &lt;em&gt;firmware&lt;/em&gt; &lt;code&gt;657003-457(AR-5382u-A731-406CTL-C01_R07).bin&lt;/code&gt;. Se
puede descargar desde &lt;a href="http://bandaancha.eu/store/Jazztel/AR5381NOF.zip"&gt;bandaancha.eu&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Porque robar a los pequeños es más fácil</title><link>http://karpoke.ignaciocano.com/2012/06/04/porque-robar-a-los-pequenos-es-mas-facil/</link><pubDate>Mon, 04 Jun 2012 00:28:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/04/porque-robar-a-los-pequenos-es-mas-facil/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Porque, en el mejor de los casos, seguimos pensando que ver la ”s” de
https:// y un candado cerrado en nuestro navegador web nos asegura que
la página que visitamos es legítima. Porque pensamos que si tecleamos
el nombre del dominio en la barra de direcciones no es posible que
estemos visitando una página fraudulenta. Porque nos conocemos al
dedillo la aplicación de banca electrónica de nuestra entidad
financiera. Porque si esta página nos solicita más caracteres de lo
habitual a la hora de introducir la contraseña no sospechamos. Porque
si tras autenticarnos en la misma nos solicita todas las posiciones de
la tarjeta de coordenadas, en muchos casos las seguimos introduciendo.&lt;/p&gt;</description></item><item><title>How to Have Fun Programming</title><link>http://karpoke.ignaciocano.com/2012/06/03/how-to-have-fun-programming/</link><pubDate>Sun, 03 Jun 2012 13:00:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/03/how-to-have-fun-programming/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I may not be a great programmer, but I have a ton of fun programming.
As a self-taught hacker, I’ve always enjoyed programming to a great
extent&amp;ndash;but everyone has their ups and downs. These are simply my
reflections about what makes me happy while programming, and serves as
reminder to myself why I should keep pushing onwards!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://rdegges.com/how-to-have-fun-programming"&gt;rdegges.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Symfony en Ubuntu Lucid Lynx 10.04</title><link>http://karpoke.ignaciocano.com/2012/06/03/symfony-en-ubuntu-lucid-lynx-10-04/</link><pubDate>Sun, 03 Jun 2012 03:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/03/symfony-en-ubuntu-lucid-lynx-10-04/</guid><description>&lt;p&gt;&lt;a href="http://www.symfony-project.org/"&gt;Symfony&lt;/a&gt; es una &lt;em&gt;framework&lt;/em&gt; MVC escrito en PHP para el desarrollo
rápido de páginas web. Además, ofrece un conjunto de buenas prácticas
para desarrollar páginas más seguras y con un coste de mantenimiento
menor.&lt;/p&gt;
&lt;p&gt;Para que la instalación sea más segura, los ficheros de Symfony debería
estar fuera del &lt;code&gt;DocumentRoot&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="requisitos"&gt;Requisitos&lt;/h2&gt;
&lt;p&gt;Symfony se basa en entorno LAMPP, por lo que suponemos que ya tenemos
configurado Apache, MySQL y PHP versión 5.2.4 o superior. Para comprobar
si todo está correctamente configurado y que cumplimos los
requerimientos para Symfony, descargamos siguiente &lt;em&gt;script&lt;/em&gt; y lo
ejecutamos, pasando como parámetro la ruta al archivo &lt;code&gt;php.ini&lt;/code&gt; que
utiliza apache (por defecto, al ejecutarlo desde el terminal en lugar
del navegador, utiliza otro archivo &lt;code&gt;php.ini&lt;/code&gt;):&lt;/p&gt;</description></item><item><title>Crash of the Titans Science Visualization</title><link>http://karpoke.ignaciocano.com/2012/06/01/crash-of-the-titans-science-visualization/</link><pubDate>Fri, 01 Jun 2012 15:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/06/01/crash-of-the-titans-science-visualization/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This scientific visualization of a computer simulation depicts the
inevitable collision between our Milky Way galaxy and the Andromeda
galaxy (also known as Messier 31). NASA Hubble Space Telescope
observations indicate that the two galaxies, pulled together by their
mutual gravity, will crash together in a near-head-on collision about
4 billion years from now. The thin disk shapes of these spiral
galaxies are strongly distorted and irrevocably transformed by the
encounter. Around 6 billion years from now, the two galaxies will
merge to form a single elliptical galaxy.&lt;/p&gt;</description></item><item><title>Revistas y bases de datos on line sobre TIC y Educación</title><link>http://karpoke.ignaciocano.com/2012/05/31/revistas-y-bases-de-datos-on-line-sobre-tic-y-educacion/</link><pubDate>Thu, 31 May 2012 00:16:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/31/revistas-y-bases-de-datos-on-line-sobre-tic-y-educacion/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Listado de aquellas publicaciones tanto de naturaleza académica y
universitaria como divulgativa y profesional que son accesibles, de
forma gratuita, a través de Internet, sobre estudios, ensayos,
informes académicos sobre la temática de las aplicaciones educativas
de las tecnologías digitales: el elearning o docencia virtual, los
entornos personales del aprendizaje, la integración escolar de las
TIC, los portafolios electrónicos, las redes sociales y el
aprendizaje, la web 2.0 en educación, etcétera. Para confeccionar este
índice de revistas he manejado dos bases de datos de publicaciones
electrónicas: DOAJ Directory of Open Acces Journals Education y
e-Revistas Plataforma Open Access de Revistas Científicas Electrónicas
Españolas y Latinoamericanas. Y también, por supuesto, el buscador
Google.&lt;/p&gt;</description></item><item><title>List of TCS conferences and workshops</title><link>http://karpoke.ignaciocano.com/2012/05/30/list-of-tcs-conferences-and-workshops/</link><pubDate>Wed, 30 May 2012 18:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/30/list-of-tcs-conferences-and-workshops/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I would like to ask for help in compiling a list of as many
TCS-related conferences and workshops as possible. My main motivation
for doing this is to plan possible blog coverage of more theory venues
&amp;ndash; finding correspondents attending these events who would be willing
to write either brief or in-depth blog entries about events they are
attending. Beyond that, I hope a list like this would give everyone a
better sense of the lay of the theory land.&lt;/p&gt;</description></item><item><title>Protecting Your GNU/Linux System from Dropbox</title><link>http://karpoke.ignaciocano.com/2012/05/30/protecting-your-gnulinux-system-from-dropbox/</link><pubDate>Wed, 30 May 2012 00:18:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/30/protecting-your-gnulinux-system-from-dropbox/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Typical blog posts about Dropbox security concentrate on data or
network encryption. I want to talk about protecting your system from
Dropbox the application, as well as Dropbox the company. In this blog
post I tell you how to prepare for a theoretical scenario where
Dropbox turns malicious. I’ve done a number of things to make Dropbox
run in a much more secure fashion on my Ubuntu laptop. Hopefully I
will introduce you to some vulnerabilities that you weren’t aware of,
and teach how to protect against them. Many of the attacks and
defenses described here are portable to apps other than Dropbox.&lt;/p&gt;</description></item><item><title>Django’s CBVs were a mistake</title><link>http://karpoke.ignaciocano.com/2012/05/29/djangos-cbvs-were-a-mistake/</link><pubDate>Tue, 29 May 2012 17:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/29/djangos-cbvs-were-a-mistake/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I’ve written before about the somewhat doubtful advantages of
Class-Based Views.&lt;/p&gt;
&lt;p&gt;Since then, I’ve done more work as maintenance programmer on a Django
project, and I’ve been reminded that library and framework design must
take into account the fact that not all developers are experts. Even
if you only hire the best, no-one can be an expert straight away.&lt;/p&gt;
&lt;p&gt;Thinking through things more from the perspective of a maintenance
programmer, my doubts about CBVs have increased, to the point where I
recently tweeted that CBVs were a mistake.&lt;/p&gt;</description></item><item><title>Being exceptional</title><link>http://karpoke.ignaciocano.com/2012/05/29/being-exceptional/</link><pubDate>Tue, 29 May 2012 16:30:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/29/being-exceptional/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Apparently, in Python, it is easier to ask for forgiveness rather than
seek permission. That is to say, the normal approach when writing
Python code is to assume that what you are trying to do will work
properly. If something exceptional happens and the code doesn’t work
the way you were hoping, then the Python interpreter will tell you of
the error so that you can handle that exceptional circumstance. This
general approach, of trying to do something, then cleaning up if
something goes wrong is acronymically called EAFP (”easier to ask for
forgiveness than permission”).&lt;/p&gt;</description></item><item><title>The History of Encryption</title><link>http://karpoke.ignaciocano.com/2012/05/28/the-history-of-encryption/</link><pubDate>Mon, 28 May 2012 01:39:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/28/the-history-of-encryption/</guid><description>&lt;p&gt;» &lt;a href="http://visually.visually.netdna-cdn.com/TheHistoryofEncryption_4fa292ebe5bac_w587.jpg"&gt;infografía&lt;/a&gt; | via &lt;a href="http://www.cyberhades.com/2012/05/07/historia-del-cifrado-infografia/"&gt;cyberhades.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Applying Macrotypography For A More Readable Web Page</title><link>http://karpoke.ignaciocano.com/2012/05/28/applying-macrotypography-for-a-more-readable-web-page/</link><pubDate>Mon, 28 May 2012 01:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/28/applying-macrotypography-for-a-more-readable-web-page/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Any application of typography can be divided into two arenas: micro
and macro. Understanding the difference between the two is especially
useful when crafting a reading experience, because it allows the
designer to know when to focus on legibility and when to focus on
readability.
This article focuses mostly on a few simple macrotypographic
techniques”with a dash of micro”and on how to combine them all to
build a more harmonious, adaptable and, most importantly, readable Web
page.&lt;/p&gt;</description></item><item><title>¿Por qué usamos Linux?</title><link>http://karpoke.ignaciocano.com/2012/05/27/por-que-usamos-linux/</link><pubDate>Sun, 27 May 2012 15:52:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/27/por-que-usamos-linux/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Le decimos a la gente que usamos Linux porque es seguro. O porque es
libre, porque lo podemos adaptar a nuestras necesidades, porque es
gratis, porque tiene un soporte excelente por parte de la comunidad&amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://wallbase.cc/wallpaper/945124"&gt;wallbase.cc&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Por qué el lobby de los derechos de autor ama la pornografía infantil</title><link>http://karpoke.ignaciocano.com/2012/05/27/por-que-el-lobby-de-los-derechos-de-autor-ama-la-pornografia-infantil/</link><pubDate>Sun, 27 May 2012 13:12:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/27/por-que-el-lobby-de-los-derechos-de-autor-ama-la-pornografia-infantil/</guid><description>&lt;blockquote&gt;
&lt;p&gt;”La pornografía infantil es genial,” dijo entusiastamente el sujeto.
”Los políticos no entienden el intercambio de archivos, pero entienden
la pornografía infantil, y la quieren filtrar para ganar puntos con el
público. Una vez que los convenzamos de filtrar la pornografía
infantil, podremos hacer que extiendan el bloqueo al intercambio de
archivos.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://es.falkvinge.net/2012/05/23/redefiniendo-el-cinismo-porque-el-lobby-de-los-derechos-de-autor-ama-la-pornografia-infantil/"&gt;falkvinge.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Interactive map of Linux kernel</title><link>http://karpoke.ignaciocano.com/2012/05/27/interactive-map-of-linux-kernel/</link><pubDate>Sun, 27 May 2012 13:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/27/interactive-map-of-linux-kernel/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The interactive Linux kernel map helps you traverse complex interconnections
between subsystems of the kernel while you explore its source code. A Linux
hacker, trying to track down a bug or just understand how some subsystem
works, can get exhausted just trying to figure out what invokes what ” so the
kernel map comes to the rescue!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://www.makelinux.com/kernel_map/intro"&gt;makelinux.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Why Nikola Testa was the greatest geek who ever lived</title><link>http://karpoke.ignaciocano.com/2012/05/27/why-nikola-testa-was-the-greatest-geek-who-ever-lived/</link><pubDate>Sun, 27 May 2012 12:19:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/27/why-nikola-testa-was-the-greatest-geek-who-ever-lived/</guid><description>&lt;p&gt;» &lt;a href="http://theoatmeal.com/comics/tesla"&gt;theoatmeal.com&lt;/a&gt; | &lt;a href="http://theoatmeal.com/blog/tesla_response"&gt;Response&lt;/a&gt; to Forbes&lt;/p&gt;</description></item><item><title>The Art of Computer Typography</title><link>http://karpoke.ignaciocano.com/2012/05/26/the-art-of-computer-typography/</link><pubDate>Sat, 26 May 2012 11:24:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/26/the-art-of-computer-typography/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Ever since I came across Jürg Lehni’s essay on typographic technology
and digital fonts, Typeface As Programme, I’ve been fascinated with
the story of Donald E. Knuth and his unexpected contributions to
typography.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» @Jason Z. | &lt;a href="https://37signals.com/svn/posts/3183-the-art-of-computer-typography"&gt;37signals.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Por qué me enamoré de los hackers</title><link>http://karpoke.ignaciocano.com/2012/05/25/por-que-me-enamore-de-los-hackers/</link><pubDate>Fri, 25 May 2012 23:35:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/25/por-que-me-enamore-de-los-hackers/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Porque son gente lista y genial, de inacabable curiosidad, sentido del
humor y vorazmente críticos, capaces de ponerlo todo patas arriba
porque se les ocurrió una idea y con una ética colectiva que está
cambiando el mundo. ¡Ah, no! ¿Que no es así como pensabas que eran los
hackers? ¿Imaginabas unos tipos malvados, delincuentes habituales, sin
empacho en asaltar tu ordenador y tu cuenta bancaria? ¿Esos de los que
hablan día sí día también los medios y la policía, poniéndoles la
etiqueta de ”hacker”?&lt;/p&gt;</description></item><item><title>DNS vs. large memory pages</title><link>http://karpoke.ignaciocano.com/2012/05/25/dns-vs-large-memory-pages/</link><pubDate>Fri, 25 May 2012 14:05:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/25/dns-vs-large-memory-pages/</guid><description>&lt;blockquote&gt;
&lt;p&gt;As everyone knows, an important threat against the Internet is that of
a coordinated DDoS attack against the root TLD DNS servers. The way
I”d solve is with a simple inline device that both blocks some simple
attacks from hitting the DNS server, but which can also answer simple
queries, offloading the main server, even if it”s failed. This can be
done with $2000, half for the desktop machine, and the other half for
the dual-port 10-gig Ethernet.&lt;/p&gt;</description></item><item><title>Imponiendo GPL; usando técnicas de Judo</title><link>http://karpoke.ignaciocano.com/2012/05/24/imponiendo-gpl-usando-tecnicas-de-judo/</link><pubDate>Thu, 24 May 2012 12:18:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/24/imponiendo-gpl-usando-tecnicas-de-judo/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El propósito del software libre es hacer que el código que corre en
las máquinas que gobiernan nuestras vidas sea transparente. En
palabras de Lawrence Lessig, el software libre es ”libre en el sentido
de que el control del código de desarrollo sea transparente para
todos, y que cualquier persona tenga el derecho de tomar ese control,
y modificarlo si él o ella cree conveniente.”&lt;/p&gt;
&lt;p&gt;El mecanismo por el cual el software libre logra esto es el copyleft.
El copyleft es un hack en el copyright (la ley de derechos de autor)
que le quita los derechos exclusivos al titular del copyright y los
comparte con el usuario, otorgándole el derecho de modificar, copiar,
compartir y redistribuir el software, bajo la condición de que deben
transferirse los mismos derechos a usuarios subsiguientes. ”Si uno usa
y adapta un programa de software libre, y luego libera esa nueva
versión adaptada para el público, debe ser tan libre como la versión
original”.&lt;/p&gt;</description></item><item><title>Monta tu propio DNS dinámico</title><link>http://karpoke.ignaciocano.com/2012/05/23/monta-tu-propio-dns-dinamico/</link><pubDate>Wed, 23 May 2012 21:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/23/monta-tu-propio-dns-dinamico/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Ahora que todos los servicios tipo dyndns.org y no-ip.org se han
vuelto de pago, echamos de menos un servicio de DNS dinámico que poder
usar por poco dinero léase: gratis. La mala noticia es que no hay
ninguno totalmente gratuito. La buena noticia es que, bajo ciertas
circunstancias, podemos montarlo nosotros mismos.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Roberto Suárez Soto | &lt;a href="http://www.linuxtecnico.es/2012/05/monta-tu-propio-dns-dinamico.html"&gt;linuxtecnico.es&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Manual del perfecto conductor español</title><link>http://karpoke.ignaciocano.com/2012/05/23/manual-del-perfecto-conductor-espanol/</link><pubDate>Wed, 23 May 2012 10:45:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/23/manual-del-perfecto-conductor-espanol/</guid><description>&lt;blockquote&gt;
&lt;p&gt;En cierta ocasión se realizó una encuesta entre los conductores
españoles que arrojó resultados sorprendentes. Aproximadamente el 95%
de los conductores consideraba que conducía mejor que la media, lo que
quiere decir que o bien el 5% conduce verdaderamente mal y en una
escala del 1 al 10 puntúa negativo, o que en general el conductor
español medio se mira por las mañanas ante el espejo de la bruja de
Blancanieves. Personalmente me inclino por lo segundo. Más que nada
porque el espejo me salió carísimo. En fin; pongámonos el traje de
Antropólogo Indecente y vayamos a echarle un vistazo a la fauna que
puebla la jungla de asfalto.&lt;/p&gt;</description></item><item><title>Caching Tutorial</title><link>http://karpoke.ignaciocano.com/2012/05/23/caching-tutorial/</link><pubDate>Wed, 23 May 2012 00:14:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/23/caching-tutorial/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This is an informational document. Although technical in nature, it
attempts to make the concepts involved understandable and applicable
in real-world situations. Because of this, some aspects of the
material are simplified or omitted, for the sake of clarity. If you
are interested in the minutia of the subject, please explore the
References and Further Information at the end.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://www.mnot.net/cache_docs/"&gt;mnot.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Can’t Get Into Preprocessors? Try Zen Coding</title><link>http://karpoke.ignaciocano.com/2012/05/23/cant-get-into-preprocessors-try-zen-coding/</link><pubDate>Wed, 23 May 2012 00:08:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/23/cant-get-into-preprocessors-try-zen-coding/</guid><description>&lt;blockquote&gt;
&lt;p&gt;A ton of discussion lately has been given to preprocessors. These
incredibly useful tools make coding easier, faster and more
maintainable, but they’re certainly not for everyone. Whether or not
you’ve jumped on the preprocessor bandwagon, you should give a fresh
look to an old favorite that helps you dramatically cut your coding
time without reinventing your workflow with compilers and other
complications: Zen Coding.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://designshack.net/articles/css/cant-get-into-preprocessors-try-zen-coding/"&gt;designhack.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Writing Plugins for gedit 3 with Python</title><link>http://karpoke.ignaciocano.com/2012/05/23/writing-plugins-for-gedit-3-with-python/</link><pubDate>Wed, 23 May 2012 00:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/23/writing-plugins-for-gedit-3-with-python/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This is a guide to programming plugins for gedit 3, the default text
editor for GNOME 3. gedit 3 uses the Libpeas GObject plugin system and
the plugins can be written using C or Python. This guide will only
cover writing plugins with Python.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://www.micahcarrick.com/writing-plugins-for-gedit-3-in-python.html"&gt;micahcarrick.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Cables HDMI, la verdadera diferencia entre un cable caro y barato</title><link>http://karpoke.ignaciocano.com/2012/05/23/cables-hdmi-la-verdadera-diferencia-entre-un-cable-caro-y-barato/</link><pubDate>Wed, 23 May 2012 00:00:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/23/cables-hdmi-la-verdadera-diferencia-entre-un-cable-caro-y-barato/</guid><description>&lt;blockquote&gt;
&lt;p&gt;El uso de un cable HDMI permite transmitir una señal digital, señal de
vídeo con mayor resolución, sonido multicanal en un sólo cable y la
inclusión de datos auxiliares. Desde la versión HDMI 1.0 hasta la 1.4
se han ido añadiendo mejoras al cable. Por ejemplo, en la versión 1.4
se puede enviar una señal de vídeo a una resolución de 4096—2160
pixeles a 24fps o 3840—2160 a 30fps. Además permite enviar contenido
3D y junto a las mejoras de audio es capaz de enviar y recibir datos a
través de una conexión Ethernet incorporada en el propio cable.&lt;/p&gt;</description></item><item><title>Application Cache is a Douchebag</title><link>http://karpoke.ignaciocano.com/2012/05/22/application-cache-is-a-douchebag/</link><pubDate>Tue, 22 May 2012 15:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/22/application-cache-is-a-douchebag/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Good morning! Over in ”castle Lanyrd” we recently launched our mobile
site, which caches data on events you’re attending for viewing
offline. I’ve boiled the offline bits down to a simple demo and posted
all the code on Github. But before we delve into the code, let me tell
you a true story. Totally true.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://www.alistapart.com/articles/application-cache-is-a-douchebag/"&gt;alistapart.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The UNIX System: Making Computers More Productive</title><link>http://karpoke.ignaciocano.com/2012/05/21/the-unix-system-making-computers-more-productive/</link><pubDate>Mon, 21 May 2012 10:35:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/21/the-unix-system-making-computers-more-productive/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In the late 1960s, Bell Laboratories computer scientists Dennis
Ritchie and Ken Thompson started work on a project that was inspired
by an operating system called Multics, a joint project of MIT, GE, and
Bell Labs. The host and narrator of this film, Victor Vyssotsky, also
had worked on the Multics project. Ritchie and Thompson, recognizing
some of the problems with the Multics OS, set out to create a more
useful, flexible, and portable system for programmers to work with.&lt;/p&gt;</description></item><item><title>vimrepress, publicar en WordPress desde vim</title><link>http://karpoke.ignaciocano.com/2012/05/20/vimrepress-publicar-en-wordpress-desde-vim/</link><pubDate>Sun, 20 May 2012 13:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/20/vimrepress-publicar-en-wordpress-desde-vim/</guid><description>&lt;p&gt;&lt;a href="http://www.vim.org/scripts/download_script.php?src_id=16490"&gt;vimrepress&lt;/a&gt; es un complemento para trabajar con WordPress. Esta mañana
he leído sobre él en el blog de CyberHades y me han entrado ganas de
probarlo.&lt;/p&gt;
&lt;h2 id="instalación"&gt;Instalación&lt;/h2&gt;
&lt;p&gt;Para que funcione, además de instalar el complemento deberemos activar el
servicio XML-RPC en WordPress para publicar de forma remota. Para
activarlo vamos a Ajustes &amp;gt; Escritura y marcamos la casilla XML-RCP.&lt;/p&gt;
&lt;p&gt;Ahora vamos a instalar el complemento. Descargamos la última versión
estable, en estos momentos la 2.1.5, y la descomprimimos en el
directorio &lt;code&gt;~/.vim&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>12 resolutions for programmers</title><link>http://karpoke.ignaciocano.com/2012/05/20/12-resolutions-for-programmers/</link><pubDate>Sun, 20 May 2012 12:26:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/20/12-resolutions-for-programmers/</guid><description>&lt;blockquote&gt;
&lt;p&gt;It’s important for programmers to challenge themselves.&lt;/p&gt;
&lt;p&gt;Creative and technical stagnation is the only alternative.&lt;/p&gt;
&lt;p&gt;In the spirit of the new year, I’ve compiled twelve month-sized
resolutions.&lt;/p&gt;
&lt;p&gt;Each month is an annually renewable technical or personal challenge:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Go analog.&lt;/li&gt;
&lt;li&gt;Stay healthy.&lt;/li&gt;
&lt;li&gt;Embrace the uncomfortable.&lt;/li&gt;
&lt;li&gt;Learn a new programming language.&lt;/li&gt;
&lt;li&gt;Automate.&lt;/li&gt;
&lt;li&gt;Learn more mathematics.&lt;/li&gt;
&lt;li&gt;Focus on security.&lt;/li&gt;
&lt;li&gt;Back up your data.&lt;/li&gt;
&lt;li&gt;Learn more theory.&lt;/li&gt;
&lt;li&gt;Engage the arts and humanities.&lt;/li&gt;
&lt;li&gt;Learn new software.&lt;/li&gt;
&lt;li&gt;Complete a personal project.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;» Matt Might | &lt;a href="http://matt.might.net/articles/programmers-resolutions/"&gt;matt.might.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Never use hard tabs</title><link>http://karpoke.ignaciocano.com/2012/05/20/never-use-hard-tabs/</link><pubDate>Sun, 20 May 2012 12:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/20/never-use-hard-tabs/</guid><description>&lt;blockquote&gt;
&lt;p&gt;As there seems to be some confusion when hard tab characters (ASCII
code 9) are appropriate in source code files here is a rule:&lt;/p&gt;
&lt;p&gt;​1) Never use hard tabs&lt;/p&gt;
&lt;p&gt;​1. 1) Unless your source code is hard tab sensitive (only such format
I know is Makefile)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://opensourcehacker.com/2012/05/13/never-use-hard-tabs/"&gt;opensourcehacker.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Vim: revisited</title><link>http://karpoke.ignaciocano.com/2012/05/20/vim-revisited/</link><pubDate>Sun, 20 May 2012 03:56:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/20/vim-revisited/</guid><description>&lt;blockquote&gt;
&lt;p&gt;I’ve had an off/on relationship with Vim for the past many years.&lt;/p&gt;
&lt;p&gt;Before, I never felt like we understood each other properly. I felt
that the kind of programming I’m doing is not easily done without
plugins and some essential settings in .vimrc, but fiddling with all
the knobs and installing all the plugins that I thought I needed was a
process that in the end stretched out from few hours to weeks, months
even; and it the end it just caused frustration instead of making me a
happier coder.&lt;/p&gt;</description></item><item><title>Seven habits of effective text editing</title><link>http://karpoke.ignaciocano.com/2012/05/20/seven-habits-of-effective-text-editing/</link><pubDate>Sun, 20 May 2012 03:46:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/20/seven-habits-of-effective-text-editing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;If you spend a lot of time typing plain text, writing programs or
HTML, you can save much of that time by using a good editor and using
it effectively. This paper will present guidelines and hints for doing
your work more quickly and with fewer mistakes.&lt;/p&gt;
&lt;p&gt;The open source text editor Vim (Vi IMproved) will be used here to
present the ideas about effective editing, but they apply to other
editors just as well. Choosing the right editor is actually the first
step towards effective editing. The discussion about which editor is
the best for you would take too much room and is avoided. If you don’t
know which editor to use or are dissatisfied with what you are
currently using, give Vim a try; you won’t be disappointed.&lt;/p&gt;</description></item><item><title>How Linux is Built</title><link>http://karpoke.ignaciocano.com/2012/05/17/how-linux-is-built/</link><pubDate>Thu, 17 May 2012 21:07:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/17/how-linux-is-built/</guid><description>&lt;blockquote&gt;
&lt;p&gt;While Linux is running our phones, friend requests, tweets, financial
trades, ATMs and more, most of us don’t know how it’s actually built.
This short video takes you inside the process by which the largest
collaborative development project in the history of computing is
organized. Based on the annual report ”Who Writes Linux,” this is a
powerful and inspiring story of how Linux has become a
community-driven phenomenon. More information about Linux and The
Linux Foundation can be found at &lt;a href="http://www.linuxfoundation.org"&gt;http://www.linuxfoundation.org&lt;/a&gt; and
&lt;a href="http://www.linux.com"&gt;http://www.linux.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Basics of Computational Number Theory</title><link>http://karpoke.ignaciocano.com/2012/05/16/basics-of-computational-number-theory/</link><pubDate>Wed, 16 May 2012 23:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/16/basics-of-computational-number-theory/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This document is a gentle introduction to computational number theory.
The plan of the paper is to first give a quick overview of arithmetic
in the modular integers. Throughout, we will emphasize computation and
practical results rather than delving into the why. Simple programs,
generally in JavaScript, are available for all of the algorithms
mentioned. At the end of the paper we will introduce the Gaussian
Integers and Galois Fields and compare them to the modular integers.
Companion papers will examine number theory from a more advanced
perspective.&lt;/p&gt;</description></item><item><title>Dario Taraborelli: The Beauty of LaTeX</title><link>http://karpoke.ignaciocano.com/2012/05/16/dario-taraborelli-the-beauty-of-latex/</link><pubDate>Wed, 16 May 2012 23:50:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/16/dario-taraborelli-the-beauty-of-latex/</guid><description>&lt;blockquote&gt;
&lt;p&gt;There are several reasons why one should prefer LaTeX to a WYSIWYG
word processor like Microsoft Word: portability, lightness, security
are just a few of them (not to mention that LaTeX is free). There is
still a further reason that definitely convinced me to abandon MS Word
when I wrote my dissertation: you will never be able to produce
professionally typeset and well-structured documents using most
WYSIWYG word processors. LaTeX is a free typesetting system that
allows you to focus on content without bothering about the layout: the
software takes care of the actual typesetting, structuring and page
formatting, producing documents of astonishing elegance.&lt;/p&gt;</description></item><item><title>Augmented reality sandbox with real-time water flow simulation</title><link>http://karpoke.ignaciocano.com/2012/05/16/augmented-reality-sandbox-with-real-time-water-flow-simulation/</link><pubDate>Wed, 16 May 2012 09:26:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/16/augmented-reality-sandbox-with-real-time-water-flow-simulation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Video of a sandbox equipped with a Kinect 3D camera and a projector to
project a real-time colored topographic map with contour lines onto
the sand surface. The sandbox lets virtual water flow over the surface
using a GPU-based simulation of the Saint-Venant set of shallow water
equations.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/j9JXtTj0mzE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;» @okreylos | &lt;a href="https://www.youtube.com/watch?v=j9JXtTj0mzE"&gt;youtube.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>La escala del universo</title><link>http://karpoke.ignaciocano.com/2012/05/15/la-escala-del-universo/</link><pubDate>Tue, 15 May 2012 20:09:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/15/la-escala-del-universo/</guid><description>&lt;p&gt;» &lt;a href="http://i.imgur.com/0fPRk.jpg"&gt;link&lt;/a&gt; | via &lt;a href="http://www.reddit.com/r/space/comments/t4wle/the_scale_of_the_universe/"&gt;reddit&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Saltándonos el portal cautivo de una biblioteca</title><link>http://karpoke.ignaciocano.com/2012/05/15/saltandonos-el-portal-cautivo-de-una-biblioteca/</link><pubDate>Tue, 15 May 2012 14:06:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/15/saltandonos-el-portal-cautivo-de-una-biblioteca/</guid><description>&lt;p&gt;El portal cautivo es el sistema que utilizan algunos establecimientos
como bibliotecas u hoteles en el que la conexión inalámbrica está
abierta (sin cifrar) pero para conectarse a Internet es necesario
aceptar las condiciones de uso, o introducir una contraseña, en la
página de pasarela que aparece cuando intentamos navegar.&lt;/p&gt;
&lt;p&gt;Este no es un artículo exhaustivo que muestre como saltarse cualquier
portal cautivo sino más bien aquél que permite el paso de tráfico TCP
por el puerto 53 (DNS). Lo que veremos aquí NO es un túnel DNS, que
permite encapsular el tráfico TCP en paquetes de DNS.&lt;/p&gt;</description></item><item><title>Identificar el tipo de hash</title><link>http://karpoke.ignaciocano.com/2012/05/15/identificar-el-tipo-de-hash/</link><pubDate>Tue, 15 May 2012 01:29:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/15/identificar-el-tipo-de-hash/</guid><description>&lt;p&gt;El &lt;em&gt;script&lt;/em&gt; &lt;code&gt;Hash_ID.py&lt;/code&gt;, desarrollado por Zion3R, nos permite
identificar los posibles algoritmos utilizados para crear un &lt;em&gt;hash&lt;/em&gt;. En
muchas ocasiones no se puede saber qué algoritmo concreto se ha
utilizado, pero nos devolverá una lista de candidatos.&lt;/p&gt;
&lt;p&gt;El &lt;em&gt;script&lt;/em&gt; compara el &lt;em&gt;hash&lt;/em&gt; con el tipo de &lt;em&gt;hash&lt;/em&gt; de algoritmos tales
como: ADLER-32, CRC-32, CRC-16, DES(Unix), FCS-16, GHash-32-5, GOST R
34.11-94, Haval-160, Haval-192 110080, Haval-224 114080, Haval-256,
Lineage II C4, Domain Cached Credentials, XOR-32, MD5(Half),
MD5(Middle), MySQL, MD5(phpBB3), MD5(Unix), MD5(Wordpress), MD5(APR),
MD2, MD4, MD5, MD5(HMAC(Wordpress)), NTLM, RAdmin v2.x, RipeMD-128,
SNEFRU-128, Tiger-128, MySQL5 - SHA-1(SHA-1($pass)), MySQL 160bit -
SHA-1(SHA-1($pass)), RipeMD-160, SHA-1, SHA-1(MaNGOS), Tiger-160,
Tiger-192, md5($pass.$salt) - Joomla, SHA-1(Django), SHA-224,
RipeMD-256, SNEFRU-256, md5($pass.$salt) - Joomla, SAM -
(LM_hash:NT_hash), SHA-256(Django), RipeMD-320, SHA-384, SHA-256,
SHA-384(Django), SHA-512, Whirlpool, etc.&lt;/p&gt;</description></item><item><title>Learn to speak vim – verbs, nouns, and modifiers!</title><link>http://karpoke.ignaciocano.com/2012/05/14/learn-to-speak-vim-verbs-nouns-and-modifiers/</link><pubDate>Mon, 14 May 2012 15:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/14/learn-to-speak-vim-verbs-nouns-and-modifiers/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Using vim is like talking to your editor in ’verb modifier object’
sentences, turned into acronyms.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://yanpritzker.com/2011/12/16/learn-to-speak-vim-verbs-nouns-and-modifiers/"&gt;yanpritzker.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The grammar of VIM</title><link>http://karpoke.ignaciocano.com/2012/05/14/the-grammar-of-vim/</link><pubDate>Mon, 14 May 2012 14:33:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/14/the-grammar-of-vim/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Like a lot of people, I have gone retro when it comes to editors,
using Vim for most of my day to day work. I’ve been doing most of my
development these days in a terminal window, logged directly into a VM
where I test my code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://rc3.org/2012/05/12/the-grammar-of-vim/"&gt;rc3.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Curso de Asterisk</title><link>http://karpoke.ignaciocano.com/2012/05/14/curso-de-asterisk/</link><pubDate>Mon, 14 May 2012 14:27:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/14/curso-de-asterisk/</guid><description>&lt;p&gt;» &lt;a href="http://www.dragonjar.org/curso-de-asterisk.xhtml"&gt;dragonjar.org&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Upstart Intro, Cookbook and Best Practises</title><link>http://karpoke.ignaciocano.com/2012/05/14/upstart-intro-cookbook-and-best-practises/</link><pubDate>Mon, 14 May 2012 13:35:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/14/upstart-intro-cookbook-and-best-practises/</guid><description>&lt;blockquote&gt;
&lt;p&gt;The purpose of this document is multi-faceted. It is intended as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A gentle introduction to Upstart.&lt;/li&gt;
&lt;li&gt;A Cookbook of recipes and best-practises for solving common and
not so common problems.&lt;/li&gt;
&lt;li&gt;An extended guide to the configuration syntax of Upstart.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It attempts to explain the intricacies of Upstart with worked examples
and lots of details.&lt;/p&gt;
&lt;p&gt;Note that the reference documentation for Upstart will always be the
manual pages: this is merely a supplement to them.&lt;/p&gt;</description></item><item><title>How To Make Your Own Text Adventure On A Computer</title><link>http://karpoke.ignaciocano.com/2012/05/14/how-to-make-your-own-text-adventure-on-a-computer/</link><pubDate>Mon, 14 May 2012 13:34:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/14/how-to-make-your-own-text-adventure-on-a-computer/</guid><description>&lt;blockquote&gt;
&lt;p&gt;If you have made a text adventure in your mind that you really like,
and you’re tired of dictating it and would rather make it in a
computer language, this page is for you! I’m teaching you a shortcut
to make a text adventure, for those who actually know Python.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;» &lt;a href="http://www.bluzeandmuse.com/final_site/how_to.html"&gt;bluezandmuse.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Learn to Hack</title><link>http://karpoke.ignaciocano.com/2012/05/14/learn-to-hack/</link><pubDate>Mon, 14 May 2012 13:30:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/14/learn-to-hack/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Attack servers, crack passwords, exploit services, beat encryption -
everything you need to protect yourself from evil.&lt;/p&gt;
&lt;p&gt;There are two rules of computer security: one – don’t buy a computer;
and two – if you have to buy a computer, don’t turn it on. If you
break these rules then you’ll be opening yourself up to potential
problems. No system is 100% safe from hackers, but by following a few
simple steps you can make yours much harder for intruders to attack.&lt;/p&gt;</description></item><item><title>Sobre el cifrado completo de disco</title><link>http://karpoke.ignaciocano.com/2012/05/14/sobre-el-cifrado-completo-de-disco-full-disk-encryption/</link><pubDate>Mon, 14 May 2012 02:07:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/14/sobre-el-cifrado-completo-de-disco-full-disk-encryption/</guid><description>&lt;p&gt;» &lt;a href="http://www.kriptopolis.com/cifrado-completo-de-disco"&gt;kriptopolis.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Kippo, probando un honeypot en Ubuntu</title><link>http://karpoke.ignaciocano.com/2012/05/13/kippo-probando-un-honeypot-en-ubuntu/</link><pubDate>Sun, 13 May 2012 16:19:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/13/kippo-probando-un-honeypot-en-ubuntu/</guid><description>&lt;p&gt;Un &lt;em&gt;honeypot&lt;/em&gt; emula un servicio vulnerable, en caso de &lt;a href="http://code.google.com/p/kippo/"&gt;Kippo&lt;/a&gt; el de
SSH pero los hay también para otros servicios como FTP o web, con el fin
de registrar la interacción del atacante. De esta manera, se puede tener
constancia de la técnica y el tipo de ataques que se llevan a cabo. El
&lt;em&gt;honeypot&lt;/em&gt; puede ser de baja interacción, si emula un servicio no
existente, o de alta interacción, si trabaja sobre un servicio real.
Kippo es de los primeros.&lt;/p&gt;</description></item><item><title>Abrir enlaces externos en una ventana nueva en segundo plano usando jQuery</title><link>http://karpoke.ignaciocano.com/2012/05/13/abrir-enlaces-externos-en-una-ventana-nueva-en-segundo-plano-usando-jquery/</link><pubDate>Sun, 13 May 2012 00:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/13/abrir-enlaces-externos-en-una-ventana-nueva-en-segundo-plano-usando-jquery/</guid><description>&lt;p&gt;Si queremos que nuestros enlaces se abran en una ventana nueva podemos
utilizar el atributo &lt;code&gt;target&lt;/code&gt; para las etiquetas &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt;. Sin embargo, si
utilizamos un esquema XHTML Strict este atributo no es válido para
ninguna etiqueta. El motivo es separar la presentación del contenido del
comportamiento, y el atributo &lt;code&gt;target&lt;/code&gt; modifica el comportamiento.&lt;/p&gt;
&lt;p&gt;Una alternativa es utilizar Javascript para conseguir el mismo efecto.
Si Javascript no está disponible simplemente se abrirá en la misma
ventana. Con Javascript, además, podemos conseguir que la ventana se
abra en segundo plano, aunque sólo en algunos navegadores, como por
ejemplo Chromium. &lt;a href="http://stackoverflow.com/questions/2533305/window-focus-self-focus-not-working-in-firefox/2533335#2533335"&gt;En Firefox es necesario modificar un parámetro&lt;/a&gt; que
viene desactivado por defecto.&lt;/p&gt;</description></item><item><title>Benchmarking de un servidor web</title><link>http://karpoke.ignaciocano.com/2012/05/10/benchmarking-de-un-servidor-web/</link><pubDate>Thu, 10 May 2012 19:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/10/benchmarking-de-un-servidor-web/</guid><description>&lt;p&gt;Con un sencillo comando podremos saber la carga que soporta nuestro
servidor web. Hay que tener cuidado contra qué servidor lo lanzamos y en
qué momento, porque puede que interfiera o impida el acceso a otros
usuarios.&lt;/p&gt;
&lt;p&gt;El comando es &lt;code&gt;ab&lt;/code&gt;, de &lt;em&gt;Apache Benchmarking&lt;/em&gt;, y permite multitud de
opciones, entre ellas el número de peticiones concurrentes, con el
argumento &lt;code&gt;-c&lt;/code&gt;, y la duración de la prueba, con el argumento &lt;code&gt;-t&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>ownCloud con MySQL en Ubuntu Lucid Lynx 10.04</title><link>http://karpoke.ignaciocano.com/2012/05/10/owncloud-con-mysql-en-ubuntu-lucid-lynx-10-04/</link><pubDate>Thu, 10 May 2012 16:17:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/10/owncloud-con-mysql-en-ubuntu-lucid-lynx-10-04/</guid><description>&lt;p&gt;&lt;img alt="Owncloud logo" loading="lazy" src="http://karpoke.ignaciocano.com/images/owncloud-logo-300x148.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://owncloud.org/"&gt;ownCloud&lt;/a&gt; es una aplicación de código abierto que nos facilita tener
nuestra propia nube, permitiendo guardar, sincronizar y compartir todo
tipo de archivos, incluyendo imágenes, música y vídeos. También tenemos
la posibilidad de incluir &lt;a href="http://apps.owncloud.com/"&gt;aplicaciones de terceros&lt;/a&gt; tales como un
calendario, un gestor de contactos, un editor de texto, gestión de
enlaces, etc.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Owncloud files" loading="lazy" src="http://karpoke.ignaciocano.com/images/owncloud-files-300x119.png"&gt;&lt;/p&gt;
&lt;p&gt;Para instalarlo en Ubuntu Lucid Lynx 10.04, seguiremos los siguientes
pasos.&lt;/p&gt;
&lt;p&gt;Instalamos las dependencias, incluyendo algunas opcionales:&lt;/p&gt;</description></item><item><title>Forzar el uso de SSL/HTTPS de un directorio en Apache2 mediante .htaccess y mod_rewrite</title><link>http://karpoke.ignaciocano.com/2012/05/10/forzar-el-uso-de-sslhttps-de-un-directorio-en-apache2-mediante-htaccess-y-mod_rewrite/</link><pubDate>Thu, 10 May 2012 15:35:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/10/forzar-el-uso-de-sslhttps-de-un-directorio-en-apache2-mediante-htaccess-y-mod_rewrite/</guid><description>&lt;p&gt;Si queremos que el acceso a un directorio concreto, es decir, que afecte
únicamente la ruta relativa en la URL que accede a ese directorio, se
realice mediante una conexión segura, suponiendo que ya tenemos
configurado el servidor de forma adecuada, basta incluir en ese
directorio un fichero &lt;code&gt;.htaccess&lt;/code&gt; que contenga:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Así, si por ejemplo, queremos que la ruta &lt;code&gt;http://localhost/secure/&lt;/code&gt; se
acceda de forma segura, suponiendo que el &lt;code&gt;DocumentRoot&lt;/code&gt; apunta a
&lt;code&gt;/var/www&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Opciones adicionales para trabajar con tablas vinculadas en phpMyAdmin</title><link>http://karpoke.ignaciocano.com/2012/05/10/opciones-adicionales-para-trabajar-con-tablas-vinculadas-en-phpmyadmin/</link><pubDate>Thu, 10 May 2012 12:26:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/05/10/opciones-adicionales-para-trabajar-con-tablas-vinculadas-en-phpmyadmin/</guid><description>&lt;p&gt;&lt;img alt="PhpMyAdmin Logo" loading="lazy" src="http://karpoke.ignaciocano.com/images/PhpMyAdmin-Logo-300x212.png"&gt;&lt;/p&gt;
&lt;p&gt;Puede que alguna vez hayamos visto este mensaje en el panel de
administración de phpMyAdmin:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Las opciones adicionales para trabajar con tablas vinculadas fueron
desactivadas. Para saber porqué, dé clic &lt;a href="http://www.phpmyadmin.net/localized_docs/es/Documentation.html#tracking"&gt;aquí&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Si seguimos el enlace, nos lleva a la documentación donde nos explican
que, a partir de la versión 3.3.x, está disponible el sistema de
&lt;em&gt;tracking&lt;/em&gt;, que es un sistema que permite realizar un seguimiento de las
consultas SQL ejecutadas por phpMyAdmin, tanto sentencias de definición
como de manipulación de datos, pudiendo guardar versiones de las tablas.&lt;/p&gt;</description></item><item><title>sed es Turing completo</title><link>http://karpoke.ignaciocano.com/2012/04/22/sed-es-turing-completo/</link><pubDate>Sun, 22 Apr 2012 00:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/04/22/sed-es-turing-completo/</guid><description>&lt;p&gt;¿Cómo puede ser un editor de flujo, una utilidad para el tratamiento de
texto, un lenguaje Turing completo? &lt;code&gt;sed&lt;/code&gt; permite saltos condiciones e
incondicionales y utiliza un &lt;em&gt;buffer&lt;/em&gt; temporal, lo que permite
&lt;a href="http://www.catonmat.net/blog/proof-that-sed-is-turing-complete/"&gt;construir una máquina de Turing con él&lt;/a&gt;, y cualquier lenguaje que
pueda construir una máquina de Turing es Turing completo.&lt;/p&gt;
&lt;p&gt;Una implementación de una máquina de Turing con &lt;code&gt;sed&lt;/code&gt; es &lt;a href="http://www.catonmat.net/ftp/sed/turing.sed"&gt;turing.sed&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Un ejemplo de programa que realiza el incremento de un número binario es
el siguiente:&lt;/p&gt;</description></item><item><title>ZeroBin</title><link>http://karpoke.ignaciocano.com/2012/04/21/zerobin/</link><pubDate>Sat, 21 Apr 2012 17:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/04/21/zerobin/</guid><description>&lt;p&gt;ZeroBin es una aplicación web de código abierto que permite subir
textos, al estilo &lt;a href="http://pastebin.com/"&gt;pastebin.com&lt;/a&gt;, pero cifrados, de tal manera que
nadie que no conozca la clave puede tener acceso, ni siquiera el
servidor. Los datos se cifran y descifran en el navegador usando una
clave AES de 256 bits, utilizando la &lt;a href="http://crypto.stanford.edu/sjcl/"&gt;librería de cifrado y descifrado
en JavaScript&lt;/a&gt; de la universidad de Standford.&lt;/p&gt;
&lt;p&gt;Es rápido, fácil de utilizar y no necesita una base de datos, tan solo
un servidor de páginas PHP (5.2.6+) y un navegador moderno con soporte
JavaScript habilitado. Permite configurar que el contenido expire en un
tiempo determinado o comenzar una conversación entorno a él, entre
algunas de sus características, y otras que vendrán en futuras
versiones.&lt;/p&gt;</description></item><item><title>Arrancar y parar instancias minicloud de OVH desde el terminal</title><link>http://karpoke.ignaciocano.com/2012/04/20/arrancar-y-parar-instancias-minicloud-de-ovh-desde-el-terminal/</link><pubDate>Fri, 20 Apr 2012 03:05:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/04/20/arrancar-y-parar-instancias-minicloud-de-ovh-desde-el-terminal/</guid><description>&lt;p&gt;Si tenemos un &lt;em&gt;minicloud&lt;/em&gt; con OVH, podemos gestionar las instancias
(máquinas vituales) con un &lt;em&gt;script&lt;/em&gt; creado por &lt;a href="http://www.gallot.be/?p=124"&gt;Dominique Gallot&lt;/a&gt;. El
&lt;em&gt;script&lt;/em&gt; utiliza la &lt;a href="http://www.ovh.com/soapi/es/"&gt;API SOAP de OVH&lt;/a&gt;, de tal manera que permite
obtener información sobre las instancias, arrancarlas y pararlas desde
el terminal, sin tener que hacerlo desde el panel de administración.&lt;/p&gt;
&lt;p&gt;En la página de OVH tienen el &lt;em&gt;script&lt;/em&gt;
&lt;a href="http://www.ovh.com/fr/cloud/api/ovhcloud"&gt;&lt;code&gt;ovhclud&lt;/code&gt;, para gestionar la nube (Public Cloud)&lt;/a&gt;,
pero parece que todavía no soporta las instancias de &lt;em&gt;minicloud&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>Apache2 y mod_security en Ubuntu Lucid Lynx 10.04</title><link>http://karpoke.ignaciocano.com/2012/04/12/apache2-y-mod_security-en-ubuntu-lucid-lynx-10-04/</link><pubDate>Thu, 12 Apr 2012 22:34:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/04/12/apache2-y-mod_security-en-ubuntu-lucid-lynx-10-04/</guid><description>&lt;p&gt;&lt;code&gt;mod_security&lt;/code&gt; es un módulo de Apache que actua como cortafuegos,
protegiendo contra diversos tipos de ataque, y permitiendo monitorizar
el tráfico HTTP en tiempo real.&lt;/p&gt;
&lt;p&gt;Por sí solo, el módulo no provee la protección, sino que deben añadirse
reglas. Afortunadamente, existen conjuntos de reglas predefinidos, como
el OWASP ModSecurity Core Rule Set Project, que nos facilitan la tarea.
Al contrario que los sistemas de detección de intrusos, basados en
firmas de vulnerabilidades conocidas, este conjunto de reglas protege
contra vulnerabilidades desconocidas que pueda haber en las aplicaciones
web.&lt;/p&gt;</description></item><item><title>Medir el ancho de banda entre dos equipos de la red</title><link>http://karpoke.ignaciocano.com/2012/04/08/medir-el-ancho-de-banda-entre-dos-equipos-de-la-red/</link><pubDate>Sun, 08 Apr 2012 13:27:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/04/08/medir-el-ancho-de-banda-entre-dos-equipos-de-la-red/</guid><description>&lt;p&gt;Mediante &lt;code&gt;iperf&lt;/code&gt; podemos medir el ancho de banda de nuestra red. El
programa se ejecuta en un equipo en modo servidor y se lanza desde cada
equipo desde el que queramos medir el ancho de banda en modo cliente.&lt;/p&gt;
&lt;p&gt;Por ejemplo, para probar el ancho de banda entre:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;un servidor conectado al &lt;em&gt;router&lt;/em&gt; por cable con la IP 192.168.50.100&lt;/li&gt;
&lt;li&gt;un portátil conectado a la red inalámbrica&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En el servidor ejecutamos:&lt;/p&gt;</description></item><item><title>Recuperar la dirección de WordPress</title><link>http://karpoke.ignaciocano.com/2012/04/05/recuperar-la-direccion-de-wordpress/</link><pubDate>Thu, 05 Apr 2012 14:46:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/04/05/recuperar-la-direccion-de-wordpress/</guid><description>&lt;p&gt;En el panel de administración de WordPress, en Ajustes &amp;gt; Generales,
podemos cambiar la dirección del blog o la dirección donde está
instalado Wordpress.&lt;/p&gt;
&lt;p&gt;Tenemos que tener cuidado si cambiamos la dirección de WordPress, ya que
podemos dejar el sitio, y en especial el panel de control, inaccesible.
O puede que lo que nos interese sea actualizar el dominio antiguo por el
nuevo.&lt;/p&gt;
&lt;p&gt;En ambas situaciones, si sólo se debe modificar el dominio, sin que se
deba cambiar ninguna ruta relativa de acceso al blog, podemos lograr
acceso al panel de administración incluyendo el nuevo dominio al archivo
&lt;code&gt;/etc/hosts&lt;/code&gt;, y desde ahí modificar cualquier variable que necesitemos.&lt;/p&gt;</description></item><item><title>Evitar el registro de comandos en el historial</title><link>http://karpoke.ignaciocano.com/2012/03/16/evitar-el-registro-de-comandos-en-el-historial/</link><pubDate>Fri, 16 Mar 2012 14:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/03/16/evitar-el-registro-de-comandos-en-el-historial/</guid><description>&lt;p&gt;Por diferentes motivos, nos puede interesar que lo que escribamos en el
terminal no quede registrado en el historial, por ejemplo, si
necesitamos escribir una contraseña. Esto se puede conseguir de
diferentes maneras. El historial cuenta con una copia en memoria,
accesible mediante el comando &lt;code&gt;history&lt;/code&gt;, que se vuelca en el fichero
&lt;code&gt;~/.bash_history&lt;/code&gt; al terminar la sesión.&lt;/p&gt;
&lt;p&gt;Las variables involucradas en el historial son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;HISTCONTROL&lt;/code&gt;, contiene una lista de valores separados por coma que&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;indican bajo qué condiciones se deben añadir entradas al historial.
Estos valores pueden ser `ignorespace`, `ignoredups`, `ignoreboth` o
`erasedups`.
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;HISTFILE&lt;/code&gt;, contiene el nombre del fichero donde se guardará el&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;historial. Por defecto `~/.bash_history`.
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;HISTFILESIZE&lt;/code&gt;, contiene el número máximo de entradas que se&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;guardarán en el fichero. Por defecto, 500.
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;HISTIGNORE&lt;/code&gt;, contiene una lista separada por dos puntos &lt;code&gt;:&lt;/code&gt; de los&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;comandos que deben ser ignorados. Podemos utilizar `*` para crear
patrones que deban coincidir.
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;HISTSIZE&lt;/code&gt;, contiene el número de entradas en memoria que debe&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;contener el historial. Por defecto, 500.
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;HISTTIMEFORMAT&lt;/code&gt;, puede contener el formato utilizado para guardar&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;la fecha y hora asociada a cada entrada en el historial.
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="espacio-al-inicio"&gt;Espacio al inicio&lt;/h2&gt;
&lt;p&gt;Una opción es especificar que se ignoren las entradas que comiencen con
un espacio. Para activar esta opción de forma permanente, la variable
&lt;code&gt;HISTCONTROL&lt;/code&gt; debe contener el valor &lt;code&gt;ignorespace&lt;/code&gt; o &lt;code&gt;ignoreboth&lt;/code&gt;
(&lt;code&gt;ignoreboth&lt;/code&gt; incluye &lt;code&gt;ignorespace&lt;/code&gt; e &lt;code&gt;ignoredups&lt;/code&gt;, ésta última es para
ignorar duplicados) en nuestro archivo de configuración &lt;code&gt;~/.bashrc&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Consultar el buscón de la RAE desde el terminal</title><link>http://karpoke.ignaciocano.com/2012/02/28/consultar-el-buscon-de-la-rae-desde-el-terminal/</link><pubDate>Tue, 28 Feb 2012 01:41:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/02/28/consultar-el-buscon-de-la-rae-desde-el-terminal/</guid><description>&lt;p&gt;Al realizar consultas al &lt;a href="http://buscon.rae.es/draeI/"&gt;buscón de la RAE&lt;/a&gt; desde el terminal, me iba
muy lento. Ésta es una página que todavía usa marcos (wtf!), por lo que
si queremos acceder directamente a la página con el resultado de la
búsqueda deberemos utilizar una de las siguientes URLs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;~~Para el &lt;a href="http://buscon.rae.es/draeI/"&gt;diccionario de la RAE&lt;/a&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;`http://buscon.rae.es/draeI/SrvltGUIBusUsual?origen=RAE&amp;amp;TIPO_BUS=3&amp;amp;LEMA=cederrón`~~
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;~~Para el &lt;a href="http://buscon.rae.es/dpdI/"&gt;diccionario panhispánico de dudas&lt;/a&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;`http://buscon.rae.es/dpdI/SrvltGUIBusDPD?origen=RAE&amp;amp;lema=cederrón`~~
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h4 id="actualización"&gt;Actualización&lt;/h4&gt;
&lt;p&gt;La RAE ha cambiado la URL de búsqueda, pasando a ser:&lt;/p&gt;</description></item><item><title>Reiniciar el router desde el terminal</title><link>http://karpoke.ignaciocano.com/2012/02/09/reiniciar-el-router-desde-bash/</link><pubDate>Thu, 09 Feb 2012 21:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/02/09/reiniciar-el-router-desde-bash/</guid><description>&lt;p&gt;De vez en cuando, necesitamos reiniciar nuestro &lt;em&gt;router&lt;/em&gt;. Por ejemplo,
para provocar un cambio de IP, si tenemos IP dinámica. Podemos acceder
al panel de administración del &lt;em&gt;router&lt;/em&gt; mediante el navegador,
normalmente en el puerto 80 u 8080, aunque también es posible hacerlo a
través de telnet, en el puerto 22.&lt;/p&gt;
&lt;p&gt;Para hacer más sencillo este trámite, utilizaremos un &lt;em&gt;script&lt;/em&gt; que se
conecta por telnet al &lt;em&gt;router&lt;/em&gt;, introduce el usuario y la contraseña y
lo reinicia mediante el comando &lt;code&gt;reboot&lt;/code&gt;. Esto dependerá de cada modelo
de &lt;em&gt;router&lt;/em&gt; en concreto, pero creo que funciona para un gran número. En
principio, no es posible apagarlo, sólo reiniciarlo.&lt;/p&gt;</description></item><item><title>Instalar deluge en Ubuntu Lucid Lynx</title><link>http://karpoke.ignaciocano.com/2012/02/09/instalar-deluge-en-ubuntu-lucid-lynx/</link><pubDate>Thu, 09 Feb 2012 02:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/02/09/instalar-deluge-en-ubuntu-lucid-lynx/</guid><description>&lt;p&gt;&lt;code&gt;deluge&lt;/code&gt; es un cliente de BitTorrent en el que la interfaz está separada
del núcleo, que corre como un servicio, lo que posibilita usarlo de
forma remota a través de una interfaz web.&lt;/p&gt;
&lt;h2 id="instalación"&gt;Instalación&lt;/h2&gt;
&lt;p&gt;Podemos instalar &lt;code&gt;deluge&lt;/code&gt; y su interfaz web desde los repositorios:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo aptitude install deluged deluge-webui
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Crearemos el usuario &amp;ldquo;deluge&amp;rdquo; para ejecutar este servicio:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo adduser --disabled-password --system --home /var/lib/deluge --gecos &amp;#34;SamRo Deluge server&amp;#34; --group deluge
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Creamos el &lt;em&gt;script&lt;/em&gt; &lt;code&gt;/etc/default/deluge-daemon&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Instalación de un nuevo kernel PPA en Ubuntu</title><link>http://karpoke.ignaciocano.com/2012/01/26/instalacion-de-un-nuevo-kernel-ppa-en-ubuntu/</link><pubDate>Thu, 26 Jan 2012 12:19:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/01/26/instalacion-de-un-nuevo-kernel-ppa-en-ubuntu/</guid><description>&lt;p&gt;Esta receta muestra como &lt;a href="http://www.howopensource.com/2011/08/how-to-install-linux-kernel-3-1-rc2-oneiric-in-ubuntu-11-04-10-10-and-10-04/"&gt;instalar un nuevo kernel precompilado&lt;/a&gt; en
Ubuntu.&lt;/p&gt;
&lt;p&gt;Antes de continuar, cabe avisar de que si tenemos módulos del kernel que
no sean libres, por ejemplo, módulos de ATI, &lt;a href="http://www.ultimateeditionoz.com/forum/viewtopic.php?t=2504"&gt;Broadcom&lt;/a&gt; o
&lt;a href="http://unix.stackexchange.com/questions/10962/i-am-failing-to-build-virtualbox-driver-for-linux-2-6-38"&gt;Virtualbox&lt;/a&gt;, es posible que nos surja algún problema que deberemos
resolver en cada caso. En algunos casos, volver a reinstalar las
aplicaciones o los controladores puede funcionar.&lt;/p&gt;
&lt;p&gt;Instalamos &lt;code&gt;module-init-tools&lt;/code&gt;, una herramienta para gestionar módulos
del kernel que se encuentra en los repositorios, que puede evitar que
nos aparezcan algunos errores y avisos.&lt;/p&gt;</description></item><item><title>Configurar sSMTP para enviar correo mediante GMail desde el terminal</title><link>http://karpoke.ignaciocano.com/2012/01/14/configurar-ssmtp-para-enviar-correo-mediante-gmail-desde-el-terminal/</link><pubDate>Sat, 14 Jan 2012 13:50:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/01/14/configurar-ssmtp-para-enviar-correo-mediante-gmail-desde-el-terminal/</guid><description>&lt;p&gt;Con esta receta, podremos enviar correos electrónicos desde el terminal
sin necesidad de tener instalado un servidor de correo, simplemente
utilizando una cuenta de GMail y sSMTP, que se encuentra en los
repositorios. Esta opción puede estar bien para enviar correos desde un
sistema que utilizamos sólo nosotros, pero no es un sustituto de un
servidor de correo como Sendmail, Exim o Postfix.&lt;/p&gt;
&lt;p&gt;Para configurarlo, editamos el fichero &lt;code&gt;/etc/ssmtp/ssmtp.conf&lt;/code&gt; y
añadimos las siguientes líneas al final del mismo:&lt;/p&gt;</description></item><item><title>#ComparteCultura</title><link>http://karpoke.ignaciocano.com/2012/01/11/compartecultura/</link><pubDate>Wed, 11 Jan 2012 01:33:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/01/11/compartecultura/</guid><description>&lt;p&gt;&lt;strong&gt;La recopilación de la lista original de #ComparteCultura es obra de
@kurioso y está en &lt;a href="http://kurioso.es/2012/01/09/compartecultura/"&gt;#ComparteCultura&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En 1980 la industria discográfica británica realizó una campaña
antipiratería con el slogan &amp;ldquo;&lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Home_Taping_Is_Killing_Music"&gt;Home Taping Is Killing Music&lt;/a&gt;&lt;/em&gt;&amp;rdquo;. 30
años más tarde &lt;a href="http://www.enriquedans.com/2011/03/mas-evidencias-la-musica-esta-mas-viva-que-nunca.html"&gt;la música está más viva que nunca&lt;/a&gt; y lo que está
muriendo es la industria, que reclama el &amp;rsquo;lucro cesante&amp;rsquo; de un negocio
de intermediación descaradamente obsoleto. Hay que meterse en la cabeza:
&lt;a href="http://www.filmica.com/david_bravo/archivos/005799.html"&gt;Compartir no es delito&lt;/a&gt;. &lt;a href="http://www.elpais.com/articulo/tecnologia/Nuevo/carpetazo/caso/web/enlaces/elpeputec/20100603elpeputec_4/Tes"&gt;Descargar no es delito&lt;/a&gt;. &lt;a href="http://mangasverdes.es/2010/01/10/copiar-no-es-robar/"&gt;Copiar no es
robar&lt;/a&gt;. La industria quiere meterte miedo. ¿Cómo podemos ejercer
nuestros derechos? &lt;strong&gt;Comparte, descarga y copia la siguiente lista&lt;/strong&gt; de
recursos culturales.&lt;/p&gt;</description></item><item><title>Instalando MySQL Workbench desde el código fuente en Ubuntu Oneiric Ocelot</title><link>http://karpoke.ignaciocano.com/2012/01/10/instalando-mysql-workbench-desde-el-codigo-fuente-en-ubuntu-oneiric-ocelot/</link><pubDate>Tue, 10 Jan 2012 16:16:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2012/01/10/instalando-mysql-workbench-desde-el-codigo-fuente-en-ubuntu-oneiric-ocelot/</guid><description>&lt;p&gt;&lt;a href="http://www.mysql.com/products/workbench/"&gt;MySQL Workbench&lt;/a&gt; es una herramienta que permite diseñar y administrar
una base de datos MySQL y proporciona herramientas para la configuración
del servidor y la administración de los usuarios.&lt;/p&gt;
&lt;p&gt;MySQL Workbench no se encuentra en los repositorios de Ubuntu, y desde
la &lt;a href="http://dev.mysql.com/downloads/workbench#downloads"&gt;página de descargas&lt;/a&gt; todavía no hay un paquete para Ubuntu Oneiric
Ocelot (11.10).&lt;/p&gt;
&lt;h2 id="instalación"&gt;Instalación&lt;/h2&gt;
&lt;p&gt;Para instalar MySQL Workbench, primero nos bajamos el código fuente.
Ahora mismo, la última versión es la 5.2.37.&lt;/p&gt;</description></item><item><title>La red resiste</title><link>http://karpoke.ignaciocano.com/2011/12/02/la-red-resiste/</link><pubDate>Fri, 02 Dec 2011 12:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/12/02/la-red-resiste/</guid><description>&lt;p&gt;&lt;a href="http://redresiste.net/"&gt;La red resiste&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Hace exactamente dos años tuvimos conocimiento del anteproyecto de Ley
Sinde. Gran parte de la ciudadanía señaló de inmediato su rechazo en las
redes a través del #&lt;a href="http://es.wikipedia.org/wiki/Manifiesto_%C2%ABEn_defensa_de_los_derechos_fundamentales_en_internet%C2%BB"&gt;manifiesto por los derechos fundamentales en
Internet&lt;/a&gt;. En estos 24 meses el debate social sobre esta iniciativa ha
sido intenso y ha aglutinado a ciudadanos y organizaciones preocupados
por la merma de derechos y libertades. Ahora, pocos días después de
haber sido deslegitimado por las urnas, un gobierno moribundo pretende
aprobar el reglamento que desarrolla esta ley en abierta connivencia con
el gobierno entrante.&lt;/p&gt;</description></item><item><title>La contraseña del presidente Obama</title><link>http://karpoke.ignaciocano.com/2011/12/01/la-contrasena-del-presidente-obama/</link><pubDate>Thu, 01 Dec 2011 22:28:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/12/01/la-contrasena-del-presidente-obama/</guid><description>&lt;p&gt;En un &lt;em&gt;tweet&lt;/em&gt; de &lt;a href="http://twitter.com/#!/AnonNewsSource/status/141733919501467649"&gt;@AnonNewsSource&lt;/a&gt; han publicado el usuario y el
&lt;em&gt;hash&lt;/em&gt; de la contraseña de Obama:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Obama WEB &lt;a href="http://whitehouse.gov"&gt;http://whitehouse.gov&lt;/a&gt; &lt;a href="mailto:barack.obama@whitehouse.gov"&gt;barack.obama@whitehouse.gov&lt;/a&gt; / PASS:
6289c5975815012768aefbf9a8d2fd3e / LOGIN: bobama PHONE +1 202-456-1111&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Podemos utilizar el &lt;em&gt;script&lt;/em&gt; &lt;a href="http://karpoke.ignaciocano.com/2011/09/30/encuentra-el-hash/"&gt;findmyhash.py&lt;/a&gt; para ver si encuentra la
contraseña asociada a ese &lt;em&gt;hash&lt;/em&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ python findmyhash.py md5 -h &amp;#34;6289c5975815012768aefbf9a8d2fd3e&amp;#34; -g
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Cracking hash: 6289c5975815012768aefbf9a8d2fd3e
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Analyzing with joomlaaa (http://joomlaaa.com)...
... hash not found in joomlaaa
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Analyzing with md5-lookup (http://md5-lookup.com)...
... hash not found in md5-lookup
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Analyzing with md5.com.cn (http://md5.com.cn)...
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;__*** HASH CRACKED!! ***__
The original string is: 80412999
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;The following hashes were cracked:
----------------------------------
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;6289c5975815012768aefbf9a8d2fd3e -&amp;gt; 80412999
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Via &lt;a href="http://blog.segu-info.com.ar/2011/12/usuario-y-contrasena-de-barack-obama.html"&gt;segu-info.com.ar&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Obtención remota de ficheros en Android &lt; 2.3.4</title><link>http://karpoke.ignaciocano.com/2011/11/28/obtencion-remota-de-ficheros-en-android-2-3-4/</link><pubDate>Mon, 28 Nov 2011 14:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/11/28/obtencion-remota-de-ficheros-en-android-2-3-4/</guid><description>&lt;p&gt;Hoy se ha hecho pública la &lt;a href="http://www.exploit-db.com/exploits/18164/"&gt;prueba de concepto&lt;/a&gt; de Thomas Cannon que
permite &lt;a href="http://thomascannon.net/blog/2010/11/android-data-stealing-vulnerability/"&gt;obtener ficheros de los dispositivos con Android&lt;/a&gt; con versiones
anteriores a la 2.3.4.&lt;/p&gt;
&lt;p&gt;En la demostración se ha utilizado un HTC Desire (UK version) con
Android 2.2. Yo lo he probado con un HTC Wildfire con Android 2.2.1 y
también funciona.&lt;/p&gt;
&lt;p&gt;La vulnerabilidad permite que un sitio malicioso obtenga cualquier
fichero guardado en la tarjeta SD, e incluso algunos ficheros e
información guardados en el teléfono. No se puede acceder a ficheros del
sistema, ya que se ejecuta dentro de la &lt;em&gt;sandbox&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>TLSSLed v1.2</title><link>http://karpoke.ignaciocano.com/2011/10/23/tlssled-v1-2/</link><pubDate>Sun, 23 Oct 2011 15:45:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/10/23/tlssled-v1-2/</guid><description>&lt;p&gt;&lt;a href="http://www.taddong.com/en/lab.html#TLSSLED"&gt;TLSSLed&lt;/a&gt; es un &lt;em&gt;script&lt;/em&gt; cuya finalidad es evaluar la seguridad de
SSL/TLS de un servidor web. Se basa en el escáner de SSL/TLS, &lt;code&gt;sslscan&lt;/code&gt;,
el cual a su vez se basa en la librería &lt;code&gt;openssl&lt;/code&gt;, y en el comando
openssl s_client. Entre las comprobaciones que realiza se incluyen
comprobar si el servidor soporta SSLv2, cifrado NULL, cifrados débiles
por la longitud de su clave (40 ó 56 bits), la disponibilidad de
cifrados fuertes, como AES, si el certificado está firmado con MD5 y si
permite la renegociación de SSL/TLS.&lt;/p&gt;</description></item><item><title>Facebook y el RSS de las páginas</title><link>http://karpoke.ignaciocano.com/2011/10/10/facebook-y-el-rss-de-las-paginas/</link><pubDate>Mon, 10 Oct 2011 17:05:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/10/10/facebook-y-el-rss-de-las-paginas/</guid><description>&lt;p&gt;Si queremos &lt;a href="http://rubenbaston.org/rss-paginas-facebook/"&gt;seguir las actualizaciones de una página de Facebook&lt;/a&gt;, no
tenemos más que copiar el ID de la página y sustituirlo en la siguiente
URL, en este caso en formato Atom 1.0:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://www.facebook.com/feeds/page.php?format=atom10&amp;amp;id=xxxxxxxxxxxx
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;O la siguiente, para usar el formato RSS 2.0:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://www.facebook.com/feeds/page.php?format=rss20&amp;amp;id=xxxxxxxxxxxx
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Por ejemplo, para añadir el RSS de la página de Amstrad ESP,
&lt;a href="http://www.facebook.com/pages/Amstrad-ESP/72227918057"&gt;http://www.facebook.com/pages/Amstrad-ESP/&lt;strong&gt;72227918057&lt;/strong&gt;&lt;/a&gt;, no
tenemos más que utilizar la siguiente URL:&lt;/p&gt;
&lt;p&gt;[http://www.facebook.com/feeds/page.php?format=rss20&amp;amp;id=&lt;strong&gt;72227918057&lt;/strong&gt;][]&lt;/p&gt;
&lt;p&gt;[http://www.facebook.com/feeds/page.php?format=rss20&amp;amp;id=&lt;strong&gt;72227918057&lt;/strong&gt;]:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://www.facebook.com/feeds/page.php?format=rss20&amp;amp;id=72227918057
&amp;#34;Amstrad ESP. Facebook Page RSS&amp;#34;
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>El consumo de la batería</title><link>http://karpoke.ignaciocano.com/2011/10/01/el-consumo-de-la-bateria/</link><pubDate>Sat, 01 Oct 2011 19:55:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/10/01/el-consumo-de-la-bateria/</guid><description>&lt;p&gt;Con las últimas versiones del &lt;em&gt;kernel&lt;/em&gt; el &lt;a href="http://www.phoronix.com/scan.php?page=article&amp;amp;item=linux_mobile_uffda#=1"&gt;consumo de la batería se
había disparado&lt;/a&gt;, reduciendo el tiempo de vida útil de la batería. Las
baterías son un bien preciado, por lo que existen multitud de trucos
para intentar &lt;a href="http://karpoke.ignaciocano.com/2010/09/26/la-bateria-del-portatil/"&gt;alargar su tiempo de vida&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Aunque no se conoce con certeza si &lt;a href="http://elsoftwarelibre.wordpress.com/2011/09/29/el-elevado-consumo-de-energia-de-las-ultimas-versiones-del-kernel-de-linux-%C2%BFverdad-o-mito/"&gt;este elevado consumo podría deberse
a un fallo&lt;/a&gt;, en los casos en que la BIOS indicaba que ASPM no estaba
soportado estando éste habilitado, o a la configuración en algunos
&lt;a href="http://www.fewt.com/2011/09/about-kernel-30-power-regression-myth.html"&gt;parámetros del &lt;em&gt;kernel&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Túnel SSH inverso</title><link>http://karpoke.ignaciocano.com/2011/09/30/tunel-ssh-inverso/</link><pubDate>Fri, 30 Sep 2011 18:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/09/30/tunel-ssh-inverso/</guid><description>&lt;p&gt;El escenario es el siguiente. Tenemos un equipo remoto C detrás de un
cortafuegos, &lt;em&gt;router&lt;/em&gt; o similar, que no podemos configurar y no permite
conexiones entrantes, de tal manera que el equipo es inaccesible desde
el exterior de la red en la que está. Otro equipo A, el nuestro, también
está detrás de un cortafuegos, en otra red, que tampoco podemos
configurar y tampoco permite conexiones entrantes. La buena noticia es
que tenemos un servidor remoto B en otra red diferente al que sí tenemos
acceso por SSH desde el equipo remoto C y desde el nuestro (el A). Tanto
el equipo remoto C como el servidor B tienen un servidor SSH corriendo.&lt;/p&gt;</description></item><item><title>Encuentra el hash</title><link>http://karpoke.ignaciocano.com/2011/09/30/encuentra-el-hash/</link><pubDate>Fri, 30 Sep 2011 00:27:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/09/30/encuentra-el-hash/</guid><description>&lt;p&gt;Existen herramientas que permiten romper un &lt;em&gt;hash&lt;/em&gt;, aunque a veces puede
ahorrar tiempo y recursos &lt;a href="http://www.pentestit.com/findmyhash/"&gt;buscar si el &lt;em&gt;hash&lt;/em&gt; ya ha sido encontrado&lt;/a&gt;.
Ni siquiera hace falta una &lt;em&gt;rainbow table&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;findmyhash&lt;/code&gt; es un &lt;em&gt;script&lt;/em&gt; escrito en Python que puede buscar
diferentes tipos de &lt;em&gt;hash&lt;/em&gt; en diferentes servicios de &lt;em&gt;cracking online&lt;/em&gt;.
Los algoritmos soportados son los siguientes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MD4&lt;/li&gt;
&lt;li&gt;MD5&lt;/li&gt;
&lt;li&gt;SHA1&lt;/li&gt;
&lt;li&gt;SHA256&lt;/li&gt;
&lt;li&gt;RMD160&lt;/li&gt;
&lt;li&gt;MYSQL&lt;/li&gt;
&lt;li&gt;CISCO7&lt;/li&gt;
&lt;li&gt;LM&lt;/li&gt;
&lt;li&gt;NTLM&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un ejemplo sencillo. Si no encuentra el &lt;em&gt;hash&lt;/em&gt;, también lo buscará en
Google:&lt;/p&gt;</description></item><item><title>Twitter y el RSS de las cuentas de usuario</title><link>http://karpoke.ignaciocano.com/2011/09/30/twitter-y-el-rss-de-las-cuentas-de-usuario/</link><pubDate>Fri, 30 Sep 2011 00:17:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/09/30/twitter-y-el-rss-de-las-cuentas-de-usuario/</guid><description>&lt;p&gt;Desde hace un tiempo, parece que Twitter ha ido &lt;a href="http://www.genbeta.com/sindicacion/facebook-y-twitter-eliminan-silenciosamente-sus-canales-de-suscripcion-rss#"&gt;ocultando la
posibilidad de seguir una cuenta a través de RSS&lt;/a&gt;. Han aparecido
algunos &lt;a href="http://www.genbeta.com/sindicacion/sigue-cuentas-de-twitter-en-tu-lector-de-feeds-con-twitter-to-rss"&gt;servicios que intentan corregir este comportamiento&lt;/a&gt;, aunque
realmente no son necesarios.&lt;/p&gt;
&lt;p&gt;Para seguir a un usuario a través del RSS lo único que tenemos que hacer
es eliminar el &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Shebang_(Unix)"&gt;shebang&lt;/a&gt;&lt;/em&gt; de la URL, es decir, el &lt;code&gt;#!&lt;/code&gt;. Por ejemplo,
para seguir a &lt;a href="http://www.dragonjar.org/"&gt;DragonJAR&lt;/a&gt;, muy recomendable, deberíamos usar la URL:
&lt;a href="http://twitter.com/DragonJAR"&gt;http://twitter.com/DragonJAR&lt;/a&gt;, en lugar de
&lt;a href="http://twitter.com/#!/DragonJAR"&gt;http://twitter.com/#!/DragonJAR&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Imagen a través de SSH</title><link>http://karpoke.ignaciocano.com/2011/09/28/imagen-a-traves-de-ssh/</link><pubDate>Wed, 28 Sep 2011 20:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/09/28/imagen-a-traves-de-ssh/</guid><description>&lt;p&gt;Si tenemos acceso por SSH a otro ordenador, ambos con entorno gráfico,
podemos redirigir la pantalla, el teclado y el ratón en ambos sentidos,
es decir, podemos conseguir cosas como:&lt;/p&gt;
&lt;p&gt;» &lt;a href="#aplicaciones-remotas-a-servidor-local"&gt;aplicaciones remotas que se muestren en nuestro equipo&lt;/a&gt;
» &lt;a href="#aplicaciones-remotas-a-servidor-remoto"&gt;aplicaciones remotas que se muestren en el equipo remoto&lt;/a&gt;
» &lt;a href="#aplicaciones-locales-a-servidor-remoto"&gt;aplicaciones locales que se muestren en el equipo remoto&lt;/a&gt;
» &lt;a href="#captura-escritorio-remoto-a-local"&gt;recibir una captura de pantalla del equipo remoto&lt;/a&gt;
» [enviar una captura de pantalla de nuestro equipo al equipo&lt;/p&gt;</description></item><item><title>Descargar archivos de Megaupload desde el terminal con plowshare</title><link>http://karpoke.ignaciocano.com/2011/09/18/descargar-archivos-de-megaupload-desde-el-terminal-con-plowshare/</link><pubDate>Sun, 18 Sep 2011 03:57:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/09/18/descargar-archivos-de-megaupload-desde-el-terminal-con-plowshare/</guid><description>&lt;p&gt;&lt;a href="http://code.google.com/p/plowshare/"&gt;plowshare&lt;/a&gt; es una herramienta diseñada para descargar y subir
ficheros a los sitios de intercambio de ficheros más populares. También
se pueden administrar directorios remotos y borrar enlaces.&lt;/p&gt;
&lt;h2 id="instalación"&gt;Instalación&lt;/h2&gt;
&lt;p&gt;Primero, instalamos las dependencias:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo aptitude install curl recode imagemagick tesseract-ocr-eng spidermonkey-bin rhino perlmagick aview
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Podemos descargar el código fuente desde el repositorio Git, en un
&lt;em&gt;tarball&lt;/em&gt; o en un paquete &lt;code&gt;.deb&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ wget https://plowshare.googlecode.com/files/plowshare_1%7Egit20110914-1_all.deb
$ sudo dpkg -i plowshare_1~git20110914-1_all.deb
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="descargando"&gt;Descargando&lt;/h2&gt;
&lt;p&gt;Para descargar un enlace de Megaupload, por ejemplo, escribimos:&lt;/p&gt;</description></item><item><title>fwknop: Single Packet Authorization y port knocking</title><link>http://karpoke.ignaciocano.com/2011/09/18/fwknop-single-packet-authorization-y-port-knocking/</link><pubDate>Sun, 18 Sep 2011 00:49:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/09/18/fwknop-single-packet-authorization-y-port-knocking/</guid><description>&lt;p&gt;&lt;code&gt;fwknop&lt;/code&gt; implementa un esquema de autorización llamado &lt;em&gt;Single Packet
Authorization (SPA)&lt;/em&gt;. Mediante SPA necesita un único paquete cifrado
para abrir puertos en el cortafuegos o llevar a cabo acciones en el
sistema. Se utiliza en conjunción con un cortafuegos que impide la
conexión a los puertos de los servicios que queremos proteger. De esta
forma, se logra una capa extra de seguridad, ya que los hace permanecer
invisibles, descartando silenciosamente los paquetes que llegan a dicho
puerto. Para poder tener acceso a los servicios protegidos, la parte
servidor de &lt;code&gt;fwknop&lt;/code&gt; esnifa pasivamente los paquetes que llegan al
servidor usando &lt;code&gt;libpcap&lt;/code&gt; y, en caso de recibir de parte del cliente de
&lt;code&gt;fwknop&lt;/code&gt; un paquete cifrado válido que no ha sido recibido antes, se
permite el acceso a través del cortafuegos.&lt;/p&gt;</description></item><item><title>Obtener la contraseña a partir de los asteriscos de un formulario web</title><link>http://karpoke.ignaciocano.com/2011/09/11/obtener-la-contrasena-a-partir-de-los-asteriscos-de-un-formulario-web/</link><pubDate>Sun, 11 Sep 2011 17:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/09/11/obtener-la-contrasena-a-partir-de-los-asteriscos-de-un-formulario-web/</guid><description>&lt;p&gt;Si nos encontramos un formulario web lleno de asteriscos, podemos
obtener lo que hay realmente escrito pegando lo siguiente en la barra de
direcciones:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;javascript:(function(){var s,F,j,f,i; s = &amp;#34;&amp;#34;; F = document.forms; for(j=0; j &amp;lt; f.length; ++j) { f = F[j]; for (i=0; i &amp;lt; f.length; ++i) { if (f[i].type.toLowerCase() == &amp;#34;password&amp;#34;) s += f[i].value + &amp;#34; &amp;#34;; } } if (s) alert(&amp;#34;Passwords in forms on this page: &amp;#34; + s); else alert(&amp;#34;There are no passwords in forms on this page.&amp;#34;);})();
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>HTTP Strict Transport Security</title><link>http://karpoke.ignaciocano.com/2011/09/11/http-strict-transport-security/</link><pubDate>Sun, 11 Sep 2011 17:37:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/09/11/http-strict-transport-security/</guid><description>&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security"&gt;HTTP Strict Transport Security&lt;/a&gt; (HSTS) es un mecanismo de seguridad
web donde el servidor exige que las conexiones se realicen únicamente
mediante conexiones seguras. El servidor informa de esta política de
seguridad utilizando la cabecera &lt;code&gt;Strict-Transport-Security&lt;/code&gt;, en donde
se especifica el periodo durante el cual las conexiones seguras son
obligatorias.&lt;/p&gt;
&lt;p&gt;Si una web proporciona acceso seguro (HTTPS) pero accedemos de forma no
segura (HTTP) &lt;a href="http://hacks.mozilla.org/2010/08/firefox-4-http-strict-transport-security-force-https/"&gt;podría suceder que nos redirija a la versión segura&lt;/a&gt;,
sin embargo, ya se había iniciado una conversación sin cifrar. Este
comportamiento puede ser explotado por un ataque &lt;em&gt;Man-In-The-Middle&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>Denegación de servicio en Apache utilizando la cabecera Range</title><link>http://karpoke.ignaciocano.com/2011/08/31/denegacion-de-servicio-en-apache-utilizando-la-cabecera-range/</link><pubDate>Wed, 31 Aug 2011 14:19:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/08/31/denegacion-de-servicio-en-apache-utilizando-la-cabecera-range/</guid><description>&lt;p&gt;Una &lt;a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51714"&gt;vulnerabilidad descubierta por &lt;em&gt;kingcope&lt;/em&gt;&lt;/a&gt; permite que los
servidores Apache vulnerables sean susceptibles de sufrir una denegación
de servicio.&lt;/p&gt;
&lt;p&gt;La vulnerabilidad se encuentra en el uso de la cabecera &lt;code&gt;Range&lt;/code&gt;. Esta
cabecera se utiliza para obtener sólo una parte de la página. Si se
solicitan varias partes además de pedir que la respuesta se comprima,
mediante la cabecera &lt;code&gt;Accept-Encoding: gzip&lt;/code&gt;, se dispara el consumo de
procesador y memoria.&lt;/p&gt;
&lt;p&gt;Existe un &lt;a href="http://seclists.org/fulldisclosure/2011/Aug/att-175/killapache_pl.bin"&gt;&lt;em&gt;script&lt;/em&gt;&lt;/a&gt; que permite comprobar si el servidor es
vulnerable y, si es el caso, explotar dicha vulnerabilidad.&lt;/p&gt;</description></item><item><title>Últimos paquetes instalados</title><link>http://karpoke.ignaciocano.com/2011/08/27/ultimos-paquetes-instalados/</link><pubDate>Sat, 27 Aug 2011 18:14:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/08/27/ultimos-paquetes-instalados/</guid><description>&lt;p&gt;En el fichero &lt;code&gt;/var/log/dpkg.log&lt;/code&gt; se registran las operaciones sobre los
paquetes que tenemos en el sistema: instalaciones, actualizaciones,
eliminaciones, etc. Para obtener una lista de los &lt;a href="http://distilledb.com/blog/archives/date/2009/06/30/getting-a-list-of-recently-installed-packages-in-ubuntu.page"&gt;últimos paquetes
instalados&lt;/a&gt; ejecutamos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ cat /var/log/dpkg.log* | grep &amp;#34; install &amp;#34; | sort
...
2011-08-24 12:11:04 install linux-image-2.6.38-11-generic-pae &amp;lt; ninguna&amp;gt; 2.6.38-11.48
2011-08-24 12:11:27 install linux-headers-2.6.38-11 &amp;lt; ninguna&amp;gt; 2.6.38-11.48
2011-08-24 12:11:33 install linux-headers-2.6.38-11-generic-pae &amp;lt; ninguna&amp;gt; 2.6.38-11.48
2011-08-26 18:25:40 install libcgal5 &amp;lt; ninguna&amp;gt; 3.6.1-2ubuntu2
2011-08-26 18:25:41 install libopencsg1 &amp;lt; ninguna&amp;gt; 1.3.1-4
2011-08-26 18:25:42 install openscad &amp;lt; ninguna&amp;gt; 2011.06-1+natty1
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Evitando el hotlinking</title><link>http://karpoke.ignaciocano.com/2011/08/16/evitando-el-hotlinking/</link><pubDate>Tue, 16 Aug 2011 14:05:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/08/16/evitando-el-hotlinking/</guid><description>&lt;p&gt;Si tenemos una página web que contiene imágenes, tarde o temprano,
alguien terminará mostrándolas en otro sitio, enlazándolas directamente
y utilizando nuestro ancho de banda. Vamos, lo que se conoce como
&lt;em&gt;hotlinking&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;La siguiente &lt;a href="http://httpd.apache.org/docs/2.3/rewrite/access.html"&gt;técnica se basa en el valor de la variable
&lt;code&gt;HTTP_REFERER&lt;/code&gt;&lt;/a&gt;, la cual es opcional, por lo que podría ser posible
saltársela. Sin embargo, la mayoría de las veces impedirá el
&lt;em&gt;hotlinking&lt;/em&gt;. Como contrapartida, si alguien pone un enlace a una
imagen, un usuario no podrá verla pulsando en el enlace, ya que el
navegador incluirá como &lt;em&gt;referer&lt;/em&gt; una URL externa y será bloqueada por
el sistema.&lt;/p&gt;</description></item><item><title>SSH over HTTP-Proxy</title><link>http://karpoke.ignaciocano.com/2011/08/15/ssh-over-http-proxy/</link><pubDate>Mon, 15 Aug 2011 04:29:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/08/15/ssh-over-http-proxy/</guid><description>&lt;p&gt;A veces, queremos poder navegar o chatear por Internet pero no queremos
que nadie pueda conocer, ni bloquear, las páginas que visitamos o espiar
nuestras conversaciones, bien porque porque estamos en el trabajo, la
universidad o en una red abierta. En la red a la que estamos conectados
puede que utilicen un &lt;em&gt;proxy&lt;/em&gt; para controlar y bloquear servicios. Este
&lt;a href="http://ha.ckers.org/trillianremote.html"&gt;bloqueo podría ser por puerto o por protocolo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Es posible que bloqueen algunas URLs, o IPs, pero seguramente tenemos
acceso a la web, es decir, los puertos 80 y 443. Crearemos un túnel
seguro para poder navegar seguros y evitar estas restricciones. Eso sí,
puede que aparezca en algún &lt;em&gt;log&lt;/em&gt; que nos hemos conectado a nuestra
máquina remota.&lt;/p&gt;</description></item><item><title>Obteniendo la IP pública, la IP privada y la dirección MAC en Bash</title><link>http://karpoke.ignaciocano.com/2011/08/14/obteniendo-la-ip-publica-la-ip-privada-y-la-direccion-mac-en-bash/</link><pubDate>Sun, 14 Aug 2011 19:26:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/08/14/obteniendo-la-ip-publica-la-ip-privada-y-la-direccion-mac-en-bash/</guid><description>&lt;p&gt;En los &lt;em&gt;scripts&lt;/em&gt; que escribimos, a menudo, es necesario conocer la IP pública
de nuestra red, o la IP privada y la dirección MAC de una interfaz de red. Con
el comando &lt;code&gt;ifconfig&lt;/code&gt; podemos conocer la información de las interfaces de red:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ ifconfig
eth0 Link encap:Ethernet direcciónHW 00:11:22:33:44:55
Direc. inet:192.168.0.30 Difus.:192.168.0.255 Másc:255.255.255.0
Dirección inet6: fe80::203:dff:fe3c:f419/64 Alcance:Enlace
ACTIVO DIFUSI–N FUNCIONANDO MULTICAST MTU:1500 Métrica:1
Paquetes RX:1627 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:1067 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:1000
Bytes RX:560137 (560.1 KB) TX bytes:235094 (235.0 KB)
Interrupción:19 Dirección base: 0xc800
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;eth1 Link encap:Ethernet direcciónHW 00:11:22:33:44:66
DIFUSI–N MULTICAST MTU:1500 Métrica:1
Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:0 errores:0 perdidos:0 overruns:0 carrier:0 colisiones:0 long.colaTX:1000
Bytes RX:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupción:21 Dirección base: 0x8000 Memoria:ffcfe000-ffcfefff
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;lo Link encap:Bucle local
Direc. inet:127.0.0.1 Másc:255.0.0.0
Dirección inet6: ::1/128 Alcance:Anfitrión
ACTIVO BUCLE FUNCIONANDO MTU:16436 Métrica:1
Paquetes RX:3299 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:3299 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:0
Bytes RX:355696 (355.6 KB) TX bytes:355696 (355.6 KB)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Sin embargo, si queremos utilizar el dato en concreto—la IP privada o la
dirección MAC—, necesitaremos trabajar un poco la salida que muestra
&lt;code&gt;ifconfig&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Utilizar SSH para establecer un servidor proxy SOCKS</title><link>http://karpoke.ignaciocano.com/2011/08/12/utilizar-ssh-para-establecer-un-servidor-proxy-socks/</link><pubDate>Fri, 12 Aug 2011 13:07:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/08/12/utilizar-ssh-para-establecer-un-servidor-proxy-socks/</guid><description>&lt;p&gt;Un &lt;em&gt;proxy&lt;/em&gt; SOCKS es un servidor que permite el acceso, normalmente, a
través de un cortafuegos. Podemos utilizar SSH para crear un &lt;em&gt;proxy&lt;/em&gt;
SOCKSv5 en local, de tal manera que si configuramos una aplicación para
que se conecte a través de este &lt;em&gt;proxy&lt;/em&gt;, todo el tráfico vaya a través
del canal seguro creado por SSH, y sea como si la conexión con dicha
aplicación se hiciera en la máquina remota a la cual nos hemos conectado
por SSH. Además, podemos utilizarlo con varias aplicaciones y diferentes
protocolos.&lt;/p&gt;</description></item><item><title>Instalación automática de las fuentes para web de Google</title><link>http://karpoke.ignaciocano.com/2011/08/07/instalacion-automatica-de-las-fuentes-para-web-de-google/</link><pubDate>Sun, 07 Aug 2011 00:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/08/07/instalacion-automatica-de-las-fuentes-para-web-de-google/</guid><description>&lt;p&gt;En &lt;a href="http://www.webupd8.org"&gt;webupd8.org&lt;/a&gt; han publicado un &lt;em&gt;script&lt;/em&gt; que permite &lt;a href="http://www.webupd8.org/2011/01/automatically-install-all-google-web.html"&gt;descargar las
fuentes para web de Google&lt;/a&gt;, o actualizarlas si ya las habíamos
descargado.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.google.com/webfonts#AboutPlace:about"&gt;Google Web Fonts&lt;/a&gt; es un proyecto que consiste en crear un repositorio
de fuentes tipográficas de calidad, libres y gratuitas, para que
cualquiera pueda utilizarlas en sus proyectos web, sin ningún tipo de
barrera, mucho menos económica.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Google Web Fonts" loading="lazy" src="http://karpoke.ignaciocano.com/images/google-web-fonts-300x199.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fuente: &lt;a href="http://googlewebfonts.blogspot.com/"&gt;googlewebfonts.blogspot.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;El &lt;em&gt;&lt;a href="http://webupd8.googlecode.com/files/install-google-fonts"&gt;script&lt;/a&gt;&lt;/em&gt; instala las fuentes en el directorio
&lt;code&gt;/usr/share/fonts/truetype/google-fonts/&lt;/code&gt;, por lo que basta eliminar
este directorio para borrarlas.&lt;/p&gt;</description></item><item><title>Servicio de SSH con sistema de verificación en dos pasos de Google en Ubuntu Natty Narwhal</title><link>http://karpoke.ignaciocano.com/2011/08/05/servicio-de-ssh-con-sistema-de-verificacion-en-dos-pasos-de-google-en-ubuntu-natty-narwhal/</link><pubDate>Fri, 05 Aug 2011 02:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/08/05/servicio-de-ssh-con-sistema-de-verificacion-en-dos-pasos-de-google-en-ubuntu-natty-narwhal/</guid><description>&lt;p&gt;Un sistema de verificación en dos pasos, (&lt;em&gt;Two Factor Authentication&lt;/em&gt; o
2FA) consiste en que la autenticación a un servicio se realiza mediante
dos piezas de información, una que conocemos y otra que no. La pieza que
conocemos es nuestra contraseña, que es susceptible de ser sustraída,
mientras que la información que no conocemos es un número de
identificación (PIN) aleatorio que cambia cada 30 segundos y que está
vinculado con un dispositivo hardware. Esto es lo que se conoce como una
contraseña de un solo uso (One Time Password u OTP). De esta forma,
aunque alguien nos robe o averigüe nuestra contraseña, a no ser que
también tenga acceso al dispositivo que crea los PINs, no podrá acceder
al servicio con nuestra cuenta.&lt;/p&gt;</description></item><item><title>sudo vacilón</title><link>http://karpoke.ignaciocano.com/2011/08/04/sudo-vacilon/</link><pubDate>Thu, 04 Aug 2011 13:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/08/04/sudo-vacilon/</guid><description>&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo passwd
[sudo] password for user:
Are you on drugs?
[sudo] password for user:
Maybe if you used more than just two fingers...
[sudo] password for user:
I’ve seen penguins that can type better than that.
sudo: 3 incorrect password attempts
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Si te gustaría recibir un piropo cada vez que &lt;a href="http://usemoslinux.blogspot.com/2011/08/sudo-no-me-insultes-el-terminal-se.html"&gt;escribes mal la
contraseña de &lt;code&gt;sudo&lt;/code&gt;&lt;/a&gt;, no
tienes más que editar el archivo de configuración de &lt;a href="http://karpoke.ignaciocano.com/posts/memo/with-great-power-comes-great-responsibility/"&gt;&lt;code&gt;sudo&lt;/code&gt;&lt;/a&gt;,
&lt;code&gt;/etc/sudoers&lt;/code&gt;, mediante el comando &lt;code&gt;visudo&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>namebench, benchmarking de servidores DNS</title><link>http://karpoke.ignaciocano.com/2011/08/01/namebench-benchmarking-de-servidores-dns/</link><pubDate>Mon, 01 Aug 2011 19:40:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/08/01/namebench-benchmarking-de-servidores-dns/</guid><description>&lt;p&gt;Mediante &lt;a href="http://code.google.com/p/namebench/"&gt;&lt;code&gt;namebench&lt;/code&gt;&lt;/a&gt; se puede comprobar la velocidad de nuestros
DNSs y compararla con los servidores DNS de Google y los mejores
servidores DNS que pueda encontrar para nuestra localización. Para
realizar las pruebas, se utiliza un listado compuesto por los dominios
más visitados según el ranking de Alexa y las páginas visitadas que se
encuentren en el historial de nuestro navegador, incluyendo a Firefox o
Chromium. Tiene la opción de poder &lt;a href="http://code.google.com/p/namebench/wiki/UsingNameBenchCommandLine"&gt;utilizarse desde el terminal&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Limitando el número de procesos por usuario</title><link>http://karpoke.ignaciocano.com/2011/08/01/limitando-el-numero-de-procesos-por-usuario/</link><pubDate>Mon, 01 Aug 2011 19:23:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/08/01/limitando-el-numero-de-procesos-por-usuario/</guid><description>&lt;p&gt;Mediante el comando &lt;code&gt;ulimit&lt;/code&gt; podemos consultar y controlar el valor de los
recursos disponibles para la consola y los &lt;a href="http://karpoke.ignaciocano.com/2010/12/16/mejora-del-rendimiento-interactivo-agrupando-tareas-por-terminal/"&gt;procesos que puedan ser iniciados
desde ella&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Las diferentes opciones que acepta este comando son:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;-a All current limits are reported
-b The maximum socket buffer size
-c The maximum size of core files created
-d The maximum size of a process’s data segment
-e The maximum scheduling priority (&amp;#34;nice&amp;#34;)
-f The maximum size of files written by the shell and its children
-i The maximum number of pending signals
-l The maximum size that may be locked into memory
-m The maximum resident set size (many systems do not honor this limit)
-n The maximum number of open file descriptors (most systems do not allow this value to be set)
-p The pipe size in 512-byte blocks (this may not be set)
-q The maximum number of bytes in POSIX message queues
-r The maximum real-time scheduling priority
-s The maximum stack size
-t The maximum amount of cpu time in seconds
-u The maximum number of processes available to a single user
-v The maximum amount of virtual memory available to the shell and, on some systems, to its children
-x The maximum number of file locks
-T The maximum number of threads
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Para consultar todos los valores asignados actualmente:&lt;/p&gt;</description></item><item><title>Controlando la actividad de los usuarios conectados</title><link>http://karpoke.ignaciocano.com/2011/08/01/controlando-la-actividad-de-los-usuarios-conectados/</link><pubDate>Mon, 01 Aug 2011 12:51:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/08/01/controlando-la-actividad-de-los-usuarios-conectados/</guid><description>&lt;p&gt;Podemos utilizar varios comandos para saber qué &lt;a href="http://karpoke.ignaciocano.com/2010/10/22/la-guardiana-de-la-puerta/"&gt;usuarios están
conectados al sistema&lt;/a&gt;, desde cuando y qué están haciendo. También
podemos saber cuando se han conectado anteriormente.&lt;/p&gt;
&lt;p&gt;También podríamos interactuar con los usuarios, enviarles mensajes,
matarles procesos, echarlos del sistema, etc, pero ahora nos vamos a
centrar en saber cuando entran, cuando salen y qué están haciendo.&lt;/p&gt;
&lt;h2 id="w"&gt;&lt;code&gt;w&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Con &lt;code&gt;w&lt;/code&gt; podemos saber que usuarios están conectados ahora mismo y que
procesos están ejecutando.&lt;/p&gt;</description></item><item><title>sslh, compartiendo el puerto 443</title><link>http://karpoke.ignaciocano.com/2011/07/30/sslh-compartiendo-el-puerto-443/</link><pubDate>Sat, 30 Jul 2011 19:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/07/30/sslh-compartiendo-el-puerto-443/</guid><description>&lt;p&gt;Podemos tener varios motivos para tener escuchando nuestro servicio de SSH en
el puerto 443. Ya sea porque queremos evitarnos los continuos intentos de
conexión que sufrimos por tener el servicio escuchando en el puerto 22 o porque
desde donde estemos, ya sea en el trabajo o en un hotel, no estén permitidas
las conexiones que no sean al puerto 80 o 443. Pero, ¿y si &lt;a href="http://dischord.org/blog/2010/08/25/multiplexing-ssh-and-ssl/"&gt;ya tenemos un
servidor web&lt;/a&gt; escuchando en el puerto 443?&lt;/p&gt;</description></item><item><title>Endianness</title><link>http://karpoke.ignaciocano.com/2011/07/30/endianness/</link><pubDate>Sat, 30 Jul 2011 17:34:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/07/30/endianness/</guid><description>&lt;p&gt;&amp;ldquo;&lt;a href="http://secure.wikimedia.org/wikipedia/es/wiki/Endianness"&gt;Endianicidad&lt;/a&gt;&amp;rdquo; designa el formato en el que se almacenan los datos
de más de un byte en un ordenador. El sistema &lt;em&gt;big-endian&lt;/em&gt; adoptado por
Motorola entre otros, consiste en representar los bytes en el orden
&amp;ldquo;natural&amp;rdquo;, así el valor hexadecimal 0x4A3B2C1D se codificaría en memoria
en la secuencia {4A, 3B, 2C, 1D}. En el sistema &lt;em&gt;little-endian&lt;/em&gt; adoptado
por Intel, entre otros, el mismo valor se codificaría como {1D, 2C, 3B,
4A}, de manera que de este modo se hace más intuitivo el acceso a datos,
porque se efectúa fácilmente de manera incremental de menos relevante a
más relevante (siempre se opera con incrementos de contador en la
memoria).&lt;/p&gt;</description></item><item><title>Salvapantallas con el código fuente del kernel</title><link>http://karpoke.ignaciocano.com/2011/07/28/salvapantallas-con-el-codigo-fuente-del-kernel/</link><pubDate>Thu, 28 Jul 2011 12:42:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/07/28/salvapantallas-con-el-codigo-fuente-del-kernel/</guid><description>&lt;p&gt;Si queremos que cada vez que aparezca el salvapantallas, lo haga
mostrando algunas líneas del código fuente del &lt;em&gt;kernel&lt;/em&gt; por pantalla,
sólo necesitamos configurar el salvapantallas &lt;code&gt;phosphor&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Phosphor" loading="lazy" src="http://karpoke.ignaciocano.com/images/phosphor-300x178.png"&gt;&lt;/p&gt;
&lt;p&gt;Lo primero es instalar el código fuente del &lt;code&gt;kernel&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo apt-get source linux-source-$(uname -r)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;El comando &lt;code&gt;uname&lt;/code&gt; muestra información acerca del sistema operativo
instalado, la versión del kernel, la familia del procesador, el nombre
de la máquina o la plataforma. En mi caso, uso un kernel PAE, porque
tengo una Ubuntu de 32 bits y 4 GB de RAM, por lo que el comando
anterior no me ha ido del todo bien:&lt;/p&gt;</description></item><item><title>¿Un keylogger en Ubuntu?</title><link>http://karpoke.ignaciocano.com/2011/07/22/un-keylogger-en-ubuntu/</link><pubDate>Fri, 22 Jul 2011 04:35:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/07/22/un-keylogger-en-ubuntu/</guid><description>&lt;p&gt;El comando &lt;code&gt;xinput&lt;/code&gt; permite configurar y probar dispositivos de entrada
para las XWindow. Podemos obtener un listado de los dispositivos de
entrada:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=15 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Laptop_Integrated_Webcam_2M id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
↳ Dell WMI hotkeys id=13 [slave keyboard (3)]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;También podemos obtener más información de algún dispositivo en
concreto, por ejemplo, del teclado, cuyo identificador, en mi caso, es
el 11:&lt;/p&gt;</description></item><item><title>Instalar módulos de CPAN usando CPAN</title><link>http://karpoke.ignaciocano.com/2011/07/22/instalar-modulos-de-cpan-usando-cpan/</link><pubDate>Fri, 22 Jul 2011 02:45:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/07/22/instalar-modulos-de-cpan-usando-cpan/</guid><description>&lt;p&gt;Una de las razones para querer instalar módulos del repositorio CPAN de
Perl utilizando, a su vez, el módulo &lt;code&gt;cpan&lt;/code&gt;, es que los módulos están
más actualizados que en los paquetes de los repositorios. Para
conseguirlo, podemos seguir los siguientes pasos&lt;/p&gt;
&lt;p&gt;Necesitamos tener instalado el paquete &lt;code&gt;build-essential&lt;/code&gt;. Lanzamos la
consola CPAN, con &lt;a href="http://www.troubleshooters.com/codecorn/littperl/perlcpan.htm"&gt;privilegios de administrador&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo perl -MCPAN -e shell
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;o también podríamos ejecutar:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo cpan
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Si no tuviéramos permisos, parece que también es posible &lt;a href="http://perl.jonallen.info/writing/articles/install-perl-modules-without-root"&gt;instalar
módulos de Perl sin tener privilegios de administrador&lt;/a&gt;, mediante el
módulo &lt;code&gt;local::lib&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Instalar Google Earth en Ubuntu Natty Narwhal</title><link>http://karpoke.ignaciocano.com/2011/07/15/instalar-google-earth-en-ubuntu-natty-narwhal/</link><pubDate>Fri, 15 Jul 2011 15:46:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/07/15/instalar-google-earth-en-ubuntu-natty-narwhal/</guid><description>&lt;p&gt;Ésta es la única manera en que me ha funcionado. Nada de &lt;a href="http://www.google.com/earth/download/ge/agree.html"&gt;bajar el &lt;code&gt;.deb&lt;/code&gt;&lt;/a&gt;
de su página—además de que, ahora mismo, baja el fichero
&lt;a href="http://mizaq.blogspot.com/2011/07/instalar-google-earth-en-ubuntu-1010.html"&gt;GoogleEarthLinux.bin&lt;/a&gt;—, ni &lt;a href="http://help.ubuntu.com/community/GoogleEarth#Using%20make-googleearth-package"&gt;googleearth-package&lt;/a&gt;, ni
&lt;a href="http://help.ubuntu.com/community/GoogleEarth#Installing%20the%20.deb%20file%20downloaded%20from%20the%20Google%20Earth%20Website"&gt;gdebi&lt;/a&gt;, ni &lt;a href="http://www.google.com/support/forum/p/earth/thread?tid=6f59e15bf811d4e2&amp;amp;hl=en"&gt;nada&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Google Earth" loading="lazy" src="http://karpoke.ignaciocano.com/images/google-earth-300x178.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.udp.cl/instalar-google-earth-6012032-beta-en-ubuntu-1010-maverick"&gt;Bajamos el paquete estable&lt;/a&gt; y lo instalamos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ wget https://dl-ssl.google.com/linux/direct/google-earth-stable_current_i386.deb
$ sudo dpkg -i google-earth-stable_current_i386.deb
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Es posible que necesitemos el paquete &lt;code&gt;lsb-core&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo aptitude install lsb-core
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Si las fuentes de la interfaz gráfica se ven realmente mal, instalamos
las fuentes de Microsoft (ADV).&lt;/p&gt;</description></item><item><title>Copia de seguridad de GMail con getmail</title><link>http://karpoke.ignaciocano.com/2011/07/08/copia-de-seguridad-de-gmail-con-getmail/</link><pubDate>Fri, 08 Jul 2011 15:52:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/07/08/copia-de-seguridad-de-gmail-con-getmail/</guid><description>&lt;p&gt;Hay otras maneras de realizar una &lt;a href="http://www.mattcutts.com/blog/backup-gmail-in-linux-with-getmail/"&gt;copia de seguridad de GMail&lt;/a&gt;, como
por ejemplo, usar Thunderbird, pero utilizar &lt;code&gt;getmail&lt;/code&gt; tiene la ventaja
de que es sencillo, puede realizar la copia en formato Maildir y no
necesitamos utilizar ningún gestor de correo electrónico.&lt;/p&gt;
&lt;h2 id="maildir-y-mbox"&gt;Maildir y mbox&lt;/h2&gt;
&lt;p&gt;Básicamente, en GNU/Linux hay dos maneras de guardar el correo
electrónico, &lt;a href="http://www.linuxmail.info/mbox-maildir-mail-storage-formats/"&gt;Maildir y mbox&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="maildir"&gt;Maildir&lt;/h3&gt;
&lt;p&gt;Cada correo se guarda en un fichero por separado. Añadir, buscar y
eliminar correos es rápido, no se necesita bloqueo en ninguna operación,
se puede usar en sistemas de ficheros de red y no hay corrupción
(exceptuando fallos de hardware). El inconveniente viene dado porque
algunos sistemas de ficheros no gestionan eficientemente grandes
cantidades de ficheros pequeños, además de que la búsqueda de texto, que
requiere abrir todos los ficheros puede ser lenta.&lt;/p&gt;</description></item><item><title>Cambiar la contraseña de administrador en MySQL 5.1</title><link>http://karpoke.ignaciocano.com/2011/07/08/cambiar-la-contrasena-de-administrador-en-mysql-5-1/</link><pubDate>Fri, 08 Jul 2011 04:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/07/08/cambiar-la-contrasena-de-administrador-en-mysql-5-1/</guid><description>&lt;p&gt;Para &lt;a href="http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html#resetting-permissions-generic"&gt;cambiar la contraseña de administrador en MySQL&lt;/a&gt; podemos iniciar
el servicio utilizando los argumentos &lt;code&gt;--skip-grant-tables&lt;/code&gt;, que permite
iniciar el servicio sin tener en cuenta los privilegios del sistema, por
lo que no es seguro, y el flag &lt;code&gt;--skip-networing&lt;/code&gt;, que deshabilita las
conexiones remotas pero no se lo impide a las locales, que seguirán
teniendo acceso y lo harán como &lt;code&gt;root&lt;/code&gt;, por lo que tampoco es seguro.
Antes de ver cómo podemos hacerlo de otra manera, veremos cómo hacerlo
con este método, que funciona siempre.&lt;/p&gt;</description></item><item><title>Cifrar una partición o un disco duro externo</title><link>http://karpoke.ignaciocano.com/2011/07/08/cifrar-una-particion-o-un-disco-duro-externo/</link><pubDate>Fri, 08 Jul 2011 02:48:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/07/08/cifrar-una-particion-o-un-disco-duro-externo/</guid><description>&lt;p&gt;Tenemos &lt;a href="http://conocimientoabierto.es/traducir-automaticamente-ficheros-po/207/"&gt;un disco duro externo y queremos cifrarlo&lt;/a&gt;. El comando
&lt;code&gt;cryptsetup&lt;/code&gt;, que se encuentra en los repositorios, hace uso de
DM-Crypt, que es la parte del kernel que se encarga del cifrado de
discos, y LUKS, un estándar independiente de la plataforma y del
software para acceder a volúmenes cifrados.&lt;/p&gt;
&lt;h2 id="requisitos"&gt;Requisitos&lt;/h2&gt;
&lt;p&gt;El primer paso, después de instalar el comando, es tener claro qué
dispositivo es nuestro disco duro. Un vistazo mediante &lt;code&gt;fdisk&lt;/code&gt; debería
ser suficiente. Además, si está montado, lo desmontamos.&lt;/p&gt;</description></item><item><title>I do not want to be tracked</title><link>http://karpoke.ignaciocano.com/2011/07/02/i-do-not-want-to-be-tracked/</link><pubDate>Sat, 02 Jul 2011 14:01:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/07/02/i-do-not-want-to-be-tracked/</guid><description>&lt;p&gt;&lt;img alt="firefox-preferences-privacy-tracking" loading="lazy" src="http://karpoke.ignaciocano.com/images/firefox-preferences-privacy-tracking-300x72.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Firefox &amp;gt; Menú Editar &amp;gt; Preferencias &amp;gt; Privacidad &amp;gt; No deseo ser
rastreado&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Un pequeño listado de &lt;a href="http://usemoslinux.blogspot.com/2011/07/las-5-mejores-extensiones-de-firefox.html"&gt;complementos para Firefox para proteger nuestra
privacidad&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;» &lt;a href="http://addons.mozilla.org/es-ES/firefox/addon/noscript/"&gt;No-Script&lt;/a&gt;, bloquea la ejecución de Javascript, Java, Flash,&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Silverlight y otros
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;» &lt;a href="http://addons.mozilla.org/es-ES/firefox/addon/ghostery/"&gt;Ghostery&lt;/a&gt;, bloquea aquellos servicios que recolectan información&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;privada y del comportamiento del usuario
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;» &lt;a href="http://addons.mozilla.org/es-ES/firefox/addon/betterprivacy/"&gt;BetterPrivacy&lt;/a&gt;, bloquea las cookies de Flash
» &lt;a href="http://addons.mozilla.org/en-US/firefox/addon/foxyproxy-standard/contribute/roadblock/?src=browse&amp;amp;version=3.0.1"&gt;Foxy Proxy&lt;/a&gt;, permite cambiar entre &lt;em&gt;proxies&lt;/em&gt; basándose en reglas&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;y de forma automática
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;» &lt;a href="http://addons.mozilla.org/es-ES/firefox/addon/duck-duck-go-ssl-search-plugin/"&gt;DuckDuckGo&lt;/a&gt;, incluye al buscador &lt;a href="http://duckduckgo.com/"&gt;DuckDuckGo&lt;/a&gt;, el cual&lt;/p&gt;</description></item><item><title>Extraer un archivo de un archivo comprimido, desde el terminal</title><link>http://karpoke.ignaciocano.com/2011/06/30/extraer-un-archivo-de-un-archivo-comprimido-desde-el-terminal/</link><pubDate>Thu, 30 Jun 2011 20:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/06/30/extraer-un-archivo-de-un-archivo-comprimido-desde-el-terminal/</guid><description>&lt;p&gt;Un día estás editando un archivo en un servidor remoto, &lt;a href="http://karpoke.ignaciocano.com/2011/06/17/compartiendo-una-conexion-por-ssh/"&gt;por &lt;code&gt;ssh&lt;/code&gt;&lt;/a&gt;,
y, a la hora de guardar, te das cuenta de que has editado el fichero sin
tener los privilegios suficientes, por lo que &lt;code&gt;vim&lt;/code&gt; se queja:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;E505: &amp;#34;app.config&amp;#34; is read-only (add ! to override)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;La solución es sencilla, para guardarlo como &lt;code&gt;root&lt;/code&gt; escribes:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;:w !sudo tee %
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;O eso creías. De repente, te das cuenta de que eso no es lo que has
escrito, porque &lt;code&gt;vim&lt;/code&gt; se ha puesto en modo &lt;em&gt;inferno&lt;/em&gt;, y cada tecla que
pulsas le da vida propia, porque hace exactamente lo que le dices que
haga y no lo que realmente quieres que haga, y cuando pasa la tormenta y
vuelves a editar el fichero, sólo contiene:&lt;/p&gt;</description></item><item><title>Variables variables en Bash</title><link>http://karpoke.ignaciocano.com/2011/06/29/variables-variables-en-bash/</link><pubDate>Wed, 29 Jun 2011 12:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/06/29/variables-variables-en-bash/</guid><description>&lt;p&gt;Las variables variables se utilizan cuando queremos tener nombres de
variables que puedan usarse y modificarse de forma dinámica. &lt;a href="http://php.net/manual/en/language.variables.variable.php"&gt;PHP
permite su uso&lt;/a&gt; de forma directa:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;?php
$a = &amp;#39;hello&amp;#39;;
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Una variable variable toma el valor de una variable y lo usa para el
nombre de la variable. Podemos utilizar &amp;ldquo;hello&amp;rdquo; como nombre de variable
utilizando dos signos de dólar:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;?php
$$a = &amp;#39;world&amp;#39;;
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En este punto tenemos dos variables, &lt;code&gt;$a&lt;/code&gt; que contiene &amp;ldquo;hello&amp;rdquo; y
&lt;code&gt;$hello&lt;/code&gt; que contiene &amp;ldquo;world&amp;rdquo;. Así, las siguientes instrucciones
escriben &amp;ldquo;hello world&amp;rdquo;:&lt;/p&gt;</description></item><item><title>Identificando los plugins de WordPress instalados</title><link>http://karpoke.ignaciocano.com/2011/06/20/identificando-los-plugins-de-wordpress-instalados/</link><pubDate>Mon, 20 Jun 2011 20:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/06/20/identificando-los-plugins-de-wordpress-instalados/</guid><description>&lt;p&gt;Hay un &lt;em&gt;script&lt;/em&gt; para &lt;code&gt;nmap&lt;/code&gt;, &lt;a href="http://seclists.org/nmap-dev/2011/q1/att-806/http-wp-plugins.nse"&gt;http-wp-plugins&lt;/a&gt;, que permite &lt;a href="http://blog.alexos.com.br/?p=2302"&gt;detectar
los complementos instalados en WordPress&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Dicho &lt;em&gt;script&lt;/em&gt; intenta acceder a los directorios de los complementos en
&lt;code&gt;wp-content/plugins/&lt;/code&gt; con la ayuda de un &lt;a href="http://seclists.org/nmap-dev/2011/q1/att-806/wp-plugins_lst_tar.gz"&gt;diccionario&lt;/a&gt;. Si la
respuesta no es un error 404 interpreta que el directorio, y por tanto
el complemento, existe. La lista de complementos para WordPress es extensa,
casi 13405 entradas, y podría llevar bastante tiempo analizarlas todas,
por lo que las entradas están ordenadas por popularidad y por defecto
sólo se escanean las 100 primeras.&lt;/p&gt;</description></item><item><title>Secuencias de escape en SSH</title><link>http://karpoke.ignaciocano.com/2011/06/18/secuencias-de-escape-en-ssh/</link><pubDate>Sat, 18 Jun 2011 19:44:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/06/18/secuencias-de-escape-en-ssh/</guid><description>&lt;p&gt;Secuencias de escape en SSH:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;user@remotehost:~$ ~?
Supported escape sequences:
~. - terminate connection (and any multiplexed sessions)
~B - send a BREAK to the remote system
~C - open a command line
~R - Request rekey (SSH protocol 2 only)
~^Z - suspend ssh
~# - list forwarded connections
~&amp;amp; - background ssh (when waiting for connections to terminate)
~? - this message
~~ - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;La primera, &lt;code&gt;~.&lt;/code&gt;, se puede utilizar para &lt;a href="http://www.commandlinefu.com/commands/view/8665/control-ssh-connection"&gt;cerrar la sesión cuando se nos
queda colgada&lt;/a&gt;, por ejemplo, al reiniciar la máquina remota.&lt;/p&gt;</description></item><item><title>Yo #soy15m</title><link>http://karpoke.ignaciocano.com/2011/06/18/yo-soy15m/</link><pubDate>Sat, 18 Jun 2011 18:53:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/06/18/yo-soy15m/</guid><description>&lt;p&gt;Como parte del #15m me declaro una persona pacífica y condeno
radicalmente todo tipo de violencia: la de los violentos infiltrados en
nuestras manifestaciones, y la del Estado, que ha causado más dolor y
heridos. Además, condeno la manipulación mediática que enfatiza la
información sesgada, parcial o errónea con el propósito de demonizar a
los ciudadanos.&lt;/p&gt;
&lt;p&gt;Si me manifiesto en la calle es porque:&lt;/p&gt;
&lt;p&gt;-Mi participación como ciudadano se ha reducido a votar a listas
cerradas cada cuatro años para ver cómo los representantes de los
ciudadanos no respetan lo prometido en su programa.&lt;/p&gt;</description></item><item><title>Compartiendo una conexión por SSH</title><link>http://karpoke.ignaciocano.com/2011/06/17/compartiendo-una-conexion-por-ssh/</link><pubDate>Fri, 17 Jun 2011 15:28:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/06/17/compartiendo-una-conexion-por-ssh/</guid><description>&lt;p&gt;A partir de la versión 4 de OpenSSH se pueden &lt;a href="http://protempore.net/~calvins/howto/ssh-connection-sharing/"&gt;compartir las conexiones
seguras&lt;/a&gt; a un máquina remota, de tal manera que, una vez establecida
la primera conexión, el resto de conexiones reutilizan la primera, por
lo que el establecimiento de la conexión de éstas será mucho más rápido.&lt;/p&gt;
&lt;h2 id="configuración"&gt;Configuración&lt;/h2&gt;
&lt;p&gt;Lo primero es asegurarnos de que existe el directorio &lt;code&gt;~/.ssh&lt;/code&gt; en el
cliente, con permisos 700 (sólo accesible por nosotros mismos&amp;hellip; y
cualquier administrador).&lt;/p&gt;</description></item><item><title>Conectarse por SSH utilizando expect</title><link>http://karpoke.ignaciocano.com/2011/06/17/conectarse-por-ssh-utilizando-expect/</link><pubDate>Fri, 17 Jun 2011 14:59:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/06/17/conectarse-por-ssh-utilizando-expect/</guid><description>&lt;p&gt;&lt;code&gt;expect&lt;/code&gt; es un comando que &amp;ldquo;habla&amp;rdquo; con otros programas interactivos. Se
definen unas reglas en función de lo que esperamos que nos digan esos
programas y lo que queremos contestar.&lt;/p&gt;
&lt;p&gt;Un típico ejemplo es realizar una conexión a un servicio de FTP o SSH, y
utilizar &lt;code&gt;expect&lt;/code&gt; para que introduzca la contraseña por nosotros y lleve
a cabo diferentes acciones. La ventaja que tiene es que podemos
automatizar acciones en esos servicios. El gran inconveniente es que, si
esos servicios requieren autenticación, deberemos escribir la
contraseña, ya sea en un &lt;em&gt;script&lt;/em&gt; o directamente en el terminal,
pudiendo quedar reflejada en el historial. (Dependiendo de la
configuración, si incluimos espacios antes de ejecutar un comando, éste
no queda reflejado en el historial).&lt;/p&gt;</description></item><item><title>Encontrar los dominios que comparten IP con otro dado</title><link>http://karpoke.ignaciocano.com/2011/06/14/encontrar-los-dominios-que-comparten-ip-con-otro-dado/</link><pubDate>Tue, 14 Jun 2011 21:34:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/06/14/encontrar-los-dominios-que-comparten-ip-con-otro-dado/</guid><description>&lt;p&gt;Éste es algo viejuno, pero lo no había probado. Se trata del &lt;em&gt;script&lt;/em&gt;
&lt;code&gt;bing-ip2hosts&lt;/code&gt;, que permite &lt;a href="http://seifreed.com/2010/04/10/enumerar-todos-los-host-en-dominio-con-la-direccin-ip-bing/"&gt;encontrar los dominios que comparten IP&lt;/a&gt;
con un dominio dado utilizando Bing:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ ./bing-ip2hosts -p ubuntu.com
http://brainstorm.ubuntu.com
http://kubuntu.org
http://search.ubuntu.com
http://www.ubuntu.com
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Con el argumento &lt;code&gt;-p&lt;/code&gt; se incluye el prefijo &lt;code&gt;http://&lt;/code&gt;, lo cual viene bien
para poder clicar directamente en el terminal.&lt;/p&gt;
&lt;p&gt;Este &lt;em&gt;script&lt;/em&gt; utiliza el comando &lt;code&gt;resolveip&lt;/code&gt; para encontrar la IP del
dominio dado:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ resolveip google.com
IP address of google.com is 209.85.146.147
IP address of google.com is 209.85.146.99
IP address of google.com is 209.85.146.104
IP address of google.com is 209.85.146.106
IP address of google.com is 209.85.146.103
IP address of google.com is 209.85.146.105
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;$ resolveip -s google.com
209.85.229.147
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Y parsea los resultados del buscador Bing pasándole como parámetro la IP
recién obtenida:&lt;/p&gt;</description></item><item><title>Usando una conexión segura en el panel de control de Wordpress</title><link>http://karpoke.ignaciocano.com/2011/06/14/usando-una-conexion-segura-en-el-panel-de-control-de-wordpress/</link><pubDate>Tue, 14 Jun 2011 14:17:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/06/14/usando-una-conexion-segura-en-el-panel-de-control-de-wordpress/</guid><description>&lt;p&gt;Si tenemos &lt;a href="http://karpoke.ignaciocano.com/2010/12/30/la-infame-actualizacion-de-wordpress-en-15-segundos/"&gt;instalado un WordPress&lt;/a&gt; y queremos &lt;a href="http://rackerhacker.com/2009/07/31/requiring-ssl-encryption-for-wordpress-administration/"&gt;iniciar sesión a
través de una conexión segura&lt;/a&gt;, deberemos modificar el fichero
&lt;code&gt;/usr/share/wordpress/wp-config.php&lt;/code&gt; y añadir:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;define(&amp;#39;FORCE_SSL_LOGIN&amp;#39;, true);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Si queremos que se use la conexión segura en todo el panel de control,
en lugar de lo anterior, añadiremos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;define(&amp;#39;FORCE_SSL_ADMIN&amp;#39;, true);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Para que esto funcione, es necesario que &lt;a href="http://karpoke.ignaciocano.com/2011/06/14/configurar-apache-para-servir-conexiones-seguras/"&gt;Apache esté configurado para
servir conexiones seguras&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="actualización-a-13-de-julio-de-2013"&gt;Actualización a 13 de julio de 2013&lt;/h4&gt;
&lt;p&gt;Si hemos iniciado sesión y navegamos por nuestra página web, deberíamos
asegurarnos de que seguimos usando una conexión segura, ya que estamos
enviando nuestra &lt;em&gt;cookie&lt;/em&gt; de sesión y alguien en la misma red podría
llegar a capturarla si no es así.&lt;/p&gt;</description></item><item><title>Configurar Apache para servir conexiones seguras</title><link>http://karpoke.ignaciocano.com/2011/06/14/configurar-apache-para-servir-conexiones-seguras/</link><pubDate>Tue, 14 Jun 2011 14:13:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/06/14/configurar-apache-para-servir-conexiones-seguras/</guid><description>&lt;p&gt;Si tenemos Apache, y queremos configurarlo para que se pueda navegar de
forma segura por nuestro sitio utilizando el protocolo HTTPS,
necesitamos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;crear las claves que se utilizarán para cifrar la conexión,&lt;/li&gt;
&lt;li&gt;configurar &lt;code&gt;mod_ssl&lt;/code&gt;, el módulo de Apache para usar conexiones&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;seguras,
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;y permitir la conexión por el puerto 443.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="crear-las-claves-de-cifrado"&gt;Crear las claves de cifrado&lt;/h2&gt;
&lt;p&gt;Vamos a generar un par de claves RSA triple DES de 2048 bits en el
directorio &lt;code&gt;/etc/ssl&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>UnicodeDecodeError con Wapiti</title><link>http://karpoke.ignaciocano.com/2011/05/28/unicodedecodeerror-con-wapiti/</link><pubDate>Sat, 28 May 2011 17:32:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/05/28/unicodedecodeerror-con-wapiti/</guid><description>&lt;p&gt;&lt;a href="http://wapiti.sourceforge.net/"&gt;Wapiti&lt;/a&gt; es un escáner de vulnerabilidades web basado en
&lt;a href="http://omniumpotentior.wordpress.com/2011/05/18/fuzzing-web-con-wapiti/"&gt;&lt;em&gt;fuzzing&lt;/em&gt;&lt;/a&gt;. En la última versión, &lt;a href="http://wapiti.sourceforge.net/README"&gt;2.2.1&lt;/a&gt;, permite detectar
vulnerabilidades referente a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Errores de gestión de ficheros (include/require local y remoto,&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;fopen, readfile...)
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;Database Injection (PHP/JSP/ASP SQL Injections y XPath Injections)&lt;/li&gt;
&lt;li&gt;XSS (Cross Site Scripting) Injection&lt;/li&gt;
&lt;li&gt;LDAP Injection&lt;/li&gt;
&lt;li&gt;Command Execution detection (eval(), system(), passtru()&amp;hellip;)&lt;/li&gt;
&lt;li&gt;CRLF Injection (HTTP Response Splitting, session fixation&amp;hellip;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sin embargo, si usamos Ubuntu Natty Narwhal, la versión de los
repositorios es la 1.1.6, por lo que es posible que nos encontremos el
siguiente error al escanear páginas que contengan &lt;a href="http://wiki.python.org/moin/UnicodeDecodeError"&gt;caracteres no
ASCII&lt;/a&gt;. Por ejemplo:&lt;/p&gt;</description></item><item><title>¿Dónde está el site-packages?</title><link>http://karpoke.ignaciocano.com/2011/05/28/donde-esta-el-site-packages/</link><pubDate>Sat, 28 May 2011 16:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/05/28/donde-esta-el-site-packages/</guid><description>&lt;p&gt;&lt;a href="http://docs.djangoproject.com/en/dev/topics/install/?from=olddocs#remove-any-old-versions-of-django"&gt;Nota&lt;/a&gt; mental:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ python -c &amp;#34;from distutils.sysconfig import get_python_lib; print get_python_lib()&amp;#34;
/usr/lib/python2.7/dist-packages
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="ligeramente-relacionado"&gt;Ligeramente relacionado&lt;/h2&gt;
&lt;p&gt;» &lt;a href="http://karpoke.ignaciocano.com/2011/03/27/creando-y-leyendo-codigos-qr-desde-python/"&gt;Creando y leyendo códigos QR desde Python&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A lo mejor, si el intérprete de Python no encuentra un paquete es que no
está donde debería&amp;hellip; :facepalm:&lt;/p&gt;</description></item><item><title>Mejorando la seguridad de Apache con Varnish</title><link>http://karpoke.ignaciocano.com/2011/05/26/mejorando-la-seguridad-de-apache-con-varnish/</link><pubDate>Thu, 26 May 2011 19:39:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/05/26/mejorando-la-seguridad-de-apache-con-varnish/</guid><description>&lt;p&gt;&lt;a href="http://www.varnish-cache.org/docs/2.1/"&gt;Varnish&lt;/a&gt; es un acelerador web, que puede ser utilizado tanto para
cachear contenido estático de nuestro servidor, para balancear la carga
o &lt;a href="http://www.howtoforge.com/putting-varnish-in-front-of-apache-on-ubuntu-debian"&gt;para incrementar la seguridad&lt;/a&gt;, por ejemplo, bloqueando cierto tipo
de peticiones u ocultando cierto tipo de información.&lt;/p&gt;
&lt;p&gt;Se instala directamente de los repositorios:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo aptitude install varnish
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ahora lo configuraremos para utilizarlo como capa intermedia, delante de
nuestro Apache. Editamos el fichero &lt;code&gt;/etc/default/varnish&lt;/code&gt; y cambiamos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;DAEMON_OPTS=&amp;#34;-a :6081
-T localhost:6082
-f /etc/varnish/default.vcl
-S /etc/varnish/secret
-s file,/var/lib/varnish/$INSTANCE/varnish_storage.bin,1G&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;por:&lt;/p&gt;</description></item><item><title>localepurge</title><link>http://karpoke.ignaciocano.com/2011/05/25/localepurge/</link><pubDate>Wed, 25 May 2011 10:44:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/05/25/localepurge/</guid><description>&lt;p&gt;&lt;code&gt;localepurge&lt;/code&gt; es una herramienta que elimina los archivos de traducción
que no necesitemos. Después de instalarlo, nos pedirá que &lt;a href="http://www.guia-ubuntu.org/index.php?title=Localepurge"&gt;seleccionemos
qué idiomas queremos conservar&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;en_US&lt;/li&gt;
&lt;li&gt;en_US.ISO-8859-15&lt;/li&gt;
&lt;li&gt;en_US.UTF-8&lt;/li&gt;
&lt;li&gt;es&lt;/li&gt;
&lt;li&gt;es_ES&lt;/li&gt;
&lt;li&gt;es_ES@euro&lt;/li&gt;
&lt;li&gt;es_ES.UTF-8&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Después de instalarlo, lo ejecutamos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo localepurge
Total disk space freed by localepurge: 26552 KiB
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Cada vez que instalemos un nuevo paquete de los respositorios se
ejecutará automáticamente, por lo que no tendremos que volver a
preocuparnos.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="actualización-a-17-de-marzo-de-2013"&gt;Actualización a 17 de marzo de 2013&lt;/h4&gt;
&lt;p&gt;Acabo de encontrar una anotación interesante en el blog del &lt;a href="http://crysol.org/es/node/1696"&gt;crysol&lt;/a&gt;.
En lugar de eliminar las traducciones que no nos interesan, podemos,
directamente, evitar descargarlas. Editamos el fichero
&lt;code&gt;/etc/apt/apt.conf.d/99Translations&lt;/code&gt;, y añadimos lo que necesitemos, por
ejemplo:&lt;/p&gt;</description></item><item><title>0.999...=1</title><link>http://karpoke.ignaciocano.com/2011/05/18/0-coma-9-periodo-igual-1/</link><pubDate>Wed, 18 May 2011 14:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/05/18/0-coma-9-periodo-igual-1/</guid><description>&lt;div&gt;
$$
\begin{align*}
\frac{1}{3} &amp;= 0.\stackrel{\frown}{3} \\
\frac{1}{3} &amp;= 0.333\dots \\
3 \cdot \frac{1}{3} &amp;= 3 \cdot 0.333\dots \\
1 &amp;= 0.999\dots \\
1 &amp;= 0.\stackrel{\frown}{9}
\end{align*}
$$
&lt;/div&gt;</description></item><item><title>0!=1!</title><link>http://karpoke.ignaciocano.com/2011/05/18/0-factorial-igual-1-factorial/</link><pubDate>Wed, 18 May 2011 14:07:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/05/18/0-factorial-igual-1-factorial/</guid><description>&lt;div&gt;
$$
\begin{align*}
n! &amp;= n \cdot (n-1) \cdot (n-2) \cdots 3 \cdot 2 \cdot 1 \\
n! &amp;= n \cdot (n-1)! \\
(n-1)! &amp;= \frac{n!}{n}
\end{align*}
$$
&lt;/div&gt;
&lt;p&gt;Si &lt;a href="http://www.adonald.btinternet.co.uk/Factor/Zero.html"&gt;tomamos&lt;/a&gt; $n=1$:&lt;/p&gt;
&lt;div&gt;
$$
\begin{align*}
(1-1)! &amp;= \frac{1!}{1} \\
0! &amp;= 1
\end{align*}
$$
&lt;/div&gt;</description></item><item><title>Aplicaciones en el área de notificación de Ubuntu Natty Narwhal</title><link>http://karpoke.ignaciocano.com/2011/05/12/aplicaciones-en-el-area-de-notificacion-de-ubuntu-natty-narwhal/</link><pubDate>Thu, 12 May 2011 11:57:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/05/12/aplicaciones-en-el-area-de-notificacion-de-ubuntu-natty-narwhal/</guid><description>&lt;p&gt;Con la llegada de la nueva Ubuntu, se ha cambiado el área de
notificación por una &lt;a href="http://pricklytech.wordpress.com/2011/04/30/ubuntu-11-4-natty-customizing-the-notification-area-in-unity/"&gt;nueva API&lt;/a&gt;. Para las aplicaciones que todavía no
se han adaptado, se ha habilitado una lista blanca de aplicaciones que
pueden utilizar la antigua área de notificación, hasta que se
actualicen.&lt;/p&gt;
&lt;p&gt;Para ver qué aplicaciones hay en la lista:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ gsettings get com.canonical.Unity.Panel systray-whitelist
[&amp;#39;JavaEmbeddedFrame&amp;#39;, &amp;#39;Mumble&amp;#39;, &amp;#39;Wine&amp;#39;, &amp;#39;Skype&amp;#39;, &amp;#39;hp-systray&amp;#39;, &amp;#39;scp-dbus-service&amp;#39;]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Para añadir una aplicación, por ejemplo, &lt;code&gt;dropbox&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Copiar un directorio excluyendo los archivos de una clase</title><link>http://karpoke.ignaciocano.com/2011/05/11/copiar-un-directorio-excluyendo-los-archivos-de-una-clase/</link><pubDate>Wed, 11 May 2011 21:09:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/05/11/copiar-un-directorio-excluyendo-los-archivos-de-una-clase/</guid><description>&lt;p&gt;Si queremos copiar un directorio pero no queremos que se copien los
archivos &lt;code&gt;.svn&lt;/code&gt;, o &lt;code&gt;.dropbox&lt;/code&gt;, podemos ejecutar:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ rsync -r --exclude=.dropbox /path/source/dir /path/destination
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Nombres de fichero con espacios en Bash</title><link>http://karpoke.ignaciocano.com/2011/05/11/nombres-de-fichero-con-espacios-en-bash/</link><pubDate>Wed, 11 May 2011 20:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/05/11/nombres-de-fichero-con-espacios-en-bash/</guid><description>&lt;p&gt;Si queremos recorrer un directorio y hacer algo con cada fichero o
subdirectorio contenido en él, podemos ejecutar algo como:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ for f in *; do
echo &amp;#34;$f&amp;#34;;
done
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En lugar de utilizar un &lt;code&gt;for&lt;/code&gt;, también podríamos usar el comando &lt;code&gt;find&lt;/code&gt;
con el parámetro &lt;code&gt;exec&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ find . -maxdepth 1 \( -name &amp;#39;*&amp;#39; ! -name &amp;#39;.&amp;#39; \) -exec echo {} \;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;O en lugar del &lt;code&gt;exec&lt;/code&gt; con un &lt;code&gt;while&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ find . -maxdepth 1 \( -name &amp;#39;*&amp;#39; ! -name &amp;#39;.&amp;#39; \) | while read f; do
echo &amp;#34;$f&amp;#34;;
done
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Un par de cosas:&lt;/p&gt;</description></item><item><title>Recuperar los datos guardados en una sesión livecd</title><link>http://karpoke.ignaciocano.com/2011/05/11/recuperar-los-datos-guardados-en-una-sesion-livecd/</link><pubDate>Wed, 11 May 2011 19:28:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/05/11/recuperar-los-datos-guardados-en-una-sesion-livecd/</guid><description>&lt;p&gt;Si habíamos estado trabajando en una sesión &lt;em&gt;livecd&lt;/em&gt;, más tarde podemos
&lt;a href="http://www.portalubuntu.com/2011/05/como-recuperar-los-archivos-guardados.html"&gt;recuperar los datos que hayamos guardado en dicha sesión&lt;/a&gt; montando el
&lt;em&gt;usb&lt;/em&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo mount /media/miusb/casper.rw /mnt -o loop
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Comprobar a dónde nos lleva un enlace corto</title><link>http://karpoke.ignaciocano.com/2011/05/07/comprobar-a-donde-nos-lleva-un-enlace-corto/</link><pubDate>Sat, 07 May 2011 12:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/05/07/comprobar-a-donde-nos-lleva-un-enlace-corto/</guid><description>&lt;p&gt;Un enlace corto es útil, por ejemplo, para incluir la dirección de una
página web en servicios como &lt;a href="http://karpoke.ignaciocano.com/posts/hack/robando-la-identidad-del-vecino/"&gt;Twitter&lt;/a&gt;, donde el número de caracteres
está limitado. Sin embargo, se pueden utilizar para engañarnos y
llevarnos a una página que no queramos, o incluso que &lt;a href="http://www.worsttech.com/hack/hacker-attack/malware-spreading-via-shortened-urls-1102581.html"&gt;distribuya
&lt;em&gt;malware&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Para comprobar hacia dónde apunta un enlaces cortos podemos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;utilizar un servicio como &lt;a href="http://urlxray.com/"&gt;urlxray&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;utilizar el comando &lt;code&gt;curl&lt;/code&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ curl -sI http://goo.gl/GPb7Z | grep Location
Location: http://terminus.homelinux.com/k/
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;utilizar un complemento para &lt;a href="http://addons.mozilla.org/en-US/firefox/search/?q=short+url+expand"&gt;Firefox&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Sonido a través de SSH</title><link>http://karpoke.ignaciocano.com/2011/05/05/sonido-a-traves-de-ssh/</link><pubDate>Thu, 05 May 2011 22:23:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/05/05/sonido-a-traves-de-ssh/</guid><description>&lt;p&gt;Si tenemos &lt;a href="http://karpoke.ignaciocano.com/2011/03/03/conectarse-por-ssh-solo-usando-la-clave/"&gt;acceso por &lt;code&gt;ssh&lt;/code&gt;&lt;/a&gt; a otro ordenador, ambos con micrófono y
altavoces, podemos redirigir el sonido en ambos sentidos, es decir,
podemos conseguir cosas como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;que lo que capta nuestro &lt;a href="#microfono-local-altavoces-remotos"&gt;micrófono&lt;/a&gt; se escuche en los altavoces&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;del otro ordenador y [viceversa][]
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;que lo que se &lt;a href="#texto-local-altavoces-remotos"&gt;escribe&lt;/a&gt; en un ordenador se escuche en el otro y&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[viceversa][1]
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;que el contenido de un &lt;a href="#texto-local-altavoces-remotos"&gt;fichero de texto&lt;/a&gt; se oiga en los&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;altavoces remotos y [viceversa][1]
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;que un archivo de &lt;a href="#fichero-audio-local-altavoces-remotos"&gt;audio&lt;/a&gt; se escuche en los altavoces remotos y&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[viceversa][2]
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;que el audio de un archivo de &lt;a href="#fichero-video-local-altavoces-remotos"&gt;vídeo&lt;/a&gt; se escuche en los altavoces&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;remotos y [viceversa][3]
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="dispositivos-de-sonido-en-ubuntu-maverick-meerkat"&gt;Dispositivos de sonido en Ubuntu Maverick Meerkat&lt;/h2&gt;
&lt;p&gt;Uno de los cambios de Ubuntu Maverick Meerkat (10.10) fue la
desaparición del dispositivo &lt;code&gt;/dev/dsp&lt;/code&gt; y otros, como &lt;code&gt;/dev/mixer&lt;/code&gt;,
&lt;code&gt;/dev/sndstat&lt;/code&gt; y &lt;code&gt;/dev/audio&lt;/code&gt;, al utilizar la &lt;a href="http://bugs.launchpad.net/ubuntu/+source/linux/+bug/634211"&gt;interfaz ALSA en
detrimento de la OSS API&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Cifrar el contenido de Dropbox</title><link>http://karpoke.ignaciocano.com/2011/04/21/cifrar-el-contenido-de-dropbox/</link><pubDate>Thu, 21 Apr 2011 13:37:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/04/21/cifrar-el-contenido-de-dropbox/</guid><description>&lt;p&gt;A raíz del cambio en los términos del servicio de Dropbox, en el cual se
afirma que le &lt;a href="http://www.businessinsider.com/dropbox-updates-security-terms-of-service-to-say-it-can-decrpyt-files-if-the-government-asks-it-to-2011-4?op=1"&gt;entregará tus ficheros al gobierno de Estados Unidos&lt;/a&gt;,
si éste se lo pide, o la noticia de que es posible &lt;a href="http://www.hispasec.com/unaaldia/4558"&gt;saltarse las
restricciones&lt;/a&gt;, y que nuestra cuenta sea usada en otra máquina sin
necesidad de conocer nuestra contraseña, se nos podría ocurrir cifrar
los datos que subimos a nuestra cuenta.&lt;/p&gt;
&lt;p&gt;Utilizaremos &lt;code&gt;ecryptfs&lt;/code&gt; para cifrar un directorio, y todo su contenido,
dentro del directorio de &lt;a href="http://karpoke.ignaciocano.com/2011/03/30/multiples-cuentas-de-dropbox-en-ubuntu-maverick-meerkat/"&gt;una de nuestras cuentas de Dropbox&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Acceder al panel de control de Wordpress tras haber sido baneado</title><link>http://karpoke.ignaciocano.com/2011/04/20/acceder-al-panel-de-control-de-wordpress-tras-haber-sido-baneado/</link><pubDate>Wed, 20 Apr 2011 01:46:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/04/20/acceder-al-panel-de-control-de-wordpress-tras-haber-sido-baneado/</guid><description>&lt;p&gt;De forma similar a &lt;a href="http://karpoke.ignaciocano.com/2011/03/07/detectando-intrusos-en-ubuntu-maverick-meerkat/"&gt;&lt;code&gt;fail2ban&lt;/code&gt; para &lt;code&gt;ssh&lt;/code&gt;&lt;/a&gt;, existe un
complemento para Wordpress, &lt;a href="http://wordpress.org/extend/plugins/login-lockdown/"&gt;Login LockDown&lt;/a&gt;, que controla el número de
intentos de acceso al panel de control, y si se falla en 3 intentos, &lt;em&gt;banea&lt;/em&gt;
dicha IP durante una hora. Estos parámetros, y alguno más, son configurables
desde la página de configuración del complemento.&lt;/p&gt;
&lt;p&gt;El problema es que si compartimos la misma IP pública con más gente, ya sea
porque estamos en un lugar público o en casa de unos amigos, y alguien en esta
misma red realiza más intentos de los permitidos, también nosotros quedamos
&lt;em&gt;baneados&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>true</title><link>http://karpoke.ignaciocano.com/2011/04/19/true/</link><pubDate>Tue, 19 Apr 2011 12:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/04/19/true/</guid><description>&lt;pre tabindex="0"&gt;&lt;code&gt;$ man true
NAME
true - do nothing, successfully
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;SYNOPSIS
true [ignored command line arguments]
true OPTION
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;DESCRIPTION
Exit with a status code indicating success.
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; --help display this help and exit
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; --version
output version information and exit
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; NOTE: your shell may have its own version of true, which usually supersedes
the version described here. Please refer to your
shell&amp;#39;s documentation for details about the options it supports.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;No hay nada como hacer sólo una cosa, pero hacerla bien&amp;hellip;&lt;/p&gt;</description></item><item><title>Múltiples cuentas de Dropbox en Ubuntu Maverick Meerkat</title><link>http://karpoke.ignaciocano.com/2011/03/30/multiples-cuentas-de-dropbox-en-ubuntu-maverick-meerkat/</link><pubDate>Wed, 30 Mar 2011 14:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/30/multiples-cuentas-de-dropbox-en-ubuntu-maverick-meerkat/</guid><description>&lt;p&gt;Una cuenta gratuita de Dropbox permite inicialmente 2 GB de espacio, que
se pueden ir ampliando con algunas sencillas acciones tales como
compartir un directorio, instalar el paquete para Ubuntu o
recomendárselo a un amigo. En principio, sólo se puede tener una cuenta
por dispositivo. Sin embargo, como vamos a ver, gestionar varias cuentas
para obtener más espacio, utilizándolas a la vez y desde la misma
máquina, es algo realmente sencillo y rápido.&lt;/p&gt;</description></item><item><title>Encuentra las diferencias... desde el terminal</title><link>http://karpoke.ignaciocano.com/2011/03/29/encuentra-las-diferencias-desde-el-terminal/</link><pubDate>Tue, 29 Mar 2011 22:08:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/29/encuentra-las-diferencias-desde-el-terminal/</guid><description>&lt;p&gt;Supongamos que queremos &lt;a href="http://www.linuxhispano.net/2011/03/29/diferencias/"&gt;encontrar las diferencias&lt;/a&gt; en la siguiente
imagen:&lt;/p&gt;
&lt;p&gt;&lt;img alt="diferencias" loading="lazy" src="http://karpoke.ignaciocano.com/images/diferencias-300x233.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fuente: &lt;a href="http://www.taringa.net/posts/imagenes/6577248/encuentra-las-diferencias.html"&gt;taringa.net&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Tal como se muestra en la tira cómica, se puede hacer utilizando las
herramientas de la suite &lt;code&gt;imagemagick&lt;/code&gt;, en particular, &lt;code&gt;composite&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Primero, creamos una imagen con cada mitad de la imagen original:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ convert diferencias.jpg -crop 50%x100% out.png
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Esto crea dos ficheros, &lt;code&gt;out-0.png&lt;/code&gt; y &lt;code&gt;out-0.png&lt;/code&gt;, uno con la mitad
izquierda y otro con la mitad izquierda.&lt;/p&gt;
&lt;p&gt;Vamos a obtener las diferencias:&lt;/p&gt;</description></item><item><title>Desordenando listas en Python</title><link>http://karpoke.ignaciocano.com/2011/03/29/desordenando-listas-en-python/</link><pubDate>Tue, 29 Mar 2011 20:00:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/29/desordenando-listas-en-python/</guid><description>&lt;p&gt;Si tenemos una lista de elementos, por ejemplo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; l = [ 2, 3, 5, 7, 11, 13, 17, 19 ]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Deck Card Shuffler" loading="lazy" src="http://karpoke.ignaciocano.com/images/deck_card_shuffler-300x213.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Y queremos desordenarla, pero con la condición de que ningún elemento
ocupe la misma posición que ocupaba originalmente, podemos aplicar el
&lt;a href="http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#Sattolo.27s_algorithm"&gt;algoritmo de Sottolo&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; from random import randrange
&amp;gt;&amp;gt;&amp;gt; def sattoloCycle(items):
... i = len(items)
... while i &amp;gt; 1:
... i = i - 1
... j = randrange(i) # 0 &amp;lt; = j &amp;lt;= i-1
... items[j], items[i] = items[i], items[j]
... return
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; sattoloCycle(l)
&amp;gt;&amp;gt;&amp;gt; print l
[5, 17, 3, 2, 7, 11, 13]
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>LaTeX en Wordpress</title><link>http://karpoke.ignaciocano.com/2011/03/29/latex-en-wordpress/</link><pubDate>Tue, 29 Mar 2011 18:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/29/latex-en-wordpress/</guid><description>&lt;p&gt;Descarga el &lt;a href="http://wordpress.org/extend/plugins/latex/"&gt;plugin de LaTeX para Wordpress&lt;/a&gt;. Luego, escribe:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-latex" data-lang="latex"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;\begin&lt;/span&gt;{align*}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ax^2+bx+c &amp;amp;= 0 &lt;span style="color:#66d9ef"&gt;\\&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x^2+&lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{b}{a}x+&lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{c}{a} &amp;amp;= 0 &lt;span style="color:#66d9ef"&gt;\\&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x^2+&lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{b}{a}x &amp;amp;= -&lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{c}{a} &lt;span style="color:#66d9ef"&gt;\\&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x^2+&lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{b}{a}x+&lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{b^2}{4a^2} &amp;amp;= &lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{b^2}{4a^2} - &lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{c}{a} &lt;span style="color:#66d9ef"&gt;\\&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(x+&lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{b}{2a})^2 &amp;amp;= &lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{b^2}{4a^2} - &lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{4ac}{4a^2} &lt;span style="color:#66d9ef"&gt;\\&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x+&lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{b}{2a} &amp;amp;= &lt;span style="color:#66d9ef"&gt;\pm\sqrt&lt;/span&gt;{&lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{b^2-4ac}{4a^2}} &lt;span style="color:#66d9ef"&gt;\\&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x+&lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{b}{2a} &amp;amp;= &lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{&lt;span style="color:#66d9ef"&gt;\pm\sqrt&lt;/span&gt;{b^2-4ac}}{2a} &lt;span style="color:#66d9ef"&gt;\\&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x &amp;amp;= &lt;span style="color:#66d9ef"&gt;\frac&lt;/span&gt;{-b&lt;span style="color:#66d9ef"&gt;\pm\sqrt&lt;/span&gt;{b^2-4ac}}{2a}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;\end&lt;/span&gt;{align*}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;El resultado será parecido a éste:&lt;/p&gt;
&lt;div&gt;
$$
\begin{align*}
ax^2+bx+c &amp;= 0 \\
x^2+\frac{b}{a}x+\frac{c}{a} &amp;= 0 \\
x^2+\frac{b}{a}x &amp;= -\frac{c}{a} \\
x^2+\frac{b}{a}x+\frac{b^2}{4a^2} &amp;= \frac{b^2}{4a^2} - \frac{c}{a} \\
(x+\frac{b}{2a})^2 &amp;= \frac{b^2}{4a^2} - \frac{4ac}{4a^2} \\
x+\frac{b}{2a} &amp;= \pm\sqrt{\frac{b^2-4ac}{4a^2}} \\
x+\frac{b}{2a} &amp;= \frac{\pm\sqrt{b^2-4ac}}{2a} \\
x &amp;= \frac{-b\pm\sqrt{b^2-4ac}}{2a}
\end{align*}
$$
&lt;/div&gt;</description></item><item><title>Importar un volcado de datos en MySQL</title><link>http://karpoke.ignaciocano.com/2011/03/27/importar-un-volcado-de-datos-en-mysql/</link><pubDate>Sun, 27 Mar 2011 22:09:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/27/importar-un-volcado-de-datos-en-mysql/</guid><description>&lt;p&gt;Para realizar un volcado de datos, podemos ejecutar:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ mysqldump -uuser -p --all-databases --host localhost &amp;gt; mysql.sql
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="MySQL Dump" loading="lazy" src="http://karpoke.ignaciocano.com/images/mysqldump.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fuente: &lt;a href="http://luauf.com/2008/05/17/mysql-shell-script-backup/"&gt;luauf.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Para importar este volcado, existe la herramienta &lt;code&gt;mysqlimport&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ mysqlimport -uuser -hhost -p --local dbname mysql.sql
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Sin embargo, no me acaba de ir bien, ya que me devuelve este error:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;mysqlimport: Error: 1146, Table &amp;#39;dbname.mysql&amp;#39; doesn&amp;#39;t exist, when using table: mysql
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Una forma de conseguir &lt;a href="http://forums.mysql.com/read.php?10,269126,269264#msg-269264"&gt;restaurar el volcado de datos&lt;/a&gt; es desde el
cliente de &lt;code&gt;mysql&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Creando y leyendo códigos QR desde Python</title><link>http://karpoke.ignaciocano.com/2011/03/27/creando-y-leyendo-codigos-qr-desde-python/</link><pubDate>Sun, 27 Mar 2011 19:46:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/27/creando-y-leyendo-codigos-qr-desde-python/</guid><description>&lt;p&gt;Un código QR (Quick Response Barcode) permite almacenar información en
un código de barras de dos dimensiones.&lt;/p&gt;
&lt;p&gt;&lt;img alt="cc.qr.code.capacity`" loading="lazy" src="http://karpoke.ignaciocano.com/images/cc.qr_.code_.capacity-300x166.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Hay bastantes servicios en la web que nos permiten crear nuestros
propios códigos, por ejemplo &lt;a href="http://code.google.com/apis/chart/infographics/docs/qr_codes.html"&gt;el de Google&lt;/a&gt;, que podemos emplear desde
la línea de comandos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ curl http://chart.apis.google.com/chart?chs=150x150&amp;amp;cht=qr&amp;amp;chld=H|0&amp;amp;chl=texto -o qr.png
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="QR Code Python" loading="lazy" src="http://karpoke.ignaciocano.com/images/qrcode-python.png"&gt;&lt;/p&gt;
&lt;p&gt;Un pequeño alias para tenerlo siempre a mano:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ alias qrurl=&amp;#39;qrurl() { curl http://chart.apis.google.com/chart?chs=150x150&amp;amp;cht=qr&amp;amp;chld=H|0&amp;amp;chl=${@// /%20} -o qr.$(date +%Y%m%d%H%M%S).png; }; qrurl&amp;#39;
$ qrurl una ranita iba caminando
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Esto creará un fichero con un nombre parecido a &lt;code&gt;qr.20110325161706.png&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Solucionado el error "E: Problem with MergeList" al actualizar Debian</title><link>http://karpoke.ignaciocano.com/2011/03/17/solucionado-el-error-e-problem-with-mergelist-al-actualizar-debian/</link><pubDate>Thu, 17 Mar 2011 11:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/17/solucionado-el-error-e-problem-with-mergelist-al-actualizar-debian/</guid><description>&lt;p&gt;Tras realizar una actualización rutinaria, &lt;code&gt;aptitude update&lt;/code&gt;, me
encuentro con el siguiente error:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/ftp.caliu.cat_debian_dists_testing_main_binary-i386_Packages
E: No se pudieron analizar o abrir las listas de paquetes o el archivo de estado.
E: No se pudo reconstruir el almacén de paquetes
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Deb packages" loading="lazy" src="http://karpoke.ignaciocano.com/images/icono-paquete-deb.png"&gt;&lt;/p&gt;
&lt;p&gt;La &lt;a href="http://ubuntuforums.org/archive/index.php/t-863742.html"&gt;solución&lt;/a&gt; para resolver el conflicto, que parece ser debido a una
corrupción en las listas, pasa por borrarlas, y ya podremos actualizar
normalmente:&lt;/p&gt;</description></item><item><title>inception</title><link>http://karpoke.ignaciocano.com/2011/03/14/inception/</link><pubDate>Mon, 14 Mar 2011 13:35:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/14/inception/</guid><description>&lt;p&gt;&lt;em&gt;&lt;a href="http://github.com/karthick18/inception"&gt;Inception&lt;/a&gt;&lt;/em&gt; en C:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ git clone https://github.com/karthick18/inception.git
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="inception" loading="lazy" src="http://karpoke.ignaciocano.com/images/inception-300x203.png"&gt;&lt;/p&gt;</description></item><item><title>Ocultando cabeceras</title><link>http://karpoke.ignaciocano.com/2011/03/12/ocultando-cabeceras/</link><pubDate>Sat, 12 Mar 2011 14:26:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/12/ocultando-cabeceras/</guid><description>&lt;p&gt;Tras instalar Apache, tanto en las &lt;a href="http://karpoke.ignaciocano.com/2011/02/28/cabeceras-http-personalizadas-en-apache2/"&gt;cabeceras de la página&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ curl -I localhost
HTTP/1.1 200 OK
Date: Sat, 12 Mar 2011 11:55:12 GMT
Server: Apache/2.2.16 (Ubuntu)
Last-Modified: Sat, 02 Jan 2010 00:00:23 GMT
ETag: &amp;#34;aa34-b1-47c232cbc0633&amp;#34;
Accept-Ranges: bytes
Content-Length: 177
Vary: Accept-Encoding
Content-Type: text/html
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;como en las páginas de error:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;!DOCTYPE HTML PUBLIC &amp;#34;-//IETF//DTD HTML 2.0//EN&amp;#34;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;404 Not Found
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Not Found
The requested URL /terminus was not found on this server.
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Apache/2.2.16 (Ubuntu) Server at localhost Port 80
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;se muestra la versión de Apache, y de PHP si también lo hemos instalado.
Ocultar este tipo de información se conoce como seguridad por oscuridad,
por lo que no es realmente seguridad, pero puede ayudar a evitar ataques
automatizados.&lt;/p&gt;</description></item><item><title>ls sin ls</title><link>http://karpoke.ignaciocano.com/2011/03/12/ls-sin-ls/</link><pubDate>Sat, 12 Mar 2011 13:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/12/ls-sin-ls/</guid><description>&lt;p&gt;En bash:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ for i in *; do echo $i; done
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="ls" loading="lazy" src="http://karpoke.ignaciocano.com/images/ls-300x232.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fuente: &lt;a href="http://nfosolutions.com/"&gt;nfosolutions.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;En &lt;a href="http://snippets.dzone.com/posts/show/2735"&gt;C&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/*
*
* Esempio che scansiona una cartella stampando a video i file in essa
* contenuti.
*/
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;#include
#include
#include
#include
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;int main(int argc, char *argv[])
{
DIR *dir;
struct dirent *drent;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; if(argc &amp;lt; 2)
{
fprintf(stderr, &amp;#34;%s \n&amp;#34;, argv[0]);
return EXIT_FAILURE;
}
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; if((dir = opendir(argv[1])) == NULL)
{
fprintf(stderr, &amp;#34;Errore opendir()\n&amp;#34;);
return EXIT_FAILURE;
}
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; while((drent = readdir(dir)) != NULL)
{
fprintf(stdout, &amp;#34;--&amp;gt; %s\n&amp;#34;, drent-&amp;gt;d_name);
}
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; if(closedir(dir) &amp;lt; 0)
{
fprintf(stderr, &amp;#34;Errore closedir()\n&amp;#34;);
return EXIT_FAILURE;
}
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En Python:&lt;/p&gt;</description></item><item><title>With great power comes great responsibility</title><link>http://karpoke.ignaciocano.com/2011/03/07/with-great-power-comes-great-responsibility/</link><pubDate>Mon, 07 Mar 2011 22:40:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/07/with-great-power-comes-great-responsibility/</guid><description>&lt;p&gt;Cuando ejecutamos &lt;code&gt;sudo&lt;/code&gt; por primera vez nos dice:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Trust&amp;hellip; &lt;em&gt;my ass&lt;/em&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Sandwich" loading="lazy" src="http://karpoke.ignaciocano.com/images/sandwich-300x249.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fuente: &lt;a href="http://xkcd.com/149/"&gt;xkcd.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="sudo rm" loading="lazy" src="http://karpoke.ignaciocano.com/images/sudorm.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fuente: &lt;a href="http://www.leprosys.info/2008/08/no-ejecutes-sudo-rm-rf.html"&gt;leprosys.info&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="whoops" loading="lazy" src="http://karpoke.ignaciocano.com/images/whoops-300x272.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fuente: &lt;a href="http://www.leprosys.info/2008/08/no-ejecutes-sudo-rm-rf.html"&gt;leprosys.info&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="sudo-rm" loading="lazy" src="http://karpoke.ignaciocano.com/images/sudo-rm-300x193.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fuente: &lt;a href="http://www.genbeta.com/linux/la-terminal-de-linux-no-muerde-ii-trucos-mas-avanzados"&gt;genbeta.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Detectando intrusos en Ubuntu Maverick Meerkat</title><link>http://karpoke.ignaciocano.com/2011/03/07/detectando-intrusos-en-ubuntu-maverick-meerkat/</link><pubDate>Mon, 07 Mar 2011 22:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/07/detectando-intrusos-en-ubuntu-maverick-meerkat/</guid><description>&lt;p&gt;Un artículo para tener en cuenta algunas de las acciones que podemos
llevar a cabo para &lt;a href="http://dzulkifli.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=109:securing-maverick-meerkat&amp;amp;catid=35:ubuntu&amp;amp;Itemid=85"&gt;securizar Ubuntu Maverick Meerkat&lt;/a&gt;. Algunos
programas para facilitar la tarea de controlar los intentos de acceso al
sistema:&lt;/p&gt;
&lt;h2 id="ufw"&gt;ufw&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;ufw&lt;/code&gt; es una forma sencilla de manejar un cortafuegos. Nada más
instalarlo, lo habilitamos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo ufw enable
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Damos de alta los servicios^&lt;a href="#servicios"&gt;1&lt;/a&gt;^ que queremos que estén disponibles:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo ufw allow http
$ sudo ufw allow https
$ sudo ufw allow 1234
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Si queremos deshacer alguna de estas acciones, por ejemplo, eliminar la
regla para el puerto 1234:&lt;/p&gt;</description></item><item><title>Imágenes embebidas en el código HTML, CSS o JSON</title><link>http://karpoke.ignaciocano.com/2011/03/06/imagenes-embebidas-en-el-codigo-html-css-o-json/</link><pubDate>Sun, 06 Mar 2011 18:34:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/06/imagenes-embebidas-en-el-codigo-html-css-o-json/</guid><description>&lt;p&gt;Mediante esquema &lt;code&gt;data:URI&lt;/code&gt; se pueden &lt;a href="http://mark.koli.ch/2009/07/howto-include-binary-image-data-in-cascading-style-sheets-css.html"&gt;incluir imágenes codificadas&lt;/a&gt;
en &lt;code&gt;base64&lt;/code&gt; en el CSS de una página o en el &lt;code&gt;src&lt;/code&gt; de una etiqueta &lt;code&gt;img&lt;/code&gt;
como si fueran fuentes externas. También se pueden introducir otro tipo
de datos, como por ejemplo, código HTML.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;img src=&amp;#34;data:image/png;base64,iVBORw0KGgo[...]QmCC&amp;#34; title=&amp;#34;image&amp;#34; alt=&amp;#34;image&amp;#34; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;También se puede utilizar en un &lt;a href="http://mark.koli.ch/2011/01/more-fun-with-rfc-2397----the-data-url-scheme.html"&gt;JSON&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;{
&amp;#34;image&amp;#34;:{
&amp;#34;data_uri&amp;#34;:&amp;#34;data:image/png;base64,iVBORw0KGgo[...]QmCC&amp;#34;
}
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Google 404" loading="lazy" src="http://karpoke.ignaciocano.com/images/google-404-300x112.png"&gt;&lt;/p&gt;
&lt;p&gt;Las ventajas de utilizar este método son que no se necesitan abrir
conexiones adicionales para decargar los datos, ya que toda la
información está incluida en el propio archivo, con lo que dejan
recursos disponibles, algo que puede ser especialmente útil en redes
inalámbricas muy saturadas o lentas, como algunas redes de telefonía
móvil, y se crean menos entradas en la caché del navegador. Además, al
estar incluidos en el código se pueden cachear.&lt;/p&gt;</description></item><item><title>urlencode y urldecode</title><link>http://karpoke.ignaciocano.com/2011/03/06/urlencode-y-urldecode/</link><pubDate>Sun, 06 Mar 2011 17:45:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/06/urlencode-y-urldecode/</guid><description>&lt;p&gt;Los siguientes caracteres &lt;a href="http://tools.ietf.org/html/rfc3986#section-2.3"&gt;son los únicos que se pueden utilizar&lt;/a&gt; en
una URL:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[a-zA-Z0-9-._~]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;El resto, se deben codificar usando el prefijo &lt;code&gt;%&lt;/code&gt; seguido del valor
ASCII hexadecimal del carácter. Por ejemplo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;( = %28
) = %29
/ = %2F
+ = %2B
...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Para &lt;a href="http://stackoverflow.com/questions/296536/urlencode-from-a-bash-script/298258#298258"&gt;codificar la URL&lt;/a&gt; podemos utilizar la función &lt;code&gt;uri_escape&lt;/code&gt; del
módulo &lt;code&gt;URI&lt;/code&gt; de Perl.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;alias urlenc=&amp;#39;furlenc() { perl -MURI::Escape -e &amp;#34;print uri_escape(\&amp;#34;$1\&amp;#34;).\&amp;#34;\n\&amp;#34;;&amp;#34;; }; furlenc&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;$ urlenc http://www.google.com
http%3A%2F%2Fwww.google.com
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Para la &lt;a href="http://www.commandlinefu.com/commands/view/2285/urldecoding"&gt;decodificación de la URL&lt;/a&gt;, podemos hacer uso de &lt;code&gt;sed&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Recuperando los vídeos Flash borrados por el plugin de Adobe</title><link>http://karpoke.ignaciocano.com/2011/03/04/recuperando-los-videos-flash-borrados-por-el-plugin-de-adobe/</link><pubDate>Fri, 04 Mar 2011 18:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/04/recuperando-los-videos-flash-borrados-por-el-plugin-de-adobe/</guid><description>&lt;p&gt;La nueva versión del plugin de Adobe borra los archivos termporales de
vídeo justo después de abrirlos para evitar que tengamos la tentación de
copiar el vídeo simplemente copiando el archivo &lt;code&gt;/tmp/FlashXXXX&lt;/code&gt;.
&lt;code&gt;hons&lt;/code&gt;, un &lt;a href="http://www.commandlinefu.com/commands/view/7991/recover-tmp-flash-videos-deleted-immediately-by-the-browser-plugin"&gt;usuario de commandlinefu.com&lt;/a&gt; ha publicado un comando que
crea un enlace simbólico al controlador del archivo con el nombre del
archivo borrado:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ for h in $(find /proc/_/fd -ilname &amp;#34;/tmp/Flash_&amp;#34; 2&amp;gt;/dev/null); do
&amp;gt; ln -s &amp;#34;$h&amp;#34; $(readlink &amp;#34;$h&amp;#34; | cut -d&amp;#39; &amp;#39; -f1);
&amp;gt; done
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Youtbe targeted" loading="lazy" src="http://karpoke.ignaciocano.com/images/youtube-targeted-298x300.jpg"&gt;&lt;/p&gt;</description></item><item><title>Conectarse por SSH sólo usando la clave</title><link>http://karpoke.ignaciocano.com/2011/03/03/conectarse-por-ssh-solo-usando-la-clave/</link><pubDate>Thu, 03 Mar 2011 21:22:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/03/conectarse-por-ssh-solo-usando-la-clave/</guid><description>&lt;p&gt;Conectarnos a nuestro servidor de SSH utilizando una clave RSA en lugar
de una contraseña es más seguro, dado que la clave RSA será bastante más
larga y difícil de comprometer que nuestra contraseña, y más cómodo,
dado que ya no tendremos que escribir la contraseña para iniciar sesión.&lt;/p&gt;
&lt;h2 id="configuración"&gt;Configuración&lt;/h2&gt;
&lt;p&gt;En el equipo local, creamos la clave. Cuando nos pida contraseña, le
asignamos una, que nos será requerida cada vez que queramos usar dicha
clave. Si estuviéramos creando las claves en el servidor la &lt;a href="http://marc.info/?l=secure-shell&amp;amp;m=91703263608458&amp;amp;w=2"&gt;dejaríamos
en blanco&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Cabeceras HTTP personalizadas en Apache2</title><link>http://karpoke.ignaciocano.com/2011/02/28/cabeceras-http-personalizadas-en-apache2/</link><pubDate>Mon, 28 Feb 2011 20:28:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/02/28/cabeceras-http-personalizadas-en-apache2/</guid><description>&lt;p&gt;Podemos modificar las cabeceras que devuelve el Apache usando el módulo
&lt;code&gt;mod_headers&lt;/code&gt;. Por ejemplo, añadiendo a nuestro &lt;em&gt;virtualhost&lt;/em&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Header set X-MyHeader &amp;#34;It took %D microseconds to serve this page.&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Se pueden modificar tanto las cabeceras que van a ser enviadas, con la
directiva &lt;code&gt;Header&lt;/code&gt;, como las que vienen con una petición, con la
directiva &lt;code&gt;RequestHeader&lt;/code&gt;. Las acciones que se pueden llevar a cabo son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;set&lt;/code&gt;, especifica el valor de la cabecera, la crea si no existía o&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;la modifica en caso contrario
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;append&lt;/code&gt;, añade el valor al final de la cabecera existente, y separa&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;los valores por comas
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;add&lt;/code&gt;, añade una cabecera, duplicando la cabecera si ésta ya existía&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unset&lt;/code&gt;, elimina una cabecera&lt;/li&gt;
&lt;li&gt;&lt;code&gt;echo&lt;/code&gt;, sólo en el caso de la directiva &lt;code&gt;Header&lt;/code&gt;, y permite utilizar&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;el valor de una cabecera en el `request`
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Este es el resultado:&lt;/p&gt;</description></item><item><title>setuid y setgid</title><link>http://karpoke.ignaciocano.com/2011/02/28/setuid-y-setgid/</link><pubDate>Mon, 28 Feb 2011 14:33:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/02/28/setuid-y-setgid/</guid><description>&lt;p&gt;&lt;code&gt;setuid&lt;/code&gt; y &lt;code&gt;setgid&lt;/code&gt; son unos permisos especiales, también llamados los
&lt;em&gt;sticky bits&lt;/em&gt;, que se les pueden asignar a los programas ejecutables
para que se ejecuten con los permisos del propietario y no del usuario
que los ejecuta. Esto sirve para, por ejemplo, que cualquier usuario
ejecute el comando &lt;code&gt;ping&lt;/code&gt; aunque éste necesite privilegios de
administrador, que es el propietario. En GNU/Linux, y en Unix, estos
bits se ignoran cuando se aplican a directorios.&lt;/p&gt;</description></item><item><title>html2pdf = html2ps + ps2pdf</title><link>http://karpoke.ignaciocano.com/2011/02/28/html2pdf-html2ps-ps2pdf/</link><pubDate>Mon, 28 Feb 2011 13:47:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/02/28/html2pdf-html2ps-ps2pdf/</guid><description>&lt;p&gt;Un buen comando para &lt;a href="http://www.atareao.es/ubuntu/conociendo-ubuntu/convetir-un-sitio-web-a-pdf-en-ubuntu/"&gt;convertir una web a PDF&lt;/a&gt;, idóneo para sitios con
documentación pero que ésta sólo está disponible &lt;em&gt;online&lt;/em&gt;. Por ejemplo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ html2ps -W b http://www.vala-project.org/doc/vala/ | ps2pdf - out.pdf
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Con la opción &lt;code&gt;-W b&lt;/code&gt; le decimos a &lt;code&gt;html2ps&lt;/code&gt; que siga sólo los enlaces
que están en el mismo directorio, o a partir de él,
respecto a la ruta proporcionada.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Cool HTML Codes" loading="lazy" src="http://karpoke.ignaciocano.com/images/cool-html-codes-300x225.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fuente: &lt;a href="http://www.techpin.com/"&gt;techpin.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Podemos crear un alias que reciba dos parámetros, la URL y el nombre que
queremos ponerle al PDF:&lt;/p&gt;</description></item><item><title>Mystery</title><link>http://karpoke.ignaciocano.com/2011/02/26/mystery/</link><pubDate>Sat, 26 Feb 2011 00:49:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/02/26/mystery/</guid><description>&lt;p&gt;Casi parece que está escrito en chino, o mejor dicho en &lt;em&gt;brainfuck&lt;/em&gt;, o
puede que no sea muy &lt;em&gt;&lt;a href="http://karpoke.ignaciocano.com/2011/02/26/python-zen/"&gt;zen&lt;/a&gt;&lt;/em&gt;, pero no deja de ser &lt;em&gt;&lt;a href="http://blog.garlicsim.org/post/3504711416#comment-156082460"&gt;elegante&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;def mystery(n):
a = list(range(n))
[[(yield i) for a[::i] in [([0]*n)[::i]]] for i in a[2:] if a[i]]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;El nombre de la función pretende no dar pistas para que intentemos
averiguar qué hace exactamente esta función. He aquí una pista:&lt;/p&gt;
&lt;p&gt;&lt;img alt="prime numnbers" loading="lazy" src="http://karpoke.ignaciocano.com/images/prime-numbers-300x300.gif" title="prime-numbers"&gt;&lt;/p&gt;
&lt;p&gt;Fuente: &lt;a href="http://www.numberspiral.com/"&gt;numberspiral.com&lt;/a&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; f = mystery(20)
&amp;gt;&amp;gt;&amp;gt; try:
... while True:
... print f.next()
... except StopIteration:
... pass
2
3
5
7
11
13
17
19
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Python Zen</title><link>http://karpoke.ignaciocano.com/2011/02/26/python-zen/</link><pubDate>Sat, 26 Feb 2011 00:40:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/02/26/python-zen/</guid><description>&lt;p&gt;&lt;em&gt;Just to keep in mind&amp;hellip;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="zen" loading="lazy" src="http://karpoke.ignaciocano.com/images/zen-300x225.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Author: &lt;em&gt;&lt;em&gt;&lt;a href="http://www.flickr.com/photos/euart/282104427/"&gt;euart&lt;/a&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; import this
The Zen of Python, by Tim Peters
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren&amp;#39;t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you&amp;#39;re Dutch.
Now is better than never.
Although never is often better than _right_ now.
If the implementation is hard to explain, it&amp;#39;s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let&amp;#39;s do more of those!
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Abusando del código de estado HTTP</title><link>http://karpoke.ignaciocano.com/2011/02/22/abusando-del-codigo-de-estado-http/</link><pubDate>Tue, 22 Feb 2011 17:02:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/02/22/abusando-del-codigo-de-estado-http/</guid><description>&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;function&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;logged_in&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;id&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;txt&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; document.&lt;span style="color:#a6e22e"&gt;getElementById&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;id&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;innerHTML&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;txt&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;En&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;el&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;artículo&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;original&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;de&lt;/span&gt; [&lt;span style="color:#a6e22e"&gt;Mark&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Cardwell&lt;/span&gt;][], &lt;span style="color:#a6e22e"&gt;se&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;muestra&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;como&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;podemos&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;saber&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;si&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;un&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;visitante&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;de&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;nuestra&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;página&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;está&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;conectado&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;a&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;diferentes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;servicios&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;como&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;GMail&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;Facebook&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;Twitter&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;etc&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;aprovechando&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;las&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;diferencias&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;de&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;comportamiento&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;que&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;muestran&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;estos&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;servicios&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;al&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;acceder&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;a&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;enlaces&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;concretos&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;si&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;el&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;usuario&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;está&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;conectado&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;o&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;no&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;GMail&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;-----&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;Conectado&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;a&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;GMail&lt;/span&gt;&lt;span style="color:#f92672"&gt;?&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;__&lt;/span&gt;&lt;span style="color:#f92672"&gt;**&lt;/span&gt;...&lt;span style="color:#f92672"&gt;**&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;__&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;Para&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;comprobar&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;si&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;el&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;visitante&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;está&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;conectado&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;a&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;GMail&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;se&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;intenta&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;cargar&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;una&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;imagen&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;de&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;la&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;siguiente&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;manera&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;El &lt;code&gt;src&lt;/code&gt; de la imagen hace referencia a la imagen del perfil de Mark, si
no hemos iniciado sesión en GMail, la dirección del &lt;code&gt;src&lt;/code&gt; no devolverá
una imagen, sino que redireccionará a una página HTML. Con los atributos
&lt;code&gt;onload&lt;/code&gt; y &lt;code&gt;onerror&lt;/code&gt; podremos distinguir si la imagen ha cargado o no,
por lo que podremos saber si el usuario ha iniciado sesión o no. Esto
parece que funciona en Firefox, Chrome, Opera, Safari y varias versiones
de Internet Explorer.&lt;/p&gt;</description></item><item><title>Solucionado el error "Tcl/Tk not found" al instalar OMNeT++ en Ubuntu</title><link>http://karpoke.ignaciocano.com/2011/02/21/solucionado-el-error-tcltk-not-found-al-instalar-omnet-en-ubuntu/</link><pubDate>Mon, 21 Feb 2011 14:37:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/02/21/solucionado-el-error-tcltk-not-found-al-instalar-omnet-en-ubuntu/</guid><description>&lt;p&gt;&lt;a href="http://www.omnetpp.org/"&gt;OMNeT++&lt;/a&gt; es un entorno de desarrollo modular y extensible
desarrollado en C++, y gratuito pasa uso no comercial, especialmente
pensado para construir simuladores de redes de eventos discretos en el
sentido más amplio: redes de comunicaciones alámbricas, inalámbricas,
redes de colas, etc. El soporte para dominios específicos tales como
redes de sensores, redes inalámbricas &lt;em&gt;ad-hoc&lt;/em&gt;, protocolos de Internet,
modelado del rendimiento, etc, viene dado por proyectos desarrollados de
forma independiente. OMNeT++ ofrece un IDE basado en eclipse, un entorno
de ejecución gráfico y otras herramientas. Hay extensiones para
simulación en tiempo real, emulación de redes, lenguages de programación
alternativos (Java, C#), integración con bases de datos, etc.&lt;/p&gt;</description></item><item><title>Cambiar la contraseña de administrador en Django 1.2</title><link>http://karpoke.ignaciocano.com/2011/02/16/cambiar-la-contrasena-de-administrador-en-django-1-2/</link><pubDate>Wed, 16 Feb 2011 14:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/02/16/cambiar-la-contrasena-de-administrador-en-django-1-2/</guid><description>&lt;p&gt;A partir de &lt;a href="https://pythonhosted.org/django_simple_feedback/topics/auth.html#changing-passwords"&gt;Django 1.2&lt;/a&gt; se ha añadido el comando
&lt;code&gt;manage.py changepassword&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ ./manage.py changepassword [&amp;#39;username&amp;#39;]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Si no proporcionamos un nombre de usuario se intentará cambiar el nombre
de usuario que concuerde con el del usuario que ha iniciado sesión. Este
comando nos ahorra escribir lo siguiente:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; from django.contrib.auth.models import User
&amp;gt;&amp;gt;&amp;gt; u = User.objects.get(username__exact=&amp;#39;john&amp;#39;)
&amp;gt;&amp;gt;&amp;gt; u.set_password(&amp;#39;new password&amp;#39;)
&amp;gt;&amp;gt;&amp;gt; u.save()
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Django Admin Login" loading="lazy" src="http://karpoke.ignaciocano.com/images/django-admin-login-300x171.png"&gt;&lt;/p&gt;
&lt;p&gt;El usuario administrador es el primer usuario del sistema por lo que
podemos escribir:&lt;/p&gt;</description></item><item><title>Descifrando al César en Bash</title><link>http://karpoke.ignaciocano.com/2011/02/16/descifrando-al-cesar-en-bash/</link><pubDate>Wed, 16 Feb 2011 04:26:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/02/16/descifrando-al-cesar-en-bash/</guid><description>&lt;p&gt;Después de ver cómo se &lt;a href="http://karpoke.ignaciocano.com/2011/02/16/descifrando-al-cesar-en-python/"&gt;descifra al César en Python&lt;/a&gt;, me he encontrado
con un par de maneras elegantes de hacerlo desde Bash.&lt;/p&gt;
&lt;h2 id="cifrado-césar"&gt;Cifrado César&lt;/h2&gt;
&lt;p&gt;Con &lt;code&gt;tr&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ echo &amp;#34;lorem ipsum dolor sit amet&amp;#34; | tr &amp;#39;a-z&amp;#39; &amp;#39;d-za-c&amp;#39;
oruhp lsvxp groru vlw dphw
$ echo &amp;#34;oruhp lsvxp groru vlw dphw&amp;#34; | tr &amp;#39;d-za-c&amp;#39; &amp;#39;a-z&amp;#39;
lorem ipsum dolor sit amet
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Con &lt;code&gt;sed&lt;/code&gt; también se puede conseguir, aunque es bastante más laborioso:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ echo &amp;#34;lorem ipsum dolor sit amet&amp;#34; | sed -e &amp;#34;y/abcdefghijklmnopqrstuvwxyz/defghijklmnopqrstuvwxyzabc/&amp;#34;
oruhp lsvxp groru vlw dphw
$ echo &amp;#34;oruhp lsvxp groru vlw dphw&amp;#34; | sed -e &amp;#34;y/abcdefghijklmnopqrstuvwxyz/defghijklmnopqrstuvwxyzabc/&amp;#34;
lorem ipsum dolor sit amet
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="rot13"&gt;ROT13&lt;/h2&gt;
&lt;p&gt;Con &lt;code&gt;tr&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Descifrando al César en Python</title><link>http://karpoke.ignaciocano.com/2011/02/16/descifrando-al-cesar-en-python/</link><pubDate>Wed, 16 Feb 2011 03:40:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/02/16/descifrando-al-cesar-en-python/</guid><description>&lt;p&gt;Si lo que pretendemos es, dada una cadena, sustituir una serie de
caracteres por otra, en Python es tan sencillo como pasarle al método
&lt;code&gt;maketrans&lt;/code&gt; una cadena con los caracteres que queremos cambiar y otra
con los caracteres a utilizar en su lugar. Ambas cadenas deberán tener
la misma longitud. Este método devuelve una tabla de traducción, un
objeto susceptible de ser usado por el método &lt;code&gt;translate&lt;/code&gt; el cual se
aplica sobre un &lt;em&gt;string&lt;/em&gt;, como veremos.&lt;/p&gt;</description></item><item><title>Cambiar la dirección MAC</title><link>http://karpoke.ignaciocano.com/2011/02/09/cambiar-la-direccion-mac/</link><pubDate>Wed, 09 Feb 2011 12:58:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/02/09/cambiar-la-direccion-mac/</guid><description>&lt;p&gt;A veces, nos puede interesar cambiar la MAC de nuestra tarjeta de red,
ya sea porqué nos conectamos a una red en la que no queremos que quede
registrada nuestra MAC real (todavía se podría ser más paranoico), ya
sea porqué hay un filtrado por MAC y la nuestra no se encuentra en la
lista de las MAC autorizadas para conectarse.&lt;/p&gt;
&lt;p&gt;&lt;img alt="MAC Address" loading="lazy" src="http://karpoke.ignaciocano.com/images/mac_address-300x252.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fuente: &lt;a href="http://en.wikipedia.org/wiki/MAC_address"&gt;wikipedia&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Para conocer la MAC de nuestras interfaces de red:&lt;/p&gt;</description></item><item><title>32 ó 64 bits</title><link>http://karpoke.ignaciocano.com/2011/01/18/32-o-64-bits/</link><pubDate>Tue, 18 Jan 2011 15:41:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/01/18/32-o-64-bits/</guid><description>&lt;p&gt;Para saber si el procesador es de 64 bits, ejecutamos el siguiente
comando:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ grep flags /proc/cpuinfo | grep -Eo &lt;span style="color:#e6db74"&gt;&amp;#34; lm &amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;64&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;||&lt;/span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;32&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;32&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Otro comando que nos dirá si la arquitectura es de 32 ó 64 bits es &lt;code&gt;lshw&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo lshw -C CPU | grep width
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;width: &lt;span style="color:#ae81ff"&gt;32&lt;/span&gt; bits
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Para saber si el sistema operativo es de 32 ó 64 bits ejecutamos el
siguiente comando:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ getconf LONG_BIT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;32&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ uname -m
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;i686
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ arch &lt;span style="color:#75715e"&gt;# es lo mismo que la anterior&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;i6868
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Otro comando útil es &lt;code&gt;dpkg-architecture&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>SWI-Prolog conoce el sentido de la vida, del universo y de todo lo demas</title><link>http://karpoke.ignaciocano.com/2011/01/18/swi-prolog-conoce-el-sentido-de-la-vida-del-universo-y-de-todo-lo-demas/</link><pubDate>Tue, 18 Jan 2011 12:22:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/01/18/swi-prolog-conoce-el-sentido-de-la-vida-del-universo-y-de-todo-lo-demas/</guid><description>&lt;p&gt;Ejecutamos &lt;code&gt;swipl&lt;/code&gt;, uno de los compiladores de Prolog libres:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ swipl
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Marvin" loading="lazy" src="http://karpoke.ignaciocano.com/images/marvin-186x300.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Y si le interrogamos por el valor de una variable de la cual no puede
inferir ningún valor&amp;hellip;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;% library(swi_hooks) compiled into pce_swi_hooks 0.00 sec, 2,060 bytes
Welcome to SWI-Prolog (Multi-threaded, 32 bits, Version 5.8.2)
Copyright (c) 1990-2009 University of Amsterdam.
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;For help, use ?- help(Topic). or ?- apropos(Word).
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;?- K.
% ... 1,000,000 ............ 10,000,000 years later
%
% &amp;gt;&amp;gt; 42 &amp;lt;&amp;lt; (last release gives the question)
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Personalizando el arranque gráfico en Ubuntu Maverirk Meerkat</title><link>http://karpoke.ignaciocano.com/2011/01/18/personalizando-el-arranque-grafico-en-ubuntu-maverirk-meerkat/</link><pubDate>Tue, 18 Jan 2011 06:55:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/01/18/personalizando-el-arranque-grafico-en-ubuntu-maverirk-meerkat/</guid><description>&lt;p&gt;Tras arreglar un par de &lt;a href="http://karpoke.ignaciocano.com/2011/01/18/solucion-de-problemas-con-plymouth-y-ati-en-ubuntu-maverick-meerkat/"&gt;problemas que tenía con el arranque&lt;/a&gt;, ya que
estamos, vamos a darle un toque distinto al asunto.&lt;/p&gt;
&lt;h2 id="temas-de-plymouth"&gt;Temas de Plymouth&lt;/h2&gt;
&lt;p&gt;Instalamos algunos de los &lt;a href="http://sliceoflinux.com/2010/05/14/cambia-el-tema-plymouth-de-tu-ubuntu-10-04/"&gt;temas para Plymouth&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo apt-get install plymouth-theme-{fade-in,glow,sabily,script,solar,spinfinity,text,ubuntu-logo,text}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Cambiamos por el que queramos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo update-alternatives --config default.plymouth
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Y actualizamos el &lt;code&gt;initramfs&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo update-initramfs -u
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Cuando reiciniemos habremos cambiado el tema de Playmouth.&lt;/p&gt;
&lt;h2 id="splashscreen-de-grub2"&gt;Splashscreen de Grub2&lt;/h2&gt;
&lt;p&gt;Editamos el archivo &lt;code&gt;/etc/grub.d/05_debian_theme&lt;/code&gt;, y modificamos la
línea:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;WALLPAPER=&amp;#34;/usr/share/images/desktop-base/moreblue-orbit-grub.png&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;para que apunte a la ruta de la imagen que queramos.&lt;/p&gt;</description></item><item><title>Solución de problemas con Plymouth y ATI en Ubuntu Maverick Meerkat</title><link>http://karpoke.ignaciocano.com/2011/01/18/solucion-de-problemas-con-plymouth-y-ati-en-ubuntu-maverick-meerkat/</link><pubDate>Tue, 18 Jan 2011 06:23:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/01/18/solucion-de-problemas-con-plymouth-y-ati-en-ubuntu-maverick-meerkat/</guid><description>&lt;p&gt;Se conoce que tras &lt;a href="http://karpoke.ignaciocano.com/2011/01/07/actualizando-ubuntu-a-la-ultima-distribucion-de-forma-remota/"&gt;actualizar a Maverick Meerkat&lt;/a&gt;, incluso de Karmic
a Lucid, algo pasaba con Playmouth, de tal manera que utilizaba una
resolución inadecuada.&lt;/p&gt;
&lt;p&gt;La solución parece depender en algunos casos de la tarjeta gráfica que
tengamos, así que describiré la que me &lt;a href="http://www.nosinmiubuntu.com/2010/10/solucion-para-el-plymouth-en-ubuntu.html"&gt;funcionó con una ATI Radeon&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ lspci | grep vga
01:00.0 VGA compatible controller: ATI Technologies Inc M92 [Mobility Radeon HD 4500 Series]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Instalamos el paquete &lt;code&gt;v86d&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo aptitude install v86d
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Comprobamos las resoluciones que podemos poner:&lt;/p&gt;</description></item><item><title>w00t w00t</title><link>http://karpoke.ignaciocano.com/2011/01/17/w00t-w00t/</link><pubDate>Mon, 17 Jan 2011 04:18:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/01/17/w00t-w00t/</guid><description>&lt;p&gt;Si revisamos los &lt;em&gt;logs&lt;/em&gt; del servidor web, de vez en cuando aparecen toda una
serie de peticiones del tipo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;193.108.81.203 - - [12/Jan/2011:16:48:31 +0100] &amp;#34;GET /w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1&amp;#34; 404 488 &amp;#34;-&amp;#34; &amp;#34;ZmEu&amp;#34;
193.108.81.203 - - [12/Jan/2011:16:48:34 +0100] &amp;#34;GET /db/scripts/setup.php HTTP/1.1&amp;#34; 404 471 &amp;#34;-&amp;#34; &amp;#34;ZmEu&amp;#34;
193.108.81.203 - - [12/Jan/2011:16:48:35 +0100] &amp;#34;GET /mysql/scripts/setup.php HTTP/1.1&amp;#34; 404 473 &amp;#34;-&amp;#34; &amp;#34;ZmEu&amp;#34;
193.108.81.203 - - [12/Jan/2011:16:48:35 +0100] &amp;#34;GET /typo3/phpmyadmin/scripts/setup.php HTTP/1.1&amp;#34; 404 480 &amp;#34;-&amp;#34; &amp;#34;ZmEu&amp;#34;
193.108.81.203 - - [12/Jan/2011:16:48:38 +0100] &amp;#34;GET /phpmyadmin/scripts/setup.php HTTP/1.1&amp;#34; 404 477 &amp;#34;-&amp;#34; &amp;#34;ZmEu&amp;#34;
193.108.81.203 - - [12/Jan/2011:16:48:38 +0100] &amp;#34;GET /pma/scripts/setup.php HTTP/1.1&amp;#34; 404 472 &amp;#34;-&amp;#34; &amp;#34;ZmEu&amp;#34;
193.108.81.203 - - [12/Jan/2011:16:48:39 +0100] &amp;#34;GET /web/phpMyAdmin/scripts/setup.php HTTP/1.1&amp;#34; 404 479 &amp;#34;-&amp;#34; &amp;#34;ZmEu&amp;#34;
193.108.81.203 - - [12/Jan/2011:16:48:39 +0100] &amp;#34;GET /xampp/phpmyadmin/scripts/setup.php HTTP/1.1&amp;#34; 404 480 &amp;#34;-&amp;#34; &amp;#34;ZmEu&amp;#34;
193.108.81.203 - - [12/Jan/2011:16:48:39 +0100] &amp;#34;GET /web/scripts/setup.php HTTP/1.1&amp;#34; 404 472 &amp;#34;-&amp;#34; &amp;#34;ZmEu&amp;#34;
193.108.81.203 - - [12/Jan/2011:16:48:39 +0100] &amp;#34;GET /websql/scripts/setup.php HTTP/1.1&amp;#34; 404 474 &amp;#34;-&amp;#34; &amp;#34;ZmEu&amp;#34;
193.108.81.203 - - [12/Jan/2011:16:48:40 +0100] &amp;#34;GET /webadmin/scripts/setup.php HTTP/1.1&amp;#34; 404 476 &amp;#34;-&amp;#34; &amp;#34;ZmEu&amp;#34;
193.108.81.203 - - [12/Jan/2011:16:48:40 +0100] &amp;#34;GET /sqlweb/scripts/setup.php HTTP/1.1&amp;#34; 404 474 &amp;#34;-&amp;#34; &amp;#34;ZmEu&amp;#34;
193.108.81.203 - - [12/Jan/2011:16:48:40 +0100] &amp;#34;GET /websql/scripts/setup.php HTTP/1.1&amp;#34; 404 474 &amp;#34;-&amp;#34; &amp;#34;ZmEu&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En este caso, la IP parece ser del &lt;a href="http://www.ipillion.com/ip/193.108.81.203"&gt;Reino Unido&lt;/a&gt;, pero va variando, así como
la petición característica que hace al principio y el &lt;em&gt;&lt;a href="http://httpd.apache.org/docs/2.0/es/logs.html"&gt;user agent&lt;/a&gt;&lt;/em&gt; del
final, &amp;ldquo;&lt;a href="http://linux.m2osw.com/zmeu-attack"&gt;Zemu&lt;/a&gt;&amp;rdquo;. En otras ocasiones, la petición es
&lt;code&gt;/w00tw00t.at.ISC.SANS.DFind:)&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>pci_add_option_rom: failed to find romfile "pxe-rtl8139.bin"</title><link>http://karpoke.ignaciocano.com/2011/01/14/pci_add_option_rom-failed-to-find-romfile-pxe-rtl8139-bin/</link><pubDate>Fri, 14 Jan 2011 22:07:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/01/14/pci_add_option_rom-failed-to-find-romfile-pxe-rtl8139-bin/</guid><description>&lt;p&gt;Trasteando con &lt;code&gt;qemu&lt;/code&gt; y &lt;code&gt;Damn Small Linux&lt;/code&gt;, creamos una imagen de disco
de 500 MB:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ qemu-img create -f qcow hd-500m.img 500M
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Y lanzamos el programa:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ qemu -hda hd-500m.img -cdrom dsl-4.4.10.iso -boot d -m 128 -localtime
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En seguida nos aparece el siguiente mensaje:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;pci_add_option_rom: failed to find romfile &amp;#34;pxe-rtl8139.bin&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;El error que aparece, aunque no evita que la distribución arranque, se
debe a que en Ubuntu, por defecto, &lt;a href="http://wiki.tudos.org/QEmu"&gt;no están instalados los binarios&lt;/a&gt;
para permitir que el sistema operativo emulado arranque por red.&lt;/p&gt;</description></item><item><title>Optimizar el rendimiento de Flash</title><link>http://karpoke.ignaciocano.com/2011/01/11/optimizar-el-rendimiento-de-flash/</link><pubDate>Tue, 11 Jan 2011 12:33:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/01/11/optimizar-el-rendimiento-de-flash/</guid><description>&lt;p&gt;Leyendo el blog &lt;a href="http://usemoslinux.blogspot.com/2011/01/como-evitar-que-flash-arruine-tu.html"&gt;Usemos Linux&lt;/a&gt;, veo que podemos &lt;a href="http://blogs.adobe.com/penguinswf/2008/08/secrets_of_the_mmscfg_file_1.html"&gt;optimizar el
rendimiento del uso de Flash&lt;/a&gt;, configurando el complemento para que no
realice algunas comprobaciones de la GPU, con lo que se alivia el
consumo de CPU y de memoria.&lt;/p&gt;
&lt;p&gt;Sin embargo, no en todos los casos se conseguirá esta mejora del
rendimiento. Esto &lt;a href="http://www.kaourantin.net/2008/05/what-does-gpu-acceleration-mean.html"&gt;dependerá&lt;/a&gt; de:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;el contenido debe estar preparado para utilizar la GPU, de lo&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;contrario, la reproducción hasta podría volverse más lenta.
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;
&lt;li&gt;los requerimientos de hardware para la GPU en el modo GPU son&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;importantes.
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="3"&gt;
&lt;li&gt;no se puede garantizar la fidelidad de los &lt;em&gt;píxels&lt;/em&gt;, ya que podrían&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;cambiar de color.
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="4"&gt;
&lt;li&gt;no importa si el &lt;em&gt;frame rate&lt;/em&gt; está por encima de 60, nunca será&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;superior. De hecho, podemos esperar que sea entre 50 y 55 fps.
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="5"&gt;
&lt;li&gt;no se debería usar, o abusar, del modo GPU para todo el contenido&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Flash que se utilice en una página, ya que degradaría bastante la
respuesta del navegador.
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="6"&gt;
&lt;li&gt;el rendimiento también depende de los fabricantes y sus&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;controladores.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Para configurar el complemento, deberemos crear el fichero de configuración
&lt;code&gt;mms.cfg&lt;/code&gt;. Ejecutamos:&lt;/p&gt;</description></item><item><title>kernel time sync status change</title><link>http://karpoke.ignaciocano.com/2011/01/07/kernel-time-sync-status-change/</link><pubDate>Fri, 07 Jan 2011 06:04:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/01/07/kernel-time-sync-status-change/</guid><description>&lt;p&gt;Tras instalar &lt;code&gt;logcheck&lt;/code&gt;, un programa que escanea los ficheros de &lt;em&gt;log&lt;/em&gt;
del sistema en busca de &amp;ldquo;líneas interesantes&amp;rdquo;, comencé a recibir
demasiados avisos del tipo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Jan 7 02:04:38 terminus ntpd[1117]: kernel time sync status change 6001
&amp;#34;1117&amp;#34;
Jan 7 02:21:44 terminus ntpd[1117]: kernel time sync status change 2001
&amp;#34;1117&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href="http://lists.freebsd.org/pipermail/freebsd-stable/2005-April/013404.html"&gt;Estos cambios son debidos&lt;/a&gt; a que &lt;code&gt;ntp&lt;/code&gt; cambia &lt;a href="http://www.eecis.udel.edu/~mills/database/papers/allan.pdf"&gt;dinámicamente&lt;/a&gt; entre
los modo &lt;code&gt;FLL&lt;/code&gt; y el &lt;code&gt;PLL&lt;/code&gt;, lo que le permite tener en cuenta la latencia
de la red o el &lt;em&gt;jitter&lt;/em&gt; a la hora de actualizar el reloj del sistema.&lt;/p&gt;</description></item><item><title>Actualizando Ubuntu a la última distribución de forma remota</title><link>http://karpoke.ignaciocano.com/2011/01/07/actualizando-ubuntu-a-la-ultima-distribucion-de-forma-remota/</link><pubDate>Fri, 07 Jan 2011 04:38:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/01/07/actualizando-ubuntu-a-la-ultima-distribucion-de-forma-remota/</guid><description>&lt;p&gt;Instalamos el paquete &lt;code&gt;update-manager&lt;/code&gt;, si es que no lo teníamos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo aptitude install update-manager
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Comprobamos que el fichero &lt;code&gt;/etc/update-manager/release-upgrades&lt;/code&gt;
contiene:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Prompt=normal
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Si contiene &lt;code&gt;Prompt=lts&lt;/code&gt; sólo nos actualizará si hay una &lt;a href="http://es.wikipedia.org/wiki/Ubuntu"&gt;LTS&lt;/a&gt; nueva.
Si contiene &lt;code&gt;Prompt=never&lt;/code&gt;&amp;hellip; no actualizará nada.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Ape Man Evolution" loading="lazy" src="http://karpoke.ignaciocano.com/images/ape_man_evolution.png"&gt;&lt;/p&gt;
&lt;p&gt;Y ejecutamos el comando &lt;code&gt;do-release-upgrade&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo do-release-upgrade
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;» &lt;a href="http://www.ubuntugeek.com/how-to-upgrade-from-ubuntu-10-04-lucid-to-ubuntu-10-10-maverick-desktop-and-server.html"&gt;ubuntugeek&lt;/a&gt;&lt;/p&gt;</description></item><item><title>CSRF en el panel de administración del router Arcadyan de ya.com</title><link>http://karpoke.ignaciocano.com/2011/01/01/csrf-en-el-panel-de-administracion-del-router-arcadyan-de-ya-com/</link><pubDate>Sat, 01 Jan 2011 18:46:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/01/01/csrf-en-el-panel-de-administracion-del-router-arcadyan-de-ya-com/</guid><description>&lt;p&gt;El router es un Arcadyan, modelo Astoria AVR4518PW. Y parece que es
vulnerable a ataques CSRF.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Router Arcadyan" loading="lazy" src="http://karpoke.ignaciocano.com/images/router-arcadyan-300x225.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Si tienes este router y has iniciado sesión en el panel de
administración, pulsando en el siguiente enlace se &lt;a href="#"&gt;cerrará la sesión de
usuario&lt;/a&gt;. Si has cambiado la IP por defecto, 192.168.2.1, no
funcionará, pero lo puedes probar escribiendo en la barra de direcciones
del navegador:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;javascript:document.location.href=&amp;#39;http://192.168.2.1/cgi-bin/logout.exe&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;**INCLUSO si lo haces desde un navegador distinto al que tengas abierta
la página de administración del &lt;em&gt;router&lt;/em&gt;, o desde la consola!!!__ Por lo
que supongo que el router, una vez autenticado el usuario desde una IP,
autoriza cualquier petición que provenga desde esa IP.&lt;/p&gt;</description></item><item><title>Asignar la IP que queramos a un dominio de DynDNS</title><link>http://karpoke.ignaciocano.com/2010/12/30/asignar-la-ip-que-queramos-a-un-dominio-de-dyndns/</link><pubDate>Thu, 30 Dec 2010 19:12:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/12/30/asignar-la-ip-que-queramos-a-un-dominio-de-dyndns/</guid><description>&lt;p&gt;Con el comando &lt;code&gt;inadyn&lt;/code&gt; podemos actualizar la IP de nuestro dominio, o
&lt;a href="http://karpoke.ignaciocano.com/2010/12/11/dyndns-e-inadyn/"&gt;dominios&lt;/a&gt;, en DynDNS, pero la IP no se pasa como argumento sino que
se hace una consulta a un servidor que devuelve la IP pública que
tenemos en ese momento. Por defecto, el servidor es
&lt;code&gt;checkip.dyndns.org:80&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Podemos hacer que el dominio apunte a la IP que queramos utilizando el
argumento &lt;code&gt;--ip_server_name&lt;/code&gt; para especificar un servidor controlado por
nosotros y que devuelva la IP que queramos.&lt;/p&gt;</description></item><item><title>La infame actualización de WordPress en 15 segundos</title><link>http://karpoke.ignaciocano.com/2010/12/30/la-infame-actualizacion-de-wordpress-en-15-segundos/</link><pubDate>Thu, 30 Dec 2010 04:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/12/30/la-infame-actualizacion-de-wordpress-en-15-segundos/</guid><description>&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Copia de respaldo de la base de datos&lt;/strong&gt;. Entre el flag &lt;code&gt;-u&lt;/code&gt; y el&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;nombre de usuario no debe haber ningún espacio. Ojo, se bloquearán
las tablas hasta que termine. Y otro ojo, no es muy recomendable
escribir la contraseña directamente en la línea de comandos. Si sólo
ponemos el flag `-p`, se nos pedirá la contraseña para el usuario
proporcionado.
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; $ /usr/bin/mysqldump -uuser -p --all-databases | gzip &amp;gt; mysql-$(date +%F).tgz
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;
&lt;li&gt;&lt;strong&gt;Copia de respaldo de los archivos&lt;/strong&gt;. Tanto del directorio&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;`wp-uploads` como del directorio `wordpress`.
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; $ tar -cvzf wordpress-$(date +%F).tgz /usr/share/wordpress
$ tar -cvzf wp-uploads-$(date +%F).tgz /var/www/wp-uploads
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="3"&gt;
&lt;li&gt;&lt;strong&gt;Desactivamos todos los &lt;em&gt;plugins&lt;/em&gt;&lt;/strong&gt; desde el panel de control.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Eliminamos los subdirectorios&lt;/strong&gt; &lt;code&gt;wp-admin&lt;/code&gt; y &lt;code&gt;wp-includes&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; $ cd /usr/share/wordpress
$ sudo rm -fr wp-admin wp-includes
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="5"&gt;
&lt;li&gt;&lt;strong&gt;Instalamos&lt;/strong&gt; la última versión.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; $ wget -NP /tmp http://wordpress.org/latest.zip
$ sudo unzip /tmp/latest.zip -d /usr/share # yes to [A]ll
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="6"&gt;
&lt;li&gt;Comprobamos si se debe &lt;strong&gt;actualizar la base de datos de WordPress&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;En principio, basta ir al panel de administración y ahí nos
aparecerá un mensaje diciéndonos que es necesario actualizar la base
de datos y que visitemos la página `/wp-admin/upgrade.php` para
realizar dicha actualización.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En una sola línea:&lt;/p&gt;</description></item><item><title>Robando la identidad del vecino</title><link>http://karpoke.ignaciocano.com/2010/12/18/robando-la-identidad-del-vecino/</link><pubDate>Sat, 18 Dec 2010 21:22:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/12/18/robando-la-identidad-del-vecino/</guid><description>&lt;p&gt;&lt;a href="http://codebutler.com/firesheep"&gt;Firesheep&lt;/a&gt; es un complemento para Firefox que permite &lt;a href="http://alt1040.com/2010/10/firesheep-facebook-google-twitter-windows-live-wordpress-google"&gt;robar la
identidad&lt;/a&gt; de los usuarios de diferentes redes sociales (&lt;a href="http://karpoke.ignaciocano.com/2010/10/31/como-publicar-directorios-en-ubuntu-one-y-dropbox/"&gt;Dropbox&lt;/a&gt;,
&lt;a href="http://karpoke.ignaciocano.com/2010/10/23/senoras-que-se-ponen-un-nombre-falso-en-facebook-pero-usan-su-direccion-de-correo-personal/"&gt;Facebook&lt;/a&gt;, Flickr, &lt;a href="http://karpoke.ignaciocano.com/2010/12/13/csrf-en-las-busquedas-de-google/"&gt;Google&lt;/a&gt;, Twitter, Windows Live,
&lt;a href="http://karpoke.ignaciocano.com/2010/12/30/la-infame-actualizacion-de-wordpress-en-15-segundos/"&gt;Wordpress&lt;/a&gt;&amp;hellip;) que se encuentren conectados a la misma red que el
ladrón. La mejor manera de &lt;a href="http://alt1040.com/2010/11/como-protegerse-de-firesheep"&gt;evitarlo&lt;/a&gt; es cifrar el tráfico, por
ejemplo utilizando &lt;a href="http://www.eff.org/https-everywhere"&gt;HTTPS-everywhere&lt;/a&gt;, otro complemento para Firefox.&lt;/p&gt;
&lt;p&gt;&lt;img alt="HTTPS Everywhere prefs" loading="lazy" src="http://karpoke.ignaciocano.com/images/https-everywhere-prefs-300x110.png"&gt;&lt;/p&gt;
&lt;p&gt;Poco después surgió &lt;a href="http://www.zscaler.com/blacksheep.html"&gt;Blacksheep&lt;/a&gt;, otro complemento más, que nos alerta
si un usuario de la misma red está utilizando FireSheep.&lt;/p&gt;</description></item><item><title>Buscando rootkits y troyanos</title><link>http://karpoke.ignaciocano.com/2010/12/17/buscando-rootkits-y-troyanos/</link><pubDate>Fri, 17 Dec 2010 03:04:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/12/17/buscando-rootkits-y-troyanos/</guid><description>&lt;p&gt;Tres herramientas muy útiles: &lt;code&gt;rkhunter&lt;/code&gt;, &lt;code&gt;chkrootkit&lt;/code&gt; y &lt;code&gt;unhide&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="rkhunter"&gt;rkhunter&lt;/h2&gt;
&lt;p&gt;Busca &lt;em&gt;rootkits&lt;/em&gt;, puertas traseras y &lt;em&gt;exploits&lt;/em&gt;. Al instalarlo, se
programa un escaneo diario, pero cuando instalamos las actualizaciones
de algunos programas, &lt;a href="http://www.mail-archive.com/rkhunter-users@lists.sourceforge.net/msg01966.html"&gt;las firmas de &lt;code&gt;rkhunter&lt;/code&gt; quedan obsoletas&lt;/a&gt;, por
lo que empieza a mandar avisos.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Warning: The file properties have changed:
File: /usr/bin/md5sum
Current inode: 1093680 Stored inode: 475456
Current file modification time: 1285094009 (21-sep-2010 20:33:29)
Stored file modification time : 1267759792 (05-mar-2010 04:29:52)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Podemos actualizar las firmas de &lt;code&gt;rkhunter&lt;/code&gt; ejecutando:&lt;/p&gt;</description></item><item><title>Mejora del rendimiento interactivo agrupando tareas por terminal</title><link>http://karpoke.ignaciocano.com/2010/12/16/mejora-del-rendimiento-interactivo-agrupando-tareas-por-terminal/</link><pubDate>Thu, 16 Dec 2010 02:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/12/16/mejora-del-rendimiento-interactivo-agrupando-tareas-por-terminal/</guid><description>&lt;p&gt;El &lt;a href="http://lkml.org/lkml/2010/10/19/123"&gt;parche de 200 líneas&lt;/a&gt; para el kernel, o su versión en &lt;a href="http://usemoslinux.blogspot.com/2010/11/foto-resumen-tras-haber-realizado-el.html"&gt;espacio de
usuario&lt;/a&gt;, &lt;a href="http://ubuntulife.wordpress.com/2010/11/20/el-parche-milagro-de-linux-de-200-lineas-implementado-en-4-lineas-de-bash/#comment-43848"&gt;mejora el rendimiento interactivo&lt;/a&gt; agrupando los procesos
por &lt;code&gt;tty&lt;/code&gt;. La mejora sólo será notable si tenemos varios procesos
asociados a un terminal que tengan un consumo importante de CPU, ya que
la potencia de ésta no se repartirá entre el número de procesos sino
entre el número de grupos de procesos. De ahí que sea una mejora
&lt;em&gt;interactiva&lt;/em&gt;, el ordenador no irá más rápido, pero sí tendremos la
sensación de que responde más rápido. Este parche requiere un kernel
superior al 2.6.36 con soporte a grupos de tareas.&lt;/p&gt;</description></item><item><title>CSRF en las búsquedas de Google</title><link>http://karpoke.ignaciocano.com/2010/12/13/csrf-en-las-busquedas-de-google/</link><pubDate>Mon, 13 Dec 2010 14:31:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/12/13/csrf-en-las-busquedas-de-google/</guid><description>&lt;blockquote&gt;
&lt;p&gt;No se ha encontrado ningún resultado&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="No injury is acceptable" loading="lazy" src="http://karpoke.ignaciocano.com/images/no-injury-is-acceptable-300x233.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Si ahora mismo tienes una sesión de Google iniciada, puedes ir al
&lt;a href="http://google.com/history"&gt;histórico de búsquedas de Google&lt;/a&gt; y verás que aparece una búsqueda
que no has realizado&amp;hellip; conscientemente.&lt;/p&gt;
&lt;p&gt;El truco, un ataque &lt;a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery"&gt;CSRF&lt;/a&gt; comentado por &lt;a href="http://jeremiahgrossman.blogspot.com/2010/12/spoofing-google-search-history-with.html"&gt;Jeremiah Grossman&lt;/a&gt;,
consiste en añadir en el código HTML de la página una imagen cuyo &lt;code&gt;src&lt;/code&gt;
sea la URL de la búsqueda que queramos que realice el que visite la
página. Por ejemplo:&lt;/p&gt;</description></item><item><title>Dyndns e inadyn</title><link>http://karpoke.ignaciocano.com/2010/12/11/dyndns-e-inadyn/</link><pubDate>Sat, 11 Dec 2010 03:29:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/12/11/dyndns-e-inadyn/</guid><description>&lt;p&gt;&lt;a href="http://free.domain.name/"&gt;Dyndns&lt;/a&gt; no hace mucho que cambió su política de servicios, reduciendo
el número de direcciones gratuitas que se podían gestionar con una
cuenta de usuario de 5 a 2, y reduciendo también el número de dominios
entre los que escoger.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Karpoke" loading="lazy" src="http://karpoke.ignaciocano.com/extra/favicon.ico"&gt;&lt;/p&gt;
&lt;p&gt;Sin embargo, si antes de que cambiaran la política ya teníamos más de 2
direcciones o eran de dominios que ya no están disponibles, podremos
seguir conservándolos mientras sigan siendo utilizados, es decir,
mientras se siga actualizando regularmente la IP a la que deben apuntar,
como mínimo una vez al mes. Si actualmente usamos la dirección no hay
problema, ya se encarga el router o el cliente de escritorio de
actualizarla. Pero si tenemos alguna dirección que no estamos utilizando
pero que queremos conservar y tenemos más de 2 direcciones en nuestra
cuenta, corremos el peligro de que se nos pase y la perdamos.&lt;/p&gt;</description></item><item><title>Póster casero</title><link>http://karpoke.ignaciocano.com/2010/12/11/poster-casero/</link><pubDate>Sat, 11 Dec 2010 02:52:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/12/11/poster-casero/</guid><description>&lt;p&gt;Si tenemos una imagen y queremos crear un póster impreso (y montado a
base de folios) por nosotros mismos podemos utilizar un servicio como
&lt;a href="http://www.hogargeek.com/posters-de-hagalo-usted-mismo-con-block-posters/"&gt;Block posters&lt;/a&gt;. También podemos utilizar los comandos &lt;code&gt;convert&lt;/code&gt; y
&lt;code&gt;pdfposter&lt;/code&gt; para conseguir lo mismo.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Mapa del Software Libre - 03.02.2010 - René Mérou" loading="lazy" src="http://karpoke.ignaciocano.com/images/Mapa-del-Software-Libre-03.02.2010-Ren%C3%A9-M%C3%A9rou-300x211.png"&gt;&lt;/p&gt;
&lt;p&gt;Primero creamos un PDF a partir de la imagen, en este caso del &lt;a href="http://www.es.gnu.org/~reneme/fsmap/"&gt;mapa del
software libre&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ convert mapa-del-software-libre.png mapa-del-software-libre.pdf
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ahora ya podemos crear el póster:&lt;/p&gt;</description></item><item><title>Intercambio de los valores de dos variables</title><link>http://karpoke.ignaciocano.com/2010/12/03/intercambio-de-los-valores-de-dos-variables/</link><pubDate>Fri, 03 Dec 2010 21:01:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/12/03/intercambio-de-los-valores-de-dos-variables/</guid><description>&lt;p&gt;&lt;img alt="Teleporter" loading="lazy" src="http://karpoke.ignaciocano.com/images/teleporter-300x299.jpg"&gt;&lt;/p&gt;
&lt;p&gt;En algunos lenguajes, intercambiar el valor de la variable &lt;code&gt;a&lt;/code&gt; por el de
la variable &lt;code&gt;b&lt;/code&gt; implica, explícitamente, utilizar una variable temporal:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;t = a;
a = b;
b = t;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En Python:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;a, b = b, a
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pero esperen, aún hay más:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;a, b, c, d = d, c, b, a
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h4 id="actualizado-el-31-de-julio-de-2011"&gt;Actualizado el 31 de julio de 2011&lt;/h4&gt;
&lt;p&gt;En &lt;a href="http://www.commandlinefu.com/commands/view/8937/multiple-variable-assignments-from-command-output-in-bash"&gt;Bash&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ read a b c &amp;lt;&amp;lt;&amp;lt; $(echo $c $b $a)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href="http://www.commandlinefu.com/commands/view/8943/multiple-variable-assignments-from-command-output-in-bash"&gt;Otra manera&lt;/a&gt;:&lt;/p&gt;</description></item><item><title>Buscar en todos los campos de un modelo en Django</title><link>http://karpoke.ignaciocano.com/2010/11/19/buscar-en-todos-los-campos-de-un-modelo-en-django/</link><pubDate>Fri, 19 Nov 2010 20:49:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/11/19/buscar-en-todos-los-campos-de-un-modelo-en-django/</guid><description>&lt;p&gt;Una acción típica que se va a repetir en, prácticamente, cada listado
que mostremos, es la de añadir un buscador [1]. Un buscador típico
incluirá un pequeño formulario en la misma página de listado:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;form method=&amp;#34;get&amp;#34; action=&amp;#34;&amp;#34;&amp;gt;
&amp;lt;input type=&amp;#34;text&amp;#34; name=&amp;#34;q&amp;#34; value=&amp;#34;{{ q }}&amp;#34; /&amp;gt;
&amp;lt;input type=&amp;#34;submit&amp;#34; value=&amp;#34;Search&amp;#34; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Nos interesaría no tener que ir copiando y pengando este código en cada
listado. Aunque sea un código que no vaya a cambiar, viola el principio
de DRY.&lt;/p&gt;</description></item><item><title>Control de concurrencia optimista en Django</title><link>http://karpoke.ignaciocano.com/2010/11/05/control-de-concurrencia-optimista-en-django/</link><pubDate>Fri, 05 Nov 2010 18:11:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/11/05/control-de-concurrencia-optimista-en-django/</guid><description>&lt;p&gt;Si tenemos una aplicación multiusuario, podría darse el caso de que dos
usuarios accediesen simultáneamente al mismo registro para editarlo. Si
no controlamos este evento, sucederá que el primero que guarde, que no
tiene porqué ser el primero que comenzó a editar, perderá los cambios, y
lo que es peor, sin enterarse.&lt;/p&gt;
&lt;p&gt;Una solución sería utilizar &lt;a href="http://docs.djangoproject.com/en/dev/topics/db/transactions/"&gt;transacciones&lt;/a&gt; [1], pero éstas deberían
abarcar varias peticiones HTTP, desde que se empieza a editar hasta que
se guarda satisfactoriamente (o no), con lo que la solución idónea se
complica. Una solución más sencilla, pero efectiva en la inmensa mayoría
de casos, es utilizar el &lt;a href="http://stackoverflow.com/questions/320096/django-how-can-i-protect-against-concurrent-modification-of-data-base-entries"&gt;control de concurrencia optimista&lt;/a&gt; (también
comentado en &lt;a href="http://hardware.slashdot.org/comments.pl?sid=1381511&amp;amp;cid=29536367"&gt;slashdot&lt;/a&gt;).&lt;/p&gt;</description></item><item><title>Cómo publicar directorios en Ubuntu One y Dropbox</title><link>http://karpoke.ignaciocano.com/2010/10/31/como-publicar-directorios-en-ubuntu-one-y-dropbox/</link><pubDate>Sun, 31 Oct 2010 06:28:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/10/31/como-publicar-directorios-en-ubuntu-one-y-dropbox/</guid><description>&lt;p&gt;&lt;a href="http://one.ubuntu.com/"&gt;Ubuntu One&lt;/a&gt; es el servicio que ofrece Ubuntu en la nube. Entre otras
cosas, como &lt;a href="http://wiki.ubuntu.com/UbuntuOne/Tutorials/"&gt;sincronizar archivos de configuración o nuestros
favoritos&lt;/a&gt;, permite &lt;a href="http://wiki.ubuntu.com/UbuntuOne/Tutorials/FileSharing"&gt;compartir archivos y directorios&lt;/a&gt; de nuestro
espacio en la nube con las personas que queramos de una forma sencilla.&lt;/p&gt;
&lt;p&gt;Tambíen permite publicar archivos, para cada uno de los cuales se genera
una URL corta, y que sean accesibles por cualquiera. Sin embargo, &lt;a href="http://lists.launchpad.net/ubuntuone-users/msg00523.html"&gt;no
permite publicar directorios&lt;/a&gt;, al menos por ahora.&lt;/p&gt;</description></item><item><title>The name of the game</title><link>http://karpoke.ignaciocano.com/2010/10/28/the-name-of-the-game/</link><pubDate>Thu, 28 Oct 2010 19:07:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/10/28/the-name-of-the-game/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Cuando el Imperio Galáctico entró en decadencia, Hari Seldon, miembro
de la corte del Emperador Cleón I, desarrolló la ciencia de la
Psicohistoria. De esta manera, predijo que cuando el Imperio terminara
de derrumbarse, comenzaría una edad oscura de 30.000 años, con la
galaxia sumida en el caos. Esta edad terminaría con el ascenso de un
Nuevo Imperio. Usando las leyes de esta nueva ciencia, Seldon inventó
un plan para reducir el interregnum de 30.000 a sólo 1.000 años,
plantando las semillas de una nueva civilización.&lt;/p&gt;</description></item><item><title>USB Dumping</title><link>http://karpoke.ignaciocano.com/2010/10/27/usb-dumping/</link><pubDate>Wed, 27 Oct 2010 19:44:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/10/27/usb-dumping/</guid><description>&lt;p&gt;El &lt;a href="http://www.seguridadapple.com/2010/10/usb-dumping-en-mac-os-x.html"&gt;USB Dumping&lt;/a&gt; consiste en copiar el &lt;a href="http://karpoke.ignaciocano.com/2010/10/27/recuperando-archivos-del-usb/"&gt;contenido de un USB&lt;/a&gt;
introducido en un ordenador, sin que la víctima se entere.&lt;/p&gt;
&lt;p&gt;En Ubuntu, podemos conseguir que se ejecute el &lt;em&gt;script&lt;/em&gt; que llevará a
cabo el robo de información, cuando se conecte un dispositivo USB. Para
ello, deberemos crear alguna &lt;a href="http://www.reactivated.net/writing_udev_rules.html"&gt;regla de &lt;code&gt;udev&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="udev-y-sysfs"&gt;&lt;code&gt;udev&lt;/code&gt; y &lt;code&gt;sysfs&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;udev&lt;/code&gt; se encarga de crear los nodos en &lt;code&gt;/dev&lt;/code&gt; para los dispositivos
presentes en el sistema. Para ello, se basa en la información
prorcionada por &lt;code&gt;sysfs&lt;/code&gt; y una serie de reglas proporcionadas por el
usuario. &lt;code&gt;sysfs&lt;/code&gt; devuelve información de los dispositivos conectados al
sistema, y &lt;code&gt;udev&lt;/code&gt; lo utiliza para crear los nodos &lt;code&gt;/dev&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>y2k38</title><link>http://karpoke.ignaciocano.com/2010/10/27/y2k38/</link><pubDate>Wed, 27 Oct 2010 12:55:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/10/27/y2k38/</guid><description>&lt;p&gt;&lt;img alt="Nuke mushroom" loading="lazy" src="http://karpoke.ignaciocano.com/images/nuke_mushroom-300x165.jpg"&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ grep INT_MAX /usr/include/limits.h
# define INT_MAX 2147483647
$ date -u -d @2147483647
mar ene 19 03:14:07 UTC 2038
$ date -d @2147483647
mar ene 19 04:14:07 CET 2038
$ date -u -d @2147483648
date: fecha ``@2147483648&amp;#39;&amp;#39; inválida
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Recuperando archivos del USB</title><link>http://karpoke.ignaciocano.com/2010/10/27/recuperando-archivos-del-usb/</link><pubDate>Wed, 27 Oct 2010 11:57:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/10/27/recuperando-archivos-del-usb/</guid><description>&lt;p&gt;Tengo la mala costumbre de borrar archivos utilizando la combinación
&lt;code&gt;shift+del&lt;/code&gt;, para borrarlos directamente sin pasar por la papelera.
Llegará el momento en que borre algo que no debería o algo que
necesitaré más tarde.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Sushi USB2" loading="lazy" src="http://karpoke.ignaciocano.com/images/sushi_usb_2-300x190.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Si esto sucediese, lo mejor podría ser:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Desmontar el USB para evitar males mayores&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ sudo umount /media/miusb # &amp;#39;miusb&amp;#39; es el nombre del volumen del USB
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;
&lt;li&gt;Hacer una copia del USB con &lt;code&gt;dd&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ dd if=/dev/sdb1 of=/tmp/miusb.dd # sdb1 es la unidad donde se monta el USB
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="3"&gt;
&lt;li&gt;Podemos listar los archivos borrados con &lt;code&gt;ils&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ ils -r /tmp/miusb.dd
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;class|host|device|start_time
ils|anacreonte||1288172460
st_ino|st_alloc|st_uid|st_gid|st_mtime|st_atime|st_ctime|st_crtime|st_mode|st_nlink|st_size
8|f|0|0|1263329350|1265842800|0|1263329350|777|0|33076
12|f|0|0|1265738134|1288130400|0|1265738134|777|0|31609
14|f|0|0|1263325690|1288130400|0|1263325690|777|0|28946
16|f|0|0|1263326438|1288130400|0|1263326438|777|0|2305751
19|f|0|0|1263327386|1288130400|0|1263327386|777|0|91028
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="4"&gt;
&lt;li&gt;Creamos un directorio para tener todos los archivos que se puedan&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;recuperar
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;$ mkdir /tmp/miusb_tmp
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="5"&gt;
&lt;li&gt;Recuperamos los archivos con &lt;code&gt;icat&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ for i in $(ils -r /tmp/miusb.dd | awk &amp;#39;{print $1}&amp;#39; FS=&amp;#34;|&amp;#34; | sed 1,3d); do
icat -r /tmp/miusb.dd $i &amp;gt; /tmp/miusb_tmp/$i
echo $i
done
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="6"&gt;
&lt;li&gt;Comprobamos el tipo de archivos recuperados&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ file /tmp/miusb_tmp/*
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;8: OpenDocument Text
12: PDF document, version 1.2
14: PDF document, version 1.3
16: PDF document, version 1.4
19: PDF document, version 1.2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;ils&lt;/code&gt; y &lt;code&gt;icat&lt;/code&gt; vienen incluidos en el paquete &lt;code&gt;sleuthkit&lt;/code&gt;, que se
encuentra en los repositorios. También existe &lt;code&gt;autopsy&lt;/code&gt;, que es una
interfaz web para &lt;code&gt;sleuthkit&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Sa Nostra y SSL</title><link>http://karpoke.ignaciocano.com/2010/10/25/sa-nostra-y-ssl/</link><pubDate>Mon, 25 Oct 2010 11:50:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/10/25/sa-nostra-y-ssl/</guid><description>&lt;p&gt;Leyendo la comparativa de &lt;a href="http://www.securitybydefault.com/2010/10/bancos-y-ssl-quien-aprueba.html"&gt;SbD&lt;/a&gt; sobre el uso de SSL por parte de los
bancos online, estos son los resultados de Sa Nostra:&lt;/p&gt;
&lt;p&gt;URL: &lt;a href="https://linea.sanostra.es"&gt;https://linea.sanostra.es&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="verificación-sslv2"&gt;Verificación SSLv2&lt;/h2&gt;
&lt;p&gt;Comando:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ openssl s_client -ssl2 -connect linea.sanostra.es:443
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Bien: no da soporte&lt;/p&gt;
&lt;h2 id="tipo-de-certificado-normalev"&gt;Tipo de certificado (Normal/EV)&lt;/h2&gt;
&lt;p&gt;Esto lo podemos comprobar a través del navegador.
Mal: Tiene un certificado SSL sin Validación Extendida.&lt;/p&gt;
&lt;h2 id="longitud-de-la-clave-rsa-del-certificado"&gt;Longitud de la clave RSA del certificado&lt;/h2&gt;
&lt;p&gt;Comando:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ openssl s_client -connect linea.sanostra.es:443
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Mal: La clave es de 1024 bits.&lt;/p&gt;</description></item><item><title>Fuck yeah</title><link>http://karpoke.ignaciocano.com/2010/10/23/fuck-yeah/</link><pubDate>Sat, 23 Oct 2010 18:33:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/10/23/fuck-yeah/</guid><description>&lt;p&gt;&lt;img alt="Keyboard" loading="lazy" src="http://karpoke.ignaciocano.com/images/keyboard-300x125.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.codinghorror.com/blog/2010/10/the-keyboard-cult.html"&gt;keyboard cult&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Señoras que se ponen un nombre falso en Facebook pero usan su dirección de correo personal</title><link>http://karpoke.ignaciocano.com/2010/10/23/senoras-que-se-ponen-un-nombre-falso-en-facebook-pero-usan-su-direccion-de-correo-personal/</link><pubDate>Sat, 23 Oct 2010 13:30:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/10/23/senoras-que-se-ponen-un-nombre-falso-en-facebook-pero-usan-su-direccion-de-correo-personal/</guid><description>&lt;p&gt;Facebook permite buscar usuarios por su dirección de correo. De hecho,
es así como encuentra amigos en GMail o en el Messenger.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Bag Face" loading="lazy" src="http://karpoke.ignaciocano.com/images/bag_face-227x300.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Si usamos GMail, podemos seguir usando nuestro correo personal pero
evitando que nos puedan localizar usando éste.&lt;/p&gt;
&lt;p&gt;Podemos añadir un sufijo a nuestro &lt;em&gt;nick&lt;/em&gt; en la dirección de correo,
precedido por el signo &lt;code&gt;+&lt;/code&gt;, y los correos enviados a esa dirección nos
seguirán llegando a nuestra cuenta. Por ejemplo, los correos enviados a
&lt;code&gt;spamme+please@gmail.com&lt;/code&gt;, seguirán llegando a la cuenta
&lt;code&gt;spamme@gmail.com&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>La guardiana de la puerta</title><link>http://karpoke.ignaciocano.com/2010/10/22/la-guardiana-de-la-puerta/</link><pubDate>Fri, 22 Oct 2010 19:37:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/10/22/la-guardiana-de-la-puerta/</guid><description>&lt;p&gt;¿A veces no os gustaría saber si el que se mete en vuestra casa no es el
maestro de las llaves?&lt;/p&gt;
&lt;p&gt;&lt;img alt="la guardiana de la puerta" loading="lazy" src="http://karpoke.ignaciocano.com/images/guardiana-300x260.jpg"&gt;&lt;/p&gt;
&lt;p&gt;En &lt;a href="http://serverfault.com/questions/77983/run-shell-script-each-time-any-user-logs-on"&gt;ubuntu&lt;/a&gt;, los &lt;em&gt;scripts&lt;/em&gt; que estén en el directorio &lt;code&gt;/etc/profile.d&lt;/code&gt;
se ejecutan cada vez que un usuario inicia la sesión. Si nuestro
servidor sólo lo usamos nosotros, y si no también, podríamos &lt;a href="http://terminus.ignaciocano.com/wp-uploads/linked/user-has-logged-in.sh"&gt;enviarnos
un correo cada vez que un usuario se conecta&lt;/a&gt;. Así, al menos,
podríamos saber si alguien ha entrado con nuestro usuario.&lt;/p&gt;</description></item><item><title>De aquí al 2038</title><link>http://karpoke.ignaciocano.com/2010/10/07/de-aqui-al-2038/</link><pubDate>Thu, 07 Oct 2010 13:27:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/10/07/de-aqui-al-2038/</guid><description>&lt;p&gt;Como bien dice el agente Smith, es cuestión de contrastar un poco.
&lt;a href="http://rinzewind.org/archives/2010/10/07/5-viernes-5-sabados-5-domingos/"&gt;Octubres&lt;/a&gt; con 5 viernes, 5 sábados y 5 domingos, de aquí al &lt;a href="http://es.wikipedia.org/wiki/Problema_del_a%C3%B1o_2038"&gt;2038&lt;/a&gt;,
si es que llegamos:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ for ((i=2011; i &amp;lt; 2039; i++)); do cal 10 $i; done |
grep -B2 -A4 &amp;#34; 1 2 3&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; Octubre 2021
lu ma mi ju vi sá do
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
--
Octubre 2027
lu ma mi ju vi sá do
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
--
Octubre 2032
lu ma mi ju vi sá do
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
--
Octubre 2038
lu ma mi ju vi sá do
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Mostrando las cabeceras HTTP</title><link>http://karpoke.ignaciocano.com/2010/10/07/mostrando-las-cabeceras-http/</link><pubDate>Thu, 07 Oct 2010 10:35:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/10/07/mostrando-las-cabeceras-http/</guid><description>&lt;p&gt;Leyendo el artículo de &lt;a href="http://www.securitybydefault.com/2010/08/analizando-cabeceras-http-just-for-fun.html"&gt;análisis de cabeceras&lt;/a&gt; de SbD y, en
particular, lo relacionado con las cabeceras no estándar, es decir, las
que comienzan por &lt;code&gt;X-&lt;/code&gt;, se me ha ocurrido que estaría bien ver qué debe
haber por el mundo:&lt;/p&gt;
&lt;p&gt;&lt;img alt="HTTP Header" loading="lazy" src="http://karpoke.ignaciocano.com/images/http_header.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Suponiendo que el archivo &lt;a href="http://terminus.ignaciocano.com/wp-uploads/linked/sites.txt"&gt;sites.txt&lt;/a&gt; contiene un listado de los
sitios que queremos comprobar:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ for url in $(cat sites.txt); do
&amp;gt; echo $url
&amp;gt; curl -sI $url | grep &amp;#34;^X-&amp;#34;
&amp;gt; done &amp;gt; headers.txt
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Es cierto que se podría haber realizado de otras formas:&lt;/p&gt;</description></item><item><title>De pantallas bloqueadas, capturas de pantalla y David Hasselhoff</title><link>http://karpoke.ignaciocano.com/2010/10/06/de-pantallas-bloqueadas-capturas-de-pantalla-y-david-hasselhoff/</link><pubDate>Wed, 06 Oct 2010 18:36:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/10/06/de-pantallas-bloqueadas-capturas-de-pantalla-y-david-hasselhoff/</guid><description>&lt;p&gt;El &lt;a href="http://windowstips.wordpress.com/2008/06/08/el-caso-del-hacker-de-la-oficina/"&gt;ataque David Hasselhof&lt;/a&gt; es una de las técnicas de guerrilla de
oficina con la mejor relación coste/humillación ^&lt;em&gt;[cita\ requerida]&lt;/em&gt;^,
basta encontrarse una sesión de usuario abierta (y no protegida contra
este &amp;ldquo;ataque&amp;rdquo;) y, ¡zas!, en toda la boca.&lt;/p&gt;
&lt;p&gt;No sé si un &lt;a href="http://www.seguridadapple.com/2010/10/mostrar-avisos-disuasorios-en-la.html"&gt;aviso disuasorio&lt;/a&gt; como medida de prevención contra este
tipo de ataque será efectivo, pero me ha hecho preguntarme cómo
podríamos incluirlo en Gnome.&lt;/p&gt;
&lt;h2 id="capturas-de-pantalla"&gt;Capturas de pantalla&lt;/h2&gt;
&lt;p&gt;Curiosamente, lo primero que he encontrado sobre la ventana de
desbloquear la pantalla es que no se puede realizar una captura de
pantalla de la misma pulsando la tecla &lt;code&gt;Impr Pant&lt;/code&gt;; pruébalo!&lt;/p&gt;</description></item><item><title>Actualización recursiva de un diccionario en Python</title><link>http://karpoke.ignaciocano.com/2010/09/28/actualizacion-recursiva-de-un-diccionario-en-python/</link><pubDate>Tue, 28 Sep 2010 13:50:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/09/28/actualizacion-recursiva-de-un-diccionario-en-python/</guid><description>&lt;p&gt;Cuando actualizamos un diccionario con otro en Pyhton, el método &lt;code&gt;update&lt;/code&gt; copia
las entradas del diccionario fuente en el diccionario destino, sobreescribiendo
las de éste si la entrada existe en ambos diccionarios.&lt;/p&gt;
&lt;p&gt;En particular, si un diccionario contiene una entrada que es a su vez otro
diccionario, no se realiza una actualización sobre ésta, por lo que se pierden
los valores que no estuvieran en el diccionario fuente.&lt;/p&gt;
&lt;p&gt;Ilustremos este comportamiento con un ejemplo:&lt;/p&gt;</description></item><item><title>Memento en Bash</title><link>http://karpoke.ignaciocano.com/2010/09/26/memento-en-bash/</link><pubDate>Sun, 26 Sep 2010 16:01:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/09/26/memento-en-bash/</guid><description>&lt;blockquote&gt;
&lt;p&gt;No me acuerdo de olvidarte.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="Memento Polaroid Natalie Clean" loading="lazy" src="http://karpoke.ignaciocano.com/images/memento_polaroids_natalieclean_18700997-248x300.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Si lo primero que haces nada más iniciar una sesión es abrir el
terminal. Varias ventanas, varias pestañas. &lt;code&gt;screen&lt;/code&gt;, &lt;code&gt;terminator&lt;/code&gt; o
&lt;code&gt;byobu&lt;/code&gt;. Es posible que, alguna vez, se te haya pasado por la cabeza que
sería interesante guardar una nota sobre algo que estamos haciendo, algo
que quisiéramos recordar más tarde, algo que quisiéramos no olvidar,
algo que está relacionado con el directorio en el que estamos.&lt;/p&gt;</description></item><item><title>La batería del portátil</title><link>http://karpoke.ignaciocano.com/2010/09/26/la-bateria-del-portatil/</link><pubDate>Sun, 26 Sep 2010 00:10:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/09/26/la-bateria-del-portatil/</guid><description>&lt;p&gt;Algunos &lt;a href="http://www.macoteca.com/falsos-mitos-de-las-baterias/90/"&gt;falsos mitos de las baterías del portátil&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Es necesario que se agote la batería para ponerla a cargar,&lt;/li&gt;
&lt;li&gt;no se debe dejar el portátil siempre enchufado a la corriente,&lt;/li&gt;
&lt;li&gt;ni se debe suspender conectado a la corriente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También existen técnicas para &lt;a href="http://www.macoteca.com/rejuvenece-la-bateria-de-tu-portatil/94/"&gt;alargar la vida de la batería&lt;/a&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;enchufa el portátil (y enciéndelo, si quieres) hasta que la batería&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;este cargada y déjalo cargando 2 horas más,
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;
&lt;li&gt;desenchufa el portátil y espera a que se gaste la batería e hiberne&lt;/li&gt;
&lt;li&gt;enchufa el portátil sin encenderlo hasta que se cargue la batería&lt;/li&gt;
&lt;li&gt;realizar estas operaciones cada 2 ó 3 meses&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En principio, las baterías de los portátiles &lt;em&gt;ya&lt;/em&gt; incorporan un
mecanismo que corta la corriente cuando éstas están totalmente cargadas,
evitando así la fatiga por la carga continua.&lt;/p&gt;</description></item><item><title>Bash DNS Cache Snooping</title><link>http://karpoke.ignaciocano.com/2010/09/25/bash-dns-cache-snooping/</link><pubDate>Sat, 25 Sep 2010 04:21:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/09/25/bash-dns-cache-snooping/</guid><description>&lt;p&gt;&lt;strong&gt;DNS Cache Snooping&lt;/strong&gt; consiste en realizar una serie de peticiones de
resolución de nombres de dominio a la caché de un servidor DNS, con la
finalidad de conocer si los usuarios de ese servidor han visitado esos
dominios. Hay que tener en cuenta que las entradas en la caché tienen un
tiempo de caducidad, y si durante ese tiempo no ha habido una petición a
un dominio, éste es eliminado.&lt;/p&gt;</description></item><item><title>Random Bash</title><link>http://karpoke.ignaciocano.com/2010/09/25/random-bash/</link><pubDate>Sat, 25 Sep 2010 00:54:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/09/25/random-bash/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;Los números aleatorios no deberían ser generados por un método
elegido aleatoriamente&amp;rdquo;. &lt;em&gt;Donald E. Knuth&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;En Bash, podemos obtener números enteros &lt;a href="http://es.wikipedia.org/wiki/Aleatoriedad"&gt;aleatorios&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ echo $RANDOM
20684
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Random number" loading="lazy" src="http://karpoke.ignaciocano.com/images/random_number-300x107.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Cada vez que se referencia el parámetro &lt;a href="http://linux.die.net/man/1/bash"&gt;RANDOM&lt;/a&gt;, éste devuelve un
valor entre 0 y 32767, es decir, 2^15^-1. Podemos inicializar la
secuencia de números aleatorios asignando un valor a RANDOM. Debemos
tener en cuenta que si le asignamos un valor vacío a RANDOM se pierden
sus propiedades especiales, aunque después lo inicialicemos.&lt;/p&gt;</description></item><item><title>JABH - Just Another Bash Hacker</title><link>http://karpoke.ignaciocano.com/2010/07/28/jabh/</link><pubDate>Wed, 28 Jul 2010 14:03:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/07/28/jabh/</guid><description>&lt;p&gt;Se le llama &lt;a href="http://en.wikipedia.org/wiki/Just_another_Perl_hacker"&gt;JAPH&lt;/a&gt; a un programa en Perl que escribe &amp;ldquo;Just another
Perl hacker,&amp;rdquo;. JABH vendría a ser algo parecido, en Bash:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ s=&amp;#34;Jaescunrhkso ettBhr haa,&amp;#34;;for y in {0..4};do for x in {0..4};do echo -n &amp;#34;${s:$((5*x+y)):1}&amp;#34;;done;done
Just another Bash hacker,
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Otra versión, algo más críptica:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ s=&amp;#34;Jaescunrhkso ettBhr haa,&amp;#34;;t=4;f(){ eval &amp;#34;for $1 in {0..$t};do eval $2;done;&amp;#34;;};f x &amp;#39;;f y &amp;#34;echo -n \&amp;#34;&amp;#39;\&amp;#39;&amp;#39;\${s:\$(((t+1)*y+x)):1}&amp;#39;\&amp;#39;&amp;#39;\&amp;#34;&amp;#34;&amp;#39;
Just another Bash hacker,
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Antes de que los robots dominaran el planeta</title><link>http://karpoke.ignaciocano.com/2010/07/28/antes-de-que-los-robots-dominaran-el-planeta/</link><pubDate>Wed, 28 Jul 2010 12:52:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/07/28/antes-de-que-los-robots-dominaran-el-planeta/</guid><description>&lt;p&gt;Si &lt;a href="http://es.wikipedia.org/wiki/Skynet_(Terminator)"&gt;Skynet&lt;/a&gt; no tomó conciencia de sí mismo el 29 de agosto de 1997,
seguro que fue gracias a que existen desarrolladores precavidos, como
los de &lt;a href="http://www.last.fm/robots.txt"&gt;last.fm&lt;/a&gt;, que añaden al &lt;code&gt;robots.txt&lt;/code&gt; las siguientes líneas:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Disallow: /harming/humans
Disallow: /ignoring/human/orders
Disallow: /harm/to/self
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Terminator Arm" loading="lazy" src="http://karpoke.ignaciocano.com/images/terminator_sideshow_endo_arm-208x300.jpg"&gt;&lt;/p&gt;
&lt;p&gt;» &lt;a href="http://barrapunto.com/article.pl?sid=10/07/28/0910235"&gt;barrapunto&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>