Archive for the ‘Tecnología’ Category

Se aceptan Bitcoins (en Zacatrus)

10 junio 2013

En Zacatrus ya aceptamos Bitcoins. Sí, esa moneda de la que todo el mundo habla, que no existe realmente, que da miedo, que fluctúa constantemente. ¿Y qué moneda no es así?

Bitcoin es una moneda virtual basada en criptografía. Si no sabes lo qué es, cómo funciona o cómo conseguirla, te invito a que te pases por http://bitcoin.org/es/ o por su artículo en la Wikipedia.

Se ha dicho del Bitcoin que es pura especulación, incluso que es el nuevo tulipán. También hay quien lo ve como la salida a la tiranía de los bancos, pero yo prefiero poner el énfasis en lo útil que es como herramienta de pago en Internet. A saber:

Bitcoin en Zacatrus

  • Bajas comisiones. No nos engañemos, empresas como Paypal triunfan porque dan un gran servicio al usuario final. Sin embargo a veces olvidamos que no deja de ser una entidad de crédito que cobra altas comisiones a las tiendas y que, irremediablemente, repercutirá en el precio del producto. Por otro lado puede que las comisiones de las tarjetas de crédito sean más bajas, pero también es cierto que es una herramienta muy incómoda, lenta y a veces insegura. En cualquier caso, ninguna de las dos soluciones están optimizadas para la venta online.
  • Sin intermediarios. En cuanto a la transacción es absolutamente limpia. No hay que introducir números de tarjetas ni pasar por entidades de crédito. El Bitcoin fluye de la cartera del pagador a la del vendedor directamente. Además, esto hace que el pago sea totalmente anónimo. Nadie sabrá nada de la transacción más que el comprador y el comercio. Y el comercio solo tendrá los datos que el comprador le haya querido dar explícitamente y fuera de la transacción económica.
  • Pagos seguros y fiables. Es responsabilidad de cada usuario mantener a salvo su cartera de Bitcoins. Por supuesto, es cierto que es posible perder la cartera, pero ¿cuándo no lo ha sido? 😉 Eso sí, el riesgo está limitado al número de Bitcoins con que haya sido cargada y hay mil formas de guardar copias de seguridad. Posibilidad que una cartera física llena de billetes y tarjetas de plástico no tiene.
Pantalla de pago con bitcoins en Zacatrus

Pantalla de pago con Bitcoins en Zacatrus

Por todo ello, en Zacatrus nos sentimos muy orgullosos de ser de los primeros ecommerce que aceptan Bitcoins en España. Creemos y esperamos que poco a poco se convertirá en la norma. Nuestros granito de arena de momento es que, usando Bitcoins, ya se puedan comprar juegos de mesa, Lego, Playmobil, robots, radiocontrol, poker, puzzles… y muchas más cosas en camino.

Anuncios

Developer facts

17 diciembre 2010

A veces a uno le de por pensar en por qué fallan tanto los desarrollos de software (así, en general). Es evidente que las razones son, por decir un número, mogollón. Pero como hoy tocaba hacer un poco de autocrítica, charlando con los compis en el café nos han venido a la cabeza unos cuantos vicios clásicos de los programadores. Esas situaciones que se repiten en cada proyecto, cual Sísifo cargando con su piedra montaña arriba. Ahí van:

Error 500: System failure

  • Lo que hizo el programador anterior es una mierda. Es mejor empezar de cero.
  • Mi religión es internet y mi Padre Nuestro es el copy-paste. Si el código descargado/copiado falla, no es culpa mía. Es la Providencia.
  • Si mi aplicación falla, el error está en el módulo que ha escrito otro programador.
  • Siempre uso la última versión de toda herramienta o framework. Sé que falla mucho, pero la penúltima ya no se lleva.
  • En un día lo termino todo tal y como estimé. Lo que hago durante los otros 30 días que dura el desarrollo son arreglos y ajustes sin importancia.
  • Si la solución a una necesidad muy concreta es trivial, siempre es preferible hacer un desarrollo complejo y genérico para posibles necesidades futuras.
  • Eso ya está hecho. Tengo un “to-do” en el código.
  • Si entrego tarde, no tiene nada que ver el tiempo que he estado en Facebook o chateando. Es que el proyecto estaba mal estimado.
  • Eso no se puede hacer.
  • Si hago la aplicación como me da la gana, es porque el lamentable documento de análisis me obliga a potenciar mi creatividad.
  • No es un bug, es una feature.

