martes, 20 de septiembre de 2016

Topologías 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.

Tipos de Topologías

  • Bus
Una red en bus es aquella topología que se caracteriza por tener un único canal de comunicaciones (denominado bus, troncal o backbone) al cual se conectan los diferentes dispositivos. De esta forma todos los dispositivos comparten el mismo canal para comunicarse entre sí.



  • Estrella
Una red en estrella es una red de computadoras donde las estaciones están conectadas directamente a un punto central y todas las comunicaciones se hacen necesariamente a través de ese punto (conmutador, repetidor o concentrador). Los dispositivos no están directamente conectados entre sí, además de que no se permite tanto tráfico de información. Dada su transmisión, una red en estrella activa tiene un nodo central “activo” que normalmente tiene los medios para prevenir problemas relacionados con el eco.
Se utiliza sobre todo para redes locales (LAN). La mayoría de las redes de área local que tienen un conmutador (switch) o un concentrador (hub) siguen esta topología. El punto o nodo central en estas sería el switch o el hub, por el que pasan todos los paquetes de usuarios.
Es la topología utilizada por la plataforma de Google.


  • Anillo
Una red en anillo es una topología de red en la que cada estación tiene una única conexión de entrada y otra de salida. Cada estación tiene un receptor y un transmisor que hace la función de traductor, pasando la señal a la siguiente estación.
En este tipo de red la comunicación se da por el paso de un token o testigo, que se puede conceptualizar como un cartero que pasa recogiendo y entregando paquetes de información, de esta manera se evitan eventuales pérdidas de información debidas a colisiones.
En un anillo doble (Token Ring), dos anillos permiten que los datos se envíen en ambas direcciones (Token passing). Esta configuración crea redundancia (tolerancia a fallos). Evita las colisiones.


  • Árbol
La red en árbol es una topología de red en la que los nodos están colocados en forma de árbol. Desde una visión topológica, es parecida a una serie de redes en estrella interconectadas salvo en que no tiene un nodo central. En cambio, tiene un nodo de enlace troncal, generalmente ocupado por un hub o switch, desde el que se ramifican los demás nodos. Es una variación de la red en bus, la falla de un nodo no implica interrupción en las comunicaciones. Se comparte el mismo canal de comunicaciones.

La topología en árbol puede verse como una combinación de varias topologías en estrella. Tanto la de árbol como la de estrella son similares a la de bus cuando el nodo de interconexión trabaja en modo difusión, pues la información se propaga hacia todas las estaciones, solo que en esta topología las ramificaciones se extienden a partir de un punto raíz (estrella), a tantas ramificaciones como sean posibles, según las características del árbol.


  • Híbrida
En la topología híbrida o topología mixta las redes pueden utilizar diversas topologías para conectarse.
La topología mixta es una de las más frecuentes y se deriva de la unión de varios tipos de topologías de red, de aquí el nombre de “híbridas” o “mixtas”.
Ejemplos de topologías mixtas: en árbol, estrella-estrella, bus-estrella, etc.
Su implementación se debe a la complejidad de la solución de red, o bien al aumento en el número de dispositivos, lo que hace necesario establecer una topología de este tipo. Las topologías mixtas tienen un costo muy elevado debido a su administración y mantenimiento, ya que cuentan con segmentos de diferentes tipos, lo que obliga a invertir en equipo adicional para lograr la conectividad deseada.



sábado, 4 de junio de 2016

Reporte de prácticas. Aplicaciones Android en Eclipse.

Práctica 1.

Iniciamos Eclipse y abrimos una carpeta nueva para guardar nuestras aplicaciones. abrimos File> New> Android Application Project, guardamos el nombre y se abre nuestro nuevo proyecto Android.
Dejamos el texto de "Hello World!" y agregamos 10 objetos de Form Widgets y Text Fields a nuestra pantalla para ir conociendo cómo son algunos de ellos. Yo agregue un TextView, varios Plain Text y un Button.


Práctica 2. Hola Mundo. 

Iniciamos Eclipse y abrimos nuestra carpeta ya creada. Abrimos File> New> Android Application Project y guardamos nuestra práctica con el nombre de "ProyectoHolaMundo". Di doble click en el texto que aparecía en la pantalla y te lleva directamente al código de la aplicación. Vas hasta el penúltimo renglón y borras el escrito que aparecía en la pantalla para cambiarlo por "Hola Mundo...!!!". Guardamos y en la estructura de carpetas que esta hacia la izquierda seleccionas "ProyectoHolaMundo" y despues "RunAs>2AndroidApplication" y te abre una nueva ventana con botones y una pantalla donde sale el texto que ingresamos anteriormente.


