martes, 30 de noviembre de 2010

Archivo para probar algoritmos de Ordenamiento Externo

En esta ocasión me gustaría proporcionarles a través de este medio, un archivo en formato binario que contiene más de 5000 nombres y con el cual se puede realizar una prueba confiable de los algoritmos de ordenamiento externo Mezcla natural y Mezcla directa o de intercalación que hemos revisado en la clase de Estructuras de Datos en el Instituto Tecnológico de Toluca.

Dicho archivo proviene de un proyecto denominado "Project Euler", que es un proyecto donde se convoca a la comunidad apasionada de la programación a resolver acertijos de distinto nivel con el fin divertirse por medio de la programación. El proyecto se nombró en honor al matemático Leonard Euler. En uno de los problemas (concretamente, en el problema 22) se proporciona un archivo con los más de 5000 nombres pero en formato de archivo de texto. Para nuestros proyectos, lo convertí a archivo binario.

Dicho archivo contiene los nombres en completo desorden, de modo que se pueda apreciar el buen funcionamiento de los métodos de ordenamiento de los que nos hemos encontrado.

Aquí puedes descargar el archivo.

Aquí puedes encontrar el código de la mezcla natural.

Si desean más información acerca del Proyecto Euler, pueden visitar su página web: http://projecteuler.net/

domingo, 28 de noviembre de 2010

SQL: Filtrar por Columna Resultado de Agrupado

Nota: Para poder seguir mejor este ejemplo y poder ejecutar las consultas, te recomiendo seguir las instrucciones para configurar el ambiente de trabajo en la parte 1 del tutorial de SQL.

En este post analizaremos una pregunta que recibí en la parte 3 (Consultas con agrupados) del tutorial de SQL. La siguiente consulta obtiene lo que ha gastado en total cada cliente en la renta de films.

SELECT customer.customer_id, first_name, last_name, SUM(amount) 
FROM customer 
INNER JOIN payment ON (customer.customer_id=payment.customer_id) 
GROUP BY customer.customer_id, first_name, last_name;

Pero, ¿cómo podemos filtrar por columnas que son resultado de agrupados? Específicamente, en la consulta anterior, ¿cómo desplegamos sólo los clientes que hayan gastado 100 o más? Este dato es resultado de usar una función de agrupado; es decir, no es una columna directa de la tabla. Por ello, no lo podemos usar directamente en la cláusula where. Lo que vamos a usar son consultas anidadas. La consulta original servirá como la tabla de otra consulta. Veamos la consulta que obtiene el resultado deseado:

SELECT *
FROM
(
   SELECT customer.customer_id, first_name, last_name, 
          SUM(amount) AS gasto_total
   FROM customer
   INNER JOIN payment ON (customer.customer_id=payment.customer_id)
   GROUP BY customer.customer_id, first_name, last_name
) ClientesConPagoTotal
WHERE gasto_total >= 100;

Como puedes observar, el resultado de la consulta original se usa como la tabla fuente de la consulta externa - nota que asignamos un nombre a esta tabla interna: ClientesConPagoTotal. También nombramos la columna que contiene el resultado agregado: gasto_total. Ahora, todos las columnas de la tabla temporal ClientesConPagoTotal son visibles en la consulta externa y las podemos usar para realizar filtros, como en: WHERE gasto_total >= 100.

Saludos,
Toño.

jueves, 25 de noviembre de 2010

Apuntes Circuitos Eléctricos Unidad3

Hola,

En los siguientes links encontrarán los apuntes de la unidad 3 para la materia de Circuitos Eléctricos y Electrónicos impartida para Ingeniería en Sistemas Computacionales aquí en el Instituto Tecnológico de Toluca.

Apuntes parte1 (aquí está incluida la tabla de los teoremas de álgebra booleana)
Apuntes parte 2 (comienza con los mapas de Karnaugh)

Saludos y suerte mañana en el examen.

domingo, 21 de noviembre de 2010

Boliche Magnético

Se acerca el fin de semestre, y con ello la carga de trabajo aumenta. Cuando tomes un descanso, te recomiendo que juegues Boliche Magnético. En este juego, la bola de boliche es un protón, el objetivo es colocar cables con corriente para crear campos magnéticos que guíen a la bola. Cuando activas el switch, puedes dar clic en el área del juego para ver los campos magnéticos que se han creado. Si necesitas ajustar los cables, sólo baja el switch y realiza los cambios. Si sientes que ya lograste una buena combinación, activa el switch y lanza la bola. La siguiente imagen muestra la configuración que logré en mi primer intento en el nivel 3. Con esta configuración sólo quedó un pino de pie. La segunda imagen muestra cómo aumenté la carga del cable que está más cerca de la esquina superior derecha para poder tirar el último pino.

El juego lo pueden encontrar en la siguiente dirección:

¿Qué les parece el juego? ¿A qué nivel llegaron?

jueves, 4 de noviembre de 2010

Test ADempiere en línea

Como sistema ERP, ADempiere es una herramienta muy completa y versátil. Sin embargo, para quien desee utilizarla ya sea desde la computadora personal o desde un negocio, la instalación puede resultar un tanto tardada a pesar de que existen interfaces de usuario e instaladores que realizan el proceso semiautomáticamente.

Para quienes desean comprobar los múltiples beneficios que este sistema trae consigo, sin embarcarse en el proceso de instalación, existe una versión en línea totalmente gratuita que puede ser utilizada y cumple con toda la funcionalidad de ADempiere. Esta versión fue lanzada por una empresa llamada Italica y la dirección en la que se encuentra es la siguiente:


La primera vez que se ingresa en el sitio, se pide al usuario algunos datos de tipo personal con el fin de que pueda ser identificado y se determine el propósito de la visita (Nota: es importante llenar todos los campos solicitados, ya que de lo contrario, no se puede avanzar a la siguiente página de login). En la siguiente imagen se muestra dicha pantalla:


Una vez que se ha completado la información solicitada, se procede a la página de login. El usuario y el password o contraseña (GardenAdmin y GardenAdmin respectivamente), se encuentran en la tabla a la izquierda:



También se puede seleccionar el idioma:


Cuando se completa el proceso para acceder a la aplicación, y una vez seleccionado el idioma, se presenta la interfaz para poder utilizar ADempiere:


Después de estos sencillos pasos, se puede disfrutar del uso de ADempiere sin pasar por la instalación.