lunes, 10 de noviembre de 2014

Formateando language icons en horizontal

El bloque language icons en Drupal viene por defecto con un formato de lista vertical con se puede ver aquí:
 

Si queremos modificar este formato podemos jugar con las CSS del módulo locale. En concreto iriamos al fichero:
modules/locale/locale.css

En este fichero podemos encontrar diferentes clases CSS que podemos modificar para cambiar el aspecto del listado de idiomas. En nuestro caso lo que queremos es que aparezcan en horizontal, para ello insertamos este código en el fichero:

#block-locale-language ul li
{
display: inline;
list-style: none;
}

Lo que convierte el listado de idiomas en algo tal que así:



Como se puede ver hemos quitado las viñetas y formateado la lista horizontalmente.




lunes, 3 de noviembre de 2014

Solucionando problema de seguridad de inyección de SQL en drupal 7

En primer lugar hay que decir que este fallo de seguridad afecta únicamente a las instalaciones de Drupal 7, por lo que no debemos perder tiempo actualizando versiones menores que la 7. 
Es necesario actualizar lo antes posible debido a que numerosos bot podrán acceder a tu servidor de forma automática y explotar el bug. Aunque hayas conocido un poco tarde la existencia del bug has de actualizar cuanto antes pues, como dice el dicho, más vale tarde que nunca.
Básicamente la solución al bug es actualizar el Drupal Core a su versión 7.32 y en algunos casos hacer una pequeña modificación en el archivo .htdocs de /sites/default/files.
En este diagrama podemos ver las decisiones a tomar en cada caso.

Descripción del fallo de seguridad altamente crítico

Descarga de Drupal Core 7.32

Modificación de .htdocs del directorio files

  • No se debe cambiar el .htdocs de la raíz de drupal solo el de /sites/default/files
  • La pagina de "Informe de Estado" de Drupal nos avisará de la necesidad de hacer este cambio.
  • El código a incluir es:
# Turn off all options we don't need.
Options None
Options +FollowSymLinks

# Set the catch-all handler to prevent scripts from being executed.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006

  # Override the handler again if we're run later in the evaluation list.
  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003


# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
  php_flag engine off
</IfModule>

Acciones tras aplicar la solución

Tras aplicar estos cambios podemos estar seguros de que a partir de ese momento no somos vulnerables a los robots que intenten explotar la vulnerabilidad de inyección de SQL en nuestro servidor. De lo que no podemos estar seguros es de que anteriormente el servidor no haya sido comprometido.
En la siguiente página tenemos un listado de diferentes problemas que se han encontrado en servidores que ya han sido atacados, lo que nos puede ayudar a detectar problemas similares en nuestro servidor.
Espero que esta recopilación de información para solucionar el problema os sea de ayuda.

jueves, 22 de mayo de 2014

Instalación Apache y PHP en Windows Server 2012 R2

Instalar Apache y PHP en Windows Server 2012 R2 puede ser muy problemático si no se elige la combinación de versiones adecuada de cada uno de los programas necesarios.

Todos los componentes software necesarios tienen su correspondiente versión en 32 y 64 bits lo cual también nos puede llevar a error al elegir las versiones.

¿32 o 64 bits?
Actualmente podemos ver que las versiones de PHP de 64bits para Windows vienen marcadas con la nota de que es una distribución de PHP "experimental". Como nuestro servidor estará dedicado a aplicaciones en producción vamos a descartar estas versiones e instalar la de 32 bits (aunque nuestro hardware sea de 64 bits).

Tras tomar esta decisión debemos elegir siempre las versiones 32 bits del resto de software pues sino daran errores que impedirán el inicio de Apache.

Si necesitamos extraer toda la potencia a nuestro hardware de 64 bits lo mejor será elegir alguna distribución Linux 64 bits como sistema operativo del servidor pues los paquetes PHP vienen compilados específicamente para ellas.

Una vez decidido que utilizaremos 32 bits vamos a ver componentes software que debemos utilizar.

Componentes Software (Siempre de 32 bits)
Tutorial de Instalación
Tras seleccionar la combinación de componentes software correcta no deberíamos tener problema en que nos funcione la instalación estandar del manual de PHP

martes, 25 de marzo de 2014

viernes, 21 de marzo de 2014

Sistema de Copias de Seguridad de Fotos y Videos Multidispositivo

