lunes, 1 de octubre de 2007

Los arreglos

Alien [blackhat4all@gmail.com]

Un arreglo simple es, a mi entender, una de las cosas más fáciles de entender en la programación. Como todo lleva un nivel de abstracción, pero no es tan alto como para lograr entender aspectos más difíciles como pudiera ser la herencia.  Aunque existen varios tipos nos centraremos en los lineales.

Para tener una idea de lo que es, piensen en ellos como en un edificio que en cada piso tiene una sola habitación y viven personas con las mismas características. Como en todo edificio normal, existen escaleras o elevadores permitiendo pasar de un apartamento a otro mientras se visitan todos los que están entre estos. Continuando con el ejemplo, en un edificio al igual que en un arreglo, se pueden hacer cambios o mudanzas, dándole la oportunidad al que esta en el piso x desplazarse hasta el y mientras que el y toma el lugar de x. Otra cosa común entre los arreglos y edificios es vaciar o llenar los pisos pero… ¿Cuáles son las diferencias?.

Las diferencias consisten más bien en aspectos técnicos, como por ejemplo la inserción de un elemento en un arreglo (en caso de que sea dinámico). Pero esto no nos hará olvidar el ejemplo, sólo lo modificaremos un poco, y en lugar de un edificio, imaginemos una cuadra, en la que está la casa #50, al lado la casa #51, y por  cosas de la vida a alguien se le ocurre crear de un espacio vacio entre ambas una casa la que tendría el número 50-A. También existe la eliminación (en caso igualmente que sea dinámico) de un elemento, lo que no sería otra cosa en nuestro ejemplo que desalojar a los moradores de la casa #50-A y escoger ese espacio ahora vacio para hacer una CADECA (por ejemplo). Básicamente los Array funcionan de esta forma.

¿Qué guardan?::

Como dijimos anteriormente los arreglos guardan un solo tipo de dato. Podemos crear un arreglo para guardar las edades de los estudiantes de un aula (entero), o los nombres de un grupo de personas (cadena de texto), o un nuevo tipo de dato que creemos (estructura), incluso hasta podemos hacer un arreglo de clases. Los arreglos guardan cualquier cosa, siempre que en cada posición se guarde el mismo valor.

¿Cómo se programan?::

Es un poco complejo hablar de programar un arreglo, ya que tendría que mencionar todas las formas de darle vida a estos útiles elementos de la programación y además analizar las peculiaridades de cada lenguaje, y eso como comprenderán no es tarea fácil. Pero un Array básicamente esta conformado por el nombre, el tipo de datos que va a almacenar y la cantidad de elementos que este va a contener en su inicio. Igualmente se puede llenar o dejar vacio, eso ya es cosa de la necesidad que tenga el programador.
Una forma escrita en pseudocódigo podría ser:
Tipo_de_Dato Nombre_de_Arreglo[Cantidad_de_Elementos]

Operaciones::

Con un arreglo se pueden hacer todas las operaciones, al menos las más comunes: suma, resta, multiplicación, división, limpiar, llenar, mover, etc. Teniendo siempre en cuenta que para esto, de forma obligatoria se debe tener la posición o índice sobre el cual se va a trabajar.
Si por ejemplo se quiere hacer una sumatoria de todos los elementos que contiene un arreglo, lo primero que se debe hacer es construir un ciclo For que lo recorra, y añada a una variable el valor de cada posición. Sería algo como:

Total = 0
Desde el primer elemento hasta el último elemento
Total = Total +Arreglo[posición]

De esta forma, al terminar la instrucción, el valor final de la variable Total va a contener la sumatoria de todos los elementos del arreglo (en caso que este sea numérico).
De igual forma se puede sumar sólo las posiciones 3 y 4:
Total = Arreglo[3] + Arreglo[4]

Ventajas::

Los que ya se hayan enfrentado a un lenguaje de programación visual, y hayan utilizado las listas, quizás no le vean utilidad a los arreglos, pero los que gustan de trabajar en consola, donde no existe nada que sea capaz de almacenar datos, y luego hacer operaciones con estos, verán en el arreglo su fiel amigo. Entre una de las ventajas que nos ofrecen, esta la de poder utilizarlos para organizar datos por un orden específico. Además de eso, para la máquina, pasar en un arreglo de un elemento a otro es muy fácil, ya que sólo tiene que ir hasta la próxima dirección de memoria.

Desventajas::

Los arreglos como tal consumen mucha memoria si no son bien implementados, se suele hacer por parte de los programadores un abuso de memoria aún sabiendo que el programa no lo requerirá. En la mayoría de las ocasiones, es más factible crear un arreglo dinámico, de forma tal que su tamaño aumentará a medida que se valla haciendo necesario.