Layouts.
Práctica 3. 

Iniciamos Eclipse y abrimos nuestra carpeta. Abrimos File> New> Android Application Project y se abre nuestro nuevo proyecto Android. Nos vamos a la carpeta de Activity_main.xml, en la pestaña de abajo con el mismo nombre nos aparece el codigo de la aplicacion, el cual borraremos todo. Regresamos a la pestaña de "Graphical Layout" y aparecerá en gris, es normal. Abren la carpeta encontrada en "Palette" llamada "Layouts" y seleccionamos "GridLayout" para arrastrarlo hacia la pantalla en gris. Después de eso abrimos la carpeta de "Form Widgets" y aplicamos 5 figuras a nuestro Layout ya aplicado.

Práctica 3.2

Borramos el código que se encuentra en la pestaña de Activity_main.xml y regresamos a insertar un nuevo Layout en nuestra pantalla gris. Insertamos el Layout "Table Row" y tres nuevos objetos de "Form Widgets".


Práctica 4. Datos Personales. 
(Layout horizontal y vertical)

Repetimos los pasos de la práctica 3, pero esta vez agregamos en lugar de un "GridLayout" un "Layout horizontal" al cual le agregaremos el objeto de "Text Medium", damos sobre los objetos click derecho> Editar texto y escribimos en el último recuadro "Nombre", "Apellido Paterno", "Apellido Materno", "Sexo" y "Edad" que son los datos personales que se le pueden pedir a cualquier persona. 

Al borrar el código y aplicar un Layout vertical no se pueden agregar varios objetos bien distribuidos a él.



Práctica 5. Agenda Personal.

Iniciamos Eclipse y abrimos nuestra carpeta ya creada. Abrimos File> New> Android Application Project y guardamos nuestra práctica 5 con el nombre de Agenda Personal. Insertamos en el Layout varios "Medium Text" de la carpeta "Form Widgets" y escribimos los textos de "Nombre", "Numero de celular", "Numero de casa", "Correo Electrónico" y "Domicilio" que son los datos mas importantes que requerimos de una persona. Seguido de cada uno de los textos agregamos los objetos "Person Name", "Plain Text", "Phone", "Postal Address" para que se puedan ingresar los datos que se piden.


Práctica 6. Hospital.

Iniciamos Eclipse y abrimos nuestra carpeta ya creada. Abrimos File> New> Android Application Project y guardamos nuestra práctica 6 con el nombre de Hospital. Insertamos en el Layout varios "Medium Text" de la carpeta "Form Widgets" y escribimos los textos de "Nombre del paciente", "Edad", "Sexo", "Diagnóstico" y "Tipo de Sangre" que son los datos que se piden cuando un paciente es ingresado a un hospital. Seguido de cada uno de los textos agregamos los objetos "Person Name", "Plain Text" y dos "Radio Button" a los cuales les editamos el texto dando click derecho> Editar texto por "Masculino" y "Femenino" para elegir entre los dos.

Práctica 7. Escuela.

Iniciamos Eclipse y abrimos nuestra carpeta ya creada. Abrimos File> New> Android Application Project y guardamos nuestra práctica 7 con el nombre de Escuela. Insertamos en el Layout varios "Medium Text" de la carpeta "Form Widgets" y escribimos los textos de "Nombre del alumno", "Grado", "Grupo", "Nombre del tutor", "Telefono cel tutor" y "Dirección" que son los datos mas importantes que se deben tener de cada alumno en un escuela. Seguido de cada uno de los textos agregamos los objetos "Person Name", "Plain Text", "Phone" y "Postal Address" que nos dan la opción de ingresar los datos requeridos.

Práctica 8. Banco.

Iniciamos Eclipse y abrimos nuestra carpeta ya creada. Abrimos File> New> Android Application Project y guardamos nuestra práctica 8 con el nombre de Banco. Insertamos en el Layout varios "Medium Text" de la carpeta "Form Widgets" y escribimos los textos de "Nombre del cliente", "No. de Cuenta", "No. de Teléfono", "Dirección" y "Referencias" que son los datos que se piden en un banco para cualquier tramite que vayan a solicitar. Seguido de cada uno de los textos agregamos los objetos "Person Name", "Plain Text", "Phone" y "Postal Address" que nos dan la opción de ingresar los datos requeridos.

Práctica 9. Supermercado.

