jueves, 12 de enero de 2017

Desarrolladores: La imaginación truncada tras la codificación

Los programadores o desarrolladores (En Colombia prácticamente no hay distinción entre los términos) parecen ser una "Especie en vía de extinción". Ya he escrito algunas críticas en este blog en el que me refería a que hoy en día los ingenieros de sistemas (O informáticos) ya solo quieren ser gerentes: Todo está hecho, no necesitamos reinventar la rueda y el país solo necesita gente que mande qué hay que hacer.

Yendo más lejos, como hablamos de profesionales autónomos y autogestionados ya incluso los nuevos gerentes ni siquiera gerencian (¡Qué ironía!) (...) Son de ése estilo que verifican que todo vaya bien cada equis intervalo de tiempo y pare de contar... Son lo que yo llamo como "Gerente calibrador de ruta".



No puede haber una visión más errada de la academia e incluso de algunas empresas al solo orientar sus profesionales para dirigir quizás relegando aspectos más importantes de su formación técnica e incluso humana.  Peor aún, tenemos el concepto que no somos potencia para el desarrollo de software, que para todo lo que necesitamos ya hay alguien o algo que lo hace mejor que nosotros mismos y en términos generales que la industria TI ya llegó a su punto máximo cuando aún se necesita avanzar a pasos agigantados. ¿Qué necesitamos para eso? Personas que se unten la manos, que vayan a las tripas del código... Mucho más que los dichosos nuevos gerentes.

Pero esta reflexión va un poco más allá, quiero abordar un problema casi propio del mismo desarrollador que quizás por temor o desconocimiento pareciera aceptar: No pensar.

Ser programador o desarrollador es un rol especial


Este subtítulo suena tonto, como sacado de un libro de superación personal tratando de mejorar el autoestima pero no es así. Conseguir programadores para cualquier empresa no es una tarea fácil y mucho menos si se buscan con experticia y calidad. Sin embargo, el rol parece haber perdido relevancia, no por que no sea importante sino porque parece haber quedado atrás escondido tras el teclado: Alguien que solo codifica.

No hace tiempo ví un meme: "Un programador es alguien que convierte el café en código". Y si bien es una aproximación cierta, es quizás peyorativa, ya que confirma de alguna forma este rol en algo superflúo, mecánico, carente de alma... Y no, lo que yo aprendí sobre programar es que es casi como un arte, una pasión.



El negocio no está por encima de la creatividad


Cuando entra un programador a una empresa, por lo general se le asignan tareas muy concretas. Muchas veces, los directores o líderes técnicos ya han resuelto todo el problema y el desarrollador solo tiene que codificar.  Yo no estoy de acuerdo con esta perspectiva, casi siempre intento involucrar a todo el equipo desde el principio de la solución (Nótese el principio, no el requerimiento per sé)  para que entre todos se construya la implementación y el aporte de los desarrolladores (Y otros roles como los testers) sea mucho más amplio y enriquecido.

Sin embargo, en cualquier caso esto no quita la oportunidad que el desarrollador tiene de pensar y de aportar mucho más desde su rol. Algunos personajes sostienen que un programador se hace valioso cuando se certifica y aprende un segundo idioma.... Yo creo que un programador se hace realmente valioso cuando aporta proactivamente mucho más de la tarea concreta que se le asigna.

¡Cuántas cosas se pueden hacer con el código! Y nos quedamos en que cuando se diga oprima A, salga B. Y aún si esa fuera la asignación concreta, siempre se pueden proponer nuevas formas que aparezca B, o nuevas formas de interactuar con A; o incluso cambiar A por C porque mejora aún más la experiencia de usuario. Es por esto que digo que los requerimientos de negocio no están por encima de la creatividad... porque distan tanto como la misma idea de la implementación. Incluso si una solución nueva para un producto no es viable por alguna razón, estoy seguro que la dirección y el mismo equipo notará que está corriendo las fronteras de su propio conocimiento y el de la organización con cada prueba de concepto que deseen explorar.

