miércoles, 28 de octubre de 2015


CAPITULO #6
SELECT AVANZADO
Tur-Bus


Autor              : Adiel Palominos F.
Competencia  : Comunicación oral y escrita.
Asignatura      : Introducción a los sistemas de base de datos.
Palabras clave : Data base, empresa.

Descripción de la Actividad.-

Se solicita que por grupos de trabajo se asuma que fuimos contratados por una empresa para manipular sus bases de datos.


Solución.-

Equipo: Adiel Palominos.
              Alex Contreras.
              Dennis Vera.

              Juan Fuentes.

En esta ocasión fuimos contratados por Tur Bus para manipular sus bases de datos, tomando una muestra de todo el movimiento de pasajeros en el mes de abril para realizar un análisis de este.  


TUR-BUS (Clientes_abril).






















Ordenar registros – ORDER BY-.

Los resultados de una consulta SELECT pueden ser ordenados según los valores de uno o varios atributos usando la clausula – ORDER BY

SELECT <Nombre columna>     FROM<Nombre de la tabla> 
ORDER BY  <Nombre columna> 
ASC / DESC


        - Ascendente (ASC) o Descendente (DESC).

SELECT (*) FROM Clientes_abril ORDER BY Origen.























Agrupar datos – GROUP BY- .

Con esta clausula podemos realizar algunas operaciones sobre grupos de datos (o la totalidad).
COUNT(*) cuenta los registros en cada grupo.

SELECT <Nombre columna>,COUNT(*)
AS <Nombre>
FROM <Nombre tabla>

GROUP BY <Nombre columna>

SELECT COUNT(*)AS Cantidad_V, Rut, Nombre, Apellido , Origen FROM clientes_abril GROUP BY rut ORDER BY COUNT(*) DESC

 


FUNCIONES Min(*) y Max(*).

Min(*) > SELECT MIN (precio_pasaje) AS PRECIO_MAS_BAJO, Origen, Destino, Tipo_servicio FROM clientes_abril


Max(*) > SELECT MAX(precio_pasaje) AS PRECIO_MAS_ALTO,Origen,Destino,Tipo_servicio FROM clientes_abril


Clausula –DISTINCT-.


Al incluir la cláusula DISTINCT en la SELECT, se eliminan del resultado las repeticiones de los registros.

          SELECT DISTINCT <columna> FROM <nombre de la tabla>

Antes:














Ejecutamos: SELECT DISTINCT RUT FROM CLIENTES_ABRIL ORDER BY RUT

Después:














   Te invito a que compartas tus comentarios o consultas si requieres más información, o que profundice algún tema.

VELNEO V7
(Autor: Adiel Palominos F)


Competencia   : Creatividad e innovación.
Asignatura       : Introducción Desarrollo de aplicaciones empresariales.
Palabras clave : Velneo v7, empresa, buses.

Descripción de la Actividad.-


Se solicita que por grupos de trabajo se cree una aplicación en base a una herramienta RAD(rapid application development) dada por el profesor.   

Solución.-

Utilizando esta herramienta, dirigimos nuestra atención a la base de datos, una herramienta que gracias a su gran cantidad de enlaces (punteros) nos dio la posibilidad de hacer una infinita serie de modificaciones en ella, basamos nuestra aplicación creando una base de datos de choferes relacionando esta información con la de máquinas de una empresa.

Descripción de la aplicación.


Nuestra aplicación consiste en un sistema de control de encargado de buses mediante una base de datos de Velneo.




















Lo que tendrá esta aplicación son las operaciones básicas de una base de datos que son:

1.    Agregar datos (chofer, bus).


Agrega datos mediante un menú donde pedirá los datos de chofer o bus dependiendo el nuevo dato que se agregue. Tendrá funciones de autocompletado y cargar imagen en ambos casos, en esta última incluso tendrá un editor integrado para realizar cambios a la imagen.





2.    Búsqueda avanzada (chofer, bus).


