﻿<?xml version="1.0" encoding="UTF-8"?>
							<rss version="2.0">
						    <channel>
						    <title>Dr. Bizarre | Mi punto de encuentro</title>
    						<link>http://www.drbizarre.net</link>
							<description>Desarrollador Web que intenta transmitir, persuadir y chingar en la WEB.</description>
							<webMaster>webdev@drbizarre.net (Dr. Bizarre)</webMaster>
 					  
							<item>
    							<title><![CDATA[4to Aniversario Luctuoso de mi Padre]]></title>
								<pubDate>2010-06-22</pubDate>
							    <link>http://www.drbizarre.net/post/4to-aniversario-luctuoso-de-mi-padre</link> 
								<description><![CDATA[<p>Ya 4 a&ntilde;os desde que el viejo no est&aacute; aqu&iacute; dando lata, su silvido, su olor, su modo, su tono. El 18 de mayo pasado hubiera cumplido 63 a&ntilde;os, hubiera conocido a Ana y muchos hubieras.<br /><br />
El dolor hoy es diferente pero sigue siendo dolor, el recuerdo comienza a sentirse de otro modo; &Eacute;l era chispa, era carisma, era m&uacute;sica...&iquest;era o &eacute;s?.
</p>
<p>Escuchar estas canciones es abrazarlo otra vez, <strong>Cari&ntilde;o Verdad</strong> me dijo que le recordaba mucho a su mam&aacute;, porque le dolio dejarla a los 15 a&ntilde;os y <strong>Flores Negras</strong> dedicada a una mujer que dejo literalmente vestida y alborotada por venir a Tijuana para hacer vida con la que fue mi madre. Cabron el tipo.</p>
<div class="youtube">
<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/z3t8QkI4IZw&hl=en_US&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/z3t8QkI4IZw&hl=en_US&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>
</div>
<div class="youtube">
<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/Fr9PMqXj4dU&hl=en_US&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Fr9PMqXj4dU&hl=en_US&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>
</div>]]></description>
							</item>
					
							<item>
    							<title><![CDATA[Ejemplo de uso de la API de Flickr con PHP]]></title>
								<pubDate>2010-05-18</pubDate>
							    <link>http://www.drbizarre.net/post/ejemplo-de-uso-de-la-api-de-flickr-con-php</link> 
								<description><![CDATA[<p>
Este ejemplo usa <a title="Clase PHP para acceso a la Api de Flickr" href="http://phpflickr.com/">phpFlickr</a>, clase escrita en php donde descansan varios métodos para el tratamiento del
resultado de las peticiones al web service de Flickr.
</p>
<p>
Flickr ofrece una cuenta gratuita con <a title="Limitaciones de la Cuenta Gratuita de Flickr" href="http://www.flickr.com/help/limits/#65">algunas limitaciones</a>, una de ellas seg&uacute;n veo es que
no permite tener <strong>colecctions</strong> de <strong>sets</strong>, asi que por lo pronto este ejemplo se enfoca a <strong>sets</strong> y <strong>photos</strong> de nuestro <strong>photostream</strong>
</p>

<ul>
	<li>Descargar el ejemplo <a title="Ejemplo de uso de la API de Flickr con PHP" href="archivos/phpflickr-3.0.zip">phpflickr-3.0.zip</a></li>
	<li><a title="Obtener una key para el API" href="http://www.flickr.com/services/api/misc.api_keys.html">Obtener una key para el API</a></li>
	<li><a title="IDentificar el tu ID de Flickr" href="http://idgettr.com/">IDentificar tu ID de Flickr</a></li>    
</ul>
<p><strong>phpFlickr</strong>, consta de 3 archivos: <code>phpFlickr.php</code>, <code>getToken.php</code>, <code>auth.php</code>, aunque en el ejemplo se incluyen 4 archivos adicionales: <code>sets.php</code>, <code>photos-set.php</code>, <code>photo.php</code>,<code>noimg.jpg</code></p>
<h4>Obtener listado de sets</h4>
<pre class="brush: php">
//sets.php
require_once("phpFlickr.php");
$f = new phpFlickr("tu key"); // 5456afd54654a65a656465as45654 
$f-&gt;enableCache("fs", "cache");
$nsid = "tu ID"; // 234234234@N20
$sets = $f-&gt;photosets_getList($user_id=$nsid);
for($i=0;$i&lt;=sizeof($sets);$i++)
{
	echo "&lt;a title=\"".utf8_decode($sets["photoset"][$i]["title"])."\" href=\"photos-set.php?set=".$sets["photoset"][$i]["id"]."\"&gt;".utf8_decode($sets["photoset"][$i]["title"])."&lt;/a&gt; (".$sets["photoset"][$i]["photos"].")&lt;br&gt;";
}
</pre>
<h4>Desplegar thumb de las photos de un set</h4>
<pre class="brush: php">
//photo-set.php
require_once("phpFlickr.php");
$f = new phpFlickr("tu key"); // 5456afd54654a65a656465as45654
$f-&gt;enableCache("fs", "cache");  	
$nsid = "tu ID"; // 234234234@N20
$info_set = $f-&gt;photosets_getInfo($photoset_id=$_GET["set"]);
echo " &lt;&lt;h2&gt;".utf8_decode($info_set["title"])."&lt;/h2&gt;";
echo "&lt;p&gt;&lt;a title=\"Regresar a Galerias\" href=\"sets.php\"&gt;&laquo; Regresar a galerias&lt;/a&gt;&lt;/p&gt;";
$photos_of_sets = $f-&gt;photosets_getPhotos($photoset_id=$_GET["set"],$per_page=20);

foreach($photos_of_sets["photoset"]["photo"] as $photo)
{
	echo "&lt;a href=\"photo.php?id=$photo[id]&set=".$_GET["set"]."\" title=\"View ".utf8_decode($photo["title"])."\"&gt;";  
	echo "&lt;img src=\"" . $f-&gt;buildPhotoURL($photo, "Square") .  "\" width=\"75\" height=\"75\" alt=\"".utf8_decode($photo["title"])."\" /&gt;";  
	echo "&lt;/a&gt;";  
}
</pre>
<h4>Desplegar el detalle de cada photo</h4>
<p>Detalle significa la foto de un tamaño con mayor resoluci&oacute;on, t&iacute;tulo, descripci&oacute;n, la que sigue y la anterior</p>
<pre class="brush: php">
//photo.php
$id = isset($_GET['id']) ? $_GET['id'] : NULL;  
require_once('phpFlickr.php');  
$f = new phpFlickr("tu key"); // 5456afd54654a65a656465as45654
$f-&gt;enableCache("fs", "cache");  
$photo = $f-&gt;photos_getInfo("$id", $secret = NULL);
$photosize = $f-&gt;photos_getSizes("$id", $secret = NULL);
$size = $photosize[3];
$context = $f-&gt;photos_getContext("$id");
$photoUrl = $f-&gt;buildPhotoURL($photo, "Medium");
echo "&lt;h2&gt;".utf8_decode($photo["title"])."&lt;/h2&gt;";
echo "&lt;img src=\"$photoUrl\" width=\"$size[width]\" height=\"$size[height]\" alt=\"".utf8_decode($photo["title"])."\" /&gt;";
echo "&lt;p&gt;".utf8_decode($photo["description"])."&lt;/p&gt;";
?&gt;
&lt;div id="context"&gt;
&lt;?php
if($context['prevphoto']['id'])
{
	echo"&lt;a href=\"?id=".$context['prevphoto']['id']."&set=".$_GET["set"]."\" title=\"Anterior:  ".utf8_decode($context['prevphoto']['title'])."\"&gt;&lt;img  src=\"".$context['prevphoto']['thumb']."\" width=\"75\" height=\"75\"  /&gt;&lt;/a&gt;";
}
else
{
	echo"&lt;img src=\"noimg.jpg\" width=\"75\" height=\"75\" alt=\"No photo\" /&gt;";
}

if($context['nextphoto']['id'])
{
	echo "&lt;a  href=\"?id=".$context['nextphoto']['id']."&set=".$_GET["set"]."\" title=\"Siguiente:  ".utf8_decode($context['nextphoto']['title'])."\"&gt;&lt;img  src=\"".$context['nextphoto']['thumb']."\" width=\"75\" height=\"75\"  /&gt;&lt;/a&gt;";
}
else
{
	echo"&lt;img src=\"noimg.jpg\" width=\"75\" height=\"75\" alt=\"No photo\" /&gt;";
};
echo"&lt;/div&gt;";

echo"&lt;p&gt;";
if($context['prevphoto']['id'])
{
	echo"&lt;a  href=\"?id=".$context['prevphoto']['id']."&set=".$_GET["set"]."\" title=\"Anterior:  ".utf8_decode($context['prevphoto']['title'])."\"&gt;&laquo; Anterior&lt;/a&gt;";
}
else
{
	echo"&laquo; Anterior";
}
echo" | ";
if($context['nextphoto']['id'])
{
	echo "&lt;a  href=\"?id=".$context['nextphoto']['id']."&set=".$_GET["set"]."\" title=\"Siguiente:  ".utf8_decode($context['nextphoto']['title'])."\"&gt;Siguiente  &raquo;&lt;/a&gt;";
}
else
{
	echo"Next &raquo;";
}
echo"&lt;/p&gt;";
?&gt;
&lt;/div&gt;&lt;!-- end context --&gt;
&lt;p&gt;&laquo; &lt;a href="photos-set.php?set=&lt;?php echo $_GET["set"]?&gt;"&gt;Regresa a Galeria&lt;/a&gt;&lt;/p&gt;
</pre>

<p>Mi Cuenta en Flickr:<a title="Cuenta en Flickr de Dr. Bizarre" href="http://www.flickr.com/photos/dr-bizarre">http://www.flickr.com/photos/dr-bizarre</a></p>
<p>Demo: <a title="Ejemplo de uso de la API de Flickr con PHP" href="http://www.drbizarre.net/tester/phpflickr-3.0/sets.php">http://www.drbizarre.net/tester/phpflickr-3.0/sets.php</a></p>]]></description>
							</item>
					
							<item>
    							<title><![CDATA[Wishlist para el 31 de marzo, 2010]]></title>
								<pubDate>2010-03-12</pubDate>
							    <link>http://www.drbizarre.net/post/wishlist-para-31-de-marzo-2010</link> 
								<description><![CDATA[<h4>Familia, amigos:</h4>
<p>No se preocupen buscando y comparando precios para regalos en mi cumplea&ntilde;os numero 27, de verdad no sufran.</p>
<p>He listado aquellas cosas materiales -desde luego- que sin duda me har&aacute;n feliz, lean bien por favor, es in&uacute;til querer regalar ropa, calzado y/o perfumes, o cualquier otra cosa sin valor, hablando en la moneda del aprecio.</p>
<p>Si de verdad no tienen dinero, no sufran les repito, pueden hacerme medianamente feliz con unos chocolates -unicamente snickers y m&amp;m-, ropa interior -soy L- o invitarme a comer algo rico -pinches tacos de tripa-.</p>
<p>Algo muy importante, por favor no quiero pastel, no me hace feliz, si a ustedes si, ok lo probar&eacute; y la har&eacute; de pedo cantando las ma&ntilde;anitas.</p>
<p>Bien, despues de hablar claramente aqui tienen la lista.</p>
<ul>
<li><a title="video card" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16814130514">http://www.newegg.com/Product/Product.aspx?Item=N82E16814130514</a><br /><div class="imgCentral"><img alt="" src="img/forpost/gts250.jpg"></div></li>
<li><a title="mouse pad" href="http://store.razerzone.com/store/razerusa/en_US/pd/productID.169417000">http://store.razerzone.com/store/razerusa/en_US/pd/productID.169417000</a><br /><div class="imgCentral"><img alt="" src="img/forpost/razer-goliathus-control.jpg"></div></li>
<li><a title="teclado" href="http://store.razerzone.com/store/razerusa/en_US/pd/productID.169417800/categoryId.35156900">http://store.razerzone.com/store/razerusa/en_US/pd/productID.169417800/categoryId.35156900</a><br /><div class="imgCentral"><img alt="" src="img/forpost/razer-lycosa.jpg"></div></li>
<li><a title="mouse" href="http://store.razerzone.com/store/razerusa/en_US/pd/productID.169416100/categoryId.35208800">http://store.razerzone.com/store/razerusa/en_US/pd/productID.169416100/categoryId.35208800</a><br /><div class="imgCentral"><img alt="" src="img/forpost/razer-deathadder.jpg"></div></li>
</ul>
<p>Si eres l&iacute;der, organiza a los dem&aacute;s y en grupo compren todo, es mas f&aacute;cil. :)</p>]]></description>
							</item>
					
							<item>
    							<title><![CDATA[Acentos en PHP y MySQL]]></title>
								<pubDate>2010-02-07</pubDate>
							    <link>http://www.drbizarre.net/post/acentos-en-php-y-mysql</link> 
								<description><![CDATA[<p>Desde luego para poder representar caract&eacute;res del lenguaje espa&ntilde;ol en nuestras aplicaciones es imprescindible el uso del conjunto de caract&eacute;res utf8.</p>

<p>Ej.<strong> &aacute; &eacute; &iacute; &oacute; &uacute; &ntilde;</strong></p>

<p>En MYSQL es necesario configurar los campos y las tablas con este encoding para los caract&eacute;res:</p>

<pre class="brush: js">

// modificar el charset 

ALTER TABLE myTable MODIFY myColumn VARCHAR(255) CHARACTER SET utf8;

</pre>

<p>En nuestro documento html hacer:</p>

<pre class="brush:  plain">

// indicando el conjunto de cacracteres para nuestro documento

 &lt;meta http-equiv="Content-type" value="text/html; charset=utf-8"&gt;

</pre>

<p>y con php utilizar la funci&oacute;n</p>

<pre class="brush: php">

//pasando la variable por el arco de la funcion

utf8_decode($mivar)

</pre>

<p>D&oacute;nde <code>$mivar</code> contiene el valor del campo de la tabla configurada a utf8.</p>

<p>Verificar que en nuestra tabla se este grabando de la siguente manera los caract&eacute;res:</p>

<blockquote>El Centro de EnseÃ±anza TÃ©cnica y Superior (CETYS Universidad) es una instituciÃ³n educativa de excelencia, situada en el estado de Baja California, MÃ©xico. Actualmente estÃ¡ catalogada como una de las mejores universidades del paÃ­s. AdemÃ¡s estÃ¡ acreditada por organismos supervisores de la calidad acadÃ©mica, como la FederaciÃ³n de Instituciones Mexicanas Particulares de EducaciÃ³n Superior (FIMPES).</blockquote>

<p>y tras pasar esta cadena por la funcion <code>utf8_decode()</code> verificar que tengamos este resultado:</p>

<blockquote>El Centro de Ense&ntilde;anza T&eacute;cnica y Superior (CETYS Universidad) es una instituci&oacute;n educativa de excelencia, situada en el estado de Baja California, M&eacute;xico. Actualmente est&aacute; catalogada como una de las mejores universidades del pa&iacute;s. Adem&aacute;s est&aacute; acreditada por organismos supervisores de la calidad acad&eacute;mica, como la Federaci&oacute;n de Instituciones Mexicanas Particulares de Educaci&oacute;n Superior (FIMPES)</blockquote>
]]></description>
							</item>
					
							<item>
    							<title><![CDATA[CodeIgniter, Ext JS y Blueprint]]></title>
								<pubDate>2009-10-21</pubDate>
							    <link>http://www.drbizarre.net/post/codeigniter-extjs-y-blueprint</link> 
								<description><![CDATA[<p>Empezar un <strong>proyecto</strong> siempre me inyecta adrenalina por un lado por lo emocionante que es iniciar desde cero y construir artesanalmente un sistema y por otro el momento de elegir las herramientas de apoyo. Me resisto a casarme con algunas practicas de desarrollo porque me queda la sensaci&oacute;n de que me estoy perdiendo de algo muy bueno.</p>
<p>Ahora que inici&eacute; un proyecto que me tiene muy emocionado pues valientemente decid&iacute; usar frameworks de desarrollo que solo conoc&iacute;a por nombre como lo es <a title="CodeIgniter" href="http://codeigniter.com/">CodeIgniter</a> y <a title="EXT JS" href="http://www.extjs.com/">Ext JS</a>, php y javascript respectivamente, <a title="Blueprint" href="http://www.blueprintcss.org/">Blueprint</a> ya es mi herramienta por default para escribir estilos, es t&aacute;n f&aacute;cil y ordenado.</p>
<p>Desde hace mas de un a&ntilde;o temerosamente intente usar <a title="Zend Framework" href="http://framework.zend.com/">Zend Framework</a>, pero como bien dice PHP Senior, soy un <a title="programador de objetos con grado de madurez tipo 2" href="http://phpsenior.blogspot.com/2009/10/discusion-cual-es-tu-grado-de-madurez.html">programador de objetos con grado de madurez tipo 2</a> nunca pude siquiera hacer pruebas porque simplemente no logre configurar y entender correctamente el entorno MVC, mi lado renuente dice que "la curva de aprendizaje de Zend es bastante alta" y mi lado comodin me dijo que "no me complicara y buscara otra manera de mejorar mi organizaci&oacute;n escribiendo c&oacute;digo en el servidor", y tras analizar los que el mercado me ofrece segun la tabla comparativa vista en <a title="www.phpframeworks.com" href="http://www.phpframeworks.com/">www.phpframeworks.com</a> decante por CodeIgniter, por las siguientes razones:</p>
<ol>
    <li>El dise&ntilde;o del sitio del framework esta cool.</li>
    <li>Lo pude configurar INSTANTANEAMENTE en mi servidor.</li>
    <li>Me ofrece justamente lo que necesito, y no mas.</li>
    <li>El nombre del framework es cool.</li>
    <li>Documentaci&oacute;n decente. </li>
</ol>
<p>Del lado del cliente soy esclavo invariable de <strong>jquery</strong> y <strong>Mootools</strong>, dicen los expertos que estos no tienen comparaci&oacute;n pues se tratan de la guerra entre un Tooolkit Vs Framework. En proyectos laborales he tenido la oportunidad de utilizar estas herramientas a fondo, tanto que ya son parte inamovible de los proyectos.</p>
<p>Hace unos meses me invitaton a participar a un proyecto muy interesante, y el l&iacute;der del proyecto tenia un capricho muy especial, que era usar Ext JS como apoyo para javascript, ya que esta herramienta cuenta con un verdadero framework de desarrollo para aplicaciones web, sin caer en fanatismos <strong>EXT JS</strong> es una joya que pr&oacute;nto estara en boca de todos. Por la crisis y por una negociaci&oacute;n pobre, el proyecto esta detenido hasta nuevo aviso. Por lo anterior tuve la curiosidad de poder implementar EXT JS, y hoy me doy esta oportunidad.</p>
<p>Hoy tuve ganas de escribir este post para vertir este miedo tan divertido que es conocer lo hasta hoy desconocido con tiempos de entrega fijos y altas expectativas de cliente.</p>
<p>Espero pronto poder aportar mis experiencias en el proyecto con estas herramientas.</p>
]]></description>
							</item>
					 </channel></rss> 