martes, 31 de julio de 2012

#Trim #Perl #Tips

En días pasados publiqué una entrada de como eliminar espacios en blanco en #Perl, esta es una versión más corta para hacerlo en una sola línea, digamos una función trim like

$_ =~ s/^\s+|\s+$//g;

lunes, 30 de julio de 2012

#Tip: Convertir de minúsculas a mayúsculas (y viceversa) #Perl con tr/[]/[]/

Para convertir las mayúsculas a minúsculas en una cadena, se hace lo siguiente:

$_ =~ tr/[A-Z]/[a-z]/

Para convertir las minúsculas a mayúsculas se hace lo siguiente:

$_ =~ tr/[a-z]/[A-Z]/

domingo, 29 de julio de 2012

Entorno gráficos en servidores (porque los sysadmin no los usan).

En esta oportunidad quiero conversar sobre los entornos gráficos en los servidores.

Hace algún tiempo discutía con un colega quien me recalcaba mi necedad de no utilizar un entorno gráfico en un servidor (entiéndase por un entorno gráfico un gnome, kde, fluxbox, etc...) y más aún me insistía lo fácil que resultaban las configuraciones de un servidor Windows por tener interfaces gráficas.

Básicamente mis motivos o los que les daba en aquel entonces eran los siguientes:

  1. Cualquier interfaz gráfica que agregue representa uso de recursos del servidor Necesarios para el procesamiento de lo que sea que sirva.
  2. Un sysadmin no debería estar frente a los servidores, sino en remoto. (En este punto me alego que para eso estaban los software de control remoto) mi respuesta fue: Al problema de entorno gráfico le agrego un proceso más como un software de control remoto causando adicional a la disminución de recursos mas problemas del que cuidarme como parches de seguridad.
    En este punto me alegó que ssh era un proceso de acceso remoto, y respondí sí, creado para eso y que corre como cualquier otro proceso independiente del entorno gráfico.
  3. Si se necesita correr un programa que requiera entorno gráfico, entonces se hace un X Forward incluso SSH facilita esta tarea.
    En este punto en particular, recuerdo que necesitábamos instalar Lotus Domino en un servidor con Linux, por lo que para argumentar mi punto inicie el instalador en modo gráfico mediante X Forward y un tunel ssh.

En fin, para un sysadmin, la carga de procesos en su servidor es crucial, y no quieren desperdiciar un solo kbyte de memoria en procesos que son prescindibles.

Adicionalmente, es más geek hacerlo de esa manera. :-D


Algunas recomendaciones para liberar recursos.

  • Deshabilitar los procesos que no se usen. (update-rc.d).
  • Los entornos gráficos no son necesarios.
  • Limpiar los paquetes descargados de instalaciones (aptitude clean).
  • Una alternativa pero que requiere de mayor conocimiento es compilar un kernel a la medida, esto tiene dos problemas generar el kernel con cada actualización de seguridad y estar pendiente de las novedades de seguridad.

viernes, 27 de julio de 2012

Perl: Eliminar espacios en blanco (Tip).

Para eliminar los espacios en blanco de una cadena en perl se hace elo siguiente:

$_ =~ s/\s//g;

Esto eliminará automáticamente todos los espacios en blanco de la cadena.

Eliminar carácteres al inicio de una cadena.

Si se quiere eliminar todos los espacios en blanco al inicio de una cadena:

$_ =~ s/^\s+//;

Eliminar los carácteres al final de una cadena

Para eliminar los carácteres al final de una cadena:

$_ =~ s/\s+$//;

martes, 24 de julio de 2012

Redacción de documentos (de forma inteligente)

En esta oportunidad quiero compartir una de mis herramientas preferidas: Lyx.

Lyx, es lo que se puede llamar un frontend para Latex. Nos permite la redacción de documentos de forma inteligente ocupándose de los estilos y permitiendonos preocuparnos por lo importante, el documento.

