jun 14

Consejos para mejorar el desarrollo en la nube

Posted in programacion, tutores

Antes de iniciar este artículo, quiero agradecer enormemente a Filipe sus aportaciones al foro, que sin duda, nunca pasan desapercibidas, como la de este hilo del foro:

http://velneo.es/foros/topic/lentitud-en-aplicaciones-cloud/

Asi pues, como se indica en el propio hilo, he pensado que hacer un recopilatorio de todas las buenas ideas que mejoran la experiencia de programación en la nube.

Y porque en la nube y no en local, si para Velneo V7, es igual, puede trabajar exactamente igual en local que en la nube.

Pero en realidad, ¡NO!, no es lo mismo:

  • Si la aplicacion la desarrollamos en local, y funciona bien. Es posible que cuando la instalemos en la nube, sea un petardo y vaya como el culo. Lo siento por la expresión “vaya como el culo” pero debes reconocer que es descriptiva del sentimiento que pretendo transmitir.
  • Sin embargo, si la aplicación la desarrollamos en la nube y funciona bien. Entonces, no de bemos preocuparnos, porque cuando la ejecutemos en local, funcionara “que te cagas” :) . Tambien siento esta expresión, pero a que también te has emocionado.

Partiendo de este, como primer consejo para empezar a desarrollar con Velneo V7 y conseguir un resultado decente, aqui dejo algunos consejos:

  1. Evita las funciones, si puedes usar un proceso lanzado desde un manejador de objetos, usa el manejador (También te permite enviar parámetros).
  2. Las tablas en memória son lentas comparadas con v6 (evitar siempre que se pueda). Como ejemplo te digo que en una de las pruebas que hice, en el on-init de un formulario llamava a una función, entre devolver un contenido estático y devolver un dato de una tabla en memória la diferencia es abismal.
  3. En la mayoria de los casos ganamos velocidad si las búsquedas y/o cargar listas las lanzamos con el manejador de objetos en el servidor (Hay que tener cuidado, para no saturar el servidor con demasiadas tareas, si es solo consulta en principio no hay problema).
  4. Evitar al máximo poner en las condiciones de activo y visibilidad de objectos, funciones. Estas condiciones se evaluan varias veces al iniciar el formulario, y siempre que se ejecuta un evento del formulario o que este se refresca.
  5. Evitar siempre que posible el uso de variables globales. Con la funcionalidad del manejador de objectos para pasar parametros a búsquedas, procesos, etc, ganamos mucha velocidad y no necesitamos para nada de las variables globales. Normalmente solo necesito de dos o tres variables globales por aplicación (EJ: Id de usuario logeado, etc.)
  6. En las rejillas por defecto no listar datos, solo cuando se pincha en buscar (personalmente a mi no me gusta demasiado, parece que no hay datos, pero siempre podremos cortar la lista para que solo nos devuelve un numero x de resultados, así no quedamos con la sensación de que no existen datos). Esto incrementa mucho la velocidad de la aplicación. Ten en cuenta que si abres un formularios con sub-formularios y cada sub-formulario tiene su rejilla, al abrir el formulario hay que cargar todos las listas de todos los subformularios. (Si no está visible la rejilla, los datos los siguen cargando)
  7. Limitar el uso de CSS. El uso excesivo de CSS en las aplicaciones, hacen que estas sean más lentas, principalmente si estos datos los recoje de una tabla o usa información de una tabla, dá igual que sea en memória o en disco.
  8. Evitar guardar en las tablas imagenes. Yo opté por guardar las imagenes externamente, y genero de forma automática una miniatura de la imagen de muy reducida dimensión solo para poder presentarlas en las rejillas, en los formularios las visualizo usando html.
  9. Cuidado con el tamaño de las imagenes que creamos de manera estática en el vdeveloper, intentar al maximo optimizar su tamaño.

Ahora que ya hemos descrito cada uno de ellos, y tenemos la teoría, nos queda la sensación de que nos falta algo. ¿Cómo poner en práctica estos consejos?

  • Para el punto nº 6, tenemos otro ejemplo perfecto y origen de una buena técnica de progamación en el blog de nuestro amigo Nacho: Optimizando rejillas

