29 abril 2008

ImageReady: Mapas de imagen

Algo común en las páginas güev es tener mapas de imágen. Hace tiempo expliqué como hacerlos en Dreamweaver (aquí está el artículo), sin embargo es posible hacerlos desde ImageReady (que viene con Photoshop). Es muy sencillo, cosa que verás con el ejemplo aquí.

ImageReady tiene 3 herramientas para crear áreas de la imagen que van a ser "sensibles" al ratón, conocidos coloquialmente como Hot-Spots. Estas herramientas se pueden ver en la siguiente figura:


Para trazar áreas rectangulares o circulares, selecciona la herramienta Rectangle Image Map Tool o el Circle Image Map Tool respectivamente, y dibujas sobre la imagen el círculo o rectángulo. Nota: si quieres trazar un cuadrado o círculo perfecto, deja presionado la tecla SHIFT de tu teclado mientras trazas la figura. Este es la figura de una parte de una imagen donde dibujé un rectángulo:


Para dibujar un polígono, se usa la herramienta Polygon Image Map Tool. Con este haces clic donde quieres colocar un punto y vas dibujando puntos alrededor de la zona que quieres marcar, como se ve en la figura:


Una vez trazada el área, se tiene que indicar a qué página quiere ir cuando el usuario da clic sobre esa parte de la imagen. Esto se hace en el palette Image Map. Solo tienes que escribir la dirección (no olvides escribir http:// antes si es una liga a una página externa), como puedes ver aquí:


Si quieres que la liga aparezca en otra ventana, cambia la propiedad Target para que diga _blank. Una vez que tienes tus zonas de Image Map trazados, puedes seleccionarlos, borrarlos, etc. desde el palette Web Content, como puedes observar aquí:


Ahora solo falta guardar las imágenes optimizadas con el HTML correspondiente desde el menú File, Save Optimized (o Save Optimized As) y aparece esta ventana:


Yo elegí guardar tanto el código HTML e imágenes y ¡listo! Tengo una página web sencilla con dos zonas que dibujé y me llevan a diferentes sitios. Seguimos en contacto. ¡Hasta la próxima!

25 abril 2008

Promiscuidad informática por USB: Amvo.exe

Hace un ratito una compañera me llamó para ver su laptop. Resulta que le aparecía una ventanita con numeritos en hexadecimal diciendo que el programa Amvo.exe había fallado y quien sabe que otras groserías que mi educación me limita publicar aquí ;).

Al principio creí que había instalado algo o configurado algo que dejó de funcionar. Entonces se me ocurrió buscar en internet que era el famoso Amvo.exe y encontré que es un troyano que, además de mostrar ese mensaje de error, no te deja ver los archivos ocultos (como esta maestra no tenía habilitado la opción de ver archivos ocultos, ni me enteré de este detallito). La guarida donde se esconde es en la carpeta SYSTEM32 de la carpeta de WINDOWS.

Vagando por diferentes foros y sitios de spyware, malware y cosas anexas, me encontré con varias soluciones manuales, pero no quería pasarme 45 minutos depurando una compu cuando tengo miles de proyectos que calificar (y en lugar de calificar ando escribiendo esto, pero en fin...), así que seguí vagando y me topé con un programita, un script hecho en ActionScript, que se encarga de hacer todos los pasos manuales de golpe y porrazo. Esta es la liga donde puedes bajar este programita.

¡Hasta la próxima!

22 abril 2008

El verde es vida

Siendo hoy el día de la tierra y siendo una persona que intento cuidar el planeta en donde vivo (trato de separar basura, ahorrar agua y electricidad, etc.) era justo que hoy escribiera algo sobre el lado verde de la computación.

Me choca que la tecnología traiga tanta basura de la que no te puedes deshacer. Hace tiempo intenté deshacerme de mi vieja compu Pentium III con 128Mb de RAM y en ningún lado lo querían, ni regalado (y eso que me pasé toda una mañana de un sábado de la seca a la Meca en deshuesaderos de cosas electrónicas). A Dios gracias en la escuela donde trabajo, la Univa, hicieron una colecta de algunos equipos viejos y los llevaban a una empresa que reciclaba todo lo que era útil y se encargaban de deshacerse del resto. Así me pude deshacer de una unidad CD-RW externo viejísimo (de 4x) que se conectaba por el puerto paralelo, una impresora LaserJet IIIp que me salía mucho más caro la compostura que comprar otra, unos teclados y unas otras cosillas que ni servían. Un sitio interesante, que incluye un video, es la de Annie Leonard sobre "The Story of Stuff".

