<?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>Daniel Fuentes</title>
	<atom:link href="http://www.danielfuentes.cl/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.danielfuentes.cl</link>
	<description>Al servicio de la comunidad</description>
	<lastBuildDate>Mon, 20 Feb 2012 15:12:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Nuevo Sitio RadioImagina.cl</title>
		<link>http://www.danielfuentes.cl/578/nuevo-sitio-radioimagina-cl/</link>
		<comments>http://www.danielfuentes.cl/578/nuevo-sitio-radioimagina-cl/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 15:11:37 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.danielfuentes.cl/?p=578</guid>
		<description><![CDATA[Hemos estrenado la nueva cara de RadioImagina.CL, con nuevas funcionalidades, más conectividad con redes sociales y más cercano a la gente. &#160;]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-579" title="RadioImagina.CL" src="http://www.danielfuentes.cl/wp-content/uploads/2012/02/radioimagina.jpg" alt="" width="260" height="249" />Hemos estrenado la nueva cara de <a href="http://www.radioimagina.cl" target="_blank">RadioImagina.CL</a>, con nuevas funcionalidades, más conectividad con redes sociales y más cercano a la gente.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielfuentes.cl/578/nuevo-sitio-radioimagina-cl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Definir miniaturas en tu sitio al compartir en Facebook</title>
		<link>http://www.danielfuentes.cl/573/definir-miniaturas-en-tu-sitio-al-compartir-en-facebook/</link>
		<comments>http://www.danielfuentes.cl/573/definir-miniaturas-en-tu-sitio-al-compartir-en-facebook/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 16:44:12 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.danielfuentes.cl/?p=573</guid>
		<description><![CDATA[Cuando compartimos un sitio web en Facebook pegamos la URL y Facebook nos muestra las imagenes disponible para mostrar (foto en miniatura), entonces el usuario selecciona la imagen y publica. Existe una manera que nosotros como propietarios del sitio web a compartir especificamos que imagen se debe mostrar y lo hacemos de la siguiente forma: [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando compartimos un sitio web en Facebook pegamos la URL y Facebook nos muestra las imagenes disponible para mostrar (foto en miniatura), entonces el usuario selecciona la imagen y publica. Existe una manera que nosotros como propietarios del sitio web a compartir especificamos que imagen se debe mostrar y lo hacemos de la siguiente forma:</p>
<p>En la cabecera del sitio ponemos lo siguiente:</p>
<pre>&lt;link rel="image_src" href="URL_imagen" /&gt;</pre>
<p>Con eso ya queda solucionado.</p>
<p><img title="Rock&amp;Pop en Facebook" src="http://www.danielfuentes.cl/wp-content/uploads/2012/01/rp_fb.jpg" alt="" width="512" height="212" /></p>
<p>Hice la prueba con el <a title="Nuevo sitio RockandPop.cl" href="http://www.danielfuentes.cl/566/nuevo-sitio-rockandpop-cl/" target="_blank">nuevo sitio de Rock&amp;Pop</a> y funcionó a la perfección.</p>
<p><strong>OJO</strong>: que el cambio no es inmediato, las miniaturas son guardas en caché de Facebook por lo que puede tomar varias horas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielfuentes.cl/573/definir-miniaturas-en-tu-sitio-al-compartir-en-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nuevo sitio RockandPop.cl</title>
		<link>http://www.danielfuentes.cl/566/nuevo-sitio-rockandpop-cl/</link>
		<comments>http://www.danielfuentes.cl/566/nuevo-sitio-rockandpop-cl/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 13:57:45 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.danielfuentes.cl/?p=566</guid>
		<description><![CDATA[Hace algunos días lanzamos la nueva versión del sitio juvenil www.rockandpop.cl Al seguir las opiniones en las redes sociales descubrimos muy buenas críticas. Además los clientes también quedamos felices con esta nueva creación.]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rockandpop.cl/wp-content/themes/rock-and-pop-cl/images/logo.jpg" alt="rockandpop.cl" class="alignleft" />Hace algunos días lanzamos la nueva versión del sitio juvenil <a href="http://www.rockandpop.cl" target="_blank">www.rockandpop.cl</a></p>
<p>Al seguir las opiniones en las redes sociales descubrimos muy buenas críticas. Además los clientes también quedamos felices con esta nueva creación.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielfuentes.cl/566/nuevo-sitio-rockandpop-cl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Festival de Viña del Mar &#124; Pudahuel.CL</title>
		<link>http://www.danielfuentes.cl/553/festival-de-vina-del-mar-pudahuel-cl/</link>
		<comments>http://www.danielfuentes.cl/553/festival-de-vina-del-mar-pudahuel-cl/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 17:11:54 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.danielfuentes.cl/?p=553</guid>
		<description><![CDATA[Después de algunas semanas desarrollando, se ha dado por inaugurado el sitio Festival de Viña 2012 &#124; Pudahuel.CL Hecho en WordPress más plugin personalizados y desarrollados a la medida. &#160;]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-554" style="border-style: initial; border-color: initial;" title="Festival de Viña 2012" src="http://www.danielfuentes.cl/wp-content/uploads/2012/01/festival2012.jpg" alt="" width="260" height="210" /></p>
<p>Después de algunas semanas desarrollando, se ha dado por inaugurado el sitio <strong><a href="http://festival.pudahuel.cl" target="_blank">Festival de Viña 2012 | Pudahuel.CL</a></strong></p>
<p>Hecho en WordPress más plugin personalizados y desarrollados a la medida.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielfuentes.cl/553/festival-de-vina-del-mar-pudahuel-cl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Concurso VitaLife</title>
		<link>http://www.danielfuentes.cl/550/concurso-vitalife/</link>
		<comments>http://www.danielfuentes.cl/550/concurso-vitalife/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 17:05:02 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.danielfuentes.cl/?p=550</guid>
		<description><![CDATA[ Hoy se lanzó el nuevo concurso de VitaLife que he desarrollado en FMDOS. Puedes ganar Gift Card, bolsas de productos y más. Desarrollado en PHP + JQuery.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-551" title="Vitalife Concurso" src="http://www.danielfuentes.cl/wp-content/uploads/2012/01/vitalife_concurso.jpg" alt="" width="240" height="185" /> Hoy se lanzó el nuevo <a href="http://www.fmdos.cl/scripts/fmdos/concursos/concurso_4/vitalife/index.php" target="_blank">concurso de VitaLife </a>que he desarrollado en <a href="http://www.fmdos.cl" target="_blank">FMDOS</a>.</p>
<p>Puedes ganar Gift Card, bolsas de productos y más.</p>
<p>Desarrollado en PHP + JQuery.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielfuentes.cl/550/concurso-vitalife/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BlackPerri.cl &#124; Nueva creación</title>
		<link>http://www.danielfuentes.cl/542/blackperri-cl-nueva-creacion/</link>
		<comments>http://www.danielfuentes.cl/542/blackperri-cl-nueva-creacion/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 20:33:45 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.danielfuentes.cl/?p=542</guid>
		<description><![CDATA[Hoy he terminado de programar BlackPerri.cl es el sitio web de una empresa de banquetería y eventos líder en el mercado. Con más de 10 años de experiencia han realizado los más diversos y entretenidos eventos en matrimonios, empresas y fiestas en general. Visite BlackPerri.cl]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-543" title="BlackPerri.cl" src="http://www.danielfuentes.cl/wp-content/uploads/2011/12/blackperri_sitio.jpg" alt="" width="182" height="68" />Hoy he terminado de programar <a href="http://www.blackperri.cl" target="_blank">BlackPerri.cl</a> es el sitio web de una empresa de banquetería y eventos líder en el mercado.</p>
<p>Con más de 10 años de experiencia han realizado los más diversos y entretenidos eventos en matrimonios, empresas y fiestas en general.</p>
<p>Visite <a href="http://www.blackperri.cl" target="_blank">BlackPerri.cl</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielfuentes.cl/542/blackperri-cl-nueva-creacion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buenas prácticas en PHP &#8211; Excepciones</title>
		<link>http://www.danielfuentes.cl/536/buenas-practicas-en-php-excepciones/</link>
		<comments>http://www.danielfuentes.cl/536/buenas-practicas-en-php-excepciones/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 20:47:32 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.danielfuentes.cl/?p=536</guid>
		<description><![CDATA[Situación: PHP soporta manejo de excepciones, esto es bueno, pero peligroso. Las excepciones son una gran herramienta para manejar situaciones excepcionales en la ejecución del código. A menudo se usan mal las excepciones, y tendemos a abusar de ellas. Las excepciones causan un poco de pérdida de memoria cuando son ejecutadas en algunas situaciones. Como [...]]]></description>
			<content:encoded><![CDATA[<p><strong><img class="alignleft size-thumbnail wp-image-531" title="php online" src="http://www.danielfuentes.cl/wp-content/uploads/2011/12/php-online1-150x150.jpg" alt="" width="150" height="150" />Situación</strong>:</p>
<p>PHP soporta manejo de excepciones, esto es bueno, pero peligroso.</p>
<p>Las excepciones son una gran herramienta para manejar situaciones excepcionales en la ejecución del código.</p>
<p>A menudo se usan mal las excepciones, y tendemos a abusar de ellas.</p>
<p>Las excepciones causan un poco de pérdida de memoria cuando son ejecutadas en algunas situaciones. Como por ejemplo:</p>
<p><span id="more-536"></span></p>
<pre>
&lt;?php
function check_input($input) {
if($input !== "Hola") {
throw new Exception("Usuario erroneo");
}
}
?&gt;
</pre>
<p>Cuando podríamos hacer algo mucho más simple como:</p>
<pre>
&lt;?php
function check_input($input) {
if($input !== "Hola") {
return false;
} else {
return true;
}
?&gt;
</pre>
<p><strong>Solución</strong>: Usar bien las excepciones</p>
<pre>
&lt;?php
function check_server_connection() {
if(server_connection_timeout()) {
throw new Exception('Tiempo fuera');
}
}
?&gt;
</pre>
<p>Manejo de errores en un bloque de procesos</p>
<pre>
&lt;?php
try {
$person-&gt;setName('John Doe');
$person-&gt;setAddress('Something St. 12');
$person-&gt;setbirthDate('10-10-1900');
$person-&gt;store();
} catch (Exception e) {
throw new DataPopulationException('Unable to fill data for person ' . $person-&gt;getId(), e);
}
?&gt;
</pre>
<p>Las excepciones pierden algo de memoria cuando se les lanza continuamente (por ejemplo en un bucle de proceso):</p>
<pre>
&lt;?php
foreach($i = 1000000; $i &gt; 0; $i--) {
throw new Exceptions( "Algun mensaje" );
}
?&gt;
</pre>
<p>La memoria usada no es liberada por completo cada vez.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielfuentes.cl/536/buenas-practicas-en-php-excepciones/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Buenas prácticas en PHP &#8211; E_STRICT</title>
		<link>http://www.danielfuentes.cl/530/buenas-practicas-en-php-e_strict/</link>
		<comments>http://www.danielfuentes.cl/530/buenas-practicas-en-php-e_strict/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 19:59:47 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.danielfuentes.cl/?p=530</guid>
		<description><![CDATA[Situación: Desde PHP 5.0 existe un nuevo nivel de error: E_STRICT Esto nos fuerza a escribir código que sea compatible (&#8220;limpio&#8221;) con PHP 5. Muy probablemente E_STRICT se convierta en E_FATAL en PHP 6 Existe mucho código que no es &#8220;E_STRICT&#8221; y que por tanto no es portable en su totalidad a sistemas usando PHP [...]]]></description>
			<content:encoded><![CDATA[<p><strong><img class="alignleft size-thumbnail wp-image-531" title="php online" src="http://www.danielfuentes.cl/wp-content/uploads/2011/12/php-online1-150x150.jpg" alt="" width="150" height="150" />Situación</strong>:</p>
<p>Desde PHP 5.0 existe un nuevo nivel de error: <strong>E_STRICT</strong></p>
<p>Esto nos fuerza a escribir código que sea compatible (&#8220;limpio&#8221;) con PHP 5.</p>
<p>Muy probablemente E_STRICT se convierta en E_FATAL en PHP 6</p>
<p>Existe mucho código que no es &#8220;E_STRICT&#8221; y que por tanto no es portable en su totalidad a sistemas usando PHP 5</p>
<p><strong>Solución</strong>:</p>
<p>Usemos <strong>E_STRICT</strong>, y revisemos nuestro código en php.ini:</p>
<p><strong>error_reporting=E_ALL | E_STRICT</strong></p>
<p>Error típico encontrado usando E_STRICT: uso de is_a() en lugar de instanceof:</p>
<p><strong>Problema</strong></p>
<pre>
&lt;?php
if(is_a($object, 'ClassName')) {
$object-&gt;algunMetodo();
}
?&gt;
</pre>
<p><strong>Solución</strong></p>
<pre>
&lt;?php
if($object instanceof ClassName) {
$object-&gt;algunMetodo();
}
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.danielfuentes.cl/530/buenas-practicas-en-php-e_strict/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buenas prácticas en PHP &#8211; &#8220;Tags&#8221; cortas son dañinas</title>
		<link>http://www.danielfuentes.cl/526/buenas-practicas-en-php-tags-cortas-son-daninas/</link>
		<comments>http://www.danielfuentes.cl/526/buenas-practicas-en-php-tags-cortas-son-daninas/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 19:23:29 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.danielfuentes.cl/?p=526</guid>
		<description><![CDATA[PHP permite varias formas de marcar el comienzo del código: Forma estándar: &#60;?php echo "Hola!"; ?&#62; Forma corta: &#60;? echo "Hola!"; ?&#62; o peor &#60;?="Hola!"; ?&#62; o peor aún: &#60;% echo &#8220;Hola!&#8221;; %&#62; Pero: &#60;? está reservado para declarar XML &#60;?= no es XML válido (&#60;?php si lo es) &#60;% es para los que trabajan [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-524" title="php online" src="http://www.danielfuentes.cl/wp-content/uploads/2011/12/php-online.jpg" alt="" width="175" height="175" />PHP permite varias formas de marcar el comienzo del código:</p>
<p>Forma estándar:</p>
<pre>&lt;?php echo "Hola!"; ?&gt;</pre>
<p>Forma corta:</p>
<pre>&lt;? echo "Hola!"; ?&gt;</pre>
<p>o peor
<pre>&lt;?="Hola!"; ?&gt;</pre>
<p>o peor aún:</p>
<pre></pre>
<p>&lt;% echo &#8220;Hola!&#8221;; %&gt;</p>
<p>Pero:</p>
<p><strong>&lt;?</strong> está reservado para declarar XML<br />
<strong>&lt;?=</strong> no es XML válido (&lt;?php si lo es)<br />
<strong>&lt;%</strong> es para los que trabajan con ASP</p>
<p>Solución:</p>
<p>Usar siempre la forma estándar &lt;?php y convertir todos los programas que tienen algo diferente ya que esta forma estándar tiene garantizado el soporte en versiones futuras, representa una instrucción de procesamiento válida en XML y es única en todos los programas PHP.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielfuentes.cl/526/buenas-practicas-en-php-tags-cortas-son-daninas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buenas prácticas en PHP &#8211; Tipos de Datos</title>
		<link>http://www.danielfuentes.cl/517/buenas-practicas-en-php-tipos-de-datos/</link>
		<comments>http://www.danielfuentes.cl/517/buenas-practicas-en-php-tipos-de-datos/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 18:54:25 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.danielfuentes.cl/?p=517</guid>
		<description><![CDATA[Asegurarse del tipo de dato Situación: PHP no usa tipos estrictos &#60;?php $foo = "1"; $bar = $foo + 1; var_dump($foo, $bar); ?&#62; Resultado: string(1) &#8220;1&#8243; int(2) &#8230; los operadores tampoco lo usan: &#60;?php $int = 1; $string = "1"; $bool = true; var_dump($int == $string); var_dump($string == $bool); var_dump($int == $bool); ?&#62; Resultado: bool(true) [...]]]></description>
			<content:encoded><![CDATA[<p><strong><img class="alignleft size-full wp-image-524" title="php online" src="http://www.danielfuentes.cl/wp-content/uploads/2011/12/php-online.jpg" alt="" width="175" height="175" />Asegurarse del tipo de dato</strong></p>
<p><strong>Situación</strong>: PHP no usa tipos estrictos</p>
<pre>
&lt;?php
$foo = "1";
$bar = $foo + 1;
var_dump($foo, $bar);
?&gt;
</pre>
<p><strong>Resultado</strong>:</p>
<p>string(1) &#8220;1&#8243;<br />
int(2)</p>
<p>&#8230; los operadores tampoco lo usan:</p>
<p><span id="more-517"></span></p>
<pre>
&lt;?php
$int = 1;
$string = "1";
$bool = true;
var_dump($int == $string);
var_dump($string == $bool);
var_dump($int == $bool);
?&gt;
</pre>
<p><strong>Resultado</strong>:</p>
<p>bool(true)<br />
bool(true)<br />
bool(true)</p>
<p>Esto causa situaciones confusas:</p>
<pre>
&lt;?php
var_dump( '1' == '1.' );
?&gt;
</pre>
<p><strong>Resultado</strong>: bool(true)</p>
<p>y puede producir errores como el siguiente:</p>
<pre>
&lt;?php
function  foo($answer) {
if($answer &gt; 10) {
return true;
} else {
return $answer;
}
}
if(foo(11)) {
echo "11 es mayor que 10&lt;br /&gt;";
}
if(foo(9)){
echo "9 es mayor que 10&lt;br /&gt;";
}
?&gt;
</pre>
<p><strong>Resultado</strong>:</p>
<p>11 es mayor que 10<br />
9 es mayor que 10</p>
<p><strong>La solución</strong>: Programar asegurándose de los tipos de datos</p>
<pre>
&lt;?php
$foo = "1";
$bar = (int)$foo + 1;
var_dump((int)$foo, $bar);
?&gt;
</pre>
<p><strong>Resultado</strong>:</p>
<p>int(1)<br />
int(2)</p>
<p>&#8230; y usar comparadores que entiendan tipos:</p>
<pre>
&lt;?php
$int = 1;
$string = "1";
$bool = true;
var_dump($int === $string);
var_dump($string === $bool);
var_dump($int === $bool);
?&gt;
</pre>
<p><strong>Resultado</strong>:</p>
<p>bool(false)<br />
bool(false)<br />
bool(false)</p>
<p>Y el problema anterior desaparece mágicamente:</p>
<pre>
&lt;?php
function  foo($answer) {
if($answer &gt; 10) {
return true;
} else {
return $answer;
}
}
if(foo(11) === true) {
echo "11 es mayor que 10&lt;br /&gt;";
}
if(foo(9) === true){
echo "9 es mayor que 10&lt;br /&gt;";
}
?&gt;
</pre>
<p><strong>Resultado</strong>:</p>
<p>11 es meyor que 10</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielfuentes.cl/517/buenas-practicas-en-php-tipos-de-datos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

