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 envergaduraKen 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!

28 abril 2009

Efectos de luz con Photoshop

Encontré un tutorial muy padre sobre la forma de hacer algunos efectos con luz con imágenes en Photoshop por medio de brillos y neon que pueden aplicarse a fotografías en el sitio de adobetutorialz.  Como está en inglés, hice los mismos pasos con mis propias imágenes y traduje todos los pasos.  Aquí les presento el tutorial.  (Nota: hay un buscador muy padre de tutoriales en inglés de Photoshop llamado Vunky Search).
Primero creo un nuevo archivo con estas características:
00-NuevaImagen
Luego uso la herramienta del rectángulo para crear un fondo (no importa el color).  Luego le aplico un degradado usando los “Blending options” de la capa, como se ve aquí:
01-Gradient-al-rectangulo
 02-Valores-gradiente
Hasta ahorita, mi imagen se ve así:
03-Imagen
Luego encuentra una imagen.  Para este ejemplo, usé esta:
04-ImagenAna
Recorté la imagen y la copié a la imagen en la que estoy trabajando.  Se ve así:
05-Imagen
En la parte de abajo de la ventana de capas (layers) selecciono el botón de crear nueva capa de ajuste o relleno y selecciono Curves, como se ve aquí:
06-Curves
 07-Curves
La imagen queda así:
08-Imagen
Mientras presionas la tecla ALT, haz clic entre la capa del efecto de curva de color que acabas de poner y la capa de la foto (en este caso el de mi hija).
09-Curves-a-Ana
La imagen queda así (se nota la pequeña diferencia en mi hija: está más oscura su foto):
10-Imagen
Luego hacemos otra capa de ajuste y elegimos la opción Black & White para ponerlo blanco y negro.  Abajo se ve los valores que le asigné.
11-Black-and-white
12-Black-and-white
13-Imagen
Vuelvo a presionar ALT mientras hago clic entre esta capa de ajuste y la capa anterior (para que esta capa aplique a la capa de mi hija vestida de hada).
14-Black-and-white
15-Imagen 
Ahora voy a crear una nueva brocha.  Para esto haz una nueva imagen con estas características y luego dibujo un rectángulo de 35x35 pixeles.
16-New
Ahora vamos a crear una nueva brocha en Edit – Define Brush Preset.
17-Define-Brush-preset
De vuelta a nuestra imagen, hacemos una nueva capa para dibujar con la brocha que acabamos de crear.  Establece las siguiente opciones en el palette de brocha (aparece con F5 o puedes verlo en la esquina superior derecha).  El color de la brocha es #E6E6AC.
18-BrushStyle
19-BrushStyle
20-BrushStyle
Al dibujar con esta brocha, queda algo así:
21-Imagen
Para que se vea más interesante, podemos agregarle un brillo externo a la capa (Blending Options – Outer Glow).  Estos son los parámetros que le puse:
22-Outer-glow
La imagen ahora se ve así:
23-Imagen
Ahora intenté dibujar una especie de rayos atrás de mi hija.  Esto lo dibujé con la pluma fuente en una capa que puse abajo de la de mi hija.  Así se ve:
24-Rayos
Luego dupliqué esa capa para poner los mismos rayos del otro lado y usé la herramienta de transformación libre (Free Transform o CTRL+T) para girarlos y ponerlo más o menos en el lugar correcto.  La imagen queda así:
25-Imagen 
Los rayos están demasiado brillantes, así que voy a hacer algunos cambios.  Primero voy a rasterizar las dos capas de rayos (clic derecho sobre la capa y Rasterize), luego los fusiono en una sola capa.  Para fusionarlas selecciono las capas presionando CTRL mientas hago clic sobre ellas y luego presiono CTRL+E.  A esta nueva capa le aplico una máscara (haciendo clic en la parte inferior del palette de capas [layers]).  Después de esto, uso una brocha “suave” de 100 pixeles con una opacidad de 30% para oscurecer un poco los rayos.
26-Brush
Al dibujar con la brocha sobre los rayos, queda así:
27-Imagen 
Así se ve un poco mejor.  Ahora voy a dibujar unas líneas que asemejen algo como listones de luz alrededor de mi pequeña hada.  Comienzo usado la pluma fuente en modo Path:
28-Pen-path
29-Path
Puedes encontrar esta ruta en la pestaña Path:
30-Path
Ahora crea una nueva capa (en la pestaña Layers) y elige una brocha de color gris (diámetro 9 y establece Hardness en 100%), selecciona la herramienta de la pluma fuente y haz clic derecho sobre la ruta que acabas de crear en el palette de rutas (Paths, que se ve en la imagen anterior a este párrafo).  Del menú que aparece, seleccione Stroke Path (Brush Mode y fíjate que esté tachado la caja Simulate Pressure):
31-Stroke-Path
Luego dibuja otro par de rutas y haz lo mismo.  La imagen debería queda algo así:
32-Imagen
Espero que te haya sido interesante este tutorial.  Les recuerdo que la versión original en inglés lo encuentras aquí.  ¡Hasta la próxima!

