domingo, 26 de septiembre de 2010

Practicando SQL (Parte 2)

Te encuentras en la segunda parte de la serie "Practicando SQL":
  1. Configurando ambiente de trabajo y consultas básicas
  2. Consultas con más de una tabla
  3. Consultas con agrupados
  4. Consultas anidadas
En el post anterior configuramos el ambiente en el que estaremos trabajando. Ahora veamos algunas partes del comando SELECT con la siguiente consulta que muestra los films con rating R que duren entre 90 y 120 minutos inclusive.

SELECT title, rating, length
FROM film
WHERE rating="R" AND length>=90 and length<=120 ORDER BY length DESC;

Después de la palabra clave SELECT especificamos las columnas que queremos en nuestro resultado. La palabra clave FROM nos permite especificar la tabla de donde obtendremos los resultados. WHERE es seguido de las condiciones que deben cumplir las filas o registros que formarán parte del resultado. Por último, especificamos el orden de las filas en el resultado final usando ORDER BY; después de especificar la columna por la que queremos ordenar podemos poner la dirección ASC (ascendente, que es la default) o DESC (descendente). Ahora, despleguemos todas las ciudades con el país al que pertenecen. Recuerden que el comando describe nos ayuda a ver los campos o columnas de una tabla. La tabla city tiene un id (city_id), nombre (city) y una llave foránea (country_id) que nos permite conocer el país al que pertenece. La tabla country tiene un id (country_id) y nombre(city). La siguiente imagen muestra un ejemplo del resultado final.


Como pueden observar, necesitamos información de dos tablas (city y country). Si intentamos la siguiente consulta:

SELECT city, country
FROM city, country;

Obtendremos un resultado incorrecto (65400 filas en el resultado), ya que al especificar más de una tabla en FROM lo que se calcula es el producto cartesiano de las dos tablas; es decir, el resultado combina todas las ciudades (600) con todos los países (109) (600*109=65400). Nosotros sólo estamos interesados en las combinaciones ciudad-país que comparten el id del país. Para ello podemos especificar esa condición, como en la siguiente consulta:

SELECT city, country
FROM city, country
WHERE city.country_id = country.country_id;

Cuando especificamos más de una tabla en FROM, le llamamos JOIN. En este caso como estamos relacionando tablas donde una fila de la primer tabla se relacionan con una fila de la segunda tabla, le llamamos INNER JOIN.

Un pequeño detalle de la última consulta, es que si queremos especificar más filtros en WHERE, estaremos mezclando nuestro filtros con la condición que nos ayuda a relacionar las tablas. La siguiente consulta nos retorna todas las ciudades cuyo nombre empieza con T, acompañadas del país al que pertenecen. Noten que en WHERE sólo especificamos que la ciudad empiece con T, y con la clausula INNER JOIN ... ON especificamos como se relacionan las dos tablas:

SELECT city, country
FROM city
INNER JOIN country ON (city.country_id=country.country_id) WHERE city LIKE "T%";

Ahora veamos una consulta que regresa todos los films que duran 2 horas junto con los actores que participaron en cada film. En este caso ya estamos usando tres tablas.

SELECT title, first_name, last_name
FROM film
INNER JOIN film_actor ON (film.film_id=film_actor.film_id)
INNER JOIN actor ON (film_actor.actor_id=actor.actor_id)
WHERE length=120
ORDER BY title;

Siguiente post...
Veremos consultas que involucran agrupados, por ejemplo saber cuántos films ha realizado un actor.

viernes, 24 de septiembre de 2010

Esculturas de origami y las matemáticas

Natural Cycles, página de Erik Demaine

Erik Demaine es un profesor del área de Ciencias de la Computación en el Instituto Tecnológico de Massachusetts (MIT). Pero sobretodo es un genio de los que muy pocas veces escuchamos. Durante su infancia su educación corrió a cargo de su padre (se educó en casa) y logró ingresar a Universidad de Dalhousie en Canadá a los 12 años, completando su carrera y posteriormente culminó su doctorado en el 2003. En el año de 2001 se incorporó como profesor en el MIT a los 20 años de edad, convirtiéndose en el profesor más joven en la historia de este prestigiado Instituto.

Su tesis doctoral la realizó acerca del Origami Computacional. En términos muy simples, se trata del estudio del arte creado a partir de las matemáticas. De acuerdo con Erik Demaine, si se logra doblar un pedazo de papel circular realizando muchas crestas ya sea con la ayuda de un compás o de un rayo láser, la figura tomará una forma que le permite lograr el equilibrio perfecto.


