Adentrándose en Unix


Hedgewars

Publicado en Videojuegos por Noelia en 19 junio 2010
Tags: , ,

Hoy no vengo a contar ningún rollo ni nada acerca de WikiUNIX… Hoy toca hablar de videojuegos que nunca he hablado en este blog de ello. Creo que es un juego del que merece la pena hablar, porque además de ser muy bueno, es software libre… Qué más se puede pedir.

El videojuego del que quiero hablaros se llama Hedgewars y es una versión libre del clásico Worms, donde los bichitos que se revientan unos a otros son erizos en lugar de gusanos.

No es exactamente un clon en el sentido estricto de la palabra, puesto que incorpora además de las armas clásicas (aunque parodiadas: por ejemplo en lugar de la Bomba Plátano hay una Bomba Sandía, en lugar del Holy Hand está la granada infernal, etc) otras armas como el portal (creo que saldrá en la siguiente versión) y las dichosas bolitas. Digamos que intentan ampliar el juego original.

Además el juego es completamente libre y multiplataforma (han generado paquetes para un montón de distribuciones Linux y también los instalables para Windows y Mac OS X, que podéis descargaros desde aquí), por lo tanto amplía mucho la cantidad de gente que podría jugar. En Ubuntu, simplemente tenéis que escribir en la terminal:

sudo apt-get install hedgewars

Como dato adicional, solo comentar que está desarrollado por 4 rusos (3 programadores y un diseñador)  utilizando Pascal para el motor del juego, C++ con SDL y Qt4 para la interfaz gráfica y haskell para el servidor. Personalmente me parece que tiene mucho mérito, puesto que no es el primer clon que se intenta desarrollar de Worms (véase Wormux), pero no se han obtenido los mismos resultados ni de lejos.

He aquí el vídeo de promoción de la versión 0.9.13, que me parece simplemente genial:

Y el de  la anterior 0.9.12:

Os dejo un último video que me gusta mucho, porque se ve a los ericitos en su máximo esplendor y de fondo suena una gran canción…

Sin más, os espero en los servidores de Hedgewars :P

Un saludo a todos, unixeros ;)

PD: Lo que se pretende con este post es que llegue al mayor número de personas posibles, para ampliar el número de viciados al susodicho juego, así que si alguien quiere copiar esta entrada/crear una entrada derivada en su propio blog, que lo haga. Bienvenido sea.

Ya podemos discutir…

Publicado en WikiUnix por Noelia en 8 junio 2010
Tags: , , ,

Hola de nuevo:

Despues de la avalancha de noticias de estos últimos días (véase esto, esto y esto y la caída del servidor que provocó el efecto menéame… en la OSLUCA me van a matar), está registrándose bastante gente en WikiUNIX (yuju!) y ya empieza a haber movimiento de conversaciones. Por tanto, se ha creado una zona para poder discutir/charlar/preguntar/lo que sea acerca del proyecto y todo lo que tenga que ver con él.

Digamos que es la zona del “chat” (tiene un nombre un tanto friki, /usr/share/chat, que le voy a hacer…). De momento hay cuatro secciones en las que se dividen las posibles discusiones:

  • Noticias: Anuncios sobre WikiUNIX y su comunidad.
  • Técnica: Discusión de asuntos técnicos y nuevas propuestas.
  • Ayuda: Petición de ayuda para colaborar en WikiUNIX.
  • Random: Lo que de toda la vida se ha llamado offtopic, asuntos que no tienen cabida en ninguna otra sección.

A ver qué tal va la cosa.

Un saludo a todos, unixeros ;-)

PD: Por cierto, casi no me ha dado tiempo de terminar de montar el chat y ya hay gente editando. ¡Mola!

PD2: Si cuando intento poner un enlace en WordPress pongo los dobles corchetes es porque esto me está afectando, ¿verdad?

Trasteando Gource

Publicado en Comunidad por Noelia en 16 mayo 2010
Tags: , , ,

Hola de nuevo:

