Octubre-4-2007
Filed Under (General) by Pedro Guridi


Free Burma!

[?]
Share This


Septiembre-5-2007
Filed Under (General) by Pedro Guridi

Porqué OOXML no debe ser aceptado como estándar?:

OpenXML no es abierto.

Para que un formato pueda ser considerado abierto, ha de estar libre de regalía o condición alguna por patentes, y no puede ser controlado por una única empresa (…que además en este caso cuenta con un amplio historial de amenazas a sus competidores mediante patentes de software). Por otro lado, el formato en cuestión debe ser multiplataforma por naturaleza. Office OpenXML no cumple ninguna de esas condiciones.

OpenXML no es estándar.

Un estándar debe estar totalmente documentado públicamente. Además, su proceso de estandarización (ECMA) debería haber garantizado que todas las patentes de los proponentes del mismo fueran desveladas y licenciadas como mínimo en términos RAND. Finalmente, es necesario que una propuesta de estándar ISO cumpla y no contradiga los estándares ISO ya preexistentes para no obligar a “reinventar la rueda”.
OpenXML no cumple ninguna de esas condiciones.

OpenXML no es XML.

Para que un formato de representación de información pueda ser considerado XML, éste debe plasmar íntegramente dicha información en estructuras XML. Para que algo se denomine XML no basta con que que simplemente utilice etiquetas XML cuando en ellas guarda información en formatos binarios, con códigos de control e incluso dependiente de plataformas concretas. En resumen, debe validar el estándar XML.

Office OpenXML no cumple estas condiciones.

Los resultados oficiales muestran que OOXML ha sido derrotado en la fase DIS 29500 del proceso de aprobación en ISO. Un total de 15 países miembros Participantes de ISO han votado en contra de la especificación, mientras que 17 lo han hecho a favor (la mayoría nuevas incorporaciones como participantes) y cerca de una decena se han abstenido. En total la propuesta de Microsoft ha conseguido un 53% de los votos cuando necesitaba más de un 66% para obtener así el consenso requerido por ISO. En el recuento de miembros Observadores más Participantes, Microsoft tampoco ha reunido el consenso necesario que estaba establecido en un 75% de los votos eliminando las abstenciones”.

Dile NO al formato de Microsoft Office como estándar ISO!

Especificacion de OOXML impresa

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Especificacion de OOXML impresa

Via: openxml.info

[?]
Share This


Septiembre-3-2007
Filed Under (General) by Pedro Guridi

La matriculación obligatoria para los profesionales informáticos de la provincia de Santa Fe es solo uno de los movimientos que se están viendo en varias partes del país.Ya hay antecedentes sobre lo innecesario y perjudicial de una ley de matriculación restrictiva.

En provincias como en Córdoba, donde la ley tiene 20 años, solo se usa de manera arbitraría al momento de querer llegar a una licitación.

Es necesario que este tipo de medidas restrictivas no vean la luz dado que generarían un perjuicio para la sociedad.

En la provincia de Santa Fe la ley tiene media sanción de Senadores y ahora está en la cámara de diputados. Estamos tratando de ser escuchados para que no cometa un grave error para la provincia. La matriculación obligatoria no sólo no ofrece ninguna solución al problema de mejorar la calidad de los servicios informáticos, sino que además conspira contra este mismo objetivo, contra el desarrollo de la tecnología informática en los lugares en los que se la exige, y contra la libertad de los ciudadanos.

No a la matricula!

 

 

 

Via: http://noalamatricula.wordpress.com/about/

[?]
Share This


Agosto-13-2007
Filed Under (General) by Pedro Guridi

No han habido posts durante casi 1 mes, debido a que me tome mis vacaciones (olvide postear eso antes..), y estuve 20 dias paseando por Brasil. Ahora ya de vuelta al trabajo, volvere a retomar la actividad del Blog ;). Aqui pueden ver algunas fotos: http://picasaweb.google.es/pipiten/Brasil .

[?]
Share This


Julio-11-2007
Filed Under (Python) by Pedro Guridi

¿Como tomar un screenshot de toda la pantalla?

