miércoles, 30 de junio de 2010

como funciona paint

Herramientas y funciones de paint


Este monstruo (llamado "The Gunk" por el artista) es un ejemplo de pixel art creado solo con Microsoft Paint
Las nuevas versiones de Microsoft Paint permiten al usuario tener tres colores al mismo tiempo: primario (clic izquierdo), secundario (clic derecho), y terciario (Control + clic). El color terciario estaba presente, pero desactivado u oculto, en las versiones antiguas.
El programa tiene las siguientes herramientas: selección de forma libre, selección, borrador/borrador de
color, rellenar con color, tomar color, lupa, lápiz, pincel, aerógrafo, texto, línea, curva, rectángulo, polígono, elipse, y rectángulo redondeado. MS Paint no tiene la capacidad de crear automáticamente gradientes de color.
El menú "Imagen" ofrece las siguientes opciones: voltear/girar, expandir y contraer, invertir colores, atributos de imagen, borrar imagen y dibujar figuras opacas. El menú de "Colores" permite al usuario editar colores (única opción del menú Colores). La caja de diálogo de editar colores muestra una paleta de 48 colores y 12 espacios para colores personalizados que pueden ser editados. Al hacer clic en "Definir colores personalizados" se muestra una versión cuadrada de la rueda de colores en la que se puede elegir un color personalizado con un cursor en forma de cruz (+), o con valores de Matiz/Saturación/Luminosidad, o Rojo/Verde/Azul.
Los colores por defecto en la caja de colores son los siguientes:
Negro, blanco, gris, plata, granate, rojo, oliva, amarillo, verde oscuro, verde, verde azulado, cian, azul marino, verde pizarra, verde claro, Dark Carolina blue, aguamarina, azul medianoche, vinca, azul-violeta, coral, marrón y naranja calabaza desde Windows 95 hasta Windows XP. En Windows Vista los colores por defecto son distintos.
Versiones anteriores de MS Paint incluían la opción de abrir o guardar paletas de colores personalizadas con extensión de archivo "PAL". Esta opción no está disponible en versiones posteriores a Windows 98.
MS Paint tiene también unas cuantas funciones secretas no mencionadas en el archivo de ayuda: modo sello, modo arrastrar y zoom 10x. Para utilizar el modo sello, el usuario selecciona parte de la imagen, mantiene pulsado Ctrl y la mueve a otra parte del lienzo. Esto, en lugar de cortar la selección, crea una copia de esta. El proceso puede repetirse cuantas veces se desee. El modo arrastrar funciona igual, pero con la
tecla Mayúsculas o Shift. Se puede acceder al zoom 10x haciendo clic sobre la línea de 2 píxeles de altura bajo la opción 8x. Puede ser una función eliminada. En Windows Vista es posible acceder al zoom 10x a través de un deslizador.
También se puede dibujar líneas rectas horizontales, verticales, o diagonales con la herramienta lápiz, sin necesidad de usar la función de línea recta, manteniendo pulsado Shift o Mayúsculas y arrastrando el lápiz. Además, se puede hacer más gruesa (Ctrl +
+) o delgada (Ctrl + ) una línea mientras se traza.

martes, 29 de junio de 2010

como funciona power point


12.OTRAS FUNCIONES INTERESANTES
12.1.¿Cómo utilizar guías?
Las guías son un sistema de alineamiento de objetos en la diapositiva para usarlas de referencia cuando se insertan estos objetos. Se componen de dos líneas discontinuas, una vertical y otra horizontal, que se cruzan en el centro de la diapositiva (punto 0,00) formando dos ejes.Para visualizar las guías hay que dirigirse, en el menú Ver, a la opción guías.
Estas guías pueden desplazarse. Para ello hay que hacer clic sobre la guía y sin soltar el botón del ratón, desplazarla. En el momento de hacer clic sobre la guía, aparecerán unas cifras que indican la distancia con respecto al eje que pasa por el punto de referencia 0,00. Por otro lado, también está la opción dentro de los cuadros de texto o de imágenes para que el tamaño del cuadro en que se inserta el texto o la imagen se ajuste a lo que se escribe y/o inserta. Para determinar esa posición, se hace clic dos veces sobre la imagen o, con el botón derecho sobre el texto se elige Formato de autoforma, apareciendo el siguiente cuadro de diálogo y determinando en él las distancias.
12.2.¿Cómo numerar e incluir fecha en las diapositivas?
Para numerar las diapositivas existe la opción Insertar Número de diapositiva. Como existe la posibilidad de aplicarlo a todas las páginas, ofrecerá la posibilidad de remitir automáticamente a VerEncabezado y pie de página. Desde ahí, se podrá incluir la fecha y la hora, el número de diapositiva y el pie de página. Si no, preguntará dónde se quiere colocar: en el encabezado o en el pie de página. Si se le responde que sí entonces abrirá este menú, donde será necesario especificar, entre otras cosas, la posición en la que se quiere colocar la numeración.
12.3.Crear un álbum de fotografías
Power Point 2002 permite crear una presentación consistente en un álbum de fotografías.Seleccionar la opción del menú Insetar/imagen/Nuevo álbum de fotos. Aparecerá el cuadro de diálogo Álbum de fotografías.Para agregar una imagen guardada en archivo, hacer click en el botón archivo o disco.Para insertar un cuadro de texto en el que poder escribir el comentario de una foto del álbum, hacer click en el nuevo cuadro de texto.Las imágenes y cuadros de texto insertados aparecen en la lista imágenes del álbum. Utilizar los botones de flechas para cambiar la posición de las imágenes dentro del álbum y el botón quitar para eliminar una imagen.En la sección diseño de álbum, seleccionar el número de imágenes por diapositiva. Indicar también una forma para el marco de cada foto y una plantilla de diseño que aplicar a la presentación.Hacer click en crear. Una vez creado el álbum, introducir el texto en los títulos de diapositiva o en los cuadros de texto.