En la última entrada comenté un poco por encima un programita muy curioso y subí un vídeo de lo que mostraba al pasarle el repositorio de WikiUNIX. Este programa se llama Gource y para el que no lo leyera en la entrada anterior, sirve para generar una animación para visualizar el desarrollo de proyectos a partir de la información administrada por el sistema de control de versiones.

Gource soporta directamente Git, Bazaar y Mercurial, por lo que sólo tenéis que ejecutarlo desde la raíz del repositorio y listo. Sin embargo, como ya comenté había que utilizar trucos para que tirara en Subversion (no es que sea muy fan de este sistema de control de versiones, pero en la forja de RedIRIS no hay más remedio). Uno de esos trucos era utilizar un script, pero antes de esto había que llamar a svn para guardar los logs del repositorio, y pensé: “Pues hacer esto completamente automático es facilillo”, así que he retocado el script que ya estaba hecho para tener que ejecutar una única orden:

#!/usr/bin/python
# -*- coding: utf-8  -*-
## Copyright (c) 2010 Noelia Sales Montes (noelia.salesmontes@gmail.com)
## Copyright (c) 2009 Cameron Hart (cam@bitshifter.net.nz)
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
## modification, are permitted provided that the following conditions
## are met:
## 1. Redistributions of source code must retain the above copyright
##    notice, this list of conditions and the following disclaimer.
## 2. Redistributions in binary form must reproduce the above copyright
##    notice, this list of conditions and the following disclaimer in the
##    documentation and/or other materials provided with the distribution.
## 3. The name of the author may not be used to endorse or promote products
##    derived from this software without specific prior written permission.
##
## THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
## IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
## OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
## IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
## INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
## NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
## THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""
Python script that converts the XML output of the svn log command into a
format that can be read by the gource custom log format option and execute
gource to show the animation.
"""

import sys
import os
import time
import getopt
import re
from xml.etree import ElementTree

__clean__ = False
__verbose__ = False
__filter_dirs__ = False
# width x height
__size__ = "800x600"
# seconds per day
__time__ = "1"
__usage__ = """
USAGE: svn-gource.py [--help] [--clean] [--verbose] [--filter-dirs]
[--size WIDTHxHEIGHT] [--time SECONDS-PER-DAY]
"""
# regular expression for matching any file with an extension
__extn_prog__ = re.compile(".*/?[^/]+\.[^\.]+$")

def reverse(data):
    """Returns the log entries in reverse."""
    for index in range(len(data)-1, -1, -1):
        yield data[index]

def verb(message):
    """Prints in verbose mode."""
    if __verbose__ == True:
        print message

def process_xmltree(__xmltree, logfile):
    """Prints the log file converted into the gource format in a new log file.
    """
    if os.path.exists(logfile):
        os.remove(logfile)
        verb("Removing %s" % logfile)

    verb("Translating %s" % logfile)

    for logentry in reverse(__xmltree.getiterator("logentry")):
        datetext = logentry.find("date").text

        # svn xml logs always use UTC
        timestamp = (time.mktime(time.strptime(datetext[:-8],
                                               "%Y-%m-%dT%H:%M:%S")))
        # a bit of a hack to get it into local time again...
        #timestamp = timestamp - time.timezone

        #author might not exist
        try:
            author = logentry.find("author").text
        except:
            author = ""

        __f = open(logfile, "a")

        # output all affected files
        for pathentry in logentry.getiterator("path"):

            # apply directory filtering strategy
            if __filter_dirs__ and not re.match(__extn_prog__,pathentry.text):
                continue;

            # join output
            __f.write( "|".join(("%d" % int(timestamp),
                               "%s" % author.encode("utf-8"),
                               "%s" % pathentry.get("action"),
                               "%s" % pathentry.text.encode("utf-8"), "\n")))

        __f.close()

def print_usage(message):
    """ Prints the script's usage """
    sys.stderr.write(__usage__)
    if message:
        sys.exit('\nFATAL ERROR: ' + message)
    else:
        sys.exit(1)

