10 agosto 2008

Un editor a todo dar: Notepad++


En mi post anterior les comentaba que me estoy aventurando en Java. Como soy fan del software gratuito, anduve buscando algo que sustituyera el bloc de notas para escribir código javadiense. Encontré este editor de código muy padre y que ocupa poco espacio. Te ayuda a escribir HTML, C++, Java, SQL y un montón de otros lenguajes, coloreando el texto de diferentes colores para ayudarte a detectar errores o simplemente hacerte la vida más fácil al estar editando tu código.

El programita se llama Notepad++ y su página es esta. Ojalá te sea útil...

08 agosto 2008

Java: la mera mata de la programada

Voy a comenzar a aventurarme en los reinos oscuros de la programación orientado a objetos con Java, así que en mi blog comenzarán a aparecer algunos mensajes sobre el tema.

Antes que nada, voy a platicar un poco sobre la tecnología de Java, cosa que es muy interesante. Para entender su funcionamiento, hay que hablar un poco sobre los lenguajes de programación existentes. Todos los lenguajes de programación usan el código fuente en un lenguaje determinado siguiendo cierta sintáxis (reglas impuestas por C, C++, Visual Basic, COBOL, FORTRAN, Ensamblador u otro). Este es un buen avance, sin embargo a la computadora como tal no le sirve de nada porque sólo entiende ceros y unos, puro binario, y, aunque es posible codificar en puro binario, es cosa de locos. Entonces para que todo funcione, es necesario traducir este código a unos y ceros.

Para hacer esto, básicamente hay dos tipos de lenguajes: los interpretados y los compilados. Los interpretados, usados por lenguajes como GW-BASIC, Logo, JavaScript, Lisp, VBScript, etc., necesitan de un programa traductor entre el código fuente y la computadora. Lo que hace es leer la primera línea del código, lo traduce para que lo entienda la computadora, lo envía a la computadora, recibe la respuesta de la computadora, lo traduce para que lo entienda el programa y da el resultado al programa. Luego lee la siguiente línea del código fuente y vuelve a hacer el mismo proceso y así sucesivamente hasta terminar todas las instrucciones del programa. Esto es como si me quisiera comunicar con una persona que sólo habla kuskoy y yo no tengo ni la más remota idea de cómo se habla. Lo mejor sería conseguirme un intérprete que sepa kuskoy y así yo le digo algo en español, él le dice lo mismo al cuate con el que pretendo comunicarme, éste le contesta al intérprete y éste último me dice la respuesta en español. Luego yo le digo otra cosa y así nos la llevamos durante toda la conversación. Es obvio que no puedo hacer nada si el intérprete no va conmigo. Lo mismo sucede con el programa hecho en un lenguaje interpretado: si no estoy corriendo el software intérprete, no funciona mi programa. Hice el siguiente dibujito para resumir lo que acabo de escribir:


Otra manera de hacer que el programa fuente pueda ser ejecutado por la computadora es por medio de un compilador (o sea, los lenguajes compilados). Algunos ejemplos de este tipo de lenguajes son el C, C++, Pascal o Fortran. El compilador es un programita que traduce el código fuente de golpe y porrazo a binario, por lo que ya no necesitas el compilador para ejecutar tu magna aplicación que sorprenderá al mundo entero. Es como si, en lugar de un intérprete para comunicarme con el que habla kuskoy, a alguien que traduce todo un documento al kuskoy para que lo pueda leer el extranjero. Una vez traducido el documento, no requiero los servicios del traductor para seguirme comunicando.

Una nota técnica sobre lo que dije del compilador: el compilador realmente no lo convierte a binario sino que convierte el código fuente a un código objeto, algo intermedio entre el código fuente y binario. Al tener el código objeto, se usa un programa llamado linker que sirve para convertir el código objeto al código binario de la computadora en cuestión. Ten cuidado aquí porque el código binario de cada tipo de sistema operativo es diferente, o sea que no es lo mismo un ejecutable para una PC corriendo Windows Vistagüácala!) que para una Mac usando MacOS X o para una computadora ejecutando Ubuntu (una distribución de Linux). Lo chido es que tienes un sólo codigo fuente que puedes compilar con diferentes compiladores para su uso en diferentes sistemas, por decir un programa en C++ puedes compilarlo con Visual C++ o Borland C++ para obtener una aplicación que funcione bajo Windows o compilarlo con el compilador C++ 9.1 para MacOS para que funcione en esa plataforma o con el GCC para que funcione bajo Linux. Aquí dejo un diagrama para ejemplificar el proceso de compilar un programa:


¿Y cuál es la diferencia entre ambos mundos? Los lenguajes compilados son mucho más rápidos que ñps interpretados, pero solo funcionan bajo un sistema operativo. La mayor parte de los lenguajes hechos para desarrollar aplicaciones "serias" son de este tipo. Sin embargo, teniendo el intérprete, un programa hecho en un lenguaje interpretado funciona en cualquier máquina, en cualquier sistema operativo (por ejemplo, el ActionScript que viene con el Flash funciona en todas las computadoras que tienen instalado el Flash Player).

Java une lo mejor de dos mundos. El código fuente que escribes en Java es compilado a un lenguaje ejecutable, llamado P-Code, que se ejecuta en una máquina virtual, o sea, una computadora "de mentiritas", totalmente funcional pero físicamente inexistente. A la hora de correr el programa, se necesita una máquina virtual de Java instalado para el sistema operativo en cuestión para que sirva de intérprete entre la aplicación Java y la computadora y ¡listo! el programa ejecutable se ejecuta (valga la redundancia). Aquí les dejo un último diagrama de cómo funciona todo este relajo de Java:


¿Qué ventajas trae esto, probablemente te preguntarás? Fácil. Con el famoso código P, se puede llevar esa aplicación a cualquier máquina y funciona, sea una PC, Mac, Servidor, Palm, teléfono celular, refrigerador, cafetera inteligente, máquina expendedora de refrescos o casi cualquier cosa que tenga un procesador. Sun, la compañía detrás de Java, tiene máquinas virutales para casi todas las plataformas que son gratuitas. Como verás, la desventaja de este lenguaje compilado-interpretado es la velocidad, pero la gran ventaja es que tu programa ejecutable puede correr en cualquier lado. Por ejemplo, hace tiempo Sun hizo una suite de aplicaciones gratuita llamada StarOffice (ahora la versión gratuita se llama OpenOffice porque el StarOffice ya se cobra) que funciona sobre Java (querían demostrar que Java era lo suficientemente potente como para realizar casi cualquier aplicación para computadoras). Funciona muy bien y todo es alegría y felicidad pero si lo comparas con Microsoft Office en una PC vas a ver que el OpenOffice es más lento, pero necesitas una copia de MS Office diferente si lo quieres ejecutar en la Mac (versión que difiere de la versión para PC) y es inexistente en Linux. OpenOffice funciona bajo cualquier plataforma.
Referencias:

