Renderizando PDFs en Python con Poppler II

Hace unos días me llegó un mail de alguien preguntándome cómo, a partir de la parte I de este artículo, hacer un sencillo visor de PDFs con wxPython. Me encontré con algunas dificultades, principalmente que el ScrolledWindow de wxPython no permite actualizarse dinámicamente, o automáticamente según el contenido (esto sí es bastante sencillo en GTK); con lo cual se complicaba hacer zoom, modificar el tamaño de la ventana y adaptar los scrollbars, etc. Sin embargo, con alguna vuelta de más pude armar un ejemplo, que paso a dejar acá: ...

April 15, 2010 · 3 min · Marcelo

Curso de Asterisk

Este es un quick-post como favor a un amigazo que participa de un emprendimiento involucrado en estos cursos de Asterisk… Bitsense empresa dedicada a la implementación de soluciones telefónicas, dará comienzo a su 3er curso de capacitación de Telefonía IP denominado Biac (Bitsense Initial Asterisk Course), el mismo es el primer curso en la Argentina dictado por dos instructores certificados dCAP (Digium-certified Asterisk Professional) junto con el apoyo de certificados Cisco y Juniper. ...

March 30, 2010 · 1 min · Marcelo

Cómo remover el módulo USB 2.0 en Ubuntu 9.10+

Este post va a intentar ser breve y me parece que es bastante técnico, pero puede serle útil a más de uno. Resulta que yo tengo una Impresora Multifunción Samsung SCX-4200, que tiene unos drivers (cerrados) para Linux [1]. Estos drivers sirven para imprimir y escanear, y si bien hoy en día Ubuntu se las arregla bárbaro para imprimir con los drivers libres de SpliX (¡instalación y configuración automágica!), queda pendiente aún el tema del escaneo. ...

March 19, 2010 · 5 min · Marcelo

Virtio - Paravirtualización de I/O

Hace un rato que estoy leyendo sobre virtualización, pero no de CPU, sino de I/O (otro más acá)… muy interesante, me aclaró algunas dudas que tenía, dado que últimamente al configurar este tipo de software se me confundían las cosas :-) Resulta que a nivel de I/O tenemos algo parecido a la virtualización al nivel de CPU: emulación, paravirtualización y ejecución “directa”, por llamarlo de alguna manera. Sugiero leer el artículo para más detalles, pero sólo quiero agregar que recién estamos en la etapa de paravirtualización, y que (en buena hora) Intel y AMD agregaron unidades IOMMU en sus últimos diseños para poder asignar dispositivos directamente a una (o más, según el caso) VM, evitando el Hypervisor y ahorrando ciclos de CPU. Pero esto parece estar verde aún. ...

February 27, 2010 · 2 min · Marcelo

PostgreSQL <strike>8.5</strike> 9.0 - Replicación mejorada

Para los que no están enterados, Streaming Replication es la nueva gran característica de PostgreSQL 9.0 (ex-8.5), todavía en desarrollo. Estoy muy contento por la noticia, realmente era algo pendiente ver integrado algo de esto en PostgreSQL mismo (ya que hay productos y/o versiones modificadas para hacer esto, pero no es lo mismo que “el original”, claro está :-) ) y lo hace cada vez más adecuado para evitar (o al menos dejar a uno la opción de) utilizar motores de bases de datos muy buenas pero caras y propietarias (Oracle) o lamentablemente en problemas políticos/de gestión (MySQL). ...

February 6, 2010 · 2 min · Marcelo

Ubuntu 9.10 - Alpha 3

Anoche estuve probando cerca de una hora el Alpha 3 de lo que va a ser Ubuntu 9.10. No suelo testear las alphas de Ubuntu en etapas tan tempranas del desarrollo (generalmente porque hay pocas cosas novedosas salvo actualizaciones de infraestructura como el kernel, gcc y X.org), pero en esta oportunidad sabía qué iba a buscar :-) Si bien hay pocos cambios visuales (a lo que dice este artículo le agregaría que la configuración del audio ahora sí va a estar un poco más integrada con PulseAudio), quería comentar que incorpora los últimos y nuevos drivers de Intel 2.8, publicados como estables esta última semana, que al fin elimina completamente el soporte a DRI1/ EXA, y pone a DRI2/ UXA como nuevo esquema de drivers (más, acá). ...

July 27, 2009 · 2 min · Marcelo

Las cosas bien claras...

