Disponible en descarga gratuita Cuadernos de Viaje - Oriente Próximo, el libro con nuestras aventuras en Jordania, Siria e Israel.

viernes, 31 de agosto de 2007

El día de los blogers

He leído en Yaestaellistoquetodolosabe que hoy se conmemora el BlogDay. Día creado por Nir Ofir... [artículo completo].

En su día "perdí" un poco de tiempo comprobando todos los días de algo que había por el mundo, recuerdo que fue el día del orgullo friki cuando lo hice. Recopilé una buena cantidad de fechas y sé que me faltan muchas (de entrada el BlogDay no lo tenía).

Aquí tenéis la entrada de aquél día, con el día de hoy.

Jueves, Mayo 25, 2006

No sólo de efemérides y de santoral viven los días. También tienen más "nombres" asociados, el principal el día de lo que sea. Hay un día por cada comunidad autónoma, por la constitución, por la mujer, por el trabajo, por el niño, por internet (que fue el 17 de junio para el que no lo sepa), para las madres, para los padres, por las bicicletas, por el cáncer, por el sida... vamos, que cada cosa tiene su día incluyendo todas las enfermedades. Hoy también tiene su día: el día de los frikis. Sí, sorprendente. ¿Quién iba a pensar que para eso también se había decidido instaurar un día en particular?. Hagamos una lista:
  • De cada comunidad autónoma
  • De la constitución (6 de diciembre)
  • De la mujer (8 de marzo)
  • Del trabajo (1 de mayo)
  • Del niño (20 de noviembre)
  • De internet (17 de junio)
  • De la madre (primer domingo de mayo)
  • Del padre (19 de marzo)
  • Del sida (1 de diciembre)
  • Del cáncer (19 de octubre)
  • Del libro (23 de abril)
  • De la esclerósis múltiple (18 de diciembre)
  • Sin tabaco (31 de mayo)
  • Sin coches (22 de septiembre)
  • Del agua (23 de marzo)
  • Del orgullo gay (28 de junio)
  • Del amigo (20 de julio)
  • Del planeta Tierra (22 de abril)
  • Sin comprar nada (26 de noviembre)
  • De la no violencia contra la mujer (25 de noviembre)
  • De la hispanidad (12 de octubre)
  • De Europa (9 de mayo)
  • De la acción católica y del apostolado seglar (4 de junio)
  • ...
  • Del orgullo friki (25 de mayo)
  • BlogDay( 31 de agosto 3108)
Para que luego digan: el que no tiene un día es porque no está informado, porque haberlo, ¡seguro que lo hay!

Enviar un correo electrónico desde Java

Esto es algo que he tenido que hacer muchas veces y que, la verdad, es de lo más sencillo. El problema de las cosas que son sencillas es que tienen a olvidarse porque "es tan fácil que no merece la pena". Luego llega el momento de volverlo a hacer, recuerdas que era fácil y dices que tardarás muy poco en hacerlo. Y te pones a hacerlo y te das cuenta de como era tan fácil no pusiste mucha atención en memorizar los pasos y que, al final, lo mismo te pasas del tiempo que has dicho.

Yo tengo una clase utilidad que aparte de hacer más cosas envía correos desde Java. Las otras cosas que hace son abrir una conexión a una base de datos, manejar formatos de fechas,... Pero no siempre llevo la clase encima. De todas formas, incluso llevándola hacen falta algunas cosas más. Dos cosas más: dos librerías de java:
activation.jar JavaBeans Activation Framework
mail.jar JavaMail

Una vez colocados ambos jars en el classpath del proyecto bastará con llamar a los métodos de la clase EnvioCorreo:
package com.jaac.utilidad;

import java.io.FileInputStream;
import java.util.Properties;

import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;


/**
 * @author JAAC
 *
 */
public class EnvioCorreo {

final static String CONFIG_FILE = "mail.props";
static String sServidorCorreo;
static String sCorreoOrigen;
static String[] asCorreoDestino;

    /**
     * Método para inicializar los valores del seridor de correo,
     * se cargan desde un fichero de configuración con los siguientes valores:
     * app.servidorCorreo=smtp.xxxx
     * app.correoOrigen=origenxxx@xxx.com
     * app.correoDestino=dst1@xxx.com,dst2@xxx.com,...,dstn@xxx.com
     */
public static void init () {
    try
    {
        Properties props = new Properties();
        props.load( new FileInputStream( CONFIG_FILE ) );
       
        sServidorCorreo = props.getProperty( "app.servidorCorreo" );
        sCorreoOrigen = props.getProperty( "app.correoOrigen" );
        String sTmp = props.getProperty( "app.correoDestino" );
        String[] asTmp = null;
        if( sTmp.indexOf( "," ) != 1 ) {
            asTmp = sTmp.split( "," );
        }
        else
        {
            asTmp = new String[1];
            asTmp[0] = sTmp;
        }
        asCorreoDestino = asTmp;
    }
    catch( Exception ex )
    {
        System.out.println( "No hay información de arranque!!" );
        System.exit( -2 );
    }

}