Aquí te dejo algunas referencias padres que te pueden ayudar. Hay dos libros que hasta ahorita me han gustado y son útiles:

Introduction to Java and Software Design de Nell Dale, Chip Weems y Mark Headington de Jones and Bartlett Publishers

Java: How to program de los Deitel (padre e hijo)

El mejor material que he visto hasta ahorita en línea es The Java Tutorials. Vale la pena que le eches un vistazo.

Aquí les pongo ligas a estos libros por si les interesa. Si tienes dudas, sugerencias, propuestas o lo que sea, deja un comentario. ¡Hasta la próxima!

05 agosto 2008

Paradigmas de Programación y muchos objetos en C++

En este mensaje, voy a comenzar a hablar un poco acerca de la programación orientada a objetos y voy a ejemplificar lo que voy describiendo con el lenguaje C++.  Espero que encuentren esto de utilidad y si hay alguna duda, queja sugerencia o lo que sea, déjenme un comentario e intentaré responer en cuanto pueda.
Paradigmas de programación
Antes que nada, vamos familiarizándonos con diferentes paradigmas de programación (palabra dominguera para decir que son diferentes maneras de representar y manipular datos).

Existen varios paradigmas y todos tienen una manera diferente de resolver problemas.  Aquí pongo unos cuantos con un resumen de su filosofía:
  • El paradigma imperativo es considerado el más común y está representado, por ejemplo, por el C o por BASIC.  Aquí los programas se ejecutan de manera lineal, una instrucción a la vez, línea por línea, siempre en el mismo orden.
  • El paradigma funcional está representado por la familia de lenguajes LISP.  Aquí todos los programas son un montón de funciones anidadas.
  • El paradigma lógico, un ejemplo es PROLOG.
  • El paradigma orientado a objetos. Un lenguaje completamente orientado a objetos es Smalltalk.  Aquí todo el programa de compone de objetos, los cuales contienen procedimientos y datos.
También hay algunos lenguajes que mezclan paradigmas.  Por ejemplo, C++, Java y Visual Basic combinan el paradigma imperativo y el orientado a objetos.

Vista Preeliminar de OOP
Ya que hemos hablado tantito acerca de los diferentes paradigmas de programación, es hora de ver que onda con la Programación Orientada a Objetos (abreviado como POO [por sus siglas en español] o OOP [por sus siglas en inglés: Object Oriented Programming]) enfocada a C++.

¿Y qué "¡#¿$!? es un objeto?
De una manera chipocluda, podemos decir que un objeto es un principio de alto nivel, un concepto que nos permite organizar software.  Precisamente de aquí sacamos la palabrita de "programación orientada a objetos".

De una manera más real, podemos decir que un objeto es una región de almacenamiento dentro de un programa ejecutable que obedece un conjunto de reglas definidas por el usuario, o sea que es una estructura que guarda datos y contiene funciones para manipular esos datos.  Tomemos como ejemplo un arreglo.  En teoría, el programador tuvo que pensar en qué características serían necesarias en ese objeto arreglo; y a cada arreglo declarado en un programa ejecutable se le llama objeto.  También se conoce a un objeto en memoria como una "instancia".

Esto sonó muy bonito, pero son un par de conceptos que en la práctica no nos sirven de nada.  Hasta ahora he descrito a los objetos como regiones de memoria.  Es claro que conozcamos objetos (un vaso, una ventana, un carro, etc.), pero todavía no se entiende muy bien que característica de un lenguaje de programación nos permite especificar y crear objetos.  Para esto hacemos una "clase", que en la mayoría de lenguajes de programación OO incluyendo al C++, es un tipo de dato definido por el usuario para crear objetos.  Clases son como los planos de una casa: especifican exactamente como debe de construirse el objeto y como se va a comportar.

¿Y cómo uso las clases?
La definición de una clase especifica los datos y funciones miembros de esa clase.  Por ejemplo, consideremos una clase llamado VerArch que tiene un dato miembro llamado fin.  Si tenemos un objeto VerArch llamado oVA, podemos accesar al dato miembro fin usando la notación normal de C++:

if (oVA.fin == NULL)
   ...

Ya estuvo bueno de datos pero, ¿y si necesito funciones?  Supongamos que la clase VerArch usada anteriormente tiene una función llamada AddLine() (luego llego a la parte de como declarar/hacer la función miembro).  Para el objeto VerArch llamado oVA podemos llamar a la función AddLine() así:

oVA.AddLine();

oVA es el nombre del objeto, el punto significa "miembro de", AddLine es el nombre de la función miembro y los paréntesis son indicadores estándares de C++ y Java.

Lo mejorcito de los objetos...

Los 3 conceptos más importantes en programación OO son la abstracción (también conocido como encapsulamiento), la herencia y el polimorfismo.  Yo casi diría que en estos 3 conceptos radica la ventaja de los lenguajes OO.  Luego vemos de que trata cada uno, pero antes un poco de rollo...

En la programación OO (desde ahora la voy a abreviar como OOP), diseñamos software usando partes componentes, a los que llamamos "objetos".  Los objetos se conforman de datos miembro y un conjunto de rutinas para manipular los datos, a los que llamamos funciones miembro.  Pero el tener a las funciones "pegadas" a los datos es solo una ventaja.  Como diría Raúl Velasco, aún hay más...

Por ejemplo, los objetos físicos (como tu teclado o un carro) tienen una interfase externa que esconden su complejidad interna (por ejemplo: no tienes que saber exactamente como funciona un motor de combustión interna para poder manejar un carro).  El esconder información se llama abstracción o encapsulación.  Esto facilita las cosas: imagínate que un arquitecto tenga que dibujar como va a funcionar el sistema de agua caliente a una casa.  Le sería complicado.  Mejor solo dibuja en los planos lo que es necesario para poner el boiler, tubería, etc. sin preocuparse como funciona.  Sabe que funciona y con eso basta.

Otro aspecto de objetos físicos que se extienden a la OOP es la forma en que algunos objetos pueden ser adaptados para crear nuevos objetos.  En OOP a esto lo llaman herencia y decimos que un objeto se deriva de otro.  Volvamos a nuestro arquitecto frustrado: puede modificar los planos de una casa para incluir una cochera para 2 autos y un desayunador.  Estas cosas que se agregan requieren un ajuste a los planos de piso y de ventanas, pero el diseño básico de la casa queda igual.

