2006/12/30

Manual: Como compilar / instalar Enlightenment 17 CVS en Mandriva 2007

Sistemas Base de Enlightenment


Enlightenment ha crecido más que un Administrador / Gestor de ventanas [1] [2]. Tiene muchos sistemas que han crecido por si mismos para apoyar el desarrollo de la siguiente version (0.17) y todo el esfuerzo está entrando en la solidificación de estos sistemas para hacer más estable el desarrollo sobre ellos. Esto ha conducido a mucho codigo producido lejos y más allá de un Administrador de ventana. La idea es compartir tanto código como sea posible con otros programas, y así que un ejército pequeño de bibliotecas compartidas se ha desarrollado para Enlightenment. Esta introduccion procura cubrir algunos de éstas (especialmente las más interesantes) para dar una buena penetración en porqué existen, lo que hacen, cómo utilizarlos, y adonde van.


Referimos a estos sistemas como las "Bibliotecas de la fundación de Enlightenment" (Enlightenment Foundation Libraries) o EFL por sus siglas en ingles, pues son la fundación del proyecto y actualmente el contener todo el trabajo duro. El intento es tener bibliotecas que sean extremadamente fáciles de utilizar y de aprender, eso optimiza automáticamente para el programador en lo posible y ahorra el tiempo y el esfuerzo del programador a largo plazo. Creemos que hemos alcanzado muchas de estas metas y que tenemos algunos aspectos muy únicos que pueden estar de gran interés a los reveladores fuera del proyecto de crear algunas herramientas interesantes y asombrosas.


Enlightenment 17


Enlightenment


Enlightenment es el Administrador de Ventanas y el Shell del Escritorio. Esto es lo que piensa la mayorí­a de la gente que es solamente Enlightenment. Eso solo la punta del iceberg por mucho aunque Enlightenment es el sofware insignia en el proyecto. Es actualmente mucho mas reciente que cualquier otra parte de las EFL.


Enlightenment, Como DR0.17 (que no se ha lanzado todaví­a. Las ultimas capturas de CVS son 0.16.999) es nuestro Administrador de Ventanas de "siguiente generacion". No utiliza ninguna extension avanzada de X disponible en algún Servidor X nuevo[1] [2], todaví­a, pues se está esforzando ser al revés-compatible a todo los Servidores X incluso en las máquinas más viejas.


Esta siendo diseñado no solo para nuevas caracterí­sticas, sino también para trabajar en los dispositivos con poco poder de procesamientos, así­ como los sistemas de más de mayor capacidad de procesamiento de hoy en dia. No es el mejor o el mas rapido pero esta cerca a la maxima velocidad y cerca del minimo por tamaño (comparado a sus contrapartes que tienen funcionalidad equivalente), pero sobretodo a cosas que se esfuerza ser hermoso.


Creemos que tu escritorio no debe ser una monstruosidad. Debe ser funcional Y hermoso. Enlightenment permite que modifiques enteramente la mirada para requisitos particulares de ella ví­a temas a un grado que la mayorí­a de los otros Administradores de Ventanas tan solo pueden soñar, especialmente hacerlo a la misma velocidad y eficacia. Enlightenment aun no es listo para el lanzamiento a los usuarios, así­ que mantenemos el desarrollo sobre todo sin apoyo, pero no desaprobamos su instalacion para que puedan saborear lo que esta por venir.

Evas


Evas



Evas es un Display Canvas. Esto es diferente al usual "modo inmediato" del sistema de visualización que la mayorí­a de los programadores están acostumbrados y que existen en el Xlib, GDI e incluso los niveles de OpenGL al hacer la programación de los gráficos. La diferencia es que el programador tiene que llamar rutinas PARA DIBUJAR la pantalla o actualizar dibujando una operación a la vez, por ejemplo dibujar lineas, pegar imagenes dibujar cajas o pegar texto. Cuando la pantalla necesita una actualización estas operaciones son hechas otra vez por el código, normalmente del elemento del fondo hata el que esta sobre todo (algoritmo de los pintores).


Este es el "modo inmediato"de dibujado. Evas es diferente. Es estructural por naturaleza, así­ que en vez del dibujo, describes el contenido del canvas (o la escena) en términos de primitivos (imágenes, lí­neas, cajas, polí­gonos, secuencias de texto etc.) y caracterí­sticas (color, el apilar, tamaño, etc.). El dibujo sí­ mismo es manejado por el canvas, que actúa como máquina del estado, haciendo no realmente ningun "trabajo duro"hasta que se ejecuta una llamada del render canvas, en cuyo caso evalúa el anterior y el estado actual y pone al dí­a apropiadamente la pantalla sin el que programador tenga que saber se hace esto.


Evas


Evas es una pieza base de las EFL. Es el renderizador y el motor del administrador de display que esta bajo cualquier cosa veas en pantalla. Hace todo el trabajo de administrar todos los objetos mostrados, su estado, estados de cambio, el nivel de las capas, renderizado y escalamiento, carga de la imagen, renderizado de texto, optimizado de la tuberia de manejo, optimizando la tuberí­a de la exhibición para evitar el trabajo y más. Hace los muchos del trabajo dificil del display y es portable más allá del X.


Incluso funciona en el framebuffer directamente sin necesitar X, debajo de Qtopia de Trolltech, en DirectFB, puede renderizar a un buffer de memoria, y puede usar OpenGL para acelerar el renderizado. Es extremadamente flexible y de gran alcance, ahorrando mucho tiempo escribir las rutinas de dibujo repetidoras las cuales a menudo no lo hacen optimamente. Esto evita el tiempo, el cuidado y el esfuerzo que la mayorí­a de los programadores no desearí­an pasar, porque distraen del trabajo importante.


