Posts tagged ‘GNU’

marzo 26, 2013

Mis contribuciones en el Proyecto Debian hasta la fecha.

por Josue Ortega

En julio del año pasado tuve la oportunidad de asistir  a Debconf12 en Managua, gracias a esto pude conocer mas a fondo de que se trata el proyecto, como esta estructurado,como poder colaborar  y a mucha gente que colabora  en diferentes áreas  :). Desde ese entonces empece a trabajar para poder colaborar en el proyecto manteniendo paquetes.

Debconf12

Hasta la fecha estoy manteniendo los siguientes paquetes:

WCALC

Este es una calculadora científica CLI  escrita en C ,  a este paquete le tengo mucho cariño porque es el primero que empece a mantener a parte de que usa Flex y Bison, herramientas que me gustan mucho. El upstream es una persona bastante amable que ha aceptado mis parches para la siguiente versión sin darle tantas vueltas al asunto.

Debido al freeze la versión que estoy trabajando se encuentra en el repositorio experimental : http://packages.debian.org/source/experimental/wcalc

Homepage del proyecto: http://w-calc.sourceforge.net/

MP3DIAGS

Este es un programa para identificar y solocuionar problemas en archivos mp3  escrito en C++  y utiliza Qt4, ademas permite agregar información a las pistas. En este paquete tuve la oportunidad de solucionar un Release Critical Bug para Wheezy , la siguiente version de Debian.  Aquí tambien es bastante fácil trabajar con upstream :).

Las versiones que mantengo de este paquete se encuentran en Wheezy, Sid y en Experimentao:  http://packages.qa.debian.org/m/mp3diags.html

Homepage del proyecto: http://mp3diags.sourceforge.net/

PYTHON-GNUPLOT

Este es una interfaz para python del programa GNUPlot, me animé a trabajar en este paquete ya que he trabajado bastante en python los últimos meses.  Con este paquete tuve la oportunidad de trabajar con la gente de Debian-Science, equipo con el cual estoy trabajando actualmente.

Actualmente mantengo la version en experimental por el freeze : http://packages.debian.org/source/experimental/python-gnuplot

Homepage del proyecto: http://gnuplot-py.sourceforge.net/

Estas han sido mis principales contribuciones con el proyecto hasta la fecha, he traducido algunas parte de wiki.debian.org pero no ha sido gran trabajo asi que creo que no es necesario mencionarlo, tengo en mente en el futuro escribir un post de como contribuir con las traducciones.

Para información mas detallada aquí esta el Overview de mis trabajo en los paquetes: http://qa.debian.org/developer.php?login=josueortega%40debian.org.gt

Mi portafolio en Debian:  http://portfolio.debian.net/result?email=josueortega%40debian.org.gt&showall=1&name=Josue+Ortega&gpgfp=&username=&nonddemail=josueortega%40debian.org.gt&aliothusername=noahfx-guest&wikihomepage=Josue+Ortega&forumsid=&mode=html&submit=Build+Debian+Member+Portfolio+URLs

Este es mi primer post del trabajo que hago en Debian, empezaré a escribir updates mas seguido

debian/rules

julio 27, 2011

Tarjeta Broadcom BCM4313 802.11 en Kernel <=3.0 en Debian

por Josue Ortega

Unos meses atras escribí una entrada de como configurar tarjetas broadcom en el kernel 2.38-2-686, para esos días usaba Debian Testing en mi netbook, ahora usando Debian Sid.

Debido a que SID  que es la versión inestable hay actualizaciones con mayor frecuencia. Actualmente ya se encuentra el kernel 3.0 en los repositorios inestables de la distribución, a lo largo de cada upgrade del kernel me ha tocado configurar los módulos para esta tarjeta, y la buena noticia es que los pasos siguen siendo los mismos, así que para aclarar dudas si el procedimiento funciona en versiones posteriores del kernel, la respuesta es afirmativa.

Aquí dejo el enlace a la entrada con los pasos para configurar los módulos de la tarjeta: Tarjeta Broadcom BCM4313 Wheezy

julio 26, 2011

Richard Stallman en Guatemala [Agosto 2011]

por Josue Ortega

Creo que no hace falta escribir demasiado en esta entrada. El titulo lo dice todo y gracias a nuestros amigos de COECYS vamos a poder presenciar en vivo una conferencia de Richard Stallman, quien es el fundador del proyecto GNU.

Evento que no se pueden perder para conocer acerca las ideas fundamentales de la cultura libre y que mejor que con el maestro de maestros en el tema 🙂

Lugar: Auditorio Francisco Vela, Facultad de Ingeniería de la Universidad de San Carlos de Guatemala

Fecha: 8 de Agosto de 2011

Hora:10 am

Costo: Q. 75.00

julio 20, 2011

Las razones por las que uso Software Libre

