Cómo actualizar el huso horario en Linux

time zone map

El 1° de mayo, el huso horario cambiará en Venezuela a UTC-4, por lo que debes actualizar el paquete tzdata en Linux para estar preparado para este cambio. Para hacer esto solo debes hacer lo siguiente:

Debian/Ubuntu

aptitude update
aptitude safe-upgrade tzdata

Red Hat

yum check-update
yum update tzdata

Para verificar que se la actualización tiene el cambio del huso horario se puede ejecutar la siguiente orden:

zdump -v /usr/share/zoneinfo/right/America/Caracas  | grep 2016

/usr/share/zoneinfo/right/America/Caracas  Sun May  1 06:59:59 2016 UT = Sun May  1 02:29:59 2016 VET isdst=0 gmtoff=-16200
/usr/share/zoneinfo/right/America/Caracas  Sun May  1 07:00:00 2016 UT = Sun May  1 03:00:00 2016 VET isdst=0 gmtoff=-14400

Referencia: How to check if the Time Zone database

2 Comentarios

AWS Certified Solutions Architect

AWS CSA

En la empresa estamos llevando muchos servicios a la nube de Amazon, y por ende buscamos formalizar los conocimientos de AWS. En ese sentido conseguimos un sitio de cursos en línea llamado Linux Academy, el cual considero nos ayudó mucho con la certificación y en general a entender AWS, pero no fue el único recurso que usamos ya que completamos con preguntas tipo examen, y la documentación de AWS.

Si éstas interesado en esta certificación y en los recursos que comento, aquí te dejo algunos enlaces:

Cursos en línea

 

Preguntas tipo examen

 

Documentación de AWS

2 Comentarios

Cómo agregar Apache HTTP Client en Android Studio

Android Studio - Apache HTTP Client

Para usar en Eclipse las librerías de Apache HTTP Client (httpclient y httpmime) simplemente bajaba el port para Android y luego incluía las dependencias especificando los archivos jar: /home/lgallard//Android/libs/httpcore-4.3.2.jar /home/lgallard//Android/libs/httpmime-4.3.5.jar Esta práctica la arrastré al migrar mis proyectos a Android Studio, pero el resto de las librerías si las resolvía con Gradle. Entonces para uniformizar todo, decidí investigar un poco cómo incluir las librerías de Apache HTTP Client. Basta con agregar las siguientes líneas en el archivo build.gradle de tu aplicación:

dependencies {
...
    compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
    compile (group: 'org.apache.httpcomponents' , name: 'httpmime' , version: '4.3.5') {
        exclude module: 'org.apache.httpcomponents:httpclient'}
}

Finalmente sincroniza gradle y compila nuevamente tu proyecto.

Referencia: Apache HttpClient Android (Gradle)

 

,

10 Comentarios

Cómo instalar Oracle Java en Debian

centOS 6

Si necesitas instalar la versión de Java de Oracle en Debian, puede seguir los siguientes pasos para realizarlo una vez que hayas descargado el binario desde la página de descarga de Oracle:

Una vez descargado el  procedemos a extraerlo en el directorio /opt:

# tar xvzf jdk-8u45-linux-x64.tar.gz

Primero vamos a consultar la versión de java actual:

# java -version
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

Aquí puede verse que la versión a la que se hace referencia actualmente es la 1.7.0_79 de OpenJDK. Ahora vamos agregar la ruta de la nueva versión a usar:

# update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_45/bin/java 1

Esta última orden agrega la ruta /opt/jdk1.8.0_45/bin/java al binario /usr/bin/java java, es decir, este será el enlace simbólico a usar en caso de seleccionar esta opción. Vamos a configurar los alternatives para que apunte a la nueva ruta:

# update-alternatives --config java
  Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode
 1 /opt/jdk1.8.0_45/bin/java 1 manual mode
 2 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode
 3 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode

Enter to keep the current selection[+], or type selection number: 1

Luego de seleccionar la opción 1, verificamos  la versión de java una vez más:

# java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

Ahora el binario de java apunta a la versión de Oracle. Cosa que podemos verificar consultando los enlaces simbólicos:

# ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 jun  9  2014 /usr/bin/java -> /etc/alternatives/java

# ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 25 jun 15 09:21 /etc/alternatives/java -> /opt/jdk1.8.0_45/bin/java

,

2 Comentarios

De vuelta…

El Blog de Luis está de vuelta después de un pausa de varios meses, y gracias a la ayuda de una amiga que me está proporcionando el hosting del blog. Varias personas me preguntaron o pidieron información que solo conseguían en mi blog, por lo que decidí reactivarlo nuevamente.

Espero les sirva de ayuda, aprendan algo nuevo o sea una vía para intercambiar información.

¡Disfrútenlo!

, , ,

2 Comentarios

Cómo activar la interfaz Web de qBittorrent

Si deseas controlar to servidor qBittorrent usando la interfaz web, sigue los siguientes pasos:

  1. En la barra de menú, ve a Tools > Options qBittorrent WEB UI
  2. En la próxima ventana, selecciona la opción Web UI
  3. Marca la opción Enable the Web User Interface (Remote control)
  4. Selecciona un puerto (Por omisión 8080)
  5. Configura el nombre de usuario y contraseña (Por omisión username: admin / password: adminadmin) WEB UI
  6. Haz clic en Ok para guardar las configuraciones.

Ahora podrás acceder a tu servidor desde un navegador si colocas la dirección IP y puerto de tu servidor qBittorrent, ejemplo: 192.168.1.100:8080 como se muestra a continuación: qBittorrent Web UI También puedes acceder desde tu dispositivo Android si instalas qBittorrent Client o qBittorrent Client ProqBitttoren Client Pro

, ,

No hay Comentarios

Cómo extender un volumen en LVM

A veces es necesario extender un volumen lógico, expandiendo el volumen físico donde está alojado. Si este es el caso, puedes seguir este ejemplo que extiende un volumen de 450 GB a 500 GB: Primero consultamos a geometry del disco

:~# fdisk -l /dev/sdb
Disk /dev/sdb: 483.2 GB, 483183820800 bytes
 255 heads, 63 sectors/track, 58743 cylinders, total 943718400 sectors
 Units = sectors of 1 * 512 = 512 bytes
 Sector size (logical/physical): 512 bytes / 512 bytes
 I/O size (minimum/optimal): 512 bytes / 512 bytes
 Disk identifier: 0x0001178e

Luego de expandir el volumen, se fuerza a que se rescanee el volumen

:~# echo 1 > /sys/block/sdb/device/rescan

Consultamos nuevamente la geometría del disco

:~# fdisk -l /dev/sdb
Disk /dev/sdb: 536.9 GB, 536870912000 bytes
 255 heads, 63 sectors/track, 65270 cylinders, total 1048576000 sectors
 Units = sectors of 1 * 512 = 512 bytes
 Sector size (logical/physical): 512 bytes / 512 bytes
 I/O size (minimum/optimal): 512 bytes / 512 bytes
 Disk identifier: 0x0001178e

Como puede verse el tamaño del disco aumentó pero solo lo sabe del sistema operativo, ya que a nivel de LVM sigue teniendo la misma información porque no se ha expandido el volumen físico:

:~# pvs
 PV VG Fmt Attr PSize PFree
 /dev/sda5 debian lvm2 a-- 3.76g 0
 /dev/sda6 debian lvm2 a-- 13.00g 0
 /dev/sdb svn_vg lvm2 a-- 450.00g 0

Si expandimos el volumen físico con la siguente orden:

# pvresize /dev/sdb
 Physical volume "/dev/sdb" changed
 1 physical volume(s) resized / 0 physical volume(s) not resized

Y ahora consultamos los el espacio de los volúmenes físicos veremos el espacio agregado:

:~# pvs
 PV VG Fmt Attr PSize PFree
 /dev/sda5 debian lvm2 a-- 3.76g 0
 /dev/sda6 debian lvm2 a-- 13.00g 0
 /dev/sdb svn_vg lvm2 a-- 500.00g 50.00g

