miércoles, 21 de agosto de 2013

Apache: Verificando errores en la configuración de VirtualHosts


Hace poco necesitaba verificar por qué una configuración de VHost no me estaban cargando. Para ello ejecuté el comando:

apachectl -S

El comando muestra cada uno los VirtualHosts que se cargan así como cualquier error de configuración:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:443                  is a NameVirtualHost
         default server www.example.com (/etc/apache2/sites-enabled/example-ssl:1)
         port 443 namevhost www.exampleg.com (/etc/apache2/sites-enabled/example-ssl:1)
*:80                   is a NameVirtualHost
         default server example.com (/etc/apache2/sites-enabled/example:29)

De ahí me pude dar cuenta que mi nuevo archivo de VHost no se estaba cargando porque no es suficiente tener el archivo en /etc/apache2/sites-available, sino que hay que crear un symlink en /etc/apache2/sites-enabled.

Alias para buscar texto recursivamente

Un alias muy útil para ejecutar el comando grep recursivamente en busca de un texto literal:

search() {
   grep -R "$1" .
}

alias search=search

$ search my_string

martes, 20 de agosto de 2013

Wordpress: Deshabilitando el título de una página


Pues algo que pareciera debiera ser una opción por defecto de Wordpress resulta ser ligeramente más complicado. Hay muchas formas de lograrlo pero la más sencilla a mi parecer es instalar un plugin que se llama Disable Title

Ya dentro del editor de la página aparecen varias opciones para deshabilitar el título.

miércoles, 14 de agosto de 2013

Java: Conviertiendo String a Enum


A veces es necesario convertir un valor String a un Enum porque quizás el valor lo tenemos en la base de datos como un String, pero deseamos manipularlo en el código como un Enum.

En el siguiente código muesto como obtener el valor Enum de un String. Básicamente se agrega un método estático a la clase Enum que retorna el valor específico mediante una iteración de todos sus valores para comparar el valor String con el pasado por parámetro. Si no se encuentra o se pasa un valor nulo, se retorna una excepción de argumento inválido.


public enum Volcano {

 IRAZU("Irazu"), POAS("Poas"), ARENAL("Arenal"), RINCON_DE_LA_VIEJA("Rincon de la vieja");

 private String name;

 private Volcano(String name) {
  this.name = name;
 }

 public static Volcano fromString(String name) {
  if (name == null) {
   throw new IllegalArgumentException();
  }
  for (Volcano volcano : values()) {
   if (name.equalsIgnoreCase(volcano.getName())) {
    return volcano;
   }
  }
  // Passed string value does not correspond to a valid enum value.
  throw new IllegalArgumentException();
 }

 public String getName() {
  return this.name;
 }

 public static void main(String[] args) {
  Volcano volcano1 = Volcano.fromString("Poas");
  System.out.println(volcano1);

  Volcano volcano2 = Volcano.fromString("rincon de la vieja");
  System.out.println(volcano2);

  Volcano volcano3 = Volcano.fromString("Fuji");
 }
}

Salida:


POAS
RINCON_DE_LA_VIEJA
java.lang.IllegalArgumentException
 at com.bodybuilding.common.enums.Volcano.fromString(Volcano.java:22)
 at com.bodybuilding.common.enums.Volcano.main(Volcano.java:36)