Después de mucho esfuerzo, he conseguido acabar la primera versión del programa, la 0.1. Se trata de una versión totalmente funcional, aunque eso sí, es muy básica y tiene muchos errores.
He creado una nueva sección en el blog para descargar el programa de forma cómoda, en la que aparece un enlace a la página web del proyecto para descargar directamente el programa. El enlace es hacia un archivo comprimido que he creado y subido a la página web del proyecto que contiene todos los archivos del programa, para que el usuario no se tenga que bajar los archivos uno a uno de Subversion.
Para probarlo, por ejemplo, con una cuenta de Gmail, los datos que necesitaréis, además del nombre de usuario (incluído @gmail.com) y la contraseña, son:
Bueno, espero que os guste y, ya sabéis, estoy abierto a cualquier opinión, comentario, crítica o sugerencia.
Si, después de un par de semanas de intenso trabajo Tucan ha llegado al estado alpha, ya puede descargar! Esto no es algo que deba tomarse a la ligera, aunque siga sin ser usable, el hecho de descargar significa que las piezas que componen Tucan están encajando.
No digo que dentro de otro par de semanas el sistema de gestión de plugins me parezca una aberración y vuelva a implementarlo, sino que ya tenemos una referencia.
Para que entendáis como funciona Tucan me gustaría aclarar algunos conceptos.
Y ahora como era de esperar unas capturas de pantalla:
En esta ventana se pegan los links a descargar y se debe comprobar su validez antes de pasárselos al gestor principal, así la creación de paquetes se agiliza.
Aquí podemos apreciar que la descarga, aunque automatizada, debe cumplir el tiempo de espera, de otra forma el servidor nos desconecta el socket.
Tachan! Os invito a bajaros el source e intentar descargar algo, como dije al principio no es ni de lejos funcional, pero como podéis ver descarga.
PD: La razón por la que en las capturas aun se ve que la versión es pre-alpha, es porque decidí dar el paso a alpha escribiendo este post.
Un saludo, Crak.
Pues hemos estado indagando un poco en el asunto de que el IDE no nos dejara compilar DLL’s en linux y hemos encontrado la solución a este temita que nos tenía mosqueados.
El primer error que cometíamos era indicar en las opciones del proyecto que nos compilara solamente para la plataforma Windows. Debíamos dejarlo como estaba, para todas las plataformas (Unix, Mac y Windows).
Hecho esto, tanto el ejecutable como la DLL compilan perfectamente. La sorpresa es que el ejecutable aparece sin la extensión característica (.exe) y la DLL sin la suya (.dll). Esto es lo que nos hizo comer la olla y liarnos en el tema de toquetear las opciones del proyecto. Que el ejecutable era para windows no había duda, pues lo abriamos con Wine y voilá, lo corría perfectamente. El tema era la dll, que nos la daba con extension .so. Nos ha hecho sospechar que el ejecutable funcione para Windows a pesar de la no-extensión y de la compilación “multiplataforma”, y supuestamente el DLL no debería de funcionar. El caso es todo el contrario, hemos puesto una bonita extension .dll a nuestra DLL de prueba, y hemos exportado la función que habia dentro al ejecutable y… sí! Funciona perfectamente! Problema solucionado!
Aquí os dejo el código de los programas de prueba, por si alguien le interesa.
Ejecutable:
#include
#include
#include
#include
int main()
{
/*Definimos el tipo para la funcion a exportar*/
typedef void (*pfunc)();
/*Hande de windows*/
HANDLE hdll;
/*El puntero a la funcion*/
pfunc HelloDllFunc;
/*Cargamos la libreria con LoadLibrary*/
hdll = LoadLibrary(”HelloWorld.dll”);
/*Obtenemos la dirección de la funcion a utilizar con GetProcAddress*/
HelloDllFunc = (pfunc)GetProcAddress(hdll, “printHelloWorld”);
/*Llamamos a la funcion*/
HelloDllFunc();
/*Paramos la ejecucion con un getch, de la libreria conio.h*/
getch();
return 0;
}
DLL:
#include
//Funcion de la dll que imprime por pantalla “Hello World!” 4 veces
void printHelloWorld()
{
int i;
for (i=0; i<4;i++){
fprintf(stdout, “Hello World!\n\n”);
}
}
Como veis el código está bien comentado así que deberíais entenderlo fácilmente. Sino siempre nos podéis preguntar. Si preferís que subamos el tarball con los proyectos de Code::Blocks pedidlo y lo subiremos a un Rapidshare, Megaupload o algo parecido.
Por cierto, también os dejo el link del HOWTO para configurar el Code::Blocks para compilar para Windows:
http://forums.codeblocks.org/index.php?topic=3343.0
Pues nada, a continuar trabajando! Esperamos que le sirva de ayuda a alguien esto también!
Posted in Desarrollo Tagged: Desarrollo
This project aims to build a web API on top of django for building mathematical web services. The idea is to expose a JSON-RPC API with some methods (like solve, integrate, diff, etc. ) so that you can retrieve the output of these methods with some simple Ajax calls.The mathematical engine behind it will be sympy. The status of this project right now is 'Planning', i.e. very little code is publised, only a rough idea of what this will finally look like.
¿Que herramientas vamos a usar? , es una decisión algo compleja y muy importante , en principio vamos a usar weka[http://www.cs.waikato.ac.nz/ml/weka/] pero que pasa si alguien no quiere tener una herramienta de datamining[DM] , pero quiere hacer una regresión lineal o calcular el yield de su empresa y sacar las gráficas pertinentes.
Ademas de un problema ya que Weka es GPL y eso como todo el mundo sabe el “GPL es una licencia Virica”, con los problema que conlleva esto.
Para ello hemos pensado en usar librerías de estadísticas y algunas de economía. Ya que así la herramienta sera mas versátil y mas útil a una empresa
1.-http://www.omegahat.org/
2.-http://metodosestadisticos.unizar.es/menu_e/contenidos/enlaces/enlaces.htm
3.-http://www.ee.ucl.ac.uk/~mflanaga/java/index.html
4.-http://commons.apache.org/math/
5.-http://public.maquib.com/
6.-http://www.mathtools.net/Java/Finance_and_Economics/index.html
Las cinco primeras son de estadística y la ultima es un link a una web donde hay de economía
CAN (Controller Area Network) es un protocolo de comunicaciones desarrollado por la firma alemana Robert Bosch GMBH, basado en una topología de bus para la transmisión de mensajes en ambientes distribuidos, además ofrece una solución a la gestión de la comunicación entre múltiples unidades centrales de proceso. Se diseñó principalmente para el sector del automóvil como una respuesta a comunicar la creciente cantidad de elementos introducidos en los automoviles actuales, que incluyen los elevalunas, la centralita de confort, la alarma, etc. Al utilizar un bus para la comunicación, se evita tener que introducir cableado para el paso de tantas señales entre elementos, ahorrándose así una elevada cantidad de cobre y por consiguiente una reducción de los costes.
CAN proporciona beneficios al ser un protocolo de comunicaciones normalizado, con lo que se simplifica y economiza la tarea de comunicar subsistemas de diferentes fabricantes sobre una red común o bus. Otra gran ventaja es que el procesador anfitrión (host) delega la carga de comunicaciones a un periférico inteligente, por tanto el procesador dispone de mayor tiempo para ejecutar sus tareas. Y por otro lado, al ser una red multiplexada, reduce considerablemente el cableado y elimina las conexiones punto a punto.
Pese a que sus aplicaciones iniciales estaban perfectamente definidas para el sector automovilístico, esto no ha impedido incorporarlo en otros escenarios, como pueden ser automatización de fábricas, electrónica marina, control de máquinas industriales, etc.
Tenemos una buena noticia! Unos compañeros de la universidad, también estudiantes de Informática, se han interesado por el trabajo que estamos desarrollando y han decidido unirse al grupo, como colaboradores.
Aquí sus nombres y sus funciones dentro del equipo:
Unai Orbe Lavin: Como programador.
Miguel Gutiérrez Escobedo: Como diseñador.
Ander Suárez Martínez: Como compositor ...
Después de varios días buscando información sobre el uso de la librería poplib (la cual está muy poco documentada y me ha desesperado bastante), he conseguido escribir el código para descargar las partes de cada archivo de la bandeja de entrada de e-mail. Además, las pruebas que he hecho han sido exitosas. Este código lo he subido hoy a la página web del proyecto.
Me falta todavía escribir el código para enviar las partes del archivo a enviar, para lo cual tendré que buscar información sobre cómo manejar el protocolo SMTP en Python.
También he escrito y subido el código de la interfaz de usuario, el cual funciona sólo para ver los archivos recibidos pero, no para enviar archivos, por lo que tengo que completarlo.
Una vez que haya escrito el código para enviar archivos y completado la interfaz de usuario, ya habré terminado la primera versión del programa totalmente funcional (aunque muy básica y con muchos errores).