27 de diciembre de 2014

Implementar jQuery en tu Blogger.

Imagen obtenida de Wikimedia
En los últimos años se ha visto una creciente y fuerte demanda en el sector del desarrollo Web. El auge ha sido tan grande que se han desarrollado plataformas para aprender a programar en un gran abanico de lenguajes de programación y otros como pueden ser Python, Perl, Ruby, PHP... en vivo y en directo; otras que sustentan grandes contenidos multimedia educativos como es Udemy; visualizar modelos en 3D del cuerpo humano como es el caso de Biodigital... que tal vez no se habían ni pensado por asomo antaño.

Estos cambios han surgido gracias al desarrollo y continuación de uno de los lenguajes de programación que han promovido estos acontecimientos su nombre es JavaScript y nació en el año 1995 por un trabajador del viejo explorador Web, Brendan Eich. Este lenguaje se ejecuta en el navegador Web que estemos utilizando generando efectos; ventanas emergentes o también llamadas "pop-ups" entre otras muchas cosas.

Instalando Cisco Packet Tracer 6.1.1 en openSUSE 13.2

Hace un tiempo redacté un tutorial sobre como instalar en Fedora 20 este pequeño pero potente simulador de networking elaborado por Cisco. Sin embargo, debido a los términos que "prohíbe" su distribución por la red. Solo os dejaré los pasos a seguir para instalarlo en openSUSE 13.2

Primeramente, deberías dirigiros, aquellos usuarios registrados a la Web de descargas de Cisco, y descargáis la versión para estudiantes empaquetada para Ubuntu. No os preocupéis, porque gracias al equipo de Cisco no es un .deb para gobernarlos a todos. Es un paquete comprimido con un script de instalación.


Una vez descargado, lo descomprimimos, y procederemos a instalar este paquete libqt4-qt3support-32bit que contiene todas las librerías que necesitaremos para que se ejecute Packet Tracer en nuestro sistema 64 bits. Por lo general, quién tenga 32 bits puede saltarse este proceso.

Por último, nos situamos en la carpeta de donde se encuentre descomprimido PT6 desde una terminal y como root, y ejecutaremos ./install. Tan solo es seguir los pasos que nos preguntan y voilá, lo tendremos instalado.


¡Saludos!

Referencias

netSysblog ~ Instalando Packet Tracer 5.3.3 en Fedora
opensusegecko ~ OpenSUSE: Instalar Packet Tracer 6.0.1 en openSUSE 13.1

20 de diciembre de 2014

Fedora 21 disponible para otras arquitecturas

Unos pocos días atrás, Fedora Project un proyecto informático orientado a la elaboración y difusión del sistema operativo Fedora con miles de voluntarios en todo el mundo liberó la versión nueva de su sistema, Fedora 21. 

Dando a conocer principalmente la noticia en una de sus listas de correo electrónico mencionando su disponibilidad en plataformas x86 y x86-64, dos de las más comercializadas desde hace muchos años.

Sin embargo, en estos días se ha ido mencionado su disponibilidad en diversas arquitecturas como PowerPC, AArch64, IBM Z (s390x) ampliando así su llegada a los diversos tipos de plataformas que hay en el mercado. 

Para ver las publicaciones oficiales para cada plataforma pulse en los siguientes enlaces. PowerPC, AArch64, IBM Z. Aquí tendrá más información detallada sobre como ver los posibles errores entre otras cosas.

15 de diciembre de 2014

Fedora Project y la llegada de Fedora 21

Imagen obtenida TheFedoraProject

Hace seis días que Fedora Project, un proyecto informático internacional basado en los términos del Open Source y elaborado por una gran cantidad de voluntarios en todo el mundo. Liberó una nueva versión de su sistema operativo llamado Fedora. Ni más ni menos que la versión número 21 que trae una gran variedad de cambios.

Como por el ejemplo, ya no existen nombres que acompañen a la distribución como ha ocurrido con todas las versiones anteriores que podemos ver en la siguiente página. Estos nombres han ido de la mano siempre con cada versión de su sistema operativo desde sus comienzos, algunos elegidos por Redhat y otros por la propia comunidad de Fedora mediante votaciones.

Sin embargo, será reemplazado por los tres 'sabores' como son Workstation, Server y Cloud. Esta novedad se ha ido comentando con el paso del tiempo bajo nombre de Fedora.Next. Esto supone un punto a favor para el proyecto para no englobar a todos los usuarios por igual, y tener un 'mercado' más segmentado.

Fedora workstation está más centrado en aquellos usuarios de "andar por casa". Los que escuchamos música, navegamos por Internet, para trabajar con suites ofimáticas, en desarrollo de aplicaciones o software, visualizar películas y muchas más cosas que dependen del perfil de cada usuario.

Fedora server está orientado para todo lo relacionado con los servidores pero sin intentar competir con otras distribuciones como CentOS o RHEL. Este sabor incluye apartados como virtualización ;servidores Web; sistema de archivos distribuidos o de red; compartición de ficheros con sistemas de Microsoft Windows...etc o el uso de software permitiendo hacer uso de estas nuevas tecnologías sin perder estabilidad y robustez

Fedora cloud se orienta más a elaborar un 'contenedor', una 'imagen' de Fedora lista para implantarse en plataformas del entorno de la nube como es Amazon WS a golpe de clic. Sin necesidad de tener que pasar por el proceso de instalación, y sobre todo es una imagen bastante ligera y reducida gracias a Fedora Atomic.

Por otro lado, y hablando de manera más general contiene una gran lista de cambios que traen multitud de novedades y mejoras que no paran de sorprendernos como es el caso del nuevo y próximo servidor gráfico Wayland; DevAssistant, un nuevo software que pretende facilitar el desarrollo de aplicaciones al usuario; las nuevas versiones de entornos de escritorio como GNOME, KDE, XFCE, LXDE; la implementación de Cockpit y FreeIPA entre una larga lista detallada que pueden encontrar aquí.

No obstante, la liberación de workstation, server, cloud no supone el fin de las ediciones o 'spins' que tiene el proyecto para cada tipo de usuario como es el caso de Fedora KDE, Fedora Scientific, Fedora Games, Fedora Musicians... estas pueden obtenerse actualizadas y preparadas desde la siguiente página.

Y por último cabe destacar el cambio del sitio Web ofreciendo una información justa y necesaria sobre los diversos 'sabores' y del propio proyecto. Además de ofrecer una imagen más corporativa y actualizada que la anterior.

Descarga Fedora desde aquí

Referencias

16 de noviembre de 2014

Establecer conexión entre PHP (mysqli) y MariaDB

En estos años se ha ido experimentado un gran crecimiento en la búsqueda de digitalizar toda la información que emiten desde grandes empresas hasta en pequeños subsistemas de información que podamos hacer nosotros por andar por casa como es el caso de un blog. 

Para así gestionar toda nuestra información por muy irrelevante que sea, de una manera más cómoda, eficiente, rápida y segura. En contra posición de la procedimiento tradicional que es papel, tinta, una impresora y un gran armario para almacenar todos esos papeles molestos y difíciles de encontrar.



Como hablamos anteriormente, PHP es un lenguaje de programación orientado al desarrollo de páginas Web dinámicas. Por ende, podemos sacarle un gran partido combinándolo con un sistema gestor de base de datos como MariaDB haciendo páginas Web que muestren la información que queramos. Esto ocurre gracias a los ODBC, inglés Open Database Connectivity, una serie de drivers que permiten conectarnos a nuestro SGDB y poder trabajar con él. Por norma general todos los SGBD deben tenerlos porque forma parte de un estándar. PHP tiene una serie de funciones, métodos, clases que permiten mediante una API conectar a estos SGBD.

13 de noviembre de 2014

Telegram ya tiene un cliente Web oficial

