miércoles, 27 de enero de 2016

Redes computacionales (Unidad 1)

1.1 orígenes y evolución de las redes 



1.2  Conceptos básicos de redes.

Conceptos y terminologías de las redes 


Topología de red


La topología de red se define como el mapa físico o lógico de una red para intercambiar datos. En otras palabras, es la forma en que está diseñada la red, sea en el plano físico o lógico.

Red Anillo: En ésta, las computadoras se conectan en un circuito cerrado formando un anillo por donde circula la información en una sola dirección, con esta característica permite tener un control de recepción de mensajes, pero si el anillo se corta los mensajes se pierden.


Red Bus o Canales: Su funcionamiento es similar a la de red anillo, permite conectar las computadoras en red en una sola línea con el fin de poder identificar hacia cual de todas las computadoras se este eligiendo.

Red Estrella: Aquí una computadora hace la función de Servidor y se ubica en el centro de la configuración y todas las otras computadoras o estaciones de trabajo se conectan a él. 

Medios de trasmisión de una red

Medios de trasmisión de una red


Temario redes computaciónales

redes computaciónales

Apuntes evolución del Internet jueves 28 de enero 2016   


1964: EUA quiere que sus científicos de la agencia DARPA investiguen sobre una computadora capas de resistir ataques nucleares

1971: Esta red la integraban 15 universidades, el MIT; y la NASA; y al otro año existían 40 sitios diferentes que intercambiaban mensajes entre usuarios.

1970, DARPA, le encarga a la Universidad de Stanford la elaboración de protocolos que permitieran la transferencia de datos a mayor velocidad y entre diferentes tipos de redes de ordenadores. 

1982 estos protocolos fueron adoptados como estándar para todos los ordenadores conectados a ARPANET.

Década de los 80 esta red de redes conocida como la Internet fue creciendo y desarrollándose debido a que con el paso del tiempo cientos y miles de usuarios, fueron conectando sus ordenadores.

Evolución de la historia del internet 

Cableado estructurado: 
Apuntes 03/02/2016


Consiste en un cable trenzado cables de par trenzado protegidos (Shielded Twisted PairSTP) o no protegidos (Unshielded Twisted PairUTP) en el interior de un edificio con el propósito de implantar una red de área local (Local Area NetworkLAN).

Normas de de cableado estructurado
Apuntes 03/02/2016

  • ANSI/TIA/EIA-568-B: 
  • Cableado de Telecomunicaciones en Edificios Comerciales sobre como cómo instalar el Cableado: TIA/EIA 568-B1 Requerimientos generales;TIA/EIA 568-B2: Componentes de cableado mediante par trenzado balanceado; TIA/EIA 568-B3 Componentes de cableado, Fibra óptica.
  • ANSI/TIA/EIA-569-A
  • Normas de Recorridos y Espacios de Telecomunicaciones en Edificios Comerciales sobre cómo enrutar el cableado.
  • ANSI/TIA/EIA-570-A
  • Normas de Infraestructura Residencial de Telecomunicaciones.
  • ANSI/TIA/EIA-606-A
  • Normas de Administración de Infraestructura de Telecomunicaciones en Edificios Comerciales.
  • ANSI/TIA/EIA-607
  • Requerimientos para instalaciones de sistemas de puesta a tierra de Telecomunicaciones en Edificios Comerciales.
  • ANSI/TIA/EIA-758:
  • Norma Cliente-Propietario de cableado de Planta Externa de Telecomunicaciones.
  • Protocolos de red
  • Apuntes 03/02/2016
    En informática y telecomunicación, un protocolo de comunicaciones es un conjunto de reglas y normas que permiten que dos o más entidades de un sistema de comunicación se comuniquen entre ellos para transmitir información por medio de cualquier tipo de variación de una magnitud física

TPC/IP: 
Apuntes 03/02/2016

este es definido como el conjunto de protocolos básicos para la comunicación de redes y es por medio de él que se logra la transmisión de información entre computadoras pertenecientes a una red. Gracias al protocolo TCP/IP los distintos ordenadores de una red se logran comunicar con otros diferentes y así enlazar a las redes físicamente independientes en la red virtual conocida bajo el nombre de Internet. Este protocolo es el que provee la base para los servicios más utilizados como por ejemplo transferencia de ficheros, correo electrónico y login remoto.
Ancho de banda
Apuntes 03/02/2016