Ahora se debe expandir el volumen lógico y la dimensión de sistema de archivos en caliente. Ambas cosas se pueden hacer con una sola orden:

:~# lvresize -r -L +50G /dev/mapper/svn_vg-svn
 Extending logical volume svn to 500.00 GiB
 Logical volume svn successfully resized
 resize2fs 1.42.5 (29-Jul-2012)
 Filesystem at /dev/mapper/svn_vg-svn is mounted on /var/data/svn; on-line resizing required
 old_desc_blocks = 29, new_desc_blocks = 32
 Performing an on-line resize of /dev/mapper/svn_vg-svn to 131070976 (4k) blocks.
 The filesystem on /dev/mapper/svn_vg-svn is now 131070976 blocks long.

Finalmente si consultamos el espacio disponible tendremos los 50 GB adicionales en el sistema de archivos:

:~# df -h
 Filesystem Size Used Avail Use% Mounted on
 rootfs 993M 287M 655M 31% /
 udev 10M 0 10M 0% /dev
 tmpfs 397M 228K 397M 1% /run
 /dev/mapper/debian-root 993M 287M 655M 31% /
 tmpfs 5.0M 0 5.0M 0% /run/lock
 tmpfs 794M 0 794M 0% /run/shm
 /dev/sda1 228M 34M 183M 16% /boot
 /dev/mapper/debian-home 2.0G 39M 1.9G 3% /home
 /dev/mapper/debian-tmp 3.9G 7.1M 3.7G 1% /tmp
 /dev/mapper/debian-usr 2.0G 869M 1.1G 46% /usr
 /dev/mapper/debian-var 6.7G 2.1G 4.3G 33% /var
 /dev/mapper/svn_vg-svn 493G 432G 62G 88% /var/data/svn

,

2 Comentarios

Habilitar HTML5 para Blipblip.tv en plugin Video Sidebar Widgets de WordPress

El problema

Viendo mi blog desde una tableta me percaté que los videos de Blipblip.tv que configuré en el Video Sidebar Widgets no se mostraban. Investigando me di cuenta que el plugin carga la versión anterior del reproductor de Blipblip.tv basado en Flash y no HTML5, por lo que lo videos no se podían apreciar desde dispositivos móviles que no soportasen Flash, los cuales ya son la mayoría.

La solución

Simplemente en los archivos helper-functions.phpclass-videosidebarwidget.php agregué condicionales para el caso Blipblip.tv y en concordancia agregué el player con HTML5. En particular, agregué las siguientes líneas en el archivo helper-functions.php:

elseif($admin=="true"){
 if($source == "Blip"){
 echo "\n<iframe src=\"$value.html?p=1\" width=\"250\" height=\"250\" 
 frameborder=\"0\" allowfullscreen>
 </iframe> 
 
 <embed type=\"application/x-shockwave-flash\" src=\"http://a.blip.tv/api.swf#$v_id2\" 
 style=\"display:none\">
 </embed>\n\n"; 
 }else{ 
 // echo video in admin
 echo "\n<object width=\"212\" height=\"172\">\n";
 echo $flashvar;
 echo "<param name=\"allowfullscreen\" value=\"true\" />\n";
 echo "<param name=\"allowscriptaccess\" value=\"always\" />\n";
 echo "<param name=\"movie\" value=\"$value\" />\n";
 echo "<param name=\"wmode\" value=\"transparent\">\n";
 echo "<embed src=\"$value\" type=\"application/x-shockwave-flash\" wmode=\"transparent\" ";
 echo "allowfullscreen=\"true\" allowscriptaccess=\"always\" ";
 echo $flashvar2;
 echo "width=\"212\" height=\"172\">\n";
 echo "</embed>\n";
 echo "</object>\n\n";
 }
}else{

Y en el archivo class-videosidebarwidget.php modifiqué lo siguiente:

 case 'Blip':
 $rv_value = "http://blip.tv/play/$Embed_id";
 $rv_flashvar = "";
 $rv_flashvar2 = "";
 $rv_cap = $Embed_cap;

Y agregué estas líneas:

if($select_source == "Blip"){ 
 echo "\n<iframe align=\"left\" src=\"$rv_value.html?p=1\" width=\"$RV_width\" height=\"$RV_height\" 
 frameborder=\"0\" allowfullscreen>
 </iframe>
 
 <embed type=\"application/x-shockwave-flash\" src=\"http://a.blip.tv/api.swf#$Embed_id\" 
 style=\"display:none\">
 </embed>\n\n";
}else{
 echo "\n<object width=\"$RV_width\" height=\"$RV_height\">\n";
 echo $rv_flashvar;
 echo "<param name=\"allowfullscreen\" value=\"true\" />\n";
 echo "<param name=\"allowscriptaccess\" value=\"always\" />\n";
 echo "<param name=\"movie\" value=\"$rv_value\" />\n";
 echo "<param name=\"wmode\" value=\"transparent\">\n";
 echo "<embed src=\"$rv_value\" type=\"application/x-shockwave-flash\" wmode=\"transparent\" ";
 echo "allowfullscreen=\"true\" allowscriptaccess=\"always\" ";
 echo $rv_flashvar2;
 echo "width=\"$RV_width\" height=\"$RV_height\">\n";
 echo "</embed>\n";
 echo "</object>\n\n";
 }
 if(!empty($rv_cap)){echo "<p class=\"VideoCaption\">$rv_cap</p>\n\n";};
 
 
 echo $after_widget;
 }