Usando la API GDK Pixbuf. La salida puede ser en PNG o JPEG, en el caso del ultimo es posible elegir la calidad pasando como parámetro al metodo gdk.Pixbub save() un valor entre 0 y 100.

# Entre "png" o "jpeg"
 formato = "jpeg"
 ancho = gtk.gdk.screen_width()
 alto = gtk.gdk.screen_height()
 screenshot = gtk.gdk.Pixbuf.get_from_drawable(
              gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, ancho, alto),
              gtk.gdk.get_default_root_window(),
              gtk.gdk.colormap_get_system(),
              0, 0, 0, 0, ancho, alto)
# Pixbuf tiene un método save
# Nota: el formato png no soporta el argumento "quality"
 screenshot.save("screenshot." + formato, formato,  {"quality": "20"})

Advertencia: Si planea utilizar este codigo en un bucle, o muchas veces dentro del programa, sería mejor agregar el siguiente código para evitar un desborde de memoria (considerando el tamaño del bitmap de esas proporciones), según un bug detallado aquí: [www.async.com.br].

del screenshot
gc.collect()

Traducción al español de: faq.pygtk.org

[?]
Share This


Julio-10-2007
Filed Under (Dell, Ubuntu) by Pedro Guridi

Quienes posean una laptop Dell 9400 con Ubuntu (probablemente funcione en otros modelos también), habrán notado que por defecto solo funcionan los parlantes frontales. Para activar los “subwoofers” abre el archivo /etc/modprobe.d/alsa-base como root:

gksudo gedit /etc/modprobe.d/alsa-base

Y agrega al final:

options snd-hda-intel model=ref

Luego reiniciar, y ya deberían disfrutar a pleno del sonido ;).

(Asegurarse de que en el control de volúmen, el canal “LFE” está activado.)

[?]
Share This


Julio-10-2007
Filed Under (Python) by Pedro Guridi

Si tienes programas realizados en Python/Glade, puede ser útil internacionalizarlos, el texto de los menús/mensajes/botones, etc, se mostrará en el idioma definido en el sistema.

Herramientas utilizadas:

  • PyGtk
  • Glade
  • Python 2.3
  • GNU gettext
  • Gtk+ 2.4.1
  • Libglade 2.4.0

Extrayendo los mensajes de Glade:

Necesitarás de intltool, una utilidad para internacionalizar documentos en XML. Si usas Debian alcanza con teclear:

apt-get install intltool

El programa intltool-extract extrae las cadenas de texto de un archivo glade (en el ejemplo “miprograma.glade”) y genera un archivo .h (en el ejemplo “miprograma.h”):

intltool-extract --type="gettext/glade" miprograma.glade

 

No se necesita editar el archivo .h, será leido por xgettext.

Generando archivo de traducción:

xgettext -k_ -kN_ -o mensajes.pot *.py *.h

Creará un archivo de traducción “mensajes.pot” a partir de los codigos fuente python y de los archivos .h generados por intltool-extract

Creando archivos de traducción:

Para que sea posible crear traducciones para diferentes idiomas es necesario crear un archivo para cada una. Para esto se utiliza msginit.

En este ejemplo msginit crea el archivo es_ES.po adecuado para la traduccion al español:

msginit -i mensajes.pot -l es_ES

Una vez traducido el archivo es_ES.po es necesario generar el archivo que será utilizado por el programa:

msgfmt es_ES.po -o po/pt/LC_MESSAGES/miprograma.mo


No importa el nombre del directorio donde se coloque el archivo *.mo, pero la estructura del directorio tiene que ser <directorio>/<locale>/LC_MESSAGES/<nombre-de-programa>.mo. Donde <locale> es algo como es o es_ES.

Hacer que el programa reconozca las traducciones :

Tipicamente un programa de python usando libglade tendrá strings para ser traducidas tanto en el programa python como en el arquivo glade. Para lidiar con los strings en las fuentes python se puede usar el módulo gettext. Todos los strings a ser traducidas deven usar el método gettext de ese módulo:

 print gettext.gettext("Texto a ser traducido")

Es mucho mas práctico usar el formato _(<string>), pero para eso se debe definir _ como gettext.gettext:

 _ = gettext.gettextprint _("Texto a ser traducido")