Actualmente tenemos gran cantidad de fotos repartidas en nuestros dispositivos que queremos guardar con seguridad debido al valor sentimental que tienen.
Las cámaras actuales además generan archivos de imágen de gran tamaño por lo que es fácil que cada sesión de fotos se convierta en un giga de información, por lo que cada vez que usamos la cámara vamos generando mas y mas necesidad de espacio en disco y en copias de seguridad.
Así para poder mantener todas las fotos y videos seguros y accesibles podemos usar este sistema de copias de seguridad multidispositivo y mixto nube/local.

Características que debe cumplir:
  • Se deben guardar y hacer copias de todas las fotos ya sean del smartphone, tablet, cámara, videocámara, etc.
  • Para máximizar la seguridad utilizaremos copias en la nube y copias en discos locales.
  • Las copias deberán estar accesibles en todo momento para poder consultar las fotos si es necesario.
  • El sistema será escalable de forma que cuando lo llenemos tengamos la posibilidad de ampliarlo y seguir usando la misma operativa.
  • En la medida de lo posible sera un sistema desatendido lo que asegura que las copias se están realizando sin necesidad de acordarnos nosotros de realizarlas.
  • Funcionará en smatphones Android y en PC con Windows.
  • Siempre que sea posible se evitará el uso de conexiones por cable de los dispositivos.
 Equipos y software que necesitamos:

Configurando las copias de seguridad de los dispositivos Android

Para realizar copias de los dispositivos Android necesitamos un programa que realice la subida instantanea de la fotos y vídeos a Flickr (la app oficial no lo hace). Así utilizaremos Auto Uploader pues permite configurar muchos parametros como la privacidad de las fotos, la subida solo con WIFI y la subida de las carpetas del móvil que queramos. Así configuraremos la aplicación para que suba las fotos de la app de cámara, las fotos de whatsapp e incluso las fotos que nos entren por bluetooth. Esto lo configuraremos según el uso que cada uno haga de las apps de fotos de su móvil.
Con Auto Uploader no podemos asignar un álbum por defecto a las fotos por lo que podremos hacerlo a posteriori con el Organizr de Flickr. 
Hay que recordar que esto lo haremos en todos nuestros dispositivos móviles (smartphones, tablets,etc) para de esta manera centralizar todas la fotos en una única cuenta de Flickr.
Ahora que ya tenemos nuestras fotos respaldadas en Flickr, queremos conseguir tenerlas también en discos locales. 

Configurando las copias de seguridad de las cámaras de fotos y vídeo

Las cámaras de fotos y vídeo tienen diferentes formas de respaldar las fotos por lo que no entraremos en detalle en ello. Lo que tenemos que conseguir es que las fotos y vídeos sean copiados en nuestro PC en la carpeta "Imágenes" o subidos a nuestra cuenta de Flickr si la cámara tiene esta posibilidad. Así las fotos entrarán en nuestro sistema de copias de seguridad por una de estas dos vías.

Configurando las copias de seguridad de Windows en la nube

Para automatizar las copias de seguridad de nuestras fotos del PC con la nube de Flickr utilizaremos el programa photoSync. Este programa necesita que todas las fotos estén en una subcarpeta de nuestra carpeta de "Imágenes", si hay fotos en siguientes niveles de subcarpetas no las respaldará. Esto es debido a que en flickr no podemos tener subalbumes dentro de un álbum.
Una vez hayamos preparado de esta manera nuestra carpeta de Imágenes instalaremos el programa y le indicaremos cual es nuestra carpeta de imágenes, también configuraremos los permisos por defecto que tendrán las fotos una vez subidas a Flickr. 
La opción más importante que hemos de configurar es el tipo de sincronización que será "Full Synchronization". Esto significa que tendremos perfectamente sincronizada nuestra cuenta de Flickr con la carpeta Imágenes de nuestro disco local.
La principal razón de configurar Full Synchronization es que así las fotos añadidas a Flickr desde los dispositivos móviles serán descargadas automáticamente a nuestro ordenador, teniendolas así respaldadas en local. Pero solo las fotos que están añadidas a un álbum son descargadas así que tenemos que realizar la tarea de añadir todas las fotos de Flickr a un álbum de vez en cuando.

Configurando las copias de seguridad de Windows en discos locales