Ademas de todos estos consejos de Filipe, voy a recordar algunos consejos que muchos conocemos pero que son importantes para todos los que llegan a V7 .

  1. Si puedes hacerlo en el proyecto de datos, y concretamente en la estructura de tablas, hazlo. Asi es, cualquier cosa que puedas hacer en la estructura de la base de datos, siempre mejora el rendimiento y ahorra muchas horas de programación, por ejemplo: contenidos iniciales en los campos, actualizaciones, eventos de tabla.
  2. Parece muy obvio, pero a veces olvidamos que los “Filtros” están para no usarlos. Evitalos siempre que puedas, y cuando no tengas mas remedio que usarlos, evitalos también.
  3. Usa siempre el “Alternador de listas” siempre que sea posible, ya que tiene muchas ventajas y pocos inconvenientes, que también los tiene. Aqui tienes más información sobre el Alternador.
  4. Ahora tenemos “Constantes”, usalas porque permiten una programación limpia y abstracta. Aqui explico algunas de mis razones: ¡Ser constante es bueno!
  5. vDiseño es una buena base para adoptar en las aplicaciones, principalmente por una razón: es mas fácil de entender el código cuando trabajas con aplicaciones de otros desarrolladores.
  6. Siguiendo un consejo de un amigo, “la simplicidad, es la complejidad absoluta“. Hazle caso, la vida ya es bastante complicada, no la compliques más todavia. Las cosas sencillas funcionan mejor, y es cierto, son mas dificiles de programar, pero el resultado es optimo para el usuario.
  7. Un consejo mio: “pierde unas horas o dias en analizar la aplicación y ahorrarás dias o meses en soporte y correción de errores”. Un buen análisis es tan importante o más, que la estética de la interfaz. La interfaz vende, pero es el chasis de nuestra aplicación quien soportará todos los golpes.
  8. No tengas miedo al fracaso. Para estar seguro de habler logrado un éxito, debes haber fracasado en varias ocasiones. Imagina que en tu primer intento, logras que todo funcione correctamente, si te das por satisfecho, nunca podrás estar seguro de haber conseguido el resultado ideal. Seguramente ese resultado podría mejorarse.
  9. QML y vJavaScript son la caña, pero no son la solución a todos los problemas. No abuses de estas herramientas, porque son para lo que son, para sacarnos de los apuros, no para convertirlas en el pan nuestro de cada dia.
  10. Si no tienes experiencia con una herramienta de desarrollo, la solución no esta en correr para adquirirla. Tomalo con calma, y externaliza tus proyectos mientras adquieres dicha experiencia. Despues de haber colaborado con muchos desarrolladores que usan Velneo para sus desarrollos, sólo espero que hayan quedado satisfechos con el trabajo realizado.

Y desde aqui, tambien quiero decir que estoy totalmente de acuerdo con Filipe, Roberto Blasco, Adelo Herrero y otros en algunas cuestiones. Por mas que nos empeñemos, Velneo V7 no es la solución para todo, y si probamos a unir V7 con otras herramientas, la potencia que adquirimos en los resultados es inmejorable.

  • Para la web, nada como Velneo V7 + vModApache + PHP
  • Para mobilidad, Velneo V7 + Android / iOS

Aunque algunas veces, también hay que reinventar la rueda 😉

P.D. Se agradece cualquier aportación que pueda ayudarnos a mejorar, estas invitado a compartir tus experiencias.

PDF Printer    Enviar artculo en formato PDF   
comments: 3 »
jun 13

¡Estreno! próximamente …

Estamos de oferta señoras y señores, …

vamos, que me las quitan de las manos, …

sólo me quedan 3,

lleveselas y pague solo una.

¡¡¡tatatachan!!!

PDF Download    Enviar artculo en formato PDF   
comments: Comentarios desactivados en ¡Estreno! próximamente …
jun 7

RAD y ¡que sea lo que dios quiera!

Posted in analisis, off topic

Coincidiendo con la salida al blog del último articulo publicado por Jesús Arboleya: “Desarrollo rápido de aplicaciones” voy a hacer balance de lo que se nos pide, y sin querer desmerecer su artículo que es muy bueno y todo lo que comenta es cierto, voy a entrar en valorar otras cuestiones, que a veces parecen pasar desapercibidas, sobre todo para el cliente, que es a fin de cuentas, quien suelta la “pasta”.

