SiGesOve. Una aplicación para la gestión de rebaños de ovejas.

Como decíamos en SiGesCa, esta aplicación intenta de ayudar y facilitar la gestión de rebaños de ovejas a través de dispositivos móviles en la medida de lo posible.

Para ello hemos tenido en cuenta las características propias de las ovejas, ya que en este caso además de la producción de leche se ha de tener en cuenta la posible producción de lana de las mismas, lo cuál le aporta una características diferencial respecto a las aplicaciones de cabras y vacas, mientras que en otros aspectos si comparte varias características con las otras aplicaciones, como pueden ser el control de la producción de leche, el control de animales en los partos, el control de animales enfermos y tratamientos…

Además de en las características propias se han personalizado textos e imágenes como en cada aplicación acorde al animal del que no estemos ocupando, pero manteniendo características de diseño comunes, por si algún criador tiene diferentes animales, los tenga en aplicaciones eparadas y diferenciadas pero por las que tenga una usabilidad común, no teniendo que pensar en diferentes menús o diseños.

Hemos de tener en cuenta que esta aplicación se verá complementada con una segunda en caso de que el usuario así lo desee en la que por un precio razonable se incluirán las características de gestión económica, así como otras búsquedas avanzadas en la producción y la inclusión de control genealógico para aquéllos criadores que estén interesados. En cualquier caso ambas aplicaciones serán mejoradas en la medida de lo posible, teniendo muy en cuenta las posibles sugerencias de los criadores.

Mostramos a continuación una pequeña galería de imágenes con el funcionamiento de la aplicación:

El pase de diapositivas requiere JavaScript.


Android app on Google Play

Anuncios

SiGesVa. Ayudando a gestionar rebaños de vacas.

Con esta aplicación se intenta ayudar y/o facilitar la gestión de rebaños de vacas, puede verse en SiGesCa la motivación que nos lleva a crear tanto esta como otras aplicaciones para la gestión de animales.

Para la realización de la misma nuevamente hemos tratado de estar lo más posible en contacto con el usuario final de la misma de modo que podamos tener con una alta fiabilidad que datos son necesarios almacenar, que resulta interesante en las búsquedas, información que puede entenderse más fácilmente si se muestra de forma gráfica… Resulta curioso como los criadores de animales diferentes como vacas, cabras y ovejas tienen muchos puntos en común y con eso también en mente ha sido posible complementar las aplicaciones ya que lo que se aprendía que podía ser útil para unos, normalmente resultaba también de interés para otros aunque estos no nos lo hubiesen comunicado en principio, es por eso que en muchos aspectos las aplicaciones se parecen, si bien cada una tiene sus características y sus funcionalidades propias al animal que se esté criando.

Hemos creado diferentes secciones para controlar los animales en el rebaño, la cantidad de leche que se ordeña del mismo, los animales bajo tratamientos sanitarios, los partos de nuevas crías, tratando de facilitar la gestión y comprensión de los datos almacenados haciendo uso de búsquedas, tablas y gráficas.

Debemos tener en cuenta que de igual modo que con las aplicaciones para los otros animales, estamos desarrollando una aplicación de pago, que será compatible con ésta de modo que los datos almacenados en esta se copien a la de pago sin mayor problema para el usuario. Esta aplicación de pago contendrá la gestión económica del rebaño así como características avanzadas de busqueda o gestión genealógica de los animales. Todo ello sin dejar de mejorar dentro de sus características esta aplicación gratuita y siempre atentos a cualquier sugerencia por parte de los usuarios que sea viable.

Pueden observarse algunas características de la aplicación en las siguientes imágenes:

El pase de diapositivas requiere JavaScript.


Android app on Google Play

SiGesCa. Una herramienta para gestionar rebaños de cabras.

Mientras realizábamos la aplicación para la gestión de gallineros (SiGesGa) nos encontramos ante la posibilidad de ayudar a otros grupos de criadores de animales en granjas, como son los criadores de cabras, ovejas y vacas. La idea era crear aplicaciones para gestionar los rebaños de estos animales del mismo modo que había hecho con las gallinas, supongo que el hecho de tener a amigos y conocidos dedicándose a dicha cría hace que te des cuenta de que les puede resultar útil a la hora de ayudar en la gestión.

