<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>emmgfx</title>
	<atom:link href="http://www.emm-gfx.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.emm-gfx.net</link>
	<description>Y ahora sin más; construye y destruye.</description>
	<lastBuildDate>Thu, 17 May 2012 09:11:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>PHP: Convertir objeto a array</title>
		<link>http://www.emm-gfx.net/2012/05/php-convertir-objeto-a-array/</link>
		<comments>http://www.emm-gfx.net/2012/05/php-convertir-objeto-a-array/#comments</comments>
		<pubDate>Thu, 17 May 2012 09:11:20 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[Función]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[stdObject]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1631</guid>
		<description><![CDATA[function objectToArray($d) { if(is_object($d)){ $d = get_object_vars($d); } if(is_array($d)){ return array_map(__FUNCTION__, $d); }else{ return $d; } } Articulos relacionadosPHP: Ordenar array por el valor de un campo (0)Enviar el log de errores de PHP por email (0)Obtener la URL que se esta visitando con PHP (0)Comprobar DNI / NIF con PHP (3)Comprobar la validez de [...]]]></description>
			<content:encoded><![CDATA[<pre>function objectToArray($d) {
	if(is_object($d)){
		$d = get_object_vars($d);
	}
	if(is_array($d)){
		return array_map(__FUNCTION__, $d);
	}else{
		return $d;
	}
}</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/08/recursividad-en-mkdir-de-php/" title="Recursividad en mkdir de PHP">Recursividad en mkdir de PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/11/encriptar-y-desencriptar-cadena-php/" title="Encriptar y desencriptar cadena con PHP">Encriptar y desencriptar cadena con PHP</a> (16)</li><li><a href="http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/" title="Comprobar estado de un servidor mediante PHP">Comprobar estado de un servidor mediante PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2008/07/eliminar-caracteres-raros-de-una-cadena-con-php/" title="Eliminar caracteres raros de una cadena con PHP">Eliminar caracteres raros de una cadena con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2012/05/php-convertir-objeto-a-array/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Placeholder crossbrowser (para Explorer)</title>
		<link>http://www.emm-gfx.net/2012/04/placeholder-crossbrowser-para-explorer/</link>
		<comments>http://www.emm-gfx.net/2012/04/placeholder-crossbrowser-para-explorer/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 08:32:12 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1625</guid>
		<description><![CDATA[Paso de explicar. getInternetExplorerVersion = function getInternetExplorerVersion(){ var rv = -1; if (navigator.appName == 'Microsoft Internet Explorer'){ var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); if(re.exec(ua) != null) rv = parseFloat( RegExp.$1 ); } return rv; } if(getInternetExplorerVersion()!=-1){ $('[placeholder]').focus(function() { var input = $(this); if(input.val() == input.attr('placeholder')){ input.val(''); input.removeClass('placeholder'); } }).blur(function() { var [...]]]></description>
			<content:encoded><![CDATA[<p>Paso de explicar.</p>
<pre>getInternetExplorerVersion = function getInternetExplorerVersion(){
	var rv = -1;
	if (navigator.appName == 'Microsoft Internet Explorer'){
		var ua = navigator.userAgent;
		var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		if(re.exec(ua) != null)
			rv = parseFloat( RegExp.$1 );
	}
	return rv;
}

if(getInternetExplorerVersion()!=-1){
	$('[placeholder]').focus(function() {
		var input = $(this);
		if(input.val() == input.attr('placeholder')){
			input.val('');
			input.removeClass('placeholder');
		}
	}).blur(function() {
		var input = $(this);
		if (input.val() == '' || input.val() == input.attr('placeholder')) {
			input.addClass('placeholder');
			input.val(input.attr('placeholder'));
		}
	}).blur();
}</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li>No se encuentran articulos relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2012/04/placeholder-crossbrowser-para-explorer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>USB Mass Storage para Android 4.x.x ICS</title>
		<link>http://www.emm-gfx.net/2012/04/usb-mass-storage-para-android-4-x-x-ics/</link>
		<comments>http://www.emm-gfx.net/2012/04/usb-mass-storage-para-android-4-x-x-ics/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 20:17:49 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1617</guid>
		<description><![CDATA[Hace alrededor de una semana que me compré un Samsung Galaxy S2 de segunda mano y el primer día acabé con un Kernel Panic pensando que acababa de tirar 250€ a la basura. A base de horas, un portatil viejo y Odin para Windows, conseguí restaurarlo y usar la versión 4.0.3, perdiendo el root que tenía [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.emm-gfx.net/wp-content/uploads/2012/04/2012-04-09-21.16.54.png" style="float:right;margin:0px 0px 5px 5px;"><img class="alignnone size-medium wp-image-1622" title="2012-04-09 21.16.54" src="http://www.emm-gfx.net/wp-content/uploads/2012/04/2012-04-09-21.16.54-180x300.png" alt="" width="180" height="300" /></a>Hace alrededor de una semana que me compré un Samsung Galaxy S2 de segunda mano y el primer día acabé con un Kernel Panic pensando que acababa de tirar 250€ a la basura. A base de horas, un portatil viejo y <a href="http://forum.xda-developers.com/attachment.php?attachmentid=581913&amp;d=1304094576" target="_blank">Odin</a> para Windows, conseguí restaurarlo y usar la versión 4.0.3, perdiendo el root que tenía el antiguo propietario. Con el mismo programa volví a tener root.</p>
<p>En la versión 4.x de Android se deja de poder utilizar el dispositivo como almacenamiento masivo por el uso del protocolo MTP, que sólo está implementado en Windows (si no me equivoco es propiedad de ellos mismos).</p>
<p>Para recuperar la opción de montar la tarjeta SD (y la memoria interna si fuera el caso) hay que usar terminal y tener permisos de root, a partir de ahí es muy sencillo.<br />
La aplicación de terminal que he usado yo es <a href="https://play.google.com/store/apps/details?id=jackpal.androidterm#?t=W251bGwsMSwyLDIxMiwiamFja3BhbC5hbmRyb2lkdGVybSJd" target="_blank">Android Terminal Emulator</a>, de código libre y disponible en Google Play.</p>
<p>Abrimos la aplicación y escribimos <code>su</code> para tener permisos de root, la aplicación que nos lo gestione (en mi caso SuperSU) nos preguntará si queremos darle permisos a la aplicación de terminal, aceptamos.</p>
<p>Ahora se escribe esta linea sin cambiar ni una coma:</p>
<pre>setprop persist.sys.usb.config mass_storage,adb</pre>
<p>Y ya está, después de reiniciar el dispositivo se podrá acceder como se hacía con normalidad en versiones anteriores.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li>No se encuentran articulos relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2012/04/usb-mass-storage-para-android-4-x-x-ics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java: Calcular área y perímetro de triángulo rectángulo</title>
		<link>http://www.emm-gfx.net/2012/01/java-calcular-area-y-perimetro-de-triangulo-rectangulo/</link>
		<comments>http://www.emm-gfx.net/2012/01/java-calcular-area-y-perimetro-de-triangulo-rectangulo/#comments</comments>
		<pubDate>Sun, 22 Jan 2012 11:24:56 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[área]]></category>
		<category><![CDATA[perímetro]]></category>
		<category><![CDATA[rectángulo]]></category>
		<category><![CDATA[triángulo]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1610</guid>
		<description><![CDATA[Estoy empezando a estudiar Java, un ejercicio: Se da la base y la altura de un triángulo rectángulo y te calcula el perímetro y el área. Si se escribe algo que no sea un número dará error, pero aún no he llegado al tema en el que me expliquen como arreglarlo. package calcula; import java.util.Scanner; public class Main [...]]]></description>
			<content:encoded><![CDATA[<p>Estoy empezando a estudiar Java, un ejercicio:</p>
<p>Se da la base y la altura de un triángulo rectángulo y te calcula el perímetro y el área. Si se escribe algo que no sea un número dará error, pero aún no he llegado al tema en el que me expliquen como arreglarlo.</p>
<pre>package calcula;
import java.util.Scanner;
public class Main {
   static int area(int base,int altura){
      return (base*altura)/2;
   }
   static int perimetro(int cateto1, int cateto2){
      int hipotenusa = (int) Math.sqrt((cateto1*cateto1)+(cateto2*cateto2));
      return cateto1+cateto2+hipotenusa;
   }
   public static void main(String args[]){
      Scanner sc = new Scanner(System.in);
      System.out.println("Escribe la base: ");
      int base = sc.nextInt();
      System.out.println("Escribe la altura: ");
      int altura = sc.nextInt();	

      System.out.println("Area: "+area(base,altura));
      System.out.println("Perimetro: "+perimetro(base,altura));
   }
}</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li>No se encuentran articulos relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2012/01/java-calcular-area-y-perimetro-de-triangulo-rectangulo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Evitar rebote del scroll en Chrome y Safari para Lion</title>
		<link>http://www.emm-gfx.net/2011/11/evitar-rebote-del-scroll-en-chrome-y-safari-para-lion/</link>
		<comments>http://www.emm-gfx.net/2011/11/evitar-rebote-del-scroll-en-chrome-y-safari-para-lion/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 08:30:06 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1604</guid>
		<description><![CDATA[Lo encontré ayer. Hay que tener en cuenta que lo que hace es evitar el scroll en general, no el rebote. Es útil cuando tenemos aplicaciones de tamaño fijo (por ejemplo cuando se está compilando html para una aplicación de smartphone) o cuando la estructura del diseño se adapta al tamaño (como Gmail con el [...]]]></description>
			<content:encoded><![CDATA[<p>Lo encontré ayer. Hay que tener en cuenta que lo que hace es evitar el scroll en general, no el rebote. Es útil cuando tenemos aplicaciones de tamaño fijo (por ejemplo cuando se está compilando html para una aplicación de smartphone) o cuando la estructura del diseño se adapta al tamaño (como Gmail con el último rediseño).</p>
<p>El CSS:</p>
<pre>body{
   overflow:hidden;
}</pre>
<p>El Javascript (jQuery):</p>
<pre>$(function(){
   $(document).bind('touchmove',function(e){
      e.preventDefault();
   });
});</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li>No se encuentran articulos relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2011/11/evitar-rebote-del-scroll-en-chrome-y-safari-para-lion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cambiar velocidad del scroll de Magic Mouse</title>
		<link>http://www.emm-gfx.net/2011/10/cambiar-velocidad-del-scroll-de-magic-mouse/</link>
		<comments>http://www.emm-gfx.net/2011/10/cambiar-velocidad-del-scroll-de-magic-mouse/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 18:33:20 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Lion]]></category>
		<category><![CDATA[Magic Mouse]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Scroll]]></category>
		<category><![CDATA[Speed]]></category>
		<category><![CDATA[Velocidad]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1597</guid>
		<description><![CDATA[Suelen hablar bastante mal de este ratón, pero lo cierto es que llevo desde que salió utilizándolo en el trabajo y la conclusión ha sido que tenía que comprarme uno para casa. Hace un par de semanas que lo hice aunque lo pensé tiempo antes, pero con el trackpad de los unibody a tiempos no [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: right; margin: 0px 0px 5px 0px;" title="magic-mouse-top_maxwidth" src="http://www.emm-gfx.net/wp-content/uploads/2011/10/magic-mouse-top_maxwidth-150x95.jpg" alt="" width="150" height="95" />Suelen hablar bastante mal de este ratón, pero lo cierto es que llevo desde que salió utilizándolo en el trabajo y la conclusión ha sido que tenía que comprarme uno para casa. Hace un par de semanas que lo hice aunque lo pensé tiempo antes, pero con el trackpad de los unibody a tiempos no lo veía necesario. En cuanto lo conecté por bluetooth, lo primero que hice fue cambiar la velocidad de movimiento del cursor y después intenté cambiar la del scroll, pero esta no me ha sido nada facil, de hecho, lo he conseguido hacer ahora, después de unos cuantos intentos.<span id="more-1597"></span></p>
<p>La primera opción fue utilizar el panel complementario y no oficial <strong>Magic Prefs</strong>, que es innecesario y he desinstalado porque no me gusta tener este tipo de programas si no les doy uso. Pero para cambiar la velocidad del scroll no se necesita eso.</p>
<p>El modo de cambiar la velocidad es este:</p>
<blockquote><p>Preferencias del Sistema &gt; Acceso universal &gt; Ratón y trackpad &gt; Opciones del ratón &gt; Velocidad de desplazamiento</p></blockquote>
<p>No sé muy bien por qué, el panel para cambiar este parámetro está en &#8220;Preferéncias &gt; Acceso universal&#8221;. No le veo sentido, creo que debería estar en el mismo panel del propio ratón, ya que tiene un panel para él.</p>
<p>Salud.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2009/08/aplicaciones-por-defecto-en-os-x/" title="Aplicaciones por defecto en OS X">Aplicaciones por defecto en OS X</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/07/la-sensibilidad-del-raton-en-mac/" title="La sensibilidad del ratón en Mac">La sensibilidad del ratón en Mac</a> (3)</li><li><a href="http://www.emm-gfx.net/2009/07/mejoras-visuales-de-snow-leopard/" title="Mejoras visuales de Snow Leopard">Mejoras visuales de Snow Leopard</a> (3)</li><li><a href="http://www.emm-gfx.net/2009/07/minimizado-suck-en-os-x/" title="Minimizado &#8220;suck&#8221; en OS X">Minimizado &#8220;suck&#8221; en OS X</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/04/bowtie-para-os-x/" title="Bowtie, para OS X">Bowtie, para OS X</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2011/10/cambiar-velocidad-del-scroll-de-magic-mouse/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP: Ordenar array por el valor de un campo</title>
		<link>http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/</link>
		<comments>http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 08:20:28 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[burbuja]]></category>
		<category><![CDATA[campo]]></category>
		<category><![CDATA[ordenar]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1592</guid>
		<description><![CDATA[Recomiendo investigar: usort en php.net, bubble sort, ordenamiento por burbuja en wikipedia y la fuente. function orderMultiDimensionalArray ($toOrderArray, $field, $inverse = false) { $position = array(); $newRow = array(); foreach ($toOrderArray as $key => $row) { $position[$key] = $row[$field]; $newRow[$key] = $row; } if ($inverse) { arsort($position); } else { asort($position); } $returnArray = array(); [...]]]></description>
			<content:encoded><![CDATA[<p>Recomiendo investigar: <a href="http://es.php.net/usort">usort en php.net</a>, <a href="http://www.metalshell.com/source_code/118/Bubble_Sort.html" title="bubble sort">bubble sort</a>, <a href="http://es.wikipedia.org/wiki/Ordenamiento_de_burbuja">ordenamiento por burbuja en wikipedia</a> y la <a href="http://notasweb.com/articulo/php/ordenar-array-multidimensional-por-un-campo-con-php.html">fuente</a>.</p>
<pre>function orderMultiDimensionalArray ($toOrderArray, $field, $inverse = false) {
    $position = array();
    $newRow = array();
    foreach ($toOrderArray as $key => $row) {
            $position[$key]  = $row[$field];
            $newRow[$key] = $row;
    }
    if ($inverse) {
        arsort($position);
    }
    else {
        asort($position);
    }
    $returnArray = array();
    foreach ($position as $key => $pos) {
        $returnArray[] = $newRow[$key];
    }
    return $returnArray;
}</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2012/05/php-convertir-objeto-a-array/" title="PHP: Convertir objeto a array">PHP: Convertir objeto a array</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/" title="Comprobar validez de un dominio con PHP (2)">Comprobar validez de un dominio con PHP (2)</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (2)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/instalar-mcrypt-en-ubuntu-8-04-3-server-lts/" title="Instalar mcrypt en Ubuntu 8.04.3 server LTS">Instalar mcrypt en Ubuntu 8.04.3 server LTS</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comprobar si un directorio está vacío con PHP</title>
		<link>http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/</link>
		<comments>http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/#comments</comments>
		<pubDate>Sat, 03 Sep 2011 18:42:39 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[directorio]]></category>
		<category><![CDATA[is_empty]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1588</guid>
		<description><![CDATA[$directorio = '/tu/ruta/'; $is_empty = (bool) (count(scandir($directorio)) == 2); $is_empty será true o false según si está vacío o no. Articulos relacionadosPHP: Convertir objeto a array (0)PHP: Ordenar array por el valor de un campo (0)ucfirst de PHP en Javascript (0)Comprobar validez de un dominio con PHP (2) (1)Enviar el log de errores de PHP [...]]]></description>
			<content:encoded><![CDATA[<pre>$directorio = '/tu/ruta/';
$is_empty = (bool) (count(scandir($directorio)) == 2);</pre>
<p><code>$is_empty</code> será <code>true</code> o <code>false</code> según si está vacío o no.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2012/05/php-convertir-objeto-a-array/" title="PHP: Convertir objeto a array">PHP: Convertir objeto a array</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/" title="Comprobar validez de un dominio con PHP (2)">Comprobar validez de un dominio con PHP (2)</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (2)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/instalar-mcrypt-en-ubuntu-8-04-3-server-lts/" title="Instalar mcrypt en Ubuntu 8.04.3 server LTS">Instalar mcrypt en Ubuntu 8.04.3 server LTS</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>30.08</title>
		<link>http://www.emm-gfx.net/2011/08/30-08/</link>
		<comments>http://www.emm-gfx.net/2011/08/30-08/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 15:09:25 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1571</guid>
		<description><![CDATA[Aún hago algún que otro dibujo. Articulos relacionadosNo se encuentran articulos relacionados]]></description>
			<content:encoded><![CDATA[<p>Aún hago algún que otro dibujo.<br />
<img class="alignnone size-large wp-image-1572" title="IMG_20110829_135902" src="http://www.emm-gfx.net/wp-content/uploads/2011/08/IMG_20110829_135902-610x457.jpg" alt="" style="width:600px;padding:4px;border:1px solid #CCC;margin:5px 0px;" /></p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li>No se encuentran articulos relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2011/08/30-08/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evento &#8220;tab&#8221; / &#8220;tap&#8221; en jQuery</title>
		<link>http://www.emm-gfx.net/2011/07/evento-tab-en-jquery/</link>
		<comments>http://www.emm-gfx.net/2011/07/evento-tab-en-jquery/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 08:05:31 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[phonegap]]></category>
		<category><![CDATA[rab]]></category>
		<category><![CDATA[tap]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1562</guid>
		<description><![CDATA[Hace unas semanas que empecé el desarrollo de una aplicación para iPhone, iPad, Android y web. Será una aplicación web compilada con Phonegap y que aparentará ser nativa. En principio se iba a utilizar el framework jQuery Mobile para agilizar el desarrollo, pero después de unos días de trabajo vi que quizá no era lo [...]]]></description>
			<content:encoded><![CDATA[<p>Hace unas semanas que empecé el desarrollo de una aplicación para iPhone, iPad, Android y web. Será una aplicación web compilada con Phonegap y que aparentará ser nativa. En principio se iba a utilizar el framework jQuery Mobile para agilizar el desarrollo, pero después de unos días de trabajo vi que quizá no era lo más adecuado y que la librería puede que no estuviera suficientemente madura (aún era Alpha) como para usarla en un proyecto así, de manera que se tiró para atrás la idea. Pensé que sería mejor hacer un desarrollo &#8220;desde 0&#8243; con jQuery a secas.</p>
<p>El primer tropezón fue con el scroll. Parece una tonteria, algo que se solucionaría con 2 palabras en cualquier navegador ha llevado semanas de pruebas, dolores de cabeza y malas ideas. Ahora que parece que este tema está más o menos solucionado (ya escribiré sobre esto) me encuentro con otro: tenemos una lista con elementos seleccionables, pero después del uso de librerías para scroll y con lo dificil que lo pone Safari Mobile, no se podía hacer click en los elementos de la lista, el evento no se reconocía.</p>
<p>Ahora habría que utilizar un plugin para detectar los &#8220;tab&#8221; o &#8220;tap&#8221;, los toques en pantallas táctiles. El plugin es este:<span id="more-1562"></span></p>
<pre>jQuery.event.special.tabOrClick = {
	setup: function (data, namespaces){
		var elem = this, $elem = jQuery(elem);
		if(window.Touch){
			$elem.bind('touchstart', jQuery.event.special.tabOrClick.onTouchStart);
			$elem.bind('touchmove', jQuery.event.special.tabOrClick.onTouchMove);
			$elem.bind('touchend', jQuery.event.special.tabOrClick.onTouchEnd);
		}else{
			$elem.bind('click', jQuery.event.special.tabOrClick.click);
		}
	},
	click: function (event) {
		event.type = "tabOrClick";
		jQuery.event.handle.apply(this, arguments);
	},
	teardown: function (namespaces) {
		if(window.Touch){
			$elem.unbind('touchstart', jQuery.event.special.tabOrClick.onTouchStart);
			$elem.unbind('touchmove', jQuery.event.special.tabOrClick.onTouchMove);
			$elem.unbind('touchend', jQuery.event.special.tabOrClick.onTouchEnd);
		}else{
			$elem.unbind('click', jQuery.event.special.tabOrClick.click);
		}
	},
	onTouchStart: function (e) {
		this.moved = false;
	},
	onTouchMove: function (e) {
		this.moved = true;
	},
	onTouchEnd: function (event) {
		if (!this.moved) {
			event.type = "tabOrClick";
			jQuery.event.handle.apply(this, arguments)
		}
	}
};</pre>
<p>Y para usarlo, sólo hay que incluir ese código en un archivo e incluirlo como plugin o copiarlo directamente al código javascript. Luego cuando se quiera utilizar:</p>
<pre>$("#elemento").live("tabOrClick",function(){
	/* cosas */
	return false;
});</pre>
<p>Visto en <a href="http://stackoverflow.com/questions/2135037/adding-a-jquery-style-event-handler-of-iphone-os-events/3561616#3561616" target="_blank">Stackoverflow</a>.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2009/01/retrasar-eventos-y-efectos-de-jquery/" title="Retrasar eventos y efectos de jQuery">Retrasar eventos y efectos de jQuery</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2011/07/evento-tab-en-jquery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Reiniciar contraseña root de MySQL</title>
		<link>http://www.emm-gfx.net/2011/07/reiniciar-contrasena-root-de-mysql/</link>
		<comments>http://www.emm-gfx.net/2011/07/reiniciar-contrasena-root-de-mysql/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 08:46:51 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[contraseña]]></category>
		<category><![CDATA[mamp]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[root]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1557</guid>
		<description><![CDATA[Con MAMP se puede cambiar la contraseña desde el panel de control, almenos desde MAMP Pro, pero si no se tiene esa opción: shell&#62; mysqld --skip-grant-tables &#38; shell&#62; mysql -u root mysql mysql&#62; UPDATE mysql.user SET Password=PASSWORD('tu_password') WHERE User='root'; mysql&#62; FLUSH PRIVILEGES; Articulos relacionadosRecuperar la contraseña de root a MySQL (0)]]></description>
			<content:encoded><![CDATA[<p>Con MAMP se puede cambiar la contraseña desde el panel de control, almenos desde MAMP Pro, pero si no se tiene esa opción:</p>
<pre>shell&gt; mysqld --skip-grant-tables &amp;
shell&gt; mysql -u root mysql
mysql&gt; UPDATE mysql.user SET Password=PASSWORD('tu_password') WHERE User='root';
mysql&gt; FLUSH PRIVILEGES;</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/01/recuperar-la-contrasena-de-root-a-mysql/" title="Recuperar la contraseña de root a MySQL">Recuperar la contraseña de root a MySQL</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2011/07/reiniciar-contrasena-root-de-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ucfirst de PHP en Javascript</title>
		<link>http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/</link>
		<comments>http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 07:19:14 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[mayúsculas]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ucfirst]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1551</guid>
		<description><![CDATA[function ucfirst(string){ return string.charAt(0).toUpperCase() + string.slice(1); } Por ejemplo: foo = 'hello world!'; foo = ucfirst(foo); // Hello world! bar = 'HELLO WORLD!'; bar = ucfirst(bar.toLowerCase()); // Hello world! Si la cadena esta entera en mayúsculas y se quiere tener sólo la primera, priemero se debería pasar toda a minúscula y después cambiar la primera. [...]]]></description>
			<content:encoded><![CDATA[<pre>function ucfirst(string){
   return string.charAt(0).toUpperCase() + string.slice(1);
}</pre>
<p>Por ejemplo:</p>
<pre>foo = 'hello world!';
foo = ucfirst(foo);             // Hello world!

bar = 'HELLO WORLD!';
bar = ucfirst(bar.toLowerCase()); // Hello world!</pre>
<p>Si la cadena esta entera en mayúsculas y se quiere tener sólo la primera, priemero se debería pasar toda a minúscula y después cambiar la primera.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/07/detectar-peticion-ajax-con-php/" title="Detectar petición AJAX con PHP">Detectar petición AJAX con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2012/05/php-convertir-objeto-a-array/" title="PHP: Convertir objeto a array">PHP: Convertir objeto a array</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/" title="Comprobar validez de un dominio con PHP (2)">Comprobar validez de un dominio con PHP (2)</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/07/acentos-y-tildes-en-javascript/" title="Tildes en Javascript">Tildes en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/base64-encode-y-decode-en-javascript/" title="Base64 (encode y decode) en Javascript">Base64 (encode y decode) en Javascript</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comprobar validez de un dominio con PHP (2)</title>
		<link>http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/</link>
		<comments>http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 07:58:37 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[checkdnsrr]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[dominio]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[Registro]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1540</guid>
		<description><![CDATA[Hace un año y medio más o menos escribí un articulo sobre como comprobar que un dominio existía. Pero ahí lo explicaba con una función hecha a mano. Ahora acabo de ver que también se puede hacer con una función nativa y resulta mucho más sencillo. Además es capaz de comprobar un tipo de registro [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un año y medio más o menos escribí un <a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/">articulo sobre como comprobar que un dominio existía</a>. Pero ahí lo explicaba con una función hecha a mano. Ahora acabo de ver que también se puede hacer con una función nativa y resulta mucho más sencillo. Además es capaz de comprobar un tipo de registro especifico (A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR, TXT o ANY).<span id="more-1540"></span></p>
<pre>checkdnsrr('www.viciana.me') // Devuelve true
checkdnsrr('www.brrrr.es') // Devuelve false</pre>
<p>Y un ejemplo de uso práctico para ver como se podría comprobar si un email existe (hasta cierto punto).</p>
<pre>$mail = 'josep@viciana.me';
$dominio = explode('@',$mail);
if(checkdnsrr($dominio[1])){
	echo 'existe';
}else{
	echo 'no existe';
}</pre>
<p>Si interesa saber más sobre la comprobación de registros especificos, recomiendo leer la <a href="http://es2.php.net/checkdnsrr">documentación oficial</a>.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2012/05/php-convertir-objeto-a-array/" title="PHP: Convertir objeto a array">PHP: Convertir objeto a array</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/02/servidor-dedicado-con-ip-dinamica/" title="Servidor dedicado con IP dinámica.">Servidor dedicado con IP dinámica.</a> (5)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (2)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HTML5: Editar el css de Placeholder</title>
		<link>http://www.emm-gfx.net/2011/05/html5-editar-el-css-de-placeholder/</link>
		<comments>http://www.emm-gfx.net/2011/05/html5-editar-el-css-de-placeholder/#comments</comments>
		<pubDate>Tue, 10 May 2011 11:02:39 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Formularios]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Placeholder]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Webkit]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1530</guid>
		<description><![CDATA[Hace poco fui a una conferéncia sobre HTML5 en la que se explicaban los cambios, las novedades y la actitud de los pesos pesados en estos temas. La parte que me pareció más interesante fue la de formularios. Una de las cosas que explicaron fué el uso de placeholder, un atributo para los campos de [...]]]></description>
			<content:encoded><![CDATA[<p>Hace poco fui a una conferéncia sobre HTML5 en la que se explicaban los cambios, las novedades y la actitud de los pesos pesados en estos temas. La parte que me pareció más interesante fue la de formularios.</p>
<p>Una de las cosas que explicaron fué el uso de <code>placeholder</code>, un atributo para los campos de texto que lo que hace es mostrar un texto cuando el <code>input</code> no tiene valor, pero ese texto no representa ningún valor y es sólo para ayudar al usuario. Por si no me explico, una captura:<span id="more-1530"></span></p>
<p><img src="http://www.emm-gfx.net/wp-content/uploads/2011/05/placeholder.png" alt="" title="placeholder" width="580" height="191" class="alignnone size-full wp-image-1531" /></p>
<p>Por defecto el <code>placeholder</code> tiene un color, que indica el navegador y suele ser gris. En cuanto al grosor, espaciado, color, etc, asumirá que usa el mismo que el texto normal (sea o no definido en css). Si se quieren cambiar estos estilos se puede utilizar este pequeño <em>snippet</em> que he <a href="http://stackoverflow.com/questions/2610497/change-an-inputs-html5-placeholder-color-with-css">encontrado por ahí</a>.</p>
<div class="cuadro-amarillo">No lo he probado con diferentes navegadores. Pero en la fuente se indica que es compatible con Webkit (Chrome y Safari) y con Firefox (a partir de la versión 4).</div>
<pre>input::-webkit-input-placeholder {
    color:    #c00;
    font-weight: bold;
}
input:-moz-placeholder {
    color:    #c00;
    font-weight: bold;
}</pre>
<p>Y el formulario quedaría así:</p>
<p><img src="http://www.emm-gfx.net/wp-content/uploads/2011/05/placeholder2.png" alt="" title="placeholder2" width="580" height="191" class="alignnone size-full wp-image-1536" /></p>
<p>A ver si me acuerdo más adelante y escribo algo sobre los <code>type range</code>.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2009/08/quitar-el-borde-de-los-input-con-foco-en-safari-y-chrome/" title="Quitar el borde de los input con foco en Safari y Chrome">Quitar el borde de los input con foco en Safari y Chrome</a> (7)</li><li><a href="http://www.emm-gfx.net/2009/07/centrar-texto-en-vertical/" title="Centrar texto en vertical">Centrar texto en vertical</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/07/inline-block-cross-browser/" title="inline-block cross-browser">inline-block cross-browser</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2011/05/html5-editar-el-css-de-placeholder/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>El teclado de Gingerbread (2.3) en Froyo y Éclair</title>
		<link>http://www.emm-gfx.net/2011/03/el-teclado-de-gingerbread-2-3-en-froyo-y-eclair/</link>
		<comments>http://www.emm-gfx.net/2011/03/el-teclado-de-gingerbread-2-3-en-froyo-y-eclair/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 08:43:39 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Éclair]]></category>
		<category><![CDATA[Froyo]]></category>
		<category><![CDATA[Gingerbread]]></category>
		<category><![CDATA[Teclado]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1516</guid>
		<description><![CDATA[Desde hace un tiempo estoy probando el nuevo teclado de Android, el que vendrá con Gingerbread (la versión 2.3). Las teclas son ligeramente más pequeñas y hay más separación entre ellas, de manera que resulta más rápido escribir sin demasiados fallos. También se nota el cambio a la hora de mantener pulsada una tecla para [...]]]></description>
			<content:encoded><![CDATA[<p>Desde hace un tiempo estoy probando el nuevo teclado de Android, el que vendrá con Gingerbread (la versión 2.3). Las teclas son ligeramente más pequeñas y hay más separación entre ellas, de manera que resulta más rápido escribir sin demasiados fallos. También se nota el cambio a la hora de mantener pulsada una tecla para ver la ventana emergente, ahora tiene un uso similar al de iPhone.</p>
<p>Para instalar este teclado no hay que ser root ni nada, sólo permitir la instalación de aplicaciones de fuera del Market (Ajustes / Aplicaciones / Orígenes desconocidos), y cargar el archivo .apk a la tarjeta sd. Después se tiene que ejecutar con algún explorador de archivos, yo utilizo <a href="https://market.android.com/details?id=com.lindaandny.lindamanager">Linda Manager</a>.<span id="more-1516"></span></p>
<ul>
<li><a href="http://www.emm-gfx.net/wp-content/uploads/2011/03/GingerbreadKeyboard.zip">Gingerbread Keyboard para Froyo (2.2) y Éclair (2.1)</a></li>
</ul>
<p><img class="alignnone size-large wp-image-1522" title="Android-2.3-Gingerbread-Keyboard-on-Android-2.2-Froyo" src="http://www.emm-gfx.net/wp-content/uploads/2011/03/Android-2.3-Gingerbread-Keyboard-on-Android-2.2-Froyo-610x342.jpg" alt="" style="width:100%; padding:3px; border:1px solid #ccc; border-radius:3px;" /></p>
<p>Para activarlo, sólo hay que ir a Ajustes / Idioma y teclado / Gingerbread Keyboard<br />
En algún campo de texto, mantén pulsado hasta que salga la ventana emergente y sigue las instrucciones.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li>No se encuentran articulos relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2011/03/el-teclado-de-gingerbread-2-3-en-froyo-y-eclair/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Assange y Zuckerberg</title>
		<link>http://www.emm-gfx.net/2010/12/assagne-y-zuckerberg/</link>
		<comments>http://www.emm-gfx.net/2010/12/assagne-y-zuckerberg/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 12:28:46 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Assange]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Wikileaks]]></category>
		<category><![CDATA[Zuckerberg]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1505</guid>
		<description><![CDATA[¿Cuáles son las diferencias entre Mark Zuckerberg y yo? Yo les doy información privada de corporaciones a todos gratis y soy un villano. Zuckerberg le da información privada a las corporaciones por dinero y él es la Persona del Año. - Julian Assange (vía) Articulos relacionadosHe vuelto a hacerlo (4)]]></description>
			<content:encoded><![CDATA[<blockquote><p>¿Cuáles son las diferencias entre Mark Zuckerberg y yo? Yo les doy información privada de corporaciones a todos gratis y soy un villano. Zuckerberg le da información privada a las corporaciones por dinero y él es la Persona del Año.</p></blockquote>
<p style="text-align: right;">- <a href="http://es.wikipedia.org/wiki/Julian_Assange" target="_blank">Julian Assange</a> (<a href="http://www.marilink.net/2010/12/19/zuckerberg-and-assange/">vía</a>)</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/07/he-vuelto-a-hacerlo/" title="He vuelto a hacerlo">He vuelto a hacerlo</a> (4)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/12/assagne-y-zuckerberg/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Vectorizando 10, Miss Mosh</title>
		<link>http://www.emm-gfx.net/2010/11/vectorizando-10-miss-mosh/</link>
		<comments>http://www.emm-gfx.net/2010/11/vectorizando-10-miss-mosh/#comments</comments>
		<pubDate>Sat, 06 Nov 2010 16:04:44 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Diseño e ilustración]]></category>
		<category><![CDATA[Ilustración]]></category>
		<category><![CDATA[Miss Mosh]]></category>
		<category><![CDATA[Vectores]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1485</guid>
		<description><![CDATA[Dibujado en el 2010, entre el 11 de agosto y el 6 de noviembre. Photoshop CS5 para OS X. Usando a Miss Mosh como modelo (ver foto original). Para este dibujo no he hecho capturas ni video para mostrar el proceso, no hay nada, sólo el dibujo. Estoy contento, creo que ha quedado bastante bien [...]]]></description>
			<content:encoded><![CDATA[<p>Dibujado en el 2010, entre el 11 de agosto y el 6 de noviembre. Photoshop CS5 para OS X. Usando a <a href="http://miss-mosh.deviantart.com/" target="_blank">Miss Mosh</a> como modelo (ver <a href="http://miss-mosh.deviantart.com/gallery/#/d2pwtlm">foto original</a>). Para este dibujo no he hecho capturas ni video para mostrar el proceso, no hay nada, sólo el dibujo. Estoy contento, creo que ha quedado bastante bien aunque no sea de lo mejor. Al final, una canción para acompañar, y no hay más.<span id="more-1485"></span></p>
<p><img title="Miss-Mosh-1" src="http://www.emm-gfx.net/wp-content/uploads/2010/11/Miss-Mosh-1.jpg" alt="" width="580" height="868" /></p>
<p>Sin título (de Tr3s Monos, en Música para tus ojos).</p>
<p><a href="http://www.emm-gfx.net/wp-content/uploads/2010/11/Sin-título.mp3">Sin título</a></p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/01/vectorizando-8-merce/" title="Vectorizando 8. Mercè">Vectorizando 8. Mercè</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/comportamiento-de-la-pluma-en-photoshop-cs4/" title="Comportamiento de la pluma en Photoshop CS4">Comportamiento de la pluma en Photoshop CS4</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/05/vectorizando-9-rachel-mcadams/" title="Vectorizando 9, Rachel McAdams">Vectorizando 9, Rachel McAdams</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/11/vectorizando-10-miss-mosh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Europa 2010</title>
		<link>http://www.emm-gfx.net/2010/10/europa-2010/</link>
		<comments>http://www.emm-gfx.net/2010/10/europa-2010/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 21:32:05 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Alemania]]></category>
		<category><![CDATA[Austria]]></category>
		<category><![CDATA[Bélgica]]></category>
		<category><![CDATA[España]]></category>
		<category><![CDATA[Europa]]></category>
		<category><![CDATA[Suiza]]></category>
		<category><![CDATA[Vacaciones]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1414</guid>
		<description><![CDATA[He conectado un disco externo que compré para hacer copias de seguridad, que hacía demasiado tiempo que no las hacía y he buscado algunas fotos del viaje que hice estas vacaciones con otros 4 amigos; en concreto las de Hallstatt, un pueblo que vivió de las minas de sal situado en Austria a poco más [...]]]></description>
			<content:encoded><![CDATA[<p>He conectado un disco externo que compré para hacer copias de seguridad, que hacía demasiado tiempo que no las hacía y he buscado algunas fotos del viaje que hice estas vacaciones con otros 4 amigos; en concreto las de Hallstatt, un pueblo que vivió de las minas de sal situado en Austria a poco más de 80 kilómetros de Alemania. Y he pensado en hacer un pequeño mapa con la ruta que hicimos, que no es exactamente como estaba planeado pero&#8230; psé, fue todo bastante bien y por suerte o por desgracia no hubieron complicaciones de casi ningún tipo. El año que viene, si vuelvo a tener la oportunidad, volveré a hacerlo, sin duda. Y poco más, alguna gente que me conoce puede ver casi todas las fotos en una galería de Picasa que voy completando y ordenando, aunque la enorme mayoría de fotos no vale nada, pero bueno, más que recuerdos lo que quiero es volver a hacerlo.<span id="more-1414"></span></p>
<p><strong>La ruta fué:</strong> Barcelona (España) &#8211; Berna (Suiza) &#8211; Gernsbach (Alemania) &#8211; Kehlsteinhaus (Alemania) &#8211; Hallstatt (Austria) &#8211; Colonia (Alemania) &#8211; Brugge (Bélgica) &#8211; Barcelona (España).</p>
<p><iframe style="padding:2px; border:1px solid #CCC;" width="100%" height="400" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.es/maps?f=d&amp;source=embed&amp;saddr=Barcelona&amp;daddr=Berna,+Suiza+to:Gernsbach,+Deutschland+to:Kehlsteinhaus,+Berchtesgaden,+Alemania+to:hallstatt+to:Colonia,+Alemania+to:Brujas,+Regi%C3%B3n+Flamenca,+B%C3%A9lgica+to:Barcelona&amp;hl=es&amp;geocode=FY2HdwIdPxwhACn1KO0mcZikEjEwA6Qh4PoABA%3BFZ9ezAIdVKZxACmjVXO8PzmORzEg2hhAiP8ABA%3BFbUO6AIdrjN_ACndCtThPxiXRzEFh3e4-ii_fA%3BFQh-1gIdtwLHACEAUu4qpcu3Aw%3BFa2q1QIdbTzQACmlGvBMJDRxRzGASOYtV5cABA%3BFfhKCQMdKDNqACnlL6tpkSW_RzHwdypK_GAnBA%3BFdpkDQMdljYxACkNQh7B0FDDRzH3TYPIWvOiGg%3BFY2HdwIdPxwhACn1KO0mcZikEjEwA6Qh4PoABA&amp;mra=ls&amp;sll=51.241286,3.164063&amp;sspn=0.999004,2.90863&amp;ie=UTF8&amp;t=p&amp;ll=46.30289,7.74876&amp;spn=9.83096,11.81748&amp;output=embed"></iframe><br /><small><a href="http://maps.google.es/maps?f=d&amp;source=embed&amp;saddr=Barcelona&amp;daddr=Berna,+Suiza+to:Gernsbach,+Deutschland+to:Kehlsteinhaus,+Berchtesgaden,+Alemania+to:hallstatt+to:Colonia,+Alemania+to:Brujas,+Regi%C3%B3n+Flamenca,+B%C3%A9lgica+to:Barcelona&amp;hl=es&amp;geocode=FY2HdwIdPxwhACn1KO0mcZikEjEwA6Qh4PoABA%3BFZ9ezAIdVKZxACmjVXO8PzmORzEg2hhAiP8ABA%3BFbUO6AIdrjN_ACndCtThPxiXRzEFh3e4-ii_fA%3BFQh-1gIdtwLHACEAUu4qpcu3Aw%3BFa2q1QIdbTzQACmlGvBMJDRxRzGASOYtV5cABA%3BFfhKCQMdKDNqACnlL6tpkSW_RzHwdypK_GAnBA%3BFdpkDQMdljYxACkNQh7B0FDDRzH3TYPIWvOiGg%3BFY2HdwIdPxwhACn1KO0mcZikEjEwA6Qh4PoABA&amp;mra=ls&amp;sll=51.241286,3.164063&amp;sspn=0.999004,2.90863&amp;ie=UTF8&amp;t=p&amp;ll=46.30289,7.74876&amp;spn=9.83096,11.81748" style="color:#0000FF;text-align:left">Ver mapa más grande</a></small></p>
<p>Una canción para acompañar:<br />
<iframe title="YouTube video player" class="youtube-player" type="text/html" width="100%" height="27" src="http://www.youtube.com/embed/4UXti0Ie7l8?rel=0" frameborder="0"></iframe></p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li>No se encuentran articulos relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/10/europa-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Cuanto te vigila tu empresa?</title>
		<link>http://www.emm-gfx.net/2010/09/%c2%bfcuanto-te-vigila-tu-empresa/</link>
		<comments>http://www.emm-gfx.net/2010/09/%c2%bfcuanto-te-vigila-tu-empresa/#comments</comments>
		<pubDate>Mon, 27 Sep 2010 21:43:31 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1388</guid>
		<description><![CDATA[Escribo esto sin ninguna pretensión, no quiero hacer cambiar de idea a nadie, sólo escribir algo. De hecho no me importa en absoluto si la gente hace las cosas de una forma correcta o no, sólo me importa saber que yo hago mis cosas y me comporto como mejor sé. Desde hace más o menos [...]]]></description>
			<content:encoded><![CDATA[<p>Escribo esto sin ninguna pretensión, no quiero hacer cambiar de idea a nadie, sólo escribir algo. De hecho no me importa en absoluto si la gente hace las cosas de una forma correcta o no, sólo me importa saber que yo hago mis cosas y me comporto como mejor sé.</p>
<p>Desde hace más o menos un mes, en la oficina donde trabajo por las mañanas se utiliza un programa llamado Rescue Time. Este programa monitorea, cataloga y almacena información sobre todo lo que haces (no guarda conversaciones privadas). Guarda las direcciones de las páginas que visitas, los programas que utilizas y el tiempo que pasas en cada tarea; todo organizado de forma enfermiza en una falsa gráfica que quiere representar el rendimiento de cada hora de trabajo frente al ordenador.<span id="more-1388"></span></p>
<p>Funciona como si fuera un juego de rol diseñado por un niño de 7 años. Cada empleado tiene un rendimiento que puede variar del -2 al 2, y dependiendo de lo que hagas con el ordenador puedes ir de un extremo al otro. Si visitas Facebook te cuenta un rendimiento de -2, si estas utilizando un programa de desarrollo te cuenta 2 (estos valores se pueden cambiar, el administrador decide que tareas tienen más o menos puntuación. Además puedes comparar tu falso rendimiento con el de el resto de la empresa.</p>
<p>Una herramienta así lo último que hace es mejorar el ambiente de trabajo, de hecho, en la oficina donde trabajo ha hecho más daño del que yo pensé en su día. La insultante y tardía explicación sobre por qué se había empezado a utilizar el programa es que a los que mandan les sería más facil distribuir el trabajo entre los empleados, es decir, si tienes mucho trabajo te intentan aliviar, y si tienes poco te ponen más.</p>
<p>La teoría está bien, pero mi opinión es que usar este tipo de programas es un error. El buen humor de todos ha bajado de forma considerable, eso es algo que se nota sin que un programa te analice. En el plano personal: desde que tengo este programa mi rendimiento ha bajado de una forma que pocas veces he notado. Al fin y al cabo eso es algo que cada cual nota sin necesidad de recurrir a ideas de Orwell. Paso todo el día viendo el icono del maldito programa y pensando en los pros y los contras de su uso y en la manera en que me está molestando a mí.</p>
<p>Sinceramente, yo siempre he leido artículos sobre como ser más productivo y evitar las pérdidas de tiempo, incluso cerré mi cuenta de Facebook únicamente por este motivo, no tenia nada que ver con la privacidad. También preparé un sistema de tareas propio para organizarme mejor. Los días productivos siempre pasan más rápido, acaban con una sensación de tranquilidad que tiene más importancia de la que mucha gente cree, y sobretodo, un día productivo lo es en todos los sentidos, el jefe (sea tu empleador o seas tu mismo) tiene más y mejor (mucho mejor, sin dudarlo) trabajo realizado. Un día productivo se pasa más rápido y de una forma mucho más entretenida, con la mejora de humor que eso representa (y el humor se contagia, de manera que si yo soy productivo es probable que mejore el humor de la gente que me rodea). Puede parecer una tontería, y no tengo ningún estudio que lo corrobore pero eso no me preocupa demasiado.</p>
<h3>Motivos para usar Rescue Time</h3>
<ul>
<li>Puedes balancear el trabajo entre los empleados</li>
<li>Puede servirte para saber si te distraes (aunque suene ridículo).</li>
</ul>
<h3>Motivos para no usar Rescue Time</h3>
<ul>
<li>El buen humor y ambiente también importan</li>
<li>Es ofensivo para el empleado</li>
<li>En mi caso almenos es totalmente contraproducente</li>
<li>Fomenta la competitividad entre compañeros</li>
<li>Fomenta el trabajo rápido y mal hecho</li>
</ul>
<h3>Una alternativa</h3>
<p>Creo que gastar una hora semanal en charlas sobre productividad es infinitamente mejor idea que poner de mala hostia al personal (usando un programa coaccionador como Rescue Time o poniendo a una persona detrás tuyo mirando todo lo que haces). Es decir, mantener una conversacion civilizada no debería ser complicado, y da la oportunidad de hacer que la gente sea productiva por su propia voluntad, no por un icono en la barra de tareas que se mantiene ahí como confirmandote con qué tipo de gente trabajas. Si tu punto de vista es lógico, el resto de implicados en la conversación te harán caso. Si no lo és y tienes suerte, te harán entrar en razón.</p>
<h3>Conclusión</h3>
<p>Si alguna vez depende de mí usar o no estas herramientas. Espero hacer lo posible por evitarlas, y no debería costarme ya que son innecesarias y contraproducentes (almenos conmigo). Además me parece una falta de respeto. Aunque no esperaría que me respeten demasiado como técnico de campo en sermicro, pero sí en una pyme. No todo esta a la venta.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li>No se encuentran articulos relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/09/%c2%bfcuanto-te-vigila-tu-empresa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pacifismo</title>
		<link>http://www.emm-gfx.net/2010/08/pacifismo/</link>
		<comments>http://www.emm-gfx.net/2010/08/pacifismo/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 16:19:20 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[George Orwell]]></category>
		<category><![CDATA[Pacifismo]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1382</guid>
		<description><![CDATA[Ayer mismo dije que preferia no postear nada en mi blog antes que escribir cualquier chorrada. Un diseño de Neopren Articulos relacionadosNo se encuentran articulos relacionados]]></description>
			<content:encoded><![CDATA[<p>Ayer mismo dije que preferia no postear nada en mi blog antes que escribir cualquier chorrada.</p>
<p><img class="alignnone size-large wp-image-1383" title="pacifismo fascista orwell" src="http://www.emm-gfx.net/wp-content/uploads/2010/08/pacifismo-fascista-orwell-610x503.jpg" alt="" width="100%" /></p>
<p>Un diseño de <a href="http://neopren.tumblr.com/post/608229346" target="_blank">Neopren</a></p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li>No se encuentran articulos relacionados</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/08/pacifismo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

