Humanética

http://weblogs.javahispano.org/ricardo/date/20071219 Wednesday December 19, 2007

Plantilla de Open Office no cambia en Windows Vista

Se trata de un problema sumamente extraño. Tengo un programa de escritorio escrito en java y que utiliza algunas plantillas hechas con Writer de Open Office para producir un tipo de informe muy difícil de hacer de otra manera. Este programa se instala en algún lugar del equipo cliente, lo más usual en Archivos de Programa en Windows.

El caso es que luego de realizar algunas modificaciones solicitadas al programa incluyendo cambios en el formato de una de las plantillas hechas con Open Office, me doy con la sorpresa que en un equipo con Windows Vista no cambia el formato anterior, a pesar de que el resto del programa ha sido actualizado. Este problema no se presenta en otros equipos con Windows XP, aunque me falta verificar si existe problemas parecidos en otros equipos con Windows Vista.

Como una forma de solucionar el problema, intento hacer un Copiar y Pegar del archivo "nuevo" sobre el "antiguo", pero esto no parece tener ningún efecto, (a pesar de que la copia dice haberse realizado correctamente) al abrirlo sigue aparenciendo la versión antigua. El mismo resultado si se borra el archivo primero y luego se pega la nueva versión. O más aún si se borra, toda la carpeta y se vuelve a poner. Intento reiniciando el equipo. Nada, todo sigue igual.

Para solucionar el problema en ese momento (presionado por el hecho de que se requiere hacer uso del mismo en esos momentos) recurro a abrir ambas versiones del archivo, y copiar y pegar el contenido de uno dentro del otro (incluyendo los bookmarks), luego guardarlo.

¿Alguién tiene alguna idea de por qué ocurre esto?

http://weblogs.javahispano.org/ricardo/date/20061228 Thursday December 28, 2006

Microsoft quiere patentar el RSS

Tal como lo leen. Internet Explorer es uno de los últimos en incorporar esta tecnología (solo presente en IE7) y sin embargo, están presentando una solicitud para hacerse con esta patente, tal como pueden leer acá.

Esto ya de por si es indignante, pero M$ no es la única compañía que abusa de las patentes. IBM, que es la que tiene más patentes de software, presentó hace no mucho tiempo una demanda contra Amazon.

Si esto de por si ya es indignante, lo que no quepa en mi estrecho cerebro es como las autoridades competentes permiten que se patenten muchas cosas ridículas ... bueno, esta aún no se ha patentado ... esperemos que eso no ocurra ...

http://weblogs.javahispano.org/ricardo/date/20061219 Tuesday December 19, 2006

Google Trends, c# y swing

Estaba jugando con varios términos en Google Trends para ver si hallaba algo interesante. Se me ocurrió (entre muchas otras) comparar las búsquedas realizadas con los términos c# y swing.

Los resultados a la fecha de la publicación de este post son cuando menos curiosos. La evolución de las búsquedas de ambos términos varian más o menos de la misma forma a través del tiempo (desde 2004 hasta 2006). Pueden utilizar este enlace para observar los resultados.

Para verificar si las búsquedas principales habían sido realizadas en los mismos lugares (ciudades) cambié el orden de los términos. Por lo visto c# ha sido solicitado más en la India, mientras que swing en Brasil y EEUU.

http://weblogs.javahispano.org/ricardo/date/20061023 Monday October 23, 2006

Patentes: IBM demanda a Amazon

Esta historia absurda de las patentes de software tiene ahora como protagonistas a IBM y Amazon. De acuerdo a el diario El Comercio:

Según IBM, en las patentes se trata de funciones como el almacenamiento de datos en una red, la presentación de publicidad en un servicio interactivo o "el encargo de artículos con la ayuda de un catálogo electrónico".

