Manipulación de Base de Datos y Archivos con Prolog

En primer lugar cargamos la base de datos con los siguientes datos de países con sus respectivas capitales:

:- dynamic capital_of/2

capital_of(suiza,berna).
capital_of(chile,santiago).
capital_of(eeuu,washington).
capital_of(estados_unidos,washington).
capital_of(italia, roma).
capital_of(francia, paris).
capital_of(austria, viena).
capital_of(alemania, berlin).
capital_of(españa, madrid).
capital_of(peru, lima).
capital_of(mexico, ciudad_de_mexico).

Prolog tiene la capacidad de adquirir nuevas cláusulas en tiempo de ejecución probemos la siguiente linea una vez compilado la base:

?-capital_of(hawaii, X).
Nos damos cuenta que no se pudo unificar, ahora prueba:
?- listing.
listing muestra todas las cláusulas que conforman el programa en memoria hasta el momento. Ahora prueba:
?- listing(capital_of).
Ésto sólo muestra aquellas cláusulas asociadas al predicado indicado como parámetro.

Se pueden incluir más cláusulas a la base de datos mediante el predicado assert/1:
?- assert (capital_of(hawaii, honolulu)).
Sin embargo, ésto sólo funciona para predicados que han sido marcados como dínamicos mediante el predicado dynamic/1. de la forma como se marcó al predicado de nuestra base de datos.

Ahora como ya hemos ingresado datos a la memoria hacemos:
?- capital_of(hawaii, X).
Y esto nos resulta una respuesta exitosa.

Para Eliminar una cláusula hacemos los siguiente:
?- retract (capital_of(hawaii, honolulu)).
Existen más predicados que permiten inspeccionar el estado de la base de datos, inclusive para construir y ejecutar dinámicamente predicados en tiempo de ejecución. Para mayor información, puedes revisar la base de datos.

Usando archivos con tell('mi_archivo') se abre al archivo 'mi_archivo' y redirige la escritura hacia él, análogo a see. Para cerrar al archivo, aplicar told/0.
?-tell('mi_archivo'), write('andrea'), nl, write('javier'), nl, told.
Tras ejecutar la consulta anterior, revisa si existe el archivo 'mi_archivo' y si su contenido es el esperado.

Ahora, vuelve a leer los datos escritos mediante:
?-see('mi_archivo'), read(X), read(Y).
Ahora carga el programa 'learner.pl' y ejecuta start. Juega un rato con él. Para finalizarlo, ingresa stop.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% File learner.pl %
% Un pequeño programa que modifica su propia base de conocimientos. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


start :- consult('bdc.pl'),
nl,
write('Escribe los nombres completamente en minúsculas,'), nl,
write('seguidos de un punto.'), nl,
nl,
process_a_query.

process_a_query :- write('País? '),

read(Pais),
answer(Pais).

% Si el usuario ingresa "stop.", entonces grabar la nueva
% base de conocimientos y salir.
answer(stop) :- write('Grabando la base de conocimientos...'), nl,
tell('bdc.pl'),
listing(capital_of),
told,

write('Listo.'), nl.

% Si el país ya está en la base de conocimientos, entonces retornar
% el nombre de su capital.
answer(Pais) :- capital_of(Pais, Ciudad),
write('La capital de '),
write(Pais),
write(' es '),
write(Ciudad), nl,
nl,
process_a_query.

% Si el país no está en la base de conocimientos, entonces pedir
% el nombre de la capital e ingresar este fact a la base.
answer(Pais) :- \+ capital_of(Pais, Ciudad),
write('No conozco la capital de ese país.'), nl,
write('Por favor, dime cual es.'), nl,
write('Capital? '),
read(Ciudad),
write('Gracias.'), nl, nl,
assert(capital_of(Pais, Ciudad)),
process_a_query.
Revisa el programa, modifícalo, de manera que al ingresar delete, el programa borre un país de la base de datos, tal como indica el siguiente diálogo:

...
País? chile.
La capital de chile es santiago

País? delete.
Qué país deseas borrar? chile.
Se borró chile.

País? chile.
No conozco la capital de ese país.
...


Esto es una pequeña ayuda que se puede proporcionar para empezar a trabjar con base de datos y archivos usando Prolog.

Ver mi Dominio de mi Host en la misma pc

A muchos nos ha pasado que, al instalar un servidor en nuestro en nuestra pc, ya sea en Windows como en Linux, para visualizar nuestra pagina web recurrimos a esto:
http://127.0.0.1/
http://localhost
o también http://mi-ip/
pero cuando adquirimos un dominio para nuestro Host pasa de que en muchos casos no podemos visualizar la página con el dominio que hemos adquirido ya sea gratuito no-ip o comprado http://www.mi-dominio.com, bueno pues la solución posible para poder ver nuestra web es modificando nuestro archivo:
Para Linux: /etc/hosts
Para Windows: file:///C:/WINDOWS/system32/drivers/etc/hosts

Y modificamos lo siguiente:
--------------------------------------------

# Por ejemplo:
#
# 102.54.94.97 rhino.acme.com # servidor origen
# 38.25.63.10 x.acme.com # host cliente x

127.0.0.1 localhost
10.0.0.1 www.mi-dominio.com //este es el agregado
---------------------------------------

Eso es todo suerte.

Terminó el ciclo

