Una de Virtualización…montando un Citrix Xen desktop 7 (parte 1º)

Hola a todos

Llevo un tiempo queriendo iniciar esta sección sobre virtualización pero por diversas cuestiones he ido aplazándolo (lamento los retrasos y la distancia entre post y post, pero  entre las practicas, el trabajo, los niños, etc, etc me faltan horas en el día…)

Al grano vamos a crear un Xen desktop versión 7.*, con todos sus requerimientos, para ello crearemos una serie de máquinas virtuales e iremos viendo esos pasos uno a uno.

Pero antes como siempre, antes de instalar vamos a ver qué es lo que realiza Xen Desktop:

“Citrix XenDesktop ofrece aplicaciones y escritorios Windows como servicios móviles seguros. Con XenDesktop, TI puede movilizar la empresa a la vez que reduce los costos centralizando el control y la seguridad de la propiedad intelectual. Con toda la potencia de XenApp, XenDesktop puede entregar escritorios completos o solo las aplicaciones a cualquier dispositivo. Las tecnologías HDX proporcionan a XenDesktop un aspecto y sensación nativos táctil optimizado para el tipo de dispositivo, así como para la red.”(fuente)

Para realizar estas funciones el software ha de estar implementado sobre este esquema lógico:

Logical-Diagram2(fuente)

Sigue leyendo

Tips para mejorar tu estilo de programacion (II)

Hola a todos.

Hoy os traigo la segunda parte de la serie “Tips para mejorar tu estilo de programación“, en la cual aprenderemos algunos consejos para mejorar nuestro código. Sino habéis leído el primero aquí os lo dejo Tips para mejorar tu estilo de programacion (I).

Os recuerdo que en el post anterior veíamos la importancia de usar nombres y clases descriptivos/representativos, además de tener una uniformidad en el idioma en todo nuestro proyecto.

Siguiendo en la misma línea, veamos el siguiente fragmento de código:

exampleclass

Como podemos ver los nombres de las variables son sustantivos que representan una entidad y los métodos representan una acción por lo que suelen contener un verbo.

En nuestro caso tenemos el método GetName que devuelve el nombre de la clase Persona y el método IsOnline que devuelve un booleano en función del contenido de la variable online. En ambos casos hemos utilizado una notación CamelCase , es decir, la primera letra de cada palabra la está en mayúsculas y el resto en minúsculas.

La notación CamelCase es la más utilizada en los equipos de programadores al ser más intuitiva que el resto de notaciones .Aunque también existe la notación Húngara en la cual se agrega al principio de la variable el tipo al cual pertenece.

Si utilizamos nombres descriptivos y representativos conseguiremos evitar escribir más comentarios de los debidos. Es decir, si tenemos un código de 30 líneas y tenemos  15 de comentarios, deberíamos revisar el código y reescribir las variables y métodos para conseguir eliminar comentarios; con el fin de tener un código más comprensivo y útil.

En la segunda parte de este artículo sobre tips para mejorar tu estilo de programación vamos con los comentarios.

El primer objetivo de los comentarios es que tienen que ser útiles, es decir, no debemos comentar cosas obvias, así que, reflexiona antes de comentar si es necesario o no.

Ejemplo:

totalclientes

Además, debemos evitar agregar comentarios dentro de métodos y funciones, puesto que tenemos que comentar qué hace el método y no el cómo lo hace. Con una breve definición de lo que hace, cuales son los parámetros de entrada (si tiene) y cuál es el valor que retorna (si tiene) es más que suficiente.

Veamos un ejemplo en Java.

commen1t

Analicemos este fragmento de código. Podemos ver que hemos agregado las etiquetas @param (indica los parámetros de entrada) y @return (indica los parámetros de salida), es la forma en la cual se debe comentar un método o clase en Java.

Si seguimos esta estructura de comentario conseguiremos un estilo limpio, claro y comprensivo. Además, al utilizar las etiquetas de @param y @return (*) podemos generar una pequeña API de forma automática para nuestro proyecto gracias al comando javadoc <nombrearchivo>.java .