Cuando hablamos de una herramienta de desarrollo rápido (R.A.D. para los geeks y “¡esto esta chupao pa ti!, en diez minutos lo tienes” para los clientes habituales) y me voy a centrar en este último comentario, el cliente final cree, o le interesa creer que en 10 min. vas a hacer lo mismo que otros programadores hacen en 3 semanas, y quizá sea cierto, o no, segun desde el angulo que se mire:

Miremoslo desde el ángulo “cliente/usuario final”:

Quiere que el trabajo este terminado en 10 min. por varias razones:

  1. La más importante, el coste, que ya cuando abre la boca, quiere que le cobres solo los 10 min. que vas a estar trabajando en los cambios que solicita el cliente.
  2. La urgencia, las prisas por tener realizado el trabajo en 10 min. que luego se va a quedar en un cajón durante 3 o 6 meses, y que al final se descubre el pastel cuando te llama (6 meses despues), ¿cómo funcionaba la opción que me pusiste para …? (ese es el momento en que te acuerdas de parte de su familia, aunque no tenga la culpa)
  3. La exclusividad, porque el cliente, no tiene en cuenta que no está solo, o le importa un pimiento. El quiere ser el primero porque tiene preferencia sobre los demás y además hay que hacerle ver, que cuando el silva, nosotros acudimos como perrillos falderos a ver dónde nos suelta la pelotita.
  4. La ignorancia, y no pretendo insultar al cliente, sino aclarar que no solemos conocer los métodos para realizar el trabajo de los demas, y aún asi, nos atrevemos a valorar su trabajo, quitando el mérito a esta labor siempre que sea posible. Porque si desmerecemos su trabajo, no lleva directamente al punto 1, que es a fin de cuentas, conseguir un precio más barato del producto o servicio.

Miremoslo desde el ángulo “empresario/jefe”:

Otro que tal baila, que lo quiere también en 10 min.

  1. Porque el cliente, le exige que sea rápido, y quiere tener contento al cliente, que es quién le paga. Aunque en realidad, es el empleado el que le permite conseguir esos ingresos por parte del cliente.
  2. Porque el comercial, que no tiene conocimientos técnicos, le ha vendido la moto al cliente, y el desarrollador tiene que comerse los marrones que le traen los comerciales, y como al jefe no le atañe, les pasa la pelota de unos a otros pero quiere el objetivo cumplido, y el cliente atendido para poder cobrar.
  3. Porque si hoy eres capaz de hacerlo en 10 min. mañana te enviaré el doble de trabajo y te pediré que lo tengas en 5 min. y si te ves muy apurado de tiempo, ¡no pestañees! y respira antes de entrar a trabajar, ¡ya volveras a respirar al salir! Y espabila, no sea que te lleves tarea para casa.

Miremoslo desde ¡MI! ángulo:

¿Es posible realizar el trabajo en 10 min?

Quizá, pero para empezar a trabajar a que poner en marcha las maquinas y eso tiene un coste.

  • La semana pasada me llamo un cliente para solucionar un problema en una aplicación que no modificaba desde hace 6 años. Para comprobar su error, en lo que realmente tarde 10 min., tuve que perder casi 1 hora y media en buscar la copia del programa que tenia instalada, porque no hablamos del mes pasado, hablamos de 6 años. Y considero que soy organizado y tarde muy poco en encontrarla e instalar de nuevo la aplicación para realizar las pruebas.

¿Cuando alguién te llama para que pulses un botón?

  • Si, asi es, hay veces que te llaman para pulsar un botón, porque el cliente no recuerda bien como funcionaba, y no quiere equivocarse (lo cual le honra), es preferible llamar para que seas tu el que te equivocas y echarte las culpas (lo cual no le honra). Pero sea cual sea el motivo, para pulsar el botón, has tenido que ir a su oficina (a 20 min. de distancia), tener la charla correspondiente con el encargado (15 min.), pulsar el botón (menos de 1), explicarles la operación y despedirte (30 min.) y volver a la oficina (otros 20 min.)

El caso, es que, como trabajamos con herramientas R.A.D. , ¡todo hay que hacerlo en 10!

La realidad es que hay muy pocos que saben entender lo que realmente vale este trabajo, y a esos pocos quiero agradecer desde aqui ese reconocimiento ;).