Hasta hace unas horas, para acceder a la red de Telegram y poder compartir información, y comunicarme con mis contactos. Accedía mediante una aplicación Web que se encontraba alojada en un repositorio de Github llamado Webogram, del usuario Igor Zhukov. Este muchacho junto con otros 20 programadores que contribuyeron a su desarrollo fue tan exitoso que se ha convertido en la aplicación Web de Telegram.

Antes se accedía a Webogram mediante este enlace. Si eras una de las personas que lo utilizaba, seguramente habrás visto el siguiente mensaje de actualización.

Que nos informa además, de que se ha implementado un módulo de cliente que es a nivel nativo para mejorar la velocidad de encriptación de los mensajes; la velocidad de descarga y bajada es casi prácticamente como si fuera una aplicación instalada en nuestra máquina; una conexión cifrada mediante HTTPS desde la Web oficial... entre otras más cosas.

Logo de Telegram, obtenido de Telegram.org
Para aquellos que no sepan aún que es Telegram. Es una aplicación de mensajería instantánea como el famoso WhatsApp. Pero este si que cifra la información cuando se envía, no como ocurre en WhatsApp. Por ello habían salido aplicaciones, programas que permitían acceder a la base de datos generada por WhatsApp a cierta hora cada día. Para así visualizar cada uno de los mensajes que teníamos almacenados. Eso y muchas cosas más como utilizar una red Wifi e ir captando los mensajes de aquellos que utilizaban WA y leerlos sin ninguna complejidad.


Así que para aquellos que no se han atrevido aún con Telegram. Os podéis descargar su aplicación en Google Play Store; acceder mediante Web; mediante una serie de clientes no oficiales como Sigram que permite conectarnos mediante un programa que se ejecuta en nuestro ordenador.

Un saludo, y... !a mandar Telegram-as!

12 de noviembre de 2014

Introducción al SQL

Según la Wikipedia, han pasado ya muchos años desde que en aquellos 1970, se ideó una forma de como crear un modelo en el que los datos se pudieran almacenar de manera lógica haciendo uso de una serie de estructuras llamadas tablas dentro de una base de datos. 

Imagen obtenida de Freevectors.net
Esta manera de como organizar y estructurar la información se llama modelo relacional y fue ideado por Edgar Frank Codd, un gran científico informático que trabajó para IBM y que gracias a él se sustentan la mayor parte de las bases de datos actuales basadas en este modelo relacional. 

Más tarde de haber publicado su idea, IBM desarrolló en sus laboratorios un lenguaje llamado Structured English Query Language o conocido por sus siglas como SEQUEL, y puesto en práctica en un SGBD experimental llamado System R, también elaborado en los laboratorios de IBM sobre el 1977. Sin embargo, Oracle fue la primera empresa que pudo comercializarlo en sus productos en el año 1979.

8 de noviembre de 2014

Finalizando las entregas de PHP

Y ya tocamos el techo sobre estas pequeñas entregas de PHP. Aún queda mucho más por supuesto, como realizar consultas a bases de datos mediante mysqli o PDO, depurando errores, funciones que dependan de nuestros intereses como programador.... Teniendo esta pequeña base y como gusto buscar en Google. Se puede empezar hacer desde ya un pequeño proyecto.

Lo que si he visto en varias ofertas de trabajo, es que se sepa manejar un framework de PHP como Laravel, CakePHP, Symfony, ZendPHP.... os lo dejo como apunte por si queréis investigarlos. De momento no lo mencionaremos dentro de estas pequeñas entregas de PHP.




Objetos

Introducción

Hacer uso de objetos en nuestra forma de programar hace más legible, simple, eficiente y sobre todo más sencillo para todo incluyendo resolución de errores. Cada objeto tiene una serie de variables como si fuera una persona. Bien, pongamos como objeto a una persona tiene un tipo de medida para el color de ojos, longitud de pelo, color del pelo, tez, altura, peso... esto serían variables. Además de eso, nosotros los seres humanos realizamos una serie de funciones como correr, saltar, pensar, calcular... 

7 de noviembre de 2014

Tercera entrega de PHP

Como bien sabrán, estoy realizando una serie de entregas de PHP dónde voy explicando un poco la introducción a la sintaxis, los tipos de condicionales y bucles. Se supone que era un post por día, pero debido al alto grado de actividad que soporto no he podido hacerlo y os obsequiaré con dos entradas en una.



Continuando las sentencias por el lado de los bucles.

Otro tipo de bucle es foreach. Este se utiliza para recorrer los arrays de los que hemos hablado anteriormente. Permite acceder a cada uno de ellos y realizar las operaciones que queramos.

<?php
foreach (variable as variable) // También puedes sustituirlo por una nueva variable
{
Operación;
}
?>

Veamos un ejemplo con un array que contiene una serie de colores como el Rojo, el amarillo el verde pero sin tener un índice definido:

<?php
$colores = array(“Rojo”, “Amarillo”, “Verde”);

foreach ($colores as $color)
{
echo “Este es el color “.$color.”<br>”;
}
?>
Esto mostrará la frase con los tres tipos de colores asignados.

En suma, tenemos un bucle muy utilizado sobre todo para sacar datos de una base de datos. El bucle while. El bucle while permite ejecutar una cosa mientras se cumpla una condición.

<?php


while (condición)
{
Operación;
}
?>


3 de noviembre de 2014

Segunda entrega de PHP

Para los que no se encuentren al tanto. Estoy realizando una serie de publicaciones de apuntes con PHP que se irán publicando a lo largo de la semana. Puedes leer la entrada inicial pulsando aquí.

Aquí os deleito con la segunda entrega diaria de PHP, espero que os sirva de utilidad.


Constantes

Las constantes son valores definidos que no se pueden modificar. Es decir, lo contrario a las variables.
Para definir una constante se hace uso de la función define();

<?php
define(“nombre_constante”, valor);
echo nombre_constante;
?>

Concatenar

En este estupendo lenguaje, se pueden “unir” tipos de datos y que se muestren sin problemas.
Para llevar a cabo esto, se interpone un . entre los valores que queramos “unir”.

<?php
$a = “Esta es una frase”;
$b = 1;
echo $a.$b;
?>
Esto muestra en pantalla: Esta es una frase1

Comentarios

¿Qué sería de un lenguaje sin comentarios? Los comentarios permiten almacenar información relativamente relevante cuando hacemos cambios en nuestro programa, poder verlo al día siguiente, una semana después, o al mes siguiente y comprender por qué hicimos ese cambio.

Además, si queremos compartir ese programa para que lo puedan ver tanto en casa como en Inglaterra, EEUU, India... tendrán que hacerse una idea de como funciona y qué mejor manera que comentar nuestro programa.

Existen dos formas de realizar los comentarios, por línea que permiten hacer un pequeño inciso en una línea para hacer hincapié en algo concreto.

<?php
// Esto es un comentario, acaba de declarar una variable vacía.
$ejemplo;
?>

Y por otro lado, tenemos la opción de comentar bloques de código, para bien hacer pruebas, o incluir la licencia del programa...

<?php
/*
Esto es un ejemplo de un comentario
Muy largo, muy largo, muy largo....
*/
?>

Sentencias

Como todo lenguaje de programación tenemos una serie de estructuras con las que trabajar con nuestro programa, estas estructuras se llaman sentencias.
Como sentencia principal tenemos la más simple y básica que es la sentencia echo. Esta nos permite mostrar en pantalla los tipos de datos que hemos visto.

2 de noviembre de 2014

Primera entrega de PHP

Bienvenidos a mi primera pequeña entrega de PHP. Aprovechando que me encuentro realizando el documento integrador de un proyecto de clase como último curso. Tengo la oportunidad de añadirlo a mi blog para que otras personas puedan leerlo y estudiarlo. 

En esta primera entrega, explicaremos un poco qué es este maravilloso lenguaje lo justo para trabajar, qué son las variables, operadores aritméticos, lógicos, comparativos, tipos de datos... y un poco más.

