27 julio 2009

Funciones funcionales en C

Aquí les dejo material de una clase “de altura” a la que no pude asistir físicamente.  Se trata de como realizar funciones en C.  Sin embargo, antes de empezar creo que deberías ver este mensaje.  Trata de cómo hacer funciones en Visual Basic 6, pero la explicación sobre lo que hacen las funciones sigue siendo la misma.
Este es el video introductorio:


Esta es la primera parte:

 
Y la segunda parte:


¡Hasta la próxima!

20 julio 2009

Guía de todo tipo de hardware de una PC

Me encontré hace rato con esta imagen que muestra tipos de memoria, slots para CPU, puertos, etc.  Me pareció una referencia muy padre para aquellos que les gusta meterle mano a su computadora.  Aquí se los pongo:
Ojalá te sea útil.  ¡Saludos!

16 julio 2009

Un tour de las redes sociales

Como no voy a llegar a tiempo para su clase, les dejo esta clase “virtual” para que sigan adelante en nuestro curso introductorio de internet.
Haciendo una breve recapitulación del tour que hemos estado haciendo, comenzamos visitando noticias en línea leyendo diferentes periódicos (como El Informador, Mural, Le Monde, La Voz de Michoacán, uno de Beijing, entre otros), luego pasamos a ver qué había en la TV (Televisa) y cómo consultar la cartelera del cine (en Cinépolis).  Después de ver estos sitios vimos el comercio electrónico en MercadoLibre y como reservar un hotel en BestDay o avión en Volaris para nuestras próximas vacaciones.  Hoy en la mañana visitamos varios sitios de referencia, como el diccionario de la Real Academia Española y WordReference, enciclopedias (Wikipedia y la Británica) y mapas.
Este parte del tour es una travesía a través de diferentes sitios sociales del internet para dar un vistazo rápido al panorama de lo que algunos llaman la Web 2.0.
Blogs
Un blog es básicamente un diario en línea.  ¿Alguna vez tuviste un diario y te ponías a escribir lo que te había pasado en el día?  Pues un blog es parecido.  Esta página que estás leyendo es parte de mi blog y si te fijas registra la fecha y hora cuando escribiste un mensaje y los ordena de tal manera que la que está en la parte superior es la última que se ha escrito (o sea ordenados por fecha de manera descendente).  Si te fijas al principio y final de este mensaje está la fecha cuando lo escribí.
Muchos usan los blogs para hablar de su vida cotidiana.  Por ejemplo mi amiga Dorix tiene su blog Heme aquí donde narra sus últimas aventuras.  Otro amigo, Mario, es aficionado a la fotografía y la comunicación e hizo su blog Pensamientos e imágenes donde habla de lo primero que se le ocurre y lo asocia con la fotografía.  Otro ejemplo es el de Chilangelina (no la conozco en persona, pero sé que es periodista del DF que vive en Estados Unidos) quien habla de su vida en Los Ángeles y otras cosas en su blog llamado El rincón del Recado.
Algunas compañías de noticias tienen sus blogs, algunos lo usan para difundir cosas relativas a la ciencia (como el de Martín Bonfil de la UNAM o del Dr. Alfonso Islas de la UdG) y otros como yo lo usamos con fines educativos.
En fin, creo que después de visitar todos esos blogs (o por lo menos algunos de ellos) te habrás podido dar cuenta de lo que se trata esta onda.
Fotos e imágenes
Muchos desean compartir sus fotos u otras imágenes con otros.  Para eso existe Flickr, la cual es un lugar donde gente sube sus fotos para que todos puedan verlas.  Vamos a buscar imágenes en este sitio.  Primero entra a Flickr (www.flickr.com) y en la caja de buscar escribimos el tema de las fotos que quiero buscar.  Yo voy a escribir Guitarra (lo encerré en un círculo rojo para que resaltara), como lo puedes ver en la figura (si está muy pequeña, haz clic sobre la imagen y se va a abrir más grande en otra ventana):
flickr1
Al darle clic en el botón “Buscar”, aparece esta ventana:
flickr2
Al darle clic a la primera imagen, me aparece esta otra ventana:
flickr3
Desde aquí puedo ver la imagen más grande (dándole clic a la lupa que está sobre la esquina superior izquierda de la imagen de la guitarra), leer lo que el artista escribió sobre la imagen y dejarle un comentario.
Un servicio que está de moda, especialmente entre adolescentes, es el MetroFlog.  Este sitio te permite subir una foto todos los días y escribir algo sobre él.  Luego le dices a tus amigos y luego te pueden hacer comentarios.  En lo particular se me hace mucho más útil el Flickr, pero cada quien tiene sus gustos.  Si quieres ver un ejemplo de un MetroFlog, visita el de Barrio-12 (ni lo conozco, pero es un ejemplo).
Sitios personales
En este tipo de sitios, puedes hablar de ti y agregar videos, ligas a páginas de tus amigos, subir imágenes, etc.  El Facebook es una red que originalmente estaba hecho para alumnos de la Universidad de Harvard, pero luego se extendió.  El único problema de entrar a Facebook es que tienes que darte de alta como usuario y hacer tu página para poder ver los perfiles de otros.  Como no es el propósito del curso crear una cuenta en Facebook, créanme que así funciona.
Otro sitios de este tipo es MySpace.  Aquí puedes ver la página de mi amigo Mario Alberto quien es un músico católico que vive en Estados Unidos.
Conclusiones
Sé que hay muchísimo más que ver, pero en esta ocasión vamos a dejarle aquí.  No nos alcanzan las 2 horas de clases para ir más a fondo.  Pero me despido de ustedes y seguimos en contacto para con tinuar el curso de forma física y no solo virtual como lo fue esta vez.
¡Saludos!