13. RECOMENDACIONES
Es aconsejable que a la hora de realizar presentaciones se sigan una serie de pasos: 1- Guardar el documento al principio y cada cierto intervalo de tiempo. 2- Determinar el formato de la diapositiva. Tener en cuenta que si después de haber diseñado las diapositivas se cambia el tamaño de las mismas, la disposición de los distintos elementos cambiará y será necesario volver a revisarlas todas. 3- Determinar el esquema de colores. Ahorra mucho trabajo. 4- Utilizar plantillas. Bien las del programa o las suyas propias. 5- Si se comete un error, éste puede ser subsanado con la opción Deshacer del menú Edición.
.

domingo, 27 de junio de 2010

avances de java

Con la programación avanzada en Java, se pueden realizar distintos aplicativos, como son applets, que son aplicaciones especiales, que se ejecutan dentro de un navegador al ser cargada una pagina HTML en un servidor WEB, Por lo general los applets son programas pequeños y de propositos especificos.
Otra de las utilidades de la programación avanzada en Java es el desarrollo de aplicaciones, que son programas que se ejecutan en forma independiente, es decir con la programación Java, se pueden realizar aplicaciones como un procesador de palabras, una hoja que sirva para calculos, una aplicacion grafica, etc. en resumen cualquier tipo de aplicacion se puede realizar con ella.
Java permite la modularidad por lo que se pueden hacer rutinas individuales que sean usadas por más de una aplicacion, por ejemplo tenemos una rutina de impresion que puede servir para el procesador de palabras, como para la hoja de calculo.
La programación avanzada en Java, permite el desarrollo de aplicaciones bajo el esquema de Cliente Servidor, como de aplicaciones distribuidas, lo que lo hace capaz de conectar dos o más computadoras u ordenadores, ejecutando tareas simultaneamente, y de esta forma logra distribuir el trabajo a realizar.

sábado, 26 de junio de 2010


Últimas novedades en lenguajes de programación


La aparición de los ordenadores y, sobre todo, su hibridación con las telecomunicaciones configurando la gran red global, han propiciado una revolución "informacional" de las fuerzas productivas de una magnitud desconocida hasta ahora. Para Peña Marí, en el análisis histórico de este fenómeno, se ha prestado tradicionalmente “mucha más atención” a las herramientas materiales de computación, al hardware, que no al software y los lenguajes de programación, que son los instrumentos para comunicar los algoritmos a las máquinas que han de ejecutarlos. El objetivo de esta conferencia es situar los avances en el diseño de lenguajes de programación en su contexto histórico, explicando el surgimiento de las principales innovaciones, indicando cómo impactaron en lenguajes posteriores, qué lenguajes las implementaron por primera vez y quiénes fueron sus autores. También se pasa revista a los desarrollos más recientes y se indican algunas líneas en las que es previsible evolucionen los lenguajes en un futuro próximo. En la ingeniería actual, no sólo en la informática, es importante tener una visión global del desarrollo de los lenguajes y de sus debilidades y aciertos para construir programas, así como el saber situar cada acontecimiento y cada lenguaje en su momento histórico y comprender mejor sus influencias mutuas. El ponenteRicardo Peña Marí es catedrático de Universidad del Departamento de Sistemas Informáticos y Computación de la Universidad Complutense de Madrid. Sus áreas de investigación son el diseño y desarrollo de lenguajes de programación y el uso de métodos formales para garantizar la corrección de los programas. Ha trabajado en técnicas de especificación y diseño de programas con tipos abstractos de datos y en métodos de verificación de programas concurrentes. En los últimos 12 años se ha dedicado al paradigma de programación funcional. Dentro de él, su grupo junto con la Universidad de Marburg (Alemania), han desarrollado el lenguaje funcional-paralelo Edén. En los últimos años sigue trabajando dentro del paradigma funcional pero más dedicado al análisis estático de programas. Peña ha sido investigador principal en varios proyectos nacionales y ha participado en otros proyectos europeos. Además, ha publicado numerosos artículos científicos en congresos y revistas internacionales y es autor de libros como “Diseño de Programas”, “De Euclides a Java: historia de los algoritmos y de los

martes, 22 de junio de 2010

tercera unidad

ENGUAJES DE BAJO NIVEL (ensamblador):

