Puzzles Forever

Puzzles Forever Logo Pues otro juego más de lógica, esta vez puzzles, o lo que se llaman Jigsaw. Este tipo de puzzles son algo más complicados porque las piezas se puede rotar para simular realmente un puzzle autentico. Hay versiones para OSX y windows (supongo que que el autor sacará pronto para el iPhone como el resto de sus juegos). Es una versión de pago (15 dolares) que permite jugar a con las 6 imágenes que incorpora o importar la nuestras propias (aunque en la versión gratuita esta función está limitada).
Página oficial: http://solitaireforever.com/puzzles/index.html
Entre sus características están:

  • Se puede elegir el número de piezas hasta un total de 900
  • Se puede importa imágenes para realizar puzzles (jpg, png, tif, gif, tga, psd)
  • Diferentes tipos de forma de piezas
  • Diferentes modos de zoom
  • Posibilidad de pantalla completa
  • Rotación de piezas

Puzzles Forever

Puzzles Forever

Puzzles Forever

Klondike Forever

Klondike Forever Logo Me encantan los juegos de lógica y siempre que descubro uno nuevo lo pruebo, en este caso es una versión del solitario de siempre pero más vistoso y con efectos 3D. Existen versiones para OSX, Windows e iPhone, esta última en al App Store y son totalmente gratuitas.
Página oficial: http://solitaireforever.com/klondike/index.html
Entre sus características están:

  • Permite deshacer y rehacer sin límites
  • Modo de pantalla completa
  • Un click o doble-click para auto mover la carta a su sitio correcto.
  • Auto colocación de los ases
  • Auto giro de cartas que están boca abajo.

Klondike Forever
El mismo auto tiene una versión de pago (25 dolares) llamada Solitaire Forever con 150 versiones de solitarios de las cuales 4 versiones son gratuitas. También en versiones para OSX, Windows e iPnone.
Página oficial: http://solitaireforever.com/
Entre sus características están:

  • Más de 150 juegos (muestra más de 300 nombre conocidos)
  • Interfaz gráfico simple y bonito
  • Permite deshacer y rehacer sin límites
  • Modo de pantalla completa
  • Un click o doble-click para auto mover la carta a su sitio correcto.
  • Auto colocación de los ases
  • Auto giro de cartas que están boca abajo.

Solitaire Forever Solitaire Forever

Certificaciones Cisco: Expert (3 de 3)

Las certificaciones de Cisco pueden ser un poco enreversadas y podemos perdernos con tanto nombre, sigla y número, así que voy a tratar de aclararlo un poco aunque pondré bastante enlace externo a la web de Cisco donde explican cada certificación detalladamente (eso sí en inglés porque en español hay muy poco o yo al menos no lo he encontrado, a parte de que la web de Cisco es un lio).

  • Existen tres niveles de certificación: Associate, Professional, and Expert (CCIE representa el nivel más alto).
  • Existen seis Caminos diferentes: Routing y Switching, Diseño, Seguridad de red, proveedor de servicios, almacenamiento en red y Voz. para poder hacer coincidir el camino correcto hacia la certificación del trabajo que se desempeña o al sector que corresponda.
  • Luego existen certificaciones especializadas: Además de las certificaciones generales, los profesionales de red pueden mejorar sus conocimientos básicos de redes en lograr la certificación de especialista en tecnologías tales como la seguridad, telefonía IP, y tecnología inalámbrica.
Camino / Nivel Associate Professional Expert
Routing & Switching CCNA CCNP CCIE Routing & Switching
Design CCNA & CCDA CCDP CCDE
Network Security CCNA Security CCSP CCIE Security
Service Provider CCNA CCIP CCIE Service Provider
Storage Networking CCNA CCNP CCIE Storage Networking
Voice CCNA Voice CCVP CCIE Voice

