Publicidad

sábado, 31 de mayo de 2008

API (Application Programming Interface)

Hola a todos! checando los últimos apuntes que nos dió el maestro del tema "Modelo de memoria de un proceso", vi que las bibliotecas objeto son : "API" (de lenguaje y de S.O.) entonces investigué lo que son:

Una API (Application Programming Interface o Interfaz de Programación de Aplicaciones) es el conjunto de funciones y procedimientos (o métodos en programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción.

Una API representa una interfaz de comunicación entre componentes software. Se trata del conjunto de llamadas a ciertas bibliotecas que ofrecen acceso a ciertos servicios desde los procesos y representa un método para conseguir abstracción en la programación, generalmente (aunque no necesariamente) entre los niveles o capas inferiores y los superiores del software.

Uno de los principales propósitos de una API consiste en proporcionar un conjunto de funciones de uso general, por ejemplo, para dibujar ventanas o iconos en la pantalla. De esta forma, los programadores se benefician de las ventajas de la API haciendo uso de su funcionalidad, evitándose el trabajo de programar todo desde el principio. Las APIs asimismo son abstractas: el software que proporciona una cierta API generalmente es llamado la implementación de esa API.

Ejemplos de API:

-Microsoft WMI
-Microsoft Win32 API
-Microsoft Framework .NET
-OpenGL
-SUN J2EE APIs
-API for SCSI device interfacing
-The Carbon APIs for the Macintosh OS
-Common Object Request Broker Architecture (CORBA)
-Javascript-C de Mozilla Spidermonkey
-Symfony para PHP

Saludos! =)

Los hilos de ejecución

¡Que tal muy buenas noches!

Navegando por la Internet me encontre un documento acerca de los hilos de ejecucion, que me parecio muy bueno.

Un hilo se puede definir como la traza de ejecución de un proceso. Esto se refiere a la parte dinámica del proceso, la Ejecución del código representada por la pila del usuario y la parte del bloqueo de control del proceso que hace referencia al estado del procesador y del proceso, frente a la parte más estática, como es el resto del bloqueo de control del proceso y el código mismo.

La aparición de los hilos viene justificada desde dos pilares básicos:
1. Facilitar la sincronizacion entre procesos.
2. Mejorar la eficiencia en la alternancia de procesos en el procesador.


Aquí les dejo el link por si alguien esta interesado en seguir leyendo más acerca de este tema:

Hilos de Ejecución
hola, agradeco la nueva oportunidad de poder publicar y poder incrementa mis conocimientos acerca de la materia y multiples topicos.
Buscando como realizar el proyecto del "diccionario"(por que no recuerdo como se llama en realidad), encontre el listado de palabras por si a alguien le es necesario, este se distribuye bajo las condiciones especificadas en la Licencia Publica de GNU tal y como se publica por FSF.

esta es la liga:
http://www.datsi.fi.upm.es/~coes/espell_leame/espell_leame.html

¿Cuáles son Robots teleoperados?

Son los manejados por un operador humano a control remoto, también llamados telerrobots. Muchos de ellos son empleados en equipos de desactivación de bombas y para el manejo de químicos peligrosos. La NASA los define como "dispositivos robóticos con brazos manipuladores y censores con cierto grado de movilidad, controlados remotamente por un operador humano de manera directa o a través de una computadora."

¿Qué diferencia hay entre un autómata y un robot?

Un autómata carece de un procesador de memoria, o en términos mas simples, de cerebro; por eso solo puede repetir una serie limitada de movimientos programados, como si se tratara de un juguete de cuerda, que no tiene la capacidad de cambiar la secuencia. en los siglos XVIII y XIX se fabricaron maquinas capaces de ejecutar funciones que emulaban los movimientos humanos, como tocar el piano o escribir, pero no podían salir de su rutina establecida.

Los robots, en cambio, tienen un 'cerebro' electrónico que les permite analizar la situación que se les presenta antes de ejecutar una acción.


______
Muñoz Prado Nancy
Fuente: http://depi.itch.edu.mx/

MySQL con Java

JDBC es un API de Java para acceder a sistemas de bases de datos, y prácticamente a cualquier tipo de dato tabular. El API JDBC consiste de un conjunto de clases e interfaces que permiten a cualquier programa Java acceder a sistemas de bases de datos de forma homogénea. En otras palabras, con el API JDBC no es necesario escribir un programa para accesar a Sybase, otro programa para accesar a Oracle, y otro programa para accesar a MySQL; con esta API, se puede crear un sólo programa en Java que sea capaz de enviar sentencias SQL a la base de datos apropiada.

Al igual que ODBC, la aplicación de Java debe tener acceso a un controlador (driver) JDBC adecuado. Este controlador es el que implementa la funcionalidad de todas las clases de acceso a datos y proporciona la comunicación entre el API JDBC y la base de datos real. De manera muy simple, al usar JDBC se pueden hacer tres cosas:

1.- Establecer una conexión a una fuente de datos (ej. una base de datos).

2.- Mandar consultas y sentencias a la fuente de datos.

3.- Procesar los resultados.

Los distribuidores de bases de datos suministran los controladores que implementan el API JDBC y que permiten acceder a sus propias implementaciones de bases de datos. De esta forma JDBC proporciona a los programadores de Java una interfaz de alto nivel y les evita el tener que tratar con detalles de bajo nivel para acceder a bases de datos.

En el caso del manejador de bases de datos MySQL, Connector/J es el controlador JDBC oficial.


Este es el enlace para el controlador JDBC para MySQL, Connector/J

un poco mas acerca de....macros

Hola, bueno estuve buscando un poco mas acerca de las macros y me escontre con algo que a mi me parece interesante, espero que les sirva de algo.
Tipos de Macros
Macros automáticas
Existen varias macros previamente creadas para Excel para Windows. Están disponibles en el menú Herramientas opción Complementos. Al seleccionar esta opción aparece la siguiente caja de diálogo:


Con esta opción se especifican las macros que están disponibles y listas para usarse al iniciarse Excel para Windows. Se pueden instalar o eliminar las macros automáticas que vienen con Excel para Windows, o las que se hayan creado.
Aquí se muestran las Macros automáticas disponibles. Pueden seleccionarse o borrarse las casillas de verificación de las macros automáticas a fin de instalar o eliminar las mismas en Excel para Windows. Con el botón Examinar se muestra una caja de diálogo similar a la de Abrir archivo donde puede seleccionarse una macro automática para ser instalada en Excel para Windows.
Además de la macros grabadas se pueden crear códigos completos de macro instrucciones que son una serie de instrucciones que permiten automatizar procesos Sencillos, Avanzados y/o Complejos. Otra utilidad de este tipo de macros es que permite, ajustar una macro (como las que se crearon en la sección anterior) a las necesidades del trabajo que se necesite realizar. Haciendo el trabajo de 5 a 8 veces más rápido el trabajo cotidiano e inclusive en algunas ocasiones más rápido.
Algunos ejemplos de lo que podemos hacer con las macros son:
• Procesos de captura de información.
• Procesos de impresión.
• De análisis de datos.
• De manejo de base de datos.
• Elaboración de reportes.
• Simplificación de tareas.
• Tareas que son repetitivas, que hay que realizar varias veces el mismo procedimiento.
• Un sistema de información.
• Sistemas administrativos.
Están disponibles en el menú Herramientas opción Asistente.
Macros de Excel
Las macros se puede agrupar en dos categorías principalmente:
Macros de funciones
Macros de comandos
Macros de funciones
Si ejecuta frecuentemente una tarea en Microsoft Excel, puede automatizarla mediante una macro. Una macro consiste en una serie de comandos y funciones que se almacenan en un módulo de Visual Basic y que puede ejecutarse siempre
que sea necesario ejecutar la tarea. Una macro se graba igual que se graba música en un casete. A continuación, se ejecuta la macro para que repita los comandos.
Con el Editor de Visual Basic, se pueden modificar macros, copiar macros de un módulo en otro, copiar macros entre diferentes libros, cambiar de nombre a los módulos que almacenan las macros o cambiar de nombre a las macros.
Macros de comandos
La creación de estas macro funciones consiste en poner una serie de ARGUMENTOS, en las cuales podemos ir poniendo los datos que lleva una función normal de Excel para Windows y al final le indicamos que operaciones hacer con estos ARGUMENTOS y de esta manera se optimiza el uso de varias fórmulas para llegar a un resultado. Es decir la creación de una función simplifica el uso de varias fórmulas, dejándolas como una sola.
Dentro de la codificación de macros de Excel para Windows se tiene dos grupos de códigos.
Visual Basic
Macros de Excel
Macros desde Visual Basic


