Category Archives: Español

Programando en C

Buscando info sobre “extern” y “static” de C (no recordaba su significado) he dado con una página con documentos (en forma de transparencias) y enlaces sobre C que no esta mal.

Por cierto, para la practica voy a hacer una pequeña interface con GTK y Glade lo que me ha llevado a la pagina de APIs de GTK. Una pasada lo bien documentado que esta todo, además me ha ayudado a descubrir otras funcionalidades como las que puedes obtener con la libreria glib. Estas librerias hacen del C una maravilla 😉

Moodle: Sistema de gestión de cursos

He descubierto Moodle, un sistema de gestión de cursos. Parece muy interesante ya que permite una interacción total entre los alumnos y los profesores, además persigue una filosofia constructivista del conocimiento el cual es elaborado no solo por el profesor sinó también por los propios alumnos. El sistema esta escrito en PHP y utiliza la base de datos MySQL, un escenario muy común en el mundo del soft libre. Me gustaría probarlo en verano de cara a los cursos del año que viene 🙂

Sociedad laica

Acabo de leer un fantástico artículo sobre una sociedad no atada a ninguna religión: Laicismo: Cinco tesis. Estoy absolutamente de acuerdo con todo lo que se propone en el texto, quiero resumir y resaltar los 4 puntos que más me han gustado:

1) La democrácia serà la encargada de construir la moral del pueblo diferenciando lo correcto de lo incorrecto y no una religión concreta. Por supuesto la democrácia no estará en contra de las religiones, al contrario, las protegerà unas de otras ya que muchisimos conflictos han sido generados por creencias diferentes.

2) Una persona tiene el derecho a pertenecer a un grupo religioso pero nunca la obligación o deber. No se permitirá la imposición de ninguna creencia a nadie.

3) Las religiones pueden establecer lo que consideran pecado pero jamás estableceran lo que es legalmente delito. Además, ningún delito podra ser justificado por fe o creencias religiosas. La religión se debe adaptar a las leyes y no al reves.

4) En la escuela pública solo es posible enseñar lo verificable (ciencia, letras…) y ampliamente aceptado (e.g. maltratar una persona es intolerable). Nunca debe utilizarse horario escolar para predicar ningun tipo de creencia ligada a cualquier religión, sin embargo esto si podria ser practicado fuera de dicho horario escolar.

Ahorro de energia en el portatil

A partir de este artículo en los foros de gentoo he visto un par de cosas que por lo visto ahorran energia. El primer comando baja la intensidad de la pantalla en las X:

xgamma -gama 0.7

Para reestablecer el nivel original:

xgamma -gama 1.0

Personalmente también me viene bien pq siempre he pensado que mi portatil es demasiado luminoso y me hace daño a los ojos a pesar de tener el nivel del brillo al minimo.

Los otros comandos tiene que ver con el disco duro, el primero de ellos activa la gestión de energia del disco duro (no se si por defecto se activa sola):

hdparm -B 1 /dev/hda

Para volverlo a desactivar:

hdparm -B 255 /dev/hda

Finalmente podemos establecer el spinlock (tiempo que tarda el disco duro en apagarse si no esta siendo utilizado):

hdparm -S 4 /dev/hda

El numero que se le indique es multiplicado por 5, es decir, en este caso el HD espera 20 segundos antes de apagarse.

Kernel 2.6 y Suspender

Cuando migré de la vieja rama 2.4 del kernel a la nueva lo hice con la versión 2.6.4. Al configuarlo sentí curiosidad por los modos nuevos que habia de suspender la máquina:

1) Te guarda el estado del sistema en swap y apaga el PC.
2) Al encenderlo te recupera el estado del sistema tal y como estaba.

Es muy atractiva la idea asi. En el kernel hay 2 formas de hacer esto:

Power management options (ACPI, APM) -> Software Suspend (EXPERIMENTAL)
Power management options (ACPI, APM) -> Suspend-to-Disk Support

Segun leí en la documentación la primera había sido más testeada así que me decanté por esa opción. Lo active en el kernel y en el grub le pasé por parámetro al kernel “resume=/dev/hda2”, es decir, queria que usase esa partición swap para guardar la info.

Reinicié, ejecute “echo 4 > /proc/acpi/sleep” para suspender… esto mostró por pantalla algunos mensajes del proceso quedandose finalmente paralizado sin poder hacer nada con el PC, así que pensé que quizás se tenia que apagar físicamente. Así lo hice, despues volví a encender el portatil y al iniciar el sistema, no recuperó ningun estado 🙁 Fué un inicio normal y corriente. Después de diversos intentos abandoné.