Requisitos para la certificacion
No hay requisitos previos para la certificación CCIE; otras certificaciones profesionales o cursos de formación no son necesarios. En lugar de ello, los candidatos deben pasar primero un examen escrito de conocimiento y, a continuación, el correspondiente laboratorio practico. Se espera que tengan un profundo conocimiento de los temas incluidos en el examen y planes que tener de tres a cinco años de experiencia laboral antes de tratar de obtener la certificación. Puede revisar la preparación de exámenes materiales incluidos en esta página para obtener más información.

  • CCIE Routing y Switching (página Cisco)
    Certifica conocimientos a nivel de experto de diversas redes LAN y WAN y variedad de routers y switches.

    1. Paso 1 - examen escrito: Se debe pasar el examen escrito de dos horas de duración, de conocimientos que abarcan los conceptos de redes y algunos comandos de equipos antes de que sea posible el examen de laboratorio.
    2. Paso 2 - laboratorio: Las ocho horas de examen de laboratorio pone a prueba su capacidad real para configurar el equipo y poner una red en funcionamiento en una situación de prueba cronometrada. Se debe pasar el laboratorio dentro de los tres años desde que se aprueba el escrito para lograr la certificación. Su primer intento de laboratorio debe realizarse dentro de los primeros 18 meses.
  • CCDE (página Cisco)
    El diseño de redes y la experiencia de arquitectura a nivel de expertos.
    CCDE Se evalúa los Principios y Fundamentos del diseño de Infraestructura de red avanzada para grandes redes. Un CCDE puede demostrar su capacidad para desarrollar soluciones que se ocupan de la planificación, diseño, integración, optimización, operaciones, la seguridad y el soporte enfocado a nivel de infraestructura para redes de cliente.

    1. Paso 1 - examen escrito: Se debe pasar el examen escrito de dos horas de duración, de conocimientos que abarcan los conceptos y principios del diseño de Infraestructura de red avanzada antes de que sea posible el examen de laboratorio.
    2. Paso 2 - laboratorio: El examen de laboratorio de CCDE está todavía en desarrollo, sin embargo, será de ocho horas de durancion que pondrá a prueba su capacidad para identificar, administrar y crear soluciones avanzadas para redes de gran escala. Se debe pasar el laboratorio dentro de los tres años de pasar el examen escrito a fin de lograr la certificación.
  • CCIE Security (página Cisco)
    Certifica experiencia con protocolos y componentes de seguridad específicos , así como IP y el enrutado IP.

    1. Paso 1 - examen escrito: Se debe pasar el examen escrito de dos horas de duración, de conocimientos que abarcan conceptos de red y algunos comandos antes de que sea posible el examen de laboratorio.
    2. Paso 2 - laboratorio: Las ocho horas de examen de laboratorio pone a prueba su capacidad real para configurar el equipo y poner una red segura en funcionamiento en una situación de prueba cronometrada. Se debe pasar el laboratorio dentro de los tres años desde que se aprueba el escrito para lograr la certificación. Su primer intento de laboratorio debe realizarse dentro de los primeros 18 meses.
  • CCIE Proveedor de Servicios (página Cisco)Certifica a nivel de expertos con conocimientos y habilidades para la construcción de una infraestructura de proveedor de servicios extensible para ofrecer servicios gestionados ricos.
    1. Paso 1 - examen escrito: Se debe pasar el examen escrito de dos horas de duración, de conocimientos que abarcan conceptos y comandos de equipo relacionados con la creación de redes de infraestructura basada en paquetes antes de que sea posible el examen de laboratorio.
    2. Paso 2 - laboratorio: Las ocho horas de examen de laboratorio pone a prueba su capacidad real para configurar el equipo y poner una red de un proveedor de servicios en funcionamiento en una situación de prueba cronometrada. Se debe pasar el laboratorio dentro de los tres años desde que se aprueba el escrito para lograr la certificación. Su primer intento de laboratorio debe realizarse dentro de los primeros 18 meses.
  • CCIE Almacenamiento en Red (página Cisco)Certifica a nivel de expertos el conocimiento de soluciones de almacenamiento inteligente utilizando múltiples opciones de transporte a largas distancias.
    1. Paso 1 - examen escrito: Se debe pasar el examen escrito de dos horas de duración, de conocimientos que abarcan conceptos, gestión, aplicaciones y diseño de almacenamiento en red antes de que sea posible el examen de laboratorio.
    2. Paso 2 - laboratorio: Las ocho horas de examen de laboratorio pone a prueba su capacidad real para configurar el equipo y poner una red de área de almacenamiento en funcionamiento en una situación de prueba cronometrada. Se debe pasar el laboratorio dentro de los tres años desde que se aprueba el escrito para lograr la certificación. Su primer intento de laboratorio debe realizarse dentro de los primeros 18 meses.
  • CCIE Voz (página Cisco)Certifica a nivel de expertos conocimiento de voz a través de soluciones IP en la empresa.
    1. Paso 1 - examen escrito: Se debe pasar el examen escrito de dos horas de duración, de conocimientos que abarcan esas tecnologías y aplicaciones que componen un solución de Cisco VoIP antes de que sea posible el examen de laboratorio.
    2. Paso 2 - laboratorio: Las ocho horas de examen de laboratorio pone a prueba su capacidad real para configurar una solución VoIP en funcionamiento en una situación de prueba cronometrada. Se debe pasar el laboratorio dentro de los tres años desde que se aprueba el escrito para lograr la certificación. Su primer intento de laboratorio debe realizarse dentro de los primeros 18 meses.

Certificaciones Cisco: Professional (2 de 3)

Las certificaciones de Cisco pueden ser un poco enreversadas y podemos perdernos con tanto nombre, sigla y número, así que voy a tratar de aclararlo un poco aunque pondré bastante enlace externo a la web de Cisco donde explican cada certificación detalladamente (eso sí en inglés porque en español hay muy poco o yo al menos no lo he encontrado, a parte de que la web de Cisco es un lio).

  • Existen tres niveles de certificación: Associate, Professional, and Expert (CCIE representa el nivel más alto).
  • Existen seis Caminos diferentes: Routing y Switching, Diseño, Seguridad de red, proveedor de servicios, almacenamiento en red y Voz. para poder hacer coincidir el camino correcto hacia la certificación del trabajo que se desempeña o al sector que corresponda.
  • Luego existen certificaciones especializadas: Además de las certificaciones generales, los profesionales de red pueden mejorar sus conocimientos básicos de redes en lograr la certificación de especialista en tecnologías tales como la seguridad, telefonía IP, y tecnología inalámbrica.