Y una tercera característica de objetos físicos que agarramos es que diferentes objetos muchas veces operan en la misma manera.  En OOP eso se llama polimorfismo.  Piensa en vehículos con motores de combustión interna, desde el volcho (Volkswagen Sedan) hasta tráileres grandes.  Todos se operan con un pedal para la gasolina, otro para el freno y un volante.  En este rango de vehículos se usan mecanismos muy diferentes para algunas cosas como son frenos o cambios de velocidades.  Pero en todos los casos el pedal del freno es una interfase uniforme para el mecanismo interno.

Usando Clases
Después de esto, como diría el dermatólogo, vámonos directo al grano.  Vamos a usar las clases y crear objetos.

La sintaxis básica de una clase en C++ sería así (sé que hay muchos otros tiliches que se le pueden poner, pero eso lo hablaremos más adelante):

class Nombre_Clase
{
   public:
      // declaración de los miembros públicos
   private:
      // declaración de los miembros privados
}

Al ver esto, probablemente tu primera pregunta es ¿qué es un miembro público?  Y el segundo probablemente sería ¿y qué es un miembro privado?  La onda está así, en la sección public se define las partes (funciones y variables) de la clase que son accesibles a todos y se declaran las funciones miembro que pertenecen a esta clase.  En la sección private se especifican los datos miembros de la clase.  Los usuarios no tienen acceso a esta parte.

Hagan de cuenta que las clases son como el edificio del restaurante con dos puertas.  Todo el mundo puede entrar por la puerta principal (sección public) y solo los empleados pueden entrar por una puerta pequeña que está en la parte posterior del edificio.  Esta sería una puerta que solo pueden acceder los empleados (miembros) del restaurante.

Este sería un ejemplo de una clase que guarda datos acerca de un video:

// video.h
class Video
{
   public:
      Video();
      void establecer(char *,char *,int);
      char* obtener_nombre();
      char* obtener_productor();
      int obtener_cantidad();
   private:
      char nombre[40]
      char productor[40];
      int cantidad;
}

Esta clase se llama Video (class Video) y tiene 3 datos privados (lo que está después de la línea private): nombre, productor y cantidad.  No conforme con esto, también contiene 5 funciones públicas (todo lo que viene después de public: y antes de private:), es decir, Video, establecer, obtener_nombre, obtener_productor y obtener_cantidad.

Referencias
Bibliografía (libros que tienen material interesante)
  • Desarrollo de proyectos con programación orientada a objetos con C++, de Jo Ann Smith, Editorial Thompson, ISBN: 970-686-091-6
  • Borland C++ Techniques & Utilities, de Kaare Christian, Editorial ZD Press, ISBN: 1-56276-054-8
Webografía (es medio contradictorio decir “bibliografía en la web”)
Si te interesan estos libros, aquí hay unas ligas donde los puedes conseguir:


¡Hasta la próxima!

02 agosto 2008

El cotorreo virtual: Digsby

El chat se ha vuelto indispensable en nuestros días. Ya sea para perder el tiempo con amigos, dar asesorías a mis alumnos, contactar a proveedores, comunicarse de forma barata con familiares que viven en lugares lejanos, tener una reunión virtual con amigos de diferentes ciudades, y otras chorrocientas mil otras cosas más, es un software imprescindible para todo cybernauta.

Un problema con el Chat es que cada compañía tiene el propio (por ejemplo, Microsoft tiene el MSN Messenger para los usuarios de Hotmail, Yahoo! tiene el Yahoo! Messenger para usuarios de Yahoo!, Google tiene el Google Talk para su gente, etc.). Sé que últimamente muchos programas de estos pueden comunicarse con gente que esté usando otro software de chat, sigue siendo todo un relajo.

El otro día me topé con un programita que ayuda en todo esto: Digsby. Este es un programa que te permite chatear con todos tus cuates, independientemente si usan AOL, MSN, Yahoo!, GTalk o lo que sea. Tengo ya como 3 o 4 días con él y ya no quiero regresar a los programas que usaba antes.

Antes usaba principalmente el MSN Messenger y chateaba desde mi cuenta de GMail, pero el problema es que a veces se me olvidaba y cerraba mi correo, lo cual daba al traste con lo que estaba diciendo. Además soy enemigo de instalar un montón de programas que no uso (luego se llena mi disco duro y Windows se hace bolas).

Con Digsby dí de alta mis cuentas de correo y las de mensajería instantánea y ¡listo! Comencé a chatear con mis cuates que tenían en la lista de MSN Messenger, y al mismo tiempo se veían los que tenía en GMail. Otra cosa que a mí me gusta mucho es que no me abre una ventanita diferente para cada plática sino que la ventana de conversaciones tiene pestañas. Además, en la barra de tareas me aparecen mini iconos de mis correos (GMail, Yahoo y Hotmail) que me dice el número de correos que no he leído en cada cuenta y al darle click sobre el icono, me abre mi correo para leerlos. Lo único que extraño del MSN Messenger es la incorporación de emoticones. No me he puesto a picarle, pero todavía no le hallo para incorporar emoticones usados por otros.

En resumidas cuentas, este es el programa ideal para el que gusta de buenas cyberpláticas en el chat. Visita www.digsby.com para mayores detalles y bara descargarlo. ¡Hasta la próxima!

01 julio 2008

Generación de Programadores 2005-2008

Muy queridos programadores:

Es por demás comentarles lo especial que ustedes han sido para mí. Es la primera vez que tengo la oportunidad grata de poder trabajar con un grupo durante 6 semestres seguidos y puedo decir que disfruté este tiempo inmensamente, tiempo de compartir alegrías, triunfos, lágrimas y mil momentos inolvidables.

Hace tiempo, un viejo maestro mío me dijo que él consideraba que había 3 tipos de alumnos. En primer lugar estaba el alumno-discípulo, el cual se limitaba a recibir una cierta teoría o filosofía del maestro. El segundo tipo es el alumno-amigo que, además de ser un discípulo, entablaba una relación más cercana con el maestro que les permitía enriquecerse mutuamente. El tercer tipo de alumno es el alumno-maestro que era el amigo que, con el paso del tiempo, regresa a enseñar al maestro. Les agradezco por ser mis amigos y estoy seguro que varios de ustedes llegarán a ser mis maestros en un futuro no muy lejano.

