Qué complicado es mantener las cosas simples (SpokenPic, se acerca a beta)
A finales de junio esperamos lanzar la beta pública, es decir, habilitar la aplicación en Google Play. Ahora que está estabilizado (la app, la parte web, el API de interconexión, etc.) estamos poniendo los esfuerzos en el diseño y los iconos (la única decisión firme por ahora, es que lo haremos con un tema oscuro, favorece a las fotografías, que es lo fundamental).
Ya tenemos casi listo el servidor web para el lanzamiento (lo lleva Bernat), el de ahora es un pequeño VPS de 7 euros al mes (que aguantó perfectamente las pruebas). La web está enteramente desarrollado en Django y Python, la base de datos será PostgreSQL (sólo por gustos del sysadmin), para el reproductor de audio en la web usamos jPlayer, y por supuesto Java y C para la app.
Lo que más trabajo nos ha dado estos últimos días es integrar el compresor Vorbis en la aplicación. Durante este período de “pruebas de amigos y amigotes” hemos descubierto que no te puedes fiar de los compresores integrados en los teléfonos. Algunos son de muy mala calidad. Además, no hay forma de obtener información de sus características para intentar mejorarlo. Así que la solución fue compilar código C para los modelos de móviles e integrarlo con el código en Java. Seguramente esta parte del código la liberaré pronto… cuando se estabilice y descubra cómo hacerlo a partir de un macroproyecto en Java y Eclipse con el SDK de Android (todas nuevas para mí).
En resumen, gracias a los que están probando, y a sus avisos y sugerencias, nos ha ayudado mucho, y también nos generó mucho trabajo. Hacer que la idea sencilla original siga siendo sencilla para el usuario, da muchísimo trabajo. No aprendo, por enésima vez no me esperaba que la implementación de una idea tan sencilla puediese generar tanto trabajo.
No me refiero sólo a la aplicación Android, por detrás hay un desarrollo importante de web, y muchísimo trabajo para la definición y pruebas del API (para que sea un REST totalmente compatible con los estándares y patrones habituales, todavía sigo sorprendido de tantas reglas y normas). Además hay que contar las herramientas de trabajo de grupo: el Mercurial, Redmine (sistema de tickets, wiki, etc.), la lista de correo, etc. Pero para ser tres grupos independientes, que nos reunimos tres veces desde que comenzamos el desarrollo, ha ido más que bien.
Y encima hemos cumplido los plazos que nos hemos propuesto. A pesar de que en la primera reunión a finales de abril, cuando les dije “dos meses para la beta”, ni yo me lo creía. Pero es lo que tiene trabajar con un grupo de muy buenos programadores, que nos conocemos desde hace másde 10 años (por eso les propuse a ellos trabajar juntos, sabía que iba a ser divertido, y productivo).
Y ahora el vídeo de rigor:
Posdata: para montar todo este tinglado no hemos pedido dinero, hemos tenido pocos gastos (un par de teléfonos de pruebas, una decena de libros), sólo hemos invertido mucho tiempo. Pero como digo siempre, hacer un proyecto de software donde todos los socios son técnicos (o el diseñador) es lo más simple. No estamos en Silicon Valley, donde hay prorgamadores muy buenos cada pocos metros, e inversores que ponen mucho dinero para poder pagarles.
Segunda posdata: unos días antes de publicarla en Google Play, haremos público el enlace para descargarse la app (está en Dropbox, siempre tiene la última versión “release” que genero desde Eclipse). Los que queráis probarlo antes, sólo escribidme un email (gallir en gmail) que os paso el enlace.
![Blog [no] premiado](https://gallir.files.wordpress.com/2013/03/premio-no-premio.jpg?w=200&h=261)

Si es que en este país sí que hay ganas de hacer cosas, coño! Buen trabajo.
Otra de las opciones aún si dispones de menos recursos, podría ser GAE, aunque también la curva de aprendizaje sobre su datastore(y sus limites) y olvidarte de modelos relacionales de base de datos puede no compensar
Suerte para el proyecto!!! again…
Hola Ricardo,
No soy muy fanático de tu blog (y es la primera vez que te comento), y a pesar de no coincidir con algunos puntos en los que te expresas, se que tienes una voz con experiencia y se te tiene en cuenta.
Yo estoy empezando a adentrarme en el mundo de los móviles (quizá un poco tarde) y acercándome cada vez más al mundo Open Source (en estos momentos convivo en ambos mundos). Me llamó mucho la atención cuando comentaste a PostgreSQL. Puedo preguntar ,si no es mucha molestia, ¿si no fuera por gusto del sysadmin que motor se utilizaría? ¿MySQL? Porque de ser así les invito a salir de ese pensamiento tan binario y recordarles que existe una tercera alternativa en el mundo Open Source: Firebird. Un motor que ya cumplió su década y ha demostrado hacer las cosas estupendamente (además de haberse ganado varios galardones). Firebird es una apuesta muy fuerte como competidor serio frente a PostgreSQL (de hecho es tan potente como éste y consume menos recursos), y me atrevo a decir que es más Open Source que el dualista de MySQL.
Se que una de las desventajas de Firebird es que no en todos los hostings lo manejan, pero es que si no se le permite la posibilidad de evaluarlo jamás se lo consideraría (hasta me pregunto si no será que no habilitan a este motor a propósito para no darme más “mercado”).
Yo estoy muy contento de utilizarlo, llevo unos años usándolo. Si un gran hospital de alta complejidad eligió Firebird por sobre la mismísima y gran Oracle es porque las cosas pintan más que bien.
¿Tu escuchaste hablar de Firebird? Siendo un entendido del mundo Open Source, creería que si. Sino pues ya lo sabes XD y me gustaría que le dieras oportunidad de probarlo e invitar al resto de la comunidad a difundirlo (aunque quizá no necesariamente le hace falta más difusión). Confieso que me encolera que se diga que no hay alternativas frente a MySQL o PostgreSQL… la hay, es que no la quieren ver.
Saludos,
Perdón, releyendo mi comentario me doy cuenta de que me equivoqué en una oración. Donde dice “no darme más “mercado”", debería ser “No darle más “mercado”".
Para el problema del ruido ambiental, aunque creo que no es prioritario ¿sería plausible introducir un cancelador de ruido opcional? digo lo de opcional porque en ocasiones interesaría no usarlo si el sonido ambiental es de interés.
La elección de una tecnología para un proyecto es una cuestión de adecuación al proyecto, de gustos personales, concimientos y minimización de riesgos.
En nuestro caso la elección de Postgresql se hace porqué tenemos mucha experiencia con bases de datos muy grandes utilizando esta base de datos y conocemos las herramientas que nos ayudarán a escalar la aplicación si SpokenPic evoluciona tal como esperamos.
Mysql hubiera sido una buena elección, pero nos sentimos más cómodos con Postgresql, eso es todo. Con Mysql hemos hecho y mantenemos numerosos proyectos, pero normalmente a petición del cliente. Si podemos elegir apostamos por la solución que creemos que nos da más garantías para el proyecto que vamos a emprender. En este caso Postgresql.
Firebird? Me encanta como base de datos y la utilicé durante muchos años, sólida y fiable, pero no ofrece las garantías de Mysql o Postgresql en entornos web, ni por implantación, ni por utilidades ni librerías asociadas.
Respecto GAE, hubiese sido un riesgo añadido para el proyectos y a costa de perder además mucha flexibilidad. El coste de los servidores para el prototipo es mínimo. 7 eur/mes como comentaba Ricardo y para iniciar la andadura con un servidor potente los costes van a ser mayores pero tampoco disparatados. Frente al coste “casi cero de GAE” hubíesemos tenido que lidiar con una mayor complejidad de desarrollo, volver a definir los mecanismos de gestión y despliegue que ya tenemos definidos tanto para servidores dedicados como para el cloud de Amazon.
En definitiva, cada uno tendrá una tecnología preferida u otra, se tienen que sopesar muchos factores cuando decides poner un proyecto en marcha, y uno de ellos es no hacer demasiados experimentos buscando la tecnología que “te salve”, si lo hace lo más probable es que hayas encontrado la tecnología que te hunda.