viernes, 4 de julio de 2014

Importar y exportar backups de Bases de Datos MySQL (Local y remoto)

Una de las tareas que se debe realizar muy a menudo cuando se trabaja en múltiples proyectos a la vez, es la de exportar backups de bases de datos de los ambientes de producción y luego importarlos en el ambiente de desarrollo local, para poder hacer los cambios requeridos por el cliente.

Generalmente el acceso disponible a los servidores es a través de SSH, por tal razón es necesario conocer los comandos usando la terminal para importar/exportar backups de las bases de datos.

Los comandos que utilizo muy a menudo para importar/exportar los backups son los que se detallan a continuación, cabe mencionar que en cada uno de ellos utilizo gzip para comprimir/descomprimir los archivos generados, pero se podría utilizar otros.

Exportar backup de servidor local


mysqldump -u {usuario_bd} -p {nombre_base_datos} | gzip > {nombre_backup}.sql.gz

Exportar backup de un servidor remoto a nuestra local


mysqldump -u {usuario_bd} -p{clave_usuario} -h {ip_nombre_servidor} {nombre_base_datos} | gzip > {nombre_backup}.sql.gz

Importar Backup


gzip -dc {nombre_backup}.sql.gz | mysql -u {usuario_bd} -p {nombre_base_datos}


NOTA: Para exportar base de datos de gran tamaño he usado los parámetros --quick y --compress, los cuales han permitido disminuir los tiempos de descargas.

mysqldump -u {usuario_bd} -p{clave_usuario} -h {ip_nombre_servidor} --quick --compress {nombre_base_datos} > {nombre_backup}.sql

Descripciones:

{usuario_bd}: Un usuario existente en el servidor de Base de datos.

{clave_usuario}: Clave del usuario existente en la BD.

{nombre_backup}: Nombre que se le quiere dar al backup comprimido.

{ip_nombre_servidor}: Dirección IP o nombre del servidor remoto.

{nombre_base_datos}: Nombre de la base de datos de la cual nos interesar sacar el backup.

martes, 15 de abril de 2014

Cómo actualizar a php54 en MAC usando macports

Se debe abrir un terminal y correr los siguientes comandos:


sudo port install php54 php54-apache2handler
sudo port select php php54
sudo apachectl restart
Verificar la versión usando: php -i
PHP 5.4.27 (cli) (built: Apr  4 2014 03:18:01) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

miércoles, 9 de abril de 2014