07 julio 2009

Visual C++ 2008: un tour

Hay muchísimos compiladores gratuitos de C++.  En lo personal, aprendí C con el compilador Turbo C (que todavía es gratuito y hablé de él aquí).  Todavía, pese a su edad, funciona bastante bien, pero tiene problemas al correr en Windows Vista 64 bits, así que terminé abandonándolo.  Ahorita tengo instalado el Borland C++ que, aunque marca un error al abrir, funciona bastante bien (lo puedes bajar de forma gratuita aquí).  Sin embargo, cuando supe que Microsoft está “regalando” un compilador de C++ .NET, lo tuve que probar.
Antes que nada, el compilador lo puedes descargar aquí.  Una vez que lo instalas, ejecútalo y te aparece una ventana como esta (haz clic sobre la imagen para verlo en grande):
00-Interfaz
Voy a comenzar haciendo un programa sencillito, así que voy al menú Archivo – Nuevo – Proyecto… como se observa aquí:
01-NuevoProyecto
En la siguiente ventana, elegimos un proyecto de tipo Win32, luego Aplicación de consola Win32 y le pongo un nombre a mi proyecto como se ve aquí.  También se puede cambiar la carpeta donde lo va a guardar, pero por default lo deja en Mis documentos\Visual Studio 2008\Projects.
02-NuevoProyecto 
Luego arranca un asistente que te ayuda a crear el proyecto.  Por esta ocasión, voy a aceptar las opciones por default, menos en la segunda ventana, bajo Opciones adicionales les puse Proyecto vacío (eso se ve en las imágenes):
03-Asistente
04-Asistente
Después de esto, cambia la ventana de la izquierda, el Explorador de soluciones, mostrando algunas carpetas como puedes ver en esta imagen.  Si no lo ves, haz clic en
05-ExploradorSoluciones
Ahora voy a agregar un archivo de código.  Para esto voy al menú Proyecto y selecciono Agregar nuevo elemento, como se ve aquí:
06-AgregarNuevo
De la ventana que aparece, selecciona Código, luego Archivo C++ (.cpp) y le pones n nombre como se ve aquí:
07-ExploradorSolucionesCodigo
¡Listo!  Ahora puedes escribir tu código de C++ en la ventana.  Yo voy a hacer un ejemplo muy simple, solo por efectos de prueba.  Este es mi miniprograma:
08-Codigo
Aquí hay unos cambios del C++ “normal”.  Al dar #include <iostream>, en la mayoría de los compiladores se tiene que poner una .h, así: #include <iostream.h>.  Luego hay que escribir using namespace std. Los namespace son una innovación en C++ que luego cubriré con calma (amerita un post extenso sobre su uso), pero básicamente declara una región donde se puede se pueden poner muchos elementos del programa.  El namespace std es donde están todos la biblioteca del C++ estándar.
Ahora es hora de compilar el programa.  Para esto hice fui al menú Generar, luego Generar solución o presionar F7.  Esto compila el programa.  En la ventana Resultados te dice si hay errores o te avisa que lo compiló sin broncas.  Aquí está la opción:
10-Depurar
Para ejecutar el programa, presiona el botón de depuración o ve al menú Depurar, luego Iniciar sin depuración o bien, presionar Ctrl+F5.  La ejecución del programa se ve así (como verás, no le gustan los acentos):
11-Ejecucion
Por lo pronto, esta es una breve introducción.  Si quieres profundizar, puedes ver el tutorial de Microsoft aquí.  ¡Que se diviertan!