En la imagen se muestra una de las esculturas que forman parte de la colección de Erik Demaine y una de las figuras que él estudia desde el punto de vista matemático. Las curvas, que hemos estado estudiando a lo largo de esta unidad en Matemáticas 3, tienen una parte importante dentro del arte moderno. Aunque las figuras que hemos estudiado son las más básicas, vale la pena echar un vistazo a la belleza que surge de la aplicación de las matemáticas dentro de una actividad artística muy interesante como lo es el origami.

Para descargar los ejercicios de Matemáticas 3 en el Instituto Tecnológico de Toluca para la especialidad de Ingeniería en Sistemas Computacionales, correspondientes a la Unidad 2 del programa, basta con que DES CLIC AQUÍ.

miércoles, 22 de septiembre de 2010

Crocodile Physics

Hola,

En esta sección se encuentra el documento con la información pertinente al programa de simulación de Crocodile Clips que se presentó en la clase de Circuitos Eléctricos y Electrónicos para Ingeniería en Sistemas Computacionales en el Instituto Tecnológico de Toluca.

Más abajo se encuentran los enlaces tanto de la página de los desarrolladores de este programa como de la página para adquirir una licencia.

Página de inicio de Crocodile Clips: http://www.yenka.com/

Página para descargar el paquete de aplicaciones de Yenka: http://www.yenka.com/en/Downloads/

Documento de información presentado en español: Yenka

martes, 21 de septiembre de 2010

Practicando SQL (Parte 1)

Te encuentras en la primer parte de la serie "Practicando SQL":
  1. Configurando ambiente de trabajo y consultas básicas
  2. Consultas con más de una tabla
  3. Consultas con agrupados
  4. Consultas anidadas
Este es el inicio de una serie de posts para practicar SQL. Primero, vamos a configurar todo el ambiente que usaremos, utilizaremos MySQL como nuestro manejador de bases de datos (BD). Pueden descargarlo de la siguiente liga:

http://www.mysql.com/downloads/mysql/

La instalación es bastante sencilla, con la versión MSI Installer Essentials es suficiente para los ejercicios de este tutorial. Al final de la instalación ofrece la opción de configurar el servidor, durante la configuración también puedes dejar todos los valores por default, lo mínimo que tienes que configurar es el password para el servidor.

Podríamos crear nuestras propias tablas e insertar nuestros datos, pero eso nos puede consumir tiempo y es muy aburrido. Es más práctico si usamos una BD existente, como la que pueden encontrar en:

http://downloads.mysql.com/docs/sakila-db.zip

Esta BD tiene alrededor de 15 tablas, por ejemplo: film, actor, categoría, tienda, inventario, cliente. En la siguiente liga, puedes ver el diagrama entidad-relación:

http://forge.mysql.com/w/images/2/23/SakilaSampleDB-0.8.png

Para crear la BD en nuestra instalación:
  1. Inicia la línea de comandos de MySQL, la puedes encontrar en Inicio de Windows> Todos los Programas> MySQL> MySQL Sever 5.1> MySQL Command Line Client. Te pedirá el password que proporcionaste durante la configuración. Y después aparecerá el cursor:
    mysql>
  2. Extrae los archivos de sakila-db.zip, y en la línea de comandos, ejecuta los siguientes dos scripts (nota: en widows usar / para separar directorios), por ejemplo:
    mysql> SOURCE d:/sql/sakila-db/sakila-schema.sql
    mysql> SOURCE d:/sql/sakila-db/sakila-data.sql
  3. Veamos si la instalación correcta, selecciona la BD con:
    mysql> USE sakila
  4. Y veamos que campos contiene la tabla film:
    mysql> describe film;



Nota: las instrucciones terminan con un punto y coma (;). Si por alguna razón olvidas el punto y coma, el cursor continuará en la siguiente línea, ahí puedes poner el punto y coma y volver a dar enter para ejecutar la instrucción.

El comando describe es de gran ayuda para ir conociendo las tablas de esta BD.

Bueno, en este punto ya tenemos configurado nuestro ambiente y ahora podemos a empezar con la parte divertida. Cuando escuchamos BD, una de las primeras tareas que nos vienen a la mente es el realizar consultas a la BD. En SQL, el comando para realizar consultas es SELECT. Veamos una serie de ejemplos.

Mostrar toda la información de la tabla film (despliega 1000 films):
SELECT * FROM film;

Mostrar sólo el título y el rating de todos los films
SELECT title, rating FROM film;

Mostrar sólo los films con rating R
SELECT title, rating FROM film WHERE rating="R";

