<?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>Mundo Geek &#187; plugins</title>
	<atom:link href="http://mundogeek.net/etiqueta/plugins/feed/" rel="self" type="application/rss+xml" />
	<link>http://mundogeek.net</link>
	<description>Mundo geek, bitácora sobre todo lo geek: software, gadgets, tecnología, internet, ...</description>
	<lastBuildDate>Wed, 08 Feb 2012 16:09:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Autocompletado con jQuery</title>
		<link>http://mundogeek.net/archivos/2010/08/04/autocompletado-con-jquery/</link>
		<comments>http://mundogeek.net/archivos/2010/08/04/autocompletado-con-jquery/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 15:25:24 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[autocompletado]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=5841</guid>
		<description><![CDATA[Autocomplete, que forma parte de la librería jQuery UI, es uno de los muchos plugins de autocompletado disponibles para jQuery; plugins que permiten mostrar una serie de sugerencias al usuario mientras este está escribiendo en una caja de texto. Esta funcionalidad, además de ahorrar algo de tiempo al usuario, también es un sistema mucho menos [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jqueryui.com/demos/autocomplete/" title="Autocomplete, un plugin de autocompletado para jQuery">Autocomplete</a>, que forma parte de la librería <a href="http://jqueryui.com/" title="jQuery UI, una librería de componentes de interfaz de usuario para jQuery">jQuery UI</a>, es uno de los muchos plugins de autocompletado disponibles para <a href="http://mundogeek.net/archivos/2010/04/21/tutorial-rapido-de-jquery/" title="Tutorial rápido de jQuery">jQuery</a>; plugins que permiten mostrar una serie de sugerencias al usuario mientras este está escribiendo en una caja de texto. Esta funcionalidad, además de ahorrar algo de tiempo al usuario, también es un sistema mucho menos propenso a errores. Este es el aspecto de una caja de texto decorada con este plugin:</p>
<div style="text-align:center"><img src="http://mundogeek.net/wp-content/jquery-autocomplete.png" alt="Plugin de autocompletado para jQuery" title="Autocompletado con jQuery"/></div>
<p><br/><span id="more-5841"></span></p>
<p>Su uso es bastante sencillo: sólo tenemos que incluir el código de jQuery y Autocomplete en nuestro documento HTML, y, opcionalmentev, su hoja de estilo; seleccionar el elemento al que añadir la funcionalidad de autocompletado, pasando un selector a la función <code>$</code> / <code>jQuery</code>, y llamar al método <code>autocomplete</code> de este elemento, pasando como parámetro un objeto con un campo <code>source</code>, que es el que indicará al plugin la fuente de datos a utilizar para el autocompletado.</p>
<pre name="code" class="html">&lt;html&gt;
&lt;head&gt;
&lt;link rel="stylesheet" href="jquery-ui-1.8.2.custom.css" type="text/css" media="all"/&gt;

&lt;script type="text/javascript" src="jquery-1.4.2.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="jquery-ui-1.8.2.custom.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
$(function() {
	var animales = ["Ardilla roja", "Gato", "Gorila occidental",
	  "León", "Oso pardo", "Perro", "Tigre de Bengala"];

	$("#animal").autocomplete({
	  source: animales
	});
});
&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;input type="text" id="animal"/&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>La fuente, además de un array de strings, como en el ejemplo anterior, también puede ser</p>
<ul>
<li>un array de objetos, con propiedades <code>label</code> (el texto que se mostrará como sugerencia) y <code>value</code> (el texto que se introducirá en la caja de texto al hacer clic sobre esa sugerencia)
<pre name="code" class="html">&lt;html&gt;
&lt;head&gt;
&lt;link rel="stylesheet" href="jquery-ui-1.8.2.custom.css" type="text/css" media="all"/&gt;

&lt;script type="text/javascript" src="jquery-1.4.2.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="jquery-ui-1.8.2.custom.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
$(function() {
	var animales = [
	  {label: "Ardilla roja", value: "Sciurus vulgaris"},
	  {label: "Gato", value: "Felis silvestris catus"},
	  {label: "Gorila occidental", value: "Gorilla gorilla"},
	  {label: "León", value: "Panthera leo"},
	  {label: "Oso pardo", value: "Ursus arctos"},
	  {label: "Perro", value: "Canis lupus familiaris"},
	  {label: "Tigre de Bengala", value: "Panthera tigris tigris"}];

	$("#animal").autocomplete({
	  source: animales
	});
});
&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;input type="text" id="animal"/&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
</li>
<li>una cadena con una URL, que deberá devolver un array de strings u objetos en formato JSON
<pre name="code" class="php">&lt;?php
if(isset($_GET['getAnimales'])) {
  $bd = new mysqli("localhost", "root", "", "animales");
  if(mysqli_connect_errno()) return;

  $animales = array();
  if($res = $bd-&gt;query("SELECT * FROM animales"))
    while($animal = $res-&gt;fetch_assoc())
      $animales[] = array(
        'label' =&gt; $animal['nombreComun'],
        'value' =&gt; $animal['nombreCientifico'],
        'estado' =&gt; $animal['conservacion'],
      );
  $bd-&gt;close();
  echo json_encode($animales);
  return;
}
?&gt;

&lt;html&gt;
&lt;head&gt;
&lt;link rel="stylesheet" href="jquery-ui-1.8.2.custom.css" type="text/css" media="all"/&gt;

&lt;script type="text/javascript" src="jquery-1.4.2.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="jquery-ui-1.8.2.custom.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
$(function() {
	$("#animal").autocomplete({
	  source: "animales.php?getAnimales=1"
	});
});
&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;input type="text" id="animal"/&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
</li>
<li>o una función de callback, a la que se le pasa un objeto <code>request</code> (la petición) y un objeto <code>response</code> (la respuesta).</li>
</ul>
<p>De entre los eventos de los que dispone el widget el que más utilizaremos, seguramente, sea <code>select</code>, un evento que se lanza cuando el usuario ha seleccionado uno de los resultados sugeridos, y que se utilizaría de la siguiente forma:</p>
<pre name="code" class="php">&lt;?php
if(isset($_GET['getAnimales'])) {
  $bd = new mysqli("localhost", "root", "", "animales");
  if(mysqli_connect_errno()) return;

  $animales = array();
  if($res = $bd-&gt;query("SELECT * FROM animales"))
    while($animal = $res-&gt;fetch_assoc())
      $animales[] = array(
        'label' =&gt; $animal['nombreComun'],
        'value' =&gt; $animal['nombreCientifico'],
        'estado' =&gt; $animal['conservacion'],
      );
  $bd-&gt;close();
  echo json_encode($animales);
  return;
}
?&gt;

&lt;html&gt;
&lt;head&gt;
&lt;link rel="stylesheet" href="jquery-ui-1.8.2.custom.css" type="text/css" media="all"/&gt;

&lt;script type="text/javascript" src="jquery-1.4.2.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="jquery-ui-1.8.2.custom.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
$(function() {
    $("#animal").autocomplete({
        source: "animales.php?getAnimales=1",
        select: function(event, ui) {
            $('#conservacion').html(ui.item.label + " (" + ui.item.value + ") " +
                "tiene un estado de conservación de: " + ui.item.estado);
        }
    });
});
&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;input type="text" id="animal"/&gt;
&lt;p id="conservacion"&gt;&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<link type="text/css" rel="stylesheet" href="http://mundogeek.net/sh/css/SyntaxHighlighter.css"></link>
<script language="javascript" src="http://mundogeek.net/sh/js/shCore.js"></script><br />
<script language="javascript" src="http://mundogeek.net/sh/js/shBrushXml.js"></script><br />
<script language="javascript" src="http://mundogeek.net/sh/js/shBrushJScript.js"></script><br />
<script language="javascript" src="http://mundogeek.net/sh/js/shBrushPhp.js"></script><br />
<script language="javascript">dp.SyntaxHighlighter.ClipboardSwf = 'http://mundogeek.net/sh/flash/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');</script></p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2010/08/04/autocompletado-con-jquery/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>10 plugins para jQuery que no puedes perderte</title>
		<link>http://mundogeek.net/archivos/2010/04/27/10-plugins-para-jquery-que-no-puedes-perderte/</link>
		<comments>http://mundogeek.net/archivos/2010/04/27/10-plugins-para-jquery-que-no-puedes-perderte/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 09:14:55 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=5424</guid>
		<description><![CDATA[Qué mejor forma de animarte a leer el pequeño tutorial de jQuery de Mundo geek que enseñarte algunas de las cosas que podemos lograr con unas pocas líneas de código gracias a sus plugins. Esta lista con 10 plugins para jQuery que no debes perderte es sólo una pequeña muestra. Y tú, ¿qué plugins para [...]]]></description>
			<content:encoded><![CDATA[<p>Qué mejor forma de animarte a leer el pequeño <a href="http://mundogeek.net/archivos/2010/04/21/tutorial-rapido-de-jquery/" title="Tutorial de jQuery">tutorial de jQuery</a> de Mundo geek que enseñarte algunas de las cosas que podemos lograr con unas pocas líneas de código gracias a sus plugins. Esta lista con 10 <strong>plugins para jQuery</strong> que no debes perderte es sólo una pequeña muestra.</p>
<p>Y tú, ¿qué plugins para jQuery recomendarías?<span id="more-5424"></span></p>
<div style="text-align:center"><img src="http://mundogeek.net/wp-content/galleria.jpg" alt="Plugin para jQuery Galleria"/></div>
<p><a href="http://devkick.com/lab/galleria/">Galleria</a>: Como es de esperar por su nombre, se trata de un plugin para la creación de una galería de imágenes.</p>
<div style="text-align:center"><img src="http://mundogeek.net/wp-content/jgrowl.png" alt="Plugin para jQuery"/></div>
<p><a href="http://www.stanlemon.net/projects/jgrowl.html">jGrowl</a>: Para crear notificaciones al estilo de Growl de Mac OS X.</p>
<p><a href="http://www.appelsiini.net/projects/lazyload">Lazy loader</a>: Retrasa la carga de las imágenes hasta que el usuario haga scroll y vaya a necesitarlas, o hasta que se haya terminado de cargar toda la página.</p>
<div style="text-align:center"><img src="http://mundogeek.net/wp-content/datatables.png" alt="Plugin para jQuery"/></div>
<p><a href="http://www.datatables.net/index">DataTables</a>: Añade distintas funcionalidades interesantes a las tablas HTML, como paginación, ordenación por columnas o filtrado.</p>
<div style="text-align:center"><img src="http://mundogeek.net/wp-content/qtip.jpg" alt="Plugin para jQuery"/></div>
<p><a href="http://craigsworks.com/projects/qtip/">qTip</a>: Un completo plugin para la creación de tooltips.</p>
<div style="text-align:center"><img src="http://mundogeek.net/wp-content/jqtransform.png" alt="Plugin para jQuery"/></div>
<p><a href="http://www.dfc-e.com/metiers/multimedia/opensource/jqtransform/">jqTransform</a>: Transforma el aspecto de tus widgets en alternativas, en teoría, mucho más elegantes y vistosas.</p>
<p><a href="http://razorjack.net/quicksand/">Quicksand</a>: Filtra y reordena distintos elementos utilizando una animación de lo más vistosa, a lo Mac OS.</p>
<div style="text-align:center"><img src="http://mundogeek.net/wp-content/colorbox.jpg" alt="Plugin para jQuery"/></div>
<p><a href="http://colorpowered.com/colorbox/">ColorBox</a>: Ventanas modales superpuestas, al estilo lightbox, con distintos efectos de transición.</p>
<p><a href="http://webdev.stephband.info/parallax.html">jParallax</a>: Permite implementar al técnica de animación 2D &#8220;parallax scrolling&#8221; (desplazamiento con paralaje), que permite dar sensación de profundidad moviendo distintas capas distinta distancia en función de la supuesta lejanía al observador.</p>
<div style="text-align:center"><img src="http://mundogeek.net/wp-content/masonry.png" alt="Plugin para jQuery"/></div>
<p><a href="http://desandro.com/resources/jquery-masonry/">Masonry</a>: Encaja los elementos flotantes de forma que no quede espacio en blanco entre ellos.</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2010/04/27/10-plugins-para-jquery-que-no-puedes-perderte/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Extensiones para Chrome</title>
		<link>http://mundogeek.net/archivos/2009/06/01/extensiones-para-chrome/</link>
		<comments>http://mundogeek.net/archivos/2009/06/01/extensiones-para-chrome/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 14:37:28 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[extensiones]]></category>
		<category><![CDATA[navegadores]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=3335</guid>
		<description><![CDATA[Cuando se lanzó Google Chrome 2.0 hace unos días ya comentaba que era necesario que se popularizaran los plugins o extensiones para Chrome y publicaran, al menos, una extensión similar a AdBlock Plus antes de que me planteara si quiera usarlo como navegador principal. A aquellos que estuvierais en la misma disyuntiva os alegrará saber [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mundogeek.net/archivos/2009/05/22/google-chrome-20/" title="Google Chrome 2.0">Cuando se lanzó Google Chrome 2.0</a> hace unos días ya comentaba que era necesario que se popularizaran los plugins o <strong>extensiones para Chrome</strong> y publicaran, al menos, una extensión similar a <a href="http://mundogeek.net/archivos/2005/08/16/despues-de-adblock-adblock-plus/" title="Adblock Plus">AdBlock Plus</a> antes de que me planteara si quiera usarlo como navegador principal. A aquellos que estuvierais en la misma disyuntiva os alegrará saber que la cosa empieza a animarse un poco.</p>
<p><img src="http://mundogeek.net/wp-content/extensiones-chrome.png" alt="Extensiones para Chrome" title="Extensiones para Chrome"/><span id="more-3335"></span></p>
<p>Para poder utilizar extensiones en Google Chrome tendremos que usar, por ahora, una <a href="http://www.google.com/chrome/eula.html?extra=devchannel" title="Versión de desarrollo de Google Chrome">versión de desarrollo del navegador</a>. Una vez descargado e instalado haremos clic con el botón derecho sobre el acceso directo, seleccionaremos Propiedades y en Destino añadiremos la opción <code>--enable-extensions</code>. Reiniciamos Google Chrome y, una vez hecho esto, bastará con pulsar el enlace correspondiente al crx de la extensión para instalarla.</p>
<p>Para comprobar las extensiones instaladas, así como para desinstalar las que no sean de utilidad, podéis acceder a la página chrome://extensions.</p>
<p>Tenéis algunas extensiones que os pueden interesar en <a href="http://mundogeek.net/archivos/2009/06/01/10-extensiones-para-chrome/" title="10 extensiones para Google Chrome">10 extensiones para Google Chrome</a>. Y si os animáis a desarrollar vuestras propias extensiones para Google Chrome podéis comenzar echando un vistazo al <a href="http://mundogeek.net/tutorial_de_javascript/" title="Tutorial de JavaScript">tutorial de JavaScript</a> de <a href="http://mundogeek.net/" title="Mundo geek">Mundo geek</a> <img src='http://mundogeek.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2009/06/01/extensiones-para-chrome/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Decompilar clases Java</title>
		<link>http://mundogeek.net/archivos/2009/03/28/decompilar-clases-java/</link>
		<comments>http://mundogeek.net/archivos/2009/03/28/decompilar-clases-java/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 17:58:08 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[decompilador]]></category>
		<category><![CDATA[decompilar]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=2861</guid>
		<description><![CDATA[JD-Core es un decompilador de clases Java que destaca, entre otras cosas, porque, a diferencia del popular Jad, soporta algunas de las novedades más importantes introducidas en Java 5, como los generics o el tipo enum. Este decompilador cuenta con dos interfaces, una aplicación standalone llamada JD-GUI y un plugin para Eclipse llamado JD-Eclipse. Vamos [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://java.decompiler.free.fr/" title="Decompilador Java JD-Core">JD-Core</a> es un decompilador de clases Java que destaca, entre otras cosas, porque, a diferencia del popular <a href="http://www.varaneckas.com/jad" title="Decompilador Jad">Jad</a>, soporta algunas de las novedades más importantes introducidas en Java 5, como los generics o el tipo <code>enum</code>. Este decompilador cuenta con dos interfaces, una aplicación standalone llamada JD-GUI y un plugin para Eclipse llamado JD-Eclipse.</p>
<p>Vamos a crear una pequeña clase de ejemplo para demostrar su funcionamiento.<span id="more-2861"></span></p>
<pre name="code" class="java">import java.util.EnumSet;

public class Ejemplo {
  enum Dia {
    LUNES, MARTES, MIERCOLES, JUEVES, VIERNES, SABADO, DOMINGO
  }

  public static void main(String[] args) {
    for (Dia dia : EnumSet.allOf(Dia.class))
      System.out.println(dia);
  }
}</pre>
<p>Si abrimos la vista de navegador en Eclipse (Window -> Show View -> Navigator) y hacemos doble clic sobre el archivo que representa a nuestra clase compilada en la carpeta bin, se lanzará el visor de clases, mostrando el bytcode de la clase. También podemos utilizar la herramienta javap, incluída en el JDK:</p>
<p class="code">javap -c Ejemplo</p>
<p>El bytecode de nuestra clase tiene el siguiente aspecto:</p>
<pre name="code" class="java">// Compiled from Ejemplo.java (version 1.6 : 50.0, super bit)
public class Ejemplo {

  // Method descriptor #6 ()V
  // Stack: 1, Locals: 1
  public Ejemplo();
    0  aload_0 [this]
    1  invokespecial java.lang.Object() [8]
    4  return
      Line numbers:
        [pc: 0, line: 3]
      Local variable table:
        [pc: 0, pc: 5] local: this index: 0 type: Ejemplo

  // Method descriptor #15 ([Ljava/lang/String;)V
  // Stack: 2, Locals: 3
  public static void main(java.lang.String[] args);
     0  ldc &lt;Class Ejemplo$Dia&gt; [16]
     2  invokestatic java.util.EnumSet.allOf(java.lang.Class) : java.util.EnumSet [18]
     5  invokevirtual java.util.EnumSet.iterator() : java.util.Iterator [24]
     8  astore_2
     9  goto 29
    12  aload_2
    13  invokeinterface java.util.Iterator.next() : java.lang.Object [28] [nargs: 1]
    18  checkcast Ejemplo$Dia [16]
    21  astore_1 [dia]
    22  getstatic java.lang.System.out : java.io.PrintStream [34]
    25  aload_1 [dia]
    26  invokevirtual java.io.PrintStream.println(java.lang.Object) : void [40]
    29  aload_2
    30  invokeinterface java.util.Iterator.hasNext() : boolean [46] [nargs: 1]
    35  ifne 12
    38  return
      Line numbers:
        [pc: 0, line: 9]
        [pc: 22, line: 10]
        [pc: 29, line: 9]
        [pc: 38, line: 11]
      Local variable table:
        [pc: 0, pc: 39] local: args index: 0 type: java.lang.String[]
        [pc: 22, pc: 29] local: dia index: 1 type: Ejemplo.Dia
      Stack map table: number of frames 2
        [pc: 12, full, stack: {}, locals: {java.lang.String[], _, java.util.Iterator}]
        [pc: 29, same]

  Inner classes:
    [inner class info: #16 Ejemplo$Dia, outer class info: #1 Ejemplo
     inner name: #59 Dia, accessflags: 16408 static final]
}</pre>
<p>Como vemos en realidad el bucle for each se convierte en un bucle que utiliza un iterador.</p>
<p>Si usamos el decompilador jad el resultado será:</p>
<pre name="code" class="java">import java.io.PrintStream;
import java.util.EnumSet;
import java.util.Iterator;

public class Ejemplo {
  static final class Dia extends Enum {
    public static Dia[] values() {
      Dia adia[];
      int i;
      Dia adia1[];
      System.arraycopy(adia = ENUM$VALUES, 0,
          adia1 = new Dia[i = adia.length], 0, i);
      return adia1;
    }

    public static Dia valueOf(String s) {
      return (Dia) Enum.valueOf(Ejemplo$Dia, s);
    }

    public static final Dia LUNES;
    public static final Dia MARTES;
    public static final Dia MIERCOLES;
    public static final Dia JUEVES;
    public static final Dia VIERNES;
    public static final Dia SABADO;
    public static final Dia DOMINGO;
    private static final Dia ENUM$VALUES[];

    static {
      LUNES = new Dia("LUNES", 0);
      MARTES = new Dia("MARTES", 1);
      MIERCOLES = new Dia("MIERCOLES", 2);
      JUEVES = new Dia("JUEVES", 3);
      VIERNES = new Dia("VIERNES", 4);
      SABADO = new Dia("SABADO", 5);
      DOMINGO = new Dia("DOMINGO", 6);
      ENUM$VALUES = (new Dia[] { LUNES, MARTES, MIERCOLES, JUEVES,
          VIERNES, SABADO, DOMINGO });
    }

    private Dia(String s, int i) {
      super(s, i);
    }
  }

  public Ejemplo() {
  }

  public static void main(String args[]) {
    Dia dia;
    for (Iterator iterator = EnumSet.allOf(Ejemplo$Dia).iterator(); iterator
        .hasNext(); System.out.println(dia))
      dia = (Dia) iterator.next();
  }
}</pre>
<p>que como vemos no está demasiado mal, pero dista bastante del original.</p>
<p>Por último este es el resultado de JD-GUI:</p>
<pre name="code" class="java">import java.io.PrintStream;
import java.util.EnumSet;
import java.util.Iterator;

public class Ejemplo {
  public static void main(String[] args) {
    for (Iterator localIterator = EnumSet.allOf(Ejemplo.Dia.class)
        .iterator(); localIterator.hasNext();) {
      Ejemplo.Dia dia = (Ejemplo.Dia) localIterator.next();
      System.out.println(dia);
    }
  }

  static enum Dia {
    LUNES, MARTES, MIERCOLES, JUEVES, VIERNES, SABADO, DOMINGO;
  }
}</pre>
<link type="text/css" rel="stylesheet" href="http://mundogeek.net/sh/css/SyntaxHighlighter.css"></link>
<script language="javascript" src="http://mundogeek.net/sh/js/shCore.js"></script><br />
<script language="javascript" src="http://mundogeek.net/sh/js/shBrushJava.js"></script><br />
<script language="javascript">dp.SyntaxHighlighter.ClipboardSwf = 'http://mundogeek.net/sh/flash/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');</script></p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2009/03/28/decompilar-clases-java/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Mejora tu código Java con PMD</title>
		<link>http://mundogeek.net/archivos/2009/03/08/mejora-tu-codigo-java-con-pmd/</link>
		<comments>http://mundogeek.net/archivos/2009/03/08/mejora-tu-codigo-java-con-pmd/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 14:58:56 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[codigo]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=2691</guid>
		<description><![CDATA[PMD es una herramienta que comprueba que nuestra aplicación cumpla una serie de reglas que nos ayudan a obtener un código más elegante, sencillo y mantenible. Estas reglas se agrupan por conjuntos y pueden ser reglas de complejidad, como que la complejidad ciclomática no sea demasiado alta; de diseño, como no usar interfaces como meros [...]]]></description>
			<content:encoded><![CDATA[<p>PMD es una herramienta que comprueba que nuestra aplicación cumpla una serie de reglas que nos ayudan a obtener un código más elegante, sencillo y mantenible. Estas reglas se agrupan por conjuntos y pueden ser reglas de complejidad, como que la complejidad ciclomática no sea demasiado alta; de diseño, como no usar interfaces como meros contenedores de constantes; de optimización, como procurar usar <code>ArrayList</code> en lugar de <code>Vector</code>; etc.</p>
<p>PMD se puede utilizar desde linea de comandos, o puede integrarse con multitud de IDEs y herramientas, como Eclipse, NetBeans, Maven o JEdit. Y aunque algunos de los casos que comprueba PMD ya se tengan en cuenta en Eclipse, sigue siendo una utilidad muy interesante para añadir a nuestra caja de herramientas.<br />
<span id="more-2691"></span><br />
Para instalar el plugin de PMD para Eclipse tenemos que añadir la URL desde la que actualizar el software, http://pmd.sourceforge.net/eclipse, en el diálogo Help -> Software updates -> Available Software -> Add Site, marcar el componente correspondiente dependiendo de nuestra versión de Eclipse y seleccionar Install.</p>
<p>Una vez terminado el proceso podremos gestionar las reglas de PMD desde Window -> Preferences -> PMD -> Rules Configuration. En la misma sección también podemos añadir nuevas reglas utilizando consultas XPath.</p>
<p>Al instalar PMD tendremos acceso a una nueva perspectiva a la que podemos acceder desde Window -> Open Perspective -> Other -> PMD. Para empezar a utilizar PMD haremos clic con el botón derecho sobre el proyecto, el paquete o la clase que queramos comprobar y seleccionaremos PMD -> Check code with PMD.</p>
<p>En la vista Violations Overview podremos ver un resumen de las reglas que incumple nuestro código, con el nombre de la regla, el número de violaciones por paquete, clase y método y el número de violaciones cada 1000 líneas de código.</p>
<p>En Violations Outline podremos ver una pequeña descripción de la regla que rompe nuestro código, asi como la línea de código en el que se encontró el error. Si hacemos clic sobre una de las entradas de la lista se abrirá la clase correspondiente en la línea a corregir. Si necesitamos más información sobre el error podemos hacer clic sobre este y seleccionar Show Details, donde podremos consultar una descripción completa de la regla, asi como ejemplos y la expresión XPath utilizada.</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2009/03/08/mejora-tu-codigo-java-con-pmd/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Subclipse: plugin de Subversion para Eclipse</title>
		<link>http://mundogeek.net/archivos/2009/02/22/subclipse-plugin-de-subversion-para-eclipse/</link>
		<comments>http://mundogeek.net/archivos/2009/02/22/subclipse-plugin-de-subversion-para-eclipse/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 16:20:59 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=2579</guid>
		<description><![CDATA[Probablemente Subclipse sea el plugin para integrar Subversion con Eclipse más utilizado del mercado, por encima del plugin &#8220;oficial&#8221;, Subversive, aunque son muy parecidos. Sin embargo ambos están lejos de la popularidad de otras alternativas independientes como TortoiseSVN, por razones evidentes. Para instalar Subclipse podemos usar el sistema de actualizaciones de software de Eclipse: abrimos [...]]]></description>
			<content:encoded><![CDATA[<p>Probablemente <a href="http://subclipse.tigris.org/" title="Subclipse: plugin de Subversion para Eclipse">Subclipse</a> sea el plugin para integrar <a href="http://mundogeek.net/archivos/2004/06/26/qu-es-un-cvs-instalacin-de-subversion/" title="¿Qué es un sistema de control de versiones? Instalación de Subversion">Subversion</a> con Eclipse más utilizado del mercado, por encima del plugin &#8220;oficial&#8221;, <a href="http://www.polarion.org/index.php?page=overview&#038;project=subversive" title="Subversive: plugin de Subversion para Eclipse">Subversive</a>, aunque son muy parecidos. Sin embargo ambos están lejos de la popularidad de otras alternativas independientes como <a href="http://mundogeek.net/archivos/2004/06/26/un-cliente-de-subversion-grfico-tortoisesvn/" title="TortoiseSVN">TortoiseSVN</a>, por razones evidentes.</p>
<p><img src="http://mundogeek.net/wp-content/eclipse-svn-subclipse.png" alt="Subclipse: plugin de Subversion para Eclipse" title="Subclipse: plugin de Subversion para Eclipse"/><br />
<span id="more-2579"></span><br />
Para instalar Subclipse podemos usar el sistema de actualizaciones de software de Eclipse: abrimos el diálogo Help -> Software updates -> Available Software -> Add Site e introducimos la URL desde la que instalar el plugin, en este caso, para la última versión al escribir estas líneas, &#8220;http://subclipse.tigris.org/update_1.4.x&#8221;. Marcamos nuestra nueva fuente y seleccionamos Install. Tendremos que aceptar la licencia del plugin, que se descargará desde la web correspondiente y se instalará automáticamente.</p>
<p>Una vez instalado Subclipse lo primero que tenemos que hacer para comenzar a trabajar con Subversion es abrir la perspectiva SVN Repository Exploring desde Window -> Open perspective -> Other -> SVN Repository Exploring, o bien mostrar la vista de repositorios de SVN haciendo clic sobre Window -> Show View -> Other -> SVN -> SVN Repositories. Para añadir un nuevo repositorio haremos clic con el botón derecho sobre SVN Repositories y seleccionaremos New -> Repository Location, donde introduciremos la URL del repositorio.</p>
<p>Por supuesto si vamos a utilizar nuestro propio repositorio en local tendremos que <a href="http://subversion.tigris.org/getting.html" title="Descargar Subversion">descargar</a> e instalar el servidor de Subversion primero. Si no tienes experiencia te recomiendo la distribución <a href="http://www.visualsvn.com/server/" title="VisualSVN">VisualSVN</a> (Windows) que incluye una herramienta de gestión gráfica que lo hace todo muy sencillo.</p>
<p>Una vez añadido nuestro repositorio podemos hacer un checkout del código almacenado en él haciendo clic con el botón derecho sobre él y seleccionando Checkout, añadir un proyecto ya existente a un repositorio haciendo clic con el botón derecho sobre el proyecto y seleccionando Team -> Share Project, hacer un commit haciendo clic con el botón derecho sobre el proyecto y seleccionando Team -> Commit, &#8230; Como vemos, todo muy rápido y sencillo, y sin tener que abandonar por un momento nuestro IDE.</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2009/02/22/subclipse-plugin-de-subversion-para-eclipse/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Mirage: listas auto generadas en Banshee</title>
		<link>http://mundogeek.net/archivos/2008/12/10/mirage-listas-auto-generadas-en-banshee/</link>
		<comments>http://mundogeek.net/archivos/2008/12/10/mirage-listas-auto-generadas-en-banshee/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 15:50:04 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[banshee]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[música]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[reproductores]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://mundogeek.net/?p=2179</guid>
		<description><![CDATA[Mirage es un plugin para Banshee desarrollado como parte de la tesina del autor que genera una lista de reproducción de canciones similares a partir de una canción utilizada como semilla. Para lograrlo utiliza las últimas técnicas propuestas para comprobar la similitud de las canciones, calculando para ello la transformada rápida de Fourier, los coeficientes [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://hop.at/mirage/">Mirage</a> es un plugin para Banshee desarrollado como parte de la tesina del autor que genera una lista de reproducción de canciones similares a partir de una canción utilizada como semilla. Para lograrlo utiliza las últimas técnicas propuestas para comprobar la similitud de las canciones, calculando para ello la transformada rápida de Fourier, los coeficientes MFCC y un modelo gaussiano que representa la canción.</p>
<p>Si queréis probarlo podéis descargar el <a href="http://hop.at/mirage/download/mirage-0.4.0.tar.gz">código fuente</a> de la web del autor, o bien, si usáis Ubuntu, utilizar el paquete deb del <a href="https://edge.launchpad.net/~banshee-team/+archive">PPA de Banshee</a> (banshee-extension-mirage).</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2008/12/10/mirage-listas-auto-generadas-en-banshee/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>La cruzada anti spam: el nuevo Akismet y Defensio</title>
		<link>http://mundogeek.net/archivos/2007/12/17/la-cruzada-anti-spam-el-nuevo-akismet-y-defensio/</link>
		<comments>http://mundogeek.net/archivos/2007/12/17/la-cruzada-anti-spam-el-nuevo-akismet-y-defensio/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 18:46:13 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[akismet]]></category>
		<category><![CDATA[defension]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://mundogeek.net/archivos/2007/12/17/la-cruzada-anti-spam-el-nuevo-akismet-y-defensio/</guid>
		<description><![CDATA[Akismet es uno de los plugins contra el spam más populares para WordPress. Quizás, de hecho, el más popular. Hoy han publicado la versión 2.1.1 que permite diferenciar el spam según sea vía comentarios, pingbacks o trackbacks seleccionando la pestaña correspondiente y añade un nuevo &#8220;hook&#8221; para que los creadores de plugins puedan añadir sus [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://akismet.com/" title="Akismet plugin wordpress spam">Akismet</a> es uno de los plugins contra el spam más populares para WordPress. Quizás, de hecho, el más popular. Hoy han publicado la versión 2.1.1 que permite diferenciar el spam según sea vía comentarios, pingbacks o trackbacks seleccionando la pestaña correspondiente y añade un nuevo &#8220;hook&#8221; para que los creadores de plugins puedan añadir sus propias pestañas.</p>
<p>Por otro lado quizás queráis echar un vistazo a <a href="http://defensio.com/" title="Defensio plugin wordpress spam">Defensio</a>, un plugin que dejado de ser beta privada hace poco y que muchos consideran mejor que Akismet. Entre las características interesantes de este plugin se encuentran el que los comentarios marcados como spam se ordenan según la probabilidad de que lo sean e identificando los criterios utilizados para marcarlos con distintos colores, estadísticas detalladas, y un feed RSS para estar informado al momento de los nuevos mensajes de spam.</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2007/12/17/la-cruzada-anti-spam-el-nuevo-akismet-y-defensio/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Plugins Compiz Fusion</title>
		<link>http://mundogeek.net/archivos/2007/11/23/plugins-compiz-fusion/</link>
		<comments>http://mundogeek.net/archivos/2007/11/23/plugins-compiz-fusion/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 12:16:18 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[compiz]]></category>
		<category><![CDATA[fusion]]></category>
		<category><![CDATA[gutsy]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://mundogeek.net/archivos/2007/11/23/plugins-compiz-fusion/</guid>
		<description><![CDATA[En los foros de Compiz Fusion he visto un pequeño tutorial sobre cómo compilar e instalar distintos plugins para Compiz Fusion de forma que funcionen con la versión por defecto de Ubuntu Gutsy Gibbon. No tiene ningún misterio, pero se me ha ocurrido comentarlo para facilitaros el no tener que buscar las dependencias y los [...]]]></description>
			<content:encoded><![CDATA[<p>En los foros de Compiz Fusion he visto un <a href="http://forum.compiz-fusion.org/showthread.php?t=5303" title="Plugins Compiz Fusion">pequeño tutorial</a> sobre cómo compilar e instalar distintos plugins para Compiz Fusion de forma que funcionen con la versión por defecto de Ubuntu Gutsy Gibbon.</p>
<p>No tiene ningún misterio, pero se me ha ocurrido comentarlo para facilitaros el no tener que buscar las dependencias y los enlaces e intentar animaros a instalar nuevos plugins.</p>
<p>Para instalar las dependencias:</p>
<p class="code">sudo aptitude install compiz-bcop compiz-dev build-essential libxcomposite-dev libpng12-dev libsm-dev libxrandr-dev libxdamage-dev libxinerama-dev libstartup-notification0-dev libgconf2-dev librsvg2-dev libdbus-1-dev libdbus-glib-1-dev libgnome-desktop-dev x11proto-scrnsaver-dev libxss-dev libxslt1-dev libtool</p>
<p><span id="more-1277"></span><br />
Ahora descargamos el / los plugins que nos interesen:</p>
<ul>
<li><a href="http://gitweb.opencompositing.org/?p=fusion/plugins/3d;a=snapshot;h=db3c51d6c5c0df268fc1ec29a4264ef3d21dbbb3" title="Plugin Compiz Fusion">3D Windows</a>: Sirve para ver las ventanas con relieve al iniciar el cubo (las ventanas que están al frente se verán encima de las otras).</li>
<li><a href="http://gitweb.opencompositing.org/?p=fusion/plugins/atlantis;a=snapshot;h=a47d7151444faccd66ea5cb884673cdebe5d7dff" title="Plugin Compiz Fusion">Atlantis</a> y <a href="http://gitweb.compiz-fusion.org/?p=users/smspillaz/atlantis2-0.6;a=snapshot;h=d50d17bcdef5a025699e6b1bc0d604a98d1b74b2;sf=tgz" title="Plugin Compiz Fusion">Atlantis 2</a>: Muestra animales marinos dentro del cubo (peces de colores, cangrejos, tiburones, ballenas, etc). Atlantis 2 además añade olas.</li>
<li><a href="http://gitweb.opencompositing.org/?p=fusion/plugins/snow;a=snapshot;h=01d0ff6ec71dae4699bc990e0114569c8ad4e083" title="Plugin Compiz Fusion">Snow</a>: Caen copos de nieve en el escritorio</li>
<li><a href="http://oreaus.googlepages.com/stars.tar.gz" title="Plugin Compiz Fusion">Stars</a>: Similar al anterior pero muestra estrellas en el escritorio</li>
<li><a href="http://gitweb.opencompositing.org/?p=users/pafy/screensaver;a=snapshot;h=6565001eb389fb0d18cfead6030054cc8edc6c5f" title="Plugin Compiz Fusion">Screensaver</a>: Como su nombre indica es un salvapantallas. Puede mostrar las ventanas del escritorio volando o el cubo rotando.</li>
<li><a href="http://oreaus.googlepages.com/anaglyph.tar.gz" title="Plugin Compiz Fusion">Anaglyph</a>: Sirve para ver la pantalla en 3D usando las típicas gafas con una lente azul y otra roja.</li>
<li><a href="http://gitweb.compiz-fusion.org/?p=fusion/plugins/wallpaper;a=snapshot;h=c2d19686e46ae171b6a0c04da9de1adbd74ae8be" title="Plugin Compiz Fusion">Wallpaper</a>: Sirve para poner distintos fondos de pantalla en las distintas caras del cubo.</li>
<li><a href="http://gitweb.opencompositing.org/?p=fusion/plugins/tile;a=snapshot;h=550c91fa188efd39c9cea43f894b45716b5cc6d5" title="Plugin Compiz Fusion">Title</a>: Sirve para organizar las ventanas con un atajo de teclado. Podemos mostrar todas las ventanas ordenadas una detrás de otra, en horizontal, en vertical, en cascada, etc.</li>
<li><a href="http://oreaus.googlepages.com/freewins.tar.gz" title="Plugin Compiz Fusion">Freewins</a>: Sirve para poder girar las ventanas (también en profundidad)</li>
<li><a href="http://gitweb.opencompositing.org/?p=users/b0le/photowheel;a=snapshot;h=41d8090b55b629f72bef55d785beaf468f31662f" title="Plugin Compiz Fusion">Photo wheel</a>: Muestra en el interior del cubo una a una las imágenes seleccionadas mientras rotan.</li>
</ul>
<p>O bien si los queréis todos en vuestro directorio de usuario y bien nombrados:</p>
<blockquote><p>wget -O ~/3d.tar.gz &#8216;http://gitweb.opencompositing.org/?p=fusion/plugins/3d;a=snapshot;h=db3c51d6c5c0df268fc1ec29a4264ef3d21dbbb3&#8242;<br />
wget -O ~/atlantis2.tar.gz &#8216;http://gitweb.compiz-fusion.org/?p=users/smspillaz/atlantis2-0.6;a=snapshot;h=d50d17bcdef5a025699e6b1bc0d604a98d1b74b2;sf=tgz&#8217;<br />
wget -O ~/snow.tar.gz &#8216;http://gitweb.opencompositing.org/?p=fusion/plugins/snow;a=snapshot;h=01d0ff6ec71dae4699bc990e0114569c8ad4e083&#8242;<br />
wget -O ~/stars.tar.gz &#8216;http://oreaus.googlepages.com/stars.tar.gz&#8217;<br />
wget -O ~/atlantis.tar.gz &#8216;http://gitweb.opencompositing.org/?p=fusion/plugins/atlantis;a=snapshot;h=a47d7151444faccd66ea5cb884673cdebe5d7dff&#8217;<br />
wget -O ~/screensaver.tar.gz &#8216;http://gitweb.opencompositing.org/?p=users/pafy/screensaver;a=snapshot;h=6565001eb389fb0d18cfead6030054cc8edc6c5f&#8217;<br />
wget -O ~/anaglyph.tar.gz &#8216;http://oreaus.googlepages.com/anaglyph.tar.gz&#8217;<br />
wget -O ~/wallpaper.tar.gz &#8216;http://gitweb.compiz-fusion.org/?p=fusion/plugins/wallpaper;a=snapshot;h=c2d19686e46ae171b6a0c04da9de1adbd74ae8be&#8217;<br />
wget -O ~/tile.tar.gz &#8216;http://gitweb.opencompositing.org/?p=fusion/plugins/tile;a=snapshot;h=550c91fa188efd39c9cea43f894b45716b5cc6d5&#8242;<br />
wget -O ~/freewins.tar.gz &#8216;http://oreaus.googlepages.com/freewins.tar.gz&#8217;<br />
wget -O ~/photowheel-0.6.tar.gz &#8216;http://gitweb.opencompositing.org/?p=users/b0le/photowheel;a=snapshot;h=41d8090b55b629f72bef55d785beaf468f31662f&#8217;</p></blockquote>
<p>Descomprimimos cada uno de los tar.gz descargados:</p>
<p class="code">tar -xvzf 3d.tar.gz</p>
<p>Entramos en la carpeta del plugin que queramos compilar e instalar y seguimos los pasos habituales:</p>
<p class="code">make &#038;&#038; make install</p>
<p>Y eso es todo. Basta reiniciar el ordenador y tendremos nuevos plugins con los que jugar.</p>
<p>Si alguna vez queréis desinstalar uno de ellos, los Makefiles suelen tener un target uninstall, así que sería tan sencillo como entrar en la carpeta generada al descomprimir el plugin y ejecutar:</p>
<p class="code">make uninstall</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2007/11/23/plugins-compiz-fusion/feed/</wfw:commentRss>
		<slash:comments>66</slash:comments>
		</item>
		<item>
		<title>Imprescindibles para Ubuntu con un sólo clic</title>
		<link>http://mundogeek.net/archivos/2007/10/22/imprescindibles-para-ubuntu-con-un-solo-clic/</link>
		<comments>http://mundogeek.net/archivos/2007/10/22/imprescindibles-para-ubuntu-con-un-solo-clic/#comments</comments>
		<pubDate>Mon, 22 Oct 2007 09:43:32 +0000</pubDate>
		<dc:creator>Zootropo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[codecs]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[fuentes]]></category>
		<category><![CDATA[gutsy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://mundogeek.net/archivos/2007/10/22/imprescindibles-para-ubuntu-con-un-solo-clic/</guid>
		<description><![CDATA[El nuevo Ubuntu Gutsy Gibbon incluye una característica llamada apturl que añade el soporte del nuevo protocolo apt:// a Firefox. Esto significa que podemos crear enlaces del tipo &#60;a href=&#8221;apt://gedit&#8221;&#62;Gedit&#60;/a&#62; que al ser pulsados instalarán el paquete indicado. En Feisty Fawn y Debian se puede activar instalando el paquete apturl. Estos son algunos de los [...]]]></description>
			<content:encoded><![CDATA[<p>El nuevo Ubuntu Gutsy Gibbon incluye una característica llamada apturl que añade el soporte del nuevo protocolo apt:// a Firefox. Esto significa que podemos crear enlaces del tipo &lt;a href=&#8221;apt://gedit&#8221;&gt;Gedit&lt;/a&gt; que al ser pulsados instalarán el paquete indicado. En Feisty Fawn y Debian se puede activar instalando el paquete apturl.</p>
<p>Estos son algunos de los paquetes que yo considero imprescindibles para Ubuntu con sus respectivos enlaces apt para que los podáis instalar con facilidad.<span id="more-1233"></span></p>
<h2>Códecs / Multimedia</h2>
<ol>
<li><a href="apt://gstreamer0.10-ffmpeg" title="Códecs">gstreamer0.10-ffmpeg</a>: Códecs para algunos de los formatos más populares (MPEG, DivX, MPEG4, AC3, DV, &#8230;)</li>
<li><a href="apt://gstreamer0.10-plugins-bad" title="Códecs">gstreamer0.10-plugins-bad</a>: Códecs que no se consideran suficientemente buenos para pertenecer al pack por defecto (necesitan mejorar el código, falta documentación, no los utiliza mucha gente, etc.)</li>
<li><a href="apt://gstreamer0.10-plugins-bad-multiverse" title="Códecs">gstreamer0.10-plugins-bad-multiverse</a>: Similar al anterior pero de multiverse</li>
<li><a href="apt://gstreamer0.10-plugins-ugly" title="Códecs">gstreamer0.10-plugins-ugly</a>: Códecs que no son 100% software libre</li>
<li><a href="apt://gstreamer0.10-plugins-ugly-multiverse" title="Códecs">gstreamer0.10-plugins-ugly-multiverse</a>: Similar al anterior, pero en multiverse. En este paquete se encuentra el códec para archivos MP3s.</li>
<li><a href="apt://mplayer-nogui" title="Reproductor de vídeo">mplayer-nogui</a>: Potente reproductor de vídeo</li>
<li><a href="apt://banshee" title="Reproductor de audio">banshee</a>: <a href="http://mundogeek.net/archivos/2007/05/15/el-mejor-reproductor-para-linux/" title="El mejor reproductor para Linux">Reproductor de audio</a></li>
</ol>
<h2>Navegador</h2>
<ol>
<li><a href="apt://msttcorefonts" title="Fuentes Windows">msttcorefonts</a>: Fuentes TrueType de Windows.</li>
<li><a href="apt://flashplugin-nonfree" title="Plugin Flash">flashplugin-nonfree</a>: Plugin Flash para Mozilla, Firefox, Iceweasel e Iceape.</li>
<li><a href="apt://sun-java6-plugin" title="Plugin Java">sun-java6-plugin</a>: Plugin Java para Firefox, Mozilla, Iceweasel, Iceape, etc</li>
</ol>
<h2>Compiz Fusion</h2>
<ol>
<li><a href="apt://compizconfig-settings-manager" title="Configuración Compiz Fusion">compizconfig-settings-manager</a>: Configurar Compiz Fusion</li>
<li><a href="apt://xserver-xgl" title="Servidor X XGL">xserver-xgl</a>: Necesario para activar Compiz Fusion con ATI si nos muestra el error <a href="http://mundogeek.net/archivos/2007/10/18/the-composite-extension-is-not-available-en-ubuntu-con-ati/">The Composite extension is not available</a></li>
</ol>
<h2>Deskmod</h2>
<ol>
<li><a href="apt://tango-icon-theme" title="Iconos tango">tango-icon-theme</a>: Iconos Tango</li>
<li><a href="apt://tango-icon-theme-common" title="Iconos tango Ubuntu">tango-icon-theme-common</a>: Iconos Tango realizados por el equipo Ubuntu Art</li>
<li><a href="apt://tango-icon-theme-extras" title="Iconos tango extra">tango-icon-theme-extras</a>: Más iconos de estilo Tango</li>
</ol>
<h2>P2P</h2>
<ol>
<li><a href="apt://deluge-torrent" title="Cliente bittorrent">deluge-torrent</a>: Cliente de bittorrent</li>
<li><a href="apt://amule" title="Cliente ed2k. Clon de emule">amule</a>: eMule</li>
</ol>
<h2>Otros</h2>
<ol>
<li><a href="apt://checkgmail" title="Notificador Gmail">checkgmail</a>: Notificador de correo entrante para Gmail</li>
<li><a href="apt://most" title="Paginador">most</a>: Paginador más potente que less o more
<li><a href="apt://rar" title="Comprimir a rar">rar</a>: Soporte para crear archivos rar</li>
<li><a href="apt://unrar" title="Descomprimir rar">unrar</a>: Soporte para descomprimir archivos rar</li>
<li><a href="apt://startupmanager" title="Configurar grub">startupmanager</a>: <a href="http://mundogeek.net/archivos/2007/04/22/configurar-grub-facilmente/" title="Configurar Grub fácilmente">Configurar Grub fácilmente</a></li>
<li><a href="apt://filezilla" title="Cliente FTP">filezilla</a>: Cliente FTP</a></li>
<li><a href="apt://nautilus-open-terminal" title="Abrir terminal">nautilus-open-terminal</a>: &#8220;Abrir terminal aquí&#8221; en el menú contextual de Nautilus.</li>
<li><a href="apt://liferea" title="Lector de feeds">liferea</a>: Lector de feeds</li>
<li><a href="apt://brasero" title="Grabador de CD / DVD">brasero</a>: Grabador de CDs / DVDs</li>
<li><a href="apt://build-essential" title="Librerías y programas básicos para compilar">build-essential</a>: Librerías y programas básicos para compilar.
</ol>
<p>¿Qué programas añadiríais vosotros a la lista?</p>
]]></content:encoded>
			<wfw:commentRss>http://mundogeek.net/archivos/2007/10/22/imprescindibles-para-ubuntu-con-un-solo-clic/feed/</wfw:commentRss>
		<slash:comments>69</slash:comments>
		</item>
	</channel>
</rss>

