30 diciembre 2008

Logos gratuitos al instante

Si eres fan del diseño, pero no se te ocurre la gran idea para un logo simple que necesitas, me topé con un sitio interesante que regala logotipos con todo y sus archivos originales de Photoshop, Ilustrador, etc.

Se llama LogoInstant.com y vale la pena que le des un vistazo.

¡Saludos!

Nuevos emoticones para MSN Messenger

Sé que no soy gran fan del Messenger, pero siempre envidio a los que tienen emoticonos, emoticones o como quieran llamarles (traducción de "emoticon" que tampoco es palabra inglesa "oficial".  La historia de donde surgen es interesante, pero ese podría ser tema para otro post) interesantes, chistosos o creativos.

Es por esto que bajé el nuevo paquete de emoticons de Microsoft para el MSN Messenger.  Como soy medio grinch, eliminé los que tienen al changuito vestido con gorro de Santa Claus, pero creo que a muchos de ustedes les parecerá interesante.

Si quieren conseguirlo gratis, bájenlo aquí.  ¡Saludos!

23 diciembre 2008

¡Feliz Navidad 2008!

Que el niño Jesús habite en sus hogares esta navidad y para siempre y los ilumine con su gran amor.

Muchas felicidades

17 diciembre 2008

Fotos semestre Agosto-Diciembre 2008

Aquí les comparto las fotos de mis queridísimos alumnos con los que hicimos fluir ciencia en las aulas.


1er semestre de Comunicación Bilingüe (1 TCB)
Materia: TICs


1er semestre de Comunicación (1B TCM)
Materia: TICs


1er semestre de Diseño Gráfico (1B TDG)
Materia: TICs


1er semestre de Diseño Gráfico Vespertino (1 TDG Vesp.)
Materia: TICs


3er semestre de Informática Administrativa (3 TIA)
Materia: Algoritmos y Programación


3er semestre de Programación (3 TPO)
Materia: Principios de Programación


5to semestre de Programación (3 TPO)
Materia: Programación Visual Basic 2005


¡Saludos!

29 noviembre 2008

Archivos aleatorios: Visual Basic 6 al azar

Es imprescindible almacenar muchos datos a disco. Es por esto que los sistemas manejadores de bases de datos, también conocidos como DBMS, son indispensables (si quieres saber más de este rollo, puede revisar este mensaje que escribí sobre ello).

Sin embargo, como diría la sabiduría popular: "dependiendo del sapo es la pedrada", o sea queno voy a invertir miles y miles de pesos en instalar Oracle en un servidor chiroliro para un sistema que hice para guardar las direcciones de correo y teléfonos de mis cuates.  Cuando este es el caso podemos encontrar alternativas sencillas que nos permiten cumplir la función sin tener que gastar mucho.  En esta ocasión voy a mostrar como usar archivos de acceso aleatorio usando Visual Basic 6.0 (hace tiempo hice lo mismo, pero usando Visual Basic 2005, lo cual puedes leer aquí).

Antes que nada, los archivos aleatorios no son adecuados para grandes cantidades de información, ya que, aunque pueda tener acceso a cualquier registro que se le pegue la gana, están ordenados conforme fueron dados de alta y este orden no es muy útil en la mayoría de las ocasiones.  Por el otro lado, es gratis (bueno, ya pagaste tu computadora y periféricos y tu copia de Visual Basic 6, así que no es tan gratis que digamos...) y funciona bien para pocos registros.

Ahora sí, voy a dejar el choro mareador con el que empecé para dar lugar al problema en cuestión.  El siguiente ejemplo es un programa que almacena información acerca de mis amigos, una agenda telefónica sencilla.  La interfaz del programa es este:



Antes de hacer cualquier otra cosa hice un módulo que contiene código que puede ser usada por cualquier ventana que forme parte del proyecto.  Aquí defino el tipo (Persona) y declaro algunas variables globales.  Contacto es una variable de tipo Persona, RegActual almacena el número de registro que aparece en la ventana y TotalReg tiene el número total de registros en el archivo.  Este es el código:



Una vez terminado con las declaraciones globales, comencé el código de la ventana (que llamé frmAgenda) con el evento Load.  En esta subrutina cuento el número de registros que tiene el archivo para poder luego saltar de uno a otro o agregar uno al final.  Este es el código:



¡Listo!  Ahora ya tengo guardado en TotalReg el número de registros dados de alta.  Nota: la función MuestraReg solamente pone en la ventana el registro actual (o sea, llena las cajas de texto con los datos del registro en la posición RegActual).  Más adelante pongo el código.

Ahora escribo la función que guarda un registro nuevo, lo escribe al final.  Abre el archivo, llena la estructura Contacto y luego usa la función Put para escribir los datos en el archivo.  Al final cierra el archivo.  Este es el código:



Después de esto programé la función que permite buscar un registro.  Consideré que el dato por el que buscas un registro de una agenda es el nombre, así que esta fución básicamente va leyendo los registros de manera secuencial hasta encontrar el registro con el nombre deseado o que llegue al final del archivo sin encontrarlo.  Este es el código:


Los siguientes botones están muy sencillas de programar.  Los botones btnSig y btnAnt me permiten leer el registro siguiente y anterior, respectivamente.  Lo único que hacen es modificar la variable RegActual y usan la función MuestraReg.  Este es el código:



Esta es la función MuestraReg que solamente abre el archivo, lee el número de registro indicado por la variable RegActual y pone los datos de lo leído en las cajas de texto.  Este es el código:



Para terminar, tengo que decirles que encontré un problemita y si alguien sabe la solución, le encargo que me escriba un comentario.  La bronca es que siempre me inserta un registro en blanco al principio del archivo.  Fuera de eso, todo funciona de maravilla.  Intenté corregirlo viendo si el número total de registros (TotalReg) es el primero, que lo escriba en esa posición en lugar de escribirlo en esa posición + 1., pero luego me grabó un registro en blanco después del primer registro.  Para que el programa funcione a todo dar, siempre hay que tener en cuenta que el primer registro con datos es el segundo.

Ojalá alguien pudiera resolver este detallito, pero pese a ello, creo que todo este rollo te puede ser útil.  ¡Hasta la próxima!

21 noviembre 2008

Full Spectrum Warrior: juego de estrategia militar


Full Spectrum Warrior es un juego táctico en tiempo real que fue basado en material del ejército norteamericano. Juegas el papel del líder de un escuadrón y coordinas las actividades de dos escuadrones (Alpha y Bravo) en su recorrido por una zona de guerra urbana.

Este juego originalmente era comercial en el 2004 (léase: se tenía que comprar), pero ahora el ejército de Estados Unidos dio una lana para que fuera gratuito. El juego mide 1.6 Gb y necesita una conexión a internet para funcionar, pero si te gusta este tipo de juegos, tienes que probarlo.

Por otro lado, siendo un poco más reflexivos, es interesante el hecho de que el ejército de Estados Unidos quiera que muchos se diviertan con este juego. Me imagino ue tiene algo que ver con ideología, o tal vez para que la gente no crea que lo que hacen en Irak no está tan mal... quien sabe. Como diría la viejita del comercial: "Esa... es otra historia...".

La página oficial del juego es esta, pero no lo puedes descargar de allí. Si lo quieres descargar, lo puedes hacer aquí, aquí o aquí.

¡Hasta la próxima!

28 octubre 2008

Preparándose para la OMIJAL 2008

El otro día les mencioné que ya va a comenzar la OMIJAL 2008, o sea la Olimpiada Mexicana de Informática, eliminatoria Jalisco.  Sin embargo, quiero dejarles unos tips para aquellos que desean participar.

El concurso tiene tres etapas.  La primera consta de un examen escrito de problemas lógicos este 15 de noviembre en el auditorio Pedro Arrupe del ITESO.  No son cosas difíciles, pero hay que ir agarrando práctica y para ello lo mejor es ponerse a resolver problemas.

Antes que nada, vean la sección ¿Cómo me preparo? de la página de la OMIJAL.  Allí vienen datos y tips para los exámenes lógicos y de Karel e incluso vienen los exámenes de ejemplo de Karel, el lógico y el de C++ que puedes bajar y resolver para que te vayas dando cuenta como está la movida.  De Karel te sugiero que veas mi blog los problemas que tienen que ver con Karel.  Otra página que tiene más problemas en búsqueda de solución es este.  Traten de resolver todos los problemas que les sean posibles.