02 julio 2009

Arreglos en C y C++

Hace tiempo escribí sobre lo que son los arreglos y su uso en Visual Basic 6 (el artículo se llama “Arreglando arreglos”).  Si tienes duda de lo que son los arreglos, visita ese post antes de seguirle.
En este post voy a ejemplificar su uso en C (o C++ que funciona casi igual).  Antes de comenzar con otra cosa, voy a describir como se declaran arreglos en C/C++:
tipo nombre[no_elementos];
Por ejemplo, si quiero declarar un arreglo de 10 elementos llamado arr que almacene datos de tipo entero, escribiría esto:
int arr[10];
Y lo mismo con cualquier otro tipo de dato (cambias el int por char, double, long, o lo que sea).
Voy a hacer el mismo ejemplo mencionado en Arreglando arreglos pero en C.  Esta es la declaración de variables (10 variables para el uso sin arreglos y un arreglo y otra variable para el uso de arreglos):
00-Variables
Aquí lleno las 10 edades SIN arreglos:
00-LlenadoSinArreglos
Llenado de las 10 edades CON arreglos:
01-LlenadoConArreglos
Cálculo del número mayor SIN arreglos:
02-MaxSinArreglos
Cálculo del número menor SIN arreglos:
03-MinSin
Cálculo del mayor y menor CON arreglos:
04-MaxMinCon
Este es el cálculo del promedio, con y sin arreglos:
05-PromedioConySin
Espero que les sea útil.  ¡Hasta la próxima!

Software para niños

Desde que le enseño computación a mis hijas, siempre ando alerta de programas que pueden usar y creo que estos programas les pueden ser útiles si tienes hijos o hermanos, etc. que quieran familiarizarse con la computadora y divertirse al mismo tiempo.
kidoz-child-friendly-web-browser1 Para mi hija de 5 años estoy usando KIDOZ, el cual es un navegador de internet para niños que los lleva a juegos, videos y sitios web propios para su edad.  Está en inglés y te lleva a sitios en inglés pero lejos de ser una debilidad he observado que mi hija le encanta y está aprendiendo un poco de inglés.  Es una aplicación que necesita Adobe AIR (esta es la opinión de elwebmasterwm sobre KIDOZ).
qimo Otro software que incluye todo un ambiente operativo donde un niño puede picarle a lo que se le pegue la gana es Qimo, un Linux para niños (basado en XUbuntu).  Tiene el TuxPaint (del que hablo poquito más adelante) y varios juegos para familiarizarse con el mouse, teclado, etc.  Les aconsejo que no lo instalen desde Windows, sino que lo usen como un LiveCD, o sea que metan el CD en la unidad y arranquen su computadora desde allí.
babysmash Baby Smash es mi solución para mi hija de 2 años.  Básicamente bloquea el teclado (para que tu bebé no modifique el documento en el que estás trabajando) y cada vez que aprieta una tecla, aparece la letra en grande en la pantalla y una voz pronuncia la letra en inglés.  Si presiona el mouse, aparece una bola de color y si lo hace adentro de una letra o figura, se escucha una risa.  Esta liga es una opinión más completa de Baby Smash.
starter-coloringbook A mi hija mayor le encanta picarle al Photoshop.  No sabe mucho (tiene demasiadas opciones para ella), pero usa bastante bien las brochas (le encanta el de estrellas) y más o menos puede cambiar colores.  El Paint que viene con Windows no le gusta porque no puede poner estrellas ni usar otras brochas.  Una solución es TuxPaint, que antes solo estaba disponible para Linux, pero ahora hay versiones para Mac y Windows.  Consta de botones grandes para seleccionar herramientas y colores (cosa que le facilita la vida a mi hija) y tiene muchos sellos que puede aplicar de forma sencilla (con eso me perdonó la falta de brochas).  El archivo con sellos adicionales es un archivo diferente del instalador.  Ambos archivos los puedes bajar aquí para Windows XP y Vista o aquí para MacOS X.
Espero que los pequeños se diviertan y aprendan computación con estos programas gratuitos.  ¡Hasta la próxima!