Son más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. El lenguaje ensamblador es el primer intento de sustituir el lenguaje maquina por otro más similar a los utilizados por las personas. Este intenta desflexibilizar la representación de los diferentes campos. Esa flexibilidad se consigue no escribiendo los campos en binario y aproximando la escritura al lenguaje. A principios de la década de los 50 y con el fin de facilitar la labor de los programadores, se desarrollaron códigos mnemotécnicos para las operaciones y direcciones simbólicas. Los códigos mnemotécnicas son los símbolos alfabéticos del lenguaje maquina. La computadora sigue utilizando el lenguaje maquina para procesar los datos, pero los programas ensambladores traducen antes los símbolos de código de operación especificados a sus equivalentes en el lenguaje maquina. En la actualidad los programadores no asignan números de dirección reales a los datos simbólicos, simplemente especifican donde quieren que se coloque la primera localidad del programa y el programa ensamblador se encarga de lo demás, asigna localidades tanto para las instrucciones como los datos. Estos programas de ensamble o ensambladores también permiten a la computadora convertir las instrucciones en lenguaje ensamblador del programador en su propio código maquina. Un programa de instrucciones escrito en lenguaje ensamblador por un programador se llama programa fuente. Después de que el ensamblador convierte el programa fuente en código maquina a este se le denomina programa objeto. Para los programadores es más fácil escribir instrucciones en un lenguaje ensamblador que en código de lenguaje maquina pero es posible que se requieran dos corridas de computadora antes de que se puedan utilizar las instrucciones del programa fuente para producir las salidas deseadas.

El lenguaje de bajo nivel es el lenguaje de programación que el ordenador puede entender a la hora de ejecutar programas, lo que aumenta su velocidad de ejecución, pues no necesita un intérprete que traduzca cada línea de instrucciones.

Visto a muy bajo nivel, los microprocesadores procesan exclusivamente señales electrónicas binarias. Dar una instrucción a un microprocesador supone en realidad enviar series de unos y ceros espaciadas en el tiempo de una forma determinada. Esta secuencia de señales se denomina código máquina. El código representa normalmente datos y números e instrucciones para manipularlos. Un modo más fácil de comprender el código máquina es dando a cada instrucción un mnemónico, como por ejemplo STORE, ADD o JUMP. Esta abstracción da como resultado el ensamblador, un lenguaje de muy bajo nivel que es específico de cada microprocesador.

Los lenguajes de bajo nivel permiten crear programas muy rápidos, pero que son, a menudo, difíciles de aprender. Más importante es el hecho de que los programas escritos en un bajo nivel sean altamente específicos de cada procesador. Si se lleva el programa a otra maquina se debe reescribir el programa desde el principio.

Ventajas del lenguaje ensamblador frente al lenguaje máquina: mayor facilidad de codificación y, en general, su velocidad de calculo, ahorran tiempo y requieren menos atención a detalles. Se incurren en menos errores y los que se cometen son más fáciles de localizar. Tanto el lenguaje maquina como el ensamblador gozan de la ventaja de mínima ocupación de memoria y mínimo tiempo de ejecución en comparación con el resultado de la compilación del programa equivalente escrito en otros lenguajes. Los programas en lenguaje ensamblador son más fáciles de modificar que los programas en lenguaje máquina.

Desventajas del lenguaje ensamblador: dependencia total de la maquina lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes máquinas). El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Machintosh. La formación de los programadores es más compleja que la correspondiente a los programadores de alto nivel, ya que exige no solo las técnicas de programación, sino también el conocimiento del interior de la maquina El programador ha de conocer perfectamente el hardware del equipo, ya que maneja directamente las posiciones de memoria, registros del procesador y demás elementos físicos. Todas las instrucciones son elementales, es decir, en el programa se deben describir con el máximo detalle todas las operaciones que se han de efectuar en la maquina para la realización de cualquier proceso.

Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran básicamente en aplicaciones de tiempo real, control de procesos y de dispositivos electrónico

viernes, 18 de junio de 2010

Interpretar el lenguaje de signos

Un nuevo sistema visual interpreta el lenguaje de signosLa lengua de signos española se compone de cientos de signos. Ahora, los investigadores Sergio Escalera, Radeva Petia y Vitria Jordi, de la CVC-UAB, seleccionaron más de veinte de estos signos para desarrollar un nuevo sistema de interpretación visual que permite a las personas sordas llevar a cabo consultas en el lenguaje que utilizan habitualmente.Los signos pueden variar ligeramente en función de cada usuario. Los investigadores del proyecto tuvieron esto en cuenta durante los ensayos, realizándolos con diferentes personas para ayudar al sistema a "familiarizarse" con esta variabilidad. Los signos reconocidos por el sistema se programaron para que las personas sordas pudieran mantener una conversación básica, incluyendo el pedir ayuda o instrucciones.El hardware incluye una cámara de video que registra las secuencias de imágenes cuando detecta la presencia de un usuario que desea realizar una consulta. Un sistema de aprendizaje automático y visión por ordenador detecta los movimientos de la cara, las manos y los brazos, así como cualquier desplazamiento de pantalla y los incorpora a un sistema de clasificación que identifica cada movimiento con la palabra asociada con el signo.Uno de los aspectos que vale la pena destacar es la capacidad para adaptar el sistema a cualquier otro lenguaje de signos, dado que la metodología utilizada es de carácter general. Bastaría con reprogramar el sistema con los signos utilizados en ese idioma específico. La cantidad de signos que el sistema puede reconocer también es escalable, aunque los investigadores admiten que los nuevos datos incrementarán las dificultades para diferenciarlos.El sistema se presentó, recientemente, como prototipo de la fase final de un proyecto europeo y los investigadores ya están trabajando en nuevas fases del proyecto, como el uso de dos cámaras con el objetivo de reconocer signos aún más complejos y complementar la información con las características faciales

