mié, 2011-07-06 20:42:17 -0500

Una frase para recordar

Recientemente volviendo a ver Cars 1 escuche una frase de Mate muy interesante No necesito saber a donde voy, solo saber donde he estado, creo aplica completamente a Colombia y adicionalmente a la frase El pueblo que no recuerda su historia está condenado a repetirla, para cada uno de nosotros Colombianos debemos recordar y no olvidarnos de los pasos que hemos dado en nuestra vida hacia donde nos dirijimos y de donde venimos.

jue, 2010-06-03 20:56:46 -0500

Un bueno video

Un buen video de la satasfacción del trabajo en el software libre

vie, 2010-04-23 09:36:43 -0500

Encuesta Mockus.

Una encuesta realizada por CM& y el centro nacional de consultoría sobre elecciones para presidente en Colombia.


Posted by Gustavo Andrés Angulo | Permanent Link | Categories: Otros |

vie, 2010-01-22 09:54:58 -0500

Mapserver + Mapscript + web.py

Recientemente he utilizado mapscript con web.py para generar mapas que sean generados en tiempo de ejecución, esta porción de código permite leer archivos .map y luego se renderizan con las opciones habituales de mapserver para WMS, el método POST adiciona algunas lines para permitir el uso de un servicio WFS dentro de mapserver.

Se puede utilizar jinja2 o algún otro manejador de templates para cambiar el .map en tiempo de ejecución y de esta forma poder enviar algún parámetro adicional para realizar cambios en el servicio WMS o WFS.

import web
import mapscript


# URLS
urls = (
    '/','Basic',
)

def info_layer(cls):
    aux=''
    pathUrl=str(web.ctx.realhome+web.ctx.path)
    web.header("Content-Type","text/html; charset=utf-8")
    aux+='<b>Description: </b>%s<br>' % (str(cls.__doc__))
    aux+='<b>Capabilities WMS: </b><a href="%s?SERVICE=wms&REQUEST=GetCapabilities&VERSION=1.1.1&REQUEST=GetCapabilities">%s</a><br>'%(pathUrl,pathUrl)
    aux+='<b>Checker WMS FGDC: </b><a href="http://registry.fgdc.gov/statuschecker/services/rest/index.php?url=%s?SERVICE=wms&REQUEST=GetCapabilities&VERSION=1.1.1&type=wms&formattype=html">%s</a><br>'%(str(web.ctx.realhome+web.ctx.path),str(web.ctx.path))

    return aux

class Basic:
    """Layers Basics
    """
    def GET(self):

        vars = web.input()
        if len(vars)==0:
            return info_layer(Basic)
        req = mapscript.OWSRequest()
        for i in vars.keys():
            req.setParameter( i, vars[i])


        map = mapscript.mapObj('basic.map')

        mapscript.msIO_installStdoutToBuffer()
        map.OWSDispatch( req )

        content_type = mapscript.msIO_stripStdoutBufferContentType()
        content = mapscript.msIO_getStdoutBufferBytes()
        web.header("Content-Type","%s; charset=utf-8"%(content_type))
        return content


    def POST(self):

        vars = web.input()
        req = mapscript.OWSRequest()
        for i in vars.keys():
            req.setParameter( i, vars[i])

        req.postrequest=web.data()
        req.type=mapscript.MS_POST_REQUEST
        map = mapscript.mapObj('basic.map')

        mapscript.msIO_installStdoutToBuffer()
        map.OWSDispatch( req )

        content_type = mapscript.msIO_stripStdoutBufferContentType()
        content = mapscript.msIO_getStdoutBufferBytes()
        web.header("Content-Type","%s; charset=utf-8"%(content_type))
        return content

app = web.application(urls, globals())

#web.internalerror = web.debugerror 


if __name__ == "__main__":
    app.run()

vie, 2009-10-02 10:58:31 -0500

Módulo para tryton de colores

He liberado un pequeño módulo para el manejo de colores en trython esto permitirá el manejo de colores y la visualización RGB en la vista de tabla (tree view). Los colores fueron tomados de Wikipedia y si se desea el módulo se encuentra en Intuxication

Módulo Tryton Colors

vie, 2009-09-18 09:23:59 -0500

