Expresiones Regulares – Java

El trabajo con expresiones regulares en java es relativamente sencillo y útil. A continuación un ejemplo de como reemplazar varios espacios en blanco por uno solo.

Primero, crear un compilado de la expresión regular mediante la clase Pattern, especificando que se buscará un conjunto de espacios de 1 ó más.

Pattern patron = Pattern.compile("[ ]+");

Creamos un objeto Matcher que permitirá establecer las coincidencias dentro de la cadena basados en el compilado anterior.

Matcher encaja = patron.matcher("x     000000000    estado    buenos    malos    rrrr");

Ejecutamos la operación de reemplazo para todas las cadenas que coincidan con nuestro patrón.

String resultado = encaja.replaceAll(" ");

Lo que obtendremos será de una cadena inicial:

x     000000000    estado    buenos    malos    rrrr

algo como

x 000000000 estado buenos malos rrrr

Saludos.

INTELIGENCIA ARTIFICIAL

Desde tiempo atrás, el ser humano ha sido considerado como el último eslabón de la cadena evolutiva, debido a poseer cualidades notables como la inteligencia y el razonamiento, que lo convierten en un ser único.  Pero, y si se lograra ‘emular’ esa inteligencia y razonamiento en una máquina? Acaso sería este el punto de partida para generar una nueva clase de ‘vida’?

Es así, que el afán de la humanidad por comprender la inteligencia humana, ha llevado a generar una ciencia denominada “inteligencia artificial”, cuyos inicios más notables se remontan a poco después de la segunda guerra mundial y denominada así en el año de 1956.

Para determinar correctamente el fin perseguido por la IA, es importante definir lo que se concibe por inteligencia, argumentando así que es “una capacidad especial, y superior a la media de un determinado grupo humano, para realizar determinadas actividades. En ámbitos académicos estaría relacionada con una sobrecapacidad mental para almacenar y procesar información”. Llegando a definir el objetivo de la IA como el intentar simular las actividades cognitivas que posee un ser humano en un sistema informático.

Compuesta de dos enfoques, simbólico y subsimbólico, la IA a llegado a estar presente en gran multitud de campos, que van desde económicos hasta militares, muchas de las veces la IA mezcla el hardware y software para llegar a formar sistemas complejos (robots humanoides) que son la mayor expresión de IA materializada.

En su objetivo de imitar la capacidad humana, se utilizan varios mecanismos, como redes neurales que basadas en “nanochips” replican la corteza cerebral e imitan formas de aprendizaje aún primitivas.

En la actualidad se ha logrado crear sistemas capaces de simular comportamientos humanos, como una conversación, o el crear medios de ‘aprendizaje’ automático y simular ‘recuerdos’ (memoria). Lo que puede llevarnos a preguntar, como podremos medir si un sistema es cada vez más ‘humano’? Esto basado en su ‘inteligencia’ (artificial). Para responder a esto, en 1950 Alan  Turing propone un  tipo de prueba (que lleva su nombre) capaz de medir la capacidad de la máquina para ‘engañar’ a un evaluador humano en una conversación, llegando a superarla cuando el evaluador no logre diferenciar si las respuestas dadas son de una máquina o de un humano.

Si bien la prueba de Turing es ampliamente aceptada, existen argumentos que expresan, que aunque una máquina pase este test, no será inteligente mientras no tenga conciencia de que el conocimiento que genera es conocimiento para ella, como lo menciona el filósofo norteamericano John Searle en su contribución llamada «el argumento de la habitación china«. Aunque hasta ahora ninguna máquina ha superado la prueba, los esfuerzos por interpretar y generar lenguaje humano cada vez son mayores, puesto que la IA es un conjunto de ciencias, de ahí la complejidad de la inteligencia del ser humano para ser imitada.

Los avances que se han venido dando en este campo, han permitido que cada vez más sea posible contar con ‘agentes inteligentes’, que resultan beneficiosos en multitud de situaciones, pero, hasta que punto una máquina puede llegar a ser ‘inteligente’?, Es muchas de las veces la pregunta más común, pues siempre se ha creído que la inteligencia como tal radica solo en el ser humano, y el dilema de saber si el ser humano podrá ser capaz de crear un ser más inteligente que él, es concebida como general en el mundo de IA.