En esta entrada nos centraremos en la gestión de rebaños de cabras, pero en posteriores se hablará de como se realizaron las aplicaciones para la gestión de ovejas y vacas.

Lo primero que hicimos fue recopilar toda la información que nos podían aportar los criadores que conocíamos directamente. Esta infomación incluye las características del animal que deben almacenarse en la base de datos, cómo se identifica a un animal de manera única, qué búsquedas y consultas podrían resultar de utilidad… A este contacto directo con los criadores se añade también la búsqueda en la red de información sobre la cría y el ordeño, descubriendo por ejemplo que a nivel español se define una campaña lechera anual, no definiéndola de enero a diciembre, sino de abril a marzo, dato este que posteriormente se contrastó con los criadores confirmándose.

Este hecho el de una posible diferente campaña láctea nos hizo plantear la posibilidad de que ciertas búsquedas, tablas y gráficas de la aplicación no se mostrasen según el año natural sino abarcando estos meses, lo que nos llevo a plantearnos si dicha campaña láctea era fija a nivel mundial o sólo europeo o español; tras mucho buscar no se puede confirmar que sea a nivel mundial, si bien si parece ser así a nivel europeo, en cualquier caso y en aras de satisfacer a la mayor cantidad de usuarios posible decidimos que el usuario pueda indicar cuál es el mes de inicio para la campaña láctea en su región, ajustándose los resultados a dicha campaña.

De igual modo se añaden ciertas características para el control de partos y número de crías de un animal para ver cúan productivo es el mismo, el control individualizado de la producción lechera del animal, indicar qué animales están bajo algún tratamiento sanitario, también se permite añadir información para el control genealógico indicando que animales son los padres de otro.

Para la gestión económica del rebaño así como búsquedas más avanzadas tanto en producción como en genealogía estamos desarrollando una segunda aplicación, la cuál por un precio módico permitirá dicha gestión económica ayudando a controlar tanto ingresos como gastos. Dicha aplicación será totalmente compatible con la actual de modo que al instalarse copia todos los datos de la aplicación Lite sin ocasionar pérdida de datos o molestias adicionales al usuario.

Nuestra intención es seguir desarrollando y mejorando ambas aplicaciones, (tanto la gratuita como la de pago) de manera que el usuario esté satisfecho con la misma, de igual modo siempre estamos abiertos a sugerencias sobre posibles mejores.

A continuación mostramos una serie de capturas de pantalla de esta aplicación:

El pase de diapositivas requiere JavaScript.


Android app on Google Play

SiGesGa. Un sistema de gestión para gallineros.

Esta aplicación para dispositivos móviles con Android surge a raíz de la necesidad de un grupo de criadores de gallinas de raza para gestionar su gallinero. Tras varias reuniones y conversaciones vemos que podemos realizar como solución una aplicación para móviles y tablets de manera que en cualquier momento se pueda acceder a ella, permitiendo gestionar su gallinero y sus animales sin mayores dificultades.

En estas reuniones también se establecen que carácteristicas deben almacenarse de los animales y del gallinero, de modo que cada usuario se cree su base de datos independiente; también se van definiendo que búsquedas han de poder realizarse de modo que sus resultados sean útiles.

Con toda esta información comienza el desarrollo de la aplicación para Android, diferenciándose dos entornos de aplicación SiGesGa Lite y SiGesGa.

En su versión Lite podemos añadir, editar o eliminar animales y características que pueden ser de utilidad para el criador de gallinas de raza de cara a exposiciones como son las puntuaciones del gallo o gallina; del mismo modo podemos crear lotes con los animales que tenemos en la granja, llevar un control de cuantos huevos recogemos diariamente y realizar busquedas para encontrar cuantos animales tenemos separados por razas.Esta versión Lite es gratuita y está pensada a aquéllos criadores que tienen sus animales por afición, mientras que en la otra versión se añadirán una serie de carácteristicas adicionales pensando en una cría más profesional, en la que se añade la gestión financiera para controlar ingresos como premios, ventas… y gastos como vacunaciones, compra de alimentos o animales…; esta segunda aplicación saldrá por un precio al que tras consultar con los criadores se ha considerado justo para ambas partes.