Ahora que comienzan una nueva etapa de sus vidas, les aconsejo que busquen de divertirse y soñar. El que no se divierte, es un desocupado. Estudien, trabajen, ocúpense en lo que los divierte, en lo que los apasione. Por otro lado, atrévanse a soñar y luchen por lograr sus sueños. Dios bendice tus sueños y sueña contigo. Atrévanse a ir más allá de lo que hace la mayoría.

Les mando un abrazo del tamaño del mundo y siempre los llevaré en mi corazón.

Tony Valderrama

P.D. Aquí les comparto un recorrido fotográfico de nuestro caminar por la prepa, esas fotos que siempre prometí enviarles y nunca (bueno, casi nunca) lo hice.

Primer Semestre Materia: TICs

Segundo Semestre Materia: Software de Aplicación


Tercer Semestre Materia: Introducción a las bases de datos


Cuarto Semestre Materia: Diseño de bases de datos

Quinto Semestre Materia: Programación en Visual Basic 2005

Sexto Semestre Materia: Multimedia




Un abrazo a todos. Seguimos en contacto...

30 junio 2008

Fotos semestre Febrero-Junio 2008

Aquí pongo las fotos que tomé de los grupos con los que pude derramar ciencia este semestre.

2do semestre Comunicación Bilingüe (2 TCB)
Materia: TICs II (páginas güev y Flash)

2do semestre de Programación (2 TPO)
Materia: Software de Aplicación Photoshop)

4to semestre de Informática Administrativa (4 TIA)
Materia: Principios de Programación (Visual Basic 6.0)

4to semestre de Programación (4 TPO)
Materia: Diseño de Bases de Datos

6to semestre de Programación (6 TPO)
Materia: Multimedia (Flash)

6to semestre de Informática Administrativa (6 TIA)
Materia: Aplicaciones para Internet (Páginas Web y Flash)

¡Saludos!

04 junio 2008

Recortando imágenes en Visual Basic 6

Dicen que una imagen vale más que mil palabras y mucha razón tiene quien lo dijo. El problema es que muchas veces se nos complica cargar imágenes en Visual Basic 6 para mostrarlas al usuario. Una estrategia sería la de crear una ventana que contenga los elementos gráficos que necesitas para cargarlo en la memoria y usarlos desde allí. Para ver un ejemplo de esta estrategia, lo usé para imprimir una imagen con el objeto Printer (puedes ver esa explicación en el mensaje ¿Y qué objeto tiene imprimir?). Sin embargo, existe otro control que viene con Visual Basic 6 que puede ayudar a guardar imágenes para mostrarlos o hacer animaciones. Este es el PictureClip Control y en este mensaje voy a explicar como usarlo.

Para esto hice un pequeño ejemplo de una animación (que puedes bajar aquí) que usa el PictureClip Control para hacer unas pequeñas animaciones. Voy a describir este proceso paso a paso.

Antes que nada, hay que agregar el PictureClip Control a nuestro proyecto, así que después de crear un nuevo proyecto, agregué el componente adecuado. Como puedes ver en la siguiente imagen, hay que ir al menú Project y luego a Components:


Al hacer esto, aparece la ventana de componentes. Hay que elegir el Microsoft PictureClip Control 6.0, como puedes observar en la siguiente imagen:


Al darle Aceptar, aparece en mi ventana de herramientas un nuevo control, la que está con el círculo rojo en la siguiente imagen:


Usando este control, y varios otros más "normales", hice la siguiente interfaz. Puse letreros en color rojo de los nombre de cada uno de estos controles. picAnimacion es un PictureBox; PictureClip1 es un PictureClip Control (el que acabamos de insertar); Timer1 es, obviamente, un Timer; btnInicio, btnParar y btnSalir son CommandButton. La interfaz se ve así:


Una nota acerca de la imagen que usé con el monito que brinca: en Photoshop me encargué de que cada mono tuviera el mismo ancho. De esta manera puedo dividir mi PictureClip en columnas y filas del mismo tamaño para usar la propiedad GraphicCell para acceder a cada imagen (más adelanto explico esto un poquito mejor).

Como el PictureClip1 y el Timer1 no aparecen, cambié la ventana para ocultarlos de esta manera:


Muy padre el interfaz pero, ¿cómo hacemos que funcione? Toda la acción se hace en el evento Timer1_Timer que es donde se cambia la imagen a mostrar cada vez que se ejecuta el evento del Timer (para mayor información acerca de como se usa el Timer en VB6, puedes ver este ejemplo que escribí hace tiempo, llamado Moviéndose en el tiempo...). Tengo una variable global de esta ventana, llamada intSprite, que indica la imagen a mostrar (en mi caso va desde 0 hasta 5 porque así dividí mi PictureClip) y en Timer1 lo actualizo y muestro esa imagen. Para accesar una parte de la imagen que está en un PictureClip Control, uso la función GraphicCell(número de la imagen).

El PictureClip Control funciona como un arreglo: automáticamente divide la imágen en el número de filas y columnas que yo le especifique (por eso es importante que todas las "celdas" de la imagen tengan el mismo ancho y alto) con las propiedades Row y Column. Por ejemplo, PictureClip1 tiene la propiedad Row=1 y Column=6 porque es una sola fila de 6 imágenes diferentes del mismo ancho y alto.

Para terminar de hablar de los controles de esta ventana, los botones de Iniciar y Parar (btnInicio y btnParar repsectivamente) solo habilitan y deshabilitan Timer1. El Form_Load solo pone la primera imagen de PictureClip1 en picAnimacion e inicializa intSprite en 0.

Hasta aquí todo es felicidad y alegría. Sin embargo, solo por mostrar como se vería con otra imagen, agregué otro PictureClip, llamado PictureClip2 (que original), y otro PictureBox, llamado picAnimacion2, para animar otra imagen. La ventana, en la vista diseño, se ve así:


Aunque esta imagen se presenta en 2 filas y 3 columnas, puedo seguir teniendo acceso a ellos mediante la función GraphicCell como expliqué con anterioridad. La numeración de las imágenes comienza en la fila 1 y luego continúa en la fila 2, ambas de izquierda a derecha. El código presenta unas pequeñas alteraciones que puedes observar aquí:


Si te fijas, lo único que aumenta es la referencia a PictureClip2 y a picAnimacion2. Espero que esto les haya sido útil. ¡Hasta la próxima!

30 mayo 2008

En la búsqueda de iconos...

Algo que es muy común, por lo menos para mí, es encontrar iconos interesantes que pueda usar en los programas que hago. Incluso es interesante usarlos para cambiar los que vienen con Windows, especialmente poner iconos sobre carpetas que quiero resaltar. O si usas RocketDock, puedes poner otros iconos más interesantes que los de la aplicación.