Es un lenguaje (Codificación), que se puede utilizar, como lenguaje común entre los diferentes programas que se tiene en el Microsoft Office, cabe mencionar que
esta basado en un Lenguaje llamado Visual Basic, pero no tiene mucho que ver con él.
La macros de Visual Basic están basadas en módulos, que por tal hecho se vuelven más complicadas, teniendo como ventaja que son compatibles dentro de varias aplicaciones, de esta manera se tendría un lenguaje común de macros entre varios programas, con lo cual se logra que se pierda menos tiempo en realizar una macro en alguno de estos programas. Por esta razón es que las macros de Visual Basic es visto en un curso en particular.


viernes, 30 de mayo de 2008

Ajedrez y la IA

Que tal, aquí les dejo un material que habla acerca del ajedrez y la inteligencia artificial que se me hizo interesante, espero que lo lean, saludos a todos.

http://skynet64.files.wordpress.com/2008/05/ia-y-ajedrez.pdf

Los Ejecutables.

Hola a todos.
Puesto que el tema de Legos y Python lo veo muy saturado, me ubicare en el ultimo tema de clase sobre generación de archivos ejecutables, se me ocurrió hacer mención de la estructura y generación de los mismo. A continuación un resumen sobre archivos ejecutables:

Un código o archivo ejecutable corresponde a las unidades de programas, donde la computadora puede realizar las instrucciones compiladas mediante el compilador y el enlazador de librerías.

Usualmente la generación de un archivo ejecutable se da a partir de uno o más archivos de código fuente y está dividida en 2 fases, la primera de compilación, en donde se genera el código máquina u objeto y luego la etapa de montaje o linkedition en donde se agrupan los archivos objeto y se resuelven las referencias entre módulos formando el ejecutable.
Además de las referencias entre módulos pueden existir referencias a otros módulos denominados bibliotecas. Una biblioteca es un conjunto de módulos referenciados entre sí.

Existen dos formas de referenciar a una biblioteca, una denominada estática, en donde al hacer la linkedition o montaje el código de la biblioteca pasa a formar parte del archivo ejecutable y una denominada dinámica en donde el montaje de la biblioteca se realiza en tiempo de ejecución.
En éste último caso, durante el montaje no se incluye el código de la biblioteca en el ejecutable sino que se referencia al nombre de la misma. De ésta forma se reduce el tamaño final del archivo ejecutable y también se hace mucho más simple su mantenimiento.

Un archivo ejecutable desde el punto de vista lógico esta estructurado en una cabecera (aveces dividida en partes) que tiene información de control y un conjunto de secciones, como se muestra a continuación:



1) Cabecera primaria. Contiene la siguiente información:

* El número mágico. Permite identificar al núcleo el tipo de archivo ejecutable.
* El número de secciones que hay en el archivo
* La dirección virtual de inicio, imprescindible para comenzar con la ejecución del proceso.

2) Cabeceras de las secciones. Describen cada una de las secciones del archivo. Especifican el tipo y el tamaño de la sección, además de la dirección virtual que se le debe asignar a la región cuando el proceso se ejecute en el sistema, y otras informaciones.

3) Secciones. Contienen los "datos", que son cargados inicialmente en el espacio de direcciones del proceso, típicamente, el código (también denominado texto), los datos inicializados (variables estáticas y externas del programa conocidas en el momento de la compilación) y los datos no inicializados (también denominado bss).

4) Otras informaciones. Tales como la tabla de símbolos y otros "datos".

Y bueno esto es todo, espero que les haya parecido interesante o si no que les sirva para distraerse un poco jejeje.
Saludos...
García Carrasco José Florentino

MACROS EN ENSAMBLADOR


hola a todos pues me encontre este pequeño ejemplo de una macro en ensamblador para recordar un poco lo que se vio en arquitectura de computaoras II, bueno para aquellos que hicieron macros porque en lo particular no las vimos saludos que tengan bonito dia.

Definición de una macro
Una macro es un grupo de instrucciones repetitivas en un programa que se codifican solo una vez y pueden utilizarse cuantas veces sea necesario.
La principal diferencia entre una macro y un procedimiento es que en la macro se hace posible el paso de parámetros y en el procedimiento no (esto es aplicable solo para el MASM, hay otros lenguajes de Programación que si lo permiten). Al momento de ejecutarse la macro cada parámetro es sustituido por el nombre o valor especificado al momento de llamarla.
Podemos decir entonces que un procedimiento es una extensión de un determinado programa, mientras que la macro es un módulo con funciones específicas que puede ser utilizado por diferentes programas.
Otra diferencia entre una macro y un procedimiento es la forma de llamar a cada uno, para llamar a un procedimiento se requiere el uso de una directiva, en cambio la llamada a las macros se realiza como si se tratara de una instrucción del ensamblador.

Sintaxis de una macro
Las partes que componen a una macro son:

  • Declaración de la macro
  • código de la macro
  • Directiva de terminación de la macro

La declaración de la macro se lleva a cabo de la siguiente forma:
NombreMacro MACRO [parametro1, parametro2...]
Aunque se tiene la funcionalidad de los parametros es posible crear una macro que no los necesite.
La directiva de terminación de la macro es: ENDM

Un ejemplo de macro, para colocar el cursor en alguna posición determinada de la pantalla es:

Posicion MACRO Fila, Columna

PUSH AX

PUSH BX

PUSH DX

MOV AH, 02H

MOV DH, Fila

MOV DL, Columna

MOV BH, 0

INT 10H

POP DX

POP BX

POP AX

ENDM

Para utilizar una macro solo es necesario llamarla por su nombre, como si fuera una instrucción mas del ensamblador, ya no son necesarias las directivas como en el caso de los procedimientos.

  • Ejemplo: Posicion 8, 6

Bibliotecas de macros
Una de las facilidades que ofrece el uso de las macros es la creación de bibliotecas, las cuales son grupos de macros que pueden ser incluidas en un programa desde u archivo diferente.

La creación de estas bibliotecas es muy sencilla, unicamente tenemos que escribir un archivo con todas las macros que se necesitarán y guardarlo como archivo de texto.

Para llamar a estas macros solo es necesario utilizar la instrucción Include NombreDelArchivo, en la parte de nuestro programa donde escribiriamos normalmente las macros, esto es, al principio de nuestro programa (antes de la declaración del modelo de memoria).
Suponiendo que se guardó el archivo de las macros con el nombre de MACROS.TXT la instrucción Include se utilizaría de la siguiente forma:

;Inicio del programa

Include MACROS.TXT

.MODEL SMALL

.DATA

;Aqui van los datos

.CODE

Inicio:

;Aqui se inserta el código del programa

.STACK

;Se define la pila

End Inicio

;Termina nuestro programa

jueves, 29 de mayo de 2008

Lego

Hola a todos, de igual forma me parece que las publicaciones acerca de los robots son de un interés muy atractivo así que yo me encontré con una presentación de legos y sus principales partes, también hace mención de su forma de utilizarlo, en este caso en su programación, también les pongo la pagina de estos artefactos tan atractivos. La presentación la pueden bajar del blog de mi compañero Aníbal, aquí les dejo en link. Espero les sirva para poder tener más conocimiento sobre estos robots tan interesantes.

