reconocer texto presente en imágenes. Emplea por tanto la prueba desafío-respuesta utilizada en computación para determinar cuándo el usuario es o no humano para, a su vez, mejorar la digitalización de textos. image:

reCAPTCHA se basa en el hecho de que para un ser humano puede ser simple determinar el texto presente en una imagen cuando para una máquina esta tarea resulta en ocasiones demasiado compleja.[1]

Se llama spam, correo basura o mensaje basura a los mensajes no solicitados, no deseados o de remitente no conocido (correo anónimo), habitualmente de tipo publicitario, generalmente enviados en grandes cantidades (incluso masivas) que perjudican de alguna o varias maneras al receptor. La acción de enviar dichos mensajes se denomina spamming. [2]

La palabra spam proviene de la segunda guerra mundial, cuando los familiares de los soldados en guerra les enviaban comida enlatada. Entre estas comidas enlatadas estaba una carne enlatada llamada spam, que en los Estados Unidos era y es muy común. [2]

Al entender que es el reCAPTCHA y que es el SPAM hablemos ahora un poco sobre como aplicar el reCAPTCHA en nuestro sitio:

Si usamos un CMS como:

  • Drupal: Existe un plugin para este sistema de administración de contenidos que lo pueden ubicar y bajar haciendo clic en este enlace y en este otro enlace.
  • Wordpress: Para este otro sistema de administración de contenidos existe un plugin (el que uso en este blog) en este enlace pueden bajar el plugin y ahí obtener información de como instalarlo y como hacer la configuración.

Ahora bien, si tenemos un sistema propio lo que debemos hacer es lo siguiente:

En el formulario de contacto o simplemente en el formulario de comentarios debemos agregar lo siguiente:

  • Server Side