jueves, 17 de junio de 2010



Wine 1.se anunció en la web de Wine la publicación de Wine 1.0 , la versión tan esperada desde que el proyecto comenzó hace ya 15 años, intentando ser una solución para la ejecución de programas de Windows en plataformas Unix; y lo han conseguido.
Aunque Wine no ofrece una compatibilidad completa con cualquier programa de Windows, sí que está testado para algunas aplicaciones importantes, como Photoshop CS2, multitud de juegos, o muchos de los visores de documentos de MS Office.
Existe una sección dentro de la web de Wine, llamada “
Wine Application Database“, en la que se ofrece información acerca de la compatibilidad de más de 10.000 aplicaciones de Windows corriendo bajo Wine.
Como leí en el blog de
Microteknologias, no estaría mal que en las aplicaciones de Windows, a partir de ahora, informasen de la compatibilidad de las mismas de la forma “Diseñado para Windows XP, Vista, y Wine 1.0″. De hecho, en algunas empresas importantes, como Google, distribuyen muchos de sus programas, escritos en Windows, como si fueran para Linux, funcionando estos gracias a Wine (por ejemplo, Google Earth o Picasa).
Puedes encontrar más información de este proyecto en la
web de Wine.

lunes, 14 de junio de 2010

avances de software

La forma inicial de programar un generador de movimientos fue el generar mediante fórmulas matemáticas los movimientos legales de cada pieza sobre el tablero, obteniendo todas las posibilidades con tal de entregárselas como una lista al software de búsqueda. Esta propuesta fue mencionada por vez primera en el paper de Shannon [68] y se aplicó a prácticamente todos los programas de la época. La idea inicial fue el que el programa generara sólo los mejores movimientos con tal de reducir drásticamente el árbol de variantes (estrategia "B", según la nomenclatura dada por Shannon) pero los resultados distaron de ser positivos puesto que el problema principal relacionado con este proceso fue que en las búsquedas en profundidad esta forma de generar los movimientos tomaba un tiempo excesivo, lo cual hacía muy lento el proceso global, motivo por el cual se buscaron otras formas de programar la generación de movidas en base a operaciones que la computadora pudiese realizar más rápidamente. Sólo hasta principios de 1970 (gracias a la presencia de hardware y ambientes de desarrollo de mayor capacidad) se utilizó la técnica de los mapas de bits (bit-boards)la cual significó un gran avance en este proceso del juego de la máquina dado que se redujo la complejidad de operaciones a aquellas que son básicas para la máquina. A pesar de este avance, era clara la necesidad de implementar fuera del software esta función del programa, dado que la necesidad de hacer búsquedas más rápidas y profundas se basaba en un generador de alta velocidad, cosa que era muy difícil lograr a nivel de hardware. Las mejoras en esta función del programa vinieron principalmente del lado del desarrollo de hardware específico para la generación de movimientos. En 1977 el programa "Belle" fue el primero en utilizar circuitos digitales para la generación de movimientos logrando aumentar su velocidad de búsqueda de 200 a 160.000 posiciones por segundo. El generador utilizado en Belle sirvió como punto de partida para máquinas más poderosas. El computador que derrotó a Kasparov en 1997, DeepBlue, tenía 30 procesadores IBM RS-6000 SP acoplados a 480 chips. Esta máquina fue capaz de lograr velocidades computacionales de 200 millones de posiciones por segundo. Las característica principal de estos generadores a nivel de Hardware es el poder caracterizar a las casillas de origen y destino mediante transmisores y receptores respectivamente, para luego generar mediante un árbol de prioridades los movimientos ordenados de acuerdo a criterios de capturas, jaques, etc. [38]. La principal ventaja entre el generador de movimientos de DeepBlue y BELLE es que el primero solucionó el problema de generar en primer orden los movimientos de jaque. En la actualidad la utilización de mapas de bits es prácticamente universal en todos los programas de ajedrez. Las mejoras se ven principalmente en los tipos de mapas generados de acuerdo al tipo de movimientos buscados (reglas de mapas de bits). El principal desarrollo en este tema es a nivel de hardware en donde los avances se han visto en el orden de jugadas entregado en la generación de los movimientos. En el último año se han desarrollado también tarjetas de hardware específicas para implementación en computadoras personales (Field Programable Gate Arrays) las cuales han sido utilizadas en forma experimental.