En esta página, del sitio viejito de la OMIJAL, puedes encontrar problemas lógicos y exámenes de Karel para ir afinando.

Espero que esta información te sea útil para participar en el concurso pero sobre todo para aprender algo nuevo.  ¡Hasta la próxima!

21 octubre 2008

La Olimpiada de Informática regresa

La OMIJAL está listo para arrancar.  A diferencias de años anteriores, se adelanta la fecha (antes comenzaba en febrero y esta vez comienza en noviembre) y se han cambiado algunas reglas para hacerlos más emocionante.

Recuerda que los ganadores a nivel Jalisco luego concursan a nivel nacional (y hasta eso que Jalisco siempre ha sido de los mejores) y los vencedores viajan a Ontario, Canadá en el 2010 para participar en la justa internacional. Hay diversión para gente desde primaria hasta universidad, así que no hay excusa.

Les dejo el poster y si te animas, contacta a Fernando y sus chavos.  Ojalá participes (y si ganas, me traes un llavero de Canadá, jeje).  Recuerda que lo importante no es ganar o perder, sino divertirse y aprender.

¡Que te diviertas!

14 octubre 2008

Accesa la página que quieras desde GPass

Un problema que tengo con frecuencia en mi trabajo es que tienen muchas páginas bloqueadas.  Esto se debe a que los empleados no deben estar viendo cosas ajenas a su trabajo.  Sin embargo, yo tengo algunos problemas con esto y no tienen nada que ver con simple rebeldía.  Mi tesis de maestría se trata de la relación entre videojuegos y educación, y todas las páginas que tengan la palabra videojuego, videogame, juego, game, etc. está bloqueada.  Por otro lado, dejo archivos a mis alumnos sobre los proyectos que hacemos en clase o videos tutoriales que creo en línea, usando servidores para compartir archivos (como el FreeDrive).  El problema es que no puedo accesar a estas cosas de forma legítima desde mi trabajo aunque tengo que hacerlos debido a mi trabajo.

Pero ayer me topé con un programa que me ayuda a accesar todos estos sitios desde el trabajo.  Es el GPass el cual rutea el tráfico de red por a través de servidores proxy encriptados.  Después de instalarlo, para ejecutar una aplicación usando el proxy solo tienes que darle doble click desde la ventana de GPass (como se ve en la imagen que está abajito).

Además de que funciona bien, no es tan lento.  La red en mi trabajo es muy, pero muy lenta y el GPass no me bajó velocidad.  Si te interesa conseguir el programa, haz click aquí.


Ojalá te sea útil.  ¡Hasta la próxima!

12 octubre 2008

Karel: resurrección de Hansel y Gretel

Hace mucho tiempo, había dejado un problema de Hansel y Gretel en el mundo virtual de Karel.  Te aconsejo que antes de seguir leyendo esto, leas ese artículo que describe el problema.  Lo puedes leer aquí.

La semana pasada estaba usando este ejemplo con otro grupo y lo resolví de una manera mucho más sencilla que la vez anterior (y más simple que los alumnos de hace un año).  Aquí les dejo el código y espero que les sea de utilidad.

¡Saludos!

Videos cuadro a cuadro con Movie Maker

Cuando quieres crear un video de bajo presupuesto y mucha diversión, puedes echar a volar tu imaginación haciendo un video cuadro a cuadro (o lo que algunos llaman Stop Motion) porque puedes crear tu cast de actores desde monitos de Lego (como enorme paréntesis: si te gusta jugar al Lego y no tienes piezas, puedes bajar el Lego Digital Designer que te deja jugar en tu pantalla), Playmobil, monitos de plástico de luchadores o muñequitos hechos de plastilina.  La idea es que fijas tu cámara digital en un lugar, pones el escenario (muñecos, escenografía, etc.), tomas una foto, luego cambias de lugar las cosas un poquito, y tomas otra foto, y así consecutivamente hasta terminar.