Siguiente post...
En el siguiente post, veremos algunas consultas más elaboradas. Por el momento dejo una idea de consulta para ir practicando:

Mostrar sólo los films con rating R que duren entre 90 y 120 minutos inclusive.

viernes, 17 de septiembre de 2010

AutoHotkey

Durante algún tiempo estuve buscando una solución que me permitiera automatizar tareas con el teclado. Algunos programas tienen algunas funciones de autocompletar, por ejemplo, Netbeans detecta cuando abrimos un paréntesis y pone el otro paréntesis por nosotros. Sin embargo, yo buscaba una solución que no dependiera de la aplicación que estuviera usando. Esta necesidad nació cuando estuve realizando pruebas manuales de software hace un par de años. Muchas veces tenía que teclear el mismo usuario y contraseña para probar distintas funciones de la aplicación, lo cual era muy tedioso. Esto me llevó a descubrir AutoHotkey, esta aplicación permite automatizar tareas con el teclado mediante la creación de scripts. Un uso curioso, es que puede ayudar a crear atajos para secuencias de teclas de un videojuego o para insertar frases que usamos comúnmente en correos o chats. Actualmente lo uso para automatizar 4 tareas, debajo de cada tarea muestro algunos ejemplos: A) Las tareas de salvar, copiar y pegar son muy frecuentes. Las combinaciones con la tecla Ctrl no son muy cómodas para mí. Por lo que las reemplacé por las teclas F1, F2, F3. *F1::Send {Ctrl down}s{Ctrl up} *F2::Send {Ctrl down}c{Ctrl up} *F3::Send {Ctrl down}v{Ctrl up} B) Como les comentaba en el post anterior, uso cuatro perfiles en Firefox y tengo asociadas combinaciones para iniciar el perfil que necesite. Por ejemplo para abrir el perfil de desarrollo presiono la tecla de windows + v #f::Run "c:\Program Files (x86)\Mozilla Firefox\firefox.exe" -P full #t::Run "c:\Program Files (x86)\Mozilla Firefox\firefox.exe" -P test #s::Run "c:\Program Files (x86)\Mozilla Firefox\firefox.exe" -P sec #v::Run "c:\Program Files (x86)\Mozilla Firefox\firefox.exe" -P dev C) También lo utilizo para abrir folders comunes. #a::Run "D:\scja\01_jdk-6u21-docs\api" D) Y por último para abrir aplicaciones que ocupo cada sesión. Después de unos días se nota que es más rápido presionar la combinación de teclas, que usar el mouse para dar click en un icono. #k::Run "D:\winsw\KeePass\KeePass.exe" #n::Run "D:\winsw\Notepad++Portable\Notepad++Portable.exe" #u::Run "D:\winsw\Aptana Studio 2.0\AptanaStudio.exe" #c::Run "C:\Program Files (x86)\Cool Timer\ct.exe" Al ejecutarse por primera vez AutoHotkey, ofrece crear un script de ejemplo, yo usé ese script para iniciar con mi configuración (el script es creado en el folder "Mis Documentos"). Una vez instalado y en ejecución, el icono de la aplicación aparece en el área de notificaciones, dando clic derecho, permite editar el script "Edit This Script". Al editar el script y salvarlo, debes volver a cargarlo dando clic derecho en el icono y seleccionando "Reload This Script". Por último, te recomiendo poner el script (archivo ahk) en las tareas de inicio para que lo tengas siempre disponible. ¿Qué tipo de tareas o acciones frecuentes consideras que AutoHotkey podría ayudarte a automatizar?

jueves, 16 de septiembre de 2010

Ejercicios de Circuitos Eléctricos y Electrónicos (kickYouTube)

En este post pueden descargar los ejercicios de Circuitos Eléctricos y Electrónicos para el primer parcial en el Instituto Tecnológico de Toluca (carrera: Ing. en Sistemas Computacionales).

¿Qué significa "kickYouTube"? Es una aplicación que permite bajar videos de YouTube sin necesidad de descargar algún tipo de aplicación. Por ejemplo, al buscar videos acerca del funcionamiento del osciloscopio o la fuente generadora de modelos parecidos a aquéllos con que contamos en el laboratorio de Electrónica del Instituto Tecnológico de Toluca, sólo tenemos que dirigir el cursor a la barra de la dirección electrónica que aparece cuando elegimos tocar un video en YouTube y donde aparece la dirección de la página correspondiente a ese video, anteponer la palabra "kick" justo antes de "youtube" y dar "enter", como se muestra en estas figuras,