Se cree que esto es posible, pues en poco tiempo la cantidad de transistores en una máquina será igual(o mayor) a la cantidad de neuronas en nuestro cerebro y la velocidad de procesamiento de un computador es ya lo suficientemente rápida como para imaginar todo esto.

Lo que aún queda como pregunta en mí, es hasta que punto se podrá confiar en aquellos nuevos ‘agentes inteligentes’ que ahora realizarán las tareas que antes eran realizadas por seres humanos? Esto debido a que los sistemas de IA son construidos en base a código (programación), un mundo en donde es prácticamente imposible enfrentar todos los posibles casos.

Esto lleva a pensar, muchas de las veces, en aquellas obras cinematográficas con tono apocalíptico, en donde la IA alcanza el punto máximo (tal vez no estéticamente) sino que es común encontrar máquinas con conciencia propia, funcionando a su voluntad, dominando sistemas complejos que causan pánico en las poblaciones. Aunque todo esto no sea más que ciencia-ficción aún cabe la pregunta, hasta que punto se podrá llegar a crear una conciencia propia en una máquina? Y aunque la respuesta va más allá de la inteligencia, es uno de los fines a largo plazo de la IA.

En definitiva, durante ya algunos años, hemos estado interactuando con sistemas IA en varias formas (ej, un bot de charla) y resulta interesante observar como esto ha ayudado en múltiples campos a optimizar tareas antes tediosas, ahora realizadas por sistemas expertos e inteligentes, aunque a la fecha estos aún necesiten o son un apoyo para los seres humanos. La idea es atractiva siempre y cuando no se enfoque a un lado opuesto, dígase la creación de IA como armamento bélico o la creación de sistemas inteligentes capaces de ser inclinados en generar beneficios a cierto sector (como el reemplazo de un corredor de bolsa por un software inteligente)

Al día de hoy, si bien estos avances son notables (aunque aún no tanto como realmente se deseara), uno de los factores que implica su adopción en el mundo es su relación costo-beneficio, puesto que en economías con mano de obra barata la automatización de tareas (inteligentes) resulta ser demasiado lento, haciendo que en el medio, la investigación en esos campos sea prácticamente nula.

La IA es un mundo relativamente nuevo, donde las mayores avances aún estar por venir, dentro de algunos años la interacción con máquinas se volverá algo muy cotidiano y normal, y hasta algún punto necesario, solo espero que nuestro rol no cambie y seamos nosotros los que lleguemos a ser dependientes de las máquinas como ellas son de nosotros ahora.

Bibliografía

Russell, S. & Norvig P. (2008) Inteligencia Artificial: Un enfoque moderno (2ª ed.) Madrid: Pearson Education S.A.

(2008. agosto 22) Inteligencia artificial y computadoras capaces de especular. Extraído de sitio Ecuador Ciencia el 01 de octubre de 2010. http://www.ecuadorciencia.org/

Infante, M. & Lara J. Un nuevo paso evolutivo Perspectivas darwinianas de la Inteligencia Artificial. Recuperado del sitio de Red Científica el 30 de septiembre de 2010. http://www.redcientifica.com/doc/doc200503280600.html

López-Ruiz, R. El Reto de la Inteligencia Artificial. Extraido del sitio de Red Científica el 01 de octubre de 2010. http://www.redcientifica.com/doc/doc200505170600.html

Moriello, S. Las máquinas del futuro, ¿podrán llegar a ser conscientes?. Consultado del sitio de Red Científica el 03 de octubre de 2010 http://www.redcientifica.com/doc/doc200302140312.html

Montes, H. & Álvarez, F. ¿Inteligencia artificial (IA) o razonamiento simulado? Extraído de Red Científica el 03 de octubre de 2010. http://www.redcientifica.com/doc/doc200206190001.html