Leyendo un post sobre Windows 7 (no quiero opinar al respecto, sólo me voy a limitar a decir que no me gustó el post), quisiera rescatar este comentario de Mauro Verón: A veces lo que jode del sistema operativo es que no nos gusta el “modelo” o la forma de hacer algo y está bien. Yo no lo veo a mi viejo en linux, porque esta acostumbrado a levantar el telefono y pedir comida por delivery, limitandose al menu del mismo. A mi me gusta Linux porque es como tener un chef al lado que te pregunta “que quiere comer señor?” y hace exactamente lo que le digo, cuando le digo, como le digo y rápido. Puede que necesite dare instrucciones complejas y especificas al chef si quiero algo muy extravagante pero, hey!, tengo un chef y puedo comer lo que yo quiera ! Para no dejar de lado al querido OSX este vendría a ser como un finísimo restaurante, con la mejor comida, el mejor vino, las mozas mas lindas, el servicio más rápido pero solo vende carne (haciendo referencia a lo “cerrado” que es apple en su hard/soft). ...

July 21, 2009 · 2 min · Marcelo

Applets Java en Ubuntu de 64 bits recargados

Ayer actualicé mi Ubuntu 9.04 (64 bits) y vi que había una actualización de los paquetes " sun-java6", que corresponden a la Máquina Virtual Java. Para mi sorpresa, se trata de una actualización bastante importante de todos los paquetes de la implementación distribuida por Sun de Java (que aún no es lo mismo que el proyecto OpenJDK), y que incluye (después de ¡6 años de espera!) una implementación del Java Plugin de Sun para 64 bits. ...

July 18, 2009 · 1 min · Marcelo

PostgreSQL 8.5

No, no me equivoqué de número de versión. :-) Si bien PostgreSQL 8.4 ya salió y tiene unas cuantas novedades, quisiera hacerme eco de lo que está en la cola de parches a aprobar para integrar la nueva rama de desarrollo de PostgreSQL 8.5. Esta lista está compuesta por cosas como: GRANT ON ALL IN schema: Una manera de otorgar permisos a todos los objetos de un esquema. Machine-readable explain output v2: Salidas del comando EXPLAIN fácilemente legibles por otro software, es decir, fácilmente parseables para su procesamiento. El comando explain aceptaría como segundo parámetro el formato (además de los actuales) la keyword FORMAT, quedando así: EXPLAIN FORMAT [TEXT | JSON | XML]. Está bueno porque abre la puerta del desarrollo de herramientas de auto-tunning, basado en reglas estilo Sistema Experto. SE-PostgreSQL: Security-Enhanced PostgreSQL, una mejora sustancial en la seguridad del SGBD y en el nivel de detalles del sistema de privilegios. Replicación Sincrónica: Si algo le faltaba a PostgreSQL es una manera de replicación sincrónica integrada en el gestor. Esperemos que esto sí entre, aunque está bastante discutido el asunto porque es un cambio relativamente “gordo” en los internals del código, pero por lo que leí de estas discusiones parece haber consenso en llevarlo adelante e implementarlo. Por mi parte… ¡lo necesito ya! :-) \dL para listas los lenguajes utilizados en psql: Es una nueva característica en psql, la de poder listar los lenguajes instalados en la base de datos (plpythonu, plpgsql, etc.). Estadísticas de esperas por bloqueos: La idea es poder tener un historial de los bloqueos sufridos por los clientes en la BD, para poder detectar problemas y saber bien qué pasa en todo momento. Bueno, de más está decir que no hay ninguna garantía de que todo esto sea finalmente integrado en 8.5, sino que se está evaluando al mejor estilo Software Libre ™: peer-review, discusión de estrategias del proyecto, consenso en la comunidad de desarrolladores y posterior aceptación/pedido de mejoras/rechazo. Así que veremos cómo sigue. ...

July 4, 2009 · 2 min · Marcelo

Dos herramientas para Sysadmins: Ninja y KSplice

Navegando por ahí, me acabo de encontrar con dos herramientas interesantes, que me interesa compartir… Ninja La primera llamada Ninja, que viene a ser algo así (traducido de su página web): Ninja es un sistema de detección y prevención de escaladas de privilegios para GNU/Linux. Mientras está corriendo, monitorea las actividades de los procesos locales por un lado, y de los procesos corriendo como root por el otro. Si un proceso lanza a otro nuevo con UID o GID cero (root), Ninja va a loguear la información necesaria acerca del mismo, y opcionalmente lo puede finalizar si fue creado por un usuario (es decir, un proceso de un usuario) sin autorización. ...

June 6, 2009 · 3 min · Marcelo