avances de software

La forma inicial de programar un generador de movimientos fue el generar mediante fórmulas matemáticas los movimientos legales de cada pieza sobre el tablero, obteniendo todas las posibilidades con tal de entregárselas como una lista al software de búsqueda. Esta propuesta fue mencionada por vez primera en el paper de Shannon [68] y se aplicó a prácticamente todos los programas de la época. La idea inicial fue el que el programa generara sólo los mejores movimientos con tal de reducir drásticamente el árbol de variantes (estrategia "B", según la nomenclatura dada por Shannon) pero los resultados distaron de ser positivos puesto que el problema principal relacionado con este proceso fue que en las búsquedas en profundidad esta forma de generar los movimientos tomaba un tiempo excesivo, lo cual hacía muy lento el proceso global, motivo por el cual se buscaron otras formas de programar la generación de movidas en base a operaciones que la computadora pudiese realizar más rápidamente. Sólo hasta principios de 1970 (gracias a la presencia de hardware y ambientes de desarrollo de mayor capacidad) se utilizó la técnica de los mapas de bits (bit-boards)la cual significó un gran avance en este proceso del juego de la máquina dado que se redujo la complejidad de operaciones a aquellas que son básicas para la máquina. A pesar de este avance, era clara la necesidad de implementar fuera del software esta función del programa, dado que la necesidad de hacer búsquedas más rápidas y profundas se basaba en un generador de alta velocidad, cosa que era muy difícil lograr a nivel de hardware. Las mejoras en esta función del programa vinieron principalmente del lado del desarrollo de hardware específico para la generación de movimientos. En 1977 el programa "Belle" fue el primero en utilizar circuitos digitales para la generación de movimientos logrando aumentar su velocidad de búsqueda de 200 a 160.000 posiciones por segundo. El generador utilizado en Belle sirvió como punto de partida para máquinas más poderosas. El computador que derrotó a Kasparov en 1997, DeepBlue, tenía 30 procesadores IBM RS-6000 SP acoplados a 480 chips. Esta máquina fue capaz de lograr velocidades computacionales de 200 millones de posiciones por segundo. Las característica principal de estos generadores a nivel de Hardware es el poder caracterizar a las casillas de origen y destino mediante transmisores y receptores respectivamente, para luego generar mediante un árbol de prioridades los movimientos ordenados de acuerdo a criterios de capturas, jaques, etc. [38]. La principal ventaja entre el generador de movimientos de DeepBlue y BELLE es que el primero solucionó el problema de generar en primer orden los movimientos de jaque. En la actualidad la utilización de mapas de bits es prácticamente universal en todos los programas de ajedrez. Las mejoras se ven principalmente en los tipos de mapas generados de acuerdo al tipo de movimientos buscados (reglas de mapas de bits). El principal desarrollo en este tema es a nivel de hardware en donde los avances se han visto en el orden de jugadas entregado en la generación de los movimientos. En el último año se han desarrollado también tarjetas de hardware específicas para implementación en computadoras personales (Field Programable Gate Arrays) las cuales han sido utilizadas en forma experimental.

domingo, 13 de junio de 2010