Cómo mover los archivos desde sites/custom/* a sites/all/* en una instalación de Drupal 7

Revisando la estructura de archivos de un proyecto multisite sobre Drupal 7 en el que debía trabajar, observé que las carpetas que contenía los temas, módulos y librerías comunes a todos los sitios estaban en una carpeta custom y la carpeta all había sido eliminada. Es decir que la estructura de la carpeta sites era como la que se muestra a continuación:

sites/default
sites/custom
sites/site1
sites/site2

Seguí los siguientes pasos para reemplazar la carpeta custom por all, y evitar que drupal deje de funcionar:


  • Renombrar la carpeta desde el terminal: mv sites/custom sites/all 
  • Correr los siguientes sql queries para que drupal busque los archivos en el directorio all



UPDATE system SET filename = REPLACE(filename, 'sites/custom/libraries', 'sites/all/libraries');
UPDATE registry SET filename = REPLACE(filename, 'sites/custom/libraries', 'sites/all/libraries');
UPDATE registry_file SET filename = REPLACE(filename, 'sites/custom/libraries', 'sites/all/libraries');

UPDATE system SET filename = REPLACE(filename, 'sites/custom/themes', 'sites/all/themes');
UPDATE registry SET filename = REPLACE(filename, 'sites/custom/themes', 'sites/all/themes');
UPDATE registry_file SET filename = REPLACE(filename, 'sites/custom/themes', 'sites/all/themes');

UPDATE system SET filename = REPLACE(filename, 'sites/custom/modules', 'sites/all/modules');
UPDATE registry SET filename = REPLACE(filename, 'sites/custom/modules', 'sites/all/modules');
UPDATE registry_file SET filename = REPLACE(filename, 'sites/custom/modules', 'sites/all/modules');


TRUNCATE TABLE cache;
TRUNCATE TABLE cache_bootstrap;
TRUNCATE TABLE cache_menu;
TRUNCATE TABLE cache_page;
TRUNCATE TABLE cache_path;


En el caso de que la carpeta custom contenga otros directorios además de libraries, themes y modules; se debe agregar los 3 queries con el nombre de los directorios.



miércoles, 26 de febrero de 2014

Instalación de Django en Ubuntu 12.04

Django es un framework web de código abierto escrito en Python que permite construir aplicaciones web más rápido y con menos código, y respeta el paradigma MVC (Model-View-Controller).

La meta fundamental de Django es facilitar la creación de sitios web complejos. Django pone énfasis en el re-uso, la conectividad y extensibilidad de componentes, el desarrollo rápido y el principio No te repitas (DRY, del inglés Don't Repeat Yourself).

Los pasos para instalar Django en Ubuntu son los siguientes:

  1. Abrir un terminal
  2. Instalar easy_install: sudo apt-get install python-setuptools
  3. Instalar Django: sudo easy_install django
  4. (Opcional instalar pip) sudo easy_install pip

domingo, 9 de febrero de 2014

Cómo conectar nuestro dispositivo móvil Android con Ubuntu para transferir archivos

Los teléfonos móviles con el sistema operativo Android versión 4+ (Ice Cream Sandwich) utilizan el protocolo MTP para la transferencia de archivos multimedia.

MTP (Media Transfer Protocol) es un conjunto de extensiones a PTP (Picture Transfer Protocol) creado por Microsoft. Su función principal es permitir transferir archivos multimedia con sus metadatos a/desde dispositivos móviles, permitiendo también controlar los dispositivos remotamente y/o enviando eventos a los ordenadores.

Una de las razones fundamentales por las que se utiliza MTP es que permite a los dispositivos tener su propio sistema de archivos. Con USB mass storage los dispositivos usaban FAT como sistema de archivos; lo que impedía que los dispositivos tengan control sobre él, por lo que era el sistema operativo el que debía gestionarlo.

Una de las desventajas de MTP para los usuarios de Ubuntu 12.04 es que no es posible usar el dispositivo móvil una vez que ha sido conectado, ya que se requiere instalar unos paquetes adicionales en el sistema antes de poder usarlo.


Los pasos que se deben seguir para habilitar el soporte para MTP en Ubuntu 12.04 son los siguientes:


  1. Abrir un nuevo terminal y ejecutar los siguientes comandos
  2. sudo add-apt-repository ppa:langdalepl/gvfs-mtp
  3. sudo apt-get update
  4. sudo apt-get dist-upgrade
  5. sudo apt-get install mtp-tools mtpfs
  6. sudo apt-get install libusb-dev
Una vez ejecutados todos los comandos anteriores se debe reiniciar el equipo.



martes, 1 de octubre de 2013

Mollom Captcha habilitado en un custom form en Drupal 7

Mollom permite de una manera sencilla y a través de la interfaz web de administración de Drupal seleccionar los formularios creados por defecto a los que se desea implementar el captcha. Sin embargo, los formularios custom creados por código no aparecen en esa interfaz.

Los hooks que se deben implementar para poder visibilizar nuestros "custom" forms en la interfaz de mollom son los siguientes:

/**
* Implements hook_mollom_form_list().
*/
function TU_MODULO_mollom_form_list() {
  $forms['FORM_ID'] = array(
    'title' => t('TITULO DEL FORMULARIO'),
  );
  return $forms;
}


/**
* Implements hook_mollom_form_info().
*/
function TU_MODULO_mollom_form_info() {
  $form_info = array(
            'mode' => MOLLOM_MODE_CAPTCHA,
            'elements' => array(),
            'mapping' => array(),
   );
   return $form_info;
}

lunes, 30 de septiembre de 2013

easy_install ImportError - kivy

Tratando de instalar Kivy según los pasos que se detallan en la página oficial, obtenía este error

“ImportError: Entry point (‘console_scripts’, ‘easy_install’) not found”

al tratar de ejecutar este paso : sudo easy_install kivy


Los pasos a seguir para resolver ese problema son:


  • sudo rm /usr/bin/easy_install*
  • sudo rm /usr/local/bin/easy_install*
  • curl -O http://python-distribute.org/distribute_setup.py
  • sudo python distribute_setup.py
  • sudo rm distribute_setup.py
  • sudo easy_install pip

