Liberación de prácticas; mia, el turista virtual

Continuando con la liberación de prácticas, aquí presento la de la asignatura Modelos de la Inteligencia Artificial, una optativa de sistemas.

En ella había que realizar un tipo de GPS que buscara en un mapa de una ciudad, concretamente en el Valencia (que nos lo daban), el camino más corto entre dos esquinas (o nodos bien dicho).

MIA, El turista virtual
El turista virtual

En la práctica están implementados los algoritmos;

  • Búsqueda Primero en Profundidad
  • Búsqueda Primero en Anchura
  • Búsqueda por Máxima Pendiente
  • Búsqueda Primero el Mejor (A-estrella o A*)

Es altamente recomendable para aquellos que están estudiando estos algoritmos, el código está bastante documentado y estructurado.

El código está en C++ y como no, hago uso de las plantillas de la STL, que por cierto, incluyo la encapsulación de la estructura de grafo como plantilla.

No he incluido ningún material del profesor, ni mapas de prueba. Una lástima.

Un gran número de parejas jóvenes que se enfrentan a varios problemas de salud, tales personas pueden comprar medicamentos en línea de investigación sin orden. Antibióticos de penicilina muy populares que combaten las bacterias. Estos remedios no tratan una infección viral por ejemplo un resfriado común. Vamos a hablar de numerosas drogas existe. Kamagra es un remedio usado para tratar de varias quejas. ¿Qué sabes sobre todo “Comprar Kamagra Oral Jelly“? Actualmente muchos hombres buscan la frase exacta “comprar kamagra 100mg” en Internet inalámbrico. (Leer más “Kamagra Oral Jelly“). Debido a que algunos de los problemas sexuales son emergencias médicas, es bueno conocer los síntomas. Ciertas personas que usan este medicamento generalmente no tienen efectos secundarios graves Kamagra. El farmacéutico necesita resolver el problema qué dosis es la mejor en su caso. Si el medicamento se usa según sea necesario, es poco probable que esté en un horario de dosificación.

jQuery Autocomplete + Django + AJAX

Ahora voy a explicar algo técnico pero estético, como utilizar la plugin de jQuery Autocomplete con Django+AJAX, con ella se pueden conseguir efectos como este;

jQuery Autocomplete screenshot
jQuery Autocomplete

Trataré de hacer una consulta por AJAX a una URL cuando tipee 3 o más letras, el código puede ser el siguiente;

$('input').autocomplete({
    minLength:3,
    source: function(req, add){
        $.ajax({
            url: '/ajax/url/',
            async: false,
            dataType:'json',
            type:'POST',
            data: {
                start: function() { return $(this).val(); },
            },
            success: function(data) {
 
                //create array for response objects
                var suggestions = [];
 
                //process response
                $.each(data.items, function(i, val){
                    suggestions.push(val[0]);
                });
 
                //pass array to callback
                add(suggestions);
            }
        });
    }
});

Donde:

  • input: Será el selector del campo de texto al que queremos aplicarle el plugin.
  • minLength: La longitud mínima para hacer la consulta.
  • ‘/ajax/url/’: La URL donde haremos la consulta.
  • start: Va a ser el valor actual del campo de texto, el texto que hemos tipeado y por el que queremos buscar.

La vista podría estar definida como sigue:

def search(request):
 
    if request.method=='GET' or not request.POST.__contains__('start'):
        return HttpResponseForbidden()
 
    # Hacemos la consulta para aquellos elementos que empiecen por start ordenados por nombre
    query = Model.objects.filter(name__istartswith=request.POST['start']).order_by('name')
 
    # Serializamos
    objects = u'{items: [\n'
    for i in query:
        objects += u'{"0":"%s"},\n' % (i.name.replace('"',''))
    objects=objects.strip(",\n");
    objects+=u']}\n'
 
    return HttpResponse(objects,mimetype="text/plain")

También se pueden utilizar serializadores para pasar la información a JSON, pero en este caso he preferido hacerlo a mano.

Para más información visita la página de jQuery.