Como puede observarse estas descripciones resultan muy generales e imprecisas y cualquiera de nosotros podría estar violando esas patentes por el solo hecho (entre otras cosas) de poner un catálogo electrónico y permitir a los usuarios solicitar artículos con esta ayuda. Esperemos que estas experiencias nos sirvan para evitar que en el resto del mundo (fuera de USA) se ceda ante la presión de aquellos a quienes les conviene que existan patentes de software.

La noticia original en este enlace.

http://weblogs.javahispano.org/ricardo/date/20060926 Tuesday September 26, 2006

db4o

Bueno, y después de escuchar tanto de sobre db4o y sus maravillas he decidido probarlo. Estoy leyendo la documentación (con la idea adicional de buscar un proyecto real en el cual utilizarlo; algo pequeño, para comenzar).

Qué fácil es persistir objetos y realizar las operaciones asociadas, incluso con objetos estructurados. También es sencillo realizar consultas, utilizar filtros con diferentes criterios, y manejar la herencia. Hay soporte para transacciones y se puede trabajar de forma embebida o como un servidor.

Los problemas que hasta ahora he encontrado (ya sea por ignorancia o porque realmente es una limitación de db4o) son los siguientes:

  • Si se envía una orden de borrar a un objeto que es referenciado por otro, se borra sin más, quedando objetos que referencian a uno que ya no existe. Es decir, no hay una restricción tipo Foreign Key de una base de datos relacional.
  • Para identificar un objeto, hay que recuperarlo. Al parecer no existe una forma de generar identificadores únicos para los mismos (bueno, tal vez esta no sea una limitación, sino mi forma de pensar).
  • No encuentro una forma de establecer una regla en la que solo exista un objeto con un valor en una de sus propiedades (por decir algo, no pueden existir dos ciudadanos con el mismo documento de identidad).
  • Los cálculos matemáticos sobre propiedades de los objetos no parece tan sencillo. El sql siempre me maravilló por su capacidad de crear "miles" de consultas distintas, algunas de las cuales pueden incluir cálculos verdaderamente complejos.
  • Tampoco veo claro como realizar consultas que abarquen varios objetos de forma masiva (algo así como consultas con join en una rdbms).
Si alguno de los lectores de este post sabe como (o tiene un enlace) hacer las cosas que menciono en la lista, por favor hagame llegar la información.

http://weblogs.javahispano.org/ricardo/date/20060916 Saturday September 16, 2006

En casa de herrero cuchillo de palo

Estaba buscando información sobre estudios de post grado en informática, sobre todo maestrías. Para ello ingresé a una de las universidades más conocidas de Lima en el área de ingeniería "la UNI".

Cual no sería mi sorpresa cuando ingresé a la sección de post-grado de la facultad de ingeniería de industrial y de sistemas. Se ve horrible con Firefox (sobre Linux): no se ven todos los menús y algunas letras aparecen montadas. Pueden verlo acá.

Por supuesto ya les escribí un correo electrónico informándoles de mi dificultad y de lo conveniente que sería que arreglen este problema.

http://weblogs.javahispano.org/ricardo/date/20060718 Tuesday July 18, 2006

Linedux

Leía en el diario "El Comercio" que hoy se presentará en el Concytec el proyecto Linedux; evento al cual me gustaría asistir.

La idea del proyecto es utilizar el software libre para crear herramientas que mejoren la calidad educativa. Para ello se ha creado una distribución especial de Linux basado en Ubuntu. Además se tiene previsto realizar actividades de investigación, difusión, desarrollo y capacitación al personal docente, en un plan integrado de trabajo. Es decir, luego de tener listo el primer "paquete", se realizaría un plan piloto, de donde se obtendrían datos para ir mejorando (desarrollo) el proyecto. Una vez que se alcance un estado estable y ajustado a la realidad podría ir aplicándose a grupos más grandes. Al menos es lo que he entendido de lo poco que he leído.

Pues nada, les deseo suerte en este interesante proyecto.

http://weblogs.javahispano.org/ricardo/date/20060624 Saturday June 24, 2006

