h1

Actualizar automágicamente

4/03/13

Sé que hace mil que no escribo nada por aquí pero creo que este minitip merece la pena.

El siguiente proceso lo estoy utilizando en un par de servidores LAMP que me ha tocado montar hace poco. De esta manera consigo dos cosas:

  • Instalar de manera automágica las actualizaciones.
  • Instalar únicamente las actualizaciones relativas a la seguridad.

Al tratarse de máquinas con CentOS 6.3 ha sido todo muy sencillo instalando los siguientes plugins de yum:

yum install yum-security yum-cron

Con yum-security ya podemos instalar sólo las actualizaciones de seguridad de la siguiente forma:

yum update --security

yum-cron es un demonio que actualiza el sistema los días de la semana que le indiquemos. El fichero de configuración es:

/etc/sysconfig/yum-cron

Todos los parámetros está muy bien comentados así que sólo tenéis que ajustarlos a vuestras necesidades. En nuestro caso, para instalar sólo las actualizaciones de seguridad hemos de aprovisionar el siguiente parámetro:

YUM_PARAMETER="--security"

Activar el script de arranque/parada:

chkconfig yum-cron on

Y arrancar el demonio:

service yum-cron start
h1

Mantenimiento de discos SSD

12/08/11

Esta semana me llegó un disco SSD y he estado ocupado entre sustituirlo y reinstalar el sistema.

Para mi sorpresa, cuando estaba todo listo y fui a desfragmentar, el Defraggler me avisó de que desfragmentar un disco SSD puede acortar su vida útil. Intrigado, me puse a buscar información al respecto y descubrí varias cosas:

Los discos SSD tienen un número limitado de escrituras. Además, la diferencia de velocidad entre leer información secuencial o fragmentada es ínfima. Por todo esto, no es aconsejable defragmentar los discos SSD.

También me he encontrado con una lista de tips muy útiles para maximizar el rendimiento de tu disco SSD con Windows 7:

  • Deshabilitar la desfragmentación
  • Deshabilitar el indexado de archivos
  • Quitar el archivo de paginación
  • Habilitar la instrucción TRIM
  • Deshabilitar la hibernación
  • Deshabilitar la función PreFetch

En el artículo original encontraréis más información.

Bibliografía: Computer ON, Wikipedia.

h1

Liberar espacio de Windows 7

7/07/11

Esto, más que una entrada del blog, es un apunte rápido a modo de chuleta para la posteridad.

Para liberar espacio del directorio de instalación de Windows 7 de forma más o menos segura se puede abrir una terminal de símbolo del sistema de administrador y ejecutar el siguiente comando:

dism /online /cleanup-image /spsuperseded

Esto elimina backups de librerías antiguas entre otras cosas. Quien quiera saber más que googlee :)

Bibliografía: Overclockers UK

h1

Delicious addon en Firefox 4

5/04/11

Si, como yo, eres usuario de Firefox y Delicious te habrás dado cuenta que los chicos de Yahoo no han actualizado el complemento para la nueva versión del navegador: Firefox 4.

Mientras deciden si cargarse o no uno de los mejores servicios, a mi parecer, de la llamada Web 2.0. Aquí os dejo un truquillo para hacer funcionar el complemento.

1. Instalar el Nightly Tester Tools.

2. Reiniciar Firefox.

3. Activar la opción Force Addon Compatibility del Nightly Tester:

4. Reiniciar de nuevo Firefox.

5. Instalar el complemento de Delicous.

6. Reiniciar por última vez el Firefox.

Y listo. Ya deberíamos tener funcionando el addon. Ahora sólo queda rezar para que dure el servicio.

Bibliografía.

h1

FAC!

22/03/11

(Pulsa sobre la imagen para verla en grande)

Visto en FB.

h1

Kateando II: ahora en Java

15/03/11

Desde hace un tiempo tenía en la lista de “pendiente” el aprender un poco de programación en Java. Últimamente trabajo cada vez más administrando contenedores de aplicaciones Java así que he pensado que no me vendrá nada mal. Sobre todo para coger un poco de vocabulario marciano programaciano de cara a un futuro curso de Weblogic.