El ancho de banda es la longitud, medida en Hz, de la extensión de frecuencias en la que se concentra la mayor potencia de la señal. Se puede calcular a partir de una señal temporal mediante el análisis de Fourier. Las frecuencias que se encuentran entre esos límites se denominan también frecuencias efectivas.

IEEE
Apuntes 03/02/2016

Es la mayor asociación internacional sin ánimo de lucro formada por profesionales de las nuevas tecnologías, como ingenieros eléctricos, ingenieros en electrónica, científicos de la computación, ingenieros en computación, matemáticos aplicados, ingenieros en biomedicina,ingenieros en telecomunicación, ingenieros en mecatrónica, etc.
Su creación se remonta al año 1884, contando entre sus fundadores a personalidades de la talla de Thomas Alva Edison, Alexander Graham Bell y Franklin Leonard Pope. En 1963 adoptó el nombre de IEEE al fusionarse asociaciones con el AIEE (American Institute of Electrical Engineers) y el IRE (Institute of Radio Engineers).
Según el mismo IEEE, su trabajo es promover la creatividad, el desarrollo y la integración, compartir y aplicar los avances en las tecnologías de la información, electrónica y ciencias en general para beneficio de la humanidad y de los mismos profesionales.

  • Top 10 de software de programación a través del tiempo



Administración de base de datos (Unidad 1)

Temario 
Administración de base de datos 

¿Cuáles son las funciones que realiza un DBA?

Gestión General de Base de Datos

El DBA es la persona con más conocimientos sobre base de datos en una organización. Como tal, debe entender las reglas básicas de la tecnología de base de datos relacional y ser capaz de comunicarlos con precisión a los demás.

Modelado de Datos y Diseño de Base de Datos

Un DBA debe ser un profesional experto en la recopilación y análisis de las necesidades del usuario para obtener modelos de datos conceptuales y lógicos. Esta tarea es más difícil de lo que parece. Un modelo conceptual de datos describe los requisitos de datos a un nivel muy alto, un modelo de datos lógico proporciona en profundidad los detalles de los tipos de datos, longitudes, relaciones y cardinalidad.

Auditoria

Una de las tareas de un DBA es identificar qué usuarios tienen acceso a insertar, actualizar o eliminar datos, y cuándo. Una auditoría NO sólo podría ser necesaria por un tiempo limitado, para usuarios específicos o datos específicos. También puede ser requerida  24/7 para todos los datos que se introduzcan en el DBMS. Regularmente, para realizar las funciones de autorías los DBAs tienen que trabajar en combinación con los auditores internos y externos de la empresa.

Integración con aplicaciones

La mayoría de las empresas hoy en día utilizan aplicaciones de terceros (casi nadie ya desarrolla sus propias aplicaciones in-house), muy pocas de estas aplicaciones funcionan de manera aislada. En otras palabras, las aplicaciones tienen que interconectarse unas con otras, generalmente utilizando base de datos como el medio para compartir los datos. Los DBAs a menudo se involucran en los procesos de integrar las aplicaciones existentes con las bases datos que administran. Esto puede incluir la creación de aplicaciones a medida, scripts, etc.

Resguardo y recuperación de datos

Uno de los aspectos más fundamentales del trabajo del DBA es proteger los datos de la organización. Esto incluye hacer copias de seguridad periódicas de los datos y mantenerlos a salvo de la destrucción accidental o intencional. Además, diseñar, implementar y probar un plan de recuperación para que cuando se presenten los problemas, los datos se pueden restaurar rápidamente.

Inteligencia de negocios y almacenamiento de datos

Una de las áreas de mayor crecimiento para el DBA es la Inteligencia de Negocios (BI) y almacenamiento de datos. Esto se debe a que cada vez más organizaciones están tratando de extraer toda la información que pueda con el fin de tomar mejores decisiones de negocios.

Planificación de capacidad

En la mayoría de las organizaciones, el número y tamaño de las bases de datos crece rápidamente. Es la responsabilidad del DBA gestionar el creciente volumen de datos y diseñar los planes apropiados para administrarlos. Esto incluye también la gestión del hardware donde se almacenan los datos.