Este es un claro ejemplo para que nosotros como seres humanos reflexionemos y no dejemos que los medios de comunicación nos impidan hacer nuestros propios análisis sobre situaciones que nos rodean día tras día.

Según el video la fuente es de Associated Press, esta fuente es sin confirmar

vie, 2009-07-24 08:50:21 -0500

Colores en la Terminal

Para determinar los colores de uso en la terminar muchas veces puede ser una tarea tediosa y complicada y en ocaciones no se sabe como se verá los colores realmente, este script permite visualizar los colores configurados para una terminal.

testtty.sh

testtty.sh

mar, 2009-07-21 10:32:06 -0500

Test de Velocidad a la terminal

Luego de probar varios emuladores de terminal he escogido urxvt debido a su rapidez y su soporte para Unicode. Realice la siguiente prueba para comprobar la velocidad del scrolling de algunos de l os emuladores de terminal mas conocidos, aquí estan los resultados:

En todos los emuladores se coloco la siguiente instrucción:

time seq -f 'teeeeeeeeeeeeeeeeeeeeeeeeeeeeeest %g' 1000000

Y los resultados son los siguientes:

gnome-terminal

real     1m30.059s
user     0m0.664s
sys      0m0.660s

urxvt

real     0m3.886s
user     0m1.132s
sys      0m1.784s

urxt + screen

real    0m13.204s
user    0m1.172s
sys     0m1.096s

xterm

real    0m40.119s
user    0m1.172s
sys     0m1.032s

konsole

real    0m5.947s
user    0m1.144s
sys     0m1.064s

como se ve el más rápido de todos es urxvt seguido de konsole.

jue, 2009-07-16 13:25:50 -0500

Modificación a Markdown

Debido a que estoy pensando en migrar de nanoblogger a ikiwiki tuve la necesidad de tener todas mis entradas a [markdown] (http://daringfireball.net/projects/markdown/) para ello en utilizar la información de este blog seguir los pasos y listo.

Esta es una prueba con markdown * Candy. * Gum. * Booze.

  • Candy.
  • Gum.
  • Booze.

example link.

mar, 2008-08-05 11:49:54 -0500

Modificacion de rxvt-unicode con tabs

rxvt-unicode es un emulador de terminal muy bonito, lo que le hacía falta era que pudiera tener tabs, buscando un poco en google se encuentra que colocando urxvt -pe tabbed se puede tener tabs los shorcuts son con Shift y las flechas:

Nuevo Tab                               Shift + Flecha Abajo
Mover a la tab del lado derecho         Shift + Flecha Derecha
Mover a la tab del lado izquierdo       Shift + Flecha Izquierda

al probarlo se tiene problemas con las tildes y las ñ este problema se soluciona cambiando el archivo /usr/lib/urxvt/perl/tabbed en la función tab_key_press, cambiaremos los shortcuts parecidos a los de firefox o a los de gnome terminal.

Se cambia:
urxvt::ShiftMask   >   urxvt::ControlMask
0xff51             >   0xff55
0xff53             >   0xff56
0xff54             >   0x74

Con estola función queda de la siguiente manera

sub tab_key_press {
   my ($self, $tab, $event, $keysym, $str) = @_;

   if ($event->{state} & urxvt::ControlMask) {
      if ($keysym == 0xff55 || $keysym == 0xff56) {
         my ($idx) = grep $self->{tabs}[$_] == $tab, 0 .. $#{ $self->{tabs} };

         --$idx if $keysym == 0xff55;
         ++$idx if $keysym == 0xff56;

         $self->make_current ($self->{tabs}[$idx % @{ $self->{tabs}}]);

         return 1;
      } elsif ($keysym == 0x74) {
         $self->new_tab;

         return 1;
      }
   }
   elsif ($event->{state} & urxvt::ControlMask) {
      if ($keysym == 0xff55 || $keysym == 0xff56) {
         my ($idx1) = grep $self->{tabs}[$_] == $tab, 0 .. $#{ $self->{tabs} };
         my  $idx2  = ($idx1 + ($keysym == 0xff55 ? -1 : +1)) % @{ $self->{tabs} };

         ($self->{tabs}[$idx1], $self->{tabs}[$idx2]) =
            ($self->{tabs}[$idx2], $self->{tabs}[$idx1]);

         $self->make_current ($self->{tabs}[$idx2]);

         return 1;
      }
   }

   ()
}