Evas embedido


Pero a pesar de todas las cosas que Evas pueda hacer, no es muy grande. Se ha mantenido pequeño, para hacerlo viable NO SOLO para el uso en escritorios pesados sino también en los dispositivos limitados de recursos tales como PDA, los teléfonos móviles y los teléfonos inteligentes, los sistemas estéreos, los reproductores de DVD, los sistemas de PVR/DVR y más.


Ya se han portado a telefonos moviles y sistemas PVR/DVR probando su capacidad de mostrar estas exhibiciones muy agradablemente con efectos hermosos. El desarrolador no tiene que cambiar cómo crea codigo para un dispositivo o su escritorio pues el API y el renderizado son igual, así­ que no hay ambientes o emuladores especiales del desarrollo necesarios. Esto ahorra tiempo y esfuerzo, permitiendo que el código del escritorio y de dispositivo se comparta y sea mantenido fácilmente. También puesto que Evas oculta los detalles de los dispositivos, y virtualiza la exhibición en un nivel de objeto, el programador no necesita cuidar cómo renderizar cosas. Pueden utilizar un sistema estándar que sea universal a través de todos las instancias de Evas.


Evas proporciona la alpha blending, escalamiento de alta calidad de imágenes, anti-aliased texto truetype, gradientes, lí­neas, polí­gonos y más. La lista de objetos apoyados está creciendo, y puede ser extendida ví­a objetos elegantes. Tiene un mecanismo del interfaz a tener en cuenta para que los datos de video sean dirigidos eficientemente (que es lo que emotion explota) y más.

Ecore


Ecore es un grupo modular de bibliotecas muy ligadas que proporcionan funcionalidad core event loop y tareas relacionadas. Como core event loop proporciona la conversión de sistemas señales en acontecimientos, para evitar tener que tener código reentrante, manejo basico del descriptor de archivo, monitoreo y paso de control hacia una apropiada rutina de callback donde se necesiten, manejo de temporizadores, llamadas idle, y otra infraestructura general y codigo loop.


También proporciona faciles wrappers alrededor de sistemas comunes tales como X, Evas (para la disposición y combinacion con X), el frame-buffer, administracion de la configuración, inter comunicación de proceso, manejo de socket, programación cliente/del servidor, las conversiones de codificación del texto (e.g. EUCJP a UTF8), dirección de trabajo diferida y más. Esta biblioteca es un ahorrador grande de tiempo y la biblioteca base que se puede utilizar para hacer todas los cosas básicass que se necesita hacer, con código y esfuerzo mí­nimos.


La mejor manera de describir Ecore está como el cemento entre los ladrillos. Lleva a cabo cosas juntas muy agradable. En ejemplos posteriores mucho de la disposición y de la infraestructura es gracias a Ecore.
Edje

Edje


Edje


Edje es una de las partes más únicas de EFL, combinando muchas cosas que Shockwave / FLASH puede hacer con algunas cosas que no puede, sino que en vez de ser diseñado como reproductor, se diseño como una biblioteca escalva que se utilizará por un aaplicacion para mejorar el contenido de las aplicaciones ví­a ficheros externos de datos comprimidos. Se está ampliando continuamente, y gracias a su diseño limpio es fácil mejorar. Este es el motor detrás de los temas de Enlightenment 0.17 y más allá. Formaliza temas de Enlightenment de una manera simple y constante.


Una lista rápida de sus caracterí­sticas:


  • Imágenes Bitmap escalables
  • Imágenes en linea altamente comprimidas
  • Compresion sin perdida y con poca perdida con o sin canal alfa
  • fuentes comprimidas en linea truetype
  • Multiples Efectos de fuentes incorporados
  • Redimensionado atumatico de fuentes basado en tamaño o en area
  • Compresion de texto y cortado basado en elipsis
  • Objetos rectángulo
  • Sistema configurable de esquema de color
  • La capacidad de embedir objetos de Edje con obejtos Edje
  • Lenguaje Embryo-script para interacciones complejas
  • Scripts encajonados para no hacer demasiado daño
  • Alpha blending
  • Etiquetas completamente escalables y de tamaño modificable y metricas de la interfaz
  • Tweened animation completamente calculadas para reproduccion ultra suave


Edje incluye actualmente un archivo de formato de fuente como el de C (que usa braces y la anidados similares a la sintaxis de C con anidado como el de XML) conocido como archivos de "EDC"que se compilan en los archivos binarios de "EET"que entonces son utilizados por la biblioteca de Edje para mostrarlos como un png o JPEG no son la "fuente"ellos mismos, son una representación comprimida, amistosa para la maquina de una imagen. Igual va para los archivos de EET.


El plan al largo plazo es proporcionar una nueva versión de la vieja herramienta Etcher que fue producida como un prototipo precursor para Edje (llamado Ebits) que dio a usuario una herramienta GUI de gran alcance para crear tales archivos y para corregirlos. Puesto que Edje es de mayor alcance y complejo de lo que Ebits nunca seria, este trabajo todaví­a no se ha hecho, sino está en la mesa de planeacion.
Embryo