¿Falta alguna?

Gratis no es lo mismo que libre

24 septiembre 2010

Por lo que veo últimamente, me parece que hay mucha confusión entre lo que es libre y lo que es gratis, al menos en cuanto a software se refiere.

Gratuito, ta

1. adj. Que no cuesta dinero, que se consigue sin pagar

Libre

3. Que no está sujeto ni sometido

Sin ir más lejos y si uno se basa en esta definición, gratis son solo las cosas por las que no se paga dinero. Ahora bien, libre va mucho más allá. Aplicado al mundo del software libre significa que puede ser “ejecutado, copiado, distribuido, estudiado, modificado y distribuido modificado“.

Android es libre, Google Apps es gratis

Pero veamos que pasa en el mundo Google y su, tan aclamado como polémico, Android. Resulta que, aunque les pese a muchos, Android es libre del todo. Cumple con todas estas características (véase el site del proyecto). Como tal, puede ser modificado y adaptado por terceros. Un buen ejemplo es CyanogenMod, distribución de Android creada y mantenida por la comunidad, que llevo orgulloso en mi HTC Magic. Sobra decir que esta distribución no está soportada ni por Google ni por HTC y muchísimo menos por Vodafone.

Otra cosa muy diferente son las Google Apps (Market, Gmail, Google Agenda, Talk, Docs, …) que casi siempre se distribuyen con el dispositivo Android. Como usuarios no pagamos por usarlas pero si están sujetas y sometidas a las políticas de Google. Llegados a este punto es necesario aclarar que sí es posible tener un dispositivo Android sin estas aplicaciones. Exactamente igual que si se instalan o no en un teléfono Nokia o cualquier otro que lo soporte (Market es específico de Android).

Google es una empresa, tú eres libre

Sí, el proyecto Android lo inicio Google y creo que es de agradecer, pero no creo que eso le convierta en una ONG. En el saludo inicial del sitio web del proyecto Android se puede leer “We wanted to make sure that there was no central point of failure, so that no industry player can restrict or control the innovations of any other” (Queríamos asegurarnos de que no había un único punto de fallo, de modo que ninguna gran empresa pueda restringir o controlar las innovaciones de otras.). Supongo que quien redactó la frase olvidó mencionar que también era su forma de “colar” su software y/o servicios en todos los dispositivos móviles que pudieran.

Pero, claro, esto tampoco les convierte en el demonio como sugieren articulos como este (Google Is Now Officially Evil) que leía hace unos días. Google es una empresa con ánimo de lucro, igual que cualquier otra empresa y hará todo lo posible por maximizar su beneficio.

Personalmente prefiero utilizar siempre software libre aunque haya sido desarrollado (al menos en parte) por una empresa privada. Lo importante es que tú eres libre de utilizar el software y el dispositivo que quieras y, si la política de Google no te convence y, sin entrar en cual funciona mejor, siempre podrás elegir comprar un iPhone


Vídeo de la ponencia en Decharlas

2 agosto 2010

Dicen que más vale tarde que nunca, así que aquí va el vídeo de mi ponencia en la primera edición de las Jornadas Symfony celebradas los pasados 5 y 6 de Julio en Castellón. He de decir que, a parte de disfrutar de un alto nivel en las charlas del resto de los ponentes, me divertí como un enano y tuve la oportunidad de conocer a un montón de gente realmente interesante. Un aplauso para la organización y en especial a David Castelló por el brillante trabajo.

Symfony en España. Caso práctico I: voota.es – decharlas 2010 from decharlas.com on Vimeo.

Y la presentación de la ponencia:

Un workflow sencillo con git

4 junio 2010

Uno de los grandes quebraderos de cabeza del desarrollo web es el control del ciclo de vida. Cuando la cosa se pone seria, muchos desarrolladores, muchos cambios etcétera, se hace imprescindible alguna metodología compleja tipo integración continua. Sin embargo, en la mayoría de los casos es suficiente con tener un poco de orden y unos procedimientos claros.

Gráfico GitHub de los commits de Voota

Gráfico GitHub de los commits de Voota

