<?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>HiperGalaxia &#187; CSS</title>
	<atom:link href="http://www.hipergalaxia.org/blog/tag/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hipergalaxia.org/blog</link>
	<description>El conocimiento, la frontera final.</description>
	<lastBuildDate>Thu, 09 Feb 2012 07:23:17 +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>Primeros pasos con PhoneGap para Android</title>
		<link>http://blog.jorgeivanmeza.com/2011/05/primeros-pasos-con-phonegap-para-android/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=primeros-pasos-con-phonegap-para-android</link>
		<comments>http://blog.jorgeivanmeza.com/2011/05/primeros-pasos-con-phonegap-para-android/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=primeros-pasos-con-phonegap-para-android#comments</comments>
		<pubDate>Sun, 29 May 2011 06:35:29 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Sindicados]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[AVD]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Hipergalaxia]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Móvil]]></category>
		<category><![CDATA[PhoneGap]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.jorgeivanmeza.com/?p=16695</guid>
		<description><![CDATA[Introducción. PhoneGap en pocas palabras es un framework para el desarrollo de aplicaciones móviles que posibilita a los desarrolladores a que implementen sus proyectos utilizando las tecnologías estándar de web: HTML5, CSS3 y Javascript, y este las convierte a aplicaciones híbridas, es decir, aplicaciones nativas de las diferentes plataformas móviles existentes que tienen acceso a [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción.</h2><p><a href="http://www.phonegap.com/" >PhoneGap</a> en pocas palabras es un <em>framework</em> para el desarrollo de aplicaciones móviles que posibilita a los desarrolladores a que implementen sus proyectos utilizando las tecnologías estándar de web: <strong>HTML5</strong>,<strong> CSS3</strong> y<strong> Javascript</strong>, y este las convierte a aplicaciones híbridas, es decir, aplicaciones nativas de las diferentes plataformas móviles existentes que tienen acceso a gran parte del API nativo.</p><div id="attachment_16703" class="wp-caption aligncenter" style="width: 664px"><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/build2.png"><img class="size-full wp-image-16703" title="build2" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/build2.png" alt="Tomado de http://www.phonegap.com/" width="654" height="250" /></a><p class="wp-caption-text">Tomado de http://www.phonegap.com/</p></div><p style="text-align: left;">Esto lo logra empaquetando la aplicación web original con un navegador basado en <a href="http://www.webkit.org/" >webkit</a> para desplegarla como si fuera una aplicación verdaderamente nativa.</p><p style="text-align: left;">Actualmente este <em>framework</em> soporta seis de las principales plataformas móviles del mercado: iOS, Android, Blackberry, PalmOS, Windows Mobile y Symbian.  Para mas información acerca del estado actual del soporte en cada una de estas plataformas consultar las <a href="http://www.phonegap.com/features" >características soportadas</a>.</p><p style="text-align: left;">Existen <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Multiple_phone_web_based_application_framework" >otros <em>frameworks</em> similares</a> a este entre los que se destacan <a href="http://www.appcelerator.com/" >Appcelerator Titanium</a>, <a href="http://www.mobl-lang.org/" >Mobl</a> y <a href="http://www.sencha.com/products/touch/" >Sencha Touch</a> de los cuales espero estar escribiendo mas adelante.</p><p style="text-align: left;">En este artículo se describirá el proceso de instalación de PhoneGap, la creación de un proyecto base para el desarrollo con este <em>framework</em> y la elaboración de un ejemplo simple.</p><h2 style="text-align: left;">Instalar PhoneGap.</h2><p style="text-align: left;">Descargar la última versión disponible del <em>framework</em> desde la siguiente ubicación.</p><p style="text-align: left; padding-left: 30px;"><a href="https://code.google.com/p/phonegap/downloads/list" >https://code.google.com/p/phonegap/downloads/list</a></p><p style="text-align: left;">Para efectos de la documentación se utilizará la versión <span style="font-family: courier new,courier;">0.9.5.1</span> que corresponde con las mas reciente para esta fecha.</p><p style="text-align: left;"><span style="font-family: courier new,courier;">$ wget http://phonegap.googlecode.com/files/phonegap-0.9.5.1.zip</span></p><p style="text-align: left;">Se descomprime el paquete recién descargado y se mueve a su ubicación final.</p><p style="text-align: left;"><span style="font-family: courier new,courier;">$ unzip phonegap-0.9.5.1.zip</span></p><p style="text-align: left;"><span style="font-family: courier new,courier;">$ mkdir ~/phonegap</span></p><p style="text-align: left;"><span style="font-family: courier new,courier;">$ mv phonegap-0.9.5.1 ~/phonegap/0.9.5.1</span></p><h2 style="text-align: left;">Crear la plantilla base de un proyecto Android.</h2><p style="text-align: left;">A continuación se relacionan los pasos que se deben realizar para crear un proyecto PhoneGap para Android utilizando <a href="http://blog.jorgeivanmeza.com/2011/05/instalar-eclipse-y-el-plugin-adt-en-gnulinux/" >Eclipse y el <em>plugin</em> ADT</a> instalados anteriormente.</p><p style="text-align: left;">Iniciar Eclipse y crear un nuevo proyecto a través del menú <strong>File</strong> &gt; <strong>New</strong> &gt; <strong>Android Project</strong>.</p><div id="attachment_16712" class="wp-caption aligncenter" style="width: 617px"><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Menu_007.png"><img class="size-full wp-image-16712" title="Menu_007" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Menu_007.png" alt="Crear un nuevo proyecto Android" width="607" height="159" /></a><p class="wp-caption-text">Crear un nuevo proyecto Android</p></div><p style="text-align: left;">En el diálogo de información del proyecto a crearse especificar al menos los siguientes campos y presione el botón <strong>Finish</strong> para continuar.</p><ol><li>Nombre del proyecto (<em>project name</em>).</li><li>API de Android a utilizarse (<em>build target</em>).  En este caso se utilizará el API 2.2.</li><li>Nombre de la aplicación (<em>application name</em>).</li><li>Crear una actividad (<em>create activity</em>).</li></ol><div id="attachment_16713" class="wp-caption aligncenter" style="width: 535px"><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/New-Android-Project-_007.png"><img class="size-full wp-image-16713" title="New Android Project _007" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/New-Android-Project-_007.png" alt="Información básica del proyecto Android" width="525" height="767" /></a><p class="wp-caption-text">Información básica del proyecto Android</p></div><p>En el Explorador de Paquetes (<em>package explorer</em>)  de Eclipse crear bajo el proyecto una carpeta <span style="font-family: courier new,courier;">/assets/www</span> y otra <span style="font-family: courier new,courier;">/libs</span>.</p><p style="text-align: left;">Copiar en la carpeta <span style="font-family: courier new,courier;">/assets/www</span> el archivo <span style="font-family: courier new,courier;">phonegap.0.9.5.1.js</span> y copiar en <span style="font-family: courier new,courier;">/libs</span> el archivo <span style="font-family: courier new,courier;">phonegap.0.9.5.1.jar</span>.  Ambos archivos se encuentran bajo el directorio <span style="font-family: courier new,courier;">~/phonegap/0.9.5.1/Android</span> creado durante el paso de instalación anterior.</p><div id="attachment_16714" class="wp-caption aligncenter" style="width: 255px"><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_0074.png"><img class="size-full wp-image-16714" title="Selection_007" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_0074.png" alt="Estructura del proyecto Android" width="245" height="305" /></a><p class="wp-caption-text">Estructura del proyecto Android</p></div><p>Hacer clic derecho sobre el directorio <span style="font-family: courier new,courier;">/libs</span> y seleccionar el menú <strong>Build Path</strong> &gt; <strong>Configure Build Path&#8230;</strong> Allí en la pestaña <strong>Libraries</strong> agregue la referencia a <span style="font-family: courier new,courier;">/libs/phonegap.0.9.5.1.jar</span> presionando el botón <strong>Add JARs&#8230;</strong></p><div id="attachment_16715" class="wp-caption aligncenter" style="width: 763px"><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_0075.png"><img class="size-full wp-image-16715" title="Selection_007" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_0075.png" alt="Agregar al proyecto la referencia al JAR de PhoneGap." width="753" height="232" /></a><p class="wp-caption-text">Agregar al proyecto la referencia al JAR de PhoneGap.</p></div><p>Realizar las siguientes modificaciones al código fuente de la actividad.  Este archivo se ubica bajo la carpeta <span style="font-family: courier new,courier;">/src</span> del proyecto (<span style="font-family: courier new,courier;">/src/com.jimezam.phonegap.demo/App.java</span> en este caso).</p><ol><li>Reemplazar la línea 3 (<span style="font-family: courier new,courier;">import android.app.Activity;</span>) con la siguiente: <span style="font-family: courier new,courier;">import com.phonegap.*;</span></li><li>En la línea 6 cambiar la superclase de <span style="font-family: courier new,courier;">App</span> de <span style="font-family: courier new,courier;">Activity</span> a <span style="font-family: courier new,courier;">DroidGap</span>.</li><li>Reemplazar la línea 11 (<span style="font-family: courier new,courier;">setContentView(R.layout.main);</span>) con la siguiente: <span style="font-family: courier new,courier;">super.loadUrl("file:///android_asset/www/index.html");</span></li></ol><div class="mceTemp mceIEcenter" style="text-align: left;"><dl id="attachment_16716" class="wp-caption aligncenter" style="width: 741px;"><dt class="wp-caption-dt"><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_0076.png"><img class="size-full wp-image-16716 " title="Selection_007" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_0076.png" alt="Modificaciones a la actividad inicial." width="731" height="230" /></a></dt><dd class="wp-caption-dd">Modificaciones a la actividad inicial.</dd></dl></div><p>Hacer clic derecho sobre el archivo <span style="font-family: courier new,courier;">AndroidManifest.xml</span> y seleccionar el menú <strong>Open With&#8230;</strong> &gt; <strong>Text Editor</strong>.  A este documento realizar las siguientes modificaciones.</p><p>1. Agregar el siguiente texto entre la apertura de la etiqueta <span style="font-family: courier new,courier;">&lt;manifest&gt;</span> y la apertura de la etiqueta <span style="font-family: courier new,courier;">&lt;application&gt;</span>.</p><p style="padding-left: 30px;"><span style="font-family: courier new,courier;">&lt;supports-screens</span><br /> <span style="font-family: courier new,courier;"> android:largeScreens="true"</span><br /> <span style="font-family: courier new,courier;"> android:normalScreens="true"</span><br /> <span style="font-family: courier new,courier;"> android:smallScreens="true"</span><br /> <span style="font-family: courier new,courier;"> android:resizeable="true"</span><br /> <span style="font-family: courier new,courier;"> android:anyDensity="true"</span><br /> <span style="font-family: courier new,courier;"> /&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;uses-permission android:name="android.permission.CAMERA" /&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;uses-permission android:name="android.permission.VIBRATE" /&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;uses-permission android:name="android.permission.READ_PHONE_STATE" /&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;uses-permission android:name="android.permission.INTERNET" /&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;uses-permission android:name="android.permission.RECEIVE_SMS" /&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;uses-permission android:name="android.permission.RECORD_AUDIO" /&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;uses-permission android:name="android.permission.READ_CONTACTS" /&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;uses-permission android:name="android.permission.WRITE_CONTACTS" /&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;</span></p><p>2. Agregar el siguiente atributo a la etiqueta <span style="font-family: courier new,courier;">&lt;activity&gt;</span>.</p><p style="padding-left: 30px;"><span style="font-family: courier new,courier;">android:configChanges="orientation|keyboardHidden"</span></p><div id="attachment_16717" class="wp-caption aligncenter" style="width: 732px"><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_0077.png"><img class="size-full wp-image-16717 " title="Selection_007" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_0077.png" alt="Modificaciones al documento AndroidManifest.xml." width="722" height="615" /></a><p class="wp-caption-text">Modificaciones al documento AndroidManifest.xml.</p></div><p>Finalmente crear el archivo <span style="font-family: courier new,courier;">/assets/www/index.html</span> con el código fuente para la demostración.</p><p style="padding-left: 30px;"><span style="font-family: courier new,courier;">&lt;!DOCTYPE HTML&gt;</span><br /> <span style="font-family: courier new,courier;">&lt;html&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;head&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;title&gt;PhoneGap demostration with Android&lt;/title&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;script type="text/javascript" charset="utf-8" src="phonegap.js"&gt;&lt;/script&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;/head&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;body&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;h1&gt;Hello Android's World with PhoneGap&lt;/h1&gt;</span><br /> <span style="font-family: courier new,courier;"> &lt;/body&gt;</span><br /> <span style="font-family: courier new,courier;">&lt;/html&gt;</span></p><h2>Ejecutar el proyecto en el emulador.</h2><p>Seleccionar el menú <strong>Run</strong> &gt; <strong>Run As</strong> &gt; <strong>Android Application</strong>.</p><div id="attachment_16720" class="wp-caption aligncenter" style="width: 708px"><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Java-Eclipse-_007.png"><img class="size-full wp-image-16720" title="Java - Eclipse _007" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Java-Eclipse-_007.png" alt="Ejecutar como aplicación Android." width="698" height="216" /></a><p class="wp-caption-text">Ejecutar como aplicación Android.</p></div><p>Estos son un par de ejemplos de aplicaciones web simples ejecutándose con PhoneGap en el emulador de Android.</p><table style="margin: auto;"><tbody><tr><td><p><div id="attachment_16721" class="wp-caption aligncenter" style="width: 343px"><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_0078.png"><img class="size-full wp-image-16721" title="Selection_007" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_0078.png" alt="Hola Mundo web con Android" width="333" height="494" /></a><p class="wp-caption-text">Hola Mundo web con Android</p></div></p></td><td><p><div id="attachment_16722" class="wp-caption aligncenter" style="width: 344px"><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_0082.png"><img class="size-full wp-image-16722" title="Selection_008" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_0082.png" alt="The Simple List 0.1" width="334" height="495" /></a><p class="wp-caption-text">The Simple List 0.1</p></div></p></td></tr></tbody></table><h2>Enlaces.</h2><ul><li>PhoneGap.<br /> <a href="http://www.phonegap.com/" >http://www.phonegap.com/</a></li><li>PhoneGap get starter guide.<br /> <a href="http://www.phonegap.com/start#android" >http://www.phonegap.com/start#android</a></li><li>PhoneGap, Android and Eclipse quickstart.<br /> <a href="http://wiki.phonegap.com/w/page/30862722/phonegap-android-eclipse-quickstart" >http://wiki.phonegap.com/w/page/30862722/phonegap-android-eclipse-quickstart</a></li><li>PhoneGap documentation directory.<br /> <a href="http://wiki.phonegap.com/w/page/35502422/Documentation-Directory" >http://wiki.phonegap.com/w/page/35502422/Documentation-Directory</a></li></ul><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http://blog.jorgeivanmeza.com/2011/05/primeros-pasos-con-phonegap-para-android/&amp;layout=box_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p><fb:share -button href="http://blog.jorgeivanmeza.com/2011/05/primeros-pasos-con-phonegap-para-android/" type="box_count"></fb:share>]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2011/05/primeros-pasos-con-phonegap-para-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aplicación para el 6CCC: nuevo estilo para la programación</title>
		<link>http://blog.jorgeivanmeza.com/2011/05/aplicacion-para-el-6ccc-nuevo-estilo-para-la-programacion/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=aplicacion-para-el-6ccc-nuevo-estilo-para-la-programacion</link>
		<comments>http://blog.jorgeivanmeza.com/2011/05/aplicacion-para-el-6ccc-nuevo-estilo-para-la-programacion/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=aplicacion-para-el-6ccc-nuevo-estilo-para-la-programacion#comments</comments>
		<pubDate>Sat, 14 May 2011 03:05:24 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Sindicados]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Hipergalaxia]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[scraping]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.jorgeivanmeza.com/?p=16145</guid>
		<description><![CDATA[Introducción. Esta es una aplicación muy sencilla que se desarrolló en PHP para el sexto Congreso Colombiano de Computación.  Todo comenzó cuando no me resultó cómoda la manera como el sitio web desplegaba la programación del evento: por bloques de auditorios siendo las filas conferencias y las columnas los días de las mismas. Este estilo [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción.</h2><p>Esta es una aplicación muy sencilla que se desarrolló en PHP para el <a href="http://www.6ccc.org/" >sexto Congreso Colombiano de Computación</a>.  Todo comenzó cuando no me resultó cómoda la manera como el sitio web desplegaba la programación del evento: por bloques de auditorios siendo las filas conferencias y las columnas los días de las mismas.</p><div id="attachment_16146" class="wp-caption aligncenter" style="width: 727px"><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_007.png"><img class="size-large wp-image-16146  " title="Selection_007" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_007-1024x502.png" alt="Programación del 6CCC (versión original)" width="717" height="351" /></a><p class="wp-caption-text">Programación del 6CCC (versión original)</p></div><p>Este estilo de presentación no es conveniente ya que no me permite visualizar fácilmente que conferencias se están realizando en un momento dado para poder decidir a cual de ellas asisto, es decir, el estilo idóneo de presentación de las conferencias debería ser en el que cada bloque representa un día del evento, cada fila un rango de tiempo específico y cada columna un auditorio donde se estén realizando las conferencias.  De esta manera, una vez ubicado el rango de tiempo que se desea consultar sólo será necesario revisar las columnas para determinar las conferencias a las que se puede asistir.</p><p>Ya que manipular manualmente esta información  para poder determinar cuales eran las conferencias que quería ver era demasiado engorroso decidi implementar una solución computacional muy simple.  Inicialmente la iba a desarrollar en Javascript por completo manipulando el árbol DOM pero me dí cuenta que podría serle de utilidad a otras personas también y preferí no sobrecargar al navegador del cliente con las operaciones de transformación del contenido del programa.  El resultado final fue el siguiente.</p><p style="text-align: center;">&nbsp;</p><div id="attachment_16148" class="wp-caption aligncenter" style="width: 475px"><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_008.png"><img class="size-full wp-image-16148 " title="Selection_008" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/05/Selection_008.png" alt="Programación del 6CCC (versión mejorada)" width="465" height="395" /></a><p class="wp-caption-text">Programación del 6CCC (versión mejorada)</p></div><h2>El prototipo.</h2><p>Las premisas eran las siguientes.</p><ul><li>No sobrecargar al cliente con cálculos en Javascript para facilitar la consulta desde móviles.</li><li>No requerir que se ingrese la información de la programación nuevamente, se debería tomar de la programación existente directamente.</li><li>Actualizarse automáticamente a la par de la programación original (esta última debería respetar su estructura HTML).</li><li>Facilitar la lectura de la información.</li><li>Facilitar la consulta de las conferencias presentándose en un momento específico del día y cuales se están presentando en este mismo momento.</li><li>Permitir la personalización de la presentación (esto se obtuvo mediante la implementación de una vista independiente de la lógica de procesamiento y de clases CSS).</li></ul><p>El prototipo se implementó en PHP sin ningún tipo de <em>framework</em> especializado y utilizando la técnica de <em><a href="http://en.wikipedia.org/wiki/Web_scraping" >web scraping</a></em> para obtener directamente la información de la página web original de la programación, de ahí que fuera necesario que esta respetara su estructura HTML durante las actualizaciones.  Para esto se utilizó la librería <a href="http://code.google.com/p/phpquery/" >phpQuery</a> la cual permite entre otras cosas obtener secciones de código HTML mediante rutas de selectores CSS de manera <em>similar</em> a jQuery.</p><h2>Conclusiones.</h2><ul><li>El uso de phpQuery para las necesidades del prototipo no fue tan simple ni intuitivo como lo es el uso de jQuery, sin embargo una vez entendida su implementación, permitió desarrollar la funcionalidad necesaria.</li><li>La programación original contaba con múltiples inconsistencias: diferentes formatos de fecha, la presencia de un día adicional en la programación general, la presencia de las temáticas generales de los bloques de conferencias en el mismo contenido de las conferencias, conferencias sin hora específica y, filas y columnas vacías para generar espacios en las tablas.  Por este motivo el prototipo incluye varias validaciones para solventar estos problemas que dificultan la adquisición de la información.</li><li>El prototipo toma la fecha y hora del sistema para determinar las conferencias que se están presentando actualmente (tanto para resaltarlas en el listado como para mostrarlas al inicio de la programación).  No se tuvieron en cuenta diferencias en la zona horaria.</li><li>El prototipo no pudo ser incluído en el sitio web del congreso ya que fue desarrollado utilizando PHP 5.3 (utiliza una función anónima en PHP) mientras que el <em>hosting </em>utilizado por la página era 5.2 y no se contaba con la información necesaria para <a href="http://blog.jorgeivanmeza.com/2008/03/funciones-anonimas-en-php/" >convertir la sintáxis de la función anónima al estilo antiguo</a>.</li><li>El código fuente del prototipo fue liberado bajo la licencia <a href="http://creativecommons.org/licenses/by/3.0/" >Creative Commons Attribution 3.0</a>.</li></ul><h2>Enlaces.</h2><ul><li>Demostración del prototipo, versión 0.1.<br /> <a href="http://demo.jorgeivanmeza.com/PHP/6CCCProg/0.1/" >http://demo.jorgeivanmeza.com/PHP/6CCCProg/0.1/</a></li><li>Obtener el código fuente del prototipo.<br /> <a href="http://demo.jorgeivanmeza.com/PHP/6CCCProg/" >http://demo.jorgeivanmeza.com/PHP/6CCCProg/</a></li><li>Librería phpQuery.<br /> <a href="http://code.google.com/p/phpquery/" >http://code.google.com/p/phpquery/</a></li><li>Sexto Congreso Colombiano de Computación (6CCC).<br /> <a href="http://www.6ccc.org/" >http://www.6ccc.org/</a></li></ul><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http://blog.jorgeivanmeza.com/2011/05/aplicacion-para-el-6ccc-nuevo-estilo-para-la-programacion/&amp;layout=box_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p><fb:share -button href="http://blog.jorgeivanmeza.com/2011/05/aplicacion-para-el-6ccc-nuevo-estilo-para-la-programacion/" type="box_count"></fb:share>]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2011/05/aplicacion-para-el-6ccc-nuevo-estilo-para-la-programacion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Give Me a Tweet, versión 1.0</title>
		<link>http://blog.jorgeivanmeza.com/2011/04/give-me-a-tweet-version-1-0/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=give-me-a-tweet-version-1-0</link>
		<comments>http://blog.jorgeivanmeza.com/2011/04/give-me-a-tweet-version-1-0/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=give-me-a-tweet-version-1-0#comments</comments>
		<pubDate>Sat, 23 Apr 2011 23:32:54 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Sindicados]]></category>
		<category><![CDATA[Blueprint]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CURL]]></category>
		<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Hipergalaxia]]></category>
		<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[qrcode]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Sqlite]]></category>
		<category><![CDATA[traducción]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[urlshortener]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[yii]]></category>

		<guid isPermaLink="false">http://blog.jorgeivanmeza.com/?p=15575</guid>
		<description><![CDATA[Introducción. Preparé el prototipo de esta aplicación web muy simple para experimentar con algunas librerías que tenía por revisar, que a pesar de ser muy sencillas de utilizar es bueno ir conociendo para determinar mas adelante cual de todas las disponibles es la idónea. Esta es de manera resumida la funcionalidad del prototipo. Obtiene cierta [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción.</h2><p><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/04/blue_bird-mirror.png"><img class="alignleft size-thumbnail wp-image-15576" title="blue_bird-mirror" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/04/blue_bird-mirror-150x150.png" alt="" width="90" height="90" /></a>Preparé el prototipo de esta aplicación web muy simple para experimentar con algunas librerías que tenía por revisar, que a pesar de ser muy sencillas de utilizar es bueno ir conociendo para determinar mas adelante cual de todas las disponibles es la idónea.</p><p>Esta es de manera resumida la funcionalidad del prototipo.</p><ul><li>Obtiene cierta cantidad de tweets de ciertos usuarios predefinidos.</li><li>Los tweets son alamcenados en caché por una cantidad específica de tiempo.</li><li>El acceso a la página no requiere de ningún tipo de autenticación por parte del usuario.</li><li>Cuando el usuario accede al sitio web, el sistema elige un tweet azar y lo muestra.</li><li>La elección del tweet se realiza sobre los almacenados en el caché.  Si no hay caché o este es demasiado viejo, entonces se renueva automáticamente.</li><li>Los mensajes que no se encuentran escritos en español son traducidos automáticamente a este idioma.</li><li>Se prepara un enlace corto a la información del tweet.</li><li>Se presenta un QRCode con el enlace corto al tweet para ser fácilmente consultado por dispositivos móviles.</li></ul><h2>Herramientas.</h2><p>Estas fueron las herramientas utilizadas durante el desarrollo del prototipo.</p><ol><li>Netbeans (IDE).</li><li>SQLite (persistencia del caché).</li><li>Blueprint CSS Framework (<em>framework</em> para la presentación).</li><li>PHP (lenguaje de programación).</li><li>Yii PHP Framework (<em>framework</em> de desarrollo web).</li><li>Extensión de CURL para Yii (acceder al servicio REST fácilmente).</li><li>API REST de Twitter (obtener los mensajes).</li><li>Google Translate Service (servicio de traducción de textos).</li><li>jquery-qrcode para la generación de los códigos QR.</li><li>jquery-urlshortener que utiliza el servicio de bit.ly (acortador de URLs).</li></ol><h2>Prototipo.</h2><p style="text-align: center;">&nbsp;</p><div id="attachment_15578" class="wp-caption aligncenter" style="width: 585px"><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/04/Selection_002.png"><img class="size-full wp-image-15578  " title="Selection_002" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2011/04/Selection_002.png" alt="Prototipo de Give Me a Tweet" width="575" height="456" /></a><p class="wp-caption-text">Prototipo de Give Me a Tweet</p></div><h2>Instalación.</h2><p>El código fuente del protitpo puede obtenerse desde la siguiente ubicación.</p><p style="padding-left: 30px;"><a href="https://github.com/jimezam/Give-Me-a-Tweet/tree/v1.0" >https://github.com/jimezam/Give-Me-a-Tweet/tree/v1.0</a></p><p>Para la ejecución de la aplicación web se requiere que se cuente además de la infraestructura web, con PHP con soporte para SQLite y CURL, y la distribución del Yii PHP Framework (1.1.7 o similar) en una ubicación conocida.</p><p>Finalmente se deberán modificar los siguientes archivos para ajustarlos a la infraestructura local.</p><p><span style="font-family: 'courier new', courier;">index.php:</span></p><p style="padding-left: 30px;"><span style="font-family: 'courier new', courier;">$yii=dirname(__FILE__).&#8217;<strong>/../../yii-1.1.7.r3135</strong>/framework/yii.php&#8217;;</span><br /> <span style="font-family: 'courier new', courier;">$config=dirname(__FILE__).&#8217;/protected/config/main.php&#8217;;</span></p><p>Ajustar estas rutas a la ubicación real del <em>framework</em>.</p><p><span style="font-family: 'courier new', courier;">protected/views/tweet/show.php:</span></p><p style="padding-left: 30px;"><span style="font-family: 'courier new', courier;">$.shortenUrl.settings.login  = &#8216;<strong>USUARIO</strong>&#8216;; </span><br /> <span style="font-family: 'courier new', courier;">$.shortenUrl.settings.apiKey = &#8216;<strong>LLAVE DEL API</strong>&#8216;;</span></p><p>Modificar estos valores para que correspondan con la información del propietario del servicio.  Esta información se puede obtener de manera gratuita en el <a href="http://code.google.com/p/bitly-api/wiki/ApiDocumentation#Authentication_and_Shared_Parameters" >sitio web de <em>bit.ly</em> para desarrolladores</a>.</p><p><span style="font-size: 20px; font-weight: bold;">Enlaces.</span></p><ul><li>Netbeans.<br /> <a href="http://netbeans.org/">http://netbeans.org/</a></li><li><a href="http://netbeans.org/"></a>SQLite.<br /> <a href="http://sqlite.org/">http://sqlite.org/</a></li><li>jQuery.<br /> <a href="http://jquery.org/">http://jquery.org/</a></li><li>Blueprint CSS Framework.<br /> <a href="http://www.blueprintcss.org/">http://www.blueprintcss.org/</a></li><li><a href="http://sqlite.org/"></a>PHP.<br /> <a href="http://php.net/">http://php.net/</a></li><li><a href="http://php.net/"></a>Yii PHP Framework.<br /> <a href="http://www.yiiframework.com/">http://www.yiiframework.com/</a></li><li><a href="http://www.yiiframework.com/"></a> Extensión CURL para Yii.<br /> <a href="http://www.yiiframework.com/extension/curl/">http://www.yiiframework.com/extension/curl/</a></li><li><a href="http://www.yiiframework.com/extension/curl/"></a>Introduction to developing with @twitterapi.<br /> <a href="http://dev.twitter.com/pages/intro-to-twitterapi">http://dev.twitter.com/pages/intro-to-twitterapi</a></li><li><a href="http://dev.twitter.com/pages/intro-to-twitterapi"></a>Twitter, get statuses and user timeline.<br /> <a href="http://dev.twitter.com/doc/get/statuses/user_timeline">http://dev.twitter.com/doc/get/statuses/user_timeline</a></li><li><a href="http://dev.twitter.com/doc/get/statuses/user_timeline"></a>Plugin<span style="font-family: 'courier new', courier;"> jquery.qrcode.js</span>.<br /> <a href="http://jeromeetienne.github.com/jquery-qrcode/">http://jeromeetienne.github.com/jquery-qrcode/</a></li><li>Plugin <span style="font-family: 'courier new', courier;">jquery-urlshortener</span>.<br /> <a href="https://bitbucket.org/jiaaro/jquery-urlshortener/wiki/Home" > https://bitbucket.org/jiaaro/jquery-urlshortener/wiki/Home</a></li></ul><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http://blog.jorgeivanmeza.com/2011/04/give-me-a-tweet-version-1-0/&amp;layout=box_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p><fb:share -button href="http://blog.jorgeivanmeza.com/2011/04/give-me-a-tweet-version-1-0/" type="box_count"></fb:share>]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2011/04/give-me-a-tweet-version-1-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como personalizar la barra de idiomas en Drupal 6</title>
		<link>http://blog.jorgeivanmeza.com/2009/08/como-personalizar-la-barra-de-idiomas-en-drupal-6/</link>
		<comments>http://blog.jorgeivanmeza.com/2009/08/como-personalizar-la-barra-de-idiomas-en-drupal-6/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 22:24:15 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Sindicados]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Hipergalaxia]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1988</guid>
		<description><![CDATA[Introducción.
Después de instalar y configurar los módulos para mantener las traducciones del contenido en el portal basado en Drupal 6, el siguiente paso era crear la barra de banderas que permitiera cambiar fácilmente entre los distintos idiomas del portal.

Procedimiento.

Instalar el módulo Consistent Language Interface que provee al bloque Consistent Language Interface block (languageinterface).
http://drupal.org/project/languageinterface
Editar page.tpl.php e [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción.</h2>
<p>Después de <a href="http://blog.jorgeivanmeza.com/2009/08/mejorando-la-creacion-de-contenido-traducido-con-drupal-6/" >instalar y configurar los módulos</a> para mantener las traducciones del contenido en el portal basado en Drupal 6, el siguiente paso era crear la barra de banderas que permitiera cambiar fácilmente entre los distintos idiomas del portal.</p>
<p><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/08/BarraIdiomas.png"><img class="aligncenter size-full wp-image-1989" title="BarraIdiomas" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/08/BarraIdiomas.png" alt="BarraIdiomas" width="392" height="27" /></a></p>
<h2>Procedimiento.</h2>
<ol>
<li>Instalar el módulo Consistent Language Interface que provee al bloque Consistent Language Interface block (<span style="font-family: courier new,courier;">languageinterface</span>).<br />
<a href="http://drupal.org/project/languageinterface" >http://drupal.org/project/languageinterface</a></li>
<li class="php">Editar <span style="font-family: courier new,courier;">page.tpl.php</span> e incluír el siguiente fragmento de código donde se desea la barra de banderas.
<pre class="php">&lt;?php
    $flags = module_invoke('languageinterface', 'block', 'view', 0);
    print $flags['content'];
?&gt;</pre>
</li>
<li class="php">Personalice la presentación de la barra con CSS ya que su estructura es básicamente una lista no ordenada.  Para establecer la distribución horizontal como la de la imagen propuesta, agregue el siguiente código en la hoja de estilos del tema.
<pre class="css">#language-interface
{
    padding: 0;
    margin: 0;
}

#language-interface li
{
    display: inline;
    list-style-type: none;
    padding: 0;
    margin: 0px 5px 0px 0px;
    height: 12px;
}</pre>
</li>
<li class="php">Si desea puede además establecer estilos particulares para cada idioma, la clase CSS deberá llamarse igual que el código del idioma.  Además es posible resaltar al idioma actual utilizando la clase <span style="font-family: courier new,courier;">active</span>.</li>
</ol>
<h2>Enlaces.</h2>
<ul>
<li>Consistent Language Interface.<br />
<a href="http://drupal.org/project/languageinterface" >http://drupal.org/project/languageinterface</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2009/08/como-personalizar-la-barra-de-idiomas-en-drupal-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remover estilos CSS por defecto</title>
		<link>http://blog.jorgeivanmeza.com/2009/06/remover-estilos-css-por-defecto/</link>
		<comments>http://blog.jorgeivanmeza.com/2009/06/remover-estilos-css-por-defecto/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 03:08:08 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Sindicados]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Hipergalaxia]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1819</guid>
		<description><![CDATA[Introducción.
El primer paso para desarrollar cualquier interfaz de usuario basada en HTML debería ser el remover los estilos introducidos por defecto por el navegador web, con esto podríamos estar [un poco mas] seguros que los estilos implementados van a tener un igual comportamiento entre los diferentes tipos de navegadores web.
Hacer esto es muy fácil, sólo [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción.</h2>
<p>El primer paso para desarrollar cualquier interfaz de usuario basada en HTML debería ser el remover los estilos introducidos por defecto por el navegador web, con esto podríamos estar [un poco mas] seguros que los estilos implementados van a tener un igual comportamiento entre los diferentes tipos de navegadores web.</p>
<p>Hacer esto es muy fácil, sólo es necesario incluír el siguiente estilo provisto por Yahoo! al inicio de la hoja de estilos principal (la primera que se carga).</p>
<pre>/*
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.7.0
*/
html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit;}del,ins{text-decoration:none;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:baseline;}sub{vertical-align:baseline;}legend{color:#000;}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;}input,button,textarea,select{*font-size:100%;}body{font:13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}select,input,button,textarea,button{font:99% arial,helvetica,clean,sans-serif;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%;}body{text-align:center;}#doc,#doc2,#doc3,#doc4,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7{margin:auto;text-align:left;width:57.69em;*width:56.25em;}#doc2{width:73.076em;*width:71.25em;}#doc3{margin:auto 10px;width:auto;}#doc4{width:74.923em;*width:73.05em;}.yui-b{position:relative;}.yui-b{_position:static;}#yui-main .yui-b{position:static;}#yui-main,.yui-g .yui-u .yui-g{width:100%;}.yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main{float:right;margin-left:-25em;}.yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main{float:left;margin-right:-25em;}.yui-t1 .yui-b{float:left;width:12.30769em;*width:12.00em;}.yui-t1 #yui-main .yui-b{margin-left:13.30769em;*margin-left:13.05em;}.yui-t2 .yui-b{float:left;width:13.8461em;*width:13.50em;}.yui-t2 #yui-main .yui-b{margin-left:14.8461em;*margin-left:14.55em;}.yui-t3 .yui-b{float:left;width:23.0769em;*width:22.50em;}.yui-t3 #yui-main .yui-b{margin-left:24.0769em;*margin-left:23.62em;}.yui-t4 .yui-b{float:right;width:13.8456em;*width:13.50em;}.yui-t4 #yui-main .yui-b{margin-right:14.8456em;*margin-right:14.55em;}.yui-t5 .yui-b{float:right;width:18.4615em;*width:18.00em;}.yui-t5 #yui-main .yui-b{margin-right:19.4615em;*margin-right:19.125em;}.yui-t6 .yui-b{float:right;width:23.0769em;*width:22.50em;}.yui-t6 #yui-main .yui-b{margin-right:24.0769em;*margin-right:23.62em;}.yui-t7 #yui-main .yui-b{display:block;margin:0 0 1em 0;}#yui-main .yui-b{float:none;width:auto;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf,.yui-gc .yui-u,.yui-gd .yui-g,.yui-g .yui-gc .yui-u,.yui-ge .yui-u,.yui-ge .yui-g,.yui-gf .yui-g,.yui-gf .yui-u{float:right;}.yui-g div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first,.yui-g .yui-gc div.first,.yui-g .yui-ge div.first,.yui-gc div.first div.first{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf{width:49.1%;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{width:32%;margin-left:1.99%;}.yui-gb .yui-u{*margin-left:1.9%;*width:31.9%;}.yui-gc div.first,.yui-gd .yui-u{width:66%;}.yui-gd div.first{width:32%;}.yui-ge div.first,.yui-gf .yui-u{width:74.2%;}.yui-ge .yui-u,.yui-gf div.first{width:24%;}.yui-g .yui-gb div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first{margin-left:0;}.yui-g .yui-g .yui-u,.yui-gb .yui-g .yui-u,.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u,.yui-ge .yui-g .yui-u,.yui-gf .yui-g .yui-u{width:49%;*width:48.1%;*margin-left:0;}.yui-g .yui-g .yui-u{width:48.1%;}.yui-g .yui-gb div.first,.yui-gb .yui-gb div.first{*margin-right:0;*width:32%;_width:31.7%;}.yui-g .yui-gc div.first,.yui-gd .yui-g{width:66%;}.yui-gb .yui-g div.first{*margin-right:4%;_margin-right:1.3%;}.yui-gb .yui-gc div.first,.yui-gb .yui-gd div.first{*margin-right:0;}.yui-gb .yui-gb .yui-u,.yui-gb .yui-gc .yui-u{*margin-left:1.8%;_margin-left:4%;}.yui-g .yui-gb .yui-u{_margin-left:1.0%;}.yui-gb .yui-gd .yui-u{*width:66%;_width:61.2%;}.yui-gb .yui-gd div.first{*width:31%;_width:29.5%;}.yui-g .yui-gc .yui-u,.yui-gb .yui-gc .yui-u{width:32%;_float:right;margin-right:0;_margin-left:0;}.yui-gb .yui-gc div.first{width:66%;*float:left;*margin-left:0;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf .yui-u{margin:0;}.yui-gb .yui-gb .yui-u{_margin-left:.7%;}.yui-gb .yui-g div.first,.yui-gb .yui-gb div.first{*margin-left:0;}.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u{*width:48.1%;*margin-left:0;}.yui-gb .yui-gd div.first{width:32%;}.yui-g .yui-gd div.first{_width:29.9%;}.yui-ge .yui-g{width:24%;}.yui-gf .yui-g{width:74.2%;}.yui-gb .yui-ge div.yui-u,.yui-gb .yui-gf div.yui-u{float:right;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf div.first{float:left;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf div.first{*width:24%;_width:20%;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf .yui-u{*width:73.5%;_width:65.5%;}.yui-ge div.first .yui-gd .yui-u{width:65%;}.yui-ge div.first .yui-gd div.first{width:32%;}#hd:after,#bd:after,#ft:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after{content:".";display:block;height:0;clear:both;visibility:hidden;}#hd,#bd,#ft,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf{zoom:1;}</pre>
<p>Otra forma de hacerlo es simplemente hacer una referencia a esta hoja de estilos desde los servidores de Yahoo!.</p>
<pre class="javascript">&lt;link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.7.0/build/reset-fonts-grids/reset-fonts-grids.css"&gt;</pre>
<h2>Enlaces.</h2>
<ul>
<li>YUI Reset CSS.<br />
<a href="http://developer.yahoo.com/yui/reset/" >http://developer.yahoo.com/yui/reset/</a></li>
<li>Basic Test Suite for YUI Reset.<br />
<a href="http://developer.yahoo.com/yui/examples/reset/reset-simple.html" >http://developer.yahoo.com/yui/examples/reset/reset-simple.html</a></li>
<li>Using reset stylesheets.<br />
<a href="http://www.webmonkey.com/tutorial/Using_Reset_Stylesheets" >http://www.webmonkey.com/tutorial/Using_Reset_Stylesheets</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2009/06/remover-estilos-css-por-defecto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