Matrices::

Las matrices son una especie especial de arreglo. Su forma más fácil de entender es verla como un tablero de ajedrez, donde cada fila es un arreglo en si, y toidas juntas forman la matriz. El trabajo con matrices es idéntico al trabajo con los arreglos, sólo que para recorrerlas se necesitarían dos coordenadas en lugar de una. Digamos que tenemos una matríz de 6 filas y 9 columnas (Matriz[8,5], la forma de representar filas y columnas puede variar), para ubicar una posición dentro de esta, se hace imprescindible tener ambas coordenadas, una en el eje de las X y otra en el de las Y. Digamos por ejemplo posición[5,4].

Nota: Fíjense que cada matríz o arreglo que se valla a crear, a la hora de implementarlo se debe escribir un número menor del que se tiene pensado, ya que la máquina empieza a contar a partir de 0, no de 1.

Continuar leyendo

Introducción al cracking con OLLYDBG desde cero (I)

Omar [omarherrera@infomed.sld.cu]

La idea de esta INTRODUCCION AL CRACKING CON OLLYDBG DESDE CERO es la de dar una base para todos los que recién se inician en el arte del cracking con OLLYDBG, tratando de ser una introducción pero a su vez que proporcione una base fuerte para poder ingresar a la lectura y comprensión de tutoriales mas avanzados como los que se encuentran en el actual NUEVO CURSO de CRACKSLATINOS, el cual por supuesto sigue abierto para seguir agregando novedades, concursos y teorías como hasta ahora.

La idea se genero a partir de que los newbies actuales que leen el llamado NUEVO CURSO de CRACKSLATINOS, se encuentran con que este se inicia en un nivel muy alto, y no pueden insertarse gradualmente en el mismo, por lo cual se sienten frustrados y muchas veces abandonan antes de empezar, la idea de esta INTRODUCCION es no repetir los grandes tutes que existen en ese curso que son ya mas de 500 y de un nivel espectacular, si no mas bien sentar la base para que el que termine esta introducción, le sea mas fácil leer cualquier tutorial, obviamente requerirá esfuerzo como todo en el cracking, pero la tarea nuestra es tratar de alivianar ese esfuerzo, sentando aquí las bases del cracking en OLLYDBG para que sea compresible y se pueda entender fácilmente.

¿Por qué OLLYDBG?

Aquí no entraremos a hacer grandes elucubraciones o reeditar viejas polémicas de SOFTICE vs OLLYDBG de cual es mejor ni nada de eso, creo que hasta los fanáticos de SOFTICE reconocen que es mas sencillo empezar con OLLYDBG, ya que muestra mayor información y es mas cómodo para aprender, la idea es ingresar al mundo del cracking, por la puerta del OLLYDBG, mas adelante cuando uno ya conoce, puede trasladar fácilmente a cualquier debugger lo aprendido pues cambian las formas de usar de los programas, pero no la esencia.

Lo primero es lo primero

Exactamente lo primero es munirse de la herramienta que vamos a utilizar mayormente, para ello pueden hacer clic AQUI para bajarlo.
Como aquí estamos empezando desde cero pues, recién nos estamos haciendo del archivo, y ahora ya que es un archivo zipeado, lo unzipearemos con WINZIP preferentemente a una carpeta en nuestro disco rígido que podamos localizar fácilmente, una buena idea seria poner dicha carpeta en C:/ aunque funciona en cualquier lugar, yo la pondré en C:/.

Una vez descomprimido podemos entrar a la carpeta y ver que allí esta el archivo ejecutable OLLYDBG.exe el cual ejecutaremos para arrancar el OLLYDBG y al cual para comodidad le haré un acceso directo en mi escritorio.
Bueno ya que tenemos bajado y preparado para arrancar a nuestro OLLYDBG.exe, lo ejecutamos.

Nos aparece este cartel avisándonos que la DLL que esta en la carpeta de OLLYDBG es mas antigua que la de sistema, si apretamos SI, borrara la antigua de la carpeta del OLLY y usara la de sistema, yo a pesar de no ver grandes diferencias siempre prefiero elegir que use la propia antes que la de sistema, ya que fue concebido con esa dll, por lo tanto elijo NO.

Allí esta el OLLYDBG vacío, y como siempre el primer programa que abriremos mas que nada para mirar las diferentes partes del OLLYDBG y a vuelo de pájaro poder ubicarnos en sus diferente partes, es el famoso CRACKME DE CRUEHEAD que vendrá adjunto en este tutorial.

Para abrir el archivo a debuggear en el OLLYDBG, vamos a FILE OPEN o hacemos clic en el icono se abrirá la ventana para que busquemos el archivo a debuggear en este caso es el crackme de CRUEHEAD.