if __name__ == "__main__":
    try:
        __opts__, __args__ = getopt.getopt(sys.argv[1:],
                                           'hvcfs:t:', ['help',
                                                        'verbose',
                                                        'clean',
                                                        'filter-dirs',
                                                        'size',
                                                        'time'])
    except getopt.GetoptError:
        print_usage('Invalid arguments.')

    for (opt, val) in __opts__:
        if opt in ('--help', '-h'):
            print_usage(None)
        elif opt in ('--clean', '-c'):
            __clean__ = True
        elif opt in ('--verbose', '-v'):
            __verbose__ = True
        elif opt in ('--filter-dirs', '-f'):
            __filter_dirs__ = True
        elif opt in ('--size', '-s'):
            __size__ = val
        elif opt in ('--time', '-t'):
            __time__ = val

    verb('  OPTIONS:')
    verb('Size = %s' % __size__)
    verb('Seconds per day = %s\n' % __time__)

    os.popen("svn log --verbose --xml > project.log")

    __XMLTREE = ElementTree.parse("project.log")

    process_xmltree(__XMLTREE, "project-gource.log")

    verb('Calling gource... Showing the animation.')

    os.popen("gource -%s -s %s --log-format custom project-gource.log" %
             (__size__, __time__))

    if __clean__:
        verb("Removing log files.")
        os.remove("project.log")
        os.remove("project-gource.log")

Os comento un poco por encima qué opciones tiene el script:

  • –help, -h: Típica ayuda.
  • –verbose, -v: Modo chivato, por si queréis ver qué va haciendo (tengo costumbre de ponerlo por facilitarme el testeo…).
  • –clean, -c: Una vez finalizada o cancelada la animación, borra los ficheros de log utilizados, en este caso “project.log” y “project-gource.log”. De todas formas, se fuerza el borrado de “project-gource.log” antes de generarlo de cero, para asegurar que no se guarda nada raro de alguna ejecución anterior.
  • –filter-dirs, f:
  • –size, -s ANCHOxALTO: Esta opción recibe el tamaño de la ventana que generará gource. Atención que tanto el ancho como el alto se pasan en un mismo argumento, separados únicamente por una “x”. Si no se utiliza esta opción, se tienen por defecto 800×600.
  • –time, -t: Número de segundos por día que tomará la animcación. Si no se utiliza esta opción, se tiene por defecto 1 segundo por día.

Bueno, lo único que tenéis que hacer es guardarlo en “svn_gource.py” y ejecutarlo desde la raíz del repositorio pertinente (si tenéis varios repositorios, os resultará más cómodo tenerlo en el directorio padre de éstos y ejecutarlo desde dentro) con un simple:

python svn_gource

Yo suelo ejecutarlo usando las opciones:

python svn_gource -s 1200×600 -t 0.1 -v -c

A ver si puedo habilitar la subida de ficheros “especiales” al wiki para facilitar la descarga de los scripts.

Un saludo a todos, unixeros ;-)

PD: Para cualquier duda, problema, comentario, … acerca del script podéis utilizar los comentarios del blog o escribir en la página de discusión del script en el wiki directamente.

Fin del CUSL nacional

Publicado en WikiUnix por Noelia en 15 mayo 2010

Hola a todos:

Hace unas horas se hicieron públicos los ganadores del IV Concurso Universitario de Software Libre. Me enorgullece poder decir que este proyecto ha obtenido el primer premio al Mejor proyecto de educación y ocio.

Mi enhorabuena a todos mis compañeros, pues todos tenían grandes proyectos y con los cuales he podido pasar dos días geniales. Ha sido muy interesante tanto por las conferencias a las que hemos asistido como por las charlas y las risas con los demás participantes. Me gustaría agradecer el trabajo realizado a todos los organizadores y colaboradores, que se han pegado unos días de curro bastante estresante y sin los cuales nada de esto hubiera sido posible.