Un gran número de parejas jóvenes que se enfrentan a varios problemas de saludos cordiales, tales personas pueden comprar medicamentos en línea recta sin orden. Antibióticos de penicilina muy populares que combaten las bacterias. Estos remedios no tratan una infección viral por ejemplo un resfriado común. Vamos a hablar de numerosas drogas existe. Kamagra es un remedio usado para tratar de varias quejas. ¿Qué sabes sobre “Comprar Kamagra Oral Jelly“? Actualmente muchos hombres buscan la frase exacta “comprar kamagra 100mg” en Internet inalámbrico. (Leer más “Kamagra Oral Jelly“). Debido a que algunos de los problemas sexuales son emergencias médicas, es bueno conocer los síntomas. Ciertas personas que usan este medicamento generalmente no tienen efectos secundarios graves Kamagra. El farmacéutico necesita resolver qué dosis es la mejor en su caso. Si el medicamento se usa según sea necesario, es poco probable que esté en un horario de dosificación.

Liberación de prácticas; redes (II)

Aquí presento la Práctica 4 de redes, la última que voy a subir de esta asignatura.

Trata de la implementación de servidores TCP/UDP secuenciales y concurrentes y sus respectivos clientes.

Los servidores tratan de enviar unas frases a los clientes junto con un nombre que se especifica como parámetro, originariamente eran poesías, pero yo los cambié por frases. 😉

Dispone también de Makefile y buena documentación interna. La dirección del repositorio es https://github.com/dugo/practicas-sistemas-ugr/

Entre las frases (definidas en frases.h) podemos encontrar estas joyas:

"Vivimos como soñamos, solos.Y tu como sueñas %s?"
"La principal causa del divorcio es el matrimonio (Groucho Marx). Asi que ya sabes %s, no te cases."

Un gran número de parejas jóvenes que se enfrentan a varios problemas de salud, tales personas pueden comprar medicamentos en línea de investigación sin orden. Antibióticos de penicilina muy populares que combaten las bacterias. Estos remedios no tratan una infección viral por ejemplo un resfriado común. Vamos a hablar de numerosas drogas existe. Kamagra es un remedios caseros usado para tratar varias quejas. ¿Qué sabes sobre “Comprar Kamagra Oral Jelly“? Actualmente muchos hombres buscan la frase exacta “comprar kamagra 100mg” en Internet de las cosas. (Leer más “Kamagra Oral Jelly“). Debido a que algunos de los problemas sexuales son emergencias médicas, es bueno conocer los síntomas. Ciertas personas que usan este medicamento generalmente no tienen efectos secundarios graves Kamagra. El farmacéutico necesita resolver qué dosis es la mejor en su caso. Si el medicamento se usa según sea necesario, es poco probable que esté en un horario de dosificación.

Deploying django en un subdirectorio

Acabo de explicar como hacer un deploy de un proyecto django, pero esto se nos puede complicar mucho si lo queremos hacer en un subdirectorio de la URL principal, es decir, queremos acceder a nuestro proyecto mediante la URL http://host/subdirectorio.

Más que nada por las URLs predefinidas de login, logout y profile.

Para esto, añadimos a settings.py:

ROOT_URL = '/subdirectorio/'

MEDIA_URL = ROOT_URL + 'media/'
ADMIN_MEDIA_PREFIX = ROOT_URL + 'media/admin/'
LOGIN_URL = ROOT_URL + 'accounts/login/'
LOGOUT_URL = ROOT_URL + 'accounts/logout/'
LOGIN_REDIRECT_URL = ROOT_URL + 'accounts/profile/'

Haciendo que todas las rutas sean relativas a ROOT_URL.
Ahora en un urls.py añadimos;

url(r'^accounts/logout/$','django.contrib.auth.views.logout',kwargs=dict(next_page=settings.ROOT_URL)),
url(r'^accounts/profile/$','django.views.generic.simple.redirect_to',kwargs=dict(url=settings.ROOT_URL) ),

Para que sepa a que URLs redireccionar. ¡Y listo!

