<?xml version="1.0" encoding="iso-8859-1"?>
<!-- generator="wordpress/1.5.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
>

<channel>
	<title>2mdc.com - Weblogs</title>
	<link>http://www.2mdc.com/blogs</link>
	<description>Diseño web de empresa profesional</description>
	<pubDate>Thu, 28 Aug 2008 08:32:20 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.2</generator>
	<language>en</language>

		<item>
		<title>Selectores CSS avanzados</title>
		<link>http://www.2mdc.com/blogs/diseno-web/selectores-css-avanzados</link>
		<comments>http://www.2mdc.com/blogs/diseno-web/selectores-css-avanzados#comments</comments>
		<pubDate>Thu, 28 Aug 2008 08:20:15 +0000</pubDate>
		<dc:creator>Chema</dc:creator>
		
	<category>Diseño web</category>
		<guid>http://www.2mdc.com/blogs/diseno-web/selectores-css-avanzados</guid>
		<description><![CDATA[	Ahora que IE 6 parece que está empezando a desaparecer de nuestras vidas (casi la mitad de los usuarios de IE se han pasado al 7) y por tanto de nuestras pesadillas, sería bueno recordar algunos de los selectores que por su culpa nos hemos podido utilizar de forma normal.
	Todos tenemos en mente el selector [...]]]></description>
			<content:encoded><![CDATA[	<p>Ahora que IE 6 parece que está empezando a desaparecer de nuestras vidas (casi la mitad de los usuarios de IE se han pasado al 7) y por tanto de nuestras pesadillas, sería bueno recordar algunos de los selectores que por su culpa nos hemos podido utilizar de forma normal.</p>
	<p>Todos tenemos en mente el selector universal (* {&#8230;}), el selector de tipo o etiqueta (p {&#8230;}), el selector descendente (p span {&#8230;}), el selector de clase (.clase {&#8230;}) y el selector de id (#id {&#8230;}). Pero,  ¿alguien recuerda el selector de hijos, el selector de adyacentes o el selector de atributos?</p>
	<p>Estos selectores (entre otros muchos) han sido los grandes damnificados del aplastante dominio tiránico que ha ejercido IE 6 a lo largo de los años. Este tipo de selectores no funcionan con este &#8220;navegador&#8221; por lo que no se ha podido hacer uso de ellos abogando por el &#8220;bien común&#8221;.</p>
	<p>Pasemos a ver cómo funcionan algunos de estos selectores:</p>
	<p><strong>Selector de hijos:</strong> </p>
	<p>Se trata de un selector similar al selector descendente, pero muy diferente en su funcionamiento. Se utiliza para seleccionar un elemento que es hijo directo de otro elemento y se indica mediante el &#8220;signo de mayor que&#8221; (>). Por ejemplo:</p>
	<pre>p &gt; span &#123; color: blue; &#125;
&nbsp;
&lt;p&gt;&lt;span&gt;Texto1&lt;/span&gt;&lt;/p&gt;
	
&lt;p&gt;&lt;a href=&quot;#&quot;&gt;&lt;span&gt;Texto2&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</pre>
	<p>En el ejemplo anterior, el selector <code>p &gt; span</code> se interpreta como <em>&quot;cualquier elemento <code>&lt;span&gt;</code> que sea hijo directo de un elemento <code>&lt;p&gt;</code>&quot;</em>, por lo que el primer elemento <code>&lt;span&gt;</code> cumple la condición del selector. Sin embargo, el segundo elemento <code>&lt;span&gt;</code> no la cumple porque es descendiente pero no es hijo directo de un elemento <code>&lt;p&gt;</code>.</p>
	<p><strong>Selector adyacente:</strong></p>
	<p>El selector adyacente utiliza el signo <code>+</code> y su sintaxis es:</p>
	<pre>elemento1 + elemento2 &#123; ... &#125;</pre></p>
	<p>La explicación del comportamiento de este selector no es sencilla, ya que selecciona todos los elementos de tipo <code>elemento2</code> que cumplan las dos siguientes condiciones:</p>
	<ul>
	<li> <code>elemento1</code> y <code>elemento2</code> deben ser hermanos, por lo que su elemento padre debe ser el mismo.</li>
	<li> <code>elemento2</code> debe aparecer inmediatamente después de <code>elemento1</code> en el código <acronym title="HyperText Markup Language">HTML</acronym> de la página.</li>
	</ul>
	<p> En el siguiente ejemplo:</p>
	<pre>h1 + h2 &#123; color: red &#125;
&nbsp;
&lt;body&gt;
&lt;h1&gt;Titulo1&lt;/h1&gt;
&nbsp;
	
&lt;h2&gt;Subtítulo&lt;/h2&gt;
...
&nbsp;
&lt;h2&gt;Otro subtítulo&lt;/h2&gt;
...
&lt;/body&gt;</pre>
	<p>Los estilos del selector <code>h1 + h2</code> se aplican al primer elemento <code>&lt;h2&gt;</code> de la página, pero no al segundo <code>&lt;h2&gt;</code>, ya que:</p>
	<ul>
	<li> El elemento padre del primer <code>&lt;h2&gt;</code> es <code>&lt;body&gt;</code>, el mismo padre que los dos elementos <code>&lt;h2&gt;</code>.</li>
	<li> El primer elemento <code>&lt;h2&gt;</code> aparece en el código <acronym title="HyperText Markup Language">HTML</acronym> justo después del elemento <code>&lt;h1&gt;</code>, por lo que se cumple la segunda condición.</li>
	<li> El segundo elemento <code>&lt;h2&gt;</code> no aparece justo después del elemento <code>&lt;h1&gt;</code>, por lo que no se cumple la segunda condición y el selector <code>h1 + h2</code> no se aplica en el segundo elemento <code>&lt;h2&gt;</code>.</li>
	</ul>
	<p><strong>Selector de atributos:</strong></p>
	<p> El último tipo de selectores avanzados lo forman los selectores de atributos, que permiten seleccionar elementos <acronym title="HyperText Markup Language">HTML</acronym> en función de sus atributos y/o valores de esos atributos.</p>
	<p>Los cuatro tipos de selectores de atributos son: </p>
	<ul>
	<li> <code>[nombre_atributo]</code>, selecciona los elementos que tienen establecido el atributo llamado <code>nombre_atributo</code>, independientemente de su valor.</li>
	<li> <code>[nombre_atributo=valor]</code>, selecciona los elementos que tienen establecido un atributo llamado <code>nombre_atributo</code> con un valor igual a <code>valor</code>.</li>
	<li> <code>[nombre_atributo~=valor]</code>, selecciona los elementos que tienen establecido un atributo llamado <code>nombre_atributo</code> y al menos uno de los valores del atributo es <code>valor</code>.</li>
	<li> <code>[nombre_atributo|=valor]</code>, selecciona los elementos que tienen establecido un atributo llamado <code>nombre_atributo</code> y cuyo valor es una serie de palabras separadas con guiones, pero que comienza con <code>valor</code>. Este tipo de selector sólo es útil para los atributos de tipo <code>lang</code> que indican el idioma del contenido del elemento.</li>
	</ul>
	<p> A continuación se muestran algunos ejemplos de estos tipos de selectores:</p>
	<pre>/* Se muestran de color azul todos los enlaces que tengan
un atributo &quot;class&quot;, independientemente de su valor */
	
a&#91;class&#93; &#123; color: blue; &#125;
	
/* Se muestran de color azul todos los enlaces que tengan
un atributo &quot;class&quot; con el valor &quot;externo&quot; */
	
a&#91;class=&quot;externo&quot;&#93; &#123; color: blue; &#125;
	
/* Se muestran de color azul todos los enlaces que apunten
al sitio &quot;http://www.ejemplo.com&quot; */
	
a&#91;href=&quot;http://www.ejemplo.com&quot;&#93; &#123; color: blue; &#125;
	
/* Se muestran de color azul todos los enlaces que tengan
un atributo &quot;class&quot; en el que al menos uno de sus valores
sea &quot;externo&quot; */
	
a&#91;class~=&quot;externo&quot;&#93; &#123; color: blue; &#125;
	
/* Selecciona todos los elementos de la página cuyo
atributo &quot;lang&quot; sea igual a &quot;en&quot;, es decir,
 todos los elementos en inglés */
	
*&#91;lang=en&#93; &#123; ... &#125;
	
/* Selecciona todos los elementos de la página cuyo
atributo &quot;lang&quot; empiece por &quot;es&quot;, es decir,
 &quot;es&quot;, &quot;es-ES&quot;, &quot;es-AR&quot;, etc. */
	
*&#91;lang|=&quot;es&quot;&#93; &#123; color : red &#125;</pre>
	<p>Estos son algunos de los &#8220;olvidados&#8221; que pueden volver con más fuerza a medida que el &#8220;demonio&#8221; (cambiese por IE 6) desaparezca de nuestras vidas.</p>
	<p>Por último, una aplicación que te dice qué selectores son válidos para el navegador que usas en ese momento:<br />
<a href="http://www.css3.info/selectors-test/">Test de selectores CSS en red</a></p>
]]></content:encoded>
			<wfw:commentRSS>http://www.2mdc.com/blogs/diseno-web/selectores-css-avanzados/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Increíble animación facial 3D</title>
		<link>http://www.2mdc.com/blogs/nuevas_tecnologias/increible-animacion-facial-3d</link>
		<comments>http://www.2mdc.com/blogs/nuevas_tecnologias/increible-animacion-facial-3d#comments</comments>
		<pubDate>Wed, 27 Aug 2008 13:15:57 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Nuevas tecnologí­as</category>
		<guid>http://www.2mdc.com/blogs/nuevas_tecnologias/increible-animacion-facial-3d</guid>
		<description><![CDATA[	
	La industria de la animación 3D avanza a pasos agigantados. No os perdáis este vídeo de Image Metrics, una empresa especializada en animación facial que ha trabajado en videojuegos como Grand Theft Auto IV, Uncharted o Devil May Cry 4.
	



]]></description>
			<content:encoded><![CDATA[	<p><img src="http://www.2mdc.com/blogs/archivos/3D.jpg" alt="Animación 3D"/></p>
	<p>La industria de la <strong>animación 3D</strong> avanza a pasos agigantados. No os perdáis este vídeo de <a href="http://image-metrics.com/category/blog-category/current-projects" title="Image Metrics">Image Metrics</a>, una empresa especializada en animación facial que ha trabajado en videojuegos como <em>Grand Theft Auto IV</em>, <em>Uncharted</em> o <em>Devil May Cry 4</em>.</p>
	<p><object width="425" height="299"><br />
<param name="movie" value="http://www.youtube.com/v/SwAV2fXoy6E&#038;hl=es&#038;fs=1"></param>
<param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/SwAV2fXoy6E&#038;hl=es&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="299"></embed></object>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.2mdc.com/blogs/nuevas_tecnologias/increible-animacion-facial-3d/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Concurso de diseño de &#60;hr&#62;</title>
		<link>http://www.2mdc.com/blogs/diseno-web/concurso-de-diseno-de</link>
		<comments>http://www.2mdc.com/blogs/diseno-web/concurso-de-diseno-de#comments</comments>
		<pubDate>Wed, 27 Aug 2008 06:38:42 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Diseño web</category>
		<guid>http://www.2mdc.com/blogs/diseno-web/concurso-de-diseno-de</guid>
		<description><![CDATA[	Si eres diseñador o te gusta el diseño, puedes participar hasta el 1 de septiembre en el concurso de estilar líneas horizontales que ha propuesto la revista Smashing Magazine bajo el título The &#60;hr&#62; contest (El concurso de &#60;hr&#62;). 
	Requisitos del diseño a enviar: debe ser creativo y original, creado expresamente para el concurso o [...]]]></description>
			<content:encoded><![CDATA[	<p>Si eres diseñador o te gusta el <strong>diseño</strong>, puedes participar hasta el <strong>1 de septiembre</strong> en el concurso de estilar líneas horizontales que ha propuesto la revista Smashing Magazine bajo el título <a href="http://www.smashingmagazine.com/2008/08/22/the-hr-contest/" title="Smashing Magazine">The &lt;hr&gt; contest</a> (El concurso de &lt;hr&gt;). </p>
	<p>Requisitos del <strong>diseño</strong> a enviar: debe ser creativo y original, creado expresamente para el concurso o al menos no haber sido usado con anterioridad en ningún diseño, ser reconocible como elemento divisor, estar en formato PNG, JPG o GIF, y a ser posible, enviar el documento matriz (es decir, el PSD, PNG, etc).</p>
	<p>El <strong>premio</strong> es <a href="http://www.amazon.com/Wacom-Intuos3-9X12-USB-Tablet/dp/B0003009AI">esta tableta gráfica</a> valorada en unos 430$, y el honor de aparecer en este prestigioso <strong>blog de diseño</strong>.</p>
	<p><img src="http://88.198.60.17/images/hr/sep.png" alt="Una línea enviada al concurso"/>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.2mdc.com/blogs/diseno-web/concurso-de-diseno-de/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Especificidad CSS</title>
		<link>http://www.2mdc.com/blogs/diseno-web/especificidad-css</link>
		<comments>http://www.2mdc.com/blogs/diseno-web/especificidad-css#comments</comments>
		<pubDate>Thu, 21 Aug 2008 07:55:18 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Diseño web</category>
		<guid>http://www.2mdc.com/blogs/diseno-web/especificidad-css</guid>
		<description><![CDATA[	La Real Academia Española define la especificidad como la cualidad y condición de ser específico, o lo que es lo mismo: concreto, determinado. En los últimos años, los expertos en CSS se han apropiado de este término para denominar la cualidad que hace que un estilo prime sobre otro cuando ambos deberían afectar a un [...]]]></description>
			<content:encoded><![CDATA[	<p>La Real Academia Española define la <strong>especificidad</strong> como la cualidad y condición de ser específico, o lo que es lo mismo: concreto, determinado. En los últimos años, los expertos en <strong>CSS</strong> se han apropiado de este término para denominar la cualidad que hace que un estilo prime sobre otro cuando ambos deberían afectar a un mismo elemento.<a id="more-118"></a></p>
	<p>El principio en el que se basa es simple: <strong>el elemento más específico gana</strong>. Parece claro que una clase definida específicamente para un elemento html (como <code>p .intro { }</code>) prima sobre la definición general de ese elemento en la hoja de estilos (que sería <code>p {}</code>). Pero, ¿y dos etiquetas html frente a un id? (como por ejemplo <code> div p {} y </code><code>#cabecera {}</code>), ¿por qué este elemento no sale como debería?. Esa es la clase de preguntas que responde la <strong>especificidad</strong>.</p>
	<p>¿Cómo se calcula? Asignando un valor a cada tipo de elemento:</p>
	<ul>
	<li>Un selector HTML tiene una especificidad de 1.</li>
	<li>Dos selectores HTML tienen una especificidad de 2, es decir que se aplica siempre el selector con más elementos.</li>
	<li>Un selector de clase tiene una especificidad de 10.</li>
	<li>Dos selectores HTML con un selector de clase tienen una especificidad de 10 + 1 + 1.</li>
	<li>Un selector id tiene una especificidad de 100.</li>
	</ul>
	<p>Una vez asignados estos valores, éstos se suman para calcular el total (véanse ejemplos en <a href="http://htmldog.com/guides/cssadvanced/specificity/" title="Specifity">htmldog</a> y <a href="http://css-tricks.com/specifics-on-css-specificity/" title="Specifics on CSS">csstricks</a> ) o se comparan por separado (véase un ejemplo de esto último en <a href="http://www.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/" title="CSS Specifity things you should know">Smashing Magazine</a>).</p>
	<p>Por último, os recomendamos esta simpática<a href="http://www.stuffandnonsense.co.uk/archives/images/specificitywars-05v2.jpg">chuleta de especificidad CSS ambientada en Star Wars</a>.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.2mdc.com/blogs/diseno-web/especificidad-css/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Oxidando la furgoneta</title>
		<link>http://www.2mdc.com/blogs/diseno-grafico/oxidando-la-furgoneta</link>
		<comments>http://www.2mdc.com/blogs/diseno-grafico/oxidando-la-furgoneta#comments</comments>
		<pubDate>Thu, 14 Aug 2008 13:53:16 +0000</pubDate>
		<dc:creator>Angel</dc:creator>
		
	<category>Diseño gráfico</category>
		<guid>http://www.2mdc.com/blogs/diseno-grafico/oxidando-la-furgoneta</guid>
		<description><![CDATA[	En 2mdc llevan tiempo sin cambiar el coche de empresa alegando que aun se ve lustroso. Para que la direción cambiara de idea, envié una fotografía del vehículo llevando a cabo los siguientes pasos :
	1. Tomé una fotografia al coche y la abrí en photoshop.
	
	2. En otra ventana, elegí de entre una serie de texturas [...]]]></description>
			<content:encoded><![CDATA[	<p>En 2mdc llevan tiempo sin cambiar el coche de empresa alegando que aun se ve lustroso. Para que la direción cambiara de idea, envié una fotografía del vehículo llevando a cabo los siguientes pasos :</p>
	<p><strong>1.</strong> Tomé una fotografia al coche y la abrí en photoshop.</p>
	<p><img src="http://www.2mdc.com/blogs/archivos/furgo-1.jpg" alt="Foto original" /></p>
	<p><strong>2. </strong>En otra ventana, elegí de entre una serie de texturas la siguiente, dándole a la imagen un tamaño similar al de mi fotografia anterior.</p>
	<p><img src="http://www.2mdc.com/blogs/archivos/furgo-2.jpg" alt="Textura de oxido" /></p>
	<p><strong>3.</strong> Selecioné la imagen entera y la copié, pegándola luego sobre la foto de la furgoneta, en una capa nueva.</p>
	<p><strong>4.</strong> A esta capa le hice los siguientes cambios :</p>
	<ul>
	<li>Opacidad : 40%</li>
	<li>Modo de fusión : Superponer</li>
	</ul>
	<p><strong>Y el resultado  fue este.</strong></p>
	<p><img src="http://www.2mdc.com/blogs/archivos/furgo-3.jpg" alt="Foto resultado" /></p>
	<p>Aunque no conseguí que compraran una nueva furgoneta, si obtuve un cheque descuento para el tunel de lavado.</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.2mdc.com/blogs/diseno-grafico/oxidando-la-furgoneta/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Dando luz a rostros</title>
		<link>http://www.2mdc.com/blogs/diseno-grafico/dando-luz-a-rostros-2</link>
		<comments>http://www.2mdc.com/blogs/diseno-grafico/dando-luz-a-rostros-2#comments</comments>
		<pubDate>Thu, 14 Aug 2008 11:53:46 +0000</pubDate>
		<dc:creator>Angel</dc:creator>
		
	<category>Diseño gráfico</category>
		<guid>http://www.2mdc.com/blogs/diseno-grafico/dando-luz-a-rostros-2</guid>
		<description><![CDATA[	Vamos a ver una técnica muy sencilla y efectiva que nos va a permitir simular &#8220;asutoiluminación&#8221; a fotografías, en el ejemplo utilizo un rostro pero podemos emplearlo en cualquier tema, a gusto del diseñador.
	Abrimos nuestro fichero con la fotografía original
	
	Duplicamos la capa ( puedes usar &#8220;Ctrl + J&#8221; )
A la nueva capa le aplicamos un [...]]]></description>
			<content:encoded><![CDATA[	<p>Vamos a ver una técnica muy sencilla y efectiva que nos va a permitir simular &#8220;asutoiluminación&#8221; a fotografías, en el ejemplo utilizo un rostro pero podemos emplearlo en cualquier tema, a gusto del diseñador.</p>
	<p>Abrimos nuestro fichero con la fotografía original</p>
	<p><img src="http://www.2mdc.com/blogs/archivos/pho-1.jpg" alt="foto original" /></p>
	<p>Duplicamos la capa ( puedes usar &#8220;Ctrl + J&#8221; )<br />
A la nueva capa le aplicamos un &#8220;desenfoque gausiano&#8221; (  &#8220;Filtro > Desenfocar > Desenfgoque gausiano&#8221; ) con factor de &#8220;3&#8243; dependiendo de la resolución e intensidad del resultado que busquemos.</p>
	<p><img src="http://www.2mdc.com/blogs/archivos/pho-2.jpg" alt="Desenfoque gausiano" /></p>
	<p>En el &#8220;Modo de fusión&#8221; de la capa elegimos &#8220;Superponer&#8221;</p>
	<p><img src="http://www.2mdc.com/blogs/archivos/pho-3.jpg" alt="Foto resultado" /></p>
	<p>¿ Te gusta el resultado ? Juega con esta técnica y sácale el partido que desees. </p>
]]></content:encoded>
			<wfw:commentRSS>http://www.2mdc.com/blogs/diseno-grafico/dando-luz-a-rostros-2/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Cómo dejar de ser un diseñador vago</title>
		<link>http://www.2mdc.com/blogs/diseno-web/como-dejar-de-ser-un-disenador-vago</link>
		<comments>http://www.2mdc.com/blogs/diseno-web/como-dejar-de-ser-un-disenador-vago#comments</comments>
		<pubDate>Tue, 12 Aug 2008 07:53:40 +0000</pubDate>
		<dc:creator>Laura</dc:creator>
		
	<category>Diseño web</category>
		<guid>http://www.2mdc.com/blogs/diseno-web/como-dejar-de-ser-un-disenador-vago</guid>
		<description><![CDATA[	Al trabajar con una amplia variedad de proyectos, he aprendido una cosa: los diseñadores son vagos (a veces incluso yo).  Sin embargo, la mayoría querríamos a menudo despedirnos rápidamente de un proyecto y seguir adelante con el siguiente. Aunque podrían escribirse muchas anotaciones sobre esto, ofrezco aquí algunas sugerencias para garantizar que las cosas [...]]]></description>
			<content:encoded><![CDATA[	<p>Al trabajar con una amplia variedad de proyectos, he aprendido una cosa: los <strong>diseñadores son vagos</strong> (a veces incluso yo).  Sin embargo, la mayoría querríamos a menudo despedirnos rápidamente de un proyecto y seguir adelante con el siguiente. Aunque podrían escribirse muchas anotaciones sobre esto, ofrezco aquí algunas sugerencias para garantizar que las cosas sean un poco más fáciles al final:</p>
	<ul>
	<li><strong>Nombra tus carpetas y capas</strong><br /> ¿Qué diablos significan &#8220;Capa 234&#8243; y &#8220;Bloque derecho Copia 23&#8243;? ¿Alguna vez has intentado trabajar con los archivos de otra persona y has encontrado que una capa tenía cientos de capas en su interior?</li>
	<li><strong>Asegúrate de que cubres la mayoría de los escenarios de uso</strong><br /> No hay nada peor para los desarrolladores que tener que adivinar cómo algo tiene que interactuar. Diseña en primer lugar para el peor caso de uso posible y sólo entonces dedícate al mejor escenario de uso (¡en ese siempre eres bueno!)</li>
	<li><strong>Un archivo para gobernarlos a todos</strong><br />Si utilizas un solo archivo de Photoshop y haces todo el trabajo ahí, te será más fácil editarlo y evitarás la duplicación de trabajo. Las capas han sido inventadas por una razón ¡úsalas!</li>
	<li><strong>No utilices imágenes perfectas</strong><br />¿Estás usando imágenes geniales para ocultar las carencias de tu diseño? Considera que tu trabajo está bien hecho sólo cuando puedas vender tu impresionante diseño al cliente sin ningún tipo de imagen en él.</li>
	</ul>
	<p>Ninguna de estas sugerencias requiere un gran esfuerzo, ¿verdad? Si las conviertes en hábitos simplificarás el trabajo y harás amigos después del plazo de entrega del proyecto ¡El mundo se convierte en un lugar mejor!</p>
	<p><strong>¿Alguna sugerencia para estos diseñadores vagos?</strong></p>
	<p><em>Traducción libre del artículo</em> «<a href="http://www.smashingmagazine.com/2008/08/11/how-to-stop-being-a-lazy-designer/" title="Smashing Magazine">How To Stop Being A Lazy Designer</a>» <em> de la revista alemana Smashing Magazine.</em></p>
]]></content:encoded>
			<wfw:commentRSS>http://www.2mdc.com/blogs/diseno-web/como-dejar-de-ser-un-disenador-vago/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Buscador de contenidos sobre accesibilidad y usabilidad</title>
		<link>http://www.2mdc.com/blogs/diseno-web/buscador-de-contenidos-sobre-accesibilidad-y-usabilidad</link>
		<comments>http://www.2mdc.com/blogs/diseno-web/buscador-de-contenidos-sobre-accesibilidad-y-usabilidad#comments</comments>
		<pubDate>Tue, 12 Aug 2008 06:37:40 +0000</pubDate>
		<dc:creator>Laura</dc:creator>
		
	<category>Diseño web</category>
		<guid>http://www.2mdc.com/blogs/diseno-web/buscador-de-contenidos-sobre-accesibilidad-y-usabilidad</guid>
		<description><![CDATA[	Olga Carreras, de Usable y Accesible, nos ofrece este buscador especializado en contenidos sobre accesibilidad y usabilidad. Se trata de un gadget creado con la tecnología de Google, que además permite incrustarlo en nuestras páginas fácilmente.
	

]]></description>
			<content:encoded><![CDATA[	<p>Olga Carreras, de <strong>Usable y Accesible</strong>, nos ofrece <a href="http://olgacarreras.blogspot.com/2006/07/buscador-especializado-en-accesibilidad.html" title="buscador usable y accesible">este buscador</a> especializado en contenidos sobre accesibilidad y usabilidad. Se trata de un <strong>gadget</strong> creado con la tecnología de Google, que además permite incrustarlo en nuestras páginas fácilmente.</p>
	<p><script src="http://www.gmodules.com/ig/ifr?url=http://www.google.es/coop/api/010937735535196660659/cse/vxoh8j3tr40/gadget&amp;synd=open&amp;w=320&amp;h=75&amp;title=Usable+y+Accesible+Search&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js"></script>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.2mdc.com/blogs/diseno-web/buscador-de-contenidos-sobre-accesibilidad-y-usabilidad/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Más rápido, más rápido, más rápido</title>
		<link>http://www.2mdc.com/blogs/nuevas_tecnologias/mas-rapido-mas-rapido-mas-rapido</link>
		<comments>http://www.2mdc.com/blogs/nuevas_tecnologias/mas-rapido-mas-rapido-mas-rapido#comments</comments>
		<pubDate>Thu, 07 Aug 2008 09:34:39 +0000</pubDate>
		<dc:creator>Luis</dc:creator>
		
	<category>Nuevas tecnologí­as</category>
		<guid>http://www.2mdc.com/blogs/nuevas_tecnologias/mas-rapido-mas-rapido-mas-rapido</guid>
		<description><![CDATA[	Acostumbrados a los avances tecnológicos, apenas nos asombra que cualquier ordenador doméstico, de los que usamos actualmente en casa o en el trabajo, tenga una potencia de cálculo superior en varios órdenes de magnitud a la que se necesitó para llevar al Apolo 11 a la Luna en 1969.
	Un poco antes, en 1965, Gordon Moore [...]]]></description>
			<content:encoded><![CDATA[	<p>Acostumbrados a los avances tecnológicos, apenas nos asombra que cualquier ordenador doméstico, de los que usamos actualmente en casa o en el trabajo, tenga una potencia de cálculo superior en varios órdenes de magnitud a la que se necesitó para llevar al <a href="http://es.wikipedia.org/wiki/Apolo_11" title="Apolo 11">Apolo 11</a> a la Luna en 1969.</p>
	<p>Un poco antes, en 1965, <a href="http://es.wikipedia.org/wiki/Gordon_E._Moore" title="Gordon E. Moore">Gordon Moore</a> ya vaticinó, con la <a href="http://es.wikipedia.org/wiki/Ley_de_Moore" title="La Ley de Moore">ley que lleva su apellido</a>, la trepidante progresión hacia la fabricación de ordenadores más rápidos y potentes basados en transistores y circuitos integrados.</p>
	<p>Recientemente, el propio Moore ha puesto una fecha de caducidad de entre 10 y 15 años a la validez de su ley, pues las tecnologías de integración están empezando a alcanzar los límites físicos en cuanto a reducción de tamaño, aumento de frecuencia y disipación de calor.</p>
	<p><a href="http://www.intel.com/" title="www.intel.com">Intel</a>, la compañía de la que Gordon Moore fue cofundador, también corrobora dichos límites, y en un <a href="http://www.washingtonpost.com/wp-dyn/content/article/2008/08/03/AR2008080302021.html" title="Artículo en el Washington Post">reciente comunicado</a> apunta a un futuro cercano dominado por procesadores con 10 o más núcleos, en lugar de un gran núcleo concentrado. La principal dificultad de este cambio de enfoque estriba en que será necesario también un cambio de paradigma en el software. Los primeros productos de esta nueva gama de procesadores de Intel, denominada <strong>Larrabee</strong>, comenzarán a ver la luz a partir de 2009 o 2010.</p>
	<p>Por otra parte, en el ámbito de los superordenadores, la última vecina en llegar al barrio es <strong>MariCel</strong>, una idea y prototipo del <a href="http://www.bsc.es/" title="Barcelona Supercomputing Center (BSC)">Barcelona Supercomputing Center (BSC)</a> para un computador que será 10 veces más rápido que la máquina más potente de la actualidad, alcanzando la barrera de los 10 <a href="http://es.wikipedia.org/wiki/FLOPS" title="FLOPS: Operaciones de punto flotante por segundo">petaflops</a>.</p>
	<p><img src="http://www.2mdc.com/blogs/archivos/roadrunner.jpg" alt="Fotografía del supercomputador RoadRunner" /></p>
	<p>A día de hoy, y según la <a href="http://www.top500.org/" title="www.top500.org">lista Top500</a>, el máximo honor recae sobre <a href="http://www.top500.org/system/9485" title="RoadRunner">RoadRunner</a>, el correcaminos. Pero no es terreno para dormirse en los laureles, pues las plusmarcas se suceden sin tregua en estas olimpiadas de la computación, cuyo lema parece ser un permanente y exigente <em>&#8220;<a href="http://es.wikipedia.org/wiki/Citius_altius_fortius" title="Adaptación del lema olímpico Citius altius fortius">citius citius citius</a>&#8220;</em>.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.2mdc.com/blogs/nuevas_tecnologias/mas-rapido-mas-rapido-mas-rapido/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Ejecutar un script PHP en segundo plano bajo Windows</title>
		<link>http://www.2mdc.com/blogs/programacion-web/ejecutando-un-script-php-en-segundo-plano-bajo-windows</link>
		<comments>http://www.2mdc.com/blogs/programacion-web/ejecutando-un-script-php-en-segundo-plano-bajo-windows#comments</comments>
		<pubDate>Wed, 06 Aug 2008 13:35:41 +0000</pubDate>
		<dc:creator>Marcos</dc:creator>
		
	<category>Programación web</category>
		<guid>http://www.2mdc.com/blogs/programacion-web/ejecutando-un-script-php-en-segundo-plano-bajo-windows</guid>
		<description><![CDATA[	Caso:
	Tenemos un site que realiza una tarea muy larga y pesada, por ejemplo consultar un webservice externo con miles de registros. 
	Problema:
	Si ejecutamos desde el servidor apache un script PHP que realize esa acción puede pasarnos:
	1.- La pagina se nos bloqueará hasta que finalice su ejecución, no pudiendo ver nada más.
2.- Si el tiempo se [...]]]></description>
			<content:encoded><![CDATA[	<p><strong>Caso:</strong></p>
	<p>Tenemos un site que realiza una tarea muy larga y pesada, por ejemplo consultar un webservice externo con miles de registros. </p>
	<p><strong>Problema:</strong></p>
	<p>Si ejecutamos desde el servidor apache un script PHP que realize esa acción puede pasarnos:</p>
	<p>1.- La pagina se nos bloqueará hasta que finalice su ejecución, no pudiendo ver nada más.<br />
2.- Si el tiempo se alarga demasíado el servidor web cortará la conexión o bién lo hará nuestro navegador<br />
3.- Si cerramos accidentalmente el navegador o se produce un error en la conexión el proceso se interrumpira.</p>
	<p><strong>Tentativa de Solución:</strong></p>
	<p>Lanzar con un exec de PHP una llamada al php.exe que ejecute el script en cuestión. Por ejemplo si tenemos el script consulta_webservice.php que es el que realiza la carga de datos del Webservice podemos escribir en nuestro script de lanzamiento lanzador_webservice.php:</p>
	<p><code>< ?php<br />
exec("C:\ruta_al_exe_php\php.exe -f consulta_webservice.php");<br />
?></code></p>
	<p>Este metodo funciona optimamente bajo entornos linux, no así en windows. ¿Por qué? Pues por que deja al script lanzador esperando que termine el proceso que él mismo ha lanzado (en nuestro caso php.exe -f consulta_webservice.php)</p>
	<p>Es decir no ganamos nada respecto a la opción de invocarle desde la web.</p>
	<p><strong>Buscando la respuesta:</strong></p>
	<p>Tras muchas horas de pruebas con diversas soluciones que en la www se dan a este problema, nos dimos cuenta que tan sólo una nos funcionaba correctamente. En concreto se trata de usar un programa auxiliar &#8220;psexec.exe&#8221; cuya principal utilidad consiste en lanzar programas tanto en nuestra máquina como en máquinas en red.</p>
	<p>Veamos como usarlo:</p>
	<p>En nuestro script lanzador usamos la funcion exec para lanzar este comando:</p>
	<p><code>< ?php<br />
exec('psexec -d C:\ruta_al_exe_php\php.exe -f consulta_webservice.php');<br />
?><br />
</code></p>
	<p>Esta linea nos lanza desde el PHP el mencionado psexec (deberá estar en el mismo directorio en el que estamos), que a su vez invoca al php.exe que ejecuta nuestro script cargador que se ejecutará en segundo plano. Consiguiendo con este pequeño rodeo que el script lanzador quede libre de esperar a que acabe su ejecución el script cargador.</p>
	<p>Para lograr esto usamos la opcion del psexec &#8220;-d&#8221;</p>
	<p><strong>Rizando el rizo:</strong></p>
	<p>Pero imaginemos que al script que queremos usar para cargar datos del webservice tenemos que pasarle parametros (por ejemplo un id) digamos: consulta_webservice.php?id=123</p>
	<p>Si probamos a llamarlo tal cual lo hariamos desde la web, nos encontraremos con un fallo del psexec, el cual no admite ningún parametro con &#8220;?&#8221; o con &#8220;=&#8221;, así que recurriremos al uso de parametros específicos para ejecutar php desde la linea de comandos, tal que así:</p>
	<p><code>< ?php<br />
exec('psexec -d C:\ruta_al_exe_php\php.exe -f consulta_webservice.php -- 123');<br />
?><br />
</code></p>
	<p>El script receptor, consulta_webservice.php, deberá recojer dicho valor de la siguiente forma:</p>
	<p><code>< ?php<br />
$id=$argv[1];<br />
# $id vale 123<br />
?></code></p>
	<p>Donde el array global $argv nos proporciona todos los parametros pasados y la variable $arvc su cardinalidad.</p>
	<p><strong>Resumiendo:</strong></p>
	<p>El programa psexec nos brinda la posibilidad de ejecutar una aplicacion en segundo plano llamada desde un script PHP ejecutado en un servidor Apache en Windows, sin interrumpir el uso nuestra aplicación web.</p>
	<p>Podeis descargarlo aquí:  <a href="http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx">psexec</a> </p>
]]></content:encoded>
			<wfw:commentRSS>http://www.2mdc.com/blogs/programacion-web/ejecutando-un-script-php-en-segundo-plano-bajo-windows/feed/</wfw:commentRSS>
	</item>
	</channel>
</rss>
