<?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>HectorBenitez.com [Blog] &#187; Desarrollo/Programación</title> <atom:link href="http://blog.hectorbenitez.com/category/desarrollo_programacion/feed/" rel="self" type="application/rss+xml" /><link>http://blog.hectorbenitez.com</link> <description>Desarrollo de sistemas o algo por el estilo...</description> <lastBuildDate>Sun, 11 Dec 2011 22:25:49 +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>JQuery: Manejadores de eventos y callbacks en OOP</title><link>http://blog.hectorbenitez.com/2010/12/jquery-manejadores-de-eventos-y-callbacks-en-oop/</link> <comments>http://blog.hectorbenitez.com/2010/12/jquery-manejadores-de-eventos-y-callbacks-en-oop/#comments</comments> <pubDate>Sun, 26 Dec 2010 14:00:03 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[Javascript]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[JQuery]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=1758</guid> <description><![CDATA[Dos cosas basicas al momento de programar con JQuery son el usar diversos manejadores de eventos (event handler) y llamar funciones en repuesta a algo, los llamados callback, muchos son los usos que tenemos para estas 2 cosas, desde controlar clicks hasta realizar acciones en respuesta a un llamado ajax, esto es algo muy comun [...]]]></description> <content:encoded><![CDATA[<p>Dos cosas basicas al momento de programar con <a href="http://jquery.com/" target="_blank">JQuery</a> son el usar diversos manejadores de eventos (<em>event handler</em>) y llamar funciones en repuesta a algo, los llamados callback, muchos son los usos que tenemos para estas 2 cosas, desde controlar clicks hasta realizar acciones en respuesta a un llamado <a title="ajax" href="http://blog.hectorbenitez.com/category/desarrollo_programacion/desarrollo-web/ajax/">ajax</a>, esto es algo muy comun en <a title="JQuery" href="http://blog.hectorbenitez.com/tag/jquery/">JQuery</a>, sin embargo, cuando estamos programando con objetos, debemos tener en cuenta como funciona el contexto dentro de JQuery.</p><p>Por ejemplo aqui tenemos un manejador de eventos muy simple:</p><pre class="brush:js"><a title="google" href="http://blog.hectorbenitez.com/tag/google/">google</a>.load("jquery", "1");

function OnLoad(){
$('#content').html('Click aqui');
$('#content').click(function() {
alert('Manejador del evento .click()');
});
}

google.setOnLoadCallback(OnLoad);
</pre><p>Muy bien, este ejemplo fue muy sencillo y funciona en caso de que queramos usar funciones para manejar eventos, ahora, si en lugar de funciones quisieramos usar metodos de un objeto, probablemente intentariamos usar algo como esto:</p><pre class="brush:js">google.load("jquery", "1");

function OnLoad(){
$('#content').html('Hola mundo');
c = new Class1();
$('#content').click(c.hi);
}

Class1 = function(){
this.text = "Hola";
this.hi = function() {
alert(this.text);
};
}

google.setOnLoadCallback(OnLoad);
</pre><p>Desafortunadamente este codigo no dara el resultado esperado, simplemente al dar click arrojara un alert que dice &#8220;undefined&#8221; y no el valor &#8220;Hola&#8221; que esperabamos, esto sucede debido a que el manejador de evento esta ligado al metodo de la clase en si y no al metodo de la instancia que creamos para este proposito, es decir, al activar el manejador del evento, el contexto ya no es el esperado&#8230;</p><p>Afortunadamente JQuery 1.4 ya tiene una solucion para este problema y es el uso de la <a href="http://api.jquery.com/jQuery.proxy/" target="_blank">funcion jQuery.proxy (ó $.proxy)</a> la cual nos permite corregir esta perdida de contexto, uno de los usos de esta funcion consiste en enviar en el primer parametro el metodo que queremos disparar y en el segundo el objeto que sera utilisado como &#8220;this&#8221; cuando el metodo manejador sea disparado.</p><p>Este ejemplo debe funcionar correctamente:</p><pre class="brush:js">google.load("jquery", "1");

function OnLoad(){
$('#content').html('Hola mundo');
c = new Class1();
$('#content').click($.proxy(c.hi, c));
}

Class1 = function(){
this.text = "Hola";
this.hi = function() {
alert(this.text);
};
}