Rumor: Microsoft podría comprar Yahoo o eBay

Parece que es una semana de mucho movimiento en M$. A mediados de semana se anunció que Bill Gates dejaría para el 2008 el puesto que tiene en la compañía para dedicarse a labores de ayuda social, con lo cual se abren muchas interrogantes sobre quien ocuparía su puesto.

Ahora circula este rumor, que de ser cierto cambiaría el escenario de las grandes empresas de Internet.

Esperemos a los siguientes días, semanas o meses ... a ver que ocurre. Pueden revisar este enlace para más detalles.

http://weblogs.javahispano.org/ricardo/date/20060622 Thursday June 22, 2006

Probando distribuciones de Linux

Hace mucho sin escribir :-S.

Y ya que andaba por acá y he visto el mensaje en otro blog que habla sobre Ubuntu Linux, me hizo recordar que yo también recientemente he instaldo un Ubuntu. Lo que me agrada es la facilidad para instalar y la búsqueda de simplicidad. La instalación la hice en una PIII, con 256 MB de memoria RAM y funciona muy bien, al menos hasta ahora.

Además estuve revisando la documentación para buscar una distribución más ligera para máquinas má s antiguas y pude ver que existía XUbuntu que funciona con Xfce como escritorio (y también existen KUbuntu, con KDE, y Edubuntu diseñada para el sector educativo).

Comparado con Mandriva y Suse es mucho más ligero. Las tres distribuciones (que son las que he instalado alguna vez) me parecen muy buenas. Claro que a Mandriva (o más bien Mandrake) le tengo un cariño muy especial porque lo vengo usando desde hace cerca de dos años en mi PC y sigue funcionando como el primer día (que diferencia con Windows =:-D ); ya algunos amigos me "fastidian" diciendo que debo de actualizarme. Pero la verdad, a mi hasta me da "pena" (y flojera) cambiarlo (¡Pero si funciona muy bien!).

http://weblogs.javahispano.org/ricardo/date/20060206 Monday February 06, 2006

JDeveloper, primera impresion

Hasta ahora he usado como IDEs de desarrollo en Java Eclipse y Netbeans. Ambos me parecen buenos, sobre todo desde la última versión (5.0) de Netbeas que ha mejorado bastante.

Ayer decidí bajar el JDeveloper de la página de Oracle para probarlo, ya que se tiene una versión gratuita. Tiene un aspecto bastante parecido al Netbeans (¿no estará construido sobre la misma base?), al menos en su apariencia inicial. Su manejo se siente "suave". Hay dos cosas que me han agradado mucho: 1)Tiene muy buena documentación (en inglés). Incluye tutoriales y presentaciones de demostración (si visitan los tutoriales en línea no se olviden de poner el cursor encima de los anteojos para ver las capturas de pantalla) 2)Al parecer viene integrado con todo lo necesario para comenzar a desarrollar tanto aplicaciones web como de escritorio sin necesidad de instalarle plugins y otras cosas (he bajado el Studio Download). Eso sí, el archivo pesa más de 250 MB y además requiere es exigente con los recursos.

Por otra parte me ha llamado mucho la atención el Oracle Application Development Framework (ADF).

ADF consta de:

  1. Oracle ADF Model
  2. Oracle ADF Controller (permite integrar Struts y JSF con el Oracle ADF Model )
  3. Oracle ADF Faces (ofrece una librer­ía de componentes para aplicaciones web construidas con JSF). Si mal no recuerdo esta es la parte que Oracle donó a la fundación Apache.
  4. Oracle ADF Swing (extiende el Oracle ADF Model para construir aplicaciones con Swing )
  5. Oracle ADF Business Components (simplifica la creación de servicios de negocios a los desarrolladores familiarizados con herramientas 4GL como Oracle Forms).

En la página de Oracle hay un diagrama con la arquitectura de estos componentes, así como explicaciones mucho más detalladas.