martes, 3 de septiembre de 2013

La criptografía es el otro aliado para salvaguardar la privacidad en la red (Parte 2)

Por: David Loor / @davo20019
Según los documentos revelados por el ex analista informático Edward Snowden, dos de los métodos utilizados por la Agencia Nacional de Seguridad (NSA por sus siglas en inglés) de Estados Unidos, para acceder a la información de los Internautas, consiste en “pinchar” los cables de fibra óptica usados en las comunicaciones y acceder directamente a la información almacenada en los servidores de las empresas más grandes de Internet (Facebook, Google, Yahoo, Microsoft, Apple, entre otras).
Los sistemas de esas empresas de Internet no están diseñados para salvaguardar la información de sus usuarios, ya que almacenan la información en “texto plano”, que significa que los datos son transmitidos y almacenados de la misma forma como fueron creados.
La información de los usuarios de Internet no sólo es almacenada en “texto plano”, sino que además, viaja a través de la red en “texto plano”, por eso es tan fácil para la NSA o cualquier otra persona u organismo con la capacidad de interceptar nuestras comunicaciones acceda a ella.
Con esto se puede deducir que los correos electrónicos, mensajes de chat, sesiones de usuario (IP, idioma, preferencias), las búsquedas que realizamos y otra información que se genera desde el momento en que nos conectamos a Internet viajan de manera insegura a través de la red.
Se conoce que por la infraestructura de Internet, más del 80% de las comunicaciones que se generan en Latinoamérica, necesariamente deben atravesar los Estados Unidos; ya que una gran parte de los cables de fibra óptica pasan por ese país. Aquello les facilita el acceso a todos los datos generados por un internauta en la red, tan solo tienen que “pinchar” los cables de fibra óptica. Una vez que tienen acceso a los datos de los usuarios, son almacenados en grandes bases de datos; las cuales están distribuidas alrededor del mundo.
Precauciones
El camino que deben seguir los usuarios de Internet es lograr que los datos que envían y reciben solamente puedan ser entendidos por sus legítimos destinatarios; y que incluso, si un intruso tiene acceso a ellos no debe estar en la capacidad de entenderlos.
Esto es posible gracias a la criptografía, la cual de forma general se refiere al conjunto de técnicas que permiten “ocultar” mensajes de tal forma que sólo las personas autorizadas puedan acceder a ellos.
Mediante el “cifrado” se oculta el mensaje original, usando una “clave” y un algoritmo conocidos por el remitente y el destinatario; sin que esto implique modificar el significado del mensaje original.
El proceso inverso, es decir tomar el mensaje cifrado y convertirlo en un mensaje legible por el destinatario se conoce como “descifrar”.
Dos términos usados de manera incorrecta para referirse al cifrado de la información son “codificar” y “encriptar”.
La primera (codificar) es representar de diferente manera la información; por ejemplo, la palabra -hola- en español se codifica en inglés como -hello-, y la segunda (encriptar) simplemente no existe; aparentemente es la traducción errónea de la palabra en inglés encrypt.

domingo, 4 de agosto de 2013

Software libre y criptografía, aliados para evitar ser espiados en internet (Parte 1)