01 julio 2009

Es tu tiempo, es tiempo de Dios…

El verano se acerca y es momento de invitarte a vivir una experiencia única:
UN CAMPAMENTO KAIRÓS
¡ATRÉVETE A VIVIR EL RETO!
Podrás conocer grandes y verdaderos amigos, te divertirás con varias actividades extremas, podrás maravillarte con la naturaleza, cantarás a la luz de una gran fogata, y sobre todo tendrás un encuentro dinámico con Jesús vivo, alegre y joven.
Estos son los campamentos que tendremos en Guadalajara este verano (haz clic sobre la imagen para verlo más grande):
Verano2009-Web
INFORMES E INSCRIPCIONES: (0133) 3612-4316 o a kairosgdl@yahoo.com

30 junio 2009

Historia del C y C++

Hace poco leí un artículo donde enfatizaba la importancia de conocer la historia de una ciencia para poder entenderla mejor y no cometer los mismos errores del pasado o bien aprovechar lo que se hizo y que no quede en el olvido.  (El que quiera leer el texto, es parte del libro “La piedra de Toque” de Jean-Marc Lévy-Leblond [aquí está un resumen del libro, por si te interesa]).  En parte por esta razón voy a narrar una breve historia del lenguaje de programación C++ (lo cual, forzosamente, tiene que pasar por el lenguaje C).
Tal vez debería hacer una historia de todos los lenguajes de programación, sin embargo, creo que es una tarea demasiado extenso para este post de mi blog (que no es tan breve).  Sin embargo, para aquellos interesados pueden encontrar este dibujo que resume la historia de la programación (de forma muy esquemática y sin los chismes pertinentes, pero en fin).
Lenguaje C: comenzando bien
ktdr El lenguaje C cambió la historia de la programación.  Todo comenzó en los laboratorios Bell (luego convertido en AT&T) en los 1960s.  Tenían una computadora PDP-7 (con sus tremendos 8K de memoria y sin ningún software, porque no existía).  Se necesitaba software y como te podrás imagina, el software más importante es el sistema operativo.  Sin embargo, el problema es que el único lenguaje de programación que tenían era el ensamblador y pensar en crear un programa sencillo en este lenguaje, deja un sistema operativo completo, es una tarea hercúlea.  Por lo tanto lo primero que se hizo necesario fue hacer un lenguaje de programación lo suficientemente potente como para crear un proyecto de esta envergadura.  Ken Thompson estaba a cargo de crear este sistema operativo, que luego se llamó Unix.  Un cuate suyo que trabajaba con él, Dennis Ritchie diseñó un lenguaje, llamado C porque tenía influencia de un lenguaje anterior llamado B, hecho por Thompson, la cual es una versión simplificada de un lenguaje más viejo llamado BCPL.  Ritchie trabajó en un servidor PDP-11 (más moderno que el anterior) durante los 1970s.
Antes de C, los lenguajes de programación generalmente se creaban con fines académicos o por comités burocráticos (como el COBOL que está hecho por administradores de negocios donde tienes que escribir chorrocientos mil líneas de código para hacer una simple suma).  C fue diseñado, implementado y desarrollado por programadores que trabajaban en problemas reales, lo cual lo hizo muy usado por programadores en todos lados y durante los 1980s y parte de los 90s.
Un gran avance de C era debido a que es un lenguaje estructurado (al igual que el Pascal), lo cual permite hacer programas grandes (cosa casi imposible con ensamblador u otros) y en su tiempo, era una innovación tremenda.
Lenguaje C++: la evolución
Saliendo del ámbito computacional, la teoría de la evolución de Darwin, pese a la que piensan algunos radicales religiosos, rifa y explica muchas cosas que el creacionismo no puede.  Básicamente nos dice que la especies sufren modificaciones aleatorias en sus genes (bueno, lo de los genes fue aportación de Dobzhansky porque la genética no existía en tiempos de Darwin) y solo subsisten los que mejor se adaptan a su medio ambiente.
¿Y para qué les digo esto?  Uno, para ampliar un poco la cultura de algunos lectores en materia de biología, pero principalmente porque con el C sucedió algo similar.  Los sistemas se iban haciendo cada vez más complejos y hacerlos en C implicaba mucho trabajo, así que C++ es el siguiente paso de la “evolución” que va desde BCPL hasta C++.
¿Pero en qué consistía esta “evolución”?  Principalmente en encontrar otra manera de hacer las cosas.  Algunos llaman a esto “paradigmas” de programación (nota cultura: el término paradigma fue acuñada por Thomas Kuhn en su libro La estructura de las revoluciones científicas.  En el texto usa la palabra paradigma para significar cosas diferentes, o sea que nadie realmente sabe lo que significa esa palabra, jeje).  Escribí algo sobre paradigmas de programación en mi post Paradigmas de Programación y muchos objetos en C++.  Como dije antes, el C es programación estructurada.  Básicamente en este tipo de programación, se ejecuta un programa línea por línea en orden.  El programa se ejecuta de principio a fin.  Sin embargo, en la programación orientada a objetos la idea es solucionar problemas de forma similar a como resolvemos problemas en el mundo “real”, es decir, contamos con muchos objetos, cada uno con sus características y acciones que puede realizar (por ejemplo, mi mano tiene ciertas características: número de dedos, tamaño, color, etc., y cosas que puede hacer: cerrar dedos, agarrar algo, etc.).  Resolvemos problemas al tomar objetos y ponerlos a funcionar (siguiendo con el ejemplo de mi mano, si mi problema consiste en escribir, puedo usar mi objeto mano y ejecutar acciones que me permiten agarrar un objeto lápiz y colocarlo sobre un objeto papel y moverlo de tal manera que escriba).  Este paradigma ayuda a reducir la complejidad de sistemas grandes
Realmente no existen lenguajes 100% orientados a objetos (el único que conozco es SmallTalk), pero lenguajes como C++ o Java combinan lo orientado a objetos con un poco de programación estructurada.
bs2
C++ fue inventada por Bjarne Stroustrup en 1979.  Al inicio lo llamó C con clases, pero en el 83 lo cambió a C++.  Lo hizo basándose en C, incluyendo todas sus características, atributos y beneficios.  Lo que agregó fue el soporte a programación orientada a objetos.  Esto hacía que la transición hacia la programación orientada a objetos (o OOP por sus siglas en inglés, o POO por su acrónimo en castellano) sea fácil y sencilla.
Pero aquí no termina nuestra historia feliz.  C++ fue sujeta a revisiones y en 1994 un comité de ANSI e ISO desarrollaron el C++ “estándar” que es el que se usa en todos los compiladores.  Algunas compañías agregan librerías y funciones, pero todos deben respetar el C++ como fue definida por el comité ANSI/ISO (por esta razón no me gusta el Dev-Cpp porque tiene muchas cosas que no son estándares y no funciona en otros compiladores).
Una nota final.  El C++ no hizo que el C cayera en desuso.  Todavía hay muchas aplicaciones donde se usa el C, por ejemplo en el campo de la robótica y otros usos en la industria manufacturera.
Por esta vez, aquí le dejamos.  Espero que les haya parecido interesante o por lo menos útil.  ¡Saludos!