Siempre hay nuevas cosas por aprender, a semejanza del arte, es necesario aprender cierta técnica, ciertos lineamientos, ciertas condiciones pero de ahí adelante es lo que el artista quiera que sea. Por esto la invitación a los desarrolladores es a no dejarse perder entre las historias de usuario, la presión  del tiempo y las pruebas de calidad... A ser creativos, a explorar siempre nuevas formas de hacer las cosas más obvias, de proponer sin miedo.

Para los líderes técnicos y directores será importante mantener motivados a los desarrolladores, permitiendo precisamente espacios para las pruebas de concepto y la adopción de nuevas tecnologías. Aunque se vea como pérdida de tiempo frente al negocio, con el pasar de las semanas, se traducirá en un equipo mejor preparado, motivado y más creativo para afrontar nuevos retos.

miércoles, 11 de enero de 2017

Año nuevo ¿Blog nuevo?

Durante las fiestas de fin de año, reflexioné acerca de cómo podría retomar mi blog (Y el de automóviles) sin que se conviertan en una típica promesa fallida de 31 de diciembre del año pasado. Es curioso pero a la vez dramático, cómo la vida nos absorbe y dejamos de hacer muchas cosas que nos gustan sin que siquiera lo notemos. ¡Ja! Eso sólo le pasa a otras personas, pensará el desprevenido lector que, como yo, pensaba tener todo en el rumbo correcto y bajo control cuando en realidad son muy pocas las cosas que podemos manipular a voluntad.

¿Qué puedo hacer para retomar con certeza mi blog? ¿Una Fan-Page en Facebook? ¿Una cuenta de Twitter? ¡Cómo le damos un nuevo aire a un blog en la era de los "Youtubers" (Si es que ya no pasaron de moda)!  ¿Cómo pueden estas letras alcanzar a más personas en más países?

A veces es necesario apagar y encender de nuevo...
La respuesta fue simple pero sacada quizá de ésas películas heróicas: "Vuelve a la esencia". Luego de muchos ires y venires, concluí que este espacio, éste blog, no es un blog comercial que merezca siquiera tener su propia cuenta de Twitter... Este blog es solo una libreta de apuntes -que como un hobby- quedó expuesta en Internet, para ayudar a otras personas; poco deben importar los "Clics", la "Publicidad", "El número de fans", todas esas cosas que las redes sociales (Que también nos absorbieron) ya nos vendieron  como "Éxito" en la Web finalmente no importan...

Es por eso que este año, entre las cosas que más me gusta hacer en la vida y que vale la pena retomar sin tanto protocolo, está "Escribir"... Y quizás "Enseñar"... ¡Quién lo creyera!, quizás tengo talento para ser docente pero por ahora, dejémolo en un blog.

¿Cuál es el indicador de éxito? Sencillo: Si estas letras llegan a una sola persona y le aportan algo por pequeño que sea, ya ha valido la pena.

lunes, 30 de mayo de 2016

Cómo instalar un servidor LAMP en Fedora

Nota: Artículo actualizado a Fedora 23.

LAMP es el acrónimo por el que conocemos a una de las infraestructuras más populares en el mundo de los servidores y no es para menos, Linux, Apache, MySQL / Maria-DB, y PHP combinados han demostrado ser una solución muy efectiva para crear portales y aplicaciones de gran popularidad en Internet, versatibilidad y confiabilidad de la mano del OpenSource.

Instalación de Apache

Apache es el servidor Web abierto más popular. Para instalarlo sólo debemos ejecutar en una terminal:

$ su -c 'dnf install httpd'

Luego nos aseguramos que el servicio inicie con nuestro sistema:

$ su -c 'systemctl enable httpd.service'

Y subimos nuestro servicio:

$ su -c 'systemctl start httpd.service'

Para verificar que nuestro servicio esté correcto, abrimos un navegador, digitamos la dirección http://127.0.0.1 y debemos ver algo como:


Instalación de MySQL (MariaDB)