La siguiente entrada es un artículo que se publicó en un medio local, la Agencia de Noticias Andes
Desde la develación en junio de los documentos confidenciales acerca del programa de espionaje PRISM llevado a cabo por Estados Unidos, el cual le permite a la NSA (National Security Agency) acceder de manera directa a los servidores de las empresas más grandes de Internet (Google, Facebook, Apple, Microsoft, Yahoo, entre otras) los usuarios continúan usando los servicios y software provistos por las empresas mencionadas sin tomar ningún tipo de medida para evitar que su información sea espiada.
Pero, ¿existen alternativas que permitan a los ciudadanos evitar que se acceda a su información y comunicaciones en Internet? La respuesta definitivamente es sí. Las medidas que se deben tomar son: usar Software Libre y cifrar nuestra información.
Software Libre
La primera medida consiste en migrar el software que usamos en nuestros computadores, teléfonos y tablets a Software Libre.  Por la filosofía del Software Libre, la cual permite a los usuarios “ejecutar, copiar, distribuir, estudiar, cambiar y modificar el software”, se tiene la certeza de que el software hace lo que esperamos que haga, sin trucos.
Luego de que Edward Snowden, ex técnico de la CIA, revelara que Microsoft y Apple son dos de las empresas que colabora con la NSA, ¿quién garantiza que sus sistemas operativos “Windows” y “OS X”, no tienen backdoors (puertas traseras en español) que les permita a las agencias de espionaje acceder a nuestros equipos de manera remota y husmear entre todos nuestros archivos que creíamos privados?
O a su vez, los gobiernos de turno de las naciones del mundo pueden asegurarse que el contenido de los documentos “confidenciales” redactados en la suite ofimática Microsoft Office no está siendo accedido sin que se levante sospechas?
En el Software Libre se reducen las posibilidades de existencia de backdoors (puertas traseras) porque el código fuente se libera para que cualquier persona interesada y con los conocimientos necesarios pueda estudiar y analizar su funcionamiento, y por ende; detectar posible amenazas de seguridad que comprometan la privacidad de los usuarios.
En el software privativo, los únicos que tienen acceso al código fuente son las empresas desarrolladoras del producto. Y vuelve la pregunta: ¿Quién garantiza que productos como Windows, OS X, iOS y Office, que son algunos de los más usados en el mundo, no tienen puertas traseras que permitan el acceso a nuestra información a gobiernos o agencias de espionaje? Los únicos que conocen la respuesta son los fabricantes, los mismos fabricantes que hoy sabemos colaboran con la NSA para que puedan espiar a los usuarios.
El concepto de “libertad” al que se refiere el software libre, no está ligado con el precio que pueda tener el mismo, se refiere más bien a la libertad que tienen los usuarios sobre él.
Con este antecedente la migración a software libre no es sólo una medida necesaria para salvaguardar la privacidad de nuestra información, sino también urgente.
La siguiente infografía ilustra algunas de las opciones que existen en Software Libre del software privativo que usamos a diario.

domingo, 22 de julio de 2012


Este blog lo creé con la finalidad de documentar las soluciones a todos aquellos problemas que encontrara en mi uso del software libre principalmente, pero en general, cualquier problema que  encuentre con la tecnología.

Esta vez quiero publicar la solución a un pequeño problema que se me presentó a la hora de instalar Fedora 11, teniendo instalado Ubuntu 9.04.

Quisé empezar probando Fedora 11 con el sistema de archivos Ext4 y el instalador no me lo permitía, sin saber la razón de esto me sentí obligado a buscar informació con la ayuda de google, para descubrir que Fedora 11 no es compatible con este tipo de sistema de archivos. Más precisamente no es compatible con la partición /boot que es donde se instala el kernel; por lo tanto si lo que ustedes quieren es usar Ext4 con Fedora 11, creen una partición independiente para /boot que debe usar Ext3.

Luego de terminada la instalación, no podía acceder a ubuntu. Quise simplemente configurar el Grub de Fedora para poder hacer que este cargue Ubuntu, pero resulta que son incompatibles.

Asi que la forma de resolver este problemita es la siguiente, la encontré luego de gastar un par de horas googleando:

  1. Suponemos que estamos sobre Fedora, debemos montar la partición donde está instalado Ubuntu.
  2. Una vez montada la partición de Ubuntu, accedemos a esta dirección de esta; /boot/
  3. Aqui hay unos archivos que debemos copiarlos, con nombres similares a estos: initrd.img-2.6.28-17-generic y vmlinuz-2.6.28-17-generic. Los nombres cambiaran de acuerdo a la versión del kernel que tengan instalada.
  4. Ahora nos vamos a la partición donde está instalado Fedora y entramos a este directorio /boot/ y pegamos los dos archivos anteriormente citados.
  5. Desde una consola logueados como root; escribimos esto: gedit /media/NOMBRE_DE_LA_PARTICION_ESTA_INSTALADO_SU_UBUNTU/boot/grub/menu.lst. Estas lineas son las que permiten cargar Ubuntu en su grub, y las copiamos para pegarlas luego en el grub de Fedora. Estás son para mi caso, deben variar un poco en su sistema.
  1. gedit /boot/grub/grub.conf, y copiamos las lineas arriba mencionadas.

Con esto reiniciamos el equipo y ya podemos seleccionar entre nuestras dos distribuciones Fedora y Ubuntu.


No olvides dejar tus comentarios si te ha servido esta información, o aún mejor si tienes una mejor solución.


Saludos,