Andrés Gattinoni: FLISOL 2011

   Publicado:

Este sábado 9 de abril es el Festival Latinoamericano de Instalación de Software Libre (FLISoL), el evento de difusión de Software Libre más grande de Latinoamérica.

FLiSoL - Festival Latinoamericano de Software Libre

Festival Latinoamericano de Software Libre

Como indica su sitio web, su principal objetivo es promover el uso del software libre, dando a conocer al público en general su filosofía, alcances, avances y desarrollo. A tal fin, las diversas comunidades locales de software libre (en cada país/ciudad/localidad), organizan simultáneamente eventos en los que se instala, de manera gratuita y totalmente legal, software libre en las computadoras que llevan los asistentes. Además, en forma paralela, se ofrecen charlas, ponencias y talleres, sobre temáticas locales, nacionales y latinoamericanas en torno al Software Libre, en toda su gama de expresiones: artística, académica, empresarial y social.

Particularmente, nuestro amigo Exos estará participando en el evento a realizarse en Lanús, organizado por LANUX (Grupo de Usuarios de Linux de Lanús). Allí el evento será este sábado 9 de abril de 2011 de 10 a 16:30 horas en la Universidad Argentina “John. F. Kennedy” Av. Hipólito Yrigoyen 4651 -Partido de Lanús.

Este tipo de encuentros son una excelente oportunidad tanto para usuarios avanzados de Linux que quieran encontrarse con otros entusiastas, como para usuarios básicos de computadoras que no conozcan nada sobre Software Libre y quieran conocer de qué se trata de la mano de usuarios experimentados, con buena onda y dispuestos a ayudar.

Mapa, registración y más información en el sitio de FLiSoL en LANUX.

Links

Patricio Molina: Charla sobre Wikipedia en FLISoL 2011

   Publicado:

El próximo sábado 9 de abril a las 14:00 voy a estar con Nico en el FLISoL 2011 Buenos Aires (Facultad de Ciencias Económicas, Av. Córdoba 2122) dando la charla «Wikipedia: qué, quién, cómo» en el auditorio del primer piso.

¡Nos vemos allá!

Matías E. Gieco: Qué necesito dulce Pierina?

   Publicado:

Hoy no arranqué la semana con todas las pilas. Con fiaca, aburrido, espero que no pinte tan monótona esta semana :(

Escuchando algo de música para ensimismarme, pasó ésta que, cambiando el Daniela por Pierina, sería casi casi lo que mi chiquita suele hacer, dibujar mucho, pintar mucho y pedir que le dibujemos cosas.

Aunque ella no pinta las paredes, bue... cada tanto encontramos alguna que otra obra de arte en alguna de las paredes de su pieza, su pasión por la pintura es algo que nos gusta disfrutar.

Y si, ella es la que decide a que hora nos despertamos, a que hora nos dormimos y a que hora jugamos. Una de sus costumbres actuales es despertarnos dándonos besos en las mejillas. Creo que no hay forma, por mas resaca, mala noche y/o lo que fuera, de despertarte sin una sonrisa y dándole besos, besos y más besos.
Y al acostarnos a dormir, es darnos un beso de 'buenas noches' y un abrazo 'de oso'. Y si está fiacosa, pedirme que le de la mano mientras se duerme.

Dulce Daniela (Víctor Heredia):

Ella decide cuando es de día,
ella maneja el sol
anda pintando toda la casa
con trozos de crayon.
Rojo a los muros, verde al oscuro
sillón del comedor,
y un póquitito de azul celeste
aquí en mi corazón.
El amarillo tiñe los vidrios
y ella no entiende bien
como es que pierde sus hojas verdes
el paraíso aquel..
Píntame un árbol que no envejezca,
pinta en mi habitación,
un árbol verde con hojas frescas
pinta con tu crayon;
que necesito, dulce Daniela,
alguien que pinte aquí,
un muro nuevo, píntalo nena,
pinta dentro de mí.
Que necesito dulce Daniela,
alguien que pinte aquí,
un mundo nuevo, píntalo nena,
pinta dentro de mí.


Algo que necesitaba era "Alguien que pinte aquí", y el viernes pasado estuvo conmigo en la oficina e hizo un hermoso dibujo de 'Mamá y Pierina' que son mi mundo, es lo que necesito dentro de mi. Y que va a quedar en mi escritorio.

Pierina tiene casi casi 3 años, este 15 los cumple.

Esteban Ordano: Utopías y el Futuro Próximo

   Publicado:

Ando leyendo libros y websites y viendo videos; todos muy buenos, debo andar en una muy buena racha. Están llenos de ideas, ideas de esas que te sacan de el día a día y te ponen a pensar en qué está pasando en "the bigger picture", y que me recuerdan que vivimos en los tiempos [...]

Matías E. Gieco: La gravedad en el mundo de Firefox :P

   Publicado:

En una nota que dice "Satélite crea un mapa de la gravedad de la Tierra con una precisión sin precedentes

Un satélite europeo recopiló datos para crear un mapa de la gravedad de la Tierra con una precisión sin precedentes. Es una referencia fundamental para medir la circulación de océanos, el cambio del nivel del mar y la dinámica del hielo. "

Salió está foto:

Con esa imagen, es facilmente reconocible:


O sea que la "Recreación de la Tierra según la fuerza de la gravedad" es influenciada directamente por Firefox.

Cuac cuac cuac :up:

Martín Cerdeira: Intención del código (o, me descargo un poco)

   Publicado:

Este post, probablemente, parezca una pelotudez. Probablemente alguien diga "esto es obvio"o "no me digas", pero, es que lo he visto tantas veces, me he topado con esto tanto, que empiezo a creer que no es tan obvio.


Me ha tocado leer/mantener código que no fue escrito por mi. Es decir, meterme a tocar, mejorar, fixear, código ajeno en vez de escribirlo desde cero. En esos casos, me he topado con cosas como esta (*):

Function Foobar(n){
    n = n * 3
    return n
}


El tema es el siguiente, dada una función escrita en algún lenguaje de programación, puedo saber si está bien?

Esa función, es correcta o no es correcta?? Digamos, desde el punto de vista de la sintaxis (suponiendo que eso es la sintaxis de algún lenguaje) puede no fallar. Pero, está bien? Cómo se que intención tenía? Qué se supone que hace? O que esperar? Por qué nos cuesta tanto documentar eso en comentarios?

En casos peores, he visto cosas como:

Function Foobar(n){ //Devuelve n multiplicado por 3
    n = n * 3
    return n
}


Donde, no solo sigo teniendo el problema de no saber si está bien o no, sino que, además, me dice algo que es obvio.

Entonces, queridos amigos programadores, cuando comentemos procuremos poner la intención de ese cacho de código. NO quiero que me digan lo que puedo ver leyendo el código, sino, justamente, lo que se les pasó por la cabecita cuando lo escribieron. Por qué? Porque es mucho más sencillo arreglarla (si fuera necesario) sabiendo que se supone que hace, que tener que deducirlo teniendo en cuenta quien la llama, por ejemplo. Además, si la función estuviera mal, es más complejo deducir que en realidad, quisieron poner, no se, n = n + 3, por decir algo, aumentando mis posibilidades de romper algo que estaba bien, pero que parecía mal.

Gracias

(*) Aclaración para los despistados, esa función es solo ilustrativa, no es un caso real =)

