<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Simposio Técnico</title>
	<atom:link href="http://simposiotecnico.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://simposiotecnico.wordpress.com</link>
	<description>Sólo otro weblog de Nerds</description>
	<lastBuildDate>Mon, 17 Jan 2011 22:29:12 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='simposiotecnico.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Simposio Técnico</title>
		<link>http://simposiotecnico.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://simposiotecnico.wordpress.com/osd.xml" title="Simposio Técnico" />
	<atom:link rel='hub' href='http://simposiotecnico.wordpress.com/?pushpress=hub'/>
		<item>
		<title>¿ ANSI C Orientado a Objetos ?</title>
		<link>http://simposiotecnico.wordpress.com/2010/02/18/%c2%bf-ansi-c-orientado-a-objetos/</link>
		<comments>http://simposiotecnico.wordpress.com/2010/02/18/%c2%bf-ansi-c-orientado-a-objetos/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:30:41 +0000</pubDate>
		<dc:creator>jarlakxen</dc:creator>
				<category><![CDATA[2010 Febrero]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Closures]]></category>
		<category><![CDATA[Orientacion a Objetos]]></category>

		<guid isPermaLink="false">http://simposiotecnico.wordpress.com/?p=105</guid>
		<description><![CDATA[Bueno, todos sabemos que estos es imposible porque básicamente C es un lenguaje estructurado, ¿Entonces porque hablar de Orientación a Objetos en ANSI C? Es bastante simple, cualquier lenguaje de programación moderno trabaja con el paradigma de objetos y es natural que todos estemos mayoritariamente acostumbrados a eso. Por otro lado el paradigma de objetos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=105&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bueno, todos sabemos que estos es imposible porque básicamente C es un lenguaje estructurado, ¿Entonces porque hablar de Orientación a Objetos en ANSI C? Es bastante simple, cualquier lenguaje de programación moderno trabaja con el paradigma de objetos y es natural que todos estemos mayoritariamente acostumbrados a eso. Por otro lado el paradigma de objetos nos permite pensar, entender y desarrollar con mayor modularidad que con lenguajes estructurados.<br />
El punto de todo esto es tratar de adoptar un patrón de codificación que nos acerque a lo que todos estamos acostumbrados, y es por eso que después de mucho investigar voy a presentar algunos pequeños conceptos.</p>
<p><strong>Relación Objeto – Mensaje:</strong></p>
<p>Lo primero a comprender es como poder establecer una relación en la que yo tengo un objeto y le envío un mensaje ( es decir invocamos el método de un objeto ).</p>
<p># Método I ( TAD ):</p>
<p>En C tenemos las queridas y amadas estructuras de datos, y quizás el patrón mas conocido es el TAD. Un TAD se define como una estructura de datos y sus funciones asociadas, como por ejemplo:</p>
<pre class="brush: cpp;">
	typedef struct {
		char * name;
		int age;
	} t_person;
</pre>
<p>Y a esto tenemos sus funciones asociadas:</p>
<pre class="brush: cpp;">
	char* person_getname(t_person*);
	int   person_getage(t_person*);
	void  person_walk(t_person*);
</pre>
<p>Ahora bien, modificando un poco el criterio de la sintaxis podria definir lo siguiente:</p>
<pre class="brush: cpp;">
	struct Person {
		char * name;
		int age;
	};

	char* Person_getName(struct Person *);
	int   Person_getAge(struct Person *);
	void  Person_walk(struct Person *);
</pre>
<p>Esto mas que nada nos puede hacer pensar que Persona es nuestra clase y que getName es un método estático de la clase Persona y nosotros le pasamos la instancia de la clase. Quizás este puede ser una de las formas mas comunes de ver el código en C. Pero como todo suele tener varias problemáticas, las cuales veremos mas adelante.</p>
<p># Método II:</p>
<p>Este método, también es uno de los mas conocidos y consiste en asociar las funciones con las estructuras de datos, haciendo que estas contengan los punteros.</p>
<pre class="brush: cpp;">
	struct Person {
		char * name;
		int age;
		void (* walk) (void *_self);
		void (* run) (void *_self);
		void (* talk) (void *_self, void *otherPerson);
	};

	person1-&gt;age;
	person1-&gt;run(person1);
	person1-&gt;talk(person1, person2);
</pre>
<p>En este caso cuando nosotros creamos la estructura le asociamos los punteros a los métodos los cuales invocamos con una sintaxis que nos podría hacer pensar en objetos pero no lo es. La principal cuestión de este patrón es la recursividad, como se puede ver la invocación no tiene mucho sentido:</p>
<pre class="brush: cpp;">
	person1-&gt;run(person1);
</pre>
<p>El hecho de acceder a la función run de person1 y tener que volver a pasarle la instancia lo vuelve algo poco amigable.</p>
<p># Método II (BIS):</p>
<p>Una posible alternativa que se podría suponer que funciones es utilizar inner functions ( solo soportado por el GCC ) para solucionar el problema anterior:</p>
<pre class="brush: cpp;">
	struct Person {
		char * name;
		int age;
		void (* walk) ();
		void (* run) ();
		void (* talk) (void *otherPerson);
	};

	static void * Person_init(void * _self){
		struct Person * self = _self;

		void inner_walk(){
			Person_walk(self);
		}
		self-&gt;walk = inner_walk;

		void inner_run(){
			Person_run(self);
		}
		self-&gt;run = inner_run;

		void inner_talk(void *arg){
			Person_talk(self, arg);
		}
		self-&gt;talk = inner_talk;

		return _self;
	}

	person1-&gt;run();
</pre>
<p>Pero lamento comunicar que esto no funciona, ya que el scope  de las inner functions esta limitado a al stack de llamada, por lo que llamar a person1-&gt;run(); fuera del Person_init genera un seg fault porque el self al que llaman todas las inner ya no esta mas dentro del stack.</p>
<p># Método III:</p>
<p>Esta forma es una combinación de sintaxis del Método II con el concepto del Método I, es decir utilizamos punteros a funciones dentro de nuestra estructura pero lo trabajamos como si fueran clases con métodos estáticos:</p>
<pre class="brush: cpp;">
	struct PersonClass {
		void (* walk) (void *_self);
		void (* run) (void *_self);
		void (* talk) (void *_self, void *otherPerson);
	};

	struct Person {
		char * name;
		int age;
	};

	void  Person_walk(struct Person *);
	void  Person_run(struct Person *);
	void  Person_talk(struct Person *, struct Persona *);

	static const struct PersonClass PersonClass = {
			Person_walk,
			Person_run,
			Person_talk
	};

	struct Person *person1;

	PersonClass.run(person1);
</pre>
<p>Bueno dejando de lado como inicializamos  ( ya que lo voy a exponer mas adelante ), vemos que la forma de trabajar de esto es mas o menos similar a las anteriores pero rejunta un poco de cada una. El punto es ¿Porque hace  PersonClass.run(person1); en vez de hacer  Person_run(person1)?<br />
La respuesta es simple, C no es un lenguaje que nos deje sobre-escribir funciones tal como se puede en otros lenguajes, y menos hacer sobrecarga de funciones por lo cual dentro de nuestro entorno de compilación solo puede existir un solo  Person_run que tiene un único comportamiento predefinido. Cuando trabajamos con PersonClass.run, este resulta ser un puntero a una función por lo cual nosotros podemos optar por cambiar el puntero para que apunte a otra función y con eso logramos cambiar la implementación Esto seguramente nos puede resultar muy útil para de alguna forma mockear nuestras estructuras o realizar cierto tipo de herencia ( veremos mas adelante ).<br />
Como detalle hay que tener en cuenta que el manejo de punteros a funciones bajo esta metodología no es de los mas performante que existe. Esto es porque el compilador no sabe resolver los punteros de las funciones para que queden de tal forma que sean contiguos. Esto nos podría generar que el IP del CPU valla saltando de lado a lado por la memoria generando una enorme cantidad de page fault, cosa que sin la utilización de punteros el compilador puede ordenar la memoria para minimizar esta situación</p>
<p># Método IV:</p>
<p>Como ultimo método pediremos ayuda a las poderosas macros de C:</p>
<pre class="brush: cpp;">
	#define INIT(var)	void var##_run() { Person_run(var); } \
				void var##_walk() { Person_walk(var); } \
				void var##_talk(arg) { Person_talk(var, (void*)arg); }

	#define NEW(var, type)	type *var = malloc( sizeof(type) ); INIT(var)

	NEW(person1, struct Person);

	person1_run();
	person1_talk(person2);
</pre>
<p>Tal y como se observa corremos con las ventaja de que en esta ocasión el pre-compilador nos ayuda a construir las invocaciones y finalmente podremos lograr una sintaxis en la que invocamos el método de una instancia. Nuestro principal problema acá es que nuestro scope es reducido ya que el NEW es local al bloque y si pasamos person1 como referencia a otra función dentro de esta otra deberíamos hacer INIT(person1). Por otro lado hay que tener en cuenta que eso obviamente nos genera una gran cantidad de código extra que si bien no es visible en la edición del código si lo puede ser cuando se compila.</p>
<p><strong>Instanciación &amp; Destrucción:</strong></p>
<p>Hasta lo que mencione ahora otro de los factores a tener en cuenta en el modelo orientado a objetos es la instanciaciones de un objeto. A los fines prácticos cuando uno instancia una clase se reserva memoria para el objeto y se inicializa esta misma. Vamos a ver como logramos eso:</p>
<pre class="brush: cpp;">
#ifndef CLASS_H_
#define CLASS_H_

	#include &lt;stddef.h&gt;
	#include &lt;stdarg.h&gt;

	struct Class {
		char * name;
		size_t size;
		void * (* ctor) (void * self, va_list * app);
		void * (* equals) (const void * _class1, const void * _class2);
		void * (* dtor) (void * self);
	};

	int Class_equals(const void * _class1, const void * _class2);

#endif

int Class_equals(const void * _class1, const void * _class2) {
	const struct Class * class1 = _class1;
	const struct Class * class2 = _class2;
	return strcmp(class1-&gt;name, class2-&gt;name) == 0
					&amp;&amp; class1-&gt;size == class2-&gt;size;
}
</pre>
<p>Acá tenemos definido lo que seria el molde de una clase genérica, lo que vamos a hacer es crear un tipo de clase, que para este caso vamos a tomar los String, y vamos a ver como manejarlo utilizando el Método III de relación entre objetos y mensajes.<br />
Pero antes es necesario implementar nuestro mecanismo de construcion de objetos y para ellos vamos a tener:</p>
<pre class="brush: cpp;">
#ifndef OBJECT_H_
#define OBJECT_H_

void * new (const void * type, ...);
int instanceOf (const void * obj, const void * class);
void delete (void * obj);

#endif /* OBJECT_H_ */

#include
#include
#include
#include

#include &quot;Class.h&quot;
#include &quot;Object.h&quot;

void * new(const void * _class, ...) {
const struct Class * class = _class;
void * p = calloc(1, class-&gt;size);
assert(p);
*(const struct Class **) p = class;
if (class-&gt;ctor) {
va_list ap;
va_start(ap, _class);
p = class-&gt;ctor(p, &amp;amp;ap);
va_end(ap);
}
return p;
}

int instanceOf(const void * obj, const void * _class) {
const struct Class ** cp = obj;
const struct Class * class = _class;
return strcmp((*cp)-&gt;name, class-&gt;name) == 0
&amp;amp;&amp;amp; (*cp)-&gt;size == class-&gt;size;
}

void delete(void * obj) {
const struct Class ** cp = self;
if (self &amp;&amp; *cp &amp;&amp; (*cp)-&gt;dtor)
self = (*cp)-&gt;dtor(self);
free(self);
}
</pre>
<p>Como se observa ahora tenemos un mecanismo de instanciación y destrucción que nos permite llamar a los métodos correspondientes de una clase y liberar su memoria. Pero ahora necesitamos nuestra clase String y definir sus comportamientos de destrucción y construcción.</p>
<pre class="brush: cpp;">
#ifndef STRING_H_
#define STRING_H_

#include &quot;Class.h&quot;

struct String {
const void * class; /* must be first */
char * text;
};

struct StringClass {
void * (* clone) (struct String *);
int (* equals) (struct String *, struct String *);
};

void * String_constructor (void * _self, va_list * app);
void * String_destructor (void * _self);
void * String_clone (void * _self);
int    String_equals (void * _self, void * _other);

static const struct Class _String = {
&quot;String&quot;,
sizeof(struct String),
String_constructor, Class_equals, String_destructor
};

static const void * String = &amp;amp;_String;

static const struct StringClass StringClass = {
String_clone,
String_equals
};

#endif /* STRING_H_ */

#include
#include
#include
#include

#include &quot;Class.h&quot;
#include &quot;Object.h&quot;
#include &quot;String.h&quot;

void * String_constructor (void * _self, va_list * app){
struct String * self = _self;
const char * text = va_arg(* app, const char *);
self-&gt;text = malloc(strlen(text) + 1);
assert(self-&gt;text);
strcpy(self-&gt;text, text);
return self;
}

void * String_destructor (void * _self){
struct String * self = _self;
free(self-&gt;text), self-&gt;text = NULL;
return self;
}

void * String_clone (void * _self){
struct String * self = _self;
return new(String, self-&gt;text);
}

int String_equals (void * _self, void * _other){
struct String * str1 = _self;
struct String * str2 = _other;
return strcmp(str1-&gt;text, str2-&gt;text) == 0;
}
</pre>
<p>Finalmente, ya tenemos nuestra “clase” String con un constructor, un destructor, un clonador y un comparador. Para una pequeña prueba:</p>
<pre class="brush: cpp;">
int main(void) {
struct String *str = new(String, &quot;Hola!!!!&quot;);
struct String *aux = StringClass.clone(str);

printf(&quot;%s\n&quot;, str-&gt;text);
printf(&quot;%s\n&quot;, aux-&gt;text);
printf(&quot;%d\n&quot;, StringClass.equals(str, aux));

return EXIT_SUCCESS;
}
</pre>
<p>Output:</p>
<p>Hola!!!!<br />
Hola!!!!<br />
1</p>
<p>FUENTE: <a href="http://docs.google.com/viewer?url=http://www.planetpdf.com/codecuts/pdfs/ooc.pdf">http://docs.google.com/viewer?url=http://www.planetpdf.com/codecuts/pdfs/ooc.pdf</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simposiotecnico.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simposiotecnico.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simposiotecnico.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simposiotecnico.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/simposiotecnico.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/simposiotecnico.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/simposiotecnico.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/simposiotecnico.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simposiotecnico.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simposiotecnico.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simposiotecnico.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simposiotecnico.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simposiotecnico.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simposiotecnico.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=105&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://simposiotecnico.wordpress.com/2010/02/18/%c2%bf-ansi-c-orientado-a-objetos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7baa99610204a510884be2c3ac05aaa8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jarlakxen</media:title>
		</media:content>
	</item>
		<item>
		<title>27 Clientes SQL libres</title>
		<link>http://simposiotecnico.wordpress.com/2009/12/01/26-clientes-sql-libres/</link>
		<comments>http://simposiotecnico.wordpress.com/2009/12/01/26-clientes-sql-libres/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 18:21:45 +0000</pubDate>
		<dc:creator>jarlakxen</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://simposiotecnico.wordpress.com/?p=101</guid>
		<description><![CDATA[Sql clients are essential tools required by every developer. They help developer to easily execute SQL queries on any database. They are also very important for troubleshooting any database related issue. 1. SQuirreL SQL Client SQuirreL SQL is the most popular open source SQL clientClient. It provides a graphical Java program that will allow you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=101&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sql clients are essential tools required by every developer. They help developer to easily execute SQL queries on any database. They are also very important for troubleshooting any database related issue.</p>
<h2><a href="http://apps.open-libraries.com/squirrel-sql-client/" target="_blank">1. SQuirreL SQL Client</a></h2>
<p>SQuirreL SQL is the most popular open source SQL clientClient. It provides a graphical Java program that will allow you to view the structure of a JDBC compliant database, browse the data in tables, issue SQL commands etc.</p>
<h2><a href="http://apps.open-libraries.com/isql-viewer/" target="_blank">2. iSQL-Viewer</a></h2>
<p>iSQL-Viewer is an open-source JDBC 2.x compliant database front end written in Java. It implements across multiple platforms features of the JDBC API. It does everything through a single interface. iSQL-Viewer works with most database platforms, including PostgreSQL, MySQL, Oracle, and Informix. iSQL-Viewer provides a variety of tools and features to carry out common database tasks.</p>
<h2><a href="http://apps.open-libraries.com/liquibase/" target="_blank">3. LiquiBase</a></h2>
<p>LiquiBase is an open source (LGPL), database-independent library for tracking, managing and applying database changes. It is built on a simple premise: All database changes are stored in a human readable yet trackable form and checked into source control.</p>
<h2><a href="http://apps.open-libraries.com/henplus/" target="_blank">4. Henplus</a></h2>
<p>HenPlus is a SQL shell written in Java that works for any database that offers JDBC support. So basically any database. Why do we need this ? Any database comes with some shell, but all of them have missing features (and several shells are simply unusable). And if you work with several databases at once (if you are a developer, then you do this all the time), switching between these tools is tedious.</p>
<h2><a href="http://apps.open-libraries.com/quantumdb/" target="_blank">5. QuantumDB</a></h2>
<p>QuantumDB is a simple but powerful database access plug-in for the</p>
<p>Eclipse Development Platform. QuantumDB allows you to:</p>
<ul>
<li>connect to databases using standard JDBC drivers</li>
<li>review schemas, tables, views and sequences</li>
<li>look up column, index and foreign key information</li>
<li>issue ad-hoc queries or other SQL statements against the database</li>
</ul>
<h2><a href="http://apps.open-libraries.com/dbbrowser/" target="_blank">6. dbbrowser</a></h2>
<p>DBBrowser is an open source (GPL license), cross-platform tool which can be used to view the contents of a database. It supports CLOBS and BLOBS. It is designed to work with Oracle and MySQL. The user should never have to write SQL to view the data although a SQL window is provided. Support for ER (Entity Relationship) diagrams, XMLTypes and more DBMS is planned for the next version.</p>
<h2><a href="http://apps.open-libraries.com/jackcess/" target="_blank">7. Jackcess</a></h2>
<p>Jackcess is a pure Java library for reading from and writing to MS Access databases. It is not an application. There is no GUI. It is a library, intended for other developers to use to build Java applications.</p>
<h2><a href="http://apps.open-libraries.com/sql-workbench-j/" target="_blank">8. SQL Workbench-J</a></h2>
<p>SQL Workbench/J is a DBMS independet frontend for SQL databases. It can be used in batch mode and has strong export and import capabilities. It also offers some extensions to SQL (Variable substitution, BLOB support with local filenames) that try to unify handling SQL databases. It can copy table data directly between two different servers (batch and GUI).</p>
<h2><a href="http://apps.open-libraries.com/sql-admin/" target="_blank">9. SQL Admin</a></h2>
<p>SQL Admin is a Java client application to connect and send queries to different databases through JDBC. The main idea is to create a multiplatform and multidatabase thin client.</p>
<h2><a href="http://apps.open-libraries.com/sqleonardo/" target="_blank">10. SQLeonardo</a></h2>
<p>SQLeonardo is a powerful and easy-to-use tool that lets you query databases. When you work in SQLeonardo, you work in a graphical environment and working with data in this environment means you do not need to understand SQL, the standard programming language for talking to databases.</p>
<h2><a href="http://apps.open-libraries.com/sqlminus/" target="_blank">11. SQLMinus</a></h2>
<p>SQLMinus is an SQL Client with many developer-friendly features including :</p>
<ul>
<li>auto-linking across tables</li>
<li>dependency discovery</li>
<li>simple, intuitive and powerful keys to sort columns and filter data</li>
<li>tab-completion of table and column names</li>
<li>expansion of abbreviations (as in vi)</li>
<li>expansion of previously entered words (as in vim)</li>
</ul>
<h2><a href="http://apps.open-libraries.com/guam/" target="_blank">12. GUAM</a></h2>
<p>GUAM is, as the name implies, a GUI frontend to allow easy administration of MySQL users. It is written in Java and uses the Swing toolkit. Since it is a pure Java application, it is completely cross-platform and should work on any platform that has a full Java implementation (and maybe even some of the cut-down implementations). GUAM is released under the GNU General Public License (GPL).</p>
<h2><a href="http://apps.open-libraries.com/jsqltool/" target="_blank">13. JSQLTool</a></h2>
<p>JSQLTool is java swing SQL Tool used to view/edit database tables content and to execute sql scripts, by connecting to a database using JDBC/ODBC. JSQLTool supports multi-language and internationalization.</p>
<h2><a href="http://apps.open-libraries.com/vela/" target="_blank">14. Vela</a></h2>
<p>Vela is SQL and PL/SQL client with graphical user interface developed as a open source front end tool using JDBC and Java Swing. It supports Oracle Database. Vela is a Front-End tool for a Oracle developer. It supports most of the common developer tasks such as browsing database objects, viewing table definitions, viewing table data. It also supports editing and compiling SQL and PL/SQL scripts.</p>
<h2><a href="http://apps.open-libraries.com/dbmj/" target="_blank">15. DbmJ</a></h2>
<p>DbmJui is an attempt to clone DBMGUI, the database manager for MaxDB (formerly known as SAP DB). DBMGUI is written in VB so it can only run on Windows platforms. DbmJui uses the Java programming language. It can run on every platform where a JVM is available. Every version of DbmJui &gt; 0.1.5 (only 0.1.90 for now) uses SWT. Linux/GTK2 and Win32 releases are provided.</p>
<h2><a href="http://apps.open-libraries.com/viennasql-2/" target="_blank">16. ViennaSQL</a></h2>
<p>ViennaSQL is a GUI SQL client written in 100% Java. ViennaSQL can communicate with any database that has a JDBC driver. It should run anywhere Java runs. I use it on Linux and Windows NT 4.0 with Oracles 100% Java JDBC driver. ViennaSQL runs each query in a separate thread so the GUI remains alive while a query is running.</p>
<h2><a href="http://apps.open-libraries.com/adit/" target="_blank">17. Adit</a></h2>
<p>Adit is another database interface tool built with Java. Adit is meant to be a lightweight tool for querying a database.</p>
<p>Some of the current features include:</p>
<ul>
<li>Connect to any database with a JDBC driver</li>
<li>Save query results to a delimited file</li>
<li>Save and restore SQL statements to disk</li>
<li>View tables and field definitions</li>
<li>Get information (properties) about a query</li>
</ul>
<h2><a href="http://apps.open-libraries.com/database-java-console/" target="_blank">18. DataBase Java Console</a></h2>
<p>DataBase Java Console (DBJC) is a console program that allows people to query a database with predefined SQL queries, or to make repetitive queries (with different parameters) for administration purposes.</p>
<h2><a href="http://apps.open-libraries.com/queryform/" target="_blank">19. QueryForm</a></h2>
<p>QueryForm is a robust Java application that provides a powerful GUI front end for JDBC-enabled databases. It creates forms on-the-fly through which you can query tables and browse the results with just a few keystrokes or mouse clicks. It also lets you insert, update and delete table rows without typing any SQL statements.</p>
<h2><a href="http://apps.open-libraries.com/sqlshell/" target="_blank">20. SqlShell</a></h2>
<p>SQLShell is a fully functional textual database frontend with features like tabcompletion, command history optimized display and many more. SQLShell uses JDBC to connect to your favorite database. SQLShell has been succesfully tested on windows and linux.</p>
<h2><a href="http://apps.open-libraries.com/pklite-sql-client/" target="_blank">21. PKLite SQL Client</a></h2>
<p>PKLite SQL Client is an Open Source Java program can connect to any JDBC compliant database. It has basic query and update functionality and some simple database information capabilities. The goal of this project was to create a lightweight SQL client (under 1 MB) that was portable, easy to install and be vender independent. There are still some issues to be worked out so that is can be completely database vender independent but with this new build it is able to connect to any database that has a JDBC driver and run on any OS that has a Java VM.</p>
<h2><a href="http://apps.open-libraries.com/jisql/" target="_blank">22. jisql</a></h2>
<p>Jisql is a Java based utility to provide a command line interactive session with a SQL server. This application is conceptually modeled on the Sybase isql program with, obviously, strong similarities to Microsoft SQL/Server isql and osql (as Microsoft got SQL Server from Sybase). The program can act in a similar way to Oracles sqlplus and PostgreSQLs psql.</p>
<h2><a href="http://apps.open-libraries.com/datastream-pro/" target="_blank">23. Datastream Pro</a></h2>
<p>Datastream Pro is a database browser and data manipulation tool. It is intuitive, easy to use, reliable and stable. It supports almost any JDBC compliant database (tested on Oracle, MySQL, postgreSQL and HSQLDb). It is avaliable on both Linux and Windows. Datastream Pro allows you to browse and edit the data in your database. Run SQL queries and scripts, Simultaneously connect to multiple databases, has an easy to use connection wizard, Secure, personalised settings for connections and preferences and even has a built in text editor.</p>
<h2><a href="http://apps.open-libraries.com/execute-query/" target="_blank">24. Execute Query</a></h2>
<p>Execute Query is an operating system independent database utility written entirely in Java. Using the flexibility provided by Java Database Connectivity (JDBC), Execute Query provides a simple way to interact with almost any database from simple queries to table creation and import/export of an entire schemas data.</p>
<h2><a href="http://apps.open-libraries.com/myjsqlview/" target="_blank">25. MyJSQLView</a></h2>
<p>MyJSQLView provides an easy to use Java based user interface frontend for viewing, adding, editing, or deleting entries in the HSQL, MySQL, Oracle, and PostgreSQL databases. A query tool allows the building of complex SELECT SQL statements. The application allows easy sorting, searching, and import/export of table data.</p>
<h2><a href="http://apps.open-libraries.com/dbsa/" target="_blank">26. DBSA</a></h2>
<p>DBSA (DataBase Structure Analysis) is a tool for comparing schema snapshots. Differences are reported and an SQL patch can be generated. It includes a basic repository facility for schema history tracking</p>
<h2><a href="http://apps.open-libraries.com/dbsa/" target="_blank">27. DBClient</a></h2>
<p><a href="https://dbclient.dev.java.net/" target="_blank">https://dbclient.dev.java.net/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simposiotecnico.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simposiotecnico.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simposiotecnico.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simposiotecnico.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/simposiotecnico.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/simposiotecnico.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/simposiotecnico.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/simposiotecnico.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simposiotecnico.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simposiotecnico.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simposiotecnico.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simposiotecnico.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simposiotecnico.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simposiotecnico.wordpress.com/101/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=101&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://simposiotecnico.wordpress.com/2009/12/01/26-clientes-sql-libres/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7baa99610204a510884be2c3ac05aaa8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jarlakxen</media:title>
		</media:content>
	</item>
		<item>
		<title>Smalltalks 2009 en Buenos Aires</title>
		<link>http://simposiotecnico.wordpress.com/2009/11/10/smalltalks-2009-en-buenos-aires/</link>
		<comments>http://simposiotecnico.wordpress.com/2009/11/10/smalltalks-2009-en-buenos-aires/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 19:29:26 +0000</pubDate>
		<dc:creator>jarlakxen</dc:creator>
				<category><![CDATA[2009 Noviembre]]></category>
		<category><![CDATA[Conferencia]]></category>
		<category><![CDATA[Smalltalk]]></category>

		<guid isPermaLink="false">http://simposiotecnico.wordpress.com/?p=99</guid>
		<description><![CDATA[Y después de que la comunindad Argentina de Smalltalk se revigorizara a principios de este año cuando nuestro compatriota Gabriel Honoré ganara el premio &#8220;Innovation Award&#8221; de ESUG 2009, haciendo historia como la primera persona fuera de Europa en recibirlo, ahora se anunció la conferencia Smalltalks 2009 en Buenos Aires para los próximos días 19, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=99&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h1><span style="font-weight:normal;font-size:13px;">Y después de que la comunindad Argentina de Smalltalk se revigorizara a principios de este año cuando nuestro compatriota Gabriel Honoré ganara el premio &#8220;Innovation Award&#8221; de ESUG 2009, haciendo historia como la primera persona fuera de Europa en recibirlo, ahora se anunció la conferencia Smalltalks 2009 en Buenos Aires para los próximos días 19, 20 y 21 de Noviembre. </span></h1>
<p>El evento se realizará en la Facultad de Ciencias Exactas y Naturales de la Universidad de Buenos Aires (UBA) y su entrada es libre y gratuita, pero es necesarioregistrarse antes. Para la conferencia se organizó también, y por primera vez, unconcurso de programación con premios que incluyen un iPod Touch de 8 Gb y una cámara Nikon Coolpix L20.</p>
<p>La lista de disertantes que presentarán sus charlas es realmente impresionante, y la personalidad más destacada es sin duda Daniel Henry Holmes Ingalls, pionero de la programación orientada a objetos y principal diseñador y arquitecto de cinco generaciones de entornos de Smalltalk. Smalltalk es un sistema completo que permite realizar tareas de computación mediante la interacción con un entorno de objetos virtuales, generalmente compuesto por:</p>
<p>&nbsp;</p>
<ul>
<li>Una máquina virtual.</li>
<li>Una imágen virtual que contiene todos los objetos del sistema.</li>
<li>Un lenguaje de programación (también conocido como Smalltalk).</li>
<li>Una biblioteca de objetos reusables.</li>
</ul>
<p>&nbsp;</p>
<p>Opcionalmente un entorno de desarrollo que funciona como un sistema en tiempo de ejecución.</p>
<p>Y como lo menciona la fuente de esta noticia, aunque quizás no relacionado con la conferencia en sí, esta charla de Dan Ingalls sobre el proyecto Lively Kernel, una plataforma para aplicaciones web con gráficos dinámicos, acceso de red, y herramientas de desarrollo que no requiere nada más que un navegador, no tiene desperdicio.</p>
<p>&nbsp;</p>
<p>Via: <a href="http://www.vivalinux.com.ar/eventos/smalltalks-2009-buenos-aires" target="_blank">http://www.vivalinux.com.ar/eventos/smalltalks-2009-buenos-aires</a></p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simposiotecnico.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simposiotecnico.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simposiotecnico.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simposiotecnico.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/simposiotecnico.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/simposiotecnico.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/simposiotecnico.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/simposiotecnico.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simposiotecnico.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simposiotecnico.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simposiotecnico.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simposiotecnico.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simposiotecnico.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simposiotecnico.wordpress.com/99/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=99&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://simposiotecnico.wordpress.com/2009/11/10/smalltalks-2009-en-buenos-aires/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7baa99610204a510884be2c3ac05aaa8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jarlakxen</media:title>
		</media:content>
	</item>
		<item>
		<title>Links Interesantes II</title>
		<link>http://simposiotecnico.wordpress.com/2009/11/10/links-interesantes-ii/</link>
		<comments>http://simposiotecnico.wordpress.com/2009/11/10/links-interesantes-ii/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 19:20:02 +0000</pubDate>
		<dc:creator>jarlakxen</dc:creator>
				<category><![CDATA[2009 Noviembre]]></category>
		<category><![CDATA[Dependency Injection]]></category>
		<category><![CDATA[DI]]></category>
		<category><![CDATA[IoC]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://simposiotecnico.wordpress.com/?p=96</guid>
		<description><![CDATA[# Can Java Be Saved??? &#8211; http://java.dzone.com/articles/can-java-be-saved Un articulo muy intersante de leer, en resumidas cuentas esto es un poco de lo que ya sabemos y ya se viene sabiendo, Java es popular pero no quita que se este quedando atras. Hay que diferencias la plataforma de la JVM ( la cual es una masa [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=96&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong># Can Java Be Saved???</strong> &#8211; <a title="http://java.dzone.com/articles/can-java-be-saved " href="http://java.dzone.com/articles/can-java-be-saved">http://java.dzone.com/articles/can-java-be-saved</a></p>
<p>Un articulo muy intersante de leer, en resumidas cuentas esto es un poco de lo que ya sabemos y ya se viene sabiendo, Java es popular pero no quita que se este quedando atras. Hay que diferencias la plataforma de la JVM ( la cual es una masa ) con el lenguaje insignia que corre sobre esta ( el cual no es exactamente lo mejor que existe ).</p>
<p>Uno obviamente no puede comparar lenguajes en sentido de Java o Ruby, porque son mundo diferentes e incluso targets diferentes. Pero uno si puede ver como muchos lenguajes tienen un proceso evolutivo mucho mas rapido que Java.</p>
<p>Hace ya unos bueno 4 años que salio la JDK 6 ( si mucha gente no la conoce, una pena por ellos pero para los que utilizamos todo el potencial del lenguaje es mas que claro que ya se esta quedando vieja ) y recien a fines del proximo año veremos la JDK 7 ( que a traido mas decepciones que alegrías, no es que sea basura pero para muchos realmente se esperaba mucho mas ).</p>
<p>Estos features, mensionados solo son algunas de las cosas que realmente muchos esperabamos ver en Java 7 y que seguramente tendremos que esperar otros 4 años a Java 8 para quizas verlos. El impacto de estos es cierto que generarian cierta retrocompatibilidad ( quizas ) pero seria un paso mas para que el dia de mañana cuando una aplicacion/proyecto/sistema quiera aprobechar las nuevas cosas, nos permita mayor fluides en el desarrollo de este.</p>
<p>Java is Dead??</p>
<p>Yo creo que por ahora no, pero si en lo proximo 2 años no se hace algo, por darle mayor potencial al lenguaje definitivamente va a morir ( no es que desaparezca sino que realmente no va a resultar una buena opcion para el desarrollo y posiblemente empresas de ultima tecnologia, vease google, van a empezar a promocionar la utilizacion de otros lenguajes mas poderosos, faciles de usar, etc &#8230; vease python, ruby, etc &#8230; y esto no es algo nuevo ya que grandes lenguajes popularmente usados han desaparecido a lo largo de la historia justamente por su poca evolucion vease Visual Basic, C++, Cobol, etc&#8230; ). Obviamente no hablamos de que nos despertamos un dia y ya nadie usa Java, sino que hablamos de un proceso en el cual Java en sus años venideros simplemente va a empezar a dejarse de tomar como alternativa.</p>
<p>Ohh pero la grandes empresas apoyan al lenguaje, y??? queres pensarlo 100% empresa?? bueno esto es costo beneficio, si yo te digo tengo un lenguaje que me permite hacer lo mismo que Java pero en menos tiempo, de manera mas simple, mas legible y mas escalar, obvio que el cliente te dice donde firmo????? Porque defender un lenguaje que solo te complica las cosas no sirve de mucho que digamos.</p>
<p><strong> # Soft, Weak and Phantom references in Java &#8211; <a title="http://www.rachvela.com/2009/11/soft-weak-and-phantom-references-in.html" href="http://www.rachvela.com/2009/11/soft-weak-and-phantom-references-in.html">http://www.rachvela.com/2009/11/soft-weak-and-phantom-references-in.html</a></strong></p>
<p>Muy interesante para leer y tener en cuenta.</p>
<p><strong># Dependency Injection Makes Your Code Worse<span style="font-weight:normal;"> </span>-<span style="font-weight:normal;"> <a title="http://java.dzone.com/articles/dependency-injection-makes" href="http://java.dzone.com/articles/dependency-injection-makes">http://java.dzone.com/articles/dependency-injection-makes</a></span></strong></p>
<p>Me parecio interesante el comentario, sobre todo porque es casi un comentario muy cuestionable teniendo en cuenta de que muchos tendemos a utilizar inyeccion de dependencias. De por si creo que el autor no termino de entender el concepto y la utilización de inyeccion de dependencias. Yo creo que a fin de cuenta todo depende mucho del programador y como lo haga, si aplicas mal el patron de diseño y usas un framework malo seguramente vas a estar en un punto en donde vas a decir &#8230;.  de donde salio esto?? que esto??? y seguramente termines en un gran problema de dependencias. Pero si un programador con experiencia arma un buen modelado orientado a DI  seguramente no vas a tener mucho problema. Para Spring es feo, pero no hace que todos los IoC sean feos, Guice es muy bueno a mi criterio y bien aplicado es muy util y facilita varias cosas.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simposiotecnico.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simposiotecnico.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simposiotecnico.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simposiotecnico.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/simposiotecnico.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/simposiotecnico.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/simposiotecnico.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/simposiotecnico.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simposiotecnico.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simposiotecnico.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simposiotecnico.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simposiotecnico.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simposiotecnico.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simposiotecnico.wordpress.com/96/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=96&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://simposiotecnico.wordpress.com/2009/11/10/links-interesantes-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7baa99610204a510884be2c3ac05aaa8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jarlakxen</media:title>
		</media:content>
	</item>
		<item>
		<title>How to FIX SWT in Karmic Koala</title>
		<link>http://simposiotecnico.wordpress.com/2009/11/03/how-to-fix-swt-in-karmic-koala/</link>
		<comments>http://simposiotecnico.wordpress.com/2009/11/03/how-to-fix-swt-in-karmic-koala/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 20:03:24 +0000</pubDate>
		<dc:creator>jarlakxen</dc:creator>
				<category><![CDATA[Experiencias]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Karmic Koala]]></category>
		<category><![CDATA[Lotus Notes]]></category>
		<category><![CDATA[SWT]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://simposiotecnico.wordpress.com/?p=93</guid>
		<description><![CDATA[Para aquellos que no lo han probado y se pueden estar llevando una sorpresa, cualquier aplicacion que use SWT en Karmic Koala ( vease Eclipse, Lotus Notes, Vuze, etc &#8230; ) tiene algunos problemas graficos. Entre estos puede darse que botones no respondan al click o algunos paneles con trees se vean en blanco. &#160; El reporte del error: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=93&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Para aquellos que no lo han probado y se pueden estar llevando una sorpresa, cualquier aplicacion que use SWT en Karmic Koala ( vease Eclipse, Lotus Notes, Vuze, etc &#8230; ) tiene algunos problemas graficos. Entre estos puede darse que botones no respondan al click o algunos paneles con trees se vean en blanco.</p>
<p>&nbsp;</p>
<p>El reporte del error:</p>
<p><a href="https://bugs.launchpad.net/ubuntu/+source/gtk+2.0/+bug/442078/comments/28" target="_blank">https://bugs.launchpad.net/ubuntu/+source/gtk+2.0/+bug/442078/comments/28</a></p>
<p>&nbsp;</p>
<p>Starting from 2.18 on, GTK+ changed some of its internal behaviour (google for &#8220;client side windows&#8221;). This change is intentional, and needed for other development. It doesn&#8217;t make any difference to programs using GTK+ correctly, but it makes problems with programs that use GTK+ in weird ways, making wrong assumptions that only accidentally worked in the past. So, to ease the transition until those programs get fixed, an environment variable has been introduced to simulate the old behaviour.</p>
<p>&nbsp;</p>
<p>La solucion consiste basicamente en declarar una variable de entorno antes del arranque de la aplicacion:</p>
<p>&nbsp;</p>
<p>GDK_NATIVE_WINDOWS=true</p>
<p>&nbsp;</p>
<p>En caso de querer arrancar el eclipse simplemente deberiamos crear un script al estilo:</p>
<p>&nbsp;</p>
<p><a href="http://run.sh" target="_blank">run.sh</a></p>
<p>&nbsp;</p>
<p>y dentro de este declarar:</p>
<p>&nbsp;</p>
<p>export GDK_NATIVE_WINDOWS=true</p>
<p>/opt/eclipse/eclipse</p>
<p>&nbsp;</p>
<p>donde /opt/eclipse/eclipse es el path al binario ejecutable del eclipse.</p>
<p>&nbsp;</p>
<p>Es probable que esta misma solucion, arregle a otras aplicaciones que tambien usen SWT. En algunos lugares dicen de bajar las libs 2.16 ( las cuales si andan con SWT) y reemplazarlas por las 2.18 pero posiblemente se arruinen muchas cosas del sistema.</p>
<p>Existen ya unas versiones beta de algunas de las aplicaciones, las cuales tienen soporte para la 2.18. Por ejemplo segun tengo entendido para el Lotus Notes hay una version 8.5.1 que corre en Karmic Koala. La version 3.5.2 del Eclipse ya traeiria solucionado el problema.How to FIX SWT in Karmic Koala</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simposiotecnico.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simposiotecnico.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simposiotecnico.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simposiotecnico.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/simposiotecnico.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/simposiotecnico.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/simposiotecnico.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/simposiotecnico.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simposiotecnico.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simposiotecnico.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simposiotecnico.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simposiotecnico.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simposiotecnico.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simposiotecnico.wordpress.com/93/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=93&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://simposiotecnico.wordpress.com/2009/11/03/how-to-fix-swt-in-karmic-koala/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7baa99610204a510884be2c3ac05aaa8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jarlakxen</media:title>
		</media:content>
	</item>
		<item>
		<title>Links Interesantes I</title>
		<link>http://simposiotecnico.wordpress.com/2009/11/01/links-interesantes-i/</link>
		<comments>http://simposiotecnico.wordpress.com/2009/11/01/links-interesantes-i/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 00:47:31 +0000</pubDate>
		<dc:creator>jarlakxen</dc:creator>
				<category><![CDATA[2009 Noviembre]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[Inner Class]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[KDE]]></category>

		<guid isPermaLink="false">http://simposiotecnico.wordpress.com/?p=89</guid>
		<description><![CDATA[&#160; KDE A﻿lcanza las 4 millones de lineas de codigo:  http://www.linuxpromagazine.com/Online/News/Code-Statistics-KDE-Costs-175-Million-Dollars Para mi cada vez KDE se acerca mas a ser la posta por encima de Gnome. Son mas copados, mas rapidos, mejo desarrollo y estan mejor administrados. Got the Wrong Bobo? http://gmailblog.blogspot.com/2009/10/new-in-labs-got-wrong-bob.html Otra tool fumada de Google para Gmail. Un blog interesnate sobre HTML 5:  http://carsonified.com/blog/web-apps/the-future-of-html-5/ Esta interesante ver algunos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=89&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<ul>
<li><strong>KDE A﻿lcanza las 4 millones de lineas de codigo</strong>:  <a href="http://www.linuxpromagazine.com/Online/News/Code-Statistics-KDE-Costs-175-Million-Dollars" target="_blank">http://www.linuxpromagazine.com/Online/News/Code-Statistics-KDE-Costs-175-Million-Dollars<br />
</a>Para mi cada vez KDE se acerca mas a ser la posta por encima de Gnome. Son mas copados, mas rapidos, mejo desarrollo y estan mejor administrados.</li>
</ul>
<ul>
<li><strong>Got the Wrong Bobo?</strong> <a href="http://gmailblog.blogspot.com/2009/10/new-in-labs-got-wrong-bob.html" target="_blank">http://gmailblog.blogspot.com/2009/10/new-in-labs-got-wrong-bob.html<br />
</a>Otra tool fumada de Google para Gmail.</li>
</ul>
<ul>
<li><strong>Un blog interesnate sobre HTML 5</strong>:  <a href="http://carsonified.com/blog/web-apps/the-future-of-html-5/" target="_blank">http://carsonified.com/blog/web-apps/the-future-of-html-5/<br />
</a>Esta interesante ver algunos de los ejemplos que demuestran lo que se puede hacer hasta ahora, seguramente con la introduccion de WebGL para la aceleracion de graficos atravez de navegadores se pueda lograr un rendimiento mucho mas alto sin gastar tanta CPU.</li>
</ul>
<ul>
<li><strong>Todo lo que siempre quisite saber de una inner class</strong> <a href="http://viralpatel.net/blogs/2009/10/inner-classes-in-java.html" target="_blank">http://viralpatel.net/blogs/2009/10/inner-classes-in-java.html</a></li>
</ul>
<ul>
<li><strong>Java is Dead! &#8230;. is dead?</strong> <a href="http://muckandbrass.com/web/display/~cemerick/2009/10/01/Java+is+dead,+but+you'll+learn+to+love+it" target="_blank">http://</a><a href="http://muckandbrass.com/web/display/~cemerick/2009/10/01/Java+is+dead,+but+you'll+learn+to+love+it" target="_blank">muckandbrass</a><a href="http://muckandbrass.com/web/display/~cemerick/2009/10/01/Java+is+dead,+but+you'll+learn+to+love+it" target="_blank">.com/web/display/~</a><a href="http://muckandbrass.com/web/display/~cemerick/2009/10/01/Java+is+dead,+but+you'll+learn+to+love+it" target="_blank">cemerick</a><a href="http://muckandbrass.com/web/display/~cemerick/2009/10/01/Java+is+dead,+but+you'll+learn+to+love+it" target="_blank">/2009/10/01/Java+is+dead,+but+you&#8217;ll+learn+to+love+it</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simposiotecnico.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simposiotecnico.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simposiotecnico.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simposiotecnico.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/simposiotecnico.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/simposiotecnico.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/simposiotecnico.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/simposiotecnico.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simposiotecnico.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simposiotecnico.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simposiotecnico.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simposiotecnico.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simposiotecnico.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simposiotecnico.wordpress.com/89/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=89&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://simposiotecnico.wordpress.com/2009/11/01/links-interesantes-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7baa99610204a510884be2c3ac05aaa8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jarlakxen</media:title>
		</media:content>
	</item>
		<item>
		<title>Google DevFes en Argentina</title>
		<link>http://simposiotecnico.wordpress.com/2009/11/01/google-devfes-en-argentina/</link>
		<comments>http://simposiotecnico.wordpress.com/2009/11/01/google-devfes-en-argentina/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 00:41:00 +0000</pubDate>
		<dc:creator>jarlakxen</dc:creator>
				<category><![CDATA[2009 Noviembre]]></category>
		<category><![CDATA[Charlas]]></category>
		<category><![CDATA[Conferencia]]></category>
		<category><![CDATA[Google DevFes]]></category>

		<guid isPermaLink="false">http://simposiotecnico.wordpress.com/?p=86</guid>
		<description><![CDATA[El DevFest 2009 de Google, se enfocará en promover la apertura de las fronteras de las aplicaciones Web empleando las tecnologías de desarrollo de Google. Los ingenieros de Google y desarrolladores líderes serán tus anfitriones en un día completo de profundas sesiones sobre las últimas tecnologías de Google. &#160; Fecha: 17 de noviembre de 9 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=86&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2><span style="font-weight:normal;font-size:13px;">El DevFest 2009 de Google, se enfocará en promover la apertura de las fronteras de las aplicaciones Web empleando las tecnologías de desarrollo de Google. Los ingenieros de Google y desarrolladores líderes serán tus anfitriones en un día completo de profundas sesiones sobre las últimas tecnologías de Google.</span></h2>
<p>&nbsp;</p>
<p>Fecha: 17 de noviembre de 9 a 20 ( Paseo La Plaza Av. Corrientes 1660)</p>
<p>&nbsp;</p>
<p>URL: <a href="https://sites.google.com/a/mazalan.com.ar/devfest/home" target="_blank">https://sites.google.com/a/</a><a href="https://sites.google.com/a/mazalan.com.ar/devfest/home" target="_blank">mazalan</a><a href="https://sites.google.com/a/mazalan.com.ar/devfest/home" target="_blank">.com.ar/</a><a href="https://sites.google.com/a/mazalan.com.ar/devfest/home" target="_blank">devfest</a><a href="https://sites.google.com/a/mazalan.com.ar/devfest/home" target="_blank">/home </a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simposiotecnico.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simposiotecnico.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simposiotecnico.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simposiotecnico.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/simposiotecnico.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/simposiotecnico.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/simposiotecnico.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/simposiotecnico.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simposiotecnico.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simposiotecnico.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simposiotecnico.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simposiotecnico.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simposiotecnico.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simposiotecnico.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=86&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://simposiotecnico.wordpress.com/2009/11/01/google-devfes-en-argentina/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7baa99610204a510884be2c3ac05aaa8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jarlakxen</media:title>
		</media:content>
	</item>
		<item>
		<title>FatELF los nuevos binarios universales para Linux</title>
		<link>http://simposiotecnico.wordpress.com/2009/11/01/fatelf-los-nuevos-binarios-universales-para-linux/</link>
		<comments>http://simposiotecnico.wordpress.com/2009/11/01/fatelf-los-nuevos-binarios-universales-para-linux/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 00:39:06 +0000</pubDate>
		<dc:creator>jarlakxen</dc:creator>
				<category><![CDATA[2009 Noviembre]]></category>
		<category><![CDATA[64bits]]></category>
		<category><![CDATA[ELF]]></category>
		<category><![CDATA[FatELF]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://simposiotecnico.wordpress.com/?p=84</guid>
		<description><![CDATA[FatELF es nuevo formato de archivo que permite &#8220;embeber&#8221; múltiples archivos binarios ELF (Executable and Linkable Format) para diferentes arquitecturas en un solo archivo mucho más fácil de distribuir&#8230;. &#160; Sólo algunos de los beneficios anunciados que FatELF traería a Linux incluyen: Ya no será necesario que las distribuciones tengan descargas separadas para varias plataformas. Ya no será necesario [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=84&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2><span style="font-weight:normal;font-size:13px;"><a href="http://icculus.org/fatelf/" target="_blank">FatELF</a> es nuevo formato de archivo que permite &#8220;embeber&#8221; múltiples archivos binarios <a href="http://es.wikipedia.org/wiki/Executable_and_Linkable_Format" target="_blank">ELF</a> (Executable and Linkable Format) para diferentes arquitecturas en un solo archivo mucho más fácil de distribuir&#8230;.</span></h2>
<p>&nbsp;</p>
<p>Sólo algunos de los <a href="http://icculus.org/fatelf/#benefits" target="_blank">beneficios anunciados</a> que FatELF traería a Linux incluyen:</p>
<ul>
<li>Ya no será necesario que las distribuciones tengan descargas separadas para varias plataformas.</li>
<li>Ya no será necesario tener directorios /lib, /lib32 y /lib64 separados.</li>
<li>Ya no será necesaria la librería de compatibilidad ia32.</li>
<li>Soporte para binarios de 32 y 64 bits en un sólo archivo.</li>
<li>Se podrá distribuir un único archivo que funcione en Linux y en FreeBSD.</li>
</ul>
<p>&nbsp;</p>
<p>Via: <a href="http://www.vivalinux.com.ar/soft/fatelf" target="_blank">http://www.vivalinux.com.ar/soft/fatelf </a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simposiotecnico.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simposiotecnico.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simposiotecnico.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simposiotecnico.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/simposiotecnico.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/simposiotecnico.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/simposiotecnico.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/simposiotecnico.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simposiotecnico.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simposiotecnico.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simposiotecnico.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simposiotecnico.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simposiotecnico.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simposiotecnico.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=84&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://simposiotecnico.wordpress.com/2009/11/01/fatelf-los-nuevos-binarios-universales-para-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7baa99610204a510884be2c3ac05aaa8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jarlakxen</media:title>
		</media:content>
	</item>
		<item>
		<title>OWASP</title>
		<link>http://simposiotecnico.wordpress.com/2009/10/23/owasp/</link>
		<comments>http://simposiotecnico.wordpress.com/2009/10/23/owasp/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 15:30:50 +0000</pubDate>
		<dc:creator>ddelyerro</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Seguridad Informatica]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://simposiotecnico.wordpress.com/?p=77</guid>
		<description><![CDATA[OWASP, una organizacion creada para hacer a las aplicaciones más seguras.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=77&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.owasp.org/index.php/Main_Page" target="_blank">OWASP</a> (Open Web Application Security Project) es un proyecto open source para determinar, rankear y combatir inseguridades en el software. Esta sustentado por varias empresas, particulares y entidades educativas.</p>
<p>Abarca proyectos tanto de Java como de .NET.</p>
<p>Es muy piola el rankeo que tienen sobre vulnerabilidades en aplicaciones web y sirve de referencia a la hora de pensar como segurizar nuestras aplicaciones.</p>
<p>Está orientada al aprendizaje ya que categorizan, definen y ejemplifican los diferentes tipos de ataques. Incluso desarrollaron una aplicación insegura, llamada WebGoat con el fin de que el que quiera aprender la ataque de diferentes formas, tratando que explote <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Han desarrollado una herramienta para hacer pruebas de exploits, que se llama <a href="http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project">WebScarab</a>, hecha en Java que (en muchos casos) actua de proxy en comunicaciones HTTP y HTTPS, permitiendo realizar acciones típicas de exploits. Cabe destacar que existen muchas herramientas de este estilo (pagas o no), como por ejemplo <a href="http://www.metasploit.com/">Metasploit</a>.</p>
<p>Tambien <a href="http://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API">desarrollaron frameworks</a> para ayudar a la construcción de aplicaciones seguras.</p>
<p>Los siguientes artículos de wikipedia tienen una buena descripción de que trata OWASP y como no quiero reinventar la rueda, se los dejo para que profundicen:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/OWASP" target="_blank">ingles</a></li>
<li><a href="http://es.wikipedia.org/wiki/OWASP" target="_blank">castellano</a></li>
</ul>
<p>La pagina oficial del proyecto es <a href="http://www.owasp.org/index.php/Main_Page" target="_blank">http://www.owasp.org</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simposiotecnico.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simposiotecnico.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simposiotecnico.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simposiotecnico.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/simposiotecnico.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/simposiotecnico.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/simposiotecnico.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/simposiotecnico.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simposiotecnico.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simposiotecnico.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simposiotecnico.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simposiotecnico.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simposiotecnico.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simposiotecnico.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=77&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://simposiotecnico.wordpress.com/2009/10/23/owasp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/64c531e18d8024a32d8eb621bb23971b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Gote</media:title>
		</media:content>
	</item>
		<item>
		<title>JPA 2.0</title>
		<link>http://simposiotecnico.wordpress.com/2009/10/23/jpa-2-0/</link>
		<comments>http://simposiotecnico.wordpress.com/2009/10/23/jpa-2-0/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 15:05:48 +0000</pubDate>
		<dc:creator>belzabub</dc:creator>
				<category><![CDATA[2009 Octubre]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JPA2.0]]></category>

		<guid isPermaLink="false">http://simposiotecnico.wordpress.com/?p=75</guid>
		<description><![CDATA[Aca posteo algunos links de JPA2.0 era algo previsible de cambio con algunas mejoras importantes como la API de criteria que tenia hibernate años atras, no se como no vieron ese feature, hacer queries con strings es casi como usar jdbc con el mapeo resuelto, por suerte parece ser un error corregido para esta nueva [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=75&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>
<p>Aca posteo algunos links de JPA2.0 era algo previsible de cambio con algunas mejoras importantes como la API de criteria que tenia hibernate años atras, no se como no vieron ese feature, hacer queries con strings es casi como usar jdbc con el mapeo resuelto, por suerte parece ser un error corregido para esta nueva version, tambien vi que agregaron una api standard de cache, que es un must para que una aplicación sea mas o menos performante.</p>
<p><a href="http://www.infoq.com/presentations/whats-new-and-exciting-in-jpa-20">http://www.infoq.com/presentations/whats-new-and-exciting-in-jpa-20</a><br />
<a href="http://www.infoq.com/presentations/whats-new-and-exciting-in-jpa-20">http://en.wikibooks.org/wiki/Java_Persistence/What_is_new_in_JPA_2.0%3F</a><br />
<a href="http://www.infoq.com/presentations/whats-new-and-exciting-in-jpa-20">http://www.ibm.com/developerworks/java/library/j-typesafejpa/</a></p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simposiotecnico.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simposiotecnico.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simposiotecnico.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simposiotecnico.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/simposiotecnico.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/simposiotecnico.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/simposiotecnico.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/simposiotecnico.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simposiotecnico.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simposiotecnico.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simposiotecnico.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simposiotecnico.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simposiotecnico.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simposiotecnico.wordpress.com/75/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simposiotecnico.wordpress.com&amp;blog=9648752&amp;post=75&amp;subd=simposiotecnico&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://simposiotecnico.wordpress.com/2009/10/23/jpa-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8e4599fad8ab0dbe12e187174b259995?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">belzabub</media:title>
		</media:content>
	</item>
	</channel>
</rss>