Administración de cambios

La configuración del servidor SQL Server o MySQL, el esquema de base de datos, el código de Transact-SQL, y muchas otras facetas del ecosistema de aplicaciones cambian con el tiempo. A menudo es la responsabilidad del DBA realizar el análisis de impacto antes de realizar los cambios dentro de una DBMS. Implementar cambios, hacer pruebas piloto y documentar todos los cambios y procedimientos es parte del trabajo de un DBA.

Desarrollo de aplicaciones

Muchos administradores de base datos deben de desarrollar aplicaciones y scripts con el objetivo de automatizar tareas relacionadas con la inserción, sustracción o borrado de información dentro del manejador de base de datos. En general, éste debe de colaborar a nivel de integración de sistema con los desarrolladores de aplicaciones, por lo que a veces se ve en la obligación de desarrollar código para casos específicos.

SISTEMAS DE GESTORES DE BASE DE DATOS LIBRES Y NO LIBRES


Los sistemas de gestores libres son aquellos que podemos descargar sin tener que pagar alguna cantidad, por ejemplo:



  • MySQL
  • Sydes (linux)
  • SQLIFE
  • ProsgretSQL
  •  Filebird
  • ApacheDerby
  • DBD2 express-C DB2



Sistemas de gestores de datos de base de datos No libres ejemplo:


  • Microsoft Access
  • Microsoft SQL Server
  • Open Access
  • Oracle
  • Paradox
  • Adbantase
  •  Dbase
  • Foxpro
  •  IBMDB2
  • IBM Informics
  • InterBase
  • Sibase (Todas las versiones)

Esquema de una base de datos



Aporte del Blog

Sam's c̶l̶u̶b̶ blog

Ver Blog Original




        Aporte del Blog 
Redes de computadora
Admon de Base de datos
Lenguaje de interfaz




Manual My SQL  
Manual SQL


Crear base de datos en MySQL WorkBench
Vídeo







Vídeo Crear tablas en MySQL WorkBench



Instalar My SQL WORKBENCH


Links de descarga

Ejemplos de tablas en MY SQL WORBENCH

Tabla Base de Datos Escuela 

Tabla Videojuegos

Tabla Productos



Lenguaje de interfaz (Unidad 1)

Temario Lenguaje de interfaz  

Lenguaje de interfaz  

Macros

Es una serie de instrucciones que se almacenan para que se puedan ejecutar de manera secuencial mediante una sola llamada u orden de ejecución.

Pasos para realizar una macro en word  

Paso 1  Abrir word e ir a en el menu vistas en la esquina ahi el botón macros


Paso 2 Presionar en el botón grabar macro

Paso 3 Aparecerá un una ventana en la cual aplanaremos el botón y seleccionaremos el guardar el macro en todos los documentos y luego aceptar.


Paso 4 Al presionar botón aparecerá un menu donde puedes ponerle una imagen a tu botón solo lo presionas y lo pasas a agregar ahi lo seleccionas de nuevo y presionas el botón de abajo que dice modificar te aparecerá una lista de dibujos que puedes usar como botones puedes seleccionar uno y aceptar.


Paso 5 ya que hayas echo esto aparecerá un casett como dibujo todo lo que hagas a partir de ahi se grabara hasta que tu presiones detener grabación en el area de macros.

 Paso 6 una vez terminado la grabación aparecerá un botón en la esquina y al presionarlo todo lo que hayas grabado aparecerá automáticamente.

Ver código

Se va  a la area del menu de macros y se selecciona ver macros.


Se presiona en el menu que aparece modificar y aparecerá el código.



Unidad I: Introducción al lenguaje ensamblador

Introducción al lenguaje ensamblador


1.1 Importancia de la programación en lenguaje ensamblador

Para comenzar el curso empezaremos conociendo que es el lenguaje ensamblador que utilizaremos y algunos conceptos básicos del mismo.

El lenguaje ensamblador

Es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de microprocesador.

Importancia 

La importancia del lenguaje ensamblador es principalmente que se trabaja directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de este, tiene la ventaja de que en el se puede realizar cualquier tipo de programas que en los lenguajes de alto nivel no lo pueden realizar. Otro punto sería que los programas en ensamblador ocupan menos espacio en memoria. 