27 abril 2009

Movie Maker Portátil arregla problemas

Para todos aquellos que usan Windows Movie Maker se habrán topado con el problema de que en las versiones Vista y la nueva versión 7 ya no tienen toda la funcionalidad que tenía la versión que funcionaba en XP.
Pero existe la versión portátil que puedes bajar aquí que funciona bien bajo XP, Vista y 7.
Para mayores detalles (en inglés) visita la página de Download Squad (el lugar donde leí la noticia).  Espero que te sea de utilidad.  ¡Saludos!

24 abril 2009

Una mujer caliente en Photoshop

tutorial-mujer-de-fuego

¿Alguna vez han visto en Guadalajara, en el Hospicio Cabañas, la pintura del hombre en llamas hecha por Clemente Orozco?  ¿Quieres hacer algo similar en Photoshop?
Encontré este tutorial que muestra como crear una mujer en llamas.  Las imágenes y el tutorial lo puedes ver aquí y abajo pongo el video en YouTube para que lo aprecies mejor.


¡Hasta la próxima!

12 abril 2009

¡Juegos gratis! Regalan Grand Theft Auto 1 y 2

En efecto, los genios de Rockstar, creadores de la serie Grand Theft Auto (juego bastante polémico, por cierto), decidieron hace un par de años que sería buena onda regalar algunos de sus juegos clásicos gratis, así que ahora puedes bajar gratis Grand Theft Auto 1 y 2 (que son diferentes a los “originales” porque son 2D en lugar de 3D), así como Wild Metal Country.
Si te interesa, los puedes bajar aquí.  Hay que registrarse y te mandan por correo una liga para que puedas bajarlos.
Agradezco a Elite Freeware por ponerme al tanto de esta buena noticia.  ¡Que te diviertas!
Untitled-1

03 abril 2009

ZoomIt: Acercamientos cercanos del 3er tipo

En muchas de mis clases proyecto en una pantalla lo que se ve en mi computadora.  En algunas ocasiones hay problemas porque las letras se ven muy pequeñas o se pierden algunos detalles.
Hace rato, en el blog de Elite Freeware, encontré a ZoomIt.  Es un programa portátil (o portable como prefieren decirle otros) que te deja aumentar el tamaño de lo que se ve en la pantalla alrededor del mouse y dibujar en la pantalla.  Se me hace una herramienta muy útil para quienes damos presentaciones, especialmente me hace pensar en un alumno que tuve que se le dificultaba ver la pantalla debido a problemas con la vista.
Si quieres lo puedes bajar aquí.  ¡Saludos!

20 marzo 2009

Jugando con el tiempo (de nuevo)

Hace tiempo mostré como se usa el control Timer en Visual Basic 6 al mover una pelotita por la pantalla y al animar a unos dibujos, pero el otro día preparé un video con otro proyecto que también usa el Timer para una clase.  Aquí pueden bajar la primera parte y la segunda parte.  Vienen en formato RAR (así que búsquense su copia de WinRAR o algo por el estilo) y abran los archivos HTML en su navegador.
También lo pueden ver en aquí:


¡Saludos!

19 marzo 2009

Creando archivos ejecutables y programas de instalación en Visual Basic 6.0

Cuando desarrollas una aplicación usando Visual Basic (o cualquier otro lenguaje), es necesario que hagas un programa ejecutable para entregárselo a tu cliente.  El cliente no quiere ni necesita pagar una licencia de Visual Basic (o cualquier otro compilador) para poder correr la aplicación que le estás dando.  Yo nunca he bajado/comprado un programa que me obligue a usar un entorno de programación para correrlo, viene un programa de instalación.
Visual Basic 6.0 puede generar archivos ejecutables.  También tiene un asistente que crea programas de instalación que le permiten al usuario elegir en dónde lo quiere instalar, etc.  Hice un video que muestra la manera de hacer ambas cosas.  Como mide 14 minutos, no lo pude subir a mi canal de YouTube, pero lo puedes bajar aquí.  Vienen varios archivos comprimidos en formato RAR (vas a necesitar el WinRAR o algo similar para descomprimirlos) y abre el archivo HTML en tu navegador.
Espero que les sea útil.  ¡Saludos!

El Tony y sus ondas...

Related Posts Plugin for WordPress, Blogger...