28 de febrero de 2010

Publicar código HTML en BLogger


Herramienta de traducción de código HTML a código de publicación:

parse HTML de Blogcrowds

También funciona para publicar en el blog código de otros lenguajes con caracteres especiales ... como Perl.

Por ejemplo:

#!/usr/bin/perl
#############################################################
# Extrae n caracteres del inicio y final de una cadena
#############################################################
#bypp:)2010

use strict;

print "Escribe algo: n";
my $cadena = <STDIN>;

print "nº de caracteres a cortar: n";
my $n =<STDIN>;

my $ini = substr($cadena, 0, $n);

my $fin = substr($cadena, (((length $cadena) - 1) - $n));

print "$ini...$finn";

... tomado de SUBSTR: Extraer una subcadena de una cadena ... que lo publiqué como buenamente pude.

trivial KML point .KML file for GoogleEarth with Perl

Hay librerias en CPAN para crear archivos KML y XML, pero al final he hecho uno propio y muy sencillito, trivial ...

n.d.a: Lo subo en imagen ya que no hay manera que pille los caracteres especiales del código

Crea un ficehro .KML que se puede abrir con googleEarth y funciona!!.

Ref.:
KML: Guía del usuario de Google Earth


Update: He usado la utilidad parse HTML de Blogcrowds para hacer visible el código a HTML:

#!/usr/bin/perl
#####################################################
# very simple .KML creator
# by pp:)2010
# for www.misnotaslinux.blogspto.com
#####################################################

use strict;

print "ppTrivialPerlScript that make .KML geo.point for google earthnn";

print "Nombre del punto: ";
my $nombre = <STDIN>;
chop $nombre;

my $filekml = $nombre."-point";
$filekml =~ s/ /_/g;

print "nLongitud: ";
my $longitud = <STDIN>;
chop $longitud;

print "nLatitud: ";
my $latitud = <STDIN>;
chop $latitud;

print "n";

#kml maker

open ( KML, ">$filekml.kml" );

print KML "<kml xmlns="http://earth.google.com/kml/2.0">n";
print KML "<Folder>n";
print KML "<Placemark>n";
print KML "<description>nombre: $nombre<br/>longitud: $longitud<br/>latitud: $latitud<br/></description>n";
print KML "<name>$nombre</name>n";
print KML "<Point>n";
print KML "<altitudeMode>clampToGround</altitudeMode>n";
print KML "<coordinates>$longitud,$latitud</coordinates>n";
print KML "</Point>n";
print KML "</Placemark>n";
print KML "</Folder>n";
print KML "</kml>n";

close (KML);

25 de febrero de 2010

making KML files con perl

Simple Placemark:

  Simple placemark
  Attached to the ground. Intelligently places itself
     at the height of the underlying terrain.
  
    -122.0822035425683,37.42228990140251,0
  
Descripción:

XML script from http://www.perlmonks.org/index.pl?node_id=31565
#!/bin/perl -w
 use strict;
 use XML::Writer;
 use IO;
 my $doc = new IO::File(">doc.xml");
 my $writer = new XML::Writer(OUTPUT => $doc);
 $writer->startTag("doc", class => "simple");           # tag + att
  $writer->dataElement( 'title', "Simple XML Document");# text elt
  $writer->startTag( "section");
   $writer->dataElement( 'title', "Introduction",      
                         no => 1, type => "intro");
   $writer->startTag( "para");
    $writer->characters( "a text with");
    $writer->dataElement( 'bold', "bold");
    $writer->characters( " words.");
   $writer->endTag( "para");
  $writer->endTag();                        # close section      
 $writer->endTag();                         # close doc
 $writer->end();                            # check that the doc
                                            # has only one element
 $doc->close(); # fixed (was $output->close(); ) as suggested by the p
+ost below

Ref.:
Tutorial de KML
Tutorial de KML para Google Earth

Intalar Google-earth en debian lenny


Al puro estilo debian...
  1. micra:# aptitude install googleearth-package

  2. micra:# make-googleearth-package
    --2020-02-25 21:40:49-- http://dl.google.com/earth/client/current/GoogleEarthLinux.bin
    Resolviendo dl.google.com... 74.125.79.93, 74.125.79.136, 74.125.79.91
    Connecting to dl.google.com|74.125.79.93|:80... conectado.
    Petición HTTP enviada, esperando respuesta... 200 OK
    Longitud: 25989559 (25M) [application/octet-stream]
    Saving to: `GoogleEarthLinux.bin'
    100%[=========>] 25.989.559 103GB/s in 4m 9s

    2010-02-25 21:45:02 (102 KB/s) - `GoogleEarthLinux.bin' saved [25989559/25989559]

    Google Earth for GNU/Linux 5.1.3533.1731
    Unrecognized Google Earth version (use --force to build anyway)

  3. micra:# make-googleearth-package --force
    ...(Hagamos caso al oráculo) ...
    [lenny upkpacking and building package ... ... ...] and finally

    dpkg-deb: construyendo el paquete `googleearth' en `./googleearth_5.1.3533.1731+0.5.4-1_i386.deb'.
    Success!

  4. # dpkg -i googleearth_5.1.3533.1731+0.5.4-1_i386.deb
    Seleccionando el paquete googleearth previamente no seleccionado.
    (Leyendo la base de datos ...
    97445 ficheros y directorios instalados actualmente.)
    Desempaquetando googleearth (de googleearth_5.1.3533.1731+0.5.4-1_i386.deb) ...
    Configurando googleearth (5.1.3533.1731+0.5.4-1) ...
    Procesando disparadores para menu ...
    micra:#

  5. micra# googleearth ... y aqui esta!!!

  6. Recomienda intalar openlGL, ...