Iré añadiendo más apuntes cada día.

Un saludo y espero que los disfrutéis.

¿Qué es PHP?

Imagen obtenida de Wikimedia

PHP viene de las siglas un tanto recursivas en inglés PHP: Hypertext Preprocessor.Es uno de los lenguajes de programación más populares que existen para el desarrollo de páginas Web dinámicas y además pertenece a la familia de desarrollo de código abierto u Open Source . Este lenguaje se ejecuta de cara al servidor, es decir que toda la información que mande o envíe el usuario será recogida por él para después, devolverle los cálculos o el proceso que se haya programado en código básico de HTML.

Por otro lado, no sólo podemos hacer uso de PHP para que se ejecute utilizando páginas Web. PHP posee una consola interactiva o terminal para ejecutar nuestros programas en él sin necesidad de hacer uso de un navegador Web.

Primeros pasos

¿Cómo declarar un archivo en PHP?

Si vamos a realizar una página Web totalmente dinámica que contenga código PHP, deberemos especificarlo previamente con la siguiente directiva además de almacenarlo con extensión .php.

<?php

?>

Si no se incluyen esa declaración, el código no funcionará y solo se interpretará mostrando texto en HTML.

Sintaxis y flujo de trabajo

En este tipo de lenguaje siempre que hagamos cualquier tipo de operación hay que cerrarla mediante el uso de punto y coma. (;). De lo contrario puede darnos error y no nos funcionará a excepción de que se encuentre en el último proceso de todo el archivo, no obstante siempre es bueno hacer uso siempre de (;). Más adelante veremos como de importante es mantener cerrados los paréntesis, y llaves en tipos de objetos más adelante.

En cuánto al flujo de trabajo, si invocamos al PHP en ciertos bloques de código como mencionamos en el ejemplo anterior. Funcionarán como si se ejecutase en uno solo. Por ejemplo. Si hacemos uso de una variable en la parte superior del archivo, y en el final declaro otra variable. Yo puedo acceder desde cualquier parte del documento a esas dos variables. No es algo secuencial, a menos que alteremos sus valores, entonces su valor no es el mismo al principio como al final.

23 de octubre de 2014

GNOME Tweak tool, aún presente

Con el auge y salida de GNOME 3. Muchas de las funcionalidades que se encontraban en su anterior versión, la 2. Se vieron bastantemente recortadas incluyéndose la gestión de temas de GNOME Shell siendo más difícil que el usuario pudiese cambiar a su gusto el 'theme' por defecto; las opciones del ratón al pulsar Clic derecho en el escritorio para seleccionar el fondo del escritorio, o el no poder maximizar, minimizar las ventanas con los típicos botones de las ventanas...

Imagen extraída de WorlOfGNOME

Fue tal el cambio que muchos usuarios, amigos que conocía (incluyéndome) nos fuimos a otros entornos como KDE, XFCE, LXDE o gestores de ventanas. Incluso en Fedora generaron un primer 'fork' de GNOME 2 llamado BlueBubble que permitía utilizar GNOME 2 en Fedora 15 que proveía los primeros pasos de GNOME 3, ya desmantenido.
Por otro lado, el equipo de desarrollo, empaquetadores... de Linux Mint, decidieron crear un fork de GNOME Shell llamado Cinnamon que aún sigue en activo; Ubuntu lanzó su propia shell llamada Unity; El equipo de GNOME desarrolló una alternativa a la apariencia de GNOME 3 y su clásica Shell lamada GNOME-classic...

Sin embargo, todos aquellos usuarios que seguían (o siguen) utilizando GNOME 3 con su Shell por defecto. Decidieron crear una herramienta para gestionar las extensiones, las combinaciones de teclas, los temas de GNOME Shell, aplicaciones que iniciaran por defecto entre otras muchas más características de esta herramienta.

A día de hoy, todavía sigue haciendo falta. Dado que la herramienta de extensiones como hemos hablado en el post de Gestionando las extensiones en GNOME shell no nos permite gestionar correctamente los temas para la Shell; gestionar las tipografías que queramos utilizar en nuestro escritorio, las combinaciones de teclas, programas que corran luego de iniciar sesión...

Resumiendo, para instalarla y poder tener un mejor control sobre nuestro entorno en GNOME 3. Podemos instalar esta herramienta con el nombre de paquete gnome-tweak-tool en Fedora. Y comenzar a modificar la apariencia y determinados aspectos funcionales como las propiedades del teclado y ratón, combinaciones de teclas y muchas cosas que no podemos configurar, al menos gráficamente.



Referencias

  • Wikipedia
  • Google

Portapapeles en GNOME 3

Un dato curioso de la instalación por defecto de GNOME 3 en Fedora es que no viene un gestor de portapapeles por defecto. Para los que no sepan que es un 'gestor de portapapeles' es un programa que permite gestionar lo que copiamos, cortamos, pegamos con las famosas teclas CTRL+X, C ó V; o bien con el ratón haciendo clic derecho y seleccionando 'Copiar, pegar...'.

Bien hay un portapapeles que se integra bastante bien en GNOME 3 llamado gpaste. Lo podemos instalar con los paquetes gpaste y además de la extensión gnome-shell-extension-gpaste para GNOME-Shell.

Visualizando el historial del portapapeles
GPaste provee multitud de funcionalidades que van desde cuántas líneas queramos que se nos guarde en nuestro historial, pasando por almacenamiento de imágenes que se hayan copiado, cortado previamente hasta la configuración de combinaciones de teclas o realizar una copia de seguridad de lo que hayamos copiado entre otras muchas funcionalidades.

Gestionando algunos parámetros de GPaste

Referencias


Gestionando las extensiones de GNOME-Shell

Como abremos visto en el artículo anterior sobre cómo Instalar extensiones en GNOME Shell, en dónde tenemos una pequeña sección de la página que permite gestionar nuestras extensiones previamente instaladas en nuestro directorio de usuario. Aquí hablaremos de cómo 'invocar' a la utilidad que modifica los parámetros y configuraciones de cada extensión.

GNOME Shell provee de dos herramientas con la que podemos configurar nuestras extensiones. Viene incluída en el paquete de gnome-shell. Así que cualquier usuario que utilice GNOME 3 le viene intrínseca en su sistema.

La herramienta se puede utilizar de forma gráfica o mediante terminal.

De forma gráfica, el ejecutable se llama gnome-shell-extension-prefs



Podemos elegir dentro del menú despegable las opciones de cada extensión de GNOME Shell.

Editando las opciones de la extensión 'Alternate Tab'
Por otro lado, podemos gestionarlas de modo no gráfico con el comando gnome-shell-extension-tool

La sintaxis del comando es la siguiente:
$ gnome-shell-extension-tool --help
Usage: gnome-shell-extension-tool [options]
Options:
  -h, --help            show this help message and exit
  -d DISABLE, --disable-extension=DISABLE
                        Disable a GNOME Shell extension
  -e ENABLE, --enable-extension=ENABLE
                        Enable a GNOME Shell extension
  -c, --create-extension
                        Create a new GNOME Shell extension

Referencias

GNOME 3 ~ Extension preferences
yum whatprovides  gnome-shell-extension-tool

Instalando extensiones para GNOME Shell

Muchos de los que usamos GNOME 3 o como también sucede con KDE y sus 'add-ons', nos sentimos atraídos por enriquecerlo aún más y aumentar, potenciar o mejorar el propio entorno para nuestros fines. Para ello tenemos una página disponible de extensiones disponible, en la que podremos instalar directamente desde nuestro navegador los 'addons' que queramos. 


Nos saldrá ese mensajito de error. Con tan solo hacer clic en "Allow..." o en español "Habilitar..." nos detectará el GNOME Shell y listo. Podremos instalar todo lo que queramos, añadir una nueva que hayamos creado estando previamente registrado en el sitio Web por supuesto, o visualizar las extensiones que tengamos instaladas en nuestro usuario.