24 junio 2009

El Tony y la ciencia…

Solo para comentarles que estoy participando en un blog, llamado Producción Científica Contemporánea, como parte de una materia del mismo nombre que estoy tomando en mi maestría en el ITESO.

En general trata de cosas que estamos discutiendo en clase, pero si están interesados en lo que se está haciendo en la ciencia actual, pueden visitar el sitio.

¡Saludos!

12 junio 2009

LiberKey: un montón de software en tu USB

¿No te ha pasado que vas a la computadora de un amigo (o de un cybercafé, escuela, biblioteca, etc.) a trabajar (o jugar) y resulta que no tiene tu software preferido?  ¿No es desesperante, en ocasiones, tener que usar programas a los que no estás acostumbrado o no te gustan?  A mí me pasa a cada rato y me toca usar Internet Explorer en lugar de Firefox, tener que usar el terrible Paint que viene con Windows en lugar de algo con mayores facilidades y herramientas como podría ser GIMP y en las computadoras de la escuela tienen quemador de DVD, pero no hay software para quemar discos.  Y la lista continúa y continúa…
Por esta razón me gusta usar aplicaciones portables (aunque la traducción correcta creo que debería ser portátiles), o sea, programas que puedes correr desde tu memoria USB y hay muchos sitios desde donde puedes descargar aplicaciones de este tipo (como PortableApps.com, entre otros).  Sin embargo, el otro día leí del blog de MakeUseOf acerca de LiberKey, un compendio de más de 200 programas freeware portables que puedes bajar gratis.  Los tienen divididos en 3 categorías, donde el paquete non-plus-entra mide como 200 Mb.
Tiene una interfaz gráfica sencilla de usar que te da acceso a todos los programas y los programas vas desde editores de texto, hasta quemadores de disco, edición de video y audio, redes de computadoras, arreglar tu sistema, etc.
Si te interesa, la página oficial es esta.  Desde allí puedes descargar el paquete que necesites.  Si te interesa este tipo de programas, también puedes ver una lista de 100 aplicaciones portables que es interesante.
¡Saludos!