Otro aspecto interesante es el uso de TopLink como mecanismo de persistencia. Encima del cual se ha construido una implementación compatible con EJB3 (algo similar a lo que ocurre con hibernate y la implementación de EJB3 construida sobre el mismo). Esta es la razón por la que llegué ha descargar JDeveloper, buscando una implementación de EJB3 distinta de hibernate.

Nota.- Para acceder a la descarga (y posiblemente también la documentación) necesitan registrarse (de forma gratuita).

http://weblogs.javahispano.org/ricardo/date/20051121 Monday November 21, 2005

De regreso

Tanto tiempo sin aparecerme por acá. Pero ya regresé ¿acaso pensaron que se iban a liberar de mi tan facilmente? jejejejeje.

También he estado visitando otras tierras: aprendiendo sobre php (por necesidad) y python (por curiosidad); y ahora que tanto se habla por aquí­ de Ruby (exacto, en ningún omento he dejado de leer los mensajes) creo que también me voy a sumar a "la onda" e investigar un poco sobre el mismo.

Por otra parte en el último mes estuve de vacaciones haciendo un viaje por algunos lugares del Perú: Paracas, Arequipa, Cusco (claro, estando por ahí imposible no visitar Machu Picchu). Tal vez en otro post les esté contando más sobre esta travesía.

¿Y qué hay de Java? pues nada, sigue siendo mi lenguaje favorito (y no creo que esto vaya a cambiar, al menos no en un futuro inmediato). Eso sí, cada día me gusta mas Swing para las interfaces de usuario.

http://weblogs.javahispano.org/ricardo/date/20050113 Thursday January 13, 2005

Backup de MySQL con Ant

Con este post quiero contribuir con algo de mi experiencia a los ejemplos sobre Ant que aparecen en el weblog El Camino del Chela de Keko. Al igual que muchos, con el tiempo me he ido acostumbrando cada vez más a Ant como herramienta de trabajo.

Hace poco necesitaba que al empaquetar la aplicación que estaba desarrollando se incluyera una copia de la base de datos MySQL en forma de scripts. Esto normalmente se realizaría desde la línea de comandos con una instrucción como la siguiente:

mysqldump -u elUsuario -plaContraseña laBaseDatos > archivoSalida.sql

creandose un archivo con el nombre archivoSalida.sql en el mismo directorio donde se ejecuta la instrucción (se asume que el utilitario mysqldump esta en el path). Este archivo contiene los scripts necesarios para reconstruir la base de datos laBaseDatos. Los argumentos que estamos pasando son -u (usuario) y -p (contraseña) que no son necesarios en todos los casos.

La pregunta "de ley" es si esta labor repetitiva la puede realizar un script de Ant. De modo que luego de investigar un poco incluí las siguientes líneas en mi archivo build.xlm:

Creamos la propiedad backup con la ruta completa al directorio de backup para no tener que escribirla directamente

<property name="backup" value="el/directorio/de/backup" />

Este es el target que realiza la tarea de crear un backup de MySQL equivalente a la instrucción de línea de comandos mostrada más arriba. En caso de no tener el utilitario mysqldump en el path se puede agregar el parámetro dir con la ruta completa al directorio donde se encuentra el mismo

<target name="copiabd" depends="limpiar">
	   <!-- creamos una copia de la base de datos -->
	   <exec executable="mysqldump"
			      output="${backup}/archivoSalida.sql">
		   <arg line="-u elUsuario -plaContraseña laBaseDatos"/>
	   </exec>
</target>

He utilizado la tarea exec con la cual se puede ejecutar cualquier instrucción al igual que lo haríamos desde la línea de comandos. En el parámetro executable recibe el comando a ejecutar sin los argumentos. El parámetro output recibe el archivo de salida, es decir en que archivo quiero que coloque los scripts para reconstruir la base de datos (se puede incluir la ruta completa si quiero que lo coloque en otra ubicación que el directorio actual). Finalmente los argumentos son pasados como elementos y gracias a la etiqueta arg.