http://skynet64.wordpress.com/files/2008/05/robotica.ppt
http://mindstorms.lego.com/eng/Japan_Osaka_Destination/default.aspx


Saludos
José de Jesús Gabriel Hoyos

librería dinámica (DLL) en un programa C++

Hola, pues aqui les dejo informacion acerca de librerias estaticas y dinamicas, espero que les sirva.

*** Utilización de librerías estáticas. Es el método tradicional. Son las clásicas colecciones de ficheros objeto .obj (compilados), que en el momento de la construcción de la aplicación, son incluidos por el "Linker" en el propio ejecutable.
*** Utilización de librerías dinámicas. En esta modalidad, los recursos ocupan un fichero independiente del ejecutable, que puede ser utilizado por cualquier aplicación que lo necesite. En algún momento, durante la carga del ejecutable, o posteriormente, en run-time, el ejecutable deberá integrar este bloque de código en su propio espacio, de forma que pueda acceder a los recursos contenidos en él.
Las DLLs son trozos de código capaz de realizar determinadas operaciones, cuya "funcionalidad" puede ser utilizada desde otros ejecutables, y como puede verse, ocupan una posición intermedia (diríamos que una solución de compromiso) entre las posiciones extremas antes citadas. Con las librerías estáticas comparten la característica de que es un trozo de código que acaba siendo incluido en el espacio del ejecutable que las utiliza.
la DLL no es cargada en el espacio de memoria del ejecutable, sino que tiene su propio espacio. Lo que ocurre es que este espacio es accesible desde el ejecutable, y está "mapeado" en él. Es decir, en el ejecutable existe un cierto "mapa" de cómo está distribuida esa zona de memoria.
En realidad lo que caracteriza a una DLL es la forma en que es traída a ejecución; no directamente desde el shell del Sistema como un ejecutable .exe normal, sino desde otro ejecutable (que puede ser incluso otra DLL), de forma parecida a como se invoca una función (una especie de función externa al programa).
Cargar en memoria el contenido de la DLL utilizando un espacio accesible desde el ejecutable que la utiliza. Esto puede efectuarse de dos formas:
1.- En el mismo momento de la carga inicial del programa: las DLLs requeridas por el ejecutable .EXE son cargadas, y sus objetos inicializados por el módulo de inicio como cualquier otro módulo del programa. Es decir, que serán inicializadas antes que comience la ejecución de main. Cuando la aplicación es cargada por el SO, este mira en el fichero .EXE para ver que DLLs se necesitan, y se encarga de cargarlas también. Enlazado implícito.
2.- En el momento en que se necesite alguno de sus recursos (en runtime): la librería es cargada en runtime cuando la aplicación lo necesita. Esta forma de uso se denomina enlazado dinámico o explícito (librería dinámica enlazada dinámicamente). Para realizar la carga, el programador dispone de algunas funciones de la API de Windows que se encargan de realizar la tarea cuando él lo decide (de ahí que se denomine enlazado explícito).

Si en una carga implícita el Sistema no encuentra el fichero .DLL en ninguno de los sitios anteriores, se muestra un mensaje de error y la aplicación no puede ejecutarse.
En caso de que fracase la carga del fichero durante la carga explícita, si el Sistema devuelve un error, es potestad del programador decidir que hacer.

ASIMO : robot !!!

Hola compañeros, pues yo me salgo un poquito de la temática que están tocando, pero me comentaron del tema y a mi parecer es interesante es un articulo que fue publicado en un diario el pasado lunes 26 de este mes, se trata del robot ASIMO y las ultimas actividades que ha desempeñado tal vez ya han escuchado de el pero de igual forma sigue siendo interesante lo que se genera al respecto.
Como les mencione, se trata de un robot diseñado pro Honda, no es tan reciente tiene sus orígenes en 1986, con el E0 un bípedo rudimentario que requería 5 segundos para completar un paso y carecía de aspecto humanoide, finalmente un robot escapaz de correr, subir escaleras, reconocer las caras de sus propietarios e, incluso, realizar alguna tarea sencillas, puede distinguir distintos tipos de bebidas trabajar de forma individualizada o en colaboración con otros ASIMO’s(Advanced Step in Innovative Mobility"- paso avanzado en movilidad innovadora), así como ser responsable de su propio reabastecimiento de energía, gracias a unas bahías para recargar las baterías.

Su ultima faceta fue como director de orquesta condujo a la orquesta de Detroit, en Estados Unidos, como lo hizo memorizando e imitando las acciones del conductor de la orquesta, las cuales aprendió a través de las imágenes de un vídeo que había sido grabado en una de las prácticas.

Hola a todo el mundo", dijo Asimo cuando ingresó al estrado, "es emocionante trabajar con la Orquesta Sinfónica de Detroit ante este magnífico auditorio".
Realizo movimientos muy humanos expreso el director que participo con el…”
Conociendo a Asimo..!!!

ASIMO, acrónimo de Advanced Step in Innovative Mobility (Paso Avanzado en Movilidad Innovadora), es un robot humanoide capaz de caminar, correr, subir escaleras, responder a sencillos comandos de voz, reconocer las caras de sus propietarios e incluso realizar algunas tareas específicas. Su nombre se deriva del apellido de Isaac Asimov, gran escritor de ciencia ficción reconocido principalmente por su trilogía 'Fundación'.
ASIMO puede caminar a 2.7 Km/h (1.6 Km/h en caso de llevar un objeto de 1 Kg) y correr a 6 Km/h en línea recta y 5 Km/h en círculos.

Las medidas de ASIMO están pensadas para adaptarse al entorno humano: 1.30 cm de altura, 450 mm de ancho de hombros, 440 mm de profundo y 54 kg de peso.
El robot, "está dotado de tres sensores" señalan sus creadores. El primero analiza su posición respecto al suelo; el segundo es el sensor visual, que observa los contornos para distinguir a personas, y objetos y el tercero es el llamado ultrasónico, que detecta obstáculos a tres metros, incluidos los cristales que el sensor visual no es capaz de entender.

Si quieren checar el articulo solo den clic en el titulo y como lo menciona aquí pueden ver el video:
http://youtube.com/watch?v=ECV7eo0Tb8U&feature=related

Y por si eso no bastara, les dejo algunos link en donde pueden ver videos de ASIMO:
http://video.google.com/videoplay?docid=-8045655366932059216&q=&hl=es
http://video.google.com/videoplay?docid=6141033925422744332&q=&hl=es
http://video.google.com/videoplay?docid=1146024812008321787&q=&hl=es
http://video.google.com/videoplay?docid=-9071097051005209009&q=&hl=es
http://video.google.com/videoplay?docid=1210345008392050115

pero también tiene pagina y toda la onda:
http://asimo.honda.com
Saludos a todos...
____________x_a

Programación de robots lego

Buenas tardes a todos, buscando en internet sobre los robots lego, me encontré este archivo PDF, que habla sobre la programación de robots lego Mindstorms en visual Basic para la versión 6, te va explicando paso a paso y muy detallado, esta muy interesante. Les dejo la liga a ver que les parece, saludos.

http://www.cursolego.elo.utfsm.cl/documentos/apuntes/Visual_Basic-Programacion_Robots_Lego-Koldo_Olaskoaga%5BES%5D.pdf

Toolkits gráficos para Python


hola a todos.

Aqui les dejo informacion hacerca de algunas librerias que son necesarias para la creación de graficos en python ya que existen distintas librerías con las que desarrollar aplicaciones con interfaces gráficas de usuario (GUI) en Python. Cada toolkit tiene ventajas y desventajas, la mayoría son multiplataforma (lo cual es un punto notable a favor).

http://users.servicios.retecal.es/tjavier/python/Toolkits_graficos_para_Python.html

Tecnicismos informaticos maliciosos

Tecnicismos informaticos maliciosos
Escrito por garfiolin

Mucha gente no conoce o tal vez confunde algunos términos utilizados para la informática. Por ejemplo se denomina como “hacker” a la persona que a través de sus conocimientos informáticos intenta mejorar los sistemas y protecciones informaticas y aunque se confunde mucho con la palabra “craker”, su sentido es totalmente opuesto un craker sólo usa sus conocimientos informáticos para provocar daños y romper la seguridad informática para su propio beneficio personal. Cuando nos referimos al “spam” en términos informáticos, estamos hablando de cualquier cosa que nos llegue a través de la red sin que la hayamos solicitado (correo electrónico, pop-ups o ventanas emergentes, mensajes de texto). Si hablamos de “spyware”, se trata de un programa malicioso que roba información de tu ordenador, generalmente a través de internet, para que otras terceras personas lo utilicen para lucrarse o para hacer cualquier daño personal. La palabra “dialer” aunque es menos conocida se refiere a otro tipo de programa malicioso que utiliza nuestra conexión telefónica para llamar a números de tarificación adicional como los que empiezan por 806, 805, con el respectivo incremento de la factura telefónica para el usuario que es ajeno a esta practica. Bueno he hecho un pequeño resumen de algunos tecnicismos que a todos nos interesa conocer.
Saludos

fuente: http://www.ordenadores.com/concurso/949/tecnicismos-informaticos-maliciosos/

atte
jose alberto zubizarreta alarcon

Diccionarios

hola a todos esto es para todos aquellos que su proyecto final sea el diccionario aqui puedes descargar varios programas diccionarios para que se puedan dar una idea nadamas no se copien ehhh saludos a todos

http://www.softonic.com/s/diccionario-significados

atte
jose alberto zubizarreta alarcon

miércoles, 28 de mayo de 2008

Bruce Eckel y Python

Buscando en internet un buen libro de programación para Python, me encontré con un blog en el que se mostraba la opinión de Bruce Eckel (autor del libro "Think in JAVA") hacia Python, así que aquí se las dejo para que la lean, haber que opinan:

"I can only say that I like it and use it for OO. Python was designed from the ground up as an OO language, and it’s OO support has been improving in recent releases, including support for private fields and static methods. Also, you can do a lot more OO stuff with Python than with languages like C++ and Java, because Python has metaclasses. Finally, the “latent” or “weak” typing mechanism in Python makes OO programs much simpler to write, which means you can be more productive".

¡Saludos!

Fuente: http://pjorge.com/2003/07/09/bruce-eckel-y-python/

Link roto

Para que puedan ver la página hagan clic en el título del post: News :-)