google.setOnLoadCallback(OnLoad);
</pre><p>Esto funciona tanto para manejadores de eventos, como para callbacks, los ejemplos que tenemos aqui pueden ser probados en<a href="http://code.google.com/apis/ajax/playground/#jquery" target="_blank"> Google Code Playground</a>, espero sea de ayuda&#8230; saludos</p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2010/12/jquery-manejadores-de-eventos-y-callbacks-en-oop/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Usar un &#8220;Ping&#8221; para actualizar tu Sitemap en Google, Yahoo y Bing</title><link>http://blog.hectorbenitez.com/2010/12/usar-un-ping-para-actualizar-tu-sitemap-en-google-yahoo-y-bing/</link> <comments>http://blog.hectorbenitez.com/2010/12/usar-un-ping-para-actualizar-tu-sitemap-en-google-yahoo-y-bing/#comments</comments> <pubDate>Sun, 19 Dec 2010 16:00:28 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[Desarrollo web]]></category> <category><![CDATA[SEO]]></category> <category><![CDATA[Bing]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Ping]]></category> <category><![CDATA[Sitemaps]]></category> <category><![CDATA[Wordpress]]></category> <category><![CDATA[Yahoo]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=1753</guid> <description><![CDATA[Los sitemaps te ayudan a informar a los motores de busqueda cuales son las paginas que deben rastrear en tu sitio web, los sitemaps mejoran la manera en la que los motores de busqueda indexan un sitio web al dar informaciòn explicita acerca de un sitio web, por ejemplo, si existen url&#8217;s nuevas o si [...]]]></description> <content:encoded><![CDATA[<p>Los <a title="sitemaps" href="http://blog.hectorbenitez.com/tag/sitemaps/">sitemaps</a> te ayudan a informar a los motores de busqueda cuales son las paginas que deben rastrear en tu sitio web, los sitemaps mejoran la manera en la que los motores de busqueda indexan un sitio web al dar informaciòn explicita acerca de un sitio web, por ejemplo, si existen url&#8217;s nuevas o si algunas han sido actualizadas.</p><p>Sabemos que no hay forma de garantizar si un sitio web sera indexado, o en que tiempo sera indexado, sin embargo el uso de sitemaps incrementa la probabilidad de ser indexado y tambien la velocidad de indexaciòn de un sitio web.</p><p>Cuando publicamos contenido nuevo en nustro sitio web o blog, seria una excelente idea poder avisar a los motores de busqueda lo mas pronto posible que nuestro sitio web ha sido actualizado y les tengo una excelente noticia, esto es posible mediante un metodo llamado &#8220;<a title="ping" href="http://blog.hectorbenitez.com/tag/ping/">ping</a>&#8221; el cual esta implementado en la mayoria de los motores de busqueda.</p><p>En este post nos enfocaremos en los 3 motores de busqueda principales y como realizar un ping de sitemaps a ellos, en los 3 casos es posible simplemente escribir la url en un navegador y al dar enter el sitemap sera enviado, en caso de que tengas control de tu aplicacion web podrias automatizar esto con algun curl o algo asi, las url de pings son las siguientes:</p><p><a title="Bing" href="http://blog.hectorbenitez.com/tag/bing/">Bing</a>:</p><p>http://www.bing.com/webmaster/ping.aspx?siteMap=[your sitemap web address].<br /> Ejemplo para este sitio web:</p><p>http://www.bing.com/webmaster/ping.aspx?siteMap=http://blog.hectorbenitez.com/sitemap.xml</p><p><a title="Google" href="http://blog.hectorbenitez.com/tag/google/">Google</a></p><p>http://www.google.com/webmasters/sitemaps/ping?sitemap=http://www.example.com/sitemap-file.xml</p><p>Ejemplo para este sitio web:</p><p>http://www.google.com/webmasters/sitemaps/ping?sitemap=http://blog.hectorbenitez.com/sitemap.xml</p><p><a title="Yahoo" href="http://blog.hectorbenitez.com/tag/yahoo/">Yahoo</a></p><p>http://search.yahooapis.com/SiteExplorerService/V1/updateNotification?appid=YahooDemo&#038;url=http://www.domain.com/sitemap.xml</p><p>Ejemplo para este sitio web:</p><p>http://search.yahooapis.com/SiteExplorerService/V1/updateNotification?appid=YahooDemo&#038;url=http://blog.hectorbenitez.com/sitemap.xml</p><p>En todos los casos, no es estrictamente necesario reenviar los sitemaps cada vez que cambie tu sitio web ya que los buscadores actualizan automaticamente los sitemaps, sin embargo, es una buena recomendacion para tratar de que tus paginas sean indexadas mas rapidamente.</p><p>En <a title="Wordpress" href="http://blog.hectorbenitez.com/category/computacion/wordpress/">WordPress</a> podemos automatizar el envio de los sitemaps usando los <a href="http://codex.wordpress.org/Update_Services" target="_blank">servicios de actualizacion</a> agregando las url en la seccion Ajustes-&gt;Escritura-&gt;Servicios de Actualizacion, existen otros muchos servicios a los que puedes hacer ping para informar que tu sitio web a sido actualizado como pingomatic, feedburner o technorati, pero esto sera material para otro post, Saludos&#8230;</p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2010/12/usar-un-ping-para-actualizar-tu-sitemap-en-google-yahoo-y-bing/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Old password authentication with MySQL</title><link>http://blog.hectorbenitez.com/2010/10/old-password-authentication-with-mysql/</link> <comments>http://blog.hectorbenitez.com/2010/10/old-password-authentication-with-mysql/#comments</comments> <pubDate>Thu, 21 Oct 2010 15:46:37 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[Bases de datos]]></category> <category><![CDATA[Computación]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[PHPMyAdmin]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=1726</guid> <description><![CDATA[MySQL a partir de su version 4.1 cambio la manera en la que almacena sus contraseñas, esto lo hizo para mejorar la seguridad, sin embargo, para mantener compatibilidad aun es posible manejar contraseñas con el viejo estilo, esto en muchos casos es transparente para los usuarios y los desarrolladores sin embargo, con el paso del [...]]]></description> <content:encoded><![CDATA[<p><a title="MySQL" href="http://blog.hectorbenitez.com/tag/mysql/">MySQL</a> a partir de su version 4.1 cambio la manera en la que almacena sus contraseñas, esto lo hizo para mejorar la <a title="seguridad" href="http://blog.hectorbenitez.com/category/computacion/seguridad/">seguridad</a>, sin embargo, para mantener compatibilidad aun es posible manejar contraseñas con el viejo estilo, esto en muchos casos es transparente para los usuarios y los desarrolladores sin embargo, con el paso del tiempo algunos clientes evolucionan y dejan de permitir el manejo de cuentas con &#8220;old passwords&#8221; , por ejemplo, si tu trabajas con PHP 5.3+ MYSQLND -enabled PDO MySQL Driver, recibiras un error que dice:<br /> mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication.</p><p>SQLSTATE[HY000] [2000] mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD(&#8216;your_existing_password&#8217;). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file</p><p>Ademas de algunos warnings mas, segun el mensaje lo unico que tenemos que hacer es cambiar el password del usuario usando la funcion PASSWORD, o en caso de que uses <a title="phpMyAdmin" href="http://blog.hectorbenitez.com/tag/phpmyadmin/">phpMyAdmin</a> dando a la contraseña compatibilidad con MySQL 4.1+, que es una opción al momento de cambiar una contraseña.</p><p>En caso de que esto no funcione es posible que tengas algun otro problema con tu servidor MySQL, algunos puntos que debes checar son los siguientes:</p><ul><li>En la tabla mysql.user el campo password debe tener una longitud de 41, en caso de que tenga una longitud de 16 debes cambiarla, esto pasa generalmente en servidores que actualizaron desde una version anterior a 4.1.</li><li>Existe una variable de sistema llamada old_passwords que cambia el comportamiento de tu servidor y lo obligaria a siempre generar old passwords, existen 2 formas de comprobar si esta variable esta activa, la primera seria revisar las variables de MySQL (por ejemplo phpMyAdmin tiene un link a Variables en la pagina principal) o podrias ejecutar esto:</li></ul><blockquote><pre>SELECT PASSWORD("Algo")</pre></blockquote><p>El resultado esperado debe ser una cadena de 41 caracteres de largo que comienza con un *, en caso de que te regrese una cadena de 16 caracteres de longitud quiere decir que old_passwords esta activa, ahora, para solucionar esto existen 3 posibles acciones, quitar del comando con el que se inicia MySQL el parametro &#8211;old-passwords, poner en OFF la variable old_passwords de tu archivo de configuracion o usar el comando SET GLOBAL para poner en FALSE la variable de sistema.</p><p>Mas informacion en el <a href="http://dev.mysql.com/doc/refman/5.1/en/password-hashing.html" target="_blank">sitio de MySQL</a></p><p>Algunos reportes en el sitio de <a href="http://bugs.php.net/bug.php?id=52799" target="_blank">PHP</a></p><p>Saludos&#8230;</p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2010/10/old-password-authentication-with-mysql/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>NETTUTS.com: Una introducción a Patrones de Diseño</title><link>http://blog.hectorbenitez.com/2010/08/nettuts-com-una-introduccion-a-patrones-de-diseno/</link> <comments>http://blog.hectorbenitez.com/2010/08/nettuts-com-una-introduccion-a-patrones-de-diseno/#comments</comments> <pubDate>Wed, 04 Aug 2010 01:29:13 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[PHP]]></category> <category><![CDATA[Patrones de diseño]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=1716</guid> <description><![CDATA[En NETTUTS.com han posteado un nuevo tutorial que les dara una introducción a uno de los conceptos avanzados mas importantes en el desarrollo de aplicaciones: Los patrones de diseño. Design patterns are optimized, reusable solutions to the programming problems that we encounter every day. A design pattern is not a class or a library that we [...]]]></description> <content:encoded><![CDATA[<p>En NETTUTS.com han posteado un <a href="http://net.tutsplus.com/articles/general/a-beginners-guide-to-design-patterns" target="_blank">nuevo tutorial</a> que les dara una introducción a uno de los conceptos avanzados mas importantes en el desarrollo de aplicaciones: Los patrones de <a title="diseño" href="http://blog.hectorbenitez.com/category/diseno/">diseño</a>.</p><blockquote><p>Design patterns are optimized, reusable solutions to the programming problems that we encounter every day. A design pattern is not a class or a library that we can simply plug into our system; it&#8217;s much more than that. It is a template that has to be implemented in the correct situation. It&#8217;s not language-specific either. A good design pattern should be implementable in most &#8211; if not all &#8211; languages, depending on the capabilities of the language.</p></blockquote><p>Ellos dan una pequeña introducción a algunos de los <a title="patrones de diseño" href="http://blog.hectorbenitez.com/tag/patrones-de-diseno/">patrones de diseño</a> mas utilizados, por ejemplo strategy, adapter, factory, decorator y <a title="singleton" href="http://blog.hectorbenitez.com/tag/singleton/">singleton</a>, cada uno viene con un poco de codigo ejemplo y nos hablan un poco de ¿En que casos deberia usarlo?.</p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2010/08/nettuts-com-una-introduccion-a-patrones-de-diseno/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>NETTUTS.com: Como empezar a usar Facebook Connect, una guía rápida</title><link>http://blog.hectorbenitez.com/2010/08/nettuts-com-como-empezar-a-usar-facebook-connect-una-guia-rapida/</link> <comments>http://blog.hectorbenitez.com/2010/08/nettuts-com-como-empezar-a-usar-facebook-connect-una-guia-rapida/#comments</comments> <pubDate>Mon, 02 Aug 2010 18:30:25 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[PHP]]></category> <category><![CDATA[Facebook]]></category> <category><![CDATA[Facebook Connect]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=1714</guid> <description><![CDATA[Si tu eres uno de esos que han estado pensando en agregar autentificación a tu sitio web usando Facebook Connect, el sistema que ofrece Facebook pero no sabes por donde empezar, échale un ojo a este nuevo tutorial publicado en NETTUTS.com el cual tiene una muy buena guía de introducción. Lately, there&#8217;s been quite a fuzz about lazy registration. It turns out [...]]]></description> <content:encoded><![CDATA[<p>Si tu eres uno de esos que han estado pensando en agregar autentificación a tu sitio web usando <a title="Facebook Connect" href="http://blog.hectorbenitez.com/tag/facebook-connect/">Facebook Connect</a>, el sistema que ofrece <a href="http://www.facebook.com/" target="_blank">Facebook</a> pero no sabes por donde empezar, échale un ojo a <a href="http://net.tutsplus.com/tutorials/php/how-to-authenticate-your-users-with-facebook-connect" target="_blank">este nuevo tutorial</a> publicado en NETTUTS.com el cual tiene una muy buena guía de introducción.</p><blockquote><p>Lately, there&#8217;s been <a href="http://www.90percentofeverything.com/2009/03/16/signup-forms-must-die-heres-how-we-killed-ours/" target="_blank">quite a fuzz about lazy registration</a>. It turns out that the less the user has to think, the higher the conversion rates are! What a thought! If everybody seems to have a <a title="Facebook" href="http://blog.hectorbenitez.com/tag/facebook/">Facebook</a> profile, why not add a one-click user registration? I&#8217;ll show you how to do that today.</p></blockquote><p>Esta guía nos ayudara a crear nuestra aplicación, que tablas necesitamos, un poco de permisos extendidos e incluso nos mostrar como enviar algo al perfil del usuario una vez que se haya conectado, sin duda un buen punto de partida.</p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2010/08/nettuts-com-como-empezar-a-usar-facebook-connect-una-guia-rapida/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>phpDevelopment Blog: Zend Framework Tutorial Series: Part 1 &#8211; The Module Based Application</title><link>http://blog.hectorbenitez.com/2010/08/phpdevelopment-blog-zend-framework-tutorial-series-part-1-the-module-based-application/</link> <comments>http://blog.hectorbenitez.com/2010/08/phpdevelopment-blog-zend-framework-tutorial-series-part-1-the-module-based-application/#comments</comments> <pubDate>Mon, 02 Aug 2010 03:47:15 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[PHP]]></category> <category><![CDATA[zend framework]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=1709</guid> <description><![CDATA[En el blog phpDevelopment(phpdev.ro) recientemente postearon la primera parte de una nueva serie de artículos que hablan sobre como crear una aplicación modular basada en Zend Framework. En esta primera parte nos hablan sobre la estructura de la aplicación. In this first article of the series, we will discuss about the best way (in my oppinion) to structure your Zend Application in order to [...]]]></description> <content:encoded><![CDATA[<p>En el blog <strong>phpDevelopment</strong>(phpdev.ro) recientemente postearon la primera parte de una nueva serie de artículos que hablan sobre como crear una aplicación modular basada en <strong>Zend</strong> <strong>Framework</strong>. En esta <a href="http://phpdev.ro/zf-tutorial-series-part-1-module-based-app.html" target="_blank">primera parte</a> nos hablan sobre la estructura de la aplicación.</p><p><strong> </strong></p><blockquote><p>In this first article of the <strong><a title="series" href="http://blog.hectorbenitez.com/tag/series/">series</a></strong>, we will discuss about the best way (in my oppinion) to structure your <strong>Zend</strong> Application in order to have maximum flexibility but also a good defined structure of the classes/files.</p></blockquote><p>Si quieren empezar de inmediato pueden <a href="http://phpdev.ro/wp-content/code_snippets/zf-tutorial-series-part-1-module-based-app/files.rar" target="_blank">descargar el código fuente completo desde aquí</a> o pueden seguir progresivamente la serie según salgan los nuevos artículos.</p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2010/08/phpdevelopment-blog-zend-framework-tutorial-series-part-1-the-module-based-application/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Rob Allen&#8217;s Blog: Nuevo tutorial de Zend_Auth</title><link>http://blog.hectorbenitez.com/2010/07/rob-allens-blog-nuevo-tutorial-de-zend_auth/</link> <comments>http://blog.hectorbenitez.com/2010/07/rob-allens-blog-nuevo-tutorial-de-zend_auth/#comments</comments> <pubDate>Tue, 27 Jul 2010 17:15:39 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[PHP]]></category> <category><![CDATA[zend framework]]></category> <category><![CDATA[zend_auth]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=1508</guid> <description><![CDATA[Rob Allen tiene un nuevo articulo en su blog en el cual actualiza por completo su tutorial de Zend_Auth, una introducción al componente de autentificación del Zend Framework. After too many months of neglect, I have completely rewritten my Zend_Auth tutorial so that it is compatible with Zend Framework 1.10! As an experiment, I have written it directly [...]]]></description> <content:encoded><![CDATA[<p><em>Rob Allen</em> tiene un nuevo articulo en su blog en el cual actualiza por completo <a href="http://akrabat.com/zend-framework/new-zend-auth-tutorial/" target="_blank">su tutorial de Zend_Auth</a>, una introducción al componente de autentificación del <a title="Zend Framework" href="http://blog.hectorbenitez.com/tag/zend-framework/">Zend Framework</a>.</p><blockquote><p>After too many months of neglect, I have completely rewritten my <a href="http://akrabat.com/zend-auth-tutorial" target="_blank">Zend_Auth tutorial</a> so that it is compatible with Zend Framework 1.10! As an experiment, I have written it directly in HTML, rather than PDF as before and cover the login form along with the login controller code required to authenticate a user using a database table. For good measure, I&#8217;ve included logging out and a view helper to show how to access the logged in user&#8217;s details.</p></blockquote><p><a href="http://akrabat.com/zend-auth-tutorial/" target="_blank">Este tutorial</a> nos guía a través de la creación de una tabla de usuarios, un controller con formulario y el código necesario para validar al usuario con la información de la tabla, también se incluye un link para <a href="http://akrabat.com/wp-content/uploads/zf-auth-tutorial-200.zip" target="_blank">descargar el código fuente</a> en un archivo zip.</p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2010/07/rob-allens-blog-nuevo-tutorial-de-zend_auth/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>php&#124;architect: Genera documentos de Word con PHP, PHPDOCX</title><link>http://blog.hectorbenitez.com/2010/07/phparchitect-genera-documentos-de-word-con-php-phpdocx/</link> <comments>http://blog.hectorbenitez.com/2010/07/phparchitect-genera-documentos-de-word-con-php-phpdocx/#comments</comments> <pubDate>Sat, 24 Jul 2010 17:47:37 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[PHP]]></category> <category><![CDATA[php|architect]]></category> <category><![CDATA[Word]]></category> <category><![CDATA[Xsl]]></category> <category><![CDATA[Zip]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=1209</guid> <description><![CDATA[En el blog de php&#124;architect tienen un nuevo articulo acerca de una herramienta que nos ayudara a crear documentos de Word directamente desde nuestras aplicaciones PHP - PHPDOCX. PHPDOCX is a PHP library that allows its client code to generate Microsoft Word documents in the .docx format from PHP scripts. PHP is increasingly being used for [...]]]></description> <content:encoded><![CDATA[<p>En el blog de <a title="php|architect" href="http://blog.hectorbenitez.com/tag/phparchitect/">php|architect</a> tienen <a href="http://www.phparch.com/2010/07/21/phpdocx-generating-word-documents-from-php" target="_blank">un nuevo articulo</a> acerca de una herramienta que nos ayudara a crear documentos de <a title="Word" href="http://blog.hectorbenitez.com/tag/word/">Word</a> directamente desde nuestras aplicaciones PHP - <a href="http://www.phpdocx.com" target="_blank">PHPDOCX</a>.</p><blockquote><p>PHPDOCX is a PHP library that allows its client code to generate Microsoft Word documents in the .docx format from PHP scripts. PHP is increasingly being used for disparate goals and has to deal with data that comes from strange sources and has to be produced in stranger formats. [...] Starting with the 1.5 version, which has been released on July 12th, PHPDOCX is now compatible with PHP 5.3. The adoption of PHP 5.3 from operating systems is growing and it will at last replace the previous versions of PHP also in the servers of hosting providers.</p></blockquote><p>En este articulo se mencionan las caracteristicas que se incluyen, asi como los requisitos para que esta herramienta funcione como lo son las extenciones <a href="http://php.net/manual/en/book.zip.php" target="_blank">zip</a> y <a href="http://php.net/manual/en/book.xsl.php" target="_blank">xsl</a>.</p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2010/07/phparchitect-genera-documentos-de-word-con-php-phpdocx/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Netbeans y Zend Framework, primeros pasos</title><link>http://blog.hectorbenitez.com/2010/07/netbeans-y-zend-framework-primeros-pasos/</link> <comments>http://blog.hectorbenitez.com/2010/07/netbeans-y-zend-framework-primeros-pasos/#comments</comments> <pubDate>Sat, 17 Jul 2010 04:46:34 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[IDE's]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[NetBeans]]></category> <category><![CDATA[zend framework]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=725</guid> <description><![CDATA[Pues ya tiene algún tiempo que salió la versión 6.9 de Netbeans con soporte para el Zend Framework incluido, en esta ocasión vamos a comenzar a utilizarlo de una forma básica, al menos vamos a crear nuestro primer proyecto basado en Zend Framework y lo comenzaremos a utilizar&#8230; Lo primero que tenemos que hacer es [...]]]></description> <content:encoded><![CDATA[<p>Pues ya tiene algún tiempo que salió la versión 6.9 de <a title="Netbeans" href="http://blog.hectorbenitez.com/tag/netbeans/">Netbeans</a> con soporte para el <a title="Zend Framework" href="http://blog.hectorbenitez.com/tag/zend-framework/">Zend Framework</a> incluido, en esta ocasión vamos a comenzar a utilizarlo de una forma básica, al menos vamos a crear nuestro primer proyecto basado en Zend Framework y lo comenzaremos a utilizar&#8230;</p><p>Lo primero que tenemos que hacer es descargar el Zend Framework, tenemos que tomar de ahí la carpeta bin, esta carpeta necesitamos tenerla en una ubicación fija ya que esto es la base del soporte de Netbeans a Zend Framework.</p><p><a href="http://blog.hectorbenitez.com/wp-content/uploads/2010/07/logo-zend-framework.jpg"><img class="aligncenter size-full wp-image-727" title="logo-zend-framework" src="http://blog.hectorbenitez.com/wp-content/uploads/2010/07/logo-zend-framework.jpg" alt="" width="282" height="190" /></a></p><p>En Netbeans abriremos opciones (Tools -&gt; Options) e iremos a la parte de PHP, ahí llegaremos pestaña de Zend y en el campo que dice Zend Script navegaremos hasta la carpeta bin que mencionamos antes y elegiremos el archivo .bat para <a title="windows" href="http://blog.hectorbenitez.com/category/computacion/windows/">windows</a> o el .sh para <a title="linux" href="http://blog.hectorbenitez.com/category/computacion/linux/">linux</a> (En caso de que el path este registrado en el sistema Netbeans lo puede encontrar por si solo), en caso de que la versión sea mayor a 1.10 daremos click en el boton &#8220;Registrar proveedor&#8221;, con esto ya tenemos Netbeans listo para trabajar con Zend Framework.<br /> <span id="more-725"></span><br /> Ahora si vamos a empezar a trabajar con el Zend Framework, vamos a crear un proyecto nuevo de PHP y al llegar a la ultima sección del asistente, la de los <a title="frameworks" href="http://blog.hectorbenitez.com/tag/frameworks/">frameworks</a> vamos a marcar Zend Framework y vamos a dar click en finalizar, esto ejecutara el Zend Script y generará un proyecto con toda la estructura del Zend Framework, el index, el htaccess, todo está listo, sin embargo cabe mencionar que la carpeta lib esta vacía, hay que copiar y pegar el Framework ahí dentro (también puedes registrar la ruta donde tengas el framework dentro de las opciones de PHP en la sección de Global Include Path), después de este paso ya podemos ejecutar nuestro proyecto y nos aparecerá una página diciéndonos que es un nuevo proyecto creado con Zend Framework.</p><p>Hasta este punto todo está bien, sin embargo es crucial en la mayoría de los proyectos el usar una base de datos, vamos a configurar una usando el Zend Script con el comando configure db-adapter, este sería un ejemplo con <a title="MySql" href="http://blog.hectorbenitez.com/tag/mysql/">MySql</a>:</p><p>zf configure db-adapter &#8216;adapter=Pdo_Mysql&amp;host=localhost&amp;username=name&amp;password=pass&amp;dbname=basename&#8217;</p><p>Realmente con la integración de Zend Framework lo que tenemos que hacer es dar click derecho sobre nuestro proyecto y en el menú contextual vamos a Zen -&gt; Run command&#8230;, ahí se abrirá un dialogo en el cual se enlistan todos los comandos disponibles y es posible filtrar al ir escribiendo sobre el campo Filter, seleccionamos el comando configure db-adapter y en el campo parameters escribiríamos: adapter=Pdo_Mysql&amp;host=localhost&amp;username=name&amp;password=pass&amp;dbname=basename</p><p>Ahora trabajaremos con esa conexión, vamos a crear elementos para nuestra aplicación, primero un modelo para usar nuestra base de datos, y después una acción, la cual nos genera una vista lista para usarse, para empezar vamos a trabajar con una base de datos que ya existe y tiene una tabla llamada &#8220;Usuarios&#8221; para crear un DbTable de la misma forma que antes abriremos el dialogo &#8220;Run Zend command&#8221; y ahora elegiremos el comando create db-table con los parámetros &#8220;Usuarios usuarios&#8221;, el primero indica el nombre del modelo y el segundo el nombre de la tabla, después de esto puedes entrar a la carpeta models de ahí entraras a DbTable y ahí encontraras Usuarios.php, después crearemos una acción usando el comando create action y pondremos ahí el nombre de la acción seguido del nombre del controlador que la contiene por ejemplo: find Index, esto creara findAction dentro del controlador Index, pero adema creara el archivo de vista que en este caso seria view/scripts/index/find.phtml</p><p>Un par de cosas extras que son notables acerca del trabajo con acciones y vistas, es que ahora existe forma de navegar directamente entre la acción y la vista, por ejemplo si ustedes están en una acción, dan click derecho y en el menú contextual ve a Navigate y se encontraran con una nueva opción &#8220;Go to View&#8221;, viceversa si ustedes están en la vista verán la opción &#8220;Go to Action&#8221;, el otro punto notable es que las variables que asignen a la vista en la acción si estarán disponibles en el autocompletar de la Vista por ejemplo si en una acción ponen $this-&gt;view-&gt;var1 = 1; esta variable estará disponible en la Vista a través de $this-&gt;var1, excelente no creen?</p><p>Por último les aconsejo que para hacer su trabajo con el Zend Script aun más amigable, creen una combinación de acceso rápido a la herramienta, esto lo pueden hacer en Options en la sección Keymaps&#8230; pues eso es todo por hoy, espero sea de ayuda, cualquier duda, por aquí andamos&#8230; saludos</p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2010/07/netbeans-y-zend-framework-primeros-pasos/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Un sitio estático con WordPress</title><link>http://blog.hectorbenitez.com/2010/06/un-sitio-estatico-con-wordpress/</link> <comments>http://blog.hectorbenitez.com/2010/06/un-sitio-estatico-con-wordpress/#comments</comments> <pubDate>Wed, 30 Jun 2010 05:52:20 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[Desarrollo/Programación]]></category> <category><![CDATA[Wordpress]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=721</guid> <description><![CDATA[WordPress es una herramienta muy poderosa que cada día esta tomando mas fuerza dentro del desarrollo web, cada día mas blogs se levantan sobre esta plataforma pero también cada día mas sitios web estáticos lo hacen, esto es debido a la facilidad que presenta WordPress para ser usado como un CMS, es muy sencillo en este momento cambiar la pagina principal de WordPress para que [...]]]></description> <content:encoded><![CDATA[<p><a title="WordPress" href="http://blog.hectorbenitez.com/category/computacion/wordpress/">WordPress</a> es una herramienta muy poderosa que cada día esta tomando mas fuerza dentro del <a title="desarrollo web" href="http://blog.hectorbenitez.com/category/desarrollo_programacion/desarrollo-web/">desarrollo web</a>, cada día mas blogs se levantan sobre esta plataforma pero también cada día mas <a title="sitios web" href="http://blog.hectorbenitez.com/category/computacion/sitios-web/">sitios web</a> estáticos lo hacen, esto es debido a la facilidad que presenta <a title="WordPress" href="http://blog.hectorbenitez.com/tag/wordpress/">WordPress</a> para ser usado como un CMS, es muy sencillo en este momento cambiar la pagina principal de WordPress para que muestre una pagina estática en lugar de una pagina con entradas, después de esto tu puedes crear todas las paginas que sean necesarias para tener un sitio completo, ademas con todo lo que aportan los plugins no sera difícil complementar tu sitio web por completo.</p><p>Ademas de todo esto muchos freelancer lo aprovechan para agilizar el proceso de actualización de tus sitios web, existen ocasiones en las que abrir un editor de texto y usar un FTP para actualizar tan solo la quinta palabra del tercer párrafo de una pagina del sitio.</p><p style="text-align: center;"><a href="http://blog.hectorbenitez.com/wp-content/uploads/2010/06/wp_logo.png"><img class="size-full wp-image-722  aligncenter" title="wp_logo" src="http://blog.hectorbenitez.com/wp-content/uploads/2010/06/wp_logo.png" alt="" width="420" height="375" /></a></p><p>¿Que necesitan para hacer esto? Pues aqui les dejo las principales recomendaciones que yo puedo hacerles para que logren tener un sitio web profesional usando la plataforma WordPress.</p><ol><li>El primer paso es cambiar la pagina principal del sitio web para que no muestre entradas y muestre una pagina fija.</li><li>Después de esto lo que sigue es trabajar en el <a title="diseño" href="http://blog.hectorbenitez.com/category/diseno/">diseño</a> del sitio web, existen muchos templates que puedes usar como base para tus diseños, obviamente es mucho mejor si tienes conocimientos acerca de como se crean los templates para WP, es importante saber que las paginas se basan en &#8220;page.php&#8221; aunque es posible crear templates individuales para cada pagina de tu sitio web.</li><li>Lo siguiente es elegir los plugins, los puntos principales que yo recomiendo son los siguientes: SEO, Cache, Widgets para el sidebar, <a title="Sitemaps" href="http://blog.hectorbenitez.com/tag/sitemaps/">Sitemaps</a>, Estadísticas del sitio, probablemente algo de formas de contacto.</li><li>Finalmente, si el sitio es para algun cliente y estas pensando en dejar que el actualice el contenido por si solo, algún plugin como Ryans Simple CMS te permitirá bloquear áreas de configuración que el cliente no ocupa y solo tendrá permisos de editor para modificar contenidos.</li></ol><p>En fin esto solo es una breve introducción, existen muchos temas que desarrollar y muchas áreas que explorar, por lo pronto los dejo iniciando y recuerden que si tienen alguna duda pues aquí estamos para apoyar en lo que se pueda, saludos&#8230;</p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2010/06/un-sitio-estatico-con-wordpress/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/66 queries in 0.018 seconds using disk: basic
Object Caching 1219/1381 objects using disk: basic

Served from: blog.hectorbenitez.com @ 2012-02-07 03:26:41 -->