Hoy, no se muy bien pq motivo, me he vuelto a meter en la configuración del kernel y he decidido probar la segunda opción. La he activado, he recompilado y en el grub le indico al kernel “pmdisk=/dev/hda2” en lugar del “resume=…”. Reinicio y ejecuto “echo -n disk > /sys/power/state” para suspender, el sistema me muestra por pantalla unos mensajes y se apaga. Reinicio de nuevo y cual es mi sorpresa que a media carga lee de la swap el estado anterior y me lo recupera, mostrandome la consola en la que habia ejecutado la orden de suspender!!! Impresionante!!

Intento volver a suspender, esta vez desde las X y no lo consigo 🙁 Me fijo en los logs del sistema y muestra continuamente problemas con los USB 😕 Hago un reinicio normal, vuelvo a entrar en las X e intento suspender…. funciona!! perfecto de nuevo, la recuperación me lleva de nuevo hasta GNOME 😀 Pero vuelvo a observar problemas con USB en los logs.

La cuestión es que recuerdo que no hace mucho que ha salido la versión 2.6.5 del kernel y busco su ChangeLog, efectivamente habían detectado el mismo error que yo y según indican ahí lo han solucionado. Ahora mismo me lo estoy bajando para probarlo, ya os contaré 😉

Actualización Con el kernel 2.6.5 se soluciona uno de los errores USB pero persiste otro, continuamente se va informando en el log del sistema lo siguiente:

Apr 9 20:13:45 luna hub 1-0:1.0: Cannot enable port 1. Maybe the USB cable is bad?
Apr 9 20:13:45 luna hub 1-0:1.0: over-current change on port 1
Apr 9 20:13:47 luna hub 1-0:1.0: Cannot enable port 2. Maybe the USB cable is bad?
Apr 9 20:13:47 luna hub 1-0:1.0: over-current change on port 2

Y no deja volver a suspender 🙁 Una posible solución seria deshabilitar el soporte USB en el kernel ya que tampoco lo utilizo habitualmente, pero no lo voy a intentar, prefiero esperar ya que imagino que se arreglara en un futuro.

Instalador gráfico Gentoo

Luis me ha hecho saber la existencia de un instalador gráfico de Gentoo, esta basado en Anaconda de RedHat y solo hace la instalación base ya que el segundo paso es la instalación de aplicaciones (e.g. GNOME, OpenOffice…) utilizando emerge.

No sabia que ya existía algo implementado pero si recuerdo haber oido discusiones al respecto, mucha gente criticaba la idea de que Gentoo tuviese un instalador gráfico pq entonces seria más fácil y perderia carísma. Esta idea la encuentro estúpida, creo que puede convivir perfectamente un instalador gràfico con uno manual y cada uno que eliga el que le convenga.

En el mundo GNU/Linux existe un cierto desprecio a segun que distribuciones o usuarios de dichas distribuciones, es algo completamente irracional. Yo recuerdo cuando hace años utilizaba Mandrake haber sido criticado por compañeros linuxeros por el mero hecho de utilizar dicha distribución, eso si, después resultaba que eran muy Debianeros pero no sabian ni recompilar el kernel!! No digo que todo el mundo deba saber esto, lo que quiero decir es que como es posible que te sientas “superior” por utilizar una distribución determinada y después no saber demostrar que realmente sabes del tema? Es este tipo de cosas las que me hacen entender que no podemos discriminar a las personas unicamente por la distribución que utilizan o hacer ver que sabemos más por utilizar tal o cual distribución.

No negaré sin embargo que personalmente no me gusta Mandrake o RedHat, tienen unos inconvenientes que me cuesta superar. Sin embargo Gentoo si me agrada a pesar de también tener otros defectos, pero con estos si puedo convivir 😉 En todo caso trato de no discriminar a nadie por su distribución.

Mozilla FireFox y extensiones

Siguiendo mis experimentos con el navegador Mozilla FireFox, hoy he instalado unas cuantas extensiones. De hecho la mayoría de extensiones de FireFox también estan disponibles para Mozilla pero es que la ligereza y velocidad del primero es fantastica. Mis extensiones favoritas:

Edit CSS: Editor de estilos.
Web Developer: Gran cantidad de opciones utiles para webmasters.
SpiderZilla: Descarga todo un website completo al disco duro usando httptrack.
All-in-one Gestures: Permite interaccionar con el navegador solo con los gestos del raton, pulsando el botón izquierdo y realizando ciertos movimientos se puede desplazar por el historial, crear nuevos tabuladores… También permite dibujar el movimiento, esto ultimo me ha encantado 🙂
TextPlain: Las URL o los emails que aparezcan en texto plano se interpretan como si fuesen links realmente.
RSS Reader Panel: Lector de RSS
AdBlock: Bloqueo de publicidad (más potente que el bloqueo de imagenes nativo de FireFox)
TabExtensions: Fantastica extensión con una inmensa cantidad de opciones para los tabuladores, tantas opciones van en contra de la filosofia de GNOME ya que no es sencillo de configurar pero te ofrece una gran potencia.
Bookmark Checker: Permite comprobar el estado de los enlaces guardados en los bookmarks señalando aquellos que ya no son validos.
Bookmark Sync: Sincroniza los bookmarks usando un FTP.
OfflineFB: Permite tener el modo offline en el navegador lo cual hace que no se vayan a buscar las paginas a Internet sinó que se mire en la cache local (si no existe ahi entonces no es posible visualizar). Me ha resultado útil para leer las noticias offline, mientras estoy conectado hablo todos los tabs de las paginas de noticias (cosa que hace que la info se guarde en cache) y despues desconectado me pongo en modo offline (File -> Work offline) y vuelvo a abrir todos los tabs de notícias 🙂
User Agent Switcher: Permite cambiar la cabecera User Agent del HTTP, es decir, permite hacerte pasar por otro navegador cuando visitas una web.

Para instalarlas simplemente hacer click en el link de su pagina correspondiente desde FireFox. He visto que hay un pequeño bug, cuando se instala algo obligatoriamente tienes que cerrar y abrir de nuevo el navegador, de lo contrario si seguimos instalando otras extensiones se repetiran las preguntas que nos hizo la primera instalación. En pocas palabras, que cada vez que instaleis una extensión cerreis el navegador y lo volvais a abrir antes de instalar la siguiente 😉

También estoy poniendo a prueba el lector de mails Mozilla Thunderbird, mucho mas ligero que Evolution pero hay cosas que no me gustan:

1) El corrector ortografico no es en tiempo real, el chequeo se realiza cuando vamos a enviar el mail.
2) En cuentas IMAP solo chequea el buzón principal, el resto de carpetas tienes que seleccionarlas para que mire en el servidor si hay mails nuevos. Este problema lo hereda de Mozilla Mail que también funcionaba así.

Por lo demás perfecto, con la extensión Enigmail puedo utilizar GnuPG igual que hacia antes. Seguiré probandolo 😉

Gaim plugin y combinaciones de tecla

Después de pasarme varias horas intentando hacer del gnome-notificier de Miguel de Icaza un plugin para gaim, resulta que descubro guificator, un plugin que cubre lo que yo pretendia sobradamente. En parte alegria en parte tristeza por perder tanto tiempo intentando hacer yo uno (reaprovechando el código de Miguel) xD Para los que usen Gentoo también esta en el portage aunque inestable. Para compilarlo de forma manual es necesario el código fuente de gaim y se ha de especificar al configure donde esta (./configure –help).

También he descubierto que con ctrl+alt+d se puede ocultar todas las ventanas o viceversa en gnome (sabia la existencia del botón que hacia eso pero no sabia como hacerlo por teclado ;-)). Esto me recuerda algo que creo que no comente por aqui y es que en OpenOffice, cuando nos aparecen ventanas flotantes como la de estilos, es posible arrastralas manteniendo pulsado ctrl y empotrarlas de forma que ya no queden flotantes, me gusta mejor así a mi 🙂

Transparencias y Mozilla FireFox

He acabado las transparencias sobre Mono, todas estan accesibe en el apartado material de la web de los cursos. Las he hecho muy detalladas y van acompañadas de ejemplos y de la aplicación Indexator.NET.

A través de la lista de correo de socios de Hispalinux he dado con una web con transparencias sobre comandos de GNU/Linux muy interesante, encima es FDL así que puede ir de perlas para nuestros alumnos 🙂

Tema aparte, acabo de “descubrir” Mozilla FireFox como navegador, de hecho lo probé hace bastantes meses pero aun le faltaba desarrollo. Ahora mismo esta en un punto bastante interesante, es funcional y carga mucho más rápido que mozilla. Además puedo importar los bookmarks de mi mozilla sin problemas (no como epiphany de GNOME). Lo probaré durante unos dias a ver si le encuentro pegas o me quedo con el 😉