Etiqueta: diseño

  • Demasiada información no es control, es desinformación

    Demasiada información no es control, es desinformación

    Hace unos años, participé en el desarrollo de un proyecto piloto consistente en crear un producto desde cero, partiendo de una supuesta solución ante un determinado problema y orientado a un nicho muy concreto, aprovechamos algunos nuevos conceptos y metodología de diseño de productos que algunos compañeros habían aprendido, nos pusimos manos a la obra y a poner en práctica aquellas lecciones que más adelante pasaron a ser nuestras también.

    Entre estas metodologías para empezar a pensar en un producto viable, se encontraba uno bastante conocido llamado «Design Thinking» y basándonos en este sistema elaboramos una serie de características para un nuevo producto que, de no haber utilizado este sistema, y basándonos únicamente en nuestra experiencia y conocimientos, hubiera sido muy diferente.

    El resultado, años después, fue un software bastante bueno, utilizado por muchas empresas de todo el país y con una cuota de mercado mucho más grande de la que imaginábamos en un principio cualquiera de los que participamos en el desarrollo (tanto a nivel de programación, como comercialmente, y como a nivel de gestión y control). El uso de una metodología como Design Thinking nos enseñó a discernir entre «lo que nosotros creemos importante desarrollar» frente a lo que «el usuario considera importante».

    Esta diferencia la he visto antes y después en elementos y características de otros productos y debo decir que ha sido una constante, ya que productos y herramientas que no utilizan este sistema tienen un enfoque muy «técnico» o muy «personal» llevando al desarrollo de ciertas características que nos puede parecer vitales o super-importantes y que realmente el usuario que lo vaya a utilizar apenas le interesa, o todo lo contrario… le interesa pero apenas con la profundidad que esperaba.

    Ejemplo de esto que comento es una característica que seguramente os suena: la información de depuración.

    Alguien quiere un software para gestionar un servidor y cuando lo desarrollamos nos centramos en extraer toda la información posible, almacenarla en enormes tablas y bases de datos para que, llegado un momento determinado, el usuario pueda obtener cualquier información que pueda necesitar.

    Como técnicos y más concretamente como personal de sistemas, solemos estar acostumbrados a guardar logs de todo: llamadas, uso del procesador, memoria, disco duro, cantidad de información leída, escrita, número de hilos, número de procesos, recursos de cada proceso, destinos de llamadas, cuantas llamadas por minuto, y un larguísimo etcétera que se encarga de llenarnos el espacio de disco duro de información que «puede» que algún día nos sea necesaria.

    Si nuestro sistema tiene algún problema, nos alegramos de tenerlo todo guardado, poder sacar gráficas, estadísticas, analizar estos datos y descubrir por qué un proceso ha caído sin ningún motivo aparente pero que, coincidiendo con el elevado y puntual aumento del número de INSERTS en la base de datos, podemos elaborar una teoría consistente en que, cuando se escribe bastante en la base de datos, la aplicación deja de funcionar.

    No obstante, cuando un sistema está en producción y el comportamiento se considera «estable», esta cantidad de información se sigue almacenando, pero pasamos a un sistema paranoico basado en crear alertas por cualquier evento que nos pueda generar cualquier tipo de incertidumbre. ¿Qué pasa si el procesador está por encima del 60%? Quiero que me mande una alerta! ¿Qué ocurre si hay un porcentaje de llamadas no contestadas en la última hora? Quiero que me mande una alerta! ¿Qué ocurre si recibimos más de N peticiones HTTP a la web en menos de N minutos? Quiero que me mande una alerta!

    Cuando todo esto se asocia a un producto software, pasamos a tener un software genera alertas por cualquier circunstancia y es entonces cuando nos empezamos a acostumbrar a recibir alertas, bajando nuestro nivel de atención ante lo que puede ocurrir que sí es importante.

    Se entiende que la capacidad de monitorizar los recursos en un sistema de comunicaciones hasta el infinito puede ser un elemento diferenciador de cara a conseguir usuarios que estén interesados en monitorizar estas características pero ¿y aquellos a los que no les interesa? ¿Realmente es necesario generar gigas de información cuando el usuario no tiene el más mínimo interés o peor aún… no entiende qué es lo que se está informando?

    Somos conscientes que hay que disponer de una importante cantidad de datos de alta calidad para poder tomar ciertas decisiones, de ahí la importancia de saber «reducir» la ingente información que somos capaces de almacenar, en información de calidad que realmente sirva para esa toma de decisiones.

    Pero también es importante de cara a desarrollar productos, entender quién es el objetivo de nuestro desarrollo, el usuario al que va destinado el producto y entender que esa información, más que ayudarle, le está perjudicando en la adaptación. Los desarrolladores solemos cometer varios fallos importantes, considerando que «lo que a nosotros nos interesa, también le interesa al usuario» y por esta razón, creamos opciones, botones, parámetros incomprensibles que a nosotros como desarrolladores nos llevará un tiempo considerable en configurar, y que al usuario jamás le interesará tocar por que, o bien no entiende cómo funciona, o bien necesita otra información más importante.

    En resumen, los programadores debemos aprender que lo que nosotros creemos que es importante, para quien va a utilizar la aplicación, no tiene por qué serlo. De ahí la importancia de contar con otras personas, compañeros que tienen más trato con los usuarios y que sean capaces de hacernos ver qué es realmente lo que el usuario necesita.

    Manejar una ingente cantidad de información nos da el control completo del sistema, pero ese control se vuelve inútil cuando esta información nos bombardea constantemente de alertas que, llegado el momento, no nos sirve para nada ya que las verdaderas alertas importantes y que hay que tener en cuenta, se hallan entre 40 o 50 alertas que de nada sirven.

  • Kamailio estrena nuevo logotipo

    Kamailio estrena nuevo logotipo, similar al utilizado en la KamailioWorld pero con un nuevo tipo de letra que muestra más personalidad y estilo.
    kamailio-logo-2015 sinologic.net

  • Asterisk ya no será una PBX nunca más


    Todos sabemos que Asterisk siempre ha venido asociado a la palabra PBX. Es más, en todas las locuciones, una de las más escuchadas viene a decir «Bienvenido a Asterisk PBX…«, por lo que muchas personas siempre han visto Asterisk como una PBX (una centralita), esto acaba de ser modificado de una forma oficial.

    La página web de Asterisk ha sido renovada completamente, y aunque los cambios han sido principalmente estéticos (diseño principalmente), hay una serie de detalles que me ha llamado la atención:

    (más…)

  • Unboxing GXV3140 (Desembalando el GXV3140)

    La gente de GrandStream está decidida a ocupar un puesto en la división de los equipos de alta gama y con el último terminal lo están consiguiendo sin lugar a dudas.

    Ya hemos hablado de las ventajas y maravillas de este terminal SIP con soporte de vídeo y multimedia, quizá un día de estos podría hacer una revisión en profundidad con las ventajas y lo que trae, pero de momento me gustaría enseñaros la fantástica primera impresión que me causaron estos nuevos terminales.

    Acostumbrado a ver terminales que vienen de fábrica con sus feas cajas blancas industriales, fue una sorpresa recibir uno de estos terminales centrados en producir una sensación de calidad desde el primer momento incorporando un paño para su limpieza, así como los manuales y todo lo necesario para su puesta en marcha ofreciendo al usuario final algo que suele ser bastante descuidado por muchos fabricantes y bastante cuidado por otros (como Apple).

    Os dejo las imágenes y juzgad vosotros mismos:

    gxv3140-unboxing1
    Caja de cartón y plastico rugoso con letras doradas

    gxv3140-unboxing2
    Incorpora alfombrilla donde poner el terminal, así como un paño para limpiarlo

    gxv3140-unboxing3
    Todo colocado de forma que se puede apreciar desde el primer momento todos los componentes del terminal

    gxv3140-unboxing4
    El terminal encendido con muchas sorpresas en su interior. 😉

    Como se suele decir, la primera impresión es decisiva. 🙂

  • Probando la nueva interfaz Asterisk-GUI 2.0

    Por el blog de Saghul me entero que acaban de lanzar una nueva versión del Asterisk-GUI 2.0. No soy amigo de los interfaces, aunque reconozco que muchos conocidos los utilizan por «facilitarse la labor» de desarrollar configuraciones «en serie» algo con lo que comparta o no, hay que respetar.

    A la vista del comentario de Saúl, daba la impresión de que habían cambiado el aspecto visual, por lo que, recordando lo sencillo que era instalarlo y aprovechando que tengo varios Asterisk para mis pruebas, y como la curiosidad mató al gato, lo he instalado para verlo.

    Para empezar, la instalación no puede ser más sencilla:

    En la consola, ejecutar:
    svn co http://svn.digium.com/svn/asterisk-gui/branches/2.0 asterisk-gui-2.0

    Una vez descargado, toca instalarlo, para ello ejecutamos:
    cd asterisk-gui-2.0 && make && make install && make samples && make checkconfig

    Con este ultimo comando (el make checkconfig) confirmaremos que la configuracion es la correcta, por lo que nos dara algun mensaje de error. Tan solo deberemos asegurarnos que esta habilitado el manager en el puerto 5038 asi como que existe un usuario valido en el manager.conf y haber descomentado los parametros en el archivo http.conf, reiniciamos Asterisk y listo. 🙂

    Para probar, recomiendo configurar el parametro bindaddres con valores 0.0.0.0, de manera que una vez lo podamos ver, lo configuremos de acorde a donde vayamos a conectarnos (127.0.0.1 si es desde la propia maquina, o 192.168.0.0 desde la red local o 0.0.0.0 para cualquier sistema desde Internet).

    Una vez tengamos todo correctamente configurado, pasamos a entrar en el sistema, para ello, abrimos el navegador web y escribimos la direccion de Asterisk en el puerto que hayamos definido en el archivo http.conf, por defecto el 8088 (http://laipdenuestroasterisk:8080), lo que nos redireccionara a la direccion correcta (http://laipdenuestroasterisk:8088/asterisk/static/config/index.html).

    Los cambios son pocos pero destaca alguno que otro si hemos seguido de cerca el interfaz en su version anterior:

    Visualmente no se aprecia muchos cambios, aunque a medida que uno va saltando por las opciones, puede notar la experiencia adquirida tras la primera versión (algo verde en mi opinión).

    Donde realmente me ha llamado la atención es en la auto-preparación, de manera que se modifican los archivos de configuración necesarios para poder utilizar todo el potencial de este interfaz, detección de hardware (incluyendo, como no, soporte para tarjetas basadas en mISDN) y algunas opciones básicas que ya traía de serie la versión 1.0, por lo que nada destacable por ahora.

    Por supuesto, la versión que he probado, además de ser descargada por subversión, podría clasificarla como pre-pre-alfa, por lo que aun no está lista para ser utilizada, de hecho aún no funcionan botones básicos (sobre todo el de añadir), pero seguro que pronto lo arreglan.

    Lo «bueno» de este interfaz, es que lee la configuración que hemos escrito a mano, la entiende y permite gestionarla vía web, algo que aún no he encontrado ningún interfaz que lo haga (siempre machacan los cambios o acuden a archivos externos incluidos para saltarse esta dificultad, en lugar de plantarle cara).

    Lo «malo» de este interfaz, que, como todos los interfaces, hay limitaciones que el usuario probablemente puede requerir, pero para eso está el ‘vi’. 🙂

    El día que este interfaz funcione como debe, creo que habremos dado con uno que realmente merezca la pena de verdad. 🙂

    Digium tiene Switchvox como interfaz web profesional (y comercial) para la gestión de Asterisk, por lo que si realmente queremos una versión en condiciones del Asterisk-GUI (opensource y libre), más nos vale empezar a aportar nuestro granito de arena tanto en el desarrollo como en la verificación de funcionamiento y búsqueda de bugs.

    Por cierto, a veces ocurre un error: Could not connect to Server, que se solucionará con una versión del Asterisk-GUI más estable y dándole al botón Retry. 😛

  • Asterisk USB hub

    Leo en el blog de Tom Keating que Joel Escalona, un diseñador mexicano tiene un diseño de un hub para conectores USB que seguro que a todos los fans de Asterisk os gustará:

    Asterisk-usb

    Enlace: http://www.joel.es.kz/

  • Presentando Visual Dialplan v.1.2

    Hace tiempo que desde APSTEL nos avisaron que disponían de una nueva versión compatible con Asterisk 1.4 y Asterisk 1.2 para diseñar dialplans de una forma gráfica y sobre todo bastante intuitiva.

    No es que sea muy amigo de los interfaces (los que me conoceis, creo que ya lo sabeis), pero siempre es bueno conocer las alternativas ya que hay casos en los que personalmente los aconsejo, bien porque la programación es muy sencilla o bien porque varía tantas veces que merece la pena que la persona pueda cambiarla a su placer.

    Tras ver el aviso en la web de Saúl y recibir un correo me acordé que quedé pendiente de echarle un vistazo y ver cómo funcionaba, algo que requería de un mínimo de tiempo, pero no es precisamente algo de lo que me sobre.

    Visual DialplanLa primera crítica constructiva es que únicamente funciona bajo Windows, eso considerando que instala una máquina virtual Java (JRE) creo que es un paso atrás. Creo que por el mismo esfuerzo se podría hacer compatible para más sistemas como Mac o Linux.

    El sistema es muy intuitivo, realmente no se hace necesario leer ningún manual para entender cómo funciona, aunque sigue siendo necesario conocer los comandos, algo que generalmente se le suele evitar al usuario final aunque siempre se peca de demasiado completo o demasiado simple.

    El diseño es realmente a base de «botonazo de razón» y salvo para escribir algún valor, realmente estamos programando el dialplan de una manera visual, algo que parece evidente llamándose «Visual Dialplan«, pero por lo menos esta aplicación cumple con lo que dice su nombre.

    Realmente recomiendo probarlo a todo aquel que tenga windows en alguna máquina para que compruebe lo sencillo que puede llegar a ser.

    Por otro lado, he echado de menos funciones para manejar colas y agentes, algo que viene en la versión profesional.

    El precio es bastante barato ($69) en la versión básica y $149 la versión profesional que incluye soporte de AGI, Colas, Agentes, soporte de Billing y algunas cosas más avanzadas.
    Quizá los que estamos acostumbrados a editar el archivo, esta aplicación nos parezca un poco engorrosa (las aplicaciones visuales suelen serlo) pero para alguien que está empezando, la descripción de cada aplicación y el poder ver todas las opciones de cada aplicación de Asterisk puede serle de gran ayuda.

    Enlace: http://www.apstel.com/products/products.jsp