Uso y aplicaciones del lenguaje ensamblador 
El lenguaje ensamblador tiene nichos específicos donde es importante. Pero, en general, los modernos compiladores de optimización para traducir lenguajes de alto nivel en código que puede correr tan rápidamente como el lenguaje ensamblador escrito a mano. 

El uso del lenguaje ensamblador le permite al programador indicarle al computador exactamente cómo llevar a cabo una tarea específica usando la menor cantidad de instrucciones.

-   Mejorar la eficiencia de una rutina específica que se ha transformado en un cuello       de botella
-  Obtener acceso a funciones de bajo nivel del procesador para realizar tareas que no    son soportadas por los lenguajes de alto nivel
-  Escribir manejadores de dispositivos para comunicarse directamente con hardware     especial tales como tarjetas de red
-  Trabajar en ambientes con recursos limitados puede requerir el uso del lenguaje          ensamblador pues el código ejecutable puede ser menor que el generado por el            compilador

Características del lenguaje ensamblador

El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya que su estructura se acerca al lenguaje máquina.

El lenguaje ensamblador es difícilmente portable.

Los programas hechos por un programador experto en lenguaje ensamblador son generalmente mucho más rápidos y consumen menos recursos del sistema.

Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un microprocesador por lo que se pueden crear segmentos de código difíciles y/o muy ineficientes de programar en un lenguaje de alto nivel.

-  También se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir que se interrumpa durante su ejecución.

Lenguajes de bajo nivel 
Apuntes 02/02/16 
Son lenguajes totalmente dependientes de la máquina, es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas. 

Al estar prácticamente diseñados a medida del hardware, aprovechan al máximo las características del mismo. 

Dentro de este grupo se encuentran: 

  • El lenguaje maquina: este lenguaje ordena a la máquina las operaciones fundamentales para su funcionamiento. Cnsiste en la combinación de 0's y 1's para formar las ordenes entendibles por el hardware de la maquina. 
    Este lenguaje es mucho más rápido que los lenguajes de alto nivel. 
    La desventaja es que son bastantes difíciles de manejar y usar, además de tener códigos fuente enormes donde encontrar un fallo es casi imposible.
  • El lenguaje ensamblador es un derivado del lenguaje maquina y esta formado por abreviaturas de letras y números llamadas mnemotécnicos. Con la aparición de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje máquina. Como ventaja con respecto al código máquina es que los códigos fuentes eran más cortos y los programas creados ocupaban menos memoria. Las desventajas de este lenguaje siguen siendo prácticamente las mismas que las del lenguaje ensamblador, ñadiendo la dificultad de tener que aprender un nuevo lenguaje difícil de probar y mantener.
  •  mnemotécnicos  
  • es un sistema sencillo utilizado para recordar una secuencia de datos, nombres, números, y en general para recordar listas de items que no pueden recordarse fácilmente. 

Casilleros mentales

Tener una lista de palabras perfectamente conocida y organizada en la mente que asociaremos con las palabras que queremos memorizar. Cada palabra que queremos memorizar se asociará con la palabra de nuestro casillero que coincide con esa posición. De esta manera se puede memorizar de forma rápida listados de palabras, que además podremos conocer el orden de lista.

Conversiones numéricas

Esta técnica es utilizada para memorizar números. Se trata de convertir números en consonantes (cada número tiene asociada un grupo de consonantes) y con estas consonantes formar palabras añadiendo libremente vocales. Las palabras, al contrario que pasa con los números, son imaginables (es más fácil recordar una palabra que un número). Hay practicantes de la nemotecnia que prefieren hacer conversiones fijándose en la fonética en vez de las consonantes; de esta manera la letra "C" cuando suena fuerte como en "casa" le corresponde un número diferente que cuando suena como en "cielo".
Aquí van los ejemplos de cada número y su consonante que lo identifica:
1=T,D - 2=N,Ñ - 3=M - 4=C - 5=L,LL - 6=S,Z - 7=F,J - 8=G,H o bien sonido "Ch"- 9=P,V,B - 0=R,RR
Entonces, si queremos memorizar el número 1572 reemplazamos cada número por su consonante. 1=T 5=L 7=F 2=N. Ya tenemos las consonantes, ahora le agregamos las vocales que nos parezca conveniente y formamos una palabra conocida. En este caso TeLéFoNo. Cada vez que necesitemos recordar el número 1572, nos acordaremos de un teléfono y el valor de cada consonante descifrando así el número.