La búsqueda se podrá realizar por la ID, trozo de una palabra y la palabra completa mostrando todos los resultados coincidentes. Al dar clic en un dato se abrirá una nueva pestaña donde se podrá eliminar y editar el dato seleccionado.





3.    Mostrar todos los datos (chofer, bus).


Existe un menú listar (buses o choferes), y dar clic al igual que en el caso anterior se podrá eliminar o editar el dato seleccionado.




4.    Eliminar datos (chofer, bus).


Para eliminar datos es necesario seleccionar mediante una búsqueda el cual al cliquear el dato nos mostrará una nueva pestaña donde podremos eliminar el dato.





5.    Editar datos (chofer, bus).
 

Para editar los datos se dirige al mismo menú que para eliminarlo, y se edita cualquier parámetro y para guardar los cambios se dará clic al botón Atrás.




Reflexión.-


Velneo cumplió nuestras expectativas de ser una herramienta potente, estable, fácil uso en comparación a otras, además posee un muy buen soporte, comunidades en habla hispana, y lo más importante fue su eficacia y rapidez de construcción de nuestra aplicación. Su interfaz y su gran variedad de herramientas logran generar una aplicación potente de múltiples plataformas muy personificable con gran variedad de funciones. Las ventajas de esta herramienta es que genera una interfaz  de manera automática, sin preocuparse de los protocolos de cada plataforma.

Te invito a que compartas tus comentarios o consultas si requieres más información, o que profundice algún tema.


Banda ancha satelital

Autor: Adiel Palominos F.
Competencia   : Trabajo en equipo.
Asignatura       : Interconexión de redes (Networking).
Palabras clave : Banda ancha, satélite, red.

Descripción de la Actividad.-


Se solicita que por grupos de trabajo se presente un sistema de comunicación en red especifico dando a conocer el funcionamiento de los equipos necesarios.

Solución.-

Integrantes: Erik Antillanca P.
    Alex Contreras
Juan Gallardo B.

Adiel Palominos 


Se dio a conocer lo que era la banda ancha satelital, de igual manera se nombraron los componentes, y así mismo características de este tipo de conexión, en las cuales se encontraron su ancho de banda, bandas de frecuencias que utilizaba, entre otras.

Banda ancha satelital.

Es un método de conexión a Internet utilizando como medio de enlace un satélite. Es un sistema recomendable de acceso en aquellos lugares donde no llega el cable o la telefonía, como zonas rurales o alejadas. En una ciudad constituye un sistema alternativo a los usuales, para evitar cuellos de botella debido a la saturación de las líneas convencionales y un ancho de banda limitado.

No requiere de una línea telefónica adicional en ciertos casos.

Su Equipamiento puede ser arrendado a un ISP o en su efecto comprado (indiferente de eso, se debe cancelar un plan de suscripción).

Bandas de frecuencias utilizadas por los satélites.



Equipamiento y plataforma.

Las señales llegan a este punto donde son subidas en el head-end, se utilizan generalmente antenas 
Banda C, desde un telepuerto satelital.

Las conexiones suelen ser de fibras ópticas, y el diámetro de las antenas, es superior a 10 metros.

Existen telepuertos satelitales en Chile que pertenecen a Entel, TuVes HD, Movistar (Ex CTC), CTR, entre otras. 

El satélite.

De tipo  Geo Estacionario, existe una gran variedad de satélites proveedores de servicios, en distintas bandas de transmisión (Ka, Ku, C).

Uno de los satélites más conocidos es el Amazonas (Banda Ka, Ku, C) a 61°W, el Hispasat (C, Ku) a 30°W, Intelsat IS 14 (C, Ku) a 43,0°W y el ArSat1 (C, Ku) a 71,8°W y el Venesat 1 (Ka, Ku, C) a 78°W.

La recepción.

Se baja la señal, usando una antena que es de banda C, Ku o Ka.

Es procesado por un modem satelital (estos son unidos a través de un cable coaxial).

El modem se une a un router, usando un cable Ethernet, este enrutador es el encargado de proveernos de internet.

