<?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>Javo Walker</title>
	<atom:link href="http://javowalker.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://javowalker.com</link>
	<description>Experiencias y herramientas en mi vida como desarrollador de software</description>
	<lastBuildDate>Tue, 23 Apr 2013 03:57:31 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>PHP Rest Request Class</title>
		<link>http://javowalker.com/php-rest-request-class/</link>
		<comments>http://javowalker.com/php-rest-request-class/#comments</comments>
		<pubDate>Thu, 15 Nov 2012 04:39:41 +0000</pubDate>
		<dc:creator>javier</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://javowalker.com/?p=141</guid>
		<description><![CDATA[Una de las cosas que mas se hacen en la programación web hoy en día es la llamada a servicios REST para obtener la información de algún servidor externo o incluso de un API que desarrollemos nosotros mismos pero que por la arquitectura que elegimos tiene que estar separado de nuestra aplicación final, como es el caso de una aplicación móvil nativa. En caso de PHP tenemos la herramienta de CURL para hacer esto, pero en lo personal se me complicaba su implementación ya que aveces no me respondía como yo quería o no sabia como obtener información útil (como el http code del request). Entonces me di a la tarea de encontrar algún wrapper que implementara CURL para facilitarme la vida, y pues lo encontré, aquí les dejo un ejemplo de su utilizacion. require 'RestRequest.class.php'; &#160; $url=&#34;http://javowalker.com/codigo/restrequest/service.php&#34;; &#160; //los parametros por post se envian en un arreglo $params=array&#40;&#34;param1&#34;=&#38;gt;&#34;foo&#34;, &#34;param2&#34;=&#38;gt;&#34;bar&#34;&#41;; &#160; $response=sendRequest&#40;$url, &#34;POST&#34;, $params&#41;; &#160; /* el responseInfo nos regresa todo lo referente a la peticion el responseBody es el que contiene el resultado de la peticion en este caso el json que entrega el servicio */ $reponseArray=array&#40;&#34;responseInfo&#34;=&#38;gt;$response-&#38;gt;getResponseInfo&#40;&#41;, &#34;responseBody&#34;=&#38;gt;$response-&#38;gt;getResponseBody&#40;&#41; &#41;; &#160; header&#40;'Content-type: application/json'&#41;; echo json_encode&#40;$reponseArray&#41;; &#160; function sendRequest&#40;$url, $method,$requestBody = null&#41;&#123; $request = new RestRequest&#40;$url,$method,$requestBody&#41;; $request-&#38;gt;execute&#40;&#41;; return $request; &#125; Solo tiene un detalle que le modifiqué para que pueda hacer peticiones a direcciones HTTPS, en la clase RestRequest.class.php agregé una opción al CURL para que no marcara error por no comprobar el certificado curl_setopt&#40;$curlHandle, CURLOPT_SSL_VERIFYPEER, false&#41;; Esto lo modificaré para poder aceptar correctamente el certificado de servidores seguros,aunque si alguien lo puedes implementar de forma sencilla aquí esta como. Ver demo restrequest.zip Fuente]]></description>
				<content:encoded><![CDATA[<p>Una de las cosas que mas se hacen en la programación web hoy en día es la llamada a servicios <a href="http://es.wikipedia.org/wiki/Representational_State_Transfer">REST</a> para obtener la información de algún servidor externo o incluso de un <a href="http://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones">API</a> que desarrollemos nosotros mismos pero que por la arquitectura que elegimos tiene que estar separado de nuestra aplicación final, como es el caso de una aplicación móvil nativa. En caso de PHP tenemos la herramienta de <a href="http://es.wikipedia.org/wiki/CURL">CURL</a> para hacer esto, pero en lo personal se me complicaba su implementación ya que aveces no me respondía como yo quería o no sabia como obtener información útil (como el <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">http code</a> del request).</p>
<p>Entonces me di a la tarea de encontrar algún wrapper que implementara CURL para facilitarme la vida, y pues lo encontré, aquí les dejo un ejemplo de su utilizacion.</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">require</span> <span style="color: #0000ff;">'RestRequest.class.php'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$url</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;http://javowalker.com/codigo/restrequest/service.php&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//los parametros por post se envian en un arreglo</span>
<span style="color: #000088;">$params</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;param1&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">&quot;foo&quot;</span><span style="color: #339933;">,</span>
	      <span style="color: #0000ff;">&quot;param2&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">&quot;bar&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>				
&nbsp;
<span style="color: #000088;">$response</span><span style="color: #339933;">=</span>sendRequest<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;POST&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$params</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/*
el responseInfo nos regresa todo lo referente a la peticion
el responseBody es el que contiene el resultado de la peticion
en este caso el json que entrega el servicio
*/</span>
<span style="color: #000088;">$reponseArray</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;responseInfo&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$response</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>getResponseInfo<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
		    <span style="color: #0000ff;">&quot;responseBody&quot;</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$response</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>getResponseBody<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
		    <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-type: application/json'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #990000;">json_encode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$reponseArray</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> sendRequest<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #339933;">,</span> <span style="color: #000088;">$method</span><span style="color: #339933;">,</span><span style="color: #000088;">$requestBody</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$request</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> RestRequest<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #339933;">,</span><span style="color: #000088;">$method</span><span style="color: #339933;">,</span><span style="color: #000088;">$requestBody</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$request</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>execute<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$request</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Solo tiene un detalle que le modifiqué para que pueda hacer peticiones a direcciones HTTPS, en la clase RestRequest.class.php agregé una opción al CURL para que no marcara error por no comprobar el certificado</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curlHandle</span><span style="color: #339933;">,</span> CURLOPT_SSL_VERIFYPEER<span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Esto lo modificaré para poder aceptar correctamente el certificado de servidores seguros,aunque si alguien lo puedes implementar de forma sencilla <a href="http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/">aquí</a> esta como.</p>
<p><a title="Run" href="http://javowalker.com/codigo/restrequest/index.php" target="_blank">Ver demo</a></p>
<p><a href="http://javowalker.com/wp-content/uploads/2012/11/restrequest1.zip">restrequest.zip</a></p>
<p><a title="Fuente" href="http://www.gen-x-design.com/archives/making-restful-requests-in-php/">Fuente</a></p>
]]></content:encoded>
			<wfw:commentRss>http://javowalker.com/php-rest-request-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como entrar a una cuenta de Facebook</title>
		<link>http://javowalker.com/como-entrar-a-una-cuenta-de-facebook/</link>
		<comments>http://javowalker.com/como-entrar-a-una-cuenta-de-facebook/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 04:20:41 +0000</pubDate>
		<dc:creator>javier</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://javowalker.com/?p=66</guid>
		<description><![CDATA[La gente cree que por ser computologo automaticamente soy un hacker pero lamento informarles que no. Soy solo un programador que aun sigue aprendieno y cada dia me doy cuenta que se menos, pero eso no me detiene de seguir aprendiendo. Y que mejor forma de aprender que de un verdadero hacker, pues bueno aqui les dejo los videos en donde te explica a nivel de bits como funcionan las sesiones en general y como puedes obtener la informacion necesaria para poder hacer creer a Facebook que eres otra persona. Esto no es algo tan trivial y necesitas tener ciertos conocimientos para poder obtener toda la información necesaria, pero aqui esta, ahi por si alguno de ustedes tiene tiempo de sobra y quiere intentar andar de &#8220;hacker&#8221;, aqui estan los videos.]]></description>
				<content:encoded><![CDATA[<p>La gente cree que por ser computologo automaticamente soy un hacker pero lamento informarles que no. Soy solo un programador que aun sigue aprendieno y cada dia me doy cuenta que se menos, pero eso no me detiene de seguir aprendiendo. Y que mejor forma de aprender que de un verdadero hacker, pues bueno aqui les dejo los videos en donde te explica a nivel de bits como funcionan las sesiones en general y como puedes obtener la informacion necesaria para poder hacer creer a Facebook que eres otra persona.</p>
<p><span id="more-66"></span></p>
<p>Esto no es algo tan trivial y necesitas tener ciertos conocimientos para poder obtener toda la información necesaria, pero aqui esta, ahi por si alguno de ustedes tiene tiempo de sobra y quiere intentar andar de &#8220;hacker&#8221;, aqui estan los videos.</p>
<p style="text-align: left;">
<object width="600" height="400">
<param name="movie" value="http://javowalker.com/wp-content/plugins/wp-youtube-player/tubeplayer.swf?videoId=fEmO7wQKCMw"></param>
<param name="allowScriptAccess" value="always"></param>
<embed src="http://javowalker.com/wp-content/plugins/wp-youtube-player/tubeplayer.swf?videoId=fEmO7wQKCMw" type="application/x-shockwave-flash" allowScriptAccess="always" width="600" height="400"></embed>
</object>
<br />

<object width="600" height="400">
<param name="movie" value="http://javowalker.com/wp-content/plugins/wp-youtube-player/tubeplayer.swf?videoId=2ctRfWnisSk"></param>
<param name="allowScriptAccess" value="always"></param>
<embed src="http://javowalker.com/wp-content/plugins/wp-youtube-player/tubeplayer.swf?videoId=2ctRfWnisSk" type="application/x-shockwave-flash" allowScriptAccess="always" width="600" height="400"></embed>
</object>
<br />

<object width="600" height="400">
<param name="movie" value="http://javowalker.com/wp-content/plugins/wp-youtube-player/tubeplayer.swf?videoId=vJtmZZGcR54"></param>
<param name="allowScriptAccess" value="always"></param>
<embed src="http://javowalker.com/wp-content/plugins/wp-youtube-player/tubeplayer.swf?videoId=vJtmZZGcR54" type="application/x-shockwave-flash" allowScriptAccess="always" width="600" height="400"></embed>
</object>
</p>
]]></content:encoded>
			<wfw:commentRss>http://javowalker.com/como-entrar-a-una-cuenta-de-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: sistema basico CRUD en Symfony con Propel</title>
		<link>http://javowalker.com/tutorial-sistema-basico-crud-en-symfony-con-propel/</link>
		<comments>http://javowalker.com/tutorial-sistema-basico-crud-en-symfony-con-propel/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 05:51:19 +0000</pubDate>
		<dc:creator>javier</dc:creator>
				<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://javowalker.com/?p=70</guid>
		<description><![CDATA[Un sistema CRUD (create.read.update.delete) es la parte mas basica de lo que se compone un sistema que es crear, leer, actualizar y borrar. En este tutorial muestro como hacerlo con el framework para php symfony 1.4 con el orm Propel Taller de Symfony 1.4 _altas,bajas,consultas,modificaciones_]]></description>
				<content:encoded><![CDATA[<p>Un sistema CRUD (create.read.update.delete) es la parte mas basica de lo que se compone un sistema que es crear, leer, actualizar y borrar.</p>
<p>En este tutorial muestro como hacerlo con el framework para php symfony 1.4 con el orm Propel</p>
<p><a href="http://javowalker.com/wp-content/uploads/2011/07/Taller-de-Symfony-1.4-_altasbajasconsultasmodificaciones_.pdf">Taller de Symfony 1.4 _altas,bajas,consultas,modificaciones_</a></p>
]]></content:encoded>
			<wfw:commentRss>http://javowalker.com/tutorial-sistema-basico-crud-en-symfony-con-propel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software: Pencil</title>
		<link>http://javowalker.com/software-pencil/</link>
		<comments>http://javowalker.com/software-pencil/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 05:45:43 +0000</pubDate>
		<dc:creator>javier</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://javowalker.com/?p=68</guid>
		<description><![CDATA[Pencil es un software desarrollado por mozilla para crear prototipos de como serian nuestros sistemas en la parte de interfaz grafca del usuario. Cuenta con varios elementos de diseño lara darle un aspecto como hecho a mano, asi como poder ligar cualquier elemento a otra pagina y exportar a html o pdf, pudiendo asi hacer un poco dinamico el hacer estos mokups para su evaluacion previa a ser desarrollado. http://pencil.evolus.vn/en-US/Home.aspx]]></description>
				<content:encoded><![CDATA[<p>Pencil es un software desarrollado por mozilla para crear prototipos de como serian nuestros sistemas en la parte de interfaz grafca del usuario. Cuenta con varios elementos de diseño lara darle un aspecto como hecho a mano, asi como poder ligar cualquier elemento a otra pagina y exportar a html o pdf, pudiendo asi hacer un poco dinamico el hacer estos mokups para su evaluacion previa a ser desarrollado.</p>
<p><a href="http://pencil.evolus.vn/en-US/Home.aspx">http://pencil.evolus.vn/en-US/Home.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://javowalker.com/software-pencil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SIM (Sistema Interactivo con Mapas)</title>
		<link>http://javowalker.com/sim-sistema-interactivo-con-mapas/</link>
		<comments>http://javowalker.com/sim-sistema-interactivo-con-mapas/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 04:23:18 +0000</pubDate>
		<dc:creator>javier</dc:creator>
				<category><![CDATA[Proyectos]]></category>

		<guid isPermaLink="false">http://javowalker.com/?p=59</guid>
		<description><![CDATA[Como no pude ir al CampusParty México en su tercera edición, me propuse hacer alguno de los retos y tener como punto de contacto a alguno de mis compañeros que se aventuraron a ir a diferencia de mi que por razones de trabajo me tuve que quedar. En fin, decidí aventarme el reto de la SEMARNAT, lamentablemente no alcanzamos a subir el proyecto a tiempo y pues solo se quedo como un bonito anteproyecto que me avente en 2hrs, aquí dejo el link para que lo bajen. Bajar documento Esta licenciado con Creative Commons así que siéntanse libres de distribuirlo y usarlo siempre y cuando respeten la licencia.]]></description>
				<content:encoded><![CDATA[<p>Como no pude ir al CampusParty México en su tercera edición, me propuse hacer alguno de los retos y tener como punto de contacto a alguno de mis compañeros que se aventuraron a ir a diferencia de mi que por razones de trabajo me tuve que quedar. En fin, decidí aventarme el <a href="http://www.campus-labs.com/webapp/reto/ver/SEMARNAT" target="_blank">reto de la SEMARNAT</a>, lamentablemente no alcanzamos a subir el proyecto a tiempo y pues solo se quedo como un bonito anteproyecto que me avente en 2hrs, aquí dejo el link para que lo bajen.</p>
<p><a href="http://javowalker.com/wp-content/uploads/2011/07/SIM.pdf">Bajar documento</a></p>
<p>Esta licenciado con Creative Commons así que siéntanse libres de distribuirlo y usarlo siempre y cuando respeten la licencia.</p>
]]></content:encoded>
			<wfw:commentRss>http://javowalker.com/sim-sistema-interactivo-con-mapas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tweets automaticos en busqueda de ayuda.</title>
		<link>http://javowalker.com/tweets-automaticos-en-busqueda-de-ayuda/</link>
		<comments>http://javowalker.com/tweets-automaticos-en-busqueda-de-ayuda/#comments</comments>
		<pubDate>Sat, 27 Nov 2010 20:42:59 +0000</pubDate>
		<dc:creator>javier</dc:creator>
				<category><![CDATA[Papers]]></category>

		<guid isPermaLink="false">http://javier.ensvidia.com/?p=1</guid>
		<description><![CDATA[Abstract &#8211; En este documento mostramos la arquitectura y el funcionamiento de un Agente Inteligente que utiliza el acelerómetro de un Smartphone para que sea capaz de reaccionar automáticamente en caso de necesitar ayuda, estimando tu situación dependiendo de una actividad riesgosa, censando tu estado en intervalos de tiempo después de un accidente y así dar una alerta en Twitter junto con tu ubicación GPS exacta para una potencial ayuda. Update: este sera el trabajo que presentare el 14 y 15 de abril en Concye 2011 en Zacatecas Tweets automaticos en busqueda de ayuda FINAL]]></description>
				<content:encoded><![CDATA[<p><strong>Abstract</strong> &#8211; En este documento mostramos la arquitectura y el funcionamiento de un Agente Inteligente que utiliza el acelerómetro de un Smartphone para que sea capaz de reaccionar automáticamente en caso de necesitar ayuda, estimando tu situación dependiendo de una actividad riesgosa, censando tu estado en intervalos de tiempo después de un accidente y así dar una alerta en Twitter junto con tu ubicación GPS exacta para una potencial ayuda.</p>
<p><strong>Update</strong>: este sera el trabajo que presentare el 14 y 15 de abril en <a href="http://computacion.reduaz.mx/concye/">Concye 2011</a> en Zacatecas</p>
<p><a href="http://javowalker.com/wp-content/uploads/2010/11/Tweets-automaticos-en-busqueda-de-ayuda-FINAL.pdf">Tweets automaticos en busqueda de ayuda FINAL</a></p>
]]></content:encoded>
			<wfw:commentRss>http://javowalker.com/tweets-automaticos-en-busqueda-de-ayuda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	<img style='margin:0;padding:0;border:0;' width='1px' height='1px' src="http://javowalker.com/wp-content/plugins/mystat/mystat.php?act=time_load&id=34447&rnd=1465480950" /></channel>
</rss>