Hilos en Python

Qué tal? les dejo un pequeño pdf sobre hilos en python.
Me pareció interesante y bastante ilustrativo por los problemas que aborda al final.
Explica acerca de hilos de ejecución y sobre los módulos que los soportan en python: thread y threading.
A mi me sirvió para el proyecto del reproductor. Espero que les sea de utilidad.
Hasta pronto.

Este es el link:http://www.badongo.com/file/9620896

martes, 27 de mayo de 2008

News :-)

http://www.computerworld.com/action/article.do?command=viewArticleBasic&taxonomyName=software_development&articleId=9085698&taxonomyId=63&intsrc=kc_top

Te interesa aprender ...

Para que se suscriban a la palabra del día "Word of the Day" por email, envíen un mensaje en blanco a la dirección: join-wordoftheday@lists.lexico.com

Todos los días les llegará una palabra en inglés con su significado.

Sockets en Python

Buenas tardes a todos los que leen este blog, bueno pues por ahí me encontré un pequeño tutorial sobre programación de sockets en python, trae ejemplos de programas con sockets y la explicación de cada uno de ellos.

Aquí una definición de socket.

Un socket (enchufe), es un método para la comunicación entre un programa del cliente y un programa del servidor en una red. Un socket se define como el punto final en una conexión. Los sockets se crean y se utilizan con un sistema de peticiones o de llamadas de función a veces llamados interfaz de programación de aplicación de sockets (API, application programming interface).

Un socket es también una dirección de Internet, combinando una dirección IP (la dirección numérica única de cuatro partes que identifica a un ordenador particular en Internet) y un número de puerto (el número que identifica una aplicación de Internet particular, como FTP, Gopher, o WWW).

Un socket nos permite comunicarnos con otras computadoras, de esa manera la información puede viajar libremente por todos lados.

El tutorial contiene lo siguiente:

  • Estructura de un socket.
  • Algunos elementos del socket.
  • Programacion orientada a sockets.
  • Hola mundo del socket.
  • Un hola mundo real.
  • Un pequeño chat.
  • Sockets con clase.
  • Base de cliente telnet.

Ahorita como estamos empezando a conocer python y sus diversas herramientas a lo mejor esto de los sockets no nos interese mucho pero más adelante si.

Para los que ya han usado sockets o sepan del tema y para todos en general espero les sea de utilidad y despierte su interés por este tema.

Aquí esta la liga del tutorial

http://elnanni.googlepages.com/dos_sock.html 

Programando con wxpython

Hola Chavos,me encontre un documento que me está sirviendo para crear interfaz en python ,espero que a ustedes les sea de utilidad.

En wxPython todas las clases están definidas dentro del módulo wx, que debe importarse en toda aplicación
nPara crear una aplicación en wxPython hay que crear una clase que derive de wx.App y sobreescriba el método App.OnInit
nDevuelve True o False, indicando si el procesamiento debería continuar o no
nApp.SetTopWindow sirve para indicar cuál será la ventana principal.

Está es la liga para acceder al documento:

http://paginaspersonales.deusto.es/dipina/python/cursowxpython.ppt

lunes, 26 de mayo de 2008

Boa Constructor

wxGlade es un diseñador GUI escrito en Python con la popular herramienta GUI wxPython, que le ayuda a crear interfaces de usuario wxWidgets / wxPython. En el momento en que puede generar codigo Python, C + +, Perl, Lisp y XRC (Recursos XML de wxWidgets)

No es (y nunca será) un uso ofrecido completo IDE, sino simplemente un "diseñador": el código generado no hace nada aparte de mostrar los widgets creados.

Sin embargo, Boa Constructor es una plataforma cruzada IDE de Python y wxPython GUI Builder. Ofrece la creación y manipulacion de marcos visuales(ventanas), un objeto inspector, muchos puntos de vista sobre la fuente, la herencia jerarquíca, un depurador avanzado e integrado de ayuda.

Para el que tenga curiosidad acerca de este completo IDE le dejo el link de la pagina oficial donde pueden descargarlo. Requiere tener intalado Python 2.4 o superior y wxPhyton 2.1 o superior

http://boa-constructor.sourceforge.net/

powered by:Arnold Giuseppe Domínguez Eusebio
The forze is with you

Tutorial de construcción de interfaces gráficas de usuario con Python y Qt.

Hola a todos, me encontre un documento, que está 2-3, es para crear interfaces gráficas con la ayuda de la aplicación PyQt.
Contiene algunos ejemplos de unas interfaces sencillas.
Espero que les sirva un poquito.
Saludos

Creación de extensiones en OpenOffice.org

http://archivosps.wordpress.com/2008/05/26/presentacion/

imprimir word desde macro de excel

hola a todos esto me lo encontre en otro foro de programación y se me hize interesante es sobre como imprimir un documento de word en una macro de excel aqui les dejo el codigo saludos

usuario: Hola a todos, quisiera que alguien me dijera como podria imprimir un documento de word desde una macro de excel. He visto en el tablon una respuesta a abrir word, pero no se como hacer imprimir el archivo abierto. Gracias de antemano. Un saludo

Experto: Con el método PrintOut puedes hacer esto, aquí va un ejemplo :
Sub imprime()
Dim WordApp As Object Set WordApp = CreateObject("Word.Application")

'Nombre del archivo que se abrirá WordApp.Documents.Open "C:Documents and SettingsprodilloMis documentosPaul,s Mail.doc"
WordApp.Visible = True
'Imprimir el archivo
WordApp.PrintOut

WordApp.Quit Set WordApp = Nothing
End Sub