Límites de ancho de banda.

Sistema
Up Link
Down Link
Full Dúplex
Hasta 2Mpbs
Hasta 6 Mbps
(En chile)
Half Dúplex
Depende de la conexión telefónica
Hasta 10 Mbps
(Solo EEUU)




Equipo necesario.

Para conectarse a Internet vía satélite son necesarios los siguientes elementos:

- Módem (externo o en tarjeta PCI) para satélite (DVB-S).
- Antena parabólica y soporte.
- iLNB1 o LNB interactivo, como Norsat 1200HC.2.
- Alimentador de corriente.
- Módem telefónico o conexión con Internet capaz de realizar envío de datos, si el acceso es unidireccional, aunque lo más habitual es que sea bidireccional y que esto no sea necesario.



Módem para satélite.

Existen dos tipos de módems para la conexión por satélite, en función de la conexión a Internet:

- Los módems unidireccionales: sólo pueden recibir datos, sólo cuentan con un canal de entrada, también llamado directo o "forward" y son conocidos como DVB-IP. Así, para enviar y recibir datos desde Internet se necesita además una conexión terrestre (telefónica o por cable).


- Los módems bidireccionales: capaces de recibir y enviar datos, además del canal de entrada, cuentan con un canal de retorno (subida), vía satélite. Estos módems cuentan con el estándar DOCSIS over satellite y, adicionalmente, con DVB-RCS (Return Channel vía Satellite), no necesita una conexión adicional convencional.

Reflexión.-


Gracias a esta actividad hemos podido comprender un poco de que constituye la banda ancha satelital, tanto así, hemos conocido algunos de los equipos necesarios para tener una antena de conexión satelital en nuestro hogar, y de igual manera algunos conceptos necesarios que nos han llevado a entender de mejor manera lo que es la internet por satélite.

Las antenas de conexión satelital son de gran ayuda al momento de que querer proporcionar conectividad a lugares de difícil acceso, donde no llega el cable o la telefonía, como zonas rurales. En una ciudad constituye un sistema alternativo a los usuales, para evitar cuellos de botella debido a la saturación de las líneas. Por tanto la banda ancha satelital es un sistema muy eficiente al momento de proporcionar una conexión.

Te invito a que compartas tus comentarios o consultas si requieres más información, o que profundice algún tema.

miércoles, 14 de octubre de 2015

Lab#11.


Autor               : Adiel Palominos F.
Competencia   : Aprendizaje autónomo.
Asignatura       : Arquitectura de Hardware.
Palabras clave  : Interprete, lenguaje, pygame, ctype.
Descripción de la Actividad.-


Usted deberá implementar un sistema interprete, el cual debe interpretar = ejecutar cada una de las sentencias = instrucciones, las cuales son de un nuevo lenguaje dado por el profesor, este no posee funcionalidad, por lo cual usted deberá dársela.






































Solución.-







En primer lugar importamos pygame, necesario para plasmar los comandos de una manera gráfica, esto ayudo a verificar si el funcionamiento de nuestro intérprete estaba correcto, en segundo y último lugar se importó ctypes, necesario para crearle una estructura a nuestro robot.




Estas variables se inicializan en la parte superior de nuestro código, una de ellas está encargada de dar el tamaño a nuestra ventana de pygame, la otra es para controlar la ejecución del ciclo while  de pygame.






Creamos una estructura para nuestro robot, estaba encargada de recibir las posiciones nX e nY de las imágenes.










En esta función “readFile”, lo que hacemos es retornar una matriz con los datos ya preparados para su posterior uso durante la ejecución del programa.






Esta función como lo dice su nombre, estaba encargada de actualizar la posición del robot, como el de pintarlo en el mapa, los parámetros que recibe, primero “nR”, este está encargado de recibir la rotación de nuestra imagen, y el otro “nD”, para mover nuestro robot, en esta función controlamos los límites de nuestra pantalla, y de la misma manera el control de los parámetros que este recibe.