Nota: Luego de la compra por parte de Oracle de MySQL, el fork libre y abierto es ahora MariaDB. Para esta instalación, lo preferimos.

Para instalar Maria-DB solo hace falta digitar en una consola (Requiere la contraseña de super-administrador root):

$ su -c 'dnf install mariadb-server'

Una vez instalado, iniciamos el servicio y nos aseguramos que siempre arranque al iniciar nuestro sistema:

$ su -c 'systemctl start mariadb.service'
$ su -c 'systemctl enable mariadb.service'

Luego, aseguramos nuestra instalación:

$ su -c 'mysql_secure_installation'

Para verificar que esté correcto ejecutamos (Reemplaza password por la contraseña de tu usuario administrador configurado en el paso anterior):

$ mysql -uroot -ppassword

Si todo anda bien, deberías ver el prompt de MySQL, así:


Instalación de PHP

Para instalar PHP solo hacer falta ejecutar en una terminal:

$ su -c 'dnf install php php-mysql' 

Una vez hecho esto, vamos a probar que realmente funciona, creamos un archivo:

$ su -c 'nano /var/www/html/info.php'

Nota: Si no tienes nano instálalo con $ su -c 'dnf install nano'

En el archivo escribimos lo siguiente:

<?php
phpinfo();
?>

Guardamos en nano (Ctrl+O) y salimos (Ctrl+X). Una vez hecho esto, reiniciamos nuestro servicio de Apache:

$ su -c 'systemctl restart httpd.service'

A continuación vamos a la siguiente dirección en nuestro navegador http://12.0.0.1/info.php y si todo salió bien deberíamos ver algo como:



No olvides borrar luego el archivo de prueba que creamos (info.php) esta información no debe ser pública y solo la debemos usar para nuestros propósitos de prueba... Por ahora a disfrutar!

Cómo instalar Oracle VM VirtualBox Guest Additions en una máquina virtual Fedora / Linux

Nota: Artículo actualizado a Fedora 23 / 24.

Para obtener el máximo provecho de una máquina virtual en Oracle VM VirtualBox es necesario instalar en ella un complemento denominado Guest Additions, que nos permitirá entre otras mejoras, un mejor rendimiento gráfico (Al poder usar la máquina virtual en modo fluido y/o pantalla completa dado que instala un controlador de video) y la posibilidad de intercambiar archivos fácilmente a través de carpetas compartidas entre nuestro equipo real y nuestra máquina virtual.

Para instalar Oracle VM VirtualBox Guest Additions en una máquina virtual Fedora necesitaremos (No sobra decirlo) contar ya con una instalación de Fedora virtualizada en VirtualBox. Ya en nuestra máquina virtual:

Paso 1 

Es necesario instalar algunas dependencias necesarias, para ello ejecute en una terminal (consola de comandos) (requiere contraseña de root):



En otras distribuciones virtualizadas como Ubuntu 11.04 no fue necesario instalar éstas dependencias.

Paso 2 

Ahora, en la ventana de nuestra máquina virtual, vamos al menú Dispositivos => Insertar imagen de CD de las Guest Additions.



Esto montará una disco en la unidad de CD de la máquina virtual.

Paso 3

Inmediatamente Fedora detectará el CD como un origen de software, por lo que lo más sencillo es dar clic en la opción "Ejecutar".



Se te solicitará la contraseña de root y verás una pantalla de terminal ejecutar varias tareas. Una vez hecho ésto... ¡Listo! VirtualBox Guest Additions está instalado en tu máquina virtual Fedora. A conitnuación reinicia tu máquina virtual y a trabajar!

jueves, 19 de noviembre de 2015

Diez cosas para hacer después de instalar Fedora 23

Como ya es costumbre, a continuación dejo a su disposición una pequeña guía para dejar a punto la última edición de Fedora en sencillos pasos:

1) Actualiza tu sistema

Siempre que ocurre un nuevo lanzamiento de un sistema operativo éste tiene una curva de estabilización, en el cual es usual encontrar uno que otro error que no fue detectado en las fases de prueba así como varias actualizaciones orientadas a mejorar la experiencia del usuario.

