<?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>21projects - Consultoría tecnológica y desarrollo Web y Móvil</title>
	<atom:link href="http://www.21projects.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.21projects.com</link>
	<description>Projects from the 21st century</description>
	<lastBuildDate>Wed, 07 Oct 2009 13:07:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Diseño de interfaces en iPhone</title>
		<link>http://www.21projects.com/blog/diseno-de-interfaces-en-iphone/</link>
		<comments>http://www.21projects.com/blog/diseno-de-interfaces-en-iphone/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 13:07:02 +0000</pubDate>
		<dc:creator>Ariel Camus</dc:creator>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Usabilidad]]></category>
		<category><![CDATA[controles]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[interfaz]]></category>
		<category><![CDATA[interfeace]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[tab]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[vistas]]></category>

		<guid isPermaLink="false">http://www.21projects.com/?p=132</guid>
		<description><![CDATA[Hay quienes admiran el iPhone de Apple y hay quienes piensan que no es tan maravilloso, que hay muchas restricciones y que no fomentan la aparición de aplicaciones disruptivas. Sin embargo, hay algo en lo que todo el mundo parece estar de acuerdo: han hecho un excelente trabajo al crear los elementos por defecto que [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Hay quienes admiran el iPhone de Apple y hay quienes piensan que no es tan maravilloso, que hay muchas restricciones y que no fomentan la aparición de aplicaciones disruptivas. Sin embargo, hay algo en lo que todo el mundo parece estar de acuerdo: han hecho un excelente trabajo al crear los elementos por defecto que conforman las interfaces de las aplicaciones para iPhone.</p>
<p style="text-align: left;">Por un lado, un usuario que se enfrenta por primera vez a una aplicación iPhone se encuentra con elementos intuitivos y sencillos de utilizar. Por otro lado, cuando este usuario vaya avanzando en su proceso de aprendizaje irá descubriendo que la mayor parte de las aplicaciones disponibles para este terminal comparten esos elementos de la interfaz, y por tanto, utilizar una nueva aplicación no le supondrá tener que aprender a manejarla.</p>
<p style="text-align: left;">Hay unas cuantas aplicaciones disponibles que en su afán por diferenciarse del resto han intentado reinventar la rueda. Con esto solo han conseguido tirar a la basura todo el excelente trabajo hecho por Apple y como resultado han obtenido una aplicación poco intuitiva para el usuario acostumbrado a una serie de elementos comunes en todas las aplicaciones de iPhone.</p>
<p style="text-align: left;">Muchas veces, no es necesario reinventar los elementos existentes para poder hacer algo diferente. Un ejemplo bastante típico es el de <a href="http://postage.roguesheep.com/" target="_blank">Postage</a> de la empresa RogueSheep quienes han sabido hacer una aplicación que parece diferente pero que utiliza los elementos característicos (y alguna innovación como es la selección de tipografía).</p>
<p style="text-align: center;"><a rel="attachment wp-att-133" href="http://www.21projects.com/blog/diseno-de-interfaces-en-iphone/postage1/"><img class="alignnone size-full wp-image-133" style="border: 0pt none;" title="postage1" src="http://www.21projects.com/wp-content/uploads/2009/10/postage1.jpg" alt="postage1 Diseño de interfaces en iPhone" width="250" height="358" /></a> <a rel="attachment wp-att-134" href="http://www.21projects.com/blog/diseno-de-interfaces-en-iphone/postage3/"><img class="alignnone size-full wp-image-134" style="border: 0pt none;" title="postage3" src="http://www.21projects.com/wp-content/uploads/2009/10/postage3.jpg" alt="postage3 Diseño de interfaces en iPhone" width="250" height="358" /></a></p>
<p style="text-align: left;">Fijaros como gracias a un cambio en la tonalidad y la utilización de iconos nuevos han conseguido un diseño diferente pero intuitivo. Al fin y al cabo mantienen la barra de navegación superior y también utilizan &#8220;tabs&#8221; o pestañas en la parte inferior, dos patrones muy típicos en las aplicaciones para iPhone.</p>
<p style="text-align: left;">Las aplicaciones para móviles deben ser sencillas. Hay que pensar que la plantalla es pequeña y por tanto tendremos que tener especial cuidado con el tamaño del texto que no debe ser ni muy grande ni muy pequeño, con la cantidad de elementos que mostramos y con la disposición que hacemos de estos. Ha de haber un balance general. Veamos un ejemplo de lo que no se ha de hacer:</p>
<p style="text-align: center;"><a rel="attachment wp-att-136" href="http://www.21projects.com/blog/diseno-de-interfaces-en-iphone/triplog/"><img class="alignnone size-full wp-image-136" style="border: 0pt none;" title="TripLog" src="http://www.21projects.com/wp-content/uploads/2009/10/TripLog.jpg" alt="TripLog Diseño de interfaces en iPhone" width="250" height="375" /></a> <a rel="attachment wp-att-137" href="http://www.21projects.com/blog/diseno-de-interfaces-en-iphone/triplogmain/"><img class="alignnone size-full wp-image-137" style="border: 0pt none;" title="TripLogMain" src="http://www.21projects.com/wp-content/uploads/2009/10/TripLogMain.jpg" alt="TripLogMain Diseño de interfaces en iPhone" width="250" height="358" /></a></p>
<p style="text-align: left;">A la derecha podemos ver la primera versión de la aplicación TripLog. En este caso se observan varios errores de diseño de los que hemos hablado antes. Por un lado se han utilizado demasiados elementos, por el otro, estos no están alineados dando una sensación de desorden y confundiendo al usuario. A la izquierda, podemos ver la versión actual de la aplicación. En este caso a pesar de que hay demasiados elementos estos están mejor alineados y mejoran un poco la percepción que se tiene.</p>
<p style="text-align: left;">Como ya hemos dicho, siempre tiene que haber un balance. Cuando el contenido de una vista es excesivo y observamos que sobran elementos, tenemos que replantear el flujo de trabajo de la aplicación. La mejor manera de conseguirlo es tener en mente los modelos o patrones por defecto que Apple ofrece. Haciendo un repaso de ellos veremos que el 99% de las aplicaciones existentes se basan en uno de estos patrones o elementos.</p>
<p style="text-align: center;">
<h3 style="text-align: left;">Barra de navegación / Navigation bar</h3>
<p style="text-align: center;">
<p style="text-align: center;">Barra con elementos de control<a rel="attachment wp-att-141" href="http://www.21projects.com/blog/diseno-de-interfaces-en-iphone/ui_navbarnonavigation/"><br />
<img class="size-full wp-image-141 aligncenter" style="border: 0pt none;" title="ui_navbarnonavigation" src="http://www.21projects.com/wp-content/uploads/2009/10/ui_navbarnonavigation.jpg" alt="ui navbarnonavigation Diseño de interfaces en iPhone" width="250" height="34" /></a></p>
<p style="text-align: center;">
<p style="text-align: center;">Barra con elementos de navegación<a rel="attachment wp-att-140" href="http://www.21projects.com/blog/diseno-de-interfaces-en-iphone/ui_navbarnavigationonly/"><br />
<img class="size-full wp-image-140 aligncenter" style="border: 0pt none;" title="ui_navbarnavigationonly" src="http://www.21projects.com/wp-content/uploads/2009/10/ui_navbarnavigationonly.jpg" alt="ui navbarnavigationonly Diseño de interfaces en iPhone" width="250" height="34" /></a></p>
<p style="text-align: center;">
<p style="text-align: center;">Barra multisegmentos<a rel="attachment wp-att-139" href="http://www.21projects.com/blog/diseno-de-interfaces-en-iphone/ui_navbarmultisegment/"><br />
<img class="size-full wp-image-139 aligncenter" style="border: 0pt none;" title="ui_navbarmultisegment" src="http://www.21projects.com/wp-content/uploads/2009/10/ui_navbarmultisegment.jpg" alt="ui navbarmultisegment Diseño de interfaces en iPhone" width="250" height="35" /></a></p>
<p style="text-align: center;">
<p style="text-align: center;">Barra con título sin elemento<a rel="attachment wp-att-138" href="http://www.21projects.com/blog/diseno-de-interfaces-en-iphone/ui_navbartitleonly/"><br />
<img class="size-full wp-image-138 aligncenter" style="border: 0pt none;" title="ui_navbartitleonly" src="http://www.21projects.com/wp-content/uploads/2009/10/ui_navbartitleonly.jpg" alt="ui navbartitleonly Diseño de interfaces en iPhone" width="250" height="34" /></a></p>
<p style="text-align: center;">
<p style="text-align: center;">
<h3 style="text-align: left;">Barra de herramientas / Toolbar</h3>
<p style="text-align: center;">
<p style="text-align: center;">Permite ejecutar acciones sobre la vista actual, normalmente se coloca en la zona inferior<a rel="attachment wp-att-142" href="http://www.21projects.com/blog/diseno-de-interfaces-en-iphone/ui_taskstyletoolbar/"><img class="size-full wp-image-142   aligncenter" style="border: 0pt none;" title="ui_taskstyletoolbar" src="http://www.21projects.com/wp-content/uploads/2009/10/ui_taskstyletoolbar.jpg" alt="ui taskstyletoolbar Diseño de interfaces en iPhone" width="250" height="34" /></a></p>
<p style="text-align: center;">
<p style="text-align: center;">Un ejemplo<a rel="attachment wp-att-143" href="http://www.21projects.com/blog/diseno-de-interfaces-en-iphone/ui_taskstyleexample/"><br />
<img class="size-full wp-image-143 aligncenter" style="border: 0pt none;" title="ui_taskstyleexample" src="http://www.21projects.com/wp-content/uploads/2009/10/ui_taskstyleexample.jpg" alt="ui taskstyleexample Diseño de interfaces en iPhone" width="250" height="373" /></a></p>
<p style="text-align: center;">
<h3 style="text-align: left;">Barra de pestañas / Tab bar</h3>
<p style="text-align: center;">Permite cambiar de vista<a rel="attachment wp-att-144" href="http://www.21projects.com/blog/diseno-de-interfaces-en-iphone/ui_fivetabsintabbar/"><br />
<img class="size-full wp-image-144 aligncenter" style="border: 0pt none;" title="ui_fivetabsintabbar" src="http://www.21projects.com/wp-content/uploads/2009/10/ui_fivetabsintabbar.jpg" alt="ui fivetabsintabbar Diseño de interfaces en iPhone" width="250" height="38" /></a></p>
<p style="text-align: center;">
<p style="text-align: center;">Un ejemplo: En la aplicación Clock de iPhone la barra de navegación permite cambiar entre los diferentes modos</p>
<p style="text-align: center;"><a rel="attachment wp-att-145" href="http://www.21projects.com/blog/diseno-de-interfaces-en-iphone/ui_modesinclock/"><img class="size-full wp-image-145 aligncenter" style="border: 0pt none;" title="ui_modesinclock" src="http://www.21projects.com/wp-content/uploads/2009/10/ui_modesinclock.jpg" alt="ui modesinclock Diseño de interfaces en iPhone" width="510" height="350" /></a></p>
<p style="text-align: left;">
<p style="text-align: left;">Aun quedan muchos otros elementos por mostrar: tablas, botones, alertas, etc. Sin embargo, estos son los principales elementos de control sobre las diferentes vistas y son los que ayudan a definir el flujo de nuestra aplicación. Haced el ejercicio de ver cuántas de las aplicaciones de iPhone que utilizáis se basan en alguno de estos controles y veréis que la gran mayoría los utilizan. Como ya hemos dicho, son la clave para conseguir una experiencia de usuario agradable y un proceso de aprendizaje sencillo e intuitivo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.21projects.com/blog/diseno-de-interfaces-en-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gestión de proyectos software con Trac</title>
		<link>http://www.21projects.com/blog/gestion-de-proyectos-software-con-trac/</link>
		<comments>http://www.21projects.com/blog/gestion-de-proyectos-software-con-trac/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 06:50:26 +0000</pubDate>
		<dc:creator>Ariel Camus</dc:creator>
				<category><![CDATA[Gestión]]></category>
		<category><![CDATA[agil]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[extreme programming]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://www.21projects.com/?p=68</guid>
		<description><![CDATA[Desde hace tiempo y con la aparición de Internet el esquema de desarrollo de software de las empresas ha cambiado. Aunque algunas aún siguen trabajando con los antiguos procesos en cascada en donde se dedica el 70% del tiempo a los procesos burocráticos y de documentación,  la realidad es que hay muchas empresas nuevas que [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Desde hace tiempo y con la aparición de Internet el esquema de desarrollo de software de las empresas ha cambiado. Aunque algunas aún siguen trabajando con los antiguos procesos en cascada en donde se dedica el 70% del tiempo a los procesos burocráticos y de documentación,  la realidad es que hay muchas empresas nuevas que basan el desarrollo en equipos pequeños y ágiles.</p>
<p style="text-align: left;">Así han aparecido multitud de metodologías de desarrollo ágil como pueden ser Extreme Programming o Scrum. Parte de la filosofía de estas metodologías consiste en reducir al mínimo el proceso de documentación y evitar mantener largas reuniones para tomar las decisiones necesarias.</p>
<p style="text-align: left;">Sin embargo, que el desarrollo se haga de manera ágil no significa que se deba obviar el proceso de captura de requisitos, testeo y documentación. Por el contrario, consiste en utilizar otro tipo de técnicas que permita realizar estos procesos de manera sencilla y productiva.</p>
<p><img class="size-full wp-image-69" style="border: 0pt none;float:right;" title="trac_logo" src="http://www.21projects.com/wp-content/uploads/2009/09/trac_logo.png" alt="trac logo Gestión de proyectos software con Trac" width="214" height="61" /></p>
<p style="text-align: left;">En 21projects y en muchas otras empresas de desarrollo se utiliza una herramienta de gran valor y potencial. Se trata de Trac. En <a title="Trac-web" href="http://trac.edgewall.org/" target="_blank">la web</a> de este proyecto open source se define a la herramienta de la siguiente manera:</p>
<blockquote>
<p style="text-align: left;">Trac is an enhanced wiki and issue tracking system for software development projects. Trac uses a minimalistic approach to web-based software project management.</p>
</blockquote>
<p style="text-align: left;">
<p style="text-align: center;">
<p style="text-align: left;">Resumiendo, Trac es una herramienta que permite llevar un control de las funcionalidades y errores del código que se está implementando. Sin embargo, Trac es una herraminta mucho más completa que esto, pues está construido sobre una wiki que permite documentar todo el software sobre una única plataforma, integrando la documentación con el control de funcionalidades y errores a implementar así como también con el propio código a través de un repositorio de Subversion del cual ya se habló en un <a title="Gestión de software con Subversion" href="http://www.21projects.com/blog/gestion-de-software-con-subversion/" target="_blank">post anterior</a>.</p>
<p style="text-align: left;">Conozco mucha gente que después de haber probado Trac en su equipo de desarrolladores han dicho frases como: <em>&#8220;No se como puedo haber vivido hasta ahora sin una herramienta como Trac&#8221;</em>. Y la verdad es que, aunque no se trata de una herramienta imprescindible, sí que resulta extremadamente útil. Además de las opciones básicas de Trac, también es posible instalar nuevos plugins que cubren desde la integración de repositorios Git hasta la gestión de metodologías ágiles como Scrum.</p>
<p style="text-align: left;">¿Pero qué significa todo esto a la hora de la práctica? Lo mejor es verlo con un ejemplo. Veamos como sería el proceso de creación de un nuevo proyecto en el equipo de 21projects (Trac puede utilizarse para cualquier tipo de lenguaje, ya sea una aplicación web, desarrollo para iPhone o Android o bien para gestionar documentación, imágenes o cualquier otro tipo de contenido).</p>
<p style="text-align: left;"><strong>Captura de requisitos:</strong></p>
<p style="text-align: left;">En esta fase, nos reunimos todo el equipo de desarrolladores (y  el cliente, si se trata de un proyecto para terceros) bien en persona o utilizando un documento compartido en GoogleDocs para definir cuáles son los requisitos de la aplicación. Normalmente, primero desarrollamos los casos de uso básicos de la aplicación y a partir de ellos creamos la lista de requisitos, siempre en colaboración directa con el cliente.</p>
<p style="text-align: left;">De esta fase saldrá una lista de requisitos funcionales con una descripción de cada uno, dejando claro qué es lo que se espera y que ha de tener para que se considere que ese requisito está &#8220;hecho&#8221;.</p>
<p style="text-align: left;"><strong>Integración de los requisitos en Trac:</strong></p>
<p style="text-align: left;">A partir de este momento, procederíamos a ingresar en Trac cada uno de los requisitos como un nuevo Ticket. En Trac, cada funcionalidad a implementar o cada bug debe ser introducido como un Ticket, que estará asociado a una persona y a un Milestone del proyecto así como a una serie de propiedades adicionales como pueden ser la versión del desarrollo, el tipo de Ticket, o la severidad de este. Un Milestone es un hito de desarrollo que se propone. Dentro de Trac podemos crear tantos Milestones como queramos y ponerles una fecha límite. Así, se podría decidir crear un nuevo Milestone que representa el lanzamiento de la primera versión del producto y todos los Tickets de esta iteración serán agregados a este Milestone.</p>
<p style="text-align: center;"><strong><span style="color: #ff0000;"><a rel="attachment wp-att-82" href="http://www.21projects.com/blog/gestion-de-proyectos-software-con-trac/trac-new-ticket-interface/"><img class="size-full wp-image-82 aligncenter" style="border: 0pt none;" title="trac-new-ticket-interface" src="http://www.21projects.com/wp-content/uploads/2009/09/trac-new-ticket-interface.JPG" alt=" Gestión de proyectos software con Trac" width="580" height="454" /></a></span></strong></p>
<p style="text-align: center;"><em>Interfaz de creación de Tickets</em></p>
<p style="text-align: center;">
<p style="text-align: left;">Trás haber ingresado todos los Tickets en el sistema, cada desarrollador participante podrá decidir en qué funcionalidad va a trabajar y asignarse ese Ticket, que quedará marcado con su nombre para que los demás sepan que él está trabajando en su implementación.</p>
<p style="text-align: left;">Mientras el desarrollo esté en curso, podremos utilizar la Wiki de Trac para ir documentando todo el proceso. Aunque esta Wiki tiene una sintaxis particular que viene reflejada en <a title="documentación de Trac" href="http://trac.edgewall.org/wiki/TracGuide" target="_blank">la documentación</a> de la aplicación, sus posibilidades son muy amplias e interesantes, ya que por ejemplo, cada vez que pongamos el caracter &#8220;#&#8221; seguido de un número se creará un enlace automáticamente al Ticket que tenga asignado ese número (cada Ticket tiene un identificador numérico único).</p>
<p style="text-align: left;">En nuestro caso, utilizamos la página principal de nuestro Trac (que es una página wiki) para enlazar los diferentes documentos que utilizamos, mantener una lista de enlaces externos de interés y documentar los proyectos propios y de clientes así como las ideas de posibles proyectos futuros.</p>
<p style="text-align: center;">
<p style="text-align: center;"><img class="aligncenter size-full wp-image-121" title="inicio" src="http://www.21projects.com/wp-content/uploads/2009/10/inicio.jpg" alt="inicio Gestión de proyectos software con Trac" width="580" height="370" /></p>
<p style="text-align: center;"><em>Página principal del Trac de 21projects</em></p>
<p style="text-align: center;">
<p style="text-align: left;">
<p style="text-align: left;">De esta manera, es posible ir documentando todo el proceso de desarrollo, incluir imágenes, enlaces y crear una documentación fácil de modificar y sobre todo, muy potente gracias a las funcionalidades de Trac.</p>
<p style="text-align: left;">Cada vez que un desarrollador acabe con la implementación de un Ticket, deberá marcar ese Ticket como resuelto y trás haber subido el código al repositorio Subversion, este cambio se reflejará en Trac a través de la sección que nos permite navegar por nuestro código.</p>
<p style="text-align: left;"><span style="color: #ff0000;"><span style="color: #000000;">Aunque existen muchas otras funcionalidades que vienen con Trac por defecto y muchas más que pueden añadirse a través de nuevos plugins, os dejamos que experimentéis con esta fantástica herramienta que permite mejorar la gestión de un nuevo proyecto software tanto a nivel de código como a nivel de documentación.</span></span> Otra fantástica idea es abrir el Trac para que los usuarios u otras empresas puedan ver lo que hacemos e incluso colaborar añadiendo nuevos Tickets al encontrar un bug en la aplicación.</p>
<p style="text-align: left;">Si tenéis cualquier duda acerca de esta herramienta u os interesa utilizarla en vuestro negocio y no sabéis como empezar contactad con nosotros, estaremos encantados de ayudaros.<strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.21projects.com/blog/gestion-de-proyectos-software-con-trac/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>¿Cómo pensar visualmente?</title>
		<link>http://www.21projects.com/blog/como-pensar-visualmente/</link>
		<comments>http://www.21projects.com/blog/como-pensar-visualmente/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 07:19:20 +0000</pubDate>
		<dc:creator>fesja</dc:creator>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[pensamiento visual osec thinking visually]]></category>

		<guid isPermaLink="false">http://www.21projects.com/?p=114</guid>
		<description><![CDATA[Comunicar una idea o proyecto en una presentación, diseñar el envoltorio de un producto, construir el escaparate de una tienda o realizar una página web o aplicación para el iPhone. Todos tienen algo en común. Queremos comunicar una idea o una sensación a nuestros clientes, y queremos hacerlo de la mejor manera posible. Nosotros cuando [...]]]></description>
			<content:encoded><![CDATA[<p>Comunicar una idea o proyecto en una presentación, diseñar el envoltorio de un producto, construir el escaparate de una tienda o realizar una página web o aplicación para el iPhone. Todos tienen algo en común. Queremos comunicar una idea o una sensación a nuestros clientes, y queremos hacerlo de la mejor manera posible. Nosotros cuando pensamos sobre nuestros proyectos o cuando escuchamos propuestas de clientes, siempre hacemos lo mismo. Entender lo que queremos, analizar todas las opciones, mezclar conceptos de diversos sectores o campos para expandir las posibilidades, dibujar lo que queremos hacer, coger la esencia y simplificar lo más posible para que sea obvio qué es lo que queremos mostrar en la web o qué permite la aplicación móvil. Es un proceso de experiencia, cuantas más veces lo hagas mejor te saldrá; pero también es de intuición, de creatividad.</p>
<p>Descubrí el otro día la <a href="http://www.slideshare.net/darmano/thinking-visually-presentation">presentación Thinking Visually</a> de David Armano, y me produjo una buena sensación asi que busqué el <a href="http://www.veoh.com/browse/videos/category/technology_and_gaming/watch/v17838142erMfBrmH">vídeo de su charla en Chicago</a>. Lo acabo de ver confirmando las buenas vibraciones y recibiendo los buenos consejos que da cuando quieres comunicar algo visualmente. Para empezar una frase que hace pensar:</p>
<blockquote><p>Los ojos no son responsables cuando es la mente la que ve</p></blockquote>
<p>Podéis ver en la presentación los 6 pasos que utiliza él, nosotros variamos y especializamos un poco su uso para nuestros proyectos. Lo voy a denominar la <strong>técnica OSEC</strong>, <strong>cuatro pasos para desarrollar una buena interfaz</strong> o envoltorio:</p>
<ol>
<li><strong>Observa</strong>. Ve el mundo con los ojos de un niño. Tienes que observar todo sobre el proyecto, preguntar todo lo que se te ocurra, ver qué hacen los competidores, qué esperan los clientes o cuáles son las tendencias.</li>
<li><strong>Sintetiza</strong>. Analiza todo y con todo lo que has sacado, pregúntate cuál es la esencia; qué es lo que se quiere transmitir, qué es lo que se quiere hacer. Separa lo esencial de lo que no es necesario.</li>
<li><strong>Esboza</strong>. Coge un papel y dibuja los esquemas, las interfaces de las pantallas principales expresando la esencia; constrúyete los casos de uso dibujándolos y comprueba que es eso lo que se quiere conseguir. Dibuja en papel tanto como quieras. Espera un día, y vuelve a pensar desde cero. Si ves que algo no cuadra, vuelve al punto 2 y pregúntate de nuevo qué es lo importante.</li>
<li><strong>Construye</strong>. Ya sabes lo que quieres conseguir así que es hora de ponerse manos a la obra. Sé fiel a tus dibujos, pero no intentes hacerlo simétrico. A veces cuando dibujamos y pensamos no nos damos cuenta de ciertas dificultades. Rodea esos problemas para que se siga manteniendo esa sencillez.</li>
</ol>
<p>Con estos 4 pasos conseguimos mejorar la idea inicial, potenciando lo diferencial y haciéndolo tremendamente intuitivo. Cada uno tiene su método así que estamos encantados de escuchar el vuestro y saber qué puntos añadiríais.</p>
<p>Como recomendación del autor me estoy leyendo ahora mismo el libro <a href="http://www.amazon.com/Think-Common-Sense-Approach-Usability/dp/0789723107">Don&#8217;t make me think!</a> que es una referencia en el campo de la usabilidad web. No hay más que ver la media que tiene en Amazon (4,5/5 sobre más de 500 críticas). Ya comentaré más adelante sobre las conclusiones que estoy sacando.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.21projects.com/blog/como-pensar-visualmente/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Contraseñas en formularios para móviles: ¿visibles o no?</title>
		<link>http://www.21projects.com/blog/muestra-las-contrasenas-en-los-formularios-para-moviles/</link>
		<comments>http://www.21projects.com/blog/muestra-las-contrasenas-en-los-formularios-para-moviles/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 07:17:48 +0000</pubDate>
		<dc:creator>fesja</dc:creator>
				<category><![CDATA[Usabilidad]]></category>
		<category><![CDATA[contraseña]]></category>
		<category><![CDATA[formulario]]></category>
		<category><![CDATA[móvil]]></category>
		<category><![CDATA[oculta]]></category>
		<category><![CDATA[password]]></category>

		<guid isPermaLink="false">http://www.21projects.com/?p=107</guid>
		<description><![CDATA[Como usuario de Android he tenido que meter contraseñas en el móvil unas cuantas veces, y con el teclado virtual de vez en cuando te equivocas y toca escribirla de nuevo. Por eso creo que para mejorar la usabilidad de las versiones móviles debemos desterrar el ocultar contraseña. Esta idea no es nueva, la propuso [...]]]></description>
			<content:encoded><![CDATA[<p>Como usuario de Android he tenido que meter contraseñas en el móvil unas cuantas veces, y con el teclado virtual de vez en cuando te equivocas y toca escribirla de nuevo. Por eso creo que para mejorar la usabilidad de las versiones móviles debemos desterrar el ocultar contraseña. Esta idea no es nueva, <a href="http://www.useit.com/alertbox/passwords.html">la propuso Jakob Nielsen hace unos cuantos meses</a>. Cuando ocultas una contraseña creas dos problemas:</p>
<ul>
<li>Los usuarios cometen más errores porque no ven lo que escriben y por tanto se sienten menos confiados.</li>
<li>Cuando la gente comete errores suele escoger contraseñas fáciles de escribir o copia y pega de un archivo. Ambas opciones hacen que haya riesgos de seguridad importantes.</li>
</ul>
<p>Asi que el propósito inicial de ocultar la contraseña a ojos ajenos provoca que escojamos contraseñas más fáciles de romper. En el ordenador puede ser más necesario ocultar la contraseña aunque Jakob propone tener un checkbox donde cambiar si la mostramos o la ocultamos (<a href="http://www.prothemer.com/blog/research-and-development/new-jquery-plugin-targeting-usability-for-password-masking-on-forms/">plugin de jquery</a>).</p>
<p>Sin embargo en el móvil no lo veo necesario ya que es un aparato personal con una pantalla que ves tu solo, y por lo tanto no supone tanto riesgo de seguridad. La comodidad que le das al usuario de ver lo que está escribiendo supera con creces los posibles peligros de ojos ajenos. Esta es una opinión personal que intento compartir con nuestros clientes, pero supone un cambio en la mentalidad de seguridad.</p>
<p>Ahora bien, si entramos en el aspecto técnico y el campo de contraseña se convierte en un simple <em>input </em>los navegadores o el sistema operativo en el caso de los móviles puede guardar en caché la contraseña y mostrarla la próxima vez que teclees. Algo totalmente erróneo <a href="http://www.mikeandrews.com/2009/06/25/no-typepassword-fields/">como bien apunta Mike Andrews</a>. La mayoría de los usuarios que comentan en <a href="http://www.schneier.com/blog/archives/2009/06/the_problem_wit_2.html">este artículo</a> no creen que esto deba aplicarse a la Web. Incluso sería vulnerable a los virus que hacen capturas de pantalla de tu ordenador.</p>
<p>Aún así, no soy el primero que lo ve bien para los móviles (especialmente aplicaciones). En el GAP (una especie de guía de desarrollo para webs en versión móviles) tratan este mismo tema y <a href="http://www.passani.it/gap/#INPUT_MASK">recomiendan que se muestre el campo de contraseña</a>.</p>
<blockquote><p><strong>Do not use password masks</strong><br />
Reading what is on the screen of a mobile device is often hard enough for the user of the device. Peeking over the shoulder of the user is less likely to disclose a password than observing the user&#8217;s keypress sequence.<br />
For this reason, hiding user input to users themselves by replacing each character with a &#8216;*&#8217; (star) symbol (or similar) will do very little to protect privacy, while making it generally harder to use the service. For this reason, users should be made enter passwords in clear text.<br />
This practice does not detract from the aforementioned practice to avoid login and find alternative ways to identify users.<br />
<strong>Caveat</strong>: In case of highly sensitive application (such as &#8216;Net Banking&#8217;), security requirements may force you to overlook this practice. For example, some users may perceive the lack of password obfuscation as a sign of slack security practices.</p></blockquote>
<p>Y ya que hablamos de contraseñas varios consejos a la hora de diseñar vuestro servicio web:</p>
<ul>
<li>Las preguntas de seguridad son un arma de doble filo, porque mucha gente escribe respuestas muy fáciles de adivinar; como se ha podido demostrar con Britney Spears, Sarah Palin, etc. Yo no las recomiendo e intento evitarlas.</li>
<li>No se debe enviar la contraseña al email cuando el usuario se registra. La razón es que si entran al email de ese usuario le pueden encontrar las contraseñas y producirse un robo en cadena. Las opciones son, o bien dejar al usuario que escoja su contraseña al registrarse (mi opción preferida) o mandarle una aleatoria al email pero obligarle a cambiarla nada más conectarse a la web (más trabajo para el usuario).</li>
<li>También nos podemos plantear la duda de si obligar al usuario a escribir dos veces su contraseña. <a href="http://www.ixda.org/discuss.php?post=31190">Desde este artículo rechazan esta convención</a>. Argumentan que porque un 1% de los usuarios se equivoque al escribir la contraseña no tenemos que perder tiempo el 99% restante. En ese punto yo prefiero mostrarlo dos veces y compararlo mediante javascript antes de que dé a enviar. Si no lo hacemos así, puede que perdamos a ese 1% que se encuentre desorientado porque no funciona la contraseña que acaba de poner.</li>
<li>Respecto a escribir dos veces el email, ahí si que no. El usuario puede ver lo que escribe, muy poca gente se debería equivocar.</li>
</ul>
<p>Una situación curiosa se produjo en una web cuyo formulario de registro consistía en solo su email como nombre de usuario y la contraseña que querían poner. Notaron que mucha gente no se registraba y haciendo un test de usabilidad descubrieron que la gente creía que les estaban pidiendo la contraseña de su email. Por eso la gente no se fiaba y no se registraba. Algo parecido puede ocurrir ahora con las conexiones a Flickr, Google, Del.icio.us, etc. Si es posible no hay que pedir al usuario la contraseña de estos sitios, si no usar el <a href="http://oauth.net/">protocolo OAuth</a> para conseguir el permiso y dar mayor sensación de control a nuestros usuarios.</p>
<p>¿Qué opináis? ¿Cuáles son vuestras experiencias?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.21projects.com/blog/muestra-las-contrasenas-en-los-formularios-para-moviles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Social Media: 4 maneras de potenciar tu negocio</title>
		<link>http://www.21projects.com/blog/social-media-4-maneras-de-potenciar-tu-negocio/</link>
		<comments>http://www.21projects.com/blog/social-media-4-maneras-de-potenciar-tu-negocio/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 09:11:21 +0000</pubDate>
		<dc:creator>fesja</dc:creator>
				<category><![CDATA[Social Media]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[redes sociales]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.21projects.com/?p=58</guid>
		<description><![CDATA[Acabamos de empezar nuestra empresa o vamos a lanzar nuestro producto al mercado, ¿cómo hacemos para conseguir los primeros fans, los primeros clientes? ¿Cómo hacemos para conseguir el ansiado boca a oreja que empuje el lanzamiento de nuestro servicio? Estas preguntas nos la hacemos todos, sobre todo si no tenemos dinero para hacer una campaña [...]]]></description>
			<content:encoded><![CDATA[<p>Acabamos de empezar nuestra empresa o vamos a lanzar nuestro producto al mercado, ¿cómo hacemos para conseguir los primeros fans, los primeros clientes? ¿Cómo hacemos para conseguir el ansiado boca a oreja que empuje el lanzamiento de nuestro servicio? Estas preguntas nos la hacemos todos, sobre todo si no tenemos dinero para hacer una campaña publicitaria en webs/papel/TV.</p>
<p>Con 21projects estamos todavía en las fases iniciales asi que estamos implementando las sugerencias que voy a proponer a continuación. Sin embargo, dichas sugerencias <a href="http://mashable.com/2009/09/22/social-media-business/">están basadas en artículos</a>, en experiencias de conocidos y de marcas online, y por supuesto, en el sentido común.</p>
<h3>1. No te dediques solo a vender, conoce a la gente</h3>
<p>Cuando tenemos una tienda física, o cuando vamos a eventos; hablamos de todo tipo de asuntos, no sólo de promocionar nuestra empresa o producto. Lo mismo tenemos que hacer en Internet, ya sea en Twitter, redes sociales, foros o webs especializadas. Una mala estrategia es dedicarte solo a vender, tienes que darte a conocer, crear confianza, demostrar que no quieres solo ventas si no fans de tus productos. Aprende a escuchar, y ten conversaciones diversas como tendrías en la vida real.</p>
<p>Otra razón para poner en práctica esta forma de comunicación es la siguiente:  puede que comiences una conversación con alguien que no va a ser cliente tuyo ahora mismo, pero tiene un círculo de amigos y conocidos a los que hablar de tu producto. Si eres muy pesado y sólo te preocupas de vender, no llegarás a ese círculo de gente; si eres transparente, agradable y le cuentas cosas interesantes, entonces estarás haciendo un gran trabajo para promocionarte, tanto a ti como a tu marca.</p>
<div class="blue">Nosotros desde el primer día añadimos personas a Twitter y Facebook con quienes compartimos temas en común, personas que en determinado momento pueden llegar a ser nuestros clientes&#8230; o no. Cuando alguien nos añade, miramos su web/blog etc. y buscamos dónde podemos tener temas en común. Le damos la bienvenida e iniciamos la conversación sobre esos temas. De esta manera, procuramos mantener la conversación y vamos ampliando conocidos. Puede que no sean nuestros clientes, pero son gente o empresas con los que tenemos temas en común, y nosotros podemos aprender de ellos y viceversa.</div>
<h3>2. Presta atención a lo que dicen tus clientes y actúa</h3>
<p>Gracias a Twitter o Google Reader podemos saber lo que dicen nuestros clientes o potenciales clientes prácticamente en tiempo real. No hace falta llegar al extremo de estar pendiente todo el tiempo, pero sí es muy recomendable dedicarle un rato cada día a seguir lo que dicen los blogs sobre tu producto, a seguir los twits y a responder a casi todo, agradeciendo el apoyo si es positivo, pidiendo consejo para mejorar en casi todas las ocasiones, y en analizar qué falla, si el comentario ha sido negativo.</p>
<p>Como bien se dice, es imposible controlar lo que se habla de ti; lo que tienes que hacer es  seguirlo y si es negativo, intentar arreglarlo o saber cómo evitarlo para la próxima vez. Tampoco hay que pensar que todas estas acciones tendrán un beneficio inmediato, todo lleva su tiempo; pero si tu producto es bueno, ayudará a que se conozca cada vez más.</p>
<div class="blue">En nuestra caso estamos atentos a las búsquedas de Twitter y blogs para localizar posibles clientes. Y si alguien tiene dudas, le respondemos. Según pasen las semanas habrá más interacción.</div>
<h3>3. Participa en varias comunidades</h3>
<p>Sabemos que tu tiempo es limitado, pero en cuantas más webs y redes sociales estés activamente, mejor. Por supuesto tendrás que elegir cuál te viene mejor. Yo elegiría Twitter y Facebook seguro. En España puede que Tuenti funcione en un futuro cercano si tu target es un público jóven, pero por ahora no es tan fácil. Luego iría a webs, blogs, foros o redes verticales de tu sector. Es básico que estés donde están los early adopters, aquellas personas que están dispuestas a ser los primeros en probar tu producto y ayudarte a mejorarlo. Tienes que moverte en foros, blogs; ir transmitiendo de forma natural tu opinión a muchos temas, compartiendo tu experiencia. Es importante recordar el punto 1, no hay que estar vendiendo en todos los mensajes. Si dejas un mensaje coherente e inteligente, la gente ya irá a tu web y te conocerá. Ganas más diciendo algo que aporte valor sin mencionar directamente tu producto, que poniéndolo (seguramente te borren el mensaje).</p>
<div class="blue">Estamos en <a href="http://www.twitter.com/21projects">Twitter</a>, en <a href="http://www.facebook.com/pages/Madrid/21projects-Desarrollo-de-aplicaciones-Web-y-Moviles/143585946462">Facebook</a> y en grupos como <a href="http://www.linkedin.com/groups?gid=1777491&amp;trk=hb_side_g">Android en español de Likedln</a>. Tenemos pensado aumentar nuestra presencia online, compartiendo todo lo que podamos; sobre todo en webs o blogs especializados en desarrollo web y móvil.</div>
<h3>4. Comienza un blog de tu empresa</h3>
<p>¿Por qué en vez de ir a Twitter a buscar potenciales clientes, no creamos nuestra plataforma donde comentar las novedades de nuestra empresa? Eso es lo que permite el blog, una herramienta donde comunicar los avances, los desarrollos y las novedades de tu empresa. Pero como ya he dicho antes, no te dediques solo a vender; comenta también acerca de las actividades que hacéis, o comparte vuestra experiencia en la tecnología o manera de enfocar las cosas. También es muy útil preguntar a vuestros lectores sobre cómo mejorarían vuestros productos o qué productos les gustaría tener.</p>
<div class="blue">Desde el primer día teníamos claro que íbamos a tener un blog donde hablar de temas varios, que puedan interesar a un amplio espectro de personas; sean nuestros clientes o no. Lo importante es comunicar, que te conozcan y ese proceso culminará en más clientes y ventas.</div>
<p>Por último os dejo con <a href="http://mashable.com/2008/07/23/corporate-social-media/">35 ejemplos de social media en empresas grandes</a>, y una <a href="http://wiki.beingpeterkim.com/">completa lista</a> de cómo las empresas usan los blogs, crean comunidades o usan Facebook y Twitter para llegar a sus clientes. <a href="http://www.beingpeterkim.com/2008/09/ive-been-thinki.html">Y otro más de regalo</a> con algunos ejemplos repetidos. Cada semana, intentaremos escoger un ejemplo de social media que ha tenido muy buenos resultados para explicar sus claves.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.21projects.com/blog/social-media-4-maneras-de-potenciar-tu-negocio/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Gestión de software con Subversion</title>
		<link>http://www.21projects.com/blog/gestion-de-software-con-subversion/</link>
		<comments>http://www.21projects.com/blog/gestion-de-software-con-subversion/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 19:50:09 +0000</pubDate>
		<dc:creator>Ariel Camus</dc:creator>
				<category><![CDATA[Gestión]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[scm]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://www.21projects.com/?p=38</guid>
		<description><![CDATA[Cuando se desarrolla software, y en especial cuando se hace en equipo, es fundamental contar con un mecanismo que permita gestionar el código que producimos.
La gestión de los cambios que se producen sobre el software se convierte en algo indispensable cuando varios programadores trabajan sobre el mismo código. El utilizar una herramienta de este tipo [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando se desarrolla software, y en especial cuando se hace en equipo, es fundamental contar con un mecanismo que permita gestionar el código que producimos.</p>
<p>La gestión de los cambios que se producen sobre el software se convierte en algo indispensable cuando varios programadores trabajan sobre el mismo código. El utilizar una herramienta de este tipo facilita la labor de integrar el código de los diferentes participantes y sobre todo, permite llevar un control de los cambios que se han realizado sobre cada uno de los componentes software.</p>
<p>Los sistemas de control de versiones y configuraciones no solo se aplican al desarrollo de software, sino también a otros campos, como por ejemplo, documentos, imágenes o páginas web. En 21projects trabajamos con varios lenguajes de programación y todos ellos conviven en nuestro sistema de control de versiones. Incluso cuando desarrollamos para iPhone o Android, donde suele intervenir un único programador, también mantenemos todo el código en nuestro repositorio central, evitando así que pueda perderse el software debido a algún fallo en disco de nuestros PCs o algún otro inconveniente.</p>
<p>En este caso, vamos a hacer una introducción a la herramienta de gestión de versiones que utilizamos en 21projects. <strong>Subversion</strong> es una herramienta open source diseñada exclusivamente para sustituir a su antecesor, <a title="cvs" href="http://es.wikipedia.org/wiki/CVS" target="_blank">CVS</a>, que presentaba algunos inconvenientes muy importantes a la hora de gestionar el software (por ejemplo, no es posible renombrar un fichero o eliminar un directorio que tenga archivos dentro). Subversion ha sido diseñado según una arquitectura cliente-servidor, en donde cada programador edita el código localmente y lo &#8220;sube&#8221; a un repositorio central, el servidor Subversion.</p>
<p style="text-align: center;"><a rel="attachment wp-att-55" href="http://www.21projects.com/blog/gestion-de-software-con-subversion/subversion_logo-384x332/"><img class="size-full wp-image-55 aligncenter" style="border: 0pt none;" title="subversion_logo-384x332" src="http://www.21projects.com/wp-content/uploads/2009/09/subversion_logo-384x332.png" alt="subversion logo 384x332 Gestión de software con Subversion" width="269" height="232" /></a></p>
<p>Para conocer ventajas e inconvenientes adicionales de Subversion os dejo al final los enlaces a la Wikipedia y a su Web oficial. Existen otras alternativas a Subversion, como <a title="git" href="http://git-scm.com/" target="_blank"><strong>Git</strong></a>, de las que hablaremos en otro post. Lo realmente importante que quería transmitir en este artículo era el uso de Subversion (aka SVN) y algunas recomendaciones personales para evitar problemas.</p>
<p>Una de las grandes incógnitas que pueden surgir a la hora de decantarse por Subversion es si instalarlo en nuestros propios servidores o bien subcontratar el servicio a una empresa que se dedique a ello. En el caso de 21projects hemos decidido subcontratarlo y por ello no os vamos a explicar como instalarlo (aunque es muy sencillo). Los motivos para haber tomado esta decisión son los siguientes:</p>
<ul>
<li>Necesidad de centrarnos en nuestro business core y no dedicar tiempo a mantener las herramientas, que como Subversion, deben facilitar nuestra labor y no suponer un problema añadido.</li>
<li>Bajo coste del servicio subcontratado.</li>
<li>Los datos guardados en el repositorio son de gran importancia para nuestro negocio, es por ello que preferimos confiar en una empresa externa que se encargue de mantener backups periódicos de la información y que pueda ofrecernos garantías.</li>
<li>Integración con otras herramientas cuyo mantenimiento e instalación no es trivial. Por ejemplo, <a title="Trac" href="http://trac.edgewall.org/" target="_blank">Trac</a> (hablaremos de esta herramienta en otro post).</li>
</ul>
<p>Es por estos motivos que en 21projects hemos decidido confiar en otra empresa y delegar la responsabilidad de su mantenimiento. En nuestro caso trabajamos con <a title="RepositoyHosting" href="http://repositoryhosting.com/" target="_blank">RepositoyHosting</a>, una empresa que ofrece un plan de precios muy sencillo y económico, con unas características más que de sobra y un plan de administración que aunque sencillo es muy cómodo. Adicionalmente, <a title="RepositoyHosting" href="http://repositoryhosting.com/" target="_blank">RepositoryHosting</a> también ofrece Trac integrado lo cual era una condición indispensable a la hora de elegir la empresa.</p>
<p>Una vez que contratado el servicio, es necesario crear un repositorio para nuestros proyectos. Un repositorio puede comprenderse como un directorio con sus respectivos subdirectorios y ficheros. En dicho repositorio se almacenará el software y podemos elegir tener un único repositorio para todos nuestros proyectos o bien crear uno nuevo por cada proyecto.</p>
<p>Antes de comenzar con el uso de Subversion, quiero comentar que para organizar los proyectos se suele asumir un convenio. Se trata de crear por cada proyecto tres directorios bajo los cuales se guardará nuestro software. La explicación de cada uno de los directorios es la siguiente:</p>
<ul>
<li><strong>Trunk</strong>: Directorio de un repositorio bajo el cual se encuentran los directorios y ficheros de nuestro proyecto.</li>
<li><strong>Tag</strong>: Directorio bajo el cual se almacenan las diferentes versiones o releases de nuestro software.</li>
<li><strong>Branches</strong>: Directorio donde se almacenan ramas de nuestro proyecto. Una rama es una desviación que se toma a partir de una versión del software para desarrollar alguna funcionalidad en paralelo con el desarrollo principal para su posterior integración. Hay empresas que trabajan realizando ramas nuevas por cada funcionalidad que se desea añadir y las hay que procuran no hacer ramas nuevas para evitar los posibles problemas de integración en un futuro. Nosotros preferimos una alternativa intermedia, procurando abrir una nueva rama cuando no es seguro que la funcionalidad a implementar se vaya a integrar con la versión principal (por ejemplo, para pruebas de concepto).</li>
</ul>
<p>Por otro lado, queda comentar los principales comandos para trabajar con Subversion:</p>
<ul>
<li><strong>Import</strong>: Comando utilizado para subir al repositorio la estructura inicial de nuestro proyecto.</li>
<li><strong>Checkout</strong>: Comando para descargar en un PC un proyecto desde un repositorio.</li>
<li><strong>Add</strong>: Comando utilizado para añadir un fichero a nuestro proyecto. No es subido al repositorio hasta que se indique con el comando &#8220;commit&#8221;. El comando add solo deja &#8220;marcado&#8221; ese fichero o directorio como parte del repositorio.</li>
<li><strong>Delete</strong>: Comando que permita marcar un fichero o directorio para ser eliminado del respositorio.</li>
<li><strong>Commit</strong>: Comando que nos permite subir al repositorio todos los cambios hechos sobre un proyecto en local.</li>
<li><strong>Update</strong>: Comando que nos permite actualizar nuestro proyecto en local desde el repositorio central.</li>
</ul>
<p>Aunque existen clientes gráficos para la comunicación con un repositorio Subversion, voy a poner un ejemplo de cómo se interactúa con un servidor Subversion desde consola.</p>
<p>Primero creamos la estructura de directorios de nuestro proyecto en local:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> miProyecto
<span style="color: #7a0874; font-weight: bold;">cd</span> miProyecto
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> trunk branches tags</pre></div></div>

<p>A continuación, subimos la estructura inicial al repositorio en el servidor central:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> import miProyecto http:<span style="color: #000000; font-weight: bold;">//</span>urlDelRepositorio<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Initial import&quot;</span></pre></div></div>

<p>Ahora podemos borrar el directorio que habíamos creado inicialmente en local:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ..
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-r</span> miProyecto<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>Finalmente, obtenemos una copia de trabajo del repositorio central:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> checkout http:<span style="color: #000000; font-weight: bold;">//</span>urlDelRepositorio<span style="color: #000000; font-weight: bold;">/</span>miProyecto<span style="color: #000000; font-weight: bold;">/</span>trunk miProyecto</pre></div></div>

<p>A partir de este momento, comenzaríamos a programar y guardar los ficheros y directorios creados bajo el directorio miProyecto. Cada nuevo fichero o directorio creado deberemos marcarlo como parte del repositorio de la siguiente manera:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> add file_or_dir_name</pre></div></div>

<p>Una vez hemos terminado de hacer cambios, deberemos reflejarlos en el repositorio central en el servidor Subversion:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Guardando los cambios recientes, agregada la funcionalidad X&quot;</span> http:<span style="color: #000000; font-weight: bold;">//</span>urlDelRepositorio<span style="color: #000000; font-weight: bold;">/</span>miProyecto</pre></div></div>

<p>Si otros programadores van a realizar cambios sobre el código, cuando queramos volver a trabajar en el proyecto deberemos obtener todos los cambios realizados sobre este a través del siguiente comando:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">svn</span> update</pre></div></div>

<p>Para finalizar con este artículo, quiero destacar las <strong>dos reglas de oro a seguir para evitar problemas propios y evitárselos a los demás</strong>. Todos deberíamos tener estas reglas impresas en letra grande al lado de nuestra pantalla hasta haberlos interiorizado:</p>
<ul>
<li><strong>Nunca harás un commit de código que no compile o tenga errores</strong>: Si lo haces, cuando otro programador haga un update su código también tendrá esos errores y por tanto no compilará.</li>
<li><strong>Siempre harás un update antes de empezar a trabajar sobre el código</strong>. De esta manera, te aseguras de estar trabajando siempre sobre la última versión del código.</li>
</ul>
<p>Enlaces:<br />
<a title="CVS-Wikipedia" href="http://es.wikipedia.org/wiki/CVS" target="_blank">CVS &#8211; Wikipedia</a><br />
<a title="Subversion-web-oficial" href="http://subversion.tigris.org/" target="_blank">SVN &#8211; Web oficial</a><br />
<a title="Subversion-wikipedia" href="http://es.wikipedia.org/wiki/Subversion" target="_blank">SVN &#8211; Wikipedia</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.21projects.com/blog/gestion-de-software-con-subversion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Diseño de infogramas</title>
		<link>http://www.21projects.com/blog/diseno-de-infogramas/</link>
		<comments>http://www.21projects.com/blog/diseno-de-infogramas/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 07:27:05 +0000</pubDate>
		<dc:creator>fesja</dc:creator>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[infograma]]></category>

		<guid isPermaLink="false">http://www.21projects.com/?p=29</guid>
		<description><![CDATA[El diseño abarca muchos campos, desde la moda hasta las portadas de revistas, pasando por páginas webs o envoltorios de productos. El gran diseñador alemán Dieter Rams dijo que el buen diseño tiene que innovar, tiene que hacer útil al producto, debe ser estético y abarca hasta el último detalle. Uno de sus discípulos no [...]]]></description>
			<content:encoded><![CDATA[<p>El diseño abarca muchos campos, desde la moda hasta las portadas de revistas, pasando por páginas webs o envoltorios de productos. El gran diseñador alemán <a href="http://en.wikipedia.org/wiki/Dieter_Rams">Dieter Rams</a> dijo que el buen diseño tiene que innovar, tiene que hacer útil al producto, debe ser estético y abarca hasta el último detalle. Uno de sus discípulos no oficiales, <a href="http://en.wikipedia.org/wiki/Jonathan_Ive">Jonathan Ive</a>, responsable de diseño de Apple; lo ha asimilado perfectamente y ha creado productos tan bien diseñados como el iMac, el iPod o el iPhone.</p>
<p>Una de las áreas del diseño no tan conocidas son los infogramas, las representaciones de datos e informaciones en gráficas de forma que aporten lo máximo posible manteniendo la sencillez al verlas. Las nubes de etiquetas, los votos de los electores, los mapas de pisos en venta o los mapas de expansión de la gripe A. The New York Times tiene un grupo de diseñadores y programadores trabajando juntos en nuevos infogramas representando la actualidad en mapas y gráficos de forma que aporten mucho más información.</p>
<div id="attachment_30" class="wp-caption aligncenter" style="width: 590px"><a href="http://www.nytimes.com/interactive/2009/04/27/us/20090427-flu-update-graphic.html"><img class="size-full wp-image-30" title="Infograma de la gripe A" src="http://www.21projects.com/wp-content/uploads/2009/09/infograma_gripea.jpg" alt="Infograma de la gripe A por el New York Times" width="580" height="372" /></a><p class="wp-caption-text">Infograma de la gripe A por el New York Times</p></div>
<p>Muchas veces queremos mostrar datos y nos equivocamos al hacer tablas, o intentar explicarlo con palabras. Esto sucede en todo tipo de situaciones, ya sea al escribir una historia, hacer un trabajo para la universidad, preparar la presentación de un nuevo producto o intentar convencer a inversores de que tu servicio va a hacerse con el mercado. Cuando veas que algo no cuadra, párate a pensar en la esencia de lo que quieres transmitir y seguramente consigas hacerlo con la elegancia y buen hacer de estos siguientes infogramas.</p>
<div id="attachment_31" class="wp-caption aligncenter" style="width: 590px"><a href="http://awesome.good.is/transparency/009/trans009ondriving.html"><img class="size-full wp-image-31" title="Infograma de la historia de la automoción" src="http://www.21projects.com/wp-content/uploads/2009/09/infograma_coches.jpg" alt="Infograma de la historia de la automoción" width="580" height="360" /></a><p class="wp-caption-text">Infograma de la historia de la automoción</p></div>
<div id="attachment_32" class="wp-caption aligncenter" style="width: 590px"><a href="http://urbanomnibus.net/site/wp-content/uploads/2009/03/uspop.jpg"><img class="size-full wp-image-32" title="Infograma de la densidad de población en USA" src="http://www.21projects.com/wp-content/uploads/2009/09/infograma_usapop.jpg" alt="Infograma de la densidad de población en USA" width="580" height="268" /></a><p class="wp-caption-text">Infograma de la densidad de población en USA</p></div>
<div id="attachment_33" class="wp-caption aligncenter" style="width: 590px"><a href="http://www.telegeography.com/products/map_traffic/images/traffic_map08_large.jpg"><img class="size-full wp-image-33" title="Infograma del tráfico global de Internet" src="http://www.21projects.com/wp-content/uploads/2009/09/infograma_internet.jpg" alt="Infograma del tráfico global de Internet" width="580" height="455" /></a><p class="wp-caption-text">Infograma del tráfico global de Internet</p></div>
<p>Tienes mucho más ejemplos de infogramas en <a href="http://sixrevisions.com/graphics-design/40-useful-and-creative-infographics/">este artículo de Six Revisions con 40 ejemplos</a> y en un <a href="http://www.fastcompany.com/blog/michael-cannell/cannell/visualization-new-frontier-design">artículo sobre este tema de la revista Fast Company</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.21projects.com/blog/diseno-de-infogramas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lanzamos 21projects</title>
		<link>http://www.21projects.com/blog/lanzamos-21projects/</link>
		<comments>http://www.21projects.com/blog/lanzamos-21projects/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 08:50:27 +0000</pubDate>
		<dc:creator>Ariel Camus</dc:creator>
				<category><![CDATA[Empresa]]></category>

		<guid isPermaLink="false">http://www.21projects.com/?p=25</guid>
		<description><![CDATA[Hoy es un día muy especial. Hace mucho tiempo ya que nos conocimos, descubrimos un rincón en la universidad repleto de gente con intereses fuera de lo normal: imaginar, jugar con tecnología, desarrollar proyectos e innovar día a día. Es allí donde nos conocimos y comenzamos a pensar que ahí debía estar la gente con [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy es un día muy especial. Hace mucho tiempo ya que nos conocimos, descubrimos un rincón en la universidad repleto de gente con intereses fuera de lo normal: imaginar, jugar con tecnología, desarrollar proyectos e innovar día a día. Es allí donde nos conocimos y comenzamos a pensar que ahí debía estar la gente con la que queríamos compartir esta experiencia el día de mañana. La experiencia de montar una empresa.</p>
<p>Y tras mucho tiempo de experimentar a través de diferentes proyectos que hemos desarrollado, decidimos que era el momento de lanzarse a la piscina y comenzar a vivir esta experiencia para la que tanto tiempo nos hemos estado preparando. Aunque aún tenemos muchísimo que aprender, creemos que tenemos lo más importante que hay que tener para poder ofrecer a los demás una propuesta de valor: ilusión, pasión, tenacidad y perseverancia.</p>
<p>Hoy es el día, en que por fin anunciamos nuestra empresa, 21projects, una empresa dedicada a aquello que se nos da bien y conocemos. <strong>21projects ofrece sus servicios de consultoría tecnológica y desarrollo de aplicaciones web y móviles</strong>.</p>
<p>Formamos parte de una nueva generación que ha nacido con la tecnología en sus manos. Y por ello, conocemos la tecnología con la que trabajamos, y sobre todo, disfrutamos al hacerlo. Lo que os ofrecemos es un servicio basado en la comunicación, la sencillez y una orientación clara hacia el usuario.</p>
<p>21projects está aquí para cambiar el mundo, pero queremos hacerlo paso a paso. El primero paso es convencerte del valor de lo que hacemos, para que el día de mañana se recuerde que cuidamos a nuestros clientes desde nuestro primer segundo de vida.</p>
<p><strong>One, two, three&#8230; ¡lanzamos 21projects!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.21projects.com/blog/lanzamos-21projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