Visualizando las extensiones que tenemos instaladas



Como vemos tenemos las opciones obvias para gestionar nuestras extensiones instaladas en nuestro usuario. Las podemos activar, desactivar, configurarlas o simplemente eliminarlas.

Instalando extensiones



Tan simple como elegir una de ellas y accionar el interruptor. Nos saltará el siguiente mensaje de confirmación, y ya la tendremos instalada.

Referencias


22 de octubre de 2014

UEFI y Stella Linux 6.5

Stella Linux, logo oficial
Stella Linux es un 'remix' del famoso sistema operativo CentOS que nos provee una fusión entre entorno de trabajo servidor/escritorio perfectamente funcional. Sin tener que lidiar con el típico problema a la hora de instalar paquetes tan revolucionarios como VLC, OpenShot, Audacious, Skype... a nivel de repositorios. 
Además de que el mantenedor de Stella Linux (supongo que tiene como seudónimo nux) tiene sus propios repositorios llamados SL base, y 'Nux-desktop', 'Nux-misc' además de los propios de CentOS y EPEL proveen software que no se incluyen en los repositorios anteriores.

Nota adicional: En caso de que utilices CentOS, puedes añadir los repositorios de Nux a través de la siguiente página.

Para quién no sepa qué es CentOS. Es una de las mejores distribuciones de Linux orientadas al universo de los servidores además de ser un proyecto comunitario. Es internacionalmente y ampliamente reconocida en este séctor. CentOS básicamente es un clon del sistema operativo de Red Hat llamado RHEL (Red Hat Enterprise Linux) el cuál utiliza multitud de negocios, comercios y sobre todo bolsas de mercado como la NYSE por su gran calidad, robustez, estabilidad y servicio.

Logo de CentOS

El siguiente problema que me encontré cuando intenté utilizarlo en entorno UEFI habilitado, el resultado que obtenía era básicamente el que no podía arrancar. Sin embargo, en modo normal arranca sin problemas.


La solución la encontré visualizando la estructura de directorios que se encontraban en EFI. Resulta que en la opción para arrancar Stella aparece como 'boot' en vez de 'BOOT'. Para solucionarlo, deberemos editar la entrada del gestor de arranque ('GRUB') nada más arrancar el LiveCD/USB... pulsando la tecla de tabulación antes de que inicie el sistema y posteriormente la tecla 'e' en las dos líneas.
Para salvar el cambio temporal es con Enter.

Y cambiar boot por BOOT como en la siguiente imagen:


 Una vez editemos la línea de 'kernel' y 'initrd' pulsamos 'b'.


¡Y ya lo podremos instalar, o usar!

Referencias

21 de septiembre de 2014

Depurando PHP con un poco más de estilo

Una de las mejores prácticas para probar si nuestra 'aplicación' Web en PHP, código...etc en PHP es depurarlo lo máximo posible. Y pasar horas y horas frente a la pantalla viendo errores, warnings...etc en una triste letra con un fondo blanco se nos hace un pelín más deprimente.

Si no te gusta, puedes cambiarlo a golpe de paquete llamado php-pecl-xdebug y reiniciando por supuesto el servidor de Apache (httpd).

Pasaremos de tener esta interfaz:

 Por esta:

Para más información, puedes visitar la página de Xdebug. Para modificar parámetros o añadirlos. El fichero está localizado en /etc/php.d/xdebug.ini

Nota: Tenemos que tener habilitadas los siguientes parámetros del fichero /etc/php.ini para poder visualizar correctamente los Warnings o errores a la hora de probar nuestro código:
error_reporting = E_ALL
display_errors = On

17 de agosto de 2014

Servidor PHP5 + Apache + MariaDB server en local con Fedora 20

Como ando profundizando poco a poco en la programación Web y entre tanto framework de cada lenguaje como Zend, Symfony (entre otros) de PHP, Django de Python, Ruby on Rails de Ruby, lenguajes de programación unos orientados a desarrollo Web, otros generalmente para programas o scripts en local... esto acaba siendo un gazpacho de innumerables dimensiones.

Por lo pronto ando mejorando los conocimientos con PHP investigando sobre la orientación a objetos. Así puedo subirme a la "nueva" forma de programar. Y hasta que no domine bien las clases, métodos, atributos y multitud de cosas raras no creo que me vea dentro de un framework como Zend. Eso sí, a finales de este año deberé saber al menos hacer ¡una línea!

Pués, nos subimos al deportivo de las conexiones Web, y montemos el servidor local para trabajar. 

Primero, deberemos instalar los respectivos paquetes, httpd, mariadb-server, php, phpMyAdmin.
$ su -c "yum install php phpMyAdmin mariadb-server httpd"
Segundo, arrancamos los 'demonios' (de daemons en inglés).
$ su -c "systemctl start httpd mysqld"
Tercero, configuramos el servidor MariaDB.
$ su -c "mysql_secure_installation"
Este comando nos generará una serie de preguntas a las que deberemos atender. Generalmente lo que nos importará aquí es que debamos setear la contraseña de root. Que es la que más adelante utilizaremos para acceder a PHPMyAdmin, realizar conexiones con mysqli.... El resto de preguntas con pulsar todo enter no deberíamos tener problemas.

Y por último, una vez finalizada la configuración, accederemos a través de nuestro navegador accedemos a http://127.0.0.1 que es nuestra dirección local dónde tendremos nuestro servidor Web.


Ya tendremos nuestro servidor corriendo. Personalmente, no lo inicio cuando arranque el sistema (boot), porque prefiero lanzarlo solo cuando quiera trastear. Si os interesa mantenerlo iniciado desde el arranque deberéis entonces ejecutar los siguientes comandos:
$ su -c "systemctl enable httpd mysqld"
Para detenerlos.
$ su -c "systemctl stop httpd mysqld"
Antes de finalizar con este post. Os diré que los archivos de nuestros proyectos, o de cualquier cosa que dependa de un servidor, de otro o de ambos queda alojado en el directorio /var/www/html y por último daré un par de consejillos que nos hará la vida un pelín más feliz.

Debuggeando en PHP.

Esto es muy importante, la configuración por defecto de PHP ubicada en /etc/ como php.ini no tiene un buen debug. Esto supongo que está de este modo para utilizar en producción y olvidarse de que 'malechores' se aprovechen de los errores para acceder a los sistemas y 'corromper' o revender los datos de las DBs.

Para ello deberemos editar el fichero /etc/php.ini y modificar estas dos líneas tal que se queden del siguiente modo.
display_errors = On
error_reporting = E_ALL
Una vez hecho esto, reiniciamos el servidor httpd.

¿Permisos? ¿Problem officer?

Cuando pensamos en caliente, no hay nada más pedante que los permisos en GNU/Linux o en sistemas Unix-like. Y cargamos contra ellos. Sin embargo, nos enfriaremos un poco y lo haremos lo más simple posible.

Si vamos a trabajar en una carpeta llamada por ejemplo 'proyectos' en la que dentro de ella, crearemos proyectos independientes basta con hacer lo siguiente:
$ su -c "mkdir /var/www/html/proyectos"
$ su -c "chown tu_usuario:tu_usuario /var/www/html/proyectos"
Si por el contrario vas a poner patás arriba todo el directorio general o principal dónde trabajará el servidor Apache.
$ su -c "chown tu_usuario:tu_usuario /var/www/html/"
Esto es una configuración para un servidor local, ¡no para producción por el amor de dios!

¿Editores de texto? ¡No! Mejor un IDE

¡Cuántos quebraderos de cabeza nos da ya un editor simple de textos! Para eso tenemos un grupo de programas llamados IDE. Un IDE es un Entorno integrado de desarrollo (traducido a mi bardo español) en el que te hará la vida más sencilla a la hora de trabajar con diferentes lenguajes, sean de programación, etiquetas...etc. Te colorean palabras clave, te ayudan a finalizar la sintaxis de los (),[],{}, de las palabras reservadas, textos...