Espero que te sea de utilidad, saludos. (Si necesitas otras cosas acerca de Macros visita mi página en construcción www.excelworker.virtuabyte.cl)

fuente:http://www.todoexpertos.com/categorias/tecnologia-e-internet/software-y-aplicaciones/microsoft-excel/respuestas/961529/imprimir-word-desde-macro-de-excel

domingo, 25 de mayo de 2008

Macros en Excel

Hola a todos, encontré un tutorial de Macros en Excel, aquí les dejo una introducción y el link para que lo vean completo ... espero les sirva!

http://observatorio.cnice.mec.es/modules.php?op=modload&name=News&file=article&sid=489


INTRODUCCION


Cuando se graba una macro, Excel guarda la información sobre cada paso que se ejecuta. Si se comete algún error mientras se graba la macro, también se graban las correcciones que se realice.

Antes de empezar a grabar una macro, es conveniente practicar las operaciones que se vayan a realizar, por lo menos, un par de veces.

Si se comete algún error durante la grabación, no hay problema, porque se puede borrar la macro e intentarlo de nuevo.

Excel almacena cada macro en un espacio llamado módulo que queda adjunto al libro con el que estás trabajando.

sábado, 24 de mayo de 2008

Breve resumen...

¡Hola a todos! Muy buenas noches pues yo hice un breve resumen de los conceptos que hasta hoy hemos visto en este segundo parcial, espero que les sirva y lo aprovechen:
Depurador: Un depurador es un programa que ejecuta otros programas de tal manera en la que podrá ver cada paso de la ejecución del programa. Un depurador le permitirá detener el programa mientras esté en funcionamiento, para cambiar el programa o las variables del programa, y empezar a correr de nuevo el programa.
Macro: Una macro son un conjunto de instrucciones que sirven para automatizar procesos. Refiriéndonos a excel, supongamos que realizamos frecuentemente la acción de seleccionar un rango para aplicarle negrita, cambio de fuente y centrado. En lugar de hacer estas acciones manualmente, se puede elaborar una macro e invocarla para que ejecute los tres procesos automáticamente.
Python es un lenguaje de scripting independiente de plataforma y orientado a objetos, preparado para realizar cualquier tipo de programa, desde aplicaciones Windows a servidores de red o incluso, páginas web. Es un lenguaje interpretado, lo que significa que no se necesita compilar el código fuente para poder ejecutarlo, lo que ofrece ventajas como la rapidez de desarrollo e inconvenientes como una menor velocidad. Además actualmente existen varias versiones de python disponibles para difrentes sistemas operativos.

Pues esto es lo que hemos estado viendo estos últimos días, pero si creen que faltan algunas definiciones pues me dicen y yo voy aumentando mas el resumen.

IA - Sistemas Expertos

Hola, buenas tardes a todos, leí sobres este tema en una revista y me pareció interesante, así que busque un poco de información y aquí esta lo que encontré.
Primero que nada, algunas definiciones de Inteligencia Artificial (IA):
  • La inteligencia artificial estudia cómo lograr que las máquinas realicen tareas que, por el momento, son realizadas mejor por los seres humanos.” [Rich y Knight 1994]
  • ...la parte de la Informática que trata de Sistemas computarizados inteligentes, es decir, Sistemas que muestran las características que pueden asociarse a la inteligencia en lo que se refiere al comportamiento humano: comprensión del lenguaje, aprendizaje, razonamiento, resolución de problemas, etc.” [Amat 1989]
  • El ofrecimiento por parte de la máquina de un comportamiento parecido al humano que es capaz de acomodarse o ajustarse a una disposición o situación real o ficticia y poder escoger de acuerdo a una serie de particularidades para dar una respuesta rápida y los más acertada posible. [Costa 1995]


Sistemas Expertos

¿Qué es un sistema experto?

Los Sistemas Expertos, rama de la Inteligencia Artificial, son sistemas informáticos que simulan el proceso de aprendizaje, de memorización, de razonamiento, de comunicación y de acción en consecuencia de un experto humano en cualquier rama de la ciencia.

Estas características le permiten almacenar datos y conocimiento, sacar conclusiones lógicas, tomar decisiones, aprender de la experiencia y los datos existentes, comunicarse con expertos humanos, explicar el por qué de las decisiones tomadas y realizar acciones como consecuencia de todo lo anterior.

Técnicamente un sistema experto, contiene una base de conocimientos que incluye la experiencia acumulada de expertos humanos y un conjunto de reglas para aplicar ésta base de conocimientos en una situación particular que se le indica al programa. Cada vez el sistema se mejora con adiciones a la base de conocimientos o al conjunto de reglas.


CARACTERÍSTICAS

  • CAPACIDAD DE INFERENCIA DEDUCTIVA: esto significa que los agentes no solo deben recuperar la información almacenada en la base de datos, sino hacer deducciones usando información para hacer deducciones que produzcan nuevas informaciones para la base de datos.
  • CRECIMIENTO DINÁMICO: porque los datos y las reglas están sujetas a constante revisión, es decir, es fácil devorar o modificar los datos.
  • COLECCIÓN INTEGRADA DE CONOCIMIENTO: los agentes que constituyen el sistema pueden representar los juicios de muchos expertos en varias partes del globo. Estas experiencias son guardadas en un solo lugar por lo que es posible la utilización luego por los expertos o no expertos también. Sin embargo, la real utilidad de ese sistema es que permite un constante intercambio de datos y juicios de lideres expertos, y esto permite la formación de nuevas reglas e ideas acerca del tema.

CAPACIDADES DE LOS SISTEMAS EXPERTOS

Los siguientes expertos se aplican por norma general en problemas que implican un procedimiento basado en el conocimiento. Un procedimiento de solución basado en el conocimiento comprende las siguientes capacidades.

· Utilización de normas o estructuras que contengan conocimiento y experiencias de expertos especializados.
· Deducción lógica de conclusiones.
· Capaz de interpretar datas ambiguos.
· Manipulación de conocimientos afectados por valores de probabilidad

FUNCIÓN DE SISTEMAS EXPERTOS

Su función es la de aportar soluciones a problemas, como si de humanos se tratara, es decir, capaz de mostrar soluciones inteligentes. Es posible gracias a que al sistema lo crean con expertos (humanos), que intentas estructurar y formalizar conocimientos poniéndolos a disposición del sistema, para que este pueda resolver una función dentro del ámbito del problemas, de igual forma que lo hubiera hecho un experto acceder a los conocimientos adquiridos por experiencia es lo mas difícil, ya que los expertos, al igual que otras personas, apenas lo reconocen como tales. Son buscados con mucho esfuerzo y cuidado siendo descubiertos de uno en uno, poco a poco.

SISTEMAS EXPERTOS UTILIZADOS EN EL MUNDO

Aquí una lista de los sistemas expertos más utilizados:

DENDRAL: Es capaz de calcular o descubrir hechos relativos a las estructuras moleculares a partir de unos datos químicos sin elaborar.

MYCIN: el mas famoso de todos, diagnostica infecciones en la sangre y meningitis y además sugiere el tratamiento que se debe seguir en cada caso.

PUFF: el hermano menor de MYCIN, que diagnostica y trata enfermedades del pulmón.

MOLGENO: ayuda a los biólogos que trabajan en el campo del DNA y la ingeniería genética.

EURISKO: sistema experto capaz de aprender a medida que funciona, que crea circuitos micro eléctricos tridimensionales

GENESIS: Permite a los científicos planificar y simular experimentos en el campo de la unión de genes

TWIRL: simulaciones de guerras completas y guía de mejores acciones posibles a realizar, en casi todas las situaciones.

RI: programa utilizado para el descubrimiento de yacimientos petrolíferos bajo aguas marinas.