Camino / Nivel Associate Professional Expert
Routing & Switching CCNA CCNP CCIE Routing & Switching
Design CCNA & CCDA CCDP CCDE
Network Security CCNA Security CCSP CCIE Security
Service Provider CCNA CCIP CCIE Service Provider
Storage Networking CCNA CCNP CCIE Storage Networking
Voice CCNA Voice CCVP CCIE Voice
  • CCNP (página Cisco)
    Valida un profesional de red de la capacidad de instalar, configurar y solucionar problemas de convergencia de los entes locales y redes de área amplia con 100 a 500 o más nodos. Profesionales de red con el CCNP han demostrado los conocimientos teóricos y prácticos necesarios para gestionar los routers y switches que conforman el núcleo de la red, así como aplicaciones de extremo que integran voz, inalámbrica y seguridad en la red.
    Requisitos: CCNA válido
    Exámenes:642-901 BSCI, 642-812 BCMSN, 642-825 ISCW, 642-845 ONT
    Validez: Las certificaciones CCNP son válidas durante tres años. Para recertificar, pasar el examen de cualquier 642 que forme parte del plan de estudios de nivel profesional después de 01/01/06, o pasar un examen escrito CCIE o CCDE.
  • CCDP (página Cisco)
    La certificación CCDP indica conocimientos avanzados en conceptos y principios de diseño de redes inteligentes. Un profesional de red con credenciales CCDP pueden discutir, diseñar y crear avanzadas y complejas arquitecturas de empresa que incluyen routing, seguridad, gestión de redes, centro de datos, IP multicast de varias capas y además redes privadas virtuales (VPN) y dominios inalámbricos.
    Requisitos: CCNA o CCDA válidos
    Exámenes:642-901 BSCI, 642-812 BCMSN, 642-873 ARCH
    Validez: Las certificaciones CCDP son válidas durante tres años. Para recertificar, pasar el examen de cualquier 642 que forme parte del plan de estudios de nivel profesional después de 01/01/06, o pasar un examen escrito CCIE o CCDE.
  • CCSP (página Cisco)
    Valida avanzados conocimientos teóricos y prácticos necesarios para garantizar las redes de Cisco. Con CCSP un profesional de red demuestra las habilidades necesarias para asegurar y gestionar infraestructuras de red para proteger la productividad, mitigar amenazas, y reducir los costos. El plan de estudios CCSP hace hincapié en Cisco Router IOS (ISR) y características de seguridad de un switch Catalyst, Dispositivo de Seguridad Adaptable (ASA), garantizar la conectividad VPN, Sistemas de prevención de intrusiones (IPS), Agente de Seguridad Cisco (CSA), Seguridad Empresarial y administración de dispositivos, Control de Admisión de red (NAC), así como las técnicas para optimizar estas tecnologías en una única solución de seguridad de red integrada. Además, CCSP aprovecha la nueva certificación CCNA de Seguridad como un requisito previo. NOTA: Los candidatos a CCSP ahora necesitan solamente cuatro exámenes (tres obligatorios y uno a elegir), con la introducción de la nueva CCNA de Seguridad como requisito previo, en lugar de los cinco exámenes requeridos actualmente (cuatro obligatorios y uno a elegir).
    Requisitos: Certificación CCDA Security.
    Exámenes obligatorios:642-503 SNSR, 642-533 IPS, 642-524 SNAF (disponible 29/8/2008)
    Examen a elegir:642-513 HIPS, 642-544 MARS, 642-515 SNAA (disponible 29/8/2008)
    Validez: Las certificaciones CCSP son válidas durante tres años. Para recertificar, pasar el examen de cualquier 642 que forme parte del plan de estudios de nivel profesional después de 01/01/06, o pasar un examen escrito CCIE o CCDE.
  • CCIP (página Cisco)
    La certificación CCIP (Cisco Certified Internetwork Professional) proporciona a las personas que trabajan en el proveedor de servicios con competencias en infraestructura de soluciones de red IP. Profesionales CCIP tienen la comprensión detallada de tecnologías de red en el área de proveedor de servicios, incluido el IP routing, QoS IP, BGP y MPLS.
    Requisitos: Certificación CCNA.
    Exámenes:642-901 BSCI, 642-642 QoS, 640-446 CIPT1, 640-661 BGP, 640-611 MPLS
    Validez: Las certificaciones CCIP son válidas durante tres años. Para recertificar, pasar el examen de cualquier 642 que forme parte del plan de estudios de nivel profesional después de 01/01/06, o pasar un examen escrito CCIE o CCDE.
  • CCVP (página Cisco)
    La certificación CCVP reconoce la creciente importancia atribuida a los profesionales de TI de hoy que son responsables de la integración de la tecnología de voz en las arquitecturas de red. Las personas con la certificación CCVP pueden ayudar a crear una solución de telefonía que sea transparente, escalable y manejable. Ganarse la certificación CCVP valida un sólido conjunto de habilidades en la aplicación, funcionamiento, configuración y solución de problemas de una red IP convergente. La certificación se centra en el contenido de Cisco Unified Communications Manager (anteriormente Unified CallManager), la calidad de servicio (QoS), gateways, gatekeepers, teléfonos IP, aplicaciones de voz, y servicios públicos en routers Cisco y los switches Cisco Catalyst.
    Requisitos: Certificación CCNA Voice.
    Exámenes:640-436 CVOICE, 640-446 CIPT1, 642-642 QoS, 640-456 CIPT2, 640-426 TUC
    Validez: Las certificaciones CCVP son válidas durante tres años. Para recertificar, pasar el examen de cualquier 642 que forme parte del plan de estudios de nivel profesional después de 01/01/06, o pasar un examen escrito CCIE o CCDE.

Certificaciones Cisco: Associate (1 de 3)

