<?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>Guiabreve</title>
	<atom:link href="http://guiabreve.com/feed" rel="self" type="application/rss+xml" />
	<link>http://guiabreve.com</link>
	<description>Red Bull-based programming</description>
	<lastBuildDate>Thu, 26 Jan 2012 10:00:03 +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>Usando las expresiones regulares (III)</title>
		<link>http://guiabreve.com/usando-las-expresiones-regulares-iii.html</link>
		<comments>http://guiabreve.com/usando-las-expresiones-regulares-iii.html#comments</comments>
		<pubDate>Wed, 25 Jan 2012 10:58:37 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Expresiones Regulares]]></category>
		<category><![CDATA[Comprobar]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Usar]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1559</guid>
		<description><![CDATA[Indice de la serie: Creando y entendiendo expresiones regulares Expresiones regulares comunes Usando las expresiones regulares Este es el último artículo de esta Guia de Expresiones Regulares. En el primer capítulo vimos las palabras reservadas para crear nuestras propias expresiones regulares. En el segundo, vimos y explicamos algunas de las expresiones más comunes. Por último, <a href="http://guiabreve.com/usando-las-expresiones-regulares-iii.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<div class="izquierda indice" style="text-align:left;">
<h3>Indice de la serie:</h3>
<ol>
<li><a href="http://guiabreve.com/creando-y-entendiendo-las-expresiones-regulares-i.html" title="Creando y entendiendo las Expresiones regulares (I)">Creando y entendiendo expresiones regulares</a></li>
<li><a href="http://guiabreve.com/expresiones-regulares-mas-comunes-ii.html" title="Expresiones regulares más comunes (II)">Expresiones regulares comunes</a></li>
<li><a href="http://guiabreve.com/usando-las-expresiones-regulares.html" title="Usando las expresiones regulares">Usando las expresiones regulares</a></li>
</ol>
</div>
<p>Este es el último artículo de esta <strong><a href="http://guiabreve.com/categoria/guias/expresiones-regulares" title="Guia de Expresiones Regulares">Guia de Expresiones Regulares</a></strong>. En el primer capítulo vimos las palabras reservadas para <a href="http://guiabreve.com/creando-y-entendiendo-las-expresiones-regulares-i.html" title="Creando y entendiendo las Expresiones regulares (I)">crear nuestras propias expresiones regulares</a>. En el segundo, <a href="http://guiabreve.com/expresiones-regulares-mas-comunes-ii.html" title="Expresiones regulares más comunes (II)">vimos y explicamos algunas de las expresiones más comunes</a>.</p>
<p>Por último, en este tercer capítulo, aprenderemos a usar las expresiones regulares que hemos aprendido a crear o hemos visto anteriormente.</p>
<h4>Usar expresiones en PHP</h4>
<p>En PHP disponemos de la función <a href="http://www.php.net/preg_match">preg_match</a>:</p>
<pre class="brush:php">preg_match ( string $pattern , string $subject [, array &#038;$matches [, int $flags = 0 [, int $offset = 0 ]]] )</pre>
<p>Esta función dispone de 2 parámetros obligatorios y tres opcionales, pero, por lo general con los tres primeros nos será más que suficiente:</p>
<ol>
<li><strong>pattern</strong>, aqui irá nuestra expresión regular.</li>
<li><strong>subject</strong>, será un <code>string</code> en donde se buscará la expresión regular.</li>
<li><strong>matches</strong>, nos devolverá las coincidencias. En <code>matches[0]</code> contendrá el texto completo coincidente con la expresión. En <code>matches[1]</code> la primera parte de la expresión, etc.</li>
</ol>
<p>También podemos usar <a href="http://php.net/manual/en/function.preg-replace.php"><code>preg_replace</code></a> en caso de que queramos buscar y remplazar algo.</p>
<h4>En Javascript</h4>
<p>En javascript usamos <code>match</code>. Como podemos ver en el siguiente código:</p>
<ol>
<li>Definimos la expresión regular (en este caso comprobaremos un email).</li>
<li>Creamos la variable que queremos comprobar.</li>
<li>Y usando <code>email.match(RegExPattern)</code> devolverá true o false dependiendo si coincide o no y entrará a la sección del <em>if</em> correspondiente.</li>
</ol>
<pre class="brush:js">    var RegExPattern = /[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/;
    var email = 'victoor89@gmail.com';

    if ((email.match(RegExPattern))) {
        alert('Email correcto');
    } else {
        alert('Incorrecto');
    } </pre>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/usando-las-expresiones-regulares-iii.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducción a la programación para iPhone (II): UITableView</title>
		<link>http://guiabreve.com/introduccion-a-la-programacion-para-iphone-ii-uitableview.html</link>
		<comments>http://guiabreve.com/introduccion-a-la-programacion-para-iphone-ii-uitableview.html#comments</comments>
		<pubDate>Wed, 18 Jan 2012 09:56:53 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Programando para iOS con xCode 4]]></category>
		<category><![CDATA[Guia]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Objetive-C]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[xCode 4]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1509</guid>
		<description><![CDATA[Indice de la guia: Introducción UITableView &#8230; Hoy continuamos con esta guia de programación para iPhone. En el primer capítulo aprendimos a crear una aplicación sencilla que tras pulsar un botón nos muestre en un label el mensaje &#8220;Hola Mundo!&#8221;. Erá una aplicación sencilla pero con ella aprendimos a relacionar elementos del StoryBoard con el <a href="http://guiabreve.com/introduccion-a-la-programacion-para-iphone-ii-uitableview.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<div class="izquierda indice" style="text-align:left;">
<h3>Indice de la guia:</h3>
<ol>
<li><a href="http://guiabreve.com/introduccion-a-la-programacion-para-ios-con-xcode-4-i.html" title="Introduccion a la programación para iOS con xCode 4 (I)">Introducción</a></li>
<li><a href="http://guiabreve.com/introduccion-a…para-iphone-ii.html" title="Expresiones regulares más comunes (II)">UITableView</a></li>
<li>&#8230;</li>
</ol>
</div>
<p>Hoy continuamos con esta guia de <a href="http://guiabreve.com/categoria/guias/programando-para-ios-con-xcode-4" title="Guia: Programación para iPhone con xCode 4">programación para iPhone</a>.</p>
<p>En el <a href="http://guiabreve.com/introduccion-a-la-programacion-para-ios-con-xcode-4-i.html" title="Introduccion a la programación para iOS con xCode 4 (I)">primer capítulo</a> aprendimos a crear una aplicación sencilla que tras pulsar un botón nos muestre en un label el mensaje &#8220;Hola Mundo!&#8221;. Erá una aplicación sencilla pero con ella aprendimos a relacionar elementos del StoryBoard con el código y a crear acciones que se ejecutan al pulsar sobre botones.</p>
<p><strong>En este capitulo</strong>, el segundo, aprenderemos a manejar los <strong>UITableView</strong> que son uno de los elementos más útiles que nos encontraremos a la hora de crear una app. Para empezar simplemente crearemos una tabla y añadiremos celdas a partir de un array que crearemos también.</p>
<h3>Vamos, paso a paso</h3>
<p>Para empezar, como siempre, creamos un nuevo proyecto (No voy a explicar como crear un nuevo proyecto, en el capítulo uno de esta guia ya se explica). En este caso, crearemos una &#8220;<em>Empty Application</em>&#8220;.</p>
<p>Como podemos ver, este proyecto comienza solo con los archivos <strong>AppDelegate.h</strong> y <strong>AppDelegate.m</strong>. </p>
<p>Necesitamos un archivo StoryBoard. Para crearlo vamos a <em>File » New » New File…</em> y en la categoría <em>UserInterface</em> elegimos StoryBoard y lo creamos.</p>
<h3>Ahora pasamos con el archivo StoryBoard</h3>
<p><img src="http://guiabreve.com/wp-content/uploads/iphone-xcode4-1.png" alt="" title="iphone-xcode4-1" width="755" height="314" class="full" /><br />
Para empezar tenemos que arrastrar una <em>Table View Controler</em> al <em>StoryBoard</em>. Este nos creará la primera vista con el <em>TableView</em> incluido. </p>
<p><img src="http://guiabreve.com/wp-content/uploads/iphone-xcode4-2.png" alt="" title="iphone-xcode4-2" class="izquierda" />
<div class="izquierda">Seleccionando el &#8220;Table View Cell&#8221; definimos el estilo como Basic.</div>
<p>Por defecto, la <em>TableView</em> viene configurada con las celdas en estilo &#8220;Custom&#8221;. Este estilo es para personalizar las celdas a nuestro gusto añadiendo elementos dentro de esta tal y como queramos, pero empezaremos con algo más sencillo.</p>
<p>Definiremos el tipo de celda como &#8220;Basic&#8221; que nos generará celdas sencillas con un unico <em>Label</em> dentro y nos será suficiente para empezar.</p>
<p>Si ejecutamos ahora el código nos saldrá una pantalla en blanco. Esto se debe ya que al poner <em>Empty Application</em> no nos carga la vista por defecto. Para que cargue nuestra tabla debemos de hacer dos cosas:<br />
<img src="http://guiabreve.com/wp-content/uploads/iphone-xcode4-3.png" alt="" title="iphone-xcode4-3" class="full" /></p>
<div class="izquierda">Definimos StoryBoard como la interfaz del proyecto</div>
<ol>
<li>Primero debemos de dirigirnos al proyecto y definir StoryBoard como la interfaz que usará la aplicación tal y como indica la imagen. (Se explica mejor con una imagen que con mil palabras)</li>
<li>Y por último modificamos en el archivo <strong><em>AppDelegate.m</em></strong> la función <code>- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions</code> así:
<pre class="brush:csharp">- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    return YES;
}</pre>
</li>
</ol>
<p>Ahora al ejecutar nuestra app veremos la lista aunque por ahora sigue vacía.</p>
<h4>Rellenando la lista</h4>
<p>Primero necesitamos el controlador para la vista. Para ello vamos a <em>File » New » New File…</em> y creamos un archivo del tipo &#8220;<em>UIViewControllersubclass</em>&#8220;. En class ponemos el nombre que queramos y en &#8220;subclass of&#8221; tenemos que poner <code>UITableViewController</code> (Controlador de una table view).</p>
<p>Tenemos que relacionar el controlador con la vista. Para ello en el StoryBoard seleccionamos el &#8220;<em>Table View Controller</em>&#8221; y le ponemos de Class el archivo que acabamos de crear. (Imagen).<br />
<img src="http://guiabreve.com/wp-content/uploads/iphone-xcode4-4.png" alt="" title="iphone-xcode4-4" class="full" /></p>
<p><img src="http://guiabreve.com/wp-content/uploads/iphone-xcode4-5.png" alt="" title="iphone-xcode4-5" width="254" height="91" class="semifull" />Y a la celda debemos de ponerle el &#8220;identifier&#8221; como Cell (Es el que se usa por defecto en el código). (Imagen izquierda)</p>
<div class="clear"></div>
<h4>Por último, el código</h4>
<p>Tenemos que modificar el archivo <code>.h</code> y <code>.m</code> que creamos anteriormente. </p>
<h4>Cabecera (Archivo .h)</h4>
<p>Solo tenemos que definir aqui el array que vamos a usar para rellenar la lista. Quedará así.</p>
<pre class="brush:csharp">#import <UIKit/UIKit.h>

@interface TableViewController : UITableViewController {
    NSArray *tabla; // Array
}

@end</pre>
<h4>Implementación (Archivo .m)</h4>
<p>En este archivo son varias cosas las que debemos de hacer.</p>
<h5>1. Debemos de definir el número de secciones y filas que tendrá nuestra tabla</h5>
<pre class="brush:csharp">- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    return [tabla count];
}</pre>
<h5>2. Debemos añadir elementos de la lista al Array</h5>
<pre class="brush:csharp">- (void)viewDidLoad
{
    [super viewDidLoad];

    tabla = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", nil];

    // Uncomment the following line to preserve selection between presentations.
    // self.clearsSelectionOnViewWillAppear = NO;

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem;
}</pre>
<h5>3. Debemos escribir el label de cada celda</h5>
<pre class="brush:csharp">- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    // Configure the cell...
    cell.textLabel.text = [tabla objectAtIndex:indexPath.row];

    return cell;
}</pre>
<h3>¡Terminamos!</h3>
<p>Con esto ya esta todo hecho. Como resultado tendremos una lista de 5 celdas con números del 1 al 5 como definimos en el array.</p>
<p>Esta vez ha sido un poco más complicado que el <a href="http://guiabreve.com/introduccion-a-la-programacion-para-ios-con-xcode-4-i.html" title="Introduccion a la programación para iOS con xCode 4 (I)">primer capítulo</a> y puede que no haya quedado tan claro.</p>
<p>Como este proyecto es algo más complicado he subido todo el proyecto.<br />
<embed src="http://www.box.com/embed/f0umfapoipn7gyg.swf" width="520" height="290" wmode="opaque" type="application/x-shockwave-flash" allowFullScreen="true" allowScriptAccess="always"></p>
<p><strong>Como siempre, cualquier duda, usar los comentarios y si te ha gustado comparte el enlace en Twitter, Facebook o Google Plus. Gracias.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/introduccion-a-la-programacion-para-iphone-ii-uitableview.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visitors.js, personaliza tu página para cada usuario</title>
		<link>http://guiabreve.com/visitors-js-personaliza-tu-pagina-para-cada-usuario.html</link>
		<comments>http://guiabreve.com/visitors-js-personaliza-tu-pagina-para-cada-usuario.html#comments</comments>
		<pubDate>Sat, 14 Jan 2012 14:10:47 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[visitors.js]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1496</guid>
		<description><![CDATA[Visitors.js es un pequeño javascript que nos da información del usuario y así podremos personalizar nuestra página dependiendo de este. De esta forma conseguiremos hacer nuestra página más personal y puede que así consigamos mejorar las ventas. Imaginaos que entrais a una tienda online y esta os avisa de los gastos de envio a vuestra <a href="http://guiabreve.com/visitors-js-personaliza-tu-pagina-para-cada-usuario.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://guiabreve.com/wp-content/uploads/visitorsjs.png" alt="" title="visitorsjs" width="298" height="98" class="noborder semifull" /><a href="http://www.visitorjs.com/details" title="visitors.js">Visitors.js</a> es un pequeño <a href="http://guiabreve.com/tag/javascript" title="Javascript en Guiabreve">javascript</a> que nos da información del usuario y así podremos personalizar nuestra página dependiendo de este.</p>
<p>De esta forma conseguiremos hacer nuestra página más personal y puede que así consigamos mejorar las ventas. Imaginaos que entrais a una tienda online y esta os avisa de los gastos de envio a vuestra casa gracias a la información que obtiene. Esta es solo una de las posibilidades que se me ocurren.</p>
<p>Algunos de los datos que obtendremos son:</p>
<ol>
<li>País y ciudad</li>
<li>Fecha de la última visita</li>
<li>Si viene de un buscador, sabremos desde cual y que ha buscado para llegar.</li>
<li>Tiempo que pasa en la web</li>
<li>Navegador y sistema operativo</li>
<li>Si viene desde un dispositivo móvil sabremos desde cual.</li>
<li><a href="http://www.visitorjs.com/details/api/variables">Y mucho más…</a></li>
</ol>
<h3>El uso no puede ser más sencillo.</h3>
<p>Después de registrarnos, es necesario para obtener una clave, agregamos la librería a nuestra página con la clave que nos den:</p>
<pre class="brush:js"><script type="text/javascript" src="http://www.visitorjs.com/visitor.js?key=TU_CLAVE"></script>
</pre>
<p>Hecho esto, ya podremos obtener datos de los usuarios con las <a href="http://www.visitorjs.com/details/api/variables">variables que podemos ver en la documentación</a>. Por ejemplo, de esta forma escribimos en la caja <code>#visitor-locale-countryCode</code> el país al que pertenece el visitante:</p>
<pre class="brush:js">$('#visitor-locale-countryCode').text(getValueText(visitor.locale.countryCode));</pre>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/visitors-js-personaliza-tu-pagina-para-cada-usuario.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expresiones regulares más comunes (II)</title>
		<link>http://guiabreve.com/expresiones-regulares-mas-comunes-ii.html</link>
		<comments>http://guiabreve.com/expresiones-regulares-mas-comunes-ii.html#comments</comments>
		<pubDate>Tue, 10 Jan 2012 16:03:56 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Expresiones Regulares]]></category>
		<category><![CDATA[Programación y Diseño]]></category>
		<category><![CDATA[Comunes]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1472</guid>
		<description><![CDATA[Indice de la serie: Creando y entendiendo expresiones regulares Expresiones regulares comunes Usando las expresiones regulares En un primer artículo sobre las expresiones regulares aprendimos como crearlas y las diferentes palabras reservadas que podíamos usar. En este segundo artículo de la serie mostraré algunas de las expresiones regulares más comunes. Mirando las palabras reservadas de <a href="http://guiabreve.com/expresiones-regulares-mas-comunes-ii.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<div class="izquierda indice" style="text-align:left;">
<h3>Indice de la serie:</h3>
<ol>
<li><a href="http://guiabreve.com/creando-y-entendiendo-las-expresiones-regulares-i.html" title="Creando y entendiendo las Expresiones regulares (I)">Creando y entendiendo expresiones regulares</a></li>
<li><a href="http://guiabreve.com/expresiones-regulares-mas-comunes-ii.html" title="Expresiones regulares más comunes (II)">Expresiones regulares comunes</a></li>
<li><a href="http://guiabreve.com/usando-las-expresiones-regulares.html" title="Usando las expresiones regulares">Usando las expresiones regulares</a></li>
</ol>
</div>
<p>En un <a title="Creando y entendiendo las Expresiones regulares (I)" href="http://guiabreve.com/creando-y-entendiendo-las-expresiones-regulares-i.html">primer artículo sobre las expresiones regulares</a> aprendimos como crearlas y las diferentes palabras reservadas que podíamos usar.</p>
<p>En este segundo artículo de la serie mostraré algunas de las expresiones regulares más comunes. Mirando las palabras reservadas de la noticia anterior junto a estas expresiones comunes las lograremos entender mejor.</p>
<h3>Expresiones regulares comunes:</h3>
<ol>
<li><strong>Fechas:</strong>
<pre class="brush:php">'/^\d{2}\/\d{2}\/\d{4}$/'</pre>
<p>Este expresión nos validará una fecha del tipo DD/MM/YYYY. Es muy sencillo, hay tres grupos separados por un &#8216;/&#8217;.</p>
<ul>
<li>Los dos primeros grupos son <code>d{2}</code>. Es decir, dos digitos seguidos.</li>
<li>El último grupo en vez de un dos tiene un 4 ya que son cuatro números para el año.</li>
</ul>
</li>
<li><strong>Hora:</strong>
<pre class="brush:php">^(0[1-9]|1\d|2[0-3]):([0-5]\d):([0-5]\d)$</pre>
<p>Con esta expresión validamos una hora del tipo 10:45.33.</li>
<li><strong>Email:</strong>
<pre class="brush:php">^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$</pre>
<p>Nos aseguramos de que haya carcateres, más un arroba. Más caracteres y por último un punto y un dominio de dos o tres caracteres como mucho.</li>
<li><strong>URL:</strong>
<pre class="brush:php">^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)( [a-zA-Z0-9\-\.\?\,\'\/\\\+&amp;%\$#_]*)?$</pre>
<p>Con esta expresión validamos una URL. Permitimos dos protocoles, el http y el ftp.</li>
</ol>
<h3>Más expresiones regulares:</h3>
<p>Bueno, estas son solo unas pocas de las que podemos crear y encontrar por la red. Aqui os dejo algunas entradas donde encontrareis más:</p>
<ul>
<li><a href="http://www.webintenta.com/validacion-con-expresiones-regulares-y-javascript.html">Validación con expresiones regulares y Javascript</a></li>
<li><a href="http://www.virtuosimedia.com/dev/php/37-tested-php-perl-and-javascript-regular-expressions">37 Tested PHP, Perl, and JavaScript Regular Expressions</a></li>
</ul>
<p>Y en Google, ¡hay muchas más!</p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/expresiones-regulares-mas-comunes-ii.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introduccion a la programación para iOS con xCode 4 (I)</title>
		<link>http://guiabreve.com/introduccion-a-la-programacion-para-ios-con-xcode-4-i.html</link>
		<comments>http://guiabreve.com/introduccion-a-la-programacion-para-ios-con-xcode-4-i.html#comments</comments>
		<pubDate>Thu, 05 Jan 2012 09:52:04 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Programando para iOS con xCode 4]]></category>
		<category><![CDATA[Cocoa Touch]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Objetive-C]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[xCode 4]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1417</guid>
		<description><![CDATA[Indice de la guia: Introducción UITableView &#8230; No soy ningún profesional en lo que al desarrollo de aplicaciones se para iPhone se refiere. Mas bien estoy aprendiendo. Mientras tanto, trataré de enseñar algunos conceptos básicos para aquellos que quieran iniciarse en este mundillo. Aprender no me esta resultando nada fácil. La mayoría de libros que <a href="http://guiabreve.com/introduccion-a-la-programacion-para-ios-con-xcode-4-i.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<div class="izquierda indice" style="text-align:left;">
<h3>Indice de la guia:</h3>
<ol>
<li><a href="http://guiabreve.com/introduccion-a-la-programacion-para-ios-con-xcode-4-i.html" title="Introduccion a la programación para iOS con xCode 4 (I)">Introducción</a></li>
<li><a href="http://guiabreve.com/introduccion-a…para-iphone-ii.html" title="Expresiones regulares más comunes (II)">UITableView</a></li>
<li>&#8230;</li>
</ol>
</div>
<p>No soy ningún profesional en lo que al desarrollo de aplicaciones se para iPhone se refiere. Mas bien estoy aprendiendo. Mientras tanto, trataré de enseñar algunos conceptos básicos para aquellos que quieran iniciarse en este mundillo.</p>
<p>Aprender no me esta resultando nada fácil. La mayoría de libros que encuentro son de versiones anteriores de xCode y no de la actual (la 4.2) y el problema es que muchas cosas han cambiado entre la versión anterior y la actual.</p>
<p>Este manual, y todos los que le precedan estarán hechos con <strong>xCode 4.x</strong>. Espero que os sea de ayuda y os guste la guia.</p>
<h3>Comenzamos</h3>
<p>Para empezar, comenzaremos por una aplicación sencilla que tras presionar un botón, nos mostrará el clásico mensaje de &#8220;Hola mundo&#8221;.</p>
<h4>1. Creamos el proyecto</h4>
<p><img class="full" title="Creacion del proyecto 1" src="http://guiabreve.com/wp-content/uploads/Creacion-del-proyecto-1.png" alt="" /><br />
Para ello, abrimos xCode y creamos un nuevo proyecto. Para este primer programa usaremos una &#8220;<em>Single View Application</em>&#8220;. Le ponemos de nombre, por ejemplo, <code>holaMundo</code> y marcamos las dos primeras opciones [<a title="Imagen de Creación del proyecto (Segundo paso)" href="http://guiabreve.com/wp-content/uploads/Creacion-del-proyecto-2.png" target="_blank">img</a>]: &#8220;Use StoryBoard&#8221; y &#8220;Use Automatic Reference Counting&#8221;.<span id="more-1417"></span></p>
<p>Por último, lo guardamos donde queramos.</p>
<h4>2. Ventana de xCode</h4>
<p><img class="full" title="holaMundo 1" src="http://guiabreve.com/wp-content/uploads/holaMundo-1.png" alt="" /><br />
La imagen superior representa a la ventana que nos encontraremos una vez hayamos creado el proyecto. En esta ventana tenemos todo lo necesario para crear nuestro programa.</p>
<p>Lo que nos interesa, por ahora, son los archivos en la barra izquierda, concretamente tres:</p>
<ol>
<li><strong>Mainstoryboard.storyboard</strong> en este archivo diseñaremos toda la parte visual del programa. Diseñaremos las distintas ventanas, con los distintos controles, botones, labels (etiquetas), etc.</li>
</ol>
<p>Por otra parte, el <code>ViewController</code> gestiona las interacciones que tu código tiene con el display, y también gestiona las interacciones del usuario con tu código. Esta clase esta compuesta por dos archivos.</p>
<ol start="2">
<li><strong>ViewController.h</strong> que contiene la cabecera</li>
<li>Y, <strong>ViewController.m</strong> que contiene la implementación</li>
</ol>
<p>Es decir, en la cabecera definimos aquellas cosas que vayamos a hacer en la implementación.</p>
<h4>3. Es hora de programar</h4>
<p>Tendremos que trabajar en los tres archivos para esta aplicación. Vayamos uno por uno comenzando por la cabecera.</p>
<h5>ViewController.h</h5>
<p>Esta es la vista inicial del archivo sin los comentarios.</p>
<pre class="brush:csharp">#import &lt;UIKit/UIKit.h&gt;

@interface ViewController : UIViewController

@end</pre>
<p>Lo que tenemos que hacer, en la cabecera, es definir los elementos y acciones que nos hacen falta. Para el programa necesitamos definir una <em>Label</em> y una acción que se ejecutará al pulsar el botón.</p>
<p>El archivo quedará así:</p>
<pre class="brush:csharp">#import &lt;UIKit/UIKit.h&gt;

@interface ViewController : UIViewController {

    // Etiqueta
    IBOutlet UILabel *etiqueta;
}

// Accion
-(IBAction)mostrarMensaje:(id)sender;

@end</pre>
<ul>
<li>En la linea 6: Definimos el label que estará en la interfaz. <code>IBOutlet</code> por que es un elemento de <em>StoryBoard</em> del tipo <code>UILabel</code> con el nombre &#8220;etiqueta&#8221;.</li>
<li>En la linea 10: definimos la acción. Esta tiene que estar fuera del <code>@interface</code> ya que no pertenece a ella. El nombre de la acción es &#8220;mostrarMensaje&#8221;.</li>
</ul>
<p>Guardamos.</p>
<h5>ViewController.m</h5>
<p>En el archivo de implementación tenemos que desarrollar la acción mostrarMensaje que definimos en la cabecera.</p>
<p>Esta acción tiene como unica función definir el texto de la &#8220;etiqueta&#8221; para mostrar el mensaje &#8220;Hola mundo&#8221;.</p>
<p>Dentro de la <code>@implementation</code> tendremos que añadir los siguiente:</p>
<pre class="brush:csharp">-(IBAction)mostrarMensaje:(id)sender {
    etiqueta.text = @&quot;Hola Mundo&quot;;
}</pre>
<p>Como vemos, solamente cambia la propiedad text de la etiqueta.</p>
<p>Guardamos.</p>
<h5>MainStoryBoard.storyboard</h5>
<p>Aqui, tenemos que definir el botón y el label. Además tenemos que indicar que el label equivale a &#8220;etiqueta&#8221; en nuestro código y que el botón ejecutará la acción &#8220;mostrarMensaje&#8221;.</p>
<p>Vamos paso a paso. Primero diseñamos la aplicación añadiendo los elementos. Simplemente arrastramos un <em>Label</em> y un <em>Round Rect Button</em> a la aplicación para que nos quede más o menos así.<br />
<img src="http://guiabreve.com/wp-content/uploads/holaMundo-2.png" alt="" title="holaMundo 2" class="full" /></p>
<p><img src="http://guiabreve.com/wp-content/uploads/holaMundo-3.png" alt="" title="holaMundo 3" width="242" height="105" class="semifull" />Para terminar solo nos queda relacionar los elementos. Primero hacemos click derecho sobre el label y arrastramos el circulo a la derecha de &#8220;New Referencing Outlet&#8221; a la vista y seleccionamos &#8220;etiqueta&#8221;.</p>
<div class="clear"></div>
<p><img src="http://guiabreve.com/wp-content/uploads/holaMundo-4.png" alt="" title="holaMundo 4" width="424" height="321" class="semifull" />Con el botón es parecido. Pero en vez de &#8220;New Referencing Outlet&#8221; tenemos que arrastrar el circulo de &#8220;Touch Up Inside&#8221; y luego seleccionar &#8220;mostrarMensaje:&#8221;.</p>
<div class="clear"></div>
<h4>4. Terminamos</h4>
<p>Nuestra aplicación esta lista. Ya podemos ejecutarla pulsando el play en la parte superior izquierda y comprobar que todo funciona bien.</p>
<p><strong>Espero que os haya gustado y este todo bien explicado. Cualquier duda, usar los comentarios y como siempre se agradece compartir el enlace en Twitter, Facebook o Google Plus.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/introduccion-a-la-programacion-para-ios-con-xcode-4-i.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Menú de subscripción con jQuery y CSS</title>
		<link>http://guiabreve.com/menu-de-subscripcion-con-jquery-y-css.html</link>
		<comments>http://guiabreve.com/menu-de-subscripcion-con-jquery-y-css.html#comments</comments>
		<pubDate>Tue, 03 Jan 2012 08:23:44 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Recursos]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desplegable]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Menu subscripción]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1376</guid>
		<description><![CDATA[Menú desplegado. Demo Usando jQuery y CSS he creado este pequeño menú desplegable de subscripción donde podemos ofrecer a nuestros usuarios los enlaces a los distintos feeds rss de nuestra página. El menú es realmente sencillo, no es nada complicado ni nada del otro mundo. Pero, gracias a él podemos darnos cuenta de que con <a href="http://guiabreve.com/menu-de-subscripcion-con-jquery-y-css.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://guiabreve.com/wp-content/uploads/Menu-de-subscripcion-jQuery.png" alt="" title="Menu de subscripcion jQuery" width="156" height="126" class="izquierda" />
<div class="izquierda">Menú desplegado. <a href="http://guiabreve.com/demo/jQuery%20Subscribe%20Menu/" title="Demostración de "jQuery Subscribe Menu"">Demo</a></div>
<p>Usando <a href="http://guiabreve.com/tag/jquery" title="jQuery en WordPress">jQuery</a> y <a href="http://guiabreve.com/tag/CSS">CSS</a> he creado este pequeño menú desplegable de subscripción donde podemos ofrecer a nuestros usuarios los enlaces a los distintos <em>feeds rss</em> de nuestra página.</p>
<p>El menú es realmente sencillo, no es nada complicado ni nada del otro mundo. Pero, gracias a él podemos darnos cuenta de que con 6 lineas de jQuery y un poco de CSS podemos lograr cosas alucinantes.</p>
<p>Si sabéis jQuery, esto os parecerá muy sencillo y no os enseñará nada. Si por el contrario no sabéis, este código os podrá servir de introducción y os dareis cuenta de que es realmente sencillo hacer cosas con el sabiendo muy poco.<span id="more-1376"></span></p>
<h3>Veamos el código</h3>
<h4>HTML</h4>
<p>Nada que destacar por aqui. Una caja con dos mas dentro, una de ellas es la que se muestra y se oculta que contiene, además, la lista de enlaces y la otra es para la flecha que indica el estado de la caja.</p>
<pre class="brush:html">&lt;div id=&quot;caja_rss&quot;&gt;
	Subscribete
	&lt;div class=&quot;flecha cerrado&quot;&gt;&amp;nbsp;&lt;/div&gt;
		&lt;div class=&quot;caja&quot; style=&quot;display:none&quot;&gt;
			&lt;ul&gt;
				&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Feed RSS&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Email&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Comentarios&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;</pre>
<h4>CSS</h4>
<p>Lo mismo que lo anterior. Si estamos familiarizados con CSS este código no tiene nada de especial. Unos bordes redondeados por aqui, fondo naranja por allí, algunas sombras y poco más.</p>
<pre class="brush:css">#caja_rss {
	width: 120px;
	margin: auto;
	text-align: left;
	font-size: 16px;
	padding: 8px 14px 9px;
	color: #fff;
	text-decoration: none;

	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;

	-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
	-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
	box-shadow: 0 1px 3px rgba(0,0,0,0.5);
	text-shadow: 0 -1px 1px rgba(0,0,0,0.25);
	border-bottom: 1px solid rgba(0,0,0,0.25);

	cursor: pointer;
	background-color: #ff5c00;
}

.flecha {
	background: url('flechas.png') no-repeat;
	float: right;
	width: 20px;
	height: 20px;
}
.flecha.cerrado {	background-position: 0px -10px;	margin-top: -13px;	margin-bottom: -10px;}
.flecha.abierto {	background-position: 0px 10px;	margin-top: -23px;}

.caja {
	background: #EEE;
	margin: 10px -10px -6px;

	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;
}
.caja ul {	padding: 5px 10px;	list-style: none;	margin: 0;}
.caja li {	padding: 2px 0;}
.caja a {
	color: #444;
	font-size: 12px;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 1px dotted #888;
}
.caja a:hover {	border-bottom: 1px solid #666;	color: #222;}</pre>
<h4>La magia, jQuery</h4>
<p>Aqui es donde pasa todo.</p>
<p>Como vemos el código jQuery, como siempre va contenido dentro del <code>$(document).ready</code> para evitar que se ejecute antes de terminar la carga.</p>
<p>Luego tenemos un <code>toggle</code> que se ejecuta al hacer clic sobre el elemento <code>#caja_rss</code>. Vemos como dentro de este elemento tenemos dos funciones, cada una de ellas se ejecutará una vez cada una.</p>
<ol>
<li>La primera función sirve para desplegar el menú y eliminar y añadir la clase cerrado y abierto respectivamente</li>
<li>La segunda función hace lo contrario para dejar el menu como al principio</li>
</ol>
<pre class="brush:js">$(document).ready(function(){
	$('#caja_rss').toggle(
		function(){
			$('.caja').slideDown();
			$('.flecha').removeClass('cerrado');
			$('.flecha').addClass('abierto');
		},
		function(){
			$('.caja').slideUp();
			$('.flecha').removeClass('abierto');
			$('.flecha').addClass('cerrado');
		}
	);
});</pre>
<p>Y esto es todo. Como siempre, dudas y preguntas en los comentarios y si te ha servido de ayuda o te ha gustado comparte la para ayudar a cuantos más mejor.</p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/menu-de-subscripcion-con-jquery-y-css.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SwipeJS, slider pensado para dispositivos táctiles</title>
		<link>http://guiabreve.com/swipejs-slider-pensado-para-dispositivos-tactiles.html</link>
		<comments>http://guiabreve.com/swipejs-slider-pensado-para-dispositivos-tactiles.html#comments</comments>
		<pubDate>Mon, 02 Jan 2012 10:52:24 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Recursos]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[slide]]></category>
		<category><![CDATA[SwipeJs]]></category>
		<category><![CDATA[Touch]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1358</guid>
		<description><![CDATA[Img de la demo de Swipe. Página oficial Swipe JS es una slider pero se caracteriza por estar pensado para pantallas táctiles. Es perfecto para dispositivos como iPhone, iPads y demás aunque también es completamente funcional con ratón. Por lo tanto, el uso de este plugin para webs móviles es perfecto y es ahí donde <a href="http://guiabreve.com/swipejs-slider-pensado-para-dispositivos-tactiles.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://guiabreve.com/wp-content/uploads/Swipe-e1325261504459.png" alt="" title="Swipe-e1325261504459" class="alignnone semifull wp-image-1360" width="400" />
<div class="izquierda">Img de la demo de Swipe. Página oficial</div>
<p><a href="http://swipejs.com/">Swipe JS</a> es una slider pero se caracteriza por estar pensado para pantallas táctiles. Es perfecto para dispositivos como iPhone, iPads y demás aunque también es completamente funcional con ratón.</p>
<p>Por lo tanto, el uso de este <em>plugin</em> para webs móviles es perfecto y es ahí donde veremos el plugin en su máximo esplendor.</p>
<p>Las características que lo hacen especial son:</p>
<ul>
<li><strong>Desplazamiento 1:1</strong> Las cajas se desplazaran junto a nuestro dedo de forma identica a como lo hacen, por ejemplo, los escritorios del iPhone.</li>
<li><strong>Resistencia en los bordes</strong> Cuando llegamos al final o al principio y intentamos arrastrar este se nos resistirá al igual que cuando llegamos al final de una lista en el iPhone.</li>
<li>También <strong>ajusta el ancho automáticamente a la pantalla al rotar el dispositivo</strong>.</li>
</ul>
<p>Estas características hacen que su comportamiento sea prácticamente identico a una aplicación del sistema por lo que se vuelve algo completamente intuitivo.</p>
<h3>Uso</h3>
<p>Para implementarlo solamente necesitamos el HTML que como vemos es una simple lista dentro de un contenedor:</p>
<pre class="brush:html">
<div id='slider'>
<ul>
<li style='display:block'></li>
<li style='display:none'></li>
<li style='display:none'></li>
</ul>
</div>
</pre>
<p>Y el Javascript que indica que caja será nuestro <em>slider</em>:</p>
<pre class="brush:js">window.mySwipe = new Swipe(
  document.getElementById('slider')
);</pre>
<p>Nada más, ni otras librerías ni nada por el estilo.</p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/swipejs-slider-pensado-para-dispositivos-tactiles.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nuevo año, nuevo diseño</title>
		<link>http://guiabreve.com/nuevo-ano-nuevo-diseno.html</link>
		<comments>http://guiabreve.com/nuevo-ano-nuevo-diseno.html#comments</comments>
		<pubDate>Sun, 01 Jan 2012 23:22:12 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[Guiabreve]]></category>
		<category><![CDATA[Logo]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1351</guid>
		<description><![CDATA[Llega un nuevo año y ya tenía ganas de rediseñar el blog. Diseño anterior (2010/2011) Con este nuevo rediseño sigo la idea del anterior, un diseño sencillo en el que destaquen las entradas y los enlaces interesantes, las dos secciones de contenido del blog. Como veis la estructura es muy similar al diseño anterior aunque <a href="http://guiabreve.com/nuevo-ano-nuevo-diseno.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><strong>Llega un nuevo año y ya tenía ganas de rediseñar el blog.</strong></p>
<p><img src="http://guiabreve.com/wp-content/uploads/Captura-de-pantalla-2011-12-30-a-las-17.36.png" alt="" title="Captura-de-pantalla-2011-12-30-a-las-17.36" class="alignnone full wp-image-1355" /></p>
<div class="izquierda">Diseño anterior (2010/2011)</div>
<p>Con este nuevo rediseño sigo la idea del anterior, un diseño sencillo en el que destaquen las entradas y los enlaces interesantes, las dos secciones de contenido del blog. Como veis la estructura es muy similar al diseño anterior aunque visualmente, no se parece en nada.</p>
<p>El menú superior esta ahora oculto y lo podremos desplegar haciendo click en la flecha negra de la parte superior derecha. Solo lo veremos cuando queramos acceder a él, el resto del tiempo solo nos distraerá de lo importante.</p>
<h3>El logo</h3>
<p>Como podeis ver sigo usando la fuente Museo (mi favorita, sin duda) pero ahora le he incluido un logo que espero os guste.</p>
<p>El logo sale de la idea de juntar los símbolos <code><</code> y <code>></code> (usados en programación) en uno solo.</p>
<h3>Más social</h3>
<p>Ultimamente el blog estaba ganando visitas y la mayoría provenían de redes sociales como Facebook o Twitter principalmente, por ello, e decido agregar los botones correspondientes para compartir los artículos con un solo clic. Veremos que tal funcionan y si consiguen incrementar el tráfico del blog y llegar a más gente.</p>
<h3>Comentarios</h3>
<p>Ahora los comentarios son del propio WordPress. Me he artado de Disqus.</p>
<h3>Enlaces interesantes</h3>
<p>Al igual que antes siguen a la derecha en un segundo plano pero ahora no se importan automáticamente de Delicious como antes, si no que son un tipo de entrada personalizado que he añadido a WordPress.</p>
<p>El funcionamiento es el mismo, al picar en el titulo vamos al enlace y debajo tenemos una pequeña descripción.</p>
<h3>Y por último...</h3>
<p>El contenido. Ahora, que dispongo de más tiempo, quiero elaborar artículos más completos y profundizar más en los temas. Tengo ganas de preparar algunas guias sobre frameworks, por ejemplo.</p>
<p>Aún así, no prometo nada, ya veremos.</p>
<p><strong>¡Feliz año a todos!</strong>, espero que os guste y por supuesto, me encantaría leer vuestras opiniones en forma de comentario.</p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/nuevo-ano-nuevo-diseno.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery.Suggest, autocompletado de campos</title>
		<link>http://guiabreve.com/jquery-suggest-autocompletado-de-campos.html</link>
		<comments>http://guiabreve.com/jquery-suggest-autocompletado-de-campos.html#comments</comments>
		<pubDate>Thu, 22 Dec 2011 07:30:56 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Autocompletado]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jQuery.Suggest]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1330</guid>
		<description><![CDATA[Imagen de campo con autocompletado habilitado jQuery.suggest es un plugin sencillo de autocompletado. Lo mejor de este plugin es su sencillez. Al situarnos sobre un input de texto y teclear sobre el nos irá sugeriendo algunas opciones y al pulsar tab o intro se autocompletará actualizando el campo con el texto en cuestión. Si hay <a href="http://guiabreve.com/jquery-suggest-autocompletado-de-campos.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<div class="izquierda"><img src="http://guiabreve.com/wp-content/uploads/Captura-de-pantalla-2011-12-20-a-las-23.31.57.png" alt="" title="Captura de pantalla 2011-12-20 a la(s) 23.31.57" width="235" height="114" class="size-full wp-image-1333" /><br />
Imagen de campo con autocompletado habilitado</div>
<p><a href="http://polarblau.github.com/suggest/">jQuery.suggest</a> es un plugin sencillo de autocompletado.</p>
<p>Lo mejor de este plugin es su sencillez. Al situarnos sobre un <code>input</code> de texto y teclear sobre el nos irá sugeriendo algunas opciones y al pulsar <code>tab</code> o <code>intro</code> se autocompletará actualizando el campo con el texto en cuestión.</p>
<p>Si hay más de una coincidencia para el texto introducido aparecerá unos <code>...</code> indicando que hay más de un resultado. Pulsando las flechas arriba y abajo podremos ver los distintos resultados y seleccionar uno. Todo, muy intuitivo.</p>
<h3>Uso&#8230;</h3>
<p>Su uso es sencillo. Tenemos una variable que será un <code>array</code> que contendrá todas las sugerencias. Por último indicamos el <code>#container</code> (elemento) al que le pasamos el array y las dos opciones de configuración, suggestionColor y moreIndicatorClass, este último, indica el elemento que aparecerá cuando haya más de una coincidencia.</p>
<pre class="brush:js">
var haystack = ["ActionScript", "AppleScript", "Asp", "BASIC", ...];

$(function(){
  $('#container').suggest(haystack, {
    suggestionColor   : '#cccccc',
    moreIndicatorClass: 'suggest-more'
  });
});</pre>
<p>Demás esta decir que hay que incluír el archivo del plugin y la librería <a href="http://guiabreve.com/tag/jquery" title="jQuery en Guiabreve">jQuery</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/jquery-suggest-autocompletado-de-campos.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Humane.Js, alertas y notificaciones</title>
		<link>http://guiabreve.com/humane-js-alertas-y-notificaciones.html</link>
		<comments>http://guiabreve.com/humane-js-alertas-y-notificaciones.html#comments</comments>
		<pubDate>Mon, 19 Dec 2011 07:10:38 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[HumaneJs]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Notificaciones]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1321</guid>
		<description><![CDATA[HumaneJs es un pequeño framework independiente en javascript que nos ayudara a generar alertas y notifiaciones. Tenemos tres estilos de alertas predefinidas: Informativas, Satisfactorias y de Errores. Cada una de ellas tiene su estilo para difenciarse del resto. HumaneJs no necesita de ninguna librería para funcionar y es configurable el tiempo de duración de la <a href="http://guiabreve.com/humane-js-alertas-y-notificaciones.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://guiabreve.com/wp-content/uploads/Humanejs-e1324243132661.png" alt="" title="Humanejs" width="225" class="encuadre alignright size-full wp-image-1324" /><a href="http://wavded.github.com/humane-js/" title="HumaneJs">HumaneJs</a> es un pequeño <a href="http://guiabreve.com/tag/framework" title="Frameworks en Guiabreve">framework</a> independiente en <a href="http://guiabreve.com/tag/javascript" title="Javascript en Guiabreve">javascript</a> que nos ayudara a generar alertas y notifiaciones.</p>
<p>Tenemos tres estilos de alertas predefinidas: Informativas, Satisfactorias y de Errores. Cada una de ellas tiene su estilo para difenciarse del resto.</p>
<p><strong>HumaneJs</strong> no necesita de ninguna librería para funcionar y es configurable el tiempo de duración de la alerta, la forma de cerrar la alerta, etc.</p>
<p>Personalmente preferiría algún plugin sencillo para jQuery y así no lidiar con muchas librerías distintas pero esta es otra buena opción.</p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/humane-js-alertas-y-notificaciones.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MQFramework, creando diseños sensibles</title>
		<link>http://guiabreve.com/mqframework-creando-disenos-sensibles.html</link>
		<comments>http://guiabreve.com/mqframework-creando-disenos-sensibles.html#comments</comments>
		<pubDate>Fri, 02 Dec 2011 07:48:27 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Recursos]]></category>
		<category><![CDATA[960.gs]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Diseños sencibles]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Sensitive Desing]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1311</guid>
		<description><![CDATA[MQFramework es un framework CSS que nos facilitará la tarea de crear diseños sensibles al tamaño del navegador o dispositivo. Esta basado en un sistema de 12 columnas que se adaptan automáticamente dependiendo del tamaño del navegador donde lo carguemos por lo que su uso es similar a sistemas como 960.gs. También incluye una hoja <a href="http://guiabreve.com/mqframework-creando-disenos-sensibles.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://guiabreve.com/wp-content/uploads/MQFramework-684x139.png" alt="" title="MQFramework" width="684" height="139" class="encuadre aligncenter size-large wp-image-1313" /><a href="http://mqframework.com/">MQFramework</a> es un <a href="http://guiabreve.com/tag/framework">framework</a> <a href="http://guiabreve.com/tag/css">CSS</a> que nos facilitará la tarea de crear diseños sensibles al tamaño del navegador o dispositivo. </p>
<p>Esta basado en un sistema de 12 columnas que se adaptan automáticamente dependiendo del tamaño del navegador donde lo carguemos por lo que <a href="http://mqframework.com/usage/">su uso</a> es similar a sistemas como <a href="http://guiabreve.com/Tag/960-gs">960.gs</a>. También incluye una hoja para los textos que nos viene con lo básico y otra para reiniciar los estilos de los navegadores (<code>reset.css</code>).</p>
<p>Además está disponible en dos versiones: </p>
<ol>
<li><strong>Fixed:</strong> que se adapta al tamaño del navegador por bloques.</li>
<li><strong>Fluid:</strong> por el contrario se adapta al navegador aprovechando el máximo de espacio posible.</li>
</ol>
<p>En la web del <em>framework</em> tenéis las dos demostraciones de como funciona cada uno de ellos.</p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/mqframework-creando-disenos-sensibles.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creando y entendiendo las Expresiones regulares (I)</title>
		<link>http://guiabreve.com/creando-y-entendiendo-las-expresiones-regulares-i.html</link>
		<comments>http://guiabreve.com/creando-y-entendiendo-las-expresiones-regulares-i.html#comments</comments>
		<pubDate>Thu, 01 Dec 2011 13:37:50 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Expresiones Regulares]]></category>
		<category><![CDATA[Productividad]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1291</guid>
		<description><![CDATA[Indice de la serie: Creando y entendiendo expresiones regulares Expresiones regulares comunes Usando las expresiones regulares Las expresiones regulares, o patrones, son una de las cosas m&#225;s difíciles de entender debido a su complejidad, pero no nos asustemos. Una vez que las entendamos y les cojamos el tranquillo nos ser&#225;n de muchísima utilidad. &#191;Que son? <a href="http://guiabreve.com/creando-y-entendiendo-las-expresiones-regulares-i.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<div class="izquierda indice" style="text-align:left;">
<h3>Indice de la serie:</h3>
<ol>
<li><a href="http://guiabreve.com/creando-y-entendiendo-las-expresiones-regulares-i.html" title="Creando y entendiendo las Expresiones regulares (I)">Creando y entendiendo expresiones regulares</a></li>
<li><a href="http://guiabreve.com/expresiones-regulares-mas-comunes-ii.html" title="Expresiones regulares más comunes (II)">Expresiones regulares comunes</a></li>
<li><a href="http://guiabreve.com/usando-las-expresiones-regulares.html" title="Usando las expresiones regulares">Usando las expresiones regulares</a></li>
</ol>
</div>
<p>Las expresiones regulares, o patrones, son una de las cosas m&aacute;s difíciles de entender debido a su complejidad, pero no nos asustemos. Una vez que las entendamos y les cojamos el tranquillo nos ser&aacute;n de muchísima utilidad.</p>
<h3>&iquest;Que son?</h3>
<p>Las expresiones regulares son patrones que permiten buscar coincidencias con combinaciones de caracteres dentro de cadenas de texto. </p>
<h4>Caracteres especiales:</h4>
<p>Para definir el patr&oacute;n usamos una combinaci&oacute;n de caracteres especiales que nos ayudar&aacute;n a crear la expresion. Los caracteres especiales m&aacute;s comunes son:<span id="more-1291"></span></p>
<table style="width:640px;margin: 5px 0 0px -180px;display:block" CELLSPACING=8>
<tbody>
<tr>
<th width="1%" valign="top"></th>
<th width="50%" valign="top">Significado</th>
<th width="49%" valign="top">Ejemplo</th>
</tr>
<tr>
<td><strong>\</strong></td>
<td>Indica que el siguiente<br />
	caracter normal debe ser considerado como especial. Tambi&eacute;n se utiliza como caracter de<br />
	escape para los caracteres especiales.</td>
<td><strong>/\n/</strong><br />
	encuentra un salto de l&iacute;ena. Si se desea buscar el caracter &#8216;\&#8217;, habr&aacute; que utilizar <strong>/\\/</strong></td>
</tr>
<tr class="alt">
<td><strong>^</strong></td>
<td>Se utiliza para<br />
	encontrar el comienzo de una l&iacute;nea.</td>
<td><strong>/a/</strong><br />
	encuentra una &#8216;a&#8217; en cualquier lugar, pero <strong>/^a/</strong> haya una<br />
	coincidencia con el caracter &#8216;a&#8217; si se encuentra al comienzo de una l&iacute;nea.</td>
</tr>
<tr>
<td><strong>$</strong></td>
<td>Se utiliza<br />
	para encontrar el final de una l&iacute;nea.</td>
</tr>
<tr class="alt">
<td><strong>*</strong></td>
<td>Encuentra coincidencia<br />
	del caracter que le precede cuando aparece 0 o m&aacute;s veces en la cadena.</td>
<td><strong>/hola*/</strong><br />
	encuentra coincidencias en las cadena &quot;hol&quot;, &quot;hola&quot; y<br />
	&quot;holaaaa&quot;.</td>
</tr>
<tr>
<td><strong>+</strong></td>
<td>Igual que<br />
	el &#8216;*&#8217;, pero cuando el caracter aparece 1 o m&aacute;s veces.</td>
</tr>
<tr class="alt">
<td><strong>?</strong></td>
<td>Igual que<br />
	el &#8216;*&#8217;, pero cuando el caracter aparece 0 o 1 vez.</td>
<td></td>
</tr>
<tr>
<td><strong>.</strong></td>
<td>Se utiliza para<br />
	encontrar cualquier caracter que no sea un caracter de nueva l&iacute;nea.</td>
<td><strong>/.sa/</strong><br />
	encontrar&aacute; coincidencias en las cadenas &quot;casa&quot;, &quot;cosa&quot; y<br />
	&quot;cesa&quot;, pero no en &quot;asa&quot;.</td>
</tr>
<tr class="alt">
<td><strong>(x)</strong></td>
<td>Encuentra<br />
	coincidencias con &#8216;x&#8217;, y recuerda el patr&oacute;n para su posterior utilizaci&oacute;n.</td>
<td></td>
</tr>
<tr>
<td><strong>x|y</strong></td>
<td>Encuentra<br />
	coincidencia si aparece el caracter &#8216;x&#8217; o el caracter &#8216;y&#8217;.</td>
</tr>
<tr class="alt">
<td><strong>{n}</strong></td>
<td>Encuentra coincidencia<br />
	si hay exactamente n apariciones del caracter que precede.</td>
<td>Por ejemplo, <strong>/a{3}/</strong> encuentra coincidencia en &quot;holaaa&quot;, pero no en<br />
	&quot;holaa&quot;.</td>
</tr>
<tr>
<td><strong>{n,}</strong></td>
<td>Encuentra<br />
	coincidencia si hay al menos n apariciones del caracter que precede.</td>
</tr>
<tr class="alt">
<td><strong>{n,m}</strong></td>
<td>Encuentra<br />
	coincidencia si hay como m&iacute;nimo n y com m&aacute;ximo m apariciones del caracter que precede.</td>
<td></td>
</tr>
<tr>
<td><strong>[xyz]</strong></td>
<td>Representa un conjunto<br />
	de caracteres individuales.</td>
<td><strong>/[aeiou]/</strong><br />
	encuentra coincidencias con cualquier vocal. Si se utiliza el caracter &#8216;-&#8217; se pueden<br />
	definir rangos. Por ejemplo, <strong>/[0-3]/</strong> encuentra coincidencias<br />
	si aparecen en la cadena los caracteres &#8217;0&#8242;, &#8217;1&#8242;, &#8217;2&#8242; o &#8217;3&#8242;.</td>
</tr>
<tr class="alt">
<td><strong>[^xyz]</strong></td>
<td>Representa<br />
	un conjunto de caracteres individuales complementario. Encunetra coincidencias con<br />
	aquellos caracteres que NO aparezcan en el conjunto. Al igual que en el caso anterior, con<br />
	el &#8216;-&#8217; se pueden definir rangos.</td>
<td></td>
</tr>
<tr>
<td><strong>[\b]</strong></td>
<td>Encuentra<br />
	coincidencia con el caracter de retroceso.</td>
</tr>
<tr class="alt">
<td><strong>\b</strong></td>
<td>Encuentra coincidencias<br />
	con los l&iacute;mites de las palabras.</td>
<td>Por ejemplo, <strong>/\bola/</strong> encuentra la cadena &quot;ola&quot; en &quot;Viene una<br />
	ola&quot;, pero no en &quot;Viene una cola&quot;.</td>
</tr>
</tbody>
</table>
<p><!--</p>
<h4>Expresiones populares explicadas:</h4>
<p>A continuaci&oacute;n analizaremos algunas de las m&aacute;s populares para entender el uso de los caracteres especiales en ellas.<br />
&#8211;><br />
<!-- A&ntilde;adir algunas expresiones regulares populares EXPLICADAS --></p>
<p>Y con estoy ya podemos crear nuestras pr&oacute;pias expresiones regulares. </p>
<p>En el próximo capítulo enseñaré algunas de las expresiones regulares más comunes explicándolas para que además de sernos utiles las entendamos.</p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/creando-y-entendiendo-las-expresiones-regulares-i.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Botones de ingreso social en CSS3</title>
		<link>http://guiabreve.com/botones-de-ingreso-social-en-css3.html</link>
		<comments>http://guiabreve.com/botones-de-ingreso-social-en-css3.html#comments</comments>
		<pubDate>Thu, 01 Dec 2011 07:32:45 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Botonos]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Ingreso]]></category>
		<category><![CDATA[Singin]]></category>
		<category><![CDATA[sociales]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1284</guid>
		<description><![CDATA[Este CSS nos permite generar botones de ingreso de distintas redes sociales. Al estar desarrollados en CSS podremos configurar su tamaño, entre otras cosas, facilmente. En la hoja de estilo encontraremos el botón para Twitter, Facebook, Google, GitHub, Yahoo, Windows Live y OpenID. Además todos ellos están en tamaño normal y en grande. Estos botones <a href="http://guiabreve.com/botones-de-ingreso-social-en-css3.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://guiabreve.com/wp-content/uploads/CSS-Sing-in-buttons-e1322688942223.png" alt="" title="CSS Sing-in buttons" width="297" height="286" class="alignright size-full wp-image-1286" />Este <a href="http://guiabreve.com/tag/CSS3" title="CSS en Guiabreve">CSS</a> nos permite generar <a href="http://nicolasgallagher.com/lab/css3-social-signin-buttons/" title="CSS3 Social Sign-in Buttons">botones de ingreso de distintas redes sociales</a>. Al estar desarrollados en CSS podremos configurar su tamaño, entre otras cosas, facilmente.</p>
<p>En la hoja de estilo encontraremos el botón para <strong>Twitter</strong>, <strong>Facebook</strong>, <strong>Google</strong>, <strong>GitHub</strong>, <strong>Yahoo</strong>, <strong>Windows Live</strong> y <strong>OpenID</strong>. Además todos ellos están en tamaño normal y en grande.</p>
<p>Estos botones se visualizan correctamente en Google Chrome, Firefox 3.5+, Safari 4+, IE 10+ y Opera 11.10+. Dan algunos problemas en IE6 y IE7.</p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/botones-de-ingreso-social-en-css3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creando CSS compatible con todos los navegadores con Prefixr</title>
		<link>http://guiabreve.com/creando-css-compatible-con-todos-los-navegadores-con-prefixr.html</link>
		<comments>http://guiabreve.com/creando-css-compatible-con-todos-los-navegadores-con-prefixr.html#comments</comments>
		<pubDate>Wed, 30 Nov 2011 15:18:33 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Compatible]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Navegadores]]></category>
		<category><![CDATA[Prefixr]]></category>
		<category><![CDATA[Propiedades]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1278</guid>
		<description><![CDATA[Prefixr es una herramienta que añadirá a nuestra hoja de estilo las propiedades necesarias para que todo se vea correctamente en todos los navegadores. En la medida de lo posible. Nosotros creamos nuestra hoja de estilos sin preocuparon por añadir las distintas propiedades de los distintos navegadores. Simplemente añadiendo las propiedades nativas de CSS nos <a href="http://guiabreve.com/creando-css-compatible-con-todos-los-navegadores-con-prefixr.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://guiabreve.com/wp-content/uploads/Prefixr-684x164.png" alt="" title="Prefixr" width="684" height="164" class="encuadre aligncenter size-large wp-image-1282" /><a href="http://prefixr.com/">Prefixr</a> es una herramienta que añadirá a nuestra hoja de estilo las propiedades necesarias para que todo se vea correctamente en todos los navegadores. En la medida de lo posible.</p>
<p>Nosotros creamos nuestra hoja de estilos sin preocuparon por añadir las distintas propiedades de los distintos navegadores. Simplemente añadiendo las propiedades nativas de <a href="http://guiabreve.com/tag/CSS" title="CSS en Guiabreve">CSS</a> nos bastará. Luego, tras pasarlo por <strong>Prefixr</strong> este añadirá el resto.<span id="more-1278"></span></p>
<p>Por ejemplo, esto:</p>
<pre class="brush:css">.container {
   box-shadow: 20px;
   -moz-transition: box-shadow 2s;
   -webkit-border-radius: 4px;
   animation: slide 1s alternate;
   background: linear-gradient(top, #e3e3e3 10%, white);
}</pre>
<p>Pasará a ser esto:</p>
<pre class="brush:css">.container {
   -webkit-box-shadow: 20px;
   -moz-box-shadow: 20px;
   box-shadow: 20px;

   -webkit-transition: box-shadow 2s;
   -moz-transition: box-shadow 2s;
   -o-transition: box-shadow 2s;
   -ms-transition: box-shadow 2s;
   transition: box-shadow 2s;

   -webkit-border-radius: 4px;
   -moz-border-radius: 4px;
   border-radius: 4px;

   -webkit-animation: slide 1s alternate;
   -moz-animation: slide 1s alternate;
   -ms-animation: slide 1s alternate;
   animation: slide 1s alternate;

   background-image: -webkit-gradient(linear, left top, left bottom, color-stop(10%, #e3e3e3), to(white));
   background: -webkit-linear-gradient(top, #e3e3e3 10%, white);
   background: -moz-linear-gradient(top, #e3e3e3 10%, white);
   background: -o-linear-gradient(top, #e3e3e3 10%, white);
   background: -ms-linear-gradient(top, #e3e3e3 10%, white);
   background: linear-gradient(top, #e3e3e3 10%, white);
}</pre>
<p>Aunque, el CSS ganará mucho peso también ganaremos en compatibilidad, lo cual, siempre se agradece.</p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/creando-css-compatible-con-todos-los-navegadores-con-prefixr.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Countdown.js, Calculando el tiempo entre dos fechas</title>
		<link>http://guiabreve.com/countdown-js-calculando-el-tiempo-entre-dos-fechas.html</link>
		<comments>http://guiabreve.com/countdown-js-calculando-el-tiempo-entre-dos-fechas.html#comments</comments>
		<pubDate>Wed, 30 Nov 2011 07:09:58 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Countdown.js]]></category>
		<category><![CDATA[Cuenta Atras]]></category>
		<category><![CDATA[Diferencia]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Libreria]]></category>
		<category><![CDATA[Tiempo]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1271</guid>
		<description><![CDATA[Countdown.js es una librería pensada para calcular y mostrar el tiempo que hay entre dos fechas. La librería calcula el tiempo continuamente, teniendo en cuenta que el tiempo avanza, por lo tanto es ideal para mostrar cuentas atras para eventos o fechas especificas. También podemos configurar el formato en el que nos devuelve la fecha <a href="http://guiabreve.com/countdown-js-calculando-el-tiempo-entre-dos-fechas.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://guiabreve.com/wp-content/uploads/CountDownjs-684x129.png" alt="" title="CountDownjs" width="684" height="129" class="aligncenter size-large wp-image-1273 encuadre" /><a href="http://countdownjs.org/">Countdown.js</a> es una librería pensada para calcular y mostrar el tiempo que hay entre dos fechas.</p>
<p>La librería calcula el tiempo continuamente, teniendo en cuenta que el tiempo avanza, por lo tanto es ideal para mostrar cuentas atras para eventos o fechas especificas.</p>
<p>También podemos configurar el formato en el que nos devuelve la fecha pudiendo añadir milisegundos, segundos, minutos, horas, días, semanas, etc.</p>
<p>Aqui podemos encontrar toda <a href="http://countdownjs.org/readme.html">la documentación</a> necesaria y una <a href="http://countdownjs.org/demo.html">demostración</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/countdown-js-calculando-el-tiempo-entre-dos-fechas.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Mobile 1.0 ya está disponible</title>
		<link>http://guiabreve.com/jquery-mobile-1-0-ya-esta-disponible.html</link>
		<comments>http://guiabreve.com/jquery-mobile-1-0-ya-esta-disponible.html#comments</comments>
		<pubDate>Tue, 29 Nov 2011 13:28:17 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jQuery Mobile]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1265</guid>
		<description><![CDATA[Ha pasado casi un año desde el lanzamiento de la primera versión beta de jQuery Mobile y ahora ya disponemos de la versión 1.0 estable. Si no conocéis jQuery Mobile, se trata de un framework que es compatible con la mayoría de navegadores webs de móviles. Además de, estar bien documentado y de poder generar <a href="http://guiabreve.com/jquery-mobile-1-0-ya-esta-disponible.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://guiabreve.com/wp-content/uploads/logo-de-jquery-150x150.png" alt="" title="jQuery" width="150" height="150" class="encuadre alignright size-thumbnail wp-image-623" />Ha pasado casi un año desde el lanzamiento de la primera versión beta de <a href="http://jquerymobile.com/" title="jQuery Mobile">jQuery Mobile</a> y ahora ya disponemos de la <a href="http://jquerymobile.com/blog/2011/11/16/announcing-jquery-mobile-1-0/" title="Anuncio de la versión estable">versión 1.0 estable</a>.</p>
<p>Si no conocéis jQuery Mobile, se trata de un <em>framework</em> que es compatible con la mayoría de navegadores webs de móviles. Además de, estar bien documentado y de poder generar themes con <a href="http://jquerymobile.com/themeroller/">ThemeRoller</a>, incluye también numerosos widgets optimizados para pantallas tactiles así como botones, barras de herramientas, listas, etc que nos ayudarán a comenzar nuestro proyecto móvil.</p>
<p>Sin duda, como mínimo, se merece un vistazo</p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/jquery-mobile-1-0-ya-esta-disponible.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Más animaciones CSS</title>
		<link>http://guiabreve.com/mas-animaciones-css.html</link>
		<comments>http://guiabreve.com/mas-animaciones-css.html#comments</comments>
		<pubDate>Tue, 29 Nov 2011 07:33:35 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Animaciones]]></category>
		<category><![CDATA[Animate.css]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Modernizr]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1261</guid>
		<description><![CDATA[Animate.css es un conjunto de animaciones, en CSS3, por supuesto. Para implementarlas en los distintos elementos simplemente tenemos que añadir las clases especificas donde lo deseemos o añadir las propiedades directamente en nuestro archivo CSS. El problema es que por ahora solo son compatibles con Safari, Chrome y Firefox. Microsoft a anunciado que las animaciones <a href="http://guiabreve.com/mas-animaciones-css.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://daneden.me/animate/" title="Animate.css">Animate.css</a> es un <a href="http://guiabreve.com/efectos-de-animacion-con-css3.html" title="Efectos de animación con CSS3">conjunto de animaciones</a>, en <a href="http://guiabreve.com/tag/css3" title="CSS3 en Guiabreve">CSS3</a>, por supuesto.</p>
<p>Para implementarlas en los distintos elementos <strong>simplemente tenemos que añadir las clases especificas donde lo deseemos o añadir las propiedades directamente en nuestro archivo CSS</strong>. </p>
<p>El problema es que por ahora <strong>solo son compatibles con Safari, Chrome y Firefox</strong>. Microsoft a anunciado que las animaciones serán compatibles en Internet Explorer 10 y Opera hará lo propio con la versión número 12.</p>
<p>Para solucionar esto podemos usar Animate.css conjuntamente con <a href="http://guiabreve.com/tag/jquery" title="jQuery en Guiabreve">jQuery</a> y <a href="http://guiabreve.com/modernizr-compatibilidad-de-html5-y-css3-con-navegadores-antiguos.html" title="Modernizr, compatibilidad de HTML5 y CSS3 con navegadores antiguos">Modernizr</a>. Si el navegador no es compatible con las animaciones css podemos lanzarlas por medio de jQuery y así conseguir que todos los usuarios en todos los navegadores vean correctamente el sitio.</p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/mas-animaciones-css.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>InstaCSS, todas las propiedades de CSS bien documentadas</title>
		<link>http://guiabreve.com/instacss-todas-las-propiedades-de-css-bien-documentadas.html</link>
		<comments>http://guiabreve.com/instacss-todas-las-propiedades-de-css-bien-documentadas.html#comments</comments>
		<pubDate>Mon, 28 Nov 2011 15:01:06 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[documentacion]]></category>
		<category><![CDATA[ejemplos]]></category>
		<category><![CDATA[InstaCSS]]></category>
		<category><![CDATA[Propiedades]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1250</guid>
		<description><![CDATA[InstaCSS es un sitio web en el que encontraremos todas las propiedades de CSS bien documentadas. Podremos acceder a ellas desde la barra lateral de la izquierda o usando el buscador por lo que encontraremos la propiedad que buscamos en cuestión de segundos. Cada uno de ellos, además, disponen de ejemplos online y una tabla <a href="http://guiabreve.com/instacss-todas-las-propiedades-de-css-bien-documentadas.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://guiabreve.com/wp-content/uploads/InstaCSS-150x150.png" alt="" title="InstaCSS" width="150" height="150" class="alignright size-thumbnail wp-image-1253 encuadre" /><a href="http://instacss.com/">InstaCSS</a> es un sitio web en el que encontraremos todas las propiedades de <a href="http://guiabreve.com/tag/css">CSS</a> bien documentadas. Podremos acceder a ellas desde la barra lateral de la izquierda o usando el buscador por lo que encontraremos la propiedad que buscamos en cuestión de segundos. </p>
<p>Cada uno de ellos, además, disponen de ejemplos online y una tabla de compatibilidad con los distintos navegadores.</p>
<p>Sin duda, un enlace que todos deberíamos guardar y tener en cuenta.</p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/instacss-todas-las-propiedades-de-css-bien-documentadas.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Futurico, elementos en PSD para la interfaz de usuario</title>
		<link>http://guiabreve.com/futurico-elemtos-en-psd-para-la-interfaz-de-usuario.html</link>
		<comments>http://guiabreve.com/futurico-elemtos-en-psd-para-la-interfaz-de-usuario.html#comments</comments>
		<pubDate>Mon, 28 Nov 2011 07:56:20 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Elementos UI]]></category>
		<category><![CDATA[Futurico]]></category>
		<category><![CDATA[Interfaz grafica]]></category>
		<category><![CDATA[PSD]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1241</guid>
		<description><![CDATA[Este paquete de elementos destaca por su aspecto cuidado hasta el detalle y por su variedad de elementos. En Futurico encontramos pestañas, gráficas, botones, swichts, reproductores, calendarios, paginación, formularios, menús desplegables, advertencias, etc. Todos ellos en PSD por lo que podremos personalizarlos sin mayor problema lo deseamos. El pack podremos descargarlo a cambio de un <a href="http://guiabreve.com/futurico-elemtos-en-psd-para-la-interfaz-de-usuario.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://guiabreve.com/wp-content/uploads/FuturicoUI_bigprev-150x150.jpg" alt="" title="FuturicoUI_bigprev" width="150" height="150" class="encuadre alignleft size-thumbnail wp-image-1245" />Este paquete de elementos destaca por su aspecto cuidado hasta el detalle y por su variedad de elementos.</p>
<p>En <strong>Futurico</strong> encontramos pestañas, gráficas, botones, swichts, reproductores, calendarios, paginación, formularios, menús desplegables, advertencias, etc. Todos ellos en <a href="http://guiabreve.com/tag/psd" title="Archivos PSD en Guiabreve">PSD</a> por lo que podremos personalizarlos sin mayor problema lo deseamos.</p>
<p>El pack podremos descargarlo a cambio de un tuit en <a href="http://designmodo.com/futurico/">DesignModo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/futurico-elemtos-en-psd-para-la-interfaz-de-usuario.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generador CSS3 de cajas con degradados, sobras y bordes redondeados online</title>
		<link>http://guiabreve.com/generador-css3-de-cajas-con-degradados-sobras-y-bordes-redondeados-online.html</link>
		<comments>http://guiabreve.com/generador-css3-de-cajas-con-degradados-sobras-y-bordes-redondeados-online.html#comments</comments>
		<pubDate>Fri, 11 Nov 2011 07:39:28 +0000</pubDate>
		<dc:creator>Víctor Falcón Ruiz</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Bordes]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Degradados]]></category>
		<category><![CDATA[Generador]]></category>
		<category><![CDATA[Generador de Cajas]]></category>
		<category><![CDATA[Sobras]]></category>
		<category><![CDATA[transparencia]]></category>

		<guid isPermaLink="false">http://guiabreve.com/?p=1233</guid>
		<description><![CDATA[CSS3 Generator es un generador online que nos muestra el poder de CSS3. En este caso podremos generar una caja en la que podremos personalizar los bordes, la sombra, el degradado de fondo y la transparencia. La posibilidad de personalizar el código es muy amplia, por lo que podremos generar una caja a nuestro gusto <a href="http://guiabreve.com/generador-css3-de-cajas-con-degradados-sobras-y-bordes-redondeados-online.html">Continuar &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-1235 encuadre" title="css-box-generator" src="http://guiabreve.com/wp-content/uploads/css-box-generator-300x187.png" alt="" width="300" height="187" /><a href="http://www.css3.me/">CSS3 Generator</a> es un generador online que nos muestra el poder de <a title="CSS3 en jQuery" href="http://guiabreve.com/tag/css3">CSS3</a>.</p>
<p>En este caso podremos <strong>generar una caja en la que podremos personalizar los bordes, la sombra, el degradado de fondo y la transparencia</strong>. La posibilidad de personalizar el código es muy amplia, por lo que podremos generar una caja a nuestro gusto personalizado.</p>
<p>Además, en el código generado, se nos añaden propiedades para que la caja se vea correctamente en <strong>Internet Explorer 7 y 8</strong>. Por lo tanto la compatibilidad del código es máxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://guiabreve.com/generador-css3-de-cajas-con-degradados-sobras-y-bordes-redondeados-online.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

