<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>El Software Ha Muerto</title>
	
	<link>http://elsoftwarehamuerto.org</link>
	<description>Software Is Dead</description>
	<lastBuildDate>Thu, 05 Jul 2012 14:24:25 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ElSoftwareHaMuerto" /><feedburner:info uri="elsoftwarehamuerto" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Programación de Software Para Audio</title>
		<link>http://feedproxy.google.com/~r/ElSoftwareHaMuerto/~3/z5XVuu01M64/</link>
		<comments>http://elsoftwarehamuerto.org/articulos/504/programacion-de-software-para-audio/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 03:38:56 +0000</pubDate>
		<dc:creator>Rafael Vega</dc:creator>
				<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Programación para audio]]></category>

		<guid isPermaLink="false">http://elsoftwarehamuerto.org/?p=504</guid>
		<description><![CDATA[Estoy a cargo de un grupo de estudio de programación de software para audio. Actualmente nos estamos encontrando los Jueves de 6 a 8 pm en La Miscelánea. La entrada es libre y están tod@s muy invitad@s! Si quieren mas &#8230; <a href="http://elsoftwarehamuerto.org/articulos/504/programacion-de-software-para-audio/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://elsoftwarehamuerto.org/wp-content/uploads/2011/08/2.jpg"><img src="http://elsoftwarehamuerto.org/wp-content/uploads/2011/08/2-300x200.jpg" alt="Flyer Grupo de Programación de Software Para Audio." title="Flyer Grupo de Programación de Software Para Audio." width="300" height="200" class="alignleft size-medium wp-image-599" /></a>Estoy a cargo de un grupo de estudio de programación de software para audio. Actualmente nos estamos encontrando los Jueves de 6 a 8 pm en <a href="http://lamiscelanea.co/" target="_blank">La Miscelánea</a>. La entrada es libre y están tod@s muy invitad@s!<br />
Si quieren mas info o seguir los temas que tocamos en el grupo, suscríbanse a la <a href="http://groups.google.com/group/audioprogramming" title="Lista de Correos" target="_blank">lista de correos</a>.</p>
<h3>Volantes anteriores:</h3>
<p><a href="http://elsoftwarehamuerto.org/wp-content/uploads/2011/08/1.jpg"><img src="http://elsoftwarehamuerto.org/wp-content/uploads/2011/08/1-150x150.jpg" alt="Flyer Programación de Software Para Audio" title="Flyer Programación de Software Para Audio Grande" width="150" height="150" class="alignleft size-thumbnail wp-image-518" /></a> <a href="http://elsoftwarehamuerto.org/wp-content/uploads/2011/08/0.png"><img src="http://elsoftwarehamuerto.org/wp-content/uploads/2011/08/0-150x150.png" alt="" title="0" width="150" height="150" class="alignleft size-thumbnail wp-image-602" /></a></p>
<img src="http://feeds.feedburner.com/~r/ElSoftwareHaMuerto/~4/z5XVuu01M64" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://elsoftwarehamuerto.org/articulos/504/programacion-de-software-para-audio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://elsoftwarehamuerto.org/articulos/504/programacion-de-software-para-audio/</feedburner:origLink></item>
		<item>
		<title>Una lista de comandos y trucos.</title>
		<link>http://feedproxy.google.com/~r/ElSoftwareHaMuerto/~3/AWomI8hdn4c/</link>
		<comments>http://elsoftwarehamuerto.org/articulos/825/comandos-y-trucos/#comments</comments>
		<pubDate>Wed, 16 May 2012 14:33:04 +0000</pubDate>
		<dc:creator>Rafael Vega</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://elsoftwarehamuerto.org/?p=825</guid>
		<description><![CDATA[Comandos y trucos que siempre olvido Administración de usuarios y grupos en Linux 1234567useradd mombre_usuario groupadd nombre_grupo passwd mombre_usuario cat /etc/passwd cat etc/group usermod -a -G nombre_grupo nombre_usuario # Agrega el usuario al grupo secundario usermod -g nombre_grupo nombre_usuario # &#8230; <a href="http://elsoftwarehamuerto.org/articulos/825/comandos-y-trucos/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Comandos y trucos que siempre olvido</p>
<h2>Administración de usuarios y grupos en Linux</h2>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">useradd mombre_usuario<br />
groupadd nombre_grupo<br />
<span style="color: #c20cb9; font-weight: bold;">passwd</span> mombre_usuario<br />
<span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">passwd</span><br />
<span style="color: #c20cb9; font-weight: bold;">cat</span> etc<span style="color: #000000; font-weight: bold;">/</span>group<br />
usermod <span style="color: #660033;">-a</span> <span style="color: #660033;">-G</span> nombre_grupo nombre_usuario <span style="color: #666666; font-style: italic;"># Agrega el usuario al grupo secundario</span><br />
usermod <span style="color: #660033;">-g</span> nombre_grupo nombre_usuario <span style="color: #666666; font-style: italic;"># Cambia el grupo primario del usuario</span></div></td></tr></tbody></table></div>
<h2>Postgres</h2>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># Server:</span><br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #660033;">-u</span> postgres service postgresql start<span style="color: #000000; font-weight: bold;">|</span>stop<span style="color: #000000; font-weight: bold;">|</span>restart <br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #660033;">-u</span> postgres createdb dbname<br />
<br />
<span style="color: #666666; font-style: italic;">#Client:</span><br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #660033;">-u</span> postgres pqsl<br />
<br />
<span style="color: #666666; font-style: italic;">#Set password</span><br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #660033;">-u</span> postgres psql template1<br />
<span style="color: #007800;">template1</span>=<span style="color: #666666; font-style: italic;"># \password</span></div></td></tr></tbody></table></div>
<h2>Buscar y remplazar texto en muchos archivos</h2>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">find</span> ruta<span style="color: #000000; font-weight: bold;">/</span>archivos <span style="color: #660033;">-type</span> f <span style="color: #660033;">-exec</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-i</span> <span style="color: #ff0000;">'s/busqueda/remplazo/g'</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> \;</div></td></tr></tbody></table></div>
<h2>Crear thumbnails de una imagen</h2>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">convert Aab_001.jpg &nbsp;<span style="color: #660033;">-resize</span> 29x29^ <span style="color: #660033;">-gravity</span> center <span style="color: #660033;">-extent</span> 29x29 Aab_001.small.jpg</div></td></tr></tbody></table></div>
<h2>Copia de archivos a un servidor remoto</h2>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">rsync <span style="color: #660033;">-avzu</span> <span style="color: #000000; font-weight: bold;">/</span>ruta<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">local</span> usuario<span style="color: #000000; font-weight: bold;">@</span>host:<span style="color: #000000; font-weight: bold;">/</span>ruta<span style="color: #000000; font-weight: bold;">/</span>en<span style="color: #000000; font-weight: bold;">/</span>servidor <span style="color: #666666; font-style: italic;">#Preserva usuarios, grupos, fechas</span><br />
rsync <span style="color: #660033;">-rvzu</span> <span style="color: #000000; font-weight: bold;">/</span>ruta<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">local</span> usuario<span style="color: #000000; font-weight: bold;">@</span>host:<span style="color: #000000; font-weight: bold;">/</span>ruta<span style="color: #000000; font-weight: bold;">/</span>en<span style="color: #000000; font-weight: bold;">/</span>servidor <span style="color: #666666; font-style: italic;">#No preserva usuarios, grupos, fechas</span></div></td></tr></tbody></table></div>
<h2>Renombrar muchos archivos</h2>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">*</span>; <span style="color: #000000; font-weight: bold;">do</span> <span style="color: #007800;">j</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> . <span style="color: #660033;">-f</span> <span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">`</span>; <span style="color: #007800;">j</span>=<span style="color: #007800;">$j</span><span style="color: #ff0000;">&quot;_32.png&quot;</span>; <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #007800;">$i</span> <span style="color: #007800;">$j</span>; <span style="color: #000000; font-weight: bold;">done</span></div></td></tr></tbody></table></div>
<h2>Limpiar cache de iconos en gnome</h2>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> gtk-update-icon-cache <span style="color: #660033;">--force</span> <span style="color: #000000; font-weight: bold;">&lt;</span>nombre del theme<span style="color: #000000; font-weight: bold;">&gt;</span></div></td></tr></tbody></table></div>
<h2>Cambiar los atajos de teclado de cualquier aplicación en Ubuntu 12.04 y Unity</h2>
<p>Tomado de <a href="http://askubuntu.com/questions/127174/can-change-accels-not-working-on-ubuntu-12-04-and-nautilus" target="_blank">aqui</a>.</p>
<p>Usando gconf-editor, navegar a org->gnome->desktop->interface y activar la opción can-change-accels.</p>
<p>Luego inicie la aplicación que quiere configurar con la opción UBUNTU_MENUPROXY=0. Por ejemplo <code class="codecolorer text railscasts"><span class="text">UBUNTU_MENUPROXY=0 nautilus</span></code>. Ahora puede poner el mouse sobre cualquier opción del menu y teclear el atajo deseado. </p>
<h2>Instalar varias versiones de Ruby con rbenv</h2>
<h3>1. Instalar rbenv y el plugin ruby-build</h3>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</span><br />
<span style="color: #c20cb9; font-weight: bold;">git clone</span> git:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>sstephenson<span style="color: #000000; font-weight: bold;">/</span>rbenv.git .rbenv<br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'export PATH=&quot;$HOME/.rbenv/bin:$PATH&quot;'</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> ~<span style="color: #000000; font-weight: bold;">/</span>.bash_profile<br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'eval &quot;$(rbenv init -)&quot;'</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> ~<span style="color: #000000; font-weight: bold;">/</span>.bash_profile<br />
<br />
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> ~<span style="color: #000000; font-weight: bold;">/</span>.rbenv<span style="color: #000000; font-weight: bold;">/</span>plugins<br />
<span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>.rbenv<span style="color: #000000; font-weight: bold;">/</span>plugins<br />
<span style="color: #c20cb9; font-weight: bold;">git clone</span> git:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>sstephenson<span style="color: #000000; font-weight: bold;">/</span>ruby-build.git<br />
<span style="color: #7a0874; font-weight: bold;">exec</span> <span style="color: #007800;">$SHELL</span></div></td></tr></tbody></table></div>
<h3>2. Instale la versión de ruby que quiera</h3>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">rbenv <span style="color: #c20cb9; font-weight: bold;">install</span> 1.9.2-p290 <span style="color: #660033;">--with-openssl-dir</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">local</span><br />
rbenv rehash</div></td></tr></tbody></table></div>
<h3>3. Use la nueva versión de ruby</h3>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">rbenv global 1.9.2-p320<br />
ruby <span style="color: #660033;">-v</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ElSoftwareHaMuerto/~4/AWomI8hdn4c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://elsoftwarehamuerto.org/articulos/825/comandos-y-trucos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://elsoftwarehamuerto.org/articulos/825/comandos-y-trucos/</feedburner:origLink></item>
		<item>
		<title>Cómo evitar que nautilus dibuje el fondo del escritorio en XFCE.</title>
		<link>http://feedproxy.google.com/~r/ElSoftwareHaMuerto/~3/207_KICRdE0/</link>
		<comments>http://elsoftwarehamuerto.org/articulos/816/como-evitar-que-nautilus-dibuje-el-fondo-del-escritorio-en-xfce/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 13:07:13 +0000</pubDate>
		<dc:creator>Rafael Vega</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://elsoftwarehamuerto.org/?p=816</guid>
		<description><![CDATA[gsettings set org.gnome.desktop.background show-desktop-icons false]]></description>
			<content:encoded><![CDATA[<p><code class="codecolorer bash railscasts"><span class="bash">gsettings <span style="color: #000000; font-weight: bold;">set</span> org.gnome.desktop.background show-desktop-icons <span style="color: #c20cb9; font-weight: bold;">false</span></span></code></p>
<img src="http://feeds.feedburner.com/~r/ElSoftwareHaMuerto/~4/207_KICRdE0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://elsoftwarehamuerto.org/articulos/816/como-evitar-que-nautilus-dibuje-el-fondo-del-escritorio-en-xfce/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://elsoftwarehamuerto.org/articulos/816/como-evitar-que-nautilus-dibuje-el-fondo-del-escritorio-en-xfce/</feedburner:origLink></item>
		<item>
		<title>3. Programación gráfica con &lt;canvas&gt; y Javascript.</title>
		<link>http://feedproxy.google.com/~r/ElSoftwareHaMuerto/~3/oOaqK_JiAO0/</link>
		<comments>http://elsoftwarehamuerto.org/articulos/804/3-programacion-grafica-con-canvas-y-javascript/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 17:09:11 +0000</pubDate>
		<dc:creator>Rafael Vega</dc:creator>
				<category><![CDATA[Cursos]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[processing]]></category>

		<guid isPermaLink="false">http://elsoftwarehamuerto.org/?p=804</guid>
		<description><![CDATA[SVG 12345&#60;svg&#62; &#160; &#160; &#60;circle id=&#34;myCircle&#34; class=&#34;important&#34; cx=&#34;50%&#34; cy=&#34;50%&#34; r=&#34;100&#34; &#160; &#160; &#160; &#160; fill=&#34;url(#myGradient)&#34; &#160; &#160; &#160; &#160; onmousedown=&#34;alert('hello');&#34;/&#62; &#60;/svg&#62; Canvas 2D 12345678910111213&#60;canvas id=&#34;canvas&#34; width=&#34;838&#34; height=&#34;220&#34;&#62;&#60;/canvas&#62; &#60;script&#62; &#160; &#160; var canvasContext = document.getElementById&#40;&#34;canvas&#34;&#41;.getContext&#40;&#34;2d&#34;&#41;; &#160; &#160; canvasContext.fillRect&#40;250, 25, 150, 100&#41;; &#8230; <a href="http://elsoftwarehamuerto.org/articulos/804/3-programacion-grafica-con-canvas-y-javascript/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[ 
 <canvas id="canvas1"></canvas> 
<style type="text/css">
canvas{
width:555px;
height:400px;
</style>
 <script src="/wp-content/uploads/2012/01/jquery-1.7.1.min.js" type="text/javascript" charset="utf-8"></script> 
 <script src="/wp-content/uploads/2012/01/processing-1.3.6.js" type="text/javascript" charset="utf-8"></script> 
 <script type="text/javascript" charset="utf-8">
    function sketchProc(p) {
        var columns = 6;
        var rows = 6;
        var columnWidth, rowHeight;
        var margin = 50; 
         p.setup = function(){
            var w = 555;
            var h = 400;
            p.size(w,h); 
             p.background(255);
            p.colorMode('HSB', 1.0);
            p.noStroke();
            p.smooth(); 
             columnWidth = (p.width - 2*margin) / (columns - 1);
            rowHeight = (p.height - 2*margin) / (rows - 1); 
             for(var r=0;r<rows;r++){
                for(var c=0;c
<columns;c++){
                    drawCircle(r,c,p.width/2,p.height/2);
                }
            }
        }; 
         drawCircle = function(row, col, mouseX, mouseY){ 
             var x = margin + columnWidth*col;
            var y = margin + rowHeight*row; 
             var dx = Math.abs(x - mouseX);
            var dy = Math.abs(y - mouseY);
            var d = Math.sqrt((dx*dx) + (dy*dy));
            var r = 0.6 * d; 
             p.fill(d/p.width, d/p.width, 1.0, 0.8); 
             p.ellipse(x, y, r, r);
        }; 
         p.mouseMoved = function(){
            p.background(255);
            for(var r=0;r<rows;r++){
                for(var c=0;c<columns;c++){
                    drawCircle(r,c, p.mouseX, p.mouseY);
                }
            }
        };
    } 
 var canvas = document.getElementById("canvas1");
var processingInstance = new Processing(canvas, sketchProc);
</script> 

<p><span id="more-804"></span></p>
<h2>SVG</h2>
<div class="codecolorer-container javascript railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>svg<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;</span>circle id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;myCircle&quot;</span> <span style="color: #003366; font-weight: bold;">class</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;important&quot;</span> cx<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;50%&quot;</span> cy<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;50%&quot;</span> r<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;100&quot;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; fill<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;url(#myGradient)&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; onmousedown<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;alert('hello');&quot;</span><span style="color: #339933;">/&gt;</span><br />
<span style="color: #339933;">&lt;/</span>svg<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<h2>Canvas 2D</h2>
<div class="codecolorer-container javascript railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>canvas id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;canvas&quot;</span> width<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;838&quot;</span> height<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;220&quot;</span><span style="color: #339933;">&gt;&lt;/</span>canvas<span style="color: #339933;">&gt;</span><br />
<br />
<span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> canvasContext <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;canvas&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getContext</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;2d&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; canvasContext.<span style="color: #660066;">fillRect</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">250</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">25</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">150</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; canvasContext.<span style="color: #660066;">beginPath</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; canvasContext.<span style="color: #660066;">arc</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">450</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">110</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">,</span> Math.<span style="color: #660066;">PI</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">/</span><span style="color: #CC0000;">2</span><span style="color: #339933;">,</span> Math.<span style="color: #660066;">PI</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">3</span><span style="color: #339933;">/</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; canvasContext.<span style="color: #660066;">lineWidth</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">15</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; canvasContext.<span style="color: #660066;">lineCap</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'round'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; canvasContext.<span style="color: #660066;">strokeStyle</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'rgba(255, 127, 0, 0.5)'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; canvasContext.<span style="color: #660066;">stroke</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<h2>Canvas 3D</h2>
<p>Ejemplos en <a href="http://www.chromeexperiments.com/webgl">http://www.chromeexperiments.com/webgl</a></p>
<div class="codecolorer-container javascript railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>canvas id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;canvas&quot;</span> width<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;838&quot;</span> height<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;220&quot;</span><span style="color: #339933;">&gt;&lt;/</span>canvas<span style="color: #339933;">&gt;</span><br />
<br />
<span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> gl <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;canvas&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getContext</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;experimental-webgl&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; gl.<span style="color: #660066;">viewport</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> canvas.<span style="color: #660066;">width</span><span style="color: #339933;">,</span> canvas.<span style="color: #660066;">height</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; ...<br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<h2>APIs en Javascript para dibujar en &lt;canvas&gt;</h2>
<ul>
<li>
<p>API nativa. Ej, para dibujar un circulo:</p>
<p>gDrawingContext.beginPath();<br />
gDrawingContext.arc(x, y, radius, 0, Math.PI * 2, false);<br />
gDrawingContext.closePath();</p>
<p>gDrawingContext.strokeStyle = "#000";<br />
gDrawingContext.stroke();</p>
</li>
<li>
<p><a href="http://raphaeljs.com/">Raphaeljs</a> <br />
Funciona incluso en browsers que no tienen soporte para &lt;canvas&gt;! <br />
Animaciones basadas en tweening, no proporciona un loop de dibujo como es típico en las librerías de programación gráfica.  </p>
<div class="codecolorer-container javascript railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #003366; font-weight: bold;">var</span> circle <span style="color: #339933;">=</span> paper.<span style="color: #660066;">circle</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">50</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">40</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
</li>
<li>
<p><a href="http://processingjs.org">Processingjs</a>  </p>
</li>
</ul>
<p>Se puede escribir código en javascript o en processing. Se pueden cargar programas hechos en processing e interactuar con otros elementos de la página. Se tiene un poco mas de control sobre el proceso de dibujo y brinda APIs para dibujar, suscribirse a eventos, etc.  </p>
<div class="codecolorer-container javascript railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; ellipse<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">56</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">46</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">55</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">55</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<h2>Ejemplo en Processing.js</h2>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00bbdd;">&lt;!DOCTYPE HTML&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">http-equiv</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;content-type&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/html; charset=utf-8&quot;</span>&gt;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span>Circulos<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">title</span>&gt;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">style</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/css&quot;</span> <span style="color: #000066;">media</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;screen&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; #canvas1{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;width:90%;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;height:90%;<br />
&nbsp; &nbsp; &nbsp; } <br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">style</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;canvas <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;canvas1&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span>canvas&gt;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;jquery-1.7.1.min.js&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">charset</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;utf-8&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;processing-1.3.6.js&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">charset</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;utf-8&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">charset</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;utf-8&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; function sketchProc(p) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var columns = 6;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var rows = 6;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var columnWidth, rowHeight;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var margin = 50;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;p.setup = function(){<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var w = $(window).width();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var h = $(window).height();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p.size(w,h);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p.background(255);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p.colorMode('HSB', 1.0);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p.noStroke();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p.smooth();<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; columnWidth = (p.width - 2*margin) / (columns - 1);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rowHeight = (p.height - 2*margin) / (rows - 1);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(var r=0;r<span style="color: #009900;">&lt;<span style="color: #000066;">rows</span>;r++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">for</span><span style="color: #66cc66;">&#40;</span>var c<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">0</span>;c&lt;columns;c++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;drawCircle<span style="color: #66cc66;">&#40;</span>r,c,p.<span style="color: #000066;">width</span><span style="color: #66cc66;">/</span><span style="color: #cc66cc;">2</span>,p.<span style="color: #000066;">height</span><span style="color: #66cc66;">/</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;</span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span>;</span><br />
<br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; drawCircle <span style="color: #66cc66;">=</span> function<span style="color: #66cc66;">&#40;</span>row, col, mouseX, mouseY<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></span><br />
<br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var x <span style="color: #66cc66;">=</span> margin + columnWidth*col;</span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var y <span style="color: #66cc66;">=</span> margin + rowHeight*row;</span><br />
<br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var dx <span style="color: #66cc66;">=</span> Math.abs<span style="color: #66cc66;">&#40;</span>x - mouseX<span style="color: #66cc66;">&#41;</span>;</span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var dy <span style="color: #66cc66;">=</span> Math.abs<span style="color: #66cc66;">&#40;</span>y - mouseY<span style="color: #66cc66;">&#41;</span>;</span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var d <span style="color: #66cc66;">=</span> Math.sqrt<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>dx*dx<span style="color: #66cc66;">&#41;</span> + <span style="color: #66cc66;">&#40;</span>dy*dy<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var r <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0.6</span> * d;</span><br />
<br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;p.fill<span style="color: #66cc66;">&#40;</span>d<span style="color: #66cc66;">/</span>p.<span style="color: #000066;">width</span>, d<span style="color: #66cc66;">/</span>p.<span style="color: #000066;">width</span>, <span style="color: #cc66cc;">1.0</span>, <span style="color: #cc66cc;">0.8</span><span style="color: #66cc66;">&#41;</span>;</span><br />
<br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;p.ellipse<span style="color: #66cc66;">&#40;</span>x, y, r, r<span style="color: #66cc66;">&#41;</span>;</span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span>;</span><br />
<br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; p.mouseMoved <span style="color: #66cc66;">=</span> function<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;p.<span style="color: #000066;">background</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>;</span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000066;">for</span><span style="color: #66cc66;">&#40;</span>var r<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">0</span>;r&lt;<span style="color: #000066;">rows</span>;r++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">for</span><span style="color: #66cc66;">&#40;</span>var c<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">0</span>;c&lt;columns;c++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;drawCircle<span style="color: #66cc66;">&#40;</span>r,c, p.mouseX, p.mouseY<span style="color: #66cc66;">&#41;</span>;</span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span>;</span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span></span><br />
<br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp;var canvas <span style="color: #66cc66;">=</span> document.getElementById<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;canvas1&quot;</span><span style="color: #66cc66;">&#41;</span>;</span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp;var processingInstance <span style="color: #66cc66;">=</span> new Processing<span style="color: #66cc66;">&#40;</span>canvas, sketchProc<span style="color: #66cc66;">&#41;</span>;</span><br />
<span style="color: #009900;"> &nbsp; &lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></div></td></tr></tbody></table></div>
<h2>Ejercicio</h2>
<p>Programe un reloj análogo con Processing.js</p>
<img src="http://feeds.feedburner.com/~r/ElSoftwareHaMuerto/~4/oOaqK_JiAO0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://elsoftwarehamuerto.org/articulos/804/3-programacion-grafica-con-canvas-y-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://elsoftwarehamuerto.org/articulos/804/3-programacion-grafica-con-canvas-y-javascript/</feedburner:origLink></item>
		<item>
		<title>2. Introducción a Javascript.</title>
		<link>http://feedproxy.google.com/~r/ElSoftwareHaMuerto/~3/Z0ftE4zUlRs/</link>
		<comments>http://elsoftwarehamuerto.org/articulos/799/2-introduccion-a-javascript/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 17:03:47 +0000</pubDate>
		<dc:creator>Rafael Vega</dc:creator>
				<category><![CDATA[Cursos]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://elsoftwarehamuerto.org/?p=799</guid>
		<description><![CDATA[Lenguaje de scripting típicamente usado para controlar el funcionamiento de un navegador web y para agregar interactividad a documentos HTML. También utilizado como lenguaje de scripting de propósito general y para programar lógica del lado del servidor en aplicaciones web. &#8230; <a href="http://elsoftwarehamuerto.org/articulos/799/2-introduccion-a-javascript/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<ul>
<li>
<p>Lenguaje de scripting típicamente usado para controlar el funcionamiento de un navegador web y para agregar interactividad a documentos HTML.</p>
</li>
<li>
<p>También utilizado como lenguaje de scripting de propósito general y para programar lógica del lado del servidor en aplicaciones web. Ver <a href="http://nodejs.org">Nodejs</a> Muy recomendado!!!  Por ejemplo: Crear un servidor web con javascript y nodejs es re-fácil:  </p>
<div class="codecolorer-container javascript railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #003366; font-weight: bold;">var</span> http <span style="color: #339933;">=</span> require<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'http'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<br />
http.<span style="color: #660066;">createServer</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>request<span style="color: #339933;">,</span> response<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; response.<span style="color: #660066;">writeHead</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">200</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span><span style="color: #3366CC;">'Content-Type'</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'text/plain'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; response.<span style="color: #660066;">end</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Hello World<span style="color: #000099; font-weight: bold;">\n</span>'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">listen</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">8124</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<br />
console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Server running at http://127.0.0.1:8124/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Para correr el servidor, ponga el código anterior en un archivo llamado servidor.js y ejecute la siguiente línea en una terminal:</p>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span>node servidor.js</div></td></tr></tbody></table></div>
</li>
</ul>
<h2>Sintaxis</h2>
<div class="codecolorer-container javascript railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #006600; font-style: italic;">// Tomado sin permiso de http://javascript.infogami.com/Javascript_in_Ten_Minutes</span><br />
<br />
<span style="color: #006600; font-style: italic;">//////////////////////////////////////</span><br />
<span style="color: #006600; font-style: italic;">// Basic Types</span><br />
<span style="color: #003366; font-weight: bold;">var</span> intValue <span style="color: #339933;">=</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span><br />
<span style="color: #003366; font-weight: bold;">var</span> floatValue <span style="color: #339933;">=</span> <span style="color: #CC0000;">3.0</span><span style="color: #339933;">;</span><br />
<span style="color: #003366; font-weight: bold;">var</span> stringValue <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;This is a string<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #006600; font-style: italic;">///////////////////////////////////////</span><br />
<span style="color: #006600; font-style: italic;">// Array</span><br />
<span style="color: #003366; font-weight: bold;">var</span> emptyList <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #003366; font-weight: bold;">var</span> homogenousList <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #003366; font-weight: bold;">var</span> heterogenousList <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;one&quot;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">3.0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #006600; font-style: italic;">///////////////////////////////////////</span><br />
<span style="color: #006600; font-style: italic;">// Property Map</span><br />
<span style="color: #006600; font-style: italic;">//</span><br />
<span style="color: #003366; font-weight: bold;">var</span> emptyMap <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span><br />
<span style="color: #003366; font-weight: bold;">var</span> homogenousMap <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #3366CC;">&quot;one&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;two&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;three&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">3</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span><br />
<span style="color: #003366; font-weight: bold;">var</span> heterogenousMap <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #3366CC;">&quot;one&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #3366CC;">&quot;two&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;two&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #3366CC;">&quot;three&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">3.0</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #006600; font-style: italic;">///////////////////////////////////////</span><br />
<span style="color: #006600; font-style: italic;">// Functions as values</span><br />
<span style="color: #006600; font-style: italic;">//</span><br />
<span style="color: #003366; font-weight: bold;">var</span> callable <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>message<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #006600; font-style: italic;">// &lt;-- notice assignment</span><br />
&nbsp; &nbsp; window.<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Callable called with message = &quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #339933;">+</span> message<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #003366; font-weight: bold;">function</span> createClosure<span style="color: #009900;">&#40;</span>initial<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> res <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; initial <span style="color: #339933;">=</span> initial <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; window.<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Closure with modified state &quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #339933;">+</span> initial<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> res<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #006600; font-style: italic;">///////////////////////////////////////</span><br />
<span style="color: #006600; font-style: italic;">// Functions as arguments</span><br />
<span style="color: #006600; font-style: italic;">//</span><br />
<span style="color: #003366; font-weight: bold;">function</span> callCallable<span style="color: #009900;">&#40;</span>f<span style="color: #339933;">,</span> x<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; f<span style="color: #009900;">&#40;</span>x<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #003366; font-weight: bold;">function</span> composeCallables<span style="color: #009900;">&#40;</span>f<span style="color: #339933;">,</span> g<span style="color: #339933;">,</span> x<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; f<span style="color: #009900;">&#40;</span>g<span style="color: #009900;">&#40;</span>x<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #006600; font-style: italic;">///////////////////////////////////////</span><br />
<span style="color: #006600; font-style: italic;">// Objects</span><br />
<span style="color: #006600; font-style: italic;">//</span><br />
<span style="color: #003366; font-weight: bold;">function</span> MyObject<span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #339933;">,</span> value<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #000066;">name</span> <span style="color: #339933;">=</span> <span style="color: #000066;">name</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">value</span> <span style="color: #339933;">=</span> value<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #006600; font-style: italic;">///////////////////////////////////////</span><br />
<span style="color: #006600; font-style: italic;">// Objects with Member Functions</span><br />
<span style="color: #006600; font-style: italic;">//</span><br />
<span style="color: #003366; font-weight: bold;">function</span> Message<span style="color: #009900;">&#40;</span>message<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">message</span> <span style="color: #339933;">=</span> message<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
Message.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">show</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; window.<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Message.show() with message = &quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #339933;">+</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">message</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<h2>Document Object Model</h2>
<p>El DOM es una representación programática de un documento XML o HTML. En un navegador, se utiliza para acceder o modificar secciones del documento HTML que se está visualizando usando Javascript.</p>
<p>Un ejemplo simple:</p>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;article <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;primer_articulo&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>Titulo del artículo<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;resumen&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://foo.com/bar.jpg&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Una foto cuadrada y nítida&quot;</span>&gt;</span>Blah Blah Blah Blah<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>article&gt;</span><br />
<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span><br />
&nbsp; &nbsp; var image = document.getElementById('primer_articulo').childNodes[3].childNodes[0];<br />
&nbsp; &nbsp; for( var x = 0; x <span style="color: #009900;">&lt; image.attributes.length; x++ <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp;if<span style="color: #66cc66;">&#40;</span> image.attributes<span style="color: #66cc66;">&#91;</span>x<span style="color: #66cc66;">&#93;</span>.nodeName.toLowerCase<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">==</span> <span style="color: #ff0000;">'alt'</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;window.alert<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'El alt de la imagen es: '</span> + image.attributes<span style="color: #66cc66;">&#91;</span>x<span style="color: #66cc66;">&#93;</span>.nodeValue <span style="color: #66cc66;">&#41;</span>;</span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span></span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span></div></td></tr></tbody></table></div>
<h2>jQuery</h2>
<p>El problema con la API del DOM es que no es muy compacta y existen muchas diferencias entre las implementaciones en diferentes navegadores. Como ejemplo mire <a href="http://www.howtocreate.co.uk/tutorials/javascript/domevents">este artículo</a> que discute en mas de 5000 palabras como suscribirse a un evento click </p>
<p>Una alternativa altamente adoptada es la librería <a href="http://jquery.com/">jQuery</a> que brinda una API mucho mas compacta, métodos que encapsulan las diferencias entre navegadores y otras APIs para diferentes tareas como ajax, </p>
<p>Un ejemplo:</p>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00bbdd;">&lt;!DOCTYPE HTML&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">http-equiv</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;content-type&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/html; charset=utf-8&quot;</span>&gt;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span>Parrafos<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">title</span>&gt;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">style</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/css&quot;</span> <span style="color: #000066;">media</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;screen&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; p {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;font-family: &quot;Helvetica Neue&quot;, &quot;Helvetica&quot;, &quot;Arial&quot;, &quot;sans-serif&quot;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;font-size:18px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;color: #333;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;border: 1px solid #AAA; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;width:400px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;margin:20px auto;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cursor: pointer;<br />
&nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">style</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span> Readymade quinoa beard shoreditch bicycle rights. Synth tofu ethical, biodiesel before they sold out PBR messenger bag readymade mcsweeney’s seitan echo park brooklyn pitchfork wayfarers tumblr. Quinoa bicycle rights salvia, mlkshk carles yr tattooed marfa high life helvetica artisan wayfarers next level butcher gluten-free. &nbsp;<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span> Readymade quinoa beard shoreditch bicycle rights. Synth tofu ethical, biodiesel before they sold out PBR messenger bag readymade mcsweeney’s seitan echo park brooklyn pitchfork wayfarers tumblr. Quinoa bicycle rights salvia, mlkshk carles yr tattooed marfa high life helvetica artisan wayfarers next level butcher gluten-free. &nbsp;<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span> Readymade quinoa beard shoreditch bicycle rights. Synth tofu ethical, biodiesel before they sold out PBR messenger bag readymade mcsweeney’s seitan echo park brooklyn pitchfork wayfarers tumblr. Quinoa bicycle rights salvia, mlkshk carles yr tattooed marfa high life helvetica artisan wayfarers next level butcher gluten-free. &nbsp;<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span> Readymade quinoa beard shoreditch bicycle rights. Synth tofu ethical, biodiesel before they sold out PBR messenger bag readymade mcsweeney’s seitan echo park brooklyn pitchfork wayfarers tumblr. Quinoa bicycle rights salvia, mlkshk carles yr tattooed marfa high life helvetica artisan wayfarers next level butcher gluten-free. &nbsp;<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span><br />
<br />
<br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;jquery-1.7.1.min.js&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;jquery.color.min.js&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">charset</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;utf-8&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; $(document).ready(function(){<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$('p').click(function(){<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$('p').animate({<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'color':&quot;#333&quot;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'font-size': '18px',<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'padding': '0px'<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;});<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $(this).animate({<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'color':&quot;#0000AA&quot;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'font-size': '22px',<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'padding': '10px'<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; });<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}); &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; });<br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></div></td></tr></tbody></table></div>
<h2>Algunas cosas nuevas en HTML5</h2>
<h3>Almacenamiento local de datos</h3>
<div class="codecolorer-container javascript railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">window.<span style="color: #660066;">localStorage</span>.<span style="color: #660066;">setItem</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'value'</span><span style="color: #339933;">,</span> area.<span style="color: #660066;">value</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
window.<span style="color: #660066;">localStorage</span>.<span style="color: #660066;">setItem</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timestamp'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<h3>Bases de datos locales</h3>
<div class="codecolorer-container javascript railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #003366; font-weight: bold;">var</span> db <span style="color: #339933;">=</span> window.<span style="color: #660066;">openDatabase</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;DBName&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;1.0&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;description&quot;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">5</span><span style="color: #339933;">*</span><span style="color: #CC0000;">1024</span><span style="color: #339933;">*</span><span style="color: #CC0000;">1024</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//5MB</span><br />
db.<span style="color: #660066;">transaction</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>tx<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;tx.<span style="color: #660066;">executeSql</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;SELECT * FROM test&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> successCallback<span style="color: #339933;">,</span> errorCallback<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<h3>Cache de aplicaciones</h3>
<p>Permite cargar un documento una vez y utilizarlo después cuando no haya conexión a internet.</p>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span> manifest<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;cache.appcache&quot;</span>&gt;</span><br />
<br />
---<br />
<br />
window.applicationCache.addEventListener('updateready', function(e) {<br />
&nbsp; if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {<br />
&nbsp; &nbsp; window.applicationCache.swapCache();<br />
&nbsp; &nbsp; if (confirm('A new version of this site is available. Load it?')) {<br />
&nbsp; &nbsp; &nbsp; window.location.reload();<br />
&nbsp; &nbsp; }<br />
&nbsp; }<br />
}, false);<br />
<br />
--- <br />
cache.appcache:<br />
<br />
CACHE MANIFEST<br />
# version 1.0.0<br />
<br />
CACHE:<br />
/html5/src/logic.js<br />
/html5/src/style.css<br />
/html5/src/background.png<br />
<br />
NETWORK:<br />
*</div></td></tr></tbody></table></div>
<h3>Web workers</h3>
<p>Permiten iniciar hilos de ejecución paralelos, haciendo que las aplicaciones respondan mucho mejor.</p>
<div class="codecolorer-container javascript railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #006600; font-style: italic;">// En main.js:</span><br />
<span style="color: #003366; font-weight: bold;">var</span> worker <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Worker<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'task.js'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
worker.<span style="color: #660066;">onmessage</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span><br />
worker.<span style="color: #660066;">postMessage</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'data'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #006600; font-style: italic;">// En tasks.js</span><br />
self.<span style="color: #660066;">onmessage</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #006600; font-style: italic;">// Do some work.</span><br />
&nbsp; &nbsp; self.<span style="color: #660066;">postMessage</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;recv'd: &quot;</span> <span style="color: #339933;">+</span> event.<span style="color: #660066;">data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<h3>Web sockets</h3>
<p>Permiten dejar establecida la comunicación con un servidor. </p>
<div class="codecolorer-container javascript railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #003366; font-weight: bold;">var</span> socket <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> WebSocket<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ws://html5rocks.websocket.org/echo'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
socket.<span style="color: #660066;">onopen</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; socket.<span style="color: #660066;">send</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Hello, WebSocket'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span><br />
socket.<span style="color: #660066;">onmessage</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><br />
socket.<span style="color: #660066;">onclose</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'closed'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<h3>Notificaciones</h3>
<p>Permiten mostrar un mensaje por fuera de la ventana del navegador, incluso cuando está minimizado.</p>
<div class="codecolorer-container javascript railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>window.<span style="color: #660066;">webkitNotifications</span>.<span style="color: #660066;">checkPermission</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; window.<span style="color: #660066;">webkitNotifications</span>.<span style="color: #660066;">createNotification</span><span style="color: #009900;">&#40;</span>imagen<span style="color: #339933;">,</span> titulo<span style="color: #339933;">,</span> texto<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span> <br />
<span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; window.<span style="color: #660066;">webkitNotifications</span>.<span style="color: #660066;">requestPermission</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<h3>Geo-locación</h3>
<p>Permite preguntar al sistema operativo la ubicación geográfica del usuario.</p>
<div class="codecolorer-container javascript railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>navigator.<span style="color: #660066;">geolocation</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; navigator.<span style="color: #660066;">geolocation</span>.<span style="color: #660066;">getCurrentPosition</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>position<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> latLng <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> google.<span style="color: #660066;">maps</span>.<span style="color: #660066;">LatLng</span><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; position.<span style="color: #660066;">coords</span>.<span style="color: #660066;">latitude</span><span style="color: #339933;">,</span> position.<span style="color: #660066;">coords</span>.<span style="color: #660066;">longitude</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> marker <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> google.<span style="color: #660066;">maps</span>.<span style="color: #660066;">Marker</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>position<span style="color: #339933;">:</span> latLng<span style="color: #339933;">,</span> map<span style="color: #339933;">:</span> map<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; map.<span style="color: #660066;">setCenter</span><span style="color: #009900;">&#40;</span>latLng<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> errorHandler<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<h2>Ejercicios</h2>
<ol>
<li>Programe un carrusel de imágenes usando html, css y javascript.</li>
</ol>
<img src="http://feeds.feedburner.com/~r/ElSoftwareHaMuerto/~4/Z0ftE4zUlRs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://elsoftwarehamuerto.org/articulos/799/2-introduccion-a-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://elsoftwarehamuerto.org/articulos/799/2-introduccion-a-javascript/</feedburner:origLink></item>
		<item>
		<title>Taller HTML5</title>
		<link>http://feedproxy.google.com/~r/ElSoftwareHaMuerto/~3/HJyb3mdU06A/</link>
		<comments>http://elsoftwarehamuerto.org/articulos/779/779/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 22:36:24 +0000</pubDate>
		<dc:creator>Rafael Vega</dc:creator>
				<category><![CDATA[Cursos]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://elsoftwarehamuerto.org/?p=779</guid>
		<description><![CDATA[Esquema del curso Introducción a HTML y CSS. Introducción a Javascript. Programación gráfica con &#60;canvas&#62; y Javascript. Programación de aplicaciones estilo escritorio. HTML5 como sistema de desarrollo para aplicaciones móviles y de escritorio. 1. Introducción a HTML y CSS. Definición &#8230; <a href="http://elsoftwarehamuerto.org/articulos/779/779/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2>Esquema del curso</h2>
<ol>
<li>Introducción a HTML y CSS.</li>
<li>Introducción a Javascript.</li>
<li>Programación gráfica con &lt;canvas&gt; y Javascript.</li>
<li>Programación de aplicaciones estilo escritorio.</li>
<li>HTML5 como sistema de desarrollo para aplicaciones móviles y de escritorio.</li>
</ol>
<h1>1. Introducción a HTML y CSS.</h1>
<h2>Definición</h2>
<p>Hipertext Markup Language es un lenguage para anotar texto de manera que sea sintácticamente distinguible de ese texto. Es usado por los navegadores web para describir e interpretar documentos de texto, imágenes y sonido y presentarlos como páginas web audibles o visibles.</p>
<p><span id="more-779"></span></p>
<h2>Historia</h2>
<ul>
<li>1980 Tim Berners-Lee.</li>
<li>World Wide Web Consortium.</li>
<li>CSS + Javascript</li>
<li>HTML 4.01</li>
<li>XHTML.</li>
<li>AJAX y los desarrolladores haciendo aplicaciones con un lenguaje de marcado!! </li>
<li>HTML Semántico, CSS y el horror de las tablas.</li>
<li>2005 HTML5</li>
</ul>
<p>La historia antediluviana de HTML: <a href="http://atendesigngroup.com/blog/brief-history-of-html">http://atendesigngroup.com/blog/brief-history-of-html</a></p>
<h2>HTML5 ~= HTML + JavaScript + CSS</h2>
<p>HTML5 No es una sola cosa. Así como la web, es un gran hack de tecnologías que en principio no fueron diseñadas para trabajar juntas.</p>
<h2>Una Introducción al marcado de documentos con HTML5</h2>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00bbdd;">&lt;!DOCTYPE HTML&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span> <span style="color: #000066;">lang</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;es&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">charset</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;utf-8&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span>Este es el título de la página<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">title</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>Este es un encabezado<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Y aquí va un parrafo<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span> <br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>Otro encabezado de menor nivel<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Y otro parrafo mas largo, con una imágen <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://elsoftwarehamuerto.org/wp-content/uploads/2011/06/1-300x220.jpg&quot;</span>&gt;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; y un <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://elsoftwarehamuerto.org&quot;</span> <span style="color: #000066;">target</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;_blank&quot;</span>&gt;</span>link<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>. Craft beer art party vice, mcsweeney's mlkshk wayfarers lo-fi helvetica vegan stumptown. Williamsburg echo park banh mi whatever +1, next level VHS four loko sartorial. Freegan letterpress shoreditch gluten-free you probably haven't heard of them, jean shorts sustainable tattooed williamsburg. Wayfarers readymade locavore trust fund, mlkshk shoreditch brooklyn artisan next level. Cosby sweater locavore jean shorts mustache. Williamsburg cred cliche PBR thundercats carles artisan freegan, cardigan american apparel. High life farm-to-table brooklyn, sartorial shoreditch aesthetic sustainable lomo pitchfork mustache salvia skateboard terry richardson banh mi scenester.<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span> <br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></div></td></tr></tbody></table></div>
<h3>Servicios de validación de marcado</h3>
<p><a href="http://validator.w3.org/">http://validator.w3.org/</a></p>
<h3>Una herramienta indispensable</h3>
<p><a href="http://getfirebug.com/"> http://getfirebug.com/</a></p>
<h3>Algunas etiquetas y propiedades (clásicas)</h3>
<ul>
<li>
<p><strong>&lt;!-- --&gt;</strong> Comentario. Sirve para hacer en anotaciones en el documento que no serán visibles en el navegador</p>
</li>
<li>
<p><strong>&lt;a&gt;</strong> El vinculo, la etiqueta que hizo posible la web.  </p>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://elsoftwarehamuerto.org&quot;</span> <span style="color: #000066;">target</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;_blank&quot;</span>&gt;</span>Abre un vinculo externo en una nueva ventana del explorador<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span> &nbsp;<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;/contact&quot;</span>.html<span style="color: #ff0000;">&quot;&gt;</span></span>Abre un vinculo local en la misma ventana del navegador<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span></div></td></tr></tbody></table></div>
</li>
<li>
<p><strong>&lt;img&gt;</strong> Imágen.  </p>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.templatesheaven.com/blog/wp-content/uploads/2009/03/html.jpg&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Homeless guy holding a sign that reads 'Will code HTML for food'&quot;</span>&gt;</span></div></td></tr></tbody></table></div>
</li>
<li>
<p><strong>&lt;p&gt;</strong> Un parrafo.  </p>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Blah blah blah!<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span></div></td></tr></tbody></table></div>
</li>
<li>
<p><strong>&lt;h1&gt;, &lt;h2&gt;, ... ,&lt;h6&gt;</strong> Encabezados.  </p>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>1. Título<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span> &nbsp; <br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>1.1. Subtítulo<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span></div></td></tr></tbody></table></div>
</li>
<li>
<p><strong>&lt;ol&gt;, &lt;ul&gt; y &lt;li&gt;</strong> Listas  </p>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ol</span>&gt;</span> &nbsp;<br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>Una<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span> &nbsp; <br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>Lista<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span> &nbsp; <br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>Con<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span> &nbsp; <br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>Números<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span> &nbsp; <br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ol</span>&gt;</span> &nbsp;<br />
<br />
<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ol</span>&gt;</span> &nbsp;<br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>Una<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span> &nbsp; <br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>Lista<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span> &nbsp; <br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>Con<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span> &nbsp; <br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>Números<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span> &nbsp; <br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ol</span>&gt;</span></div></td></tr></tbody></table></div>
</li>
<li>
<p><strong>&lt;div&gt; y &lt;span&gt;</strong> son contenedores genéricos </p>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;seccion_1&quot;</span>&gt;</span> ... <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span><br />
<br />
<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;termino_glosario&quot;</span>&gt;</span>...<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span></div></td></tr></tbody></table></div>
</li>
<li>
<p><strong>&lt;form&gt; e &lt;input&gt;</strong> Formularios, campos y botónes.</p>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">form</span> <span style="color: #000066;">action</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;/submit.php&quot;</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span> <span style="color: #000066;">accept-charset</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;utf-8&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">fieldset</span> legend<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Datos Personales&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;campo&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">label</span> <span style="color: #000066;">for</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;nombres&quot;</span>&gt;</span>Escriba sus nombres:<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">label</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;nombres&quot;</span>&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;campo&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">label</span> <span style="color: #000066;">for</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;apelliidos&quot;</span>&gt;</span>Escriba sus apellidos:<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">label</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;nombres&quot;</span>&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Enviar&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">fieldset</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">form</span>&gt;</span></div></td></tr></tbody></table></div>
</li>
<li>
<p><strong>&lt;table&gt;</strong></p>
</li>
<li>
<p><strong>class y id</strong></p>
</li>
</ul>
<h4>Documentación de todas las etiquetas disponibles</h4>
<p><a href="http://www.w3schools.com/http://www.w3schools.com/">http://www.w3schools.com/http://www.w3schools.com/</a></p>
<h3>Algunas etiquetas nuevas en HTML5</h3>
<ul>
<li>
<p><strong>&lt;section&gt;</strong> Representa una sección de un documento.</p>
</li>
<li>
<p><strong>&lt;nav&gt;</strong> Representa la sección de un documento que contiene los vinculos de navegación de un sitio</p>
</li>
<li>
<p><strong>&lt;article&gt;</strong> Una composición auto-contenida como un artículo, página, aplicación, una entrada en un blog, etc.</p>
</li>
<li>
<p><strong>&lt;header&gt;</strong> El encabezado de una sección.</p>
</li>
<li>
<p><strong>&lt;footer&gt;</strong> La &quot;pata&quot; de una página o sección.</p>
</li>
<li>
<p><strong>&lt;time&gt;</strong> Una hora o una fecha.</p>
</li>
</ul>
<h4>Mas info sobre etiquetas y semántica:</h4>
<p><a href="http://diveintohtml5.info/semantics.html">http://diveintohtml5.info/semantics.html</a></p>
<h3>Algunas etiquetas nuevas en HTML5 (Para formularios/apps)</h3>
<ul>
<li>
<p>&lt;meter min=&quot;0&quot; max=&quot;100&quot; low=&quot;40&quot; high=&quot;90&quot; optimum=&quot;100&quot; value=&quot;91&quot;&gt;A+&lt;/meter&gt;</p>
</li>
<li>
<p>&lt;progress value=&quot;75&quot; max=&quot;100&quot;&gt;3/4 complete&lt;/progress&gt;</p>
</li>
<li>
<p>&lt;input type=&quot;text&quot; required /&gt;</p>
</li>
<li>
<p>&lt;input type=&quot;range&quot; min=&quot;0&quot; max=&quot;50&quot; value=&quot;10&quot; /&gt;</p>
</li>
<li>
<p>&lt;input type=&quot;search&quot; results=&quot;10&quot; placeholder=&quot;Search...&quot; /&gt;</p>
</li>
<li>
<p>&lt;input type=&quot;tel&quot;  placeholder=&quot;(555) 555-5555&quot; pattern=&quot;^(?\d{3})?[-\s]\d{3}[-\s]\d{4}.*?$&quot; /&gt;</p>
</li>
<li>
<p>&lt;input type=&quot;color&quot; placeholder=&quot;e.g. #bbbbbb&quot; /&gt;</p>
</li>
</ul>
<h4>Mas info sobre formularios</h4>
<p><a href="http://diveintohtml5.info/forms.html#type-range">http://diveintohtml5.info/forms.html#type-range</a></p>
<h3>Etiquetas para multimedia</h3>
<ul>
<li>
<p>&lt;video&gt;</p>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;video <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;320&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;240&quot;</span> controls&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;source <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;pr6.mp4&quot;</span> &nbsp;<span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'video/mp4; codecs=&quot;avc1.42E01E, mp4a.40.2&quot;'</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;source <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;pr6.webm&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'video/webm; codecs=&quot;vp8, vorbis&quot;'</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;source <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;pr6.ogv&quot;</span> &nbsp;<span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'video/ogg; codecs=&quot;theora, vorbis&quot;'</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>video&gt;</span></div></td></tr></tbody></table></div>
</li>
<li>
<p>&lt;audio&gt;</p>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;audio controls<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;controls&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;source <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;song.ogg&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;audio/ogg&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;source <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;song.mp3&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;audio/mp3&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
&nbsp; &nbsp; Your browser does not support the audio tag.<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>audio&gt;</span></div></td></tr></tbody></table></div>
</li>
<li>
<p><a href="http://jplayer.org/">http://jplayer.org/</a></p>
</li>
<li>
<p>&lt;canvas&gt;</p>
</li>
<li>
<p>&lt;svg&gt;</p>
</li>
</ul>
<h4>Mas Info</h4>
<p><a href="http://net.tutsplus.com/tutorials/html-css-techniques/html5-audio-and-video-what-you-must-know/">http://net.tutsplus.com/tutorials/html-css-techniques/html5-audio-and-video-what-you-must-know/</a></p>
<h2>Una Introducción a los estilos con CSS</h2>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00bbdd;">&lt;!DOCTYPE HTML&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span> <span style="color: #000066;">lang</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;es&quot;</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">http-equiv</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;content-type&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/html; charset=utf-8&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;stylesheet&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;style.css&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/css&quot;</span>&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">style</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/css&quot;</span> <span style="color: #000066;">media</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;screen&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;h1{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; color:#444444;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; font-family: &quot;Helvetica Neue&quot;, &quot;Helvetica&quot;, &quot;Verdana&quot;, &quot;Arial&quot;, &quot;sans-serif&quot;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; font-size: 22px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.palabra_rara{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; color: #FF0000;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; font-weight: strong;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#segundo_parrafo{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; position:absolute;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; border: 1px solid #0000FF;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; top: 320px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; left: 110px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; width: 80px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; height: 80px;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">style</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>El Título<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Palabras, palabras, <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;palabra_rara&quot;</span>&gt;</span>sarbalap<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras, palabras<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;segundo_parrafo&quot;</span>&gt;</span>Palabras, palabras, palabras<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Palabras, palabras, <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;palabra_rara&quot;</span>&gt;</span>sarbalap<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>, palabras<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></div></td></tr></tbody></table></div>
<ul>
<li>
<p>Selectores</p>
<div class="codecolorer-container css railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">p <span style="color: #00AA00;">&#123;</span> <span style="color: #808080; font-style: italic;">/*...*/</span> <span style="color: #00AA00;">&#125;</span><br />
p span <span style="color: #00AA00;">&#123;</span> <span style="color: #808080; font-style: italic;">/*...*/</span> <span style="color: #00AA00;">&#125;</span><br />
<span style="color: #6666ff;">.azul</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #808080; font-style: italic;">/*...*/</span> <span style="color: #00AA00;">&#125;</span><br />
span<span style="color: #6666ff;">.azul</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #808080; font-style: italic;">/*...*/</span> <span style="color: #00AA00;">&#125;</span><br />
<span style="color: #cc00cc;">#el_titulo</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #808080; font-style: italic;">/*...*/</span> <span style="color: #00AA00;">&#125;</span><br />
<span style="color: #cc00cc;">#el_titulo</span> h2 <span style="color: #00AA00;">&#123;</span> <span style="color: #808080; font-style: italic;">/*...*/</span> <span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
</li>
<li>
<p>Block vs Inline</p>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;el_div&quot;</span>&gt;</span>lo que sea...<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span><br />
<br />
<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;el_span&quot;</span>&gt;</span>lo que sea...<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span><br />
<br />
<br />
/* OK: */<br />
#el_div{<br />
&nbsp; width:20px;<br />
&nbsp; height:40px;<br />
}<br />
<br />
<br />
/* NO OK: */<br />
#el_span{<br />
&nbsp; width:20px;<br />
&nbsp; height:40px;<br />
}</div></td></tr></tbody></table></div>
</li>
<li>
<p>Posicion absoluta vs Document Flow (ver #segundo_parrafo en el ej de arriba)</p>
</li>
<li>
<p>Referencia: <a href="http://www.w3schools.com/css/http://www.w3schools.com/css/">http://www.w3schools.com/css/http://www.w3schools.com/css/</a></p>
</li>
</ul>
<h2>Nuevo en CSS3</h2>
<h3>Selectores</h3>
<pre>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">.row:nth-child(even) {<br />
&nbsp; background: #dde;<br />
}<br />
<br />
.row:nth-child(odd) {<br />
&nbsp; background: white;<br />
}<br />
<br />
input[type=&quot;text&quot;] {<br />
&nbsp; background: #eee;<br />
}<br />
<br />
:not(span) {<br />
&nbsp; display: block; <br />
} &nbsp;<br />
<br />
h2:first-child { ... }<br />
<br />
div.text &amp;gt; div { ... } <br />
<br />
h2 + header { ... } /* Un header que esté precedido de un h2*/</div></td></tr></tbody></table></div>
</pre>
<h3>Fuentes</h3>
<pre>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">@font-face {<br />
&nbsp; &nbsp; font-family: 'LeagueGothic';<br />
&nbsp; &nbsp; src: url(LeagueGothic.otf);<br />
}</div></td></tr></tbody></table></div>
</pre>
<h3>Gradientes, sombras, opacidad y esquinas redondas</h3>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;nav&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Link<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Link<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Link<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>nav&gt;</span><br />
<br />
<span style="color: #009900;">&lt;header&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>El título<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>header&gt;</span><br />
<br />
nav {<br />
&nbsp; &nbsp; background: rgba(0, 0, 0, 255, 0.75); <br />
&nbsp; &nbsp; color: rgba(255, 0, 0, 0.5);<br />
&nbsp; &nbsp; border-radius: 5px;<br />
}<br />
<br />
header{<br />
&nbsp; &nbsp; background: -moz-linear-gradient(top, #1e5799 0%, #7db9e8 100%); <br />
&nbsp; &nbsp; background: -webkit-linear-gradient(top, #1e5799 0%,#7db9e8 100%);<br />
}</div></td></tr></tbody></table></div>
<h3>Animaciones</h3>
<div class="codecolorer-container html4strict railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">h1{<br />
&nbsp; &nbsp; color:#333333;<br />
&nbsp; &nbsp; font-family: &quot;Helvetica Neue&quot;, &quot;Helvetica&quot;, &quot;Verdana&quot;, &quot;Arial&quot;, &quot;sans-serif&quot;;<br />
&nbsp; &nbsp; font-size: 22px;<br />
&nbsp; &nbsp; -moz-animation-duration:1s;<br />
&nbsp; &nbsp; -moz-animation-name: slidein;<br />
}<br />
<br />
@-moz-keyframes slidein{<br />
&nbsp; &nbsp; from{<br />
&nbsp; &nbsp; &nbsp; &nbsp;padding-left:100%;<br />
&nbsp; &nbsp; &nbsp; &nbsp;width: 300%;<br />
&nbsp; &nbsp; to{<br />
&nbsp; &nbsp; &nbsp; &nbsp;padding-left:0%;<br />
&nbsp; &nbsp; &nbsp; &nbsp;width: 100%;<br />
&nbsp; &nbsp; }<br />
}</div></td></tr></tbody></table></div>
<h2>Ejercicio</h2>
<p>Escriba el código HTML y CSS para el siguiente formulario:</p>
<p>
<a href="http://elsoftwarehamuerto.org/wp-content/uploads/2012/01/login.png"><img src="http://elsoftwarehamuerto.org/wp-content/uploads/2012/01/login-300x165.png" alt="" title="login" width="300" height="165" class="aligncenter size-medium wp-image-790" /></a>
</p>
<p style="text-align:center"><a href='http://elsoftwarehamuerto.org/wp-content/uploads/2012/01/HTML5-Ex1.zip'>Solución al ejercicio.zip</a></p>
<img src="http://feeds.feedburner.com/~r/ElSoftwareHaMuerto/~4/HJyb3mdU06A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://elsoftwarehamuerto.org/articulos/779/779/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://elsoftwarehamuerto.org/articulos/779/779/</feedburner:origLink></item>
		<item>
		<title>Guardar archivo codificando como UTF-8 en VIM</title>
		<link>http://feedproxy.google.com/~r/ElSoftwareHaMuerto/~3/qX_Zm3OrBWg/</link>
		<comments>http://elsoftwarehamuerto.org/articulos/776/guardar-archivo-codificando-como-utf-8-en-vim/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 00:09:26 +0000</pubDate>
		<dc:creator>Rafael Vega</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://elsoftwarehamuerto.org/?p=776</guid>
		<description><![CDATA[En lugar de usar el habitual :w se debe usar :w ++enc=utf8 y eso es todo :) Para mas info: :help ++enc]]></description>
			<content:encoded><![CDATA[<p>En lugar de usar el habitual :w se debe usar :w ++enc=utf8 y eso es todo :)<br />
Para mas info: :help ++enc</p>
<img src="http://feeds.feedburner.com/~r/ElSoftwareHaMuerto/~4/qX_Zm3OrBWg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://elsoftwarehamuerto.org/articulos/776/guardar-archivo-codificando-como-utf-8-en-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://elsoftwarehamuerto.org/articulos/776/guardar-archivo-codificando-como-utf-8-en-vim/</feedburner:origLink></item>
		<item>
		<title>Como usar fuentes de Mac  (dfont) en Linux</title>
		<link>http://feedproxy.google.com/~r/ElSoftwareHaMuerto/~3/T1PGgkYvzTk/</link>
		<comments>http://elsoftwarehamuerto.org/articulos/762/como-usar-fuentes-de-mac-dfont-en-linux/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 18:20:39 +0000</pubDate>
		<dc:creator>Rafael Vega</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://elsoftwarehamuerto.org/?p=762</guid>
		<description><![CDATA[Utilice fondu para convertir los archivos dfont en archivos ttf y luego utilice fontmanager para instalar las fuentes en formato ttf.]]></description>
			<content:encoded><![CDATA[<p>Utilice<a href="http://aur.archlinux.org/packages.php?ID=13685" target="_blank"></a> fondu para convertir los archivos dfont en archivos ttf y luego utilice <a href="http://code.google.com/p/font-manager/" target="_blank">fontmanager</a> para instalar las fuentes en formato ttf.</p>
<img src="http://feeds.feedburner.com/~r/ElSoftwareHaMuerto/~4/T1PGgkYvzTk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://elsoftwarehamuerto.org/articulos/762/como-usar-fuentes-de-mac-dfont-en-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://elsoftwarehamuerto.org/articulos/762/como-usar-fuentes-de-mac-dfont-en-linux/</feedburner:origLink></item>
		<item>
		<title>Como montar imágenes dmg en Linux</title>
		<link>http://feedproxy.google.com/~r/ElSoftwareHaMuerto/~3/skhSDLxs6sE/</link>
		<comments>http://elsoftwarehamuerto.org/articulos/757/como-montar-imagenes-dmg-en-linux/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 16:27:13 +0000</pubDate>
		<dc:creator>Rafael Vega</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://elsoftwarehamuerto.org/?p=757</guid>
		<description><![CDATA[Primero, toca determinar si la imágen esta comprimida o no usando el comando file: $ file nombre_imagen.dmg. Si devuelve algo como VAX COFF executable not stripped – version 376, la imágen está comprimida. Si devuelve algo como Macintosh HFS Extended &#8230; <a href="http://elsoftwarehamuerto.org/articulos/757/como-montar-imagenes-dmg-en-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Primero, toca determinar si la imágen esta comprimida o no usando el comando file: <code class="codecolorer bash railscasts"><span class="bash"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">file</span> nombre_imagen.dmg</span></code>. Si devuelve algo como <code class="codecolorer bash railscasts"><span class="bash">VAX COFF executable not stripped – version <span style="color: #000000;">376</span></span></code>, la imágen está comprimida. Si devuelve algo como <code class="codecolorer bash railscasts"><span class="bash">Macintosh HFS Extended version <span style="color: #000000;">4</span> data</span></code>, la imágen no está comprimida.</p>
<p>Para montar una imágen no compprimida:</p>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">modprobe hfsplus<br />
<span style="color: #c20cb9; font-weight: bold;">mount</span> <span style="color: #660033;">-t</span> hfsplus <span style="color: #660033;">-o</span> loop nombre_imagen.dmg <span style="color: #000000; font-weight: bold;">/</span>media<span style="color: #000000; font-weight: bold;">/</span>nombre_imagen</div></td></tr></tbody></table></div>
<p>Y para montar una que no esté comprimida:</p>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">dmg2img <span style="color: #660033;">-i</span> nombre_imagen.dmg <span style="color: #660033;">-o</span> nombre_imagen-uncompressed.img<br />
modprobe hfsplus<br />
<span style="color: #c20cb9; font-weight: bold;">mount</span> <span style="color: #660033;">-t</span> hfsplus <span style="color: #660033;">-o</span> loop nombre_imagen-uncompressed.img <span style="color: #000000; font-weight: bold;">/</span>media<span style="color: #000000; font-weight: bold;">/</span>nombre_imagen<span style="color: #000000; font-weight: bold;">/</span>nom</div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ElSoftwareHaMuerto/~4/skhSDLxs6sE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://elsoftwarehamuerto.org/articulos/757/como-montar-imagenes-dmg-en-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://elsoftwarehamuerto.org/articulos/757/como-montar-imagenes-dmg-en-linux/</feedburner:origLink></item>
		<item>
		<title>Incrementar o decrementar un numero en VIM</title>
		<link>http://feedproxy.google.com/~r/ElSoftwareHaMuerto/~3/a3uV-fPxdSk/</link>
		<comments>http://elsoftwarehamuerto.org/articulos/722/incrementar-o-decrementar-un-numero-en-vim/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 16:27:41 +0000</pubDate>
		<dc:creator>Rafael Vega</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://elsoftwarehamuerto.org/?p=722</guid>
		<description><![CDATA[Simplemente ponga el cursor sobre un número y &#60;C-x&#62; ó &#60;C-a&#62;.]]></description>
			<content:encoded><![CDATA[<p>Simplemente ponga el cursor sobre un número y &lt;C-x&gt; ó &lt;C-a&gt;.</p>
<img src="http://feeds.feedburner.com/~r/ElSoftwareHaMuerto/~4/a3uV-fPxdSk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://elsoftwarehamuerto.org/articulos/722/incrementar-o-decrementar-un-numero-en-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://elsoftwarehamuerto.org/articulos/722/incrementar-o-decrementar-un-numero-en-vim/</feedburner:origLink></item>
	</channel>
</rss>