por Josue Ortega

Desde hace ya casi  tres años que decidí migrar a GNU/Linux, instale Kubuntu 8.04, teniendo un conocimiento casi nulo de esta clase de sistemas operativos. Lo que me motivo a instalar una distribución de este tipo fue el deseo de aprender algo mas que no fuera el ya conocido por todos Window$. Desde la primera vez que inicie sesión en el sistema recién instalado noté la diferencia. Todo corría mas rápido y de alguna manera se sentía mas estable en mi Pentium IV.

Y los siguientes argumentos, bastante clasicos, era los que usaba para exponerle a la gente porque usaba un sistema basado en Linux:

  • No existen virus para Linux
  • Todo funciona de una manera mas estable
  • Velocidad del sistema
  • Muchas aplicaciones sin pagar un solo centavo
Claro, son argumentos validos y es algo que me fascina de GNU/Linux. Pero la gente siempre respondía con argumentos donde listaban aplicaciones privativas, tomando en cuenta la usabilidad de estos. Y  eran puntos que no podía rebatir, al menos con un usuario final. Ahora ya han pasado tres años desde eso y he aprendido las verdaderas ventajas de usar GNU/Linux y Software Libre.
Ya teniendo conciencia de lo que es el Software Libre, se que los beneficios de usarlo van mas alla de un sistema sin virus y veloz.
Con el software libre en realidad obtuve la libertad de hacer lo que quiera con mi pc. Confiando que no hay código que desconozco que pueda enviar información personal no autorizada por mí.  
Ademas de esto tengo la libertad de compartir con mis conocidos y amigos el software que uso sin tener que estar pensando en licencias que me lo prohíben y teniendo la certeza que será un producto que les beneficiara.
El conocimiento  y el espíritu investigador del individuo que usa software libre crece en gran manera, al no encontrar limitante alguna para aprender a utilizar algún paquete.
A esto se le suma la libre modificación del programa que usamos para adaptarlo a nuestras necesidades.
Todo lo que menciono anteriormente se resume en las cuatro libertades del software libre:

  • La libertad de ejecutar el programa, para cualquier propósito (libertad 0).
  • La libertad de estudiar cómo trabaja el programa, y cambiarlo para que haga lo que usted quiera (libertad 1). El acceso al código fuente es una condición necesaria para ello.
  • La libertad de redistribuir copias para que pueda ayudar al prójimo (libertad 2).
  • La libertad de distribuir copias de sus versiones modificadas a terceros (la 3ª libertad). Si lo hace, puede dar a toda la comunidad una oportunidad de beneficiarse de sus cambios. El acceso al código fuente es una condición necesaria para ello.      http://www.gnu.org/philosophy/free-sw.es.html
Conclusion
El usar software libre es mas alla de utilizar software con ventajas tecnicas sobre otro tipo de software, usar software libre representa la libertad de cada individuo de hacer lo que quiera con lo que adquiere, sin tener que estar restringido por licencias o contratos con empresas que solo buscan su beneficio y no el del usuario. 
El software libre es el futuro, un futuro donde el conocimiento no puede ser negado a nadie y es compartido libremente por cada individuo en la sociedad.
enero 9, 2011

Libertad en su máxima expresión

por Josue Ortega

Los últimos días he tenido un gran cargo de conciencia solo por haber puesto el logo de hasefroch en mi entrada del día de los inocentes, debo decir que realmente me ha torturado. No es para tanto pero para compensar que profane mi blog a continuación mencionare algunas distribuciones que Free Software Fundation considera cien por ciento libres.

Para esto, primero vamos a repasar las 4 libertades del Sotware Libre:

0.  La libertad de usar el programa con cualquier propósito.

  1. La libertad de estudiar el funcionamiento del programa y adaptarlo a las necesidades.
  2. La libertad de distribuir copias, con lo que puede ayudar a otros.
  3. La libertad de mejorar el programa y hacer públicas las mejoras, de modo que toda la comunidad se beneficie.

Como todos sabemos con algun tipo de software que no cumpla con alguna de las libertades antes mencionadas deja de ser Software Libre, eso fue lo que me contó Richard haha. Claro crear un criterio con lo anterior mencionado, se puede dar lugar a muchas ambigüedades, así que básicamente se basan en los siguientes documentos:

Pautas para distribuciones de sistema libres

Bueno ahora lo que todos esperaban: el listado de las distribuciones libres. Me agrada bastante el objetivo de estas distribuciones ya que son una muestra de que no se necesita software privativo para obtener un producto totalmente funcional y de buena calidad :D.

Otra cosa que me llama bastante la atención es que varias de estas distribuciones son desarrolladas por personas de habla hispana otro punto a favor :).

Y empezamos:

Venenux:
Distribucion para destinada para usuarios de Iberoamerica y entorno de Escritorio KDE
www.venenux.org

Trisquel:

Trisquel es talvez de las mas mencionadas de su genero, esta basada en Ubuntu , esta diseñada para usarla en las casas, centros educativos y pequeñas empresas:

http://trisquel.info/en

Ututo:

Distribución creada en Argentina basada en Gentoo. Fue la primera en ser reconocida como distribución totalmente libre por el Proyecto GNU

http://www.ututo.org/www/

Blag:

Distribucion basada en Fedora

http://www.blagblagblag.org/

Dragora:

Otra distribución desarrollada en Argentina construida desde cero

http://www.dragora.org

gNewSense:

Distribución basada en Debian y Ubuntu, es patrocinada por la FSF.

http://www.gnewsense.org

Y por ultimo dos distribuciones diseñadas para edición multimedia:

Dynebolic:

Esta distribución es especial para la edición de vídeo y audio

http://dynebolic.org/

Musix GNU+Linux:

Musix GNU+Linux  es una distribución basada en Knoppix desarrollada en Argentina especializada para la producción de audio destinado a músicos, técnicos sonidistas, DJs, cineastas, diseñadores gráficos, y usuarios en general

http://www.musix.org.ar/

diciembre 22, 2010

Descubriendo wget

por Josue Ortega

Escribo esta entrada para nuevos usuarios, para que le empiecen a sentir mas sabor a su distribucion GNU/Linux :).

En resumen wget es una herramienta que permite la descarga de contenidos en  servidores web. Básicamente lo que nos facilitara es que descargara  el contenido entero de una carpeta en un servidor. Por ejemplo si deseamos bajar todo el contenido del directorio que contiene la version beta de debian squeeze : (Tendríamos que tener una super velocidad por su puesto jaja)

wget -r http://cdimage.debian.org/cdimage/squeeze_di_beta2/

Algo interesante es que con wget podemos descargar a nuestras computadoras  el contenido que solo esta disponible online 😀 .

Las reglas como la del contenido solo disponible online se encuentran en el directorio root del servidor en el archivo “robots.txt” . Y como se pueden imaginar esto se puede “saltar” solo basta con agregar este comando cuando utilicemos wget

-e robots=off --wait 1

En conclusión esto fue una pequeña introducción a esta util herramienta si quieren usarla al máximo ahí esta el manual claro

man wget

:p

noviembre 20, 2010

Parche Milagroso de 200 lineas, implementado en 4 Lineas, en Debian

por Josue Ortega

Supongo que ya muchos ha escuchado del parche milagroso de 200 lineas, con el cual se mejora la interacción con el escritorio. Hoy encontré una version de este parche pero implementado en 4 lineas, dicen por ahi que el señor Torvalds no se quedó callado con eso.

Probé el Parche pero siguiendo las instrucciones encontré que unos puntos de montaje no existen en Debian así que aqui les dejo los pasos para poder probarlo en Debian:

Debemos añadir las siguientes lineas a nuestro archivo /etc/rc.local, antes del return 0 por supuesto

mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent

Ahora, hacemos ejecutable el archivo:

chmod +x  /etc/rc.local

Terminados los pasos anteriores, debemos agregar el parche a nuestro .bashrc, que se encuentra en la carpeta home de nuestro usuario.

if [ "$PS1" ] ; then
   mkdir -p -m 0700 /dev/cgroup/cpu/user/$$ > /dev/null 2>&1
   echo $$ > /dev/cgroup/cpu/user/$$/tasks
   echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi

Despues de haber agregado estas lineas a nuestro perfil de bash, creamos un archivo nuevo en el directorio  /usr/local/sbin

y le ponemos por nombre

cgroup_clean

Lo cual seria asi:

#nano /usr/local/sbin/cgroup_clean

y agregamos lo siguiente:

#!/bin/sh
rmdir /dev/cgroup/cpu/$*

Hacemos ejecutable el archivo:

chmod +x /usr/local/sbin/cgroup_clean

Finalmente corremos el rc.local

#/etc/rc.local


Fuente:

http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html

julio 29, 2010

Saludando al mundo con Ensamblador

por Josue Ortega

La semana pasada me dejaron una tarea introductoria al lenguaje ensamblador que consistía en explicar como se hace el famoso programa de “hola mundo”. Asi que decidí subir el “how to” por que me gusto como quedo :P.
El “how” to esta escrito para ser compilado con GAS en la arquitectura IA-32 bueno aquí les va:

Para poder programar en lenguaje ensamblador en nuestro sistema operativo
gnu/linux necesitamos tener instalados GNU Binutils, en el cual estan contenidos
el compilador de ensamblador:as y el linker: ld.
Ya que tenemos instalado el binutils, ya podemos trabajar y hacer nuestros
programas en lenguaje ensamblador.
A continuación imprimiremos en pantalla “Hola Mundo” en ensamblador y lo
compilaremos con GAS.
El código es :