Un gran número de parejas jóvenes que se enfrentan a varios problemas de salud, tales personas pueden comprar medicamentos en línea recta sin orden. Antibióticos de penicilina muy populares que combaten las bacterias. Estos remedios no tratan una infección viral por ejemplo un resfriado común. Vamos a hablar por teléfono de numerosas drogas existe. Kamagra es un remedio usado para tratare varias quejas. ¿Qué sabes sobre “Comprar Kamagra Oral Jelly“? Actualmente muchos hombres buscan la frase exacta “comprar kamagra 100mg” en Internet. (Leer más “Kamagra Oral Jelly“). Debido a que algunos de los problemas sexuales son emergencias médicas, es bueno conocer los síntomas. Ciertas personas que usan este medicamento generalmente no tienen efectos secundarios graves Kamagra. El farmacéutico necesita resolver qué dosis es la mejor en su caso. Si el medicamento se usa según sea necesario, es poco probable que esté en un horario de dosificación.

Deploying django

Ya que hace poco que he deployeado (=publicado) un par de proyectos Django voy a explicar cómo hacerlo, entre ellos el blog experimental http://dug0.com/lachispaadecuada .

El deploy lo he hecho con Apache y mod_wsgi, recomiendo descargar el módulo y compilarlo, mejor que descargarlo de los repositorios, está más actualizado y a me dio problemas el de los repos.

Una vez instalado el módulo y activado, copiamos el proyecto a un directorio donde contendremos los proyectos Django, pueder ser /var/webapp o similares.

Hecho esto creamos en el directorio principal de nuestro proyecto el fichero django.wsgi que contendrá;

import os
import sys
from django.core.management import setup_environ


path = sys.path.append(os.path.abspath(os.path.dirname(__file__)))
if path not in sys.path:
    sys.path.append(path)

import settings
setup_environ(settings)

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Que vale para cualquier proyecto Django. ¿No recuerda a http://dug0.com/django/script-python-con-entorno-de-django?

Hecho esto, añadimos a Apache;

WSGIScriptAlias / /var/webapp/MyDjangoProject/django.wsgi

Y ahora tenemos la parte dinámica, pero también queremos tener acceso a la estática, para lo que añadimos;

Alias /media /var/webapp/MyDjangoProject/media

<Directory /var/webapp/MyDjangoProject/media>
Order deny,allow
Allow from all
</Directory>

Y para tener acceso a los contenidos estáticos del área administrativa, que deberá estar situada en /media/admin. Creamos un enlace simbólico con el nombre admin en el directorio /var/webapp/MyDjangoProject/media al destino /usr/local/lib/python2.6/dist-packages/django/contrib/admin/media. Que es la ruta donde están los contenidos estáticos, al menos Python 2.6+Django 1.2.3 en Ubuntu.

¡Reiniciamos Apache y a volar!

Un gran número de parejas jóvenes que se enfrentan a varios problemas de salud, tales personas pueden comprar medicamentos en línea sin orden. Antibióticos de penicilina muy populares que combaten las bacterias. Estos remedios no tratan una infección viral por ejemplo un resfriado común. Vamos a hablar de numerosas drogas existe. Kamagra es un remedio usado para tratare varias quejas. ¿Qué sabes sobre “Comprar Kamagra Oral Jelly“? Actualmente muchos hombres buscan la frase exacta “comprar kamagra 100mg” en Internet. (Leer más “Kamagra Oral Jelly“). Debido a que algunos de los problemas sexuales son emergencias médicas, es bueno conocer los síntomas. Ciertas personas que usan este medicamento generalmente no tienen efectos secundarios graves Kamagra. El farmacéutico necesita resolver qué dosis es la mejor en su caso. Si el medicamento se usa según sea necesario, es poco probable que esté en un horario de dosificación.

Liberación de prácticas; ccd

Ahora le toca a Codificación y Compresión de Datos, una asignatura optativa, sólo he considerado liberar las prácticas más relevantes;

  • Práctica 2: Trata de analizar la entropía en diferentes ficheros, para ello se ha implementado una biblioteca para análisis estadístico en ficheros de texto, libalpha, no se si existirá este nombre en otra biblioteca.
  • Práctica 6: Trata de analizar distintos ficheros comprimidos con el formato jbig, para ello se ha desarrollo el programa jbigbasic.
  • Práctica 8: Dispongo de un programa que añade ruidos a imágenes para ver como se comporta a nivel visual.