Porque lo que hay que empezar a entender, no es que Velneo V7 es muy rapido y hace las cosas en 10 min. , que es cierto y tiene mucho mérito, lo que debemos empezar a entender es que, para hacer un desarrollo robusto y fiable:

  1. Apago el ordenador.
  2. Libreta y boli en mano, empiezo a analizar y a esquematizar las necesidades.
  3. Dedicar horas solo a pensar cual es la mejor manera de conseguir el resultado.
  4. Encender el ordenador
  5. Programar durante 10 min.
  6. Y probar el resultado para que sea aceptable.

Todo esto sin tener en cuenta la de horas de formacion y tiempo dedicado a investigación que se han perdido por el camino para conseguir el conocimiento necesario.

Pero lamentablemente, de los “clientes/usuarios” y “empresarios”, solo estan dispuestos a pagar los 10 min. y asi nos va.

Para aquellos que no quieren tener el trabajo en 10 min., pero si quieran un trabajo de calidad:

Teneis todos los datos en el apartado de contacto, y se hará un presupuesto responsable, pero no en 10 min.

Porque dicho sea de paso, Velneo V7 es una herramienta muy buena, pero detrás hay personas que la utilizan, para bien o para mal.

PDF Printer    Enviar artculo en formato PDF   
comments: 1 »
jun 5

Open Apps de pago

En los próximos post, presentaré posiblemente alguna nueva Open App, que ya esta saliendo del horno.

Pero a diferencia de las anteriores, esta será de pago, si, de pago.

El precio aun no esta fijado, y depende de muchas variables, unas Open Apps serán más baratas que otras, pero si puedo asegurar una cosa, ¡Todas estarán creadas con un solo espíritu! y unas intenciones muy claras:

  1. Que sean sencillas de entender
  2. Que sean sencillas de adaptar a nuestras aplicaciones
  3. Que prevalezca la calidad, pero sin perder la sencillez
  4. Que sean de utilidad, y sirvan para el aprendizaje
  5. Que esten bien documentadas, para evitar frustraciones

No obstante, se requiere de un mínimo de conocimientos de la herramienta de programación Velneo V7 para ponerlas en funcionamiento.

Las Open Apps, no prentenden resolver un problema concreto, sino que persiguen servir de tutor para que cada uno sea capaz de resolver sus propios problemas.

¿Son demasiado sencillas?

Eso he intentado, que lo sean, ya sera cada uno mayorcito y las complicará por si mismo.

¿Son de pago?

¡Si!, porque todo lo que requiere calidad lo es, y salvo que viva en “los mundos de yupi”, yo también debo pagar mis facturas, y por ende, mis acreedores desean cobrar.

¿Que precio tienen?

Pues eso dependera de cada una, pero intentare que sean econominas, para que nadie se pueda sentir engañado, ni en precio, ni en calidad.

Ademas, y puesto que al ser de pago, me siento obligado a aumentar la calidad de la misma, he intentado documentarlas correctamente para que todos puedan sacar el máximo jugo a cada recurso de la plantilla.

¿Y si no me gusta?

Pues sintiendolo mucho, el dinero no se devuelve, pero teniendo en cuenta el precio, y que con cada plantilla se especificará claramente lo que incluye, deberias decidir si el precio merece la pena antes de comprarla.

¿Y si hay actualizaciones?

Si hay actualizaciones, de aquellas plantillas que hayas comprado y por tanto, estarás el registro correspondiente, aprovecharé para enviar a cada uno la actualización de forma gratuita o previo pago de una cuota de mantenimiento, dependiendo de que tipo de plantilla o aplicación se trate.

Espero que sean de vuestro agrado.

Create PDF    Enviar artculo en formato PDF   
comments: 2 »
may 31

¿Qué nos gusta de Velneo?

Posted in Life is soft!, velneo

La verdad, es que despues de tanto tiempo, uno echa la vista atrás y resulta muy dificil responder a esta pregunta.

Además, cuando alguien te pregunta esto, seguramente espera que le digas 4 o 5 cosas que te gustan, como por ejemplo, el tipico articulo “Las 10 razones para elegir Velneo como herramienta de trabajo”.

