<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Trozos de Código</title>
	
	<link>http://www.trozosdecodigo.com</link>
	<description>Código, nuevas tecnologías, Internet, computadoras y un largo etcétera</description>
	<lastBuildDate>Sat, 15 May 2010 00:43:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/trozosDeCodigo" /><feedburner:info uri="trozosdecodigo" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Probando configuración…</title>
		<link>http://feedproxy.google.com/~r/trozosDeCodigo/~3/zip1xPBVKYo/</link>
		<comments>http://www.trozosdecodigo.com/2010/05/14/probando-configuracion/#comments</comments>
		<pubDate>Fri, 14 May 2010 20:14:30 +0000</pubDate>
		<dc:creator>Alfonso</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Test]]></category>

		<guid isPermaLink="false">http://www.trozosdecodigo.com/?p=1019</guid>
		<description><![CDATA[Esta entrada tiene por objeto verificar la última configuración del sitio.

]]></description>
			<content:encoded><![CDATA[<p>Esta entrada tiene por objeto verificar la última configuración del sitio.</p>
<p><a href="http://descargas.trozosdecodigo.com.s3.amazonaws.com/wp-content/uploads/2010/04/430_Zonas-horarias.jpg"><img class="alignright size-full wp-image-1026" title="430_Zonas horarias" src="http://descargas.trozosdecodigo.com.s3.amazonaws.com/wp-content/uploads/2010/04/430_Zonas-horarias.jpg" alt="" width="513" height="523" /></a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/E-XMXFRZeA7mmsb7vyXUkMSPN9w/0/da"><img src="http://feedads.g.doubleclick.net/~a/E-XMXFRZeA7mmsb7vyXUkMSPN9w/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/E-XMXFRZeA7mmsb7vyXUkMSPN9w/1/da"><img src="http://feedads.g.doubleclick.net/~a/E-XMXFRZeA7mmsb7vyXUkMSPN9w/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/trozosDeCodigo/~4/zip1xPBVKYo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.trozosdecodigo.com/2010/05/14/probando-configuracion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.trozosdecodigo.com/2010/05/14/probando-configuracion/</feedburner:origLink></item>
		<item>
		<title>Pase de parámetros en VFP, VFP-PHP y otros más</title>
		<link>http://feedproxy.google.com/~r/trozosDeCodigo/~3/VEz-_hLcHRg/</link>
		<comments>http://www.trozosdecodigo.com/2010/03/07/pase-de-parametros-en-vfp-vfp-php-y-otros-mas/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 10:20:40 +0000</pubDate>
		<dc:creator>Alfonso</dc:creator>
				<category><![CDATA[Código]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[VFP]]></category>

		<guid isPermaLink="false">http://www.trozosdecodigo.com/?p=996</guid>
		<description><![CDATA[En ocasiones necesitamos pasar una cantidad indeterminada de parámetros a alguna función o procedimiento cuando escribimos aplicaciones en VFP.  Adicionalmente a la forma tradicional de hacerlo, es decir, enumerando aquellos que se han de recibir, existe la posibilidad de pasar un objeto o un array como parametro, dotando de esta forma de una enorme flexibilidad a nuestras [...]]]></description>
			<content:encoded><![CDATA[<p>En ocasiones necesitamos pasar una cantidad indeterminada de parámetros a alguna función o procedimiento cuando escribimos aplicaciones en VFP.  Adicionalmente a la forma tradicional de hacerlo, es decir, enumerando aquellos que se han de recibir, existe la posibilidad de pasar un objeto o un array como parametro, dotando de esta forma de una enorme flexibilidad a nuestras aplicaciones.</p>
<p>La primera de estas, usando un objeto, es aun mas flexible que la segunda, porque permite incluso ir añadiendo o quitando elementos de forma natural en el camino. Un poco de código para verlo:</p>
<p>Primero, creamos el objeto:</p>
<div class="codecolorer-container visualfoxpro mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="visualfoxpro codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">miObjeto<span style="color: blue;">=</span> <span style="color: blue;">createobject</span><span style="color: blue;">&#40;</span><span style="color: #ff0000;">&quot;Empty&quot;</span><span style="color: blue;">&#41;</span> <span style="color: blue;">&amp;&amp;</span>Creamos el objeto usando la clase <span style="color: blue;">Empty</span><span style="color: blue;">,</span> que no contiene propiedades innecesarias<br />
<span style="color: blue;">Addproperty</span><span style="color: blue;">&#40;</span>miObjeto<span style="color: blue;">,</span><span style="color: #ff0000;">&quot;mipropiedad1&quot;</span><span style="color: blue;">,</span><span style="color: #ff0000;">&quot;un valor de texto&quot;</span><span style="color: blue;">&#41;</span>  <span style="color: blue;">&amp;&amp;</span>Podemos asignar cadenas<br />
<span style="color: blue;">Addproperty</span><span style="color: blue;">&#40;</span>miObjeto<span style="color: blue;">,</span><span style="color: #ff0000;">&quot;mipropiedad2&quot;</span><span style="color: blue;">,</span><span style="color: #cc66cc;">5</span><span style="color: blue;">&#41;</span>  <span style="color: blue;">&amp;&amp;</span>números<br />
<span style="color: blue;">Addproperty</span><span style="color: blue;">&#40;</span>miObjeto<span style="color: blue;">,</span><span style="color: #ff0000;">&quot;mipropiedad3&quot;</span><span style="color: blue;">,.</span><span style="color: blue;">f</span><span style="color: blue;">.</span><span style="color: blue;">&#41;</span> <span style="color: blue;">&amp;&amp;</span>boleanos <span style="color: blue;">&#40;</span>o cualquier otra cosa<span style="color: blue;">,</span> otro objeto o incluso un <span style="color: blue;">array</span><span style="color: blue;">&#41;</span><br />
mifuncion<span style="color: blue;">&#40;</span>miObjeto<span style="color: blue;">&#41;</span> <span style="color: blue;">&amp;&amp;</span>y lo enviamos</div></td></tr></tbody></table></div>
<p>Y en la función que habrá de recibirlo:</p>
<div class="codecolorer-container visualfoxpro mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="visualfoxpro codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: blue;">Parameters</span> miObjeto <span style="color: blue;">&amp;&amp;</span> <span style="color: blue;">y</span> le hacemos lo que sea<span style="color: blue;">...</span><br />
<span style="color: blue;">if</span> <span style="color: blue;">vartype</span><span style="color: blue;">&#40;</span>miObjeto<span style="color: blue;">.</span><span style="color: #006600;">mipropiedad1</span><span style="color: blue;">&#41;</span><span style="color: blue;">!=</span><span style="color: #ff0000;">&quot;U&quot;</span><br />
<span style="color: blue;">&amp;&amp;</span>procesamos<br />
<span style="color: blue;">endif</span> <span style="color: blue;">&amp;&amp;</span> tambié<span style="color: blue;">n</span> podríamos recorrerlo con <span style="color: blue;">AMEMBERS</span><span style="color: blue;">...</span></div></td></tr></tbody></table></div>
<p>Hacerlo con arrays es básicamente lo mismo, solo que tiene un par de peculiaridades: el array debe ser visible desde fuera de la función que lo transmite, y debe ser precedido por una @ para ser interpretado como una referencia, ya que de lo contrario nuestra función recibirá el argumento como un valor, y este sera el contenido de la celda 1,1 de nuestra array.</p>
<p>Ahora bien, esta característica ya interesante de por si adquiere otra dimensión si consideramos que en combinación con la <a href="http://www.sweetpotatosoftware.com/spsblog/2008/12/19/VisualFoxproJSONClassUpdate.aspx">librería JSON para VFP desarrollada por Craig Boyd</a> (existen otras, pero esta es muy buena y gratuita) podemos simplemente crear un objeto en VFP, convertirlo en JSON y enviarlo por http a un servidor:</p>
<div class="codecolorer-container visualfoxpro mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="visualfoxpro codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: blue;">SET</span> <span style="color: blue;">LIBRARY</span> <span style="color: blue;">TO</span> <span style="color: #ff0000;">&quot;json.fll&quot;</span> <span style="color: blue;">ADDITIVE</span> &nbsp;<span style="color: blue;">&amp;&amp;</span>Añadimos la librería<br />
loJSON <span style="color: blue;">=</span> <span style="color: blue;">CreateObject</span><span style="color: blue;">&#40;</span><span style="color: #ff0000;">&quot;json&quot;</span><span style="color: blue;">&#41;</span> &nbsp;<span style="color: blue;">&amp;&amp;</span>Creamos el objeto<br />
mensaje<span style="color: blue;">=</span> loJSON<span style="color: blue;">.</span><span style="color: #006600;">Stringify</span><span style="color: blue;">&#40;</span>miObjeto<span style="color: blue;">&#41;</span> &nbsp;<span style="color: blue;">&amp;&amp;</span>Genero el JSON<br />
loHTTP <span style="color: blue;">=</span> <span style="color: blue;">CREATEOBJECT</span><span style="color: blue;">&#40;</span><span style="color: #ff0000;">&quot;WinHttp.WinHttpRequest.5.1&quot;</span><span style="color: blue;">&#41;</span> &nbsp;<span style="color: blue;">&amp;&amp;</span> Creamos un objeto para la conexió<span style="color: blue;">n</span><br />
loHTTP<span style="color: blue;">.</span><span style="color: blue;">Open</span><span style="color: blue;">&#40;</span><span style="color: #ff0000;">&quot;POST&quot;</span><span style="color: blue;">,</span><span style="color: #ff0000;">&quot;http://miserver/miarchivo.php&quot;</span><span style="color: blue;">,.</span><span style="color: blue;">F</span><span style="color: blue;">.</span><span style="color: blue;">&#41;</span> <span style="color: blue;">&amp;&amp;</span> Establecemos la ruta<br />
loHTTP<span style="color: blue;">.</span><span style="color: #006600;">SetRequestHeader</span><span style="color: blue;">&#40;</span><span style="color: #ff0000;">&quot;Content-Type&quot;</span><span style="color: blue;">,</span> <span style="color: #ff0000;">&quot;application/x-www-form-urlencoded&quot;</span><span style="color: blue;">&#41;</span> <span style="color: blue;">&amp;&amp;</span> Configuramos el envio<br />
loHTTP<span style="color: blue;">.</span><span style="color: #006600;">SetRequestHeader</span><span style="color: blue;">&#40;</span><span style="color: #ff0000;">&quot;User-Agent&quot;</span><span style="color: blue;">,</span> <span style="color: #ff0000;">&quot;Lo-que-sea&quot;</span><span style="color: blue;">&#41;</span> &nbsp;<span style="color: blue;">&amp;&amp;</span> el Agente que deseamos pasar<br />
loHTTP<span style="color: blue;">.</span><span style="color: #006600;">SetRequestHeader</span><span style="color: blue;">&#40;</span><span style="color: #ff0000;">&quot;Content-length&quot;</span><span style="color: blue;">,</span><span style="color: blue;">LEN</span><span style="color: blue;">&#40;</span>mensaje<span style="color: blue;">&#41;</span><span style="color: blue;">&#41;</span> &nbsp;<span style="color: blue;">&amp;&amp;</span> El tamaño del mensaje<br />
loHTTP<span style="color: blue;">.</span><span style="color: #006600;">Send</span><span style="color: blue;">&#40;</span>mensaje<span style="color: blue;">&#41;</span> &nbsp;<span style="color: blue;">&amp;&amp;</span> Lo enviamos<br />
loHTTP<span style="color: blue;">.</span><span style="color: #006600;">WaitForResponse</span><span style="color: blue;">&#40;</span><span style="color: blue;">&#41;</span> &nbsp;<span style="color: blue;">&amp;&amp;</span> Esperamos la respuesta<br />
mirespuesta<span style="color: blue;">=</span> loHTTP<span style="color: blue;">.</span><span style="color: #006600;">ResponseText</span> &nbsp;<span style="color: blue;">&amp;&amp;</span> <span style="color: blue;">Y</span> hacemos cualquier cosa con ella</div></td></tr></tbody></table></div>
<p>Y en el servidor, con PHP hacemos algo como esto:</p>
<div class="codecolorer-container visualfoxpro mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="visualfoxpro codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">require_once<span style="color: blue;">&#40;</span>'JSON<span style="color: blue;">.</span><span style="color: #006600;">php</span>'<span style="color: blue;">&#41;</span><span style="color: blue;">;</span> <span style="color: green; font-style: italic;">//Llamamos la clase Json de http://mike.teczno.com/json.html (con la función nativa de PHP5 se obtiene un valor null al decodificar)</span><br />
<span style="color: blue;">$</span>input <span style="color: blue;">=</span> <span style="color: blue;">$</span>_POST<span style="color: blue;">&#91;</span>'mensaje'<span style="color: blue;">&#93;</span><span style="color: blue;">;</span> <span style="color: green; font-style: italic;">//Obtenemos el valor recibido</span><br />
<span style="color: blue;">$</span>value <span style="color: blue;">=</span> <span style="color: blue;">$</span>json<span style="color: blue;">-&gt;</span>decode<span style="color: blue;">&#40;</span><span style="color: blue;">$</span>input<span style="color: blue;">&#41;</span><span style="color: blue;">;</span> <span style="color: green; font-style: italic;">//Lo transformamos</span><br />
<span style="color: blue;">echo</span> <span style="color: blue;">$</span>value<span style="color: blue;">-&gt;</span>mipropiedad1 <span style="color: green; font-style: italic;">//Imprime &quot;un valor de texto&quot;</span></div></td></tr></tbody></table></div>
<p>Es posible tambien hacerlo a la inversa, es decir, crear el objeto en PHP e interpretarlo en VFP, e incluso puede ser usado para crear objetos complejos y usarlos plenamente en uno y otro lado de la conexión&#8230;</p>
<p>Y si lo podemos hacer con PHP, tambien podremos con muchos otros lenguajes para los que se ha implementado el protocolo: <a href="http://docs.python.org/library/json.html">Python</a>, toda la gama <a href="http://james.newtonking.com/projects/json-net.aspx">.net</a> y <a href="http://www.json.org/">muchos otros</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/RzOYqx98Q0OLOhLzLZgk-oyHdVY/0/da"><img src="http://feedads.g.doubleclick.net/~a/RzOYqx98Q0OLOhLzLZgk-oyHdVY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RzOYqx98Q0OLOhLzLZgk-oyHdVY/1/da"><img src="http://feedads.g.doubleclick.net/~a/RzOYqx98Q0OLOhLzLZgk-oyHdVY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/trozosDeCodigo/~4/VEz-_hLcHRg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.trozosdecodigo.com/2010/03/07/pase-de-parametros-en-vfp-vfp-php-y-otros-mas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.trozosdecodigo.com/2010/03/07/pase-de-parametros-en-vfp-vfp-php-y-otros-mas/</feedburner:origLink></item>
		<item>
		<title>GodMode en Windows 7</title>
		<link>http://feedproxy.google.com/~r/trozosDeCodigo/~3/6eOxLk-49FQ/</link>
		<comments>http://www.trozosdecodigo.com/2010/01/06/godmode-en-windows-7/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 19:03:48 +0000</pubDate>
		<dc:creator>Alfonso</dc:creator>
				<category><![CDATA[No es libre, pero es útil]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.trozosdecodigo.com/?p=991</guid>
		<description><![CDATA[Los últimos días se ha hecho popular la creación de una carpeta a la que han dado en llamar &#8220;GodMode&#8221; en Windows 7, y que no es otra cosa de la aplicación de la funcionalidad que brinda este sistema operativo para crear enlaces directos a los CLSID (identificadores de clase) de Windows mediante la creación [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Los últimos días se ha hecho popular la creación de una carpeta a la que han dado en llamar &#8220;GodMode&#8221; en Windows 7, y que no es otra cosa de la aplicación de la funcionalidad que brinda este sistema operativo para crear enlaces directos a los CLSID (identificadores de clase) de Windows mediante la creación de carpetas con un nombre de acuerdo al siguiente patrón: <em>CualquierNombre.{CLSID-que-quieras-usar}</em>.</p>
<p style="text-align: justify;">Estos CLSID tambien pueden invocarse mediante el dialogo &#8220;ejecutar&#8221;, usando el patrón <em>::{CLSID-que-quieras-usar}</em> y desde la barra del explorador, usando <em>shell:::{CLSID-que-quieras-usar}</em>.</p>
<p style="text-align: justify;">Estos son algunos de los CLSID disponibles:</p>
<table style="text-align: left;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="253" valign="top">Herramientas de administración</td>
<td width="321" valign="top">D20EA4E1-3957-11d2-A40B-0C5020524153</td>
</tr>
<tr>
<td width="253" valign="top">Todas las tareas</td>
<td width="321" valign="top">ED7BA470-8E54-465E-825C-99712043E01C</td>
</tr>
<tr>
<td width="253" valign="top">Panel de control</td>
<td width="321" valign="top">21EC2020-3AEA-1069-A2DD-08002b30309d</td>
</tr>
<tr>
<td width="253" valign="top">Fuentes</td>
<td width="321" valign="top">D20EA4E1-3957-11d2-A40B-0C5020524152</td>
</tr>
<tr>
<td width="253" valign="top">Computadora</td>
<td width="321" valign="top">20D04FE0-3AEA-1069-A2D8-08002B30309D</td>
</tr>
<tr>
<td width="253" valign="top">Documentos</td>
<td width="321" valign="top">450D8FBA-AD25-11D0-98A8-0800361B1103</td>
</tr>
<tr>
<td width="253" valign="top">Historial</td>
<td width="321" valign="top">ff393560-c2a7-11cf-bff4-444553540000</td>
</tr>
<tr>
<td width="253" valign="top">Lugares de red</td>
<td width="321" valign="top">208d2c60-3aea-1069-a2d7-08002b30309d</td>
</tr>
<tr>
<td width="253" valign="top">Impresoras y faxes</td>
<td width="321" valign="top">2227A280-3AEA-1069-A2DE-08002B30309D</td>
</tr>
<tr>
<td width="253" valign="top">Programas</td>
<td width="321" valign="top">7be9d83c-a729-4d97-b5a7-1b7313c39e0a</td>
</tr>
<tr>
<td width="253" valign="top">Papelera de reciclaje</td>
<td width="321" valign="top">645FF040-5081-101B-9F08-00AA002F954E</td>
</tr>
<tr>
<td width="253" valign="top">Menú de inicio</td>
<td width="321" valign="top">48e7caab-b918-4e58-a94d-505519c795dc</td>
</tr>
<tr>
<td width="253" valign="top">Tareas programadas</td>
<td width="321" valign="top">D6277990-4C6A-11CF-8D87-00AA0060F5BF</td>
</tr>
</tbody>
</table>
<p>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/b7m_JiyYw7Jmu5qqqXUVFmnRyPM/0/da"><img src="http://feedads.g.doubleclick.net/~a/b7m_JiyYw7Jmu5qqqXUVFmnRyPM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/b7m_JiyYw7Jmu5qqqXUVFmnRyPM/1/da"><img src="http://feedads.g.doubleclick.net/~a/b7m_JiyYw7Jmu5qqqXUVFmnRyPM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/trozosDeCodigo/~4/6eOxLk-49FQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.trozosdecodigo.com/2010/01/06/godmode-en-windows-7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.trozosdecodigo.com/2010/01/06/godmode-en-windows-7/</feedburner:origLink></item>
		<item>
		<title>PHP desde Visual Fox Pro</title>
		<link>http://feedproxy.google.com/~r/trozosDeCodigo/~3/q9mCpxLPTyQ/</link>
		<comments>http://www.trozosdecodigo.com/2009/11/15/php-desde-visual-fox-pro/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 21:27:18 +0000</pubDate>
		<dc:creator>Alfonso</dc:creator>
				<category><![CDATA[Código]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Opensource]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[VFP]]></category>

		<guid isPermaLink="false">http://www.trozosdecodigo.com/?p=988</guid>
		<description><![CDATA[En ocasiones necesitamos aplicar algunas soluciones un tanto extrañas para ahorrarnos horas de trabajo o simplemente para adoptar funcionalidades que de otra manera no tendriamos.
Esto es más notorio cuando programamos en varios entornos, ya que por ejemplo, la comunidad de desarrollo en torno a PHP es enorme y existen gran cantidad de soluciones gratuitas en [...]]]></description>
			<content:encoded><![CDATA[<p>En ocasiones necesitamos aplicar algunas soluciones un tanto extrañas para ahorrarnos horas de trabajo o simplemente para adoptar funcionalidades que de otra manera no tendriamos.</p>
<p>Esto es más notorio cuando programamos en varios entornos, ya que por ejemplo, la comunidad de desarrollo en torno a PHP es enorme y existen gran cantidad de soluciones gratuitas en forma de extensiones y clases cuya implementación en otra plataforma seria costosa.</p>
<p>Para esos casos existe una solución sencilla: executar el interprete de php vía com desde el interior de nuestra aplicación, utilizando para ello <a title="PHPx" href="http://www.codeproject.com/KB/dotnet/PHPX.aspx">PHPx</a>.</p>
<p><a title="PHPx" href="http://www.codeproject.com/KB/dotnet/PHPX.aspx">PHPx</a> es un control activex basado en <a href="http://sourceforge.net/projects/psvlib/">php4Delphi</a> (el sitio del <a href="http://users.telenet.be/ws36637/php4delphi.html">autor</a>) que por si mismo permite 3 cosas:</p>
<ul>
<li style="margin-left: 15px;">ejecutar codigo PHP en aplicaciones delphi,</li>
<li style="margin-left: 15px;">ejecutar codigo php en otras aplicaciones windows (php4Applications) y</li>
<li style="margin-left: 15px;">construir extensiones para php (ExtensionBuilder)</li>
</ul>
<p>La ventaja de PHPx es que los métodos están expuestos, mientras que con php4Applications es necesario declararlos primero. Por el otro lado, php4Applications viene con versiones para PHP 4.4.6, 5.2.11 y 5.3.0 mientras que el &#8220;port&#8221; no he podido hacerlo funcionar más que con 5.0.44.</p>
<p>Su uso en VFP es tan simple como:</p>
<div class="codecolorer-container visualfoxpro mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="visualfoxpro codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">php<span style="color: blue;">=</span> <span style="color: blue;">CREATEOBJECTEX</span><span style="color: blue;">&#40;</span><span style="color: #ff0000;">&quot;PHPXControl.PHPX&quot;</span><span style="color: blue;">,</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: blue;">,</span><span style="color: #ff0000;">&quot;&quot;</span><span style="color: blue;">&#41;</span><br />
php<span style="color: blue;">.</span><span style="color: #006600;">DLLFolder</span><span style="color: blue;">=</span><span style="color: #ff0000;">&quot;C:<span style="color: #000099; font-weight: bold;">\l</span>a-ruta-a-la-libreria&quot;</span><br />
php<span style="color: blue;">.</span><span style="color: #006600;">IniPath</span><span style="color: blue;">=</span><span style="color: #ff0000;">&quot;C:<span style="color: #000099; font-weight: bold;">\l</span>a-ruta-a-la-libreria&quot;</span><br />
<span style="color: blue;">?</span>php<span style="color: blue;">.</span><span style="color: #006600;">Execute</span><span style="color: blue;">&#40;</span><span style="color: #ff0000;">&quot;C:<span style="color: #000099; font-weight: bold;">\t</span>est.php&quot;</span><span style="color: blue;">&#41;</span><br />
php<span style="color: blue;">=</span> <span style="color: blue;">CREATEOBJECT</span><span style="color: blue;">&#40;</span><span style="color: #ff0000;">&quot;PHPXControl.PHPX&quot;</span><span style="color: blue;">&#41;</span><br />
php<span style="color: blue;">.</span><span style="color: #006600;">DLLFolder</span><span style="color: blue;">=</span><span style="color: #ff0000;">&quot;C:<span style="color: #000099; font-weight: bold;">\l</span>ibrerias&quot;</span> <span style="color: blue;">&amp;&amp;</span> En esta ruta debe estar php5ts<span style="color: blue;">.</span><span style="color: blue;">dll</span> <span style="color: blue;">&#40;</span>versió<span style="color: blue;">n</span> 5<span style="color: blue;">.</span>0<span style="color: blue;">.</span>44<span style="color: blue;">&#41;</span><br />
php<span style="color: blue;">.</span><span style="color: #006600;">IniPath</span><span style="color: blue;">=</span><span style="color: #ff0000;">&quot;C:<span style="color: #000099; font-weight: bold;">\l</span>ibrerias&quot;</span> <span style="color: blue;">&amp;&amp;</span> Es la ruta para el php<span style="color: blue;">.</span><span style="color: #006600;">ini</span><br />
<span style="color: blue;">?</span>php<span style="color: blue;">.</span><span style="color: #006600;">Execute</span><span style="color: blue;">&#40;</span><span style="color: #ff0000;">&quot;C:<span style="color: #000099; font-weight: bold;">\t</span>est.php&quot;</span><span style="color: blue;">&#41;</span><br />
<span style="color: blue;">?</span>php<span style="color: blue;">.</span><span style="color: #006600;">RunCode</span><span style="color: blue;">&#40;</span>'<span style="color: blue;">echo</span> <span style="color: #cc66cc;">5</span><span style="color: blue;">*</span><span style="color: #cc66cc;">25</span>'<span style="color: blue;">&#41;</span></div></td></tr></tbody></table></div>
<div>Por supuesto, debemos tener el control activex debidamente registrado.</div>

<p><a href="http://feedads.g.doubleclick.net/~a/sa4ct79R7pLOFr_y3uaHNEWgreE/0/da"><img src="http://feedads.g.doubleclick.net/~a/sa4ct79R7pLOFr_y3uaHNEWgreE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/sa4ct79R7pLOFr_y3uaHNEWgreE/1/da"><img src="http://feedads.g.doubleclick.net/~a/sa4ct79R7pLOFr_y3uaHNEWgreE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/trozosDeCodigo/~4/q9mCpxLPTyQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.trozosdecodigo.com/2009/11/15/php-desde-visual-fox-pro/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.trozosdecodigo.com/2009/11/15/php-desde-visual-fox-pro/</feedburner:origLink></item>
		<item>
		<title>Una ciudad que piensa como la web</title>
		<link>http://feedproxy.google.com/~r/trozosDeCodigo/~3/z_779DQ7yx8/</link>
		<comments>http://www.trozosdecodigo.com/2009/11/12/una-ciudad-que-piensa-como-la-web/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 03:26:08 +0000</pubDate>
		<dc:creator>Alfonso</dc:creator>
				<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.trozosdecodigo.com/?p=986</guid>
		<description><![CDATA[Hace unos momentos, probando Google Wave (gracias a una invitación que me facilito José Frechin por medio de su Tunel Carpiano, al que encontré gracias a mi último juguete: blog.osfera.net), me tope con el sitio de la ciudad de Toronto y su nueva sección: OpenTo.
toronto.ca/open es una iniciativa que deja en claro lo que es una administración [...]]]></description>
			<content:encoded><![CDATA[<p>Hace unos momentos, probando <a href="https://wave.google.com/">Google Wave</a> (gracias a una invitación que me facilito <a href="http://www.josefrechin.com/">José Frechin</a> por medio de su <a href="http://www.tunelcarpiano.net/2009/11/invitaciones-para-google-wave.html">Tunel Carpiano</a>, al que encontré gracias a mi último juguete: <a href="http://blog.osfera.net">blog.osfera.net</a>), me tope con el sitio de la ciudad de Toronto y su nueva sección: OpenTo.</p>
<p><a href="http://www.toronto.ca/open/">toronto.ca/open</a> es una iniciativa que deja en claro lo que es una administración transparente en el contexto de la sociedad de la información en que estamos inmersos. El sitio en si contiene un <a href="http://www.toronto.ca/open/catalogue.htm">catalogo</a> que enumera la información disponible en diferentes formatos (Esri Shapefiles, Feeds XML, WebServices, etc.).</p>
<p>Los datos están ahí para que los use quien quiera, con una <a href="http://www.toronto.ca/open/terms.htm#licence">licencia clara</a> y liberal: usa los datos y modificalos de acuerdo a tus necesidades&#8230; y si quieres ayúdanos a dar a conocer que los datos originales están aquí para todos.</p>
<p>Que diferencia con instituciones mexicanas (<a href="http://www.sepomex.gob.mx/">sepomex</a>) que prefieren asumir un retraso informático de 20 años antes que compartir con el público lo que en esencia es suyo&#8230; Pero este es otro asunto del que comentare después.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/TCAFBO1-qu8u4mNGoFEkOeTNknw/0/da"><img src="http://feedads.g.doubleclick.net/~a/TCAFBO1-qu8u4mNGoFEkOeTNknw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/TCAFBO1-qu8u4mNGoFEkOeTNknw/1/da"><img src="http://feedads.g.doubleclick.net/~a/TCAFBO1-qu8u4mNGoFEkOeTNknw/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/trozosDeCodigo/~4/z_779DQ7yx8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.trozosdecodigo.com/2009/11/12/una-ciudad-que-piensa-como-la-web/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.trozosdecodigo.com/2009/11/12/una-ciudad-que-piensa-como-la-web/</feedburner:origLink></item>
		<item>
		<title>Programando APIS</title>
		<link>http://feedproxy.google.com/~r/trozosDeCodigo/~3/mQ4vW5ExAcA/</link>
		<comments>http://www.trozosdecodigo.com/2009/11/06/programando-apis/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 04:34:28 +0000</pubDate>
		<dc:creator>Alfonso</dc:creator>
				<category><![CDATA[No es libre, pero es útil]]></category>

		<guid isPermaLink="false">http://www.trozosdecodigo.com/?p=983</guid>
		<description><![CDATA[Hay por la red una gran cantidad de fuentes para adquirir los datos técnicos necesarios para hacer que windows haga cosas (como avisar a un programa cuando se han instalado o removido dispositivos USB) o nos de información sobre el sistema programáticamente.
Sin embargo, quizás ninguna de estas fuentes sea tan practica como una pequeña utilería hta disponible [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-984" style="padding: 5px; margin: 5px; border: 1px solid black;" title="Scriptomatic" src="http://descargas.trozosdecodigo.com.s3.amazonaws.com/wp-content/uploads/2009/11/scriptomatic.PNG" alt="Scriptomatic" width="310" height="236" />Hay por la red una gran cantidad de fuentes para adquirir los datos técnicos necesarios para hacer que windows haga cosas (como avisar a un programa cuando se han instalado o removido dispositivos USB) o nos de información sobre el sistema programáticamente.</p>
<p>Sin embargo, quizás ninguna de estas fuentes sea tan practica como una pequeña utilería <em><a href="http://msdn.microsoft.com/en-us/library/ms536496(VS.85).aspx">hta</a></em> disponible gratuitamente en el sitio del gigante de Redmon: <a href="http://www.microsoft.com/downloads/details.aspx?familyid=09dfc342-648b-4119-b7eb-783b0f7d1178&amp;displaylang=en">Scriptomatic 2.0</a>.</p>
<p>Con este programita es posible generar scripts que interactuan con el sistema operativo sin ningún esfuerzo y revisar su código para adaptarlo a nuestras aplicaciones en minutos.</p>
<p>La descarga es de solo 374k! Este es un buen ejemplo que código que <a href="http://www.trozosdecodigo.com/archivos/categoria/software/no-es-libre-pero-es-util-software/">no es libre, pero es útil</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/1yRDq9fXUBjDJlQzN_gF-RAIwmM/0/da"><img src="http://feedads.g.doubleclick.net/~a/1yRDq9fXUBjDJlQzN_gF-RAIwmM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/1yRDq9fXUBjDJlQzN_gF-RAIwmM/1/da"><img src="http://feedads.g.doubleclick.net/~a/1yRDq9fXUBjDJlQzN_gF-RAIwmM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/trozosDeCodigo/~4/mQ4vW5ExAcA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.trozosdecodigo.com/2009/11/06/programando-apis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.trozosdecodigo.com/2009/11/06/programando-apis/</feedburner:origLink></item>
		<item>
		<title>Servidor PHP</title>
		<link>http://feedproxy.google.com/~r/trozosDeCodigo/~3/zPQU2xGpu9M/</link>
		<comments>http://www.trozosdecodigo.com/2009/10/31/servidor-php/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 03:28:40 +0000</pubDate>
		<dc:creator>Alfonso</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://www.trozosdecodigo.com/?p=981</guid>
		<description><![CDATA[Nanoweb es un servidor web escrito directamente en PHP, que es pequeño y rápido. Otra buena opción cuando es necesario un servidor que puedas meter en una USB o un CD.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://nanoweb.si.kz/">Nanoweb</a> es un servidor web escrito directamente en PHP, que es pequeño y rápido. Otra buena opción cuando es necesario un servidor que puedas meter en una USB o un CD.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/A0MNfTC6ebWVk8VwT9MvZQrZKVg/0/da"><img src="http://feedads.g.doubleclick.net/~a/A0MNfTC6ebWVk8VwT9MvZQrZKVg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/A0MNfTC6ebWVk8VwT9MvZQrZKVg/1/da"><img src="http://feedads.g.doubleclick.net/~a/A0MNfTC6ebWVk8VwT9MvZQrZKVg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/trozosDeCodigo/~4/zPQU2xGpu9M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.trozosdecodigo.com/2009/10/31/servidor-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.trozosdecodigo.com/2009/10/31/servidor-php/</feedburner:origLink></item>
		<item>
		<title>Compilando PHP</title>
		<link>http://feedproxy.google.com/~r/trozosDeCodigo/~3/y-71fJU3CDE/</link>
		<comments>http://www.trozosdecodigo.com/2009/10/28/compilando-php/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 04:45:41 +0000</pubDate>
		<dc:creator>Alfonso</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[No es libre, pero es útil]]></category>

		<guid isPermaLink="false">http://www.trozosdecodigo.com/?p=979</guid>
		<description><![CDATA[Hay varias soluciones para generar una interface de escritorio en php, pero esta luce bien: http://www.zzee.com/phpexe/
]]></description>
			<content:encoded><![CDATA[<p>Hay varias soluciones para generar una interface de escritorio en php, pero esta luce bien: <a href="http://www.zzee.com/phpexe/">http://www.zzee.com/phpexe/</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/KLVkNubo0zGHrm-3_1LNQIhdplI/0/da"><img src="http://feedads.g.doubleclick.net/~a/KLVkNubo0zGHrm-3_1LNQIhdplI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/KLVkNubo0zGHrm-3_1LNQIhdplI/1/da"><img src="http://feedads.g.doubleclick.net/~a/KLVkNubo0zGHrm-3_1LNQIhdplI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/trozosDeCodigo/~4/y-71fJU3CDE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.trozosdecodigo.com/2009/10/28/compilando-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.trozosdecodigo.com/2009/10/28/compilando-php/</feedburner:origLink></item>
		<item>
		<title>Skins en VFP</title>
		<link>http://feedproxy.google.com/~r/trozosDeCodigo/~3/8o8Ql9eHtk0/</link>
		<comments>http://www.trozosdecodigo.com/2009/10/15/skins-en-vfp/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 03:13:05 +0000</pubDate>
		<dc:creator>Alfonso</dc:creator>
				<category><![CDATA[Código]]></category>
		<category><![CDATA[VFP]]></category>

		<guid isPermaLink="false">http://www.trozosdecodigo.com/?p=976</guid>
		<description><![CDATA[Después  de un buen tiempo de no programar aplicaciones de escritorio,inicio un proyecto más o menos amplio en VFP el cual se encuentra en la etapa de definición y es por ello que estoy reuniendo recursos para la tarea.
De alguna vida anterior yo recordaba la existencia de VFPSkin, que ahora encuentro cerrado y sin referencias. Por [...]]]></description>
			<content:encoded><![CDATA[<p>Después  de un buen tiempo de no programar aplicaciones de escritorio,<img class="alignright size-full wp-image-977" title="Skin de Craig Boyd" src="http://descargas.trozosdecodigo.com.s3.amazonaws.com/wp-content/uploads/2009/10/greenscreenbmp.gif" alt="Skin de Craig Boyd" width="150" height="98" />inicio un proyecto más o menos amplio en VFP el cual se encuentra en la etapa de definición y es por ello que estoy reuniendo recursos para la tarea.</p>
<p>De alguna vida anterior yo recordaba la existencia de <a href="http://www.vfpskin.com.ar/">VFPSkin</a>, que ahora encuentro cerrado y sin referencias. Por otro lado se encuentra <a href="http://www.retailsystems.cz/foxface.htm">FoxFace</a>, una propuesta comercial con buena cara pero que no ofrece forma simple de comprar (el sitio esta en checo y para comprar hay que contactarlos por email).</p>
<p>Afortunadamente la comunidad sale al rescate:  en <a href="http://www.universalthread.com/">Universal Thread</a> hay una clase escrita por Boudewijn Lutgerink llamada Skinnedfoxes  (id: 37282) que consigue buenos efectos a nivel formulario (con algunos problemas al minimizar y maximizar)&#8230; y en cuya documentación encontre una referencia al sitio de <a href="http://weblogs.foxite.com/bernardBout">Bernard Bou</a>t en el que el tema es tratado ampliamente. En el sitio de Bernard el confiesa que ha adquirido inspiración de <a href="http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,9a91dea3-6413-42e9-aeff-f0097937474d.aspx">Craig Boyd</a>, quien a su vez menciona</p>
<blockquote><p>Sometime ago I incorporated VFPSkin elements into a project I was working on. This was when VFPSkin had first come out (version 1.0?) and was still free and open source&#8230;</p></blockquote>
<p>Lo que de alguna manera cierra el circulo ¿no?.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/m-2YK5wPuEXOLS0CZqnbHvEBj8M/0/da"><img src="http://feedads.g.doubleclick.net/~a/m-2YK5wPuEXOLS0CZqnbHvEBj8M/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/m-2YK5wPuEXOLS0CZqnbHvEBj8M/1/da"><img src="http://feedads.g.doubleclick.net/~a/m-2YK5wPuEXOLS0CZqnbHvEBj8M/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/trozosDeCodigo/~4/8o8Ql9eHtk0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.trozosdecodigo.com/2009/10/15/skins-en-vfp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.trozosdecodigo.com/2009/10/15/skins-en-vfp/</feedburner:origLink></item>
		<item>
		<title>Web en VFP</title>
		<link>http://feedproxy.google.com/~r/trozosDeCodigo/~3/nIeyTV5O26U/</link>
		<comments>http://www.trozosdecodigo.com/2009/10/10/web-en-vfp/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 23:15:32 +0000</pubDate>
		<dc:creator>Alfonso</dc:creator>
				<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Opensource]]></category>

		<guid isPermaLink="false">http://www.trozosdecodigo.com/?p=969</guid>
		<description><![CDATA[Hace mucho que no registro nada relacionado con Visual Fox Pro, y estos enlaces que encontré hace unas horas son un excelente pretexto para hacerlo ahora.
Se trata de tres proyectos en Codeplex, todos del mismo usuario: claudefox. El primero de ellos, ActiveVFP, nos permite servir páginas web dinámicas con código FoxPro. De la mano de este, MTmyVFP nos da capacidad para gestionar [...]]]></description>
			<content:encoded><![CDATA[<p>Hace mucho que no registro nada relacionado con Visual Fox Pro, y estos enlaces que encontré hace unas horas son un excelente pretexto para hacerlo ahora.</p>
<p>Se trata de tres proyectos en Codeplex, todos del mismo usuario: <a href="http://www.codeplex.com/site/users/view/claudefox">claudefox</a>. El primero de ellos, <a href="http://activevfp.codeplex.com/">ActiveVFP</a>, nos permite servir páginas web dinámicas con código FoxPro. De la mano de este, <a href="http://mtmyvfp.codeplex.com/">MTmyVFP</a> nos da capacidad para gestionar multiples &#8220;Thread&#8221; o hilos en aplicaciones de escritorio.</p>
<p>Por ultimo, <a href="http://vfpwebcrawler.codeplex.com/">vfpwebcrawler</a> es una aplicación capaz de hacer justo lo que su nombre indica: explorar y guardar una copia de un sitio web. Aunque esta programada por defecto para considerar enlaces al blog del autor, el código puede adaptarse a otras situaciones con facilidad.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/xnxZ3wuyw1-coPUvhvlK6XPcahM/0/da"><img src="http://feedads.g.doubleclick.net/~a/xnxZ3wuyw1-coPUvhvlK6XPcahM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/xnxZ3wuyw1-coPUvhvlK6XPcahM/1/da"><img src="http://feedads.g.doubleclick.net/~a/xnxZ3wuyw1-coPUvhvlK6XPcahM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/trozosDeCodigo/~4/nIeyTV5O26U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.trozosdecodigo.com/2009/10/10/web-en-vfp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.trozosdecodigo.com/2009/10/10/web-en-vfp/</feedburner:origLink></item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)
Database Caching using disk
Content Delivery Network via Amazon Web Services: S3: descargas.trozosdecodigo.com.s3.amazonaws.com

Served from: www.trozosdecodigo.com @ 2010-07-28 05:10:31 -->