Luego de esto, los videos aleatoreos con HTML5 se cargan sin problemas.

Soporte del plugin

Por cierto que contacté al desarrollador del plugin para que agregue estos cambios y me informó que estaba muy ocupado para hacerlo. Lástima que no lo sede al dominio público para que otro lo siga manteniendo.

,

No hay Comentarios

Cómo instalar VMWare Tools en Red Hat y CentOS

VMWare how to install VMWare tools on CentOS and Red Hat - running Si necesitas instalar los VMWare Tools en máquinas virtuales corriendo Red Hat o CentOS como sistemas operativo, puedes seguir  el procedimiento descrito a continuación:

Procedimieto

Primero que nada en VMWare vSphere ubica la máquina virtual a la que deseas instalarle los VMWare tools y haz clic en donde dice “Install VMWare Tools” como se muestraen la siguiente imagen: VMWare how to install VMWare tools on CentOS and Red Hat Aparecerá una ventana de diálogo que indica que se montará el disco con los VMWare Tools en el sistema hacendo clic en el botón “mount”. Luego en la máquina virtual donde deseas instalar los VMWare Tools debes hacer lo siguiente desde un terminal de texto:

# mount /dev/cdrom /mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only

# cp /mnt/VMwareTools-9.0.0-782409.tar.gz /opt/

# cd /opt/
# tar xvzf VMwareTools-9.0.0-782409.tar.gz

# cd vmware-tools-distrib/

#./vmware-install.pl

Este último es un script donde te realizarán una serie de preguntas relacionadas a la instalación de los VMWare Tools. En general las opciones por omisión son suficientes, pero si requieres modificar algún comportamiento puedes camiar el valor según tu conveniencia:

Creating a new VMware Tools installer database using the tar4 format.

Installing VMware Tools.

In which directory do you want to install the binary files?
[/usr/bin]

What is the directory that contains the init directories (rc0.d/ to rc6.d/)?
[/etc/rc.d]

What is the directory that contains the init scripts?
[/etc/rc.d/init.d]

In which directory do you want to install the daemon files?
[/usr/sbin]

In which directory do you want to install the library files?
[/usr/lib/vmware-tools]

The path "/usr/lib/vmware-tools" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes]

In which directory do you want to install the documentation files?
[/usr/share/doc/vmware-tools]

The path "/usr/share/doc/vmware-tools" does not exist currently. This program
is going to create it, including needed parent directories. Is this what you
want? [yes]

The installation of VMware Tools 9.0.0 build-782409 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command: "/usr/bin/vmware-uninstall-tools.pl".