. A continuación esto nos redirigirá a otra página que corre un script el cual se encarga de desplegar una barra en la parte superior y el video que estamos viendo en la parte media. En dicha barra se puede elegir el formato y la calidad con la que deseamos bajar el video. Al dar click sobre la barra en la opción elegida, se inicia la descarga del video.

Esta es la página en cuestión y un ejemplo:

Porción de la página de kickyoutube con la barra para bajar el video encerrada en azul

Papel para graficar coordenadas polares

Antes de que comenzara todo el frenesí de las celebraciones en esta fecha tan especial para México, me di a la tarea de buscar en algunas papelerías hojas para poder graficar coordenadas polares. Sin embargo, en ninguna papelería me dieron una respuesta positiva así que recurrí entonces a internet para buscar una plantilla que pudiera ser útil. Afortunadamente encontré un sitio que genera no solamente plantillas para coordenadas polares sino también rectangulares y muchas otras. Este sitio se llama "incompetech" y además de proveer plantillas gratuitas en formato *.pdf, permite personalizar la plantilla según nuestras necesidades. A continuación muestro una imagen del menú que aparece al seleccionar la plantilla para las coordenadas polares.
Menú presentado en la página de incompetech para personalizar la plantilla de coordenadas polares
 Para ir directamente a esta página y comenzar a bajar sus plantillas para realizar gráficas en el sistema deseado pueden dirigirse al siguiente link:

domingo, 12 de septiembre de 2010

Perfiles en Firefox

Soy un gran fan de tener instalado sólo lo necesario para realizar mis actividades, por ejemplo, anteriormente tenía instalado VLC, pero lo desinstalé debido a que entre Miro (que uso para descargar video podcasts) y el reproductor de Windows cubren mis necesidades. Firefox es espectacular debido a la gran cantidad de plugins que ofrecen una forma ilimitada para personalizarlo. Sin embargo, esto abre la puerta a que instalemos plugins que muchas veces no usamos y sólo pueden entorpecer nuestra navegación. Desde hace un par de meses he estado usando perfiles en Firefox, que es similar a tener varios perfiles en una PC (por ejemplo, una cuenta para cada miembro de la familia). En este caso, uso cuatro perfiles para cubrir diferentes necesidades:
  • Perfil de navegación en general: donde permito que se guarde el historial de navegación y tengo un par de plugins para el manejo de Tabs.
  • Perfil de desarrollo: en este perfil tengo instalados plugins para poder inspeccionar javascript, estilos, html.
  • Perfil de prueba: lo uso para evaluar plugins antes de instalarlos en alguna otra configuración.
  • Perfil de seguridad: en este perfil no permito que guarde historial (equivalente a navegación privada) y lo ocupo principalmente cuando entro a una cuenta bancaria o realizo algún pago.
Esto me permite usar Firefox con los plugins que necesito dependiendo de la tarea que esté realizando. Veamos cómo podemos crear fácilmente los perfiles. Usualmente usamos el perfil default de Firefox, para entrar al menú de perfiles, debes abrir una ventana de ejecución (windows key + r) y teclear el siguiente comando (recuerda cerrar todas las instancias de Firefox): "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" --profilemanager Esto abrirá una pantalla donde pueden crear los perfiles que necesiten. Para abrir Firefox con un perfil en específico, puedes usar el siguiente comando desde la ventana de ejecución: "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -P dev Donde dev es el nombre del perfil que ustedes quieran usar. Abajo, muestro la configuración de dos perfiles, el primero es el de navegación en general y el segundo lo uso cuando estoy desarrollando. Como pueden apreciar, cuando sólo estoy navegando, no necesito todas las opciones del perfil de desarrollo. Otra idea es tener un perfil para redes sociales y otro para realizar tareas. Sé que puede parecer trabajoso en un inicio, pero en el corto plazo se nota la diferencia. ¿Qué opinan? ¿Creen que es útil usar perfiles? Si alguien tiene una distribución de Linux a la mano le agradecería nos comentara si esa versión de Firefox también soporta perfiles. Siguiente post... Abrir la ventana de ejecución para abrir un perfil de Firefox es tedioso, una opción es crear links, pero aún mejor es tener un atajo para cada perfil (por ejemplo widows key + v para el perfil de desarrollo y windows key + f para el perfil normal). En el siguiente post les platicaré de cómo automatizo algunas tareas con el teclado.

¿Pero qué es Moodle?

