To ensure that a user does not make an arbitrary complex request (like those that can hang your server, like sympy.factorint(345234523452353453*234423545244534535)), my solution was to implement threads that would be killed if they had not finished before a specified time.But there is a problem ... python threads can not be killed!This turns out to be a long-lived discussion on the python community: http://bugs.python.org/issue221115Fortunately I found a piece of code ( http://code.activestate.com/recipes/496960/ )that implement a .terminate() method for threads. Great!
Hoy jueves (aunque oficialmente ya es viernes) me frustré muchísimo al ver que Gmail, que era el servicio con el que estaba haciendo las pruebas, bloqueaba las cuentas con archivos muy grandes y decidí demasiado rápido que iba a dejar el proyecto. Lo cierto es que ahora me están entrando dudas sobre si seguir o no, ya que he visto que la gente me está apoyando mucho y mi programa está diseñado para usarse con cualquier servicio de e-mail, no sólo con Gmail (y aun así, con Gmail se pueden enviar archivos de casi 200 mb sin problemas, según las pruebas que hice en su momento). Además, a parte del límite o bloqueo, Unimail se puede ver como una forma de enviar archivos normales abstrayéndose, sin necesidad de verlos como adjuntos a un mensaje (ya que no hay que redactar ningún mensaje, ni siquiera en blanco, por parte del usuario).
El caso es que podría seguir con el proyecto para que se use con cualquier servicio porque quizás haya algunos servicios que no bloqueen las cuentas. Si continúo, podría mostrar un mensaje al inicio del programa que advirtiera de que Unimail se debe usar con cuentas poco importantes para el usuario, por el riesgo de bloqueo.
He visto que Yahoo y Windows Live Mail tienen ya POP, pero no IMAP, y se me ha ocurrido que, gracias a la sugerencia de mi amigo Vargas, podría reestrablecer el protocolo POP en Unimail, dando a elegir entre usar IMAP o POP. Es una idea que me ha gustado mucho, la verdad: tendríamos las ventajas en cuanto a rapidez de IMAP, pero la compatibilidad con los servicios que sólo usen POP. Requeriría escribir bastante código, porque el código que usaba POP de las versiones antiguas tiene algunos fallos y no se puede reutilizar del todo.
En cualquier caso, todavía no lo tengo claro. En breve os comunicaré si sigo con el proyecto o no, porque es difícil tirar 3 meses de trabajo por la borda.
Siento el mareo de decisiones rápidas y radicales que os pueda estar produciendo, pero es que soy una persona que a veces duda demasiado y no sabe decidirse.
Y sobretodo, gracias por vuestro interés, anima mucho, la verdad.
Me he decidido ha hacer un post comentando algunas peculiaridades sobre la instalación de Tucan en Microsoft Windows, ya que muchos usuarios de esta plataforma están encontrando dificultades.
Instalar por primera vez.
Instalar una nueva versión.
Me gustaría aclarar que la versión 0.3-win32 da un fallo al descomprimir algunos archivos descargados, por lo que no es recomendable usarla. Probad mejor la 0.3.2-win32 que trae soporte para cuentas premium en Rapidshare y Megaupload.
Siento mucho las molestias que haya podido causar este bug, pero es que no tengo una maquina con Windows y no he podido probarlo. Por lo que agradezco sinceramente a los que se se han molestado en reportar este fallo, porque esto ha ayudado a que se solucionara lo antes posible.
Finalmente avisaros que estoy en periodo de examenes y por esta razón el desarrollo de Tucan se ha visto ralentizado, pero no os preocupeis. ¡”solo” me quedan dos semanas mas!
Un saludo, Crak.
Ya tengo un ejemplo de un xml para una escena. Aún tengo que añadir algunas cosas pero creo que en líneas generales será de esta forma:
leer más
Hoy he hecho el sistema que recuerda a nuestros olvidadizos usuarios su contraseña a través del correo electrónico.
También cuando un entrenador crea un nuevo deportista se le envía esta información al recién llegado a Gesport, por lo menos para que con su clave y nombre de usuario pueda entrar a ver lo que es.
El caso es que para que Symfony envíe hay diferentes métodos que se pueden de configurar en la carpeta del módulo de acciones de correo que en mi caso he llamado mail.
Dentro del fichero de configuración mail/config/mailer.yml hay que introducir lo siguiente:
all:
mailer: sendmail
all:
mailer: sendmail -f
all:
mailer: smtp
host: nombre host
username: ”
password: ”
Como veis dependiendo de como sea nuestro servidor esas son las opciones que podremos presentar. El que no envíe por defecto en modo de desarrollo ya está contemplado.
Luego os contaré como he resuelto el tema de la internacionalización y localización de fechas (y otros datos de formato numérico) que, con un sencillo método, Symfony soluciona el error de Propel con las fechas anteriores al Epoch UNIX.
Uno de los principales objetivos de LongoMatch es demostrar que hoy por hoy se puede crear una aplicación multimedia multiplataforma utilizando única y exclusivamente herramientas de Software Libre. Para ello escogí como framework multimedia GStreamer un gran conocido en el mundo GNU/Linux pero que apenas se ha dado a conocer en Mac y Windows debido a la existencia de Direct Show y QuickTime.
Lo que muchos proyectos hacían hasta el momento era desarrollar un backend para cada SO, lo que representa un gran trabajo ya que se deben mantener tres a la vez para el caso Windows/Mac/Linux. El enfoque de LongoMatch es totalmente distinto ya que se usa el mismo backend para todas las plataformas. Junto con Songbird y el media center Elisa, LongoMatch es uno de los primeros proyectos en apostar por GStreamer como framework único.
Uno de los grandes problemas de GStreamer es que no proporciona binarios ni para Windows ni para Mac de ahí que cada uno se las tenga que apañar por si mismo. Ante este problema he creado dos nuevos proyectos GStreamer WinBuilds y GStreamer MacBuilds para crear un instalador en esas plataformas que nace de las necesidades de LongoMatch para ser multiplataforma. Para ambos cuento con la colaboración de Andrés Colubri, estudiante argentino de la Universidad de California de Los Angeles (UCLA).
GStreamer WinBuilds
La compilación de GStreamer en windows está basada en el método OABuild que proporciona un entorno para compilar GStreamer usando Visual Studio. El problema de OAbuild es que los binarios que genera no son funcionales del todo por que le faltan mucho plugins esenciales por intentar compilar todas las dependencias externas con MSVC. Lo que hice fue compilar estas dependencias (ffmpeg, libxvid, libx264, liba52, etc…) usando Mingw/Msys y enlazando el compilado de windows con las librerías generadas.
Los cambios que he realizado hasta la fecha son:
En la forja están colgados los instaladores para XP y Vista.
GStreamer MacBuilds
Este proyecto está basado en Macports. El problema original de Macports es que compila unos cambios pulgins con dependencias con Gtk+, lo cual nos genera unas depencias finales de varios megas. La ide es suprimir estos plugins, que no son esenciales, para obtener unos binarios finales con las minimas dependencias finales a fin de empaquetar todo en un instaldor de no más de 50 megas.
Este proyecto está todavía en su fasis de análisi y diseño pero las pautas a seguir serán:
Esta noche envié un archivo de 680 megabytes (el mayor archivo que he enviado hasta ahora con Unimail) a un amigo, para hacer pruebas. Cuál fue mi sorpresa al conectarme esta mañana a la página web de Gmail y ver que mi cuenta de e-mail la habían bloqueado, supongo que por enviar tanta cantidad de datos.
Me parece vergonzoso que, si tengo activo un servicio de e-mail, que al fin y al cabo, aunque sea gratuito para mí, le reporta muchos beneficios a la empresa (por la publicidad y eso), no pueda usarlo como me dé la gana (siempre que no mande spam y esas cosas, claro).
El caso es que, al comprobar que Gmail y, en general, cualquier otro servicio de e-mail, puede bloquearte la cuenta sin motivos y en cualquier momento, he decidido no seguir adelante con mi proyecto, ya que no puede cumplir su principal (y único) objetivo: enviar un archivo de cualquier tamaño a cualquier persona por e-mail.
Es una decisión muy dura para mí, porque le estaba poniendo mucho empeño en este proyecto y ahora mismo estaba en su mejor momento.
Quisiera agradecer su colaboración a todos mis compañeros y amigos de la Delegación de Alumnos de mi facultad (especialmente a Virako y a Rafa), los cuales se han interesado por mi proyecto desde el principio.
Espero presentarme de nuevo al concurso el curso que viene con otro proyecto. Suerte a los demás participantes.
Gracias. Un saludo. Nos vemos en persona en la final, en mi facultad.
Tras mucho buscar y conseguir poca información al respecto he conseguido saber como traducir la aplicación en varios idiomas los pasos son los siguientes:
1.- Tener instalada la librería libintl2.- En la aplicación hay que incluir <libintl.h>3.- Debemos inicializar los parámetros para la traducción: leer más
Después de probar una, dos, tres, cuatro, cinco y hasta seis veces que Fai funcionese creo que he llegado a algo lógico.
El problema de la libreria libsepol no encontrada puede ser debido a un path de librerias mal especificado.
Voy a explicar esto un poco. Supongo que si estáis medio metidos en la consola de Linux conocereis la variable PATH. Esta sirve para especificar en qué rutas y en qué rutas se han de ejecutar los programas.
Ahora bien los programas a su vez (los dinámicos que son la mayoría) necesitan encontrar librerias para leer funciones, procedimientos y otros datos de ellas para poder funcionar. Pues parece ser que editando el fichero: /etc/ld.so.conf y ejecutando ldconfig como root podemos alterar esos valores.
FAI para su instalación usa este truco para poder ejecutar programas del directorio /root sin apenas problemas ya que especifica que las librerias están en: /root/lib y /root/usr/lib a parte de /lib y /usr/lib.
Como comento en el último mail esta definición de librerias tiene que fallar en algun momento porque si no no explica tantas librerias no encontradas… ¡Cuando sí están en /root!
Adrián
Me he creado un archivo de texto a modo de “ToDo” para el proyecto. He pensado que podría publicarlo de vez en cuando aquí en el blog, para que sepáis mis ideas para el proyecto. No sé si me dará tiempo a completarlo antes del final del concurso, pero intentaré cumplir la mayor parte de él. Además, el archivo de texto lo he subido por Subversion y lo iré actualizando al mismo tiempo que lo iré publicando aquí en el blog.
ToDo
- [HECHO][OK] Comprobar compatibilidad de la interfaz gráfica en Windows
- [HECHO][POR PROBAR] Controlar posibles errores de conexión/servidor y re-intentar enviar/descargar las partes restantes
- Controlar excepciones y mostrar mensajes de error en la interfaz gráfica
- Poder configurar el tamaño de las partes
- Al cerrar la interfaz gráfica, cerrar todos los hilos
- Guardar la configuración de la cuenta en la carpeta de datos del usuario
- Guardar contactos en la configuración de la cuenta
- Poder cancelar las descargas y subidas
- Poder borrar archivos recibidos
- Borrar las partes enviadas de la sección de enviados
- Calcular el porcentaje de cada proceso más finamente (mediante el número de bytes transferidos)
- Poder enviar los archivos a más de 1 dirección, enviándose uno a uno (no simultáneamente)
- Crear “etiqueta” en el servidor IMAP para los archivos recibidos y enviados de Unimail
- Hacer posible el doble click en el selector de archivos de la interfaz gráfica
- Hacer resumen de las descargas (poder parar/continuar las descargas)
- Hacer resumen de las subidas (poder parar/continuar las subidas)
- Poder configurar varias cuentas
- Comprobación de la integridad del archivo recibido mediante Checksum o similar
- Poder seleccionar una carpeta para enviar, comprimiéndola en un archivo ZIP
- Poder encriptar los archivos enviados