<?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>El CoDiGo K &#187; Herramientas</title>
	<atom:link href="http://www.elcodigok.com.ar/category/herramientas/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.elcodigok.com.ar</link>
	<description>Un blog de Ayuda a Programadores</description>
	<lastBuildDate>Wed, 01 Feb 2012 14:09:34 +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>Snippets para Vim con snipMate</title>
		<link>http://www.elcodigok.com.ar/2012/02/snippets-para-vim-con-snipmate/</link>
		<comments>http://www.elcodigok.com.ar/2012/02/snippets-para-vim-con-snipmate/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 14:09:34 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Administrador de Sistemas]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[Destacado]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2665</guid>
		<description><![CDATA[El día de hoy les quería recomendar un plugin para el editor Vim que está modificando mi productividad a la hora de codear un poco en cada proyecto, ideal para programadores y administradores de sistemas que hacen de Vim su editor favorito. El plugin para Vim se llama snipMate y lo que intenta es imitar algunas características del editor TextMate ...]]></description>
			<content:encoded><![CDATA[<p>El día de hoy les quería recomendar un plugin para el editor <strong>Vim</strong> que está modificando mi productividad a la hora de codear un poco en cada proyecto, ideal para programadores y administradores de sistemas que hacen de Vim su editor favorito.</p>
<p>El plugin para Vim se llama <strong><a href="https://github.com/msanders/snipmate.vim" target="_blank">snipMate</a></strong> y lo que intenta es imitar algunas características del editor TextMate de Mac, y para ello implementa snippet o fragmento conocido de los lenguajes de programación más populares y simplemente reconociendo la extensión de nuestro archivo y utilizando la tecla de tabulación, ahora lo vamos a ver más de cerca.</p>
<p>Veamos como podemos conseguir su código e incorporarlo en nuestro editor.</p>
<p>Podemos utilizar el repositorio en <strong>GitHub</strong> de snipmate.vim y clonarlo a nuestra máquina local de la siguiente manera</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">git clone</span> https:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>msanders<span style="color: #000000; font-weight: bold;">/</span>snipmate.vim.git</div></td></tr></tbody></table></div>
<p>Lo que nos queda por hacer es ingresar al directorio creado y copiar todos los archivos y directorios a nuestro directorio oculto de configuraciones de vim alojado en nuestro directorio personal /home</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #7a0874; font-weight: bold;">cd</span> snipmate.vim<br />
$ <span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #660033;">-R</span> <span style="color: #000000; font-weight: bold;">*</span> ~<span style="color: #000000; font-weight: bold;">/</span>.vim</div></td></tr></tbody></table></div>
<p>Una vez completada la instalación, ahora se encuentra disponible los snippet para comenzar a probar y para ello vamos con un ejemplo muy simple con algún archivo HTML</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">vim</span> prueba.html</div></td></tr></tbody></table></div>
<p>dentro del editor escribimos la palabra html y seguidamente pulsamos la tecla <Tab> y automáticamente vamos a ver como se autocompleta las etiquetas de la siguiente manera</p>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/html.html"><span style="color: #000000; font-weight: bold;">html</span></a>&gt;</span><br />
<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/html.html"><span style="color: #000000; font-weight: bold;">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>Debo reconocer una gran debilidad de este plugin, y es que ya se encuentra un poco desatendido, ya que los últimos commit se encuentran ejecutados por Abril del 2010 y seguramente hay muchas cosas por completar, como es el caso particular de las etiquetas semánticas de HTML5 que hasta ahora no reconoce.</p>
<p>De todas maneras podemos utilizar snipMate para los diferentes lenguajes de programación tales como C++, C, Erlang, HTML, Java, JavaScript, Python, Perl, Ruby, sh, zsh, entre los más conocidos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2012/02/snippets-para-vim-con-snipmate/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>3 clientes de FTP que no pueden faltar</title>
		<link>http://www.elcodigok.com.ar/2012/01/3-clientes-de-ftp-que-no-pueden-faltar/</link>
		<comments>http://www.elcodigok.com.ar/2012/01/3-clientes-de-ftp-que-no-pueden-faltar/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 13:02:38 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Administrador de Sistemas]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[Destacado]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2650</guid>
		<description><![CDATA[Por estos días me encontré actualizando mis sistemas, reinstalando de forma más prolija mi distribución GNU y junto a él comencé a buscar las herramientas que utilizo a diario y que son casi indispensables para mi trabajo como SysAdmin y como programador. Los accesos al servicio de FTP muchas veces son indispensable para algunos servicios y nos dan la facilidad ...]]></description>
			<content:encoded><![CDATA[<p>Por estos días me encontré actualizando mis sistemas, reinstalando de forma más prolija mi distribución <strong>GNU</strong> y junto a él comencé a buscar las herramientas que utilizo a diario y que son casi indispensables para mi trabajo como SysAdmin y como programador.</p>
<p>Los accesos al servicio de <strong>FTP</strong> muchas veces son indispensable para algunos servicios y nos dan la facilidad de conectarnos a directorios remotos para subir y descargar archivos, actualizar web, etc.</p>
<p>Es por eso que le dejo mis <strong>3 clientes de FTP preferidos</strong>:</p>
<h2><span>1</span> FileZilla</h2>
<p>FileZilla es un cliente FTP multiplataforma de código abierto y software libre, licenciado bajo la Licencia Pública General de GNU. Soporta los protocolos FTP, SFTP y FTP sobre SSL/TLS (FTPS).</p>
<p>Este es al que yo llamo una herramienta a todo terreno, independientemente de donde estemos, o sistema que usemos, voy a poder utilizar FileZilla siempre, además el poder intuitivo de su ventana y conexiones es asombroso para personas que recién se inician como para los más experimentados.</p>
<h2><span>2</span> Midnight Commander</h2>
<p>Midnight Commander o más conocido como mc en la consola de linux, es un programa que sirve para todo, tanto como para administrar archivos y directorios, editarlos y entre otras cosas más conectarnos a un servidor FTP.</p>
<p>La interfaz en modo texto que proporciona mc es realmente simple y rápida, realmente si están acostumbrado a utilizar la consola de comando o sencillamente no cuentan con un entorno gráfico de escritorio como KDE o Gnome, entonces utilicen mc, vean su documentación o mejor les dejo un enlace que escribí hace tiempo de <a href="http://www.elcodigok.com.ar/2009/10/conexion-ftp-desde-midnight-commander/" target="_blank">como conectarse con mc y una cuenta de FTP</a>.</p>
<h2><span>3</span> ftp&gt;</h2>
<p>Esta es la forma más primitiva de conexión con un servidor FTP y es utilizando el cliente que tenemos por defecto en GNU/Linux, a pesar que con el tiempo fue perdiendo popularidad entre sus usuarios, utilizarlo requiere de muchos conocimientos internos y entender las conexiones, sus comandos, modos, etc.</p>
<p>Seguramente hay mucho más clientes de FTP, recuerdo que en algún momento probé algunos más que varían muy poco en relación a los presentados. Desde ya los invito a compartir sus clientes de FTP preferidos para recomendarnos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2012/01/3-clientes-de-ftp-que-no-pueden-faltar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Disponible NetBeans 7.1</title>
		<link>http://www.elcodigok.com.ar/2012/01/disponible-netbeans-7-1/</link>
		<comments>http://www.elcodigok.com.ar/2012/01/disponible-netbeans-7-1/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 22:24:18 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[actualización]]></category>
		<category><![CDATA[Destacado]]></category>
		<category><![CDATA[NetBeans]]></category>
		<category><![CDATA[Programadores]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2642</guid>
		<description><![CDATA[Nos encontramos viviendo la primera semana del 2012 y comenzaron las actualizaciones de muchas de las herramientas que nosotros como programadores utilizamos a diario, Oracle se adelantó a todos los lanzamientos y liberó esta nueva versión de NetBeans 7.1, Como era de suponer esta nueva versión de NetBeans se encuentra disponible para las plataformas Windows, GNU/Linux, Mac y Solaris. Esta ...]]></description>
			<content:encoded><![CDATA[<p>Nos encontramos viviendo la primera semana del 2012 y comenzaron las actualizaciones de muchas de las herramientas que nosotros como programadores utilizamos a diario, <strong>Oracle</strong> se adelantó a todos los lanzamientos y liberó esta nueva versión de <strong>NetBeans 7.1</strong>,</p>
<p>Como era de suponer esta nueva versión de NetBeans se encuentra disponible para las plataformas Windows, GNU/Linux, Mac y Solaris.</p>
<p>Esta nueva versión introduce soporte para <strong>JavaFX 2.0</strong>, permitiendo el ciclo de desarrollo de aplicaciones completo (compilación/depuración/perfil). El lanzamiento también proporciona importantes mejoras en Swing GUI Builder, soporte CSS3, y herramientas para la depuración visual de interfaces de usuario Swing y JavaFX. Otros puntos destacados incluyen el <strong>soporte de Git integrado</strong> en el IDE, nuevas características de depuración de PHP, varias mejoras en JavaEE y Maven, y mucho más.</p>
<p>Les soy sinceros, hace ya un tiempo dejé de lado NetBeans, pero al parecer esta nueva versión, esta nueva evolución promete bastante, así que lo primero que voy a hacer es descargarlo desde aquí <a href="http://netbeans.org/downloads/" target="_blank">http://netbeans.org/downloads/</a> y luego lo voy a instalar <a href="http://netbeans.org/community/releases/71/install.html" target="_blank">http://netbeans.org/community/releases/71/install.html</a></p>
<p>Enlace | <a href="http://netbeans.org/community/releases/71/" target="_blank">NetBeans 7.1</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2012/01/disponible-netbeans-7-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>El editor Sublime Text 2</title>
		<link>http://www.elcodigok.com.ar/2011/12/el-editor-sublime-text-2/</link>
		<comments>http://www.elcodigok.com.ar/2011/12/el-editor-sublime-text-2/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 11:40:21 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2610</guid>
		<description><![CDATA[Comencé a probarlo hace aproximadamente una semana por una recomendación de un amigo y la verdad es que me gustó bastante, no solo por la interface minimalista del editor sino por lo liviano que resulta editar varios archivos en simultáneo, realmente muy práctico y útil. Los invito a repasar algunos aspectos técnicos presentes en Sublime Text 2 Sublime Text 2 ...]]></description>
			<content:encoded><![CDATA[<p>Comencé a probarlo hace aproximadamente una semana por una recomendación de un amigo y la verdad es que me gustó bastante, no solo por la interface minimalista del editor sino por lo liviano que resulta editar varios archivos en simultáneo, realmente muy práctico y útil.</p>
<p><img class="aligncenter" title="Subline Text 2" src="http://farm8.staticflickr.com/7155/6580874687_07c138c20f.jpg" alt="" width="500" height="300" /></p>
<p>Los invito a repasar algunos aspectos técnicos presentes en <strong>Sublime Text 2</strong></p>
<p>Sublime Text 2 se encuentra desarrollada en el lenguaje de programación <strong>Python</strong>, por lo cuál se aseguraron la portabilidad del editor en los sistemas operativos, de hecho es posible ejecutarlo en Windows, Max OSX y GNU/Linux.</p>
<p>Es posible seleccionar múltiples esquemas de colores para el editor, algunos ya se encuentran cargados y otros podemos descargarlo desde la web.</p>
<p>Por otro lado resalta y reconoce las sintaxis de varios lenguajes de programación como C, C++, C#, CSS, D, Erlang, HTML, Groovy, Haskell, HTML, Java, JavaScript, LaTeX, Lisp, Lua, Markdown, Matlab, OCaml, Perl, PHP, Python, R, Ruby, SQL, TCL, Textile y XML.</p>
<p>Al buen estilo <strong>Vim</strong>, pero gráfico, Sublime Text 2 está basado en los atajos del teclado totalmente personalizados, que nos va a ayudar a ser un poco más productivos frente al editor, además es posible ampliar las funcionalidades gracias a la integración y construcción de plugins.</p>
<p>Por último en el área de automatización, es posible construir macros, fragmentos, configurar auto completado, repetir la última acción ejecutada y conexión con WinSCP para la edición de archivos remotos.</p>
<p>Sublime Text 2 puede ser descargado en forma gratuita, sin embargo podemos obtener su licencia para usos múltiples a USD $59, hasta lo que estaba probando su descarga gratuíta realmente es muy funcional, ligera y fácil de usar.</p>
<p>Enlace | <a href="http://www.sublimetext.com/">Sublime Text 2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2011/12/el-editor-sublime-text-2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Mi primer repositorio en GitHub</title>
		<link>http://www.elcodigok.com.ar/2011/11/mi-primer-repositorio-en-github/</link>
		<comments>http://www.elcodigok.com.ar/2011/11/mi-primer-repositorio-en-github/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 14:46:08 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[ejemplos]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[principiante]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[trabajo]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2567</guid>
		<description><![CDATA[Comencé a desarrollar un nuevo proyecto que necesito para mi trabajo y quiero aprovecharlo para dejarlo al servicio de toda la comunidad, hace ya un tiempo que utilizo Git como mi sistema de control de versiones por lo menos en forma local y decidí crear un repositorio en GitHub para este proyecto. La idea de hoy es justamente aprender como ...]]></description>
			<content:encoded><![CDATA[<p>Comencé a desarrollar un nuevo proyecto que necesito para mi trabajo y quiero aprovecharlo para dejarlo al servicio de toda la comunidad, hace ya un tiempo que utilizo <strong>Git</strong> como mi sistema de control de versiones por lo menos en forma local y decidí crear un repositorio en <a href="http://github.com"><strong>GitHub</strong></a> para este proyecto.</p>
<p>La idea de hoy es justamente aprender como crear este repositorio y sincronizarlo con lo que vallamos desarrollando en forma local, así que lo que vamos a necesitar es que tengas una cuenta en GitHub o que te puedas autenticar con un usuario y una contraseña.</p>
<p>Una vez en nuestro perfil vamos a encontrar provablemente unos enlaces grandes como esta imágen de abajo para comenzar con nuestro repositorio, de no encontrarla buscar el link cuya leyenda dice “<em><strong>Create a Repository</strong></em>”</p>
<p><img class="alignnone" title="GitHub Nuevo repositorio" src="https://lh5.googleusercontent.com/-BTwn11J0pTw/Tr0vWEZrjyI/AAAAAAAAAq8/-mhMXjclK4U/s640/github1.png" alt="" width="640" height="205" /></p>
<p>Ahora nos encontramos en un formulario para completar la información propia de nuestro proyecto o nuestro nuevo repositorio de código.</p>
<p><img class="alignnone" title="GitHub - Formulario del proyecto" src="https://lh3.googleusercontent.com/-kv6ZS22_Dtg/Tr0ve62mBBI/AAAAAAAAAq8/wcIs8f8RWPE/s598/github2.png" alt="" width="598" height="428" /></p>
<p>Como estoy utilizando una cuenta gratuita dentro de GitHub tiene algunas restricciones como la cantidad de repositorios que puedo crear entre otras cosas, de todas manera nos da la posibilidad de actualizar y pagar un plus por más servicios, pero eso es tarea de un próximo artículo, por ahora mantengamos nuestra cuenta gratuita y terminemos de crear nuestro repositorio de código.</p>
<p>Ya tenemos repositorio, en mi cuenta de elcodigok dentro de GitHub acabo de crear uno nuevo con el nombre de <strong>QQi</strong> y que ahora me da una serie de instrucciones para completar la configuración inicial y seguir.</p>
<p>Es importante que ahora vallamos a nuestra máquina local que tenga instalado Git como control de versiones, de no tenerlo simplemente bastará con un toque mágico para instalarlo como por ejemplo:</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">apt-get install</span> <span style="color: #c20cb9; font-weight: bold;">git</span></div></td></tr></tbody></table></div>
<p>Con Git en nuestra estación de trabajo nos recomienda setear algunas variables de entorno del repositorio, entramos a una consola de comandos de GNU/Linux y escribimos</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">git config</span> <span style="color: #660033;">--global</span> user.name <span style="color: #ff0000;">&quot;Daniel M. Maldonado&quot;</span><br />
$ <span style="color: #c20cb9; font-weight: bold;">git config</span> <span style="color: #660033;">--global</span> user.email danyx<span style="color: #000000; font-weight: bold;">@</span>elcodigok.com.ar</div></td></tr></tbody></table></div>
<p>Ustedes obviamente lo completarán con sus datos personales, por que utiliza estos valores de entorno para adicionar a los archivos del repositorio el nombre del autor y su correo electrónico.</p>
<p>Paso siguiente es crear un directorio local, que coincida con el nombre del repositorio creado anteriormente en GitHub en mi caso:</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">mkdir</span> QQi<br />
$ <span style="color: #7a0874; font-weight: bold;">cd</span> QQi</div></td></tr></tbody></table></div>
<p>Una vez dentro de este directorio iniciamos un proyecto con Git de la siguiente forma:</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">git init</span></div></td></tr></tbody></table></div>
<p>A simple vista se puede observar que este directorio no tiene ningún archivo, pero en realidad tiene un directorio oculto llamado .git con información propia que maneja Git y donde almacena toda la información a medida que avanzamos en nuestro proyecto.</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">tree</span> .git<span style="color: #000000; font-weight: bold;">/</span><br />
.git<span style="color: #000000; font-weight: bold;">/</span><br />
├── branches<br />
├── config<br />
├── description<br />
├── HEAD<br />
├── hooks<br />
│   ├── applypatch-msg.sample<br />
│   ├── commit-msg.sample<br />
│   ├── post-commit.sample<br />
│   ├── post-receive.sample<br />
│   ├── post-update.sample<br />
│   ├── pre-applypatch.sample<br />
│   ├── pre-commit.sample<br />
│   ├── prepare-commit-msg.sample<br />
│   ├── pre-rebase.sample<br />
│   └── update.sample<br />
├── info<br />
│   └── exclude<br />
├── objects<br />
│   ├── info<br />
│   └── pack<br />
└── refs<br />
├── heads<br />
└── tags</div></td></tr></tbody></table></div>
<p>Les propongo entonces crear un archivo por ejemplo el clásico <strong>README</strong> que todo proyecto debería incorporar</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">touch</span> README</div></td></tr></tbody></table></div>
<p>siguiente paso es agregarlo al sistema de versiones con:</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">git add</span> README</div></td></tr></tbody></table></div>
<p>Lo que nos queda hacer ahora antes de sincronizar nuestra información con la cuenta de GitHub es realizar un commit de todos los cambios que realizamos, para este ejemplo solamente fue agregar un archivo.</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">git commit</span> <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Descripcion del primer commit para el repositorio&quot;</span><br />
<span style="color: #7a0874; font-weight: bold;">&#91;</span>master <span style="color: #7a0874; font-weight: bold;">&#40;</span>root-commit<span style="color: #7a0874; font-weight: bold;">&#41;</span> 45fb9c3<span style="color: #7a0874; font-weight: bold;">&#93;</span> Descripcion del primer commit para el repositorio<br />
<span style="color: #000000;">0</span> files changed, <span style="color: #000000;">0</span> insertions<span style="color: #7a0874; font-weight: bold;">&#40;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span>, <span style="color: #000000;">0</span> deletions<span style="color: #7a0874; font-weight: bold;">&#40;</span>-<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
create mode <span style="color: #000000;">100644</span> README</div></td></tr></tbody></table></div>
<p>Por último subimos todos los cambios al repositorio local de la siguiente forma.</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">git remote</span> add origin <span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:elcodigok<span style="color: #000000; font-weight: bold;">/</span>QQi.git<br />
$ <span style="color: #c20cb9; font-weight: bold;">git push</span> <span style="color: #660033;">-u</span> origin master<br />
Permission denied <span style="color: #7a0874; font-weight: bold;">&#40;</span>publickey<span style="color: #7a0874; font-weight: bold;">&#41;</span>.<br />
fatal: The remote end hung up unexpectedly</div></td></tr></tbody></table></div>
<p>Primer error con el que nos encontramos, permiso denegado para realizar una actualización del código fuente en el repositorio, a pesar de ser un repositorio público, github nos obliga a declara los colaboradores del repositorio y que los mismos se autentiquen con claves públicas SSH.</p>
<p>Lo que nos queda por hacer es ir hasta la configuración de nuestro perfil en GitHub, entrar a la opción de SSH Public Keys</p>
<p><img class="alignnone" title="GitHub - Usuario para el repositorio" src="https://lh3.googleusercontent.com/-3TSwtv-2ggg/Tr0vkAqldSI/AAAAAAAAAq8/3UjvX3bn2uc/s640/github4.png" alt="" width="640" height="323" /></p>
<p>Luego click en la opción “Add another public key” donde vamos a agregar una etiqueta y nombre y por otro lado un campo que dice Key con la clave pública para sincronizar, antes de completar cualquier dato, vamos nuevamente a la consola de nuestra estación de trabajo a generar una clave con ssh.</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">ssh-keygen</span> <span style="color: #660033;">-t</span> dsa</div></td></tr></tbody></table></div>
<p>a esto le debemos adicionar una clave que va a ser nuestra clave privada, y repetirla, con lo cual nos crea dos archivos dentro de nuestro directorio /home/usuario/.ssh/ una llamado id_dsa y otro id_dsa.pub.</p>
<p>Copiamos todo el contenido de la clave publica id_dsa.pub en el campo key del formulario que vimos anteriormente y guardamos esa información.</p>
<p>Ahora solo nos queda establecer la conexión con los servidores de GitHub de la siguiente manera</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-vT</span> <span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com</div></td></tr></tbody></table></div>
<p>donde nos van a solicitar que escribamos nuestra clave privada para terminar la autenticación y autorización para modificar el repositorio creado.</p>
<p>Ahora si vamos a sincronizar o subir los cambios a nuestro repositorio público nuevamente de la siguiente forma:</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">git push</span> <span style="color: #660033;">-u</span> origin master</div></td></tr></tbody></table></div>
<p>nos va a solicitar nuestra clave privada para la autenticación y finalmente</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Counting objects: <span style="color: #000000;">3</span>, done.<br />
Writing objects: <span style="color: #000000;">100</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">3</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>, <span style="color: #000000;">241</span> bytes, done.<br />
Total <span style="color: #000000;">3</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>delta <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>, reused <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>delta <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
To <span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:elcodigok<span style="color: #000000; font-weight: bold;">/</span>QQi.git<br />
<span style="color: #000000; font-weight: bold;">*</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>new branch<span style="color: #7a0874; font-weight: bold;">&#93;</span> master -<span style="color: #000000; font-weight: bold;">&amp;</span>gt; master<br />
Branch master <span style="color: #000000; font-weight: bold;">set</span> up to track remote branch master from origin.</div></td></tr></tbody></table></div>
<p>Para ver que todo salió bien podemos ver en nuestro repositorio público que efectivamente se encuentra el archivo que acabamos de subir.</p>
<p><img class="alignnone" title="GitHub - Repositorio Actualizado" src="https://lh4.googleusercontent.com/-Y54ZBJfBCW8/Tr0vtCQKBBI/AAAAAAAAAq8/mKp6EEzTw4Q/s640/github5.png" alt="" width="640" height="313" /></p>
<h3>Algunas consideraciones finales para tener en cuenta</h3>
<p>Esta configuración fue solo inicial, donde creamos un repositorio y un usuario válido autenticado por claves asimétricas con permisos para realizar cambios en el repositorio.</p>
<p>Una vez que se realizó esta autenticación los procedimientos son muchos más simples para actualizar, como modificar el código, realizar un commit y enviarlo con un push.</p>
<p>Cualquier comentario, dudas o problemas que tengan sería interesante que lo dejen en los comentarios de abajo, me gustaría saber si pudieron realizarlo, si tuvieron errores o si lograron crear un repositorio con éxito para su próximo proyecto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2011/11/mi-primer-repositorio-en-github/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Como trabajar con múltiples ventanas en Vim</title>
		<link>http://www.elcodigok.com.ar/2011/10/como-trabajar-con-multiples-ventanas-en-vim/</link>
		<comments>http://www.elcodigok.com.ar/2011/10/como-trabajar-con-multiples-ventanas-en-vim/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 12:05:37 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Administrador de Sistemas]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[ejemplos]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2560</guid>
		<description><![CDATA[Estoy de acuerdo cuando dicen al principio que el editor Vim es complicado, tiene muchos atajos y su curva de aprendizaje va de 0 a 1000, pero sin duda Vim tiene la capacidad de ser tan flexible para y adecuarse a los usuarios de manera sorprendente. La idea de hoy es trabajar con múltiples ventana con nuestro editor, si queremos ...]]></description>
			<content:encoded><![CDATA[<p>Estoy de acuerdo cuando dicen al principio que el editor Vim es complicado, tiene muchos atajos y su curva de aprendizaje va de 0 a 1000, pero sin duda <strong>Vim</strong> tiene la capacidad de ser tan flexible para y adecuarse a los usuarios de manera sorprendente.</p>
<p>La idea de hoy es trabajar con múltiples ventana con nuestro editor, si queremos hacer un acercamiento o ver como trabaja podemos ejecutar el comando <strong>vimdiff</strong> y pasarle como argumento dos archivos.</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span>vimdiff archivo1 archivo2</div></td></tr></tbody></table></div>
<p>vemos que nuestro editor se encuentra dividido en dos mitades simétricas listas para trabajar, bueno así es como traba Vim en múltiples ventanas, en este caso 2.</p>
<p>Dejamos de lado este ejemplo y les propongo aprender como podemos trabajar con algunos comandos realmente simples pero efectivos y por sobre todas las cosas productivos.</p>
<p>Vamos a suponer que editamos un archivo que puede ser de configuración o algún script y le demos un nombre &#8220;<strong>programa.sh</strong>&#8221;</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">vim</span> programa.sh</div></td></tr></tbody></table></div>
<p>Obviamente en esta situación vemos la pantalla completa de Vim editando el archivo como normalmente estamos acostumbrado a verlo, sin embargo necesitamos abrir un nuevo archivo llamado &#8220;<strong>sistema.py</strong>&#8221; sin la necesidad de cerrar “programas.sh” así que podemos ejecutar el comando de Vim</p>
<div class="codecolorer-container vim mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="vim codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000;">:</span><span style="color: #25BB4D;">split</span> sistema<span style="color: #000000;">.</span>py</div></td></tr></tbody></table></div>
<p>Observen a continuación como se dividió el editor Vim por una línea horizontal donde encontramos los dos archivos en modo de edición. Observen como :split requiere del nombre de un archivo para poder abrirlo en otra ventana.</p>
<p>Para moverse entre las ventanas para este ejemplo sería en la superior o la inferior <strong>Ctrl+w+Flechas de direccionamiento</strong>, si me encuentro editando un archivo en la ventana superior y quiero mover el cursor hacia la siguiente ventana tendría que presionar <strong>Ctrl+w+Flecha Abajo</strong>.</p>
<p>Ahora les propongo cerrar toda ventana y volver a nuestro estado inicial del ejemplo, vamos nuevamente a editar un archivo como normalmente lo hacemos:</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">vim</span> programa.sh</div></td></tr></tbody></table></div>
<p>y ahora ejecutemos el siguiente comando dentro de Vim</p>
<div class="codecolorer-container vim mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="vim codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000;">:</span>vsplit sistema<span style="color: #000000;">.</span>py</div></td></tr></tbody></table></div>
<p>Ahora vamos a poder apreciar una división vertical en la ventana de Vim con la posibilidad de operar en ambos lados, podemos movernos de derecha a izquierda y navegar en las ventanas con <strong>Ctrl+w+Flecha Derecha</strong> o <strong>Ctrl+w+Flecha Izquierda</strong>.</p>
<p>Ahora que ya sabemos como dividir nuestro editor y tener la posibilidad de operar sobre varios archivos al mismo tiempo sin la necesidad de cerrar alguno, podemos llegar al punto de abrir tantas ventanas y combinaciones de ventanas como se nos ocurra, por eso encontré algunos comandos para Vim que probablemente les puede llegar a ser muy útil.</p>
<p>:hide: Cierra la ventana actual (sólo funciona cuando tenemos varias ventanas en pantalla).<br />
 <img src='http://www.elcodigok.com.ar/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> nly: Cierra todas las ventanas excepto la actual.<br />
:sview nombrearchivo: Igual que :split, pero muestra el archivo en modo de sólo lectura.</p>
<p>Por último, tenemos la posibilidad de iniciar Vim editando varios archivos de la siguiente forma</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">vim</span> <span style="color: #660033;">-o</span> programa.sh sistema.py<br />
$ <span style="color: #c20cb9; font-weight: bold;">vim</span> <span style="color: #660033;">-O</span> programa.sh sistema.py</div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2011/10/como-trabajar-con-multiples-ventanas-en-vim/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Buscar y Reemplazar palabras en Vim</title>
		<link>http://www.elcodigok.com.ar/2011/09/buscar-y-reemplazar-palabras-en-vim/</link>
		<comments>http://www.elcodigok.com.ar/2011/09/buscar-y-reemplazar-palabras-en-vim/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 16:56:58 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Administrador de Sistemas]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2549</guid>
		<description><![CDATA[Nunca me voy a cansar de decir que Vim es un magnífico editor de texto disponible para todos los usuarios y programadores, sobre todo para los que estamos acostumbrados a utilizar como “entorno gráfico” la consola de comandos todo el tiempo. Es muy probable que haya cosas que otras herramientas también las tengan pero la particularidad de Vim es su ...]]></description>
			<content:encoded><![CDATA[<p>Nunca me voy a cansar de decir que <strong>Vim</strong> es un magnífico editor de texto disponible para todos los usuarios y programadores, sobre todo para los que estamos acostumbrados a utilizar como “entorno gráfico” la consola de comandos todo el tiempo.</p>
<p>Es muy probable que haya cosas que otras herramientas también las tengan pero la particularidad de Vim es su precisión, velocidad y flexibilidad para hacer estas tareas como puede llegar a ser la de buscar y reemplazar palabras con muy pequeñas órdenes.</p>
<p>Vamos a proponer un escenario de trabajo, necesitamos editar un archivo de texto plano de los que probablemente siempre editamos, o algún archivo de configuración de un servicio, etc. La idea es ver que con una orden realmente simple tenemos la posibilidad no solo de buscar sus coincidencias sino también reemplazarlo por otra cadena, al buen estilo de sed pero con Vim</p>
<p>Si estamos dentro de Vim en modo edición, presionamos <strong>ESC</strong> y la siguiente referencia</p>
<div class="codecolorer-container vim mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="vim codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000;">:</span><span style="color: #000000; font-weight:bold;">1</span>,<span style="color: #000000;">$</span> s<span style="color: #000000;">/</span>cadena a buscar<span style="color: #000000;">/</span>cadena a reemplazar<span style="color: #000000;">/</span>g</div></td></tr></tbody></table></div>
<p>la siguiente orden la podemos desmenuzar diciendo que desde la línea 1 hasta el final del archivo ($) busque una cadena y la reemplace (g) por otra cadena.</p>
<p>Una vez ejecutado este comando modifica todas y cada una de las coincidencias. Una variante interesante es decirle a Vim que antes de realizar un cambio que me pregunte si realmente quiero reemplazarlo, eso se hace de la siguiente manera</p>
<div class="codecolorer-container vim mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="vim codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000;">:</span><span style="color: #000000; font-weight:bold;">1</span>,<span style="color: #000000;">$</span> s<span style="color: #000000;">/</span>cadena a buscar<span style="color: #000000;">/</span>cadena a reemplazar<span style="color: #000000;">/</span>gc</div></td></tr></tbody></table></div>
<p>Realmente ahora pueden ver lo fácil que puede ser ejecutar una tarea para buscar y reemplazar textos desde nuestro editor Vim.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2011/09/buscar-y-reemplazar-palabras-en-vim/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como editar tu Curriculum Vitae en LaTeX</title>
		<link>http://www.elcodigok.com.ar/2011/07/como-editar-tu-curriculum-vitae-en-latex/</link>
		<comments>http://www.elcodigok.com.ar/2011/07/como-editar-tu-curriculum-vitae-en-latex/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 13:17:25 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2522</guid>
		<description><![CDATA[Tengo un amigo @lwayar que es fanático de LaTeX, siempre lo utiliza en todas las presentaciones y documentaciones que presenta y constantemente me habla de las bondades a la hora de utilizar LaTeX. Por esas cosas de la vida encontré una Template para editar un C.V. en LaTeX y bueno me gustaría compartirla con todos ustedes. Lo mejor siempre es ...]]></description>
			<content:encoded><![CDATA[<p>Tengo un amigo <a href="http://twitter.com/lwayar">@lwayar</a> que es fanático de <a href="http://www.latex-project.org/"><strong>LaTeX</strong></a>, siempre lo utiliza en todas las presentaciones y documentaciones que presenta y constantemente me habla de las bondades a la hora de utilizar LaTeX. Por esas cosas de la vida encontré una Template para editar un C.V. en LaTeX y bueno me gustaría compartirla con todos ustedes.</p>
<p>Lo mejor siempre es ir por el principio, la Wikipedia nos dice que LaTeX es un sistema de composición de textos, orientado especialmente a la creación de libros, documentos científicos y técnicos que contengan fórmulas matemáticas.</p>
<p>LaTeX está formado por un gran conjunto de macros de TeX, escrito por Leslie Lamport en 1984, con la intención de facilitar el uso del lenguaje de composición tipográfica, creado por Donald Knuth. Es muy utilizado para la composición de artículos académicos, tesis y libros técnicos, dado que la calidad tipográfica de los documentos realizados con LaTeX es comparable a la de una editorial científica de primera línea.</p>
<p>LaTeX es software libre bajo licencia <strong>LPPL</strong>.<br />
Sin duda LaTeX parece ser algo bastante interesante, buscando entre los buenos editores, encontré uno que realmente esta bastante desarrollado llamado <a href="http://www.elcodigok.com.ar/2009/10/kile-editor-latex-para-kde/"><strong>Kile para KDE 4</strong></a> yo en lo personal como estoy comenzando a probarlo voy a utilizar el editor Vim, que a su vez posee varios complementos para agilizar la escritura en LaTeX, uno de ellos es vim-latexsuite.</p>
<p>Antes de comenzar, sería interesante que descarguemos alguna plantilla para editar algunos datos, antes de comenzar a realizar las nuestras, creo que es una interesante forma de aprender un lenguaje de marcado en donde solo nos provee campos para modificar, yo encontré del sitio <a href="http://jblevins.org">jblevins.org</a> una plantilla de CV con un estilo que me gustó.</p>
<p>Les propongo crear un directorio de trabajo llamado CV y descargar la plantilla cuya extensión de archivos es .tex</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> CV<br />
<span style="color: #7a0874; font-weight: bold;">cd</span> CV<br />
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>jblevins.org<span style="color: #000000; font-weight: bold;">/</span>projects<span style="color: #000000; font-weight: bold;">/</span>cv-template<span style="color: #000000; font-weight: bold;">/</span>cv-us.tex</div></td></tr></tbody></table></div>
<p>y ahora podemos comenzar a editarlo</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">vim</span> cv-us.tex</div></td></tr></tbody></table></div>
<p>De primera impresión les aseguro que es bastante abrumador ver tantos corchetes, \, %, # pero si tenemos un poco de experiencias con archivos XML o YAML nos vamos a acostumbrar muy rápido a todo esto.</p>
<p>Una de las cosas muy buena es que cada línea y cada campo a modificar se encuentra documentada para este ejemplo de CV está en inglés pero seguro que van a encontrar en diferentes idiomas y formatos.</p>
<p>Para mi caso particular les muestro las cosas que estaba modificando</p>
<div class="codecolorer-container vim mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="vim codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000;">%</span> Set your name here<br />
\<span style="color: #668080;">def</span>\name<span style="color: #000000;">&#123;</span>Daniel Martín Maldonado<span style="color: #000000;">&#125;</span><br />
<br />
<span style="color: #000000;">%</span> Replace this with a link <span style="color: #668080;">to</span> your CV <span style="color: #804040;">if</span> you like, or <span style="color: #804040;">set</span> it <span style="color: #25BB4D;">empty</span><br />
<span style="color: #000000;">%</span> <span style="color: #000000;">&#40;</span>as <span style="color: #804040;">in</span> \<span style="color: #668080;">def</span>\footerlink<span style="color: #000000;">&#123;</span><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span> <span style="color: #668080;">to</span> <span style="color: #25BB4D;">remove</span> the link <span style="color: #804040;">in</span> the footer<span style="color: #000000;">:</span><br />
\<span style="color: #668080;">def</span>\footerlink<span style="color: #000000;">&#123;</span>http<span style="color: #000000;">://</span>www<span style="color: #000000;">.</span>elcodigok<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">.</span><span style="color: #668080;">ar</span><span style="color: #000000;">/</span><span style="color: #000000;">&#125;</span></div></td></tr></tbody></table></div>
<p>Luego de completar y agregar más información a esta plantilla de CV ya estamos listo para importarla a un formato como por ejemplo PDF, pues si llegamos a presentar este tipo de archivo es muy probable que muy poco gente puede entenderlo, así que sería interesante hacer esa transformación.</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">pdflatex cv-us.tex</div></td></tr></tbody></table></div>
<p>Con esto transformamos un archivos de LaTeX a formato PDF mucho más presentable, listo para imprimirlo o enviarlo por mail.</p>
<p>Si encuentra alguna plantilla interesante dejanos tu comentarios con el enlace para compartirlo con todos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2011/07/como-editar-tu-curriculum-vitae-en-latex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Choqok es mi cliente de Twitter para KDE</title>
		<link>http://www.elcodigok.com.ar/2011/07/choqok-es-mi-cliente-de-twitter-para-kde/</link>
		<comments>http://www.elcodigok.com.ar/2011/07/choqok-es-mi-cliente-de-twitter-para-kde/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 11:36:03 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2518</guid>
		<description><![CDATA[Creo que hasta este punto muchos conocerán mi fanatismo desmedido por KDE potenciado en cada versión a partir de la 4.x, por ese motivo siempre estoy en la búsqueda de aplicaciones compatibles y funcionales, en este caso la necesidad puntal era actualizar por medio de un cliente de Twitter este micro-blogging, que para aquellos que no sabían volví a utilizar ...]]></description>
			<content:encoded><![CDATA[<p>Creo que hasta este punto muchos conocerán mi fanatismo desmedido por KDE potenciado en cada versión a partir de la 4.x, por ese motivo siempre estoy en la búsqueda de aplicaciones compatibles y funcionales, en este caso la necesidad puntal era actualizar por medio de un cliente de Twitter este micro-blogging, que para aquellos que no sabían volví a utilizar la cuenta que es <a href="http://twitter.com/elcodigok">@elcodigok</a></p>
<p>Les tengo que ser realmente sincero, y es que no tuve la posibilidad de probar muchos clientes, si no es que actualizo del mismo sitio, pero en mi workstation donde me paso horas trabajando me encuentro utilizando <a href="http://choqok.gnufolks.org/"><strong>Choqok</strong></a> como cliente de Twitter y realmente estoy muy cómodo con él.</p>
<p>Me gustaría dejarles un par de datos para que tengan una referencia acerca de los Choqok nos puede brindar:</p>
<ul>
<li>Soporte para el servicio de micro-blogging Twitter.com e Identi.ca</li>
<li>Soporte para gestión de Seguidores, @respuestas, favoritos y publicaciones en tiempo real</li>
<li>Contiene las funciones de Responder/ReTweet</li>
<li>Soporte para varias cuentas simultáneas</li>
<li>Soporte para las listas de Twitter.com</li>
<li>Integración con el gestor de contraseñas Kwallet</li>
<li>Capacidad para escribir un Tweet rápido con el atajo Ctrl + meta + T</li>
<li>Soporte para acortar las URL, integrado con más de 10 servicios.</li>
<li>Previsualización de imágenes de Twitpic, Yfrog, img.ly y otros más</li>
<li>Previsualización de videos alojados en YouTube y Vimeo</li>
<li>Soporte para conexión por Proxy</li>
<li>y sobre todo bajo licencia GNU/GPL</li>
</ul>
<p>Estas y un par de características más hacen a Choqok mi cliente de Twitter favorito y de uso indispensable, y ustedes <strong>¿Qué cliente de Twitter están usando?</strong></p>
<p>Enlace | <a href="http://choqok.gnufolks.org/">Choqok</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2011/07/choqok-es-mi-cliente-de-twitter-para-kde/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Progreso vs Perfección</title>
		<link>http://www.elcodigok.com.ar/2011/07/progreso-vs-perfeccion/</link>
		<comments>http://www.elcodigok.com.ar/2011/07/progreso-vs-perfeccion/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 23:05:09 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[Herramientas]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2504</guid>
		<description><![CDATA[Hoy nuevamente me encontré con un video de Daniel Marcos, una de las personas que realmente conocen y sabe sobre temas de liderazgo, emprendimiento y realmente es un gusto tener este tipo de video que a uno lo hace analizar todo aquello que aprende. Los dejo con Daniel que nos va a explicar de forma simple dos conceptos fuertes como ...]]></description>
			<content:encoded><![CDATA[<p>Hoy nuevamente me encontré con un video de <a href="http://www.capitalemprendedor.com"><strong>Daniel Marcos</strong></a>, una de las personas que realmente conocen y sabe sobre temas de liderazgo, emprendimiento y realmente es un gusto tener este tipo de video que a uno lo hace analizar todo aquello que aprende.</p>
<p>Los dejo con Daniel que nos va a explicar de forma simple dos conceptos fuertes como es el Progreso y la Perfección y lo importante que es la velocidad de implementación.<span id="more-2504"></span></p>
<p><iframe width="640" height="390" src="http://www.youtube.com/embed/AQlqrIZQTL0" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2011/07/progreso-vs-perfeccion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