Con esto queda solucionado el problema y a partir de ahora cada vez que quiero crear un paquete distribuible de la nueva versión me basta con seleccionar el archivo build.xlm desde Eclipse (sí, uso Eclipse) y en pocos segundos tengo todo listo (base de datos incluida).

Observar esta posibilidad me llevó a preguntarme si es que sería posible colocar unos scripts de Ant para que realicen tareas de backup en un servidor. Por ejemplo se me ocurre que tenga una secuencia aproximadamente así:

  1. Genere el backup.
  2. Haga una compresión del mismo; dependiendo el día de la semana (Lunes, Martes, Miércoles, etc.) le coloque el nombre. Es decir, existirían 7 copias de respaldo de la base de datos uno por cada día de la semana.
  3. Copie el archivo comprimido en dos ubicaciones diferentes de la red a donde el servidor tenga permisos de acceso. Sobreescribiría los archivos con el mismo nombre.
  4. Si algo sale mal en cualquier parte del proceso que envié un correo electrónico a las personas responsables de velar por el buen funcionamiento del sistema.

Una tarea que se dispare automaticamente en el servidor cada cierto tiempo (por ejemplo todos los días a las 11 de la noche) ejecutaría el script de Ant.

Es cierto que el Manual dice que Ant a sido creado sobre todo para ayudar a las labores de desarrollo, especialmente para quienes utilizan Java, y su utilidad en este aspecto esta fuera de discusiones. Pero ¿no podría extenderse un poco más ahorrando de esta forma mucho trabajo?.

Alguno me dirá porque no escribir mejor un archivo .sh o .bat ya sea para *nix o Windows. Puede que tengan razón, sobre todo en *nix donde me parece que la tarea sería relativamente trivial. Donde no lo veo claro es en Windows, donde no tengo la menor idea de como haría ciertas cosas (y si se puede disponer de los utilitarios necesarios sin complicarse la vida). En todo caso pensaba que con Ant se podría tener la misma ventaja de usar Java, lo escribes una vez y te sirve para ejecutarlo en cualquier parte (bueno, tampoco tampoco, pero al menos).

Investigaré un poco el tema. Pero si algún visitante me puede dar algunos tips que me ahorren tiempo se lo voy a agradecer bastante.

http://weblogs.javahispano.org/ricardo/date/20041223 Thursday December 23, 2004

La estrategia de gmail

Seguro que muchos lectores ya tienen su cuenta de gmail. Me parece interesante la forma como este correo de Google a logrado difundirse y captar la atención; se nota que tienen asesores de marketing ... no como otros ... ¿se les ocurre el nombre de alguna compañía?. Se entregó cuentas a un selecto grupo de personas diciéndoles que era para probar el funcionamiento del mismo. De esta manera recibían retroalimentación de personas entendidas en la materia (con la consiguiente precisión de la información de retorno) al mismo tiempo que sometían a prueba el funcionamiento del servicio. Es decir una situación muy propicia para identificar fallas y mejorar la funcionalidad.

Posteriormente se le entregaba invitaciones para que estas personas se las dieran a otras que consideraban se lo merecían (por llamarlo de alguna forma). Este segundo grupo de personas a su vez, luego de transcurrido un tiempo, podrían hacer invitaciones a otras personas. Se ha generado de esta manera un crecimiento exponencial en el número de personas que tienen una cuenta en este correo, por lo cual no me extrañaría que en poco tiempo se convierta en uno de los más comunes.