Para más detalles echar un vistazo al repo; https://github.com/dugo/practicas-sistemas-ugr

Un gran número de parejas jóvenes que se enfrentan a varios problemas de salud, tales personas pueden comprar medicamentos en línea sin orden. Antibióticos de penicilina muy populares que combaten las bacterias. Estos remedios no tratan una infección viral por ejemplo un resfriado común. Vamos a hablar por teléfono de numerosas drogas existe. Kamagra es un remedio usado para tratar de varias quejas. ¿Qué sabes sobre “Comprar Kamagra Oral Jelly“? Actualmente muchos hombres buscan la frase exacta “comprar kamagra 100mg” en Internet. (Leer más “Kamagra Oral Jelly“). Debido a que algunos de los problemas sexuales son emergencias médicas, es bueno conocer los síntomas. Ciertas personas que usan este medicamento generalmente no tienen efectos secundarios graves Kamagra. El farmacéutico necesita resolver qué dosis es la mejor en su caso. Si el medicamento se usa según sea necesario, es poco probable que esté en un horario de dosificación.

Liberación de prácticas; mei

Porque no todo va a ser código, acabo de subir al repo un breve pero interesante trabajo de Mantenimiento de Equipos Informáticos.

Trata de los sistemas de almacenamiento, al comienzo comento algunos tipos de controladores de disco para después pasar a datos sobre mantenimiento y un análisis funcional del sistema S.M.A.R.T. que incorporan casi todos los discos duros y que a muchos sólo nos suela de verlo en el arranque del ordenador.

Los apartados de Matenimiento y S.M.A.R.T. (páginas 4 y 6) no tienen desperdicio. Subido en ODF y PDF, para mayor comodidad.

[slideshare id=5649961&doc=obl1-101102190636-phpapp01&type=d]

El repo era: http://github.com/dugo/practicas-sistemas-ugr

Un gran número de parejas jóvenes que se enfrentan a varios problemas de salud, tales personas pueden comprar medicamentos en línea de investigación sin orden. Antibióticos de penicilina muy populares que combaten las bacterias. Estos remedios no tratan una infección viral por ejemplo un resfriado común. Vamos a hablar por teléfono de numerosas drogas existe. Kamagra es un remedio usado para tratar de varias quejas. ¿Qué sabes sobre “Comprar Kamagra Oral Jelly“? Actualmente muchos hombres buscan la frase exacta “comprar kamagra 100mg” en Internet. (Leer más “Kamagra Oral Jelly“). Debido a que algunos de los problemas sexuales son emergencias médicas, es bueno conocer los síntomas. Ciertas personas que usan este medicamento generalmente no tienen efectos secundarios graves Kamagra. El farmacéutico necesita resolver el problema qué dosis es la mejor en su caso. Si el medicamento se usa según sea necesario, es poco probable que esté en un horario de dosificación.

Liberación de prácticas; redes

Comenzamos la aventura de liberación de prácticas, espero que no se cree mucha polémica en torno a ello, o si 🙂
Con esta finalidad he creado el repositorio http://github.com/dugo/practicas-sistemas-ugr donde iré subiendo las prácticas.

Como primera práctica, he subido una de Redes de Computadores. Concretamente es la práctica 3. Todos los ejercicios hacen uso de la biblioteca pcap, así que para compilar basta como tener instalado el paquete libpcap-dev.

  • Ejercicio 1: Se trata de una analizador de protocolos de red, si no se especifica el dispositivo como primer parámetro, coge el primero que encuentre.
  • Ejercicio 2 y 3:  Muestra los datos de las cabeceras UDP/TCP resp., ocurre lo mismo que en el anterior si no se especifica el dispositivo.
  • Ejercicio 4: Muestra dos conexiones TCP diferentes desde un fichero de trazas.
  • Ejercicio 5: Muestra el flujo de una conexión TCP determinada desde un fichero de trazas.
  • Ejercicio 7: Detecta un posible escaneo de puertos.