...pero esto será otra historia.

Ref.:
Debian Way or The Hard Way: Installing Google Earth

fit-PC2. El hermanito mayor de micra


Hace ya unos meses que está en el mercado, hay muchas versiones nuevas y muy mejoradas con interesantes opciones, más potencia y conectividad.
Tiene muy buena pinta y nada que ver con su hermanito menor fitPC-Slim, mi servidor micra.
Lo peor de estos micro equipos es que te acostumbras silencio absoluto con el trabajan.

CompuLab Fit-PC2 NetTop

fit-PC2

24 de febrero de 2010

Traceroute con Perl


Utilizaremos el módulo Net::Traceroute::PurePerl de CPAN.
Un ejemplo:
#!/usr/bin/perl

use Net::Traceroute::PurePerl;

my $t = new Net::Traceroute::PurePerl(
backend => 'PurePerl', # this optional
host => 'www.google.com',
debug => 0,
max_ttl => 15,
query_timeout => 2,
packetlen => 40,
protocol => 'udp', # Or icmp
);

$t->traceroute;
$t->pretty_print;

#asignamos hop,ip,time a una variable tridimensional
for (my $n=1; $n<=15; $n++) {
my $ip = $t->hop_query_host($n, 0);
my $ms = $t->hop_query_time($n, 0);
$trace[$n][0] = $n;
$trace[$n][1] = $ip;
$trace[$n][2] = $ms;
}

#Imprimimos resultados
for (my $n=1; $n<=$maxnhops; $n++) {
for (my $m=0; $m<=2; $m++) {
print "$trace[$n][$m]\t";
}
print "\n";
}

Imagino la cara de Larry Wall al ver este cutreScript ...!!!!

22 de febrero de 2010

PostgreSQL:Busquedas en campos tipo inet


Si queremos hacer una búsqueda de direcciones IP en un campo PostgreSQL del tipo INET, no podemos hacerlo directamente con LIKE ...

psql=>SELECT * FROM tabla WHERE ip LIKE '192.168.1.%';
ERROR: la sintaxis de entrada no es válida para tipo inet: «192.168.1.%»

...ya que inet no es texto y no lo admite.

SOLUCCIÓN: Utilizar la función HOST(inet) que transforma el campo tipo INET en texto:

psql=>SELECT * FROM tabla WHERE HOST(ip) LIKE '192.168.1.%';

Ref.:
How do I perform a wildcard "like" select on type inet with Postgresql 7.4?
9.10. Network Address Type Functions

21 de febrero de 2010

SUBSTR: Extraer una subcadena de una cadena


Extraer el principio y final de una cadena de caracteres usando substr y length.
Ejemplo: Corta los n caracteres iniciales y finales de una cadena.
#!/usr/bin/perl
#############################################################
# Extrae n caracteres del inicio y final de una cadena
#############################################################
#bypp:)2010

use strict;

print "Escribe algo: \n";
my $cadena =
STDIN; #faltan simbolos mayor y menor

print "nº de caracteres a cortar: \n";
my $n = STDIN;
#faltan simbolos mayor y menor

my $ini = substr($cadena, 0, $n);

my $fin = substr($cadena, (((length $cadena) - 1) - $n));

print "$ini\...$fin\n";
Ref.: http://www.tutorialspoint.com/perl/perl_substr.htm

19 de febrero de 2010

Cambiar wallpapaer de LXDE


Hay que hacerlo desde PCMan file manager:
  • Abrir PCMan
  • menu Editar/preferencias/
  • solapa Escritorio:
  • y aqui cambiar el wallpaper y la ruta de la imagen.
Ref.: {SOLVED}Change wallpaper in LXDE?

4 de febrero de 2010

Buscar y eliminar ficheros duplicados


Una utilidad linux para consola que busca y borra archivos duplicados: fdupes

Muestraficheros duplicados en le directorio:
# fdupes /dir

Borra los archivos duplicados en el directorio dir: (ojo!! con esto)
# fdupes -d /dir

Buscar recursivamente:
#fdupes -r /dir

Muestra tamaño de los ficheros duplicados:
#fdupes -S /dir

ref.:
Linux fdupes: Get Rid (Delete) Of Double Duplicate Files In Directory
Fdupes. Buscando ficheros y directorios duplicados