Las certificaciones de Cisco pueden ser un poco enreversadas y podemos perdernos con tanto nombre, sigla y número, así que voy a tratar de aclararlo un poco aunque pondré bastante enlace externo a la web de Cisco donde explican cada certificación detalladamente (eso sí en inglés porque en español hay muy poco o yo al menos no lo he encontrado, a parte de que la web de Cisco es un lio).

  • Existen tres niveles de certificación: Associate, Professional, and Expert (CCIE representa el nivel más alto).
  • Existen seis Caminos diferentes: Routing y Switching, Diseño, Seguridad de red, proveedor de servicios, almacenamiento en red y Voz. para poder hacer coincidir el camino correcto hacia la certificación del trabajo que se desempeña o al sector que corresponda.
  • Luego existen certificaciones especializadas: Además de las certificaciones generales, los profesionales de red pueden mejorar sus conocimientos básicos de redes en lograr la certificación de especialista en tecnologías tales como la seguridad, telefonía IP, y tecnología inalámbrica.
Camino / Nivel Associate Professional Expert
Routing & Switching CCNA CCNP CCIE Routing & Switching
Design CCNA & CCDA CCDP CCDE
Network Security CCNA Security CCSP CCIE Security
Service Provider CCNA CCIP CCIE Service Provider
Storage Networking CCNA CCNP CCIE Storage Networking
Voice CCNA Voice CCVP CCIE Voice
  • CCNA (página Cisco)
    Valida la capacidad de instalar, configurar, operar y solucionar problemas de mediano tamaño con enrutamiento y conmutación de redes, incluida la aplicación y verificación de las conexiones a sitios remotos en una WAN. Este nuevo plan de estudios incluye la base de mitigación de amenazas a la seguridad, introducción a conceptos y la terminología de las redes inalámbricas, y el rendimiento basado en competencias. Este nuevo plan de estudios también incluye (pero no se limita a) la utilización de estos protocolos: IP, EIGRP (EIGRP), Serial Line Interface Protocolo Frame Relay, RIP versión 2 (RIPv2), VLANs, Ethernet, listas de control de acceso (ACLs)
    Requisitos: ninguno
    Exámenes:640-802 CCNA
    Validez: Las certificaciones CCNA son válidas por tres años. Para recertificar, pasar el examen actual de CCNA, o pasando el examen ICND2, o pasar algún nivel profesional 642 o un examen Cisco Especialista (con exclusión de exámenes de Especialista en Ventas ), o pasar un examen escrito actual CCIE.
  • CCDA (página Cisco)
    La certificación CCDA (Cisco Certified Design Associate) indica una base de conocimientos o aprendiz de diseño de redes para la convergencia de red de Cisco. Los profesionales certificados pueden diseñar con enrutamiento y conmutación de las redes de infraestructuras y servicios que impliquen LAN, WAN, y acceso de banda ancha para las empresas y organizaciones.
    Requisitos: Nivel de conocimientos de CCNA y BCMSN son necesarios para preparar el examen de certificación CCDA
    Exámenes:640-863 DESIGN
    Validez: Las certificaciones CCDA son válidas por tres años. Para recertificar, pasar el examen actual de CCDA, o pasar algún nivel profesional 642 o un examen Cisco Especialista (con exclusión de exámenes de Especialista en Ventas ), o pasar un examen escrito actual CCIE.
  • CCNA Security (página Cisco)
    Satisface las necesidades de los profesionales de TI que son responsables de la seguridad de la red. Forma las habilidades para la inserción laboral como especialista de la Red de Seguridad, Administrador de Seguridad, y de ingeniero de soporte de Seguridad de Red. Esta certificación valida las habilidades incluidas la instalación, resolución de problemas y el control de dispositivos de red para mantener la integridad, confidencialidad y disponibilidad de datos y dispositivos y desarrolla la competencia en las tecnologías de Cisco que utiliza en su estructura de seguridad.
    Se adquirirá una introducción a las tecnologías básicas de seguridad, así como la forma de elaborar las políticas de seguridad y mitigar los riesgos. Las organizaciones de TI que emplean CCNA titulares de Seguridad tendrá el personal de TI que puede desarrollar una infraestructura de seguridad, reconocer las amenazas y las vulnerabilidades a las redes, y mitigar las amenazas a la seguridad.
    Requisitos: Certificación CCDA.
    Exámenes:640-553 IINS
    Validez: Las certificaciones CCNA Security son válidas por tres años. Para recertificar, pasar el examen actual de CCNA (wireless, security, voice), o pasar algún nivel profesional 642 o pasar un examen escrito actual CCIE o pasar un examen escrito actual CCDE.
  • CCNA Voice (página Cisco)
    Confirma que tiene la habilidad necesaria para configurar las funciones de puestos de trabajo especializados en tecnologías de voz, como administrador de tecnologías de voz, ingeniero de voz, administrador de voz. Se valida las competencias en tecnologías de VoIP, tales como soluciones de PBX IP, telefonía IP, auricular, control de llamadas y buzón de voz. Los candidatos también llegan a la exposición de arquitectura y diseño de comunicaciones unificadas de Cisco que cubre la movilidad, presencia, telepresencia y aplicaciones.
    Permite validar a las empresas que su personal posee una base sólida en aplicaciones de voz y conceptos de infraestructura, y son capaces de realizar la instalación de referencia, la explotación, y las tareas de mantenimiento en soluciones de VoIP de Cisco, en particular el Sistema de Smart Business Communications en 8-250 líneas.
    Requisitos: Certificación CCNA.
    Exámenes:640-460 IIUC
    Validez: Las certificaciones CCNA Voice son válidas por tres años. Para recertificar, pasar el examen actual de CCNA (wireless, security, voice), o pasar algún nivel profesional 642 o pasar un examen escrito actual CCIE o pasar un examen escrito actual CCDE.