Además una distribución vanguardista como Fedora siempre tendrá bastante paquetería que actualizar, así que no te desanimes si descubres varios megas en actualizaciones luego de instalar tu flamante nuevo sistema operativo. Para actualizar basta con ejecutar en un terminal (En el menú Actividades digita "terminal" -Sin comillas-) (Requiere contraseña de root):

$ su -c 'dnf -y clean all'
$ su -c 'dnf -y update -vvv'

Con ésta instrucción tu sistema quedará al día.

2) Expandir las fuentes de software instalando repositorios adicionales

Los repositorios agregan nuevas fuentes de software a nuestro sistema, permitiéndonos instalar más programas o instalando aquellos que por motivos de patentes o licenciamiento no se incluyen en Fedora:

A continuación instalaremos los repositorios de Adobe y RPMFusion. Ejecuta en una terminal (En el menú Actividades digita "terminal" -Sin comillas-) (Requiere la contraseña de root):

Para ambos, 32 y 64 bits:



Si eres usuario del software de Google. No puede faltar este repositorio en tu PC, pues permitirá instalar en Fedora aplicaciones como Picasa y Google Desktop Search. Para instalarlo sólo ejecute en una terminal (como root):



Luego creamos el repositorio:

# nano /etc/dnf/dnf.conf

Si estás usando arquitectura i386 (32 bits) agregamos estas líneas:

[google]
name=Google-i386
baseurl=http://dl.google.com/linux/rpm/stable/i386
enabled=1
gpgcheck=1

Si estás usando arquitectura x86_64 (64 bits) agregamos estas líneas:

[google64]
name=Google - x86_64
baseurl=http://dl.google.com/linux/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

Nota: Nano es un sencillo editor de texto por consola. Para pegar el texto en nano presiona Ctrl+Shift+v; Luego presiona Ctrl+Shit+o para guardar y Ctrl+Shift+x para salir del editor. Siempre puedes usar tu editor de texto favorito. Por ejemplo, gedit en entornos Gnome.

3) Códecs de Reproducción multimedia y Plugin de Flash

  • Gnome
Si está usando Gnome, por favor ejecute la siguiente instrucción (requiere la contraseña de root, es una sola instrucción):



Con esto Fedora resolverá las dependencias e instalará el software requerido para nuestra reproducción multimedia.

  • KDE

Si está usando KDE, por favor ejecute la siguiente instrucción (requiere la contraseña de root, es una sola instrucción):



Con esto Fedora resolverá las dependencias e instalará el software requerido para nuestra reproducción multimedia.

4) Instalar LibreOffice

La instalación de Fedora desde el LiveCD ya incluye LibreOffice, la suite de oficina, sin embargo, podemos completar la instalación de la suite añadiendo el soporte a idiomas entre otros extras. Para ello ejecuta en una terminal (requiere contraseña de root).



Adicionalmente si tienes instalado KDE no olvides instalar este plugin para mejorar su integración:



Excelente!

5) Tus redes sociales en el escritorio

En ocasiones anteriores, recomendaba Gwibber como cliente de redes sociales. Sin embargo, dado que esta aplicación ya no ha tenido actividad desde poco más allá de 2011, ya no aparece en los repositorios oficiales. Aunque opciones no nos faltan, nos limitamos ahora a clientes de Twitter entre los que recomiendo:
  • Corebird (Gnome)
$ su -c 'dnf -y install corebird' 
  • Turpial (Gnome)
$ su -c 'dnf -y install turpial' 
  • KDE
 En el caso de KDE tenemos Choqok, un interesante cliente de Microblogging que no te decepcionar:

$ su -c 'dnf -y install choqok' 

6) Instalar el JRE de Java 

Debido a que el proceso es un poco extenso por favor consulta:
http://www.piensaenbinario.com/2015/11/instalar-java-8-jre-java-runtime.html


7) Instalar MPlayer el reproductor de video recomendado.

