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.

Anuncios

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,