Encontré este sitio que es una interfaz simple para encontrar iconos en la güev. Aunque todavía está en desarrollo, vale la pena echarle un vistazo. El sitio se llama ICONlook y lo puedes visitar en esta liga.

¡Hasta la próxima!

27 mayo 2008

Manteniéndose en forma con la compu

La salud es algo importantísimo. Yo no soy alguien que me cuido mucho que digamos, pero en mi casa ha entrado la fiebre de las dietas y el ejercicio (del cual participo poco, o casi nada).

Pese a mi actividad física, me topé con este artículo que habla sobre herramientas digitales que te ayudan a mantenerte en forma. El programa que más me llamó la atención es la de Cron-O-Meter, un programita interesante que te ayuda a manejar tu dieta y el ejercicio necesario para reducir las calorías que consumes (y por lo tanto, bajar la lonja).

Si están tomando en serio el asunto de bajar de peso, fíjense en este programa que creo que puede ser útil. ¡Hasta la próxima!

12 mayo 2008

Aprendiendo física de forma divertida

En lo particular, soy fan de los videojuegos y creo firmemente que son útiles en la educación. Y eso es referente a los videojuegos comerciales (como WarCraft III, Age of Empires, FIFA 2006, Deus Ex, etc.). Sin embargo, también hay juegos con fines solamente educacionales que son divertidos. Este es el ejemplo de Phun, que es un juego bastante entretenido, una simulación de física que te permite jugar con bloques, poner fluidos, jugar con fricción y mil cosas más.

Si te interesa jugar con él, puedes bajarlo aquí (la página oficial del simulador es este). Te dejo aquí un video donde muestra como funciona.

Te reto a que te diviertas y aprendas algo de física en el proceso. ¡A jugar se ha dicho!


10 mayo 2008

¡A limpiar!


Un problema es el tener que guardar las cosas, de hacer limpieza. Si no, pregúntenle a mi hija de 4 años que guarde todos los juguetes que sacó y verás que todos opinamos lo mismo. Parece que este mismo mal lo padecen en Microsoft porque el Windows es un sistema operativo muy desordenado. Pese a ello, es un mal necesario (sé que hay muchas otras opciones pero no existe en otras plataformas el software que necesito).

Windows va dejando archivos temporales y mil otras cosas que ocupan espacio en tu disco duro y hacen que tu computadora tarde más. Además si desinstalas un programa, no desaparece del todo sino que quedan archivos y entradas en el registro de Windows que nunca se borran.

Para resolver este mal, algunos amigos desarrollaron un programa llamado CCleaner (que originalmente significa "Crap Cleaner" o limpiador de mierda) que se encarga de eliminar archivos temporales, cookies, y otras ondas que ya no se necesitan, busca y corrige errores en el regsitro de Windows y varias cosas más. Son de esos programas que no vas a usar a cada rato, pero lo vas a necesitar cada de vez en cuando para hacer tu limpieza de primavera de tu compu.

Si lo quieres bajar, haz click en esta liga:

CCleaner - Freeware Windows Optimization

Espero que les sea útil. ¡Hasta la próxima!

09 mayo 2008

Ahorrando energía una PC a la vez...

Desde el mensaje verde que escribí el día del planeta, donde decía que el verde es vida y presenté algunas maneras de cuidar el planeta desde tu computadora, decidí bajar el programa gratuito LocalCooling que, en ahorro de energía, es la neta del planeta (bueno, tal vez exagero un poco...).

Este programa, que puedes bajar aquí, al instalarse te permite ahorrar energía eléctrica. La verdad es que de todos los tipos de energía disponible, me gusta la eléctrica porque no es difícil de generar: casi cualquier cosa que se mueva puede generar electricidad, como molinos de viento puestos en lugares donde hay mucho viento, paneles solares, etc. (Aquí hasta mencionan como generar luz usando excremento de vacas! ¡Y ya está en uso en México!). Sin embargo, pese a estas diferentes maneras de generar electricidad, nuestros gobiernos y empresas del sector privado, prefieren seguir usando sus generadores viejos que queman petróleo o carbón (lo equivalente a quemar árboles) en lugar de modernizarse y cuidar del planeta.

En fin, puedes cuidar un poco de los árboles y bajar un poco lo que te cuesta tu cuenta de electricidad con este programita. Esta es la interfaz "normal" que te aparece en pantalla cuando se ejecuta (al minimizarlo se pone en la barra de tareas, cerca del relojito). Te dice, hasta este momento, cuánta luz has ahorrado (en KWh, Kilowatts por hora) y cuánto equivale eso en árboles y en galones de petróleo:


Si le das clic Settings, te abre la ventana de otra forma, desde donde puedes ver tus preferencias para gastar menos electricidad (después de cuánto rato se apaga el monitor, cuando apagas los discos duros, etc.), lo que consume cada parte de tu equipo, cambiar tus preferencias o conectarte a su servicio güev para acumular lo que has ahorrado. Estas son las imágenes:


Su sitio tiene datos curiosos acerca de la manera de ahorrar energía, etc. Es un programa que casi no usa recursos y puede contribuir poquito en cuidar del mundo. Ojalá te animes a usarlo. ¡Hasta la próxima!

07 mayo 2008

La belleza de los bosques...

El otro día escribí algo acerca de la ecología y que el verde es vida. En esta ocasión no se trata de la onda ecológica, aunque podría servir para algún tipo de publicidad para este fin.

El Photoshop es muy útil para editar imágenes existentes pero, ¿qué pasa si necesitas crear uno? Tiene mil herramientas que te permiten ser creativo y echar a volar tu imaginación.

Un ejemplo explicado paso a paso de como dibujar un bosque usando las herramientas de Photoshop lo puedes encontrar aquí. Realmente vale la pena y es muy fácil de usar. Espero que te sea útil. ¡Hasta la próxima!

Historia de las teorías de la comunicación


Al principio de este texto, los autores explican las nociones que fueron claves en el desarrollo del campo de la comunicación. Algo que me llamó la atención es la riqueza que se tiene al contar con diferentes disciplinas. A continuación describo estas nociones:
  • División del trabajo (fines s. XVIII): la comunicación permite organizar el trabajo en las industrias.
  • Sociología positivista (fines s. XIX): esta sociología parte de los trabajos en la biología hechas por Comte para poder categorizar los sistemas de comunicación.
  • Física social (fines s. XIX): esta surge debido al fenómeno de la aglutinación de la población en las ciudades[1] y los medios de difusión. Buscan de poner números para poder medir fenómenos sociales desequilibrantes como la mortalidad, incendios, criminalidad, etc.
  • Psicología de las masas (fines s. XIX): quienes formulan esta psicología[2] tienen una visión manipuladora de la sociedad basado en la exaltación de los sentimientos y la inhibición del pensamiento en masa[3]. Analizan los factores subjetivos de las interacciones sociales[4] para no tratar a los hechos sociales como cosas.