¿Por qué utilizar un Sistema Experto?

  • Con la ayuda de un Sistema Experto, personas con poca experiencia pueden resolver problemas que requieren un "conocimiento formal especializado".
  • Los Sistemas Expertos pueden obtener conclusiones y resolver problemas de forma más rápida que los expertos humanos.
  • Los Sistemas Expertos razonan pero en base a un conocimiento adquirido y no tienen sitio para la subjetividad.
  • Se ha comprobado que los Sistemas Expertos tienen al menos, la misma competencia que un especialista humano.
  • El uso de Sistemas Expertos es especialmente recomendado en las siguientes situaciones:
  1. Cuando los expertos humanos en una determinada materia son escasos.
  2. En situaciones complejas, donde la subjetividad humana puede llevar a conclusiones erróneas.
  3. Cuando es muy elevado el volumen de datos que ha de considerarse para obtener una conclusión.

Fuentes: http://scimago.ugr.es/file.php?file=/1/Documents/IB-01.pdf
http://www.informaticaintegral.net/sisexp.html
http://personales.com/cuba/cardenas/internet/sistexp.html

Ingeniería Inversa/Desensambladores

Se denomina ingeniería inversa del software a la actividad que se ocupa de descubrir cómo funciona un programa, función o característica de cuyo código fuente no se dispone, hasta el punto de poder modificar ese código.La ingeniería inversa se trata de tomar algo (un dispositivo mecánico o electrónico, un software de computadora, etc.) para analizar su funcionamiento en detalle, generalmente para intentar crear un dispositivo o programa que haga la misma o similar tarea sin copiar la original.


Usos de la ingeniería inversa

  • La ingeniería inversa suele ser empleada por empresas, para analizar si el producto de su competencia infringe patentes de sus propios productos
  • Muchas veces, la ingeniería inversa es utilizada en el área militar para investigar (y copiar) las tecnologías de otras naciones, sin obtener planos ni detalles de su construcción o desarrollo.
  • En el software y en el hardware, la ingeniería inversa, muchas veces es empleada para desarrollar productos que sean compatibles con otros productos, sin conocer detalles de desarrollo de éstos últimos. En otras palabras, quien desarrolla los nuevos productos, no puede acceder a los detalles de fabricación de los productos de los que intenta ser compatibles
  • La ingeniería inversa también es empleada para comprobar la seguridad de un producto, generar Keygens de aplicaciones, reparación de productos, etc.

Ingeniería inversa de software

Esencialmente, un desensamblador es exáctamente lo contrario de un ensamblador. Tal como un ensamblador convierte código escrito en ensamblador en código máquina binario, un desensamblador invierte el proceso e intenta recrear el código en ensamblador partiendo del código máquina binario.
Dado que la mayoría de los lenguages ensambldores tienen una correspondencia uno a uno con instrucciones máquina subyacentes, el proceso de desensamblado es relativamente sencillo, y un desensamblador básico puede a menudo ser implementado simplemente leyendo bytes, y efectuando una búsqueda en una tabla. Por supuesto, desensamblar tiene sus propios problemas y escollos, que serán cubiertos mas adelante en este capítulo.
Muchos desensambladores tienen la opción de producir instrucciones en lenguage ensamblador usando la sintaxis de Intel, AT&T, o (ocasionalmente) HLA.

Desensambladores para Linux

  • Bastard Disassembler: Bastard es un potente y programable desensamblador para Linux y FreeBSD.
  • ciasdis:
    El nombre oficiql de ciasdis es computer_intelligence_assembler_disassembler. Esta herramienta basada en Forth permite construir conocimiento sobre un cuerpo de código de manera interactiva e incremental. Es único en que todo el código desensamblado puede ser re-ensamblado exactamente al mismo código. Soporta 8080, 6809, 8086, 80386, Pentium I y DEC Alpha. Facilidades de scripting ayudan en al análisis de cabeceras de fichero Elf y MSDOS y hacen esta herramienta extensible. ciadsis para Pentium I está disponible como imagen binaria, las otras están en código fuente, cargables sobre lina Forth, disponible del mismo sitio.
  • objdump :
    viene de manera estandar, y es tipicamente usada para inspección genérica de ficheros binarios. Presta atención a las opciones de relocation y dynamic symbol table
  • gdb :
    viene de manera estandar, como depurador, pero es usado muy a menudo para desensamblar. Si tienes un bloque arbitrario de datos en hexadecimal que quieres desensamblar, simplemente introdúcelo (interactivamente) o compilalo en un programa como una cadena de texto así: char foo[] = {0x90, 0xcd, 0x80, 0x90, 0xcc, 0xf1, 0x90};
  • lida linux interactive disassembler :
    un desensamblador interactivo con algunas funciones especiales como un criptoanalizador. Muestra referencias a cadenas, hace análisis de flujo de código, y no depende de objdump. Usa la librería de desensamblage Bastard para descodificar instrucciones individuales
  • Ldasm:
    LDasm (Linux Disassembler) es un interfaz gráfico basado en Perl/Tk para objdump/binutils que intenta imitar el aspecto de W32Dasm. Busca referencias cruzadas (por ejemplo cadenas), convierte el código de GAS a un estilo parecido a MASM, traza programas y mucho mas. Viene con PTrace, un logger para flujo de procesos.

Nancy Nadlleli Muñoz Prado

http://www.alegsa.com.ar/Dic/ingenieria%20inversa.php

http://es.wikibooks.org/wiki/Ingenier%C3%ADa_Inversa/Desensambladores

viernes, 23 de mayo de 2008

WINE

Hola a todos me encontré con este programa o aplicación que sirve para poder correr programas de Windows en Linux realmente no lo he probado, apenas lo encontré así que no tengo una seguridad de cómo funciona realmente, pero les pongo una breve introducción de dicha aplicación. Wine que en inglés significa Wine Is Not an Emulator que en español es "Wine no es un emulador". Es una reimplementación de la API de Win16 y Win32 para sistemas operativos basados en Unix bajo plataformas Intel. Permite la ejecución de programas para MS-DOS, Windows 3.11, Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, Windows XP y Windows Vista. Para instalarlo lo que realice fue lo siguiente primero me fui al menú de Sistema posteriormente en el submenú Administración y ahí pasamos a la opción de Gestor de paquetes Synaptic ya ahí nos abrirá dicha aplicación pero antes te pedidera tu contraseña para poder acceder a este programa, ya en el Gestor nos dirigimos a el menú Editar y elegimos la opción Buscar, ahí teclearemos el nombre de wine en automático se buscara la aplicación que requerimos. Ya encontrada la aplicación se marca la que dice wine pero cabe mencionar que es la que dice wine solamente, es decir solo dice wine por que aparecen otras pero esas no son, si tienen dudas lean la descripción de la aplicación (esta abajo en un cuadro de descripciones breves), ahora sí!!! marcada ya esta aplicación se aplica jajaja este es un icono con una palomita verde se da un clic ahí y se empezara a instalar después solo dan aceptar leen bien para que no se confundan. Ya con eso quedara instalada y luego la tendrán en Aplicaciones --> WINE.

Saludos
José de Jesús Gabriel Hoyos

Depurar en Python

El lenguaje de programación python incluye un modulo propio de depuración: pdb (Python DeBugger), pero como en todos los lenguajes, si utilizamos una herramienta gráfica para el proceso de depuración del programa, seguramente ahorraremos mucho tiempo. A continuación se explican los fundamentos básicos para depurar nuestros programas python con el editor IDLE, el cual podremos adquirir fácilmente para cualquier distribución.


Activación del depurador

Para activar el modo de depuración en IDLE tan solo haremos click en el menú Debug -> Debugger de la python shell de IDLE. Cuando lo hagamos, aparecerá en esta ventana un mensaje indicando que el modo de depuración está activo: [DEBUG ON], además de una nueva ventana con todas las opciones e información que nos ofrece el depurador.




Usar el depurador

Una vez que esté el modo de depuración activado podremos añadir “break points” en el código haciendo click con el botón derecho en la línea donde queramos  que se pare la ejecución del código y seleccionando la opción adecuada. Una vez que ejecutamos el programa, se irá ejecutando el código hasta que se encuentre uno de estos “break points”.

 En este punto se nos mostrará la siguiente información en el control de depuración para poder ir identificando los errores.