Embryo es una máquina virtual y un compilador basados en el lenguaje de programación Small. Ha tenido muchos bugs reparados y mucho trabajo de portabilidad. Hechos al motor y al compilador. Se ha hecho más pequeño y más simple haciéndolo ideal para la inclusión en cualquier programa que deseara utilizar pedazos pequeños de "script logic"con un sistema más complejo, pero no desea traer recursos masivos requeridos como lo hacen otros idiomas tales como Perl, Python, Java, rubí­, etc.


El motor del Embryo es minúsculo. El motor de la base es menos de 1700 lí­neas de código limpio de C, con la máquina virtual entera incluyendo rutinas básicas de la manipulación y rutinas matemáticas, headers y el código para uso general siendo solamente 3000 lí­neas de código. Los requisitos de la memoria para una escritura están sobre 8-16Kb de RAM, y se ejecutan muy rápidamente mientras que se compilan ya en bytecode.


Los scripts Embryo se encajonan asi que no pueden accesar archivos totalmente, así­ que no pueden tener acceso a archivos, no asignan memoria, no tienen acceso a la red, procesos de control ni hacen cualquier cosa que no se ha concedido explí­citamente a ellos como llamada de función nativa exportada. Por lo tanto una escritura del Embryo por naturaleza es muy segura además de ser pequeña y muy rápida. El único daño que puede hacer está ví­a cualquier llamada de función a un programa puede proporcionar deje al script interconectar con el sistema, y éste es el mismo peligro inherente en TODOS lo sistemas. La ventaja es que el programador no necesita preocuparse de problemas fuera de esto.

traduccion de: http://enlightenment.org/Enlightenment/DR17/index.html

Paginas relacionadas a Enlightenment

http://enlightenment.org/
http://enlightenment.freedesktop.org/
http://get-e.org/
http://www.rasterman.com/

Videos de Muestra


http://www.rasterman.com/files/e17_movie-00.avi
http://www.rasterman.com/files/e17_movie-01.avi
http://www.rasterman.com/files/e17_movie-02.avi
http://www.rasterman.com/files/e17_movie-03.avi
http://www.rasterman.com/files/e17_movie-04.avi
http://www.rasterman.com/files/e17_movie-05.avi
http://www.rasterman.com/files/eem-live.avi
http://www.rasterman.com/files/eem.avi