Está última fase la podemos realizar con cualquier programa de copias de seguridad pero yo he utilizado la herramienta de Windows "Historial de Archivos". Es bastante cómoda de utilizar si tenemos un disco local en red disponible para que se vayan haciendo las copias periodicamente. Cuando me refiero a disco local en red quiero decir un disco externo que se puede conectar a la WIFI de casa o directamente por cable a nuestro Router de forma que es una copia que tenemos en nuestro poder en casa (por ello lo de "local") aunque fuera de nuestro PC.
Una vez tengamos nuestro respaldo local ya tenemos todas nuestras fotos y videos tanto en flickr como en el disco externo por lo que tenemos un alto grado de seguridad de que no perderemos nuestras fotos ante eventualidades no deseadas.

Acciones a realizar cuando llenamos los discos

Tal y como hemos comentado al principio queremos que nuestro sistema de copias sea "escalable". Esto quiere decir que podamos añadir más espacio de forma fácil cuando llenemos los discos de fotos y vídeos.
Vamos a ver como podemos actuar para conseguir esa escalabilidad.

En principio el tamaño todo sistema de copias de seguridad viene dado por el disco más pequeño. Veamos la disponibilidad de espacio que tenemos inicialmente:
  • 1 Cuenta de Flickr de 1TB.
  • 1 Disco en red de 1TB.
  • Disco duro de nuestro ordenador en el que podemos dedicar por ejemplo 100GB para las fotos y videos.
Cláramente el sistema está limitado por los 100GB del PC, de forma que cuando en Flickr superemos esta cantidad las fotos de dispositivos móviles dejarán de descargarse al PC al no quedarle espacio y por tanto no se copiaran tampoco al disco en red. Para solucionarlo realizaremos "Archivados" de información.

Acción al llenar el disco del PC

  1. Creamos una nueva cuenta de Flickr para Archivar fotos antiguas (no la conectamos con photoSync).
  2. Subimos todas las fotos del disco duro a esta nueva cuenta de Flickr (por ejemplo con Flickr Uploader).
  3. Creamos una carpeta en el disco en red llamada "Archivo" y movemos a ella toda la copia de seguridad de fotos que se han hecho desde nuestro PC. Hay que asegurarse de que esta carpeta está fuera del alcance del programa de copias de seguridad para evitar borrados imprevistos.
  4. Una vez que estamos seguros que tenemos todas las fotos en la nueva cuenta Archivo de Flickr y en la carpeta Archivo del disco en red eliminamos todas las fotos de la carpeta "Imágenes". Esto vaciará también las fotos de la cuenta de Flickr original.
  5. El resultado final es que tenemos el espacio del PC liberado para poder seguir añadiendo fotos desde los distintos orígenes y creandose las copias como hasta ahora. Las fotos antiguas están a buen recaudo en la cuenta Archivo de Flickr y en la carpeta "Archivo" del disco en red.

Acción al llenar la cuenta de Flickr

Solamente se llenará la cuenta con el Archivo pues la original es vaciada periodicamente. En el caso de que se llene simplemente debemos ir creando nuevas cuentas gratuitas para ir añadiendo mas fotos archivadas.

Acción al llenar el disco duro en red

En este caso tendremos que comprar otro disco en red de 1TB en el que configuraremos las copias del PC y dejaremos el anterior como contenedor de fotos antiguas archivadas.

Conclusión 

Por supuesto todo este sistema se puede modificar utilizando otros programas que realicen las mismas funciones por lo que cualquier sugerencia que mejore este post es bienvenida. También comentar que la parte de copias en la nube no es recomendable realizarla sino tenemos un buen ancho de banda de subida porque las subidas irian tan lentas que no sería un sistema práctico.




jueves, 20 de marzo de 2014

Hello Java 8 and NetBeans 8! | Javalobby

NetBeans IDE 8 (release notes here)
provides out-of-the-box code analyzers and editors for working with the
latest Java 8 technologies--Java SE 8, Java SE Embedded 8, and Java ME
Embedded 8. The IDE also has a range of new enhancements that further
improve its support for Maven and Java EE with PrimeFaces; new tools for
HTML5, in particular for AngularJS; and improvements to PHP and C/C++
support. 

Hello Java 8 and NetBeans 8! | Javalobby

martes, 25 de febrero de 2014

Reseteando los contadores de páginas leídas en Drupal

Si en algún momento tenemos la necesidad de poner a cero los contadores de páginas leídas de Drupal podemos hacerlo directamente en la base de datos.

La tabla donde se almacena esta información es:
node_counter
Y dentro de ella tenemos los atributos totalcount y daycount.
Para resetealos podemos ejecutar las siguientes sentencias SQL que resetearan los contadores en toda la tabla:
UPDATE node_counter set totalcount = 0;
UPDATE node_counter set daycount = 0;