Aquí se explica lo que hace cada botón

·                El botón GO hace que la ejecución del programa continúe hasta el fin del mismo o hasta que se alcance otro punto de ruptura.

·                El botón Step hace que se ejecute la próxima sentencia a ser ejecutada o que se de un paso en una función anidada.

·                El botón Over hace que la sentencia actual sea completamente ejecutada sin parar en ninguna función anidada.

·                El botón Out hace que se compute desde el punto actual hasta el fin de la función actual y que esta se termine.

·                El botón Quit termina la actual ejecución. Esto deja el sistema en modo de depuración todavía. Para cerrar el modo de depuración basta con cerrar el panel de depuración.

 

Robot autónomo

Buenas tardes a todos, navegando en internet me encontré con este articulo que me parece interesante y que me agradan estos temas, en ella se muestra un robot autómata que es capaz de evitar obstáculo, a continuación le explico un poco acerca de este robot.

El autómata de este robot esta diseñado para seguir un camino en la misma dirección hasta que se le presente un obstáculo y en caso de tenerlo, este autómata debe ser capaz de evitarlo y lo hace con la ayuda de sensores que pueden ser desde los más sofisticados como infrarrojos, hasta los más sencillos como switch. Mediante el programa que tiene implementado cuando se encuentra un obstáculo hace los siguientes pasos:
1.- Para los motores.
2.- Gira los motores de las ruedas de dirección.
3.- Gira los motores en reversa.
4.- Gira nuevamente la dirección y continúa con su camino hacia adelante.
Los elementos principales de este robot son:
-Estructura física (chasis)
-Sensores
-Motores
-Potencia
-Controlador

Aquí les dejo el link en donde se muestra un pequeño robot siguiendo este autómata construido de piezas lego y piezas no reutilizables que tiene como sensores dos switch y se explican un poco más a detalle sus elementos. Espero que sea de su agrado y a ver que opinan, saludos.

http://www.geocities.com/albert_m_98/Robot.htm#tarea

Manual GNU/m4

Hola a todos...como ya habrán dicho muchos de mis compareños y como lo dice wikipedia. Una macro o macroinstrucción es una serie de instrucciones que se almacenan para que se puedan ejecutar de forma secuencial mediante una sola llamada u orden de ejecución, las macros son o bien incorporado o definidos por el usuario, y puede tener cualquier número de argumentos.
Ahora bién, un procesador de macros es un programa que interpreta comandos definidos por el usuario. Aqui tenemos el procedador de macros GNU/m4, este procesador de macros se distribuye para linux. Ademas de hacer macro expansiones, m4 ha incorporado funciones para incluir el nombre de archivos, ejecutar comandos desde shell, hacer aritmética entera, manipular texto de diversas maneras, el uso de recursión, etc...
Investigando el tema, me encontre un manual en el que explica como definir e invocar macros, incluir archivos, como depurar en m4(ya que ese es un tema actual) y multiples cosas de interes.
Aqui les dejo el link para que puedan descargar el manual de GNU/m4, esta muy bueno, pero está en inglés, no creo que se les dificulte, ya que todos han llevado inglés 1 y 2. Espero les sirva de utilidad.
Saludos a todos.
powered by: Arnold Giuseppe Domínguez Eusebio

jueves, 22 de mayo de 2008

Valgrind...

Hola a todos buenas tardes...
A continuación publico algunos conceptos de la herramienta Valgrind que menciono el profesor en clase, ojala pueda ayudarlos igual que a mi para no quedarnos solo con lo que se ve en el aula, tal vez alguno de ustedes ya ojeo el manual pero para los que no espero les sirva;

Valgrind es una herramienta de depuración para programas que se ejecutan en linux, consta de un conjunto de herramientas cada una de las cuales desempeña algún tipo de depuración o alguna otra tarea, tiene algunas otras herramientas que utilza como
-Memcheck detecta la memoria de gestión de problemas en los programas, puede detectar los siguientes problemas :Uso de memoria , lectura / escritura de memoria después de que haya sido liberada, la lectura / escritura zonas inapropiadas en la pila, pérdidas de memoria.
Problemas como estos pueden ser difíciles de encontrar por otros medios, a menudo quedan desapercibidas durante largos períodos, causando entonces ocasional, difíciles de diagnosticar los accidentes.

-Cachegrind es un caché de perfil, pueden determinar con precisión las fuentes de caché perdido en su código.

- Macizo es un montón de perfil. Mide la cantidad de memoria heap programas de uso. En particular, se le puede dar información sobre la pila de bloques, heap gastos generales de administración, y los tamaños de pila (Heap reeduce la cantidad de memoria que usa el programa)

- Helgrind detecta errores de sincronización en los programas que utilizan los subprocesos POSIX pthreads primitivas, detecta los siguientes tres clases de errores: Mal uso de la API POSIX pthreads, posibles bloqueos derivados de problemas de bloqueo de pedidos.Valgrind está estrechamente vinculada a los detalles de la CPU y el sistema operativo, y en menor medida, el compilador de C básico y bibliotecas. Sin embargo, a partir de la versión 3.3.0 que soporta varias plataformas.

Aquí les dejo el un manual http://valgrind.org/docs/manual/valgrind_manual.pdf solo que esta en ingles así que solo cheque de manera muy general pues mi ingles es fatal , pero espero no sea el caso de ustedes, pero los ejemplos y eso ayuda todo esto en la pagina de http://valgrind.org/info/

_____________________________ x_a

EL DEPURADOR DE JAVA - JDB

El depurador de Java, jdb es un depurador de línea de comandos, similar al que Sun proporciona en sus Sistemas, dbx. Es complicado de utilizar y un tanto críptico, por lo que, en principio, tiene escasa practicidad y es necesaria una verdadera emergencia para tener que recurrir a él.
Para poder utilizar el depurador, las aplicaciones Java deben estar compiladas con la opción de depuración activada, -g. Posteriormente se puede lanzar appletviewer con la opción de depuración, debug, y habremos puesto en marcha jdb. ejem: javac -g hm.java

Comando help :El comando help proporciona una lista de los comandos que están disponibles en la sesión de jdb.

Comando threadgroups :El comando threadgroups permite ver la lista de threads que se están ejecutando. Los grupos system y main deberían estar siempre corriendo.

Comando threads :El comando threads se utiliza para ver la lista completa de los threads que se están ejecutando actualmente.

Comando run :El comando run es el que se utiliza para arrancar el appletviewer en la sesión de depuración. Lo teclearemos y luego volveremos a listar los threads que hay en ejecución.

Comando where : mostrará la pila de ejecución del applet.

Comando use : nos informa del camino donde jdb va a buscar los ficheros fuentes que contienen el código Java de las clases que se están depurando. Por defecto, utilizará el camino que se especifique en la variable de entorno CLASSPATH.

Comando list mostrará el código fuente actual al comienzo del punto de ruptura que hayamos fijado.

Comando dump nos permitirá ahora ver el valor del objeto g pasado desde el appletviewer.

Comando step nos porporciona el método para ejecutar la línea actual, que estará siendo apuntada por el indicador si hemos utilizado el comando list.

http://www.wikilearning.com/tutorial/tutorial_de_java-clases_java/3938-53

miércoles, 21 de mayo de 2008

Recordando un poco las Macros...

Cuando cursamos la materia de Arquitectura de Computadoras II se nos hablo y se nos enseño a usar las Macros en el lenguaje ensamblador, pero como todo se nos olvida pues aqui les dejo una breve descripcion de estas:

En el lenguaje de programación ensamblador, una macro es un conjunto de instrucciones que serán sustituidas por un programa cuando el nombre de ésta aparezca al momento de ensamblar el programa. Las instrucciones de macros se pueden guardar en el programa mismo o en un archivo separado que el programa pueda identificar.