``` privatekey = "your_private_key";   $resp = recaptcha_check_answer ($privatekey,                                 $_SERVER["REMOTE_ADDR"],                                 $_POST["recaptcha_challenge_field"],                                 $_POST["recaptcha_response_field"]);   if (!$resp->is_valid) {     // What happens when the CAPTCHA was entered incorrectly     die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .          "(reCAPTCHA said: " . $resp->error . ")");   } else {     // Your code here to handle a successful verification   } ?> ```
Esta es una información de ejemplo, para obtener mayor información de como implementarlo clic [aquí](http://code.google.com/apis/recaptcha/docs/php.html "Using reCAPTCHA with PHP"). Aplicando estos consejos pueden evitar el spam en sus sitios sin ningun tipo de problema. \[**UPDATE**\] Habia olvidado comentarles que para la `$privatekey` y la `$publickey` deben estar registrados en http://www.google.com/recaptcha y luego de eso seguir las instrucciones que están aquí. Y bueno, eso es todo!! \[/**UPDATE**\] @[xombra](http://twitter.com/xombra "Sigue a xombra en twitter!!"), gracias por el dato!! \[1\] [http://es.wikipedia.org/wiki/Recaptcha](http://es.wikipedia.org/wiki/Recaptcha "Recaptcha")\[2\] [http://es.wikipedia.org/wiki/Spam](http://es.wikipedia.org/wiki/Spam "Spam")

Leer más

Este 28 de marzo se estará celebrando a nivel mundial el "Día de la Libertad de los Documentos" o como se nombre en inglés Document Freedom Day (DFD), su razón principal es dar a conocer y difundir el uso de formatos abiertos. En su página en inglés (http://documentfreedom.org) puedes encontrar información referente al evento en diferentes partes del mundo...

En Venezuela, también estaremos celebrándolo con diversos eventos a lo largo del país, estará bajo la coordinación de La Comunidad LibreOffice de Venezuela y buscaremos promover por medio de charlas, talleres, instalaciones y material POP el uso de esta herramienta tan poderosa. La idea es que podamos compartir las charlas y presentaciones para todos difundir el mismo mensaje en cada una de las sedes...

Si quieres formar parte de esta actividad, como participante o como organizador del evento en tu sede y/o mantenerte al tanto de lo que se tiene planeado puedes ver la información en nuestra wiki aquí

Así mismo, en caso de dudas, comentarios o sugerencias podrás comunicarte con nosotros por los siguientes medios:

Grupo de Google: LibreOffice Venezuela
Perfil en Twitter: @LibreOffice_VE
Grupo en identi.ca: eslibreoffice

Leer más

developers to easily search and browse source code in thousands of projects posted at hundreds of open source repositories. image:

Koders is a search engine for open source code. It enables software developers to easily search and browse source code in thousands of projects posted at hundreds of open source repositories. [1]

[1] http://en.wikipedia.org/wiki/Koders

En koders.com esta (entre otras librerías) la famosa conio.h donde la podemos bajar y usarla...
Pueden ver todas las librerías de las que les estoy hablando haciendo clic en este enlace o simplemente pueden hacer clic aquí y bajar en formato zip esas mismas librerías.

Bueno, como todos sabemos la libreria conio.h no viene instalada en los sitemas GNU/Linux y por eso aqui una solución quizas no la mejor pero solución al fin xD

Lo que hice fue, crear un directorio en home, es decir: home/abr4xas/Documentos/LenguajeC/Includes y si necesito una librería solo hay que darle la ruta completa de la carpeta donde esta en nuestro proyecto y chan chan!!

Como dije, no es una solucion efectiva pero vamos, es mejor que una que encontré que decía entre otras cosas: "Hay que bajarse el programilla Bloodshed DevC/C++ para Windows e instalarlo con Wine..." Lo pueden veraquí.

Leer más

LibreOffice cuenta desde este 14/02 con una nueva versión de su potente suite ofimática de código abierto.

En su pagina oficial en español (http://es.libreoffice.org/home/) puedes conseguir el enlace para descargas así como información sobre las mejoras con las que cuenta esta nueva versión. En la pagina tambien podras encontrar informacion sobre Asistencia al usuario, TODAS las maneras de colaborar de manera activa con el proyecto (son muchas y variadas opciones seguramente con alguna te podras integrar) todo lo referente al desarrollo y mucha informacion sobre la Fundacion que lo soporta "The Document Foundation"

Para descargar puedes entrar aquí, en esta sección también podrás escoger las opciones de ayuda y de lenguaje de acuerdo al que necesites en caso de que no seas de habla hispana.

Apoyando la Soberanía Tecnológica (en Venezuela, norma técnica 39.109) y por la libertad de los documentos: Usemos Formatos de Documentos Abiertos (ODF).

Leer más

D-Bus es un sistema que permite la comunicación entre diferentes procesos. Es desarrollado como parte del proyecto freedesktop.org buscando ofrecer una solución simple y común para los distintos entornos de escritorio.

Conceptos básicos


Tipos de Bus

Hay dos tipos de buses que se pueden usar con D-Bus. El bus de sesión, que se crea con cada sesión de usuario y es local a esa sesión, y el bus de sistema. Este último es global, se inicia cuando arranca el equipo y generalmente se utiliza para comunicarse con procesos como udev, NetworkManager o HAL.

Rutas a Objetos

Cada lenguaje de programación tiene sus objetos nativos (usualmente representados por clases). La ruta a un objeto es la forma en que D-Bus permite hacer referencia a un objeto nativo y que las aplicaciones remotas puedan usarlo. Un ruta a un objeto luce como la ruta de un archivo (Unix-like) y es común generarlas como un nombre de dominio en reversa, por ejemplo: /org/gnome/myapp/MyObject. Sin embargo, cada desarrollador puede usar la ruta que mejor le parezca, siempre y cuando sea única.

Métodos y Señales

Los métodos son operaciones (con o sin parámetros) que pueden invocarse en un objeto y que eventualmente pueden devolver un resultado. Las señales son notificaciones que se envían al bus y son recibidas por los observadores (objetos que escuchan o se conectan a esas señales). Estas señales también pueden enviar datos de interés para el receptor.

Objetos Proxy

Un objeto proxy no es más que un objeto Python que viene a representar a un objeto remoto en otro proceso. Esto nos permite emplear los métodos del objeto remoto como si fueran métodos nativos. Para instanciar un objeto proxy necesitamos la "ruta del objeto".

Estructura Básica

Para usar D-Bus es importante entender la estructura e interacciones básicas. En palabras simples, lo que tenemos son dos aplicaciones que se "hablan" entre sí a través de un canal común. Generalmente una de ellas actúa como "servidor", ofreciendo métodos y señales que podrán ser usados por una aplicación "cliente". En la imagen a continuación se ilustra claramente el concepto.



Un ejemplo bastante común es el funcionamiento de un reproductor de música (como el servidor) que ofrece métodos para informar sobre su estado actual y una aplicación de notificaciones (como cliente) que usa estos métodos para mostrar diálogos en el escritorio cada vez que cambia una canción.

Aplicación "servidor"


Lo primero que debemos hacer para empezar a trabajar con D-Bus es conectarnos a un bus. En nuestro caso será al bus de sesión porque no nos interesa interactuar con procesos del sistema operativo.

Adicionalmente, para ejecutar llamadas asíncronas a los métodos (y que la aplicación no se bloquee mientras espera) debemos configurar un bucle principal. Para el momento de escribir este post, python-dbus solo soporta el bucle principal de GLib, así que usaremos esas librerías para crear nuestro loop.

Los import que necesitamos para esto serían:
import dbus
import dbus.service
import gobject

from dbus.mainloop.glib import DBusGMainLoop

Luego, definimos (en variable globales) el nombre del bus y la ruta de nuestro objeto:
DBUS_BUSNAME = 'org.example.ExampleDBus'
DBUS_MYOBJECT_PATH = '/org/example/ExampleDBus/MyObject'

Ahora definimos la clase de nuestro server, con la inicialización mínima para que funcione D-Bus:
class DBusService(dbus.service.Object):

def __init__(self):
# Le indicamos a D-Bus que usaremos el loop de GLib como bucle
# predeterminado
DBusGMainLoop(set_as_default=True)

# Establecemos la conexión al bus de sesión
self.session_bus = dbus.SessionBus()
name = dbus.service.BusName(DBUS_BUSNAME, self.session_bus)

# Inicializamos el objeto D-Bus
dbus.service.Object.__init__(self, self.session_bus, DBUS_MYOBJECT_PATH)

# Arrancamos el bucle principal
loop = gobject.MainLoop()

# Colocamos el loop dentro de un try/except para detectar cuando el
# usuario presione Ctrl + C y finalizar la aplicación limpiamente
try:
print "Servicio DBus iniciado"
loop.run()
except KeyboardInterrupt:
loop.quit()
print "Servicio DBus finalizado"

Si se fijan en el código anterior, nuestra clase hereda de dbus.service.Object (porque estamos construyendo un objeto D-Bus que será instanciado por una aplicación remota). En la inicialización le indicamos a D-Bus que usaremos el loop de GLib, establecemos la conexión al bus de sesión y arrancamos el loop.

He decidido colocar la ejecución del loop principal dentro de un try/except para que el usuario pueda usar Ctrl + C para salir elegantemente de la aplicación.

Hecho esto podemos proceder a definir un par de métodos. Hagamos un método que imprima un saludo y otro que nos devuelva un valor, en este caso la hora.
    @dbus.service.method(DBUS_BUSNAME)
def say_hello(self, name):
print "Hola, %s" % name

@dbus.service.method(DBUS_BUSNAME)
def get_time(self):
return time.strftime("%H:%M")

En los párrafos previos comenté que un objeto proxy no es más que una representación de un objeto D-Bus en un objeto Python, así que para exportar un método nativo como método D-Bus usamos el decorador @dbus.service.method y le pasamos como parámetro el nombre del bus. Luego definimos nuestras funciones como lo haríamos normalmente en cualquier clase de Python y ya con esto tendríamos un servidor muy básico listo para funcionar.

El código completo debería quedar así:
#!/usr/bin/python
# -*- coding: utf-8 -*-

import time
import dbus
import gobject
import dbus.service

from dbus.mainloop.glib import DBusGMainLoop

DBUS_BUSNAME = 'org.example.ExampleDBus'
DBUS_MYOBJECT_PATH = '/org/example/ExampleDBus/MyObject'

class DBusService(dbus.service.Object):

def __init__(self):
# Le indicamos a D-Bus que usaremos el loop de GLib como bucle
# predeterminado
DBusGMainLoop(set_as_default=True)

# Establecemos la conexión al bus de sesión
self.session_bus = dbus.SessionBus()
name = dbus.service.BusName(DBUS_BUSNAME, self.session_bus)

# Inicializamos el objeto D-Bus
dbus.service.Object.__init__(self, self.session_bus, DBUS_MYOBJECT_PATH)

# Arrancamos el bucle principal
loop = gobject.MainLoop()

# Colocamos el loop dentro de un try/except para detectar cuando el
# usuario presione Ctrl + C y finalizar la aplicación limpiamente
try:
print "Servicio DBus iniciado"
loop.run()
except KeyboardInterrupt:
loop.quit()
print "Servicio DBus finalizado"

@dbus.service.method(DBUS_BUSNAME)
def say_hello(self, name):
print "Hola, %s" % name

@dbus.service.method(DBUS_BUSNAME)
def get_time(self):
return time.strftime("%H:%M")

@dbus.service.signal(DBUS_BUSNAME)
def kill(self):
return 'killed'

if __name__ == '__main__':
service = DBusService()

Aplicación "cliente"

La aplicación cliente es mucho más simple. La única librería que necesitamos es la de D-Bus, el nombre del bus y la ruta del objeto.
import dbus

DBUS_BUSNAME = 'org.example.ExampleDBus'
DBUS_MYOBJECT_PATH = '/org/example/ExampleDBus/MyObject'

Ahora pasemos a crear la clase. Al igual que en el servidor, necesitamos establecer la conexión con el bus y "mapear" el objeto D-Bus en un objeto Python. En este caso la variable self.my_object es la que contiene la representación de dicho objeto.
class DBusClient:

def __init__(self):
self.session_bus = dbus.SessionBus()
self.my_object = self.session_bus.get_object(DBUS_BUSNAME,
DBUS_MYOBJECT_PATH)

Para llamar a un método del objeto remoto debemos importar el método correspondiente, y como estaremos usando varios métodos vamos a crear una función interna que nos ayude con esta tarea.
    def __get_dbus_method(self, name):
return self.my_object.get_dbus_method(name)

Procedemos a crear nuestros métodos nativos que obtendrán el método remoto del objeto D-Bus y lo llamarán con los parámetros correspondientes según sea el caso.
    def say_hello(self, name):
# Almacenamos el método en una variable y luego lo llamamos con los
# parámetros correspondientes
method = self.__get_dbus_method('say_hello')
method(name)

def print_time(self):
method = self.__get_dbus_method('get_time')
# Obtenemos el valor de retorno del método y la imprimimos en pantalla
current_time = method()
print "Son las %s" % current_time

Con eso ya deberíamos tener un cliente funcional. El código completo del cliente debería quedar algo como:
#!/usr/bin/python
# -*- coding: utf-8 -*-

import dbus

DBUS_BUSNAME = 'org.example.ExampleDBus'
DBUS_MYOBJECT_PATH = '/org/example/ExampleDBus/MyObject'

class DBusClient:

def __init__(self):
self.session_bus = dbus.SessionBus()
self.my_object = self.session_bus.get_object(DBUS_BUSNAME,
DBUS_MYOBJECT_PATH)

def __get_dbus_method(self, name):
return self.my_object.get_dbus_method(name)

def say_hello(self, name):
# Almacenamos el método en una variable y luego lo llamamos con los
# parámetros correspondientes
method = self.__get_dbus_method('say_hello')
method(name)

def print_time(self):
method = self.__get_dbus_method('get_time')
# Obtenemos el valor de retorno del método y la imprimimos en pantalla
current_time = method()
print "Son las %s" % current_time

if __name__ == '__main__':
client = DBusClient()
client.say_hello('Pedro')
client.say_hello('Maria')
client.print_time()
Es importante que observe que al ejecutar el script del cliente se llamará al método say_hello dos veces (con los parámetros 'Pedro' y 'Maria' respectivamente) y luego al método print_time.

Pruebas

Para probar abrimos dos terminales. En la primera ejecutamos el script del servidor (yo lo llamé dbus_service.py) y veremos algo como:
$ python dbus_service.py 
Servicio DBus iniciado
Con un mensaje indicándonos que el servicio está corriendo y esperando ser utilizado.

En la segunda terminal ejecutamos el script del cliente (lo llamé dbus_client.py) y veremos algo como:
$ python dbus_client.py 
Son las 12:55
Muy bien, imprimió la hora pero... ¿No se suponía que también habíamos llamado al método say_hello dos veces? ¿Qué pasó?

Bueno, volvamos a ver la terminal del servicio y veremos nuestro ansiado resultado:
$ python dbus_service.py 
Servicio DBus iniciado
Hola, Pedro
Hola, Maria

Tal como lo esperabamos, el método say_hello imprime en la instancia del servidor el nombre envíado desde el cliente y por otro lado, el cliente imprime la hora que le devuelve el método get_time desde el servidor. Hemos enviado mensajes en ambas direcciones usando D-Bus, ¡todo un éxito!

Espero que esta receta simple les haya ayudado a comprender como funciona D-Bus y como usarlo desde Python. Más adelante estaré escribiendo otros posts sobre cómo emitir/recibir señales y cómo enviar grandes cantidades de datos "al vuelo" a través de D-Bus.

Fuentes:

Leer más

Ya dio inicio oficialmente el 8vo Congreso Nacional de Software Libre. Este año se estarán visitando nuevamente 11 Ciudades a lo largo del país, durante 3 meses consecutivos. Para todos aquellos interesados en Postular Ponencias podrán hacerlo desde ya, enviando un correo con la información a ponencias@cnsl.org.ve.  
Así mismo, se estará publicando el sistema de Registro de Participantes para todos aquellos que deseen participar en el evento, muy pendientes de la página oficial del evento (CNSLv8)

Las ciudades a visitar este año son:

  1. 20-21/04: Táchira: San Cristobal 
  2. 27-28/04: Mérida: Mérida 
  3. 04-05/05: Barinas: Barinas 
  4. 11-12/05: Lara: Barquisimeto 
  5. 25-26/05: Falcón: Coro 
  6. 01-02/06: Cojedes: San Carlos
  7. 08-09/06: Guárico: Altagracia de Orituco 
  8. 15-16/06: Anzoátegui: Puerto La Cruz 
  9. 22-23/06: Yaracuy: San Felipe 
  10. 20-21/07: Aragua: Maracay 
  11. 27-28/07: Caracas
Ahora si te toco el ocho!!

Leer más

Hoy resolvi como enviar procesos al fondo dentro de un loop en BASH, tal vez exista una forma mas limpia de hacerlo pero esta me funciono. Este será un tip mas para esa serie de post cortos pero que vale la pena agregar a los bookmarks.

Enviar procesos al fondo desde un loop en bash

El tip como tal realmente simple, solo tienes que incluir lo que quieras enviar al fondo dentro de llaves {}. Lo que quieras enviar al fondo debe lucir muy parecido a esto:

{ ping orvtech.com & }

Veamos este otro ejemplo.

for i in `echo $correos`
  do echo "trabajando en usuario $i"
  { crawler.sh -H $i run "grep $1 crawler.tmp" | awk -F\" '{print $2}' | awk -F\, '{print $1}' > usuarios.txt & }
done
jobs

Con el commando jobs puedes monitorear los procesos que se han enviado al fondo.

Leer más

“Debemos avanzar hacia una explosión masiva del conocimiento, de tecnología de innovación, en función de las necesidades sociales y económicas del país y de la soberanía nacional” Hugo Chavez

En aras de continuar con el desarrollo e implementación de herramientas de software libre y motivados por la necesidad de integrar y mejorar los procesos productivos de las empresas socialistas, Industrias Diana C.A., Lacteos Los Andes y Venalcasa sumaron esfuerzos para el desarrollo del Sistema Integral “Simón Bolívar” (SISB), tomando en cuenta el Plan Nacional Simón Bolívar y las legislaciones y normativas del Gobierno Bolivariano de Venezuela.

Este proyecto fué adaptado a las necesidades reales de las empresas adscritas al Ministerio del Poder Popular para la Alimentación, que garantice el cumplimiento de las leyes de la República Bolivariana de Venezuela en cada uno de los procesos institucionales, que promueva la integración y cooperación entre las diferentes empresas de producción social y que fortalezca la soberanía e independencia tecnológica que requiere el sistema productivo nacional.

Este sistema tan prometedor, se inició el 26 de septiembre del 2011 y se espera su culminación a finales del año en curso. Tomando en cuenta metodologías ágiles de desarrollo de software, buenas prácticas, marcos de trabajo adaptados a nuestras necesidades. Apoyados también en un proceso de capacitación y coaching técnico y funcional en el framework OpenObjects con la empresa venezolana Vauxoo.

El proyecto se orienta en el desarrollo de un Sistema para Planificación y Gestión de Recursos para Empresas Socialistas del Sector Alimentario, el cual se encargará de integrar, controlar y agilizar los procesos productivos que se realizan en las empresas de producción social, distribuidos modularmente de la siguiente forma:

  • Contabilidad y Finanzas
  • Procura
  • Gestión de almacenes
  • Gestión de presupuestos
  • Comercialización
  • Talento Humano
  • Manufactura
  • Mantenimiento
  • Control de Calidad
  • Gestión Socialista
  • Gestión de Conocimiento
  • Consultoría Jurídica
  • Soporte a Usuario

En este primera etapa, se han puesto en marcha las áreas de contabilidad, procura, finanzas y almacenes; y ya se tienen importantes avances en el resto de las áreas.
Para el desarrollo de una aplicación de tan grande envergadura se hizo énfasis en el uso de tecnologías libres como base fundamental del proyecto, basándose en un principio elemental de la filosofía del software libre: “no reinventar la rueda”. Para esto se utilizó como base del desarrollo OpenERP un sistema de planificación de recursos empresariales (ERP por sus siglas en inglés) creado bajo el esquema de software libre con la licencia AGPL y su framework OpenObjects que ha sido base para el desarrollo de mas de 1000 módulos.

¿Por qué software libre?

En función de garantizar la soberanía e independencia tecnológica que requiere la Revolución Bolivariana, nuestro Comandante Presidente Hugo Rafael Chávez Frías firmó el 24 de diciembre de 2004 el Decreto Nº 3.390, el cuál establece el uso prioritario de software libre desarrollado con estándares en los sistemas, proyectos y servicios informáticos de la Administración Pública Nacional.

En el mismo sentido, fue publicada la Gaceta Oficial Nº 39.633 que dicta el uso de Canaima GNU/Linux como sistema operativo en las estaciones de trabajo de los órganos y entes de la Administración Pública Nacional, con el propósito de homogeneizar y fortalecer la plataforma tecnológica del Estado Venezolano.

Considerando la necesidad de generar de manera endógena, el conocimiento y la tecnología necesaria para impulsar el desarrollo productivo nacional, el Gobierno Bolivariano debe promover la filosofía del conocimiento y tecnología libre, apoyándose en GNU/Linux como herramienta fundamental y como única manera de garantizar el acceso a la información, la transferencia del conocimiento y la libertad de innovación que requiere nuestro país

El uso de OpenERP (Software Libre) como base del desarrollo del Sistema de Gestión Integral para Empresas Socialistas “Simón Bolívar”, partió de la consideración de las siguientes ventajas:

1. Código fuente liberado bajo licencia AGPL: otorga el acceso y libertad total para usar su código, estudiarlo, modificarlo y redistribuirlo bajo la misma licencia.

2. Diseño modular: permite fácilmente ampliar sus funciones al diseñar y desarrollar nuevos componentes que pueden ser añadidos de forma simple a la base del sistema, manteniendo el estándar en su núcleo de funcionamiento y así mantenerse vigente y compatible con futuras versiones.

3. Perfectamente compatible con Canaima GNU/Linux: cumple completamente con el marco legal venezolano.

4. Soporta formatos libres: esto brinda la seguridad de permanecer desligado a empresas capitalistas que pudieran bloquear el acceso a sus tecnologías mediante licenciamientos privativos excluyendo directamente a Venezuela de los países permitidos para su uso, como ha sido el caso puntual de Microsoft contra Cuba e Irán a petición del Gobierno de EEUU.

5. Soporte corporativo y comunitario: además de contar con una comunidad activa alrededor del mundo con mas de 1000 miembros, OpenERP también cuenta con empresas asociadas capaces brindar capacitación y soporte a nuestro personal.

6. Libre de costos de licencia y mantenimiento: el soporte corporativo es opcional sin menos cabo de la funcionalidad del sistema, además que existe documentación libre y gratuita suficiente para poder prescindir de contrataciones de terceros.

7. Independencia: todo el desarrollo generado sería propiedad intelectual del Estado Venezolano al servicio del pueblo.

8. Documentación funcional y técnica disponible: los manuales funcionales de uso, manuales de desarrollo y documentación técnica se encuentran disponibles en el portal oficial de OpenERP y en los sitios oficiales del proyecto SISB de manera libre y gratuita.

9. Tecnológicamente avanzado:  ha desarrollado teniendo en cuenta las nuevas tendencias tecnológicas, ofreciendo una gran ventaja sobre otras opciones libres e incluso sobre competidores privativos al poseer herramientas de diseño RAD, ofrecer la funcionalidad de “Inteligencia de Negocios” (Business Intelligence) basada en cubos OLAP, soporte de multiprocesamiento con escalamiento lineal, entre otros.

 

Fuente: Industrias Diana – http://tinyurl.com/8xboqv8

Leer más

¿Qué es el FLISoL?

El Festival Latinoamericano de Instalación de Software Libre (FLISoL) es el evento de difusión de Software Libre más grande en Latinoamérica. Se realiza desde el año 2005 y desde el 2008 se adoptó su realización el 4to Sábado de abril de cada año.

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.

La comunidad de usuarios VaSlibre nuevamente tomó la iniciativa de realizar este evento en la ciudad de Valencia, esta vez será realizado en el INCES Los Colorados el día Viernes27 de abril del 2012, debido que el día oficial (sábado 28 la Institución tiene reservado el auditorio para otra actividad).

¿Qué Necesitamos?

Instaladores Personas con conocimientos sólidos sobre alguna distribución para ayudar a los asistentes -Grupos de usuarios organizados interesados en darse a conocer mediante instalaciones y demostraciones. Patrocinantes Instituciones, Empresarios y Personas capaces de colaborar con la distribución de material de difusión, logrando así el cometido de dar a conocer el Software Libre en el FLISOL. Colaboradores Chicos y chicas responsables con ganas de compartir un rato agradable ayudando con la organización de la logística, ubicación de los participantes y asistentes, y en todos esos detalles que complementan y consolidan un evento de alta calidad.

¿Cómo Ayudar?

Puedes ayudar de diferentes formas:

  • Divulgando el evento entre tus amigos, en tu universidad o en tu trabajo.
  • Asesorando en las instalaciones a los asistentes.
  • Si deseas ayudar con la publicidad del evento contáctanos vía mail. Toda ayuda es bienvenida.

Consideraciones generales para la instalación

Recuerda leer: http://flisol.org.ve/instalaciones/

Si deseas instalar GNU/Linux en tu máquina es bueno que conozcas los siguientes datos de tu hardware (en Windows puedes comprobarlos en el panel de control):

  • Tarjeta de red (marca, modelo, configuración)
  • Tarjeta de video (marca, modelo, configuración)
  • Tarjeta de sonido (marca, modelo, configuración)
  • CPU (Procesador)
  • Memoria RAM
  • Modem (marca, modelo, configuración)
  • Espacio libe en disco (mínimo de 5.0 Gb)
  • Componentes SCSI (si existiese)
  • Por precaución, realiza un respaldo de tus datos en un dispositivo como cd o pen drive, ya que no nos responsabilizamos directamente por la perdida de datos.
  • Particiona el disco. Has espacio libre para GNU/Linux en tu disco duro, de mínimo 5 Gb. Si no lo sabes hacer, puedes hacerlo en el FLISOL, solo tomará más tiempo.
  • Desfragmenta tu disco. Si no sabes particionar, previo al FLISOL, desfragmenta tu disco. Caso contrario nos pasaremos todo el día en el FLISOL.

Notas:

​a. El propietario será el único responsable de velar por el equipo en todo momento del proceso de instalación, no podrá retirarse del lugar de trabajo durante la instalación del software.
b. Las instalaciones serán realizadas por orden de llegada.

El instalador no es responsable ni esta autorizado a:

​1) Abrir equipos para realizar chequeos
2) Realizar ningún tipo de reparación
3) No es responsable por el ingreso o retiro del equipo en el lugar del evento
4) No es responsable por la perdida de datos por la falta de respaldo o desfragmentación del disco duro del equipo.