Hoy, mientras curioseaba por la red mientras me inspiraba para terminar una recensión que tengo que terminar acerca de la pragmática de Charles Sanders Peirce (o sea, nada que ver con este rollo), me topé con este artículo del blog de Lifehacker que muestra formas de ser verde con tu computadora. El artículo está en inglés, pero los puntos principales son:
  • Apaga tu computadora cuando no la uses. Para esto puedes configurar tu sistema operativo de diferentes maneras para optimizar electricidad. El problema es que si estás bajando un programototote, no puedes hacer esto. Muchos programas pueden hacer esto (por ejemplo, uTorrent tiene opciones de Autoshutdown) y hay un programa que les puede servir para esto es el WinOFF (más información aquí).
  • Ahorra papel cuando imprimas. El papel, como saben todos, se hace a partir de los árboles. O sea que entre más hojas gastes, más árboles se tienen que talar. Es por esto que les pido a mis alumnos de imprimir en ambas caras del papel o que impriman a la vuelta de hojas que ya no les sirven (como copias fotostáticas que ya no usan, etc.). Algunas ideas ,además de imprimir ambas caras de una hoja (puedes aprovechar la capacidad de algunas impresoras del Duplex), imprime a archivos PDF con el Acrobat Profesional, usar la extensión de FireFox Aardvark (que sirve para quitar elementos que imprimes desde el navegador como anuncios, etc. Más información aquí), o usar el programa gratuito GreenPrint que automáticamente detecta hojas innecesarias y no las imprime (más información aquí).
  • Apaga los periféricos que no estés usando. Al igual que la compu, si no la usas, no la prendas. Hoy en día hay periféricos que ya no tienen botón de encendido (como mi scanner HP ScanJet 3400C o algunas impresoras) sino que siempre están prendidas. Mi scanner lo tengo siempre desenchufado y lo enchufo solo cuando voy a usarlo. Otras cosas que gastan electricidad son los adaptadores AC (que generalmente siempre dejamos enchufados). Si quieres ser elegante, hay dos productos interesantes: el Energy Saving Smart Strip (más información aquí) o el Power Minder (más información aquí) que apagan su monitor, impresora, etc. de forma automática si no están en uso.
  • Calcula cuánta energía consumes. Un programa interesante que te permite modificar la configuración del ahorro de energía como de visualizar tu consumo de energía es el LocalCooling (mayores informes aquí). Otro lugar donde puedes calcular cuánto te cuesta dejar prendida tu PC es este mensaje (más información aquí).

Estas son algunas maneras de cuidar el planeta (y tu bolsillo también). Abajo dejo ligas a los productos que puedes encontrar en Amazon, por si te interesan. Si se te ocurren más ideas, no dudes en dejar un comentario. ¡Hasta la próxima!



16 abril 2008

Tutorial ImageReady

El ImageReady es una herramienta que viene con todas las versiones de Photoshop desde la versión 5.5 (febrero 1999) hasta la versión CS2 (abril 2005). Sirve para optimiar imágenes para su uso en páginas web. Con la versión CS3, el Photoshop tiene incorporado toda la funcionalidad de ImageReady. De esta manera, agrega un par de herramientas y varios palettes más a Photoshop (lo cual lo hace un programa más grande en tamaño y con mayores requerimientos de RAM y espacio en disco duro) y quitan un programa extra. Así que si crees que estoy ya no te sirve, haz de cuenta que puedes aplicar esto desde el CS3.

Hay algunos tutoriales en internet sobre su uso que te pueden ser útiles. Te dejo aquí las ligas:
  • Tutorial de Raffskizze para crear GIFs animados.
  • Tutorial de El Tuto para crear rollovers (imágenes que cambian cuando pasa el cursor del mouse por encima de ellos).
  • Aquí abundan ejemplos acerca de la forma de hacer varios proyectos sencillos.
  • Otro tutorial de animación (este muestra más opciones que el de Raffskizze).
  • Tutorial para crear un efecto de lluvia sobre una imagen.
Espero que estos te sean útiles. ¡Hasta la próxima!

13 abril 2008

ActionScript III: sumando números

Abandoné la idea del mensaje anterior de hacer un juego que adivinara la edad y mejor lo sustituí para mostrar como efectuar operaciones matemáticas, en este caso una suma. Todo esto con el fin de no complicar tanto las cosas. Luego iré mostrando cosas más complicaditas.