Para animar un poquillo la entrada y no dejarla solo en los premios, me he atrevido a subir un vídeo creado utilizando Gource, una aplicación que he conocido gracias a la charla “Cómo colaborar en GNOME” de Juan José Marín. Gource genera una animación para visualizar el desarrollo de proyectos a partir de la información administrada por el sistema de control de versiones. En principio soporta Git, Bazaar y Mercurial, aunque hay truquillos (utilizando git svn o a través de un script) para poder usarlo con CVS y Subversion.

Por cierto, en la demostración de la charla salía una “explosión” en la simulación de mi repositorio, pero no he conseguido reproducirla otra vez… Ya tenía curiosidad por saber qué había hecho. Aquí os dejo el vídeo:

Un saludo a todos, unixeros ;-)

PD: El vídeo tardará un poquito en verse, mientras que youtube lo procesa…

Finalista del CUSL

Publicado en WikiUnix por Noelia en 1 mayo 2010

Aunque seguramente soy la última en hacerlo, pongo esta entrada para anunciar que el proyecto WikiUNIX ha sido seleccionado como finalista del IV Concurso Universitario de Software Libre. Además de los 8 proyectos finalistas, han dado una mención especial a dos proyectos de compañeros míos, a los que felicito y por los que me alegro mucho: Pablo Recio por Resistencia en Cádiz:1812 y Jose Tomás Tocino por oFlute, al cual felicito profusamente (me ha encantado la expresión :P).

Además de eso tengo noticias “extra”. Primero lo primero: WikiUNIX.

  • Tras el retoque del nuevo logo, he estado trasteando algunas cosillas para que cuadren mejor en cuanto al CSS (he dejado de lado los amarillos que ya quedaban raros, entre otras cosas…)
  • Hablando con la gente, me doy cuenta de que les da “miedo” o respeto editar en el wiki, así que desde aquí hago un llamamiento… ¡¡editad por favor!! Por si acaso no queda claro, lo he puesto bien clarito en la portada. Este wiki no es restrictivo, sino que intenta ser muy abierto, por lo que si veis algo que podéis ampliar o temas de los que no se hablen, escribid sobre ello. Recordad que si os equivocáis se puede deshacer, pero nada se escribe solo. Más vale intentarlo, ¿no? Para cualquier duda, ya sabéis donde ando

Como noticia personal:

  • Hoy hemos asistido al encuentro de GNOME hispano celebrada en las oficinas de Yaco en Sevilla y la verdad que ha sido muy instructivo, muy interesante y, más que nada a la hora de la comida, muy divertido. Da gusto encontrarte con gente con tanta experiencia y que pueden darte consejos que te van a ser muy útiles. Desde aquí agradecer a todos el día.

Un saludo a todos, unixeros :-)

Nuevo logo para WikiUNIX

Publicado en WikiUnix por Noelia en 24 abril 2010

Hola de nuevo:

Hace tiempo que quería hacer un logo nuevo, pero había cosas que tenían más prioridad. El porqué de hacer uno nuevo cuando el otro me gustaba es más que nada porque desde lejos no tiene gracia: la palabra “Unix” estaba formada en base a un montón de comandos de Unix superpuestos, y en un logo de 135×135 pixels eso no se percibe, por lo que decidí hacer uno más simple y que se vea bien a ese tamaño.

Lo dejo aquí también para que le echéis un vistazo (está ya puesto en el wiki):

Logo WikiUNIX

Nuevo logotipo de WikiUNIX

La idea del nuevo logo es bastante simple: de nuevo utilizo los dobles corchetes para hacer referencia al wiki y además incluyo dentro una terminal, que representa la otra parte del proyecto (la plataforma de pruebas) y el trasfondo de Unix. El verde sobre negro es por friki más que nada (la terminal siempre la suelo poner así, por tanto me recuerda a mi propio sistema).

Un saludo a todos, unixeros ;)

Cómo va WikiUNIX…

Publicado en WikiUnix por Noelia en 23 abril 2010

Hola a todos:

