Inturiasgary’s Blog

marzo 27, 2011

Teoría de errores en la determinación del tiempo de caída de una esfera metálica en un medio viscoso

Filed under: Uncategorized — inturiasgary @ 3:28 pm

Σ

k=0
f(xkx =

ba
f(x) dx

  1. Objetivos
    • Objetivo general
    • Realizar pruebas para conocer la utilidad en parte práctica y analítica de la teoría de errores determinando el tiempo de caida de una esfera en un medio viscoso.

    • Objetivo específico
    • Determinar valores relacionados al cálculo de teoría de errores, elaborando una tabla de análisis de los datos de medición.

  2. Fundamento teórico
  3. En esta experiencia analizaremos el caso cuando una esfera atraviesa un fluido viscoso y mediremos el tiempo en que tarda en hacerlo.

    nociones básicas para analizar la experiencia:

    Cuando un fluido fluye a través de un canal cerrado ya sea una tubería o entre dos placas planas, se representan dos tipos de flujos, dependiendo de la velocidad de dicho fluido.

    A velocidades bajas, el fluido tiende a fluir sin mescaldo lateral y las capas adyacentes se resbalan unas sobre las otras como los naipes de una baraja. En este caso no hay corrientes cruzadas perpendiculares a la dirección del flujo, ni tampoco remolinos de fluido. A este tipo de flujo se llama flujo laminar.

    A velocidades más altas se forman remolinos, lo que conduce a un mesclado lateral llamado flujo turbulento.

    Viscocidad del liquido.- El fluido puede diferenciarse de un sólido por su comportamiento cuando se somete a un esfuerzo o fuerza aplicada.

    Un fluido exhibe resistencia al recorrido de cualquier cuerpo que intenta desplazarse. Estas fuerzas viscosas se originan de las que existen entre las moléculas del fluido y son de carácter similar a las fuerzas cortantes de los sólidos.

  4. Materiales
    • Cronómetro digital
    • Un tubo de vidrio transparente con un fluido viscoso, en el interior una esfera de metal sólido
  5. Esquema
  6. Procedimiento
  7. En la realización del experimento necesitamos entender la medición del recorrido de la esfera en el liquido viscoso.

    El tubo de vidrio tiene dos señales, una será utilizada para determinar el inicio de recorrido de la esfera y el otro el final.

    Procederemos a reiniciar el tiempo en el cronómetro. colocamos el tubo en forma perpendicular a la mesa, la esfera empieza a descender, cuando la esfera se encuentre a punto de salir de la señal superior, iniciamos el cronómetro.

    Cuando la esfera este coincidente a la señal inferior procedemos a detener el cronómetro, anotamos el tiempo medido y procedemos a realizar el mismo procedimiento diez veces, luego calculamos en base a los datos tomados.

    Tabulación de tiempos y calculo de errores:

    N Ti t (Ti – t) (Ti – t)**2 Ea Emp E%
    1 9,49 9,97 -0,487 0,237 0,487 0,1305 1,308
    2 9,59 9,97 -0,387 0,149 0,387 0,1305 1,308
    3 10,21 9,97 0,233 0,054 0,233 0,1305 1,308
    4 10,24 9,97 0,263 0,069 0,263 0,1305 1,308
    5 10,26 9,97 0,283 0,080 0,283 0,1305 1,308
    6 10,64 9,97 0,663 0,439 0,663 0,1305 1,308
    7 9,58 9,97 -0,397 0,157 0,397 0,1305 1,308
    8 10,37 9,97 0,393 0,154 0,393 0,1305 1,308
    9 9,83 9,97 -0,147 0,021 0,147 0,1305 1,308
    10 9,56 9,97 -0,417 0,173 0,417 0,1305 1,308
  8. Observaciones
    • Error instrumental encontrado en el cronómetro.
    • Error personal en integrantes del grupo de laboratorio, en la tabulación de datos-
    • Mala interpretación de fórmulas en el calculo de errores.
    • Incertidumbre en la señal de inicio y final de recorrido de la esfera metálica.
  9. Conclusiones
  10. Una experiencia empírica y necesaria para la comprensión de tomas de tiempos, el uso de la cantidad de decimales usados en los datos no fue especificada, provocando resultados diversos entre los integrantes del grupo.

  11. Cuestionario
    • ¿Hubo algún error fuera de lo normal?
      • Error en el cálculo de error medio promedio, debido a la mala interpretación de la fórmula.
      • Error personal, error en la tabulación de datos.
Anuncios

marzo 13, 2011

Tienda en linea con Satchmo

Filed under: Uncategorized — inturiasgary @ 2:03 pm

Satchmo es framework modular de paquetes de carritos de compras y comercio electronico que pueden ser facilmente acoplados a a sitios de tiendas en linea, haciendo uso de el framework Django.

El proyecto se ecuentra en una etapa de cambios muy favorales con las siguientes caracteristicas actuales:

  • Todos los elementos a mostrar son manejados por el mismo manejador de plantillas de Django.
  • Todos los urls pueden ser personalizados para el mejor uso en convencion de nombres.
  • El proceso de pago se puede ajustar a las necesidades específicas

Satchmo incluye muchos módulos de pago como ser:

  • Authorize.net
  • Trustcommerce
  • Google checkout
  • Cybersource
  • Paypal
  • Protx
  • Sermepa

Satchmo tiene un multiple soporte de productos como ser:

  • Productos descargables
  • Productos de subscripción
  • Productos de caracteristicas personalizables
  • Variantes de productos
  • Certificados de regalo

Requerimientos:
Debido a que Satchmo esta basado en el framework Django, necesita tener instalado y funcionando, la version Dango 1.2.3 o posterior, debido a que necesita la caracteristica CSRF.

Versión de Python 2.4 o posterior, como tambien una base de datos soportada por Django.

febrero 14, 2011

Urwid, Interfaz gráfica mediante consola

Filed under: Uncategorized — inturiasgary @ 9:43 pm

La ventaja de utilizar aplicaciones por consola son de utilizar bajo consumo de recursos de memoria que presenta nuestro sistema, como tambien el escaso requerimiento de hardware, ancho de banda relativamente bajos en uso remoto; aunque talves sea un poco complicado de usar, impulsandote más al uso de atajos por teclado (conocidos como keyboard shortcuts).
Si eres usuario de algún sistema basado en Unix, tal ves no presentes problemas en el uso de estas aplicaciones.

Urwid es una libreria para el lenguaje de programación Python, se distribuye bajo la licencia GNU y que incluye muchas características útiles para los desarrolladores de aplicaciones de consola de texto.

Instalación:

Recomiendo que descargen la ultima versión disponible desde el sitio oficial

una vez descargado el archivo procedemos a descomprimirlo:

 

tar -xzvf urwid***.tar.gz

 

Ingresamos al directorio donde estan descomprimidos los archivos e instalamos:

 

sudo python setup.py install

ya esta instalado.

 

Ejemplo Hola Mundo:

 

import urwid
txt = urwid.Text("Hola Mundo")
fill = urwid.Filler(txt, 'top')
loop = urwid.MainLoop(fill)
loop.run()

 

 

 

 

 

 

mayo 12, 2010

Scripts de Python ejecutables

Filed under: Uncategorized — inturiasgary @ 3:43 pm

En sistemas operativos derivados del sistema Unix, los scripts hechos con Python pueden ser directamente ejecutados, de igual forma como los scripts de shell, poniendo la linea:
#!/usr/bin/env python

(asumiendo que el interprete esta en el PATH del usuario) al inicio del script y dado que el script esta en modo ejecutable.
El #! debe ser los primeros dos caracteres de el archivo. En algunas plataformas, estas primeras lineas deberían terminar con un ‘\n’, no confundir con el fin de linea de Windows (‘\r\n’). Note que el carácter ‘#‘ también es usado para iniciar un comentario en Python.
El script puede ser dado el modo ejecutable o permiso, usando el comando chmod:

$ chmod +x myscript.py

En sistemas Windows, no existe la opción modo ejecutable. El instalador de Python automáticamente asocia los archivos .py con python.exe de tal forma que al dar doble click sobre el archivo, Python ejecutará el script. La extensión también puede ser .pyw, en este caso cuando la consola de windows que normalmente aparece sera suprimida.

Intérprete de Python

Filed under: Uncategorized — inturiasgary @ 3:14 pm

El interprete de Python se suele instalar en /usr/local/bin/python en aquellas maquinas en la que se encuentran disponible; poniendo /usr/local/bin en la ruta de búsqueda de la Shell de Unix hace posible la ejecución del comando:

python

En maquinas Windows, la instalación de Python es usualmente colocado en c:\Python26 , es posible cambiar el lugar por defecto cuando se ejecuta la instalación. Para adicionar este directorio al Path(ruta), tienes que escribir el siguiente comando en dentro del interprete de comando DOS.

set path=%path%;C:\python26

para salir del interprete de comando Python, podemos escribir un carácter de fin de archivo (Control-D en Unix o Control-Z en Windows) esto causara un salida del interprete con un mensaje salida cero. Si eso no funciona, se puede salir del interprete tecleando el siguiente comando: quit()

La capacidad de edición de lineas de código mediante el interprete Python no es muy sofisticado. En Unix, hay una opción de poder usar la librería readline GNU, que añade la capacidad de una edición mas interactiva y con algunas otras funcionalidades mas.

El interprete Python interactua de la misma forma como el Unix Shell: cuando se convoca con una entrada estandard conectado a un dispositivo tty, lee y ejecuta los comandos de forma interactiva, cuando se convoca con un argumento de nombre de archivo o con un archivo como entrada estándar, lee y ejecuta un script de ese archivo.

Una segunda forma de iniciar el interprete de comandos Python seria python -c command [arg] … , el cual ejecuta las declaraciones en el comando, análogo a la opcion -c del shell. las opciones en el interprete siempre tienen que estar separadas por un espacio u otro caracter que son especiales para el shell, que generalmente estan declarados entre comillas.

Algunos módulos de Python son muy útiles como scripts. Estos pueden ser invocados usando python -m module [arg] … , el cual ejecuta el archivo de origen para el módulo como si hubiera escrito su nombre completo en la linea de comandos.

Existe diferencia entre python file y python , en este ultimo caso, las solicitudes de entrada del programa, como ser input() y raw_input(), se realizan desde el archivo. Dado que este archivo ya ha sido leído hasta el final por el analizador antes de que el programa inicie su ejecución, el programa se encontrará al final de su archivo de inmediato. En el primer caso (que es generalmente lo que usted quiere) que se cumple desde cualquier archivo o dispositivo que está conectado a la entrada estándar del intérprete de Python.

Cuando un archivo de script es usado, a veces es util ser capaz de ejecutar el script y despues entrar en modo interactivo. Esto se puede hacer pasando -i antes de la secuencia de comandos.

Modo interactivo

Cuando los comandos se leen desde un tty, el interprete se dice que esta en modo interactivo. En este modo el carácter de espera de ordenes(prompt) cambia a (>>>); para lineas continuas el prompt cambia  a (…). El interprete imprime un mensaje de bienvenida mostrando el numero de versión y las notas de copyright, antes de mostrarnos el primer prompt.

python
Python 2.6 (#1, Feb 28 2007, 00:02:06)
Type "help", "copyright", "credits" or "license" for more information.
>>>

La continuación de lineas, gracias al segundo prompt son necesarias para escribir código. un ejemplo:




>>> the_world_is_flat = 1
>>> if the_world_is_flat:
...     print "Be careful not to fall off!"
...
Be careful not to fall off!

mayo 11, 2010

Usando el módulo doctest

Filed under: Uncategorized — inturiasgary @ 1:15 pm

Python tiene un soporte considerable para pruebas, con los módulos doctest y unittest para pruebas de unidad y el módulo de pruebas para pruebas de regresión.

Cuando creamos un módulo, estos están diseñados para ser importados y los objetos ser proveidos. Cuando el módulo es importado las pruebas de unidad simplemente son ignorados; pero cuando el modulo esta siendo ejecutado las pruebas de unidad son ejecutados. Estas acciones son llevadas a cabo gracias al modulo doctest.

El modulo doctest nos permite realizar pruebas unidad de la manera mas simple y facil como sea posible.

Para realizar las pruebas todo lo que necesitamos es adicionar ejemplos a nuestro docstring, escribiendo lo mismo que en el interprete de Python y el resultado que quisieramos obtener de retorno. Como por ejemplo:

def unique_words(page):
  ''' Returns set of the unique words in list of lines of text

    Example:

    >>> from StringIO import StringIO
    >>> fileText = """the cat sat on the mat
    ... the mat was ondur the cat
    ... one fish two fish red fish
    ... blue fish
    ... This fish has a yellow car
    ... This fish has a yellow star"""
    >>> file = StringIO(fileText)
    >>> page = file.readlines()
    >>> words = unique_words(page)
    >>> print sorted(list(words))
    ["This", "a", "blue", "car", "cat", "fish", "has", "mat",
     "on", "ondur", "one", "red", "sat", "star", "the", "two",
     "was", "yellow"]
    >>>
  '''

  return set(word  for line in page  for word in line.split())

def _test():
    import doctest
    doctest.testmod()

if __name__ == "__main__":
    _test()

El docstring contiene una pequeña descripcion de lo que se intenta probar, seguido del codigo que hubieramos
tipeado para realizar la prueba en el interprete de Python.
El modulo doctest usa esta sintaxis ya que nos es mas familiar.

Para realizar la respectiva prueba basta con escribir:

python NombreDelPrograma.py -v

marzo 4, 2010

Frameworks Web de desarrollo

Filed under: Uncategorized — inturiasgary @ 12:49 pm

Existen varios tipos de frameworks Web: los orientados a interfaz de usuario, como Java Server Faces, orientados a aplicaciones de publicación de documentos, como Coocon, orientados a la parte de control de eventos, como Struts y algunos que incluyen varios elementos como Tapestry.

La mayoría de los frameworks Web se encargan de ofrecer una capa de controladores de acuerdo con el patrón MVC o con el modelo 2 de servlets y JSP, ofreciendo mecanismos para facilitar la integración con otras herramientas para la implementación de las capas de negocio y presentación.

Características:

A continuación se enuncian una serie de características que podemos encontrar en prácticamente todos los frameworks existentes.

  • Abstracción de URLs y sesiones: No es necesario manipular directamente las URLs ni las sesiones, el framework ya se encarga de hacerlo.
  • Acceso a datos: Incluyen las herramientas e interfaces necesarias para integrarse con herramientas de acceso a datos, en BBDD, XML, etc.
  • Controladores: La mayoría de los frameworks implementa una serie de controladores para gestionar eventos, como una introducción de datos mediante un formulario o el acceso a una pagina Web. Estos controladores suelen ser fácilmente adaptables a las necesidades de un proyecto concreto.
  • Autenticación y control de acceso: Incluyen mecanismos para la identificación de usuarios mediante login y password, permiten restringir acceso a los usuarios a determinadas paginas.
  • Internacionalización
  • Separación entre diseño y contenido

Arquitectura MVC

Filed under: Uncategorized — inturiasgary @ 12:40 pm

Debido a que la mayoría de los frameworks conocidos adoptan por esta arquitectura o caso contrario similar. Tenemos que contemplar estos aspectos básicos.

Conceptos básicos:

  • Modelo, es el responsable de:
  • Acceder a la capa de almacenamiento de datos. Lo ideal es que el modelos sea independiente del sistema de almacenamiento.
  • Define las reglas de negocio(la funcionalidad del sistema)
  • Lleva un registro de las vistas y controladores del sistema.
  • Si estamos ante un modelo activo, notificara a las vistas los cambios que en los datos pueda producir un agente externo.
  • Vista, es el responsable de:
  • Recibir datos del modelo y los muestra al usuario.
  • Tienen un registro de su controlador asociado.
  • Pueden dar el servicio de actualizacion, para que sea invocado por el controlador o por el modelo cuando es un modelo activo.
  • Controlador, es el responsable de:
  • Recibir los elementos de entrada.
  • Contiene reglas de gestión de eventos, estas acciones pueden suponer peticiones al modelo o a las vistas.

Aunque se puedan encontrar diferentes implementaciones de MVC, el flujo que sigue el control generalmente es el siguiente:

  • El usuario interactúa con la interfaz de usuario de alguna forma(como ser: pulsar un botón, enlace, etc.)
  • El controlador recibe(por parte de los objetos de la interfaz-vista) la notificación de la acción solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente a través de un gestor de eventos(handler) o callback.
  • El controlador accede al modelo, actualizándolo, posiblemente modificándolo de forma adecuada a la acción solicitada por el usuario(por ejemplo, el controlador actualiza el carro de compra del usuario). Los controladores complejos están a menudo estructurados usando un patrón de comando que encapsula las acciones y simplifica su extensión.
  • El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario. La vista obtiene sus datos del modelo para generar la interfaz apropiada para el usuario donde se refleja los cambios en el modelo(por ejemplo, produce un listado del contenido del carro de compra). El modelo no debe tener conocimiento directo sobre la vista. Sin embargo, el patrón de observador puede ser utilizado para proveer cierta indirección entre el modelo y la vista, permitiendo al modelo notificar a los interesados de cualquier cambio. Un objeto vista puede registrarse con el modelo y esperar los cambios, pero aun así el modelo en si mismo sigue sin saber nada de la vista. El controlador no pasa objetos de dominio(el modelo) a la vista aunque puede dar orden a la vista para que se actualice, En algunas implementaciones la vista no tiene acceso directo al modelo, dejando que el controlador envíe los datos del modelo a la vista.
  • La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente.

febrero 10, 2010

Wireless DWA-125 en ubuntu 9.04

Filed under: Uncategorized — inturiasgary @ 6:02 pm
Tags: ,

comentarles que por motivos que mi laptop tx1030la, no funciona la Wifi, decidi comprar una adaptador usb wireless.

del modelo DWA-125 marca d-link, vaya sorpresa cuando conecto el usb y no parpadeaba el led.

los procedimientos para la instalación de los drivers en el sistema operativo ubuntu fue el siguiente:

– ya que la empresa d-link ofrece drivers para sus productos, también soportados en sistemas operativos linux. (no se porque no vienen agregados junto al cd que acompaña el producto). Lo podemos descargar de ftp://www.dlinkla.com/pub/drivers/DWA-125/ , podemos descargarlo directamente con: wget ftp://www.dlinkla.com/pub/drivers/DWA-125/DRIVER_LINUX_DWA-125_STA_v2.1.2.0.tar.gz

tambien existen para los demas modelos de adaptadores

– una ves obtenida la copia, procedemos a descomprimirlo, con: tar xvf 2009_1120_RT3070_Linux_STA_v2.1.2.0.tar.gz

– ingresamos al directorio: cd 2009_1120_RT3070_Linux_STA_v2.1.2.0

– compilamos: make

– instalamos: sudo make install

bueno con esto seria suficiente, reiniciamos la maquina y conectamos el adaptador wireless usb.

según el archivo adjunto de especificación, este driver esta probado para:

Compatibilidad (Pruebas)

Linux Distribution verified (only x86):
1. Fedora 11 : 2.6.29.4-167.fc11.i686.PAE
2. Ubuntu 9.04 : 2.6.28-11-generic
3. Mandriva 2009.1 (spring) : 2.6.29.1-desktop-mnb

noviembre 18, 2009

Arreglo al problema de Hibernar y suspender en ubuntu

Filed under: Uncategorized — inturiasgary @ 11:02 am

Este es un problema al que a la mayoria de personas que conozco le sucedio, mas que todo al instalar la version jaunty jackalope. una de las soluciones que vi en elagun foro fue:

instalar la aplicacion “uswsusp”, el cual sera el encargado desde ahora en realizarar la tarea de hibernación y suspención de nuestro sistema, entonces porcedemos desde una terminal:

sudo aptitude install uswsusp

una ves instalado tenemos que modificar el archivo “hal-system-suspend-linux” con la siguiente instruccion:

sudo gedit /usr/lib/hal/scripts/linux/hal-system-suspend-linux

en el cual solo tiene que contener las siguientes lineas:

#!/bin/sh

sudo s2ram –force

salvamos nuestra informacion y tendremos que editar otro archivo para la solucion de hibernación:

sudo /user/lib/hal/scripts/linux-system-power-hibernate-linux

de la misma manera, solo tiene que contener los siguiente:

#!/bin/sh

sudo s2disk

Con estas modificaciones le estamos diciendo a nuestro sistema que uswsusp sea el encargado de las tareas de hibercación y suspencion.

una de las herramientas muy utiles, como ser la suspencion del sistema mediante la linea de comandos, se la pude realizar de la siguiente manera:

primero debemos instalar la aplicacion “pmi(powermanagement-interface)” asi:

sudo aptitude install powermanagement-interface

una ves realizada la instalacion podemos hacer uso de:

 

pmi action suspend

 

pmi action hibernate

 

la primera instruccion es para suspender el equipo y la segunda para hibernar 🙂

Página siguiente »

Blog de WordPress.com.