Tal y como aparece en la página de moodle.org, Moodle es un Sistema de Gestión de Cursos de tipo Código abierto (Open Source Course Management System) o también conocido como Sistema de Gestión del Aprendizaje (Learning Management System) o como entorno de Aprendizaje Virtual (Virtual Learning Environment). Es una herramienta que ha permitido a los profesores alrededor del mundo crear sitios donde puedan colocar sus cursos y donde los estudiantes aprendan e interactúen en línea. Su diseño está también orientado hacia la comunicación de tipo red social, ya que se pueden dejar mensajes, agregar contactos y se tiene un perfil con información personal de los participantes. En el sitio web de moodle se encuentra más información acerca de este Sistema como estadísticas acerca del registro de nuevos usuarios o los sitios más importantes de Moodle alrededor del mundo. Sería sumamente interesante que aquí en el Instituto Tecnológico de Toluca lográramos colocar a nuestro portal de Moodle como uno de los mejores, así que debemos comenzar a colaborar activamente. En el siguiente video se detalla información interesante acerca de Moodle. Si conoces otros detalles, trucos o funcionalidad acerca de esta interesante plataforma, no dudes en compartirlos en los comentarios.

Nuevo Colaborador

Hola a todos, Me da gusto informarles que a partir de esta fecha este blog contará con un colaborador. Se trata de Antonio Cortés quien estará publicando artículos muy interesantes que se apegan al estilo que hasta ahora se ha manejado. Entre la temática que él estará tratando se encuentran principalmente las tecnologías de la información así como consejos muy útiles para el manejo del tiempo, la administración de actividades y en general tips de productividad y organización. Antonio Cortés es Ingeniero en Sistemas Computacionales y cuenta con una Maestría en Ciencias de la Computación. Tiene más de 7 años de experiencia laboral y se ha desempeñado en diferentes áreas tales como embedded systems y desarrollo web. Me es muy grato darle la bienvenida como colaborador en este blog. Estoy segura de que sus aportaciones serán de gran ayuda para todos nosotros como estudiantes y colaborarán en gran medida con el objetivo de este blog que es aportar información útil para las personas interesadas en el área de las Ciencias de la Computación y los Sistemas Computacionales.

domingo, 5 de septiembre de 2010

Cómo copiar imágenes fácilmente utilizando PDF-XChange Viewer

En ocasiones las imágenes incluidas en un documento con formato tipo PDF no son tan fáciles de copiar para poder ser utilizadas en otro documento. Ya sea que se trate de un documento realizado mediante un procesador de textos o en una presentación, en ocasiones es complicado tratar de copiar una imagen. Se puede realizar una impresión de pantalla y después cortar la parte de la imagen capturada mediante un editor de imágenes, sin embargo, esto requiere de cierto tiempo y de precisión y existen imágenes que por su tamaño no son capturadas en su totalidad al realizar la impresión de pantalla (o screenshot, en inglés).PDF-XChange Viewer es una alternativa gratuita a Adobe Acrobat Reader que poco a poco ha ido ganando seguidores debido a su extensa gama de herramientas. Una de ellas y que me pareció muy interesante es la herramienta de Snapshot, representada por un pequeño botón que contiene una cámara fotográfica como imagen ilustrativa y que se encuentra localizado en una de las barras superiores que se presentan al abrir PDF-XChange. En la siguiente imagen se muestra dicho botón:
Al dar click en la herramienta de Snapshot, el cursor del ratón se presenta como una pequeña cámara fotográfica y el puntero permite seleccionar un área rectangular dentro del documento abierto, esta área se obtiene al arrastrar diagonalmente el cursor de izquierda a derecha. Cuando se suelta el botón al terminar de seleccionar el área deseada, se escucha el sonido que realiza una cámara fotográfica una vez que se toma una fotografía. Este sonido es indicador de que la región está lista para ser pegada en otro documento. Al abrir por ejemplo, un procesador de texto y ejecutar Ctrl + V o bien la instrucción Pegar desde el menú o desde el botón adecuado en la barra de herramientas, aparece la selección que se realizó en PDF-XChange en forma de una imagen, la cual se puede configurar para utilizarla dentro del documento de la manera que se desee. En la siguiente imagen se muestra un ejemplo de un área seleccionada en un documento PDF usando la herramienta de Snapshot (observa las orillas y el tono azulado de la imagen que indica que está seleccionada):
Una página donde se puede descargar de forma segura PDF-XChange Viewer es desde el sitio de descargas de la página de CNET (CNET Download) en el siguiente enlace:
http://download.cnet.com/PDF-XChange-Viewer/3000-10743_4-10598377.html Si conoces otras herramientas útiles semejantes a Snapshot, compártelas en los comentarios.