Before running VMware Tools for the first time, you need to configure it by
invoking the following command: "/usr/bin/vmware-config-tools.pl". Do you want
this program to invoke the command for you now? [yes]
Initializing...

Making sure services for VMware Tools are stopped.

The VMware FileSystem Sync Driver (vmsync) allows external third-party backup
software that is integrated with vSphere to create backups of the virtual
machine. Do you wish to enable this feature? [no]

Found a compatible pre-built module for vmci. Installing it...

Found a compatible pre-built module for vsock. Installing it...

The module vmxnet3 has already been installed on this system by another
installer or package and will not be modified by this installer. Use the flag
--clobber-kernel-modules=vmxnet3 to override.

The module pvscsi has already been installed on this system by another
installer or package and will not be modified by this installer. Use the flag
--clobber-kernel-modules=pvscsi to override.

The module vmmemctl has already been installed on this system by another
installer or package and will not be modified by this installer. Use the flag
--clobber-kernel-modules=vmmemctl to override.

The VMware Host-Guest Filesystem allows for shared folders between the host OS
and the guest OS in a Fusion or Workstation virtual environment. Do you wish
to enable this feature? [no]

Found a compatible pre-built module for vmxnet. Installing it...

The vmblock enables dragging or copying files between host and guest in a
Fusion or Workstation virtual environment. Do you wish to enable this feature?
[no]

!!! [EXPERIMENTAL] !!!
VMware automatic kernel modules enables automatic building and installation of
VMware kernel modules at boot that are not already present. By selecting yes,
you will be enabling this experimental feature. You can always disable this
feature by re-running vmware-config-tools.pl.

Would you like to enable VMware automatic kernel modules?
[no]

No X install found.

Creating a new initrd boot image for the kernel.
vmware-tools start/running
The configuration of VMware Tools 9.0.0 build-782409 for Linux for this running
kernel completed successfully.

You must restart your X session before any mouse or graphics changes take
effect.

You can now run VMware Tools by invoking "/usr/bin/vmware-toolbox-cmd" from the
command line.

To enable advanced X features (e.g., guest resolution fit, drag and drop, and
file and text copy/paste), you will need to do one (or more) of the following:
1. Manually start /usr/bin/vmware-user
2. Log out and log back into your desktop session; and,
3. Restart your X session.

Enjoy,

--the VMware team

Found VMware Tools CDROM mounted at /mnt. Ejecting device /dev/sr0 ...
No eject (or equivilant) command could be located.
Eject Failed: If possible manually eject the Tools installer from the guest
cdrom mounted at /mnt before canceling tools install on the host.

Al finalizar el script ya están instalados los VMWare Tools en la máquina virtual. Ahora se puede desmontar el ISO haciendo:

# umount /mnt

Luego en VSphere, puedes verificar que efectivamente están corriendo los VMWare Tools como se muestra en la primera imagen de este artículo.

 

,

No hay Comentarios

Curso Programming Mobile Applications for Android Handheld Systems

Programming Mobile Applications for Android Handheld Systems

Coursera me acaba de enviar mi certificado por haber culminado con ditinción el curso Programming Mobile Applications for Android Handheld Systems. Este curso es avalado por la universidad de Maryland y dictado por Dr. Adan Porter.

Algo interesante a resaltar sobre este curso de Android es lo bien estructurado que está, además de la calidad de los videos y las asignaciones. Me recordó mucho a algunos proyectos que tuve que realizar en mi universidad, ya que están bien organizados y con cosas específicas para realizar. De hecho la evaluación de los proyectos se realizan de forma automática con unos JUnits. El proyecto final si es evaluado por otros participantes del curso (4 en total).

Para este curso tome la opción del Signature Track, que es la modalidad de pago donde se valida que quien realiza las asignaciones es quien dice ser, usando un software de reconocimiento de patrón de escritura y con verificación de la foto del estudiante (al final del curso los asistentes del instructor verifican estas fotos). Con estas validaciones otorgan un certificado que puede ser verificado en las siguientes URLs:

Si estas interesado en este curso, puedes acceder al contenido del mismo en el enlace proporcionado arriba.

,

4 Comentarios