Allí se abre el susodicho crackme y por ahora no importa que no entendamos lo que nos muestra ya mas adelante aprenderemos eso, la idea es ir mostrando las partes del OLLYDBG y ciertas configuraciones del mismo para que cuando en sucesivos tutes, diga, por ejemplo vayan al DUMP, sepan al menos donde esta, así que esto es mas que nada para ubicación, no es un tute profundo sobre OLLY.
Allí vemos la cuatro partes de la ventana principal del OLLYDBG.

Desensamblado::

También llamado listado, aquí el OLLY nos muestra el listado desensamblado del programa que vamos a debuggear, por DEFAULT el OLLY viene configurado para analizar el programa que vamos a debuggear al iniciar, esto se configura en OPTIONS-DEBUGGING OPTIONS.

O sea al estar marcada esa tilde en AUTO START ANALISIS OF MAIN MODULE el OLLYDBG analizara el programa y mostrara información adicional sobre el mismo.
Muchas veces el OLLYDBG muestra partes que no son listado correcto porque interpreto mal el código ejecutable como datos, en ese caso se ven unos DB como estos.
En ese caso puedo quitar manualmente el análisis que el OLLYDBG ha realizado haciendo CLICK DERECHO en el listado y eligiendo ANALISIS-REMOVE ANALYSIS FROM MODULE después de esto el listado se vera sin análisis pero correcto.

Otra cosita que hace a la claridad para trabajar y que por lo menos a mi me gusta, aunque cada uno puede variar en estos temas es colorizar los JUMPS Y CALLS eso se hace haciendo clic derecho APPEARENCE – HIGHLIGHTING – JUMPS AND CALLS

El resultado es el siguiente:

Allí vemos que en celeste quedan resaltados los CALLS y en amarillo los JUMPS, lo cual es mas claro para la vista.

Bueno con eso nuestro listado queda mas fácil de interpretar, aunque aun no tengamos la mas remota idea de que significa, pero bueno hay que preparar antes las herramientas para poder ir de a poco aprendiendo

Registros::

La segunda ventana importante del OLLYDBG es la de los REGISTROS Recordamos que la ventana de registros se encuentra en la parte superior derecha del OLLYDBG, allí muestra bastante mas información de los registros en si.

Tiene muchísima más información que aun no veremos, pero se puede cambiar el modo de visualización en tres formas. (VIEW FPU REGISTERS, VIEW 3D NOW REGISTERS y VIEW DEBUG REGISTERS) por default viene elegida la primera.

Por ahora no ahondaremos mucho en eso ya que nos preocuparemos más que nada en el tema REGISTROS y FLAGS, lo menciono para que sepan que hay varias vistas en el registro.

STACK O PILA::

Bueno allí vemos el llamado STACK O PILA aquí no hay mucha configuración posible solo la opción de mostrar la información relativa al registro ESP o al registro EBP.

Por default y lo que mas se utiliza es la vista relativa a ESP, pero para cambiar a la vista según EBP, haciendo clic derecho en el stack eligiendo GO TO EBP  cambiamos y para volver GO TO ESP volvemos a la opción por default.

En sucesivas entregas explicaremos bien el funcionamiento del stack por ahora miramos como se puede variar su configuración solamente.

Dump::

La ventana del DUMP tiene muchas opciones de visualización, por DEFAULT nos muestra la visualización HEXADECIMAL de 8 columnas o bytes, la cual puede ser modificada haciendo CLICK DERECHO en el DUMP y eligiendo la opción deseada.

La opción por DEFAULT es la que generalmente mas se usa, aunque tenemos opciones para cambiar para mostrar desensamblado (DISASSEMBLE), Texto (TEXT) y diversos formatos (SHORT, LONG, FLOAT)

Y además la opción SPECIAL – PE HEADER que mas adelante en próximas ediciones veremos para que sirve esto que es muy útil.

Continuar leyendo

Tarjeta madre

Zeidy López Collazo [vilmahm@infomed.sld.cu]

La placa base, placa madre o tarjeta madre (en inglés motherboard) es la tarjeta de circuitos impresos que contiene circuitos electrónicos de soporte y ranuras especiales (slots) que permiten la conexión de tarjetas adaptadoras adicionales. Estas tarjetas suelen realizar funciones de control de periféricos.

Se denomina placa base a un circuito eléctrico con capacidad de relacionar microprocesador, memoria RAM y dispositivos de entrada salida sobre una tarjeta de circuito impreso. Se diseña básicamente para realizar tareas específicas vitales para el funcionamiento del ordenador, como por ejemplo las de:

1. Conexión física.
2. Administración, control y distribución de energía eléctrica.
3. Comunicación de datos.
4. Temporización.
5. Sincronismo.
6. Control y monitoreo.

El conjunto de circuitos integrados que componen las placas base de los IBM PC actuales, conocido como chipset. Controlan las funciones de acceso hacia el microprocesador y entre este y las memorias y los puertos gráficos.

La nueva tarjeta gráfica Aeolus 7800GT-DVD256/DVDC256 utiliza la unidad de procesador gráfico GeForce 7800GT de Nvidia, que es también un miembro de la serie 7800, incrustado con el motor CineFX 4.0.

Soporte para la tecnología SLI::

Otra importante característica de la tarjeta de vídeo es que soporta la tecnología SLI. La tarjeta ofrece un rendimiento de casi el doble (2x) del de una única CPU, consiguiendo en los juegos una experiencias inigualables, al permitir que dos tarjetas de vídeo funcionen en paralelo. La tecnología SLI, que es una característica imprescindible para gráficos PCI Express, aumenta enormemente el rendimiento de más de 60 juegos para PC.

Cuando dos tarjetas gráficas, soportando ambas las tecnología SLI, funcionan en paralelo en un ensayo con el benchmark 3Dmark2003/2005, siempre superan a un PC con una sola tarjeta gráfica. Por consiguiente la adquisición de una tarjeta SLI no es más que una inversión que se depreciará menos que las tarjetas sin tecnología SLI.

AOpen presenta su PC Cube de 64 bits - el EX761::

Soporta Windows XP de 64 bits
El EX761, que tiene un zócalo de 754-pines y soporta las CPU Athlon 64 y Sempron de AMD®, es uno de la primera generación de PC Cube que puede ejecutar el sistema operativo Windows XP de 64-bits.
Entre las ventajas más importantes del sistema es estar preparado para el futuro porque puede ejecutar software (aplicaciones) de 32 bits de hoy y de 64 bits de mañana. Ofrece un buen rendimiento con 64 bits y satisface las necesidades futuras del usuario.

Potentes funciones digitales home entertainment AV::

Puesto que el sistema ofrece S/PDIF y salidas para cable coaxial, el EX761 puede conectarse a dispositivos con salida de audio de alta calidad, tales como amplificadores y altavoces multicanal.

Potentes funciones para juegos::

El EX761 está diseñado también para dar soporte a potentes funciones para juegos. El sistema, que cumple con DirectX9, está construido con lógica para juegos 3D integrada, un núcleo gráfico Mirage, motor de aceleración 3D de 256 bits, que tiene un ancho de banda extremadamente grande de 3,2GB por segundo.

La i915GMm-HFS de AOpen es la mejor placa base del año – Personal Computer World U.K., 2005
Debido a la gran visión de AOpen Inc., la i915GMm-HFS es más que una placa base, debido a los conceptos en que se ha inspirado AOpen durante años, como el MoDT (Mobile on desktop, Mobile en sobremesa) y SFF (Pequeño factor de forma: para disminuir el tamaño de los PC de sobremesa). La base de pensamiento de MoDT es utilizar la CPU mobile en ordenadores de sobremesa. AL combinar esto con el SFF, las ventajas son sorprendentes. Debido a que la CPU móvil no necesita tanta energía eléctrica como las CPU de sobremesa, se genera menos calor.

Y menos calor implica que no es necesario un ventilador de refrigeración enorme, lo que da como resultado un sistema de PC silencioso (sobre 25 db), pequeño y frío. Gracias al soporte de CPU móvil de baja temperatura, tamaño compacto micro ATX, alta conectividad y prestaciones multi propósito, la i915GMm-HFS es digna de todos los premios que ha ganado. Y esta esperando que la adopte.
Custom PC de UK alaba las tarjetas gráficas Aeolus 6600-DV128LP de AOpen

Tarjeta de perfil bajo::

Por sus pequeñas dimensiones, las tarjetas de "perfil bajo" encajan bien tanto en las cajas mini-ITX como en las micro-ATX. "Las dimensiones pequeñas son importantes...", decía el informe. Según esta publicación de las TI las tarjetas Aeolus 6600-DV128LP demuestran que finalmente es posible montar un PC multimedia que también pueda ejecutar juegos modernos.

Continuar leyendo

Algo más que una 3ra dimensión

Ariel-NM [blackhat4all@gmail.com]

Desde hace más de una década, aparece cada vez con mayor frecuencia la sigla “3D” colgada como un perchero a los más disímiles aspectos del diseño gráfico, principalmente si se trata de diseño gráfico asistido por computadora. Ello se debe al despegue exponencial que han experimentado tanto el hardware como el software específico de esta vertiente de la llamada Infografía.