Como soy así de machote, sin tener ni puta idea de lo que hacía instalé el Eclipse, hice acopio de documentación (1 y 2) y aprovechando el post anterior me propuse hacer la kata de los números FizzBuzz.

Tras un poco de cacharreo y un mucho de pegarme con el Eclipse aquí está mi primer programa en Java:


public class FizzBuzz {

 public static void main(String[] args) {

 boolean F;
 boolean B;

 for (int i=1; i<101; i++){
    F = false;
    B = false;
    String Num = new Integer(i).toString();

    if (i % 3 == 0 || Num.contains("3"))
       F = true;
    if (i % 5 == 0 || Num.contains("5"))
       B = true;

    if (F)
    {
       if (B)
          System.out.println("FizzBuzz");
       else
          System.out.println("Fizz");
    }
    else
    {
       if (B)
          System.out.println("Buzz");
       else
          System.out.println(i);
    }
  }
 }
}

He de confesar que el toString y el contains lo he copiado de la kata de Diego Guevara :P

Primeras conclusiones

Aunque sepas programar, tomatelo con calma y empieza por el hello world. Por lo que he podido ver el Java es un mundo aparte y si pretendes empezar a lo grande espero por tu bien que seas un superdotado.

El Eclipse es mucho lio. Al menos para novatos. Yo al final he optado por instalar un compilador en mi Ubuntu y es todo mucho más sencillo.

Ayudita:

Instalar compilador Java:

caic@miburro# sudo aptitude install openjdk-6-jdk

Compilar programa:

caic@miburro# javac programita.java

Esto crea el fichero binario programita.class en el mismo path.

Ejecutar programa:

caic@miburro# java programita

PD: cualquier ayuda, consejo, manual será siempre bienvenido :)

h1

Kateando un poco

4/03/11

Y no hablo de catear, que también, hablo de katas de código. En resumen son pequeños ejercicios de programación y la gracia es que muy 2.0. Es decir, luego comentas con la gente sobre las soluciones propuestas.

El caso es que vía Mundo Geek llego a una curiosa iniciativa con un nombre de lo más descriptivo: 12 meses, 12 katas.

El problema de marzo es el siguiente (traduzco y resumo el original):

Escribe un programa que imprima los números del 1 al 100 con las siguientes excepciones:

  • Si el número es divisible por 3 ha de imprimir “Fizz”.
  • Si el número es divisible por 5 ha de imprimir “Buzz”.
  • Si el número contiene un 3 ha de imprimir “Fizz”.
  • Si el número contiene un 5 ha de imprimir “Buzz”.

Ejemplo de salida:

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz

… etc hasta 100

Y aquí va mi propuesta en shell script:

Editado (07/03/11): el script anterior no mostraba los número FizzBuzz. Ya está solucionado:

#!/bin/bash

for i in {1..100}
do
  F=0
  B=0

  if [ $(expr $i % 3) -eq 0 ] || [ $(echo $i | grep 3) ]; then
    F=1
  fi

  if [ $(expr $i % 5) -eq 0 ] || [ $(echo $i | grep 5) ]; then
    B=1
  fi

  case $F in
    0) if [ $B -eq 1 ]; then
         echo "Buzz"
       else
         echo $i
       fi
       ;;

   1) if [ $B -eq 1 ]; then
         echo "FizzBuzz"
       else
         echo "Fizz"
       fi
       ;;

  esac
done

Versión anterior:


#!/bin/bash

for i in {1..100}
  do

    if [ $(expr $i % 3) -eq 0 ] || [ $(echo $i | grep 3) ]; then
      echo "Fizz"

    elif [ $(expr $i % 5) -eq 0 ] || [ $(echo $i | grep 5) ]; then
      echo "Buzz"

    else
      echo $i
    fi
done

Seguro que alguno puede hacerlo más eficientemente. ¿Quién se anima?

PD: Para los que, como yo, su primer reto sea aprender a utilizar Git y GitHub, he encontrado un tutorial estupendo en el blog de ElePHPante.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.