Dependencias de Enlightenment:


    gettext-0.14.6-1mdv2007.0.i586
    libgettextmisc-0.14.6-1mdv2007.0.i586
    gettext-devel-0.14.6-1mdv2007.0.i586
    autoconf2.1-2.13-25mdv2007.0.noarch
    autoconf2.5-2.59-7mdv2007.0.noarch
    m4-1.4.4-1mdk.i586
    automake1.8-1.9.6-3mdk.noarch
    taglib-1.4-1mdk.i586
    libtaglib0-1.4-1mdk.i586
    libtaglib0-1.4-1mdk.i586
    libtaglib0-devel-1.4-1mdk.i586
    xine-ui-0.99.4-7mdv2007.0.i586
    libxine1-1.1.2-3mdv2007.0.i586
    libxine1-devel-1.1.2-3mdv2007.0.i586
    libsqlite3_0-3.3.6-3mdv2007.0.i586.rpm
    libsqlite3_0-devel-3.3.6-3mdv2007.0.i586
    libapplewm7-1.0.0-3mdv2007.0.i586
    libapplewm7-devel-1.0.0-3mdv2007.0.i586
    libdmx1-devel-1.0.2-2mdv2007.0.i586
    libfontenc1-devel-1.0.2-2mdv2007.0.i586
    libfs6-devel-1.0.0-3mdv2007.0.i586
    liblbxutil1-devel-1.0.1-2mdv2007.0.i586
    libmesaglw1-6.5-17mdv2007.0.i586
    libmesaglw1-devel-6.5-17mdv2007.0.i586
    liboldx6-1.0.1-3mdv2007.0.i586
    liboldx6-devel-1.0.1-3mdv2007.0.i586
    libwindowswm7-1.0.0-3mdv2007.0.i586
    libwindowswm7-devel-1.0.0-3mdv2007.0.i586
    libxaw-devel-1.0.2-4mdv2007.0.i586
    libxaw6-1.0.2-4mdv2007.0.i586
    libxcomposite1-devel-0.3-2mdv2007.0.i586
    libxdamage1-devel-1.0.3-2mdv2007.0.i586
    libxevie1-devel-1.0.1-2mdv2007.0.i586
    libxfont1-devel-1.1.0-4mdv2007.0.i586
    libxfontcache1-devel-1.0.2-2mdv2007.0.i586
    libxkbfile1-devel-1.0.3-2mdv2007.0.i586
    libxkbui1-devel-1.0.2-2mdv2007.0.i586
    libxorg-x11-devel-7.1.0-6mdv2007.0.i586
    libxp6-devel-1.0.0-3mdv2007.0.i586
    libxpm4-devel-3.5.5-2mdv2007.0.i586
    libxprintapputil1-1.0.1-3mdv2007.0.i586
    libxprintapputil1-devel-1.0.1-3mdv2007.0.i586
    libxprintutil1-1.0.1-3mdv2007.0.i586
    libxprintutil1-devel-1.0.1-3mdv2007.0.i586
    libxres1-devel-1.0.1-2mdv2007.0.i586
    libxscrnsaver1-devel-1.1.0-2mdv2007.0.i586
    libxtrap6-1.0.0-3mdv2007.0.i586
    libxtrap6-devel-1.0.0-3mdv2007.0.i586
    libxtst6-devel-1.0.1-3mdv2007.0.i586
    libxv1-devel-1.0.1-3mdv2007.0.i586
    libxvmc1-devel-1.0.2-2mdv2007.0.i586
    libxxf86dga1-devel-1.0.1-2mdv2007.0.i586
    libxxf86misc1-devel-1.0.1-2mdv2007.0.i586
    x11-server-1.1.1-11mdv2007.0.i586
    x11-server-devel-1.1.1-11mdv2007.0.i586
    x11-server-xdmx-1.1.1-11mdv2007.0.i586
    x11-server-xnest-1.1.1-11mdv2007.0.i586
    x11-server-xvfb-1.1.1-11mdv2007.0.i586
    x11-xtrans-devel-1.0.1-1mdv2007.0.i586
    libcurl3-7.15.5-1mdv2007.0.i586
    libcurl3-devel-7.15.5-1mdv2007.0.i586
    libidn11-devel-0.6.5-1mdv2007.0.i586
    flex-2.5.4a-25mdv2007.0.i586
    bison-2.3-1mdv2007.0.i586
    libgtk+2.0_0-devel-2.10.3-4mdv2007.0.i586
    libtool-1.5.20-9mdv2007.0.i586
    libtool-base-1.5.20-9mdv2007.0.i586
    libdirectfb0.9_25-devel-0.9.25.1-2mdk.i586
    libdirectfb0.9_25
    libltdl3-1.5.20-9mdv2007.0.i586
    libltdl3-devel-1.5.20-9mdv2007.0.i586
    libfreetype6-static-devel-2.2.1-4mdv2007.0.i586
    pkgconfig-0.20-2mdk.i586
    ed-0.2-32mdk.i586
    libnetpbm10-10.34-2mdv2007.0.i586
    netpbm-10.34-2mdv2007.0.i586
    sam2p-0.44.14-1mdk.i586
    tetex-3.0-18mdv2007.0.i586
    texinfo-4.8-4mdv2007.0.i586
    libopenssl0.9.8-devel-0.9.8b-2mdv2007.0.i586
    libopenssl0.9.8-0.9.8b-2mdv2007.0.i586
    libatk1.0_0-devel-1.12.2-1mdv2007.0.i586
    libatk1.0_0-1.12.2-1mdv2007.0.i586
    libcairo2-devel-1.2.4-2mdv2007.0.i586
    libcairo2-1.2.4-2mdv2007.0.i586
    libgdk_pixbuf2.0_0-devel-2.10.3-4mdv2007.0.i586
    libgdk_pixbuf2.0_0-2.10.3-4mdv2007.0.i586
    libpango1.0_0-1.14.3-2mdv2007.0.i586
    libpango1.0_0-devel-1.14.3-2mdv2007.0.i586
    libglib1.2-1.2.10-16mdk.i586
    libglib1.2-devel-1.2.10-16mdk.i586
    libgtk+1.2-1.2.10-45mdv2007.0.i586
    libgtk+1.2-devel-1.2.10-45mdv2007.0.i586


      Dependencias de Imlib:

      libjpeg62-static-devel-6b-39mdk.i586
      libjpeg62-devel-6b-39mdk.i586
      libjpeg62-6b-39mdk.i586
      libpng3-1.2.12-2mdv2007.0.i586
      libpng3-devel-1.2.12-2mdv2007.0.i586
      libtiff3-3.8.2-5mdv2007.0.i586
      libtiff3-devel-3.8.2-5mdv2007.0.i586.rpm
      libungif4-devel-4.1.4-2mdv2007.0.i586
      libungif4-4.1.4-2mdv2007.0.i586
      zlib1-1.2.3-2mdv2007.0.i586
      zlib1-devel-1.2.3-2mdv2007.0.i586
      libbzip2_1-1.0.3-6mdv2007.0.i586
      libbzip2_1-devel-1.0.3-6mdv2007.0.i586
      libid3_3.8_3-3.8.3-10mdk.i586
      libid3_3.8_3-devel-3.8.3-10mdk.i586
      libid3tag0-devel-0.15.1b-5mdv2007.0.i586
      libid3tag0-0.15.1b-5mdv2007.0.i586



Todas las dependencias se encuentran en los repositorios de urpmi, si no sabes que es urpmi revisa estos enlaces:

Todo lo que siempre quisiste saber sobre urpmi pero nunca te atreviste a preguntarlo
http://drakedalfa.blogspot.com/2006/06/todo-lo-que-siempre-quisiste-saber.html
http://www.llermania.com/listas/urpmi_lista_rapida.html

URPMI
http://urpmi.org/
http://en.wikipedia.org/wiki/Urpmi
http://es.wikipedia.org/wiki/Urpmi
http://qa.mandriva.com/twiki/bin/view/Main/UrpmiResources
http://www1.mandrivalinux.com/cooker/urpmi.html
http://qa.mandriva.com/twiki/bin/view/Main/UrpmiFAQ
http://qa.mandriva.com/twiki/bin/view/Main/UrpmiDev

Easy URPMI
http://easyurpmi.zarb.org/

Ahora desintalaremos el imlib2 que viene con mandriva de esta forma:


rpm -e -v --nodeps libimlib2_1
rpm -e -v --nodeps libimlib2_1-filters
rpm -e -v --nodeps libimlib2_1-loaders


estos son los archivos que se desinstalaran:

libimlib2_1-filters-1.2.1-1mdk.i586
libimlib2_1-loaders-1.2.1-1mdk.i586
libimlib2_1-1.2.1-1mdk.i586