Mientras tanto, hice un nuevo proyecto con 2 textos de entrada, uno dinámico y un botón. En este video puedes ver como lo hice y la programación involucrada. El video en formato SWF (mucho más nítido de lo que se ve en YouTube) lo puedes bajar aquí y el archivo del proyecto lo puedes conseguir aquí.

Si tienes dudas, no dudes (valga la redundancia) en dejarme un comentario. ¡Hasta la próxima!

09 abril 2008

¡Mi USB se enfermó y dañó mis archivos! El isee.exe me atacó...

Hay algunas cosas que me irritan. Una de ellas es que inserte mi memoria USB a una PC infectada de algún virus raro que no es detectada por el antivirus (otra cosa que me irrita: tener un antivirus que no detecte el virus...) que dañe mis archivos y no me deje usar dicha memoria. Algo que me irrita más es no contar con un respaldo anterior a lo que tenía allí, un error de principiante...

Con eso te podrás dar una idea de lo que me pasó. Todo era felicidad hasta que metí mi USB a una computadora y en Mi PC apareció con un icono diferente (en lugar de parecer una memoria, tenía icono de una carpeta). Al abrirlo, en lugar da ver el contenido en la misma ventana, abría otra ventana del explorador para ver el contenido.

Desde que me pegó el virus DiskKnight, cambié las opciones del explorador de archivos para mostrar archivos ocultos (para que luego no me salgan con cosas). Vi que en mi USB apareció una carpeta oculta llamada RECYCLER. Esta carpeta corresponde a lo que tienes en la papelera de reciclaje pero debe estar en tu disco duro y nunca se pone en tu memoria. Al tratar de eliminarlo, lo quitaba pero a los dos o tres segundos aparecía de nuevo. También dejaba el autorun.inf que hacía referencia a un archivo en esa carpeta. Era inútil, por más que borraba, se seguía poniendo.

Sin embargo parecía que era inofensivo, pero al día siguiente de pronto no tenía acceso a algunas carpetas (porque intenté respaldarlo cuando las cosas no estaban bien), las abrí y vi que eliminó mis archivos y llenó la carpeta de chorrocientos mil carpetas con nombres extraños. Además, Windows me decía que el contenido de la carpeta medía 202 Gb (y eso que mi USB es de 1 Gb). Los datos se fueron para nunca más volver. Y no solo eso, sino que luego me fijé en algunos archivos de Word, de Excel y proyectos hechos en Visual Basic 6.0 y ya no funcionaban. O sea que no se contentó con solo fregar unas carpetas sino que también dañó archivos a los que sí me daba acceso.

Triste y acongojado, me puse a buscar en internet a ver que onda. Como ese día llevaba prisa (se borró una tarea de la maestría que tenía que entregar en la tarde) ya no le busqué más pero al día siguiente, con la ayuda de mi cuasi ahijada Ale, encontramos un sitio donde lo discuten. Aunque mi problema no es igual al del cuate que escribe, los consejos me sirvieron.

Para eliminarlo, hice lo siguiente:
  1. Escaneé mi computadora usando el Trend Housecall 6.5.
  2. Después de un megaratotote, encontró un virus en el archivo isee.exe (cosa que no me detectó el ESET Smart Security que tengo) en una carpeta oculta dentro de la carpeta oculta C:\RECYCLER con virus que no pudo eliminar.
  3. Bajé la versión gratuita de Malwarebytes Anti-Malware y lo instalé en mi compu.
  4. Al escanear mi compu con este programa no detectó nada, pero tiene una herramienta llamada FileASSASSIN, que te elimina cualquier archivo. Y te lo borra porque te lo borra.
  5. Una vez eliminado el isee.exe, eliminé esa carpeta de C:\RECYCLER. Ten cuidado porque hay 2 carpetas en C:\RECYCLER: uno es la papelera de reciclaje normal y el otro contiene el isee.exe y un autorun.inf. Hay que borrar este último.
  6. Reinicié mi PC y parece que hasta ahorita, 12 horas después de esta acción, todo quedó normal.

Espero que esto te pueda servir si te cae este virus que está de moda. Espero que no me vuelva a atacar y mucho menos a corromper mis archivos. Y espero que así siga.

08 abril 2008

ActionScript III: el texto de entrada y de salida

Por fin vuelvo a escribir algo sobre Flash. En este ejemplo voy a hacer un juego muy ñoño y no muy divertido que digamos que le permita al usuario tratar de adivinar la edad y la computadora le dirá si está bien o no. Aunque no es un juego muy entretenido (bueno, por lo menos no para mí), es un buen ejemplo acerca de como usar algunas funciones de Flash 8. En esta fase, el programa solo muestra la entrada y salida de texto usando el Input Text y el Dynamic Text.

