<?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>Alfredo Juarez &#187; ProgramaciÃ³n</title>
	<atom:link href="http://www.alfrek.net/blog/category/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alfrek.net/blog</link>
	<description>Web Design and Development</description>
	<lastBuildDate>Fri, 03 Dec 2010 20:06:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>DISEí‘O DE INTERFACES DE USUARIO EN APLICACIONES WEB MODERNAS</title>
		<link>http://www.alfrek.net/blog/2010/01/diseno-de-interfaces-de-usuario-en-aplicaciones-web-modernas/</link>
		<comments>http://www.alfrek.net/blog/2010/01/diseno-de-interfaces-de-usuario-en-aplicaciones-web-modernas/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 04:22:17 +0000</pubDate>
		<dc:creator>alfredojv</dc:creator>
				<category><![CDATA[DiseÃ±o GrÃ¡fico]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[diseÃ±o web]]></category>
		<category><![CDATA[smashing book]]></category>
		<category><![CDATA[smashing magazine]]></category>
		<category><![CDATA[usabilidad]]></category>
		<category><![CDATA[UX design]]></category>

		<guid isPermaLink="false">http://www.alfrek.net/blog/?p=1291</guid>
		<description><![CDATA[Â¿Qué es el diseño de interfaces de usuario? Que es lo que hace a una interface de usuario efectiva, y, más importante, Â¿Cómo elaboras una buena interfaz de usuario? Â¿Qué es una interfaz de usuario? â€œThe way that you accomplish tasks with a product â€“ what you do and how it responds â€“ thatâ€™s the [...]]]></description>
			<content:encoded><![CDATA[<p>Â¿Qué es el diseño de interfaces de usuario? Que es lo que hace a una interface de usuario efectiva, y, más importante, Â¿Cómo elaboras una buena interfaz de usuario?</p>
<h2>Â¿Qué es una interfaz de usuario?</h2>
<blockquote><p>â€œThe way that you accomplish tasks with a product â€“ what you do and how it responds â€“ thatâ€™s the interfaceâ€ â€“ Jef Raskin</p></blockquote>
<p>El diseño de interfaces no sólo se trata de botones y menús; se trata de la interacción entre el usuario y la aplicación o dispositivo, y en algunos casos, se trata de la interacción entre múltiples usuarios a través de ese dispositivo. Esto significa que el diseño de la interfaz de usuario no es como se ve un producto (visualmente hablando), si no, como es que éste trabaja. No sólo es ordenar botones y seleccionar colores.</p>
<p>Al diseñar una interfaz, debes hacerte preguntas como: Â¿Esta interfaz requiere botones? Si requiere, Â¿Qué es lo que esos botones deben hacer? Que necesito ofrecerles a los usuarios para que ellos sepan cómo funciona mi aplicación y así­ puedan completar las tareas que ellos quieren hacer.</p>
<p>Trabajar en la interfaz de usuario dentro del ciclo de desarrollo de un proyecto es vital, porque, como apunta Jef Ranskin, â€œPor lo que el cliente se refiere, la interfaz es el productoâ€. El usuario ve e interactúa con la interfaz, no con la arquitectura de la aplicación.</p>
<p>Hacer esto correctamente tendrá un gran impacto en cómo los usuarios disfrutan usar tu aplicación y qué tan sencillo es usarlo.</p>
<p>Empieza por diseñar la interface antes que empezar a programar el motor que lo respalda, en vez de programar primero y después ponerle un â€œcontenedorâ€ encima de todo.</p>
<h2>Â¿Qué hace una gran una interfaz de usuario?</h2>
<p>Antes de que empecemos a contruir una interfaz de usuario para nuestro producto, es importante entender, primero que nada, que hace qué aspectos son importantes para obtener una buena interfaz de usuario; Â¿Cuales son las cualidades que tenemos que lograr? Todas las grandes interfaces comparten 8 cualidades y/o caracterí­sticas:</p>
<ol>
<li><strong>Claridad</strong>: La interfaz evita la ambigí¼edad, haciendo todo claro a través del lenguaje, el flujo, la jerarquí­a y metáforas de elementos visuales. Las interfaces claras no necesitan manuales, asimismo, aseguran que los usuarios comentan menos errores mientras las usan.</li>
<li><strong>Concisión</strong>: El verdadero problema de hacer una buena interfaz Â es hacerla concisa y limpia al mismo tiempo, es decir, sin hacerla minimalista demás, ni sobre poblarla con elementos por todos lados.</li>
<li><strong>Familiaridad</strong>: Algo te es familiar cuando recuerdas un encuentro previo que hayas tenido con él. Aun y cuando algunos usuarios usan una interfaz por primera vez, algunos elementos pueden serle familiares. Puedes usar metáforas de la vida real para comunicar significado; por ejemplo, las pestañas en forma de carpetas, son, a menudo usadas para la navegación en sitios web y aplicaciones. La gente las reconoce como elementos de navegación por que la metáfora de las carpetas les son familiares.</li>
<li><strong>Capacidad de Respuesta</strong>: esto significa un par de cosas. Primero, la capacidad de respuesta significa velocidad: una buena interfaz no debe sentirse pesada. Segundo, la interfaz deberá proveer retroalimentación al usuario acerca de lo que está pasando y si la entrada del usuario está siendo procesada con éxito.</li>
<li><strong>Consistencia</strong>: Mantener la interface consistente a lo largo de la aplicación es importante porque permite al usuario reconocer patrones de uso. Una vez que los usuarios aprendan como funcionan ciertas partes de la aplicación, podrán aplicar este conocimiento a nuevas áreas y funciones.</li>
<li><strong>Estética</strong>: mientras que no necesitas hacer una atractiva interfaz para que haga lo que tiene que hacer, hacer que algo se vea bien hará que el tiempo en el que tus usuarios usen la aplicación sea más agradable y usuarios felices sólo puede ser una cosa buena.</li>
<li><strong>Eficiencia</strong>: Tiempo es dinero, por eso, una buena interfaz de usuario debe hacer al usuario más productivo a través de atajos y buen diseño. Después de todo, este es uno de los principales beneficios de la tecnologí­a: permite al usuario realizar tareas con menos tiempo y esfuerzo haciendo el mayor del trabajo para nosotros.</li>
<li><strong>Perdón</strong>: Todos cometemos errores, y como tu aplicación los maneja será una prueba fehaciente de su calidad. Â¿Es fácil de deshacer acciones? Â¿Es fácil para recuperar archivos eliminados? Una buena interface no deberí­a castigar a sus usuarios por sus errores, al contrario, deberí­a proveerle los medios para remediarlos.</li>
</ol>
<p>Diseñar una interfaz que incorpore todas las caracterí­sticas antes mencionadas es trabajoso, porque cuando trabajas en una a menudo afectas a otras. El mayor número de elementos que agregues, el mayor número de cosas que el usuario tendrá que procesar. Por supuesto, lo opuesto también es verdad: el no proveer suficiente ayuda y soporte puede hacer que ciertas funciones sean ambiguas. Crear algo que sea elegante, simple y al mismo tiempo consistente es el objetivo más difí­cil del diseñador de interfaces de usuario.</p>
<p>Traducido de <a href="http://media.smashingmagazine.com/cdn_smash/pdfs/sm-book-chapter1.pdf" target="_blank">un capitulo</a> (con el mismo nombre que el titulo) del Libro de <a href="http://www.smashingmagazine.com/2009/12/03/smashing-book-its-out-now/?utm_source=Smashing%2BMagazine&amp;utm_medium=badge&amp;utm_content=badge4.png&amp;utm_campaign=Smashing%2BBook%20-%20Smashing%20Magazine%20-%20Badge" target="_blank">Smashing Magazine.</a> El libro en su totalidad está muy bien escrito, es acerca del diseño Web y mejores practicas. Completamente recomendable.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alfrek.net/blog/2010/01/diseno-de-interfaces-de-usuario-en-aplicaciones-web-modernas/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>El código no nos dice toda la historia</title>
		<link>http://www.alfrek.net/blog/2009/10/el-codigo-no-nos-dice-toda-la-historia/</link>
		<comments>http://www.alfrek.net/blog/2009/10/el-codigo-no-nos-dice-toda-la-historia/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 18:11:39 +0000</pubDate>
		<dc:creator>alfredojv</dc:creator>
				<category><![CDATA[Arquitectura de Software]]></category>

		<guid isPermaLink="false">http://www.alfrek.net/blog/?p=1287</guid>
		<description><![CDATA[Simon brown ha publicado un articulo con el que estoy muy de acuerdo; se trata del por qué es bueno documentar la arquitectura del software, ya que los comentarios en el código fuente no nos ayudan a entender del todo como funciona el sistema. Una lectura ampliamente recomendable. Link: Coding The Architecture]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.codingthearchitecture.com" target="_blank">Simon brown</a> ha publicado un articulo con el que estoy muy de acuerdo; se trata del por qué es bueno documentar la arquitectura del software, ya que los comentarios en el código fuente no nos ayudan a entender del todo como funciona el sistema.</p>
<p>Una <a href="http://www.codingthearchitecture.com/pages/book/the-code-doesnt-tell-the-whole-story.html" target="_blank">lectura </a>ampliamente recomendable.</p>
<p>Link: <a href="http://www.codingthearchitecture.com/pages/book/the-code-doesnt-tell-the-whole-story.html" target="_blank">Coding The Architecture</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alfrek.net/blog/2009/10/el-codigo-no-nos-dice-toda-la-historia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony Components &#8211; Librerias PHP</title>
		<link>http://www.alfrek.net/blog/2009/09/symfony-components-librerias-php/</link>
		<comments>http://www.alfrek.net/blog/2009/09/symfony-components-librerias-php/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 00:14:04 +0000</pubDate>
		<dc:creator>alfredojv</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Patrones de DiseÃ±o]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[librerias]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.alfrek.net/blog/?p=1273</guid>
		<description><![CDATA[La gente detrás de Symfony, uno de los Frameworks más usados por la comunidad PHP ha publicado una serie de librerias independientes, que prometen ayudar con el proceso de desarrollo de aplicaciones Web, en su web reza la siguiente frase: The Symfony Components are standalone and reusable PHP classes. With no pre-requisite, except for PHP, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1274" title="symfony-components" src="http://www.alfrek.net/blog/wp-content/uploads/2009/09/symfony-components.jpg" alt="symfony-components" width="480" height="207" /></p>
<p>La gente detrás de Symfony, uno de los Frameworks más usados por la comunidad PHP ha publicado una serie de librerias independientes, que prometen ayudar con el proceso de desarrollo de aplicaciones Web, en su web reza la siguiente frase:</p>
<blockquote><p><a title="Symfony Components" href="http://components.symfony-project.org/" target="_blank">The Symfony Components</a> are standalone and reusable PHP classes. With no pre-requisite, except for PHP, you can install them today, and start using them right away. Currently, there are three components available at the moment.</p></blockquote>
<p>Los componentes publicados hasta el momento son:</p>
<p><strong><img class="alignnone size-full wp-image-1275" title="yaml" src="http://www.alfrek.net/blog/wp-content/uploads/2009/09/yaml.png" alt="yaml" width="278" height="236" /></strong></p>
<p><strong>YAML â€“ Una librerí­a que habla YAML</strong><br />
Symfony YAML es una libreria PHP que convierte cadenas YAML a arreglos PHP y viceversa.</p>
<p><img class="alignnone size-full wp-image-1276" title="event-dispatcher" src="http://www.alfrek.net/blog/wp-content/uploads/2009/09/event-dispatcher.png" alt="event-dispatcher" width="278" height="236" /></p>
<p><strong>Event Dispatcher â€“ Facilitando la comunicación entre clases</strong><br />
Symfony Event Dispatcher es una librerí­a que provee de una implementación ligera del patrón de diseño Observer.</p>
<p><img class="alignnone size-full wp-image-1277" title="dependency-injection" src="http://www.alfrek.net/blog/wp-content/uploads/2009/09/dependency-injection.png" alt="dependency-injection" width="278" height="236" /></p>
<p><strong>Dependency Injection â€“ Reinventando el manejo de clases</strong><br />
Symfony Dependency Injection es una librerí­a que provee un robusto contenedor de inyección de dependencias (Dependency Injection).</p>
<p>[Via <a href="http://www.webappers.com/2009/09/21/symfony-components-standalone-libraries-for-php/" target="_blank">WebAppers</a>]</p>
<a href="javascript:toggleStartStop();PicLensLite.start({feedUrl:'http://www.alfrek.net/blog/wp-content/plugins/wp-piclens/mrss.php?id=1273'});">Start Slide Show with PicLens Lite <img src="http://www.alfrek.net/blog/wp-content/plugins/wp-piclens/PicLensButton.png" alt="PicLens" width="16" height="12" border="0" align="top"></a>]]></content:encoded>
			<wfw:commentRss>http://www.alfrek.net/blog/2009/09/symfony-components-librerias-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple Time Picker para jQuery</title>
		<link>http://www.alfrek.net/blog/2009/08/simple-time-picker-jquerty/</link>
		<comments>http://www.alfrek.net/blog/2009/08/simple-time-picker-jquerty/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 18:40:42 +0000</pubDate>
		<dc:creator>alfredojv</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Otros]]></category>
		<category><![CDATA[ProgramaciÃ³n]]></category>
		<category><![CDATA[trucos]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[accesibilidad]]></category>
		<category><![CDATA[diseÃ±o]]></category>
		<category><![CDATA[formularios]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[usabilidad]]></category>

		<guid isPermaLink="false">http://www.alfrek.net/blog/?p=1246</guid>
		<description><![CDATA[jQuery.timepickr fue creado con la intención de mejorar el proceso de selección de hora de la manera más fácil y natural posible. Está diseñado para ser unobstrusivo, y soporta &#8220;jQuery UI theme Switcher&#8220;, por lo que es completamente customizable. Sus objetivos son: Ser inobstrusivo Uso máximo de 2 clicks. Navegación de teclado intuitivo. Ser usable [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1249" title="timepicr" src="http://www.alfrek.net/blog/wp-content/uploads/2009/08/timepicr.jpg" alt="timepicr" width="420" height="172" /></p>
<p><a title="jQuery.TimePickr" href="http://haineault.com/media/jquery/ui-timepickr/page/" target="_blank">jQuery.timepickr</a> fue creado con la intención de mejorar el proceso de selección de hora de la manera más fácil y natural posible.</p>
<p>Está diseñado para ser unobstrusivo, y soporta &#8220;<a href="http://jqueryui.com/docs/Theming/ThemeSwitcher" target="_blank">jQuery UI theme Switcher</a>&#8220;, por lo que es completamente customizable.</p>
<p>Sus objetivos son:</p>
<ul>
<li>Ser inobstrusivo</li>
<li>Uso máximo de 2 clicks.</li>
<li>Navegación de teclado intuitivo.</li>
<li>Ser usable en dispositivos táctiles.</li>
<li>Compatible con browsers nuevos y viejos (<a href="http://en.wikipedia.org/wiki/Fault-tolerant_system" target="_blank">Degrade Gracefully</a>)</li>
</ul>
<p>Requisitos: jQuery Framework<br />
Demo: <a rel="nofollow" href="http://haineault.com/media/jquery/ui-timepickr/page/" target="_blank">http://haineault.com/media/jquery/ui-timepickr/page/</a></p>
<p>[Via <a href="http://www.webappers.com/2009/08/29/a-simple-2-click-in-place-editing-time-picker/" target="_blank">WebAppers</a>]</p>
<a href="javascript:toggleStartStop();PicLensLite.start({feedUrl:'http://www.alfrek.net/blog/wp-content/plugins/wp-piclens/mrss.php?id=1246'});">Start Slide Show with PicLens Lite <img src="http://www.alfrek.net/blog/wp-content/plugins/wp-piclens/PicLensButton.png" alt="PicLens" width="16" height="12" border="0" align="top"></a>]]></content:encoded>
			<wfw:commentRss>http://www.alfrek.net/blog/2009/08/simple-time-picker-jquerty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalando Apache 2.2.x + PHP 5.x en FreeBSD</title>
		<link>http://www.alfrek.net/blog/2009/07/instalando-apache-2-2-x-php-5-x-en-freebsd/</link>
		<comments>http://www.alfrek.net/blog/2009/07/instalando-apache-2-2-x-php-5-x-en-freebsd/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 19:27:39 +0000</pubDate>
		<dc:creator>alfredojv</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Otros]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[trucos]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[instalacion]]></category>
		<category><![CDATA[tutoriales]]></category>

		<guid isPermaLink="false">http://www.alfrek.net/blog/?p=1186</guid>
		<description><![CDATA[Primero que nada instalaremos Apache 2.2.x, para eso vamos a hacer lo siguiente: # cd /usr/ports/www/apache22 # make install clean Luego de instalarse, debes de saber que el &#8220;web root&#8221; por defecto está en &#8220;/usr/local/www/apache22/data/&#8221; (aqui es donde pondrás todas las páginas y/o archivos que quieras prublicar en la web. Y por otra parte el [...]]]></description>
			<content:encoded><![CDATA[<p>Primero que nada  instalaremos Apache 2.2.x, para eso  vamos a hacer lo siguiente:</p>
<p><code> # cd /usr/ports/www/apache22<br />
# make install clean</code></p>
<p>Luego de instalarse, debes de saber que el &#8220;web root&#8221; por defecto está en &#8220;<strong>/usr/local/www/apache22/data/</strong>&#8221; (aqui es donde pondrás todas las páginas y/o archivos que quieras prublicar en la web. Y por otra parte el httpd.conf está en &#8220;<strong>/usr/local/etc/apache22/httpd.conf</strong>&#8220;.</p>
<p>Ahora sigue decirle al sistema que queremos que arranque el apache junto con él, para eso agregamos la siguiente linea al archivo <strong>/etc/rc.conf</strong>.</p>
<p><code>apache_enable="YES"</code></p>
<p>Con esa linea el demonio deberí­a iniciar durante el booteo de nuestro servidor.<br />
<em>(ACTUALIZADO) 08 de Marzo de 2010</em><br />
Antes de iniciar el demonio de Apache deberás agregar una linea al archivo /boot/loader.conf, para lo cuál ejecutamos el siguiente comando:</p>
<p><code># echo 'accf_http_load="YES"' &gt;&gt; /boot/loader.conf</code><br />
Para iniciar Apache manualmente escribimos el siguiente comando:</p>
<p># /usr/local/etc/rc.d/apache22 start</p>
<p>O bien podemos reiniciar el sistema (<em><strong>reboot</strong></em>) para que el demonio inicie solo.</p>
<p>Luego comprobamos que apache esté corriendo correctamente, ingresando en el navegador la IP o dominio del servidor donde lo hayas instalado. Si ves alguna página de apache todo salió perfecto, si no, revisa los pasos anteriores algo hiciste mal <img src='http://www.alfrek.net/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> .</p>
<p>Ahora bien, seguimos con PHP, para instalarlo habrá que seguir los siguientes pasos:</p>
<p># cd /usr/ports/lang/php5<br />
# make config<br />
# make install</p>
<p>Cuando estés en el cuadro de diálogo de configuración asegurate de seleccionar el Módulo para Apache, de lo contrario todo saldrá mal.</p>
<p>Una vez instalado, continuaremos con los siguientes módulos:</p>
<pre>/usr/ports/databases/php5-mysql - Soporte para MySQL
/usr/ports/www/php5-session	- Sessiones
/usr/ports/graphics/php5-gd - Librerí­a GD
/usr/ports/lang/php-extensions - Diversas Extensiones para PHP</pre>
<p>Ahora solo resta agregar a la configuración de Apache (/usr/local/etc/apache22/httpd.conf) las siguientes lineas, para decirle que tenemos PHP instalado.</p>
<pre># Apache 2.x
LoadModule php5_module        libexec/apache/libphp5.so</pre>
<p><em>Si lo instalaste por Ports y si ya tenias Apache instalado, esta linea ya deberí­a de estar.</em></p>
<p>Ahora busca la sección DirectoryIndex en el httpd.conf y modificalo para que quede como esto:</p>
<pre>DirectoryIndex index.php index.html index.htm</pre>
<p>Ahora resta agregar las siguientes lineas al httpd.conf para decirle a Apache que debe parsear los archivos .php:</p>
<pre>AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<strong></strong></pre>
<p><strong>CONFIGURANDO PHP</strong></p>
<p>El archivo de configuración de PHP se encuentra en /usr/local/etc/php.ini, vas a tener que copiarlo desde /usr/local/etc/php.ini-dist.</p>
<p><code># cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini</code></p>
<p>Después de que ya quedaron todas las configuraciones, debemos de reiniciar Apache para que los cambios hagan efecto. Ahora sigue probar que todo haya salido bien:</p>
<pre># echo "&lt;?php phpinfo(); ?&gt;" &gt;&gt; /usr/local/www/apache22/data/test.php</pre>
<p>Ahora apunta el navegador a la dirección: <em><strong>http://localhost/test.php</strong></em> Si ves una página con información de las configuraciones del PHP todo salió bien.</p>
<p>En caso contrario, deberás revisar todas las partes que escribiste, posiblemente algo se te barrió.</p>
<a href="javascript:toggleStartStop();PicLensLite.start({feedUrl:'http://www.alfrek.net/blog/wp-content/plugins/wp-piclens/mrss.php?id=1186'});">Start Slide Show with PicLens Lite <img src="http://www.alfrek.net/blog/wp-content/plugins/wp-piclens/PicLensButton.png" alt="PicLens" width="16" height="12" border="0" align="top"></a>]]></content:encoded>
			<wfw:commentRss>http://www.alfrek.net/blog/2009/07/instalando-apache-2-2-x-php-5-x-en-freebsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bienvenido PHP 5.3!</title>
		<link>http://www.alfrek.net/blog/2009/06/bienvenido-php-5-3/</link>
		<comments>http://www.alfrek.net/blog/2009/06/bienvenido-php-5-3/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 18:17:03 +0000</pubDate>
		<dc:creator>alfredojv</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.alfrek.net/blog/?p=1178</guid>
		<description><![CDATA[Tal como lo anunciara el equipo de desarrollo, el dí­a de hoy ha sido liberada la versión 5.3 de PHP, Esta versión es un paso importante en la serie 5.X y un escalón principal para el próximo lanzamiento de la versión 6.0, la cual pretende cambiar el paradigma de PHP. Algunas de las nuevas caracteristicas [...]]]></description>
			<content:encoded><![CDATA[<p>Tal como lo anunciara el equipo de desarrollo, el dí­a de hoy ha sido liberada la versión 5.3 de <strong>PHP</strong>, Esta versión es un paso importante en la serie 5.X y un escalón principal para el próximo lanzamiento de la versión 6.0, la cual pretende cambiar el paradigma de PHP.</p>
<p>Algunas de las nuevas caracteristicas clave incluyen:</p>
<ul>
<li>Namespaces.</li>
<li>Late static bulding.</li>
<li>Closures.</li>
<li>Opcional garbage collection para eliminar objetos que no están siendo usados/referenciados.</li>
<li>Nuevas extensiones (ext/phar, ext/intl, ext/FileInfo).</li>
<li>Más de 140 correciones de errores y mucho más.</li>
</ul>
<p>El equipo de PHP publicó una completa <a href="http://php.net/migration53" target="_blank">guí­a de emigración desde la versión PHP 5.2</a>.</p>
<p>Más detalles sobre la liberación de <a href="http://php.net/releases/5_3_0.php" target="_blank">PHP 5.3.0 se puede encontrar aquí­</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alfrek.net/blog/2009/06/bienvenido-php-5-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usando atajos de teclado en JavaScript</title>
		<link>http://www.alfrek.net/blog/2009/06/usando-atajos-de-teclado-en-javascript/</link>
		<comments>http://www.alfrek.net/blog/2009/06/usando-atajos-de-teclado-en-javascript/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 17:34:25 +0000</pubDate>
		<dc:creator>alfredojv</dc:creator>
				<category><![CDATA[ProgramaciÃ³n]]></category>
		<category><![CDATA[trucos]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.alfrek.net/blog/?p=1156</guid>
		<description><![CDATA[Lo primero que debemos tomar en cuenta a la hora de implementar atajos de teclado en una aplicación Web es no redefinir los atajos por defecto del navegador o sistema operativo, ya que se pudiera dar el caso de que el usuario intente hacer una acción común y la aplicación web lo interprete de otra [...]]]></description>
			<content:encoded><![CDATA[<p>Lo primero que debemos tomar en cuenta a la hora de implementar atajos de teclado en una aplicación Web es no redefinir los atajos por defecto del navegador o sistema operativo, ya que se pudiera dar el caso de que el usuario intente hacer una acción común y la aplicación web lo interprete de otra manera, por ejemplo: Imaginemos que el usuario quiere cerrar la pestaña y presiona Ctrl+W, pero tu definiste Ctrl+W para otra acción dentro de la aplicación, el usuario verá su intento frustrado por querer cerrar la pestaña.</p>
<p>Como puedes saber, Javascript tiene muchos &#8220;escuchadores de eventos&#8221;. Para los atajos del teclado usaremos <em><strong>onkeyup</strong></em>, el cual permite efectuar una acción cuando una tecla es presionada. Entonces, solo tenemos que comparar el valor del código de teclado retornado con nuestros atajos de teclado.</p>
<p>Los códigos de teclado consisten en 2 o 3 numeros, cada tecla tiene su propio código (vea la lista completa al final).</p>
<p><strong>EJEMPLOS</strong></p>
<p>En el siguiente ejemplo vamos a ejecutar una acción si la tecla combinación de teclas Ctrl+S es presionada:</p>
<pre><code class="javascript"><span class="keyword">var</span> isCtrl = <span class="literal">false</span>;
document.onkeyup=<span class="function"><span class="keyword">function</span><span class="params">(e)</span> {</span>
    <span class="keyword">if</span>(e.which == <span class="number">17</span>) isCtrl=<span class="literal">false</span>;
}document.onkeydown=<span class="function"><span class="keyword">function</span><span class="params">(e)</span>{</span>
    <span class="keyword">if</span>(e.which == <span class="number">17</span>) isCtrl=<span class="literal">true</span>;
    <span class="keyword">if</span>(e.which == <span class="number">83</span> &amp;&amp; isCtrl == <span class="literal">true</span>) {
         alert(<span class="string">'Guardando...!'</span>);
         <span class="keyword">return</span> <span class="literal">false</span>;
    }
}</code></pre>
<p>Ahora veamos el mismo ejemplo, pero utilizando jQuery:</p>
<pre><code class="javascript"><span class="keyword">var</span> isCtrl = <span class="literal">false</span>;$(document).keyup(<span class="function"><span class="keyword">function</span> <span class="params">(e)</span> {</span>
<span class="keyword">if</span>(e.which == <span class="number">17</span>) isCtrl=<span class="literal">false</span>;
}).keydown(<span class="function"><span class="keyword">function</span> <span class="params">(e)</span> {</span>
    <span class="keyword">if</span>(e.which == <span class="number">17</span>) isCtrl=<span class="literal">true</span>;
    <span class="keyword">if</span>(e.which == <span class="number">83</span> &amp;&amp; isCtrl == <span class="literal">true</span>) {
        alert(<span class="string">'guardando... Con jQuery'</span>);
 	<span class="keyword">return</span> <span class="literal">false</span>;
 }
});</code></pre>
<p>En estos ejemplos, empezamos verificando si la tecla <em>Ctrl </em>fue presionada, Si fue presionada, el valor inicial de la variable <em>isCtrl </em>será &#8220;<em>true</em>&#8220;. si las teclas son liberadas, a isCtrl se le asignará &#8220;<em>false</em>&#8221; de nuevo.</p>
<p>Una vez hecho esto, tenemos que verificar si la segunda tecla presionada es <em>S</em>, como nuestro atajo consiste en una combinación de teclas, también debemos verificar si la variable <em>isCtrl </em>es &#8220;<em>true</em>&#8220;.</p>
<p>Si las dos teclas fueron presionadas, mostraremos una alerta para mostrar un mensaje, por supuesto, en una aplicación real, podemos agregarle más funcionalidad.</p>
<p><strong>Referencia de códigos</strong></p>
<table border="0" width="600">
<tbody>
<tr>
<th width="200">Key</th>
<th width="400">Keyboard code</th>
</tr>
<tr>
<td>Backspace</td>
<td>8</td>
</tr>
<tr>
<td>Tab</td>
<td>9</td>
</tr>
<tr>
<td>Enter</td>
<td>13</td>
</tr>
<tr>
<td>Shift</td>
<td>16</td>
</tr>
<tr>
<td>Ctrl</td>
<td>17</td>
</tr>
<tr>
<td>Alt</td>
<td>18</td>
</tr>
<tr>
<td>Pause</td>
<td>19</td>
</tr>
<tr>
<td>Capslock</td>
<td>20</td>
</tr>
<tr>
<td>Esc</td>
<td>27</td>
</tr>
<tr>
<td>Page up</td>
<td>33</td>
</tr>
<tr>
<td>Page down</td>
<td>34</td>
</tr>
<tr>
<td>End</td>
<td>35</td>
</tr>
<tr>
<td>Home</td>
<td>36</td>
</tr>
<tr>
<td>Left arrow</td>
<td>37</td>
</tr>
<tr>
<td>Up arrow</td>
<td>38</td>
</tr>
<tr>
<td>Right arrow</td>
<td>39</td>
</tr>
<tr>
<td>Down arrow</td>
<td>40</td>
</tr>
<tr>
<td>Insert</td>
<td>45</td>
</tr>
<tr>
<td>Delete</td>
<td>46</td>
</tr>
<tr>
<td>0</td>
<td>48</td>
</tr>
<tr>
<td>1</td>
<td>49</td>
</tr>
<tr>
<td>2</td>
<td>50</td>
</tr>
<tr>
<td>3</td>
<td>51</td>
</tr>
<tr>
<td>4</td>
<td>52</td>
</tr>
<tr>
<td>5</td>
<td>53</td>
</tr>
<tr>
<td>6</td>
<td>54</td>
</tr>
<tr>
<td>7</td>
<td>55</td>
</tr>
<tr>
<td>8</td>
<td>56</td>
</tr>
<tr>
<td>9</td>
<td>57</td>
</tr>
<tr>
<td>a</td>
<td>65</td>
</tr>
<tr>
<td>b</td>
<td>66</td>
</tr>
<tr>
<td>c</td>
<td>67</td>
</tr>
<tr>
<td>d</td>
<td>68</td>
</tr>
<tr>
<td>e</td>
<td>69</td>
</tr>
<tr>
<td>f</td>
<td>70</td>
</tr>
<tr>
<td>g</td>
<td>71</td>
</tr>
<tr>
<td>h</td>
<td>72</td>
</tr>
<tr>
<td>i</td>
<td>73</td>
</tr>
<tr>
<td>j</td>
<td>74</td>
</tr>
<tr>
<td>k</td>
<td>75</td>
</tr>
<tr>
<td>l</td>
<td>76</td>
</tr>
<tr>
<td>m</td>
<td>77</td>
</tr>
<tr>
<td>n</td>
<td>78</td>
</tr>
<tr>
<td>o</td>
<td>79</td>
</tr>
<tr>
<td>p</td>
<td>80</td>
</tr>
<tr>
<td>q</td>
<td>81</td>
</tr>
<tr>
<td>r</td>
<td>82</td>
</tr>
<tr>
<td>s</td>
<td>83</td>
</tr>
<tr>
<td>t</td>
<td>84</td>
</tr>
<tr>
<td>u</td>
<td>85</td>
</tr>
<tr>
<td>v</td>
<td>86</td>
</tr>
<tr>
<td>w</td>
<td>87</td>
</tr>
<tr>
<td>x</td>
<td>88</td>
</tr>
<tr>
<td>y</td>
<td>89</td>
</tr>
<tr>
<td>z</td>
<td>90</td>
</tr>
<tr>
<td>0 (numpad)</td>
<td>96</td>
</tr>
<tr>
<td>1 (numpad)</td>
<td>97</td>
</tr>
<tr>
<td>2 (numpad)</td>
<td>98</td>
</tr>
<tr>
<td>3 (numpad)</td>
<td>99</td>
</tr>
<tr>
<td>4 (numpad)</td>
<td>100</td>
</tr>
<tr>
<td>5 (numpad)</td>
<td>101</td>
</tr>
<tr>
<td>6 (numpad)</td>
<td>102</td>
</tr>
<tr>
<td>7 (numpad)</td>
<td>103</td>
</tr>
<tr>
<td>8 (numpad)</td>
<td>104</td>
</tr>
<tr>
<td>9 (numpad)</td>
<td>105</td>
</tr>
<tr>
<td>*</td>
<td>106</td>
</tr>
<tr>
<td>+</td>
<td>107</td>
</tr>
<tr>
<td>-</td>
<td>109</td>
</tr>
<tr>
<td>.</td>
<td>110</td>
</tr>
<tr>
<td>/</td>
<td>111</td>
</tr>
<tr>
<td>F1</td>
<td>112</td>
</tr>
<tr>
<td>F2</td>
<td>113</td>
</tr>
<tr>
<td>F3</td>
<td>114</td>
</tr>
<tr>
<td>F4</td>
<td>115</td>
</tr>
<tr>
<td>F5</td>
<td>116</td>
</tr>
<tr>
<td>F6</td>
<td>117</td>
</tr>
<tr>
<td>F7</td>
<td>118</td>
</tr>
<tr>
<td>F8</td>
<td>119</td>
</tr>
<tr>
<td>F9</td>
<td>120</td>
</tr>
<tr>
<td>F10</td>
<td>121</td>
</tr>
<tr>
<td>F11</td>
<td>122</td>
</tr>
<tr>
<td>F12</td>
<td>123</td>
</tr>
<tr>
<td>=</td>
<td>187</td>
</tr>
<tr>
<td>Coma</td>
<td>188</td>
</tr>
<tr>
<td>Slash /</td>
<td>191</td>
</tr>
<tr>
<td>Backslash \</td>
<td>220</td>
</tr>
</tbody>
</table>
<p>El articulo original fue publicado en <a href="http://www.catswhocode.com/blog/using-keyboard-shortcuts-in-javascript">CatsWhoCode</a>, traducido por <a href="http://alfrek.net/blog">mí­</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alfrek.net/blog/2009/06/usando-atajos-de-teclado-en-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jqDock &#8211; Plugin para jQuery que simlua el dock de Mac OS X</title>
		<link>http://www.alfrek.net/blog/2009/06/jqdock-plugin-para-jquery-que-simlua-el-dock-de-mac-os-x/</link>
		<comments>http://www.alfrek.net/blog/2009/06/jqdock-plugin-para-jquery-que-simlua-el-dock-de-mac-os-x/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 21:46:05 +0000</pubDate>
		<dc:creator>alfredojv</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[dock]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.alfrek.net/blog/?p=1148</guid>
		<description><![CDATA[Hay Muchas herramientas y tutoriales en la web para hacer un Dock al estilo de Mac OS X, unos mejores que otros, pero bueno, esta vez les presento este plugin para jQuery que a simple vista se ve muy bien. Requisitos: jQuery Framework Demo: http://www.wizzud.com/jqDock/ Licencia: MIT, GPL License Start Slide Show with PicLens Lite]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1149" title="jqdock-sample" src="http://www.alfrek.net/blog/wp-content/uploads/2009/06/jqdock-sample.png" alt="jqdock-sample" width="461" height="136" /></p>
<p>Hay Muchas herramientas y tutoriales en la web para hacer un Dock al estilo de Mac OS X, unos mejores que otros, pero bueno, esta vez les presento este plugin para jQuery que a simple vista se ve muy bien.</p>
<blockquote><p>Requisitos: jQuery Framework<br />
Demo: <a title="Demo" rel="nofollow" href="http://www.wizzud.com/jqDock/" target="_blank">http://www.wizzud.com/jqDock/</a><br />
Licencia: MIT, GPL License</p></blockquote>
<a href="javascript:toggleStartStop();PicLensLite.start({feedUrl:'http://www.alfrek.net/blog/wp-content/plugins/wp-piclens/mrss.php?id=1148'});">Start Slide Show with PicLens Lite <img src="http://www.alfrek.net/blog/wp-content/plugins/wp-piclens/PicLensButton.png" alt="PicLens" width="16" height="12" border="0" align="top"></a>]]></content:encoded>
			<wfw:commentRss>http://www.alfrek.net/blog/2009/06/jqdock-plugin-para-jquery-que-simlua-el-dock-de-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>35 paginas Coreanas para inspirarse en diseño Web</title>
		<link>http://www.alfrek.net/blog/2009/05/35-paginas-coreanas-para-inspirarse-en-diseno-web/</link>
		<comments>http://www.alfrek.net/blog/2009/05/35-paginas-coreanas-para-inspirarse-en-diseno-web/#comments</comments>
		<pubDate>Fri, 15 May 2009 15:50:34 +0000</pubDate>
		<dc:creator>alfredojv</dc:creator>
				<category><![CDATA[DiseÃ±o GrÃ¡fico]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[diseÃ±o]]></category>
		<category><![CDATA[inspiration]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.alfrek.net/blog/?p=1120</guid>
		<description><![CDATA[La gente de Design inspiration ha publicado un articulo de 35 páginas Coreanas para inspirarse en el diseño web, si les interesa el diseño les recomiendo que se den una vuelta, ya que como diseñador es importante conocer las tendencias y estilos de otras culturas. [Via WebAppers] Start Slide Show with PicLens Lite]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1121" title="zimmoah-l" src="http://www.alfrek.net/blog/wp-content/uploads/2009/05/zimmoah-l.jpg" alt="zimmoah-l" width="552" height="294" /></p>
<p>La gente de <strong>Design inspiration</strong> ha publicado un articulo de <a href="http://thedesigninspiration.com/articles/top-35-inspirational-korean-websites/" target="_blank">35 páginas Coreanas para inspirarse en el diseño web</a>, si les interesa el diseño les recomiendo que se den una vuelta, ya que como diseñador es importante conocer las tendencias y estilos de otras culturas.</p>
<p>[Via <a href="http://www.webappers.com/2009/05/12/web-design-inspiration-from-35-korean-flash-websites/" target="_blank">WebAppers</a>]</p>
<a href="javascript:toggleStartStop();PicLensLite.start({feedUrl:'http://www.alfrek.net/blog/wp-content/plugins/wp-piclens/mrss.php?id=1120'});">Start Slide Show with PicLens Lite <img src="http://www.alfrek.net/blog/wp-content/plugins/wp-piclens/PicLensButton.png" alt="PicLens" width="16" height="12" border="0" align="top"></a>]]></content:encoded>
			<wfw:commentRss>http://www.alfrek.net/blog/2009/05/35-paginas-coreanas-para-inspirarse-en-diseno-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP para aplicaciones empresariales</title>
		<link>http://www.alfrek.net/blog/2009/05/php-para-aplicaciones-empresariales/</link>
		<comments>http://www.alfrek.net/blog/2009/05/php-para-aplicaciones-empresariales/#comments</comments>
		<pubDate>Thu, 07 May 2009 18:31:58 +0000</pubDate>
		<dc:creator>alfredojv</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[empresas]]></category>
		<category><![CDATA[frameworks]]></category>

		<guid isPermaLink="false">http://www.alfrek.net/blog/?p=1105</guid>
		<description><![CDATA[En VivaPHP ví­ el anuncio de un fork de kumbia para desarrollos empresariales, el cual está lidereado por Louder Technology y se llama Kumbia Enterprise Framework, este Framework está especialmente diseñado para aplicaciones basadas en SOA bajo PHP y sus principales caracterí­sticas funcionales son: Contenedor de Aplicaciones Arquitectura Modelo-Vista-Controlador (MVC) Object-Relational-Mapping (ORM) Administrador de Transacciones [...]]]></description>
			<content:encoded><![CDATA[<p>En <a href="http://www.vivaphp.com.ar/frameworks/kumbia-enterprise-framework.html" target="_blank">VivaPHP </a>ví­ el anuncio de un <strong><em>fork</em></strong> de <a href="http://www.kumbiaphp.com/blog/" target="_blank">kumbia</a> para desarrollos empresariales, el cual está lidereado por <a href="http://www.loudertechnology.com/site" target="_blank">Louder Technology</a> y se llama <a href="http://www.loudertechnology.com/site/projects/kumbia_enterprise_framework" target="_blank">Kumbia Enterprise Framework</a>, este Framework está especialmente diseñado para aplicaciones basadas en <a href="http://es.wikipedia.org/wiki/SOA" target="_blank">SOA</a> bajo PHP y sus principales caracterí­sticas funcionales son:</p>
<ul>
<li>Contenedor de Aplicaciones</li>
<li>Arquitectura Modelo-Vista-Controlador (MVC)</li>
<li>Object-Relational-Mapping (ORM)</li>
<li>Administrador de Transacciones</li>
<li>Business Process Management (BPM)</li>
<li>Seguridad Empresarial (Autenticación, Control de Acceso y Auditorí­a)</li>
<li>Servicios Web (Integración y Orquestamiento)</li>
<li>Localización e Internacionalización</li>
<li>Monitoreo de Aplicaciones</li>
<li>Reportes Empresariales (PDF, Excel, HTML)</li>
<li>Clustering</li>
</ul>
<p>Aprovechando la recta del artí­culo, quise hacer mención de otro framework especializado en aplicaciones empresariales, llamado <a href="http://www.atk-framework.com/" target="_blank">ATK Framework</a>, cuenta con mucha documentación y pinta para cumplir muy bien su trabajo, sus areas de aplicación son:</p>
<ul>
<li>CRM</li>
<li>HRM</li>
<li>ERP</li>
<li>Resource Management</li>
<li>Inventory Control</li>
<li>CMS</li>
</ul>
<p>Así­ que, si su intención es desarrollar aplicaciones empresariales utilizando PHP, no le pierdan el ojo a cualquiera de las dos opciones que les presento, seguro alguna de ellas les hará la vida más sencilla.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alfrek.net/blog/2009/05/php-para-aplicaciones-empresariales/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