no importa que no esten ya que compilaremos el imlib2 de cvs y se colocaran los archivos en el lugar de los anteriores (cuando se hace esto se adquiere una mejor calidad en las imagenes y las aplicaciones que usan imlib son mas rapidas) porque el imlib que esta en CVS es una libreria mas nueva y claro al compilarse se hace con optimizacion para el sistema, para que urpmi no sobre escriba los archivos compilado de la imlib cvs se debe agregar lo siguiente en el archivo /etc/skip.list :


# Here you can specify the packages that won't be upgraded automatically
# for example, to exclude all apache2 packages :
# /apache2/

libimlib2_1
libimlib2_1-devel
libimlib2_1-filters
libimlib2_1-loaders


Ahora que ya tenemos todas las dependencias instaladas debemos bajar el codigo de Enlightenment del servidor cvs, puedes crear un directorio y luego entras a el para que cuando ejecutes los comandos siguientes las fuentes se descarguen a ese directorio caso contrario se descargaran al directorio actual donde te encuentras:


cvs -z3 -d:pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e co e17



cvs -z3 -d:pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e co e_modules


Con esos dos comandos habras bajado Enlightenment 17 y sus modulos pero si te animas a bajar mas puedes bajar mas software de Enlightenment muchos de estos programas no estan terminados y tienen fines experimentales por el momento:


cvs -z3 -d:pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e co misc


Ahora que tenemos todo listo entramos en los directorios descargados y comenzamos a compilar el orden de compilacion es el siguiente:

Librerias

e17/libs/imlib2
e17/libs/edb
e17/libs/eet
e17/libs/imlib2_loaders
e17/libs/evas
e17/libs/ecore
e17/libs/epeg
e17/libs/embryo
e17/libs/edje
e17/libs/epsilon
e17/libs/esmart
e17/libs/ewl
e17/libs/engrave
e17/libs/emotion

Aplicaciones

e17/apps/e
Administrador de Ventanas y Shell Grafico

e17/apps/e_utils
Aplicaciones para Administrar "amigablemente" E17

Modulos
e_modules/
Modulos que agregan funcionalidades a Enlightenment estos se deben compilar como usuarios normales para que se instalen en tu home

Para la compilacion solo necesitamos ejecutar el script autogen.sh dentro de cada directorio del paquete que queramos compilar.


./autogen.sh


Puedes pasarle parametros a autogen como si fuera configure si no le pones ninguno enviara las cosas a /usr/local caso contrario los enviara a donde le especifiques los dos parametros mas importantes son libdir y bindir, directorio de librerias y de binarios respectivamente.

Los puedes especificar asi:


./autogen.sh --bindir=/usr/bin --libdir=/usr/lib


Si no colocas un path a librerias y / o binarios tendras que agregar /usr/local/bin a tu path en .bash_profile en tu home y /usr/local/lib a tu /etc/ld.so.conf

Luego de la configuracion del autogen se digitan los ya conocidos comandos:


make
make install


Cuando llegues a E necesitas especificar unos parametros:


./autogen.sh --with-evas-config=/usr/bin/evas-config --with-ecore-config=/usr/bin/ecore-config --with-edje-config=/usr/bin/edje-config --with-eet-config=/usr/bin/eet-config --with-embryo-config=/usr/bin/embryo-config


Donde le dices donde estan los binarios de las librerias que compilamos anteriormente en este ejemplo cambia /usr/bin por el path que elegiste.

Agregar Enlightement al administrador de sesiones


Crear un archivo starte17 en /usr/bin/ y hacerlo ejecutable:


echo "exec enlightenment_start" > /usr/bin/starte17

chmod 755 /usr/bin/starte17


En /etc/X11/dm/Sessions se encuentran los archivos de configuracion para los administradores de session (KDM, GDM, MDKKDM)

Se debe crear el archivo 15E17.destop con la siguiente informacion:


[Desktop Entry]
Encoding=UTF-8
Name=E17
Comment=E17
TryExec=/usr/bin/starte17
Exec=/etc/X11/xdm/Xsession E17
Icon=
Type=Application


luego en:

/etc/X11/wmsession.d/

Crear el archivo 15E17.desktop con la siguiente info:


NAME=E17
ICON=
DESC=Enlightenment DR17
EXEC=/usr/bin/starte17
SCRIPT:
exec /usr/bin/starte17

2006/12/27

del.icio.us

del.icio.us es una sitio en el cual puedes tener tus bookmarks ordenados por tags y puedes compartilos si quieres asi como tambien puedes recibir sugerencias o crear redes de amigos que les interesa un tema en comun para compartir sus enlaces.

http://del.icio.us/

Tus bookmarks tambien puedes integrarlos en tu pagina o blog y hacer con ellos muchas otras cosas.

http://del.icio.us/help/

Por aqui estan los mios:

http://del.icio.us/dalfa

2006/12/25

Un techo para mi Pais - El Salvador (Ahuachapan - El Refugio)

Un techo para mi pais


Un techo para mi Pais es una ONG que pretende concientizar a los jovenes por medio de la construccion de hogares para personas de escasos recursos, ¿concientizar de que? de que estamos mal y que podemos significar el cambio si se hace algo.





Es una ONG que funciona en muchos paises, me parece que comenzo en Chile (lastima que la pagina tiene un horrible flash gigantesco, paginas con un mensaje como este deben estar mejor pensadas), creo que la pagina principal de todos los paises es: http://untechoparamipais.org pues bien un Techo para mi Pais consiste en reunir voluntarios que esten dispuestos a ir a campamentos por unos dias para construir hogares para aquellos menos afortunados materialmente, esto con dos propositos uno darles un mejor lugar donde vivir y el segundo hacer reflexionar a los jovenes para que hagan algo.