En todos los casos, el acceso de máquinas a la Biblioteca será controlado por la vigilancia del mismo instituto, es necesario tener a la mano los seriales de sus máquinas para no tener problemas de acceso por pérdidas de tiempo para buscar los seriales de las máquinas, y así se podrá facilitar el tráfico de entrada y salida de los equipos.

* Recuerda que debes traer tu CPU, teclado, mouse, monitor y regulador .

Consideraciones generales para la instalación en memorias SD,CF,PENDRIVES= Si deseas instalar GNU/Linux en tu Memoria SD, CF O PENDRIVE,Trae tu memoria vacia sin datos puede ser hasta ese pendrive de 256M o 128M que tienes sin uso aqui podemos reactivarla con software libre.

Leer más

Si usualmente utilizas la consola interactiva de Ruby On Rails para realizar pruebas, correr tareas de Rake, entre otras cosas y te resultaría sumamente útil ver el log de lo que esta haciendo el ActiveRecord, entonces este tip es para ti.

Simplemente ejecuta la consola desde la carpeta raíz de tu aplicación Rails:

Para rails 3.x:
$ rails c
Para rails 2.x:
$ script/console
Y luego indícale al logger que use la salida estándar:
ActiveRecord::Base.logger = Logger.new(STDOUT)
Con eso los mensajes de log del ActiveRecord se imprimirán en la consola.

Leer más