<?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>Haciendo Web</title>
	<atom:link href="http://www.haciendoweb.cult.cu/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.haciendoweb.cult.cu</link>
	<description>Mejorando la Intranet Cubana</description>
	<lastBuildDate>Thu, 12 Dec 2013 05:00:24 +0000</lastBuildDate>
	<language>es-ES</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Thermaltake VOLOS y CRONOS, un nuevo ratón y auriculares enfocados al mundo gamer</title>
		<link>http://www.haciendoweb.cult.cu/thermaltake-volos-y-cronos-un-nuevo-raton-y-auriculares-enfocados-al-mundo-gamer/</link>
		<comments>http://www.haciendoweb.cult.cu/thermaltake-volos-y-cronos-un-nuevo-raton-y-auriculares-enfocados-al-mundo-gamer/#comments</comments>
		<pubDate>Thu, 12 Dec 2013 05:00:24 +0000</pubDate>
		<dc:creator>Eduardo Rosabales Gonzalez</dc:creator>
				<category><![CDATA[Hardware y Gadgets]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Ratón]]></category>
		<category><![CDATA[Thermaltake]]></category>
		<category><![CDATA[VOLOS]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=12039</guid>
		<description><![CDATA[Tt eSPORTS VOLOS es el nombre del nuevo ratón para jugadores de Thermaltake, con un gran número de botones pensado para utilizar en títulos MMORPG donde se pueden asignar distintas funciones y macros y poder manejar todo desde el propio ratón. En concreto tenemos 14 teclas personalizables en 10 perfiles, lo que da hasta 140 [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/07/010713-55.jpg"><img class="alignleft size-medium wp-image-12040" alt="010713-55" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/07/010713-55-300x212.jpg" width="300" height="212" /></a>Tt eSPORTS VOLOS es el nombre del nuevo ratón para jugadores de Thermaltake, con un gran número de botones pensado para utilizar en títulos MMORPG donde se pueden asignar distintas funciones y macros y poder manejar todo desde el propio ratón. En concreto tenemos 14 teclas personalizables en 10 perfiles, lo que da hasta 140 combinaciones posibles. Integra configuración del color decorativo para poder cambiar la luz de la zona izquierda entre 16.8 millones de posibilidades. También es posible variar la sensibilidad y conocer en todo momento el valor seleccionado mediante un indicador luminoso.<span id="more-12039"></span></p>
<p style="text-align: justify;">Por otra parte tenemos los Tt eSPORTS CRONOS y Tt eSPORTS CRONOS Combat White, unos auriculares gaming con cable extraíble, zona de contacto con las orejas fabricadas en Lycra y conector de 3.5 mm con recubrimiento de oro para el micrófono, mientras que para el sonido utiliza un conector USB. Incluye iluminación en los laterales para darle un toque distintivo.El precio recomendado para el ratón VOLOS es de 70 dólares, mientras que para cualquiera de las dos versiones de los auriculares CRONOS habrá que desembolsar la cantidad de 60 dólares.</p>
<p style="text-align: justify;"><strong>Fuente: <a target="_blank" href="http://www.hispazone.com">Hispazone </a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/thermaltake-volos-y-cronos-un-nuevo-raton-y-auriculares-enfocados-al-mundo-gamer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft desmonta ZeroAccess, la red de ordenadores zombis</title>
		<link>http://www.haciendoweb.cult.cu/microsoft-desmonta-zeroaccess-la-red-de-ordenadores-zombis/</link>
		<comments>http://www.haciendoweb.cult.cu/microsoft-desmonta-zeroaccess-la-red-de-ordenadores-zombis/#comments</comments>
		<pubDate>Wed, 11 Dec 2013 22:20:03 +0000</pubDate>
		<dc:creator>Juan Pablo Pérez Manes</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Seguridad]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=12289</guid>
		<description><![CDATA[ZeroAccess ha sido desmontada gracias a Microsoft, el FBI y la Europol, entre otros, según ha informado la compañía de software.
ZeroAccess era una de las redes de botnets más grandes de internet. A través de páginas web visitadas, se introducía en los ordenadores de las personas y se hacía con sus datos o utilizaba su [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.haciendoweb.cult.cu/wp-content/uploads/2012/03/virus-ciberguerra-seguridad.jpg"><img class="alignleft size-medium wp-image-6646" alt="virus ciberguerra seguridad" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2012/03/virus-ciberguerra-seguridad-300x178.jpg" width="300" height="178" /></a>ZeroAccess ha sido desmontada gracias a Microsoft, el FBI y la Europol, entre otros, según ha informado la compañía de software.</p>
<p style="text-align: justify;">ZeroAccess era una de las redes de botnets más grandes de internet. A través de páginas web visitadas, se introducía en los ordenadores de las personas y se hacía con sus datos o utilizaba su ordenador para pinchar en anuncios y así obtener ingresos por visitas que, en realidad, eran falsas.<span id="more-12289"></span> Por este sistema, según Microsoft, los anunciantes pagaban más de dos millones de euros a estos ordenadores fantasma.</p>
<p style="text-align: justify;">Microsoft ha informado que las autoridades le dieron permiso para para acceder a comunicaciones entrantes y salientes de ordenadores infectados, lo que le permitió seguir el rastro hasta las direcciones originales del fraude, unas 18, además de tomar el control de otros 49 dominios asociados a ZeroAccess.</p>
<p style="text-align: justify;">Según Microsoft, al día actuaban más de 800.000 ordenadores infectados por ZeroAccess. &#8220;Debido a su arquitectura, ZeroAccess es una de las botnets más sólidas y duraderas en funcionamiento&#8221;.</p>
<p style="text-align: justify;">A principios de este año, la empresa de seguridad Symantec dijo que había deshabilitado casi 500.000 ordenadores infectados por ZeroAccess, un sistema descubierto en 2011 y que afecta a los ordenadores con Windows.</p>
<p style="text-align: justify;">Fuente: <a target="_blank" title="Fuente" href="http://elpais.com/tecnologia/2013/12/06/actualidad/1386323234_414333.html" target="_blank">http://elpais.com/tecnologia/2013/12/06/actualidad/1386323234_414333.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/microsoft-desmonta-zeroaccess-la-red-de-ordenadores-zombis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Corsair presenta dos nuevas refrigeraciones líquidas integradas Hydro Series</title>
		<link>http://www.haciendoweb.cult.cu/corsair-presenta-dos-nuevas-refrigeraciones-liquidas-integradas-hydro-series/</link>
		<comments>http://www.haciendoweb.cult.cu/corsair-presenta-dos-nuevas-refrigeraciones-liquidas-integradas-hydro-series/#comments</comments>
		<pubDate>Wed, 11 Dec 2013 21:41:39 +0000</pubDate>
		<dc:creator>Eduardo Rosabales Gonzalez</dc:creator>
				<category><![CDATA[Hardware y Gadgets]]></category>
		<category><![CDATA[Corsair]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=11391</guid>
		<description><![CDATA[Los nuevos Corsair Hydro Series se distinguen principalmente por el tamaño de su radiador, mientras que el H90 cuenta con un sistema de un radiador simple, pero con un tamaño superior a los 120 mm de otras refrigeraciones integradas de este tipo, en concreto hablamos de 140 mm, con un ventilador de ese mismo tamaño [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/01/180113-22.jpg"><img class="size-medium wp-image-11392 aligncenter" title="Corsair Hydro Series" alt="Corsair Hydro Series" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/01/180113-22-300x183.jpg" width="300" height="183" /></a>Los nuevos Corsair Hydro Series se distinguen principalmente por el tamaño de su radiador, mientras que el H90 cuenta con un sistema de un radiador simple, pero con un tamaño superior a los 120 mm de otras refrigeraciones integradas de este tipo, en concreto hablamos de 140 mm, con un ventilador de ese mismo tamaño incluido, al tener una diagonal mayor necesitan menos revoluciones por minuto para refrigerar la misma cantidad que ventiladores más pequeño, permitiendo unos niveles de ruido menores. Está pensado para ordenadores con torres con poco espacio donde un radiador mayor sería complicado o imposible de colocar.<span id="more-11391"></span></p>
<p style="text-align: justify;" align="justify">Para aquellos que dispongan de más espacio en su torre está el Corsair H110, con un bloque de agua con bomba integrada igual que el H90 pero con un radiador doble de 280 mm acompañado de dos ventiladores de 140 mm idénticos a los del modelo más pequeño. Tanto el Corsair Hydro Series H110 cómo el H90 cuentan con compatibilidad con los sockets más utilizados de Intel y AMD, como LGA 1155, 1156, 1366 y 2011 para la primera y AM2, AM3, AM3+ o los más pequeños FM1 y FM2 de AMD.</p>
<p style="text-align: justify;" align="justify">El precio recomendado para los dos modelos (ya disponibles en todo el mundo en tiendas físicas y online) es de 100 y 130 dólares para el H90 y H110 respectivamente.</p>
<p style="text-align: justify;" align="justify"><strong>Fuente: <a target="_blank" href="http://www.hispazone.com">Hispazone </a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/corsair-presenta-dos-nuevas-refrigeraciones-liquidas-integradas-hydro-series/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nokia compara la cámara PureView del Lumia 928 con la del iPhone y la del Galaxy S III</title>
		<link>http://www.haciendoweb.cult.cu/nokia-compara-la-camara-pureview-del-lumia-928-con-la-del-iphone-y-la-del-galaxy-s-iii/</link>
		<comments>http://www.haciendoweb.cult.cu/nokia-compara-la-camara-pureview-del-lumia-928-con-la-del-iphone-y-la-del-galaxy-s-iii/#comments</comments>
		<pubDate>Wed, 11 Dec 2013 13:43:31 +0000</pubDate>
		<dc:creator>Alejandro Santos</dc:creator>
				<category><![CDATA[Hardware y Gadgets]]></category>
		<category><![CDATA[dispositivos móviles]]></category>
		<category><![CDATA[Movil]]></category>
		<category><![CDATA[Moviles]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[Nokia Lumia]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[teléfonos móviles]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=11827</guid>
		<description><![CDATA[
Nokia continúa adelantándonos detalles sobre su nuevo smartphone, el Lumia 928. El día de ayer les comentábamos que el móvil ya puede ser visto online en la página web de la compañía, y hoy tenemos una nueva noticia enfocada en su estupenda cámara.
Los chicos de Nokia han decidido comparar la cámara con tecnología PureView de su [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/05/Nokia-compara-la-cámara-PureView-del-Lumia-928-con-la-del-iPhone-y-la-del-Galaxy-S-III.jpg"><img class="wp-image-11824 aligncenter" title="Nokia-compara-la-cámara-PureView-del-Lumia-928-con-la-del-iPhone-y-la-del-Galaxy-S-III" alt="" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/05/Nokia-compara-la-cámara-PureView-del-Lumia-928-con-la-del-iPhone-y-la-del-Galaxy-S-III-150x150.jpg" width="202" height="202" /></a><strong></strong></p>
<p><strong>Nokia</strong> continúa adelantándonos detalles sobre su nuevo smartphone, el <strong>Lumia 928</strong>. El día de ayer les comentábamos que el móvil ya puede ser visto online en la página web de la compañía, y hoy tenemos una nueva noticia enfocada en su estupenda cámara.<span id="more-11827"></span></p>
<p style="text-align: justify;">Los chicos de Nokia han decidido comparar la cámara con <strong>tecnología</strong> <strong>PureView</strong> de su nuevo Lumia con la cámara del <strong>iPhone 5</strong> y la del <strong>Galaxy S III</strong>. ¿Podrá la cámara del <strong>Lumia 928</strong> superar a la de los smartphones más vendidos del mercado? Puedes verlo en el video de abajo o seguir leyendo para enterarte.</p>
<p style="text-align: justify;">En el video podemos ver a las cámaras de los tres móviles en acción. La del Lumia 928, que es una con sensor de 8.7 megapíxeles, destaca por su extraordinaria capacidad de realizar muy buenas tomas y grabar videos en ambientes con poca luz.</p>
<p style="text-align: justify;">Las imágenes que se ven fueron grabadas en el parque Adventureland situado en New York. Los chicos de Nokia decidieron subirse a la montaña rusa para probar las cámaras de los tres móviles. Quizá lo ideal hubiera sido hacerlo en un ambiente un poco más tranquilo, ya que en la montaña rusa el teléfono está en constante movimiento y no se puede apreciar su capacidad al 100%. Aún así, el Lumia 928 ha logrado grabar mejores imágenes que el iPhone 5 y ha tenido un mejor enfoque que el S III.</p>
<p style="text-align: justify;">En general, se puede decir que la cámara del nuevo Nokia es mejor que la del iPhone y la del S III, pero son ustedes quienes deberían juzgarlo:</p>
<p style="text-align: justify;">Fuente: tecnomagazine.net</p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/nokia-compara-la-camara-pureview-del-lumia-928-con-la-del-iphone-y-la-del-galaxy-s-iii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTC Butterfly 2 en camino.</title>
		<link>http://www.haciendoweb.cult.cu/htc-butterfly-2-en-camino/</link>
		<comments>http://www.haciendoweb.cult.cu/htc-butterfly-2-en-camino/#comments</comments>
		<pubDate>Wed, 11 Dec 2013 13:31:54 +0000</pubDate>
		<dc:creator>Alejandro Santos</dc:creator>
				<category><![CDATA[Hardware y Gadgets]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Android 4.1]]></category>
		<category><![CDATA[dispositivos móviles]]></category>
		<category><![CDATA[HTC]]></category>
		<category><![CDATA[Movil]]></category>
		<category><![CDATA[Moviles]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[teléfonos móviles]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=11817</guid>
		<description><![CDATA[En el mes de marzo comenzaron a aparecer reportes que sugerían que el sucesor del HTC Butterfly, también conocido el Droid DNA, sería lanzado este año. Para quienes no recuerden a este pequeño, se trata de un poderoso smartphone con pantalla Full HD de 5 pulgadas, procesador Snapdragon de cuatro núcleos, 2GB de RAM, Android [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/05/HTC-Butterfly-2-en-camino.jpg"><img class="alignleft size-thumbnail wp-image-11816" title="HTC-Butterfly-2-en-camino" alt="" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/05/HTC-Butterfly-2-en-camino-150x150.jpg" width="150" height="150" /></a>En el mes de marzo comenzaron a aparecer reportes que sugerían que el sucesor del HTC Butterfly, también conocido el Droid DNA, sería lanzado este año. Para quienes no recuerden a este pequeño, se trata de un poderoso smartphone con pantalla Full HD de 5 pulgadas, procesador Snapdragon de cuatro núcleos, 2GB de RAM, Android 4.1, cámara de 8 megapíxeles y memoria interna de 16GB. En otras palabras, es un smartphone de gama alta. Ben Ho, de HTC, confirmó que la compañía está tratando de sacar ventaja a las pantallas grandes, ya que al parecer son las que más busca la mayoría de la gente.<span id="more-11817"></span></p>
<p style="text-align: justify;">¿Saben qué cosa es mejor que estos smartphones de moderna <strong>tecnología</strong>? Sus sucesores, por supuesto. Según parece, el <strong>HTC Butterfly 2</strong> está siendo preparado para un lanzamiento mundial que tendrá lugar durante el tercer cuarto del año, o sea entre julio y septiembre aproximadamente.</p>
<p style="text-align: justify;">Todavía no sabemos mucho sobre<strong> Butterfly 2</strong>, pero tal parece que tendrá una pantalla Full HD, parlantes BoomSound, una cámara Ultrapixel y contará con BlinkFeed, un escritorio de la interfaz HTC Sense 5.</p>
<p style="text-align: justify;">Muchos reportes sugerían que el HTC One sería el único móvil de gama alta que lanzaría el fabricante de Taiwan este año, pero al parecer esto no será así. Esperamos que pronto se filtre alguna otra noticia.</p>
<p style="text-align: justify;">Fuente: tecnomagazine.net/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/htc-butterfly-2-en-camino/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pequeña recopilación de Manuales y ejemplos del uso de jQuery</title>
		<link>http://www.haciendoweb.cult.cu/pequena-recopilacion-de-manuales-y-ejemplos-del-uso-de-jquery/</link>
		<comments>http://www.haciendoweb.cult.cu/pequena-recopilacion-de-manuales-y-ejemplos-del-uso-de-jquery/#comments</comments>
		<pubDate>Wed, 11 Dec 2013 13:14:47 +0000</pubDate>
		<dc:creator>Odecte Rodríguez Madruga</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Manuales]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[CCS]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=11618</guid>
		<description><![CDATA[Crear tabs o pestañas con jQuery y CSS – Estructurando el contenido de una página web
Resumen: En este artículo vamos a ver como se hacen tabs o pestañas con jQuery y CSS para agrupar la información de la página web de forma lógica y organizada.
Cada vez me gusta más jQuery y las cosas que se [...]]]></description>
				<content:encoded><![CDATA[<p id="inicio" style="text-align: justify;" title="Crear tabs o pestañas con jQuery y CSS – Estructurando el contenido de una página web"><a href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/01/jquery_logo_color_onwhite.png"><img class="alignleft size-medium wp-image-11548" title="Logo jQuery" alt="Logotipo de jQuery" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/01/jquery_logo_color_onwhite-300x73.png" width="300" height="73" /></a><strong>Crear tabs o pestañas con jQuery y CSS – Estructurando el contenido de una página web</strong></p>
<p id="resumen" style="text-align: justify;">Resumen: En este artículo vamos a ver como se hacen tabs o pestañas con jQuery y CSS para agrupar la información de la página web de forma lógica y organizada.<span id="more-11618"></span></p>
<div style="text-align: justify;">Cada vez me gusta más jQuery y las cosas que se pueden hacer con este framework.</div>
<div id="text">
<p style="text-align: justify;">Un efecto en particular que me parece muy útil cuando quieres desplegar una cantidad grande de información en poco espacio es el uso de los <strong>tabs o pestañas</strong>.</p>
<p style="text-align: justify;">El uso de tabs o pestañas, es una buena forma de estructurar la información de una página web de forma clara y diferenciada, ayudando al usuario a distinguir grupos de contenidos, así como los subgrupos que estos contienen.</p>
<p style="text-align: justify;">Mediante el uso de jQuery suavizamos el comportamiento que las pestañas tendrían con CSS puro. Puedes ver un ejemplo de tabs hechos con CSS puro aquí: <a target="_blank" href="http://www.cssplay.co.uk/menu/one_page.html">CSS Tabs</a>.</p>
<p style="text-align: justify;">Como puede apreciarse el cambio de una pestaña a otra es muy brusco. Con jQuery podemos solventar este aspecto del CSS.</p>
<p style="text-align: justify;">Para que te hagas una idea de lo que vamos a hacer en este tutorial, aquí tienes una imagen de ejemplo:</p>
<p><a href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/02/demoview.jpg"><img class="aligncenter size-medium wp-image-11619" title="Demo del uso de jQuery" alt="" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/02/demoview-300x104.jpg" width="300" height="104" /></a></p>
<p>Y puedes ver el ejemplo en marcha aquí: <a target="_blank" href="http://www.sohtanaka.com/web-design/examples/tabs/">ejemplo de tabs.</a></p>
<p style="text-align: justify;">Esta página es de <a target="_blank" href="http://www.sohtanaka.com/">Soh Tanaka</a>, un diseñador de Los Angeles al que sigo muy de cerca porque me encanta su trabajo y la calidad con la que lo hace. Es un maestro del CSS.</p>
<h2>El código para crear los tabs con jQuery y CSS</h2>
<p style="text-align: justify;">Bueno, para crear este efecto de pestañas en las páginas en las que trabajo, utilizo el código que el mismo Soh Tanaka publicó hace un tiempo en su blog, <a target="_blank" href="http://www.sohtanaka.com/web-design/simple-tabs-w-css-jquery/">tabs simples con CSS y jQuery</a>. Este diseñador creó un <strong>tutorial para incluir contenido en Tabs usando jQuery y CSS.<br />
</strong></p>
<h3>Un sencillo HTML</h3>
<p>Básicamente el código HTML es el siguiente:</p>
<pre>&amp;lt;ul&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a &lt;strong&gt;href=&quot;#tab1&quot;&lt;/strong&gt;&amp;gt;Gallery&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;a &lt;strong&gt;href=&quot;#tab2&quot;&lt;/strong&gt;&amp;gt;Submit&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;

&amp;lt;div&amp;gt;
    &amp;lt;div &lt;strong&gt;id=&quot;tab1&quot;&lt;/strong&gt;&amp;gt;
        &amp;lt;!--Content--&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div &lt;strong&gt;id=&quot;tab2&quot;&lt;/strong&gt;&amp;gt;
       &amp;lt;!--Content--&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;</pre>
<h3>La magia viene con CSS</h3>
<p>Este el CSS de los tabs:</p>
<pre>ul.tabs {
	margin: 0;
	padding: 0;
	float: left;
	list-style: none;
	height: 32px; /*--Set height of tabs--*/
	border-bottom: 1px solid #999;
	border-left: 1px solid #999;
	width: 100%;
}
ul.tabs li {
	float: left;
	margin: 0;
	padding: 0;
	height: 31px; /*--Subtract 1px from the height of the unordered list--*/
	line-height: 31px; /*--Vertically aligns the text within the tab--*/
	border: 1px solid #999;
	border-left: none;
	margin-bottom: -1px; /*--Pull the list item down 1px--*/
	overflow: hidden;
	position: relative;
	background: #e0e0e0;
}
ul.tabs li a {
	text-decoration: none;
	color: #000;
	display: block;
	font-size: 1.2em;
	padding: 0 20px;
	border: 1px solid #fff; /*--Gives the bevel look with a 1px white border inside the list item--*/
	outline: none;
}
ul.tabs li a:hover {
	background: #ccc;
}
html ul.tabs li.active, html ul.tabs li.active a:hover  { /*--Makes sure that the active tab does not
        listen to the hover properties--*/
	background: #fff;
	border-bottom: 1px solid #fff; /*--Makes the active tab look like it&#039;s connected with
        its content--*/
}</pre>
<p>Y este el CSS del contenido de los tabs:</p>
<pre>.tab_container {
	border: 1px solid #999;
	border-top: none;
	overflow: hidden;
	clear: both;
	float: left; width: 100%;
	background: #fff;
}
.tab_content {
	padding: 20px;
	font-size: 1.2em;
}</pre>
<h3>Y para rematar los tabs, jQuery en acción</h3>
<p>Y este el JavaScript para activar jQuery en los tabs (pestañas). Va en el header de la página, o mejor aún, en un archivo externo:</p>
<pre>$(document).ready(function() {

	//When page loads...
	$(&quot;.tab_content&quot;).hide(); //Hide all content
	$(&quot;ul.tabs li:first&quot;).addClass(&quot;active&quot;).show(); //Activate first tab
	$(&quot;.tab_content:first&quot;).show(); //Show first tab content

	//On Click Event
	$(&quot;ul.tabs li&quot;).click(function() {

		$(&quot;ul.tabs li&quot;).removeClass(&quot;active&quot;); //Remove any &quot;active&quot; class
		$(this).addClass(&quot;active&quot;); //Add &quot;active&quot; class to selected tab
		$(&quot;.tab_content&quot;).hide(); //Hide all tab content

		var activeTab = $(this).find(&quot;a&quot;).attr(&quot;href&quot;); //Find the href attribute value to
                identify the active tab + content
		$(activeTab).fadeIn(); //Fade in the active ID content
		return false;
	});
});</pre>
<p style="text-align: justify;">Hay que acordarse también de cargar el core de jQuery en el head para que funcione. Yo particularmente lo cargo del CDN de Google en lugar de almacenarlo en el servidor, para evitar sobrecargar el hosting del sitio para el que estoy diseñando la página web:</p>
<pre>&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot;&gt;
&lt;/script&gt;</pre>
</div>
<div data-send="true" data-width="485" data-show-faces="false" data-font="arial">
<h1 id="inicio" title="Enlace para mostrar y ocultar contenido con jQuery">Enlace para mostrar y ocultar contenido con jQuery</h1>
<p id="resumen" style="text-align: justify;">Resumen: Explicamos como llevar a cabo la creación de una función simple que nos ayude a mostrar y ocultar contenido de un elemento</p>
</div>
<div id="text">
<p style="text-align: justify;">En muchas ocasiones, las tareas que en contexto lucen sencillas de desarrollar, pueden llegar a representar una amplia mejora a la usabilidad de un sitio web. Dentro de esta clase de funcionalidades, podemos encontrar los <strong>enlaces para mostrar más o menos contenido dentro de una página</strong>.</p>
<p style="text-align: justify;">Esta funcionalidad, la podemos observar en muchísimos sitios a lo largo y ancho del Internet, ya que representa una de las maneras más sencillas de ahorrar espacio visual y a la vez ofrecer información suficiente para que el usuario no termine confundido o desorientado al observar el contenido.</p>
<p style="text-align: justify;">Gracias al uso de jQuery, el añadir un link que lleve a cabo esta tarea puede resultar bastante sencillo. El objetivo, es lograr que el usuario pueda expandir y contraer una sección entera de contenido con tan sólo dar clic sobre el enlace que mostramos.</p>
<h2>Crear la estructura HTML</h2>
<p style="text-align: justify;">El primer paso del proceso, consiste en crear una estructura, dentro de la cual añadiremos los elementos HTML necesarios para desplegar la información que deseamos. En este caso, nuestra estructura será bastante sencilla, ya que únicamente ejemplificaremos datos de prueba.</p>
<p style="text-align: justify;">Vamos a crear tres elementos de tipo bloque, el primero de ellos contendrá la información que se podrá observar por defecto, el segundo por su parte contendrá la información que estará oculta, mientras que el tercero lo utilizaremos para que actúe como enlace. La razón por la que usamos un div en vez de un elemento de anclaje, es para evitar el comportamiento default de este último, en caso de querer usar un elemento anchor para la operación, entonces debes recordar de utilizar la sentencia <strong>event.preventDefault()</strong>.</p>
<p style="text-align: justify;">En base a lo dicho, nuestra estructura final quedaría de la siguiente manera:</p>
<div>
<div id="highlighter_383032">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
</td>
<td>
<div>
<div><code>&lt;</code><code>div</code><code>&gt;LaWebera.es, sitio dedicado al diseño y desarrollo de páginas web.&lt;/</code><code>div</code><code>&gt;</code></div>
<div><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"infoExtra"</code><code>&gt;En estas páginas encontrarás cantidad de información para aprender a hacer tus páginas web, además de amplios servicios de diseño web profesional para empresas y particulares. Diseños web adaptados a cada cliente, optimizados para el SEO, autogestionables y con las técnicas CSS y XHTML más actuales.&lt;/</code><code>div</code><code>&gt;</code></div>
<div><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"leerMas"</code><code>&gt;Leer más&lt;/</code><code>div</code><code>&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h2>Dar estilo</h2>
<p style="text-align: justify;">Después de tener nuestra estructura, pasamos a darle el estilo necesario para que luzca correctamente. Lo más importante en este paso, es ocultar el div que contiene la información extra, para ello debemos hacer uso de la propiedad “display” con su valor asignado a “none”.</p>
<div>
<div id="highlighter_653666">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
</td>
<td>
<div>
<div><code>div {</code></div>
<div><code>  </code><code>margin</code><code>:</code><code>10px</code><code>;</code></div>
<div><code>}</code></div>
<div><code>div.infoExtra {</code></div>
<div><code>  </code><code>display</code><code>:</code><code>none</code><code>;</code></div>
<div><code>}</code></div>
<div><code>.leerMas { </code><code>color</code><code>:</code><code>blue</code><code>; </code><code>cursor</code><code>:</code><code>pointer</code><code>; </code><code>display</code><code>:</code><code>inline</code><code>;}</code></div>
<div><code>.leerMas:hover {</code><code>color</code><code>:</code><code>purple</code><code>; </code><code>text-decoration</code><code>:</code><code>underline</code><code>;}</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h2>Agregar jQuery</h2>
<p style="text-align: justify;">Como ya dijimos, en este proyecto haremos uso de jQuery para llevar a cabo el proceso de manera más sencilla y hacer que nuestro código luzca mucho más limpio.</p>
<p style="text-align: justify;">Para poder hacer uso de la funcionalidad proporcionada por jQuery, es necesario agregarlo dentro de nuestro código. Este paso, es bastante sencillo de realizar, basta con agregar el llamado a la librería dentro de la etiqueta head de nuestro código, esto se lograr utilizando un elemento de tipo script cuyo atributo src apunte a la locación donde se encuentra la librería.</p>
<div>
<div id="highlighter_412570">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
</td>
<td>
<div>
<div><code>&lt;</code><code>script</code> <code>src</code><code>=</code><code>"<a target="_blank" href="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js</a>"</code><code>&gt;&lt;/</code><code>script</code><code>&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h2>Construir la función con jQuery</h2>
<p style="text-align: justify;">El último paso, consiste en elaborar una función que nos permita llevar a cabo la operación de mostrar y ocultar el elemento que contiene la información complementaria para el usuario. Para ello, vamos a recurrir a la función “slideToggle()”, la cual se encuentra definida en el core del framework jQuery.</p>
<p style="text-align: justify;">Esta función se encarga de agregar un efecto de “acordeón” a nuestros elementos, es decir cuando el contenido del elemento esta contraído se encarga de expandirlo y cuando este ya se encuentra expandido lo regresa a su estado original. La diferencia entre esta función y “toogle()”, es que la primera <strong>mostrará u ocultará la información agregando un efecto de deslizamiento</strong>, mientras que “toggle” no agrega ninguna clase de efecto a la transición.</p>
<p style="text-align: justify;">Para poder realizar la llamada a dicha función, haremos uso del evento clic, el cual también podemos capturar con jQuery. Para esto debemos agregar un selector, el cual se encargará de definir que elementos recibirán el evento de clic, y una vez que se lleve la acción, mandar llamar la funcionalidad para mostrar u ocultar lo que deseamos.</p>
<p style="text-align: justify;">En nuestro caso, el elemento que recibirá el evento clic será el div cuya clase es “leerMas”, por lo que la sentencia lucirá de la siguiente manera:</p>
<div>
<div id="highlighter_254820">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
</td>
<td>
<div>
<div><code>jQuery(</code><code>function</code> <code>() {</code></div>
<div><code>  </code><code>jQuery(</code><code>".leerMas"</code><code>).bind(</code><code>"click"</code><code>, </code><code>function</code> <code>() { });</code></div>
<div><code>});</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Lo que resta por agregar es el llamado a la función “slideToggle”, esta función se deberá aplicar al elemento cuya clase es “infoExtra”, ya que este es el que contiene la información complementaria. Para poder seleccionar dicho elemento, podemos utilizar un selector o si decimos utilizar el elemento que ya recibió el evento de clic, podemos llamar a la función “prev()” de jQuery la cual se encargará de seleccionar al elemento previo a este, el cual según nuestra estructura es “infoExtra”.</p>
<div>
<div id="highlighter_802607">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</td>
<td>
<div>
<div><code>jQuery(</code><code>function</code> <code>() {</code></div>
<div><code>  </code><code>jQuery(</code><code>".leerMas"</code><code>).bind(</code><code>"click"</code><code>, </code><code>function</code> <code>() {</code></div>
<div><code>    </code><code>jQuery(</code><code>this</code><code>).text(jQuery(</code><code>this</code><code>).text() == </code><code>"Leer más"</code> <code>? </code><code>"Ocultar"</code> <code>: </code><code>"Leer más"</code><code>);</code></div>
<div><code>    </code><code>jQuery(</code><code>this</code><code>).prev().slideToggle();</code></div>
<div><code>  </code><code>});</code></div>
<div><code>});</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Como toque final, también agregamos una funcionalidad para que el texto del enlace cambiará, dependiendo del estado en que se encuentra el div oculto.</p>
<h1 id="inicio" title="Enviar datos de un formulario con ctrl y enter">Enviar datos de un formulario con ctrl y enter</h1>
<p id="resumen" style="text-align: justify;">Resumen: En este artículo explicamos cómo enviar información de un formulario y desplegarla en una página mediante las teclas ctrl y enter, haciendo uso de jQuery para el manejo de eventos.</p>
<p style="text-align: justify;">Es muy probable que durante tu navegación por la red, hayas notado que sitios como Facebook, Twitter y Google+, ponen a disposición del usuario una funcionalidad especial para poder enviar y mostrar información en sus páginas.Generalmente, al momento de acceder al sitio, se nos presenta una caja de texto en la cual escribimos algún mensaje para después proceder a dar clic sobre el botón de envío. Esto se hace para que dicha información se muestre a nuestros contactos, pero en caso de querer agilizar este proceso, podemos hacer uso de un atajo alternativo, el cual consiste en aplastar las teclas ctrl y enter al mismo tiempo.</p>
<p style="text-align: justify;">La razón por la que no podemos enviar la información con un simple enter, es porque estamos sobre un elemento textarea, y este permite al usuario añadir saltos de línea. Normalmente, la <strong>combinación de la tecla ctrl y enter</strong>, no produce algún comportamiento distinto, simplemente se ignora el ctrl y se añade un salto de línea nuevo, pero es ahí donde entramos nosotros.</p>
<p style="text-align: justify;">En este artículo, explicaremos una manera muy sencilla de poder adaptar esta funcionalidad a nuestra página, utilizando HTML y un poco de jQuery para echar a andar todo.</p>
<h2>Estructura HTML</h2>
<p style="text-align: justify;">Primero que nada necesitamos una estructura con la cual trabajar, para ello utilizaremos varios elementos HTML los cuales nos permitan desplegar un pequeño formulario el cual será llenado por el usuario.</p>
<p style="text-align: justify;">Para no abrumarnos mucho hablando de CSS y HTML, simplemente pasaremos a mostrar el código final de la estructura:</p>
<div>
<div id="highlighter_259446">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>
<div>13</div>
<div>14</div>
<div>15</div>
<div>16</div>
<div>17</div>
<div>18</div>
<div>19</div>
<div>20</div>
<div>21</div>
<div>22</div>
<div>23</div>
<div>24</div>
</td>
<td>
<div>
<div><code>&lt;</code><code>style</code><code>&gt;  </code></div>
<div><code>  </code><code>body {  </code></div>
<div><code>    </code><code>font: 16px arial, san-serif;  </code></div>
<div><code>  </code><code>}  </code></div>
<div><code>  </code><code>#txtAreaMsj {  </code></div>
<div><code>    </code><code>border: 1px solid #ccc;  </code></div>
<div><code>    </code><code>display:block;  </code></div>
<div><code>    </code><code>width: 250px;  </code></div>
<div><code>    </code><code>height: 100px;  </code></div>
<div><code>  </code><code>}  </code></div>
<div><code>  </code><code>.parrafos {  </code></div>
<div><code>    </code><code>border: 1px solid #ccc;  </code></div>
<div><code>    </code><code>background: #ececec;  </code></div>
<div><code>    </code><code>padding: 10px;  </code></div>
<div><code>    </code><code>margin: 10px 0;  </code></div>
<div><code>    </code><code>width: 230px;  </code></div>
<div><code>  </code><code>}  </code></div>
<div><code>  </code><code>#botonEnviar {  </code></div>
<div><code>    </code><code>border: 1px solid #ccc;  </code></div>
<div><code>    </code><code>background: #ececec;   </code></div>
<div><code>    </code><code>padding: 5px 20px;  </code></div>
<div><code>    </code><code>margin-top:10px;  </code></div>
<div><code>  </code><code>}  </code></div>
<div><code>&lt;/</code><code>style</code><code>&gt;  </code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Por su parte, en el interior de nuestro elemento body añadiremos un textarea y un botón el cual nos permita enviar la información. En caso de hacer uso de la etiqueta form, la información puede ser enviada al lado servidor sin necesidad de utilizar JavaScript, pero como en este caso queremos hacer una vista dinámica, haremos uso de jQuery para el envío y manejo de la información. Por ello, también es necesario agregar la librería.</p>
<div>
<div id="highlighter_208521">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
</td>
<td>
<div>
<div><code>&lt;</code><code>textarea</code> <code>id</code> <code>= </code><code>"txtAreaMsj "</code><code>&gt;&lt;/</code><code>textarea</code><code>&gt;  </code></div>
<div><code>&lt;</code><code>button</code> <code>id</code> <code>= </code><code>"botonEnviar"</code> <code>type</code><code>=</code><code>"submit"</code><code>&gt;Enviar&lt;/</code><code>button</code><code>&gt;  </code></div>
<div><code>&lt;</code><code>script</code> <code>src</code><code>=</code><code>"<a target="_blank" href="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js</a>"</code><code>&gt;&lt;/</code><code>script</code><code>&gt; </code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h2>JavaScript</h2>
<p style="text-align: justify;">Para facilitar el reusabilidad de esta funcionalidad, la encapsularemos en forma de plugin de jQuery. Le daremos el nombre de ctrlEnter y en un inicio lucirá de la siguiente manera:</p>
<div>
<div id="highlighter_814445">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</td>
<td>
<div>
<div><code>jQuery.fn.ctrlEnter = </code><code>function</code> <code>(botones, funcion) {  </code></div>
<div><code>  </code><code>var</code> <code>texto   = jQuery(</code><code>this</code><code>);  </code></div>
<div><code>      </code><code>botones = jQuery(botones);  </code></div>
<div><code>}; </code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Como se puede apreciar, estamos haciendo uso de dos parámetros, el primero de ellos sirve para especificar un o una serie de selectores de jQuery, los cuales utilizaremos para definir que elementos deben llamar esta funcionalidad al dar clic sobre ellos. Por su parte, el segundo parámetro indica la función que se correrá cuando presionemos ambas teclas.</p>
<p style="text-align: justify;">Además de esto, dentro de la estructura tenemos la definición de dos variables una para guardar el elemento textarea y la otra para el elemento que recibió el evento.</p>
<p style="text-align: justify;">El siguiente paso es crear una función de ajuste, en la cual nos aseguraremos que la funcionalidad sea llama desde el elemento textarea.</p>
<div>
<div id="highlighter_614410">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
</td>
<td>
<div>
<div><code>function</code> <code>realizaAccion(e) {  </code></div>
<div><code>  </code><code>fn.call(texto, e);  </code></div>
<div><code>} </code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Lo que sigue, es manejar los controladores de eventos para mandar llamar la función cuando realmente se necesite. Los eventos de los que haremos uso, son <strong>keydown en el texto y click en el botón</strong>.</p>
<div>
<div id="highlighter_879177">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
</td>
<td>
<div>
<div><code>texto.bind(</code><code>"keydown"</code><code>, </code><code>function</code> <code>(e) {  </code></div>
<div><code>  </code><code>if</code> <code>(e.keyCode === 13 &amp;&amp; e.ctrlKey) {  </code></div>
<div><code>    </code><code>realizaAccion(e);  </code></div>
<div><code>    </code><code>e.preventDefault();  </code></div>
<div><code>  </code><code>}  </code></div>
<div><code>});  </code></div>
<div><code>botones.bind(</code><code>"click"</code><code>, realizaAccion);</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Con este código, al momento que el usuario presione las dos teclas al mismo tiempo o se de clic sobre el botón, se mandará llamar la función “realizaAccion”. El código de la tecla enter es 13 mientras que la variable <strong>ctrlKey nos devuelve un valor booleano que es verdadero cuando la tecla ctrl esta presionada</strong>, es por eso que combinamos ambas sentencias dentro de una condición, la cual nos indicará cuando ambas fueron presionadas. Por su parte la misma función es llamada desde el botón para asi asegurarnos de que se realizan las mismas acciones desde los dos medios.</p>
<p style="text-align: justify;">Dentro del código, también agregamos una llamada a <strong>“e.preventDefault”</strong>, este método permite omitir la funcionalidad por default de las teclas, por lo que la acción para agregar un salto de línea se omite.</p>
<p style="text-align: justify;">El paso final seria conectar el código del manejo de eventos con los botones que tenemos en la interfaz, podemos añadir una funcionalidad extra para quitar caracteres no deseados o sustituir los saltos de línea por etiquetas “br”, para así agregar el texto al div contenedor.</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</td>
<td>
<div>
<div><code>jQuery(</code><code>"#msg"</code><code>).ctrlEnter(</code><code>"#botonEnviar"</code><code>, </code><code>function</code> <code>() {  </code></div>
<div><code>  </code><code>jQuery(</code><code>"&lt;p class='parrafos'&gt;&lt;/p&gt;"</code><code>).append(</code><code>this</code><code>.val().replace(/\n/g, </code><code>"&lt;br /&gt;"</code><code>)).prependTo(document.body);  </code></div>
<div><code>  </code><code>this</code><code>.val(</code><code>""</code><code>);  </code></div>
<div><code>});  </code></div>
</div>
</td>
</tr>
</tbody>
</table>
<h1 id="inicio" title="Hacer un tooltip con jQuery y CSS3">Hacer un tooltip con jQuery y CSS3</h1>
<p id="resumen" style="text-align: justify;">Resumen: Explicamos como utilizar jQuery en combinación con CSS3 para crear un pequeño tooltip que despliegue mensajes al colocar el mouse sobre un elemento.</p>
<p style="text-align: justify;"> En esta ocasión haremos uso de un recurso bastante sencillo y atractivo visualmente el cual nos ayudará a mejorar el SEO de nuestro sitio y la experiencia del usuario al navegar. Para aquellos que no estén muy familiarizados con el tema, <strong>un tooltip es una herramienta de ayuda visual muy utilizada en sitios con el fin de mostrar una descripción</strong> o información relevante de cierto elemento que se despliega sobre una página.</p>
<div id="text">
<p style="text-align: justify;">Esta funcionalidad te puede resultar familiar, puede que en más de una ocasión te hayas percatado que al colocar el mouse sobre un elemento, como una imagen, aparezca un mensaje dentro de una pequeña caja de color. <strong>Esta es la funcionalidad clásica de un tooltip por defecto, el cual es agregado por el navegador, gracias a que nosotros especificamos un atributo “alt” o “title” a nuestro elemento</strong>.</p>
<p style="text-align: justify;">En esta ocasión también haremos uso de dichos atributos, pero en lugar de utilizar el tooltip que nos ofrece el navegador haremos uno personalizado, que lucirá acorde al diseño del sitio y hará que luzca más profesional.</p>
<h2>Tooltip personalizado</h2>
<p style="text-align: justify;">El uso de tooltips personalizados no es nuevo, se ha venido aplicando desde hace tiempo en el diseño web y en el pasado se pudieron apreciar sobretodo en desarrollos que fueron elaborados con Flash. En la actualidad <strong>su elaboración ya no involucra el uso de Flash, puesto que resulta mucho más sencilla gracias al uso de jQuery para el manejo de animaciones y transiciones</strong>.</p>
<p style="text-align: justify;">Aunque jQuery simplifica la creación, aún necesitamos realizar una serie de tareas para poder personalizar nuestro tooltip. En esta ocasión nos apoyaremos con CSS3 para no utilizar imágenes al dar forma a nuestro tooltip, también haremos uso del atributo “title” en cada elemento donde queramos desplegarlo, agregando al mismo tiempo un alto valor de SEO a los elementos ya que indicaremos una descripción de lo que estamos desplegando.</p>
<p style="text-align: justify;">De esta manera nuestro tooltip personalizado tendrá una muy buena presentación, sin necesidad de cargar imágenes que demanden peticiones extra al servidor, mostrando información relevante e importante para el usuario, mejorando su experiencia de navegación, con un código limpio y de fácil SEO para los buscadores.</p>
<h2>Estructura HTML para el tooltip</h2>
<p style="text-align: justify;">La base del proyecto estará sustentada por una estructura de lenguaje HTML, empezaremos por definir los elementos que mostrarán un tooltip, en esta ocasión <strong>nos decidimos a utilizar elementos de enlace por lo que utilizaremos la etiqueta “a” para definirlos</strong>. Debemos aclarar que cualquier elemento que acepte el atributo title puede ser utilizado, pero en esta ocasión solo quisimos utilizar enlaces, más adelante declararemos los elementos pueden utilizar esta herramienta.</p>
<div>
<div id="highlighter_98919">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
</td>
<td>
<div>
<div><code>&lt;</code><code>a</code> <code>href</code><code>=</code><code>"#"</code> <code>title</code><code>=</code><code>"Este enlace actualmente no lleva a ningún lado pero sirve para mostrarte el uso del tooltip"</code> <code>class</code><code>=</code><code>"tooltip_elemento center"</code><code>&gt;Tooltip en un enlace&lt;/</code><code>a</code><code>&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div>
<div id="highlighter_71781">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
</td>
<td>
<div>
<div><code>&lt;</code><code>div</code> <code>class</code><code>=</code><code>"tooltip"</code><code>&gt;Texto del tooltip&lt;/</code><code>div</code><code>&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p><a href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/02/tooltipo_inicio.jpg"><img class="aligncenter size-full wp-image-11620" title="tooltipo_inicio" alt="" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/02/tooltipo_inicio.jpg" width="278" height="126" /></a></p>
<h2>Estilo del tooltip</h2>
<p style="text-align: justify;">Lo primero que debemos definir es la posición de los elementos que contendrán el tooltip, la cual debe ser relativa para que el tooltip pueda ser desplegando y para ello le daremos un valor de “relative” a la propiedad “position”:</p>
<div>
<div id="highlighter_987509">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
</td>
<td>
<div>
<div><code>.tooltip_elemento {</code></div>
<div><code>    </code><code>position</code><code>: </code><code>relative</code><code>;</code></div>
<div><code>}</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Después le daremos estilo a la caja que define nuestra descripción, es decir el div que lleva la clase “tooltip” en sus atributos. <strong>El tooltip debe permanecer oculto por defecto por lo que estableceremos un valor “none” a la propiedad “display”</strong>, le daremos una posición absoluta para que sea relativa al elemento que lo despliega, estableceremos las dimensiones de la caja dependiendo del tamaño que queramos y finalmente definimos el color de fondo y algunos aspectos de la fuente para estilizar el elemento.</p>
<div>
<div id="highlighter_247584">
<div><a target="_blank" href="http://www.lawebera.es/como-hacer/ejemplos-jquery/tooltip-jquery-css3.php#">?</a></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>
<div>13</div>
<div>14</div>
</td>
<td>
<div>
<div><code>.tooltip {</code></div>
<div><code>    </code><code>display</code><code>: </code><code>none</code><code>;</code></div>
<div><code>    </code><code>position</code><code>: </code><code>absolute</code><code>;</code></div>
<div><code>    </code><code>width</code><code>: </code><code>200px</code><code>;    </code></div>
<div><code>    </code><code>padding</code><code>: </code><code>10px</code><code>;</code></div>
<div><code>    </code><code>margin</code><code>: </code><code>0</code> <code>0</code> <code>12px</code> <code>0</code><code>;    </code></div>
<div><code>    </code><code>z-index</code><code>: </code><code>100</code><code>;</code></div>
<div><code>    </code><code>bottom</code><code>: </code><code>100%</code><code>;</code></div>
<div><code>    </code><code>background</code><code>: </code><code>#FDD017</code><code>;</code></div>
<div><code>    </code><code>color</code><code>: </code><code>#fff</code><code>;</code></div>
<div><code>    </code><code>text-align</code><code>: </code><code>center</code><code>;</code></div>
<div><code>    </code><code>font-weight</code><code>: </code><code>bold</code><code>;</code></div>
<div><code>    </code><code>font-size</code><code>: </code><code>11px</code><code>;</code></div>
<div><code>}</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Finalmente definimos el estilo de la flecha que lucirá en la parte inferior del tooltip, para ello haremos uso de los pseudo elementos “after” y “before”. El estilo que le demos a ambos definirá cada mitad de la forma de la flecha, por lo que al juntarlos tendremos la flecha completa</p>
<div>
<div id="highlighter_241076">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>
<div>13</div>
<div>14</div>
<div>15</div>
<div>16</div>
<div>17</div>
<div>18</div>
<div>19</div>
<div>20</div>
<div>21</div>
<div>22</div>
<div>23</div>
</td>
<td>
<div>
<div><code>.tooltip:after {</code></div>
<div><code>    </code><code>content</code><code>: </code><code>""</code><code>;</code></div>
<div><code>    </code><code>position</code><code>: </code><code>absolute</code><code>;</code></div>
<div><code>    </code><code>bottom</code><code>: </code><code>-14px</code><code>;</code></div>
<div><code>    </code><code>z-index</code><code>: </code><code>100</code><code>;</code></div>
<div><code>    </code><code>border</code><code>: </code><code>0</code> <code>solid</code> <code>#FDD017</code><code>;</code></div>
<div><code>    </code><code>border-bottom</code><code>: </code><code>14px</code> <code>solid</code> <code>transparent</code><code>;</code></div>
<div><code>    </code><code>border-left-width</code><code>: </code><code>10px</code><code>;</code></div>
<div><code>    </code><code>width</code><code>: </code><code>50%</code><code>;</code></div>
<div><code>    </code><code>left</code><code>: </code><code>50%</code><code>;</code></div>
<div><code>}</code></div>
<div><code> </code></div>
<div><code>.tooltip:before {</code></div>
<div><code>    </code><code>content</code><code>: </code><code>""</code><code>;</code></div>
<div><code>    </code><code>position</code><code>: </code><code>absolute</code><code>;</code></div>
<div><code>    </code><code>border</code><code>: </code><code>0</code> <code>solid</code> <code>#FDD017</code><code>;</code></div>
<div><code>    </code><code>bottom</code><code>: </code><code>-14px</code><code>;</code></div>
<div><code>    </code><code>z-index</code><code>: </code><code>100</code><code>;</code></div>
<div><code>    </code><code>border-right-width</code><code>: </code><code>10px</code><code>;</code></div>
<div><code>    </code><code>border-bottom</code><code>: </code><code>14px</code> <code>solid</code> <code>transparent</code><code>;</code></div>
<div><code>    </code><code>width</code><code>: </code><code>50%</code><code>;</code></div>
<div><code>    </code><code>right</code><code>: </code><code>50%</code><code>;</code></div>
<div><code>}</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h2>Uso de jQuery para desplegar el tooltip</h2>
<p style="text-align: justify;">El último paso a realizar es establecer la funcionalidad de despliegue de nuestro tooltip, para ello haremos uso de jQuery y definiremos un par de funciones. <strong>Utilizaremos los eventos “mouseenter” y “mouseleave” para disparar nuestras funciones</strong>, dichos eventos se producen cuando ponemos el mouse sobre un elemento y cuando lo retiramos.</p>
<p style="text-align: justify;">Al momento de poner el mouse sobre el elemento (mouseenter) debemos obtener la posición del mouse para calcular donde colocar el tooltip, después obtenemos el texto del atributo “title” para poder desplegarlo, lo añadimos al div que define nuestro tooltip y finalmente mediante la función “fadeIn” mostramos la descripción.</p>
<div>
<div id="highlighter_294630">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
</td>
<td>
<div>
<div><code>jQuery(</code><code>"a"</code><code>).mouseenter(</code><code>function</code> <code>(e) {             </code></div>
<div><code>    </code><code>var</code> <code>posMouse = e.pageX - </code><code>this</code><code>.offsetLeft; </code></div>
<div><code>    </code><code>var</code> <code>textoTooltip = jQuery(</code><code>this</code><code>).attr(</code><code>"title"</code><code>); </code></div>
<div><code>            </code></div>
<div><code>    </code><code>if</code> <code>(textoTooltip.length &gt; 0) {</code></div>
<div><code>        </code><code>jQuery(</code><code>this</code><code>).append(</code><code>'&lt;div&gt;'</code> <code>+ textoTooltip + </code><code>'&lt;/div&gt;'</code><code>);</code></div>
<div><code>        </code><code>jQuery(</code><code>"a &gt; div.tooltip"</code><code>).css(</code><code>"left"</code><code>, </code><code>""</code> <code>+ posMouse - 103 + </code><code>"px"</code><code>);</code></div>
<div><code>        </code><code>jQuery(</code><code>"a &gt; div.tooltip"</code><code>).fadeIn(300);</code></div>
<div><code>    </code><code>}</code></div>
<div><code>});</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Como se puede apreciar en nuestro selector de jQuery únicamente estamos especificando los elementos de tipo enlace “a”, si quisiéramos agregar más elementos o especificar ciertos tipos de enlaces, tendríamos que modificar ese selector.</p>
<p style="text-align: justify;">Al momento de retirar el mouse del elemento (mouseleave) llamaremos a la función “fadeOut” que agrega una transición para desaparecer nuestro tooltip, finalmente removemos el elemento del marcado con la función “remove” después de introducirlo en una cola mediante al función “queue” para que el remover se aplique hasta que el efecto haya terminado.</p>
<div>
<div id="highlighter_831742">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</td>
<td>
<div>
<div><code>jQuery(</code><code>"a"</code><code>).mouseleave(</code><code>function</code> <code>() {             </code></div>
<div><code>    </code><code>jQuery(</code><code>"a &gt; div.tooltip"</code><code>).fadeOut(300).delay(300).queue(</code><code>function</code> <code>() {</code></div>
<div><code>        </code><code>jQuery(</code><code>this</code><code>).remove();</code></div>
<div><code>        </code><code>jQuery(</code><code>this</code><code>).dequeue();</code></div>
<div><code>    </code><code>});</code></div>
<div><code>});</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p><a href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/02/tooltipo_final.jpg"><img class="aligncenter size-full wp-image-11621" title="tooltipo_final" alt="" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/02/tooltipo_final.jpg" width="278" height="126" /></a></p>
<h1 id="inicio" title="Trabajando con elementos en jQuery: Generar HTML">Trabajando con elementos en jQuery: Generar HTML</h1>
<p id="resumen" style="text-align: justify;">Resumen: Explicamos el método para generar elementos HTML y añadirlo a nuestro documento con jQuery</p>
<p style="text-align: justify;">En algunas ocasiones podemos encontrarnos con la necesidad de generar nuevos fragmentos de código HTML, los cuales queremos que sean insertados en nuestra página Web de manera dinámica. Ya sea que lo hagamos por cuestiones de estética o practicidad, esta función nos puede llevar varias líneas de código y tiempo invertido si no conocemos una manera adecuada de realizarlo.</p>
<div id="text">
<p style="text-align: justify;">Con jQuery, crear elementos HTML se convierte en algo fácil y sencillo de resolver, como pudimos aprender en la serie de “Fundamentos de jQuery”, esta librería cuenta con lo necesario para <strong>crear elementos HTML</strong> con el simple uso de la función jQuery() o su alias $(). Supongamos que tenemos la siguiente expresión:</p>
<div>
<div id="highlighter_602761">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
</td>
<td>
<div>
<div><code>jQuery(</code><code>"&lt;div&gt;Esto es un div&lt;/div&gt;"</code><code>)</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Con ella creamos un nuevo elemento “div” que estará listo para ser añadido a nuestro documento y conformar una nueva parte de la página Web, ahora podremos correr y aplicar sobre esta expresión cualquier comando de jQuery que funcione sobre un conjunto de elementos envueltos. Esto puede lucir como algo muy insignificante y no impresiona a nadie a simple vista, pero al momento de adentrarnos más en el funcionamiento, manejar eventos, Ajax y efectos, veremos que es de gran utilidad.</p>
<p style="text-align: justify;">También podemos considerar el uso de atajos en estas instancias. Supongamos que deseamos crear un elemento “div” vacío, inicialmente nuestra lógica nos dice que debemos definir algo como:</p>
<div>
<div id="highlighter_973182">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
</td>
<td>
<div>
<div><code>jQuery(</code><code>"&lt;div&gt;&lt;/div&gt;"</code><code>);</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Como podemos ver fue bastante sencillo y usamos la misma síntaxis que en el primer ejemplo, pero como el div que estamos creado en esta ocasión se encuentra vacío, basta con usar su versión más corta para definirlo:</p>
<div>
<div id="highlighter_846821">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
</td>
<td>
<div>
<div><code>jQuery(</code><code>"&lt;div&gt;"</code><code>);</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Con estas declaraciones ya tenemos nuestro “div” creado, pero para poder trabajar con él en jQuery esta creación debe ser añadida al DOM, igual que en Javascript. La sentencia <strong>jQuery(‘ </strong></p>
<div style="text-align: justify;"><strong>‘)</strong></div>
<p style="text-align: justify;"><strong> </strong><strong></strong> por sí mismo no está integrada al DOM de nuestro sitio, por lo que se tiene que adjuntar a algún otro elemento que ya se encuentre en el DOM, y esto lo lograremos usando algún método como <strong>“append”</strong> o <strong>“prepend”</strong>.</p>
<p style="text-align: justify;">En esta lista podemos observar las cuatro formas en las que podemos crear un “div” mediante jQuery:</p>
<div>
<div id="highlighter_425166">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</td>
<td>
<div>
<div><code>jQuery( document.createElement(</code><code>'div'</code><code>) );</code></div>
<div><code>jQuery(</code><code>'&lt;div&gt;'</code><code>);</code></div>
<div><code>jQuery(</code><code>'&lt;div&gt;&lt;/div&gt;'</code><code>);</code></div>
<div><code>jQuery(</code><code>'&lt;div/&gt;'</code><code>);</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Son relativamente parecidas, y la única variación que se puede encontrar es que algunas tardan menos en cargarse que otras, pero es cuestión de milesímas de segundo, la forma que tú decidas usar no afectará la aplicación o funcionamiento de la librería en tu código.</p>
<h2>Ejemplo de creación de elementos HTML con jQuery</h2>
<p style="text-align: justify;">La creación de elementos HTML es de verdad muy sencilla y de gran ayuda, pero como en todo, existen pequeños inconvenientes que debemos tener en cuenta.<br />
Hay que aclarar que no podemos utilizar esta técnica para crear elementos “script”, puesto que si lo hacemos su funcionamiento no sería totalmente fiable y aunque existen muchas otras técnicas para manejar esta clase de situaciones, debe ser recomendado definir los elementos script de manera independiente.</p>
<p style="text-align: justify;">Para darnos una idea lo que podremos hacer en un futuro, continuando este curso, veamos este ejemplo. No te preocupes si no entiendes alguna parte del código, recuerda que vamos paso a paso y esto es solo un ejemplo para ver el potencial de jQuery:</p>
<div>
<div id="highlighter_269890">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</td>
<td>
<div>
<div><code>jQuery(</code><code>"&lt;div class='seccion'&gt;Esto es un div de sección&lt;/div&gt;&lt;div&gt;Este no lo es&lt;/div&gt;"</code><code>)</code></div>
<div><code>  </code><code>.filter(</code><code>".seccion"</code><code>).click(</code><code>function</code><code>() {</code></div>
<div><code>    </code><code>alert(</code><code>"Soy una sección!"</code><code>);</code></div>
<div><code>  </code><code>}).end().appendTo(</code><code>"#divPadre"</code><code>);</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Lo primero que hacemos en este fragmento de código es crear dos elementos “div”, uno con una clase <strong>“seccion”</strong> y el otro sin ella, después enfocamos la selección unicamente al div que pertenece a la clase <strong>“seccion”</strong> y la enlazamos con un método de jQuery que se activará cuando el usuario haga clic sobre dicho “div”. Por último, se utiliza el método <strong>“end”</strong> para poner fin a la más reciente operación de filtrado y devolver el conjunto de los elementos coincidentes a su estado anterior, para finalmente adjuntarlos al elemento con el identificador <strong>“divPadre”</strong>.</p>
<h2>Conclusiones</h2>
<p style="text-align: justify;">Como podemos observar en unas cuantas líneas de código, en una sola instrucción, hicimos bastante. Esto nos demuestra que podemos obtener mucho a cambio sin necesidad de escribir un montón de secuencias de comandos. En los siguientes artículos empezaremos a estudiar el manejo de los elementos que han sido envueltos por la función jQuery.</p>
<h2 id="inicio" title="Fundamentos de jQuery: JavaScript No Obstructivo y rutina Document Ready">Fundamentos de jQuery: JavaScript No Obstructivo y rutina Document Ready</h2>
<p id="resumen" style="text-align: justify;">Resumen: En este artículo conoceremos lo que es el JavaScript No Obstructivo y su influencia en la correcta codificación, así como la inicialización de funciones al momento de generar el árbol DOM.</p>
<div id="text">
<p style="text-align: justify;">Como ya habíamos mencionado en artículos anteriores, JavaScript fue considerado por mucho tiempo un lenguaje de poca seriedad e inadecuado para llevar acabo un desarrollo complejo, el DOM e incompatibilidad con varios navegadores aunado a la mala codificación de sus usuarios llevaron a crear esta imagen que prevaleció durante gran parte de sus primeros años de existencia.</p>
<p style="text-align: justify;">Con el desarrollo y publicación de nuevos navegadores que ofrecieron un soporte correcto a los estándares Web establecidos por la W3C, librerías como <strong>jQuery</strong> pudieron surgir y facilitar la creación de un código mejor estructurado, con ello el lenguaje empezó a ser utilizado para escribir código de funcionalidad, complejo e incluso vital para el sitio en muchas ocasiones.</p>
<h2>JavaScript No Obstructivo</h2>
<p style="text-align: justify;">Como parte de este movimiento de estandarización surgió lo que hoy en día conocemos como <strong>JavaScript No Obstructivo</strong>, que nos inculca la buena práctica de separar el contenido (estructura) del comportamiento (funcionalidad) para poder obtener una mejor escalabilidad y evitar errores que se pueden presentar por manejo del sitio en distintos navegadores.</p>
<p style="text-align: justify;">Con la demanda de los navegadores por obtener un código estandarizado, se ha ido aumentado la necesidad de crear métodos más robustos y complejos que se adapten a la manera no obstructiva de JavaScript, por ello el <strong>DOM</strong> ha tomado un rol fundamental para llevar acabo de manera correcta la comunicación entre la creciente capa de comportamiento con la capa de contenido.</p>
<p style="text-align: justify;">Al adoptar el uso de JavaScript No Obstructivo en nuestro proyecto, el comportamiento deberá separarse de la estructura, por lo que a partir de ese momento la realización de operaciones sobre los elementos de la página se hará desde fuera del documento donde se crean. Para poder hacer funcionar esto, necesitamos adaptar o crear una manera de esperar a que los elementos DOM de la página sean totalmente cargados antes de proceder a ejecutar las operaciones.</p>
<h2>Función “onload” de jQuery</h2>
<p style="text-align: justify;">El uso de la rutina <strong>“onload”</strong>, sería la manera tradicional de conseguir este resultado, dicha rutina es utilizada con el fin de llevar acabo ciertas funciones una vez que se ejecuta toda la declaración inicial de la página y que esta se encuentre totalmente cargada, para ello se utiliza una sintaxis como la siguiente:</p>
<div>
<div id="highlighter_683139">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
</td>
<td>
<div>
<div><code>windows.onload = </code><code>function</code><code>(){</code></div>
<div><code>    </code><code>alert(</code><code>"El documento ha sido cargado"</code><code>);</code></div>
<div><code>}</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Con la cual obtendremos una ventana de alerta que desplegará el mensaje indicado una vez que el documento sea cargado en su totalidad. Por desgracia, el navegador no solamente esperará a que el árbol DOM se cree, sino que también esperará hasta que se carguen todas los recursos, incluyendo las imágenes, y que el sitio sea mostrado en su totalidad en la ventana del navegador.</p>
<p style="text-align: justify;">Esto puede causar que los visitantes experimenten un retraso de respuesta, que se verá reflejado por el tiempo en que tardará el script en ejecutar la sentencia “onload”, es decir, el usuario puede tener tiempo de observar e incluso interactuando con el sitio y el mensaje no aparecerá hasta que el sitio se encuentre totalmente cargado.</p>
<p style="text-align: justify;">En el peor de los casos, alguno de los recursos puede tomar bastante tiempo de carga y esto causaría que los visitantes tengan que esperar un tiempo significante antes de que las operaciones estén disponibles, esto se puede ver reflejado en muchas ocasiones por imágenes muy grandes u hojas de estilo no comprimidas.</p>
<h2>Función “ready” de jQuery</h2>
<p style="text-align: justify;">Una solución para esto, sería lograr un enfoque de espera que únicamente este a la expectativa de que la estructura del documento sea totalmente analizada y esperar a que el navegador <strong>convierta el código HTML en el árbol DOM</strong> necesario para poder utilizar la capa de comportamiento. El problema que se presenta es que para asegurar el buen funcionamiento de esta práctica debemos garantizar que se podrá aplicar para todos los navegadores, es ahí donde entra en acción jQuery para optimizar nuestro código.</p>
<p style="text-align: justify;">Lograr esta operación de manera multi-navegador puede ser algo complejo con JavaScript nativo, pero jQuery proporciona una medio simple para activar la ejecución del código una vez que se ha generado el árbol DOM, sin importar si recursos como las imágenes lo han hecho. La sintaxis formal para definir dicho código es la siguiente:</p>
<div>
<div id="highlighter_656749">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
</td>
<td>
<div>
<div><code>jQuery(document).ready(</code><code>function</code><code>() {</code></div>
<div><code>    </code><code>alert(</code><code>"El documento ha sido cargado"</code><code>);</code></div>
<div><code>});</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Lo primero que hacemos es envolver con la función jQuery() la instancia del documento para después invocar el método <strong>“ready()”</strong>, a dicho método le pasaremos la función que queremos ejecutar una vez que el documento este listo para ser manipulado, en este caso será la función que ejecutará el mensaje de “alerta”.</p>
<p style="text-align: justify;">Como dijimos a esta sintaxis se le da le nombre de “formal”, ya que existe otra forma de producir el mismo resultado, con la diferencia de que su sintaxis es una abreviación que consiste en utilizar únicamente la función <strong>“jQuery()” o “$()”</strong> y pasar como parámetro la función que se desea ejecutar una vez cargado el documento.</p>
<div>
<div id="highlighter_205186">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
</td>
<td>
<div>
<div><code>$(</code><code>function</code><code>() {</code></div>
<div><code>    </code><code>alert(</code><code>"El documento ha sido cargado"</code><code>);</code></div>
<div><code>});</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Al mandar la función como parámetro de la función “$()” indicamos al navegador que debe esperar hasta que el árbol DOM sea generado antes de ejecutar la operación indicada. Dicha técnica puede ser utilizada varias veces en un mismo código y el navegador se encargará de ejecutar cada una en el orden en que fueron especificadas, cosa contraria a la función “onload” que sólo puede ser ejecutada una vez.</p>
<h2>Conclusión</h2>
<p style="text-align: justify;">En este artículo hemos visto una nuevo uso para la función “jQuery()” o “$()”, logramos analizar una de las tantas optimizaciones que se han alcanzado gracias al uso de jQuery y aprendimos que debemos mantener separados el contenido del comportamiento para lograr la optimización y estandarización de nuestro código, aprende bien estas reglas y respétalas lo más posible pues a lo largo de este curso las continuaremos utilizando.</p>
<h2 id="inicio" title="Fundamentos de jQuery: Extendiendo la librería">Fundamentos de jQuery: Extendiendo la librería</h2>
<p id="resumen" style="text-align: justify;">Resumen: En este artículo explicaremos cómo poder extender nuestro código de jQuery agregando funciones adicionales a la librería base.</p>
<div style="text-align: justify;">
<div data-send="true" data-width="485" data-show-faces="false" data-font="arial"> Como hemos visto hasta ahora, la función contenedora jQuery() nos ofrece una gran cantidad de funciones que vamos a poder utilizar y reutilizar una y otra vez a lo largo de todo nuestro código para obtener distintas clases de resultados, muchas de estas funciones parecen ser la respuesta a todos nuestros cuestionamientos y abarcan gran parte de las soluciones a los problemas más comunes, sin embargo ninguna librería puede abarcar por completo las necesidades de todos los desarrolladores Web.</div>
</div>
<div id="text">
<p style="text-align: justify;">De hecho, esta característica no puede considerarse algo totalmente malo, puesto que si una librería busca anticiparse ante todas las necesidades de un amplio grupo de desarrolladores, puede dar lugar a la creación de un código grande, torpe, lleno de propiedades y características de poco uso, lo que al final solo lograría estropear el trabajo de desarrollo, llevando al desuso y desecho de la librería.</p>
<p style="text-align: justify;">Los creadores de jQuery reconocieron este concepto, por lo tanto desde la primera elaboración de la librería han venido trabajando duro para identificar cuales son las características de mayor uso por parte de los desarrolladores, evaluando su necesidad decidieron incluir únicamente las principales en su <strong>librería base</strong>, pero reconociendo a la vez que existen necesidades particulares por lo que jQuery fue diseñado para ser fácilmente extendido con <strong>funciones adicionales</strong>.</p>
<h2>Ventajas de extender jQuery</h2>
<p style="text-align: justify;"><strong>Extender jQuery</strong> representa la adición de funciones específicas para resolver problemas especiales de cada desarrollador, por ello muchos pueden predicar que no tiene sentido llevar acabo esta acción y mejor continuán utilizando funciones independientes con JavaScript nativo. Esto se puede presentar debido a que no reconocen las ventajas que conlleva este proceso, cuando extendemos podemos utilizar las características que jQuery ya ofrece, eso simplifica el código y agiliza el desarrollo, es más sencillo seleccionar elementos y manipularlos, y sobre todo contribuimos con la librería devolviendo un poco a cambio de lo mucho que nos ofrece.</p>
<h2>Creando una función</h2>
<p style="text-align: justify;">Veamos un ejemplo concreto de como extender la librería, jQuery no viene con una función predefinida para deshabilitar un grupo de elementos de un formulario y muchas veces el tener una función así puede resultar bastante conveniente al utilizar dichos “forms” en nuestro código, por lo que desarrollarla nos ahorrará tiempo en el futuro y unos cuantos dolores de cabeza si nos somos aficionados a la validación de formularios.</p>
<p>Para empezar a desarrollarla debemos encontrar una sintaxis conveniente y sencilla como la siguiente:</p>
<div>
<div id="highlighter_746285">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
</td>
<td>
<div>
<div><code>jQuery(</code><code>"form#formulario input.campo"</code><code>).disable();</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Con esto indicamos que los inputs de clase “campo” contenidos en el form cuyo id es “formulario” deben ser desactivado mediante la función “disable”, la cual aún no se encuentra definida en el core de nuestra librería, por lo que proseguimos con su creación.</p>
<p style="text-align: justify;">Afortunadamente, por su diseño, jQuery hace que sea fácil extender su conjunto de funciones mediante la ampliación del contenedor que se regresa al momento de llamar la función <strong>jQuery() o $()</strong>. La expresión básica de nuestra función “disable” quedaría de la siguiente manera:</p>
<div>
<div id="highlighter_306209">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</td>
<td>
<div>
<div><code>jQuery.fn.disable = </code><code>function</code><code>() {</code></div>
<div><code>return</code> <code>this</code><code>.each(</code><code>function</code><code>() {</code></div>
<div><code>if</code> <code>(</code><code>typeof</code> <code>this</code><code>.disabled != </code><code>"undefined"</code><code>) </code><code>this</code><code>.disabled = </code><code>true</code><code>;</code></div>
<div><code>});</code></div>
<div><code>}</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Es una gran cantidad de código nuevo para nosotros que vamos empezando a entender lo que es jQuery, por lo que trataré de ir desglosando parte a parte que fue lo que hicimos con esta sentencia que nos ayudo a extender la funcionalidad de la librería.</p>
<p style="text-align: justify;">En primer lugar, <strong>“jQuery.fn.disable”</strong> significa que estamos ampliando el contenedor jQuery con una función llamada “disable”. Dentro de esa función, se encuentra la colección de elementos DOM envueltos que van a ser operados.</p>
<p style="text-align: justify;">Después, el método <strong>“each()”</strong> de este contenedor es llamado para recorrer cada elemento de dicha colección envuelta, aclaro que vamos a explorar este y otros métodos similares con mayor detalle en artículos posteriores para conocer con más precisión su funcionamiento. Dentro de la función de iteración each() existe un puntero, que indica el elemento DOM actual.</p>
<p style="text-align: justify;">Para cada elemento, realizamos la comprobación de que posea el atributo “disabled”, y si lo posee, se establece con el valor “true”. Finalmente regresamos los valores obtenidos con el método “each()” para que nuestro nueva función creada con el nombre de <strong>“disabled()”</strong> pueda ser concatenada con otros métodos, y de esta manera imitar la funcionalidad de muchos de los métodos nativos de jQuery.</p>
<p style="text-align: justify;">Con esta sentencia, desde el punto de vista del código de la página, se ha creado una nueva función en la librería la cual puede ser utilizada las veces que deseemos dentro de nuestro propio desarrollo. Con esta técnica podemos ir creando pequeñas funcionalidades extras que nos permitirán agregar propiedades y experimentar con la flexibilidad de la librería.</p>
<h2>Conclusión</h2>
<p style="text-align: justify;">Antes de empezar a profundizar en el desarrollo con jQuery, debemos comprender aspectos fundamentales del “core”, la base de nuestra librería, esto nos permitirá entender con muchísima más facilidad lo que se viene y la manera en que jQuery nos facilita las cosas.</p>
<p style="text-align: justify;">En nuestro siguiente artículo hablaremos de como interactuar con otras librerías para obtener resultados más elaborados, una utilidad más para la casi milagrosa función “jQuery()”.</p>
<h2 id="inicio" title="Fundamentos de jQuery: Creación de elementos DOM">Fundamentos de jQuery: Creación de elementos DOM</h2>
<p id="resumen" style="text-align: justify;">Resumen: En este artículo se enseñará a crear y manipular a nivel básico elementos en el DOM de nuestro sitio, todo mediante jQuery</p>
<p style="text-align: justify;">Hasta este punto el curso hemos aprendido lo suficiente como para entender hasta donde puede llegar la magnitud de la función jQuery() y su alias $(), los creadores de jQuery se encargaron de crear con ella una función lo bastantemente versátil como para poder evitar la introducción de una gran serie de variables globales y demás nombres específicos en el entorno de JavaScript.</p>
<div id="text">
<p style="text-align: justify;">Gracias a esta función hemos podido llevar a cabo muchas de las operaciones y deberes que hasta hoy son la base de toda la librería, hemos visto como utilizar métodos mediante su llamada, la hemos utilizado como prefijo y como método de ejecución al cargarse nuestro documento, esta vez analizaremos una tarea más, la de <strong>crear elementos DOM</strong>.</p>
<p style="text-align: justify;">La función jQuery acepta varios tipos datos como parámetros, no siempre se debe emplear un selector CSS como arma para afrontar el problema, muchas veces podemos recurrir a los propios elementos DOM e incluso a un arreglo de dichos elementos para manejar eventos, según lo que deseemos realizar será lo que enviaremos. En el caso de esta tarea en específico, debemos pasar como parámetro una cadena que contenga el código HTML relacionado al elemento que queremos crear.</p>
<p style="text-align: justify;">Si suponemos que se desea crear una capa “div” que contenga un nuevo párrafo en nuestro documento, el código de creación deberá lucir de la siguiente manera:</p>
<pre>jQuery(&quot;&lt;div id=&#039;nuevoDiv&#039;&gt;&lt;p id=&#039;nuevoParr&#039;&gt;Este es mi nuevo párrafo&lt;/p&gt;&lt;/div&gt;&quot;);</pre>
<p style="text-align: justify;">Como se puede observar únicamente escribimos un par de etiquetas con sus “Id” relacionados dentro de la ya mencionada función <strong>jQuery()</strong>. Aunque para efectos prácticos este código no tendría ninguna utilidad, ya que no esta incorporado al conjunto que se muestra en nuestro sitio, el elemento esta creado y este es el primer paso para integrarlo con el resto de la vista del sitio.</p>
<p style="text-align: justify;">Para darle la utilidad mencionada a nuestro código y poder integrarlo de manera completa a la interfaz del sitio Web, debemos hacer uso de alguna de las funciones que jQuery nos proporciona para manipulación del DOM. Existen varias funciones relacionadas a esta actividad, entre las más importantes encontramos <strong>“append”, “prepend”, “insertAfter” e “insertBefore”</strong>, que nos permiten agregar elementos en diferentes partes del documento.</p>
<p style="text-align: justify;">Vale aclarar que en este artículo aún no analizaremos a fondo ninguna de estas funciones, pero basta con mencionar su uso para empezar a comprenderlas. Vamos a examinar el siguiente código:</p>
<pre>&lt;html&gt;
  &lt;head&gt;
    &lt;title&gt;Elementos DOM&lt;/title&gt;
    &lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot;&gt;&lt;/script&gt;
    &lt;script type=&quot;text/javascript&quot;&gt;
       jQuery(function(){
         jQuery(&quot;&lt;div id=&#039;nuevoDiv&#039;&gt;&lt;p id=&#039;nuevoParr&#039;&gt;Este es mi nuevo párrafo&lt;/p&gt;&lt;/div&gt;&quot;).insertBefore(&quot;#viejoDiv&quot;);
       });
    &lt;/script&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;div id=&#039;viejoDiv&#039;&gt;
	&lt;p id=&#039;viejoParr&#039;&gt;Este es mi párrafo viejo&lt;/p&gt;
    &lt;/div&gt;
  &lt;/body&gt;
&lt;/html&gt;</pre>
<p style="text-align: justify;">En el ejemplo establecemos una estructura HTML, en cuyo cuerpo encontramos un div identificado como “viejoDiv” el cual a su vez contiene al párrafo “viejoParr”, dentro de la sección “head” llamamos a la rutina ready y una vez cargado el documento mandamos crear el elemento DOM anteriormente visto, con la diferencia que en esta ocasión utilizamos una llamada al método “insertBefore” el cual se encargará de insertar dicho elemento antes del “viejoDiv”.</p>
<p style="text-align: justify;">Con el resto de las funciones de manipulación obtendríamos un resultado similar, aunque en distintas partes del documento, si hubiéramos utilizado la función “insertAfter” el elemento hubiera sido integrado después de la capa “viejoDiv”, en artículos posteriores estudiaremos el resto de los métodos de manipulación que nos permitirán modificar el DOM y agregar elementos en una estructura.</p>
<h2>Conclusión</h2>
<p style="text-align: justify;">Ahora que hemos visto la sintaxis básica para manejar jQuery, estamos listos para comenzar a utilizar herramientas más poderosas, en los siguientes artículos echaremos un vistazo a algunas de las características de la librería.</p>
<h1 id="inicio" title="Manejo de imágenes con jQuery: Despliegue secuencial">Manejo de imágenes con jQuery: Despliegue secuencial</h1>
<p id="resumen" style="text-align: justify;">Resumen: Método sencillo y estético para desplegar nuestras imágenes de manera secuencial con efectos de jQuery</p>
<p style="text-align: justify;">Es común querer darle una <strong>buena presentación</strong> a nuestro sitio utilizando y manejando imágenes de manera original, por ello muchas veces recurrimos a métodos que nos permiten crear efectos de alta calidad pero con el defecto que estropean la <strong>funcionalidad y el tiempo de respuesta</strong>de nuestro sitio.</p>
<div id="text">
<p style="text-align: justify;">En muchas ocasiones para lograr esto recurrimos al uso de imágenes grandes, pesadas o dentro de una presentación Flash, lo que arruina en gran medida tanto la estética como el flujo del sitio.</p>
<p style="text-align: justify;">El sitio continuará funcionando pero con respuestas largas y esto solo decrementará en gran medida la demanda de uso de nuestros servicios; ya que la experiencia del usuario al navegar por nuestra página Web será bastante frustrante.</p>
<p style="text-align: justify;">Es por ello que debemos buscar las mejores técnicas para lograr el efecto que deseamos sin necesidad de recurrir a tales usos. Aunque es prácticamente imposible crear un sitio totalmente eficiente para las necesidades de todos los usuarios, debemos lograr reducir cualquier aspecto que pueda estropear su experiencia en el sitio y así este pueda tener éxito.</p>
<h2>El uso de jQuery</h2>
<p style="text-align: justify;">Los frameworks de JavaScript son una alternativa a todos estos métodos tradicionales y jQuery es uno de los principales. Caracterizado por su <strong>sencillo uso y codificación</strong> hemos decidido utilizarlo para presentar esta serie de artículos donde explicaremos métodos sencillos, eficientes y estéticos para desplegar en nuestras imágenes de manera original.</p>
<p style="text-align: justify;">En esta ocasión crearemos un efecto para que una serie de imágenes se muestre de manera secuencial, es decir que cada elemento vaya apareciendo en nuestra página de manera progresiva y siguiendo un orden lineal horizontal.</p>
<p style="text-align: justify;">Si bien hay muchas maneras de realizar esta tarea, hoy, en esta ocasión vamos a utilizar una técnica que utiliza funciones recursivas para agregar los efectos.</p>
<h2>La estructura HTML</h2>
<p style="text-align: justify;">Lo primero que debemos hacer es crear nuestra <strong>estructura del documento HTML</strong>, donde agregaremos 8 imágenes dentro de una lista desordenada y dos links que llevaran por id “mostrar” y “ocultar”, conteniendo el mismo texto.</p>
<div>
<div id="highlighter_208200">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>
<div>13</div>
<div>14</div>
<div>15</div>
<div>16</div>
<div>17</div>
<div>18</div>
<div>19</div>
</td>
<td>
<div>
<div><code>&lt;!DOCTYPE html&gt;</code></div>
<div><code>&lt;</code><code>html</code> <code>lang</code><code>=</code><code>"es"</code><code>&gt;</code></div>
<div><code>&lt;</code><code>head</code><code>&gt;</code></div>
<div><code>&lt;</code><code>title</code><code>&gt;Manejo Secuencial de Imagenes&lt;/</code><code>title</code><code>&gt;</code></div>
<div><code>&lt;/</code><code>head</code><code>&gt;</code></div>
<div><code>&lt;</code><code>body</code><code>&gt;</code></div>
<div><code>&lt;</code><code>a</code> <code>href</code><code>=</code><code>"#"</code> <code>id</code><code>=</code><code>"mostrar"</code><code>&gt;Mostrar&lt;/</code><code>a</code><code>&gt;  /  &lt;</code><code>a</code> <code>href</code><code>=</code><code>"#"</code> <code>id</code><code>=</code><code>"ocultar"</code><code>&gt;Ocultar&lt;/</code><code>a</code><code>&gt;</code></div>
<div><code>    </code><code>&lt;</code><code>ul</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>    </code><code>&lt;/</code><code>ul</code><code>&gt;</code></div>
<div><code>&lt;/</code><code>body</code><code>&gt;</code></div>
<div><code>&lt;/</code><code>html</code><code>&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h2>CSS de la lista</h2>
<p style="text-align: justify;">El siguiente paso es agregarle un estilo a los elementos que componen la lista, para que por defecto no sean mostrados, que no tengan viñetas y se encuentren colocados a la izquierda de la pantalla. Para esto basta con colocar el siguiente bloque de texto dentro de las etiquetas “head”.</p>
<div>
<div id="highlighter_888771">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
</td>
<td>
<div>
<div><code>&lt;style&gt;</code></div>
<div><code>li {</code></div>
<div><code>    </code><code>float</code><code>:  </code><code>left</code><code>;</code></div>
<div><code>    </code><code>list-style</code><code>: </code><code>none</code><code>;</code></div>
<div><code>    </code><code>margin</code><code>: </code><code>0</code> <code>25px</code> <code>25px</code> <code>0</code><code>;</code></div>
<div><code>display</code><code>: </code><code>none</code><code>;</code></div>
<div><code>}</code></div>
<div><code>&lt;/style&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h2 style="text-align: justify;">Desarrollo del Script</h2>
<p style="text-align: justify;">Al concluir con el estilo, iniciamos con el desarrollo del <strong>script</strong> que se encargará de realizar el efecto sobre las imágenes. Como usaremos jQuery debemos agregar la librería, se recomienda hacer esto mandando llamar el alojamiento que tiene Google.</p>
<div>
<div id="highlighter_824645">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
</td>
<td>
<div>
<div><code>&lt;script src=</code><code>"<a target="_blank" href="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js</a>"</code><code>&gt;&lt;/script&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Una vez hecho esto, lo primero que se toma en cuenta para el desarrollo del script es que al momento de cargar la página se debe mandar llamar una función que determine el número de elementos a mostrar y contenga los dos métodos a llamar mediante los links mostrar y ocultar.</p>
<p style="text-align: justify;">Para esto utilizaremos la sentencia document.ready y dentro de ella cargaremos la función madre que contendrá las dos funciones dependientes que serán activadas mediante el evento “click” que se efectúa sobre los links.</p>
<div>
<div id="highlighter_145810">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
</td>
<td>
<div>
<div><code>&lt;script&gt;</code></div>
<div><code>$(document).ready(</code><code>function</code><code>() {</code></div>
<div><code>    </code><code>var</code> <code>lista = $(</code><code>'li'</code><code>).hide();</code></div>
<div><code>    </code><code>$(</code><code>'#mostrar'</code><code>).click(</code><code>function</code><code>() {</code></div>
<div><code>    </code><code>});</code></div>
<div><code>    </code><code>$(</code><code>'#ocultar'</code><code>).click(</code><code>function</code><code>() {</code></div>
<div><code>    </code><code>});</code></div>
<div><code>});</code></div>
<div><code>&lt;/script&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Finalmente pasamos a definir el contenido de cada una de las funciones internas, que serán las encargadas de llevar acabo el efecto de mostrar y desplegar de manera secuencial nuestras imágenes.</p>
<p style="text-align: justify;">Para darle un estilo elegante a nuestra transición, usaremos la librería <strong>FadeIn y FadeOut de jQuery</strong>, las cuales nos permiten agregar efectos de desvanecimiento a cualquier elemento que este contenido en nuestra página, ya sean capas, imágenes o texto.</p>
<p style="text-align: justify;">La función “mostrar” utilizará el efecto <strong>FadeIn</strong> para que cada imagen se muestre cada 400 ms, y de manera recursiva mande llamar a la función “mostrarimg”.</p>
<p style="text-align: justify;">Para uso de la recursividad crearemos una varible con el nombre de “i” la cual tendrá el valor de 0 como default. Una vez iniciado el ciclo esta variable ira aumentando de valor cada vez que se llame a “mostrarimg”.</p>
<p style="text-align: justify;">Esto dejará de funcionar una vez que la varible i alcance un valor inexistente en la lista. Cuando la función devuelva un elemento que no existe, jQuery devolverá un objeto vacío, y deja de llamar al efecto fadeIn.</p>
<div>
<div id="highlighter_873261">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</td>
<td>
<div>
<div><code>$(</code><code>'#mostrar'</code><code>).click(</code><code>function</code><code>() {</code></div>
<div><code>            </code><code>var</code> <code>i = 0;</code></div>
<div><code>            </code><code>(</code><code>function</code> <code>mostrarimg() {</code></div>
<div><code>                </code><code>lista.eq(i++).fadeIn(400, mostrarimg);</code></div>
<div><code>            </code><code>})();</code></div>
<div><code>    </code><code>});</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="text-align: justify;">Lo mismo haremos del lado de la función “ocultar” pero con las siguientes variantes, en vez de utilizar FadeIn utilizaremos <strong>FadeOut</strong> para ocultar, le daremos un tiempo de 200 ms, esto porque queremos dar la sensación de que el borrado de imágenes es más rápido.</p>
<p style="text-align: justify;">En vez de tomar a “0” como el valor default de la variable “i”, tomaremos el tamaño de nuestra lista como el valor, de esta manera “i” será igual a 8 ya que son 8 los elementos que componen nuestra lista.</p>
<p style="text-align: justify;">Finalmente en vez de incrementar el valor dentro de nuestro ciclo, lo iremos disminuyendo, de esta manera primero desaparecerá la última imagen y el ciclo concluirá con la primera.</p>
<div>
<div id="highlighter_187704">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</td>
<td>
<div>
<div><code>$(</code><code>'#ocultar'</code><code>).click(</code><code>function</code><code>() {</code></div>
<div><code>            </code><code>var</code> <code>i = $(</code><code>'li'</code><code>).size();</code></div>
<div><code>            </code><code>(</code><code>function</code> <code>ocultarimg() {</code></div>
<div><code>                </code><code>lista.eq(--i).fadeOut(200, ocultarimg);</code></div>
<div><code>            </code><code>})();</code></div>
<div><code>    </code><code>});</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h2>Código final</h2>
<p>El código final de nuestra aplicación queda de la siguiente manera:</p>
<div>
<div id="highlighter_780458">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>
<div>13</div>
<div>14</div>
<div>15</div>
<div>16</div>
<div>17</div>
<div>18</div>
<div>19</div>
<div>20</div>
<div>21</div>
<div>22</div>
<div>23</div>
<div>24</div>
<div>25</div>
<div>26</div>
<div>27</div>
<div>28</div>
<div>29</div>
<div>30</div>
<div>31</div>
<div>32</div>
<div>33</div>
<div>34</div>
<div>35</div>
<div>36</div>
<div>37</div>
<div>38</div>
<div>39</div>
<div>40</div>
<div>41</div>
<div>42</div>
<div>43</div>
<div>44</div>
<div>45</div>
</td>
<td>
<div>
<div><code>&lt;!DOCTYPE html&gt;</code></div>
<div><code>&lt;</code><code>html</code> <code>lang</code><code>=</code><code>"es"</code><code>&gt;</code></div>
<div><code>&lt;</code><code>head</code><code>&gt;</code></div>
<div><code>&lt;</code><code>title</code><code>&gt;Manejo Secuencial de Imagenes&lt;/</code><code>title</code><code>&gt;</code></div>
<div><code>&lt;</code><code>style</code><code>&gt;</code></div>
<div><code>li {</code></div>
<div><code>    </code><code>float:  left;</code></div>
<div><code>    </code><code>list-style: none;</code></div>
<div><code>    </code><code>margin: 0 25px 25px 0;</code></div>
<div><code>display: none;</code></div>
<div><code>}</code></div>
<div><code>&lt;/</code><code>style</code><code>&gt;</code></div>
<div><code>&lt;/</code><code>head</code><code>&gt;</code></div>
<div><code>&lt;</code><code>body</code><code>&gt;</code></div>
<div><code>&lt;</code><code>a</code> <code>href</code><code>=</code><code>"#"</code> <code>id</code><code>=</code><code>"mostrar"</code><code>&gt;Mostrar&lt;/</code><code>a</code><code>&gt;  /  &lt;</code><code>a</code> <code>href</code><code>=</code><code>"#"</code> <code>id</code><code>=</code><code>"ocultar"</code><code>&gt;Ocultar&lt;/</code><code>a</code><code>&gt;</code></div>
<div><code>    </code><code>&lt;</code><code>ul</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>        </code><code>&lt;</code><code>li</code><code>&gt;&lt;</code><code>img</code> <code>src</code><code>=</code><code>"<a target="_blank" href="http://www.lawebera.es/images/servicios-webera-boton.png">http://www.lawebera.es/images/servicios-webera-boton.png</a>"</code><code>&gt;&lt;/</code><code>li</code><code>&gt;</code></div>
<div><code>    </code><code>&lt;/</code><code>ul</code><code>&gt;</code></div>
<div><code>&lt;</code><code>script</code> <code>src</code><code>=</code><code>"<a target="_blank" href="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js</a>"</code><code>&gt;&lt;/</code><code>script</code><code>&gt;</code></div>
<div><code>&lt;</code><code>script</code><code>&gt;</code></div>
<div><code>$(document).ready(function() {</code></div>
<div><code>    </code><code>var lista = $('li').hide();</code></div>
<div><code>    </code><code>$('#mostrar').click(function() {</code></div>
<div><code>            </code><code>var i = 0;</code></div>
<div><code>            </code><code>(function mostrarimg() {</code></div>
<div><code>                </code><code>lista.eq(i++).fadeIn(400, mostrarimg);</code></div>
<div><code>            </code><code>})();</code></div>
<div><code>    </code><code>});</code></div>
<div><code>    </code><code>$('#ocultar').click(function() {</code></div>
<div><code>            </code><code>var i = $('li').size();</code></div>
<div><code>            </code><code>(function ocultarimg() {</code></div>
<div><code>                </code><code>lista.eq(--i).fadeOut(200, ocultarimg);</code></div>
<div><code>            </code><code>})();</code></div>
<div><code>    </code><code>});</code></div>
<div><code>});</code></div>
<div><code>&lt;/</code><code>script</code><code>&gt;</code></div>
<div><code>&lt;/</code><code>body</code><code>&gt;</code></div>
<div><code>&lt;/</code><code>html</code><code>&gt;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h2>Conclusión</h2>
<p style="text-align: justify;">Esta es una de las opciones más sencillas para poder realizar este tipo de efecto, es fácil tanto en su aplicación como en su desarrollo y una vez dominado esta clase de técnicas no nos llevará más de cinco minutos codificarlas.</p>
<p style="text-align: justify;">Con esto no queremos demeritar lo que se hace y sigue haciendo con Flash, queda claro que no todos pensamos igual, y quizás para muchos siga siendo de su preferencia el ver y utilizar codificaciones de sitios completos en Flash, lo que tratamos de expresar aquí son alternativas que nos ofrecen un <strong>mejor rendimiento</strong> e incluso una <strong>mejor presentación estética</strong>, cada quien decidirá la manera de utilizarlas y escogerá las herramientas de su predilección para realizar esta clase de efectos.</p>
<p style="text-align: justify;">Tomado de: <a target="_blank" href="http://www.lawebera.es/como-hacer/ejemplos-jquery" target="_blank">LaWebera.es</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/pequena-recopilacion-de-manuales-y-ejemplos-del-uso-de-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Usabilidad en el contenido de tu Web</title>
		<link>http://www.haciendoweb.cult.cu/usabilidad-en-el-contenido-de-tu-web/</link>
		<comments>http://www.haciendoweb.cult.cu/usabilidad-en-el-contenido-de-tu-web/#comments</comments>
		<pubDate>Wed, 11 Dec 2013 12:25:03 +0000</pubDate>
		<dc:creator>Odecte Rodríguez Madruga</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Consejos]]></category>
		<category><![CDATA[Usabilidad]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=11562</guid>
		<description><![CDATA[Hace unos días estaba leyendo sobre usabilidad en el contenido. Es decir, cómo hacer para que nuestro contenido sea fácil de leer y que su estructura permita una mejor comprensión del texto. Recordemos que si un sitio web es difícil de usar, la gente lo abandona y si la información del sitio es difícil de [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/01/usabilidad-web.jpg"><img class="alignleft size-full wp-image-11563" title="usabilidad-web" alt="Usabilidad web" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/01/usabilidad-web.jpg" width="204" height="135" /></a>Hace unos días estaba leyendo sobre <strong>usabilidad en el contenido</strong>. Es decir, cómo hacer para que nuestro contenido sea fácil de leer y que su estructura permita una mejor comprensión del texto. Recordemos que si un sitio web es difícil de usar, la gente lo abandona y si la información del sitio es difícil de leer o no responde las preguntas de los usuarios, estos abandonan el sitio.<span id="more-11562"></span></p>
<p style="text-align: justify;">En este artículo te presento algunos puntos a considerar para <strong>la optimización de tu contenido</strong> y también factores a evaluar en cada post que desarrolles. Recuerda que tienes 2 tipos de usuarios que llegarán a tu Web el primero y más común es el que llega a través de buscadores y el segundo es asiduo lector de tu Web por afinidad con la temática y calidad del contenido.</p>
<h2 style="text-align: justify;">Optimiza tu contenido:</h2>
<p style="text-align: justify;">Me refiero a la forma en la que presentas el contenido en tu Web, revisa que a parte de calidad de contenido la estructura y opciones en que lo presentas sean las adecuadas.</p>
<ul style="text-align: justify;">
<li><strong>Tamaño de la letra:</strong> asegura que tu contenido tenga un tamaño fácil de leer, un buen tamaño sería entre 9 y 16 píxeles.</li>
<li><strong>Tipografía:</strong> recuerda que los tipos de letras deben ser compatibles con los diferentes sistemas operativos o navegadores. Las más utilizadas son Verdana, Helvetica y Arial. Las fuentes “sans-serif” son las más utilizadas para la web.</li>
<li><strong>Ancho del texto:</strong> procura que el ancho del texto se encuentre entre los 500 a 700 pixeles y procura que sea fijo. Por ejemplo en este artículo estás leyendo en un ancho de 575 pixeles.</li>
<li><strong>Interlineado: </strong>ese permite que exista un espacio adecuado entre una línea de contenido y otra. Por ejemplo en este post se utiliza un interlineado<em> line-height:1.6em</em> (el valor que se use en line-height depende de la tipografía). Un interlineado incómodo por ejemplo sería el que utilizan en <a target="_blank" href="http://blogs.msdn.com/">blogs.msdn</a>.</li>
<li><strong>Formatos de lectura:</strong> recuerda que hay usuarios que les gusta imprimir los manuales, tutoriales o artículos. Procura brindar esa opción en tu contenido. También no te olvides de quienes leen a través de otros dispositivos móviles como iPhone y las descargas en PDF.</li>
<li><strong>Sidebars: </strong>son muy útiles para la navegación y sugerencias de contenido relacionado que le puede interesar al usuario. Procura brindar esa opción para facilitar el acceso.</li>
<li><strong>Contenido relacionado:</strong> utiliza links de referencia dentro del contenido a tu propio contenido. Esto permitirá que el usuario tenga acceso a más contenido del blog en relación a la temática.</li>
</ul>
<h2 style="text-align: justify;">10 puntos para evaluar en tu contenido</h2>
<ul style="text-align: justify;">
<li><strong>Titulo adecuado</strong>: procura que sea descriptivo, llamativo e informativo.</li>
<li><strong>Uso de subtitulos:</strong> te ayudan a facilitar la lectura y desarrollo de puntos e ideas.</li>
<li><strong>Entrada o lead:</strong> es el primer párrafo que sintetiza el contenido del post.</li>
<li><strong>Redacción:</strong> clara, directa y concisa el uso de la primera persona es bastante funcional.</li>
<li><strong>Párrafos: </strong>con no más de 5 líneas y procura que tus oraciones no sean tan extensas.</li>
<li><strong>Desarrollo de puntos:</strong>la estructura debe definir los puntos a desarrollar.</li>
<li><strong>Referencias y links:</strong> deja claro el desarrollo de tus ideas y las referencias a otros usando links.</li>
<li><strong>Material de apoyo:</strong>utiliza elementos gráficos o audiovisuales para complementar el contenido.</li>
<li><strong>No engañes al lector: </strong>si tu título promete responder algo, hazlo sin tanto rodeo.</li>
<li><strong>Retroalimentación: </strong>motiva al lector a participar en la discusión.</li>
</ul>
<p style="text-align: justify;">Un gran cantidad de usuarios utilizan los buscadores con el fin de encontrar respuesta confiable a sus preguntas y contenido de calidad temático. Tu Web puede ser relevante en los buscadores si sabes cómo optimizar el contenido y hacerlo usable para el usuario que anda en busca de información confiable.</p>
<p style="text-align: justify;">Tomado de: <a target="_blank" href="http://www.maestrosdelweb.com/editorial/usabilidad-en-el-contenido-blog/">Maestros del Web</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/usabilidad-en-el-contenido-de-tu-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Que hacer cuando nuestro dispositivo wifi solo tiene drivers para windows?</title>
		<link>http://www.haciendoweb.cult.cu/que-hacer-cuando-nuestro-dispositivo-wifi-solo-tiene-drivers-para-windows/</link>
		<comments>http://www.haciendoweb.cult.cu/que-hacer-cuando-nuestro-dispositivo-wifi-solo-tiene-drivers-para-windows/#comments</comments>
		<pubDate>Wed, 11 Dec 2013 11:00:20 +0000</pubDate>
		<dc:creator>Eduardo Rosabales Gonzalez</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Wi-Fi]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=11060</guid>
		<description><![CDATA[
He decidido tratar este tema ya que las redes wifi se están haciendo bastante populares en los centros de estudio y en muchos centros de trabajo, pero ¿que hacer cuando el dispositivo wifi de nuestro PC solo tiene drivers para Windows?.
Cuando nos ocurre esta situación los usuarios de Linux no debemos temer, existe una aplicación [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft" alt="" src="http://www.ecured.cu/images/thumb/5/57/Wi-fi.png/260px-Wi-fi.png" width="260" height="114" /></p>
<p style="text-align: justify;">He decidido tratar este tema ya que las redes wifi se están haciendo bastante populares en los centros de estudio y en muchos centros de trabajo, pero ¿que hacer cuando el dispositivo wifi de nuestro PC solo tiene drivers para Windows?.<span id="more-11060"></span></p>
<p style="text-align: justify;">Cuando nos ocurre esta situación los usuarios de Linux no debemos temer, existe una aplicación llamada ndiswrapper que nos permite que funcione el dispositivo con el driver para Windows.</p>
<p style="text-align: justify;">La manera de hacerlo usando Debian 6 y sus derivados es:</p>
<p style="text-align: justify;">1: Instalar el ndiswrapper</p>
<p style="text-align: justify;"><strong>$ sudo apt-get install ndiswrapper-common ndiswrapper-utils-1.9 wireless-tools</strong></p>
<p style="text-align: justify;">2: Copiar los ficheros .INF y .SYS que vienen en el CD en una carpeta de su PC por ejemplo /home/tu_user</p>
<p style="text-align: justify;">3: Instalar el driver</p>
<p style="text-align: justify;"><strong>$ sudo ndiswrapper -i nombre-driver.inf</strong></p>
<p style="text-align: justify;">Luego verificar que el driver ha sido instalado correctamente</p>
<p style="text-align: justify;"><strong>$ ndiswrapper -l</strong></p>
<p style="text-align: justify;">Por ultimo instalar en driver ndiswrapper</p>
<p style="text-align: justify;"><strong>$ sudo modprobe ndiswrapper</strong></p>
<p style="text-align: justify;">Si al ejecutar este comando da un error diciendo que no tiene el modulo ndiswrapper (generalmente pasa cuando tenemos instalado el kernel bigmem, a mi me paso hace poco)</p>
<p style="text-align: justify;"><strong>$ sudo apt-get install module-assistant</strong></p>
<p style="text-align: justify;"><strong>$ sudo m-a a-i ndiswrapper</strong></p>
<p style="text-align: justify;">Con esta opción recompilaremos el modulo (o driver para el kernel que estemos usando).</p>
<p style="text-align: justify;">Luego</p>
<p style="text-align: justify;"><strong>$ sudo modprobe ndiswrapper</strong></p>
<p style="text-align: justify;">Para verificar que el dispositivo esta funcionando correctamente</p>
<p style="text-align: justify;"><strong>$ sudo iwconfig</strong></p>
<p style="text-align: justify;">y debe salir algo así en pantalla:</p>
<p style="text-align: justify;"><strong>lo no wireless extensions.</strong></p>
<p style="text-align: justify;"><strong>eth0 no wireless extensions.</strong></p>
<p style="text-align: justify;"><strong>wlan0 IEEE 802.11bgn ESSID:off/any</strong></p>
<p style="text-align: justify;"><strong>Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm</strong></p>
<p style="text-align: justify;"><strong>Retry long limit:7 RTS thr:off Fragment thr:off</strong></p>
<p style="text-align: justify;"><strong>Encryption key:off</strong></p>
<p style="text-align: justify;"><strong>Power Management:on</strong></p>
<p style="text-align: justify;"><strong>pan0 no wireless extensions.</strong></p>
<p style="text-align: justify;">Ahora que todo esta bien hacemos que el driver ndiswrapper se cargue al iniciar el sistema</p>
<p style="text-align: justify;"><strong>$ sudo ndiswrapper -m</strong></p>
<p style="text-align: justify;">Para activar la interfaz inalábrica</p>
<p style="text-align: justify;"><strong>$ sudo ifconfig wlan0 up </strong></p>
<p style="text-align: justify;">Esto ultimo hay que hacerlo cada vez que si inicie el sistema, a menos que lo pongamos automático<strong>.<br />
</strong></p>
<p style="text-align: justify;">OJO: si tenes Linux X64 los drivers también tienen que ser para arquitectura X64</p>
<p style="text-align: justify;">El programa ndiswrapper esta pensado para drivers de dispositivos inalámbricos WIFI que pueden ser USB o PCI pero en alguna que otra documentación dice que también se puede hacer lo mismo para winmodems y otros hardwares, eso no lo he probado y les dejo ese campo abierto a los lectores.</p>
<p style="text-align: justify;">Y ahora a disfrutar de la red inalámbrica, pero hay que instalar los programas para detectar redes por ejemplo el Wifi Radar, pero eso ya es otro articulo.</p>
<p style="text-align: justify;">Fuente: <a target="_blank" href="http://blog.desdelinux.net/que-hacer-cuando-nuestro-dispositivo-wifi-solo-tiene-drivers-para-windows/">blog-desdelinux</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/que-hacer-cuando-nuestro-dispositivo-wifi-solo-tiene-drivers-para-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nuevas actualizaciones en las áreas de descargas y utilidades</title>
		<link>http://www.haciendoweb.cult.cu/nuevas-actualizaciones-en-las-areas-de-descargas-y-utilidades/</link>
		<comments>http://www.haciendoweb.cult.cu/nuevas-actualizaciones-en-las-areas-de-descargas-y-utilidades/#comments</comments>
		<pubDate>Tue, 10 Dec 2013 23:36:58 +0000</pubDate>
		<dc:creator>Juan Pablo Pérez Manes</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Blog HW]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Descargas]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[thunderbird]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=12269</guid>
		<description><![CDATA[Bueno como mucho de nuestros usuarios están solicitando hemos procedido con la actualización de varios de los Softwares que brinda Haciendo Web para su descarga que es uno de los objetivos fundamentales de este proyecto que ya ha despertado de su letargo.
Lista de descargas actualizadas:

WordPress 3.7.1 en español.
Firefox 25.0.1 para Windows, Linux y Mac.
Thunderbird 24.0.1 [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><a target="_blank" href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/12/haciendo-web-logo.png"><img class="size-full wp-image-12270 alignleft" alt="haciendo web logo" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/12/haciendo-web-logo.png" width="95" height="80" /></a>Bueno como mucho de nuestros usuarios están solicitando hemos procedido con la actualización de varios de los <a title="Software en Ecured" href="http://www.ecured.cu/index.php/Software" target="_blank">Softwares</a> que brinda Haciendo Web para su descarga que es uno de los objetivos fundamentales de este proyecto que ya ha despertado de su letargo.<span id="more-12269"></span></p>
<h2 style="text-align: justify;">Lista de descargas actualizadas:</h2>
<ul style="text-align: justify;">
<li><a title="Descargar WordPress" href="http://www.haciendoweb.cult.cu/descargas-de-cms/#wordpress">WordPress</a> 3.7.1 en español.</li>
<li><a target="_blank" title="Descargar Firefox" href="http://www.haciendoweb.cult.cu/utilidades/#firefox">Firefox</a> 25.0.1 para <a title="Windows en Ecured" href="http://www.ecured.cu/index.php/Windows" target="_blank">Windows</a>, <a target="_blank" title="GNU/Linux en Ecured" href="http://www.ecured.cu/index.php/GNU/Linux" target="_blank">Linux</a> y Mac.</li>
<li><a title="Descargar Thunderbird" href="http://www.haciendoweb.cult.cu/utilidades/#thunderbird">Thunderbird</a> 24.0.1 para Windows, Linux y Mac.</li>
<li><a title="Descargar Chrome" href="http://www.haciendoweb.cult.cu/utilidades/#chrome">Chrome</a> 25.0.1364.172 para Windows y 30 para Linux x64. (Estamos trabajando para ofrecer la versión 33 para Windows).</li>
</ul>
<p style="text-align: justify;">Haciendo Web esta entrando en proceso de revitalización y rediseño gráfico, verdaderamente el sitio estuvo un poco desactualizado.</p>
<p style="text-align: justify;">De momento ya se han desactivado varios plugins innecesarios, se procedió a la optimización de la base datos y se esta valorando la implementación de un nuevo plugin para redes sociales ya que el actual demora mucho en cargar, estaremos trabajando en un nuevo diseño de tipo responsivo que vendrá para el 2014.</p>
<p style="text-align: justify;">Bueno un saludo en especial para todos los usuarios del sitio y les recuerdo que HW ya esta de vuelta con energías renovadas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/nuevas-actualizaciones-en-las-areas-de-descargas-y-utilidades/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Samsung desarrollaría celular con pantalla de tres lados</title>
		<link>http://www.haciendoweb.cult.cu/samsung-desarrollaria-celular-con-pantalla-de-tres-lados/</link>
		<comments>http://www.haciendoweb.cult.cu/samsung-desarrollaria-celular-con-pantalla-de-tres-lados/#comments</comments>
		<pubDate>Tue, 10 Dec 2013 18:49:34 +0000</pubDate>
		<dc:creator>Juan Pablo Pérez Manes</dc:creator>
				<category><![CDATA[Hardware y Gadgets]]></category>
		<category><![CDATA[dispositivos móviles]]></category>
		<category><![CDATA[Movil]]></category>
		<category><![CDATA[Moviles]]></category>
		<category><![CDATA[Samsung]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[teléfonos móviles]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=12260</guid>
		<description><![CDATA[
Luego del exitoso lanzamiento de las pantallas flexibles en el Consumer Electronics Show (CES), la empresa Samsung busca desarrollar una nueva serie tecnológica de teléfonos inteligentes con pantallas a sus lados.
Y es que según fuentes de la empresa surcoreana, se estaría preparando smartphones en que la pantalla “envolverá los bordes”, revela el sitio Bloomberg.
La finalidad [...]]]></description>
				<content:encoded><![CDATA[<p itemprop="articleBody" style="text-align: justify;"><a href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/12/samsung-3-pantallas.jpg"><img class="aligncenter size-medium wp-image-12261" alt="samsung 3 pantallas" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/12/samsung-3-pantallas-300x168.jpg" width="300" height="168" /></a></p>
<p itemprop="articleBody" style="text-align: justify;">Luego del exitoso lanzamiento de las pantallas flexibles en el Consumer Electronics Show (CES), la empresa Samsung <strong>busca desarrollar una nueva serie tecnológica de teléfonos inteligentes con pantallas a sus lados.<span id="more-12260"></span></strong></p>
<p itemprop="articleBody" style="text-align: justify;">Y es que según fuentes de la empresa surcoreana, se estaría preparando smartphones <strong>en que la pantalla “envolverá los bordes”</strong>, revela el sitio Bloomberg.</p>
<p itemprop="articleBody" style="text-align: justify;">La finalidad del proyecto es que el usuario pueda <strong>revisar sus notificaciones sin la necesidad de mover el celular</strong>. Asimismo, cada pantalla funcionaría de manera independiente.</p>
<p itemprop="articleBody" style="text-align: justify;">Esta nueva familia de celulares podría llegar en el <strong>segundo semestre del 2014, dentro de las líneas Galaxy o Note</strong>.</p>
<p itemprop="articleBody" style="text-align: justify;">Dentro de los planes a mediano plazo de la empresa, se busca desarrollar hasta mediados del 2015 <strong>celulares con pantallas que se puedan doblar como una ‘billetera’.</strong></p>
<p itemprop="articleBody" style="text-align: justify;">Fuente: <a target="_blank" href="http://peru21.pe/tecnologia/samsung-desarrollaria-celular-pantalla-tres-lados-2158164">http://peru21.pe/tecnologia/samsung-desarrollaria-celular-pantalla-tres-lados-2158164</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/samsung-desarrollaria-celular-con-pantalla-de-tres-lados/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mandela y el Papa Francisco, los más comentados en Facebook</title>
		<link>http://www.haciendoweb.cult.cu/mandela-y-el-papa-francisco-los-mas-comentados-en-facebook/</link>
		<comments>http://www.haciendoweb.cult.cu/mandela-y-el-papa-francisco-los-mas-comentados-en-facebook/#comments</comments>
		<pubDate>Tue, 10 Dec 2013 16:34:50 +0000</pubDate>
		<dc:creator>Juan Pablo Pérez Manes</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Curiosidades]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Redes Sociales]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=12254</guid>
		<description><![CDATA[La muerte del líder sudafricano, Nelson Mandela, el nombramiento del Papa Francisco y los vídeos musicales de la cantante norteamericana Miley Cyrus, fueron los temas más comentados a lo largo del presente año en Facebook.
Eventos deportivos como el Tour de Francia, el atentado producido en el Maratón de Boston o el nacimiento del “bebé real” [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><a target="_blank" href="http://www.haciendoweb.cult.cu/wp-content/uploads/2012/02/tecnologia_facebook_ojo.jpg"><img class="alignright size-medium wp-image-5112" alt="facebook ojo" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2012/02/tecnologia_facebook_ojo-300x168.jpg" width="300" height="168" /></a>La muerte del líder sudafricano, <a title="Nelson Mandela en Ecured" href="http://www.ecured.cu/index.php/Nelson_Mandela" target="_blank">Nelson Mandela</a>, el nombramiento del <a target="_blank" title="Papa Francisco en Ecured" href="http://www.ecured.cu/index.php/Papa_Francisco" target="_blank">Papa Francisco</a> y los vídeos musicales de la cantante norteamericana <a target="_blank" title="Miley Cyrus en Ecured" href="http://www.ecured.cu/index.php/Miley_Cyrus" target="_blank">Miley Cyrus</a>, fueron los temas más comentados a lo largo del presente año en <a target="_blank" title="Facebook en Ecured" href="http://www.ecured.cu/index.php/Facebook" target="_blank">Facebook</a>.<span id="more-12254"></span></p>
<p style="text-align: justify;">Eventos deportivos como el Tour de Francia, el atentado producido en el Maratón de Boston o el nacimiento del “bebé real” en el Reino Unido fueron otros de los asuntos más mencionados.</p>
<p><img class="aligncenter" alt="mandela-papa-francisco" src="http://www.cubadebate.cu/wp-content/uploads/2013/12/mandela-papa-francisco-580x294.jpg" width="580" height="294" /></p>
<p style="text-align: justify;">A lo largo de 2013, Facebook analizó los mensajes producidos por sus usuarios y detectó las tendencias más seguidas, que según la red social fundada por Mark Zuckerberg, son “los temas y los hitos más importantes para la gente”.</p>
<p style="text-align: justify;">El fallecimiento de Nelson Mandela, por ejemplo, fue comentado por 55 millones de personas y generó 115 millones de interacciones, informó Facebook en un comunicado.</p>
<p>La red social también realizó un “ranking” con los “acontecimientos personales” que la gente comparte con sus contactos de forma más frecuente: añadir una relación, comprometerse o casarse, viajar o finalizar una relación sentimental.</p>
<p><strong>(Con información de EFE)</strong></p>
<hr />
<p>Fuente : <strong dir="ltr">http://www.cubadebate.cu/noticias/2013/12/10/mandela-y-el-papa-francisco-los-mas-comentados-en-facebook/</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/mandela-y-el-papa-francisco-los-mas-comentados-en-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conoces las granjas de Google (+Captura)</title>
		<link>http://www.haciendoweb.cult.cu/conoces-las-granjas-de-google-captura/</link>
		<comments>http://www.haciendoweb.cult.cu/conoces-las-granjas-de-google-captura/#comments</comments>
		<pubDate>Tue, 10 Dec 2013 01:36:42 +0000</pubDate>
		<dc:creator>Juan Pablo Pérez Manes</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Curiosidades]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=12249</guid>
		<description><![CDATA[La verdad es que la gran potencia de Google se genera en sus granjas, si como te cuento Google tiene granjas pero en vez de criar animales las granjas de Google están repletas de servidores que potencian los más de 50 servicios que ofrece este gigante de Internet.
A continuación una imagen observar algunos servidores de [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><a target="_blank" href="http://www.haciendoweb.cult.cu/wp-content/uploads/2012/12/10.gif"><img class="alignleft size-full wp-image-10834" alt="google" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2012/12/10.gif" width="140" height="77" /></a>La verdad es que la gran potencia de <a title="Google en Ecured" href="http://www.ecured.cu/index.php/Google" target="_blank">Google</a> se genera en sus granjas, si como te cuento Google tiene granjas pero en vez de criar animales las granjas de Google están repletas de servidores que potencian los más de <a target="_blank" title="Servicios de Google en Ecured" href="http://www.ecured.cu/index.php/Google#Servicios" target="_blank">50 servicios que ofrece este gigante de Internet</a>.<span id="more-12249"></span></p>
<p style="text-align: justify;">A continuación una imagen observar algunos servidores de Google presentes en una de sus granjas, espero les resulte tan emotiva como a mi.</p>
<p><a href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/12/Las-granjas-de-servidores-de-Google.-Internet.jpg"><img class="aligncenter size-medium wp-image-12250" alt="Las granjas de servidores de Google. (Internet)" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/12/Las-granjas-de-servidores-de-Google.-Internet-300x172.jpg" width="300" height="172" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/conoces-las-granjas-de-google-captura/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drupal CMS o colador de seguridad</title>
		<link>http://www.haciendoweb.cult.cu/drupal-cms-o-colador-de-seguridad/</link>
		<comments>http://www.haciendoweb.cult.cu/drupal-cms-o-colador-de-seguridad/#comments</comments>
		<pubDate>Tue, 10 Dec 2013 00:30:02 +0000</pubDate>
		<dc:creator>Juan Pablo Pérez Manes</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Drupal]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=12245</guid>
		<description><![CDATA[El tema de la seguridad en un punto vital de mucha importancia a la hora de seleccionar que CMS utilizar para gestionar nuestros Sitios Web, navegando por la red me he topado con la noticia en Hispasec donde notifican sobre la corrección de vulnerabilidades calificadas como críticas que afectan al complicado Drupal en sus versiones [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><a target="_blank" href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/12/drupal_vulnerable.jpg"><img class="alignleft size-full wp-image-12246" alt="Drupal vulnerable" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/12/drupal_vulnerable.jpg" width="294" height="198" /></a>El tema de la seguridad en un punto vital de mucha importancia a la hora de seleccionar que <a title="CMS en Ecured" href="http://www.ecured.cu/index.php/Sistemas_de_gesti%C3%B3n_de_contenidos" target="_blank">CMS</a> utilizar para gestionar nuestros Sitios Web, navegando por la red me he topado con la noticia en <a target="_blank" title="Sitio Oficial de Hispasec" href="http://www.hispasec.com/" target="_blank">Hispasec</a> donde notifican sobre la corrección de vulnerabilidades calificadas como críticas que afectan al complicado <a target="_blank" title="Drupal en Ecured" href="http://unaaldia.hispasec.com/2013/11/multiples-vulnerabilidades-en-drupal.html" target="_blank">Drupal</a> en sus versiones <strong>versiones 6.x anteriores a 6.29 y 7.x anteriores a 7.24</strong>.<span id="more-12245"></span></p>
<p style="text-align: justify;">El equipo de seguridad de Drupal ha solucionado varios errores de seguridad catalogados como “<strong>altamente críticos</strong>“, el máximo nivel en su escala de riesgo <strong>al ser</strong><strong> remotamente explotables y sin necesidad de interacción con el usuario</strong>.</p>
<p style="text-align: justify;">Drupal es un CMF (Content Management Framework) modular multipropósito y muy configurable, desarrollado bajo licencia <a target="_blank" title="Licencia GPL en Ecured" href="http://www.ecured.cu/index.php/GPL" target="_blank">GNU/GPL</a> en <a target="_blank" title="PHP en Ecured" href="http://www.ecured.cu/index.php/PHP" target="_blank">PHP</a>. Permite la publicación de artículos, imágenes, y otro tipo de archivos con servicios añadidos como foros, encuestas, votaciones, blogs y administración de usuarios y permisos.</p>
<h2 style="text-align: justify;">Las vulnerabilidades se detallan a continuación:</h2>
<p style="text-align: justify;"><strong>CVE-2013-6385</strong><br />
Múltiples errores en la validación contra ataques CSRF en la API de formularios que podrían permitir la ejecución de funciones no seguras.</p>
<p style="text-align: justify;"><strong>CVE-2013-6386</strong><br />
Varios fallos en la función mt_rand() podrían generar números pseudoaleatorios predecibles. Dicha función es usada en múltiples módulos del núcleo de Drupal.</p>
<p style="text-align: justify;"><strong>CVE-2013-6387</strong><br />
Algunos campos de descripción de imágenes no son correctamente saneados en el módulo Image pudiendo realizarse un ataque XSS.</p>
<p style="text-align: justify;"><strong>CVE-2013-6388</strong><br />
Falta de comprobación de valores también en el módulo Color que podría ser aprovechado para realizar un ataque XSS no persistente.</p>
<p style="text-align: justify;"><strong>CVE-2013-6389</strong><br />
Error de validación de URLs en el módulo Overlay usado en el panel de administración que podría permitir una redirección HTTP no deseada.</p>
<p style="text-align: justify;">También se ha corregido un salto de restricciones de seguridad en la función drupal_valid_token() a través de un token que no sea de tipo cadena y otro fallo de configuración en los archivos ‘<em>.htaccess</em>‘ proporcionados por Drupal que podría ser aprovechado por un atacante remoto para ejecutar código arbitrario.</p>
<p style="text-align: justify;"><strong>Afecta a las versiones 6.x anteriores a 6.29 y 7.x anteriores a 7.24, se recomienda su inmediata actualización.</strong></p>
<p style="text-align: justify;">Fuente : <a target="_blank" href="http://unaaldia.hispasec.com/2013/11/multiples-vulnerabilidades-en-drupal.html">Hispasec</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/drupal-cms-o-colador-de-seguridad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keypic planea dejar obsoleto el sistema de CAPTCHAs</title>
		<link>http://www.haciendoweb.cult.cu/keypic-planea-dejar-obsoleto-el-sistema-de-captchas/</link>
		<comments>http://www.haciendoweb.cult.cu/keypic-planea-dejar-obsoleto-el-sistema-de-captchas/#comments</comments>
		<pubDate>Thu, 05 Dec 2013 17:23:53 +0000</pubDate>
		<dc:creator>Miriela Ramos Molina</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Captcha]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=12237</guid>
		<description><![CDATA[Keypic es una startup que pretende erradicar el uso de CAPTCHAs para detectar si un usuario es humano o no con un nuevo sistema de reconocimiento de patrones humanos
 Todos hemos usado los CAPTCHAs en algún momento. Es un sistema que se instauró y desarrolló para detectar si un usuario es un bot, spammer o ser [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><span style="font-family: 'DejaVu Sans', sans-serif;"><a href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/12/captcha1-800x532.jpg"><img class="alignleft size-medium wp-image-12238" alt="captcha1-800x532" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/12/captcha1-800x532-300x199.jpg" width="300" height="199" /></a><strong>Keypic es una startup que pretende erradicar el uso de CAPTCHAs para detectar si un usuario es humano o no con un nuevo sistema de reconocimiento de patrones humanos</strong></span></p>
<p style="text-align: justify;" align="JUSTIFY"> <span style="font-family: 'DejaVu Sans', sans-serif;">Todos hemos usado los CAPTCHAs en algún momento. Es un sistema que se instauró y desarrolló para detectar si un usuario es un bot, spammer o ser humano dentro de un sitio web. Mientras que el </span><strong><span style="font-family: 'DejaVu Sans', sans-serif;">CAPTCHA</span></strong><span style="font-family: 'DejaVu Sans', sans-serif;"> tiene muchos años siendo la principal manera de hacer esta identificación, también se ha convertido en una </span><strong><span style="font-family: 'DejaVu Sans', sans-serif;">barrera</span></strong><span style="font-family: 'DejaVu Sans', sans-serif;"> para los seres humanos en la web; ya que las palabras del sistema se han vuelto incomprensibles hasta para los más hábiles.<span id="more-12237"></span> </span></p>
<p style="text-align: justify;" align="JUSTIFY"><span style="font-family: 'DejaVu Sans', sans-serif;">Está comprobado que después de varios intentos identificación de las letras en un CAPTCHA, los verdaderos seres humanos terminan huyendo del formulario sin completarlo. Triste, pero cierto.</span></p>
<p style="text-align: justify;" align="JUSTIFY"> <span style="font-family: 'DejaVu Sans', sans-serif;">Para combatir estas pérdidas, <a target="_blank" href="http://keypic.com/" target="_blank">Keypic</a> propone un nuevo sistema de identificación basado en el </span><strong><span style="font-family: 'DejaVu Sans', sans-serif;">comportamiento</span></strong><span style="font-family: 'DejaVu Sans', sans-serif;">.</span></p>
<p style="text-align: justify;" align="JUSTIFY"> <span style="font-family: 'DejaVu Sans', sans-serif;">Esta nueva herramienta utiliza una </span><strong><span style="font-family: 'DejaVu Sans', sans-serif;">imagen</span></strong><span style="font-family: 'DejaVu Sans', sans-serif;"> que puede ser un anuncio o, simplemente, un PNG transparente para revisar el comportamiento de aquel que llena un formulario en la web. Los puntos que Keypic considera para saber si un usuario es humano o no tienen que ver con el </span><strong><span style="font-family: 'DejaVu Sans', sans-serif;">tiempo</span></strong><span style="font-family: 'DejaVu Sans', sans-serif;"> en el que se tarda en llenar el formulario, el </span><strong><span style="font-family: 'DejaVu Sans', sans-serif;">orden</span></strong><span style="font-family: 'DejaVu Sans', sans-serif;"> en el que se hace, la </span><strong><span style="font-family: 'DejaVu Sans', sans-serif;">dirección IP</span></strong><span style="font-family: 'DejaVu Sans', sans-serif;">, el </span><strong><span style="font-family: 'DejaVu Sans', sans-serif;">navegador</span></strong><span style="font-family: 'DejaVu Sans', sans-serif;"> que se está usando, cuántas solicitudes hay desde cierta IP y las características generales de cualquier </span><strong><span style="font-family: 'DejaVu Sans', sans-serif;">texto</span></strong><span style="font-family: 'DejaVu Sans', sans-serif;"> que se inserte.</span></p>
<p style="text-align: justify;" align="JUSTIFY"> <span style="font-family: 'DejaVu Sans', sans-serif;">Keypic recolecta estos datos y los cruza con los millones de solicitudes que reciben al día para dar un</span><strong><span style="font-family: 'DejaVu Sans', sans-serif;">porcentaje de probabilidad</span></strong><span style="font-family: 'DejaVu Sans', sans-serif;"> de que el usuario sea un spammer o bot. Después, envía este número al administrador del sitio quien decide qué porcentaje pasar como humano y qué porcentaje no. Por ejemplo, si Keypic asigna un 95% de características de spammer o bot, lo más probable es que el formulario no sea aceptado.</span></p>
<p style="text-align: justify;" align="JUSTIFY"> <span style="font-family: 'DejaVu Sans', sans-serif;">De esta manera, Keypic es un sistema que </span><strong><span style="font-family: 'DejaVu Sans', sans-serif;">no es invasivo</span></strong><span style="font-family: 'DejaVu Sans', sans-serif;"> para los usuarios como los CAPTCHAs ya que todo el proceso se hace sin que el usuario lo note. Este sistema puede utilzarse en sitios, blogs e incluso en encuestas. Según sus creadores, su sistema </span><strong><span style="font-family: 'DejaVu Sans', sans-serif;">no puede romperse</span></strong><span style="font-family: 'DejaVu Sans', sans-serif;"> o hackearse y garantizan que ningún humano se perderá en el proceso de llenar un formulario porque no representa una barrera para ellos.</span></p>
<p style="text-align: justify;" align="JUSTIFY"> <span style="font-family: 'DejaVu Sans', sans-serif;">Actualmente, Keypic se usa en más de 5.000 sitios en la web y cuenta con plug-ins para diferentes plataformas, incluyendo </span><strong><span style="font-family: 'DejaVu Sans', sans-serif;">WordPress, Drupal y Joomla</span></strong><span style="font-family: 'DejaVu Sans', sans-serif;">. Tal vez esta sea la solución para los complicados CAPTCHAs que vemos en los sitios que, además, ya son una barrera que puede ser evadida por un <a target="_blank" href="http://alt1040.com/2013/11/software-resuelve-captcha" target="_blank">software</a>. Una manera menos complicada, más segura y, posiblemente, más acertada de combatir el spam y diversos ataques cibernéticos en la web.</span></p>
<p style="text-align: justify;" align="JUSTIFY">Fuente: <a target="_blank" title="CAPTCHAs" href="http://keypic.com/modules/resources/" target="_blank">CAPTCHAs</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/keypic-planea-dejar-obsoleto-el-sistema-de-captchas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Joomla 3.2, lavado de cara completo para uno de los CMS más conocidos</title>
		<link>http://www.haciendoweb.cult.cu/joomla-3-2-lavado-de-cara-completo-para-uno-de-los-cms-mas-conocidos/</link>
		<comments>http://www.haciendoweb.cult.cu/joomla-3-2-lavado-de-cara-completo-para-uno-de-los-cms-mas-conocidos/#comments</comments>
		<pubDate>Thu, 05 Dec 2013 16:22:09 +0000</pubDate>
		<dc:creator>Miriela Ramos Molina</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=12233</guid>
		<description><![CDATA[
Desde la salida al mercado de Joomla 3.1.5, los usuarios se habían volcado en crear extensiones que mejorara la versión. El resultado fue que se llenaron los foros Joomla con casi 3 millones de mensajes reportando errores, con quejas o intentando aportar soluciones de mejora. La solución llega en forma de actualización, Joomla 3.2, que promete un lavado de [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><span style="color: #000000;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span><br />
<a href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/12/joomla-factoriagris-desarrollo-web.jpg"><img class="alignleft size-medium wp-image-12234" alt="joomla-factoriagris-desarrollo-web" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/12/joomla-factoriagris-desarrollo-web-300x214.jpg" width="300" height="214" /></a><strong>Desde la salida al mercado de Joomla 3.1.5, los usuarios se habían volcado en crear extensiones que mejorara la versión. El resultado fue que se llenaron los foros Joomla </strong></span></span></span><strong><span style="color: #000000;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;">con casi 3 millones de mensajes</span></span><span style="color: #000000;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"> reportando errores, con quejas o intentando aportar soluciones de mejora. La solución llega en forma de actualización, </span></span><span style="color: #000000;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;">Joomla 3.2,</span></span></strong><span style="color: #000000;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span><strong> que promete un lavado de cara completo. De hecho, encontramos cerca de 600 mejoras.</strong><span id="more-12233"></span></span></span></span></p>
<p><span style="color: #000000;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span>Mencionemos algunas de las mejoras:</span></span></span></p>
<ul>
<li><span style="color: #333333;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span>Gracias al RAD (Rapid Application Development) crear nuevas extensiones va a resultar mucho más sencillo e intuitivo.</span></span></span></li>
<li><span style="color: #333333;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span>Diversas mejoras del Gestor de Plantillas.</span></span></span></li>
<li><span style="color: #333333;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span>Interfaz más sencilla, intuitiva y dinámica.</span></span></span></li>
<li><span style="color: #333333;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span>Descarga más rápida y sencilla de las actualizaciones y extensiones.</span></span></span></li>
<li><span style="color: #333333;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span>Presentación de campos y atributos de formularios en HTML5.</span></span></span></li>
<li><span style="color: #333333;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span>Actualización de jQuery 1.10.2.</span></span></span></li>
<li><span style="color: #333333;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span>Se ha añadido una interface AJAX para el núcleo.</span></span></span></li>
<li><span style="color: #333333;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span>Detección y corrección de 375 asuntos que se encontraban bajo seguimiento, incluyendo 3 incidencias graves de seguridad.</span></span></span></li>
<li><span style="color: #333333;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span>Instalación automática de multiidiomas.</span></span></span></li>
<li><span style="color: #333333;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span>Inclusión de librería de microdatos semántica.</span></span></span></li>
<li><span style="color: #333333;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span>Nueva configuración del <i>frontend</i>.</span></span></span></li>
<li><span style="color: #333333;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span>Se eliminan las dependencias de MooTools.</span></span></span></li>
<li><span style="color: #333333;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span>Mejoras en la interfaz de Código Sprint JUX.</span></span></span></li>
<li><span style="color: #333333;"><span style="font-family: Tahoma, 'Segoe UI', Arial, Verdana, Helvetica, sans-serif;"><span>Instalación fácil y sencilla desde la propia web</span></span></span></li>
</ul>
<p>Fuente:<a target="_blank" title="Joomla 3.2" href="http://www.muypymes.com/2013/11/19/joomla-3-2" target="_blank">Joomla 3.2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/joomla-3-2-lavado-de-cara-completo-para-uno-de-los-cms-mas-conocidos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Elementary OS Luna: Distro de Linux que luce como OS X</title>
		<link>http://www.haciendoweb.cult.cu/elementary-os-luna-distro-de-linux-que-luce-como-os-x/</link>
		<comments>http://www.haciendoweb.cult.cu/elementary-os-luna-distro-de-linux-que-luce-como-os-x/#comments</comments>
		<pubDate>Wed, 04 Dec 2013 21:30:06 +0000</pubDate>
		<dc:creator>Miriela Ramos Molina</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Distro Linux]]></category>
		<category><![CDATA[Sistemas Operativos]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=12229</guid>
		<description><![CDATA[En nuestra constante búsqueda de distros Linux que intentan distanciarse un poco del resto, un nombre se repitió varias veces durante los últimos días: Elementary OS. Está basada en Ubuntu, y varios aspectos de su interfaz nos hacen recordar a OS X, pero su elección de software también hace de esta distro una candidata más que interesante.
Mi vetusta netbook no será [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;"><a target="_blank" href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/12/logo42.jpg"><img class="alignleft size-thumbnail wp-image-12230" alt="logo42" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/12/logo42-150x150.jpg" width="150" height="150" /></a>En nuestra constante búsqueda de </span></span><strong><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">distros Linux</span></span></strong><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;"> que intentan distanciarse un poco del resto, un nombre se repitió varias veces durante los últimos días: </span></span><strong><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Elementary OS</span></span></strong><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">. Está basada en Ubuntu, y varios aspectos de su interfaz nos hacen recordar a </span></span><strong><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">OS X</span></span></strong><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">, pero su elección de </span></span><a href="http://www.neoteo.com/category/software/"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">software</span></span></a><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;"> también hace de esta distro una candidata más que interesante.<span id="more-12229"></span></span></span></p>
<p style="text-align: justify;"><a target="_blank" name="more-90045"></a><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Mi vetusta netbook no será la plataforma más exigente del mundo, pero se ha convertido en una alternativa dentro de todo viable para estudiar más de cerca a aquellas </span></span></span><strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">distros Linux</span></span></span></strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;"> que prometen mejorar sus funciones, al mismo tiempo que se mantienen ágiles y eficientes. Después de </span></span></span><a href="http://www.neoteo.com/crunchbang-una-distro-linux-muy-liviana-basada-en-debian/" target="_blank"><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">pasar por CrunchBang</span></span></span></a><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;"> y de realizar una breve visita a Xubuntu, en estos días me encuentro detenido sobre</span></span></span><a target="_blank" href="http://www.neoteo.com/category/windows/"><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Windows</span></span></span></a><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;"> XP </span></span></span><em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">(por más que Microsoft vomite plomo fundido ante la idea)</span></span></span></em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">, pero es cuestión de tiempo para que haga una nueva partición y arroje otro sabor de Linux en el disco duro. El siguiente en mi lista es </span></span></span><strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Elementary OS</span></span></span></strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">, un derivado más de Ubuntu con cierta tendencia a </span></span></span><strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">duplicar aspectos visuales de OS X</span></span></span></strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">, gracias a su shell Pantheon, su administrador de ventanas Gala, y Plank, que en esencia reproduce la funcionalidad del Dock en OS X.</span></span></span></p>
<p style="text-align: justify;" align="CENTER"><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Un aspecto a tener en cuenta más allá de su intefaz, es la elección de software en su última versión estable 0.2 </span></span></span><em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">(derivada de Ubuntu 12.04 LTS)</span></span></span></em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">, conocida como </span></span></span><strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Luna</span></span></span></strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">. El combo Firefox-LibreOffice es un verdadero clásico para otras distros, pero </span></span></span><strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Elementary OS</span></span></span></strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;"> coloca a </span></span></span><strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Midori</span></span></span></strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;"> al frente de la navegación web, mientras que en su configuración estándar </span></span></span><em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">no hay un </span></span></span></em><em><a target="_blank" href="http://www.neoteo.com/tag/paquete-de-oficina/"><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">paquete de oficina</span></span></span></a></em><em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;"> preinstalado</span></span></span></em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">, salvo por un visualizador de documentos, un calendario, y la aplicación de correo </span></span></span><strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Geary Mail</span></span></span></strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">. La reproducción de vídeo está a cargo de </span></span></span><strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Totem</span></span></span></strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">, que descarga automáticamente cualquier codec adicional, y el software </span></span></span><strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Noise</span></span></span></strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">, claramente inspirado en iTunes, controla el aspecto musical. Las opciones de mensajería se limitan al cliente </span></span></span><strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Empathy</span></span></span></strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">, y para visualizar imágenes, </span></span></span><strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Elementary OS</span></span></span></strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;"> ofrece a </span></span></span><strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Shotwell</span></span></span></strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">.</span></span></span></p>
<p style="text-align: justify;" align="CENTER"><strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Elementary OS</span></span></span></strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;"> ha sido descrito como un </span></span></span><strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">sistema operativo</span></span></span></strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;"> sencillo </span></span></span><em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">(si has instalado Ubuntu antes, no tendrás problemas aquí)</span></span></span></em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">, limpio </span></span></span><em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">(no hay exceso de aplicaciones)</span></span></span></em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;"> y estable </span></span></span><em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">(gracias al LTS)</span></span></span></em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">. Más allá del capricho ocasional </span></span></span><em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">(por ejemplo, no logré convencer a Midori de que guarde los cambios en las fuentes, y su relación con Flash es bastante pobre)</span></span></span></em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">, estoy de acuerdo con esos tres adjetivos. Su sitio oficial cuenta con un sistema de donaciones para asistir al desarrollo del sistema operativo, pero todas las descargas de </span></span></span><strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">Elementary OS</span></span></span></strong><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">, independientemente de la versión </span></span></span><em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">(32 o 64 bits)</span></span></span></em><span style="color: #474747;"><span style="font-family: 'DejaVu Sans', sans-serif;"><span style="font-size: medium;">, son gratuitas. Sin dudas, esta distro tendrá una cita con mi netbook en las próximas horas.</span></span></span></p>
<p style="text-align: justify;" align="CENTER">Fuente: <a target="_blank" title="Distro Linux" href="http://www.neoteo.com/elementary-os-luna-distro-de-linux-que-luce-como-os-x/" target="_blank">Distro Linux</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/elementary-os-luna-distro-de-linux-que-luce-como-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google+ alcanza 300 millones de usuarios y se renueva con 18 nuevas funciones</title>
		<link>http://www.haciendoweb.cult.cu/google-alcanza-300-millones-de-usuarios-y-se-renueva-con-18-nuevas-funciones/</link>
		<comments>http://www.haciendoweb.cult.cu/google-alcanza-300-millones-de-usuarios-y-se-renueva-con-18-nuevas-funciones/#comments</comments>
		<pubDate>Wed, 30 Oct 2013 11:35:54 +0000</pubDate>
		<dc:creator>Jorge Enrique Dominguez</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Plus]]></category>
		<category><![CDATA[Redes Sociales]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=12210</guid>
		<description><![CDATA[
La red social de Google sigue ampliando base de usuarios y ya alcanza 300 millones de registroslo que ha sido celebrado por la firma con 18 nuevas funciones donde destacan las mejoras en edición de imágenes y almacenamiento, y cuyo avance te ofrecimos en el vídeo del evento A Morning With Google.
Google+ habría sumado 100 millones de usuarios [...]]]></description>
				<content:encoded><![CDATA[<p><a target="_blank" href="http://www.muycomputer.com/tags/google-plus" target="_blank"><br />
<a target="_blank" href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/10/GooglePlus.jpg"><img class="alignleft size-thumbnail wp-image-12212" alt="GooglePlus" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/10/GooglePlus-150x150.jpg" width="150" height="150" /></a>La red social de Google</a> sigue ampliando base de usuarios y ya alcanza <strong>300 millones de registros</strong>lo que ha sido celebrado por la firma con 18 nuevas funciones donde destacan las mejoras en edición de imágenes y almacenamiento, y cuyo avance te ofrecimos en el vídeo del evento <a href="http://www.muycomputer.com/2013/10/29/a-morning-with-google" target="_blank">A Morning With Google</a>.</p>
<p>Google+ habría sumado 100 millones de usuarios desde su conferencia para desarrolladores de mayo lo que no está nada mal, teniendo en cuenta que la cifra de usuarios <strong>ascendería a 540 millones si contamos los usuarios que interactúan con Google+</strong> desde uno de los múltiples servicios de Google a los que está conectado.<span id="more-12210"></span></p>
<p>Lo más destacado de la actualización de Google+ es el <strong>apartado de fotografía</strong>. Una gran apuesta que ya vimos en la <a target="_blank" href="http://www.muycomputer.com/2013/03/27/google-permite-incluir-gifs-animados-en-los-perfiles" target="_blank">utilización de gifs animados como imagen de perfil</a> y tras incorporar las funciones de Snapseed para competir con Instagram.</p>
<p><strong>Google+ ha mejorado ampliamente su sistema de búsqueda de fotografías</strong>, tanto propias como de amigos, bajo un sistema de búsqueda de imágenes por reconocimiento visual que no necesita de etiquetas para encontrarlas, sino introducir alguna característica para localizar contenido.</p>
<p>La función de Mejora automática perfecciona cada foto que se agregan a Google+ y ahora ya se pueden controlar estas mejoras para aumentar o disminuir su intensidad. Si quieres procesar sus imágenes con otra herramienta, puedes optar por excluir un álbum completo.</p>
<p>Para ediciones desde móviles, Google ofrece <strong>nuevo filtro HDR Scape</strong>. Mientras que las imágenes de alto rango dinámico (HDR) requieren de múltiples fotos para crear su efecto, HDR Scape puede ofrecer resultados similares con un solo toque.</p>
<p>La red social anuncia también <a target="_blank" href="http://tecnologiayproductosgoogle.blogspot.mx/2013/10/hangouts-y-fotos-de-google-ahorren.html" target="_blank">nuevos efectos automáticos</a> como:</p>
<p>- <strong>Acción</strong>. Tal vez es la primera presentación de gimnasia de su hija, o están con un amigo haciendo trucos en la patineta. Con Acción pueden tomar su salto final o el truco de la media tubería y crear una fotografía con efecto estroboscópico.<br />
- <strong>Borrador</strong>. Cuando toman fotografías de lugares y paisajes, a menudo las personas y los vehículos se interponen en el camino. La función de Borrador puede tomar una secuencia de estas fotos y borrar todo lo que está en movimiento para ofrecerles una imagen más “limpia”.<br />
- <strong>Película</strong>. La función de Película produce breves presentaciones con los momentos más destacados a partir de sus fotos y videos, y lo hace con efectos, transiciones y banda sonora incluida, todo de forma automática. Pueden compartir la película tal como está o sumergirse aún más en el proceso de edición para personalizar todavía más.</p>
<p>Además, junto a estas funciones de edición y búsqueda, dispondremos de <strong>15 Gbytes gratuitos de almacenamiento para fotografía y vídeo</strong>. Como ves, fuerte apuesta por la fotografía en la red social para competir con Facebook.</p>
<p>fuente: muycomputer.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/google-alcanza-300-millones-de-usuarios-y-se-renueva-con-18-nuevas-funciones/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ranking Lenguajes de Programación Octubre de 2013</title>
		<link>http://www.haciendoweb.cult.cu/ranking-lenguajes-de-programacion-octubre-de-2013/</link>
		<comments>http://www.haciendoweb.cult.cu/ranking-lenguajes-de-programacion-octubre-de-2013/#comments</comments>
		<pubDate>Tue, 29 Oct 2013 14:50:57 +0000</pubDate>
		<dc:creator>Jorge Enrique Dominguez</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Lenguajes de Programación]]></category>
		<category><![CDATA[Ranking]]></category>
		<category><![CDATA[Ranking Lenguajes de Programación]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=12204</guid>
		<description><![CDATA[
Por primera vez desde que llevamos a cabo este ranking, Groovy entra en el top 20 de los lenguajes de programación más populares. Groovy es un lenguaje de programación dinámico, orientado a objetos y que se ejecuta en la máquina virtual de Java, por lo que es totalmente compatible con él.
Con características similares a Python (8), Perl [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-4881" alt="lenguajes de programación" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2012/01/lenguajes-programacion.gif" width="140" height="77" /></p>
<p>Por primera vez desde que llevamos a cabo este ranking, <a target="_blank" href="http://groovy.codehaus.org/" target="_blank" name="">Groovy</a> entra en el top 20 de los lenguajes de programación más populares. Groovy es un lenguaje de programación dinámico, orientado a objetos y que se ejecuta en la máquina virtual de Java, por lo que es totalmente compatible con él.</p>
<p>Con características similares a Python (8), Perl (12) o Ruby (13) parte de su relevancia se la debe a todos los frameworks y herramientas que se han creado a su alrededor, especialmente Grails, pero también Griffon, Gradle, GPars, Spock, Gant, Gaelyk.<span id="more-12204"></span></p>
<p><em id="__mceDel"><br />
Junto a lo anterior, destaca de esta nueva clasificación mensual, la posición de Objective-C, afianzado en la tercera posición solo por detrás de C y Java. Objective-C es el lenguaje principal de <a target="_blank" href="http://escuela.it/cursos/aplicaciones-ios/" target="_blank" name="">programación en sistemas iOS</a> (también en Mac OS X) que con el “boom” de iPhone y iPad ha logrado ser en los últimos años el lenguaje de programación con mayor crecimiento en el mundo de la tecnología.</em></p>
<p>En lado de las perdidas de relevancia entre programadores, encontramos a C# un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft y diseñado para generar programas como parte de su plataforma .NET.</p>
<p><b><br />
Ranking Lenguajes de Programación Octubre 2013</b></p>
<ol>
<li>C</li>
<li>Java</li>
<li>Objective-C</li>
<li>C++</li>
<li>PHP</li>
<li>C#</li>
<li>(Visual) Basic</li>
<li>Python</li>
<li>Transact-SQL</li>
<li>JavaScript</li>
<li>Visual Basic .NET</li>
<li>Perl</li>
<li>Ruby</li>
<li>Pascal</li>
</ol>
<p>Este ranking mensual está basado en el indice TIOBE que se fundamenta en el número de ingenieros cualificados de todo el mundo, cursos y proveedores de terceros. Los motores de búsqueda de Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube y Baidu se utilizan para calcular dichas calificaciones.</p>
<p>fuente: desarrolloweb.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/ranking-lenguajes-de-programacion-octubre-de-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Motorola Ara, proyecto de hardware abierto para smartphones</title>
		<link>http://www.haciendoweb.cult.cu/motorola-ara-proyecto-de-hardware-abierto-para-smartphones/</link>
		<comments>http://www.haciendoweb.cult.cu/motorola-ara-proyecto-de-hardware-abierto-para-smartphones/#comments</comments>
		<pubDate>Tue, 29 Oct 2013 14:48:07 +0000</pubDate>
		<dc:creator>Jorge Enrique Dominguez</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Hardware y Gadgets]]></category>
		<category><![CDATA[Motorola]]></category>
		<category><![CDATA[Motorola Ara]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[teléfonos móviles]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=12200</guid>
		<description><![CDATA[El Motorola Ara es una ambiciosa iniciativa de hardware abierto para construir teléfonos móviles inteligentes y con el objetivo de “hacer en el hardware lo que la plataforma Android ha hecho en el software”, explica la firma estadounidense en su presentación.
Motorola Ara comprende un marco estructural que servirá como base para incluir módulos adicionales a elección del cliente. Pantalla, [...]]]></description>
				<content:encoded><![CDATA[<p><a target="_blank" href="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/10/630x450xMotorolaAra-630x450.jpg"><img class="alignleft  wp-image-12201" alt="630x450xMotorolaAra-630x450" src="http://www.haciendoweb.cult.cu/wp-content/uploads/2013/10/630x450xMotorolaAra-630x450.jpg" width="378" height="270" /></a>El Motorola Ara es una <strong>ambiciosa iniciativa de hardware abierto para construir teléfonos móviles inteligentes</strong> y con el objetivo de “hacer en el hardware lo que la plataforma Android ha hecho en el software”, <a href="http://www.dscout.com/ara" target="_blank">explica</a> la firma estadounidense en su presentación.</p>
<p>Motorola Ara comprende un marco estructural que servirá como base para incluir módulos adicionales a elección del cliente. Pantalla, batería, procesador, teclado en su caso, cualquier tipo de sensores y el resto de componentes que completan un terminal inteligente.</p>
<p>La idea es que los propios usuarios puedan <strong>intercambiar en el futuro un módulo que funcione mal o como actualización/mejora</strong> a medida que surjan componentes más potentes o nuevas innovaciones tecnológicas.<span id="more-12200"></span></p>
<p><em>“Nuestro objetivo es impulsar una relación más estrecha y abierto entre los usuarios, desarrolladores y sus teléfonos, para darle el poder de decidir en todo lo que respecta a su teléfono, su diseño, de qué está hecho, cuánto cuesta y cuánto tiempo va a mantenerlo”</em>, dicen <a target="_blank" href="http://motorola-blog.blogspot.com.es/2013/10/goodbye-sticky-hello-ara.html" target="_blank">desde el proyecto</a>.</p>
<p>Un proyecto en el que Motorola se ha asociado con Dave Hakkens, el creador de Phonebloks, un método para <strong>construir tu propio smartphone</strong> que en poco tiempo ha ganado interés <a target="_blank" href="https://www.thunderclap.it/projects/2931-phonebloks" target="_blank">con un millón de usuarios en su apoyo</a>. El Motorola Ara tiene previsto comenzar en los próximos meses invitando a desarrolladores para la creación de módulos y el lanzamiento del correspondiente kit de desarrollo.</p>
<p><strong>Pensamos en Ara como en la creación de nuestro PC de sobremesa</strong>, construido, por ejemplo, a partir de una torre ATX al que le añadimos distintos componentes (variados pero estandarizados) desde fuente de alimentación, placa base, procesador, gráfica, memoria y almacenamiento. Si de esto se trata el <strong>Motorola Ara va a ser un proyecto muy interesante</strong> al que seguiremos la pista.</p>
<p>fuente: muycomputer.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/motorola-ara-proyecto-de-hardware-abierto-para-smartphones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tras 2012, existen más de 600 millones de sitios web y más de 2.000 millones de usuarios de Internet en el mundo</title>
		<link>http://www.haciendoweb.cult.cu/tras-2012-existen-mas-de-600-millones-de-sitios-web-y-mas-de-2-000-millones-de-usuarios-de-internet-en-el-mundo/</link>
		<comments>http://www.haciendoweb.cult.cu/tras-2012-existen-mas-de-600-millones-de-sitios-web-y-mas-de-2-000-millones-de-usuarios-de-internet-en-el-mundo/#comments</comments>
		<pubDate>Mon, 30 Sep 2013 13:43:22 +0000</pubDate>
		<dc:creator>Juan Pablo Pérez Manes</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Estadísticas]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Redes]]></category>

		<guid isPermaLink="false">http://www.haciendoweb.cult.cu/?p=12185</guid>
		<description><![CDATA[Todos los años (al menos desde 2008), la empresa de monitoreo Royal Pingdom difunde un extenso informe con cifras acerca del uso de Internet a nivel mundial que reune datos de muy diferentes fuentes. Aunque ya sabemos que pasa con estos números, sirven para hacernos una idea del estado global de la red, así que [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Todos los años (al menos desde 2008), la empresa de monitoreo <a target="_blank" href="http://royal.pingdom.com/2013/01/16/internet-2012-in-numbers/">Royal Pingdom</a> difunde un extenso informe con <strong>cifras acerca del uso de Internet a nivel mundial</strong> que reune datos de muy diferentes fuentes. Aunque ya sabemos que pasa con estos números, sirven para hacernos una idea del estado global de la red, así que vamos a pegarle un repaso a los datos más significativos.<span id="more-12185"></span></p>
<p style="text-align: justify;">Uno de los datos más llamativos es el del <strong>número de sitios web que existen</strong>: 638 millones, habiéndose creado 51 millones de sitios el año pasado. Si miramos atrás, a 2011, el número de sitios creados a lo largo del año ha decrecido en comparación, pues entonces se crearon 300 millones. Sin embargo, ese año fue el anormal: mirando 2008, 2009 y 2010 (los otros años que tienen ellos registrados), la cifra siempre es inferior a 100 millones.</p>
<p style="text-align: justify;">En cuanto al uso del correo electrónico, existen 2,2 mil millones de usuarios, de los cuales 425 millones son usuarios activos de Gmail, convirtiéndose el <strong>servicio de Google en el más usado</strong> del mundo. El porcentaje de spam se ha reducido sensiblemente, pasando del 71% al 68,8% de todo el tráfico de correo. Este es el porcentaje más bajo desde el primer informe de Royal Pingdom, del 2008.</p>
<p style="text-align: justify;">A nivel mundial, el número de usuarios de Internet en general <strong>sigue creciendo</strong>: actualmente hay 2,4 mil millones. En Europa se ha pasado de 476,2 millones a 519 millones, lo que representa un 63,2% de penetración. La región con más penetración es América del Norte con un 78,6%. Sin embargo, la que tiene mayor número de usuarios es Asia, con 44,8% del total.</p>
<p style="text-align: justify;">¿Y <strong>qué navegadores</strong> usan estos usuarios? Royal Pingdom toma los datos de StatCounter para diciembre de 2012. En ellos, vemos que Internet Explorer sigue siendo el rey con un 39%, seguido de Chrome con un 28% y de Firefox con un 25%. Hay que resaltar que estamos hablando de navegadores de escritorio y que, por lo tanto, no se cuentan los dispositivos móviles.</p>
<p style="text-align: justify;">Fuente: Genbeta</p>
]]></content:encoded>
			<wfw:commentRss>http://www.haciendoweb.cult.cu/tras-2012-existen-mas-de-600-millones-de-sitios-web-y-mas-de-2-000-millones-de-usuarios-de-internet-en-el-mundo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.128 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2013-12-12 01:00:44 -->
