domingo, 3 de octubre de 2010

Tabs en Firefox

BarTab y Tab Mix Plus son mis plugins favoritos para el manejo de tabs en Firefox. Tab Mix Plus ofrece varias opciones para personalizar el comportamiento de los tabs, las dos características por las que lo uso son: A) Firefox (al menos hasta 3.6) abre un tab en blanco cuando creamos un nuevo tab. Tab Mix Plus permite configurar lo que queremos en un nuevo tab: tab en blanco, la página de inicio del navegador, una página en específico, entre otros. Yo lo configuré para que abra la página de búsqueda de Google, ya que la mayor parte del tiempo requiero esa página en un nuevo tab. Podría usar la barra de búsqueda de Firefox, pero he notado que las recomendaciones de búsqueda son más completas en la página principal de Google. Además, con el lanzamiento de búsqueda instantánea tengo un motivo más para ir a esta página. B) La lista de tabs cerrados recientemente de Tab Mix Plus es muy útil cuando por accidente cerramos uno o cuando nos damos cuenta de que necesitábamos más información de un sitio a los 5 minutos de haber cerrado el tab. Por último, lo que NO uso de Tab Mix Plus es el administrador de sesiones porque tiene conflictos con BarTab, así que uso el administrador default de sesiones de Firefox. Veamos ahora a BarTab. Frecuentemente dejo algunas páginas abiertas para revisarlas después - las podría poner en los bookmarks, pero una vez ahí es muy fácil que no les ponga atención y las olvide. Cuando reinicio Firefox normalmente cargaría todos los tabs que deje abiertos la última vez, lo cual puede ser muy tardado dependiendo del número de tabs y de su contenido. Aquí es donde BarTab entra, este plugin sólo carga los tabs cuando los visitamos; al inicio sólo carga el tab que estaba activo cuando cerramos el navegador. Como pueden ver en la imagen, la última vez dejé 5 tabs abiertos, pero al reiniciar Firefox sólo un tab fue cargado. Los otros 4 tabs aparecen semi-transparentes, y serán cargados hasta que los seleccione. Eso es todo por el momento, compartan en los comentarios qué plugins usan para el manejo de tabs y cómo los ayudan en sus tareas diarias.

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