Nuevamente terminó una etapa mas de mi vida en la universidad la cual se llama Ciclo académico, etapa que se toma un poco laborioso en sus dias finales ya que, las ultimas semanas son las que nos ponen los pelos de punta para presentar los proyectos y laboratorios finales de la mejor forma, los parciales finales, y no digo esto por que sea un mal estudiante que no me sepa organizar y haga todo a ultima hora noooo, sino que usualmente siempre hay cursos a los cuales uno les da más importancia que otros dejandolos un poco de lado, y esto es lo que origina estos apuros a ultima hora, claro no de todos sino de algunitos cursos. Ya sea por cualquier motivo los ultimos días de un ciclo de toman intensos, al esperar los resultados y salir exitosos en los examenes rendidos. Pero es gratificante para mi terminarlo bien, por lo que cuesta personalmente concluir un ciclo; y más aun con todos mis compañeros que me rodean a diario en las aulas binarias, aunque no siempre es felicidad ya que no todos estan en la misma condicion que uno.

Muchas veces en esos días, tanto es la fatiga que me pongo a pensar en "Cuando terminará esto", "vacaciones", "dormir", "dormir", "dormir", palabras que uno las extraña bastante en esos días, hasta que por fin se termino el Ciclo. Una anecdota chistosa es que una vez acabado todo, las ganas del descanso te duran menos de una semana, por que luego extrañas la universidad, los cursos, las clases, y hasta el olor jajaja. Pues lo único que hago en las vacaciones a parte de salir de relax es el de reunirme con la gentita de jomijushi y programar actividades binarias (como incentivar la investogación en el grupo), como las que solemos hacer: repartir temas de estudio, elaborar software académico, investigación, aplicaciones y muchas más; en otras palabras todo lo que me gusta hacer peor en este caso, hacerlo sin presiones sino por iniciativa propia, lo cual obliga a realizar un mejor trabajo personal.

Solo me queda buscar la forma de poder aprovechar estas vacaciones al máximo y así no arrepentirme de esta nueva oportunidad que tengo de hacer las cosas fuera de la universidad sin presionesss!!

Cambios drásticos en arquitectura de computadoras

El anuncio hecho por Intel que a partir de febrero de 2007 no habrá más P4 ni Pentium D y todo lo relacionado con esa arquitectura y que más bien apunta a la familia de procesadores Core Duo, además de su aviso de recorte de más de 10 mil empleados que hizo que sus acciones bajaran en el mercado, esto obliga a los usuarios(Nosotros) a examinar qué viene para el futuro de las computadoras.

Ese anuncio ha traído serios dilemas entre los usuarios al momento de adquirir una nueva computadora: “Comprar hoy o esperar después”.

Al asunto de Intel se agregan otros anuncios de fabricantes de softwares, procesadores y accesorios.

Windows Vista(como si fuera gran cosa) estará en el mercado a principios de 2007 y la mayoría de computadoras tendrán que ser actualizadas para soportar tal sistema operativo. Microsoft aconseja que si se va a comprar un equipo nuevo, éste tenga la etiqueta de “PC apta para Windows Vista”. Lo que quiere decir que si hoy se compra una computadora con XP, no recibirá el Vista gratis.

Así es que por ahora, si compra una computadora, debe asegurarse lo siguiente: que sea capaz de soportar Windows Vista y que preferiblemente incluya procesadores con soporte para tal sistema operativo como el Dual Core de Intel o AMD Athlon 64 X2. La próxima generación de procesadores AMD es el Opteron, que ha gozado de mucha aceptación entre la comunidad de informáticos.
Fuente: http://www.elnuevodiario.com.ni/

IBM desarrollará la supercomputadora más poderosa del mundo

La computadora más poderosa del mundo, bautizada Roadrunner (correcaminos) será desarrollada por IBM y podrá correr 1 petaflop (Floating point Operations Per Second/operaciones de punto flotante por segundo) es decir mil billones de operaciones por segundo.

En la fase inicial se instalarán 16 mil procesadores Cell (desarrollado por IBM, Sony y Toshiba para la consola de juegos PlayStion 3) lo cual demuestra el cambio producido en la última década en cuanto a diseño de microprocesadores, los cuales han pasado del uso de aplicaciones domésticas a supercomputadoras.

El costo total de este monstruo -al final de su construcción en 2008- será de 110 millones de dólares y también contará con 16 mil microprocesadores AMD Opteron que serán agregados al término del ensamblaje.

Para orquestar todos estos procesos, los ingenieros de IBM crearon una aplicación llamada "Hybrid Programming" (Programación Híbrida) que permitirá manejar las dos tecnologías (Cell y Opteron) para que trabajen en conjunto.

Roadrunner será instalada en el Laboratorio Nacional de Los Alamos, en New Mexico, Estados Unidos, y estará a cargo de manejar el stock de armas nucleares estadounidenses. El tamaño de la bestia será el de 3 canchas de básquet, y tendrá un sistema de refrigeración diseñado especialmente para la estructura.

En la actualidad la supercomputadora más potente del mundo es Blue Gene -instalada en laboratorio estadounidense Lawrence Livermore- encargada de transmitir datos entre distintas redes de investigación científica.
Fuente: http://www.clarin.com/

Compresor usando Huffman

Compresor Mickito

Actualmente estoy de vacaciones y bueno decidí elaborar la construcción de un Compresor de Archivos para esto estoy siguiendo las bases que empleó Huffman, espero terminar lo más pronto posible.
Si alguien tiene una idea de ayudar a colaborar en este trabajo, solo tiene que comentar sus ideas las cuales seran expuestas a todos; tengo la intensión de trabajarlo en el lenguaje Java. Como primer paso será elaborar simplemente un compresor de texto, por ejemplo los archivos txt; mas adelante iremos avanzando en las diferentes ramas generales de compresión.