Puesto que la abreviatura “3D” sugiere imágenes que dan la impresión de tener tres dimensiones, podría clasificarse como “3D” a toda obra pictórica figurativa desde el renacimiento hasta nuestros días. La perspectiva y el claroscuro son, desde hace mucho tiempo, herramientas bien conocidas y aprovechadas habitualmente por los artistas plásticos para burlar la planicie del lienzo y crear en la retina del espectador la ilusión de lejanía, relieve, profundidad…

Aunque el artista –Julian Beever– parece muy dispuesto abridor en mano, en realidad la botella no es más que una de sus famosas pinturas al pastel sobre el asfalto. Elocuente esfuerzo por crear una ilusión en tres dimensiones.

La expresión también se emplea frecuentemente para catalogar ciertas herramientas destinadas al procesamiento digital de imágenes, las cuales permiten imitar algunas propiedades volumétricas. Sin embargo, ni siquiera programas tan socorridos como Photoshop, Paint Shop Pro, Flash y otros, que se valen de un sinfín de astucias para generar la sensación de una tercera dimensión, podrían ser catalogados como “3D”: Simplemente, aplican sofisticados trucos para manipular imágenes bidimensionales.

Quienquiera que mire esta imagen verá una hilera de bolas idénticas perdiéndose en la profundidad. El claroscuro (las luces y las sombras), la perspectiva (el achicamiento aparente de los objetos lejanos) y la profundidad de campo (desenfoque con la distancia) contribuyen a la “tridimensionalidad” de este sencillo ejercicio en Photoshop.

Entonces, a fin de cuentas, ¿qué significa “3D”? No es casual que donde más se haga mención de los términos “2D” y “3D” sea en el ámbito de las animaciones. Sigámosles la pista: quizás por ahí esté la respuesta. Y para comenzar, hagamos un experimento: tomemos papel y lápiz (o un programa tan sencillo como el Paint) e iniciémonos en los rudimentos de los dibujos animados esbozando un cubo.

Dibujar un cubo totalmente de frente es la empresa más sencilla del mundo: bastará con garrapatear un cuadrado.


Al moverse el espectador (o la cámara) un poco a la derecha o rotar el cubo sobre su eje vertical, aparecerán tres nuevas aristas que, naturalmente, habrá que dibujar. Por otro lado, al cambiar el punto de vista ya no servirá para nada el cuadrado original, y en su lugar habrá que trazar un trapecio.

Si, además, el punto de vista del observador sube o el cubo rota hacia adelante, la imagen cambia por completo. Habremos entrado en lo que se conoce como perspectiva de tres puntos, por cuanto todas las líneas tienden a convergir sobre tres puntos del espacio. Aquí ya ninguna arista es paralela a otra y, naturalmente, habrá que desechar el boceto anterior y dibujarlo todo de nuevo.

Así sucede durante el proceso de creación de un dibujo animado: para dar la ilusión del movimiento hay que trazar cada fotograma, uno por uno. Y el animador habrá de tener en cuenta los cambios que imponen la perspectiva (pues generalmente la forma de un personaje es radicalmente diferente cuando se observa desde diferentes puntos de vista) y el propio movimiento interno del personaje. Si a esto se añaden los cambios en el color, el claroscuro y cómo se modifica la sombra proyectada cuando esta pasa por sobre diferentes objetos, se tendrá en cuenta que, más que artesanal y lenta, es una tarea titánica. Comenzar todo de nuevo, re-crear cada fotograma… esa ha sido la filosofía del dibujo animado (el animado “2D”) desde los albores del cine.

Si la cámara rota alrededor del arquero, cambiará la forma de este según el punto de vista y el movimiento del personaje, así como la distribución de luces y sombras sobre su cuerpo.

A fin de acelerar el proceso y de este modo empujar la artesanía hacia la industria y el arte hacia el negocio, en la década del 30 del pasado siglo Walt Disney experimentó y finalmente implantó un novedoso método en sus estudios, según el cual el director se encargaba de esbozar los fotogramas de inicio y fin de una acción (los llamados cuadros clave; keyframes, en inglés) mientras un tropel de dibujantes secundarios rellenaba el segmento intercalando fotogramas intermedios, tantos como requiriese la lentitud del movimiento.

Pero, en esencia, nada había cambiado en el método de creación: había que dibujar una y otra vez el sombrero, los ojos, las manos… Por esa misma época, algunos animadores ya se preguntaban si sería posible crear cada personaje de una vez y por todas y luego chasquear los dedos e insuflarles movimiento. A fin de cuentas, animar significa justo eso: dar vida. Entonces aparecieron los primeros modelos de plastilina con armazón de alambre: había nacido la técnica de stop-motion, conocida también como animación corpórea.