Cisco Packet Tracer 5.0

Hacía ya mucho que no probaba la utilidad de Cisco para hacer laboratorios llamada  Packet Tracer pero han anunciado hace pocos días la nueva versión 5.0 y me he decidido a probarla. La verdad es que la versión 4.0 y 4.1 no me dejaron un bien sabor de boca y la verdad es que ignoré por completo esta utilidad sobre todo desde que conocí dynamips. He de reconocer que esta versión me está dejando muy buen sabor de boca especialmente ahora que estoy mirando la curricula de CCNA 4.0 y que viene repleta de actividades muy interesantes y muy prácticas relacionadas y para hacer con el Packet Tracer (y que en posteriores artículos iré comentando).

Iré ampliando este artículo e incluso iré escribiendo otros según vaya conociendo mejor esta utilidad, pero si quiero comentar una de las posibilidades y enlaces con la curricula CCNA que he probado hoy. En la curricula CCNA 4.0 exploration vienen unos ficheros para el Packet Tracer que son actividades para configurar routers y switches y según vamos avanzando nos va indicando el progreso en tanto por ciento y al final de la actividad podemos ver si está correcto o no y en que hemos fallado con lo cual podemos seguir las actividades y quedarnos tranquilos de si lo hemos hecho bien o no (ver captura 1).
Captura 1: Resultado de actividad
Como se puede ver en la captura 2 podemos hacer laboratorios bastante decentes aunque la disponibilidad de switches (2950-24, 2950T, 2960, genérico) y routers (1841, 2620, 2621, 2811, genérico) es limitada y no podemos elegir la versión de IOS (cosa que si se puede en dynamips).
Captura 2: Pantalla principal
Si pinchamos en un dispositivo (ya sea router, switch, etc) no sale un ventana con tres pestañas, Physical, Config y CLI, la cuales nos permiten configurar el dispositivo como si fuera uno físico. El CLI es realmente un CLI real, funciona el autocomplementar (usando el tabulador) e incluso funciona la ayuda (tecleando ?).
En las capturas 3 y 4 podemos ver la ventana del dispositivo (al hacer click sobre él) donde la captura 3 es la parte física del dispositivo en la cual podemos hacer zoom a la imagen del mismo y nos da información de los módulos y conexiones que tiene. En la captura 2 tenemos el CLI que es lo mismo que si nos conectamos a la consola.
Captura 3: Ventana dispositivo- pestaña física
Captura 4: Ventana dispositivo- pestaña CLI
En definitiva creo que hay que darle una oportunidad a esta utilidad de Cisco orientada con fines educativos, especialmente mirando a las certificaciones de Cisco. La única pega es que no está disponible de forma libre, es decir que si no estás en un curso de cisco no tienes acceso a ella, la verdad es que desconozco los requisitos para utilizar la herramienta, pero sé que está disponible en la web cisco.netacad.net una vez que te autenticas y entras en un curso o currícula.
Los que tengáis acceso a la web de Cisco podéis descargar el Packet Tracer desde este enlace en sus versiones para Windows o Linux, esperemos que Cisco se dé cuenta de los muchos ingenieros de red que usamos OSX y saque una versión para OSX, ya no solo de esta utilidad si no de otras muchas.

vimdiff: editando 2 ficheros diferentes

En alguna ocasión tenemos 2 ficheros que en principio son iguales pero tienen algunas diferencias, por ejemplo cuando programamos y un fichero lo modificamos  o cuando tenemos un texto y hemos modificado parte o en general cuando queremos comparar dos documentos pero no solo queremos ver las diferencias si no que además queremos ajustar esas diferencias o reducirlas.

Con el comando diff podemos ver las diferencias de 2 ficheros (incluso de más) pero no es mejor ver esas diferencias y poder modificar todo en tiempo real ?

Supongamos que tenemos 1 fichero (extraído de un fichero C):

//----------------------------------------------------------------------------
//      MagnifyEventLoopTimer
//
//      Our magnification timer. Ideally we should be event based, but we can't
//      detect every event that might cause a screen update (window move, etc.)
//      so we resort to this.
//----------------------------------------------------------------------------