En la Universidad el "gancho" que utilizaron para llamar la atencion es dar 250 horas sociales por asistir a un campamento, en El Salvador para poder graduarte de Bachillerato o de la Universidad te es requisito haber completado cierta cantidad de "horas sociales" una actividad que ayude a la comunidad. Yo me di cuenta por unas amigas ellas fueron a un campamento previo de 3 dias donde dieron 100 horas por ir, ellas comentaban que era "bonito" ir y ayudar que les gusto mucho estar con todos los que van y blah, blah, blah personalmente soy un tanto impasible asi que no les preste mucha atencion unos meses despues casi al terminar el ciclo anunciaron un nuevo campamento de 6 dias (el anuncio es la imagen de arriba) y daban 250 horas, por curiosidad por lo que me habian contado y por supuesto por las horas sociales fui a las reuniones previas. La reunion me parecio un tanto sosa no hablaron de lo se hace en el campamento pero muy superficialmente y pasaron unos videos de campamentos anteriores con una musica "sentimental" al puro estilo Disney.


Papelito propaganda


Casualmente habian varios conocidos como por ejemplo el que dio la charla era hermano de un antiguo compañero de clases (cabe mencionar que como lo recordaba era apenas un niño ahora ya esta mas grande, eso te hace sentir viejo, en fin) bueno me dicidi a ir no por haber sido convencido por la charla sino por curiosidad de como seria eso de irse unos dias y por supuesto las horas.

Me apunte en la lista y dijeron que dentro de 15 dias seria una segunda reunion. Al pasar el tiempo dicho asisti a la reunion esta vez habian mas asistentes y quien llevo la charla parecia mas suelta de la lengua aunque con demasiada jerga juvenil un tanto molesta aunque entiendo que lo que buscan es empatia con los jovenes y todo eso.

Volvieron a pasar otro video esta vez si funciono el cañon la primer vez no lo hizo. Pues bien de esa reunion al campamento habria un mes de espera asi que tenia tiempo de prepararme. Consegui un viejo saco de dormir y una mochila de soldado la cual a decir verdad se miran mas grandes de lo que en realidad son. El Sabado 16 me dirigi al punto de encuentro de donde partiriamos, tomo algo de tiempo en que llegaran todos y en salir.

El viaje fue corto no estaba tan lejos. Llegamos temprano por la tarde y empezamos a bajar las cosas nos quedariamos en una escuela de la comunidad el lugar estaba polvoso, rapidamente lo limpiaron y comenzamos a bajar las mochilas y sacos de dormir. Luego fue el turno de descargar los viveres. Despues de descargar las cosas nos hicieron hacer unas dinamicas para romper el hielo luego formaron grupos de 3 a 5 personas a las cuales llamarian Cuadrillas, cada Cuadrilla tenia un Jefe de Cuadrilla y cada una se encargaria de hacer una casa.

Al estar listas las cuadrillas nos llevaron a conocer a las familias a las que les construiriamos las casas para conocerlas, como ya era algo tarde como las 17:00 fue breve la visita. En mi caso la Cuadrilla 4 nuestra familia no estaba asi que nos dejaron con la Cuadrilla 3 ahi conocimos a la Cuñada del Señor al que le construirian la casa ella vivia en frente y el Señor no estaba asi que estuvimos un tiempo charlando con ella ya casi al terminar el tiempo y regresar a casa llego el Señor de trabajar nos comento que estaba realmente cansado y que necesitaba dormir, nos regalo una bolsa de naranjas y luego se fue. Despues nos marchamos de regreso a la Escuela.

En la noche nos reunieron y nos hicieron decir los nombres y todo eso, ademas de hablar de lo que es el "Techo para mi Pais" y que representa y que busca. Despues nos fuimos a la cama ese dia estaba muy lleno el cuarto donde dormiria habia un tipo que se sabia que roncaba mucho hizo que se marcharan varios a otro cuarto con solo saber que estaria ahi, ya con las luces apagadas nos dimos cuenta que no era solo fama esa primer noche no dormi habia demasiados roncando esa noche me la pase charlando con una chica que estaba a un lado.

Al dia siguiente por la mañana nos enviaron a comenzar las casas lo primero y mas esencial segun el Jefe de Cuadrilla que tenia es hacer el trazado y el nivel si logras hacer eso bien lo demas es pan comido. El trazado consiste en colocar 12 estacas en forma de rectangulo con la medida de la casa 6 x 3 metros y luego sacar la medida del nivel del suelo.

El nivel del suelo lo hacen con una manguera. Pues bien hicimos el trazado pero al parecer tenia errores, el dia siguiente llego el Señor a quien le estabamos haciendo la casa su nombre era Elias, el trabaja como cuidador de un terreno o algo asi. Tiene turnos de 24 horas asi que estaba un dia si y un dia no, el Señor tenia conocimientos de albañileria asi que nos ayudo a arreglar el trazado y con el nivel. Listo lo mas dificil segun el Jefe de Cuadrilla ya estaba hecho. despues de eso nos toco hacer una zanja para colocar los "cimientos" (unos ladrillos a los que llamaban soleras y dados) durante lo que nos tomo hacer la zanja me broncee demasiado, lo que por aqui coloquialmente diriamos "me queme" ya que no habian arboles que hicieran sombra.