Patricio Molina: Eight queens puzzle en GitHub

   Publicado:

Subí el código del eight queens puzzle, posteado hace un par de meses en este blog, a GitHub.

El repo es https://github.com/pmolina/eqp.

Carlos Joel Delgado Pizarro: Python Everywhere

   Publicado:

Python Everywhere


Maximiliano Robaina: django y base de datos heredadas

   Publicado:

En un proyecto en el que estamos trabajando, el cual básicamente consiste en migrar una aplicación de escritorio a un entorno web, decidimos mantener la herramienta que venimos usando justamente para todo lo que sea desarrollo web, es decir, django.

Ahora, el tema con django es simple cuando se empieza un proyecto desde cero, pero en este caso, ya heredamos la base de datos con la que debemos trabajar y por lo tanto tenemos que atarnos a esto. Además, la base de datos que debemos utilizar es Firebird SQL ( si, firebird :) ), y django no dispone de soporte “out the box” para este motor de base de datos, pero por suerte hay un grupito de gente (autobombo)[1]  que se interesa por dar este soporte ;) y por lo tanto tenemos un módulo que nos permite trabajar con django y firebird.

Uno de los primeros temas que se nos planteó al tener que usar una base de datos legacy, es con el tipo de datos Boolean.
Firebird, al igual que otros motores de base de datos SQL, no tiene un tipo de datos nativo que represente un Boolean, es decir, que permita trabajar con valores True o False.
Si bien esto no es un inconveniente ya que en estos caso se reemplaza por un tipo de datos que permite almacenar, por ejemplo, un valor entero (1 = True, 0 = False) o un valor de tipo caracter, que era nuestro caso el cual utiliza el valor “S” para verdadero (true) y “N” para falso (false).

Django dispone de un tipo de datos para soporte de Booleans y como no todos los motores de base de datos soportan True y False (por ej, MySQL para el cual django tiene soporte “de fabrica”, tampoco tiene un dato nativo boolean y por lo tanto se implementa generalmente como un Smallint con los valores 1 y 0 para True / False respectivamente), pero por defecto trabaja con valores 1 y 0.

¿Cómo hacemos entonces para usar los valores S y N heredados como si fuesen booleans nativos?

Herencia al rescate.!

No me voy a poner a explicar como se hace en django para escribir tipos de campos personalizados. La documentación de django es muy completa y explica todo al respecto.

http://docs.djangoproject.com/en/1.2/howto/custom-model-fields/

Pero si quería exponer como quedó nuestra implementación de BooleanField, al cual llamamos en un arranque furioso de creatividad, BoolField.

class BoolField(models.BooleanField):
    __metaclass__ = models.SubfieldBase

    def db_type(self, connection):
        return “CHAR(1) NOT NULL CHECK (%s IN (’S’,’N’))”
   
    def get_prep_value(self, value):
        if value:
            return u’S’
        return u’N’
   
    def to_python(self, value):
        if isinstance(value, basestring):
            if value.strip() == ‘S’:
                return True
            return False
        return value


Y con esto, ya tenemos nuestro BooleanField ala Firebird.


[1] http://code.google.com/p/django-firebird/

Marcelo Fernández: Cursos Asterisk 2011

   Publicado:

Hola, paso a dejar un lindo chivo aviso sobre cursos de Asterisk que están armando un grupo de gente conocida y amiga, en su versión 2011:

Bitsense, empresa dedicada a la implementación de soluciones telefónicas, dará comienzo a su curso de capacitación de Telefonía IP denominado BiaC (Bitsense Initial Asterisk Course) edición 2011, 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. Este curso está orientado a brindarle las herramientas y conocimientos necesarios para implementar una infreastructura de Telefonía IP basado en Asterisk desde su inicio.

Para solicitar mas informacion envienos un mail a capacitacion@bitsense.com.ar y un representante se comunicará con usted o llamenos al telefono 5353.9858 (opción 2).

Le informamos también que referenciando esta publicación (si, ¡este blog!) usted accederá a un descuento especial.

http://www.bitsense.com.ar/cursos/biac/

Saludos

Share