Herrán Gascón, M. Ciencia-ficción, vida e inteligencia artificial: Buscando las grandes respuestas por el camino de la imaginación. Consultado en Red Científica el 01 de octubre de 2010.  http://www.redcientifica.com/doc/doc200106170001.html

Herrán Gascón, M. Inteligencia Artificial: Simbólico versus Subsimbólico. Extraído de Red Científica el 02 de Octubre de 2010. http://www.redcientifica.com/doc/doc199903130005.html

Ordoñez Servín, M. Inteligencia Artificial. Extraído del sitio de la Unam el 01 de octubre de 2010. http://www.tuobra.unam.mx/publicadas/020821090354.html

Inteligencia artificial en humanos para 2029. Extraído del sitio del diario el  informador de México. http://informador.com.mx

Crear Páginas Web desde Google

Entre los servicios que el grupo del gran buscador presenta me encontré con este: el Page Creator. El mismo es un proyecto dentro de los Google Labs.

Esta aplicación permite crear nuestras propias páginas web de una forma fácil y rápida, y cuenta con opciones como las de Autosaved que facilitan mucho el trabajo. Y la característica más importante (al menos para mí :-P) nos da un espacio de almacenamiento de hasta 100 MB pudiendo incluir dentro de él todos los archivos necesarios para armar nuestro trabajo.

Cuenta con un manejador gráfico para el diseño de la página  así como también la opción de modificar directamente el código html.

Vale la pena probarlo,

Saludos,

Complemento de Firefox para Twitter

Los adictos a Twitter siguen creciendo y como era de suponerse, las utilidades para facilitar el Twitteo ya estan llegando, en post anteriores comenté sobre una utilidad de escritorio para twitter, ahora les comparto una extensión de firefox que hace esto más fácil se llama Twitbin y ofrece muchas ventajas,pues es totalmente compatible con Firefox 3. Animense a probarlo y comenten que les parece…

http://www.twitbin.com

Saludos,

Publicado en General. 1 Comment »

Cliente para Twitter en Windows

Desde que la moda de twittear, o sea usar el servicio de Twitter, que funciona, como todos sabemos, bajo la pregunta «What are you doing?», cada vez es más gente la que utiliza este atractivo elemento de la web 2.0

Pero personalmente ya estaba un poco cansado de tener que abrir mi explorador cada vez que quería poner algo para Twitter(o Twittear como diría yo…) y buscando por la web que solución podía existir, porque seguramente yo no era el único que ya esta pensando así. Encontre varios clientes para mi escritorio que según se decia ofrecian considerables ventajas, pero el problema es que todos eran para Mac o Linux… y como aún no logro migrar de plataforma, estaba a punto de resiganarme en la búsqueda, cuando me tope con twhirle.

Twhirle es un cliente de escritorio multiplataforma desarrollado como aplicación bajo la plataforma AdobeAIR, el mismo que se presenta con una interfaz muy amigable, parecido al messenger. Y aunque es nuevo, su primer versión fue lanzada el 10 de Junio, cuenta con características muy llamativas:

  • remembering login credentials on user’s computer
  • all-in-one timeline with tweets, replies and direct messages
  • configurable auto-updates for the timeline
  • displaying user’s latest 20 status updates and direct messages sent
  • sending status updates
  • sending replies to other users (with quick buttons on others’ statuses)
  • sending direct messages to other users
  • showing user’s friends and followers
  • deleting own status updates and direct messages
  • input area can be hidden (configurable auto-hiding)
  • multi-account support
  • keyboard shortcuts
  • sys tray / dock icon support
  • audible and visual notifications
  • viewing and (un)setting favorites
  • (un)following users
  • auto-updating the program
  • changeable color schemes
  • searching for public tweets
  • filtering the timeline

Y lo mejor de todo, es libre solo tenemos que instalar AdobeAIR y funcionará muy bien.

Saludos,

Publicado en General. 1 Comment »

La nueva moda el «Plurking»

Cada vez más estamos haciendo parte de nuestras vidas la Web 2.0, si y cada vez con más fuerza, ya no es solo suficiente tener un pequeño blog o nuestros marcodores en del.icio.us. sino que el fenómeno actual es contar tu vida(lo que haces mientras estas conectado) a travez de la red.