    /**
     * Método público y estático que envía un correo a las direcciones
     * indicadas en el fichero de propiedades, desde la dirección indicada
     * también en el mismo fichero con el asunto y el contenido que se pasan
     * como parámetros.
     * 
     * @param sAsunto String
     * @param sTexto String
     * @return boolean
     */
public static boolean enviarEmail( String sAsunto, String sTexto )
{
    try
    {
        Properties props = new Properties();
        props.put("mail.smtp.host", sServidorCorreo );
        Session mailSesion = Session.getDefaultInstance(props, null);

        Message msg = new MimeMessage(mailSesion);
   
        msg.setFrom ( new InternetAddress( sCorreoOrigen ) );
        msg.setSubject ( sAsunto );
        msg.setSentDate ( new java.util.Date() );
        msg.setText ( sTexto );

        InternetAddress address[] = new InternetAddress[asCorreoDestino.length];
        for( int i = 0; i <> asCorreoDestino.length; i++ ) {
            address[i] = new InternetAddress ( asCorreoDestino[i] );
        }         
           
        msg.setRecipients (Message.RecipientType.TO, address);

    // Modificación para envío de adjuntos propuesta por Elisa

        Multipart m = new MimeMultipart();
        MimeBodyPart mb = new MimeBodyPart();
        mb.attachFile(archivo);
        m.addBodyPart(mb);
        msg.setContent(m);

    // Fin modificación para envío de adjuntos propuesta por Elisa
          
        Transport.send(msg);
      }
      catch( MessagingException e )
      {
          return false ;
      }
   
      return true ;
  }

}

jueves, 30 de agosto de 2007

Marmitako

No sólo de informática vive el hombre. De hecho lo que son bits, bytes, megas, gigas, teras, petas (petas, sí, dentro de poco se empezará a usar esta unidad, aunque no estoy muy seguro de si no cambiarán el nombre por algo menos "usado") no quitan el hambre. Es cierto que ayudan a comprar lo que de verdad alimenta, pero en sí mismos no tienen mucho valor nutritivo.

Así que hoy lo que traigo es una receta de marmitako que hago con cierta frecuencia, pero que con todo y con eso tengo que releer cada vez. De hecho, ayer se me estaba olvidando un paso y casi lo estropeo todo. La receta original es de una revista de cocina de la que ahora mismo no recuerdo el nombre, pero no se diferencia en mucho del resto de versiones de marmitako que hay por la red.

Lo de las cantidades es algo que no domino mucho. Bueno, más que no dominar es que no le presto mucha atención. Yo pongo bastante patata porque a mí me gusta la patata. La cantidad de atún es más o menos de medio kilo para unos tres o cuatro platos (ya he dicho que a mí me gusta la patata). De la cebolla no soy un gran amante así que con media o algo menos si es grande basta, lo mismo me pasa con el tomate, de manera que uno es suficiente. Uno o dos ajos. Un puerro. El pimiento verde y la guindilla los quito de mi guiso, aunque diré cuándo y dónde se incluyen en la receta original.

  1. Para empezar hay que hervir durante 15 minutos en agua (tres vasos) con sal el puerro, una vez lavado y pelado. Después de hervido se pasa por la batidora con el agua y se reserva el caldo.
  2. Se sofríe la guindilla en 8 cucharadas de aceite (el aceite sí que me gusta y no hay que escatimarlo que es muy sano).
  3. Cuando está dorada se saca y en ese mismo aceite se pocha la cebolla hasta que esté blanda y transparente.
  4. Se sube un poco la temperatura (eso de subir el fuego ya está pasado de moda, las cocinas son vitrocerámicas) y se añaden los ajos picados y el pimiento verde, también picado y sin pepitas. Se deja unos 8 minutos.
  5. Se añade el tomate pelado, troceado y sin pepitas y se deja unos 10 minutos. Tiempo que aprovecharás para pelar las patatas.
  6. Se incluyen las patatas y medio vaso de vino blanco. Ahora hay que subir el fuego para que el alcohol del vino se evapore un poco (reducir el vino).
  7. Echamos el caldo del puerro inicial y añadimos la sal que veamos necesaria. Aguantamos unos 15 minutos cociendo las patatas.
  8. Ponemos los tacos de atún y lo mantenemos en el "fuego" 5 minutos más.