En este tiempo me he dedicado a mejorar artículos poco a poco (y aún sigo en ello y seguiré). Además de eso me he dedicado a revertir vandalismos y como estaba ya un poco harta, se ha instalado una extensión para parar a los bots spammeros (gracias Emilio). De momento parece que funciona bastante bien, aunque tocaré madera…

Por otra parte, junto con unos compañeros he estado impartiendo unos cursos de introducción al software libre, lo cual me ha servido para dos cosas de cara a este proyecto (en realidad me ha servido para muchas más):

  • Pensar en detalles que puedo mejorar del contenido de determinados artículos, puesto que al intentar impartir unos cursos en grupo, la temática y la forma de explicar las cosas se discute y se complementa.
  • Comprobar de primera mano la aplicación para la docencia de este proyecto, y sobre todo a personas sin conocimientos previos.

Tan solo agradecer a mis compañeros el apoyo y el entusiasmo en estos cursos y a los participantes la asistencia y los elogios.

A seguir editando…

Un saludo a todos, unixeros :)

Corte de servicios

Publicado en WikiUnix por Noelia en 10 abril 2010

Este post es para avisar a todos de que este fin de semana no se podrá acceder al wiki, dado que está alojado en el servidor de la OSLUCA y han cortado los servicios en toda la UCA durante todo el fin de semana. Espero que el lunes vuelva a estar disponible.

Os recuerdo que si necesitáis información de alguno de los artículos principales, tenéis las versiones en PDF colgadas por aquí, por aquí y por aquí, así como en el lateral del blog.

Un saludo a todos, unixeros ;-)

Publicación en Linux Magazine

Publicado en WikiUnix por Noelia en 6 abril 2010

Hola a todos:

Hace ya semanas de la publicación del post acerca de WikiUNIX en systemadmin.es (de paso aprovecho para agradecer a su autor la entrada y a Fabián por la ayuda), y la racha de publicaciones continúa.

En el número 59 de la revista Linux Magazine se incluye “la tercera y última parte de los proyectos que concurren a la cuarta edición del Concurso Universitario de Software Libre“. En este grupo se encuentra el proyecto WikiUNIX.

Os dejo el artículo Linux Magazine en PDF, por si queréis echarle un vistazo y no tenéis la revista a mano.

Saludos.

Premio en la Edición local de IV CUSL

Publicado en WikiUnix por Noelia en 17 marzo 2010

Hola a todos:

Esta mañana hemos expuesto los proyectos finalistas en la edición local del Concurso Universitario de Software Libre. Tras las 6 presentaciones se han entregado los premios siguientes:

  • Francisco Javier Santacruz López-Cepero con IdiginBPEL: Accésit al mejor proyecto científico
  • Rosa María Durante Lerate con Learning wX: Accésit al mejor proyecto de docencia
  • José Tomás Tocino García con oFlute: Accésit al mejor proyecto de innovación
  • Pablo Recio Quijano con Resistencia en Cádiz: 1812: Accésit al mejor proyecto de comunidad
  • Luis Salvador Roa Rodriguez con Sim-conducción: Accésit al mejor proyecto de ocio
  • Noelia Sales Montes con wikiUNIX: Premio local de la 4ª edición del CUSL

Por tanto, este proyecto ha ganado la edición local del concurso. Me gustaría dar la enhorabuena a todos mis compañeros y agradecerles la partipación. Ha estado muy ajustada la cosa (no he acertado ninguno de los premios que había pensado…) y todos eran muy buenos proyectos.

Sobre todo agradecer la entrada en el blog de Resistencia en Cádiz:1812 de Pablo Recio y a todos los que han colaborado en el proyecto y que me han apoyado, entre ellos a Manuel, mi tutor de proyecto, a Emilio, que me ha ayudado mucho con toda la temática wiki, a Fabián, a Jose,… y lógicamente a Pablo y a Rosa (siempre se deja lo mejor para el final :P).

Pues nada, solo queda el último empujoncito para el nacional. Ánimo a todos.

Un saludo a todos, unixeros!

Página siguiente »

Seguir

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