Aunque fiel al principio de filmar cuadro a cuadro, este método partía de presupuestos radicalmente diferentes del dibujo animado y mucho más cercanos al cine con actores reales. Puesto que se trataba de marionetas, aquí la escenografía, las luces, el maquillaje y el vestuario seguían las mismas pautas que en cualquier set de filmación… sólo que en miniatura. Para cada fotograma era preciso cambiar la pose de los personajes, retocar la iluminación o mover la cámara pero ya no había necesidad de rehacer nada. Es más: agregando una peluca, modificando la vestimenta o implantando un bigote, un mismo modelo podía servir para representar a más de un personaje, tal como sucede cuando se trabaja con actores reales.

Paso a la tecnología: En “Mi Novia Cadáver” (técnica de stop-motion) la tradicional plastilina fue sustituida por el plástico, y el alambre por complejos mecanismos de relojería. Para cambiar la expresión facial se introducían llaves especiales en las orejas de los muñecos.

Por otra parte, la técnica del stop-motion, puesto que empleaba objetos físicos que admiten texturas convincentes e iluminación de estudio, permitió un realismo asombroso en esos tiempos e impensable para los dibujos animados. Comenzaron a poblarse las pantallas con todo tipo de monstruos, entre los cuales quizá el más memorable sea el repetido King Kong.

Más o menos sobre esa misma época, en la Universidad de Pensilvania nacía un enorme bebé de 30 toneladas: el ENIAC, la primera máquina que mereció el sobrenombre de computadora…

Las computadoras –verdad de Perogrullo– fueron entrando solapada y sigilosamente en todas las esferas de la práctica social, saliendo del elitismo de los grandes salones climatizados hasta posarse, reducidas y amigables, sobre la mesa de trabajo de los diseñadores. En la década de los 60 comenzaron las primeras incursiones en la obtención de imágenes de objetos tridimensionales creados de una sola vez para luego ser observados desde cualquier punto de vista. Los primeros intentos fueron modelos de aeronaves y sería otra perogrullada afirmar que la mano el Pentágono movía los hilos de esta tecnología.

Con el tiempo, la modelación de objetos tridimensionales devino demanda común de la ingeniería y el arte, la publicidad y la criminalística, la medicina y la educación… Comenzó la carrera por abaratar los costos de los programas capaces de asimilar el reto, a la par que el software crecía en complejidad acorde con las posibilidades brindadas por un hardware no menos dialéctico.

Y he aquí que estamos ante las puertas de una definición de “3D”. Como enunciaba al inicio, esta categoría podría aplicarse, en principio, a cualquier imagen que brinde al espectador la sensación de volumen y profundidad –desde La Gioconda de Da Vinci hasta los bodegones de nuestro Montoto– pero, si de software se habla, y puesto que se trata del método de creación y no del resultado, podrá catalogarse como “programa 3D” aquel que sea capaz de modelar un objeto tridimensional virtual y mostrar el resultado desde cualquier punto de vista sin necesidad de que el usuario remodele el objeto.

Nótese cómo el verbo modelar y sus derivados se repiten una y otra vez. Aquí no se trata ya de dibujos aunque algunas técnicas de modelado los empleen como paso inicial. Los programas 3D deben a la escultura mucho más que a la pintura, y al igual que la primera lo exige del artista, esta técnica demanda del diseñador una visión y una imaginación íntegramente espaciales.

A la par de los métodos de modelado, los programadores comenzaron a desarrollar sorprendentes algoritmos para las texturas y la iluminación. Y como en el mundo fantástico de las computadoras casi todo se puede lograr, los sets virtuales comenzaron a superar a los estudios reales. Solamente en materia de iluminación podremos encontrar fenómenos tan inadmisibles en la naturaleza como fuentes que absorben luz u objetos opacos que no arrojan sombras o no se reflejan en los espejos. Los eternos traumas de Peter-Pan y Drácula no representan ya un problema en el mundo 3D… Y como era de suponer, el paso de un modelo 3D estático a uno animado resultó un proceso natural y, además, esperado.

Al igual que su antecesor directo, la técnica de stop-motion, aquí los modelos también son reutilizables: una escenografía o un personaje pueden transfigurarse diametralmente con solo alterar su apariencia. La ventaja estriba en que no hay que gastar pintura de acrílico ni pátinas de yeso: basta con un par de clics…

Otra prerrogativa exclusiva de la animación 3D es el empleo de cámaras virtuales. Estas pueden colocarse en los ángulos más insospechados y animarse según las más psicodélicas trayectorias, imposibles de lograr con cámaras reales aún hoy, en los albores de la nanotecnología.