Al contar con estas nociones, los autores comienzan a explicar el trabajo realizado por la Escuela de Chicago entre 1900 y 1940, la cual se considera el centro de la construcción de una ciencia social sobre bases empíricas con un enfoque microsociológico (Mattelart & Mattelart, 1997: 23). El campo de observación que privilegian es la ciudad y estudian la problemática de la “ecología humana”, donde buscan de aplicar los principios de la ecología[5] a la sociedad humana. Para ellos, la comunidad se constituye por un nivel biótico, población organizada en un lugar cuyos miembros viven en una relación interdependiente donde todos se benefician, y el social o cultural, que es una superestructura cimentada sobre el nivel biótico donde se lleva a cambo el consenso y la comunicación, lo cual regula competencia y permite que compartan experiencias. A este nivel, la cultura son tanto costumbres y creencias como un cuerpo de dispositivos tecnológicos.

Para los académicos de la escuela de Chicago, los medios de comunicación precipitaban relaciones sociales superficiales y factores que no permiten ahondar en la experiencia individual.

Otro campo de estudio es la que analiza los medios masivos de comunicación[6]. Esto lo hacen desde diferentes puntos de vista:
  • La sociología funcionalista, que nace a principios del siglo XX con obras de Harold Laswell acerca de la política y la publicidad[7] y los proyectos de Paul Lazarsfeld para el estudio de audiencias[8], donde critica la concepción de la escuela de Chicago acerca de los medios de comunicación. Él ve el flujo de la comunicación como un proceso de dos etapas[9] donde lo que opinan algunos (los “líderes de opinión”) resulta decisiva.
  • American Cultural Studies, encabezado por C. Wright Mills quien denuncia que la sociología de los treintas solo examina problemas fragmentarios y vínculos causales aislados y a responder al dominio de los monopolios, el ejército y el Estado. Para él la sociología de ese tiempo era carente de imaginación[10].
El mundo de la cibernética tuvo mucha influencia en el campo de la comunicación en el período posterior a la segunda guerra mundial. Una de ellas fue la teoría de la información fundada por Claude Shannon[11], ingeniero de los Bell Laboratories, quien decía que la información está presente siempre que se transmite una señal de un sitio a otro y cuyos elementos que la componen es un emisor, una señal y un receptor (Gonick, 1985: 8). Al traer estas ideas al campo de la comunicación, agregaron algunos elementos para que quedaran éstos: fuente (quien crea el mensaje), codificador (traduce el mensaje en signos), un canal (medio de transmisión: cable telefónico, fibra óptica, aire, etc.), un descodificador (quien traduce los signos para obtener el mensaje) y el destino (el receptor del mensaje). La comunicación se concibe como información, gracias a las máquinas comunicativas tecnológicas que surgieron durante ese período. También gracias a esta tecnificación, se habla de la “sociedad de la información”, sociedad cimentada sobre el libre intercambio de información.

Pese a que la informática contribuyó al campo académico de la comunicación, integrantes del “colegio invisible”[12] se interesan en aspectos que no son considerados por los ingenieros cuyo interés principal es que datos binarios lleguen de un lugar a otro, como es la gestualidad y el espacio interpersonal.

La sociología funcionalista consideraba a los medios de comunicación como mecanismos de la regulación de la sociedad moderna y defendían la idea de que dichos medios servían para reproducir los valores del sistema social. Sin embargo muchas escuelas critican esta postura.

La escuela de Francfort, de orientación marxista, se exilió Estados Unidos durante la segunda guerra mundial[13] y fueron invitados por invitación de Paul Lazarsfeld para estudiar audiencias (radioescuchas). Lazarsfeld quería mezclar teoría europea y empirismo norteamericano, sin embargo, este intento fracasa debido a la incompatibilidad de metodologías.

Dicha escuela alemana[14] crea el concepto de la Industria Cultural donde, por medio de procesos de tipo industrial, se consigue una cultura de masas hecha en serie de objetos que llevan la huella de esta industria. Para estos alemanes, esto es casi el fin de la cultura ya que cae en una mercancía[15]. Sin embargo, al valorar el arte como fermento revolucionario, no se enfrentaron a otras problemáticas que trae la conjunción entre ciencia y tecnología.

Estas son aportaciones de otros académicos pertenecientes o influidos por esta escuela:
  • Walter Benjamín: para él es importante observar los detalles, fijarse a las manifestaciones de superficie, para poder reparar una totalidad perdida.
  • Herbert Marcuse intenta desenmascarar nuevas formas de la dominación política mediadas donde se manifiesta la irracionalidad de un modelo de organización que subyuga a las personas en
  • lugar de liberarlas. Para él, todo el potencial emancipador de la ciencia beneficia a la reproducción del sistema de dominación.
  • Jürgen Habermas ve que la persona tiende a transformarse en un consumidor con un comportamiento emocional y la comunicación pública se diluye en actitudes de recepción aislada.
Otra escuela que influenció el trabajo en el campo de la comunicación fue el estructuralismo, una escuela de lingüística (en especial semiótica) basados en trabajos de Ferdinand de Saussure quien ve a la lengua como una institución social mientras y a la palabra como un acto individual. Da vida a la semiología, la cual es una ciencia que estudia la vida de los signos en el seno de la vida social (Mattelart & Mattelart, 1997: 60).

En 1960, en Francia se crea un centro de estudios de las comunicaciones de masas, CECMAS, quien se dedicaría a analizar las relaciones entre la social global y las comunicaciones de masas. Algunos académicos fueron:
  • Roland Barthes estudia el estatus simbólico de los fenómenos culturales.
  • Georges Friedmann analiza el problema de la sociedad tecnificada, sus “fenómenos de masas”, audiencias, etc.
  • Edgar Morin ve la importancia de los medios de comunicación y los valores de esta nueva cultura y trae ideas y conceptos de la cibernética, teoría de los sistemas y ciencias de la cognición en sus trabajos.
Una tendencia importante del estructuralismo es releer los textos del marxismo. Louis Althusser estudia la ideología, relacionando con el concepto de hegemonía de Gramsci, donde los aparatos que aseguran y perpetúan el monopolio de la violencia simbólica (gracias a ellos actúa la dominación ideológica). Por su parte, Pierre Bourdieu hace un análisis de actitudes y prácticas culturales basadas en el habitus[16].

