<?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>Isotipo &#187; programación</title>
	<atom:link href="http://www.isotipo.net/categoria/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.isotipo.net</link>
	<description>Diseño, internet y estándares &#124; blog personal de Basilio Cáceres</description>
	<lastBuildDate>Tue, 26 Jul 2011 02:52:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Crear múltiples sidebars usando nuestros menús de WordPress</title>
		<link>http://www.isotipo.net/2010/09/crear-multiples-sidebars-usando-nuestros-menus-de-wordpress/</link>
		<comments>http://www.isotipo.net/2010/09/crear-multiples-sidebars-usando-nuestros-menus-de-wordpress/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 13:00:18 +0000</pubDate>
		<dc:creator>Basilio</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.isotipo.net/?p=223</guid>
		<description><![CDATA[Los sidebars son las columnas de WordPress en las cuales podemos organizar y mostrar nuestros widgets. Para crear nuevos sidebars, estos deben registrarse como variables en el entorno, de este modo: $sidebar_name = 'Sidebar 1'; register_sidebar(array( 'name' =&#62; $sidebar_name, 'before_widget' =&#62; '&#60;div id="%1$s" class="%2$s"&#62;', 'after_widget' =&#62; '&#60;/div&#62;', 'before_title' =&#62; '&#60;h3&#62;', 'after_title' =&#62; '&#60;/h3&#62;', )); O [...]]]></description>
			<content:encoded><![CDATA[<p>Los sidebars son las columnas de WordPress en las cuales podemos organizar y mostrar nuestros widgets. Para crear nuevos sidebars, estos deben registrarse como variables en el entorno, de este modo:</p>
<pre class="brush: js; ruler: true; first-line: 1;">$sidebar_name = 'Sidebar 1';
register_sidebar(array(
	'name' =&gt; $sidebar_name,
	'before_widget' =&gt; '&lt;div id="%1$s" class="%2$s"&gt;',
	'after_widget' =&gt; '&lt;/div&gt;',
	'before_title' =&gt; '&lt;h3&gt;',
	'after_title' =&gt; '&lt;/h3&gt;',
));</pre>
<p>O también registrando varios a la vez:</p>
<pre class="brush: js; ruler: true; first-line: 1;">register_sidebars(3, array('name'=&gt;'Sidebar %d'));</pre>
<p>Si necesitas crear nuevas columnas para cada sección de tu sitio, puedes hacerlo <strong>dinámicamente</strong> utilizando los <strong>ítems declarados en el menú</strong>. <span id="more-223"></span>Por ejemplo, tenemos creado un menú llamado &#8220;Navigation&#8221; en el que están todas las secciones de nuestro sitio web:</p>
<p><a href="http://www.isotipo.net/wp-content/uploads/2010/09/screenshot7.png"><img class="alignnone size-full wp-image-231" title="screenshot7" src="http://www.isotipo.net/wp-content/uploads/2010/09/screenshot7.png" alt="" width="498" height="74" /></a></p>
<p>Entonces, podemos traer los ítems de este menú y crear los sidebars que necesitamos:</p>
<pre class="brush: js; ruler: true; first-line: 1;">// functions.php
$menu_name = "Navigation";
$navigation_items = wp_get_nav_menu_items($menu_name);
if(!empty($navigation_items)){
	// sort
	foreach($navigation_items as $item){
		$sidebar_name = $item-&gt;title;
		register_sidebar(array(
			'name' =&gt; $sidebar_name,
			'before_widget' =&gt; '&lt;div id="%1$s" class="%2$s"&gt;',
			'after_widget' =&gt; '&lt;/div&gt;',
			'before_title' =&gt; '&lt;h3&gt;',
			'after_title' =&gt; '&lt;/h3&gt;',
		));
	}
}</pre>
<p>Lo que genera un sidebar para cada ítem del menú escogido:</p>
<p><a href="http://www.isotipo.net/wp-content/uploads/2010/09/screenshot8.png"><img class="alignnone size-medium wp-image-232" title="screenshot8" src="http://www.isotipo.net/wp-content/uploads/2010/09/screenshot8-570x277.png" alt="" width="570" height="277" /></a></p>
<p>Algo que siempre debes tener en cuenta al trabajar con sidebars, es que <strong>no existe una relación directa</strong> entre estos y sus widgets, sino que <strong>se relacionan por el orden en que fueron registrados</strong>. Por ejemplo: si un widget esta incluído en el segundo sidebar, y luego se registra otra columna antes que este, entonces el widget quedará incluído en el segundo sidebar, aunque no sea el mismo en el que fue colocado. En este caso, si cambiamos el orden de los ítems en el menú principal, esto puede cambiar la posición de los widgets respecto de las columnas. Un modo de resolverlo es ordenar por ID los items obtenidos del menú, antes de hacer el registro.</p>
<pre class="brush: js; ruler: true; first-line: 1;">$menu_name = "Navigation";
$navigation_items = wp_get_nav_menu_items($menu_name);
if(!empty($navigation_items)){
	$order_items = array();
	foreach ($navigation_items as $key =&gt; $row){
		$order_items[$key] = $row-&gt;ID;
	}
	array_multisort($order_items, SORT_DESC, $navigation_items);
	foreach($navigation_items as $item){
		// Comenzar registro de cada sidebar
	}
}</pre>
<p>Por último, para aplicar este distingo en nuestra web, necesitamos condicionar los sidebars para mostrar sólo el que corresponda dependiendo de la sección en la que nos encontremos:</p>
<pre class="brush: js; ruler: true; first-line: 1;">// sidebar.php
if ( function_exists("dynamic_sidebar") ) {
	$menu_name = "Navigation";
	$navigation_items = wp_get_nav_menu_items($menu_name);
	if(!empty($navigation_items)){
		global $post;
		foreach($navigation_items as $item){
			// Si es página actual o página inferior
			if( $item-&gt;object == 'page' &amp;&amp; ( is_page($item-&gt;object_id) || in_array( $item-&gt;object_id, get_post_ancestors($post) ) ) ):
				dynamic_sidebar($item-&gt;title);
			// Si es categoría o entrada de una categoría
			elseif( $item-&gt;object == 'category' &amp;&amp; ( is_category( $item-&gt;object_id ) || ( is_single() &amp;&amp; in_category( $item-&gt;object_id, $post-&gt;ID ) ) ) ):
				dynamic_sidebar($item-&gt;title);
			// Si es custom item
			elseif( $item-&gt;object == 'custom' &amp;&amp; strpos( $item-&gt;url, $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] ) ):
				dynamic_sidebar($item-&gt;title);
			endif;
		}
	}
}</pre>
<div class="tweetmeme_button" style="bottom:-5em; position:absolute;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.isotipo.net%2F2010%2F09%2Fcrear-multiples-sidebars-usando-nuestros-menus-de-wordpress%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.isotipo.net%2F2010%2F09%2Fcrear-multiples-sidebars-usando-nuestros-menus-de-wordpress%2F&amp;source=basilio&amp;style=compact&amp;service=bit.ly&amp;service_api=R_f866c28eb1458a4dc0b8008bc396fc3f" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.isotipo.net/2010/09/crear-multiples-sidebars-usando-nuestros-menus-de-wordpress/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>3 razones para desarrollar sitios web sobre WordPress</title>
		<link>http://www.isotipo.net/2010/08/3-razones-para-desarrollar-sitios-web-sobre-wordpress/</link>
		<comments>http://www.isotipo.net/2010/08/3-razones-para-desarrollar-sitios-web-sobre-wordpress/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 14:00:19 +0000</pubDate>
		<dc:creator>Basilio</dc:creator>
				<category><![CDATA[programación]]></category>
		<category><![CDATA[usabilidad]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.isotipo.net/?p=208</guid>
		<description><![CDATA[Una de las tareas que habitualmente tenemos quienes desarrollamos sitios sobre WordPress, es dar las explicaciones necesarias de porque usar esta herramienta para el desarrollo de un proyecto, si cumple con los innumerables requerimientos que los clientes demandan, o cuales son las ventajas comparativas sobre Drupal, Joomla, Movable Type, ExpressionEngine o cualquier CMS gratuito o [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-210" title="logo-wordpress" src="http://www.isotipo.net/wp-content/uploads/2010/08/logo-wordpress-e1281319728805.png" alt="" width="200" height="124" />Una de las tareas que habitualmente tenemos quienes desarrollamos sitios sobre <strong><a rel="External" class="out" href="http://wordpress.org/" target="_blank">WordPress</a></strong>, es dar las explicaciones necesarias de <span>porque usar esta herramienta para el desarrollo de un proyecto, si cumple con los innumerables</span> requerimientos que los clientes demandan, o cuales son las ventajas comparativas sobre <a rel="External" class="out" href="http://drupal.org/" target="_blank">Drupal</a>, <a rel="External" class="out" href="http://www.joomla.org/" target="_blank">Joomla</a>, <a rel="External" class="out" href="http://www.movabletype.org/" target="_blank">Movable Type</a>, <a rel="External" class="out" href="http://expressionengine.com/" target="_blank">ExpressionEngine</a> o cualquier CMS gratuito o de pago que exista en el mercado. Es evidente que este no es un tema menor a la hora de pensar un proyecto nuevo o rehacer uno existente, basta con <a rel="External" class="out" title="Wordpress vs en google" href="http://www.google.com/search?q=wordpress+vs" target="_blank">buscar en Google: WordPress vs</a> para encontrar una buena cantidad de artículos, argumentando porque esta herramienta es mejor o peor que las otras opciones.</p>
<p>Más allá de las comparaciones puntuales, es importante saber distinguir cuales son los aspectos de <strong>WordPress</strong> que le dan valor a los proyectos desarrollados sobre él, y que pueden ser importantes como argumentos de venta. Desde mi punto de vista, existen 3 rasgos fundamentales: <strong>experiencia de uso</strong>, <strong>desarrollo extensible</strong> y <strong>la comunidad</strong>.<span id="more-208"></span></p>
<p>La <strong>experiencia de uso </strong>es uno de los puntos claves en el éxito de la herramienta. Desde la <a rel="External" class="out" href="http://codex.wordpress.org/Installing_WordPress#Famous_5-Minute_Install" target="_blank"><strong>rápida y sencilla instalación</strong></a>, una <strong><a rel="External" class="out lightbox" href="http://codex.wordpress.org/images/3/30/dashboard.png" target="_blank">diagramación clara</a> </strong>y<strong> <a rel="External" class="out" href="http://codex.wordpress.org/Administration_Panels">bien jerarquizada</a></strong>, instalación y upgrade automáticos de <a rel="External" class="out" href="http://codex.wordpress.org/Plugins_Add_New_SubPanel" target="_blank"><strong>plugins</strong></a> y <a rel="External" class="out" href="http://codex.wordpress.org/Appearance_Themes_SubPanel#Automated_Theme_installer" target="_blank"><strong>themes</strong></a>, y por supuesto, un <strong>diseño</strong> e <strong>interacciones</strong> que han ido mejorando bastante con los años; todo esta pensado para generar una muy buena experiencia en el usuario del sistema. Pero además de estas características nativas, existen ciertos aspectos que tienen que ver con el <em>desarrollo de nuevas funcionalidades</em>. Por ejemplo, cuando se crean entradas o páginas es posible agregar información adicional a través de los campos llamados <a rel="External" class="out" href="http://codex.wordpress.org/Custom_Fields" target="_blank"><strong>Custom Fields</strong></a>. Sin embargo, el uso básico de esta función es muy poco amigable, por lo que siempre es recomendable desarrollar <a class="lightbox" href="http://www.isotipo.net/wp-content/uploads/2010/08/new_meta_box.png"><strong>Custom Meta boxes</strong></a> específicos para cada grupo de datos. Así, el usuario final del sitio, que probablemente <strong>no seremos nosotros</strong>, tendrá un trabajo más agradable y obviamente valorará más la herramienta.</p>
<p><strong><a rel="External" class="out" href="http://en.wikipedia.org/wiki/Extensibility" target="_blank">Extensibilidad</a> </strong><em>es un principio del diseño de sistemas donde una aplicación toma en cuenta su crecimiento futuro. Es una medida sistemática de la <strong>capacidad de extender un sistema</strong> y el <strong>nivel de esfuerzo requerido</strong> para implementar la extensión</em>. El <strong>desarrollo extensible</strong> es parte de las filosofías básicas de WordPress:</p>
<blockquote>
<p style="text-align: left;">WordPress is infinitely extensible. One of the core philosophies of  WordPress is to keep the core code as light and fast as possible but to  provide a rich framework for the huge community to expand what WordPress  can do, limited only by their imagination.  (<a rel="External" class="out" href="http://wordpress.org/extend/" target="_blank">WordPress Extend</a>)</p>
</blockquote>
<p style="text-align: left;">El sistema posee una serie de métodos<strong> bien documentados</strong> que permiten extender <em>casi sin límites</em> el desarrollo sobre <strong>WordPress</strong>. Por ejemplo:</p>
<ul>
<li>Las más conocidas y comunes: <strong><a rel="External" class="out" href="http://wordpress.org/extend/plugins/" target="_blank">Plugins</a> </strong>para agregar  nuevas funciones específicas y <a rel="External" class="out" href="http://wordpress.org/extend/themes/" target="_blank"><strong>Themes</strong></a> para customizar el estilo de nuestros sitios.<strong><br />
</strong></li>
<li>El uso de <a rel="External" class="out" href="http://codex.wordpress.org/Plugin_API#Filters" target="_blank"><strong>Filters</strong></a> y <a rel="External" class="out" href="http://codex.wordpress.org/Plugin_API#Actions" target="_blank"><strong>Actions</strong></a> para intervenir una gran cantidad de funciones y eventos generados en el core.</li>
<li>La sencilla forma de <strong>creación y registro</strong> de <a rel="External" class="out" href="http://codex.wordpress.org/Widgets_API" target="_blank"><strong>Widgets</strong></a>.</li>
<li>La <a rel="External" class="out" href="http://codex.wordpress.org/Translating_WordPress" target="_blank"><strong>localización a distintos Lenguajes</strong></a>, permitiendo también generar nuestras propias versiones.</li>
<li>El reciente desarrollo de los <strong><a rel="External" class="out" href="http://codex.wordpress.org/Custom_Post_Types" target="_blank">Custom Posts</a></strong> y <strong><a rel="External" class="out" href="http://codex.wordpress.org/Custom_Taxonomies" target="_blank">Custom Taxonomies</a></strong>, que permiten generar arquitecturas más precisas y mejor gestionados.</li>
</ul>
<p><strong>La enorme comunidad</strong> alrededor de WordPress es un reflejo del éxito que ha alcanzado y, además, una gran ventaja al momento de resolver dudas y querer aprender más. Existen millones de usuarios y desarrolladores entusiastas en todo el mundo, aportando contenidos en sus bitácoras personales o en <a rel="External" class="out" href="http://sixrevisions.com/wordpress/16-wordpress-sites-to-help-you-build-a-better-blog/" target="_blank">sitios especializados</a>,  participando en foros o cadenas de correos. Si necesitas integrar WordPress con algún servicio poco usado, o través de un protocolo desconocido, es muy probable que alguien haya desarrollado un plugin para hacer lo que necesitas. Otro punto importante es la detección de <a rel="External" class="out" href="http://es.wikipedia.org/wiki/Error_de_software" target="_blank"><strong>bugs</strong></a>. Dentro de una aplicación este proceso es siempre una tarea compleja, necesitas de muchos <strong>usuarios tester reales</strong> en busca de eventuales errores. En WordPress, cualquier usuario puede <a rel="External" class="out" href="http://codex.wordpress.org/Reporting_Bugs" target="_blank"><strong>reportar bugs</strong></a> obtenidos a través de su propia experiencia, ayudando a que el sistema sea cada vez <a rel="External" class="out" href="http://ayudawordpress.com/wordpress-es-el-cms-menos-vulnerable/" target="_blank"><strong>más seguro</strong></a> y de <strong>mejor calidad</strong>.
<div class="tweetmeme_button" style="bottom:-5em; position:absolute;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.isotipo.net%2F2010%2F08%2F3-razones-para-desarrollar-sitios-web-sobre-wordpress%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.isotipo.net%2F2010%2F08%2F3-razones-para-desarrollar-sitios-web-sobre-wordpress%2F&amp;source=basilio&amp;style=compact&amp;service=bit.ly&amp;service_api=R_f866c28eb1458a4dc0b8008bc396fc3f" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.isotipo.net/2010/08/3-razones-para-desarrollar-sitios-web-sobre-wordpress/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Parsear RSS en WordPress</title>
		<link>http://www.isotipo.net/2008/12/parsear-rss-en-wordpress/</link>
		<comments>http://www.isotipo.net/2008/12/parsear-rss-en-wordpress/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 22:57:01 +0000</pubDate>
		<dc:creator>Basilio</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.isotipo.net/?p=78</guid>
		<description><![CDATA[Después de muuucho tiempo sin visitar el blog, estoy con el ánimo y las ganas de retomar todos mis pendientes y volver a escribir en mi querido Isotipo, aunque sea con entradas muy sencillas pero útiles como ésta. WordPress trae integrado dentro de sus archivos la librería MagspieRSS, parseador de RSS en PHP que nos [...]]]></description>
			<content:encoded><![CDATA[<p>Después de muuucho tiempo sin visitar el blog, estoy con el ánimo y las ganas de retomar todos mis pendientes y volver a escribir en mi querido Isotipo, aunque sea con entradas muy sencillas pero útiles como ésta.</p>
<p>WordPress trae integrado dentro de sus archivos la librería <a rel="External" class="out" href="http://magpierss.sourceforge.net/">MagspieRSS</a>, parseador de RSS en PHP que nos permite trabajar con ella invocándola desde cualquier función:</p>
<pre class="brush: js; ruler: true; first-line: 10; highlight: [2, 4, 6]">if (!function_exists('MagpieRSS')) {
	include_once (ABSPATH . WPINC . '/rss-functions.php');
	error_reporting(E_ERROR);
}
$rss = @ fetch_rss($_GET["url_rss"]);</pre>
<p>La condición evita volver a llamar a la librería, en caso de que este siendo ocupada. Luego podemos contruir una función para descomponer el array, obteniendo una cantidad determinada de items:</p>
<pre class="brush: js; ruler: true; first-line: 10; highlight: [2, 4, 6]">function get_rss($url, $cantidad){
	if (!function_exists('MagpieRSS')) {
		include_once (ABSPATH . WPINC . '/rss-functions.php');
		error_reporting(E_ERROR);
	}
	$rss = @ fetch_rss($url);
	if ($rss) {
		$items = array_slice($rss-&gt;items, 0, $cantidad);
		$out .= '&lt;ul&gt;';
		foreach($items as $item){
			$date = date("d.m.y",strtotime($item['pubdate']));
			$out .= '&lt;li&gt;&lt;span class="date"&gt;'.$date.'&lt;/span&gt;&lt;br /&gt;&lt;a href="'.$item['link'].'" title="'.$item['title'].'" rel="External Follow"&gt;'.$item['title'].'&lt;/a&gt;&lt;/li&gt;';
		}
		$out .= '&lt;/ul&gt;';
	}
	return $out;
}</pre>
<p>Por supuesto, siempre puedes conocer la información de la variable $rss a traves de un simple print_r($rss), y así elegir entre los items los valores que necesites mostrar.
<div class="tweetmeme_button" style="bottom:-5em; position:absolute;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.isotipo.net%2F2008%2F12%2Fparsear-rss-en-wordpress%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.isotipo.net%2F2008%2F12%2Fparsear-rss-en-wordpress%2F&amp;source=basilio&amp;style=compact&amp;service=bit.ly&amp;service_api=R_f866c28eb1458a4dc0b8008bc396fc3f" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.isotipo.net/2008/12/parsear-rss-en-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS condicionado por navegador en distintos lenguajes</title>
		<link>http://www.isotipo.net/2008/02/css-condicionado-por-navegador-en-distintos-lenguajes/</link>
		<comments>http://www.isotipo.net/2008/02/css-condicionado-por-navegador-en-distintos-lenguajes/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 03:58:36 +0000</pubDate>
		<dc:creator>Basilio</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.isotipo.net/ajax/css-condicionado-por-navegador-en-distintos-lenguajes/</guid>
		<description><![CDATA[Una amiga me hizo esta pregunta en un mail ayer, así que esto fue lo que le conteste HTML Es una buena opción si estás trabajando sólo con documentos HTML. Aunque se dice que se pueden ocupar condiciones para todos los navegadores, la verdad es que nunca he conseguido aplicarla para otros agentes que no [...]]]></description>
			<content:encoded><![CDATA[<p>Una amiga me hizo esta pregunta en un mail ayer, así que esto fue lo que le conteste</p>
<h3>HTML</h3>
<p>Es una buena opción si estás trabajando sólo con documentos HTML. Aunque se dice que se pueden ocupar condiciones para todos los navegadores, la verdad es que nunca he conseguido aplicarla para otros agentes que no sean IE6 o IE7</p>
<pre class="brush: js; ruler: true; first-line: 10; highlight: [2, 4, 6]">&lt;!--[if IE 7]&gt;
&lt;link href="css/ie7.css" rel="stylesheet" type="text/css" /&gt;
&lt;![endif]--&gt;
&lt;!--[if IE 6]&gt;
&lt;link href="css/ie6.css" rel="stylesheet" type="text/css" /&gt;
&lt;![endif]--&gt;</pre>
<h3>JAVASCRIPT</h3>
<p>Trabajando con la variable <strong>navigator</strong> se pueden obtener datos como el <strong>agente del usuario </strong>(userAgent)<strong> </strong>o el <strong>nombre de la aplicación</strong> (appName) que estemos usando. Sin embargo, no es 100% accesible, ya que no funciona si se tiene el javascript del navegador desactivado.</p>
<pre class="brush: js; ruler: true; first-line: 10; highlight: [2, 4, 6]">&lt;script type="text/javascritp&gt;
if(navigator.userAgent.match("MSIE 6")) {
     document.write('&lt;link href="css/ie6.css" rel="stylesheet" type="text/css" /&gt;');
}
if(navigator.userAgent.match("Firefox")) {
     document.write('&lt;link href="css/firefox.css" rel="stylesheet" type="text/css" /&gt;');
}
&lt;/script&gt;</pre>
<h3>PHP</h3>
<p>Perfecta si se esta trabajando en este lenguaje porque es más segura y <strong>accesible</strong> que la opción en JS. Además de obtener similares datos que la opción en JS</p>
<pre class="brush: js; ruler: true; first-line: 10; highlight: [2, 4, 6]">&lt;?php
if(stristr($_SERVER["HTTP_USER_AGENT"],"firefox")) {
     echo '&lt;link href="css/firefox.css" rel="stylesheet" type="text/css" /&gt;';
}

if(stristr($_SERVER["HTTP_USER_AGENT"],"firefox")) {
     echo '&lt;link href="css/firefox.css" rel="stylesheet" type="text/css" /&gt;';
}
?&gt;</pre>
<div class="tweetmeme_button" style="bottom:-5em; position:absolute;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.isotipo.net%2F2008%2F02%2Fcss-condicionado-por-navegador-en-distintos-lenguajes%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.isotipo.net%2F2008%2F02%2Fcss-condicionado-por-navegador-en-distintos-lenguajes%2F&amp;source=basilio&amp;style=compact&amp;service=bit.ly&amp;service_api=R_f866c28eb1458a4dc0b8008bc396fc3f" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.isotipo.net/2008/02/css-condicionado-por-navegador-en-distintos-lenguajes/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Interacción y diagramas de flujos</title>
		<link>http://www.isotipo.net/2007/10/programando-con-diagramas-de-flujos/</link>
		<comments>http://www.isotipo.net/2007/10/programando-con-diagramas-de-flujos/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 18:24:44 +0000</pubDate>
		<dc:creator>Basilio</dc:creator>
				<category><![CDATA[arquitectura de información]]></category>
		<category><![CDATA[ayerviernes]]></category>
		<category><![CDATA[interacción]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[interacción mapa diagrama flujos]]></category>

		<guid isPermaLink="false">http://www.isotipo.net/interaccion/programando-con-diagramas-de-flujos/</guid>
		<description><![CDATA[Cuando diseñamos sistemas transaccionales o aplicaciones sociales, donde tenemos módulos de interacción condicional y necesitamos asegurarnos que todas las posibilidades posibles están pensadas, es necesario construir diagramas de flujos de todos los factores que se involucran en el sistema que queremos desarrollar. Este es un paso importantísimo que puede ahorrarle muchas horas a los procesos [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando diseñamos sistemas transaccionales o aplicaciones sociales, donde tenemos módulos de <strong>interacción condicional</strong> y necesitamos asegurarnos que todas las posibilidades posibles están pensadas, es necesario construir <strong>diagramas de flujos</strong> de todos los factores que se involucran en el  sistema que queremos desarrollar. Este es un paso importantísimo que puede ahorrarle muchas horas a los procesos de producción de una web, ya que a través de los diagramas se pueden prever la mayoría de los problemas de <strong>coherencia, solidez y concretividad</strong> de lo que queremos que el usuario realice, además de detallar claramente cuales son las acciones que se deben diseñar y programar.</p>
<p><img class="alignright" src="http://isotipo.net/wp-content/uploads/2007/09/flowchart.gif" alt="Diagrama de flujo básico" width="213" height="304" />Los <strong>diagramas de flujos o flowcharts</strong> representan la forma más tradicional y duradera para especificar los detalles algorítmicos de un proceso. Se utiliza principalmente en programación, economía y procesos industriales, sin embargo, su lenguaje estándar nos permiten utilizarlos para definir procesos no matemáticos.</p>
<p>Para la construcción de diagramas existe la estandarización <a rel="External" class="out" href="http://perso.orange.fr/logidoc/iso5807/iso_5807.htm">ISO 5807</a> (texto en francés), que describe una gran cantidad de elementos gráficos que podemos usar para su construcción, además del correcto uso de ellos. Existe el vocabulario visual que hizo <a rel="External" class="out" title="Jessie James Garret" href="http://www.jjg.net">Jessie James Garret</a>, sobre <a rel="External" class="out" title="Un vocabulario visual para describir arquitectura de información y diseÅ„o de interacción" href="http://www.jjg.net/ia/visvocab/spanish.html">mapas de Arquitectura de información e Interacción</a>, el que se encuentra más flitrado y está directamente vinculado a los mapas de AI.</p>
<p>La idea de los <strong>diagramas de flujos</strong> es que detallen todas las acciones que se plantean en el <strong>Diseño de Interacción</strong> y que, junto con la estructura de contenidos puesta por la <strong>Arquitectura de Información</strong>, permitan determinar los comportamientos y definir el <strong>QUE</strong>, <strong>CÓMO</strong> y <strong>CUÁNDO</strong> estará presente en nuestro sitio.</p>
<p><strong>Links</strong></p>
<ul>
<li><a rel="External" class="out" href="http://es.wikipedia.org/wiki/Diagrama_de_flujo">Wikipedia &#8211; Diagrama de flujo<br />
</a></li>
<li><a rel="External" class="out" href="http://www.fh-jena.de/~kleine/history/software/IBM-FlowchartingTechniques-GC20-8152-1.pdf">IBM FlowchartingTechniques</a> (pdf)</li>
<li><a rel="External" class="out" href="http://www.smartdraw.com/tutorials/flowcharts/tutorial_01.htm">SmartDraw Flowchart Tutorial</a></li>
</ul>
<div class="tweetmeme_button" style="bottom:-5em; position:absolute;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.isotipo.net%2F2007%2F10%2Fprogramando-con-diagramas-de-flujos%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.isotipo.net%2F2007%2F10%2Fprogramando-con-diagramas-de-flujos%2F&amp;source=basilio&amp;style=compact&amp;service=bit.ly&amp;service_api=R_f866c28eb1458a4dc0b8008bc396fc3f" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.isotipo.net/2007/10/programando-con-diagramas-de-flujos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)

Served from: www.isotipo.net @ 2012-02-06 10:39:30 -->