Es, sin duda, el gestor de versiones el principal aliado para gestionar correctamente el ciclo de vida. Este es el workflow que utilizamos en Voota con git:

  1. Cada desarrollador “sube” sus cambios al repositorio de software cada vez que realiza un desarrollo. Para ello se utiliza la rama “master” en git, que es, por decirlo de alguna manera, la arteria principal del desarrollo. Es el proyecto vivo que se irá actualizando diariamente.
    git commit -am “Resuelto el ticket #nnn”
    git push
  2. Cuando hay un “change set” razonable, o lo que es lo mismo, ya se tienen unos cuantos cambios que queremos que sean revisados, se envían al servidor de pruebas (“stage”). En el servidor de pruebas hay una copia (“clone”) exacta del código fuente, pero que, para que funcione en modo test, se realizan algunos cambios básicos. En el caso de Voota se copian los scripts de php que ponen a Symfony en modo test (en realidad esto sólo se hace una vez al instalar el servidor):
    mv frontend_test.php a index.php
    mv backend_test.php a backend.php

    A continuación se utiliza la magia de git. Se actualizan los fuentes con rebase. La gracia de “rebase” es que re-aplica las acciones que se han realizado (como los mv de arriba) sobre la copia local después de actualizar los cambios desde el repositorio. De este modo no es necesario volver a hacer las modificaciones.

    git pull –rebase
  3. Para el paso a producción hace falta un poco más de control. Se debe implementar un mecanismo que permita al desarrollador retomar el código en el estado exacto que está en producción. Este es el uso que damos a las etiquetas (tags) de git:
    git tag milestone1_8_5
    git push –tags

    Esto creará una foto del proyecto en su estado actual, con todo el conjunto de fuentes agrupado bajo el nombre de etiqueta milestone1_8_5. Como curiosidad, se pueden ver aquí las etiquetas que tenemos en el git de Voota.
    El resto es similar al entorno de pruebas, con la diferencia que no se actualizarán los programas de la rama “master” como antes, si no que se hará de la etiqueta recién creada:

    git pull –rebase origin refs/tags/milestone1_8_5

Alguien que conozco diría “Todo perfecto. Invitar a cañas” 😉 … pero, ¿que pasa si se sigue desarrollando en la rama “master” y se detecta un error importante en producción?¿a alguien le ha pasado alguna vez? Nada, se arregla y listo. Ahí va el procedimiento:

# Por si algún otro desarrollador ya lo ha hecho antes, se actualizan las etiquetas desde el repositorio:
git fetch –tags

# Se crea una rama basada en la etiqueta de la versión en producción:
git checkout milestone1_8_5 -b b_milestone1_8_5

#####################################
# Se hacen cosas: Arreglar el bug por ejemplo 😉
#####################################

# Se suben los cambios a git:
git commit -am ‘se explica lo que se ha hecho un poco’

# Se actualiza la etiqueta:
git tag -f milestone1_8_5

# Se “empuja” al repositorio
git push –tags

# Volvemos a la rama principal en la copia local
git checkout master

# Se aplica el parche a la versión en desarrollo para que no se pierda en la siguiente release
git merge b_milestone1_8_5

# Se borra la rama creada para la ocasión
git branch -d b_milestone1_8_5

Ahora en el servidor de producción se actualiza la versión “tirando” de la etiqueta:

git pull –rebase origin refs/tags/milestone1_8_5

Trabajar con git tiene muchas ventajas y una de ellas es hacer las cosas fáciles y rápidas. Creo que este es un buen ejemplo.

VootaDroid: Voota en Android

14 abril 2010

Hace poco hablábamos de la recién creada API de Voota. Hoy ya tenemos un ejemplo para enseñar: VootaDroid. Se trata de una aplicación para Android que hace uso intensivo de la API.

Si eres desarrollador o, simplemente curioso, ahí van unos enlaces de las tripas de la aplicación:

Javier Yohn nos cuenta para que sirve la aplicación en este vídeo:

Y, por si sólo quieres probarla en tu teléfono Android, búscala en el market como VootaDroid o escanea este qr:

qrcode

Para más datos, aquí tienes el anuncio oficial: http://blog.voota.es/pon-a-voota-es-en-tu-movil-vootadroid/

Una API para Voota

5 abril 2010