Uno de estos sitios es el nuevo Plurk que compite directamente con sitios como Twitter. Pero cual es la diferencia?? pues Plurk permite que todo lo que haces se ubique en una especie de linea del tiempo lo mismo que los comentarios de tus amigos o fans que te siguen.

Esta nueva aplicación se muestra muy interesante y promete mucho. Además, para aquellos que estamos inmersos en el mundo de la programación, es una de los sitios que usa AJAX de forma masiva lo que lo hace más interasante aún.

Únete a esta nueva aplicación y si ya tienes que comparto mi dirección: aquí

Saludos,

Carga un Archivo .sql desde MySql

Un buen amigo me envió un backup de una base de datos que trabaja en MySql para que yo tambíen pueda trabajar con esos datos en un proyecto, que esperamos podamos terminar para comentarles, y bueno la pregunta era como importaba toda esa información directo a MySql?

Para hacer un ejemplo utilizaremos una base llamada demo y un archivo respaldo.sql ubicado en el directorio c:

Pues bien los pasos son muy sencillos, desde la línea de comandos ingresamos a nuestro servidor y creamos manualmente la nueva base de datos que estará vacía.

mysql> create database demo;

Luego salimos del servidor y nuevamente desde la línea de comandos digitamos los siguiente:

c:\Docu…..\> mysql demo<c:\respaldo.sql -u root -p

Digitamos la clave del administrador y listo, nuestro archivo .sql se ha cargado en nuestro servidor.

Algo muy sencillo que puede ser de gran ayuda cuando queremos llevar de un lado a otro toda la información de una base de datos.

Saludos,

Se busca el record Guinness para Firefox 3

Navengando un poco y leyendo información de aqui y de allá me tope con esta nociticia. «Establecer el récord mundial Guinness del software más descargado en 24 horas» Pero de que software estamos hablando?? Pues nada más y nada menos que del conocido y porque no decir, más usado navegador FIREFOX.

Y como se escucha por ahí que el lanzamiento de su versión 3 esta cerca, la misma que trae consigo mejoras tanto en navegavilidad como seguridad, la idea gira en torno ha esto, es decir, notificar a todos los que quieran ayudar a esta causa y empezar un frenética descarga de su nueva versión.

A mi parecer una idea muy interesante, claro, porque no descargar la nueva versión y contribuir de paso a una buena causa???. Te unes??? Si decides hacerlo visita aqui.

Espero que lo consigan… =;-)

Saludos,

Publicado en General. 1 Comment »

Cap. III — Nueva Economía


Con la terminación de la era Industrial y la entrada y desarrollo de la era Informacional(postindustrial), en donde se destacan todos los cambios tecnológicos, he incluso en los cambios en la producción de bienes a servicios, todo esto basado en la información y conocimiento aplicado. También trae consigo cambios en la economía llegando formar una Nueva Economía.

Esta Nueva Economía, también involucra producción, competitividad y algo muy importante como es la globalización de los productos.

Es decir, la productividad es más realizada en base al conocimiento, lo que implica la generación de productos(servicios) que se internacionalizan logrando una gran expansión del mercado, un mercado que crece sin barreras y donde la competitividad se hace muy presente involucrando la innovación de tecnologías de servicio como la mejor forma de sobresalir.

Además, esta nueva economía a transformado las fuentes de trabajo como a sus trabajadores. Ahora esta demanda personas muy cualificadas capaces de adaptarse a cambios y de generarlos, poco a poco los trabajos repetitivos y monótonos empiezan a ser obsoletos. Esto a hecho que muchas empresas empiecen a “migrar” desprendiéndose del espacio físico y utilizando uno de los mejores medios “Internet”.

Estas nuevas empresas ya prácticamente viven y crecen en la red o como muchas de ellas trasladan sus productos a la red(un claro ejemplo son las transacciones bancarias electrónicas) esto permite que su nivel demarcado aumente, pudiendo llegar a consumidores al otro lado del globo.

