Ejercicio PHP | Ejercicio Python : Sorteo de alumnos

Hace unos días me vi en la necesidad de hacer un rápido sorteo para el orden de presentación de trabajos finales de un curso que dicto. Me pareció muy simple hacer el respectivo sorteo usando PHP, y de paso también decidí hacerlo con Python, gracias a una sugerencia :P (twit).

Antes de empezar debo aclarar que la lista de alumnos se encuentra en un archivo de texto, llamado alumnos6to

Sorteo con PHP:

Voy a obviar algunos detalles en el orden e ire al grano.

Primero almaceno en un array (arreglo) el contenido del archivo alumnos6to

$alumnos = file('alumnos6to');

Luego se puede imprimir el arreglo para visualizar la lista original, se podria hacer con una función creada: imprimir($alumnos):

function imprimir($array){
echo "<ol class='alumnos'>";
foreach ($array as $valor){
echo "<li>$valor</li>";
}
echo "</ol>";
}

Luego se hace la mezcla aleatoria con:

shuffle($alumnos);

Y por ultimo se vuelve a imprimir la lista, ya mezclada aleatóriamente:

imprimir($alumnos);

Y ya se hizo el sorteo.

Sorteo con Python:

Con Python haré el mismo proceso, solo que tendré un archivo resultante llamado: aleatorio, antes de empezar a obtener el contenido del archivo de texto, importé el modulo random, luego importé el contenido del archivo alumnos6to y lo almacené en una lista llamada alumno, usé la función shuffle() que permite mezclar la lista y por ultimo guardé la lista mezclada en el archivo aleatorio..

El código para realizar esto es el siguiente:

from random import *
alumno = []
for nombre in file('alumnos6to'):
alumno.append([nombre])
shuffle(alumno)
aleatorio = file('aleatorio','w')
for nombre in alumno:
aleatorio.write(str(nombre)+'\n')

Los archivos completos pueden ser descargados desde aqui.

Esta es solo una, de las muchas maneras de aleatorizar una lista de elementos.

Happy coding :)

GNOME Project Mallard Online – Weekly report #06

This is my weekly report # 06:

What I have done last week

What I will do this week

Timeline

Issues

  • Just thinking for the better way to produce a mallard syntax document

Cool Things

  • Work with people at GNOME, for suggestions, code and friendship #FTW.

Regards :D

GNOME Project Mallard Online – Weekly report #05

This is my weekly report # 05:

What I have done last week

What I will do this week

  • Start to create the Javascript Text Editor to translate content to Mallard Syntax, probably I will use TinyMCE to acomplish that.

Timeline

Issues

  • I’m a little afraid for my code, I think that all is wrong. I think that is normal behaviour for the context. I don’t want ruin all.

Cool Things

Cheers :)

Mostrar errores de PHP en servidor de desarrollo | Ubuntu Server

En un servidor de producción es aconsejable NO mostrar los errores de PHP. En Ubuntu Server 10.04 sucede que por defecto está configurado para no mostrarlos (preparado para producción), sin embargo para desarrollar o por simples motivos de aprendizaje en muchas ocasiones se requiere que los errores sean visualizados.

En el caso de fallar, cuando no muestra errores, simplemente aparecerá una página en blanco. Para cambiar este comportamiento se deben seguir los siguientes pasos:

1. Ubicar el archivo de configuración de PHP, por lo general se puede encontrar en /etc/php5/apache2/php.ini , en caso de no encontrarlo una simple ejecución de phpinfo() nos puede mostrar esa ubicación:

phpinfo()

2. Ubicar la linea que contenga la instrucción display_errors (en mi caso, esta en la linea 531) y cambiar el Off por el On para que quede asi:

display_errors = On

3. Guardar  los cambios en el archivo php.ini

4. Reiniciar el servicio:

sudo /etc/init.d/apache2 restart

Es suficiente con estos pasos para habilitar la visualización de errores.

Happy coding :)

GNOME Project Mallard Online – Weekly report #04

This is my weekly report # 04:

What I have done last week

  • Still improving my skills on Django
  • I was reading a lot of books about Django Projects, I found some interesting books:
    • Django 1.2 E-commerceDjango 1.1 Testing and DebuggingPro DjangoThe Definitive Guide to Django: Web Development Done Right, Second Edition

What I will do this week

  • Finish the web interface according the schedule.
  • Start to create the Javascript functions to translate content to Mallard Syntax

Timeline

  • I’m just on time according to my schedule

Issues

  • Little problems with Django, but nothing serious.

Cool Things

  • I met cool people at IRC, great developers and friends at server:irc.gnome.org

Regards :)