Como su nombre lo dice, estaba encargada de cargar las imágenes que usaría posteriormente nuestro programa.








Creamos una función encargada de dar inicialización a la ventana de pygame.















Como se puede observar esta es una parte de nuestro  Main principal”.

Primero definidos los parámetros con los cuales trabajara el nuestro interprete, aquí se puede observar que es necesario que en nuestro archivo esté presente el comando “BEG” (principio archivo) y “END” (final archivo), estos servirán para indicar él inicio y el termino de nuestra lista de comandos, si estos están presentes en el la matriz “nInts”, se inicializara nuestro programa y sus complementos necesarios, en caso que no estén presentes alguno de los comandos antes mencionados lanzara un mensaje como el siguiente “Error al cargar las instrucciones”.

 En este “Main” también se encuentra el ciclo principal de pygame, dentro de este se hacen los respectivos llamados a las funciones antes explicadas, todo de acuerdo a los comandos que estén presentes en el archivo “demo.acs”.

Programa en ejecución:

















Reflexión.-

Tras haber realizado el trabajo se puede destacar que resulta sumamente útil para comprender  y obtener conocimientos muy interesantes.  ¿Por qué?, porque tuvimos la posibilidad de idear una funcionalidad a un lenguaje que no la tenía.  Se trabajó con librerías que nos permitían obtener los resultados de cada ejecución en modo gráfico. Además es importante destacar, el uso de conocimientos obtenidos en el curso, estos fueron de gran importancia  para lograr el óptimo resultado de este laboratorio, al haber trabajado con ellos en proyectos anteriores se logró completar sin mayores problemas esta actividad.

   Te invito a que compartas tus comentarios o consultas si requieres más información, o que profundice algún tema.
Lab#3.


Autor               : Adiel Palominos F.
Competencia   : Orientación a la calidad.
Asignatura      : Programación para la integración de sistemas.

Palabras clave : Lenguaje c, punteros, estructuras, memoria dinámica.

Descripción de la Actividad.-

Desarrollar y encontrar un método correcto de resolución de problemas planteados utilizando punteros, estructuras, array y archivos en lenguaje C.

Solución.-

Tomando en cuenta los problemas planteado en el presente laboratorio, éste tendrá por objetivo trabajar en lenguaje C utilizando punteros con manejo de archivos y en python respectivamente, todo esto para lograr trabajar y desarrollar el laboratorio planteado que veremos más adelante haciendo uso de los conocimientos adquiridos y trabajados en el ramo.

   1.  Utilizando el archivo generado por Python “ventas.dat”, éste generará 100.000 registros. Una vez generados los registros se debe leer éste archivo mediante lenguaje C y realizar ciertos cálculos de ventas que serán mostrados a continuación.

a)      Calcular las ventas totales por productos e imprimir por pantalla.


Para desarrollar ésta problemática se planteó realizar una estructura con los elementos entregados por el archivo ventas.dat el cual será la base del desarrollo de las siguientes preguntas, en éste caso se realizó la función suma_x_Producto en el cual se planteó el uso de variables de tipo int en éste caso cod y CostoP, el primero(cod) nos servirá para tener un comparador de códigos mediante un for y luego compararlo con el dato que se encuentra dentro de la estructura, una vez que se ha leído el archivo CostoP dará la venta total por cada producto.



b)      Calcular ventas totales por fecha e imprimir por pantalla.

Para abordar el siguiente ejercicio de separar las ventas totales por fecha se generó variables de tipo int con el anio, mes, dia y el costo asociado, y variables tipo char para poder almacenarlos, a su vez se generó un puntero fecha para utilizarlo en las funciones donde se separará el archivo para obtener los datos requeridos.

En la imagen a continuación se podrá observar el desarrollo con  3 for para ir trabajando las fechas correspondientes, luego se utilizará strcat para ir concatenando las cadenas de acuerdo a lo que antes se había realizado de ir leyendo la fecha separada en anio,mes y día, luego de esto inicializamos CostoF y entramos al while para poder trabajar con el archivo datos, luego si comparamos la fecha separada y la fecha que nos entrega el archivo de ventas, si este  es igual a 0 entonces éste imprimirá las ventas totales por fecha.