Otros modos de ejercicio de poder fueron estudiados por Michel Foucault quien distingue dos formas de control social: la disciplina-bloqueo basada en prohibiciones, muros, rupturas de comunicación, etc.; y la disciplina-mecanismo que son dispositivos a través de la interiorización realizada por el individuo por medio de su exposición conteste al ojo de control[17].

En Inglaterra durante los sesentas inició los Cultural Studies, una disciplina que combina economía política, comunicación, sociología, teoría literaria, teoría social, teoría de medios, antropología cultural y muchas otras disciplinas. Comenzaron estudiando situaciones relacionados a los pobres, donde F. R. Leavis dice que el desarrollo del capitalismo industrial tienen un efecto perjudicial en la cultura tradicional; Richard Hoggart analiza los cambios que trastornan el modo de vida y las prácticas de las clases obreras; Raymond Williams critica la separación entre cultura y sociedad, donde define la cultura como el proceso por medio del cual las significaciones se construyen social e históricamente y Stuart Hall analiza estudios de recepción, la función ideológica de los medios y la naturaleza de la ideología.

También en los sesentas surge el estudio de la economía política de la comunicación quien en sus inicios reflexionaría acerca del desequilibrio de los flujos de información y productos culturales entre países desarrollados y subdesarrollados. Del marxismo traen el concepto de economía-mundo para explicar este intercambio desigual, a mostrar que existe un imperialismo cultural donde la capa dominante moldea instituciones sociales para que promuevan sus valores y estructuras.

Desde 1975 la economía política de la comunicación ya no reflexiona sobre la “industria cultural”, sino de las “industrias culturales”[18] donde refutan la idea aceptada de la escuela de Francfort de que la producción de cualquier mercancía cultural responde a una misma lógica y, al buscar la manera en que se produce valor a partir del arte y la cultura, estudian la segmentación de las formas de rentabilidad. La televisión y otras innovaciones tecnológicas de la comunicación son claves en la “economía audiovisual”[19].

Las industrias culturales, principalmente por medio de la comunicación electrónica, han hecho que nuestras comunidades dejen de ser un sector industrial para convertirse en la sociedad global, una sociedad de la información. Marshall McLuhan, al analizar la “guerra televisual” de Vietnam, muestra como las audiencias dejan de ser espectadores pasivos para convertirse en participantes.

Ante la teoría estructural-funcionalista que ha dominado mucho tiempo el campo de la sociología, en los setentas se desarrollaron otras metodologías y unidades de análisis[20] para el estudio de la experiencia de la vida cotidiana.

Se introducen metodologías usados en la etnografía[21], etnometodologías, para acercarse al razonamiento práctico de sentido común en sistemas de acciones comunes y corrientes, a microprocedimientos. Analizar así a los fenómenos sociales es importante porque el hecho social no viene dado, sino que es el resultado de la actividad de los actores para dar sentido a su vida diaria (Mattelart & Mattelart, 1997: 91). Esto se refleja en el trabajo de Talcott Parsons y de la sociología objetivista la cual da cuenta que las acciones de las personas son consecuencia de la imposición de reglas sociales y de las disposiciones para actuar que crea.

Usando las etnometodologías, como el análisis de conversación[22], surge la corriente del pensamiento microsociológico llamada interaccionismo simbólico, la cual está relacionada con la antropología y la psicología social que basa la comprensión de la sociedad en la comunicación. Dicha corriente ha influido mucho en los estudios sobre los medios ya que destaca la naturaleza simbólica de la vida social, la cual consta de tres premisas:
  1. Las personas actúan sobre las cosas de acuerdo a las significaciones que tienen para ellos.
  2. La significación de estas cosas surge de la interacción que tiene un individuo con otros.
  3. Las significaciones son usadas con un proceso de interpretación efectuado por el agente en su relación con las cosas y son modificados durante este proceso.
De manera similar al estructuralismo, la etnometodología es influida por el discurso de los actores. Sin embargo, esta última está influida por la teoría de los actos de habla, la cual crítica a los filósofos que supusieron que la única importancia que tiene un enunciado es describir algún estado de cosas o enunciar algún hecho. El lenguaje también es “realizativo”, enfocado a la realización de algo. Ludwig Wittgenstein habla de los juegos de lenguajes donde pone de relieve que el lenguaje es descrito por el uso práctico que se hace de él y no de las estructuras formales. Jürgen Habermas analiza la acción e interacción como asociados a tramas de intercambios simbólicos y de contextos de lenguaje, en lugar de solo enfocarse a ver la manera en que producen efectos. Para él, la racionalidad no tiene relación con poseer un saber sino con la forma en que las personas, dotados de palabra y acción, adquieren y usan un saber. También propone que la sociología crítica debe estudiar las redes de interacción en una sociedad hecha de relaciones[23].

También se usa la etnografía para estudiar a las audiencias. Partiendo del trabajo que hizo Mikhail Bakhtin[24] desde 1929 donde mostró que el lenguaje está atrapado en redes de relaciones sociales porque solamente se pueden entender las palabras en el contexto práctico en que son emitidas. Roland Barthes lo dice de manera concreta: el sentido último de todo texto cultural es ser liberado por el lector (Ibíd. 98).

Los académicos de los Cultural Studies de Inglaterra muestran que el receptor juega un papel activo al construir el sentido de los mensajes y por esto destacan la importancia de la recepción. De hecho, en los setentas la sociología funcionalista se abre a los estudios etnográficos sobre audiencias porque estaban interesados en estudiar lo que hace la gente con los medios de comunicación y en los ochentas profundiza en la lectura negociada, donde ven que el sentido y los efectos nacen de la interacción de textos y funciones asumidas por las audiencias. Esto lleva a los estudiosos de la recepción a ver al individuo-consumidor libre para hacer sus elecciones ya que el poder del sentido está en sus manos.

Ya que la sociedad se define en términos de comunicación y ésta a su vez está en términos de red, la cual se compone de individuos conectados entre sí por flujos estructurados de comunicación, se volvió indispensable hacer un análisis de redes de comunicación o communication network analysis. Everett Rogers resalta la importancia de integrar en el marco de análisis la cuestión del contexto de la comunicación, aspectos étnicos del proceso comunicativo y de los métodos plurales. En la misma línea, Bruno Latour y Michel Callon conciben el modelo de la traducción o de la construcción socio-técnica donde proponen captar a la ciencia y a la técnica en acción para ver como son construidas y no tomarlas como si vienen dadas.

