<?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>Ascii on Karpoke - Just Another Blog</title><link>http://karpoke.ignaciocano.com/tags/ascii/</link><description>Recent content in Ascii on Karpoke - Just Another Blog</description><generator>Hugo -- 0.159.0</generator><language>es</language><lastBuildDate>Wed, 01 Apr 2026 14:33:54 +0100</lastBuildDate><atom:link href="http://karpoke.ignaciocano.com/tags/ascii/index.xml" rel="self" type="application/rss+xml"/><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>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>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>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></channel></rss>