A continuación pueden verse algunas capturas de pantalla de la aplicación

El pase de diapositivas requiere JavaScript.

Hemos intentado hacer una aplicación sencilla e intuitiva de manejo para el usuario, aún así en cada pantalla de la aplicación puede pulsarse un icono (?) para solicitar la ayuda correspondiente para los casos en que se necesite una ayuda adicional en pantalla. Hay que reseñar que la aplicación se encuentra localizada en inglés y español. Actualmente continuamos con el mantenimiento de la misma, añadiendo funcionalidades y resolviendo los problemas que el usuario pueda encontrar.

Android app on Google Play

Una experiencia programando en Otter.

Este programa lo conocí durante mi formación académica dentro de una asignatura donde veíamos sistemas de razonamiento automático. Siempre he pensado que el conocer diversos lenguajes de programación y sistemas o programas te dan la posibilidad de afrontar un mismo problema desde diversos puntos de vista y que lo que aprendes con lenguajes funcionales te puede ser útil del mismo modo que lo que te aportan los lenguajes imperativos, no me gusta hablar de que algo es mejor o peor, son maneras diferentes de afrontar problemas y te permiten afrontar los problemas con una batería más amplia, más completa de soluciones.

En este caso trataré el sistema Otter. Para aquellos que no lo conozcan decir que Otter es un demostrador automático para la Lógica de Primer Orden con Igualdad, es un demostrador automático por refutación, esto es, busca una contradicción en un conjunto de fórmulas, dando como resultado una prueba en forma de secuencia de fórmulas indicando como se obtienen a partir de las anteriores o de las de partida.  El programa, el manual y algunos ejemplos los podéis encontrar en el siguiente enlace Otter, está en inglés y pertenece a William McCune su desarrollador; también podemos encontrar recursos en este otro enlace Otter altenativo, que también está en inglés; pudiéndose encontrar versiones tanto para Linux como para Windows. Como curiosidad decir que el nombre del sistema Otter en español quiere decir nutria y es este animal el que encontraremos en el segundo de los enlaces como imagen del programa, aunque Otter es un acronimo de Organized Techniques for Theorem-proving and Effective Research.

El problema sobre el que trabajamos para encontrar la solución es un puzle al que denominamos el atasco. Dicho puzle lo podemos encontrar en El Profesor Layton y la Villa Misteriosa siendo el puzle denominado el aparcamiento; aunque es una versión más compleja que el que mostraré, es igualmente resoluble con este sistema sólo habría que implementarlo adecuadamente.

La idea del puzle es que tenemos una serie de piezas en un tablero y queremos sacar en concreto una de ellas por una zona concreta del tablero y solo pudiendo hacer desplazamientos horizontales o verticales de las piezas.

otter1En los casos solucionados siempre se busca llevar la pieza cero al hueco en la esquina inferior derecha del tablero, es algo que todos podemos hacer manualmente, pero que conforme aumentamos el tamaño del tablero y el número de piezas puede llevarnos cierto tiempo.

La complejidad de la solución reside en encontrar una manera de representar el problema correctamente de manera que podamos identificar los movimientos que hay que hacer para llegar a la solución. Toda la representación y las soluciones con una explicación detallada a las variaciones que se ven en la siguiente galería se pueden encontrar en el siguiente archivo solución atasco.

Con respecto a las soluciones hay que tener en cuenta que el sistema busca la solución que menos pasos da para llevar la pieza al objetivo, lo que no quiere decir que tarde poco en encontrarla de hecho hubo una solución que tarda unos veinte minutos para estas dimensiones, hace una busqueda exhaustiva realizando poda para no volver a situaciones repetidas pero aún así en los casos en que el sistema requiere realizar muchos movimientos tardará algo más de lo que uno quisiera, pero lo dicho a cambio tienes la solución con mínimos movimientos.

Desarrollando Webs

A lo largo de mi vida he tenido la posibilidad de realizar diversos trabajos de desarrollo web tanto a nivel profesional, personal como académico. En esta entrada y posteriores intentaré contar parte de esas experiencias, lo que he aprendido, intercambiar opiniones y consejos…