Las ciencias cognitivas también entran en el análisis de la comunicación, ya que ven al conocimiento como una actividad[25]. Dichas ciencias se formaron en los cuarentas en Estados Unidos con el movimiento cibernético y en los cincuentas trabajaban con la hipótesis según la cual la inteligencia se parece tanto a una computadora que la cognición puede ser definida como la computación de representaciones simbólicas[26].

El mundo ha cambiado mucho, gracias a los medios de comunicación, debido a las redes que unen territorios diferentes en un espacio-mundo sin importar las divisiones fronterizas. Esto llevó a la formación de empresas globales donde el mercado regula la economía mundial. Esta situación llevó a la realización de estudios de lógicas de desterritorialización en los setentas y después de unas décadas a estudios de reterritorialización, procesos de mediaciones y negociación. Otro efecto de la globalización es la creación de nuevas redes sociales debido a la multitud de formas de comunicación que no son controlados por los gobiernos.

Según la opinión de Jean-François Lyotard, las sociedades entran en la edad posindustrial y la cultura en la posmoderna. Aunque no todos los académicos están de acuerdo con la etapa en que se desarrolla o si es que tal edad existe, la posmodernidad se caracteriza por un contexto donde la legitimidad está inmersa en un contexto de las máquinas informativas.

Estos son algunas ideas de académicos que estudian esta nueva jerarquía del saber:
  • Pierre Lévy ve la llegada de una inteligencia colectiva gracias a las autopistas de información, lo cual traería la posibilidad de una democracia en tiempo real.
  • Félix Guattari ve la manera en que el nuevo entorno tecnológico obliga a considerar las dimensiones maquinarias en el problema de la subjetividad.
  • Jean Baudrillard cree que la comunicación es víctima de un exceso de comunicación que ha producido una implosión del sentido, pérdida de lo real y el reino de los simulacros.
Bibliografía
Gonick, L. (1985). Aprenda Divirtiéndose Computación (J. Blanco Correa, Trans.). México, D.F.: Harla.
Mattelart, A., & Mattelart, M. (1997). Historia de las teorías de la comunicación (A. López Ruiz & F. Egea, Trans.). Barcelona: Paidós. Postman, N. (1991). Divertirse Hasta Morir: El Discurso Público en la Era del "Show Business" (E. Odell, Trans.). Barcelona, España: Ediciones de la Tempestad. Reguillo, R. (2000). Anclajes y mediaciones del sentido [Electronic Version]. Investigación cualitativa en salud, dossier de la Revista de la Universidad de Guadalajara. Retrieved 17/Abr/07, from http://www.cge.udg.mx/revistaudg/rug17/4anclajes.html. Schiller, H. I. (1993). Cultura, S.A.: la apropiación corporativa de la expresión pública. Guadalajara, México: Universidad de Guadalajara.
Notas
1. Conocido como la “sociedad de masa”.
2. Scipio Sighele y Gustave Le Bon.
3. Esto fue muy criticado por Freud. De hecho, dice que “si el individuo aislado de la masa abandona su singularidad y se deja sugestionar por los demás, lo hace porque en él existe más la necesidad de estar de acuerdo con ellos que la de oponerse, y por tanto puede que después de todo lo haga ‘por el amor de ellos’”.
4. Simmel lo llama una “red de afiliaciones”. ¿Es la idea inicial desde donde Rossana Reguillo elabora los “anclajes histórico-culturales y electivos” (Reguillo, 2000)?
5. Ernest Haeckel, el biólogo creador del término ecología, la define como “la ciencia de las relaciones del organismo con el entorno abarcando todas las condiciones de existencia” (Mattelart & Mattelart, 1997: 24)
6. Conocido como Mass Communication Research.
7. Entre todas sus obras, destaco algunas de ellas: Propaganda Techniques in the World War (1927), Psychopathology and Politics (1930), World Politics and Personal Insecurity (1935), Propaganda and Promotional Activities (1935), Propaganda and Dictatorship (1936), Propaganda, Communication and Public Opinion (1946) y Propaganda and Communication in World History (1976), este último publicado con Daniel Lerner y Hans Speier.
8. El primero de sus obras fue The People’s Choice donde mide la influencia de los medios en electores en una población de Estados Unidos.
9. Por esto es llamado la teoría del two-step flow.
10. De hecho, Imaginación Sociológica es el título de una de sus obras publicada en 1959.
11. Dato curioso: Claude Shannon era un uniciclista aficionado y construyó un “ratón eléctrico” que podía programarse para recorrer laberintos (Gonick, 1985: 7).
12. Así se denominó a un grupo de estudiosos basados en Palo Alto, California.
13. Casi todos los integrantes de la escuela, aunque Walter Benjamin no quiso salir de Europa.
14. El concepto fue concebido por Max Horkheimer y Theodor Adorno.
15. La influencia de estas ideas se puede ver en autores un poco más modernos como Herbert Schiller quien critica a la industria cultural norteamericana (Schiller, 1993) o Niel Postman para quien la cultura audiovisual está acabando con la “verdadera” cultura traído por la imprenta (Postman, 1991).
16. El habitus puede ser entendido como los esquemas de obrar, pensar y sentir asociados a la posición social del actor.
17. Este tema lo elaboró en su libro Vigilar y castigar, aunque en Historia de la sexualidad expone la manera en que, al controlar el discurso sobre la sexualidad, se mantiene el poder.
18. El autor que comenzó a analizar el imperialismo cultural fue Hebert Schiller, quien ya mencioné en una referencia anterior.
19. Tanto así que Dallas Smythe dice que la televisión es un productor de audiencias vendibles a los publicistas (Mattelart & Mattelart, 1997: 85).
20. Y se regresa a metodologías empleadas con anterioridad que habían dejado de usar.
21. Este es un regreso a la metodología privilegiada de la escuela de Chicago a principios del siglo XX.
22. La cual es el lugar privilegiado de intercambios simbólicos.
23. Y este es un regreso a las redes de afiliaciones de Georg Simmel de principios de siglo.
24. Conocido también como “Bajtin” en algunas las traducciones al español.
25. Usan la definición circular de conocer como el acto de conocer.
26. Es aquí donde entra la inteligencia artificial, quien considera la organización como un sistema abierto que interactúa con el entorno por medio de entrada (inputs) y salida (outputs) de datos.

Si te interesa conseguir el libro, fíjate en esta liga:

El Tony y sus ondas...

Related Posts Plugin for WordPress, Blogger...