Pues bien, ese habia sido el titulo que en principio pensaba poner al articulo, pero luego he decidido que no era justo, por una razón muy evidente, ¡tengo más de 10 razones para elegir esta herramienta! y ese no debería ser el proplema, el problema sería no tener esas 10 razones.

Pero aunque parezca mentira, si es el problema, porque aún teniendo más de diez, el problema es no saber elegir realmente cuales son las 10 más importantes para mi.

Vamos a enumerar algunas de ellas, y ya advierto de antemano, que no he querido ordenarlas de ninguna forma en especial, pues me resulta dificil asignar cualquier tipo de valoración y decidir asi cual tiene mayor importancia en mi decisión. La verdad es que todas tienen mucha importancia en la decisión final.

  1. Curva de aprendizaje mas corta que con otros leguajes de programación, y a dia de hoy, cuenta con muy buena documentación, entre las que puedes encontrar videos, blogs con consejos, y por supuesto, el libro “Cambia el chip con Velneo V7“.
  2. Velocidad, en el desarrollo de las aplicaciones con la garantia de que funcionaran perfectamente ya desde las primeras pruebas.
  3. Productividad, que han permitido desarrollar y mantener muchas aplicaciones con pocos recursos.
  4. Su entorno totalmente visual que permite crear la mayoría de los objetos sin necesidad de programación.
  5. Comodidad y tranquilidad, al realizar las actualizaciones a los clientes, sabiendo que los cambios se van a realizar correctamente, instalando unicamente la última versión de mi aplicación.
  6. Refactoriazación, cuando al realizar cualquier cambio en la nomenclatura de los objetos, estos se corrigen en todos aquellos sitios dónde han sido usados.
  7. Los inspectores, que nos permiten solucionar errores, y localizar objetos en cualquier parte.
  8. Los contenidos iniciales de los campos y las actualizaciones que ahorran cientos de horas de programación.
  9. La navegación por los enlaces de las tablas, a maestros o a plurales.
  10. El asistente de fórmulas, que siempre esta disponible cuando se le necesita y en el que tenemos todos los elementos necesarios para crear las expresiones sin errores.
  11. Facilidad, para adaptar las aplicaciones y reformar la estructura de la base de datos, incluso cuando ya estaban en producción.
  12. Integración, lo que para muchos puede ser un problema, también es una ventaja, ya que muchas de las cosas comentadas anteriormente no serían posibles si la base de datos no estuviera tan integrada con el resto de las herramientas.
  13. Potencia, en su motor de base de datos robusto y veloz, con un rendimiento optimo sin necesidad de invertir en grandes infraestructuras de hardware.
  14. Multiplataforma, que nos permite desarrollar las aplicaciones sin necesidad de conocer donde van a ser ejecutadas.
  15. Capacidad, para desarrollar y distribuir las aplicaciones en entornos locales o en SaaS (Cloud)
  16. El mantenimiento de las aplicaciones es muy sencillo, incluso con aquellas aplicaciones que no han sido desarrolladas por nosotros mismos. Basta con hacer uso de los inspectores para llegar al objeto a modificar.
  17. El idioma, esa espina que muchos llevamos dentro, y que siempre posponemos para el verano y que luego por supuesto, no cumplimos. Ahora podemos desarrollar en nuestro idioma, y toda la aplicación se puede traducir facilmente con vTranslator, y lo que es mejor, los procesos y eventos, son traducidos al ingles automáticamente, al cambiar el idioma por desarrollador (Ingles/Español).
  18. Cuenta con gran cantidad de ejemplos, tutores y plantillas de código abierto, que nos permites estudiar y mejorar los conceptos de la programación con Velneo sobre aplicaciones totalmente funcionales.
  19. Si a todo lo anterior, le añadimos la posibilidad de crear intefaces de gran calidad con QML, y poder crear fórmulas y procesos en JavaScript, interactuando con la base de datos, la cosa cambia de color.
  20. La posibilidad de poder aprender y probar la herramienta de forma completamente gratuita, sin realizar ningún desembolso, al menos hasta saber si se adapta a nuestras necesidades.
  21. Y por último su comunidad, un excelente foro, en el que puedes encontrar respuestas a todas las dudas en tiempos de respuesta “record”. No hay otro foro igual y gracias a él, he conocido a muchos de mis actuales amigos. Un abrazo a todos, 😉