Herencia directa del stop-motion: Solo unos pocos ajustes en la textura y el pelo bastaron para crear tres personajes a partir de un mismo modelo.

Es evidente que la animación 3D es hija directa de la animación corpórea. Y si tenemos en cuenta que una de las técnicas de animación 3D más usuales consiste en colocar un esqueleto virtual a los modelos y dotarlo de movimiento, podremos concluir que nos encontramos ante un franco retorno a la plastilina y el alambre.

Sólo que…, claro, en una vuelta más afuera y más arriba de la espiral…

Continuar leyendo

Algunos apuntes sobre Internet

Jorge González Herrera [jorgel.gonzalez@infomed.sld.cu]

Todos, bueno…, al menos gran parte de todas las personas del mundo han interactuado con la red de redes: Internet, lugar donde se alimentan los conocimientos, donde, y valga la redundancia, la ignorancia se convierte en sabiduría.

¿Saben qué? Se calcula que en el mundo se encuentran conectadas 255!*4! computadoras, donde “!”, significa “factorial”, 255*254*253…, y así sucesivamente hasta el número 1, cifra impresionante, ¿verdad!? Bueno..., no tanto con respecto a la extensión del mundo. Entrando ya en materia: en este artículo se comentarán algunos apuntes sobre esta gran res, perdón: red, que no es lo mismo.

Internet es, como había dicho, un montón de máquinas conectadas entre sí, donde cada una de ellas se caracteriza por tener un número IP que es el que la identifica en la interfaz, o mejor dicho, la interfaz la identifica con este número, dicho número tiene el formato xxx.xxx.xxx.xxx, donde cada trío no puede exceder el valor 255, una IP no válida sería entonces 256.123.123.123, ya que el primer segmento excede al 255, Internet es muy grande, y cada día crece de forma considerable, esto implica que para poder acceder a la misma se necesiten diversos protocolos (lenguaje entre ordenadores para que la información fluya), un protocolo es por ejemplo el HTTP, siendo el mismo el principal autor de la fama de Internet, el mismo se encarga de enviar a los ordenadores el código de la página HTML.

Este método para la identificación de los ordenadores resultaba algo confuso, se imaginan tener una base de datos en la cabeza con tantos números, creo que es algo difícil, aunque yo me se el de mi tarjeta propia, que de por cierto no es ni mía. Bueno para este problema hubo su solución, esta solución fueron los DNS (Domain Name Service), traducido como servicio de directorio de nombres, que la función del mismo es darles a las PC nombres mas entendibles, definiendo un sufijo de dominio, como por ejemplo el más famoso “.com” que significa “commercial”, cada día conforme Internet crece, la lógica indica que estos sufijos también aumenten, es válido señalar que cada país tiene su propio sufijo “.es” en España, “.cu” en Cuba “.fr” en Francia, y muchos más.

Jerárquicamente por debajo de estos sufijos están los nombres de dominios, como por ejemplo “Hotmail, Yahoo, Infomed”, etcétera…, y por debajo de estos sufijos y los nombres de dominio se encuentran los subdominios como subgrupos de ordenadores, o de nombres de ordenadores llamados huésped (el famoso término “hosts”). Teniendo en cuenta estos aspectos, un ejemplo de dirección de Internet sería casadebillgatespordentro.yahoo.com, ¿se imaginan?!

Volviendo al tema de los protocolos. El protocolo para transmitir información que por defecto utiliza Internet es el TCP/IP (Transmision Control Protocol / Internet Protocol), el mismo fue diseñado por DARPA (Defense Advanced Research Projects Agency) del Ministerio de Defensa de Estados Unidos en 1966. Este protocolo usa el sistema cliente/servidor, es decir, para que Internet funcione tiene que existir al menos un servidor al que se conectarán los clientes. Cada ordenador conectado por TCP/IP tiene una estructura lógica de cara a la red. La conexión a la red esta dividida en Puertos. Un puerto es una zona en la que dos ordenadores intercambian información. Una configuración típica de TCP/IP habilita 65536 puertos (0...65535) para las conexiones de red. Cada puerto tiene cinco estados posibles: Cerrado, Rechazado, Abierto, Conectado o Escucha.

Espero estas líneas les haya servido de algo a los que conocen poco del tema, tengo la intención de más adelante en otras ediciones tratar más este tema tan interesante, la historia de Internet, cuantas horas a la semana Bill Gates navega, no sé…, lo que se me ocurra y lo que aprenda, recuerden que uno nunca se las sabe todas, estamos en este mundo para aprender y para muchas cosas más, nada mejor que este boletín.

Continuar leyendo

Hala la cadena

Ariel-NM [blackhat4all@gmail.com]