Lo primero que me gustaría comentar tiene que ver con el título de la entrada, desarrollo web, para mí realizar un desarrollo web supone hacer las funciones de diseño, programación, maquetación y lo que sea necesario para crear un sitio web, ya que considero que estas funciones aunque se realicen de forma separada o incluso por diversas personas no debe perderse la perspectiva de que son un conjunto con un objetivo común.

El desarrollo web ha supuesto poder poner en práctica lo que he ido aprendiendo en cursos y asignaturas a la hora de programar o maquetar, pero también dar rienda suelta a la creatividad en el diseño, tratando de buscar soluciones imaginativas a la vez que útiles. Además el mundo del desarrollo web es tan amplio y tan activo que siempre puedes aprender algo nuevo, puedes mejorar, descubrir soluciones diferentes, hay que estar atento y abierto a las novedades e ideas de todos.

Me gustaría finalizar esta entrada con algún ejemplo de desarrollo realizado por mí, no para presumir de ello sino para después de haber hablado tanto poner muestras propias. Aparte de este propio blog, se pueden ver muestras del trabajo realizado en la página realizada para la Asociación de Criadores Gaditanos de Gallinas Andaluzas Los Alcornocales www.gallinandaluza.com, o para la página de turismo de Alcalá de los Gazules www.turismodelosgazules.com.

Diseñando en 3D

Como dije soy aficionado a diseñar en 3D, me gusta intentar ser creativo y mejorar estas habilidades, ya que nunca sabes cuando te pueden servir, ya sea para diseñar un logo, añadir contenido en una web de una forma distinta o simplemente plasmar una idea.

A continuación una pequeña muestra de algunos diseños realizados

El pase de diapositivas requiere JavaScript.

Geometría Plana, una biblioteca para Maxima

Gracias a una asignatura cursada en la carrera, la asignatura se llamaba Cálculo Simbólico y Álgebra Computacional, conocí este programa Maxima y su versión para Windows wxMaxima, se trata de un programa en el que se pueden realizar cálculos numéricos y/o algebraicos; hablaré de este sistema en un post aparte donde contar la experiencia ya que considero que es un muy buen sistema quizás algo desconocido, simplemente decir que me recordaba a la forma de trabajar con Matlab o Mathematica.

Dentro de esta asignatura vimos como el programa puede apliarse usando su propio lenguaje de programación muy similar a Lisp, de hecho también se puede ampliar usando Lisp ya que Maxima está creado usándo este lenguaje.

Cómo trabajo en esta asignatura se decidió realizar algún tipo de ampliación del lenguaje e investigando qué podía faltarle y que además no estuviese desarrollado aparte en la comunidad de Maxima en Sourceforge, encontré que la geometría en 2D o geometría plana no estaba implementada, así que con esfuerzo realicé una biblioteca con cierto número de funciones para trabajar con este tipo de problemas, ya fuese el cálculo de áreas y perímetros de polígonos dados sus vértices, el trabajo con rectas ya sea con ecuaciones paramétricas o implícitas, la representación gráfica de polígonos y otros problemas como es la determinación de punto en polígono o el cálculo de intersección de polígonos usando el algoritmo de Weiler-Atherton.

Este trabajo puedes obtenerlo en los siguientes enlaces de dropbox, en español: GeometríaPlana, o en inglés: PlanarGeometry; el motivo de que esté en ambos idiomas es por deferencia hacia la comunidad de Maxima que es ampliamente angloparlante, de hecho también se puede encontrar en el siguiente enlace del foro de Maxima en Sourceforge: foro Maxima.

No quiero terminar este post sin agradecer la labor de los profesores de esta asignatura, Ignacio y Luis, por haberme dado la posibilidad de conocer este programa y animarnos tanto a ampliarlo como a luego publicar este trabajo.

Comienza…

Comienza aquí la andadura de este blog, en el que compartiré mis experiencias como programador, como desarrollador web y como aficionado al diseño 3D.

Trataré de tratar diversos temas de programación, inluyendo algunos desarrollos en lenguajes no muy usuales en los que he tenido experiencias, del mismo modo iré mostrando algunos diseños en 3D que vaya o que he ido creando en estos años que es una afición que he ido desarrollado.

Sin más aquí comienza…