MPlayer es uno de los reproductores de video más poderosos del mundo del software libre, dado que puede reproducir gran cantidad de formatos multimedia (ejecutar en una terminal, requiere contraseña de root):

$ su -c 'dnf install mplayer smplayer'



8) Soporte a formatos de archivo comprimidos

Si trabajamos con archivos de formato comprimidos como los .rar necesitaremos ampliar el soporte de nuestro sistema (Ejecutar en una terminal, requiere contraseña de root):

$ su -c 'dnf install unrar unace unzip file-roller xarchiver'


9) Habilitar sudo en Fedora

Para habilitar sudo en Fedora, sólo ejecuta en una terminal (requiere contraseña de root):

$ su - 
# echo 'Usuario   ALL=(ALL)     ALL' >> /etc/sudoers
# exit

Reemplaza Usuario, por tu nombre de usuario, tal cual como inicias sesión (Es sensible a minúsculas y mayúsculas)

Luego prueba que todo haya quedado correctamente:

$ sudo dnf update

Ingresa tu contraseña (no la de root). Si todo quedó super debería comenzar a verificar si hay actualizaciones disponibles.

10) Instalar Gnome Tweak

Gnome Tweak es una interesante herramienta que nos permitirá realizar algunos ajustes en el comportamiendo del escritorio Gnome de forma fácil y rápida. Con ella podremos, por ejemplo, volver a mostrar archivos en el Escritorio (Como sucedía en Gnome 2) entre otras opciones útiles. En una terminal de comandos digita (Requiere contraseña de root):

$ su -c 'dnf install gnome-tweak-tool'


Una vez instalado, encontrarás las opciones en el menú Actividades, digitando tweak. (La aplicación en realidad se llama "Herramienta de retoques"


¡Y hay más! 

Instala tu navegador favorito


Fedora viene por omisión con la última versión de Firefox disponible, si te gusta otro navegador, he aquí las guías para instalarlos.

Google Chrome

Sólo ejecuta en una terminal (Requiere contraseña de root):

$ su -c 'dnf install google-chrome-stable'

Opera

Primero, descarga el RPM desde:
http://www.opera.com/download/guide/?os=linux

$ cd Descargas 
$ su
# dnf install opera-12.16-1860.x86_64.rpm --nogpgcheck
# exit

Recuerda ajustar el comando de acuerdo a la versión de Opera descargada.

Y a disfrutar!

jueves, 5 de noviembre de 2015

Instalar Java 8 - JRE (Java Runtime Environment) + Plugin para Firefox en Fedora

Nota: Artículo actualizado a Fedora 23
Fedora viene por defecto con OpenJDK, la versión abierta de Java que en general es suficiente para la mayoría de las tareas. Sin embargo, si encuentras dificultades en la ejecución de aplicaciones (como por ejemplo Applets) quizás te convenga instalar la versión oficial de Oracle.



Para empezar vamos a descargar el software de Java, por favor consulta:
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

Nota: Al día de éste post la última versión es la 8 update 66, recomiendo al lector visitar la página de Oracle para obtener la última versión. Modifica los comandos de acuerdo a la versión descargada.
Nota: Descargamos el instalador con extensión .tar.gz y NO el RPM.
Nota: En este tutorial trabajamos con la versión de 64 bits, verifica la arquitectura de tu sistema y de Java descargado.  
 Ahora procedemos a instalar Java. Asumiendo que el instalador quedó en la carpeta Descargas ejecutamos en consola (Requiere contraseña de root) (una instrucción por línea):
$ cd Descargas/
$ tar zxvf jre-8u66-linux-x64.tar.gz
$ su -
# mv /home/<USUARIO>/Descargas/jre1.8.0_66 /opt

Una vez hecho esto es momento de hacerla predeterminada en el sistema; Primero creamos el archivo java.sh (Puedes reemplazar nano por tu editor de texto favorito, como por ejemplo gedit o kwrite):

$ su -c 'dnf -y install nano'
$ su -c 'nano /etc/profile.d/java.sh'

Dicho archivo debe contener las siguientes líneas:

export JAVA_HOME=/opt/jre1.8.0_66
export PATH=$JAVA_HOME/bin:$PATH

Guarda y cierra el editor de texto (Ctrl+O y Ctrl+X en nano), a continuación digita en una terminal (como root):

# source /etc/profile.d/java.sh
# alternatives --config java

Verás algo en pantalla como:

There is 1 programs which provide 'java'.
Selection     Command
-----------------------------------------------
*+ 1         /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
     
Enter to keep the current selection[+], or type selection number:

Nos muestra la lista de programas que proveen la funcionalidad de Java. En este caso sólo hay uno así que agregaremos el número 2. Si el comando no muestra nada, no te preocupes, significa que no hay una instalación de Java y para eso estamos aquí. Con el siguiente comando agrega tu instalación:



Nota: Si no tienes ningún programa que provea Java reemplaza el número 2 por un 1. Si hubieran 2 programas ajusta el comando reemplazando el 2 del final por un 3 y así sucesivamente.
Con éste comando se debió haber agregado nuestra versión de Java, así que una vez más ejecuta:

# alternatives --config java

Ahora deberías ver algo como:

There are 2 programs which provide 'java'.
Selection     Command
-----------------------------------------------
*+ 1         /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
   2         /opt/jre1.8.0_66/bin/java
Enter to keep the current selection[+], or type selection number:

Ingrese el número de la opción que ingresamos (Por ejemplo 2). Si todo salió bien digita en consola:

$ java -version

Debes ver algo como:

java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) Client VM (build 25.66-b27, mixed mode)