Para que vean un poco a lo que me refiero, en el lado izquierdo tenemos el editor de textos Gedit, y a la derecha Geany. Es notable la diferencia ¿no?
Nota: Gedit también podría actuar como IDE, pero es para dejar un símil de lo que intento explicar.


Personalmente utilizo Geany, es bastante liviano y cumple con lo que necesito ahora mismo. Sublime Text es bastante utilizado y recomendado también. Y por lo visto hay muchos más de ellos como Eclipse, NetBeans...etc ¡Ahí lo dejo a libre elección!

Breves notas explicativas:
  • Apache. Es un servidor Web que mediante el uso del protocolo http y un puerto, el 80 por defecto nos permite interactuar y sobre todo ver los sitios Webs.
  • MariaDB. Es un fork que salió un tiempo después de la adquisión de Sun por parte de Oracle. MySQL es un sistema gestor de base de datos que permite el almacenamiento, consultas... a una base de datos que hayamos creado o a la que nos hayamos conectado previamente.
  • PHPMyAdmin. Es un conjunto de librerías, funciones... que interactúan con el servidor de Apache y MariaDB en este caso para mostrar, modificar, o alterar datos de una base de datos gráficamente mediante una interfaz Web.

Referencias
  • Google
  • PHP.net
  • Geany doc
  • ComunidadPHP
  • StackOverflow
  • Apache Web server
  • Fedora doc

10 de agosto de 2014

return "blog"

Buenas muchach@s. Hace un largo tiempo que no escribía de nuevo en el blog y la verdad que lo he dejado un 'poco' apartado debido a causas como el trabajo, proyecto de fin de primer año, aprender programación, y sobre todo porque es verano. Y claro estar todo el rato o bien en la calle, o bien haciendo cursos en CodeAcademy como que no te anima a redactar mucho. (De hecho estoy redactando este post a escasos minutos de irme a la playa).

Sin embargo vengo trayendo unas pocas novedades:

 

Aprendiendo a programar

Si bien antes no era uno de mis puntos fuertes, ni si quiera tenía nociones de ello, tanto de programación Web como puede ser CSS, HTML, PHP, JavaScript y jQuery (entre ellos hay varios que no se definen como lenguaje de programación ojo) hasta aprendiendo Python. Y mediante el e-learning con muchas ganas le sacas mucho provecho sobre todo cuando haces ejercicios con explicaciones en vivo y en directo con CodeAcademy, también con los libros que puedes encontrar por Internet como el de Eugenia Bahit titulado Curso: Python para principiantes liberado bajo Creative Commons
CC-NC-ND y totalmente descargable desde multitud de sitios de Internet. Explica bastante bien la sintaxis, el control de flujo, los objetos y mucho más. Entre otras fuentes, también tenemos la documentación de jQuery, JavaScript, PHP de los sitios oficiales. 

Me he quedado tan maravillado, que ahora la programación es como casi el total de mi fuente de entretenimiento. Día que no practico algo, día que me voy con regañadientes a dormir. Y estoy ahí ahí a ver si puedo ver multitud de cosas y ponerlas en práctica antes de empezar con los famosos frameworks, que son como librerías, bibliotecas, conjuntos de multitud de código que hacen la vida del desarrollo mucho más sencilla (en teoría, jojojo) y además disponibles para multitud de lenguajes como jQuery de JavaScript, AngularJS (JavaScript), Django (Python4Web), Laravel de PHP, Bootstrap de CSS...

 

Creando un CMS, PostIO

Como estoy en un grado superior de informática llamado ASIR (Administración de Sistemas Informáticos en Red), que a pesar de tener ese nombre que llama más a un perfil de sysadmin, también se da programación Web, shell scripting con bash, SQL para base de datos... en una de las asignaturas llamada 'Gestión de base de datos', como tarea final se nos mandó ha hacer un proyecto utilizando un Sistema Gestor de Base de Datos da igual el que fuese mientras se almacenasen información aguardando su integridad referencial, sus claves foráneas, primarias.... y todo ese 'tinglado' que realmente lo controlas en un 80% con la programación más que con las relaciones entre entidades... bueno, sin ir más lejos. 

Bueno comencé poniéndome un objetivo bastante fuerte y parecía incluso utópico. Ni más ni menos quería hacer un CMS que pudiera generar blogs. Si, como Wordpress con su instalador y todo, ¡solo teniendo un vago recuerdo de estos lenguajes! Pues la cuestión, empecé a indagar un poco en PHP, CSS, HTML, SQL para poder hacerlo. Y después de horas y horas, días y días, meses y meses generando código y subiéndolo a mi repo en GitHub... ¡lo logré!

Un CMS completamente desde 0, sin frameworks, y con lo más simple del mundo. Era tan simple que apenas tenía funciones, y algo que no me gustó que a mediados de proyecto me encontré con que las funciones mysql_* ya no estaban soportadas justo en la mitad del proyecto. Así que si lo deciden probar, es para estudio o desarrollo, pero no para entornos de producción. Además de que fue un graso error no implementar ni funciones, ni objetos, ni clases, el código es tan simple que creo que es hasta redundante. Cosa que corregiré de camino a la segunda versión.

Y por último, el ¡nombre y la fuente! Como es un generador de blogs, en ellos hay mucha salida y entrada de información, por ello le puse el nombre de PostIO. Artículo (Post) proveniente del Inglés e IO del famoso I/O, Input/Output que viene siendo la Entrada/Salida de algo, en este caso de información. El proyecto está licenciado bajo GPLv2 además de incluir las respectivas licencias detalladas en el README.

Puedes obtenerlo a través del siguiente enlace, o bien clonando el repositorio desde git.
git clone https://github.com/netSys/PostIO
Recuerden que ahora mismo no está destinado para entornos de producción.

Probando Docker

Hace unos meses que tuve unas conversaciones largas y extendidas con un administrador de sistemas de nativo de Irlanda que vino de paso por la isla, y curiosamente me conoció por un artículo de mi blog sobre un router de Movistar. Estuvimos dialogando como niños sobre diversos temas relacionados con Fedora y sus nuevas características de la versión 20 y de cara a la próxima release, temas de networking, virtualización y tecnologías destinadas a cloud como Amazon EC2 (cuando me lo enseñó mi cerebro se hizo un DDoS así mismo), y uno de los programas era Docker IO.

Docker es una pequeña y gran plataforma de generar 'clouds' de la nada nativamente. Soy un poco inexperto en el tema, pero por lo que entiendo y he experimentado. Descargas imágenes de pequeños sistemas como CentOS, Fedora, Ubuntu, Debian, Gentoo... que se encuentran almacenadas en una especie de 'CDN', un servidor o conjunto de servidores que almacenan las imágenes 'cloud' y que las descargamos con tan solo 2-3 comandos.

Quedé maravillado con su funcionamiento, hacías un servidor de la nada, si quiera tocabas el /etc/hosts para añadir el nuevo servidor. (Como si fuera un 'Virtual host' de Apache). Su instalación y uso son bastante fáciles así como generar tu propia cloud's image con tan sólo unos sencillos pasos. Puedes obtener más información sobre este fantástico proyecto desde el siguiente enlace.

Más adelante escribiré un artículo más detallado, porque ya queda menos para que me vengan a recoger para ir a la playa. JoJoJo. Desde aquí le mando un agradecimiento a Justin, por haber contactado conmigo y haberme enseñado todas las tecnologías que rodean el entorno cloud.

Plataformas e-learning

