Proyecto BTN
Autor: Bruno Binner Quiñones
Competencia: Creatividad e innovación.
Asignatura: Integracion I
Palabras Clave: Proyecto, lector, pagina
Descripción de la Actividad
Se encomendó a cada grupo realizar un proyecto que se realizara a lo largo de todo el semestre que busca dar solución a alguna problematica que nos plantiemos.
Desarrollo
Lo primero fue buscar cual iba a ser la problematica que íbamos a abordar, y por cosas de gustos decidimos que iba a ser sobre paginas para leer comics.
Por lo que el objetivo del proyecto que nos planteamos es crear una pagina para leer manga que tome lo positivo de páginas ya existentes e implementar funciones que permitan al usuario personalizar su interfaz, cosa que esté a gusto con lo que ve en cuanto a organización de menús y colores. Que sea cómodo, permitiendo a las personas moverse por el sitio de la forma que estimen más conveniente. Y finalmente, accesible y óptimo, tanto para buenas y malas conexiones a internet.
Por otra parte también se quiere reducir en lo más posible el uso de anuncios publicitarios para que no arruine la experiencia de las personas al usar el sitio.
Aquí un ejemplo de lo que se quiere lograr:
Conclusión
Encontrar una solución innovadora a un problema ya existente si bien puede resultar no tan fácil a veces, métodos como el de lluvia de ideas o preguntar a personas que les interese el tema y noten estas mismas fallas, puede ayudar mucho a sacar ideas para generar una solución que se adapte a la mayoría de las personas.
Brunoblog
martes, 3 de noviembre de 2015
La confianza y la creencia.
Autor: Bruno Binner Quiñones
Competencia: Comunicación oral y escrita.
Asignatura: Proyecto cristiano
Palabras Clave: Confianza, creencia, exposición, video
Descripción de la Actividad
La actividad consistió en generar una presentación en la que se abordará el tema de la confianza en el sentido de cómo esta afecta la forma en que creemos. O sea en cómo percibimos el mundo.
Desarrollo
Lo primero que se hizo fue investigar sobre la confianza y se genero un documento con toda la información que consideramos relevante para la exposición. Que en resumidas resultaron los siguientes tópicos.
-Como la confianza afecta en el crecimiento de la persona y como es el pilar de las relaciones con otros individuos.
-Los efectos negativos que puede provocar problemas en esta.
-Y como se puede llegar a un equilibrio en el sentido de la confianza hacia los demás hacia uno mismo.
Con la información ya reunida. Se planificó la presentación para que fuera un poco más interactiva con nuestros compañeros para que ‘enganchara’ así que se hizo de la siguiente forma.
Al principio de la presentación nos presentamos y luego de eso se pregunta a los compañeros que es lo que ellos entienden como confianza y sies que piensa que es importante. Para luego pasar a explicar que es la confianza y como la tomamos.
Se presentan los puntos mencionados arriba, lo que resultó del informe, relacionando cada uno de ellos con ejemplos o anécdotas de cada uno.
Para concluir se tomó el siguiente video para resumir cada uno de los puntos y relacionarlos entre sí.
Conclusión
El hecho de hacer una presentación con elementos audiovisuales y hacer que los compañeros participen de ella la hace mucho más didáctica y capacitiva.
Python: Manejo de archivos binarios y puertos seriales
Python: Puertos seriales y archivos binarios
Autor: Bruno Binner Quiñones
Competencia: Trabajo en equipo
Asignatura: Programación II
Palabras Clave: Python, archivos binarios, puerto serial, ctypes
Descripción de la actividad
La actividad consistió en formar grupos de 3 integrantes y desarrollar 2 scripts.
Un Script en Python que envía por el puerto serial 10.000 datos estructurados de la siguiente forma: {randint[1,100], randint[1,1.000], randint[1,10.000], random()}
Los datos se envían como String y van separados con coma y con salto de línea. Un ejemplo válido de una secuencia de datos sería así: 23,450,6.527,0.19096663981190465,\n. Los datos se envían cada 0.1 segundo.
Por el lado del Script en Python que recibe los datos, estos se deben convertir al tipo de dato original y ser almacenados en el archivo binario “ datos.bin”. Una vez que se han recibido todos los datos, estos se deben imprimir por pantalla y calcular el promedio de los datos de cada columna. Estas operaciones se hacen sobre el archivo binario.
Para simular la conexión serial, se debe utilizar el programa Virtual Serial Port Emulator y configurar un Connector , con emulación de baudios a 9.600-8N1. Aquí un esquema que clarifica lo que se debía hacer.
Siendo TX el script que envía y RX el que recibe.
Desarrollo
Lo primero que se hizo fue dividir las actividades en el código por categorías. De lo que resultaron 3.
-La primera categoría era la comunicación por serial, que se encargaba de que los 2 scripts se comunicaran por puerto serial y uno enviará datos al otro para que este último los almacenará y desglosa.
-La segunda categoría se encargaba de todo lo que es la escritura y lectura de archivos binarios.
-Y la tercera y última categoría es la encargada de tomar esos datos obtenidos del archivo binario, y hacer operaciones matemáticas sobre ellos, o sea sumar cada columna y sacar el promedio para luego imprimirlo por pantalla.
Ya divididas las actividades se le asignó a cada integrante una de acuerdo a sus habilidades. Para después juntar cada parte del código y hacerlo funcionar.
Por su puesto se mantuvo una constante comunicación entre los integrantes para que el código que cada uno estaba haciendo tuviera la misma lógica.
El resultado fue el siguiente codigo:
conx1.py
import serial as se
import random as ra
import time
s=se.Serial(0)
s.baudrate=9600
for i in range(10000):
env= str(ra.randint(1,100))+','+str(ra.randint(1,1000))+','+ str(ra.randint(1,10000)) + ',' + str(ra.random()) + ',\n'
print env
time.sleep(0.1) # Para enviar datos cada 0.1 seg
s.write(env)
s.close()
conx2.py
import serial as se
import ctypes as Ct
s=se.Serial(0)
s.baudrate=9600
class structura(Ct.Structure):
_fields_= [('num1',Ct.c_int),('num2',Ct.c_int),('num3',Ct.c_int),('num4',Ct.c_float)]
def Put( xReg ):
f.write(xReg)
return
prom_a=0.0
prom_b=0.0
prom_c=0.0
prom_f=0.0
N=10000
men =[]
datos = []
aL=[]
for i in range(N):
men.append(s.readline()[:-2])
for i in range(len(men)):
datos.append(men[i].split(','))
f = open('datos.bin','wb')
guardar = structura()
for i in range(N):
guardar.num1 = int(datos[i][0])
guardar.num2 = int(datos[i][1])
guardar.num3 = int(datos[i][2])
guardar.num4 = float(datos[i][3])
Put(guardar)
f.close()
f = open('datos.bin','rb')
for i in range(N):
f.readinto(guardar)
aL.append([guardar.num1,guardar.num2,guardar.num3,guardar.num4])
print aL[i]
prom_a+=aL[i][0]
prom_b+=aL[i][1]
prom_c+=aL[i][2]
prom_f+=aL[i][3]
prom_a=prom_a/len(aL)
prom_b=prom_b/len(aL)
prom_c=prom_c/len(aL)
prom_f=prom_f/len(aL)
print '.........................................................'
print '= Promedios ='
print 'Primera columna:',prom_a
print 'Segunda columna:',prom_b
print 'Tercera columna:',prom_c
print 'Cuarta columna:',prom_f
f.close()
s.close()
Conclusión
En el trabajo en equipo es importante mantener una constante comunicación y entendimiento con los demás integrantes. Así como lo es la organización y conocimiento de los fuertes de cada uno. Como queda demostrado en la actividad realizada, si se cumple lo arriba mencionado un trabajo se puede realizar de forma rápida y concisa.
Graficando Distribuciones normales
Python
y datos tipo gauss
Autor: Bruno Binner Quiñones
Competencia: Aplica las ciencias de la ingeniería (Nivel 1)
Asignatura: Programación II
Palabras Clave: Distribucion normal, Gauss, python, grafico, filtro low-pass
Descripción de la Actividad
La actividad consistió en hacer un programa en python que generará 10.000 datos aleatorios con valores de una ‘Distribución Normal’ (o ‘Distribución Gaussiana’) con media 10 y desviación estándar de 0,5. Luego aplicar un filtro a los datos obtenidos y graficarlos con el módulo matplotlib de python.
Qué es Distribución Normal o Distribución Gaussiana?
En estadística y probabilidad se llama distribución normal, distribución de Gauss o distribución gaussiana, a una de las distribuciones de probabilidad de variable continua que con más frecuencia aparece aproximada en fenómenos reales.
La importancia de esta distribución radica en que permite modelar numerosos fenómenos naturales, sociales y psicológicos.
Por ejemplo, el siguiente es un gráfico llamado la campana de gauss que representa una Distribución normal:
Donde 0 es la media.
Filtro Low-pass
Un filtro low-pass se usa para atenuar las altas frecuencias en una onda. En nuestro caso va a atenuar valores que se alejen de la media.
Código y explicación
Resultado- import pylab as plab
- import random as ra
- def lowpass(v,a):
- f = [0]*10000
- f[0] = v[0]
- for i in range(1,10000):
- f[i] = a*v[i] + (1.0-a) * f[i-1]
- return f
- d = [ra.gauss(10,0.5) for i in range(10000)]
- fil = lowpass(d,0.9)
- plab.plot(d)
- plab.plot(fil)
- plab.grid()
- plab.show()
Se importó la librería pylab que nos permitirá representar de forma gráfica los datos que generemos y la librería random que incluye una función especial para generar datos de tipo gaussianos.
Se crea la función que servirá para filtrar los datos obtenidos. Para así facilitar el trabajo con estos.
En un arreglo ‘d’ guardamos 10000 datos gaussianos que irán del 8,25 hasta el 11,75. Para generarlos se uso la funcion random.gauss(media,variación) donde se usó como media 10, y variación estándar 0,5.
Luego en otro arreglo se guardaron los mismos datos pero con el filtro (low-pass) aplicado, usando como índice de filtro 0,9.
Con pylab se generaron 2 gráficos usando .plot(). Uno usando los datos gaussianos (‘d') y el otro usando los datos gaussianos con el filtro aplicado (‘fil’). Luego con .show() se mostraron los gráficos por pantalla resultando lo siguiente.
Lo graficado en azul corresponderia al contenido de ´d´ y lo verde es 'd' con el filtro aplicado, o sea 'fil'.
Después para demostrar la utilidad del filtro se procedió a probar con distintos valores para ‘a’ en la función ‘lowpass(v,a)’.
a = 0.1 a = 0.3
a = 0.5 a = 0.7
a = 0.9
Conclusión
Lo que se puede rescatar de esta actividad son esencialmente 2 cosas: El manejo de la librería pylab que nos permite crear y mostrar una representación gráfica de los datos que queramos. Y la comprensión de las Distribuciones normales o gaussianas para representar datos estadísticos y establecer que considerar dentro o fuera de lo normal.
martes, 27 de octubre de 2015
ZFS
Sistema de
archivos: ZFS
Autor: Bruno Binner Quiñones
Competencia: Gestion en TI (Nivel 2)
Asignatura: Mantencion de sistemas
Palabras Clave: Sistema de archivos, ZFS, SUN, Solaris, gestion TI
Descripción de la Actividad
La actividad consistia en investigar sobre algun sistema de archivos y destacar sus aspectos mas importantes. El sistema de archivos que nosotros escogimos fue ZFS.
¿Que es ZFS?
ZFS es un sistema de archivos revolucionario desarrollado por Sun Microsystems que fundamentalmente cambia la forma en que sistemas de archivos son administrados, con características y ventajas no encontradas en ningún otro sistema de archivos actual. Tales como protección contra archivos corruptos, soporte de grandes cantidades de almacenamiento, compresión de información eficiente, entre otras que se verán a continuación.
¿Que es un sistema de archivos?
Sistema de archivos: Un sistema de archivos son los métodos y estructuras de datos que un sistema operativo utiliza para seguir la pista de los archivos de un disco o partición; es decir, es la manera en la que se organizan los archivos en el disco.
Características
Integridad de datos comprobable: Esto permite que los datos en el archivo se mantengan siempre correctamente, siendo capaz de detectar datos corruptos y repararlos automáticamente. Esto se logra gracias a un modelo transaccional de archivos.
Modelo transaccional: Implica el almacenamiento de eventos o transacciones. Para esto se utiliza la técnica conocida como copy-on-write, de forma que cuando se modifican datos en el disco, estos no son sobrescritos, para lo que se crean nuevos bloques donde estos datos son grabados y luego se modifican las estructuras correspondientes para que apunten a estos nuevos bloques.
Snapshots: Corresponden a copias del sistema de archivos en algún determinado momento. Son de creación muy rápida, permitiendo hacer respaldos o copias de seguridad de forma casi inmediata, con la salvedad que estas copias son de sólo lectura.
Clones: De forma similar a los snapshots, los clones son copias del sistema de archivos en algún determinado momento, pero en los cuales se permite realizar escritura.
Espacios de almacenamiento (zpool): ZFS hace uso de espacios de almacenamiento virtual (o virtual storage pool, o zpools), a diferencia de los sistemas de archivo tradicionales que se encuentran en un solo dispositivo y requieren un gestor de volúmenes. Un zpool se construye a partir de dispositivos virtuales (o conocidos como vdevs) que a su vez se construyen a partir de bloques de dispositivos (particiones de disco duro, o discos completos). Además, la capacidad de almacenamiento de todos los vdevs se encuentra disponible para todas las instancias del sistema de archivos en el zpool.
SO compatibles.
Solaris
OpenSolaris
Oracle
Solaris
OpenIndiana
Nexenta
Core
NexentaStor
BeleniX
Schillix
StormOS
Jaris
MilaX
FreeNAS
NAS4Free
Korona
EON
NAS
napp-it
|
OmniOS
SmartOS
NetBSD
MidnightBSD
OS
X
DogeOS
FreeBSD
Debian
GNU/kFreeBSD
Linux
IllumOS
|
Capacidades de almacenamiento
Algunos límites teóricos de ZFS son:
- Número de snapshots en cualquier sistema de archivos: 281.474.976.710.656 (281 trillones)
- Número de archivos en un sistema de archivos: 281.474.976.710.656
- Tamaño máximo de:
- Sistema de archivos: 16 EB (Exabytes)
- Fichero: 16 EB (Exabytes)
- Atributos: 16 EB (Exabytes)
- Tamaño máximo de un zpool: 3 ×10^23 petabytes
- Número de atributos de un fichero (realmente limitado a 248 que es el número de archivos que puede contener un sistema de archivos ZFS): 2^56 = 72.057.594.037.927.936 (72 Quintillones)
- Número de archivos en un directorio (realmente limitado a 248 que es el número de archivos que puede contener un sistema de archivos ZFS): 2^56
- Número de dispositivos en cualquier zpool: 2^64 = 18.446.744.073.709.551.616 (18 hexallones)
- Número de zpools en un sistema: 2^64
- Número de sistemas de archivos en un zpool: 2^64
Conclusion
Una de las características que más llamó la atención en éste trabajo de investigación es el hecho de poder adicionar en cualquier momento diversos medios de almacenamientos masivo al pool de almacenamiento siendo capaz de poder trabajar con cada uno de ellos independiente de sus características y manteniendo su integridad.
Suscribirse a:
Comentarios (Atom)




