Servidores XS School Server, SQUID Proxy y uno de mis programitas de practica en Python.

Deja un comentario

En esta ocasión me he animado a poner un pequeño código usado en el servidor XS para las olpc’s, pero antes les dire algo basico del servidor XS.

XS Server School es la infraestructura que se usa en las escuelas para dar acceso a internet a las xo’s, ya que se necesitan centralizar aspectos importantes de las mismas como lo son seguridad (permitir solamente a las xo’s conectarse, entre otras), tambien el cuidado de las websites vistidas
por los niños, controlandolas ya sea atraves del SQUID proxy o el openDNS que es lo que se usa en Nicaragua.

La configuración basica de software sobre el servidor esta provista atraves de YUM de Fedora asi como del Administrador de Paquetes RPM.
Importancia de activar el SQUID Proxy!

- activar cache web, ya que con esto podremos optimizar el acceso a paginas ya visitadas, esto es visitando la pagina en cache.
- revisar periodicamente la Cache Web para ver las paginas visitadas y que lograron pasar por OpenDNS y por las mismas restricciones del SQUID Proxy.
(aca es donde se me vino hacer un extractor de dominios visitados en Python).

Pero antes de seguir, iniciemos el Web Caching!

 /etc/sysconfig/olpc-scripts/TURN_SQUID_ON

para probar algun servicio activo en nuestro systema tendremos que ejucutar lo siguiente:
service SQUID status
y para ver en tiempo real el cache web:

 tail -f /var/log/squid/access.log

aca es donde extraemos las paginas visitadas con el programita donde ya les pondre el código.

En fin hay muchas cosas mas, pero es algo que en primera instancia me llamaron la atención.
Aca les dejo el código, y no esta de mas, que por lo general los niños lo que mas visitan son Juegos :).

Una cosa más, y es que tu seguro lo puedes mejorar. pues yo lo hice para poner en practica lo aprendido en su momento con python, por falta de tiempo por ahora no lo puedo mejorar, aunque he conocido de muchas formas :)

#! /usr/bin/env python
#write by Walter D. Vargas 
# Programa que lee un archivo con logs de la cache web
# y extrae los dominios guardandolos en un nuevo archivo, agregando
# los duplicados una vez y los no duplicados
"""El objetivo es supervisar que paginas estan viendo los ninos,
  aunque normalmente puedes verlo en tiempo real, atraves del SQUID"""
import string
from sets import Set
def submain():
       """leemos el archivo con los logs"""