Y claro, en esta economía también el consumidor empieza a formar parte activa pues todo lo que se comercializa sigue sus preferencias y todas las empresas que quieren seguir creciendo deberán empezar a ver a los consumidores como generadores de nuevas ideas.

En definitiva, la Nueva Economía empezó a romper barreras y expandirse por todos lados y las empresas que quieren entrar o mantenerse deberán evolucionar e innovar.

Saludos,

SOLARIS Y SU NUEVO SISTEMA DE ARCHIVOS

Basado en un versión de Unix, Solaris es un sistema operativo implementado por Sun Microsystems que maneja su versión propietaria pero que a liberado un versión conocida como OpenSolaris.

Vale la pena recordar que el primer sistema Operativo que Sun Microsystem desarrolló se
llamó SunOS en los años 1983, empezando desde ese entonces la construcción y
mejora de su sistema.

Actualmente este sistema operativo se encuentra en la distribución “Solaris 10” que presenta muchos avances en cuanto a seguridad implementado una solución al caso de “todo o nada” basada en privilegios(mínimos) otorgados a las aplicaciones. Este se ejecuta sobre la arquitectura SPARC en 32 y 64 bits (Ultra Sparc) o sobre procesadores x86 (como
los de Intel y AMD).

Además, como debía de suponerse, esta libre de virus, y utiliza en él la tecnología del
Trusted Tolaris que garantiza una seguridad total al sistema.

Además, una de las características es la «Tecnología preventiva de auto recuperación» (PSH, Predictive Self-Healing) que se encuentra en el núcleo del sistema, esto contribuye a reducir los riesgos y aumenta las disponibilidad del equipo y PSH permite tomar medidas para reducir daños por futuros peligros que el caos pueda causar en los sistemas y como resultado reducir los tiempos de caída, en pocas palabras reducir tiempo y dinero.

SISTEMA DE ARCHIVOS ZFS

Solaris 10
utiliza el sistema dinámico de Archivos ZFS, fue diseñado e implementado por un
equipo de Sun liderado por Jeff Bonwick.

Una de sus ventajas es su gran capacidad 128 bits cuyo diseño hace que sea tan grande que en la práctica nunca se podría exceder sus límites. Ofrece una administración sencilla que automatiza y consolida complicados conceptos de almacenamiento y por otro lado protege todo los datos con sumas de 64 bits que detectan y corrigen el daño de datos silenciosos.

Además, utiliza un modelo transaccional copy-on-write. Conteniendo todos los punteros a bloques de un sistema de ficheros un checksum de 256 bits sobre el bloque apuntado, que
se comprueba al leer el bloque. Los bloques que contienen datos activos no se sobrescriben nunca; en su lugar, se reserva un nuevo bloque, y los datos modificados se escriben en él. Incluyendo para la sobrecarga, varias actualizaciones en grupos de transacciones, y se utiliza un log de intentos cuando se necesitan escrituras síncronas.

Otra ventaja en comparación con el sistema NTFS es que la interfaz de la línea de comandos simplifica drásticamente la administración. Se orienta a las tareas, por lo que
los administradores pueden expresar las tareas que desean llevar a cabo en lugar de tener que memorizar o buscar comandos crípticos.

En los sistemas FAT o NTFS los datos se pueden dañar de diferentes modos, como por ejemplo un error de sistema o una interrupción del suministro eléctrico inesperada, pero
ZFS impide el daño a los datos ya que mantiene la coherencia de los mismos en todo momento. Todas las operaciones son transaccionales. De este modo, no sólo se mantiene la coherencia sino también se eliminan todas las restricciones sobre la orden de E/S y se permite que el conjunto de los cambios se realice correctamente o se produzca un error.

Y aunque a decir verdad tiene mucho de bueno(bastante) el soporte para otros sistemas aún no esta implementado. Pero tan solo será cuestión de tiempo.

En definitiva el nuevo sistema de archivos ZFS presenta características muy favorables en cuanto a almacenamiento, prevención de daños y capacidad.

Saludos,