Como mencioné anteriormente, el e-learning me encanta, y sobre todo si son plataformas como CodeAcademy que aprendes mientras practicas directamente. Además de esta plataforma fantástica, encontré CodeSchool con cursos gratuitos de multitud de lenguajes, y otros de pago. No obstante, 20€/mes por invertir en tu futuro accediendo a casi todos ellos no está nada mal. Por otro lado encontré una especie de Humble Bundle (conjunto de ofertas que con un el dinero que tu quieras pagar sobre ellas se destinan en % a proyectos generalmente humanitarios como Unicef, Manos Unidas...) llamado Stack Social. Ahí encontré un pack de cursos buenísimos enlazados a otra plataforma Web llamada Udemy. En la que puedes aprender de ¡todo! pagando o bien si los tienes disponibles gratuitamente. En ellos puedes encontrar multitud de videotutoriales y descargártelos desde tu propio smartphone o tableta con su aplicación disponible para iOS y Google Play Store.

Sacándome el carné

Aparte de estar eufórico con todo esto de la informática, también ando con el dichoso carné. Que son multitud de gastos entre teórico, prácticas...etc acabas literalmente con tu sueldo del trabajo fundido por todos esos costes. A pesar de haber sacado el teórico por libre y ahorrarme la matrícula de la autoescuela, entre las tasas que te cobran por ellas 90€, más el paripé del certificado médico que sigo diciendo que son tres pruebas tontas que las pasa un chimpancé siendo el coste de unos 50€ y encima 22€/práctica. Acabas literalmente fundido y luego pagar 25€/examen y en caso de no aprobar, volver a pagar 90€ por solo las tasas.

Sin embargo, grata será la satisfacción ver que todo ese dinero valió realmente la pena porque tener carnet en Lanzarote es cuadruplicar las posibilidades de obtener un puesto de trabajo y aparte que tienes más libertades a la hora de irte a cualquier sitio de la isla, o más allá de la misma, península, y el resto de los países adheridos a la Unión Europea.

Y bueno muchísimas más cosas que faltan por comentar, pero creo que... ¡me voy a la playa! Juaaa. Un saludo y un abrazo a todos. 

4 de mayo de 2014

¿A dónde irás este Junio?

Pues eso, a dónde irás. Porque si no tienes un rumbo fijado para tus vacaciones, podrías pasarte por la Fedora Lanzarote Linux Workshop 2014 y de paso, ir a la playa y ¡tomarte unos helados!

FLLW 2014 es un evento que tendrá lugar  del 16 de Junio hasta el 20 en la Biblioteca Insular de Arrecife de Lanzarote para fomentar e impulsar el Software Libre o de código abierto en la isla, o si vienes de cualquier otra parte del globo. Hablaremos de temas que parten desde la introducción al SL, u Open Source; pasando por las licencias, entornos de escritorio... hasta llegar al Proyecto Fedora. ¡Todo eso en 1 día y bien machacado para que sea fácil de digerir! ¡Después nos podemos ir de playa y echarnos unas birritas, o si eres de mi tierra, un tintito!

Luego, al día siguiente tendremos una Fedora Release Party, aquí podrás llevarte tu portátil e instalar Fedora gratuitamente como el resto del evento claro. Además de hacer varias tareas postinstall para dejarlo todo de 10. 

Pero aún hay más, aún no nos vamos de playa, o de aquapark, ¿quién sabe? Tendremos a partir de aquí para el resto de la semana talleres de administración con Fedora. En entornos gráficos y en modo terminal. ¡Se acabó el prejuicio de editar textitos! Y por último, una vez concluido todo, veremos unos talleres en los que podemos hacer un vídeo casero con OpenShot, y cómo colaborar en los grandes e importantes proyectos de investigación humanitarios con BOINC.

Os podéis descargar el horario de las charlas y talleres pulsando aquí.

¡Anímate y vente, que es dentro de poco! ¡No te preocupes por el bocadillo, que habrán para todos!

Aquellos que estén interesados en buscar alojamiento, contacten conmigo para poder facilitarles un poco la cosa, o bien pueden solicitarlo mediante booking.com

¡Gracias por leerme, comentar y visitarme! 

+ Más info: FFLW 2014 - Fedoraproject.org


20 de abril de 2014

Packet Tracer 5.3.3 en Fedora 20

Enrutamiento dinámico mediante OSPF

Packet Tracer es uno de los simuladores más útiles de la red. Este nos permite crear diversas topologías de red con diversas tecnologías Ethernet, Wireless, FiberChannel; diferentes tipos de redes, PAN, LAN, MAN, WAN...; configuración de los distintos elementos de la red así como su zona geográfica...
Lo que se nos limita el acceso al software porque no se distribuye de forma gratuita. Para poder obtenerlo de forma oficial, debes ser un profesor, o un estudiante o de una entidad autorizada por la NetAcademy, que es la red académica de la empresa Cisco Systems.

Sin embargo, googleando un poco damos con muchas versiones de PT disponibles para ArchLinux, Gentoo, Slackware, Debian, openSUSE y como no Fedora pudiéndolo descargar he instalar en nuestro PC.
Nota: En caso de que poseas una distro diferente, puedes obtener la versión para la tuya desde la página fuente de descargas PT utilizada en este post.

Para instalarlo deberemos instalar o tener instalado el paquete (lista de dependencias actualizadas):
  • libXrandr.i686
  • libpng12.i686
  • fontconfig.i686
  • freetype.i686
  • glib2.i686
  • libICE.i686
  • libSM.i686  
  • libXi.i686  
  • libgcc.i686          
  • libstdc++.i686
  • expat.i686                
  • libffi.i686      
  • libpng.i686 
  • libselinux.i686 
  • libuuid.i686
  • pcre.i686  
  • xz-libs.i686
A continuación nos dirigimos a la siguiente página,o desde otro mirror y descargamos el script para instalarlo. Para ello deberemos otorgarle permisos de ejecución.
$ cd /home/$USER/Descargas
$ chmod +x Packet[Pulsar_Tabulador]
$ beesu ./Packet[Pulsar_Tabulador]
Y se nos abrirá un diálogo de instalación como el que aparece abajo.



Aceptamos la licencia y procedemos con la instalación.

Una vez terminada se nos creará un acceso a Packet Tracer desde el menú de nuestro entorno. Si usas tal vez WM como wmii, dwm...et tal vez te interese que el nombre del comando es /usr/local/PacketTracer5/packettracer

Nos aparecerá las siguientes pantallas de bienvenida, siendo la última la ventana principal y de trabajo.


Referencias

Shuttertux ~ Install Cisco Packet Tracer under Linux
HeiseR ~ Packet Tracer Version 5.3.3 Software Downloads
Google

Archive Mounter, una cómoda utilidad

A la hora de estar manejando ciertos archivos comprimidos. Tenemos la tendencia de descomprimirlos ya sea con programas como Ark en KDE, File Roller en GNOME, Engrampa en MATE, Xarchiver o desde el mismo Thunar en XFCE... el comando tar, zip...

Pues con Archive Mounter podemos montar los comprimidos como .tar.gz, .tar, .zip, .iso... como si fueran unidades virtuales de discos. Esto nos permite un rápido acceso al comprimido y seleccionar lo que queramos desde el navegador de ficheros que tengamos como podría ser Thunar, Nautilus, Caja, Dolphin... 

En la siguiente captura de pantalla podemos ver como montamos una imagen .iso con Archive Mounter en MATE.


Una vez que lo montemos nos aparecerá algo como esto:



Lo único que hay que aclarar que ese "Archive Mounter" no se llama tal cual, he incluso lo podemos modificar si queremos. Sino que es un comando que está ubicado en el directorio /usr/libexec y recibe el nombre de gvfsd-archive