La velocidad de unidades de procesamiento
se ha incrementado dramáticamente debido principalmente a la evolución de la tecnología de semiconductores. Las computadoras han progresado desde ejecutar aproximadamente 10.000 instrucciones por segundo (en la época de los primeros programas) a aproximadamente 1.000.000.000 en la actualidad. El aumento de velocidad ha sido del orden de magnitud de 100.000 veces. Imaginemos comparativamente si la velocidad de transporte hubiese aumentado en esa magnitud durante el mismo periodo de tiempo. Los aviones volarían a 100.000.000 millas por hora; un viaje al sol tomaría cerca de 1 hora de vuelo y un viaje a la estrella más cercana, Alpha Centauri, la cual está a 4,5 años luz de distancia, tomaría cerca de sólo 70 años. En los años venideros puede esperarse un continuo crecimiento en la velocidad de los procesadores siendo razonable esperar que en los próximos 10 años el incremento será nuevamente cercano a las 100 veces. Ya a inicios del año 2000 las computadoras son 10.000.000 de veces más rápidas que las utilizadas en los primeros programas de ajedrez. Un viaje a Alpha Centauri tomaría ahora menos de 1 año!. Cada incremento en 6 veces la velocidad de la máquina le otorga la posibilidad de realizar una búsqueda en aproximadamente 1 nivel extra de profundidad. Un incremento de 100 veces otorga aproximadamente 2,5 niveles extras de profundidad. Con DEEP THOUGHT realizando búsquedas en una profundidad cercana a los 9 o 10 niveles en el año 1989 no fue sorpresa el hecho de que DeepBlue superara el nivel de profundidad de 12 movimientos en 1997. El efecto del incremento en la velocidad del hardware en la performance de los programas de ajedrez ha sido estudiado durante varios años. La historia ha demostrado que los ratings Elo de las máquinas han aumentado cerca de 200 puntos por cada nivel adicional de búsqueda logrado. Esto se muestra en la tabla , donde las profundidades de búsqueda, años y ratings han sido levemente redondeados con tal de demostrar el efecto de los "200 puntos". Lo que la tabla no muestra es que muchas otras mejoras han sido realizadas a los programas con tal de lograr búsquedas con mayor profundidad, y que correr un programa en una máquina 6 veces más veloz no aumenta directamente la fuerza del programa en 200 puntos de rating Elo. A fines de los 70, Thompson hizo jugar a varias versiones de BELLE con tal de medir la performance como función sólo de la velocidad con tal de medir los efectos de otras mejoras. El midió la performance como función de la profundidad de búsqueda, pero velocidad y profundidad son parámetros
íntimamente
procesador de mejor velocidad
de unidades de procesamiento se ha incrementado dramáticamente debido principalmente a la evolución de la tecnología de semiconductores. Las computadoras han progresado desde ejecutar aproximadamente 10.000 instrucciones por segundo (en la época de los primeros programas) a aproximadamente 1.000.000.000 en la actualidad. El aumento de velocidad ha sido del orden de magnitud de 100.000 veces. Imaginemos comparativamente si la velocidad de transporte hubiese aumentado en esa magnitud durante el mismo periodo de tiempo. Los aviones volarían a 100.000.000 millas por hora; un viaje al sol tomaría cerca de 1 hora de vuelo y un viaje a la estrella más cercana, Alpha Centauri, la cual está a 4,5 años luz de distancia, tomaría cerca de sólo 70 años. En los años venideros puede esperarse un continuo crecimiento en la velocidad de los procesadores siendo razonable esperar que en los próximos 10 años el incremento será nuevamente cercano a las 100 veces. Ya a inicios del año 2000 las computadoras son 10.000.000 de veces más rápidas que las utilizadas en los primeros programas de ajedrez. Un viaje a Alpha Centauri tomaría ahora menos de 1 año!. Cada incremento en 6 veces la velocidad de la máquina le otorga la posibilidad de realizar una búsqueda en aproximadamente 1 nivel extra de profundidad. Un incremento de 100 veces otorga aproximadamente 2,5 niveles extras de profundidad. Con DEEP THOUGHT realizando búsquedas en una profundidad cercana a los 9 o 10 niveles en el año 1989 no fue sorpresa el hecho de que DeepBlue superara el nivel de profundidad de 12 movimientos en 1997. El efecto del incremento en la velocidad del hardware en la performance de los programas de ajedrez ha sido estudiado durante varios años. La historia ha demostrado que los ratings Elo de las máquinas han aumentado cerca de 200 puntos por cada nivel adicional de búsqueda logrado. Esto se muestra en la tabla , donde las profundidades de búsqueda, años y ratings han sido levemente redondeados con tal de demostrar el efecto de los "200 puntos". Lo que la tabla no muestra es que muchas otras mejoras han sido realizadas a los programas con tal de lograr búsquedas con mayor profundidad, y que correr un programa en una máquina 6 veces más veloz no aumenta directamente la fuerza del programa en 200 puntos de rating Elo. A fines de los 70, Thompson hizo jugar a varias versiones de BELLE con tal de medir la performance como función sólo de la velocidad con tal de medir los efectos de otras mejoras. El midió la performance como función de la profundidad de búsqueda, pero velocidad y profundidad son parámetros íntimamente

sábado, 12 de junio de 2010




Memorias de mayor capacidad son el resultado de la rápida evolución en tecnología de semiconductores. Los primeros programas de ajedrez corrían en máquinas que utilizaban memorias de base magnética. A inicios de 1970 aparecen las memorias realizadas en base a semiconductores utilizadas en la serie de computadoras IBM 370. Así como la velocidad de los computadores se incrementó en un factor de aproximadamente 100.000, la capacidad de memoria creció en una proporción similar. Este hecho es particularmente importante en programas que utilizan tablas de transposición. A medida que aumenta la velocidad de la computadora memorias de capacidad proporcionalmente mayor son necesarias para mantener la cantidad extra de posiciones que son buscadas. Así como se espera tener mayores incrementos en la capacidad de procesadores en los próximos años, no es un abuso decir que la capacidad de memoria continuará creciendo de manera impresionante. Memorias de mayor capacidad podrán ser utilizadas por programas con tablas de hash de mayor envergadura, las cuales mantendrán la información en forma permanente.

martes, 8 de junio de 2010

avances de hardware

Hardware Dedicado


El hardware de propósito especial para máquinas que jugasen ajedrez apareció por vez primera a mediados de los 70 iniciando un rápido proceso de sofisticación y mejoras. El primero de estos sistemas fue diseñado utilizando componentes que podrían ser clasificados como circuitos integrados de mediana escala. Cada chip estaba constituido por 10 a 100 componentes lógicas. Los circuitos más recientes han sido diseñados con tecnología VLSI. Uno de los ejemplos más populares fue el diseño de la computadora Deep Thought, la cual tanto en su generador de movimientos y función de evaluación poseían componentes a nivel de Hardware.