La parte más interesante (para mi) viene dada, sin embargo, por el efecto psicológico. El correo gmail es "posicionado" como un correo al que solo tienen acceso unos pocos privilegiados, generando la envidia y el deseo del resto. Cuando a una persona le ofrecen "¿quieres una cuenta de gmail?" (y sabe de que estás hablando) es casi seguro (si no la tiene) que te diga que sí. Y luego, no es raro verlo sumamente contento (como no he visto con ningún otro correo) con su "juguete nuevo", además de una posible sensación (aunque sea fugaz) de pertenecer a la "crema y nata" del cibermundo.

He utilizado el término "posicionamiento" siguiendo el concepto formulado por Al Ries y Jack Trout. Estos autores entienden bastante bien el aspecto psicológico del marketing. Por ejemplo en su libro Las 22 Leyes Inmutables del Marketing escriben "El marketing no es una batalla de productos, es una batalla de percepciones". Es decir, desde el punto de vista del marketing no es tan importante si realmente tu producto es el mejor, sino si el público lo percibe como el mejor (aunque sea el peor). El posicionamiento tampoco es para ellos la cantidad de canales de distribución existente, ni el número de personas que compran un producto, ni siquiera el número de personas que lo usan. El posicionamiento es la "posición" que ese producto ocupa en la mente del consumidor. Un producto puede no estar muy difundido, pero bien posicionado (como elegante, resistente, fácil de usar, etc. O su contraparte como de mal guso, inseguro, dificil, etc.). Este concepto es todavía un poco más complejo, pero dejaremos para después una explicación más detallada.

http://weblogs.javahispano.org/ricardo/date/20041213 Monday December 13, 2004

En busqueda del desarrollo multiplataforma

Cuando comencé a utilizar Java lo hice por la promesa de "Write Once, Run Anywhere" que si bien no es completamente cierta, al menos es útil para una cantidad enorme de situaciones. Como programador de aplicaciones de escritorio e interfaces de usuario el contar con un sistema de widgets era fundamental. Swing no terminaba de convencerme, se ejecutaba con mucha lentitud y para mi gusto personal el look and feel predeterminado era (es) bastante feo. De modo que seguí investigando y me encontré con SWT.

SWT utiliza JNI (Java Native Interface, es decir una combinación de código Java y código nativo) para comunicarse con los controles propios de cada plataforma. Es por ello que para funcionar requiere de unos archivos adicionales, diferentes para cada sistema operativo. Cuando no encuentra un control que esta presente en un sistema operativo y no en el otro, en este último hace una simulación del mismo. De esta manera el programador puede escribir un solo código que funcione en diferentes plataformas. Al mismo tiempo las aplicaciones tendrán la apariencia y comportamiento propio del SO (en realidad aquí comienza parte del problema). Adicionalmente a esto, hay que mencionar que una aplicación hecha con SWT se inicia más rápido y normalmente consume menos memoria que su correspondiente en Swing.

Pero (todo tiene un pero) no podía ser verdad tanta belleza. Conforme comencé a utilizar Linux de manera predominante me dí cuenta que SWT no funciona tan bien como debería en Linux. A veces no se redibujan bien los controles (¿o será mi versión de GTK+?). Y por supuesto, se comporta y se ve diferente en diferentes sistemas operativos. En este último sentido, usar Swing es fantástico, lo que hagas se verá practicamente igual no importa donde lo ejecutes (eso creo).

Por otra parte nunca he abandonado la esperanza de poder compilar las aplicaciones hechas con Java a código nativo. A pesar del adoctrinamiento al que somos sometidos todos los novatos (y no tan novatos) en el mundo Java: "si compilas a código nativo perderás portabilidad", "no es necesario que lo hagas", "en ese caso mejor utiliza otro lenguaje", etc. Quizá tengan razón y quizá no. Lo cierto es que a mi me gusta mucho Java como lenguaje y si pudiera compilarlo a nativo sin restricciones sería genial para muchas ocasiones. De esta forma lograría basicamente el menor consumo de recursos (sobre todo memoria), un inicio más rápido de la aplicación y asegurar que la aplicación no sea descompilada por cualquier hijo del vecino.