Y como estamos haciendo un video de bajo presupuesto, podemos usar el Windows Movie Maker, un programa que viene gratis con Windows XP.  Encontré un artículo del blog Ale Stop Motion que da consejos para poderlo hacer, especialmente la parte que te permite decir cuánto dura cada imagen y luego como acelerarlo más.  El artículo se llama Stop Motion con Windows Movie Maker.  Vale la pena que le echen un vistazo.
 
Como no se sabe nunca con las páginas web ajenas, bajé todo su artículo en un PDF que puedes bajar aquí.

Seguimos en contacto.  ¡Hasta la próxima!


07 octubre 2008

Insertando orden: ordenamiento inserción

Hace tiempo había escrito de la manera en que se pueden ordenar datos usando el algoritmo conocido como burbuja (puedes ver ese artículo aquí).  Aunque ese algoritmo es el más fácil de entender, también es el meno eficiente.  ¿Por qué digo que es ineficiente?  Es que la eficiencia de un algoritmo de ordenamiento se mide en base al número de comparaciones (o sea, ifs) y el número de asignaciones que tiene que hacer: entre más hace, más se tarda.

Realmente no hay un algoritmo de ordenamiento que sea ideal para todo tipo de arreglos porque unos funcionan mejor para arreglos que están totalmente desordenados (como lo es el QuickSort) o arreglos que están a medio ordenar.  El algoritmo que voy a cubrir aquí es fácil de entender y de implementar.  Además es muy eficiente para ordenar listas que casi están ordenadas.  El algoritmo es el de ordenamiento por inserción.

Para explicar como funciona, tengo varias imágenes que indican el proceso.  Supongamos que tenemos un arreglo de 10 elementos desordenados como el que se ve aquí:


Lo que vamos a hacer es comparar el segundo elemento con el primero.  Si es menor, los intercambio y si no, lo dejo como está y avanzo al siguiente elemento.  En este caso 10 es mayor a 3 así que no hago nada.  Esto se puede ver en esta figura:


Ahora va el tercer elemento.  Lo comparo con el segundo y veo que es menor asi que los intercambio.  Luego lo comparo con el primero y también es menor así que los intercambio.  Como ya es el primer elemento, ahi le paro (es el menor de todos los que he revisado hasta ahorita).  Este proceso lo pueden ver en estas figuras:


Ahora vamos con el cuarto elemento (el 8) y lo comparo con el tercero (10).  Como es menor los intercambio y lo comparo con el segundo (3).  Como no es menor, ahi se queda.  Estas son las imágenes:

Ahora hago lo mismo con el quinto elemento (15) el cual no se mueve por ser mayor que el cuarto (10) como se ve aquí:


Lo mismo con el sexto (5):


Ahora con el séptimo:


Y ahora el octavo:


Ahora el noveno.  Fíjate que como el 5 está repetido en la posición 3, no lo sustituye y se queda en la posición 4 como se ve en estas imágenes:


Y ahora con el último elemento:


Y al final queda el arreglo listo:

Para otra explicación, encontré este video que lo explica bastante bien.  Este es:



Dije que era de fácil implementación, así que vamos a ver como funciona.  Este sería el código en C:


Después de verlo, decidí que se podía optimizar reduciendo el número de asignaciones y quedó así:


Cuando lo ejecutas, se ve así:


Bien, ahora veamos en Visual Basic 6.  Al correrlo, se vería así:


El código sería este.  Fíjate que en el ciclo while tuve que poner un If para comparar el valor del arreglo porque me marcaba error al comparar el elemento del arreglo si j era menor a 0.  Sé que son más comparaciones y disminuye la velocidad de ordenamiento (aunque si lo corres en un CoreDuo o el Quad no notas la diferencia).


Al igual que con el ejemplo de ordenamiento burbuja, implementar el algoritmo en VB 2005 es más engorroso porque no se pueden hacer arreglos de controles (en el ejemplo de VB6, todas las cajas de texto eran un arreglo llamado txtNum), así que hice una subrutina que copia lo que hay en las cajas de texto al arreglo y otro que pasa lo que tiene el arreglo a las cajas de texto.  Fuera de eso, es casi idéntico al código de VB6.  Así se ve cuando se ejecuta:


Y este es el código:


Espero que todo haya quedado claro.  Si te quedaron dudas, déjame un comentario.

¡Saludos!


Related Posts Plugin for WordPress, Blogger...