01 Nov 2013
18 Oct 2013

Geolocalizar un listado de IPs con Perl

El otro día un cliente nos hizo el encargo de obtener los países a los que pertenecían un listado de IPs de un log. Bueno, pues usamos cualquier servicio de geolocalización de IPs y solucionado. El problema vino cuando el archivo tenía miles de IPs, de modo que era inviable hacerlo a mano. Así que para estos casos PERL viene de PERLas.
Bien, lo primero es tener instalado PERL en nuestra distribución de Linux favorita (sí, PERL se programa en Linux ^_^). Y mediante CPAN instalamos el módulo IP-Country, desde una terminal:

loquesea@loquesea:~$ sudo perl -MCPAN -e shell 
loquesea@loquesea:~$ install IP::Country

El archivo de entrada será un simple txt con una IP por cada línea, por ejemplo:

106.10.85.67
109.166.128.6
109.174.113.164
111.243.39.145
112.134.171.139
...

Y el código PERL:

Selec All Code:
1
 

Le damos permisos de ejecución, y lo ejecutamos:

loquesea@loquesea:~$ chmod 777 geolocaliza.pl
loquesea@loquesea:~$ ./geolocaliza.pl

Y la salida de nuestro programa se escribirá en paises.txt:

DE 9
VN 11
IN 17
UA 18
ES 21
US 22
BY 23
RU 31
...

Share this
10 Oct 2013

Alinear el texto con imágenes en CSS: arriba, en el medio o abajo

Si queremos alinear texto al lado de una imagen con HTML y CSS muchas veces nos encontramos con el problema de que no queda alineado del modo que nos interesa, ya que por defecto se alinea abajo. La solución pasa por usar la regla de CSS “vertical-align“, que nos va a permitir que el texto se empiece a escribir en la parte de arriba de la imagen, desde el centro o en la parte inferior.

Por ejemplo:

Cubo AzulAlineamos arriba

Cubo AzulAlineamos en el centro

Cubo AzulAlineamos abajo

 

Éste es el código CSS usado:

Selec All Code:
1
 

 

Si por ejemplo quisieramos alinear el texto en la parte superior podríamos usar el siguiente código HTML:

Selec All Code:
1
 
Share this
09 Oct 2011

Cabecera aleatoria en WordPress

En uno de nuestros proyectos, la página Web www.movimientosdegenero.com, pensamos junto con la administradora del Blog la idea de una cabecera que cambiase aleatoriamente con cada cambio de página y que además fuese un proyecto participativo (base del 2.0). Lo que hicimos es que los visitantes pudieran enviar su foto y que ésta apareciese tanto en la cabecera de la Web como en una galería. Esta estrategia está acorde con el concepto de Neuromarketing que explicamos en una entrada anterior.

En lo que concierne a la parte técnica, la idea es cargar una imagen diferente cada vez que se llama al archivo PHP que carga el “header”. Aunque la página donde lo hemos programado es un WordPress, se puede aplicar en cualquier proyecto Web con PHP. En nuestro caso pusimos el siguiente código en el archivo “header.php” del theme de WordPress:

Selec All Code:
1
 

Con el código anterior ya tenemos un array con todas las imágenes del directorio elegido y un número entero aleatorio.

Aunque cada uno lo podéis usar como creáis, en nuestro caso, hemos utilizado el siguiente código HTML para imprimir nuestra cabecera.:

Selec All Code:
1
 

Esperamos que la información os sea útil, para cualquier duda podéis preguntar en los comentarios.

Share this
26 Ago 2011

Marcar una fila de un jTableMarking a row in a JTable

Captura de pantalla de las propiedades de un jTable desde NetbeansLa entrada de hoy va a ser más concreta y técnica que de costumbre. Viene motivada por un proyecto Java con cierta complejidad que estamos acabando y donde muchas de las cosas que hemos programado no tienen documentación (por lo menos en español).

Al grano. Si queremos obtener cual es la fila (row) seleccionada en un jTable de Java utilizamos la función jTable.getSelectedRow() que nos devuelve un entero con la fila seleccionada:

Selec All Code:
1
 

Si lo que queremos, es hacer la operación inversa; marcar o seleccionar una fila desde código, es muy tentador hacer (sí, nosotros también lo hemos intentado)

Selec All Code:
1
 

Pero no podía ser tan fácil, la manera correcta de hacerlo es con el modelo de tabla (que aunque no lo hayamos especificado siempre existe uno por omisión):

Selec All Code:
1
 

De este modo, podemos seleccionar todo el intervalo de filas que necesitemos.

Share this

© 2010 Ruvic Soluciones Informáticas

Subir