Después de explicar todo esto, la pregunta obvia que siempre se nos hace es: ¿Qué es Velneo? y la respuesta que parece que todos se han aprendido casi de memoria es: “Una plataforma de desarrollo de aplicaciones empresariales”.

Pero eso, me parece que también puede cambiar a partir de ahora, porque con la apertura a nuevos lenguajes como QML y JavaScript, y quizá alguno más en un futuro no muy lejano, también estamos viendo como, la interfaz esta ganando posiciones cada dia, y realizar juegos sencillos, y no tanto, ya no es un problema.

Pero no todo iba a ser bueno, algo habrá que no nos guste, ¿verdad?

Si dijera que ¡NO!, que no hay nada que no me guste, sería totalmente cierto, y algunos podrian pensar que no soy objetivo, asi que, redactaré la respuesta de otra forma.

Si bien es cierto que todo lo que tiene me gusta, también reconozco que hay cosas que se podrian mejorar, pero eso no significa que no me guste como esta, significa justo lo que acabo de decir: “¡que hay cosas que se podrian mejorar!”

Pero como gran parte de esas mejoras, ya las he puesto en otros artículos y otras muchas, ya estan en el foro de ideas, no me voy a repetir.

Además, la perfección no existe, pero poco a poco, nos estamos acercando a ella 😉

PDF Printer    Enviar artculo en formato PDF   
comments: Comentarios desactivados en ¿Qué nos gusta de Velneo?
may 30

Herramientas y servicios asociados

Una buena aplicación no es solo un programa que funciona bien.

Para tener una buena aplicación hay que rodearla de un conjunto de herramientas y servicios para dar valor añadido, porque a fin de cuentas, lo que deseamos conseguir, no es que se hable bien de nuestro programa, lo que deberiamos conseguir es que se hable bien de nuestra empresa y el programa sea solo una de sus estrellas destacadas.

Para ello, si observamos a los mejores, necesitamos:

  • un buen manual, es imprescindible para el aprendizaje de las aplicaciones, y si es posible, complementarlo con videos de aprendizaje
  • una web, organizada y seria, pero no aburrida.
  • un blog, donde poder comunicar las noticias mas destacadas y mantener una información actualizada.
  • una buena base de conocimiento, donde solucionar las dudas mas frecuentes.
  • un foro, donde permitir el intercambio de opiniones entre los usuarios de nuestras aplicaciones.
  • una herramienta de control de bugs e incidencias, para solucionar los problemas conocidos y reportados.
  • una herramienta de soporte, donde recibir las dudas y comunicados de los usuarios.
  • un foro de ideas, tambien nos ayudará a saber directamente cuales son las necesidades mas demandadas por nuestros usuarios.
  • un roadmap, dónde los usuarios puedan estar informados de las próximas novedades, evitando duplicidades con el foro de ideas.
  • y formación y talleres adicionales.

Todo esto, nos da una información directa que debemos saber digerir para usar en nuestro favor y mejorar el producto en base a las decisiones tomadas analizando toda la información recibida.

Pero si sabemos leer los indicadores, hay mucha mas información que tambien podemos aprovechar para mejorar:

  • Aquellas preguntas que se repiten una y otra vez en soporte, nos indican donde debemos mejorar la documentación.
  • Cuando los errores que comenten los usuarios, son reincidentes, debemos tratar de mejorar esa funcionalidad para que no se produzcan o minimizar sus efectos.
  • Las opiniones de los comentarios del blog son buenos indicadores de como se realiza el trabajo, aunque siempre habra alguien que no esté de acuerdo, debemos tenerlos todos en cuenta, y los negativos, mucho más, pues nos ayudaran a mejorar.

Pero, y lo que no se dice, lo que no se pregunta, o lo que no se comenta, ¿qué pasa?

Esta información tambien es importante, porque cuando una funcionalidad de una aplicación, no se comenta o nadie pregunta, puede deberse a 2 motivos fundamentales:

  1. No se usa, y por tanto habria que decidir si realmente interesa mantenerla operativa o seria necesario prescindir de ella.
  2. Funciona, se usa y pasa desapercibida, precisamente gracias a su buen funcionamiento. En este caso, deberiamos tomar buena nota, pues quizá sea un buen argumento de venta de nuestra aplicación.