El suceso del hardware dedicado para ajedrez ha estimulado su utilización en otras problemas de Inteligencia Artificial dependientes de búsqueda. El primer hardware de ajedrez fue desarrollado en el año 1976. El objetivo de su diseño fue atacar la generación de movimientos, proceso que involucraba mayor cantidad de tiempo a los programas de ajedrez. La idea era entregar al hardware una posición y que éste retornase una lista con movimientos en la misma manera en la cual un multiplicador recibe dos argumentos y retorna un producto. Posterior a la generación de movimientos el trabajo realizado por un programa en la función de evaluación es el siguiente en mayor consumo de tiempo y un número importante de evaluadores a nivel de hardware fue construido.

En 1976 Joe Condon y Ken Thompson [42] desarrollaron un prototipo de generador de movimientos a nivel de hardware constituido por 25 chips para el programa de ajedrez BELLE. Este programa presentaba un nivel de búsqueda de 200 posiciones por segundo.

En 1978 un segundo prototipo de BELLE con un hardware constituido de 325 chips lograba analizar 5.000 posiciones por segundo. El hardware cumplía las funciones de generador de movimientos, función de evaluación y mantenedor de las tablas de transposición.

Dos años más tarde el tercer prototipo de BELL estaba constituido por 1.700 chips logrando un nivel de búsqueda de 120.000 posiciones por segundo. El generador de movimientos presentaba 64 circuitos transmisores y 64 circuitos receptores, cada uno correspondiente a las 64 casillas del tablero siendo capaz también de dar un orden al listado de movimientos generado (fundamental para el algoritmo de poda alfa-beta). La función de evaluación fue también diseñada con un conjunto de 64 circuitos. Utilizaba 8 ciclos para evaluar "clavadas, descubiertos, ataques, defensas y aspectos relativos al control de casillas". Una segunda parte del hardware de evaluación utilizaba otros 8 ciclos para analizar la estructura de peones. Este módulo detectaba peones pasados, bloqueados, retrasados, aislados y columnas abiertas o semi abiertas. También existía un evaluador estático de la posición, el cual consideraba el material como factor principal, si bien factores como resguardo del Rey también eran tomados en consideración. Como factor importante, el prototipo incluía una tabla de transposición de 128K. Esta version de BELLE obtuvo varios logros, entre otros el campeonato mundial de Linz en 1983 y el título de Maestro de la Federación de Ajedrez de Estados Unidos.

En 1985 un grupo de estudiantes de la Universidad de Carnegie Mellon bajo la supervisión de Hans Berliner desarrollaron un generador de movimientos y circuitería de propósito especial para evaluar posiciones a gran velocidad. Eveling y Palay desarrollaron la mayor parte del circuito. Su programa, HITECH logró realizar búsquedas de 200.000 posiciones por segundo convirtiéndose en el más fuerte de esos años. Una de las fortalezas de su diseño radicaba en que parámetros extras podían ser añadidos a la función de evaluación siendo computados en paralelo con los ya existentes lo cual no disminuía la velocidad de cálculo. En otras palabras, era factible añadir inteligencia a la función de evaluación sin pérdida de velocidad.

En 1986 un segundo grupo de Carnegie Mellon siguiendo las ideas de BELLE y en cierto grado de HITECH desarrollaron un programa de mayor fortaleza utilizando tecnología VLSI. El sistema "Deep Thought" desarrollado por Feng-hsiung Hsu junto con Thomas Anantharaman y Murray Campbell logró ganar los campeonatos ACM de 1987 y 1988 con una capacidad de búsqueda de 700.000 posiciones por segundo.

Luego en 1993 Feng-hsiung Hsu mejoró el desarrollo a nivel de Hardware de su programa creando una nueva versión aún más poderosa denominada "Deep Blue" la cual hasta el día de hoy es reconocida como la más fuerte máquina de ajedrez cuyo nivel de búsqueda llegó a la cifra de 2.000.000 de posiciones por segundo. La fortaleza en el diseño de hardware dedicado de Deep Blue se basó en el diseño de la circuitería de transistores, según relata el mismo Feng en [8].

lunes, 7 de junio de 2010

. Shell (intérprete de comandos):

El sistema operativo es el código que realiza las llamadas al sistema. Los editores, compiladores, ensambladores, enlazadores e intérpretes de comandos definitivamente no son parte del sistema operativo, aunque son importantes y útiles. El Shell es el intérprete de comandos, a pesar de no ser parte del sistema operativo, hace un uso intenso de muchas características del sistema operativo y por tanto sirve como un buen ejemplo de la forma en que se pueden utilizar las llamadas al sistema. También es la interfaz primaria entre un usuario situado frente a su terminal y el sistema operativo.

Cuando algún usuario entra al sistema, un "shell" se inicia. El shell tiene la terminal como entrada y como salida estándar. Este da inicio al teclear solicitud de entrada, carácter como un signo de pesos, el cual indica al usuario que el shell está esperando un comando. En MS-DOS normalmente aparece la letra de la unidad, seguida por dos puntos (:), el nombre del directorio en que se encuentra y por último el signo de "mayor que" (>). Esto es: C:\>

jueves, 3 de junio de 2010