Las prácticas están tan elaboradas que sería demasiado descabellado copiarlas xD

Un gran número de parejas jóvenes que se enfrentan a varios problemas de salud, tales personas pueden comprar medicamentos en línea sin orden. Antibióticos de penicilina muy populares que combaten las bacterias. Estos remedios no tratan una infección viral por ejemplo un resfriado común. Vamos a hablare de numerosas drogas existe. Kamagra es un remedio usado para tratare varias quejas. ¿Qué sabes sobre “Comprar Kamagra Oral Jelly“? Actualmente muchos hombres buscan la frase exacta “comprar kamagra 100mg” en Internet. (Leer más “Kamagra Oral Jelly“). Debido a que algunos de los problemas sexuales son emergencias médicas, es bueno conocer los síntomas. Ciertas personas que usan este medicamento generalmente no tienen efectos secundarios graves Kamagra. El farmacéutico necesita resolver qué dosis es la mejor en su caso. Si el medicamento se usa según sea necesario, es poco probable que esté en un horario de dosificación.

Reconfiguring locales

Este error con las localizaciones suele ser bastante común en instalaciones de Ubuntu server;

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "es_ES.utf8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

Solución;

export LC_ALL="C"
dpkg-reconfigure locales
locale-gen

Bastante simple, ¿no?

Un gran número de parejas jóvenes que se enfrentan a varios problemas de salud, tales personas pueden comprar medicamentos en línea sin orden. Antibióticos de penicilina muy populares que combaten las bacterias. Estos remedios no tratan una infección viral por ejemplo un resfriado común. Vamos a hablar de numerosas drogas existe. Kamagra es un remedio usado para tratar varias quejas. ¿Qué sabes sobre “Comprar Kamagra Oral Jelly“? Actualmente muchos hombres buscan la frase exacta “comprar kamagra 100mg” en Internet inalámbrico. (Leer más “Kamagra Oral Jelly“). Debido a que algunos de los problemas sexuales son emergencias médicas, es bueno conocer los síntomas. Ciertas personas que usan este medicamento generalmente no tienen efectos secundarios graves Kamagra. El farmacéutico necesita resolver qué dosis es la mejor en su caso. Si el medicamento se usa según sea necesario, es poco probable que esté en un horario de dosificación.

¿Liberar o no?

Según he comentado en el blog, me gustaría ir liberando prácticas de diferentes asignaturas de Informática de Sistema de la UGR, ya que algunas si que eran realmente elaboradas y tenían contenidos interesantes.

El problema está en que aunque haga años que haya cursado las asignaturas, hay profesores que no han cambiado las prácticas, y por esto, es posible que haya alumnos que puedan directamente copiarlas, fastidiando yo el programa del profesor, o bien, obligándole a renovar.

Claro que esto también puede traer consecuencias académicas negativas para mí, ya que, es posible que vuelva a cursar asignaturas dichos profesores o compañeros del departamento…

Y en este punto esto se transforma en una cuestión ética, mi pregunta es, ¿liberar o no?

Un gran número de parejas jóvenes que se enfrentan a varios problemas de salud, tales personas pueden comprar medicamentos en línea sin orden. Antibióticos de penicilina muy populares que combaten las bacterias. Estos remedios no tratan una infección viral por ejemplo un resfriado común. Vamos a hablare de numerosas drogas existe. Kamagra es un remedio usado para tratare varias quejas. ¿Qué sabes sobre todo “Comprar Kamagra Oral Jelly“? Actualmente muchos hombres buscan la frase exacta “comprar kamagra 100mg” en Internet. (Leer más “Kamagra Oral Jelly“). Debido a que algunos de los problemas sexuales son emergencias médicas, es bueno conocer los síntomas. Ciertas personas que usan este medicamento generalmente no tienen efectos secundarios graves Kamagra. El farmacéutico necesita resolver qué dosis es la mejor en su caso. Si el medicamento se usa según sea necesario, es poco probable que esté en un horario de dosificación.