Y ya está, tenemos un marmitako para disfrutar.

miércoles, 29 de agosto de 2007

Propiedades de pantalla y ventana

Empezamos con Javascript que fue con lo que me tuve que pegar ayer.

Para empezar había que conocer la altura y la anchura de la configuración del monitor que mostraba la página. Eso fue fácil. Inicialmente pretendía saber la anchura y altura del propio navegador, este dato es bastante complicado de obtener puesto que para cada navegador debe hacerse de una manera distinta, es más, para algunos parecía imposible poder llegar a conseguirlo. Sin embargo, el alto y el ancho del monitor se puede obtener fácilmente y de una manera estandar.
  • alto -> screen.height
  • ancho -> screen.width
Después de esto había que comprobar que la pantalla tuviera la resolución adecuada a los contenidos a mostrar y en caso contrario incluir barras de desplazamiento en las ventanas emergentes (pop up). También esto parece sencillo, pero me llevó un rato de buscar, porque la opción más obvia en el método window.open, que parecía ser scroll=yes, no valía. Después de un rato (corto, bien es cierto) dimos con la solución:
  • scroll -> scrollbars=yes
Por ahora no ha habido más luchas con javascript, pero sé que las habrá... las hubo en su momento, pero... no las apunté.

Uno más...

Ya se está convirtiendo en una costumbre arrancar mis blogs (sí, mis blogs, porque debo decir que ya llevo más de uno) con una entrada con este título. Lo siguiente que suelo poner es que esta vez me voy a esforzar en escribir más de una entrada y que trataré de que sea una al día. En esta ocasión no voy a decir eso, porque me he dado cuenta de que se trata de un imposible.

De todas formas no trato de que este blog se convierta en una fuente de referencia para cualquier aburrido (como yo) que al llegar por las mañanas se dedique a buscar algo que leer antes de ponerse a trabajar. Si ese es tu caso aquí te pongo la lista que yo utilizo por las mañanas :-)
  1. elmundo.es
    El periódico, hay que estar informado y ver las viñetas del día (en edición impresa)
  2. curiosoperoinutil
    Un sitio de ciencia con datos que te permitirán ser el rey en las conversaciones con los compañeros.
  3. fogonazos
    Otro sitio de datos interesantes que no encontrarías si te pusieras a buscar.
  4. nilibreniocupado
    Las aventuras y desventuras de un taxista en Madrid. Blog de 20 minutos.
  5. yaestaellistoquetodolosabe
    El nombre lo dice todo, las cosas que quieras saber puede que ya las haya respondido... y si no, pregunta.
  6. meneame
    El ranking de noticias de internet, entra, pasea y menea.
Si quieres puedes decirme cuales son tus lecturas de la mañana y ampliar mis horizontes, que, como ves, se reducen demasiado a los datos de conversación de bar que llaman mucho la atención.

Según va pasando la mañana, si el día lo permite, se amplían los sitios en los que "perder" un poco de tiempo informándose, aprendiendo, divirtiéndose...
  1. ojodigital
    Una web fotográfica llena de grandes imágenes y grandes fotógrafos (amateurs y profesionales) que además de mostrarte su trabajo te explican muchas cosas.
  2. elatleta.com
    Sitio web dedicado al atletismo con un interesante foro en el que puedes informarte de todas las carreras, entrenamientos, lesiones, quedadas... En particular el foro de Veranos de la Tapia
De todas formas este blog pretende ser un repositorio de todas esas cosas que en algún momento has sabido hacer y que al no apuntarlas en algún sitio con el tiempo has dejado de saber. Es cierto que habrá trabajos en los que no se pueda olvidar cómo se hacía tal o cuál cosa, pero lo normal es que en todos haya algo que se puede olvidar si sólo se ha hecho una vez porque la persona que tenía que hacerlo estaba de vacaciones, o muy ocupada, o es algo que se hace cada mucho tiempo y cada vez es como si fuera la primera... Sé de lo que hablo, yo soy informático y cada vez que tienes que poner algo que ya pusiste hace meses en otro código y no recuerdas cómo era es muy frustrante.

Esa es la motivación de este blog: no volver a frustrarse, todo lo que has tenido que aprender a hacer deberías ser capaz de volverlo a hacer sin re-aprender. Y la manera de que eso suceda es apuntando cómo se hacía, cómo encontraste cómo se hacía, qué pruebas hiciste... bien es cierto que con esta motivación no creo que este blog tenga mucho interés para el resto del mundo, pero cuando yo busco cómo hacer algo, sé que no soy el primero que lo ha intentado y que si alguien que ya haya pasado por eso hubiera publicado la solución sería más fácil para mí.