c)      Calcular las ventas totales por rango de horas e imprimir por pantalla.


Para calcular las ventas totales por rango de horas se implementará una hora inicial y una final para lograr la comparación de la hora inicial con la de termino, esto se trabajó utilizando punteros, y separando los datos del archivo mediante strtok el cual rompe la cadena, retornando el puntero al comienzo del primer token, y luego se utiliza un atoi para transformarlo a entero. Una vez separado y reunida la información abrimos el archivo  de forma binaria, para luego leer e ir extrayendo según la estructura antes mencionada, dentro de éste ciclo de lectura el programa se enfoca a la extracción de datos de acuerdo a los delimitadores que tiene la hora. Luego y para lograr llegar al objetivo que se nos presenta, comenzamos con una serie condicionales las cuales nos permitirán diferenciar los rangos de horarios, dentro de los cuales tenemos horas distintas, horas iguales pero con diferencia de minutos, a medida que se van realizando las comparaciones se va sumando a la variable total cada valor que este en ese rango de hora.




d)      Calcular las ventas totales e imprimir por pantalla

Para calcular éstas ventas se inicia un ciclo while que mientras no sea el final del archivo no             terminara, se abre el archivo de ventas.dat, y se lee los datos de costo y margen para obtener los totales de las ventas.

El total de las ventas es igual al total + costo del producto*(+1(margen del producto/100)).


2.Realiza lo mismo que el problema anterior mediante un array.


Se debe realizar lo anterior mediante un array del tipo eReg y sólo con los 10.000 últimos registros del archivo ventas.dat, la programación se realiza en C.

Como se puede apreciar en la imagen, solamente se debe llenar el arreglo antes utilizado llamado eReg con la diferencia de que anteriormente éste usaba 100.000 registros y ahora solamente se utilizarán los 10.000 últimos registros del archivo ventas.dat, explicado esto las funciones anteriormente realizadas son las mismas, lo único que pide en éste apartado es que se llene el arreglo, para abordar el segundo ejercicio, declaramos la función llena_arreglo_struc() , para el cual utilizaremos  2 variables de tipo int, los cuales funcionarán para almacenar en la  estructura y el otro como contador para ir recorriendo los últimos 10.000 registros del archivo inicial.


Luego de abrir el archivo ventas.dat, leemos éste y asignamos los datos en el arreglo leer [10000],  esto lo hacemos ayudados del contador “i” que servirá para ir subiendo en las posiciones del arreglo y otro contador “cont” el cuál dará el acceso a esos últimos 10.000 registros, para poder ir guardando los últimos registros en el arreglo.

3. Realizar lo anterior, utilizando punteros.


aLista debe ser un bloque de memoria donde cada dirección apunta a eRegPara comenzar el desarrollo de lo anterior aLista queda  declarado como un arreglo puntero que apunta hacia la estructura eReg.























Luego de esto en nuestro main principal abriremos el archivo, aquí trabajamos con los últimos 10.000 registros. Generamos un bloque de memoria para cada posición del arreglo puntero aLista, en el cual cada dirección apunta a la estructura eReg y a la cual asignamos cada parámetro dentro del registro de ventas con el uso de la variable de tipo estructura leer.


Reflexión.-

   Tras haber realizado el trabajo se puede destacar que resulta sumamente útil para comprender lo que realmente se puede lograr con un lenguaje de programación. Para mí personalmente, esta actividad me resulto un gran desafío ya que por un lado, no era muy experimentado, y porque ademas se debía tener en cuenta varios conceptos aprendidos. Sin embargo, se logró completar sin mayores problemas esta actividad, ademas de eso logramos obtener un conocimiento más amplio, por lo cual se devió llevar a la práctica muchos conocimientos en relacionados a este lenguaje.

   Te invito a que compartas tus comentarios o consultas si requieres más información, o que profundice algún tema.