22 mayo 2009

¡Cuidado con los comentarios en YouTube!

Tengan cuidado con los comentarios que escriben en YouTube.  Generalmente no son muy útiles, pero lo peor es que ahora son usados por quienes hacen malware al hacer ligas que te ofrecen antivirus falso y otros programas maliciosos o para enviarte a páginas porno.
El blog de Panda antivirus explica la forma en que una liga de los comentarios de YouTube te lleva a un sitio porno para luego decirte que instales una versión falsa del Flash Player (este es el artículo, en inglés).
Se las paso al costo.  Tengan cuidado.  ¡Hasta la próxima!

17 mayo 2009

Photoshop: jugando con líneas de luz

Ahorita, como se habrán dado cuenta, ando en la Photoshopmanía.  Creo que una de las mejores maneras de aprender Photoshop es por medio de tutoriales y por eso ando vagando el inmenso mundo de la Güev en búsqueda de tutoriales interesantes.
Hace tiempo hice (bueno, traduje) un tutorial que muestra como realizar efectos de luz en una imagen en tonos de gris.  Ahora me encontré un video donde muestra como dibujar líneas luminosas alrededor de una persona.  Creo que la técnica que se muestra puede usarla en muchas aplicaciones diferentes, solo falta que eches a volar tu imaginación.
Aquí les dejo el video.  ¡Hasta la próxima!

Photoshop: imágenes tipo iPod

10fin
¿Has visto la publicidad para el iPod?  Me supongo que sí (si no, fíjate en esta imagen).
Encontré un tutorial, gracias a SoloPhotoshop, donde muestra como hacer este tipo de imágenes en Photoshop (se hace la imagen que está al principio de este mensaje).  Esta es la liga.
Ojalá te sea útil.  ¡Hasta la próxima!

13 mayo 2009

Web Social y Educación

Siempre ando buscando nuevas maneras de enseñar (algunos resultados de esta búsqueda los puedes encontrar en mi blog).  Creo que la Web 2.0, videojuegos y otras tecnologías que muchos maestros desprecian pueden ser usadas con fines educativos con resultados sorprendentes.

Me encontré esta presentación que muestra como usar la Web 2.0 con fines educativos y se las paso al costo.
¡Hasta la próxima!

07 mayo 2009

Círculos luminosos en Photoshop

Como puedes observar en la imagen anterior, se pueden hacer efectos interesantes con círculos luminosos semitransparentes (conocidos como efecto Bokeh).
Esta es la liga al tutorial para que aprendan como hacerlo.  ¡Saludos!

El Tony y sus ondas...

Related Posts Plugin for WordPress, Blogger...