Al tercer dia (creo no recuerdo bien, hubiese escrito algo en algun cuaderno para ordenar mejor los hechos antes de ponerlos en el blog) se nos unio un nuevo integrante a la Cuadrilla.

La casa es algo sencillo pero es mucho mejor que lo que muchas personas tienen por refugio, es una casa prefabricada de unas 18 piezas metalicas y varias laminas. Despues el Jefe de Cuadrilla se dio cuenta que el trazo tenia error de nuevo y lo reparo, tuvimos que zanjar un poco mas pero fue facil. La chica que estaba con nosotros pinto la estructura mientras haciamos la zanja. el siguiente paso fue colocar los ladrillos en la zanja son dos tipos de ladrillos a unos les llamaban Solera y a otros Dados los dados eran mas pequeños y eran para colocar unos tubos que sostenian el techo. Los que llamaban Solera son para darles fuerza y soporte a la construccion.

Colocamos los ladrillos y luego levamtamos la estrucctura y cupo exactamente segun el nuevo tipo que llego y el Jefe de Cuadrilla (ya habian hecho casas antes) eso es signo que hicimos bien el trazo y el nivel si hubiesen estado mal no habria quedado cabal.

Las noches en la Escuela no eran tan malas costaba algo dormir porque EMHO habian demasiados compañeros voluntarios demasiados jovenes asi que hacian cosas un tanto infantiles o quizas sea tan solo mi apreciacion. Muchas veces no se callaban y no dejaban dormir. Vulgarmente en El Salvador le dicen "joder" a payasear, pasar un buen rato, molestar. Pues bien habian varios que "jodian" demasiado.

Las noches constaban de llegar de regreso despues de la construccion si llegabas temprano podias bañarte solo si te tardabas demasiado en llegar te tenias que esperar o bañarte con alguien mas. Como era una comunidad pobre no habia duchas sino un barril y un guacal (recipiente para tomar el agua). Despues la cena casi siempre frijoles y tortilla luego seguia como una charla y la lectura de unos papelitos.

Una costumbre de "Un techo para mi Pais" en donde podias escribir lo que quisieras decir anonimamente o no y luego alguien lo leeria frente a todos. la hora de dormir era alrededor de las 23:00 pero a veces no lograbas dormir por tanta "jodarria".

Un dia nos enviaron a traer unas laminas a la casa 10. Las casas estaban en linea recta la mayoria de casas estaban cerca razonablemente solo caminabas unos cuantos minutos pero la casa 10 debias caminar como una hora para llegar hasta ella.

Fuimos dos a traer las laminas esas laminas eran largas no pesaban pero por el tamaño a veces se ladeaban hacia adelante o a los lados.

Regresando al tema de la construccion, el siguiente paso era atornillar el techo, esto lo hizo la compañera que estaba en la cuadrilla ella era la que menos pesaba yo tambien puse algunos tornillos en el techo es que era menos pesado que los otros, luego hacer mezcla de cemento para colocar bajo los ladrillos. Para que la estructura sea solida.

El penultimo dia llego otra chica a ayudarnos a terminar el techo era muy rapida. Al terminar el techo el siguiente paso era colocar sellador en los agujeros y sobre los tornillos.

Un compañero de Cuadrilla se aventuro solo a traer una cubeta de grava que necesitabamos para la mezcla pobre por poco no lo cuenta, la grava es muy pesada. Afortunadamente cuanto yo me dirigia a ayudarle nos dieron aventon en un auto.

Ya casi al final del campamento se noto una seria deficiencia y es que algunas casas no tenian de donde sacar electricidad para los taladros unas tuvieron que usar muchas extensiones y como las acapararon todas atraso la finalizacion de otras.

Mientras no teniamos electricidad nos fuimos a ayudar a terminar la casa 5 luego de terminarla ellos nos ayudaron a nosotros. Listo terminamos nuestras casas en el plazo convenido. Al final del campamento se terminaron 9 casas una quedo sin terminar por el asunto de la electricidad pero el dia siguiente regresaron a terminarla un pequeño grupo.

Durante una charla un tipo decia que la finalidad del techo no es dar hogar a todos los pobres sino hacerte pensar pues bien si te hace pensar estar en contacto tan direccto con las familias y te hace sentir orgulloso el haberles ayudado.

Por poco lo olvido, como al tercer dia durante la noche fuimos despertados por pequeños pero fuertes sismos toda la noche paso temblando y asi todos los dias siguientes estabamos cerca del epicentro en lugares cercanos muchas casas se cayeron (no de las que construiamos) los temblores causaron muchos daños en comunidades aledañas.

Con la familia con la que estabamos (dos personas Don Elias y su esposa) tuvimos mucha comunicacion fue muy interesante conocer como viven y que tan afortunados somos tambien cuan vanos nos volvemos con el consumismo.

El ultimo dia nos prepararon sopa de gallina, me dio mucha lastima la gallina porque estaba muy delgada y habia pasado todo estos dias con nosotros, pero no podias negarte a comer algo que para ellos significa mucho asi que nos comimos la gallina en el almuerzo.

Aunque algo me tiene inquieto, un dia vimos como una de las gallinas cazaba y se comia un pequeño raton espero que no sea la gallina que nos dieron a comer.

En fin fue una gran experiencia y espero poder asistir a otro campamento a ayudar con tan noble causa y el otro proposito si se cumplio ponerte a pensar, hacerte ver que las cosas no son como te dicen que todo esta bien y que nada cambiara si no se hace algo.