Ahora, solo nos quedaría tener una buena estrategia de precios, pero eso, no es un tema que debamos tocar hoy, 😉

PDF Download    Enviar artculo en formato PDF   
comments: 2 »
may 24

Open App vTools4Android

Posted in android, utilidades

En estos dias, he estado trabajando en un nuevo proyecto que creo que puede ser interante para quienes utilizan dispositivos móviles.

La aplicación en cuestión es un pequeño conjunto de utilidades para realizar las siguientes operaciones:

  1. Activar GPS
  2. Desactivar GPS
  3. Obtener localización exacta del GPS
  4. Obtener última localización conocida
  5. Ejecutar cámara del móvil y hacer foto
  6. Importar foto a base de datos Velneo

Debo indicar que la Open App, es completamente gratuita en esta versión, y la podeis descargar desde aqui:

http://velneo.es/velneo-open-app/vtools4android/

No obstante, la aplicación requiere de un 2º componente que esta disponible en el Market de Android a un precio reducido, pero es de pago, y este es el enlace a la descarga:

https://play.google.com/store/apps/details?id=ascsl.vtools4android

En el PDF adjunto (con la descarga de la Open App), esta toda la información necesaria para la instalación y puesta en marcha.

Con esta utilidad, podemos incorporar en nuestras aplicaciones desarrolladas con Velneo V7, la lectura de la posición del GPS, por ejemplo para, saber donde se encuentran nuestros comerciales en cada momento, o realizar catálogos/galerias de fotos, guardando la posición GPS donde fue capturada cada una de ellas.

Otras funcionalidades que se podrían añadir, si la comunidad lo demanda, serían:

  • Envio de SMS desde Velneo
  • Realizar llamadas telefónicas desde Velneo
  • Leer la lista de contactos del teléfono
  • Leer un determinado SMS
  • o incluso, enviar la posición del GPS periodicamente a un servidor de V7 para controlar rutas de viaje.

Espero que os guste.

Create PDF    Enviar artculo en formato PDF   
comments: 3 »
may 18

¿Funciones o procesos?

Hace algún tiempo que escribi un artículo, en principio, estaba destinado a eliminar lo que en apariencia era una limitación de las funciones en V7 (sólo permiten 10 parámetros máximo): Parámetros en funciones de V7

De paso, porque no decirlo, ya que habiamos eliminado la barrera de los 10 parámetros, y con la misma solución que se usaba para aumentar la entrada, podiamos aumentar la salida, que como sabemos, todas las funciones retornan unicamente un valor.

Pero cosas de la vida, cuando surge un problema, con paciencia y un poquito de estudio, tambien surge la solución. Y la solución tambien puede venir de mano de lo que se esta convirtiendo en la solución para todo, el manejador de objetos.

Para aquellos que aun no lo han utilizado, solo tengo que decir, que si bien puede generar algo más de trabajo de lo habitual al principio y quizá algo mas de complejidad por la falta de costumbre, en su favor, tiene solo una cosa: que sirve para todo.

Veamos un ejemplo:

Necesitamos una función para realizar una tarea, y debemos pasarle 15 o 20 parametros, y por si fuera poco, el resultado de la función, deberia retornar 3 valores diferentes.

Tal y como comentabamos en el articulo anterior, necesitariamos unir varios valores en una cadena y pasar las cadenas a la función, después, ya dentro de la función, parsear las cadenas para separar los parámetros y ejecutar el resto de la función, y al finalizar, volver a unir los resultados para retornar una cadena con todos los valores, y ya fuera de la función, volver a parsear la cadena para obtener cada uno de los resultados. Vamos, un pequeño lio, de hecho, no se si me he liado al explicarlo, espero no haberlo complicado demasiado.

Ahora veamos como resolverlo con el manejador de objetos:

Con el manejador de objetos, creamos un proceso, similar a la función, que realiza la misma tarea, y para ejecutar el proceso y enviar los parametros:

Crear manejador de objeto( hPro , PROCESO )

