<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>eLKcro Team</title>
	<atom:link href="http://www.elkcro.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.elkcro.net</link>
	<description>Informática desde usuarios, para usuarios...</description>
	<lastBuildDate>Sun, 08 May 2011 18:23:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Tab Napping &#8211; Phishing</title>
		<link>http://www.elkcro.net/2011/05/tab-napping-phishing/</link>
		<comments>http://www.elkcro.net/2011/05/tab-napping-phishing/#comments</comments>
		<pubDate>Sun, 08 May 2011 05:20:29 +0000</pubDate>
		<dc:creator>aKcro</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[napping]]></category>
		<category><![CDATA[Phishing]]></category>

		<guid isPermaLink="false">http://www.elkcro.net/?p=698</guid>
		<description><![CDATA[A continuación mostraré un ejemplo de como se realiza este tipo de ataque, para lo cual he creado un ejemplo práctico.
En primer lugar para el que no sepa lo que es phishing, puede acudir a wikipedia en el siguiente enlace:
http://es.wikipedia.org/wiki/Phishing
El tab napping es una técnica que se aprovecha del uso de pestañas en los navegadores. Funciona de la siguiente forma, estamos en una pestaña y al ir a otra se redirecciona a una nueva página que simula ser alguna página de banco, red social, etc, con la finalidad de robar ...]]></description>
			<content:encoded><![CDATA[<p>A continuación mostraré un ejemplo de como se realiza este tipo de ataque, para lo cual he creado un ejemplo práctico.</p>
<p>En primer lugar para el que no sepa lo que es phishing, puede acudir a wikipedia en el siguiente enlace:</p>
<p><a href="http://es.wikipedia.org/wiki/Phishing">http://es.wikipedia.org/wiki/Phishing</a></p>
<p>El <strong>tab napping </strong>es una técnica que se aprovecha del uso de pestañas en los navegadores. Funciona de la siguiente forma, estamos en una pestaña y al ir a otra se redirecciona a una nueva página que simula ser alguna página de banco, red social, etc, con la finalidad de robar los datos del usuario.  El cambio a otra página es tan sutil que a través de esta técnica algunos delincuentes han logrado engañar a una gran cantidad de personas.</p>
<p>A continuación dejo una prueba de concepto, que pueden ver en el siguiente enlace:</p>
<p><a title="tab napping" href="http://www.elkcro.net/fb/test.html" target="_blank">www.elkcro.net/fb/test.html</a></p>
<p>Abrir en una nueva pestaña, y luego cambiar a otra para ver como funciona.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elkcro.net/2011/05/tab-napping-phishing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DLL Hijacking</title>
		<link>http://www.elkcro.net/2011/02/dll-hijacking/</link>
		<comments>http://www.elkcro.net/2011/02/dll-hijacking/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 20:17:40 +0000</pubDate>
		<dc:creator>aKcro</dc:creator>
				<category><![CDATA[eLKcro]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[DLL]]></category>
		<category><![CDATA[hijack]]></category>

		<guid isPermaLink="false">http://www.elkcro.net/?p=693</guid>
		<description><![CDATA[Hoy voy a explicar esta técnica a grandes rasgos:
En primer lugar el termino Hijacking es utilizado en el ámbito informático para referirse al secuestro de algo como web browser hijacking que es cuando se cambia de alguna forma la página de inicio con algún fin malicioso.
Dll es el acrónimo de &#8220;dynamic-link library&#8221; y son archivos con código ejecutable que se carga bajo la demanda de algún programa, como por ejemp wsock32.dll que proporciona una interfaz para las API de los sockets de windows.
Cuando se programa existen 3 formas de invocar ...]]></description>
			<content:encoded><![CDATA[<p>Hoy voy a explicar esta técnica a grandes rasgos:</p>
<p>En primer lugar el termino Hijacking es utilizado en el ámbito informático para referirse al secuestro de algo como web browser hijacking que es cuando se cambia de alguna forma la página de inicio con algún fin malicioso.</p>
<p>Dll es el acrónimo de &#8220;dynamic-link library&#8221; y son archivos con código ejecutable que se carga bajo la demanda de algún programa, como por ejemp wsock32.dll que proporciona una interfaz para las API de los sockets de windows.</p>
<p><span id="more-693"></span>Cuando se programa existen 3 formas de invocar direcciones, utilizando una ruta absoluta que sería algo como &#8220;c:/archivos de programa/hola mundo folder/hola mundo.dll&#8221;, utilizando rutas relativas como &#8220;../../hola mundo folder/hola mundo.dll&#8221;, y llamando al archivo directamente, es decir, &#8220;hola mundo.dll&#8221;.</p>
<p>Esta última es la más interesante, ya que llama al archivo a la carpeta actual desde donde se invoca por ejemplo un archivo asociado.  Supongamos que existe un archivo llamado &#8220;web.html&#8221; en el escritorio y que esta predeterminado que los archivos .html se abrán con un programa que se llamara &#8220;navegador.exe&#8221;, y que este programa intenta llamar a &#8220;hola mundo.dll&#8221;  sin rutas absolutas ni relativas. Veamos como sería al intentar cargar un dll, desde aquí deberíamos tener alguna idea de programación:</p>
<div id="_mcePaste">Cuando la función <strong>ShellExecute*</strong> es evocada, las siguientes ubicaciones son buscadas por el archivo que realiza la petición</div>
<div id="_mcePaste">1. El directorio de trabajo actual (CWD)</div>
<div id="_mcePaste">2.  (Windows\System32)</div>
<div id="_mcePaste">3.  (Windows\System)</div>
<div id="_mcePaste">4. El directorio de Windows (Windows)</div>
<div id="_mcePaste">5. Los directorios en las variables de entorno.</div>
<div id="_mcePaste">6. Los directorios agregados al registro.</div>
<p>Cuando <strong>SeachPath, CreateProcess*, y LoadModule</strong> son evocadas, las siguientes ubicaciones son buscadas por el archivo que realiza la petición.</p>
<p>1. El directorio desde donde la aplicación se carga</p>
<p>2. El directorio de trabajo actual (CWD)</p>
<p>3. (Windows\System)</p>
<p>4.  El directorio de Windows (Windows)</p>
<p>5.  Los directorios en las variables de entorno.</p>
<p>Falta información sobre algunas funciones como <strong>WinExec, LoadLibrary</strong> pero es información que esta en la red.</p>
<p>Ahora como saber en que orden se cargan las dll y si tienen rutas absolutas, relativas etc., debemos monitorear los procesos, para eso debemos descargar algún monitor:</p>
<p><a href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx" target="_blank">Descargar</a></p>
<p>La recomendación es agregar filtros, algo como esto (result is name not found, path ends with.dll):</p>
<p><a href="http://www.elkcro.net/wp-content/uploads/2011/02/filtros.png"><img class="aligncenter size-full wp-image-694" title="filtros" src="http://www.elkcro.net/wp-content/uploads/2011/02/filtros.png" alt="" width="511" height="303" /></a></p>
<p>Y una vez hecho esto deberían ver algo como esto:</p>
<p><a href="http://www.elkcro.net/wp-content/uploads/2011/02/procesos.png"><img class="aligncenter size-full wp-image-695" title="procesos" src="http://www.elkcro.net/wp-content/uploads/2011/02/procesos.png" alt="" width="665" height="140" /></a></p>
<p>Encontrando una aplicación vulnerable bastaría con reemplazar la dll por una a gusto y correr el programa vulnerable (si es que busca en una carpeta la dll y podemos ponerla ahí antes de que la encuentre en otra por eso es importante el orden de la búsqueda):</p>
<blockquote style="font-family: 'Times New Roman'; line-height: normal; font-size: small;">
<pre>#include &lt;windows.h&gt;

    int POC()
    {
      WinExec("calc", 0);
      exit(0);
      return 0;
    }

    BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
    {
      POC();
      return 0;
    }</pre>
</blockquote>
<p style="font-family: 'Times New Roman'; line-height: normal; font-size: small;">Espero que se haya entendido un poco esta técnica.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elkcro.net/2011/02/dll-hijacking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como atacar a php &#8211; how to attack php</title>
		<link>http://www.elkcro.net/2010/12/como-atacar-a-php-how-to-attack-php/</link>
		<comments>http://www.elkcro.net/2010/12/como-atacar-a-php-how-to-attack-php/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 03:48:06 +0000</pubDate>
		<dc:creator>aKcro</dc:creator>
				<category><![CDATA[Desarrollo en Web]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Headline]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[attack]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.elkcro.net/?p=688</guid>
		<description><![CDATA[Un interesante tutorial de defcon18 sobre como atacar php.  Esta en inglés pero es bastante explicativo, queda en claro que php 5.3 no es vulnerable,  además aprovecho de comentar que php 5.3 incorpora al fin un recolector de basura que soluciona los problemas de memoria que tantos dolores de cabeza me ha traído php 5.1.

Parte 1:
Pinche aquí para ver el vídeo
Parte 2:
Pinche aquí para ver el vídeo
Parte 3:
Pinche aquí para ver el vídeo
Saludos.
]]></description>
			<content:encoded><![CDATA[<p>Un interesante tutorial de <strong>defcon18 </strong>sobre como atacar php.  Esta en inglés pero es bastante explicativo, queda en claro que php 5.3 no es vulnerable,  además aprovecho de comentar que php 5.3 incorpora al fin un recolector de basura que soluciona los problemas de memoria que tantos dolores de cabeza me ha traído php 5.1.</p>
<p><span id="more-688"></span></p>
<p><strong>Parte 1:</strong></p>
<p style="text-align: center;"><p><a href="http://www.elkcro.net/2010/12/como-atacar-a-php-how-to-attack-php/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="text-align: left;"><strong>Parte 2:</strong></p>
<p style="text-align: center;"><p><a href="http://www.elkcro.net/2010/12/como-atacar-a-php-how-to-attack-php/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="text-align: left;"><strong>Parte 3:</strong></p>
<p style="text-align: center;"><p><a href="http://www.elkcro.net/2010/12/como-atacar-a-php-how-to-attack-php/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="text-align: left;">Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elkcro.net/2010/12/como-atacar-a-php-how-to-attack-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Invalid UTF-8 sequence</title>
		<link>http://www.elkcro.net/2010/11/invalid-utf-8-sequence/</link>
		<comments>http://www.elkcro.net/2010/11/invalid-utf-8-sequence/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 13:40:35 +0000</pubDate>
		<dc:creator>aKcro</dc:creator>
				<category><![CDATA[Centos]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.elkcro.net/?p=685</guid>
		<description><![CDATA[Trabajando con control de versiones en un servidor linux se me produjo el siguiente error para el cual dejo este pequeño truco.
El error que se me produjo al intentar subir archivos fue algo como el siguiente:

svn:  Valid UTF-8  data
(hex: 4b)
followed by invalid UTF-8 sequence
(hex:  fc 63 68  65)


Para descubrir cual es el archivo que esta generando problemas se puede utilizar la consola y ejecutar un comando como este:

echo &#8220;\x4b\xfc\x63\x68\x65&#8243; &#124; xargs -0 printf

Este comando devolverá un nombre comprensible, llamémoslo X y luego podemos intentar buscar el archivo utilizando algún comando ...]]></description>
			<content:encoded><![CDATA[<p>Trabajando con control de versiones en un servidor linux se me produjo el siguiente error para el cual dejo este pequeño truco.</p>
<p>El error que se me produjo al intentar subir archivos fue algo como el siguiente:</p>
<blockquote>
<div id="_mcePaste">svn:  Valid UTF-8  data</div>
<div id="_mcePaste">(hex: 4b)</div>
<div id="_mcePaste">followed by invalid UTF-8 sequence</div>
<div id="_mcePaste">(hex:  fc 63 68  65)</div>
</blockquote>
<div><span id="more-685"></span></div>
<div>Para descubrir cual es el archivo que esta generando problemas se puede utilizar la consola y ejecutar un comando como este:</div>
<blockquote>
<div>echo &#8220;\x4b\xfc\x63\x68\x65&#8243; | xargs -0 printf</div>
</blockquote>
<p>Este comando devolverá un nombre comprensible, llamémoslo X y luego podemos intentar buscar el archivo utilizando algún comando como:</p>
<blockquote><p>find / -name *X*</p></blockquote>
<p>Buscara los archivos y carpetas que contengan X entre sus nombres desde el directorio raíz en forma recursiva. O también se puede utilizar algo como:</p>
<blockquote>
<p class="MsoNormal">grep -r &#8220;X&#8221; .</p>
</blockquote>
<p class="MsoNormal">Busca el texto entre comillas dentro de todos los archivos en forma recursiva desde el directorio actual hacia delante.</p>
<p class="MsoNormal">Todo esto probado en un servidor en Centos.</p>
<p class="MsoNormal">Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elkcro.net/2010/11/invalid-utf-8-sequence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex SDK, Air SDK, FlashDevelop</title>
		<link>http://www.elkcro.net/2010/05/flex-sdk-air-sdk-flashdevelop/</link>
		<comments>http://www.elkcro.net/2010/05/flex-sdk-air-sdk-flashdevelop/#comments</comments>
		<pubDate>Wed, 26 May 2010 04:53:49 +0000</pubDate>
		<dc:creator>aKcro</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Headline]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flashdevelop]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://www.elkcro.net/?p=678</guid>
		<description><![CDATA[Hoy voy a comentar sobre herramientas interesantes para programar aplicaciones flex-air de adobe.

Adobe pone a disposición Kits de desarrollo gratuitos como son Adobe Flex SDK, Adobe Air SDK.  Lo que no es gratuito es obtener Adobe Flash builder (flex builder), que es un editor gráfico y de código para el desarrollo de este tipo de aplicaciones flash. Aún así adobe pone a disposición licencias para estudiantes y versiones de prueba de 2 meses de duración.

Lo primero que se debe hacer es descargar y descomprimir los SDK:
Adobe Flex SDK
Adobe Air SDK
Además debemos ...]]></description>
			<content:encoded><![CDATA[<p>Hoy voy a comentar sobre herramientas interesantes para programar aplicaciones flex-air de adobe.</p>
<p><a href="http://www.elkcro.net/wp-content/uploads/2010/05/fig03.jpg"><img class="aligncenter size-full wp-image-680" title="fig03" src="http://www.elkcro.net/wp-content/uploads/2010/05/fig03.jpg" alt="" width="515" height="303" /></a></p>
<p>Adobe pone a disposición Kits de desarrollo gratuitos como son <strong>Adobe</strong> <strong>Flex SDK</strong>, <strong>Adobe</strong> <strong>Air SDK</strong>.  Lo que no es gratuito es obtener Adobe Flash builder (flex builder), que es un editor gráfico y de código para el desarrollo de este tipo de aplicaciones flash. Aún así adobe pone a disposición licencias para estudiantes y versiones de prueba de 2 meses de duración.</p>
<p><span id="more-678"></span></p>
<p>Lo primero que se debe hacer es descargar y descomprimir los SDK:</p>
<p><a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4" target="_blank">Adobe Flex SDK</a></p>
<p><a href="http://www.adobe.com/cfusion/entitlement/index.cfm?e=airsdk" target="_blank">Adobe Air SDK</a></p>
<p>Además debemos bajarnos el runtime de Adobe Air si queremos compilar nuestra aplicación para escritorio:</p>
<p><a href="http://get.adobe.com/es/air/" target="_blank">Adobe Air Runtime</a></p>
<p>Para los que no gustan de versiones de prueba para un entorno de desarrollo existe <strong>FlashDevelop </strong>un editor opensource para el desarrollo de aplicaciones en flash, por lo que trae soporte para <strong>ActionScript</strong> y <strong>mxml</strong> que es el formato en que trabaja flex y air.</p>
<p>La desventaja de FlashDevelop es que no posee ninguna opción para trabajar directamente con un control de versiones por lo que deberemos buscar algún otro tipo de svn si debemos usarlo en grupos de trabajo, FlashDevelop nos recomienda <strong>Tortoise </strong>pero por supuesto eso dependerá de nuestro gusto.</p>
<p><a href="http://www.flashdevelop.org/community/viewtopic.php?f=11&amp;t=6496" target="_blank">Descargar FlashDevelop</a></p>
<p>La configuración no la detallaré, pero al crear un nuevo proyecto e intentar hacer build nos pedirá configurar As3 donde pondremos la carpeta donde descomprimimos Flex.</p>
<p>Finalmente lo que falta es un editor visual, no sé si FlashDevelop soporta algún plugin de diseño gráfico, ya que me quede con uno bastante interesante que pille en la nube y lo pueden ver en el siguiente enlace:</p>
<p><a href="http://designview.sourceforge.net" target="_blank">DesignView</a></p>
<p>Finalmente solo comentar para los que usan eclipse que existe un plugin gratuito llamado Air Gear pero no tiene la potencia de FlashDevelop, no resalta código, no autocompleta, etc.  Aun así podemos configurar todo tipo de compilaciones.</p>
<p>Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elkcro.net/2010/05/flex-sdk-air-sdk-flashdevelop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como imprimir open flash chart desde gxt-gwt</title>
		<link>http://www.elkcro.net/2010/05/como-imprimir-open-flash-chart-desde-gxt-gwt/</link>
		<comments>http://www.elkcro.net/2010/05/como-imprimir-open-flash-chart-desde-gxt-gwt/#comments</comments>
		<pubDate>Sun, 09 May 2010 22:57:37 +0000</pubDate>
		<dc:creator>aKcro</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Headline]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[gwt]]></category>
		<category><![CDATA[gxt]]></category>
		<category><![CDATA[openflash]]></category>

		<guid isPermaLink="false">http://www.elkcro.net/?p=673</guid>
		<description><![CDATA[Muchos de los que programan utilizando librerías gxt de www.extjs.com utilizan open flash chart para desplegar gráficos en pantalla, el problema es manejar la impresión desde la web, ya que por medio de los navegadores no tenemos control sobre el hardware.

En general siempre utilizamos javascript para imprimir utilizando el clásico window.print(); y lo que haremos para poder captar los gráficos como objetos flash desde gxt sera utilizar funciones nativas de javascript para generar un html e imprimirlo.

Vamos al código:
Chart nuevoGrafico = new Chart();
Vamos a generar ese gráfico, no entraremos en ...]]></description>
			<content:encoded><![CDATA[<p>Muchos de los que programan utilizando librerías gxt de <a href="http://www.extjs.com" target="_blank">www.extjs.com</a> utilizan open flash chart para desplegar gráficos en pantalla, el problema es manejar la impresión desde la web, ya que por medio de los navegadores no tenemos control sobre el hardware.</p>
<p><a href="http://www.elkcro.net/wp-content/uploads/2010/05/openflashchart.jpg"><img class="aligncenter size-full wp-image-674" title="openflashchart" src="http://www.elkcro.net/wp-content/uploads/2010/05/openflashchart.jpg" alt="" width="501" height="250" /></a></p>
<p>En general siempre utilizamos <strong>javascript</strong> para imprimir utilizando el clásico window.print(); y lo que haremos para poder captar los gráficos como objetos flash desde gxt sera utilizar funciones nativas de javascript para generar un html e imprimirlo.</p>
<p><span id="more-673"></span></p>
<p>Vamos al código:</p>
<blockquote><p>Chart nuevoGrafico = new Chart();</p></blockquote>
<p>Vamos a generar ese gráfico, no entraremos en detalles de como se generará o como se desplegará o en que contenedor irá, aquí la finalidad es imprimir, por lo que asumiremos que todos han creado gráficos.  De todas maneras se puede ver una lista de ejemplos desde <a href="http://www.extjs.com/examples/#chartgallery" target="_blank">Aquí</a>.</p>
<blockquote><p>Button btnPrint = new Button(&#8220;Imprimir&#8221;);</p>
<div id="_mcePaste">btnPrint.addSelectionListener(new SelectionListener&lt;ButtonEvent&gt;() {</div>
<div>public void componentSelected(ButtonEvent ce) {</div>
<div id="_mcePaste">String img1 = getImage(nuevoGrafico.getSwfId());</div>
<div id="_mcePaste">String myHtml=&#8221;";</div>
<div id="_mcePaste">myHtml += &#8220;&lt;center&gt;&lt;img src=&#8217;data:image/png;base64,&#8221; + img1 + &#8220;&#8216;/&gt;&lt;/center&gt;&#8221;; }</div>
<div id="_mcePaste">printHtml(myHtml);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">});</div>
</blockquote>
<p>Lo que haremos sera generar una imagen en base 64 a partir de nuestro objeto flash utilizando la función getImage(String id), luego generar el código html que mostrará la imagen en pantalla, finalmente imprimirlo.  Notar que prefiero generar el html en esta sección debido a que pueden existir más gráficos o algo en particular que nos gustaría mostrar para imprimir en nuestro html.</p>
<p>Vamos a las funciones:</p>
<blockquote><p>/*</p>
<p>* Retorna la imagen en base 64</p>
<p>*/</p>
<p>public static String getImage(String id) {</p>
<p><span style="white-space: pre;"> </span>return getImageData(id);</p>
<p><span style="white-space: pre;"> </span>}</p>
<p><span style="white-space: pre;"> </span></p>
<p><span style="white-space: pre;"> </span>private static native String getImageData(String id)</p>
<p><span style="white-space: pre;"> </span>/*-{<span style="white-space: pre;"> </span></p>
<p><span style="white-space: pre;"> </span>var swf = $doc.getElementById(id);</p>
<p><span style="white-space: pre;"> </span>var data = swf.get_img_binary();</p>
<p><span style="white-space: pre;"> </span>return data;</p>
<p><span style="white-space: pre;"> </span>}-*/;</p></blockquote>
<p>Con esto obtenemos la imagen en base 64 ahora solo necesitamos imprimir nuestro html.</p>
<blockquote><p>/**</p>
<p>* Imprime el codigo html.</p>
<p>* @param x Codigo html que se mostrara en una ventana popup</p>
<p>*/</p>
<p>public static native void printHtml(String x)</p>
<p>/*-{</p>
<p><span style="white-space: pre;"> </span>img_win=window.open(&#8221;,&#8217;name&#8217;,'height=800,width=800,scrollbars=yes&#8217;);</p>
<p><span style="white-space: pre;"> </span>var tmp = img_win.document;</p>
<p><span style="white-space: pre;"> </span>tmp.writeln(&#8216;&lt;html&gt;&lt;head&gt;&lt;title&gt;Imprimir Graficos&lt;\/title&gt;&lt;\/head&gt;&#8217;);</p>
<p><span style="white-space: pre;"> </span>tmp.writeln(&#8216;&lt;body&gt;&#8217;);</p>
<p><span style="white-space: pre;"> </span>tmp.writeln(x);</p>
<p><span style="white-space: pre;"> </span>tmp.writeln(&#8216;&lt;\/body&gt;&lt;\/html&gt;&#8217;);</p>
<p><span style="white-space: pre;"> </span>tmp.close();</p>
<p><span style="white-space: pre;"> </span>img_win.print();</p>
<p><span style="white-space: pre;"> </span></p>
<p><span style="white-space: pre;"> </span>}-*/;</p></blockquote>
<p>Eso es todo amigos. Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elkcro.net/2010/05/como-imprimir-open-flash-chart-desde-gxt-gwt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Descargar Videos de youtube facilmente</title>
		<link>http://www.elkcro.net/2010/01/descargar-videos-de-youtube-facilmente/</link>
		<comments>http://www.elkcro.net/2010/01/descargar-videos-de-youtube-facilmente/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 21:18:52 +0000</pubDate>
		<dc:creator>aKcro</dc:creator>
				<category><![CDATA[Headline]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[descargar]]></category>
		<category><![CDATA[flv]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.elkcro.net/?p=666</guid>
		<description><![CDATA[Leyendo artículos por internet encontré uno que hacía referencia a una web bastante interesante de donde podrás descargar el video que quieras desde youtube en formato &#8216;mp4&#8242; o &#8216;flv&#8217; de forma muy sencilla, sin descargar ningún tipo de programa. Los pasos son los siguiente:
1.) Buscas tu video que tendrá una dirección como la siguiente:
http://www.youtube.com/watch?v=-f1cwycSWq0

2.) Reemplazas la &#8216;y&#8216; que viene luego de www por un 3, es decir debe quedarte una dirección como la siguiente:
http://www.3outube.com/watch/?v=-f1cwycSWq0
Deberás ver algo como esto:


NOTA: No funciona desde google chrome.
Saludos!
]]></description>
			<content:encoded><![CDATA[<p>Leyendo artículos por internet encontré uno que hacía referencia a una web bastante interesante de donde podrás descargar el video que quieras desde youtube en formato &#8216;mp4&#8242; o &#8216;flv&#8217; de forma muy sencilla, sin descargar ningún tipo de programa. Los pasos son los siguiente:</p>
<p>1.) Buscas tu video que tendrá una dirección como la siguiente:</p>
<blockquote><p><a href="http://www.youtube.com/watch?v=-f1cwycSWq0">http://www.youtube.com/watch?v=-f1cwycSWq0</a></p>
<p><span id="more-666"></span></p></blockquote>
<p>2.) Reemplazas la &#8216;<strong>y</strong>&#8216; que viene luego de www por un 3, es decir debe quedarte una dirección como la siguiente:</p>
<blockquote><p>http://www.3outube.com/watch/?v=-f1cwycSWq0</p></blockquote>
<p style="text-align: left;">Deberás ver algo como esto:</p>
<p style="text-align: left;"><a href="http://www.elkcro.net/wp-content/uploads/2010/01/3tube.png"><br />
<img class="aligncenter size-full wp-image-667" title="3tube" src="http://www.elkcro.net/wp-content/uploads/2010/01/3tube.png" alt="" width="688" height="226" /></a></p>
<p style="text-align: left;"><strong>NOTA: </strong>No funciona desde google chrome.</p>
<p style="text-align: left;">Saludos!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elkcro.net/2010/01/descargar-videos-de-youtube-facilmente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RiP! : A remix manifesto</title>
		<link>http://www.elkcro.net/2009/11/rip-a-remix-manifesto/</link>
		<comments>http://www.elkcro.net/2009/11/rip-a-remix-manifesto/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 18:00:59 +0000</pubDate>
		<dc:creator>hypn</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Música]]></category>
		<category><![CDATA[Derechos de Autor]]></category>
		<category><![CDATA[Documental]]></category>

		<guid isPermaLink="false">http://www.elkcro.net/?p=658</guid>
		<description><![CDATA[Eran las 3 a.m. más o menos y hacía zapping en el cable cuando me topé con un documental en el i-Sat que se llamaba &#8220;RiP! : A remix manifesto&#8220;. Comencé a verlo porque había un dj haciendo remixes muy buenos (su nombre es &#8220;Girl Talk&#8220;) y hablaban de algo que está muy de moda hoy en nuestro Chilito: &#8220;Los derechos de autor&#8220;.
Este documental está tan bien hecho que a medida que lo vas viendo te vas dando cuenta que el problema global está centralizado en unas pocas personas y ...]]></description>
			<content:encoded><![CDATA[<p>Eran las 3 a.m. más o menos y hacía zapping en el cable cuando me topé con un documental en el i-Sat que se llamaba &#8220;<a title="RiP!: A Remix Manifesto" rel="homepage" href="http://ripremix.com">RiP! : A remix manifesto</a>&#8220;. Comencé a verlo porque había un dj haciendo remixes muy buenos (su nombre es &#8220;<a title="Girl Talk" rel="homepage" href="http://en.wikipedia.org/wiki/Girl_Talk_%28musician%29" target="_blank">Girl Talk</a>&#8220;) y hablaban de algo que está muy de moda hoy en nuestro Chilito: &#8220;<strong>Los derechos de autor</strong>&#8220;.</p>
<p><img class="size-medium wp-image-659 alignright" style="margin-left: 10px; margin-right: 10px;" title="RIP: A Remix Manifesto" src="http://www.elkcro.net/wp-content/uploads/2009/11/rip_logo_v2-300x264.png" alt="RIP: A Remix Manifesto" width="300" height="264" />Este documental está tan bien hecho que a medida que lo vas viendo te vas dando cuenta que el problema global está centralizado en unas pocas personas y empresas, (Spoiler alert&#8230;) por ejemplo sale <abbr title="mejor lo tacho sino me puede demandar"><span style="text-decoration: line-through;">Lars</span></abbr> el batero de Metallica despotricando en contra de <a title="Napster" rel="wikipedia" href="http://en.wikipedia.org/wiki/Napster">Napster</a> y quienes descargamos música de Internet, hay una mención a Walt Disney donde lo muestran como un copión (remixer), entre otras cosas bien interesantes.</p>
<p>Si quieren ver  la realidad del sistema en que nos encontramos les recomiendo sin dudas este documental, y si sienten las ganas de hacer remix del documental pueden hacerlo sin sentirse criminales.</p>
<h2>Links relacionados</h2>
<ul>
<li><a href="http://www.youtube.com/watch?v=zdwN6rRU0Xk" target="_blank">Documental en youtube (parte 1)</a> (son 9 partes y van apareciendo en el player)</li>
<li><a href="http://www.myspace.com/girltalk" target="_blank">MySpace de Girl Talk</a></li>
</ul>
<p style="text-align: center;"><p><a href="http://www.elkcro.net/2009/11/rip-a-remix-manifesto/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.elkcro.net/2009/11/rip-a-remix-manifesto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firma twitter para foros IPB con PHP + GD + SimplePie</title>
		<link>http://www.elkcro.net/2009/11/firma-twitter-para-foros-ipb-con-php-gd-simplepie/</link>
		<comments>http://www.elkcro.net/2009/11/firma-twitter-para-foros-ipb-con-php-gd-simplepie/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 20:20:09 +0000</pubDate>
		<dc:creator>hypn</dc:creator>
				<category><![CDATA[Snippets]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.elkcro.net/?p=648</guid>
		<description><![CDATA[Hace mucho tiempo que circulo por foros de internet, el que más visito es Tarreo y como usa Invision Power Board, no puedo poner una firma con imágenes dinámicas. Es por esto que tuve que acudir a una solución, hacer una imágen dinámica que pudiera ser vista en cualquier foro invision protegido.
Para lograr este objetivo necesitaremos los siguientes ingredientes:

Tener cuenta Twitter (publica, con protección de twitts no sirve)
Saber PHP
Conocer la librería GD (para PHP)
SimplePie
Servidor para hostear la imagen (con soporte curl)
Conocer de .htaccess

La idea es utilizar SimplePie para que se ...]]></description>
			<content:encoded><![CDATA[<p>Hace mucho tiempo que circulo por foros de internet, el que más visito es <a href="http://tarreo.com/foro" target="_blank">Tarreo</a> y como usa <a href="http://www.invisionpower.com/" target="_blank">Invision Power Board</a>, no puedo poner una firma con imágenes dinámicas. Es por esto que tuve que acudir a una solución, hacer una imágen dinámica que pudiera ser vista en cualquier foro invision protegido.</p>
<p>Para lograr este objetivo necesitaremos los siguientes <strong>ingredientes</strong>:</p>
<ul>
<li>Tener cuenta <a href="http://twitter.com" target="_blank">Twitter</a> (publica, con protección de twitts no sirve)</li>
<li>Saber <a class="zem_slink" title="PHP" rel="homepage" href="http://www.php.net/">PHP</a></li>
<li>Conocer la librería GD (para PHP)</li>
<li>SimplePie</li>
<li>Servidor para hostear la imagen (con soporte curl)</li>
<li>Conocer de .htaccess</li>
</ul>
<p><span id="more-648"></span>La idea es utilizar <a href="http://simplepie.org/" target="_blank">SimplePie</a> para que se lea el <a class="zem_slink" title="RSS" rel="wikipedia" href="http://en.wikipedia.org/wiki/RSS">RSS</a> de mi cuenta para que con PHP + GD se genere una imagen dinámica, luego con el .htaccess se redireccionan todos los archivos .jpg a.php (esta es la joda para tinelli)</p>
<p><strong>Preparación</strong>:</p>
<ol>
<li>Descargar el amigable <a href="http://github.com/rmccue/simplepie/downloads" target="_blank">SimplePie</a> de su sitio web (vamos a utilizar el archivo <strong>simplepie.inc.php</strong> solamente)</li>
<li>Creamos el archivo twitter.php (con vim, gedit, eclipse, textmate o lo que se les ocurra) con el siguiente código:
<pre class="brush: php; title: ; notranslate">&lt;?php
require 'simplepie.inc.php';
// Configuraciones
$feed_url    = &quot;http://twitter.com/statuses/user_timeline/MI_RSS_DEL_TIMELINE.rss&quot;;
$feed        = new SimplePie($feed_url);
// Configuraciones de la imagen
$im          = imagecreatetruecolor(320, 60);
$text_color  = imagecolorallocate($im, 0, 0, 0);
$tw_color    = imagecolorallocate($im, 56, 204, 255);
$bg_color    = imagecolorallocate($im, 255, 255, 255);
// Despliegue
imagefilledrectangle($im, 1, 1, 318, 58, $bg_color);
imagestring($im, 2, 5, 5, 'Twitter', $tw_color);
// Me traigo el ultimo tweet
foreach ($feed-&gt;get_items(0, 1) as $item)
{
   $twitt = $item-&gt;get_title();
}
// Lo corto y le hago wordwrap
$twitt = wordwrap($twitt, 58, '\n');
$twitt_texts = explode('\n', $twitt);
foreach ($twitt_texts as $i =&gt;; $t)
{
   imagestring($im, 1, 55, 14*($i+1), $t, $text_color);
}
// Muestro la imagen
header('Content-type: image/jpeg');
imagejpeg($im, NULL, 100);
imagedestroy($im);
?&gt;</pre>
</li>
<li>Luego, debemos redireccionar los request a archivos JPG a PHP utilizando un .htaccess
<pre>RewriteEngine On
RewriteRule ^(.*\.jpg(/.*)?)$ twitter.php [L,QSA]</pre>
</li>
<li>Ahora lo subes a tu servidor y lo revisas, deberia ser algo como:<br />
<img class="alignnone" title="Firma twitter" src="http://hypn.eianes.com/twitter_firma/firma.jpg" alt="" width="320" height="60" /></li>
</ol>
<p>Deje cocinar a fuego lento.<br />
Sirva acompañado con galletas de salvado.</p>
<p>Claramente podemos aplicarnos mucho más en el código, pero esto salio de improviso y fue relativamente rápido.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.elkcro.net/2009/11/firma-twitter-para-foros-ipb-con-php-gd-simplepie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Regalamos 5 Invitaciones para Google Wave</title>
		<link>http://www.elkcro.net/2009/11/regalamos-5-invitaciones-para-google-wave/</link>
		<comments>http://www.elkcro.net/2009/11/regalamos-5-invitaciones-para-google-wave/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 01:04:40 +0000</pubDate>
		<dc:creator>hypn</dc:creator>
				<category><![CDATA[eLKcro]]></category>
		<category><![CDATA[Headline]]></category>
		<category><![CDATA[Concurso]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.elkcro.net/?p=643</guid>
		<description><![CDATA[En eLKcro.net tenemos 5 invitaciones para compartir con quienes nos leen por rss o por el sitio.
Lo único que debes hacer para ganártela es seguirnos por twitter y dejar un comentario en este post confirmando tu nombre de usuario twitter.
Los resultados los subiremos en este mismo articulo!
]]></description>
			<content:encoded><![CDATA[<p>En eLKcro.net tenemos 5 invitaciones para compartir con quienes nos leen por rss o por el sitio.<br />
Lo único que debes hacer para ganártela es seguirnos por twitter y dejar un comentario en este post confirmando tu nombre de usuario twitter.</p>
<p>Los resultados los subiremos en este mismo articulo!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elkcro.net/2009/11/regalamos-5-invitaciones-para-google-wave/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