Liston de inauguracion
El ultimo dia antes de retirarnos inauguramos la casa cortamos un liston como cuando inauguran algun edificio se la entregamos a la familia y nos marchamos. Este este es mi pedacito de liston.

2006/12/15

Cronica del fallecimiento de dos discos duros

Veamos, para ubicarnos en el tiempo hace algunas semanas me consegui un disco duro de 250 gigas un disco sata para ser mas especifico. Porque hdb (segundo disco) habia empezado a enviar mensajes a syslog y ese era signo de su pronto fallecimiento en hdb era donde guardaba las cosas que bajo con azureus (torrents) entonces pase mis torrents a sda (disco sata) y formatee hdb pero ya no segui usandolo como sda lo usaria para home no se me ocurrio hacerle alguna particion asi que lo formatee en ext3 ya que pense que si queria probar alguna distro lo podria hacer en hdb aunque este estuviera moribundo.

Varios dias despues al encender la pc por la mañana la bios no podia encontrar hda (primer disco) cielos, nunca se me ocurrio que hda podria fallar, en hda tenia la raiz del sistema. Sin embargo asi fue hda fallo y sin previo aviso como hdb, entonces para levantar el sistema provisionalmente pense en instalar una mandriva en hdb pero sorpresa como no lo habia usado quien sabe cuando fallecio y no pude. Asi que desconecte hda y hdb y ahora son bonitos pisa papeles.

Entonces me di a la tarea de instalar Mandriva en sda, casualmente para mejorar la trama mi disco de Mandriva estaba rayado y no podia terminar de instalar como a la mitad del proceso. Recorde que tenia las isos en sda entonces como el instalador lo permite inicie desde el disco rayado pero entre las opciones de inicio le dije que buscara en sda los archivos rpms y no en el disco. Exito funciono pero en el momento de especificar las particiones del sistema me topo que el instalador tiene un bug, que no te deja instalar en la misma particion de donde estas sacando los rpms. En fin tenia que hacer una particion para instalar porque ese disco solo tenia una particion del tamaño del disco duro, no podia instalar desde disco porque estaba dañado y como no tenia un sistema no podia quemar un disco nuevo.

Entonces recorde que gparted tiene un cdlive instale un Slackware 11 en sda luego baje la imagen y la queme. Inicie el sistema desde el cdlive y arranco facilmente pero hubo un problema mi sistema tiene dos monitores entonces el xorg del cdlive no se configuro adecuadamente y se caia. Afortunadamente tenia nano y pude editar el /etc/X11/xorg.conf y cambie la configuracion y listo pudo cargar.

Desde el cdlive redimensione la particion sda1 y cree una particion de 15 gigas (sda2) para el sistema y listo ahora ya podia instalar Mandriva. Reinicie el sistema inicie desde el disco rayado llame desde sda1 los rpms e instale Mandriva en sda2 la instalacion no tardo mas de 25 minutos. Ext3 me permitio redimensionar sin perder datos facilmente.

Solo me falta compilarme un nuevo Enlightenment, ya casi tengo el sistema como lo tenia antes. Mandriva es muy flexible. Solamente me falta crear la correspondiente entrada en bugzilla para avisar del bug. e encanta como tenemos herramientas para solucionar problemas en el Software Libre.

2006/12/06

urpmrei.py BETA 1: Reinstalador de archivos rpms para Mandriva



#! /usr/bin/env python
import commands

### Encontrar fuentes
def RpmSource(archivo_rpm):
c=0
rpms=[]
source=commands.getstatusoutput("/usr/bin/urpmq --source " + str(archivo_rpm[:-1]) + " > /tmp/urpmrei_fuentes")
opciones=open('/tmp/urpmrei_fuentes','r')
for lines in opciones:
c=c+1
rpms.append(lines[:-1])
print str(c) + ". " + str(lines)
op=input("Escribe el numero de la fuente que desees intalar: ")
print
return (rpms[op-1])
###

### Instalar
def RpmInstall(rpm_install):
reinstall=commands.getstatusoutput('rpm --force --nodeps -v -i '+ rpm_install)
return (reinstall)
###

### Getme
def GetRpm(rpm_get):
print commands.getstatusoutput('wget ' + rpm_get + ' -P /var/cache/urpmi/rpms/')
rpm_name=commands.getstatusoutput("rpm -q --queryformat '%{name}%{version}.%{release}.%{arch}.rpm' " + rpm_get)
reinstall=commands.getstatusoutput('rpm --force --nodeps -v -i /var/cache/urpmi/rpms/'+ rpm_name[1])
print
return(reinstall)
###

commands.getstatusoutput('rm -f /tmp/urpmrei_list')
commands.getstatusoutput('rm -f /tmp/urpmrei_source')

print "Generando lista de rpms instalados"
commands.getoutput('rpm -qa > /tmp/urpmrei_list')

counter=0
list=open('/tmp/urpmrei_list','r')
for line in list:
counter=counter+1
print str(counter)+ ". " + line
list.close()

rpm = raw_input("Escribe en numero del rpm que deseas reinstalar: ")
print

counter=0
list=open('/tmp/urpmrei_list','r')
for line in list:
counter=counter+1
if (counter==int(rpm)):
print line[:-1]
print
installme=RpmSource(line)
print installme
if installme[:1] == "/":
RpmInstall(installme)

if installme[:4] == "file":
RpmInstall(installme[6:])

if (installme[:3] == "ftp" or installme[:4] == "http"):
GetRpm(installme)

list.close()