Agregando el plugin de Java a Firefox

Finalmente agregamos el plugin a Firefox digitando en una terminal (Ejecuta como root):

Si utilizamos 32 bits:



Si utilizamos 64 bits:



Finalmente nos aseguramos que el plugin de Firefox esté activo por defecto:

# alternatives --config libjavaplugin.so

Una vez hecho ésto reinicia el navegador Firefox, en la barra de direcciones digita about:plugins y verifica que Java se encuentre activo. Otra opción es visitar el sitio de Oracle para verificar la instalación http://www.java.com/es/download/installed.jsp

Y listo, a disfrutar de las bondades de Java!

miércoles, 4 de noviembre de 2015

Actualiza de Fedora 22 a Fedora 23 en cinco sencillos pasos

Si ya tienes un sistema instalado con Fedora 22, actualizar a Fedora 23 resultará una tarea muy sencilla. A continuación, describimos los cinco pasos claves para una feliz actualización.


1. Realiza copia de seguridad de tu sistema


No es que el proceso sea poco seguro, es que hacer una copia de seguridad nunca sobra. Por eso, te recomiendo sacar una copia de todos los archivos importantes de tu sistema, bien sea copiándolos a otra unidad o USB manualmente o usando una herramienta de copias de seguridad como Deja Dup.

2. Actualiza tu sistema


Antes de actualizar a Fedora 23, es necesario que tu instalación de Fedora 22 se encuentre al día con las últimas actualizaciones, para ello, solo ejecuta en una terminal como root.

# dnf upgrade

3. Instalar el plugin de DNF


La actualización se hará a través de DNF, por ello es necesario instalar el siguiente plugin:

# dnf install dnf-plugin-system-upgrade

4. Actualiza tu sistema


Una vez tu sistema se encuentra respaldado, actualizado y con el plugin de DNF, podemos comenzar la actualización. Este comando descargará todos los archivos necesarios para la instalación de Fedora 23:

# dnf system-upgrade download --releasever=23 --best

5. Reinicia y completa la instalación.


Finalmente tenemos la actualización propiamente dicha. Durante este proceso tu sistema se reiniciará e instalará los nuevos paquetes. 

# dnf system-upgrade reboot
 
Con estas instrucciones no queda más sino disfrutar de la nueva versión de Fedora.

--
Este tutorial está basado en las instrucciones de Fedora Magazine
http://fedoramagazine.org/upgrading-from-fedora-22-to-fedora-23/