Si quieres ver otras aplicaciones anteriores, te recomiendo que revises estos artículos antes de comenzar este: este programa unos botones para cambiarse a diferentes partes de una escena (scene), este cambia un movie clip para que una carita vaya sonriendo o entristeciéndose y este, que está un poco más avanzado que este ejemplo (tal vez te convendría verlo después de leer esta serie de mensajes), programa un preloader.

Regresando a este asunto, hice un video que puedes ver. Abajo se ve en YouTube, pero puedes bajar la versión SWF más chirolira aquí. El proyecto, hasta esta etapa, lo puedes bajar aquí.



Seguimos en contacto. Luego sigo escribiendo sobre las otras partes. ¡Se divierten!

02 abril 2008

Zamzar vs. los documentos X del Office 2007

Algo que me tiene un tanto cuanto consternado acerca de la gente de Microsoft es la nueva versión de Office que hicieron: las cosas ya no están en los mismos menús (bueno, los menús ya no están), etc. Sin embargo una de las cosas que más me sacan de onda es el nuevo formato de los archivos, el PPTX del PowerPoint 2007, el DOCX para el Word 2007 y el XLSX para el Excel.

El otro día me mandaron una presentación en el temido formato X y, como no tengo el nuevo Office en mi computadora, busqué algún software o sitios que me lo conviertiera al formato viejito. No sé si sea el mejor o peor sitio para hacerlo, pero funcionó.