Visualizando el contenido del paquete gvfs-archive. Podemos ver lo siguiente:
[netSys@keys0 ~]$ rpm -ql gvfs-archive
/usr/libexec/gvfsd-archive
/usr/share/applications/mount-archive.desktop
/usr/share/gvfs/mounts/archive.mount
Exactamente, para que nos aparezca el "Archive Mounter" en nuestra selección como forma de abrir nuestro comprimido está especificado en el fichero:
/usr/share/applications/mount-archive.desktop
Los ficheros .desktop son un estándar dictado por FreeDesktop.org para determinar el comportamiento de un programa, ejecutable... en el servidor gráfico X.org. Si vemos su contenido podemos ver efectivamente que el nombre coincide y que llama a ese ejecutable:
[netSys@keys0 ~]$ cat /usr/share/applications/mount-archive.desktop
[Desktop Entry]
Name=Archive Mounter
Exec=/usr/libexec/gvfsd-archive file=%u
X-Gnome-Vfs-System=gio
MimeType=application/x-cd-image;application/x-bzip-compressed-tar;application/x-compressed-tar;application/x-tar;application/x-cpio;application/x-zip;application/zip;application/x-lzma-compressed-tar;application/x-xz-compressed-tar;
Terminal=false
StartupNotify=false
Type=Application
NoDisplay=true
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gvfs
X-GNOME-Bugzilla-Component=archive-backend
X-GNOME-Bugzilla-Version=@VERSION@
En MimeType nos muestran los tipos de archivos soportados como los .bzip, .tar, .xz... se puede modificar para soportar más tipos de archivos comprimidos pero no es seguro que nos los pueda montar. Eso biene más bien según cómo se haya compilado ese binario y con qué soportes.

19 de abril de 2014

Hablando de Virtualización, VMware Player 6.0.2 en Fedora 20

Justamente anoche me picó un poco la curiosidad de probar este software de virtualización después de tanto tiempo. Y al parecer me sorprendió. Hacía muchos años que no probaba la versión Player. Que es de la que vamos ha hablar porque no permitía que se pudiese crear máquinas virtuales como según podemos encontrar en la Wikipedia, claro que fíjense si es vieja mi experiencia que apunta a la versión 3.0 y está ya sobre la 6.0.2. 

Sin embargo, en este post explicaremos como instalar este software de virtualización privativo tanto para la arquitectura 32 bits como 64 bits en nuestro Fedora 20. Después de haber aclarado un poco qué es la virtualización.

¿Qué es la virtualización?

Sin copiar la definición de la Wikipedia, nos atrevemos a decir que es un proceso en el cuál el sistema operativo que tengamos instalado junto con el Hardware de nuestro PC. Interactúan de tal forma que nos permita la ejecución de otro sistema operativo mediante un software que hace esto posible.
Es decir, que si tenemos un programa como por ejemplo VMware Player, VirtualBox o KVM podremos utilizar Windows XP, o cualquier otro sistema operativo sin tener que eliminar, ni redimensionar o reparticionar nuestro disco duro.
Esto genera para nosotros, el beneficio de poder probar cualquier sistema o distro Linux sin necesidad de estar teniendo que reiniciar nuestro ordenador para poder elegir otro sistema que hayamos instalado previamente. O si no tienes problemas económicos, tal vez tengas más de un PC con muchos sistemas operativos instalados. ¡Imagínense todo el dinero que se desperdicia!

En suma, en las empresas, que son las que mayormente impulsan el tinglado del software, están sumamente interesadas por el ahorro del coste económico-eficiente que supone. No es lo mismo tener una gran multitud de máquinas virtuales corriendo en un solo equipo. Que tener 100 máquinas corriendo un sólo sistema en el que a lo mejor, de todos ellos solo se toma el 10% del costo-rendimiento. Esto genera graves pérdidas económicas además de todo el costo de esa infraestructura.

¿Qué es una máquina virtual?

Una máquina virtual o virtual machine es aquella que va a "coger prestado" tu hardware para poder correr el sistema operativo que queramos instalar dentro del entorno, o software de virtualización como puede ser VirtualBox, VMware... Ésta tendrá una pequeña BIOS, un conjunto de dispositivos como discos duros, conectores USB como impresoras... siendo lo más parecido a tener otro PC en nuestra casa pero dentro de nuestro ordenador.

¿Qué es la relación host-guest (anfitrión-invitado)? 
En la rama de la virtualización desde mi conocimiento, tenemos una serie de términos para hablar del sistema operativo que está ejecutándose y del que se está ejecutando por encima del que tenemos instalado en nuestro disco duro.
El anfitrión o también conocido como host en inglés, se refiere al sistema que está instalado en el disco duro de nuestro ordenador como es el caso de Fedora, openSUSE, Gentoo, ArchLinux... Es el que utilizamos para trabajar todos los días.

Sin embargo, el sistema invitado o guest, es aquel que se virtualizará en nuestro ordenador. El cuál tendrá, según el software de virtualización que se use, ficheros de configuración que describan las prestaciones de la máquina virtual como el espacio, dónde está alojado el disco duro de la máquina

¿Cómo puedo comprender el funcionamiento de un disco duro aquí?

Generalmente, esto varía según el entorno de virtualización que estés usando. Por ejemplo, en VirtualBox genera por defecto un fichero llamado .vdi. Que puede ocupar el espacio de 40GB o el tamaño que le asignes cuando creas la máquina virtual. O bien, ese fichero irá expandiendo su tamaña en relación a lo que añadas en ese disco duro.

En KVM podemos hacer un tanto de lo mismo, lo que el disco duro se guardaría en otro formato como QCOW2 o raw. Sin embargo, podemos arrancar desde una partición de otro disco duro, pendrive... o disco completo como podríamos hacer en VMware entre otras muchas más cosas.

Lo más importante es que, el disco duro de nuestra máquina virtual se guardará como un fichero, o un conjunto de ficheros en nuestra partición. No se va a crear ninguna partición en nuestro disco duro.

Instalación en Fedora 20

Bueno una vez explicado un poco qué es y como funciona la virtualización y las máquinas virtuales. Procederemos a instalar VMware Player 6.0.2 en nuestro sistema.

Primeros pasos, mantener nuestro sistema actualizado

Primero deberemos tener todo nuestro sistema totalmente actualizado. Para aquellos que estén familiarizados con programas gráficos que trabajen con yum, rpm... como Apper, Yumex...etc sabrán como mantenerlo al día al igual que utilizando yum, dnf... desde consola.

Instalando dependencias

Deberemos instalar o tener instalado los siguientes paquetes:
  • dkms
  • kernel-devel
  • kernel-headers
  • gcc
  • binutils
  • make
  • beesu
Descargando el software según nuestra versión

Desde la siguiente página oficial de VMware, podéis descargaros la versión tanto para 32 como para 64 bits. 
Como nota: No he probado utilizar VMware Player de 32 bits en un entorno de 64 bits. Supongo que habrá que instalar las librerías de compatibilidad si ya no vienen instaladas con las librerías gtkmm...etc

Instalando VMware

Tenemos dos formas de proceder a instalarlo. Una es mediante la opción console que será instalarlo en modo texto, ésta puede utilizarse si se está en modo tty, o porque te guste más.
Por otro lado, tenemos la versión gráfica del instalador que utiliza Gtk, que es la que vamos a usar.

Una vez descargado, abriremos una terminal sea Konsole de KDE, mate-terminal de MATE, gnome-terminal de GNOME, xterm... y nos situaremos en el directorio dónde tengamos el VMware. En mi caso está en /home/netSys/Descargas.
$ cd /home/netSys/Descargas
$ chmod +x VMware-Player-6.0.2-1744117.*.bundle
$ beesu ./VMware-Player-6.0.2-1744117.*.bundle --gtk
Posteriormente se nos abrirá la interfaz de instalación de VMware Player:


Aceptamos los términos de la licencia


Esto os lo dejo a vuestro criterio. Si queréis que cada vez que se inicie el programa busque actualizaciones, o las busques de forma manual.


Como en cualquier otro programa que pida estadísticas "anónimas" para mejorar, saber qué uso tiene...etc lo puedes permitir o no.


Nosotros la dejaremos en blanco dado que no nos hace falta. 