Su principal característica es que es un editor WYSIWYM (What You See It's What You Mean) lo que ves es lo que quieres decir. Por lo que nos permite estructurar un documento sabiendo que lo que decimos es lo que debe ser (adiós a los espacios fantasmas) y luego como por arte de magia generamos un documento (postscript, pdf, web).

¿Qué tipos de documentos se pueden hacer?:

  • Presentaciones (con el complemento beamer).
  • Libros.
  • Currículos.
  • Tesis.

(son algunos de los que he realizado hasta ahora).

lunes, 23 de julio de 2012

CloudComputing (y su lado poco discutido).

Es innegable el avance del CloudComputing (Computación en la Nube), la capacidad de ofrecer un software como servicio es una de las virtudes de la nube, imaginen la posibilidad de tener un servicio listo donde quieras que te encuentras sin necesidad de configurar, realizar instalaciones engorrosas y menos aún asistir técnicamente a todas las computadoras.

No pretendo extenderme hablando de CloudComputing como tal sino de algunas de las cosas que poco se discuten sobre la misma.

Una de las ventajas que te ofrecen con el CloudComputing es que ahorras dinero al tener los servicios centralizados y que solo pagas lo que usas, pero hay que ver lo que se encuentra detrás de todo esto.

  1. Si bien es cierto que se paga por lo que se usa, en la mayoría de los casos los licenciamientos son para más, por lo que si no se estima bien la cantidad de usuarios puedes verte amarrado en un contrato por lo menos hasta que termine el mismo.
  2. El modelo de CloudComputing, por lo menos desde mi humilde punto de vista incrementa los riesgos del monopolio, ya que te amarra una empresa. Imaginen que tienen una cantidad importante de información almacenada en un servicio de nube como Google Docs, y deseamos movernos a Office 365 entonces:

    • ¿Cómo haría el proceso?
    • ¿Tendríamos que tener los dos modos de licenciamiento abiertos hasta poder terminar de migrar la información?
    • ¿Quien me asiste a mover la información de la casa rival?
  3. Imaginen un escenario donde llega un cliente/proveedor con un archivo digital en llamémosle Word, el archivo es el compendio de todos los manuales corporativos y pesa la humilde cantidad de 5GB. Tendría que subirlo a la nube para poderlo abrir (Obviamente no tengo suite ofimática local que sentido tendría tener los dos), ¿Cúanto tarda esto?, Lo modifiqué, el cliente/proveedor lo necesita, ¿cómo se lo doy? (Se que tienen mecanismos de compartición de archivos, y que yo le compartiría el enlace, pero la cuestión aquí es que esto apoya el punto 2. Fuerzo a una persona a usar una plataforma.)

  4. Los temas de privacidad no están claros: Supongamos un escenario donde los servidores de almacenamiento se encuentran en E.E.U.U. pero el servicio se encuentra en un país donde es legal la poligamia, ¿El país donde se encuentran los servidores por orden legal de ese país pueden ingresar a mi información aunque en mi país la poligamia sea legal?

Lamentablemente en el punto 4 entra a jugar una variable de la que poco se habla en el Internet, que es la ubicación física del cloud. Hasta ahora muchos han hecho pensar que el Internet no tiene ubicación física, y que por consiguiente no reside en ninguna parte, esto es falso, las interacciones e ideas que fluyen por el Internet son así, pero lo que se puede consultar, foros, páginas, blogs, wikis (Facebook, twitter, youtube), tienen una ubicación física, y las ubicaciones físicas se encuentras normadas por las leyes del estado/país donde esta, obvio que dependiendo del caso tendrán más de una ubicación y puede ser en diferentes países, pero esto solo complica el panaroma.

Cloud Computing Privada y Pública

Ahora bien, como si esto no fuera suficiente, le vienen a vender al usuario promedio dos nuevas ideas CloudComputing Privada y CloudComputing Pública.

¿Pero bien como se mastica esto?

La respuesta fácil es: igual. Es lo mismo, el concepto aplica es al ámbito, si lo aplicas en una LAN o directamente en Internet.

El problema aquí es que se está descubriendo el agua tibia (al igual que paso con los tablets) Lo único que cambia aquí es el modo, anteriormente comprabas un software y ahora sencillamente lo alquilas y traspasas costos de mantenimiento y operación al proveedor.

El concepto de CloudComputing privado puede tener dos vertientes, la primera a la modalidad en la cual los privilegios se encuentran signados únicamente a una rol (Por ejemplo una empresa) y otro en el cual el proveedor coloca un servicio físico en las instalaciones del cliente (Ejemplo colocar un servidor pero la operación es a costas del proveedor)


Otras desventajas.

Una desventaja más es la posibilidad de personalizar, es decir, el software es como es y hace lo que hace. Por ejemplo no puedo querer que la Suite de Office 365 trabaje ahora con documentos de gráficos vectoriales, puedo pedirlo al proveedor, pero su respuesta dependerá de muchos factores, supongamos que estoy en una nube donde edito documentos, y se me ocurre editar los documentos vía mensaje de texto (SMS), probablemente para mí eso represente una gran solución, pero en el universo del proveedor no, ya que el tendrá 10.000 usuarios y solo yo quiero eso. Esto nos lleva a otra Ventaja/Desventaja:

Ventaja:

No debemos preocuparnos por las actualizaciones, siempre estaremos en la última versión.

Desventaja:

Debemos preocuparnos por las actualizaciones, siempre estaremos en la última versión

Para aquellos que no entienden, probablemente no han sufrido o padecido un no me abre un archivo de office 2003 en 2007. Para quien lo padeció sabe a qué me refiero.

Qué pasa si las actualizaciones no son compatibles con mi modelo de negocios.

Por ejemplo:

Supongamos que la empresa "A" tiene un software bajo SAS de nomina. Entonces La reglamentación (leyes) cambian y le dan a la empresa 1 año para adecuarse a la nueva normativa; el proveedor inmediatamente adecuará su software, y lanzará la actualización digamos que al segundo mes desde aprobada la nueva ley, la empresa "A" no tiene aún listos los procedimientos internos porque están tranquilos porque tienen un año para adecuarse, abre el día de hoy el software y se encuentran con que ha cambiado.

¿Qué debe hacer la empresa?

No le queda de otra que adaptarse; el problema es que en un ambiente sano, los sistemas trabajan para las empresas y no las empresas para los sistemas.

Obvio que se puede alegar que existen contratos de servicios, y que tal vez mi ejemplo es algo extremo, solo quería exponerlo de forma clara, puede pasar con algo menos sutil, una macro de un archivo.

Hace pocos días una persona que conozco casi realiza una transferencia de USD$ 55,800.00 porque el proveedor de servicios cambio la "," por un "." en la manera de expresar las cifras.

Entonces ¿Es malo el CloudComputing?

No, el problema no es el CloudComputing, sino la centralización de la data, el riesgo es que por ejemplo si los datos están en mi equipo necesitan artificios legales para poder ingresar en mi equipo, si están en la plataforma Cloud, pueden ingresar con cualquier pretexto al proveedor, ¿Tenemos una orden de revisión porque estamos apreciando consumos elevados en su centro de datos? una vez adentro quien le dice que revisar o que no. ¿Recuerdan el caso MegaUpload?

Yo en lo particular utilizo servicios de almacenamiento en la nube para:

  • Respaldar información no sensible.
  • Compartir información de una manera más fácil.
  • Punto de acceso entre mis deferentes locaciones.

¿Son los hostings un servicio en Cloud?

Esto es difícil de responder, están ofreciendo un servicio amarrado un Sistema Operativo que ellos actualizan y mantienen, por lo que en cierta medida puede considerarse un cloud, esta es una pregunta que requiere mucho análisis y prefiero de momento no responder.

Estas son mis impresionas hasta ahora. Probablemente más adelante continúe ahondando con este tema

domingo, 22 de julio de 2012

Compilar programas sin saber dependencias (GNU/Linux Debian)

En oportunidades necesitamos compilar programas, pero no conocemos todas las dependencias (en mi caso siempre trato de que los programas que voy a instalar se hagan a la debian way

Pues bien, cada autor de paquetes debería indicar claramente todas las dependencias y tal vez utilizando herramientas como apt-file podemos instalarla, pero dependiendo del paquete, pues bien, esto se puede convertir en un dolor de cabeza.

Existe una herramienta llamada auto-apt, que se encarga de buscar todas las dependencias si existen en el sistema por nosotros.

Para instalar: aptitude install auto-apt

Luego de instalado se debe actualizar:

  1. auto-apt update
  2. auto-apt update-local #(esto es para que actualice y tome en cuenta los paquetes ya instalados)

Y para ejecutarlo: auto-apt run ./configure (dependiendo del paquete que quiera instalar cambiará el fichero)

Se dará cuenta que la utilidad ejecutará el configure instalando todas las dependencias que necesita.

Lo bueno

Te permite instalar las dependencias necesarias para que tu programa compile completamente.

Lo malo

No todas las dependencias son obligatorias pero auto-apt las instalará de todas formas.

sábado, 21 de julio de 2012

Buscar un archivo especfico en la paqueteria de GNU/Linux Debian

Este es un truco que me ha funcionado, ocurre que alguna vez necesito un archivo/binario, etc.. y no recuerdo el paquete al que pertenece, aquí viene un gran amigo y me ayuda: apt-file.

Se instala como cualquier otro paquete:

aptitude install apt-file

Luego lo actualizas

apt-file update

El procedimiento de actualización tardará dependiendo de la cantidad de lineas en el sources.lst

Posteriormente lo ejecutas, por ejemplo si quisiera saber en que paquete se encuentra la utilidad ifconfig lo único que tengo que hacer es:

apt-file search -x \/ifconfig$

Explico la línea anterior:

  • apt-file search indica que a la utilidad que busque :-D.
  • -x que utilice el texto de busqueda como expresión regular.
  • \/ifconfig$ indica lo que termine con /ifconfig (luego publicaré sobre las expresiones regulares)

Esto nos arrojará el resultado del que paquete que tiene la utilidad deseada se llama net-tools

viernes, 20 de julio de 2012

Truco: Listar las tarjetas instaladas en GNU/Linux Debian

Este es un pequeño truco para saber cuales tarjetas de red tienes instaladas en tu equipo con Linux:

ifconfig -a -s | awk '{print $1}'

Esto nos dira en un formato columna todas las tarjetas de red (activas o no) instaladas en el equipo.

Si qusiera todas las tarjetas activas lo único que hay que hacer es:

ifconfig -s | awk '{print $1}'

Otra maneras de hacerlo (Aunque prefiero la explicada):

ifconfig -s [-a] | grep -i eth

Si, sé que hay otras maneras, pero sinceramente este me parece una muy fácil de hacer.

jueves, 19 de julio de 2012

Cómo configurar una conexión de puente en GNU/Linux Debian

Hay ocasiones que necesitamos configurar una conexión de puente (Ver puente de red), en mi caso, he necesitado hacerlo ya que trabajo con maquinas virtuales en Xen, por lo que voy a explicar como hacer esta configuración.

Básicamente hay dos maneras de hacerlo en GNU/Linux Debian

  1. Directamente en la línea de comandos con brctl
  2. Através del archivo interfaces (En el fondo es lo mismo, pero realizas una configuración plana sobre el archivo interfaces)

Lo primero que decir que indiferentemente de cualquiera de la utilidad que se decida utilizar, es necesario instalar el paquete bridge-utils: aptitude install bridge-utils

Para nuestra configuración vamos a asumir que la tarjeta de red física a la cual le deseamos hacer el puente es eth0

1. A través de la utilidad.

  • Se crea el puente: brctl addbr br0 (Lo pueden llamar como quieran)
  • Se une la tarjeta fisica: brctl addif br0 eth0
  • Se comienza a utilizar el dispositivo br0, por ejemplo pudiera tratar de asignarle una direccción IP: ifconfig br0 192.168.0.1/24 up

2. A través del archivo interfaces.

Para esta configuración mostraré como deberia quedar el archivo interfaces (/etc/network/interfaces)

auto br0 ifconfig br0 inet static address 192.168.0.1

netmask 255.255.255.0

#gateway 192.168.0.2 #(Si aplica)

bridge_ports eth0 (La interfaz a la que deseamos hacer el puente)

bridge_maxwait 5 #(La cantidad de tiempo en segundos que se esperara para que la tarjeta de red esté lista para el puente)

Luego pueden ejecutar en la linea de comandos ifup br0 y listo (si lo desean pueden reiniciar, pero no es necesario)

miércoles, 18 de julio de 2012

Reducir el tamaño de una partición (LVM)

Para explicar como hacerlo, tenemos los siguientes datos:

  1. El Grupo de Volumenes Logicos se llama "VG"
  2. El volumen se llama "data"
  3. La partición tiene un tamaño en este momento de 200G y la queremos llevar a 150G

Ahora lo primero que debo explicar que en mi caso prefiero reducir el tipo de archivo primero a un poco menos del tamaño necesario y luego la vuelgo a incrementar al tamaño de archivo normal.

  • Para reducir una partición LVM, lo primero es asegurarnos de que se encuentra desmontada.

    unmount /mnt/data

  • Posteriormente tenemos que realizar un redimensionamiento del tipo de archivos, en este caso lo haremos con una partición ext3 por lo que hacemos:

    resize2fs /dev/VG/data 149G

    • Es probable que nos diga debemo chequear el sistema de archivos, si lo hace ejecutamos:

      e2fsck -f /dev/VG/data

    • Luego repetimos el paso anterior.

  • Luego de que termine el proceso resize2fs (puede tardar dependiendo de la cantidad de archivos), procedemos a redimensionar el sistema LVM

    lvmreduce /dev/VG/data -L 150G

  • Ahora volvemos a redimensionar el sistema de archivos para que tome todo el espacio disponible.

    resize2fs /dev/VG/data

  • Ahora podemos montar el sistema de archivos

    mount /dev/VG/data /mnt/data

  • Si ejecutamos df -h veremos que el sistema de archivos se ha disminuido.

Aumentar el tamaño de la partición.

Aumentar el tamaño de la partición es incluso más simple, ya que se puede hacer con la partición montada.

Para explicar como hacerlo, tenemos los siguientes datos:

  1. El Grupo de Volumenes Logicos se llama "VG"
  2. El volumen se llama "data"
  3. La partición tiene un tamaño en este momento de 200G y la queremos llevar a 250G

Comenzemos:

  • lvresize /dev/VG/data -L 250G

  • resize2fs /dev/VG/data (El indicara que es un incremento en linea del tamaño y lo hará)

Asi de simple.

martes, 17 de julio de 2012

Configurar un FakeRaid (GNU/Linux Debian)

Configurar un FakeRaid (GNU/Linux Debian)

Por lo general siempre prefiero configurar un raid utilizando las herramientas propias de linux, mdadm, hay escenarios en los cuales lamentablemente tenemos que usar un raid proporcionado por la tarjeta madre, en el caso que me tocó nVidia, esto generalmente obedece a la necesidad de tener más de un sistema operativo como Windows y Linux.

Si la computadora a través del Bios ofrece la posibilidad de hacer RAID, en la auscencia de una controladora de disco, nos encontramos con un FakeRaid

En http://www.dabax.net/fakeraid, lo definen como:

El RAID híbrido, también llamado fakeraid" es aquel creado por la BIOS usando un controlador estandar de disco y gestionado por el Sistema Operativo. La ventaja de este tipo de array frente al puramente por software, es que al ser creado por la BIOS podemos utilizar varios sistemas operativos con el mismo RAID.

Ahora bien, pues al grano:

Voy a explicar como instalar GNU/Linux Debian en un fakeraid:

  1. Iniciar el proceso de instalación normalmente
  2. Cuando llegue a la parte de autodetectar discos, y no detecte el raid sino que detecte los discos individuales, presionar ALT+F2 para abrir una consola.
  3. Llegado este punto, lo tenemos que hacer, es lo siguiente:
    1. Cargar el administrador de raid dmraid haciendo:

      udpkg -i /cdrom/pool/main/d/dmraid/libdmraid1.0.0.rc16-udeb1.0.0.rc16-4.1amd64.udeb o la versión que aplique

      udpkg -i /cdrom/pool/main/d/dmraid/dmraid-udeb1.0.0.rc16-4.1amd64.udeb

    2. Cargar el módulo dm_mod haciendo: modprobe dm_mod
  4. Detectar el raid haciendo: dmraid -ay
Luego de realizado esto, tendremos un dispositivo en /dev/mapper/nvidia_ihjkklp ("El nombre lo asigna el sistema")

De aquí en adelante lo único que tenemos que hacer es tratar ese dispositivo como nuestro disco, cuando lleguemos a la parte de particionado, seleccionar ese disco y listo.

lunes, 16 de julio de 2012

VLAN en Linux (iproute2)

Configurar VLAN en Linux (iproute2)

Es posible configurar en Linux (mi distro es Debian GNU/Linux), para esto necesitamos el paquete iproute2 (en debian aptitude install iproute2)

La configuración para la explicación es esta:

  • eth0 puerto donde se encuentra conectada la vlan.
  • El identificador de la vlan es el 190.

Ahora paso a paso:

  1. Levantamos el enlace de la tarjeta de red física:

    ip link set eth0 up

  2. Creamos el identificador de la vlan:

    ip link add link eth0 eth0.190 type vlan id 190

Esto nos creará una interfaz nueva llamada eth0.190, con la cual podemos hacer todas las operaciones conocidas tales como asignar la dirección IP.

Esto es tan simple como lo que se ha escrito, en mi caso, yo lo tengo configurado y funcionando con mi proveedor de servicios de MetroEthernet CANTV y puedo hacer nateos, enmascaramientos, ruteos, en fin, las operaciones que normalmente hago con una conexión normal.

jueves, 12 de julio de 2012

¿Cómo hacer programas efectivos?

Todo está en saber captar la necesidad.

Bien, en mis tiempos como programador (debo confesar que hace algún tiempo que no programo al menos no a nivel comercial ya que tengo varios años dedicado a la parte de infraestructura) una de los problemas frecuentes que enfrentaba es la interpretación de la necesidad.

Los usuarios/clientes cuando desean un programa te dicen su supuesta necesidad

Necesito un programa que haga esto, aquello y me diga lo otro.

El problema es que el programador hace lo que entiende y luego el usuario/cliente te dice que no era eso, o que faltaba más.

Una forma en que muchos programadores (incluso ITIL V3) te sugiere que hagas las cosas es validar el acuerdo por escrito antes de la ejecución. Eso está bien, y debe hacerse, pero mi mayor preocupación sinceramente es no caer en discusiones con mis usuarios/clientes.

Algo que aprendí durante la práctica es que el cliente te dice lo que quiere pero no te dice las "Necesidades Ocultas", ¿y que son las necesidades ocultas? simple, son las necesidades que el cliente considera triviales (o a veces da por sentada que las inferimos o el mismo las desconoce) y que al final se convierten en el dolor de cabeza, porque generalmente esas trivialidades implican modificaciones muy fuertes al código o incluso al modelo de la base de datos.

Como comenté al principio se puede hacer uso de un documento firmado, pero la idea es no llegar a usarlo, entonces ¿qué hacer?

No hay que tener cualidades cuasi místicas para saber que hacer, solo hay que recordar que un sistema en su esencia más básica es: Entrada->Proceso->salida.

Dicho lo anterior, pues sucede que los programadores se centran en el diseño de la aplicación, a veces en su funcionalidad y estas son cosas que el cliente no valora (al menos no directamente) esto ocurre básicamente por algo: "Un sistema es tan útil como los son sus salidas".

Me encontré con clientes que tenían programas extremadamente antiguos, y una cantidad de interfaces para otros programas creadas para poder hacer compatible el programa con nuevas tecnologías, y aunque era obvio que tenia que haber una migración del sistema, pues bien para el cliente esa idea era impensable, se aplicaba la máxima de:

Si esta funcionando no lo toques.

Lo anterior ocurre básicamente porque aunque el programa era extremadamente viejo daba las salidas necesarias para apoyar la toma de decisiones, realizar seguimiento o control sobre los procesos de las empresas.

Las siguientes son tácticas útiles que se pueden usar:

  • Pregunte al cliente cuales son los reportes que necesita bien sean impresos o en pantalla (o cualquier otra interface que tenga el sistema).
  • Pregunte al cliente si tiene algún modelo de los reportes actuales y sobre ellos mismos en mano alzada pídale al cliente que resalte los cambios (si los hubiese).
  • Invierta tiempo con el cliente en diseñar los reportes necesarios hágale saber lo importante que es saber cuales son los reportes.

Bien, otra cosa que debemos saber igual de importante es al momento de la programación:

Si los reportes son tan importantes para saber que quiere el cliente son igual de importantes para diseñar un sistema.

Comience a diseñar el sistema en orden inverso, además aunque parezca un cliché, lo primero que se debe diseñar es el modelo de entidad relación, pero háganlo partiendo de los reportes, siempre hay que pensar de atrás, desde los reportes.

Bien, espero que estos pequeños tips sean útiles.

miércoles, 11 de julio de 2012

Markdown

Markdown

Bueno en esta oportunidad quiero comentarles sobre Markdown

Markdown según la Wikipedia:

"Markdown es un lenguaje de marcado ligero creado originalmente por John Gruber" ... "y Aaron Swartz" ... "que trata de conseguir la máxima legibilidad y 'publicabilidad' tanto en sus forma de entrada como de salida, inspirándose muchas convenciones existentes para marcar mensajes de correo electrónico usando texto plano. Markdown convierte el texto marcado en documentos XHTML bien formados, reemplazando el signo 'menor que' ('<') y los ampersands por sus correspondientes referencias de entidad de caracteres".

Ahora bien, no es mi intención caer en definiciones, para eso cualquier pueden ir a Wikipedia Markdown y leerlas, mi intención es mostrar a breve manera como se puede trabajar con ella; yo particularmente la estoy utilizando (a una manera rudimentaria) para escribir en este Blog.

También es importante mencionar que Markdown no sustituye la redacción de documentos HTML, solo hace más legible los documentos.

Dicho lo anterior pues manos a la obra:

Ingredientes:

  1. Editor de Texto (si no se usa MardownPad)
  2. Tener Markdown instalado:
    • En GNU/Debian: aptitude install markdown
    • En Windows, se puede utilizar un editor como MarkdownPad o en su defecto utilizar la versión la siguiente versión web Markdown->dingus

La escritura es realmente simple, ya que la intención de Markdown es que el texto del documento sea "legible"

Este es un ejemplo de un documento en Markdown

#Titulo de la página

##Por Carlos Ramírez

Este es un documento _de prueba_ para ver lo fácil que es redactar un documento con Markdown

###Puntos interesantes de Markdown

Estas son algunas de las características interesantes de Markdown:

1. Se puede escribir naturalmente.
2. Fácil de leer.

Si desea más información la pueden consultar en [Markdown](http://daringfireball.net/projects/markdown/)

Al aplicar Markdown queda así:

Titulo de la página

Por Carlos Ramírez

Este es un documento de prueba para ver lo fácil que es redactar un documento con Markdown

Puntos interesantes de Markdown

Estas son algunas de las características interesantes de Markdown:

  1. Se puede escribir naturalmente.
  2. Fácil de leer.

Si desea más información la pueden consultar en Markdown

El documento resultante es bastante legible, la relevancia es la siguiente:

El carácter '#' significa un titulo 1 (h1), si queremos un titulo 2 solo tenemos que incrementar el nivel de '#' a dos es decir '##' y así sucesivamente.

Un enlace se construye de la forma: [Texto del enlace](url)

Es posible también construir enlaces con referencias si se van a colocar más de un enlace:

Ejemplo:

[Texto][referencia]

y más adelante

[referencia]: http://algunaurl.com

Eso se encargaría de hacer la referencia correcta, lo bueno de este método es que si planeas hacer la misma referencia en varios lugares solo redactas la referencia una vez y la utilizas.

Lo otro que se puede ver es el resaltad o énfasis etiqueta <em>, para ello, solamente tenemos que encerrar lo que tenemos que resaltar entre caracteres '_' o '*' por ejemplo:

_Esta es una frase importante_

Traduce:

Esta es una frase importante

Si deseamos encerrarlo aún más solo lo encerramos dentro de dos '__' seguidos

Ejemplo:

__Esta es una frase es más importante__

Traduce:

Esta es una frase importante

Para hacer una lista no ordenada, comienza cada línea con el carácter '*', ejemplo:

* Elemento 1
* Elemento 2

Traduce:

  • Elemento 1
  • Elemento 2

para hacer una lista ordenada, basta con comenzar a enumerarla así:

1. Elemento 1
2. Elemento 2 

(También se puede repetir el número 1, pero la idea es hacer el documento legible).

Traduce:

  1. Elemento 1
  2. Elemento 2

¿Qué otras cosas puedo hacer?

Se pueden colocar imágenes:

![Texto Alterno](/ruta/a/imagen.jpg "Titulo")

Se pueden hacer listas ordenadas utilizando el carácter '-'

Para terminar, si estan en Windows, utilicen MarkdownPad u una vez terminen de escribir seleccionen todo el texto y haga CTRL+SHIFT+C para copiar el html generado.

En Linux, ejecuten simplemente markdown nombre-archivo y generara la salida html (probablemente necesitarán redirigir la salida utilizando un markdown nombre-archivo > archivo.html)

Ahora para aclarar cualquier duda, ¿Por qué estoy utilizando Markdown y no el editor WYSIWYG integrado del blog?

La razón es simple, los editores WYSIWYG, en el afán de facilitar las cosas generan demasiado texto inútil, una cantidad de etiquetas <div> o etiquetas <span> innecesarias; al trabajar de esta manera obtengo dos ventajas, la primera es que puedo incluso desde mi teléfono ir editando un post y entender que estoy editando, y la segunda, básicamente no me gusta saber que hay una cantidad de HTML generado en mi blog sin necesidad.

Saludos.

martes, 10 de julio de 2012

Primer Congreso CENIT

Primer Congreso de Innovación Tecnológica

Luego de pensar durante un buen rato, y sobre todo analizar que tipo de contenido deseo colocar en mi blog, tome la decisión de comentar sobre este evento realizado el día 30-06-2012

En otros post sucesivos comentaré sobre cada uno de los temas pero desde el punto de vista técnico.

Bien, pues a ello.

Recibí la invitación al evento mediante boletín electrónico de uno de nuestros aliados comerciales (@tecnosoluciones) donde me invitaban al "Primer Congreso Nacional de Innovación Tecnológica" (cnit @cnitve).

Los temas a discutir, pues temas de mucha vigencia como: La WEB 2.0 y el Software como Servicio (SAAS por sus siglas en ingles), Social Media Empresarial, Avances Tecnológicos y Cómo Aprovecharlos, Innovación Tecnológica, Cloud Computing Confiable; fuera de tema teníamos las ponencias de Motivados para la innovación por @emersonramirezs y algunas palabras de cierre de la Prof. Alexandra Gómez.

El día en cuestión llegamos temprano y superamos algunos problemas de logística por parte de los organizadores (encuentro que fui algo duro al principio, pero al trabajar en una empresa didáctica mis estándares respecto a lo que espero recibir en eventos de este tipo a nivel logístico son elevados). Ingresamos a las instalaciones donde se llevaba a cabo el evento e iniciamos con un retraso típico el ciclo de ponencias luego de las palabras de apertura de un representante de la Universidad Tecnológica del Centro.

Las ponencias se desenvolvieron en el siguiente orden:

La WEB 2.0 y el Software Cómo Servicio.

Julio Calvo

El ponente comenzó dando algunos conceptos básicos de que se trata la web y una breve historia de lo que se tiene ahora, colocó el concepto de Wikipedia de web 2.0 pero parafraseo el mismo. Luego de unos minutos hablando del tema abordó el software como servicio, utilizando los ejemplos de aplicaciones hosteadas y aplicaciones como servicio. Trató de explicar que no porque una aplicación se encuentra hosteada se le pueda considerar inmediatamente Software como Servicio o SaaS (Software as a Service).

Lo bueno:

  • Fue un buen inicio para lo que debían ser las demás ponencias.
  • El expositor no era un gurú de mercadotecnia vendiendo o tratando de vender una marca, sino hablando en general de conceptos con vigencia tecnológica.
  • Habló en un par de oportunidades de experiencias con clientes.

Lo malo:

  • No se ahondó técnicamente lo suficiente en los temas, el público asistente era un público técnico por lo que se pudo profundizar en detalles técnicos.
  • No supo dejar clara la diferencia entre el tema de SaaS y Hosting.

Social Media Empresarial

Daniel Rodríguez @tecnodaniel

Esta ponencia fue bastante interesante, y que habló de cifras y tendencias de las redes sociales, y como afectan ha las empresas. Uno de los puntos importantes, fue sobre la red social YouTube, y como las empresas no tienen presencia en estas redes sociales y que básicamente los usuarios pasan una gran cantidad de tiempo en la misma. En mi opinión personal, fue una de las mejores ponencias, ya que brindó datos exactos de como se encuentran en las redes sociales y las tendencias en un lenguaje técnico pero aún masticable para las personas no técnicas.

Lo bueno:

  • Datos actualizados de las tendencias de redes sociales.
  • Presentación con mucha vigencia.
  • Dominio del tema.
  • Demostró ejemplos de clientes.
  • Aun cuando representa una marca (tecnosoluciones) no la uso como palanca publicitaria.

Lo malo:

  • Algunos datos no estaban tropicalizados para Venezuela.
  • Para algunos de los participantes (no mi caso) la presentación fue un poco larga.
  • La velocidad al hablar, Daniel Se emociona y suele hablar demasiado rápido.

Avances Tecnológicos y Cómo Aprovecharlos.

José Palomares, CONSISTEL C.A.

Esta ponencia es un poco difícil de evaluar, no quiero calificarla como positiva y/o negativa, sencillamente ocurrió que el ponente comenzó hablar sobre los avances de la tecnología mostrando gráficas de como se hacían las cosas antes y como se hacen ahora (algunas causaron algo de risas), apalanco algo de publicidad de su empresa (lo cual no está mal) y posteriormente perdió todo su encanto cuando de pronto el señor Palomares se centro a publicitar los productos de tecnosoluciones, aquello parecía una lirica, o mejor aún: oda a tecnosoluciones Me costaba creer que el ponente estuviese haciendo todo aquello que no hizo @tecnodaniel

Lo bueno:

  • Mostró como ha avanzado la tecnología en tan solo un siglo.
  • Indicó algunos casos de éxito donde con un adecuado enfoque de ideas y combinado con la tecnología correcta las empresas han surgido.
  • Sembró la idea de que se necesitan cambios de paradigmas en la manera de gerenciar actual.

Lo malo:

  • Realizó demasiado apalancamiento publicitario tanto en su marca como en marcas socias comerciales.
  • Lejos de mostrar el avance de la tecnología y los puntos nombrados anteriormente no dejo nada más.

Innovación Tecnológica

Jesús Márquez @concafe

Esta es otra ponencia que me es un poco difícil de evaluar, ya que aportó datos positivos, pero también presentó demasiado apalancamiento publicitario. Esta ponencia presentó algo particular, y fue que les sembró la idea a todos los estudiantes que estaban, de que se podía llegar lejos y que no éramos menos que nadie.

Lo bueno:

  • Mostró casos de éxitos de lo que hablaba.
  • Mostro como concafe ha estado en el CES (Consumer Electronics Show)
  • Mostró que ha empresas Venezolanas se les han entregado certificaciones de calidad (siragon)
  • Dio datos a los asistentes referente a cisco que se encuentra buscando ingenieros que se estiman que hay una deficiencia de 250.000 ingenieros que serán necesarios para el año 2015.

Lo malo:

  • Se estancó demasiado en el tema del CES y Las Vegas (debe haberla repetido no menos de 20 veces)
  • Oriento demasiado su presentación hacia los estudiantes dejando de lado que se encontraba un público que no era estudiante en la sala.
  • Lanzó una crítica dura al software libre, indicando que como modelo de negocios no sirven (habría que preguntarle a Facebook, twitter y/o al mismo @tecnosoluciones si eso es cierto). Cuando comente sobre lo bueno y lo malo en general del evento explicaré porque lo considero un punto malo.

Cloud Computing

Carlos Molina

Bueno llegamos a unos de los momentos más esperados por mi, el cloud computing, debo ser sincero de todo el evento me decidí a ir prácticamente por este tema, cuando vi que se iba a comentar sobre cloud computing, decidí que debía ir a este evento.

Para no hacer muy largo el tema, fue una de las peores presentaciones, entiendo que el señor molina como representante de una marca (en este caso Oracle) pues hiciera apalancamiento publicitario de su marca (o la marca que representa) pero fuera de esto, fue demasiado vago, y básicamente todo era Oracle, java, sun, y que la única nube segura es la de Oracle, olvidó completamente que era una presentación general no una stand de ventas de Oracle.

Lo bueno:

  • Explico diferencias entre nube privada y nube pública, y coloco ejemplos de aplicaciones en la nube.

Lo malo:

  • Lenguaje no adaptado (muchas muletas, conectores gramaticales sin sentido).
  • Él iba por un lado y la presentación por otro.
  • Dejó términos inconclusos.
  • Demasiado apalancamiento publicitario, ahora la nube, sino es Oracle no es nube.!!!

Motivados para Innovación.

Emerson Ramírez @emersonramirezs

Sinceramente una de las mejores presentaciones que vi ese día. No tenía nada que ver con el tema tecnológico (al menos no directamente). Prefiero comentar algunas de las frases dichas por el:

"Hasta que llueva hay que seguir bailando". (Referencia al baile indio de la lluvia)

"El que se olvida de prepararse, que se prepare para ser olvidado".

"La idea es liderar e ir al frente, pero la principal competencia es con usted mismo".

Mostro adicionalmente algunos casos de éxito de algunos emprendedores, y realizó algunos juegos motivacionales, etc.

Lo bueno:

  • Sinceramente todo me pareció bueno, supo captar la atención del público, coloco ejemplos, buen uso de los recursos audiovisuales, en general me pareció excelente.

Workshops (solamente uno).

Microsoft.

Lo primero es decir que esta fue la peor presentación de todas, no esperaba sinceramente esto. La presentación fue básicamente dos muchachos que creen que Microsoft es el ombligo del universo, y quisieron hacer una demostración de algo que no se entendió.

Trataron de hablar de Windows Phone, pero no hablaron nada; trataron de demostrar como programar y colocaron un botón en el emulador y dijeron que era rápido de programar que lo iban hacer pero por falta de tiempo no lo iban hacer (notan la incongruencia) y luego pasaron a una novedad el uso del acelerómetro <sarcasmo mode="on">¡Que novedad!</sarcasmo>

Imagino sinceramente que Microsoft no estaba al tanto de que estaban haciendo uso de su marca para una demostración tan pobre. Y ni que decir de su sentido del humor.

Lo bueno:

  • ?

Lo malo:

  • Uso inapropiado del lenguaje.
  • Demostración inapropiada de un producto.
  • No dejo nada.
  • ¿Hay que cambiar la interfaz de Windows porque es más fácil de estandarizar? (aún le estoy buscando sentido a esto que dijeron)
  • Uso excesivo de muletillas, conectores, adjetivos, calificativos.

Ahora en general sobre el evento

Lo primero a resaltar es el enfoque del evento, estaba destinado a un público estudiante, no obstante, invitaron a muchas personas, externas y personas como mi caso decidimos ir, esperando más calidad no es un tema de que estuviesen malas las ponencias, sino que la convocatoria fue inadecuada o mal dirigidas.

Lo bueno:

  • La logística en todo momento trató de tener el control de la situación.
  • Se respetaron los horarios de las presentaciones.

Lo malo:

  • No estaba preparados para recibir participantes de empresas por consiguiente no tenían las facturas que debían entregar a los participantes. Deben mejorar esto para el próximo congreso
  • Enviaron un código que no era funcional para buscar en las listas. La idea del código no es mala, pero debe ser funcional para buscar en las listas.
  • Falto equidad en las presentaciones, trajeron a ponentes que hablaron mal del software libre, pero no trajeron a ninguno que diera la cara por el mismo, como defensor del S.L. es algo inaceptable. Nada que decir.
  • No se respetó la sesión de preguntas y respuestas, yo mismo tenia varias preguntas que hacer a los ponentes, pero respetando la logística del evento aguarde hasta el final a la sesión de preguntas y respuestas que no llegó. Las preguntas y respuestas son importantes, lo natural es dejar que las preguntas se hagan por ponencia así no se pierde e hilo de las próximas ponencias.

La intención no es hacer una critica destructiva, sino que se preparen, están haciendo eventos y están invitando a personas de empresas, por lo que deben mejorar aspectos, espero sinceramente que el año que viene la presentación sea mejor ya que tienen la experiencia de esta.