.text
.global _start
_start:
movl $len,%edx
movl $msg,%ecx
movl $1,%ebx
movl $4,%eax
int $0x80
movl $0,%ebx
movl $1,%eax
int $0x80
.data
msg:.ascii"hola mundo"
len=15

A continuación una breve explicacion de cada linea del codigo anterior:
Como se puede notar las directivas van antecedidas por un punto “.”.
Directiva text:
Esta directiva indica donde es el inicio de codigo en el arhivo .as
Directiva global:
Con esta directiva se indica que la etiqueta “_start” es visible para todas las
partes del programa.
Directiva data:
En esta sección se declaran las variables inicializadas, como en este caso la
variable msg que se especifica que es de tipo ascii y su contenido es la cadena
“hola mundo”.
También la variable len que se le asigna el numero 15.
_start: indica donde inicia el programa
A continuación detallare la acción de las lineas de código

movl $len,%edx # mueve el contenido de len al registro edx
movl $msg,%ecx #mueve el contenido de msg a el registro ecx
movl $1,%ebx #coloca el valor de 1 al registro ebx
movl $4,%eax #coloca el valor de 4 al registro eax
int $0x80 #hace la llamada al sistema para kernel mode
movl $0,%ebx #coloca el valor de 0 en el registro ebx
movl $1,%eax #coloca el valor de 1 en el registro eax
int $0x80# llamada al sistema para kernel mode

Básicamente lo que el código anterior hace es mandar de parámetros al kernel el
contenido de los registros para que las acciones correspondientes sean
ejecutadas.
En el registro eax se debe posicionar el codigo de la llamada al sistema que
deseamos ejecutar, en este caso para write, es el numero 4.
En el registro ebx se coloca el codigo de la llamada al sistema para la accion
que se debe realizar despues de imprimir en pantalla, en este caso 1 para que
salga.
En el registro ecx se coloca el valor del mensaje y en el edx el tamaño de la
cadena. El write en un HLL se veria: write(salir, mensaje, len)
Para salir del programa se coloca 0 en el registro ebx y 1 en el eax, y de
ultimo se hace la llamada al sistema.
Compilar el Archivo:
Para compilar el archivo se utiliza el comando as con el parametro -o que genera
una salida con extension .o que contiene codigo objeto.

    as -o hola.o hola.as

Linkear el archivo:
Una vez compilado y con nuestro archivo con codigo objeto necesitamos linkear
nuestro archivo para crear un ejecutable con todas las librerias necesarias

ld -s -o hola hola.o

Una vez creado el ejectable, nuestro programa ya esta listo para correr:

./hola

Y finalmente el output

josue@desktop:~/assembler$ ./hola
hola mundo
julio 9, 2010

En menos de 3 minutos, ¿Qué es Software Libre?

por Josue Ortega

Ya que llegaron las anheladas vacaciones, estoy de vuelta en el blog :), y hoy me encontré con un vídeo, en el cual se explica el Software Libre en menos de 3 minutos. Ideal para aquellos que no tienen idea de que es el Software Libre, y para los que ya sabemos lo que es nos da ideas de como explicarlo a las demas personas,

Les dejo el vídeo

:

junio 5, 2010

Error al compilar kernel 2.6.34 en Debian Lenny/Squeeze

por Josue Ortega

El día de hoy compile un par de kernels para probarlos en mi computadora, compile el 2.6.27 y el 2.6.34. La compilación con el kernel .27 no presento grandes dificultades, talves por tratarse de un kernel ya bastante antiguo.

Con respecto al kernel 2.6.34 a la hora de generar el .deb de headers, el error era:

This is kernel package version 11.015.
echo "The UTS Release version in include/linux/version.h"; echo "	   \"\" "; echo "does not match current version:"; echo "	   \"2.6.33.2\" "; echo "Please correct this."; exit 2
The UTS Release version in include/linux/version.h
 "" 
does not match current version:
 "2.6.34" 
Please correct this.
make[1]: *** [debian/stamp/install/linux-image-2.6.33.2] Error 2
make[1]: se sale del directorio `/usr/src/linux-2.6.33.2'
make: *** [kernel_image] Error 2

Para solucionarlo solo debemos incluir  la cabecera utsrelease.h a nuestras librerias, copiandola de la carpeta donde se encuentra el source del kernel:

cp/path de la carpeta del source/ include/generated/utsrelease.h include/linux/

Despues de copiar la cabecera, solo basta con reiniciar el proceso.

Bueno a disfrutar del kernel mas reciente en nuestro Debian, en mi caso un híbrido de lenny y squeeze. Y lo mejor de todo compilado por nosotros mismos 😀