Tan sólo hay que darle al botón de "Install" para proceder a la copia de los archivos he instalar el programa.


Y voilá, ya lo tenemos listo, según el entorno que utilices se almacenará en la entrada correspondiente. En caso de quererlo correr como consola deberás ejecutar el comando vmplayer.

Echándole el primer vistazo

Ya con nuestro VMware Player instalado, procederemos a toquetear con él. En los siguientes ejemplos que vienen a continuación voy a explicar un poco cómo crear nuestro huésped o guest, así de cómo instalar las VMware tools en una máquina virtual con Fedora 20 MATE instalado.

Ventana principal del programa



Podemos observar las diferentes opciones que tenemos disponibles a nuestra derecha. En la parte de la izquierda se nos listarán las máquinas virtuales que hayamos creado con el uso.

Una de las cosas que echo en falta es el poder exportar las máquinas con VirtualBox. En este caso aquí no podemos hacer nada más que importarlas mediante el menú de "Open a Virtual Machine".

Descargando e instalando las VMware tools para todos los sistemas disponibles



Haciendo clic en la opción "File" -> "Player Preferences" en la ventana principal se nos abrirá una ventana. Haremos clic en el botón "Download All Components Now" para descargar todas las VMware tools para los sistemas listados, incluyendo Linux.

Esto nos servirá para posteriormente, después de haber creado la máquina virtual y haber instalado el sistema operativo, poder instalar las herramientas de VMware. Estas nos darán más fluidez, soporte de carpetas compartidas (no es SAMBA ojo)...

Creando una VM
Seleccionando el medio de instalación



Este es el primer diálogo que veremos cuando vamos a crear una máquina virtual. Como vemos tenemos hasta 3 opciones para obtener la fuente de instalación. Esta puede ser un dispositivo físico como nuestro lector de CD/DVD, pendrive... También podemos cargar una imagen de disco (.iso) que contenga el sistema operativo como en el ejemplo. O por último, puedes elegirlo más tarde.

Identificando el sistema operativo



Aquí marcaremos la opción del sistema que vayamos a virtualizar.

Escogiendo nombre y directorio de almacenamiento



Le asignamos el nombre a nuestra VM y el directorio donde se va a almacenar. Generalmente utiliza una ruta por defecto y le añade el nombre que se le ha asignado.

Seleccionando forma de almacenamiento del disco duro



En este diálogo nos pide que seleccionamos la forma en el que se almacenará el disco duro. La primera opción generará un sólo fichero, mientras que la segunda opción corta el fichero generado en muchos trozos, esto es aconsejable si se va a copiar la VM a otro ordenador, porque requiere menos esfuerzo de copia.

Además de la manera de almacenamiento, se asigna un tamaño para el disco duro.

Resumen de la máquina virtual



Una vez aquí solo nos queda o bien confirmar nuestra nueva máquina, o cancelar el proceso además de volver hacia atrás para modificar cualquier otra cosa.

No obstante podemos configurar los parámetros relacionados con el Hardware haciendo clic en Customize Hardware... se nos abrirá una ventana como la siguiente:



Como podemos ver, podemos alterar ciertos parámetros antes de iniciar la máquina. Esto no es sólo lo que podemos modificar. Hay otro menú, una vez después creada la máquina al que se puede acceder y cambiarle muchas más cosas siempre que esté apagada.

Varios Tips después de haber creado la VM



Este es la última ventana que veremos en este proceso. Aquí nos explican un poco cómo instalar las VMware tools y los pasos que hemos hecho anteriormente.

Visualizando la nueva máquina



Las opciones que hablábamos antes están en la opción "Edit virtual machine settings". 



Lanzando la máquina



Aquí visualizamos como arrancará Fedora 20 Spin KDE desde la .iso que descargué. 

Instalando VMware tools

Primeramente, deberemos tener instalado nuestro sistema operativo con todas las actualizaciones en caso de ser una distribución GNU/Linux. En nuestro caso lo haremos con Fedora Spin 20 MATE. Es importante, que con Fedora se eliminen los siguientes paquetes:
  • open-vm-tools
  • open-vm-tools-desktop
Porque causarán un conflicto con las VMware tools. Y es importante la instalación de los siguientes paquetes en la máquina virtual para que puedan generarse los correspondientes módulos.
  • kernel
  • kernel-devel
  • kernel-headers
  • gcc
  • make
  • binutils
  • beesu
 Una vez hecho esto, deberemos pulsar en el menú "Virtual Machine" -> "Reinstall VMware tools..."



Se nos abrirá caja, el navegador de ficheros de MATE con el .iso montado. Deberemos copiar el fichero que se nos presenta en la imagen superior a nuestro home mismo y lo descomprimimos.

Nota: Desde la migración a systemd los puntos de montajes están ubicados en /var/run/media/$USER/

Un ejemplo mediante terminal sería:
$ cd /var/run/media/maquina_virtual/VMware\ Tools/
$ cp VMware-Tools[Pulsa_Tabulador] /home/maquina_virtual
$ cd /home/maquina_virtual
$ tar xfv VM[Pulsa_Tabulador]
Ahora procedemos a instalarlas, para ello deberemos situarnos en la carpeta nueva generada por el comando tar anterior, y otorgaremos permisos de ejecución al script llamado vmware-install.pl
$ cd vmware-tools-distrib
$ chmod +x vmware-install.pl
$ beesu ./vmware-install.pl
Saltará una especie de instalación via diálogo por la terminal en la que puedes usar todas las que están por defecto o cambiarlas bajo nuestro criterio. Una vez instaladas reiniciamos la máquina y las tendremos listas para su uso.

Montando carpetas compartidas 


Vamos a crear carpetas compartidas accediendo a la opción "Virtual Machine" -> "Virtual Machine Settings". Y las añadiremos. En mi caso escogí montar el directorio /tmp de mi disco duro y llamarlo "temporal".


Posteriormente nos dirigimos a la máquina virtual y ejecutamos el siguiente ejemplo en terminal.
$ su -c "mount -t vmhgfs .host:/temporal /home/$USER/Plantillas"

El ejemplo de la imagen superior nos muestra como se ha completado con éxito.


Extraje del manual de VMware Player en línea como podemos montar las carpetas.

Importando máquinas


En la opción "Open Virtual Machine" podemos importar máquinas de usos anteriores. Se supone que podría importarse las máquinas creadas con VirtualBox pero obtiene un error al intentar leer el .ova. Creo que será porque usa el .vdi en vez de .vmdk como formato de disco. Cosa que puede cambiarse a la hora de crear el disco en VirtualBox por supuesto.

Escogiendo un disco duro



Si tienes un disco duro "suelto" de VMware, seleccionar un disco duro físico, o bien crear otro, puedes crear una máquina virtual y luego añadirlo mediante las opciones de la VM.


Seleccionamos el tipo de disco duro virtual, o bien lo dejamos por defecto.


Tenemos tres opciones. Crear un nuevo disco duro con su tamaño, su manera de partirlo, o bien utilizar uno único; buscar un disco duro existente en nuestro sistema o por último utilizar un disco duro físico que tengamos adherido, un pendrive....

Referencias
  • Wiki ArchLinux - VMware 
  • Google
  • VMware Página oficial 

Licencia y responsabilidades

Licencia Creative Commons
netSys blog por Álvaro Castillo se encuentra bajo una Licencia Creative Commons Atribución-CompartirIgual 3.0 Unported.

El propietario de este blog no se responsabiliza de los daños que puedan generarse u ocurrir por la información expuesta aquí, en caso de ser utilizada la responsabilidad recae bajo quién la use.

Se les informa de posibles publicaciones donde queden expuestas imágenes a terceros o marcas comerciales que siempre tendrán sus fuentes, y sus atribuciones.

Por último, en caso de confusión por la temática que se trate de los artículos, tutoriales...etc dejaremos claro que este sitio Web no colabora directamente con ningún proyecto de forma oficial.