La forma más conocida de convertir un programa hecho en Java a código nativo es mediante GCJ que forma parte del proyecto GCC (GNU Compiler Collection, un compilador libre para varios lenguajes sobre todo C y C++). Las aplicaciones compiladas con GCJ se enlazan con el GCJ Runtime (libgcj), que provee las clases basicas, el recolector de basura y que también puede actuar como un interprete de bycodes. Esto significa que bien podríamos tener aplicaciones que tengan partes compiladas y otras interpretadas. Pero (nuevamente el pero) lamentablemente no tiene implementado un soporte completo para Swing y (lo repito) SWT no me convence del todo en Linux.

Así que viene la pregunta de si es posible combinar código de C++ con el código nativo generado en GCJ. Y la respuesta es sí. Con GCJ el código Java es tratado como un subconjunto de C++ con algunas extensiones y de esta manera se compila, facilitando la tarea de hacer programas con ambos lenguajes. Para lograrlo implementa su propia forma de utilizar código C++ junto a Java: CNI. Lo que se puede hacer a partir de aquí ya queda en la imaginación de cada quién. He de advertir a los lectores que no puedo decirles que esto funcione de maravillas (o sean un desastre), pues aún estoy en fase de pruebas.

Hay muchos otros proyectos que también merecen ser tomados en cuenta como Java-Gnome o aquel que intenta implementar un clon de Swing utilizando como base SWT (en vez de AWT), y muchos más. Pero no puedo hablar mucho de ellos porque solo los he mirado de lejos.

http://weblogs.javahispano.org/ricardo/date/20041121 Sunday November 21, 2004

Wikipedia

Hace ya varios días (unos 10 por lo menos) les escribí a unos amigos explicándoles lo que es Wikipedia, la enciclopedia libre. Como me parece que esta información puede ser útil a otras personas reproduzco el texto:

Les cuento sobre esta enciclopedia (Wikipedia). En primer lugar funciona con un sistema de Wiki. Y ¿Qué es un Wiki? un wiki es un sitio web que tiene la característica principal que cualquiera (o las personas autorizadas) pueden editarlo y cambiar su contenido, agregando cosas, corrigiendo otras y borrando otras. En todo caso siempre se guarda un repositorio con los cambios que se han ido realizando a través del tiempo.

En el caso de Wikipedia, la posibilidad de editar esta abierta para "todos" y cuando digo todos quiero decir todos ... los que puedan claro acceder desde una computadora conectada a internet.

En segundo lugar, Wikipedia funciona bajo el sistema de conocimiento libre (por lo cual el asunto de usar un Wiki es solo el medio, pero el fondo del asunto es el conocimiento libre), una evolución de la filosofía del software libre. Esto significa que el conocimiento puede ser compartido por todos y para todos. De ahí que cualquiera pueda aportar sus ideas y conocimientos, pero también de ahí que cualquiera pueda cambiar lo que nosotros pusimos (si no quieres que esto ocurra, no lo pongas en Wikipedia) ... eso sí, en algún lugar de los archivos históricos siempre quedará aquello que se cambio o borró. No estoy seguro si un grupo de administradores supervisan el contenido ... aunque no me extrañaría que así fuera (como ocurre en el caso del software libre). Pero uno de los principios es la autoregulación. Se ha demostrado que cuando el público que visita un wiki es grande ... casi nunca se encuentra información inadecuada ... porque el mismo público se encarga de borrar el contenido inapropiado. El detalle es cuando el público es pequeño y la capacidad de autorregulación se ve menguada. Wikipedia ya esta comenzando a hacerse conocido en muchas partes del planeta y cada día es consultada por más gente.

Una tercera consecuencia de lo anterior es que quien coloque un contenido es porque posee los derechos de propiedad intelectual de lo que esta poniendo (porque recién lo está escribiendo) o esta copiando el contenido de algún lugar que permite la libre distribución de su información.