Me metí a la página de ZamZar (http://www.zamzar.com), subí mi archivo PPTX, me esperé un rato y al ratototote me lo mandó a mi dirección de I-Meil. Te dejo el tip por si se te ofrece algo similar.

¡Hasta la próxima!

01 abril 2008

El temido DataControl de Visual Basic 6

Si hay un control que casi nunca uso en Visual Basic porque va en contra de mis principios morales y la misma epistemología de mi quehacer en la programación de computadoras con Visual Basic 6.0, es el DataControl común y corriente. Yo le tengo terror por experiencias en el pasado: en una ocasión, cuando trabajé en Novacel, hice la prueba de accesar una base de datos guardada en un servidor ubicada en Zacapu, Michoacán desde un programita hecha con VB 6 en mi computadora en Tlaquepaque, Jalisco. El resultado fue desastroso: cada vez que le "picaba" al botón para avanzar a otro registro, el programa tardaba eternidades en mostrar los datos del registro en cuestión. Debido a esa ineficiencia, abandoné para siempre su uso y me puse a accesar datos con el ADO, cosa que se mostró muy eficiente (bueno, lo suficiente como para desquitar su uso en ese tipo de ambientes), tanto así que he dedicado muchos mensajitos de este blog a su uso desde VB 6.

Pero, en contra de mis convicciones morales, me metí a jugar un poco con él porque es probablemente la forma fácil de accesar una base de datos (aunque sea de Access97) desde Visual Basic 6, sobre todo para quienes apenas se están inmiscuyendo en el arte de la programadera. Bueno, después de todo este rollo chorero, voy a platicarles de un proyecto que hice con mis alumnos de 4TIA para ejemplificar su uso.

Antes que nada, encontré en internet un tutorial chiroliro que explica muy bien el uso del DataControl sin problemas. El único inconveniente para algunos es que está en inglés. Esta es la liga, por si les interesa.

Ahora sí, les platico de qué trata el proyecto (que puedes bajar aquí). En primer lugar, hice una base de datos en Access, llamada Datos.mdb, que contiene una tabla, Direcciones, que contiene 8 campos: NoPersona (llave primaria de tipo autonumérico), Nombre, ApellidoP, ApellidoM, Domicilio, CP, Ciudad y Tel (todos de tipo texto). Esta figura tiene lavista diseño de la tabla:


El DataControl tiene problemas con archivos de Access de versiones superiores al 97 (VB 6 salió al mercado mucho antes que el Access 2000), así que convertí la base de datos a una de formato 97, llamada Datos97.mdb. Para hacer esto, en Access accesas (valga la redundancia) el menú Herramientas-Utilidades de la base de datos-Convertir base de datos-A formato de archivo Access 97. Esto lo puedes ver en la siguiente figura:


Aparece la siguiente ventana donde escribes el nombre del archivo en formato 97. Te recomiendo que lo guardes en la misma carpeta donde vas a guardar el proyecto que estamos creando.


¡Listo! Ahora voy a crear una nueva aplicación VB6 con una ventana (en mi caso se llama frmDatos) que tiene algunas etiquetas que contienen texto de ayuda (del Label1 al Label7), cajas de texto para guardar los datos de la tabla (en este caso se llaman txtNombre, txtPaterno, txtMaterno, txtDomicilio, txtCP, txtCiudad y txtTel), un DataControl (Data1) y 4 botones (btnNuevo, btnAnt, btnSig y btnBuscar) para realizar diferentes funciones del programa. La ventana en la vista diseño se ve así:


Hay algunas propiedades que se tienen que establecer para que esto funcione, para vincular Data1 con la tabla Direcciones de mi base de datos Datos97.mdb, y vincular las cajas de texto con Data1. En primer lugar, las propiedades que tengo que modificar en Data1 son estas: Connect que dice el tipo de archivo (hay que dejarlo como Access), DatabaseName que debe contener la ruta al archivo Datos97.mdb, y RecordSource que tiene que contener el nombre de la tabla (en mi caso, Direcciones).

Una vez que Data1 tiene estas propiedades establecidas, se tienen que alterar algunas propiedades de las cajas de texto. La primera que hay que establecer es la propiedad DataSource que guarda el DataControl al que estará vinculado. En mi caso, le pongo el valor de Data1. Después, en la propiedad DataField aparece la lista de campos de la tabla. Allí hay que seleccionar al que va a estar vinculado. Con esto, mi programa ya es funcional y al correrlo se ve así (en mi caso ya tengo datos dados de alta y por eso aparecen en las cajas de texto):


Lo primero que voy a programar es el botón que permita dar de alta un nuevo registro. Para esto, uso la función Data1.Recordset.AddNew y asunto arreglado. Abajo está el código:


Esto hace que todas las cajas de texto aparezcan en blanco y le permiten al usuario teclear datos allí. Al terminar de escribir cada campo, los datos se almacenan en un nuevo registro en tu tabla.

Aunque el DataControl ya tiene botones para avanzar al primer registro, al anterior, al siguiente y al último, voy a programar botones que realicen algunas funciones. Para empezar, voy a programar el botón que te lleva al registro anterior. Lo primero que hago es revisar si no estoy al principio del archivo (esto me lo indica la propiedad BOF que es un acrónimo de Beginning Of File). Si no estoy allí, me muevo al registro anterior (Data1.Recordset.MovePrevious). Si alguien está en BOF, todas las cajas de texto aparecen en blanco y el usuario podría llenar datos para dar de alta un nuevo registro. Para evitar ver cajas en blanco, me posiciono en el siguiente registro (Data1.Recordset.MoveNext o también podría haber usado Data1.Recordset.MoveFirst). Aquí está el código:


La función que avanza al siguiente registro se programa casi igual, solo que en lugar de revisar el BOF, se revisa el EOF que indica cuando estoy al final del archivo (End Of File). Este es el código:


Buscar un dato tiene un poquito más de chiste. Para esto, se usa la función FindFirst (o FindeNext, FindPrevious ó FindLast). La sintaxis de cualquiera de los Finds es esta: Data1.Recordset.FindFirst "campo=valor" (suponiendo que mi DataControl se llama Data1). Por ejemplo, podríamos escribir Data1.Recordset.FindFirst "NoPersona=2" para encontrar el primer registro de una persona cuyo número de registro sea 2. En mi caso, como estoy trabajando con cadenas de texto (voy a buscar solamente por el nombre del fulandango), uso la instrucción LIKE para encontrar cadenas de texto similares a la que escriba el usuario. Para mayor información de la manera en que funciona el LIKE de SQL, escribí este artículo hace tiempo que lo explica mejor, pero a grandes rasgos el LIKE es como el signo igual (=) y al final pongo un apóstrofe (') seguido de un asterisco (*), un espacio, el signo ampersand (&) para unir cadenas, la cadena que se quiere comparar (usé también la función Trim que elimina espacios en blanco antes y después de una cadena), seguido por un espacio, otras comillas, otro asterisco, otra comilla y asunto arreglado. Los asteriscos representan cualquier cadena, incluso una cadena vacía, así que si le escribo en el InputBox que pide el nombre del tipejo la palabra "José", me va a encontrar el primer José, José Antonio, Juan José, etc. Aquí está el código de la función:


Creo que lo demás está más o menos fácil de hacer. Después subiré el proyecto de un juego de Trivia hecha con el DataControl, pero por lo pronto aquí le dejamos. ¡Hasta la próxima!
Related Posts Plugin for WordPress, Blogger...