Finalmente, añadir que los comentarios también deben de mantenerse, ser claros, precisos y con un lenguaje educado (recuerda que trabajas en equipo y debes ser respetuoso con tus compañeros). Comenta el código conforme lo estás escribiendo y no lo dejes para el final.

Espero que os haya gustado y que de esta forma poco a poco vayamos teniendo un código más limpio y comprensivo.

En la próxima entrega veremos la parte de espacios, tabulaciones y líneas en blanco.

(*) Nota: Más información sobre los comentarios en Java (Enlace).

Un saludo,

Daniel (@DaniLabs)

Una Colaboración excepcional

Hola a todos
Como os habréis fijado hemos iniciado una serie de labs con los que se irá complementando lo que mi amigo Roberto (@1Gbdeinfo) publique de teoría sobre el apasionante mundo de ipv6, trataremos de que trate todos las cuestiones (enrutamiento, seguridad, etc) y que implique un poco de interacción por vuestra parte en forma de labs que deberán ser configurados por vosotros.
Espero que os resulten entretenidos.
Un abrazo

Un poco de IPv6 (por 1gbdeinfo)

 
 
 
Siguiendo con la teoría que ya empecé a escribir hace unos días, vamos a ver un poco de IPv6.
 
IPv6 aparece como respuesta al agotamiento de las direcciones públicas IPv4.
Recordemos que el direccionamiento de IPv4 era de 32 bit, en cambio el direccionamiento de IPv6 es de 128 bit, es decir,  2128 direcciones IP públicas disponibles.
 
Veamos los beneficios que nos da la implementación de IPv6:
  • Mayor espacio de direccionamiento.
  • Direccionamiento jerárquico e infraestructura de enrutamiento.
  • Configuración de direccionamiento con estado (DHCP) y sin estado (configuración automática de routers para acceder a Internet).
  • Soporta IPSec.
  • Conmutación end – to – end.
  • Soporta QoS (Quality of Service, calidad de servicio.
  • Mejora el rendimiento en entornos de única subred, Link Local (parecido a lo que eran las direcciones APIPA en IPv4).
  • Extensible. 

 
Diferencias entre IPv4 e IPv6.

 

Formato de direccionamiento.
  • 128 bit en binario.
  • La dirección en binario se divide en ocho bloques de 16 bits.
  • Cada bloque de 16 bits se convierte a HEX (hexadecimal) BASE 16.
  • El resultado se simplifica mediante la eliminación de ceros.
 



*Si hay un cero a la izquierda, este se elimina. Si hay dos ceros se convierten en : (dos puntos). Si dos ceros van seguidos de otros dos ceros, se convierten en :: (doble dos puntos).

Veamos un ejemplo para simplificar:
 
Separamos en grupos de 4 dígitos

0010  0000  0000  0001
  2        0        0        1
Otro ejemplo:

0010  1111  0011  1011             Binario
  2        F        3        B                Hexadecimal
          (15)              (11)              Decimal
 


Os dejo una tabla de hexadecimal, decimal y binario para que no os suene a chino.

Roberto García Amoriz (@1GbDeInfo)

LAB 1- CONFIGURACION SIMPLE IPV6 (LINK-LOCAL Y SUBREDES) SIN ENRUTAMIENTO.

Hola a todos

Como complemento al apartado de teoría que mí amigo Roberto (@1gbdeinfo) ha posteado, hoy os voy a mostrar como sin complicarnos la vida en demasía se puede configurar un pequeño lab para irnos introduciendo en Ipv6.

Vamos a partir de escenarios simples e iremos subiendo la dificultad, hasta llegar a enrutamiento dinámico con múltiples áreas en packet tracert, hasta configuraciones de active directory, routers virtuales etc en entorno GN3, espero que tengáis paciencia ya que son entornos que llevan su tiempo para su preparación…

En estos labs no se procederá a la configuración total del escenario, si no que se configurara solo un ejemplo de la correcta configuración con la idea de que sea descargado el escenario y configurado por el lector.

Hoy vamos a configurar un lab sencillo compuesto de dos routers, conectados mediante interfaz serial, que a su vez tienen cada uno dos subredes conectadas a sus respectivas interfaces Ethernet, una imagen vale mas que mil palabras…

corregida1

Sigue leyendo