avaces de linux
poco de comenzar el 2009, aparecen por doquier los balances y análisis del pasado año. Con respecto a lo que ha sucedido con Linux, que no es poco, se han destacado 8 grandes logros e innovaciones en un estudio hecho por Phoronix ( prestigioso portal dedicado a la tecnología y software libre). Aquí les dejamos la lista:


1- KDE 4: la avanzada interfaz gráfica para Linux, ha sufrido una gran renovación e incorporado efectos y características que, según parece, el propio Windows 7 de Microsoft está intentando imitar para tenerlas listas para su lanzamiento.
2-WINE 1.0: luego de 15 años de desarrollo, se presentó la primera versión estable de este programa que permite ejecutar aplicaciones para Windows dentro de Linux. Un logro impresionante.
3-Plugins Java y Adobe Flash para Linux 64bits: estos plugins son fundamentales para la navegación web (permiten ejecutar programas y animaciones en los exploradores web) y adaptados a la tecnología de 64bits, ayudarán a que se aproveche la potencia de los procesadores de 64bits tanto de AMD como de Intel mediante la instalación de Linux en esa plataforma.
4-GEM (Graphics Execution Manager): aunque muy novedoso aún, promete mejorar sustancialmente la forma en que se gestiona el sistema gráfico de los PC.
5-Drivers de Código Abierto: sin duda una de las mejores noticias, ya que grandes marcas como AMD (dueña también de ATI), VIA y otras importantes fabricantes de procesadores, placas y tarjetas de video, han decidido colaborar definitivamente con Linux creando controladores para sus dispositivos que pueden ser modificados y mejorados libremente. La única compañía que se resiste, por ahora, a liberar sus drivers es NVidia, aunque sí permite descargar y utilizar gratuitamente sus controladores para Linux, pero no se puede conocer su código.
6-NetworkManager 0.7: excelente mejora para la configuración de redes en Linux, pudiendo ahora acceder de forma casi automática a redes 3G (como ofrecen las compañías de celulares).
7-Gimp 2.6: la nueva versión del famoso programa libre de edición gráfica (el más directo competidor de Adobe Photoshop) confirma su continuo avance y crecimiento.
8-Virtual Box 2: el software gratuito de virtualización (permite correr otros sistemas operativos dentro de una ventana como si estuvieran en otra computadora) agrega cada vez más características, soportando ahora la aceleración 3D en las tarjetas de video.

Sin duda, hay muchísimos otros avances que merecerían estar en la lista, a nuestro juicio por ejemplo la aparición de computadoras de Escritorio y Notebooks con Linux pre instalado (de fábrica), o la aparición del formato ext4 para unidades de disco, etc...
En definitiva, Linux y el software libre crecen de forma constante y segura. Veremos que nos depara este 2009

martes, 1 de junio de 2010

avances en sistemas operativos

Nuestro gigante se dio cuenta que la “mina de oro” iría a pique si se dormía en los laureles por lo que a la vez que iba modificando y mejorando diversas partes de su sistema operativo iba creando una obligada relación de amistad con los fabricantes de hardware para que éste pudiera funcionar sin problemas en Windows y lo que es más importante, que cuando lo instaláramos en nuestro PC, lo hiciera prácticamente solo. Al usuario de a pié se le facilitó la tarea de comunicación con su ordenador. Los componentes del ordenador iban mejorando: los microprocesadores eran cada vez más rápidos y más pequeños físicamente y las velocidades se iban multiplicando. Atrás quedaron esas grandes moles a las que estábamos acostumbrados. Las memorias también fueron mejorando en rapidez y capacidad. Los discos duros dieron un salto olímpico, más capacidad, más velocidad. Y así, uno por uno, todos los componentes de nuestra caja mágica. Los sistemas operativos, al ir mejorando necesitan de estos avances, por lo que nos resulta difícil decir quién evoluciona antes, sí el software o el hardware. El uno se tiene que apoyar en el otro. Todos estos avances llegan a convertirse en un círculo vicioso. Los nuevos sistemas operativos necesitan unos requisitos mínimos cada vez mayores para poder funcionar correctamente con lo cual el avance tecnológico queda obsoleto en poco tiempo y.... vuelta a empezar. Nuestras necesidades informáticas también han ido cambiando en progresión ascendente. No podemos quedarnos atascados. Cada vez más se nos impone el ir actualizándonos. Cuando creemos que tenemos pleno dominio de nuestro ordenador, surgen nuevas necesidades y tenemos que actualizarnos. Los sistemas operativos van avanzando y nos adaptamos a ellos prácticamente sin problemas porque en nuestra pantalla los cambios son cada vez más atractivos, más persuasivos y más intuitivos. Cada vez resulta más fácil manejar nuestra máquina. Pasamos del Windows 95 al 98, al ME, al 2000, al XP y ahora al Vista sin darnos apenas cuenta. Cada uno de ellos está basado en su antecesor pero con la condición de que los requisitos para que funcionen correctamente sean mayores. En conclusión, somos nosotros los que vamos pidiendo un cambio de imagen y de nuevas posibilidades en nuestras pantallas. Nos han acostumbrado al cambio forzoso.