Casi puede decirse que estoy entre los fundadores de Internet en Cuba puesto que entré en ese servicio desde sus inicios en nuestro país. Desde entonces hasta la fecha he visto de todo… Recuerdo que una de las primeras cosas que hice fue crearme un buzón en Yahoo y, ya de paso, cometer la estupidez de anotarme en las llamadas "páginas blancas", que es como anotarse en la guía telefónica o peor aún: pasear desnudo a plena luz.

Se imaginarán que durante este tiempo he recibido los mensajes más inimaginables que puedan imaginar: desde incitaciones pornográficas sin tapujos hasta tonterías comerciales al estilo de "¡Usted también puede ganar un millón!", pasando, no faltaba más, por una de las tomaduras de pelo más frecuentes, vulgares, tontas, comunes y de mal gusto que se implementan a través de los servicios de correo electrónico desde sus albores: las cadenas de mensajes, importante ingrediente de lo que en inglés recibe el significativo nombre de spam.

Tomando y renovando la tradición de las llamadas “novenas” católicas y apoyándose en la base estadística de la teoría del rumor (la cual predice un crecimiento exponencial de los participantes), se lanzan al ciberespacio las cadenas de mensajes con disímiles objetivos que van desde la diversión, la superstición o la satisfacción del ego hasta la premeditada congestión de los servicios de correo electrónico de determinada entidad.

Para lograr sus propósitos, los autores de tales cadenas tiran de las más disímiles cuerdas del comportamiento humano: desde el consumismo incauto o desenfrenado (“Participe y gánese una laptop P-5”) hasta la más meliflua sensiblería, digna de las novelucas de Univisión (“Ayude a mi hijita, que tiene cáncer”).

Y como siempre –el puntillazo– viene detrás la apelación: "Sé buenito, sé humano, ayuda al prójimo y no olvides enviar este mensaje a todos los que tengas anotados en la libretita de direcciones". Esa reclamación final nunca falla: es la clave para generar una nueva cadena de mensajes a fin de tupir servidores de correos, pagarle promesas a San-X o, simplemente, burlarse de la inocencia ajena.

Con respecto a la ayuda a niños con enfermedades incurables –sin dudas, la modalidad más aberrada y repugnante– se alega que los servicios de correo pagarán no-sé-cuántos centavos de dólar por cada mensaje que se ponga a circular... Y vale la pena preguntarse:

¿Acaso AOL, Yahoo, GMail y otros monopolios del correo mundial, las primeras víctimas y los más feroces adversarios del spam (compañías que en su mayoría tienen sede en Estados Unidos, país donde a raíz de los atentados del 11/9 cualquier epidemia local de salpullido común se considera un ataque terrorista), van a alentar, pagar, premiar, sustentar y aprobar este estúpido método de “ayudar” centavo a centavo a supuestos necesitados de asistencia urgente? Eso, sin contar que ninguna de esas corporaciones tiene control alguno sobre el tráfico de la mensajería local de otro país.

Muchos de estos “bromistas” están conscientes de que la mayoría de las personas ya no se traga el sádico anzuelo de la niña con cáncer o el bebé con elefantiasis y, al no poder apelar al sentimentalismo, recurren a otra reacción aún más arraigada en el paleoencéfalo: el miedo. Y es ahí cuando aparecen los finales tremebundos presagiando la mala suerte que caerá sobre el que borre el e-mail sin darle continuidad, o para los más intelectuales: mensajes que anuncian la salida al aire del nuevo "supervirus", el que desmanteló el centro de cálculos de la NASA, pulverizó las comunicaciones de la CIA y puso a los edecanes de la Casa Blanca a criar palomas mensajeras...

Días atrás Infomed (ese pobre servidor que se atraganta con solo una miga de pan) estuvo demorando hasta 24 horas en gestionar mensajes, particularmente los que provenían de otros servidores. No duden ustedes que en esos momentos Infomed estuviese bajo el embate de esa cadena que se propagó por ahí generando atolladeros, "alertando" sobre la circulación de un siniestro e-mail bajo el subject "Invitación", donde se alojaba un virus que (vean qué idiotez) "cual antorcha olímpica" quemaría todo el contenido del disco C (¡?). A continuación, claro está, la ineludible invitación a avisar a cuanto destinatario encontrásemos a mano.

¿Qué beben, refresco o cerveza? ¿Jugo de piña en cajitas caras? Pues apuesten conmigo lo que quieran a que jamás recibirán ninguna "armagedónica" antorcha ni "Invitación" alguna.

Bueno sí, la mía: mi invitación a inscribirse entre los que nos dedicamos a detener, sofocar y destruir las cadenas de mensajes.

Continuar leyendo