Si todo va bien, a lo largo de esta semana publicaremos la API de Voota, en versión beta, claro. Por decirlo de manera sencilla, una API es un mecanismo para intercambiar información con otras webs o aplicaciones.  Desde el principio hemos tenido claro que era necesaria, pero no siempre hemos estado seguros de cómo era de prioritario. Puede que, de entrada, no sea fácil ver la utilidad, sin embargo, pienso que en un proyecto como Voota es incluso necesaria:

  • Voota, como asociación, tiene por principio ser transparente en todo y para todos. Lo hacemos con los socios, con la financiación, con el software y con la información que generamos (Voota y Creative Commons son amigos de toda la vida). No contentos con publicarlo, nos esforzamos en facilitar el acceso a toda esta información. Con los datos no queremos hacer una excepción. Esta API permitirá leer las valoraciones y comentarios sobre nuestros políticos no sólo desde la web de Voota, si no desde cualquier otra web, aplicación o dispositivo que quiera hacerlo.
  • Los estatutos de Voota rezan: “… La existencia de esta asociación tiene como fines fomentar la participación ciudadana en la política … “. No veo mejor forma de fomentar la participación que ofreciendo toda la información de la manera más abierta posible y aceptando en forma de opiniones/votos la información que generan terceros.

Pero, ¿qué utilidad se le puede dar a esta API?

Hay tantas formas de utilizar una API como mentes pensantes, pero por poner algún ejemplo:

  • Otras webs de política que quieran publicar lo que la gente opina de los políticos/partidos.
  • Otras webs, aplicaciones o dispositivos móviles que permitan “vootar” a los políticos/partidos.
  • Herramientas de generación es estadísticas o rankings.
  • Widgets o pequeñas aplicaciones que mantengan información continuamente actualizada sobre algún político o partido.
  • Por nuestra parte ya estamos preparando una pequeña aplicación para Android que la utilice. Por supuesto, será de código abierto 😉

    VootaDroid

    VootaDroid. Ejemplo de consumidor de la API de Voota

Sobre la tecnología no hay mucho que decir aun, salvo que, como viene siendo habitual, hemos intentado utilizar los más abierto y estándar que nos ofrece el mercado: OAuth, REST, json. También pretendemos ofrecer un par de de interfaces de comunicación como ejemplo. Una en php y otra en java.

Lo dicho, tendréis noticias muuuy pronto …

github: Un nuevo hogar para el código fuente de Voota

8 marzo 2010

Siguiendo la política de transpariencia de Voota, esta semana hemos dado otro pasito. Nos hemos quitado de encima todo el código y le hemos buscado un sitio donde, pensamos, estará más cómodo.

Voota en github

Voota en github

Hasta ahora lo teníamos alojado en un servidor propio gestionado con subversion. Hoy Voota está en github, un servicio especializado en alojar software libre, donde cualquiera podrá acceder, comentar, reportar errores y muchos otro servicios. Además, pasamos de subversion a git que nos trae algunas funcionalidades nuevas.

¿Por qué este cambio?

Pensamos que es el lugar natural para un proyecto de estas características:

  • Porque el código fuente de Voota será más accesible, más fácilmente localizable para cualquiera que lo busque o lo quiera ver.
  • Porque estará más cerca de la comunidad de desarrolladores, gente que puede estar interesada y/o que puede aportar conocimiento.
  • Porque estará gestionado por expertos en el tema.
  • … y, además, quitará parte del trabajo de gestión a éste que suscribe. Eso siempre es bueno 😉

… y con el paso a git (vs. subversion):

  • Ganamos un entorno distribuido en el que no hace falta estar conectado con un servidor para utilizar el control de versiones.
  • Mejora sustancial de la gestión de ramas (branching).
  • Flexibilidad y eficiencia. Poco se puede decir de git que no esté dicho ya. Sólo puedo añadir que uno no es consciente de su potencia hasta que comienza a utilizarlo.

Dicho esto, estáis todos invitados a ver, descargar, comentar y cotillear por el código de Voota. Estará encantado de recibiros en su nueva casa 😉

Traducción web rápida y fácil con Symfony y Pootle

8 febrero 2010