pascal void
MagnifyEventLoopTimer(EventLoopTimerRef /*inTimer*/, void *inUserData)
{
        WindowRef       window = (WindowRef)inUserData;
        Point           mouse;
        GrafPtr         windowPort;
        GrafPtr         savePort;
        Rect            sourceRect;
        Rect            destRect;
        Rect            portBounds;
        SInt16          distance;
    static Point        sLastMouse = { -1, -1};

        GetPort( &savePort );
        windowPort = GetWindowPort(window);

        GetPortBounds( windowPort, &portBounds );

al cual vamos a hacer algunas modificaciones:

//----------------------------------------------------------------------------
//      MagnifyEventLoopTimer
//
//      Our magnification timer. Ideally we should be event based, but we can't
//      detect every event that might cause a screen update (window move)
//      so we resort to this.
//----------------------------------------------------------------------------

pascal void
MagnifyEventLoopTimer(EventLoopTimerRef /*inTimer*/, void *inUserData)
{
        WindowRef       window = (WindowRef)inUserData;
        Point           mouse;
        GrafPtr         windowPort;
         Rect            sourceRect;
        Rect            destRect;
        Rect            portBounds;
        SInt            distance;
    static Point        sLastMouse = { -1, -1};

        GetPort( &savePortLocal );
        windowPort =  GetWindowPort(window);

        GetPortBounds( windowPort, &portBounds );

así a simple vista es complicado ver las diferencias, para eso tenemos el comando diff:

5c5
< //      detect every event that might cause a screen update (window move, etc.)
---
> //      detect every event that might cause a screen update (window move)
15,17c15,16
<         GrafPtr         savePort;
<         Rect            sourceRect;
<         Rect            destRect;
---
>          Rect            sourceRect;
>         Rect            destRect;
19c18
<         SInt16          distance;
---
>         SInt            distance;
22,23c21,22
<         GetPort( &savePort );
<         windowPort = GetWindowPort(window);
---
>         GetPort( &savePortLocal );
>         windowPort =  GetWindowPort(window);

aunque al ser código C es mejor verlas así:

@@ -2,7 +2,7 @@
 //      MagnifyEventLoopTimer
 //
 //      Our magnification timer. Ideally we should be event based, but we can't
-//      detect every event that might cause a screen update (window move, etc.)
+//      detect every event that might cause a screen update (window move)
 //      so we resort to this.
 //----------------------------------------------------------------------------

@@ -12,15 +12,14 @@
         WindowRef       window = (WindowRef)inUserData;
         Point           mouse;
         GrafPtr         windowPort;
-        GrafPtr         savePort;
-        Rect            sourceRect;
-        Rect            destRect;
+         Rect            sourceRect;
+        Rect            destRect;
         Rect            portBounds;
-        SInt16          distance;
+        SInt            distance;
     static Point        sLastMouse = { -1, -1};

-        GetPort( &savePort );
-        windowPort = GetWindowPort(window);
+        GetPort( &savePortLocal );
+        windowPort =  GetWindowPort(window);

         GetPortBounds( windowPort, &portBounds );

con lo que vemos que se ha modificado y ahora deberíamos editar los ficheros y modificarlos por separado con nuestro editor favorito que si es vim podemos hacer algo mucho mejor y es ver las diferencias mientras los modificamos con el comando vimdiff:

vimdiff en acción

Lo que vemos con fondo rosa son líneas que tiene alguna diferencia, con fondo azul oscuro línaes que se han añadido, con fondo azul claro líneas que faltan, con fondo rojo los caracteres que cambian.
Como podemos ver en el cuadro de la izquierda tenemos una línea con fondo azul oscuro y en la parte derecha una con azul claro, indicando que hay una línea en la parte izquierda que no está en la derecha. Y con fondo rojo los cambios en un lado y otro.
Aquí estamos en el editor vim así que podemos usar todas las combinaciones de teclas y demás opciones del vim y según vayamos editando se irán comparando los dos ficheros y mostrando las diferencias.
Como recordatorio para pasar de una ventana a otra: control+w dos veces.

Gestionando la configuración de JunOS

Siguiendo con los magníficos artículos de Jeff Doyle sobre el Juniper y JunOS aquí tenéis la traducción de otro artículo más (original aquí).


Una de mis quejas durante mucho tiempo acerca de IOS es que si se escribe un nuevo comando en el CLI y pulse Enter, el comando de inmediato se convierte en activo en el router. Para alguien propenso a error, como yo (Jeff), este es un gran riesgo. Y dado que la mayoría de problemas de red se deben a un error humano en lugar de fallos de hardware y software, es un riesgo para todos.

Esto también puede ser un problema cuando se está haciendo cambios de configuración. Al tener estos cambios surtan efecto un comando cada vez, puede introducir todo tipo de condiciones transitorias.

La configuración candidata y aplicación de la configuración explicitamente

Esto lleva, por el contrario, a uno de mis características favoritas de JunOS: Cuando se hace un cambio de configuración, el cambio no surtirá efecto de inmediato. En lugar de ello, va a un archivo de configuración candidata. Se puede añadir, borrar y/o cambiar cuanto desee en la configuración, y ninguno de ellos serán activos en el router hasta que se confirme (commit). Este comando (commit) hace que la configuración candidata se convierta en la configuración activa.

La configuración candidata y la confirmación explícita (de la configuración) ayuda enormemente a reducir el número de simples errores humanos que afectan día a día a las operaciones de red. Se pueden hacer todos los cambios, comprobar como tantas veces como desee durante el proceso de configuración, y sólo se aplican cuando esté listo y estemos seguros de los cambios de configuración se ven correctos.

Rollback (marcha atrás)

Por supuesto, aún existe la posibilidad de que después de aplicar la configuración candidata el resultado no es lo que esperaba, y que desea volver a una configuración anterior. Se puede hacer eso en JUNOS ya que cuando se hace una confirmación y la configuración candidata se convierte en la configuración activa, la anterior configuración se guarda en el disco duro en el router.

Así que si quiere volver a una configuración anterior, puede introducir el comando rollback 1 y la más configuración reciente guardada se convierte en la configuración candidata. A continuación, se puede hacer que la configuración anterior sea activa de nuevo mediante la introducción del comando commit.

JUNOS guarda los últimos 49 archivos de configuración. Cuando se confirma (commit) una nueva configuración, la configuración activa anterior se guarda como juniper.conf.1. Lo que fuera juniper.conf.1 se convierte en juniper.conf.2, lo que fuera juniper.conf.2 se convierte en juniper.conf.3, y así sucesivamente. Así que si quiere volver a alguno configuración más antigua que la guardada más reciente, puede hacerlo. Por ejemplo, si introduce rollback 3, juniper.conf.3 - la configuración que estaba activa antes de las tres últimas confirmaciones (commit) - se carga como la nueva configuración candidata.

Aplicar la configuración confirmando (commit confirmed)

Supongamos que, a pesar de todos los esfuerzos para asegurar que la nueva configuración es correcta antes de aplicarla, algo se pasa por alto y cuando se aplica, que se queda el router bloqueado.

En lugar de aplicar (commit), se puede hacer la configuración candidata activa con este comando commit confirmed. Con este comando, el router espera 10 minutos para una segunda confirmación. Si no recibe confirmación dentro de los 10 minutos, el router automáticamente hace un rollback y se aplica, de manera que la configuración anterior se activa de nuevo.

El comando commit confirmed puede ser un salvavidas, recomiendo que se tenga el hábito de utilizarlo en vez de commit en todos los casos.

Puede cambiar el valor de tiempo por defecto que JUNOS espera para aplicar una confirmación entre 1 y 65535 minutos. Si, por ejemplo, se desea que el router espere tan solo 3 minutos para una confirmación, se puede introducir commit confirmed 3.

Guardar y cargar (save y load)

La configuración candidata es también una gran característica para hacer las  ventanas de mantenimiento vayan más rápidas. Imaginamos que necesitamos hacer cambios a 10 routers con un mantenimiento programado a las 2 de la madrugada. Podemos hacer los cambios antes de lo previsto en el archivo de configuración candidata y, a continuación, guardar el archivo bajo cualquier nombre que se desee, ya sea en el router el disco duro o en un servidor externo.

Cuando llegue la hora de llevar a cabo el mantenimiento, puede cargar el archivo de configuración de vuelta al fichero de configuración candidata y confirmar.

Por ejemplo, si se realiza un cambio de la configuración pre-mantenimiento y se desea guardar como Juniper3_10August_Change, se introduce el comando save Juniper3_10August_Change.

Después de salvar, es una buena idea hacer un rollback 0. Esto causa una copia de la configuración actualmente activa (juniper.conf.0) para ser la configuración candidata, evitando así una situación en la que alguien más podría entrar en el router y aplicar estos cambios antes de la hora.

Ten en cuenta que si nos encontramos en la parte superior de la jerarquía de configuración, indicado por [edit], se guarda toda la configuración. Si se está en algún nivel inferior al salvar, sólo se guarda la parte de la configuración a ese nivel. Por ejemplo, si se está en [edit protocols bgp], sólo se guarda la configuración de BGP.

Cuando se esté listo para hacer los cambios en la configuración permanente, se carga la configuración guardada a la configuración candidata con el comando load. Este comando tiene varias opciones, dependiendo de cómo se desea utilizar el archivo que se carga:

  • load override sustituye completamente la configuración actual candidata con el archivo que está cargando. Por lo tanto, si ha guardado una configuración completa, esta es la opción de usar.
  • load merge añade el archivo guardado a la configuración candidata actual. Esto es útil si va a añadir nuevas secciones de configuración, por ejemplo, si añade una configuración BGP a [edit protocolo], donde no había ninguna configuración antes de BGP.
  • load update se compara la configuración candidato y el archivo que se carga, y sólo cambia la parte de la configuración candidata que sean diferentes de la nueva configuración. Se podría utilizar esto, por ejemplo, si existe una configuración de BGP y el archivo que va a cargar hace cambios de alguna manera.
  • load replace busca las etiquetas que se han añadido al fichero que se carga, y sustituye las partes de la configuración candidata con todo lo que se especifica después de la etiqueta. Esto es útil cuando se desea más control sobre exactamente qué se está cambiado.

Después de la operación de carga, se puede comprobar la configuración candidata nueva para asegurarse que muestra los cambios que se desean y, a continuación se aplican (commit).

Hay un enfoque alternativo a la operación que se acaba de describir. Se puede hacer cambios a la configuración candidato y luego usar el comando commit, especificando la hora y el minuto más tarde el mismo día, o especificar una fecha posterior, hora y minuto. Por ejemplo, se podría aplicar commit 2008-09-21 02:30:00 y no se aplicaría hasta las 2:30 AM del 21 de septiembre de 2008 (suponiendo que el tiempo es en el futuro, de acuerdo con la fecha y hora del router).

Personalmente no me gusta este comando, ya que deja demasiado a la automatización. Prefiero grabar y cargar (save y load), lo que da un mayor control de la operación

Bash: operadores de comparación

Bash tiene un gran soporte de comparadores de todo tipo que nos permiten hacer comparaciones en los bucles y crear condiciones de todo tipo:

Comparación de enteros (números)

  • -eq
    es igual a

    if [ "$a" -eq "$b" ]
  • -ne
    no es igual a / distinto

    if [ "$a" -ne "$b" ]
  • -gt
    es mayor que

    if [ "$a" -gt "$b" ]
  • -ge
    es mayor que o igual a

    if [ "$a" -ge "$b" ]
  • -lt
    es menor que

    if [ "$a" -lt "$b" ]
  • -le
    es menor que o igual a

    if [ "$a" -le "$b" ]
  • <
    es menor que (dentro de doble paréntesis)

    (("$a" < "$b"))
  • <=
    es menor que o igual a (dentro de doble paréntesis)

    (("$a" <= "$b"))
  • >
    es mayor que (dentro de doble paréntesis)

    (("$a" > "$b"))
  • >=
    es mayor que o igual a (dentro de doble paréntesis)

    (("$a" >= "$b"))

Comparación de cadenas

  • =
    es igual a

    if [ "$a" = "$b" ]
  • ==
    es igual a

    if [ "$a" == "$b" ]
  • Nota: Aunque es un sinónimo de = el operador == se comporta diferente cuando se usa dentro de corchetes dobles que simples, por ejemplo:

    [[ $a == z* ]]   # Verdadero si $a empieza con una "z" (expresión regular coincide).
    [[ $a == "z*" ]] # Verdadero si $a es igual a z* (coincide literalmente).
    
    [ $a == z* ]     # Ocurre división de palabras.
    [ "$a" == "z*" ] # Verdadero si $a es igual a z* (coincide literalmente).
  • !=
    no es igual a / Distinto

    if [ "$a" != "$b" ]

    NOTA: este operador usa coincidencia de patrón dentro de doble corchete.

  • <
    es menor que (en orden alfabético ASCII)

    if [[ "$a" < "$b" ]]
    if [ "$a" \< "$b" ]

    Nota: el operador “<” necesita ser escapado dentro de corchetes.

  • >
    es mayor que (en orden alfabético ASCII)

    if [[ "$a" > "$b" ]]
    if [ "$a" \> "$b" ]

    Nota: el operador “>” necesita ser escapado dentro de corchetes.

  • -z
    La cadena está vacía (nulll), tiene longitud cero.

    cadena=''   # Variable de longitud cero (null)
    if [ -z "$String" ]
    then
    echo "\$String está vacía."
    else
    echo "\$String no está vacía."
    fi
  • -n
    cadena no está vacía (contiene algo)
    nota: El operador -n exige que la cadena esté entre comillas entre paréntesis. Aunque el uso son comillas puede funcionar es altamente recomendable usar comillas.

Comparaciones lógicas

  • -a
    Y lógico (and)

    exp1 -a exp2

    devuelve verdadero si ambas exp1 y exp2 son verdaderas.

  • -o
    O lógico (or)

    exp1 -o exp2

    devuelve verdadero si alguna de las expresiones exp1 y exp2 son verdaderas.

Éstos últimos operadores son similares a los operadores de Bash && (and) y || (or) cuando se usan con doble corchete:

[[ condition1 && condition2 ]]

iTerm: poner título a las pestañas

A veces cuando tenemos muchas pestañas abiertas en el iTerm, especialmente en la misma shell (ya sea local o remota)  nos interesa poder distinguirlas. Bien el propio iTerm permite hacerlo, pulsando manzana+i (⌘+i) nos aparece una ventana en la cual podemos cambiar el nombre en el campo “name”.
ventana información iTerm
También podemos añadir un texto a este nombre desde la shell usando un simple echo con una secuencia de escapes:

echo "^[]1;texto^G"

NOTA: NO vale copiar y pegar ya que no funcionará, ^] es control+v y luego esc, ^G es control+v y luego control+g, es muy importante.
Con esto añadimos a la pestaña “texto” a lo que ya estuviera:
Pestaña iTerm con texto añadido
También podemos usar otro tipo de escape que es básicamente lo mismo:

echo -ne "\033]0;texto\007"

Lo interesante de esto es que el texto puede ser una variable o una función de Bash o lo que queramos con lo cual podemos añadir que nos indique el path o directorio actual:

 echo  "^[]1;${PWD/#$HOME/~}^G"

El problema de esto es que no es dinámico y si nos cambiamos de directorio no se cambia a menos que coloquemos esa cadena de escape en la variable PS1 que se encarga de cambiar el prompt:

PS1="\[\033]0;\u@\h: \w\007\]\u@\h:\W>"

Con lo que tanto el prompt como la pestaña se irán actualizando (usuario@host:path>) según vayamos cambiando de directorio.
Yo personalmente como prompt uso el siguiente que es a color y doble línea:

PS1="\[\033[33m\]\\u\[\033[37m\]@\[\033[32m\]\\H\[\033[37m\]:\[\033[36m\]\\w\[\033[37m\]\n\\$ "

Si además queremos que nos actualice la pestaña (solo el path para que se vea mejor y más útil):

PS1="\[\033]0;\w\007\]\[\033[33m\]\\u\[\033[37m\]@\[\033[32m\]\\H\[\033[37m\]:\[\033[36m\]\\w\[\033[37m\]\n\\$ "

Esto lo podemos meter en el fichero .bash_profile de nuestra home:

# Actualiza prompt y pestaña
export PS1="\[\033]0;\w\007\]\[\033[33m\]\\u\[\033[37m\]@\[\033[32m\]\\H\[\033[37m\]:\[\033[36m\]\\w\[\033[37m\]\n\\$ "
# Actualiza solo prompt
export PS1="\[\033[33m\]\\u\[\033[37m\]@\[\033[32m\]\\H\[\033[37m\]:\[\033[36m\]\\w\[\033[37m\]\n\\$ "

NOTA: solo puede estar activo uno de los dos así comenta o borra el que no quieras.