Lenguajes de Medio nivel 
Apuntes 02/02/16 

Se trata de un termino no aceptado por todos, pero q seguramente habrás oído. Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos lenguajes podría situarse C ya que puede acceder a los registros del sistema, trabajar con direcciones de memoria, todas ellas características de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel. 


Lenguajes de alto nivel 
Apuntes 02/02/16 Son aquellos que se encuentran más cercanos al lenguaje natural que al lenguaje máquina. 
Están dirigidos a solucionar problemas mediante el uso de EDD's. 
Nota: EDD's son las abreviaturas de Estructuras Dinamicas de Datos, algo muy utilizado en todos los lenguajes de programación. Son estructuras que pueden cambiar de tamaño durante la ejecución del programa. Nos permiten crear estructuras de datos que se adapten a las necesidades reales de un programa.
Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una máquina a otra sin ningún tipo de problema. 

Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la maquina/s para la que están diseñando el programa. Tan solo necesitan un traductor que entiendan el código fuente como las características de la maquina. 

Suelen usar tipos de datos para la programación y hay lenguajes de propósito general (cualquier tipo de aplicación) y de propósito especifico (como FORTRAN para trabajos científicos).


Compilador 
Apuntes 02/02/16 
Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce como compilación.

El NASM
Apuntes 02/02/16 fue escrito originalmente por Simon Tatham con ayuda de Julian Hall, y actualmente es desarrollado por un pequeño equipo en SourceForge que le hace mantenimiento

El Microsoft Macro Assembler (MASM) 
Apuntes 02/02/16 
es un ensamblador para la familia x86 de microprocesadores. Fue producido originalmente por Microsoft para el trabajo de desarrollo en su sistema operativo MS-DOS, y fue durante cierto tiempo el ensamblador más popular disponible para ese sistema operativo.

El GAS, o GNU Assembler, 
Apuntes 02/02/16 
es el ensamblador del proyecto GNU. Es el back end por defecto del GNU Compiler Collection y es usado para compilar Linux y otros sistemas operativos como el sistema operativo GNU. Es una parte del paquete GNU Binutils, y se puede acceder con el comando as desde el shell. Al igual que el resto de aplicaciones GNU, es software libre, y es licenciado bajo GNU General Public License.

Flat assembler (FASM)
Apuntes 02/02/16 
 es un ensamblador libre, multi-paso, con el estilo de la sintaxis de Intel que soporta las arquitecturas IA-32 y x86-64. El proyecto fue iniciado en 1999 por Tomasz Grysztar, que en aquella época era un estudiante no graduado de matemáticas en Polonia. El FASM está escrito en lenguaje ensamblador, viene con el código fuente completo, y fue capaz de ensamblarse a sí mismo (bootstrapping) desde la versión 0.90 del 4 de mayo de 1999. El primer lanzamiento público fue anunciado la 15 de marzo de 2000.

¿Cual de los 4 lenguajes de ensamblador es conveniente utilizar? Apuntes 03/02/16 

El mas conveniente de utilizar es  NASM

- Utiliza intel y es mas sencillo para utilizar. 

-Es diseñado para ser potable y modulable. 

- Puede utilizarse en sistemas operativos como Linux y Microsoft 

-Puede usarse en computadoras de 32 y 64 bits.


Historia de el lenguaje ensamblador 

Presentación lenguaje ensamblador y su evolución  


Manual SASM

Ver Manual 


Resumen Lenguaje ensamblador y introducción del código de NASM 09/02/16
Con Actualización 20/02/2016 (pagina 20).

Ver presentación con el resumen.

Vídeos de lenguaje ensamblador basado en el microprocesador.

Parte 1



Parte 2


Parte 3



GUI Turbo Assembler (TASM)




Vídeos del Curso de lenguaje ensamblador 



Resumen de la introducción a ensamblador de INTEL