#aca va la direccion origen del archivo log del proxy
       fichero = open('direcciones.txt', 'r')
       oficial = []
       lista = []
       while 1:
                """leemos linea a linea"""
                linea = fichero.readline()
                linea = linea.rstrip()
                """si linea es vacia, paramos el bucle"""
                if linea == "":
                         break
                #"""validamos si existen saltos de linea al final \n"""
                #if linea[-1]=='\n':
                #        linea = linea[:-1]
                """guardamos en una lista cuando separamos en elementos la linea"""
                lista = string.split(linea, '/')
                 """recorremos la lista y agregamos a otra lista el elemento que contenga
www.dominio.com"""
                 for word in lista:
                          cad = str(word)
                          if string.find(cad, 'www')!=-1:
                                   oficial.append(word)
        """cerramos el fichero de lectura"""
        fichero.close()
        """eliminamos duplicados y ordenamos
        oficial = list(Set(oficial))
        oficial.sort()
        f_output = open('nuevo.txt', 'w')
        for i in oficial:
                 i = i+'\n'
                 f_output.write(i)
        f_output.close
submain() 

Nuestro nuevo ambiente de Cocina, Django!

Deja un comentario

Hey un saludo. Siempre me ha llamado la atencion temas relacionado a Python, y bueno, creo que Django no se queda atras,  por el simple hecho que es un Framework Web, diseñado para simplificarnos la vida, ya les contare porque.

Asi que de ahora en adelante, he decidido darle pase a mi humilde blog, posteando cosas mientras voy a aprendiendo.

Para comenzar es muy importante aclarar nuevos terminos y este basado en la definicion de el libro “El Libro de Django“, el termino ya citado antes, Framework.

Framework Web, es el encargado de proveer un infraestructura de programación para tus aplicaciones, es decir que tu te puedas concentrar en escribir codigo limpio y de facil mantenimiento, sin tener que reinventar la rueda”
. De manera simplificada.

Básicamente, la estructura de este Framework esta diseñado para poder trabajar en el proyecto web, a veces sin tener conocimiento profundo de diseño de paginas web, pues de esta manera programaremos la funcionalidad sin tener que trabajar con el diseño, aunque la idea es extender el sistema creando nuestras propias plantillas.

“En Django, Una Plantilla, no es mas que una cadena de texto con el objetivo de separar la presentación de nuestro documento y los datos en si”

Lo que debiamos haber echo antes XD , pero no importa de nada nos perdimos. Entonces Hagamoslo!

Para los que no tienen instalado Django, es muy sencillo, basta con ir a la pagina oficial del proyecto y descargarnos la ultima version, pero apartir de aca se asume que se tiene conocimiento básico de programacion en Python.
http://www.djangoproject.com/download/

Lo Descargastes?… si. Entonces sigue estos pasos.
1- Descomprimimos
tar xzvf Django-*.tar.gz #el * significa cualquier version.
2- cd Django-*
3- python setup.py install #y ya lo tenemos.

#recuerdo que yo habia probado django en fedora 9, y no conseguia hacerlo trabajar, habia que hacer toda una serie de pasos, pero ahora en Fedora 13 no tuve ningun problema.

para probar inmediatemente la instalacion abre un terminal, y ejecuta python, dentro importa django que sin mas te muestra la version instalada.

Bien, segun el libro de Django, mas adelante podriamos necesitar una Base de Datos, asi que no hay que preocuparse, Python, ya trae SQLite 3, si tienes python 2.5.* en adelante ya esta integrada. De hecho, yo trabajare con SQLite 3.

y como ultima cosa, agregemos un directorio de trabajo. Aca es donde estaran todas las configuraciones iniciales de nuestro proyecto, la estructura y funcionalidades las veremos en la proxima entrega.

1- abrimos un terminal y nos ubicamos donde queremos almancenar nuestro projecto.
2- ejecutamo django-admin.py startproject mi_sitio # donde mi_sitio es el nombre del projecto, puedes
cambiarlo.
3- cd mi_sitio # este es el directorio creado y en donde se encuentran las configuraciones iniciales,
que es lo que explicaremos en la proxima.

Listo? … entonces por ahora esto es todo, nos queda mucho camino por recorrer, seguro hay quienes ya dominan esto, o hay quienes prefieren hacerlo todo a su manera, para lo que yo digo, no importa, seguro habran personas como yo, que a veces no quieren leerse todo un manual para trastear un rato con una herramienta o aprender un nuevo concepto, y lo más importante de todo, lo hago para afianzar conocimientos.

A proposito del FLISOL

Deja un comentario

Informacion sobre el Flisol

Bueno, he preparado rapidamente esta breve informacion acerca del proximo Festival Latinoamericano de instalacion de Software Libre 2010.

Realmente, hay muchas cosas que debo aclarar para los que no saben a que se refiere el termino de software libre. Es que muchas veces ya se nos ha preguntado si se refiere a software gratis, y otras veces simplemente no se dan cuenta de su existencia.

De hecho, el FLISOL esta dedicado a llenar ese vacio de conocimientos de personas que se tratan de evitar la fatiga, aunque por otro lado se quiebren la cabeza con cosas como virus, falta de privacidad, entre otras.

Veamos algunas puntos muy importantes:

- que es o que significa Software Libre. – es todo aquel software que garantiza a los usuarios derechos de ejecucion, exploracion del codigo fuente para revision y modificacion, con la unica condicion que tanto el programa compilado a partir del codigo fuente original, asi como del nuevo codigo el cual contiene modificaciones, sean de caracter libre, es decir, lleven las caracteristicas anteriores (vaya, esta definicion me huele un poco a “definicion recursiva” para los que son programadores).

la definicion anterior, como pueden leer conlleva un aporte muy interesante, y es el del apoyo colectivo, pues a decir verdad, se promueve la libre distribucion de codigos, y formas de como funcionan las cosas, ayudando a terceros como mi persona en particular, a entender primeramente para luego desarrollar y aportar a la sociedad, pues esto reduciria una extensa lista de problemas, por mencionar una, costes de desarrollo y mantenimiento de una firma.

Software libre es gratuito?…. No… esto porque no siempre un software libre no siempre es gratis. pues de hecho, todo profesional o tecnico especialista necesita en que apoyar su trabajo, pero es un hecho, mas bien seria por soporte tecnico, y por alguno que otro encargo de adaptacion del software para una empresa especifica, esto es, modificicaciones del codigo para que el software se adecue a lo que queremos nosotros.

Una ultima cosa sobre lo de gratis….. alguien te podria ofrecer un software gratuito, pero como no es libre, no puedes ver la estructura del codigo, y este podria contener virus, y segun en que pais se este, las leyes de propiedad podrian ser un gran problema para el que intente modificar el codigo.

una ultima cosa, muy importante, es sobre la Licencia de Software Libre, General Public Licence (GPL).
un breve resumen que me encontre en una de las revista de software libre aca:

La licencia GPL se puede resumir así:

1    Cualquiera es libre de utilizar el Software Libre para cualquier propósito.
2    Cualquiera es libre de acceder a su código fuente y estudiarlo.
3    Cualquiera es libre de distribuirlo.
4    Cualquiera es libre de mejorarlo o adaptarlo y de distribuir el programa modificado.
5    La única obligación es que si se distribuye, haya que hacerlo bajo la misma licencia GPL. (*)

Cuando se distribuye un programa libre se puede cobrar por los siguientes conceptos:

1   Por el hecho de hacer una copia con un medio físico.
2   Por el hecho de ofrecer servicios de mantenimiento y garantía.
3   Por el hecho de incluir otros programas o documentos que no tienen licencia GPL.
4   El texto legal de la licencia GPL está en inglés en http://www.gnu.org/copyleft/gpl.html

Bien, y volviendo al tema del FLISOL, como es de dar a conocer las creaciones del software libre, esta lo que hoy conocemos en sus diferente gustos y colores:
Linux, con sus distintas distribuciones o distros:
– Fedora.
– Debian.
– Ubuntu.
– Knoppix.
– y muchas mas.
Pero para que contartelo si puedes vivirlo el sabado 24 de Abril, en nuestro pais Nicaragua, estaremos ubicado en Tres Ciudades, Esteli UNI-Norte …. Granada Casa de los tres mundo….. Managua  American College.. desde las 8:00 AM. todo el dia.

Agregando Screenlets a Fedora 12!

Deja un comentario

Tratando de darle una mejor apariencia a mi Fedora 12, he revizado como instalarle Screenlets, y pues esto es lo  unico  que  he hecho:

  1. descargarme lo siguiente:   http://www.dfm.uninsubria.it/compiz/…c11.noarch.rpm

Lo ejecuto y lista, el solo se instala. Ya puse mi pantallazo, aunque no le agrege muchos, y es que en realidad solo se los instale para probarlos, pues me gusta dejar las cosas a su minima expresion de simplicidad.

Esto lo he tomado de : http://forums.fedoraforum.org/showthread.php?t=228488&highlight=screenlets, pues de tanto buscar hasta el google te facilita la vida.

Migrando nuestro colegio a Linux

Deja un comentario

Hola hola, una vez mas. A decir verdad me siento muy alegre, y esta es la razon:

Me han dicho los encargados del proyecto de las XO´s en nuestro centro y en algunos otros, que ya esta en marcha el proyecto de Migración a Linux.

 

Vaya, esto si que es muy alentador. Será un buen ragalo de año nuevo para los alumnos de secundaria, sobre todo, siento que mi voz a echo un eco con muy buenos resultados y que nada ha sido en vano.

Exitos para el colegio Laura Vicuña.

Algunas memorias y tomadas desde mi XO

Deja un comentario

Y bien, creo que estas son unas pocas memorias que tengo de lo que ha sido del proyecto que me ha involucrado las XO´s de OLPC.

XO´s

Algunos profesores de mi centro

Yo con la boca abierta je.

Ya en el Lab.

Lab. Nica

y son mas!

fedora 12 tomada desde mi xo recien instalado.

aca estamos en pizza bash XI.

Bueno, a decir verdad es que yo siempre me animo a tomar foto desde mi xo, pero nunca las respaldo, y por eso solo estas tengo.

En fin, solo queria compartirlas. Es una excelente herramientapara los niños.

Algunos comandos LINUX que he usado en mi OLPC para determinar ciertas características.

Deja un comentario

Bien, para los que me conocen, saben que poseo una mini-laptop OLPC, puesto que soy docente informático del Centro.

Como han de suponer, era obvio que yo tendría que meterme a curiosear de que esta hecha esta tecnología y de paso practico mas los comandos que voy aprendiendo en LINUX, es que me he vuelto Linuxero, pero reconozco que aun estoy muy tierno en ello.

Bien, no pretendo que sea una guía, si no más bien algo que los motive a probar estos comandos en su hermosa consola, todo para obtener la información que ustedes deseen,

Mientras, lo que no aparezca acá, ya saben, estarán disponible en el Google, así que manos a la obra.

hostname.- como su nombre lo indica, devuelve el nombre del host.

uname.- muestra cierta información del sistema, como SO,  kernel, kernel  release, kernel versión,  procesador, plataforma del hardware si la conoce.

ps aux .- lista los procesos del sistema que se están ejecutando.

free.- muestra información acerca de la memoria usada. Use las opciones –b,

-k, -m, o –g, esto para obtenerlas en el  formato que la quieras, KB, MB, GB .

En mi caso me muestra una memoria de 227 Mb.

También puedes usar watch free –m, recuerda pulsar la tecla CTRL + Z para regresar al Shell.

df.- Muestra información sobre el espacio que ocupan las particiones. Sorpresa, tengo 1 Gb.

cat /proc/cpuinfo.- y este? . si ya veo que pueden imaginarse que tiene que ver con la información del cpu.

En mi olpc me muestra lo siguiente: CPU 430. 931 MHz, cache 128 Kb :( , ah se me olvidaba el nombre del procesador, aunque faltan mas datos, pero estos son los que mas interesan para los curiosos, Geode (TM) Integrated Processor by AMD PCS.

cat /proc/filesystems.- este muestra los tipos de sistemas de archivos soportados. Son los que son compilados por el kernel. Esto es muy importante a tener en cuenta.

Resumen un poco mas detallado:

  • · CPU 430. 931 MHz, Geode (TM) Integrated Processor by AMD PCS.
  • · cache 128 Kb.
  • · Memoria 227 Mb
  • · Espacio de la partición 1Gb, pero esto me parece que esta compartida, con almacenamiento y RAM para lecturas.+
  • · Sistema Operativo. Of course GNU/Linux.
  • · Tipo de procesador i586.
  • · Plataforma del hardware i386.
  • Lo que se ve (algunas cositas mas):
  • · Cámara integrada.
  • · Audífono.
  • · Parlancitos.
  • · 3 entradas usb’s.
  • · Antenas Wileress.
  • · GPS integrado,

Vale hacer una aclaración, la distribución que yo uso, es Fedora 11, y en mi olpc Fedora remix. Asi que no se si bajo otra distribución los comandos no te ajusten los valores que me dieron. Pero uno de los principios de Linux es que al final Linux es Linux en cualquier distribución.

Older Entries

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.