Iniciamos Eclipse y abrimos nuestra carpeta ya creada. Abrimos File> New> Android Application Project y guardamos nuestra práctica 9 con el nombre de Supermercado. Insertamos en el Layout varios "Medium Text" de la carpeta "Form Widgets" y escribimos los textos de "Nombre del Producto", "Código del producto", "Precio", "Cantidad", "Descuento", "Forma de Pago" y "Total" que son los datos que se utilizan para poder atender un supermercado. Seguido de cada uno de los textos agregamos los objetos "Plain Text" y dos "Radio Button" editando el texto a "Contado" y "Crédito" que irán en el Medium Text "forma de Pago".





viernes, 3 de junio de 2016



Cómo configurar la máquina virtual.

Las máquinas virtuales son programas que imitan a un móvil (su parte software), y al bundle de Android trae instalado un gestor de máquinas llamado (Android Virtual Devide Manager), y se puede encontrar en la barra superior de este entorno.



Al hacer clic en este icono, nos abre una ventana nueva, en la cual nos muestra la lista de los dispositivos que hemos creado.

Para crear nuestra primera máquina virtual, simplemente le damos al botón “New…” y nos aparecen unas opciones que debemos completar varios campos.


  • AVD Name: El primero es el nombre con el que queremos denominar el emulador de Android.
Lo denominamos con un nombre distintivo, ya que podemos tener muchas máquinas virtuales, y queremos diferenciarlas por sistema operativos, dpis, tamaño de la pantalla o tipo de dispositivo.

  • Device: El siguiente campo a rellenar es para que escojamos el dispositivo que queramos.

Podemos elegir el dispositivo que mejor se ajuste a nuestras necesidades, tenemos los móviles de Google, los nexus, y otros genéricos por tipo de pantalla, pulgadas, o densidad de pixeles por pulgada.

  • Target: Aquí elegimos la versión de Android que nos convenga, o que queramos instalar al dispositivo.

Las versiones de Android las tenemos que tener descargadas desde el SDK Manager, lo cual explicamos en el anterior post, y está linkeado al principio de este documento.

  • CPU/ABI: Aquí podremos elegir el tipo de procesador que usará la máquina virtual.

Los siguientes parámetros son menos importantes que estos primeros, pero debemos configurarlos, como la RAM del dispositivo, que recomiendo poner 512 MB, o si queremos que la cámara sea nuestra webcam y demás.

Lo último importante que debemos asignar es usar la GPU de nuestro ordenador, para que la máquina sea más fluida.

Una vez hecho esto, tendremos nuestra máquina lista para probar nuestras aplicaciones Android, y así no tener que usar nuestro móvil.






Layout

Layout es un término de la lengua inglesa que no forma parte del diccionario de la Real Academia Española (RAE). El concepto puede traducirse como “disposición” o “plan” y tiene un uso extendido en el ámbito de la tecnología.

La noción de Layout suele utilizarse para nombrar al esquema de distribución de los elementos dentro un diseño. Es habitual que un diseñador que se dedica a la creación de páginas web desarrolle un Layout y se lo presente a su cliente para que éste lo apruebe y decida sobre la distribución de los contenidos.

El Layout, en este sentido, puede ser una especie de plantilla que presenta tablas o espacios en blanco. La idea es que, a partir del Layout, la página web comience a desarrollarse con sus contenidos específicos. El Layout puede estar compuesto, por ejemplo, por un rectángulo a modo de cabezal y por tres columnas. Dicho esquema es genérico y puede usarse para desarrollar múltiples sitios web.


Tipos de Layout para Aplicación Android en Eclipse

Vamos a ver distintos tipos de Layout que podemos utilizar en nuestro desarrollo para una plataforma Android. Los tipos de los que disponemos son:

  •            Layout Lineal
  •          Table Layout
  •         Absolute Layout
  •          Relative Layout
  •          Frame Layout



Layout Lineal

Es el Layout más simple que podemos utilizar. Como su nombre indica, los elementos se irán colocando uno detrás de otro, pero sí que podemos indicar si la colocación lineal se hará de forma vertical u horizontal.

Para ponerlo de forma vertical, en la propiedad “orientation” hay que indicarle el valor “vertical”.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="vertical" android:layout_width="fill_parent"
         android:layout_height="fill_parent">

         <Button android:text="Button01" android:id="@+id/Button01"
                 android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

         <Button android:text="Button02" android:id="@+id/Button02"
                 android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

Si lo que queremos es darle una orientación horizontal, el valor de la propiedad será “horizontal”.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="horizontal" android:layout_width="fill_parent"
         android:layout_height="fill_parent">
 
         <Button android:text="Button01" android:id="@+id/Button01"
                 android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
 
         <Button android:text="Button02" android:id="@+id/Button02"
                 android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
 
</LinearLayout>


Table Layout

Es un modelo de organización basado en una organización con tablas. El diseño lo organizaremos en filas (elemento TableRow) y dentro de cada fila, pondremos los elementos.