Las Macros en aplicaciones de computadora, son un conjunto de acciones o instrucciones grabadas y ejecutadas mediante una simple instrucción. Así se evita la introducción repetitiva de instrucciones, se minimizan los errores tipográficos y se permite a los usuarios que no conozcan el programa reproducir conjuntos de instrucciones previamente grabados por alguien más experto en la aplicación. Si la aplicación incluye también un lenguaje de macros que responda a variables e instrucciones condicionales, el usuario puede también controlar el resultado de un procedimiento, haciendo que la macro responda de forma diferente bajo condiciones diversas.

FLISOL

¿Qué es flisol?

Visita: http://puntogmx.net/flisol la hora de inicio es a las 8:00 a.m. en la fei.

Están cordialmente invitados.

Macro ????

Hola!!!...Que gusto volver a estar con ustedes.

Como resultado de la investigación propuesta por el maestro sobre las Macros me propuse hacer una descripción de estas lo más compacta posible para que se pudiera tener un entendimiento global pero no vago de lo que es una macro, que en Wikipedia nos dice “Una macro o macroinstrucción es una instrucción compleja, formada por otras instrucciones más sencillas.”
Y consultando con otras fuentes, esto es lo que encontré:
  • En office: Una Macro son una serie de pasos que se almacenan y se pueden activar con alguna tecla de control y una letra. Por ejemplo, todos los días empleo frecuentemente en mis celdas los mismos pasos: Tamaño de Fuente (Tamaño de la letra), Negrita, Fuente(Tipo de letra) y Color de Fuente(Color de Letra), o tal vez un conjunto de instrucciones tales como "borrar archivo", "añadir registro", etc. Para no estar repitiendo estos pasos los puedo almacenar en una macro y cuando ejecute la macro los pasos antes mencionados se ejecutaran las veces que yo lo desee.


  • En lenguajes de programación (mas concretamente C): Son constantes simbólicas que son cambiadas a determinados valores mediante una macro-sustitución durante la compilación. Sus definiciones están incluídas en ficheros de cabecera. Por ejemplo, el fichero de cabecera , de Borland C++ nos indica que la constante EXIT_FAILURE es sustituida por el valor 1 en la fase de preprocesado; a su vez el fichero informa que la etiqueta stderr será sustituida por un miembro de una matriz: _streams, que tiene un sentido concreto para este compilador.
Las diferencias parecen solo estar en el entorno el el que se aplica el concepto ¿no?... Bueno este es mi aporte de la semana, espero que les pueda ser de utilidad…
Saludos, García Carrasco José Florentino.

http://www.programatium.com/manuales/excel/1.htm
http://www.zator.com/Cpp/E1_4_1b.htm

Tutorial WXGLADE

Hola a todos, solo escribo para decirles que en mi blog puse un tutorial para WXGLADE que se me hizo muy ameno y sencillo, con él pueden aprender aspectos básicos relacionados con widgets (se puede decir que es un sinónimo de COMPONENTES en python), también se ve un ejemplo bastante claro en el que se emplea el manejo de eventos. Espero que les ayude.

http://skynet64.wordpress.com/

Pierre Jaquet-Droz

Posiblemente el mejor y más conocido creador de autómatas de la historia. Pierre Jaquet-Droz suizo nacido en 1721 es el responsable de los tres autómatas más complejos y famosos del siglo XVIII. Sus tres obras maestras (La Pianista, El Dibujante y El Escritor) causaron asombro en la época llegando a ser contemplados por reyes y emperadores tanto de Europa como de China, India o Japón.
El primero de ellos, “La Pianista”, es un autómata con forma de mujer que toca el órgano, con la particularidad de que es la propia figura la que intepreta las obras pulsando las teclas con sus dedos sin tener el sonido pregrabado o procedente de otro lugar. Compuesta por 2.500 piezas podía mover los ojos dirigiendo la mirada del piano a los dedos, inclina el cuerpo, respira y al finalizar cada tema hacía una reverencia.
El Dibujante, por otra parte, estaba compuesto por unas 2.000 piezas, tenía forma de niño sentado en un pupitre y podía realizar hasta cuatro dibujos distintos, pasando por todos los pasos del dibujo académico (esbozo con lápiz, repaso de las líneas, sombreado y retoques finales). Al igual que el anterior imita el comportamiento mientras realiza la tarea moviendo los ojos, las manos o incluso soplando en el papel para eliminar los restos del polvo del lápiz. Los cuatro dibujos que podía realizar el autómata eran un retrato de Luis XV, una pareja real, un perro y a Cupido subido encima de una carroza tirado por una mariposa.

El último, y más complejo de los autómatas, es “El Escritor” mecanismo compuesto por más de 6.000 piezas y seis años de trabajo. Este diseño es la evolución de uno anterior construido por los Maillardet, también con forma de niño, y que podía escribir en inglés y francés y realizar algunos dibujos. La versión de Jaquet-Droz podía escribir utilizando la pluma gracias a una rueda integrada en su mecanismo interno donde se seleccionaban los caracteres uno a uno pudiendo escribir así pequeños textos de unas cuarenta palabras de longitud. Como los anteriores, realizaba movimientos propios de un ser humano como mojar la tinta y escurrir el sobrante para no manchar el papel, levantar la pluma como si estuviera pensando, respetando los espacios y puntos y aparte, además de seguir con la mirada el papel y la pluma mientras escribe.
Los tres autómatas se pueden contemplar en el Musée d'Art et d'Histoire de Neuchâtel, Suiza.

¿Por qué Python se llama así?

Es curioso, pero si no se han preguntado por qué este lenguaje de programación se llama así, aquí tienen la respuesta: el nombre del lenguaje proviene de la afición de su creador original Guido van Rossum, por los humoristas británicos Monty Python.
Monty Python fue un grupo británico de humoristas que sintetizó en clave de humor la idiosincrasia británica de los años 60 y 70.

Lograron la fama gracias a su serie para la televisión inglesa Monty Python's Flying Circus (El Circo Ambulante de Monty Python), basada en sketches breves que en muchas ocasiones incluían una importante carga de crítica social, si bien en su mayoría se centraban en un sentido del humor absolutamente surrealista y basado en el absurdo.

martes, 20 de mayo de 2008

Ejecutable Python

hola a todos buenas noches a quienes les falta el programa de python para realizar la tarea aqui les dejo el ejecutable lo subi a rapidshare tienen que ponerle en descargar en cogent saludos y nos vemos el jueves

http://rapidshare.com/files/116434834/python-2.5.msi.html

atte
jose alberto zubizarreta alarcon

lunes, 19 de mayo de 2008

Código para reproducir archivos de audio en Python

Aquí les dejo el código que les comenté en clase.

En otro orden de ideas, les felicito por ser cumplidos y haber publicado sus entradas en el blog, ahora recuerden que seguiremos trabajando de la misma forma, cada sábado revisaré e iré eliminando a los miembros que no estén activos (Esta vez no habrá misericordia (6) )

import wave
import pyaudio
import sys

chunk = 1024

if len(sys.argv) < 2:
print "Plays a wave file. \n\n " +\
"Usage: %s filename.wav" % sys.argv[0]
sys.exit(-1)

wf = wave.open(sys.argv[1], 'rb')

p = pyaudio.PyAudio()

# open stream
stream = p.open(format =
p.get_format_from_width(wf.getsampwidth()),
channels = wf.getnchannels(),
rate = wf.getframerate(),
#tiempo = wf.get_time(),
output = True)

# read data
data = wf.readframes(chunk)
print stream.get_time() * 59 * 60
#play stream
while data != '':
stream.write(data)
data = wf.readframes(chunk)

stream.close()
p.terminate()

P.D. No se olviden de leer las entradas para poder tener derecho a su correspondiente participación, ya que haré preguntas de cada una de las publicaciones.
Y no olviden comentar, no les cuesta nada, " No se vale comentar la entrada que ustedes hayan publicado " ehhhhhhhhh.