Normalmente los archivos con mensajes de traducción van en “/usr/share/locale”, pero mientras tanto este desarrollando su programa es bastante útil tenerlos en un directorio local, algo como “i18n” o “po”:

APP=‘miprograma’

DIR=‘po’

Un ejemplo mas completo sería:

import gettext
 
APP='miprograma'
DIR='po'
 
gettext.bindtextdomain(APP, DIR)
gettext.textdomain(APP)
 
_ = gettext.gettext
 
gtk.glade.bindtextdomain(APP, DIR)
gtk.glade.textdomain(APP)
 
gui = gtk.glade.XML("miprograma.glade")
.....

Del original en portugues

[?]
Share This


Julio-10-2007
Filed Under (Python) by Pedro Guridi

Para llamar a un programa escrito en python, desde un programa en C, necesitas instalar el paquete python-devel en Linux.

Ejemplo codigo C, lanzando “miprograma.py”:

#include <stdio.h>
#include <python2.5>
int main(int argc, char *argv[])
{
  Py_Initialize();
  FILE * f;
  f = fopen("miprograma.py", "r");
  PyRun_SimpleFile(f, "miprograma.py");
  Py_Finalize();
  return 0;
}

Para compilar usar:

$ gcc -Wall -O2 -I/usr/include/python2.5/ -c programa.c -o programa.o
$ gcc -Xlinker -lpython2.5 programa.o -lm -L/usr/lib/python2.5/config/libpython2.5.a -o programa

[?]
Share This


Julio-10-2007
Filed Under (Python) by Pedro Guridi

Un programa en python para contar las vocales y consonantes en un texto.

# -*- coding: cp1252 -*-
# Cuenta las letras, vocales y consonantes de un texto
# 03/2007 - Marco André - marco@sociesc.org.br
# 07/2007 - Pedro Guridi - pipiten@gmail.com
texto = """Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod
tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minimveniam,
quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea
commodi consequat."""
print "Contar Letras - Vocales y Consonantes"
texto = texto.lower() #convierte a minúsculas
 
#remover espacios, lineas y símbolos de puntuacion
texto = texto.replace(" ","")
texto = texto.replace("n","")
texto = texto.replace(".","")
texto = texto.replace("!","")
texto = texto.replace("?","")
texto = texto.replace(",","")
texto = texto.replace(";","")
 
#remover acentos
texto = texto.replace("á","a")
texto = texto.replace("à","a")
texto = texto.replace("ã","a")
texto = texto.replace("é","e")
texto = texto.replace("ê","e")
texto = texto.replace("í","i")
texto = texto.replace("ó","o")
texto = texto.replace("ô","o")
texto = texto.replace("ú","u")
vocales = 0
consonates = 0
for caracter in texto:
    if caracter in 'aeiou':
       vocales = vocales + 1
    else:
       consonantes = consonantes + 1
 
print "Vocales: %d" %vocales
print "Consonantes: %d" %consonantes
print "Total de letras: %d - %d" %(len(texto), (vocales+consonantes))

Original en portugues

[?]
Share This


Julio-8-2007
Filed Under (General) by Pedro Guridi

Traduccion al español del portugués:

Un vendedor,

Escuchó decir que Brasil sufría de una grave falta de palabras. En un programa de TV, vio una escritora lamentando que no se leían libros en esa tierra, por eso las palabras estaban en falta. El mal tenía hasta nombre de bautismo, como cualquier dolencia grande, “indigencia lexical”. El comerciante no perdió tiempo en tener una idea fantástica. Tomó el diccionario, mesa y cartulina y salió al mercado a buscar espacio entre los vendedores ambulantes. Entre una banca de relojes y otra de lencería instaló la suya: una mesa, el diccionario y una cartulina en la cual se leía:

 

“Histriónico - apenas R$ 0,50!”

 

Pasaron casi 4 horas hasta que el primero de mas de 50 curiosos parase y preguntase.

 

- ¿Que es lo que está vendiendo?

 

- Palabras, mi señor. La promoción del día es histriónico a 50 centavos como dice la placa.

 

- Usted no puede vender palabras. Ellas no son suyas. Las palabras son de todos.

Read the rest of this entry »

[?]
Share This