Set variable local de objeto ( hPro, VAR_1, #CAMPO_1 )

Set variable local de objeto ( hPro, VAR_2, #CAMPO_2 )

Set variable local de objeto ( hPro, VAR_3, #CAMPO_3 )

Set variable local de objeto ( hPro, VAR_4, #CAMPO_4 )

Set variable local de objeto ( hPro, VAR_5, #CAMPO_5 )

Disparar objeto ( hPro , 1º  2º o 3º plano a elegir )

Get variable local de objeto ( hPro , VALOR_1 , RET_1 )

Get variable local de objeto ( hPro , VALOR_2 , RET_2 )

Get variable local de objeto ( hPro , VALOR_3 , RET_3 )

Como podemos observar, podemos pasar tantos parámetros como lineas SET quieras incluir, y del mismo modo, podemos obtener tantos valores como sean necesarios, mediante la sentencia GET. Y sólo un detalle, no olvideis que la sentencia GET no debe ir anidada dentro de la sentencia “Disparar objeto”

PDF Creator    Enviar artculo en formato PDF   
comments: 2 »
may 16

¡¡¡Enhorabuena Matias!!!

Posted in off topic

Hoy me voy a salir un poco del topico, y no voy a hablar de programación, ni de Velneo V7, porque quiero aprovechar la ocasión para felicitar a un gran deportista, hijo de un vecino y amigo: Matias Gomez.

Este mismo mes, se ha proclamado campeón de Europa 2012 de Kárate (medalla de oro)

Hay quien dice que las artes marciales son violentas, pero yo, personalmente pienso que cultivan el cuerpo y la mente mucho mas que cualquier otro deporte. Al final siempre es el futbol, el que nos cautiva, quizá por que en él se juntan el deporte, la violencia, y las artes dramaticas.

Su palmarés ya empieza a ser impresionante, y su esfuerzo recompensado, deportivamente hablando, ya que por desgracia, estos deportes no despiertan tanto interes como el futbol.

Aqui os dejo el video: Final del campeonato de Europa-2012

¡¡¡Enhorabuena Matias!!!

PDF Creator    Enviar artculo en formato PDF   
comments: Comentarios desactivados en ¡¡¡Enhorabuena Matias!!!
may 7

Layouts en formularios de V7

Posted in rayaduras

Los layouts se utilizan en los formularios para organizar los controles de edición, es decir:

Ponemos los controles de edición de texto, numéricos, de fecha, etc. y ponemos una “cerca” alrededor, para que no se desparramen como las ovejas. (Cerca: vallado, tapia o muro para rodear un terreno)

Si queremos poner mas controles pero no queremos que se mezclen con las ovejas, hacemos otro Layout (otra cerca) para las cabras.

Observa como los dos Layouts son verticales y con esto conseguimos que todos los controles del Layout de la izquierda (Ovejas) se ordenan verticalmente, y los del Layout de la derecha (Cabras) se ordenan también verticalmente. Pero, ¿como se muestra el formulario completo?

Para eso, vemos que también es posible “anidar” capas, ¡joder!, valla palabrita: “Anidar” que ahora significa meter una cosa dentro de otra, y me rompe todos los esquemas, porque yo aprendi en la escuela que “Anidar” era hacer un pequeño circulo con ramas secas para poner los huevos encima. Pero, mejor “Asientate” en una silla, que si pruebas a anidar, te levantas con un tremendo dolor de huevos y el culo más arañao que el de Max Mosley.

Pero las palabras también evolucionan, asi que, “Anidar” ahora es, meter un Layout dentro de otro Layout mas grande (logico, faltaria más, igual que las cajas chinas)

Como ya sabemos el significado de esta palabra, ahora vamos a poner otra “cerca” (o valla) para tener las ovejas y las cabras juntas, pero no revueltas.

Observa como el Layout que contiene a Ovejas y a Cabras, es horizontal y permite ordenar la Ovejas a la Izquierda y las Cabras a la derecha, pero manteniendo la verticalidad de los controles que contiene cada uno de los otros Layouts.

Si, después de estas lineas, aún no sabeis como usar los Layouts, no volvais a leerlo de nuevo, que no, no es culpa vuestra, aprovechad el tiempo en lecturas más interesantes:

Un abrazo a todos, 😉

Quizá no hayais aprendido nada, pero si se ha escapado alguna sonrisa, me quedo satisfecho. ¡Que tengaís una buena semana!

PDF Download    Enviar artculo en formato PDF   
comments: 4 »