El tema de las traducciones es, muchas veces un verdadero dolor de cabeza. La creación del código multi-idioma, la extracción de etiquetas y el envío y recepción de los textos al traductor son tareas que se pueden simplificar notablemente utilizando las herramientas apropiadas. Ahí va nuestra propuesta:

  • Codificación de las vistas (páginas) con etiquetas traducibles. El ejemplo a continuación es un extracto de una vista de Symfony :

    […]

    <li><h2><?php echo __(‘Comparte opiniones sobre políticos de España.’) ?></h2></li>

    […]

    Codificar las vistas de esta forma permite ver el html casi como será generado en el idioma original pero dando la posibilidad de traducir todos los literales que se encuentren entre ‘__(‘ y ‘)’.

  • Extracción de etiquetas. Un simple comando permite extraer todas las etiquetas a un fichero XLIFF:
    php symfony i18n:extract –auto-save frontend ca

    Este comando generará un fichero para almacenar las traducciones al catalán (‘ca’) de cada etiqueta encontrada en todas y cada una de las vistas de la aplicación (‘frontend’). Algo así como ‘…/ca/messages.xml’.
    Lo ideal es almacenar este fichero en un repositorio de software junto con el resto del código del proyecto. En nuestro caso utilizamos un servidor svn.

  • La magia de Pootle. La aplicación de Pootle deberá estar instalada en un servidor con acceso al repositorio svn. Habrá que configurar permisos y accesos para cada traductor. Una vez esté listo, Pootle permite conectarse con svn para obtener el fichero de etiquetas generado por Symfony. El traductor podrá conectarse vía web a la aplicación para ver y traducir todas aquellas que pertenezcan a sus proyectos y lenguajes asignados.
    Interfaz de traducciones - Pootle

    Interfaz de traducciones - Pootle

    Desde el propio interfaz de Pootle, siempre con los permisos apropiados, se puede enviar de nuevo el fichero con las traducciones realizadas de nuevo al repositorio de software. Sobra decir que, además, Pootle ofrece un montón de utilidades más sobre las traducciones, como estadísticas, traducciones dudosas o poco claras, perfiles para sugerir y otros para confirmar, etc..
    Te invitamos a que eches un vistazo al Pootle de Voota: http://pootle.voota.org/

Nunca fue tan fácil tener sitios en varios idiomas. Ahora solo necesitamos los traductores que, por el momento, seguirán siendo humanos 😉

SfReviewPlugin 1.0: Nueva versión del plugin de opiniones para Symfony

18 enero 2010

Hoy ya hemos puesto a disposición de todos la versión 1.0 de SfReviewPlugin. Se trata del plugin de symfony que desarrollamos y utilizamos en Voota para la gestión de opiniones sobre políticos (y muy pronto sobre partidos).

Aunque sigue siendo una versión beta, hemos decidido etiquetarla 1.0 para seguir con la numeración de los milestones de voota.

Descarga

Puedes obtener la versión instalable directamente del sitio de symfony:

http://www.symfony-project.org/plugins/sfReviewPlugin

Para obtener los últimos cambios día a día, puedes bajarte los fuentes del repositorio svn de Voota:

http://trac.voota.org/browser/trunk/www/plugins/sfReviewPlugin

Novedades

  • La novedad principal, sin duda, es la posibilidad de opinar/votar sobre otras opiniones.

    Opinando sobre un comentario

    Opinando sobre un comentario

  • Opiniones “culturizadas”. Hemos introducido el idioma del usuario a la opinión para, de esta forma, poder distinguir el idioma en la página donde aparecen los comentarios.
  • Paginación “tipo twitter”. Para mejorar la experiencia de usuario hemos introducido un botoncito que dice “más” cuando no caben todos los comentarios. Al pulsarlo aparecerá otra página de comentarios “inline” por ajax (sin necesidad de recargar la página). Ej.: Página de Zapatero en Voota
  • Mejoras en el sistema de moderación: Más filtros, más facilidad para encontrar comentarios y mejor interfaz para visualizar el comentario con enlace a la “entidad comentada”.

    Moderación de comentarios

    Moderación de comentarios

  • Y, como siempre, un montón de pequeñas mejoras y correcciones que hacen la vida un poco más fácil 😉

En definitiva, seguimos trabajando en el sistema de opiniones como uno de los módulos principales de Voota. Ójala te sea útil a tí también y compartas con nosotros tus impresiones.