<?xml version="1.0" encoding="utf-8"?>
<TableLayout android:id="@+id/TableLayout01"
         android:layout_width="fill_parent" android:layout_height="fill_parent"
         xmlns:android="http://schemas.android.com/apk/res/android">
         <TableRow android:id="@+id/TableRow01">
                 <TextView android:id="@+id/TextView01" android:text="First Name:"
                          android:width="100px" />
                 <EditText android:id="@+id/EditText01" android:width="220px" />
         </TableRow>
 
         <TableRow android:id="@+id/TableRow02">
                 <TextView android:id="@+id/TextView02" android:text="Second Name:" />
                 <EditText android:id="@+id/EditText02" />
         </TableRow>
 
         <TableRow android:id="@+id/TableRow03">
                 <Button android:id="@+id/Button01"
            android:layout_width="wrap_content"
                          android:layout_height="wrap_content" android:text="Submit" />
 
                 <Button android:id="@+id/Button02"
            android:layout_width="wrap_content"
                          android:layout_height="wrap_content" android:text="Reset"
                          android:width="100px" />
         </TableRow>
</TableLayout>

Layout Relativo

Este es el layout más flexibles de todos. Los elementos se colocan relativos a otro elemento o a otro Layout.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/RelativeLayout01"
         android:layout_width="fill_parent" android:layout_height="fill_parent"
         xmlns:android="http://schemas.android.com/apk/res/android">
 
         <TextView android:id="@+id/TextView01"
        android:layout_width="wrap_content"
                 android:layout_height="wrap_content" android:text="First Name:"
                 android:width="100px" />
 
         <EditText android:id="@+id/EditText01" android:layout_width="220px"
                 android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/TextView01"
                 android:layout_below="@+id/RelativeLayout01" />
 
         <EditText android:id="@+id/EditText02" android:layout_width="220px"
                 android:layout_height="wrap_content"
        android:layout_below="@+id/EditText01"
                 android:layout_alignLeft="@+id/EditText01" />
 
         <TextView android:id="@+id/TextView02"
        android:layout_width="wrap_content"
                 android:layout_height="wrap_content" android:text="Second Name:"
                 android:width="100px" android:layout_below="@+id/EditText01"
                 android:layout_toLeftOf="@+id/EditText02" />
 
         <Button android:text="Submit" android:id="@+id/Button01"
                 android:layout_width="100px" android:layout_height="wrap_content"
                 android:layout_below="@id/EditText02"
        android:layout_alignLeft="@id/EditText02" />
 
         <Button android:text="Reset" android:id="@+id/Button02"
                 android:layout_width="100px" android:layout_height="wrap_content"
                 android:layout_below="@id/EditText02"
        android:layout_alignRight="@id/EditText02" />
 
</RelativeLayout>

Absolute Layout

Es una capa donde se utilizan coordenadas X e Y para indicarle donde colocar los elementos dentro del diseño. En cada elemento del código se le indicará el valor de X y de Y.

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout android:id="@+id/AbsoluteLayout01"
         android:layout_width="fill_parent" android:layout_height="fill_parent"
         xmlns:android="http://schemas.android.com/apk/res/android">
         <EditText android:id="@+id/EditText01" android:layout_width="200px"
                 android:layout_height="wrap_content" android:layout_x="12px"
                 android:layout_y="12px" />
         <Button android:text="Search" android:id="@+id/Button01"
                 android:layout_width="100px" android:layout_height="wrap_content"
                 android:layout_x="220px" android:layout_y="12px" />
</AbsoluteLayout>

Frame Layout

Este Layout consiste en un marco que ocupa toda la pantalla, y donde los controles se dispondrán a partir de la esquina superior izquierda, por lo que es probable que haya elementos que se queden ocultos detrás de otros.

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:id="@+id/FrameLayout01"
         android:layout_width="fill_parent" android:layout_height="fill_parent"
         xmlns:android="http://schemas.android.com/apk/res/android">
 
         <ImageView android:id="@+id/ImageView01" android:src="@drawable/android"
                 android:layout_width="fill_parent"
        android:layout_height="fill_parent"
                 android:scaleType="center" />
 
         <TextView android:text="Android Partaker" android:id="@+id/TextView01"
                 android:layout_width="wrap_content"
        android:layout_height="wrap_content"
                 android:layout_marginBottom="20dip"
        android:layout_gravity="center_horizontal|bottom"
                 android:padding="10dip"
        android:textColor="#AA0000" android:textStyle="bold"
                 android:textSize="20px" android:background="#00000000" />
 
</FrameLayout>