<?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>IPCorp Blog &#187; Open Source</title>
	<atom:link href="http://www.ipcorp.com.ar/blog/category/temas/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ipcorp.com.ar/blog</link>
	<description>#pg_dump ideas &#62; blog.log</description>
	<lastBuildDate>Fri, 11 Nov 2011 20:18:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mi pequeño paso por python: RSS, HTML, Jquery</title>
		<link>http://www.ipcorp.com.ar/blog/2011/11/11/mi-pequeno-paso-por-python-rss-html-jquery/</link>
		<comments>http://www.ipcorp.com.ar/blog/2011/11/11/mi-pequeno-paso-por-python-rss-html-jquery/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 20:18:24 +0000</pubDate>
		<dc:creator>Carlos Mathiasen</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Lenguajes de Programación]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ipcorp.com.ar/blog/?p=1129</guid>
		<description><![CDATA[Hace no menos de un mes termin&#233; un proyecto que consist&#237;a en mostrar noticias de diarios argentinos de manera offline. Para ser implementado en muy poco espacio de disco, por lo que utilizar algun framework ser&#237;a un poco pesado.
El sistema ya se encontraba implementado con mod-python, la idea era seguir trabajando con eso y crear [...]]]></description>
			<content:encoded><![CDATA[<p>Hace no menos de un mes termin&eacute; un proyecto que consist&iacute;a en mostrar noticias de diarios argentinos de manera offline. Para ser implementado en muy poco espacio de disco, por lo que utilizar algun framework ser&iacute;a un poco pesado.<br />
El sistema ya se encontraba implementado con mod-python, la idea era seguir trabajando con eso y crear los scripts correspondientes en python.<br />
Desde un principio la idea era que un script traiga los feeds de noticias cada cierto tiempo (utilizando tareas cron) y generar un html el cual se pod&iacute;a ver de forma offline.<br />
Para ello en python existe una librer&iacute;a llamada feedparser, que nos trae en forma de diccionario todo lo que el servicio nos da.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> feedparser
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">urllib2</span> <span style="color: #808080; font-style: italic;">#lo utilizamos mas adelante</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">re</span> <span style="color: #808080; font-style: italic;">#lo utilizamos mas adelante</span>
parse = feedparser.<span style="color: black;">parse</span><span style="color: black;">&#40;</span>url_de_rss<span style="color: black;">&#41;</span></pre></div></div>

<p>Si tenemos conexi&oacute;n a internet, esas l&iacute;neas nos deber&iacute;an bajar el feed completo que nos ofrece la p&aacute;gina con la que queremos trabajar. Solo queda sacar lo que nos importa, en este caso el t&iacute;tulo, la noticia y las fotos si las hubiera. Como trabajamos offline no tendr&iacute;n que haber links de ningun tipo</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">noticias = <span style="color: #483d8b;">'&lt;ol&gt;<span style="color: #000099; font-weight: bold;">\n</span>'</span>
<span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>,<span style="color: #ff4500;">10</span><span style="color: black;">&#41;</span>:
    titulo = parse.<span style="color: black;">entries</span><span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span>.<span style="color: black;">title</span>
    resumen =  <span style="color: #dc143c;">re</span>.<span style="color: black;">sub</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'((&lt;a){1}(.)+(&lt;/a&gt;)?)|((&lt;img){1}(.)+(/img&gt;)?)|((&lt;table){1}(.)+(&lt;/table&gt;)?)'</span>, <span style="color: #483d8b;">''</span>,parse.<span style="color: black;">entries</span><span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span>.<span style="color: black;">summary_detail</span>.<span style="color: black;">value</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">try</span>:
        img_url = <span style="color: #dc143c;">urllib2</span>.<span style="color: black;">urlopen</span><span style="color: black;">&#40;</span>parse.<span style="color: black;">entries</span><span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span>.<span style="color: black;">enclosures</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>.<span style="color: black;">href</span><span style="color: black;">&#41;</span>.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        f = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;images/imagen_%s.jpg&quot;</span><span style="color: #66cc66;">%</span>i,<span style="color: #483d8b;">&quot;w&quot;</span><span style="color: black;">&#41;</span>
        f.<span style="color: black;">write</span><span style="color: black;">&#40;</span>img_url<span style="color: black;">&#41;</span>
        imagen = <span style="color: #483d8b;">'&lt;img src=&quot;images/imagen_%s.jpg&quot; alt=&quot;&quot;/&gt;'</span><span style="color: #66cc66;">%</span>i
    <span style="color: #ff7700;font-weight:bold;">except</span>:
        imagen = <span style="color: #483d8b;">''</span>
    noticias += <span style="color: #483d8b;">'&lt;li&gt;%s&lt;br/&gt;%s&lt;br/&gt;%s&lt;/li&gt;<span style="color: #000099; font-weight: bold;">\n</span>'</span><span style="color: #66cc66;">%</span><span style="color: black;">&#40;</span>titulo,resumen,imagen<span style="color: black;">&#41;</span>
&nbsp;
noticias += <span style="color: #483d8b;">'&lt;/ol&gt;'</span>
archivo_noticias = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;templates/_noticias.html&quot;</span>,<span style="color: #483d8b;">&quot;w&quot;</span><span style="color: black;">&#41;</span>
archivo_noticias.<span style="color: black;">write</span><span style="color: black;">&#40;</span>noticias<span style="color: black;">&#41;</span></pre></div></div>

<p>En la l&iacute;nea 1 simplemente inicializamos la variable que luego pondremos en el html correspondiente, vamos a utilizar una lista ordenada.<br />
En la l&iacute;nea 2 empezamos nuestro bucle diciendo que s&oacute;lo vamos a querer 10 noticias. Con un simple for podemos hacerlo, debido a que vamos a trabajar con la clave entries del diccionario, esta clave contiene un array, donde cada elemento es otro diccionario con sus propias claves. Las que vamos a utilizar en esta ocasi&oacute;n son:<br />
<b>title:</b> Trae el t&iacute;tulo de la noticia.<br />
<b>summary_detail:</b> Es donde est&aacute; el res&uacute;men de la noticia, este tiene como valor otro diccionario, de donde utilizaremos la clave value, donde est&aacute; el res&uacute;men propiamente dicho.<br />
<b>enclosures:</b> es donde se guardan los adjuntos de la noticia, en este caso nos interesan las im&aacute;genes, pero como trabajamos offlines tenemos que descargarlas para ello utilizamos urllib2 asi la guardamos en nuestro sistema de archivos. A modo de ejemplo puse que la imagen tenga como nombre el indice de la noticia. Si s&oacute;lo trabajamos con un diario no ser&iacute;a inconveniente, para m&aacute;s de un diario puede haber problemas porque los archivos se sobreescribir&iacute;an y no se mostrariacutean las correctas. Esta parte pongo dentro de un try, porque no siempre traen im&aacute;genes y el parse nos tira una excepci&oacute;n, en caso de que pase cargamos la variable con nada, sino creamos el tag html de imágenes.<br />
En la l&iacute;nea 3 creamos una variable donde se guarda el t&iacute;tulo de nuestra noticia<br />
En la l&iacute;nea 4  guardamos el res&uacute;men en una variable, puede parecer un poco complejo el c&oacute;digo, pero es bastante f&aacute;cil. Utilizamos la librer&iacute;a re para poder trabajar con expreciones regulares y con el m&eacute;todo sub eliminamos del string las cosas que no queremos. A mi no me interesaba ning&uacute;n<br />
link:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;"> ((&lt;a){1}(.)+(&lt;/a&gt;)?)</pre></div></div>

<p>im&aacute;gen:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">((&lt;img){1}(.)+(/img&gt;)?)</pre></div></div>

<p>tabla:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">((&lt;table){1}(.)+(&lt;/table&gt;)?</pre></div></div>

<p>que haya en el res&uacute;men, entonces cuando encuentre algo de eso que simplemente lo reemplace por nada.<br />
Finalmente cerramos nuestra lista fuera del for y tendr&iacute;amos un resultado parecido a este:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>ol<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>Titulo1<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;</span>Resumen1<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;&lt;</span>img src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;images/imagen_1.jpg&quot;</span> alt<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">/&gt;&lt;/</span>li<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>Titulo2<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;</span>Resumen2<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;&lt;</span>img src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;images/imagen_2.jpg&quot;</span> alt<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">/&gt;&lt;/</span>li<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>Titulo3<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;</span>Resumen3<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;&lt;</span>img src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;images/imagen_3.jpg&quot;</span> alt<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">/&gt;&lt;/</span>li<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>Titulo4<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;</span>Resumen4<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;&lt;</span>img src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;images/imagen_4.jpg&quot;</span> alt<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">/&gt;&lt;/</span>li<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>Titulo5<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;</span>Resumen5<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;&lt;</span>img src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;images/imagen_5.jpg&quot;</span> alt<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">/&gt;&lt;/</span>li<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>Titulo6<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;</span>Resumen6<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;&lt;</span>img src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;images/imagen_6.jpg&quot;</span> alt<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">/&gt;&lt;/</span>li<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>Titulo7<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;</span>Resumen7<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;&lt;/</span>li<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>Titulo8<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;</span>Resumen8<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;&lt;</span>img src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;images/imagen_8.jpg&quot;</span> alt<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">/&gt;&lt;/</span>li<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>Titulo9<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;</span>Resumen9<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;&lt;/</span>li<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>li<span style="color: #339933;">&gt;</span>Titulo10<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;</span>Resumen10<span style="color: #339933;">&lt;</span>br<span style="color: #339933;">/&gt;&lt;/</span>li<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>ol<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Para poder guardarlo en el archivo _noticias.html<br />
Ya tenemos toda una lista de noticias lista para ser le&iacute;da offline, s&oacute;lo queda cargarlo en nuestro index y problema resulto, para eso podemos hacer uso de jquery (se puede hacer directamente con javascript, pero una p&aacute;gina web tiene bastante c&oacute;digo javascript hoy en d&iacute;a y jquery es un framework muy copadito<br />
para escribir poco <img src='http://www.ipcorp.com.ar/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</p>
<p>En el index.html tendr&iacute;amos:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">&lt;div id=&quot;#noticias&quot;&gt;&lt;/div&gt;
&nbsp;
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#noticias&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">load</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'_noticias.html'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Este fue mi pequeño paso por python, la verdad una experiencia muy linda, es un muy buen lenguaje. En realidad si  quer&eacute;s hacer un script de manera muy r&aacute;pida es una buena opci&oacute;n.<br />
Les dejo los links de feedparser y mod-python<br />
 <b>Feedparser: </b><a href="http://code.google.com/p/feedparser/">http://code.google.com/p/feedparser/</a><br />
 <b>Mod-Python: </b> <a href="http://www.modpython.org/">http://www.modpython.org/</a><br />
Bueno espero que les haya gustado y hasta la pr&oacute;xima <img src='http://www.ipcorp.com.ar/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ipcorp.com.ar/blog/2011/11/11/mi-pequeno-paso-por-python-rss-html-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cocinando la Receta RGM (Ruby-GTK-MongDB) en FACENA</title>
		<link>http://www.ipcorp.com.ar/blog/2011/09/20/cocinando-la-receta-rgm-ruby-gtk-mongdb-en-facena/</link>
		<comments>http://www.ipcorp.com.ar/blog/2011/09/20/cocinando-la-receta-rgm-ruby-gtk-mongdb-en-facena/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 23:21:02 +0000</pubDate>
		<dc:creator>Roxana Pintos</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Lenguajes de Programación]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.ipcorp.com.ar/blog/?p=1102</guid>
		<description><![CDATA[En el marco de las Jornadas de Presentación de Trabajos de Investigación y Desarrollo de Alumnos y Graduados L.S.I de FACENA, el día 24 de septiembre a las 11hs, Leandro Rodriguez y Carlos Mathiasen presentarán Cocinando la Receta RGM (Ruby-GTK-MongDB).
El objetivo de la charla es compartir la experiencia de utilizar la tecnología de:

Ruby: lenguaje de [...]]]></description>
			<content:encoded><![CDATA[<p>En el marco de las <em>Jornadas de Presentación de Trabajos de Investigación y Desarrollo de Alumnos y Graduados L.S.I de FACENA,</em> el día 24 de septiembre a las 11hs, Leandro Rodriguez y Carlos Mathiasen presentarán <em><strong>Cocinando la Receta RGM (Ruby-GTK-MongDB)</strong></em>.</p>
<p>El objetivo de la charla es compartir la experiencia de utilizar la tecnología de:</p>
<ul>
<li>Ruby: lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el japonés Yukihiro &#8220;Matz&#8221; Matsumoto. Combina una sintaxis inspirada en Python y Perl con características de programación orientada a objetos similares a Smalltalk.</li>
<li>GTK+ o The GIMP Toolkit: conjunto de bibliotecas multiplataforma para desarrollar interfaces gráficas de usuario (GUI). GTK+ se diseñó para permitir programar con lenguajes como C, C++, C#, Java, Ruby, Perl, PHP o Python.</li>
<li>MongoDB: sistema de base de datos multiplataforma orientado a documentos, de esquema libre. Se destaca su velocidad y su rico pero sencillo sistema de consulta de los contenidos de la base de datos.</li>
</ul>
<p>Los esperamos en el edificio de la FACENA ubicado por calle 9 de Julio.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ipcorp.com.ar/blog/2011/09/20/cocinando-la-receta-rgm-ruby-gtk-mongdb-en-facena/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aplicaciones de Escritorio: Ruby y Gtk+</title>
		<link>http://www.ipcorp.com.ar/blog/2011/08/30/alicaciones-de-escritorio-ruby-y-gtk/</link>
		<comments>http://www.ipcorp.com.ar/blog/2011/08/30/alicaciones-de-escritorio-ruby-y-gtk/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 19:56:17 +0000</pubDate>
		<dc:creator>Carlos Mathiasen</dc:creator>
				<category><![CDATA[Lenguajes de Programación]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.ipcorp.com.ar/blog/?p=1088</guid>
		<description><![CDATA[Hola a todos. Debido a que dentro de un par de días doy una charla sobre el tema: JORNADA DE INTEGRACIÓN, EXTENSIÓN Y ACTUALIZACIÓN DE ESTUDIANTES DE INFORMÁTICA (JOINEA), me gustó la idea de compartir con ustedes una pequeña aplicación que muestra un poco el manejo de widgets gtk2, espero les guste.
Primero,
¿Qué es GTK?
GTK+ o [...]]]></description>
			<content:encoded><![CDATA[<p>Hola a todos. Debido a que dentro de un par de días doy una charla sobre el tema: <a href="http://www.ipcorp.com.ar/blog/2011/08/23/jornada-de-integracion-extension-y-actualizacion-de-estudiantes-de-informatica-joinea/">JORNADA DE INTEGRACIÓN, EXTENSIÓN Y ACTUALIZACIÓN DE ESTUDIANTES DE INFORMÁTICA (JOINEA)</a>, me gustó la idea de compartir con ustedes una pequeña aplicación que muestra un poco el manejo de widgets gtk2, espero les guste.<br />
Primero,<br />
<strong>¿Qué es GTK?</strong><br />
GTK+ o The GIMP Toolkit es un conjunto de bibliotecas multiplataforma para desarrollar interfaces gráficas de usuario (GUI), desarrollada en C y utilizando en paradigma orientado a objetos.</p>
<p><strong>¿Qué es Ruby-Gnome2?</strong><br />
Ruby-GNOME2 es un conjunto de librerías Ruby para el entorno de desarrollo Gnome2. Ésta es la siguiente generación del proyecto Ruby-GNOME.</p>
<p>Sabiendo esto podemos empezar a hacer nuestro programa de ejemplo.<br />
El programa es muy sencillo, tiene un menú con dos opciones: Archivo y Editar y en cada opción se despliega un menú. Después tenemos un combo con nombres de &#8220;Artistas&#8221; del software libre <img src='http://www.ipcorp.com.ar/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  y un botón. Cuando damos click al botón se abre un diálogo diciendo qué hizo ese artista.<br />
Manos a la obra.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">&nbsp;
<span style="color:#008000; font-style:italic;">#!/usr/bin/ruby</span>
<span style="color:#008000; font-style:italic;">#requerimos la librería gtk2</span>
<span style="color:#008000; font-style:italic;">#depende de ruby1.8+ - ruby-gnome2 - ruby-gnome-dev</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'gtk2'</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#tiene que heredar de Gtk::Window</span>
<span style="color:#9966CC; font-weight:bold;">class</span> RubyApp <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#6666ff; font-weight:bold;">Gtk::Window</span>
&nbsp;
   <span style="color:#008000; font-style:italic;">#constructor de la clase</span>
   <span style="color:#9966CC; font-weight:bold;">def</span> initialize
        <span style="color:#9966CC; font-weight:bold;">super</span>
	<span style="color:#008000; font-style:italic;">#atributos de clase</span>
	<span style="color:#0066ff; font-weight:bold;">@fixed</span>= <span style="color:#6666ff; font-weight:bold;">Gtk::Fixed</span>.<span style="color:#9900CC;">new</span> <span style="color:#008000; font-style:italic;">#crea un contenedor de tipo fixed vacío</span>
	<span style="color:#0066ff; font-weight:bold;">@combo</span>= <span style="color:#6666ff; font-weight:bold;">Gtk::ComboBox</span>.<span style="color:#9900CC;">new</span> <span style="color:#008000; font-style:italic;">#crea un combobox vacío</span>
	<span style="color:#0066ff; font-weight:bold;">@menu</span>= <span style="color:#6666ff; font-weight:bold;">Gtk::MenuBar</span>.<span style="color:#9900CC;">new</span> <span style="color:#008000; font-style:italic;">#crea una barra de menu vacía</span>
	<span style="color:#0066ff; font-weight:bold;">@boton</span>= <span style="color:#6666ff; font-weight:bold;">Gtk::Button</span>.<span style="color:#9900CC;">new</span> <span style="color:#996600;">&quot;¿Qué hizo?&quot;</span> <span style="color:#008000; font-style:italic;">#crea un botón y le da valor al label</span>
        set_windows
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#008000; font-style:italic;">#setea los valores de la ventana</span>
   <span style="color:#9966CC; font-weight:bold;">def</span> set_windows
	set_title  <span style="color:#996600;">&quot;Ipcorp Ruby y GTK+&quot;</span> <span style="color:#008000; font-style:italic;">#nombre de la ventana</span>
	set_default_size <span style="color:#006666;">250</span>, <span style="color:#006666;">200</span> <span style="color:#008000; font-style:italic;">#tamaño de la ventana</span>
	set_window_position <span style="color:#6666ff; font-weight:bold;">Gtk::Window::POS_CENTER</span> <span style="color:#008000; font-style:italic;">#posicion de la ventana</span>
	add fixed_main<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#91;</span>combo_box, menu_bar, boton<span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#008000; font-style:italic;">#llama a fixed_main para crear un contenedor</span>
	show_all <span style="color:#008000; font-style:italic;">#muestra todo</span>
	signal_connect <span style="color:#996600;">&quot;destroy&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span> 
	    Gtk.<span style="color:#9900CC;">main_quit</span> <span style="color:#008000; font-style:italic;">#cuando se le da click al boton cerrar se cierra el programa</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
   <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#008000; font-style:italic;">#agrega widgets al contenedor @fixed</span>
    <span style="color:#9966CC; font-weight:bold;">def</span> fixed_main<span style="color:#006600; font-weight:bold;">&#40;</span>widgets<span style="color:#006600; font-weight:bold;">&#41;</span>
      widgets.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span> widget<span style="color:#006600; font-weight:bold;">|</span>
	  <span style="color:#0066ff; font-weight:bold;">@fixed</span>.<span style="color:#9900CC;">put</span> widget<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">&#93;</span>, widget<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>, widget<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#93;</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
      <span style="color:#0066ff; font-weight:bold;">@fixed</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#008000; font-style:italic;">#agrega valores al atributo @combo</span>
    <span style="color:#9966CC; font-weight:bold;">def</span> combo_box
      contenido = <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;Matz&quot;</span>, <span style="color:#996600;">&quot;Stallman&quot;</span>, <span style="color:#996600;">&quot;Linus&quot;</span>, <span style="color:#996600;">'Mattis'</span><span style="color:#006600; font-weight:bold;">&#93;</span>
      contenido.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>item<span style="color:#006600; font-weight:bold;">|</span>
        <span style="color:#0066ff; font-weight:bold;">@combo</span>.<span style="color:#9900CC;">append_text</span> item
      <span style="color:#9966CC; font-weight:bold;">end</span>
      <span style="color:#006600; font-weight:bold;">&#91;</span>@combo,<span style="color:#006666;">10</span>,<span style="color:#006666;">60</span><span style="color:#006600; font-weight:bold;">&#93;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#008000; font-style:italic;">#crea un menu y lo agrega al atributo @menu</span>
    <span style="color:#9966CC; font-weight:bold;">def</span> menu_bar
      menues = <span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#996600;">&quot;Archivo&quot;</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;Nuevo&quot;</span>,<span style="color:#996600;">&quot;Salir&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span>,
                <span style="color:#996600;">&quot;Ayuda&quot;</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;Acerca de...&quot;</span><span style="color:#006600; font-weight:bold;">&#125;</span>
      menues.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>menu_key, item_value<span style="color:#006600; font-weight:bold;">|</span>
	    menu = <span style="color:#6666ff; font-weight:bold;">Gtk::Menu</span>.<span style="color:#9900CC;">new</span>
	    submenu = <span style="color:#6666ff; font-weight:bold;">Gtk::MenuItem</span>.<span style="color:#9900CC;">new</span> menu_key
	    <span style="color:#9966CC; font-weight:bold;">if</span> item_value.<span style="color:#9966CC; font-weight:bold;">class</span> == <span style="color:#CC0066; font-weight:bold;">Array</span>
	        item_value.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>item_v<span style="color:#006600; font-weight:bold;">|</span>
	            item_menu = <span style="color:#6666ff; font-weight:bold;">Gtk::MenuItem</span>.<span style="color:#9900CC;">new</span> item_v
	            menu.<span style="color:#9900CC;">append</span> item_menu
	            widget_activo<span style="color:#006600; font-weight:bold;">&#40;</span>item_menu,<span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">if</span> item_v == <span style="color:#996600;">&quot;Salir&quot;</span>
		    widget_activo<span style="color:#006600; font-weight:bold;">&#40;</span>item_menu,<span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">if</span> item_v == <span style="color:#996600;">&quot;Acerca de...&quot;</span>
	        <span style="color:#9966CC; font-weight:bold;">end</span>
	    <span style="color:#9966CC; font-weight:bold;">else</span>
	        item_menu = <span style="color:#6666ff; font-weight:bold;">Gtk::MenuItem</span>.<span style="color:#9900CC;">new</span> item_value
	        menu.<span style="color:#9900CC;">append</span> item_menu
	        salir<span style="color:#006600; font-weight:bold;">&#40;</span>item_menu,<span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">if</span> item_value == <span style="color:#996600;">&quot;Salir&quot;</span>
		widget_activo<span style="color:#006600; font-weight:bold;">&#40;</span>item_menu,<span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">if</span> item_value == <span style="color:#996600;">&quot;Acerca de...&quot;</span>
	    <span style="color:#9966CC; font-weight:bold;">end</span>
	    submenu.<span style="color:#9900CC;">set_submenu</span> menu
	    <span style="color:#0066ff; font-weight:bold;">@menu</span>.<span style="color:#9900CC;">append</span> submenu
      <span style="color:#9966CC; font-weight:bold;">end</span>
      <span style="color:#006600; font-weight:bold;">&#91;</span>@menu,<span style="color:#006666;">0</span>,<span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">&#93;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#008000; font-style:italic;">#cuando se activa un item del menu ejecuta el codigo</span>
    <span style="color:#9966CC; font-weight:bold;">def</span> widget_activo<span style="color:#006600; font-weight:bold;">&#40;</span>widget,tipo<span style="color:#006600; font-weight:bold;">&#41;</span>
      widget.<span style="color:#9900CC;">signal_connect</span> <span style="color:#996600;">&quot;activate&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
	tipo == <span style="color:#006666;">1</span> ? Gtk.<span style="color:#9900CC;">main_quit</span> : about_dialogo <span style="color:#008000; font-style:italic;">#si el tipo es 1 cierra la aplicacion, caso contrario abre el about</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#008000; font-style:italic;">#setea el tooltip del @boton y agrega un metodo en caso que se haga un click</span>
    <span style="color:#9966CC; font-weight:bold;">def</span> boton
      <span style="color:#0066ff; font-weight:bold;">@boton</span>.<span style="color:#9900CC;">set_tooltip_text</span> <span style="color:#996600;">&quot;Button widget&quot;</span>
      <span style="color:#0066ff; font-weight:bold;">@boton</span>.<span style="color:#9900CC;">signal_connect</span> <span style="color:#996600;">&quot;clicked&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>w,e<span style="color:#006600; font-weight:bold;">|</span>
	mensaje_dialogo<span style="color:#006600; font-weight:bold;">&#40;</span>@combo.<span style="color:#9900CC;">active_iter</span>.<span style="color:#9900CC;">to_s</span><span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
      <span style="color:#006600; font-weight:bold;">&#91;</span>@boton,<span style="color:#006666;">150</span>,<span style="color:#006666;">60</span><span style="color:#006600; font-weight:bold;">&#93;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#008000; font-style:italic;">#muestra un diálogo según el valor pasado</span>
    <span style="color:#9966CC; font-weight:bold;">def</span> mensaje_dialogo<span style="color:#006600; font-weight:bold;">&#40;</span>index<span style="color:#006600; font-weight:bold;">&#41;</span>
      mensaje = <span style="color:#9966CC; font-weight:bold;">case</span> index
		  <span style="color:#9966CC; font-weight:bold;">when</span> <span style="color:#996600;">&quot;0&quot;</span> 
		    <span style="color:#996600;">&quot;Creador del lenguaje ruby...&quot;</span>
		  <span style="color:#9966CC; font-weight:bold;">when</span> <span style="color:#996600;">&quot;1&quot;</span> 
		    <span style="color:#996600;">&quot;Creador del Proyecto GNU... Se presentará en Posadas el 05/09/2011&quot;</span>
		  <span style="color:#9966CC; font-weight:bold;">when</span> <span style="color:#996600;">&quot;2&quot;</span> 
		    <span style="color:#996600;">&quot;Creador del kernel Linux...&quot;</span>
		  <span style="color:#9966CC; font-weight:bold;">when</span> <span style="color:#996600;">&quot;3&quot;</span> 
		    <span style="color:#996600;">&quot;Creador del proyecto GTK+...&quot;</span>  
		  <span style="color:#9966CC; font-weight:bold;">else</span> 
		    <span style="color:#996600;">&quot;No elegiste nada&quot;</span>
		<span style="color:#9966CC; font-weight:bold;">end</span>
      md = <span style="color:#6666ff; font-weight:bold;">Gtk::MessageDialog</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">self</span>,
	  <span style="color:#6666ff; font-weight:bold;">Gtk::Dialog::DESTROY_WITH_PARENT</span>, <span style="color:#6666ff; font-weight:bold;">Gtk::MessageDialog::INFO</span>, 
	  <span style="color:#6666ff; font-weight:bold;">Gtk::MessageDialog::BUTTONS_CLOSE</span>, mensaje<span style="color:#006600; font-weight:bold;">&#41;</span>
      md.<span style="color:#9900CC;">run</span>
      md.<span style="color:#9900CC;">destroy</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#008000; font-style:italic;">#crea un diálogo about.</span>
    <span style="color:#9966CC; font-weight:bold;">def</span> about_dialogo
        about = <span style="color:#6666ff; font-weight:bold;">Gtk::AboutDialog</span>.<span style="color:#9900CC;">new</span>
        about.<span style="color:#9900CC;">set_program_name</span> <span style="color:#996600;">&quot;Prueba GTK Ipcorp 2011&quot;</span>
        about.<span style="color:#9900CC;">set_version</span> <span style="color:#996600;">&quot;0.1&quot;</span>
        about.<span style="color:#9900CC;">set_copyright</span> <span style="color:#996600;">&quot;(cc) Carlos Mathiasen&quot;</span>
        about.<span style="color:#9900CC;">set_comments</span> <span style="color:#996600;">&quot;Una simple muestra de lo que se puede hacer con gtk y ruby&quot;</span>
        about.<span style="color:#9900CC;">set_logo</span> <span style="color:#6666ff; font-weight:bold;">Gdk::Pixbuf</span>.<span style="color:#9900CC;">new</span> <span style="color:#996600;">&quot;ipcorp.png&quot;</span>
        about.<span style="color:#9900CC;">run</span>
        about.<span style="color:#9900CC;">destroy</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#008000; font-style:italic;">#Ejecuta la aplicación</span>
Gtk.<span style="color:#9900CC;">init</span> <span style="color:#008000; font-style:italic;"># con esta linea inicializamos la librería de gtk2</span>
    window = RubyApp.<span style="color:#9900CC;">new</span>
Gtk.<span style="color:#9900CC;">main</span></pre></div></div>

<p>El código está comentado en casi todas sus líneas explicando lo que hace. Espero les resulte útil y cualquier cosa no duden en preguntar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ipcorp.com.ar/blog/2011/08/30/alicaciones-de-escritorio-ruby-y-gtk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Jornada de Integración, Extensión y Actualización de estudiantes de informática (JoInEA)</title>
		<link>http://www.ipcorp.com.ar/blog/2011/08/23/jornada-de-integracion-extension-y-actualizacion-de-estudiantes-de-informatica-joinea/</link>
		<comments>http://www.ipcorp.com.ar/blog/2011/08/23/jornada-de-integracion-extension-y-actualizacion-de-estudiantes-de-informatica-joinea/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 23:56:23 +0000</pubDate>
		<dc:creator>Carlos Mathiasen</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.ipcorp.com.ar/blog/?p=1078</guid>
		<description><![CDATA[La Jornada de Integración, Extensión y Actualización de estudiantes de informática (JoInEA) es organizada por una comisión de alumnos de las carreras de informática de la Facultad de Ciencias Exactas, Químicas y Naturales de la Universidad Nacional de Misiones. El objetivo de la misma es efectivizar la logística de la actualización mediante la integración y [...]]]></description>
			<content:encoded><![CDATA[<p>La Jornada de Integración, Extensión y Actualización de estudiantes de informática (JoInEA) es organizada por una comisión de alumnos de las carreras de informática de la Facultad de Ciencias Exactas, Químicas y Naturales de la Universidad Nacional de Misiones. El objetivo de la misma es efectivizar la logística de la actualización mediante la integración y extensión, generando un espacio para los aportes, avances y reflexiones de estudiantes y profesionales del medio; así como también la promoción e inserción del personal y las herramientas informáticas en nuestra sociedad.<br />
La misma fu&eacute; declarada de inter&eacute;s provincial el pasado 9 de agosto.</p>
<p>Estar&eacute; presentando  la charla  “Interfaces de Usuario Con Ruby y GTK”  el viernes 02 de septiembre de 2011 a las 14:30 hs.</p>
<p>Si quer&eacute;s saber un poco m&aacute;s visit&aacute;: <a href="http://joinea2011.exactas-unam.dyndns.org/">JOINEA</a></p>
<p>Los espero</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ipcorp.com.ar/blog/2011/08/23/jornada-de-integracion-extension-y-actualizacion-de-estudiantes-de-informatica-joinea/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Richard  Stallman en Posadas (Misiones).  “El software libre y tu libertad”</title>
		<link>http://www.ipcorp.com.ar/blog/2011/08/19/richard-stallman-en-posadas-misiones-%e2%80%9cel-software-libre-y-tu-libertad%e2%80%9d/</link>
		<comments>http://www.ipcorp.com.ar/blog/2011/08/19/richard-stallman-en-posadas-misiones-%e2%80%9cel-software-libre-y-tu-libertad%e2%80%9d/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 22:31:12 +0000</pubDate>
		<dc:creator>marcelo</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.ipcorp.com.ar/blog/?p=1074</guid>
		<description><![CDATA[Misiones Software Libre &#8211; MiSoL- e IPCorp SRL  los invita a la Conferencia Magistral de Richard Matthew Stallman “El software Libre y tu Libertad” que se realizará en las instalaciones del  Centro del Conocimiento &#8211; sala 1 del Centro de Convenciones de la Ciudad de Posadas Misiones el próximo 5 de Septiembre a las 17hs.
Noticia [...]]]></description>
			<content:encoded><![CDATA[<p style="padding-top: 15px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; line-height: 19px; margin: 0px;" dir="ltr"><span style="padding: 0px; margin: 0px;"><strong>Misiones Software Libre &#8211; MiSoL- e IPCorp SRL  los invita a la Conferencia Magistral de Richard Matthew Stallman “El software Libre y tu Libertad” </strong></span>que se realizará en las instalaciones del  Centro del Conocimiento &#8211; sala 1 del Centro de Convenciones de la Ciudad de Posadas Misiones el próximo 5 de Septiembre a las 17hs.</p>
<p style="padding-top: 15px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; line-height: 19px; margin: 0px;" dir="ltr">Noticia en sitio de MiSol : <a href="http://www.misol.org.ar/2011/07/richard-m-stallman-en-septiembre-dara-una-conferencia-en-posadas/">http://www.misol.org.ar/2011/07/richard-m-stallman-en-septiembre-dara-una-conferencia-en-posadas/</a></p>
<p style="padding-top: 15px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; line-height: 19px; margin: 0px;" dir="ltr"><span style="padding: 0px; margin: 0px;"><strong></strong></span><strong>Richard Matthew Stallman (rms) es conocido por establecer y desarrollar el Proyecto GNU que es el marco legal, filosófico y ético-moral para los movimientos de Software Libre, también es creador del concepto de copyleft, un método para licenciar software de tal forma que su uso y modificación permanezcan siempre libres y queden en la comunidad.</strong></p>
<p style="padding-top: 15px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; line-height: 19px; margin: 0px;" dir="ltr"><span style="padding: 0px; margin: 0px;"><strong>Este evento también está coorganizado junto a la Universidad Nacional de Misiones,</strong></span><strong> Polo Audiovisual Tecnológico NEA, </strong><strong>Centro del Conocimiento &#8211; Gob. de la Pcia de Misiones &#8211; ,  y se encuentra enmarcado dentro de la agenda de la Conferencia Internacional de Software Libre &#8211; CISL &#8211; que se realizará el 8 y 9 de Septiembre  en la ciudad de Buenos Aires.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ipcorp.com.ar/blog/2011/08/19/richard-stallman-en-posadas-misiones-%e2%80%9cel-software-libre-y-tu-libertad%e2%80%9d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script para recorrer archivos html y encontrar las clases</title>
		<link>http://www.ipcorp.com.ar/blog/2011/06/17/script-para-recorrer-archivos-html-y-encontrar-las-clases/</link>
		<comments>http://www.ipcorp.com.ar/blog/2011/06/17/script-para-recorrer-archivos-html-y-encontrar-las-clases/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 15:56:59 +0000</pubDate>
		<dc:creator>Carlos Mathiasen</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Lenguajes de Programación]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Sistemas Operativos]]></category>

		<guid isPermaLink="false">http://www.ipcorp.com.ar/blog/?p=1060</guid>
		<description><![CDATA[Me vinieron con un problema bastante bueno ayer: &#8220;Necesito que elimines las clases que no se usan en el archivo .css&#8221;, la verdad parece no complicarse mucho, el problema se agrava un poco cuando ten&#233;s unos cuantos archivos html. Por curiosidad se me ocurri&#243; contar los archivos:

  find /proyectos/app/ -name *.erb -exec ls -l [...]]]></description>
			<content:encoded><![CDATA[<p>Me vinieron con un problema bastante bueno ayer: &#8220;Necesito que elimines las clases que no se usan en el archivo .css&#8221;, la verdad parece no complicarse mucho, el problema se agrava un poco cuando ten&eacute;s unos cuantos archivos html. Por curiosidad se me ocurri&oacute; contar los archivos:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">  <span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #000000; font-weight: bold;">/</span>proyectos<span style="color: #000000; font-weight: bold;">/</span>app<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #660033;">-name</span> <span style="color: #000000; font-weight: bold;">*</span>.erb <span style="color: #660033;">-exec</span> <span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-l</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> \; <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">wc</span> <span style="color: #660033;">-l</span>
  <span style="color: #666666; font-style: italic;">#busco todos los que terminan en .erb, porque es un proyecto en Rails</span></pre></div></div>

<p>Me di&oacute; la m&oacute;dica suma de 444 archivos. Ahora si se complicaba demasiado hacerlo a mano.<br />
Me puse a incursionar un poco en bash y sali&oacute; esto:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">a</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">find</span> $<span style="color: #000000;">1</span> <span style="color: #660033;">-name</span> <span style="color: #ff0000;">&quot;*.erb&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>; <span style="color: #666666; font-style: italic;">#busco los archivos y guardo los paths en una lista</span>
<span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #007800;">$a</span>; <span style="color: #000000; font-weight: bold;">do</span> <span style="color: #666666; font-style: italic;">#recorro la lista</span>
   <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$i</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">egrep</span> <span style="color: #ff0000;">'class=&quot;'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #660033;">-F</span> <span style="color: #ff0000;">'class='</span> <span style="color: #ff0000;">'{print $2}'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #660033;">-F</span> <span style="color: #ff0000;">'&quot;'</span> <span style="color: #ff0000;">'{print $2}'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #660033;">-F</span> <span style="color: #ff0000;">' '</span> <span style="color: #ff0000;">'{for (j=1; j&lt;=NF; j++)  print $j; print &quot;\n&quot;}'</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> clases.txt
<span style="color: #000000; font-weight: bold;">done</span>  
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">sort</span> clases.txt <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> clases2.txt <span style="color: #666666; font-style: italic;">#ordeno el archivo y lo guardo en otro</span>
<span style="color: #c20cb9; font-weight: bold;">rm</span> clases.txt <span style="color: #666666; font-style: italic;">#elimino el primer archivo</span>
<span style="color: #c20cb9; font-weight: bold;">uniq</span> <span style="color: #660033;">-u</span> clases2.txt <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> clases.txt <span style="color: #666666; font-style: italic;">#borro las l&amp;iacute;neas duplicadas (ya que las clases no son &amp;uacute;nicas)</span>
<span style="color: #c20cb9; font-weight: bold;">rm</span> clases2.txt <span style="color: #666666; font-style: italic;">#elimino el archivo auxiliar</span></pre></div></div>

<p>La tercer linea del script la explico aca abajo, sino no se iba a entender nada</p>
<p><strong>cat $i:</strong> muestra el contenido del path que le estamos pasando.<br />
<strong> egrep &#8216;class=&#8221;&#8216;:</strong> Me muestra solo las l&iacute;neas que contienen &#8216;class=&#8221;&#8216;, que es como definimos una clase en html.<br />
<strong> awk -F &#8216;class=&#8217; &#8216;{print $2}&#8217;:</strong>Hago como un split a un string separando por &#8216;class=&#8217; y mostrando solo el segundo valor, es decir todas las clases que tenga ese tag.<br />
<strong>awk -F &#8216;  &#8216;  &#8216;{for (j=1; j<=NF; j++)  print $j; print "\n"}':</strong> Como ya tenemos en una sola l&iacute;nea todas las clases de un tag, y sabemos que las clases se separan con un espacio, hacemos nuestro split por espacios y recorremos todas las variables y las vamos imprimiendo con un salto de linea al final. Esto nos har&iacute;a una lista con todas las clases que existan en los archivos html.<br />
Despu&eacute;s habriendo el archivo clases.txt, vemos las clases ordenadas y &uacute;nicas <img src='http://www.ipcorp.com.ar/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Quiz&aacute; se pueda costumizar más, no usar 2 archivos sino solo uno. Tambi&eacute;n se podria recorrer el archivo .css y compararlo con nuestro archivo, eliminando las l&iacute;neas que necesitamos. Pero para salir del apuro anda perfecto. Y si queremos encontrar los id, es cuesti&oacute;n de reemplazar la b&uacute;squeda nom&aacute;, aunque me tira algunos datos sucios, ya que también se usa en javascript y en ruby, entonces por ahi se complicaba un poco m&aacute;s, pero les dejo como tarea para la casa jeje<br />
Bueno espero les pueda servir y cualquier consulta no duden en comentar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ipcorp.com.ar/blog/2011/06/17/script-para-recorrer-archivos-html-y-encontrar-las-clases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPCorp en el 4to Festival Misionero de Software Libre.</title>
		<link>http://www.ipcorp.com.ar/blog/2011/05/16/ipcorp-en-el-4to-festival-misionero-de-software-libre/</link>
		<comments>http://www.ipcorp.com.ar/blog/2011/05/16/ipcorp-en-el-4to-festival-misionero-de-software-libre/#comments</comments>
		<pubDate>Mon, 16 May 2011 20:20:27 +0000</pubDate>
		<dc:creator>marcelo</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.ipcorp.com.ar/blog/?p=1043</guid>
		<description><![CDATA[La comunidad MiSol invita a todos al “4to Festival Misionero de Software Libre” los días 20 y 21 de Mayo de 2011 próximos en la Fac. de ingeniería de la UNaM (Universidad Nacional de Misiones) en la ciudad de Oberá, Misiones, Argentina.
IPCorp S.R.L estara presente en el mismo presentando  la charla  sobre &#8220;Desarrollo con RubyOnRails y PostgreSQL&#8221;  la [...]]]></description>
			<content:encoded><![CDATA[<p style="padding-top: 15px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; line-height: 19px; margin: 0px;">La comunidad MiSol invita a todos al <strong style="padding: 0px; margin: 0px;">“<a href="http://www.misol.org.ar/4to-festival-misionero-de-software-libre/" target="_blank">4to Festival Misionero de Software Libre</a>”</strong> los días <strong style="padding: 0px; margin: 0px;">20 y 21 de Mayo de 2011</strong> próximos en la Fac. de ingeniería de la UNaM (Universidad Nacional de Misiones) en la ciudad de <strong style="padding: 0px; margin: 0px;">Oberá</strong>, Misiones, Argentina.</p>
<p style="padding-top: 15px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; line-height: 19px; margin: 0px;">IPCorp S.R.L estara presente en el mismo presentando  la charla  sobre &#8220;Desarrollo con RubyOnRails y PostgreSQL&#8221;  la misma sera disertada por Carlos Mathiasen y Alfredo Ramirez el sabado 21 de mayo de 2011 a las 15:00 hs.</p>
<p style="padding-top: 15px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; line-height: 19px; margin: 0px;">Este evento tiene como objetivo fomentar las ventajas técnicas, sociales, políticas y filosóficas relacionadas a la utilización del software libre. En particular este año abordaremos 2 temáticas: <strong style="padding: 0px; margin: 0px;">“Hackers”</strong> y <strong style="padding: 0px; margin: 0px;">“Cultura Libre”</strong> para que podamos divertirnos entre todos de la diversidad de temas en nuestra comunidad.</p>
<p style="padding-top: 15px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; line-height: 19px; margin: 0px;">Este año nuevamente contaremos con la presencia de:</p>
<p style="padding-top: 15px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; line-height: 19px; margin: 0px;">- <strong style="padding: 0px; margin: 0px;">Mozilla Foundation</strong> que llevan adelante un modelo de negocio basado en software libre y conocimiento libre.<br style="padding: 0px; margin: 0px;" />- <strong style="padding: 0px; margin: 0px;">SoLAr (Software Libre Argentina)</strong> &#8211; Asociación civil sin fines de lucro dedicada a la promoción del Soft. libre en nuestro país.</p>
<p style="padding-top: 15px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; line-height: 19px; margin: 0px;">El evento constará de:<br style="padding: 0px; margin: 0px;" /><strong style="padding: 0px; margin: 0px;">Viernes 20: </strong>Charlas y ponencias en el auditorium de la <strong style="padding: 0px; margin: 0px;">Facultad de Ingeniería &#8211; Juan Manuel de Rosas 325</strong>. Acreditación 8:00 hs &#8211; Inicio 9:15hs<br style="padding: 0px; margin: 0px;" /><strong style="padding: 0px; margin: 0px;">Sábado 21: </strong>Charlas en las aulas<strong style="padding: 0px; margin: 0px;"> “Hackers” </strong>y<strong style="padding: 0px; margin: 0px;"> “Cultura Libre” </strong>(Facultad de Ingeniería). INICIO 9:00 hs<br style="padding: 0px; margin: 0px;" /><strong style="padding: 0px; margin: 0px;">Entrada Libre y Gratuita &#8211; CERTIFICADO IMPRESO $25</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ipcorp.com.ar/blog/2011/05/16/ipcorp-en-el-4to-festival-misionero-de-software-libre/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cursos de Verano 2011 Fa.C.E.N.A.</title>
		<link>http://www.ipcorp.com.ar/blog/2011/02/07/cursos-de-verano-2011-fa-c-e-n-a/</link>
		<comments>http://www.ipcorp.com.ar/blog/2011/02/07/cursos-de-verano-2011-fa-c-e-n-a/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 12:05:40 +0000</pubDate>
		<dc:creator>Carlos Barbiero</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Ingeniería de Software]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.ipcorp.com.ar/blog/?p=974</guid>
		<description><![CDATA[Al igual que en el 2010, este año se realizan los cursos de verano en la Facultad de Ciencias Exactas y Naturales y Agrimensura desde el 21/02/2011 hasta el 12/03/2011. Los cursos tienen como objetivo ofrecer a los profesionales y técnicos de la disciplina informática, la oportunidad de capacitación y actualización en herramientas orientadas al [...]]]></description>
			<content:encoded><![CDATA[<p>Al igual que en el 2010, este año se realizan los cursos de verano en la Facultad de Ciencias Exactas y Naturales y Agrimensura desde el 21/02/2011 hasta el 12/03/2011. Los cursos tienen como objetivo ofrecer a los profesionales y técnicos de la disciplina informática, la oportunidad de capacitación y actualización en herramientas orientadas al desarrollo de software. En esta oportunidad, <strong>IPCorp</strong> esta presente en el dictado de <strong>dos cursos</strong>. El primer curso es <strong>&#8220;Gestión de datos con PostgreSQL&#8221;</strong>, dictado por el <strong>Lic. Marcelo R. Diaz</strong> los días lunes, miércoles y viernes de 17 a 20 hs. y por otro lado, <strong>&#8220;Desarrollo Web Agil con Ruby on Rails&#8221;</strong>, desarrollado por el<strong> Lic. Carlos E. Barbiero</strong>, los martes y jueves de 18 a 22 hs.</p>
<p>Las inscripciones se realizan del 14 al 18 de febrero en el laboratorio de informática de 14 a 21 hs, o bien por correo electrónico a cursosveranofacena@gmail.com</p>
<p>Para más información de los contenidos de cada curso: <a href="http://exa.unne.edu.ar/docs/Informatica-Cursosdeverano2011-contenidos.pdf">http://exa.unne.edu.ar/docs/Informatica-Cursosdeverano2011-contenidos.pdf</a></p>
<p>Si querés obtener más información sobre los cursos dictados por el staff de IPCorp, podés enviar un email a contacto@ipcorp.com.ar, detallándonos tus consultas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ipcorp.com.ar/blog/2011/02/07/cursos-de-verano-2011-fa-c-e-n-a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jornada de Charlas de la Facultad de Ciencias Exactas de la UNNE</title>
		<link>http://www.ipcorp.com.ar/blog/2010/09/30/jornada-de-charlas-de-la-facultad-de-ciencias-exactas-de-la-unne/</link>
		<comments>http://www.ipcorp.com.ar/blog/2010/09/30/jornada-de-charlas-de-la-facultad-de-ciencias-exactas-de-la-unne/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 21:44:25 +0000</pubDate>
		<dc:creator>marcelo</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Ingeniería de Software]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.ipcorp.com.ar/blog/?p=915</guid>
		<description><![CDATA[Jornada de Charlas de la Facultad de Ciencias Exactas &#8211; Universidad Nacional del Nordeste.
Fecha : 02 de Octubre de 2010
Lugar : Edificio 9 de julio . 9 de Julio 1449  - Corrientes -Cap-
Dirigido a estudiantes de la carrera de sistemas y pùblico en general. Las acreditaciones se realizan el mismo dìa, se entregaran certificados.
Cronograma de [...]]]></description>
			<content:encoded><![CDATA[<p>Jornada de Charlas de la Facultad de Ciencias Exactas &#8211; Universidad Nacional del Nordeste.</p>
<p>Fecha : 02 de Octubre de 2010</p>
<p>Lugar : Edificio 9 de julio . 9 de Julio 1449  - Corrientes -Cap-</p>
<p>Dirigido a estudiantes de la carrera de sistemas y pùblico en general. Las acreditaciones se realizan el mismo dìa, se entregaran certificados.</p>
<p style="text-align: center;"><strong><span style="text-decoration: underline;">Cronograma de charlas</span></strong></p>
<table style="cursor: default; page-break-before: always;" border="1" cellspacing="0" cellpadding="7" width="100%">
<colgroup>
<col width="48*"></col>
<col width="58*"></col>
<col width="73*"></col>
<col width="77*"></col>
</colgroup>
<tbody>
<tr valign="TOP">
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="19%">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;"><strong>Horario</strong></span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="23%">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;"><strong>Título</strong></span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="29%">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;"><strong>Disertante</strong></span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="30%">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;"><strong>Contenido</strong></span></span></span></p>
</td>
</tr>
<tr>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="19%" height="82" bgcolor="#d3dfee">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">9 – 10 hs</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="23%" bgcolor="#d3dfee">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Struts, una aplicación del Patrón ‘Modelo Vista Controlador</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="29%" bgcolor="#d3dfee">
<p align="CENTER"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Lic. Edgar Alberto Gómez</span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="30%" valign="TOP" bgcolor="#d3dfee"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">¿Qué es un Patrón de Diseño? – Descripción breve del Patrón Modelo Vista Controlador (MVC).</span></span></span><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;"> </span></span></span><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Elementos del framework ‘Struts’: Archivos XML de configuración (web.xml, struts-config.xml), Actions, ActionForms, ActionErrors, Tags de Struts para utilizar en código HTML.</span></span></span></td>
</tr>
<tr>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="19%" height="61">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">10 – 10,30 hs.</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="23%">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Acreditación de la LSI</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="29%">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Mgter. Gladys Dapozo</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="30%" valign="TOP"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Acreditación de carreras de Informática. CONEAU. Res. 786/09 Ministerio de Educación. Evaluación de calidad.</span></span></span></td>
</tr>
<tr>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="19%" bgcolor="#d3dfee">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">10.30 – 11,30 hs</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="23%" bgcolor="#d3dfee">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Persistencia de Objetos en Bases de Datos Orientado a Objetos.</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="29%" bgcolor="#d3dfee">
<p align="CENTER"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Expto. Mario Augusto Arqueros</span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="30%" valign="TOP" bgcolor="#d3dfee"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Origen y concepto del motor de bases de datos orientado a objetos. Comunicación y manejo de la persistencia en la base de datos orientada a objetos. Tipos y complejidades de consulta y recupero de los objetos. Bondades del motor de bases de datos orientadas a objetos DB4o. Principales diferencias entre las BDR y las BDOO. Ejemplo práctico métodos de persistencia y búsqueda de objetos en una BDOO.</span></span></td>
</tr>
<tr>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="19%">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">11,30 – 13,30 hs</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="23%">
<p style="margin-bottom: 0cm;" align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Diseño de Interfaces de usuario en Aplicaciones Web</span></span></span></p>
<p align="CENTER">
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="29%">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Lic Carlos Barbiero (IPCorp)</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="30%" valign="TOP"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Introducción, ¿qué es una interfaz de usuario?. – Definiciones. Pequeña referencia histórica. &#8211; Arquitectura de la información. Fenómeno Web 2.0. Definiciones y conceptos. Tecnologías influyentes. Descripción de patrones de diseño. Ejemplos y Tips de diseño</span></span></span><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">. </span></span></span><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Sitios y aplicaciones de ejemplo. Tips de diseño en aplicaciones Web.</span></span></span></td>
</tr>
<tr>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="19%" bgcolor="#d3dfee">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">15 – 16hs</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="23%" bgcolor="#d3dfee">
<p style="margin-bottom: 0cm;" align="CENTER"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Reutilización de decisiones de diseño mediante patrones</span></span></p>
<p align="CENTER">
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="29%" bgcolor="#d3dfee">
<p style="margin-bottom: 0cm;" align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Lic. Vanesa Morand</span></span></span></p>
<p align="CENTER">
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="30%" valign="TOP" bgcolor="#d3dfee">
<p style="margin-bottom: 0cm;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Definición de patrones. Clasificación de patrones. Importancia de la aplicación de patrones.</span></span></p>
<p><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Descripción y análisis de algunos patrones (State, Strategy, Decorator, Adapter). Cuándo definir un patrón? Ejemplos del uso de los mismos. Ejemplos de código con la implementación de patrones.</span></span></td>
</tr>
<tr>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="19%">
<p style="margin-bottom: 0cm;" align="CENTER">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">16 </span></span></span><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">- 17hs.</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="23%">
<p style="margin-bottom: 0cm;" align="CENTER">
<p style="margin-bottom: 0cm;" align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">e principiante a Desarrollador Web</span></span></span></p>
<p align="CENTER">
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="29%">
<p style="margin-bottom: 0cm;" align="CENTER">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Ing. Agustín Casiva</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="30%" valign="TOP">
<p style="margin-bottom: 0cm;">
<p><span style="font-family: 'Courier New', monospace;"><span style="font-size: x-small;"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Abstract: Panorama general del desarrollo web en la actualidad, desde tecnologías del lado del cliente, por ejemplo HTML, CSS, JavaScript, Flash, JQuery, ExtJS; hasta procesamiento del lado del Servidor con PHP, Java, .NET, Python, Ruby; involucrando todo el proceso de desarrollo, desde la solicitud del cliente hasta su publicación en la web.</span></span></span></span></span></td>
</tr>
<tr>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="19%" bgcolor="#d3dfee">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">17-18 hs.</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="23%" bgcolor="#d3dfee">
<p style="margin-bottom: 0cm;" align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Calidad de Productos Software</span></span></span></p>
<p align="CENTER">
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="29%" bgcolor="#d3dfee">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">María Clara Sánchez Vallduvi</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="30%" valign="TOP" bgcolor="#d3dfee"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Concepto de calidad. Medición de software. Normas ISO sobre calidad de Productos Software. ISO 9126 y 14598. Descripción. Relaciones. ISO 25000. Unificación de estándares. Conclusiones.</span></span></span></td>
</tr>
<tr>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="19%">
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">18 – 19 hs.</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="23%">
<p style="margin-bottom: 0cm;" align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Características avanzadas de Entornos Integrados de Desarrollo (IDE´s) para Java</span></span></span></p>
<p align="CENTER">
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="29%">
<p style="margin-bottom: 0cm;" align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Ramón Oscar Fernández</span></span></span></p>
<p align="CENTER"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Carlos Alberto Romero</span></span></span></p>
</td>
<td style="color: #000000; font-size: 11px; cursor: text; margin: 8px;" width="30%" valign="TOP"><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Desarrollo con reutilización. Creando objetos a partir de clases de biblioteca. Pasando objetos como parámetros. Utilizando la zona de código. Depuración [Debugging]: Estableciendo puntos de ruptura [Breakpoints]. Avanzando paso a paso por el código.</span></span></span><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;"> </span></span></span><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Inspeccionando variables. Detener y terminar.</span></span></span><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;"> </span></span></span><span style="color: #2a2a2a;"><span style="font-family: 'Arial Unicode MS', sans-serif;"><span style="font-size: x-small;">Otras operaciones. Abriendo paquetes no-BlueJ con BlueJ. Interaccion entre IDE&#8217;s. Novedades del nuevo BlueJ.</span></span></span></td>
</tr>
</tbody>
</table>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">TEMA: “Strust, una aplicación del Patrón ‘Modelo Vista Controlador”</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Disertante: Edgar Alberto Gómez</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">A partir de las 9hs a 10hs</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Introducción: ¿Qué es un Patrón de Diseño? – Descripción breve del Patrón Modelo Vista Controlador (MVC).</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Desarrollo: Elementos del framework ‘Struts’: Archivos XML de configuración (web.xml, struts-config.xml), Actions, ActionForms, ActionErrors, Tags de Struts para utilizar en código HTML.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Mostrar un Proyecto Web  en Eclipse utilizando  este Framework</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Duración: 1 hora</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Charla de Acreditacion de la Carrera</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Disertante: Profesora Magíster Gladys Noemí Dapozo</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">A partir de las 10hs a las 10.30hs</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Tema: Persistencia de Objetos en Bases de Datos Orientado a Objetos.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Disertante:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Mario Augusto Arqueros</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Larga a las 10.30hs hasta las 11.30hs</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Contenido.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Origen y concepto del motor de bases de datos orientado a objetos.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Relación con las clases diseñadas en el diagrama de Clases.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Comunicación y manejo de la persistencia en la base de datos orientada a objetos.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Tipos y complejidades de consulta y recupero de los objetos.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Bondades del motor de bases de datos orientadas a objetos DB4o.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Principales diferencias entre las BDR y las BDOO.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Ejemplo práctico entre el diagrama de clases, definición de las clases, diseño de BDR y mapeo del mismo.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Ejemplo práctico de métodos de persistencia y búsqueda de objetos en una BDOO.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Areas de aplicación.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Tiempo de dictado: 1 hora reloj.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">TEMA: “Diseño de Interfaces de usuario en Aplicaciones Web&#8221;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Disertante Lic Carlos Barbiero,</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">duracion: Aproximada de 1:30</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">desde las 11.30hs hasta las 13.30hs</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Bosquejo</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">1) Introducción, ¿que es una interfaz de usuario?</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">- Definiciones</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">- Pequeña referencia histórica</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">- Arquitectura de la información</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">2) Fenómeno Web 2.0</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">- Definiciones y conceptos</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">- Tecnologías influyentes</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">- Patrones de diseño</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">3) HTML, Javascript y CSS</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">- Introducción</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">- Frameworks JS</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Prototype</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Mootools</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Scriptaculous</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Jquery</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">- Jquery y Jquery UI</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">- Ejemplos, plugins y código</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">4) Ejemplos y Tips de diseño</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">- Sitios y aplicaciones de ejemplo</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">- Tips de diseño en aplicaciones Web</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">5) Espacio para Preguntas</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">TEMA: Reutilización de decisiones de diseño mediante patrones</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Disertante: licenciada Vanesa Moran</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">A partir de las 15hs a 16hs</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Temario</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Definición de patrones. Clasificación de patrones. Importancia de la aplicación de patrones.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Descripción y análisis de algunos patrones (State, Strategy, Decorator, Adapter). Cuándo definir un patrón? Ejemplos del uso de los mismos. Ejemplos de código con la implementación de patrones.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">TEMA: De principiante a Desarrollador Web</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Disertante: Agustín Casiva</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">a partir de las 16hs a las 17hs</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Abstract: Panorama general del desarrollo</div>
]]></content:encoded>
			<wfw:commentRss>http://www.ipcorp.com.ar/blog/2010/09/30/jornada-de-charlas-de-la-facultad-de-ciencias-exactas-de-la-unne/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Barcode4J en JRuby y Rails</title>
		<link>http://www.ipcorp.com.ar/blog/2010/08/13/barcode4j-en-jruby-y-rails/</link>
		<comments>http://www.ipcorp.com.ar/blog/2010/08/13/barcode4j-en-jruby-y-rails/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 12:18:45 +0000</pubDate>
		<dc:creator>Carlos Barbiero</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Lenguajes de Programación]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[barcode4j]]></category>
		<category><![CDATA[barcodes]]></category>
		<category><![CDATA[codigos de barras]]></category>
		<category><![CDATA[jruby]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.ipcorp.com.ar/blog/?p=844</guid>
		<description><![CDATA[En el post anterior había explicado el uso de Gbarcode, una librería para generación de códigos de barras con Ruby. El problema es que esta librería no se puede utilizar en Jruby ya que tiene extensiones nativas en C, cosa que Jruby aún no soporta.
Después de investigar alternativas de generación de codigos de barras para [...]]]></description>
			<content:encoded><![CDATA[<p>En el <a href="http://www.ipcorp.com.ar/blog/2010/03/16/gbarcode-codigos-de-barra-con-ruby/">post anterior</a> había explicado el uso de Gbarcode, una librería para generación de códigos de barras con Ruby. El problema es que esta librería no se puede utilizar en Jruby ya que tiene extensiones nativas en C, cosa que Jruby aún no soporta.<br />
Después de investigar alternativas de generación de codigos de barras para java como <a href="http://code.google.com/p/zxing/">Zxing</a> y <a href="http://sourceforge.net/projects/barbecue/">Barbecue</a>. Me quedé con <a href="http://barcode4j.sourceforge.net/">Barcode4j</a> por facilidad de implementación, documentación (la cual es muy completa) y sobre todo estabilidad.<br />
A continuación paso a comentarles como utilizar esta librería en JRuby.<br/><br />
1) Lo primero es descargarse en paquete binario del sitio o bien de este <a href="http://downloads.sourceforge.net/project/barcode4j/barcode4j/Barcode4J%202.0/barcode4j-2.0-bin.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fbarcode4j%2Ffiles%2F&#038;ts=1281700033&#038;mirror=ufpr">enlace directo</a>.<br />
2) Al descomprimir el Zip, copiamos el contenido del directorio <b>Build</b> al directorio /lib de nuestra instalación de JRuby</p>
<p>3) Ahora vamos al código:</p>
<pre name="code" class="ruby">

require 'java'

#Importamos algunas librerías que vamos a utilizar
import 'java.awt.image.BufferedImage'
import 'java.io.OutputStream'
import 'java.io.FileOutputStream'

#Importamos las librerías de los códigos de barras (Barcode4j) que necesitamos
import 'org.krysalis.barcode4j.impl.code39.Code39Bean'
import 'org.krysalis.barcode4j.impl.code128.Code128Bean'
import 'org.krysalis.barcode4j.impl.int2of5.Interleaved2Of5Bean'
import 'org.krysalis.barcode4j.impl.codabar.CodabarBean'
import 'org.krysalis.barcode4j.impl.code128.EAN128Bean'
import 'org.krysalis.barcode4j.impl.pdf417.PDF417Bean'
import 'org.krysalis.barcode4j.impl.upcean.EAN13Bean'
import 'org.krysalis.barcode4j.impl.upcean.EAN8Bean'
import 'org.krysalis.barcode4j.impl.upcean.UPCABean'
import 'org.krysalis.barcode4j.impl.datamatrix.DataMatrixBean'
import 'org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider'
import 'org.krysalis.barcode4j.tools.UnitConv'

#Creamos el Bean y establecemos los dpi y wide_factor
bean = Interleaved2Of5Bean.new()
dpi = 150
bean.wide_factor = 3

#Creamos la imagen
ofile = java.io.File.new('/home/laptop/barcodes/barcode.png')
out = FileOutputStream.new(ofile)
canvas = BitmapCanvasProvider.new(out,"image/x-png", dpi, BufferedImage::TYPE_BYTE_BINARY, false, 0)

#Generamos el código de barras
#El segundo parámetro que pasamos es el número del que deseamos generar el codigo de barras
bean.generate_barcode(canvas, '1234567890');
canvas.finish
out.close
</pre>
<p>Con esto, generamos una imagen con nuestro codigo de barras en <b>/home/laptop/barcodes/barcode.png</b> la cual se puede incluir en cualquier pdf/html/odf, etc.</p>
<p>Espero les sea útil. Cualquier duda, no duden en comentar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ipcorp.com.ar/blog/2010/08/13/barcode4j-en-jruby-y-rails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

