Android - ¿pack de app de moviles o el próximo Google Phone?
Parece que están elaborando un conjunto de herramientas/aplicaciones para móviles. Lo más interesante que no se limita a un conjunto de herramientas, sino que ANDROID parace que sea un framework abierto para el desarrollo de Apps para movil. (ANDROID, El Pais).
¿Será una framework o un próximo Google Phone?
Entre otras cosas, me interesaría indagar sobre como será el diseño de la capa visual que ANDROID proponga... Si es dificil hacer que una aplicación se vea en dos navegadores bien... ¿que os parece en diferentes móviles, PDAs,...).
Existe una filosofía MBUI (Model-Based User Interfaces) que estudia el diseño de interfaces de usuario basadas en Modelos. La MBUI es una de las propuestas más prometedoras, enfocada a facilitar a construcción automática de interfaces, lo cual consiste en desarrollar interfaces mediante descripciones de alto nivel (modelos) de los distintos aspectos de la interfaz, en lugar de escribir el código directamente con un lenguaje de programación. Algunos de estos son XALM (lenguaje de Microsoft que desarrollo para LognHorn -su motor o el que iba a ser su motor gráfico), XUL (lenguaje MBUI de Firefox), UIML, XIML, UsiXML,....
Este tipo de filosofías solo interesnates por muchos motivos pero desde mi punto de vista la perfecta división entre la definición de una IU y su renderización posterior a cualquier lenguaje (java, .net,...) y plataforma (movil, web, ...) es lo que se lleva la palma.
Dedicaré otra entrada más extensa a MBUI, por cierto, ¿ANDROID apostará por algo de esto ?
Base de Datos libre de Sonidos
Quién sabe, quizá mañana te toque meter el croar de una rana en un proyecto (Toad ???)
Free Sounds DataBase
Comfortable Compunting
¡ Craso Error !
ErgoAnswes
Extendiendo nodos de un Tree en Dojo Tookit
... por cada treeNode ...
...........................................
if (child.isFolder)
this._controller._expand(child);
...........................................
El blog alexatnet, propone una extensión de la librería de dojo para adoptar una solución completa. Expanding tree nodes on startup using Dojo Tree widget
Open Source ETL (Extraction, Transform, Load) Written in Java
http://www.manageability.org/blog/stuff/open-source-etl/view
Así descubrí este sitio "Because Every Complicated Technology Needs It",sin duda interesante y que responde a la solución de la gestión de sistemas complejos de software.
Testeando mi propio servidor mediante un web proxy
Ahí va una buena página con una interesante lista de proxies web libres, anonimizadores , etc...
Eventos en aplicaciones Web J2EE
Necesitaba buena información sobre los momentos de iniciación y destrucción de las populares variables de aplicación y sesión en servidores de aplicicaciones que se basan en la especificación Servlet 2.3 y/o sup. (Apaches Tomcat, WAS y otros...). Aquí dejo un buen artículos que documenta esta problemática. J2EE Web Application Events
Así conocí Stardeveloper que es un buen "Sitio" contenedor de artículos, documentos,...
The Dojo Toolkit 0.9
Buena documentación en su Web, numerosos ejemplos y tests al bajarte la librería y una buena guía para pasar de su versión 0.4 a la 0.9 son característas que desde mi punto de vista me han ayudado mucho a a manejarla en mis proyectos. Me he encontrado con ciertos problemas al introducirla en ciertos proyectos por las hojas de estilos, con la integración con modelos MVC, etc... pero casi todos los problemas he podido solucionarlos de unas u otras formas, lo que hace sino caracterizar a dojo toolkit como una herramienta open source adaptable, integrable, extensible y personalizable.
Sitio Web: Dojo Toolkit 0.9
Otros artículos destables:
http://ajaxian.com/archives/dojo-09-dissected-fast-and-3d
Funcional Testing
Para completar este tipo de testing existen varios tipos de herramientas, entre las que destaco porque he podido dedicarles tiempo las siguientes:
- Dentro del marco del Open Source,
- Canoo WebTest: Es para aplicaciónes web. Se define en XML una serie de actividades de un caso de uso a ejecutar sobre una página. Se ejecuta en JVM y realiza una interacción sobre la aplicación. Se crean una serie de reports compresivos del exito o fallo de la ejecución. Buena herramienta, la utilizan diversas softwares, entre ellos AppFuse.
- Selenium: Es para aplicaciones Web. Es un plugin para navegadores. Se definen una serie de pruebas mediante la grabación de la interacción del propio usuario. Al ser directamente ejecutada por el navegador, además prueba la propia compatibilidad con el explorador. Buena herramienta, con sencillez soluciona un trabajo muy complejo.
- Dentro del marco del Software de pago,
- QuickTest Professional: Es para diversas aplicaciones ya que la interacción con diferentes sistemas se configura mediante plugins (p.e. un plugin para interactuar con aplicaciones SAP). Se definen una serie de pruebas mediante grabación de la interacción del propio usuario. Existe multitud de tipos de configuraciones, tipos de informes de resultado. Buena y muy famosa herramienta.
Manteniendo el anonimato... Vidalia cross-platform controller GUI for Tor
Por la misma razón que en el mundo real (por llamarlo de alguna forma, aunque ¿será el real?) nos encerremos para mantener una conversación privada... por qué no hacer en la red en un intercambio digital (por qué podemos dar la posibilidad a que alguién sepa de donde escribimos y a quién... ya ni si quiero me planteo el que, el contenido).
Tor, (una red de tuneles virtuales que permiten a las personas y grupos mejorar su privacidad y seguridad en Internet) es una buena solución para esto y Vidalia, (un controlador de Tor) puedes mantener de cierto modo tu anonimato.... aunque simpre surgen noticias como "Tor Parcheado: Adios al anonimato" que hacen temblar esas teclas y pensar que tu anonimato no es real en la red.
Embeber documentos en HTML
Para documentos PDF:
PlanetPDF, en este artículo explica muy correctamente como embeber documentos PDF en una aplicación WEB de caráter HTML.
.... Iré ampliando esta entrada según encuentre para cada tipo de documento un buen tutorial que nos facilite el trabajo en el desarrollo Web.
AJAX y problemática generada por los Marcadores, Favoritos e Históricos de los navegadores. ¿Una solución completa?
¿Cómo se soluciona?
Numerosas webs, blogs,... citan tanto el problema como la solución (WebMasterLibre, Ajaxian,...). Básicamente la solución radica en el uso de una nueva librería que controle la navegación entre páginas, este controller se alberga en un frame oculto el cual se invoca al interacturar con el navegador....
Este tipo de soluciones ha terminado con numerosos problemas en numerosas aplicaciones, pero llego el momento de que el problema fue a mayores cuando un requisito en un desarrollo impedía el uso de frames dentro de la aplicación web, por lo tanto todas esas librerías que componían el controller no se podían utilizar.
No puedo terminar esta entrada porque no se su solución... así que la dejaré abierta hasta que encuentre la manera o quizás alguien me ilumine ¿una idea?
Lanzando un pop-up desde el punto de vista de la Usabilidad
Sin duda interesante en este mundo no tan usable como nos gustaría.
Appfuse 1.9.x to Appfuse 2.x
Bueno he sacado 15 minutos para probarlo ya que todas las listas de distribución están que arden con appfuse 2 y siguiendo los siempre buenos manuales y la quickstart de su Web... estos son mis pasos y mis resultados:
Pasos:
1) Leo http://www.appfuse.org/display/APF/AppFuse+QuickStart. 2) Tengo preparado una consola con la JDK 5 en el path. 3) No tengo instaldo MySQL 5.x (suelo trabajar con oracle..... pero esta vez vamos a tirar con MySql. Lo tengo bajado de la Web. Sigo los pasos de instalación. Si cambias password de root, encoding, etc.. tendrás que modificar posteriormente las properties del pom.xml . 4) SMTP server no instalo de momento. Puedo usar el de ISS de Windows o me bajo un server que indica en el quickstart (Facilisimo de instalar) 5) Tengo en la consola en el path también Maven 2.0.4. 6) El quickstart dice que "AppFuse comes in a number of different flavors". Esto es me bajo una distribución según la framework que busque en este caso Struts 2.0 e Hibernate 3 (simples, sencillas y potentísimas).
Por lo tanto, llamo a maven de las siguiente forma: mvn archetype:create -DarchetypeGroupId=org.appfuse -DarchetypeArtifactId=appfuse-basic-struts -DremoteRepositories=http://static.appfuse.org/repository -DarchetypeVersion=1.0-m2 -DgroupId=com.dk-DartifactId=myProjectDK
Va todo bien, que bueno!!!
8) Pruebo a ver si mysql está accesible. Abro la consola. Me autentifico (root/). Como no se bien la sintaxis de mysql (Busco un link que me guía: http://www.badopi.org/node/738)
show databases; (mysql tira, están las bases de datos iniciales)
9) mvn jetty:run war
Ouch!! Algo falla!!!! DBUnit no puede hacer el Clean_intert. Es algo relacionado con la base de datos que no puede hacer insert de las rows de prueba. Entro en MySql
show databases; (está appfuse) connect appfuse; show tables; (Ouch mensaje "Empty set"--- vamos que no hay tablas creadas)
Las tablas las crea appfuse automaticamente.... mmmm ¿será un bug?. Miro las issues de appfuse ------------------------------------------------------------------------------------------ There is an issue in M2 where the dbunit plugin fires before the hibernate3 plugin sometimes:
http://issues.appfuse.org/browse/APF-606
The fix is to change the <phase> of the hbm2ddl goal to execute in the "process-test-resources" phase (instead of test-compile). ------------------------------------------------------------------------------------------ Por lo visto a veces da este fallo al estar conectado por algún proxy (mi caso). No se han completado las fases de maven
10) Modifico el pom.xml como las issue indica
11) Modifico si es el caso alguna property del pom.xml si cambié algo de la configuración de mysql.
12) mvn jetty:run war
procesando procesando......... [MqH] DEBUG [btpool0-3] UserAction.edit(100) checking for remember me login...
Habro firefox y http://localhost:8080/.
Maravilloso el plugin de jetty que me ha cargado un tomcat con la aplicación y con el explorador veo el portal básico de appfuse.
¡¡¡Perfecto prueba completada!!!!
Resultados:
1) En 15 minutos (tenía preparado JDK, Maven y MySql bajado) está corriendo Appfuse. 2) El bug ya está corregido en la M3... aun no estoy seguro si es un bug o un fallo mio o del proxy o de lared... el caso es que surgio el error y está contemplado. 3) Un gran trabajo de nuevo de Matt Raible y su comunidad Appfuse. 4) Parece mejor el modo de trabajo de la 2.x que la 1.9.x (ant, ....)
Mis conclusiones son simples porque queda probar a ampliar la funcionad de la aplicación generada con el quickStart y ver de verdad que aporta y que mejora esta nueva versión a su antecesora. Esto para otro día., aunque por mi experiencia con AppFuse estoy seguro de que serán buenas noticias. Appfuse 1.9.x aporta muchísimas ventajas en el desarrollo de portales basados en tecnología J2ee .
Appfuse ¿Qué es? ¿Cómo abordarlo?
https://appfuse.dev.java.net/
¿Qué es?
Como bien dice su creador Matt Raible, es una aplicación que aporta el "kickstarting" en el desarrollo de aplicaciones Web.
Con más palabras ¿Qué es?
Appfuse es un compendio de frameworks basadas en Java y Open Source que mediante la ejecución de una serie de scripts parametrizados en Ant (Appfuse 1.x) o Maven (Appfuse 2.x), te genera un proyecto Web con las características más básicas (gestión de usuarios, gestión de
roles, autentificación...). Es muy sencillo trabajar con este proyecto para personalizarlo y ampliarlo, ya que está realizado con una buena arquitectura y completamente basado en java sin frameworks propietarias.
¿Qué nos aporta?
1) Comenzar un portal Web tecnología Java con poco esfuerzo.
2) Utilización de frameworks y tecnologías novedosas , completas e interesantes (struts, hibernate, spring,....)
3) Comunidad appfusera que ayuda en los primeros pasos, problemáticas con el quickstart, etc..
4) Estandarización en la manera de trabajar.
5) ...
Versiones
Appfuse está trabajando en dos versiones en paralelo actualmente, son semejantes, su finalidad es la misma: La version 1.x y la version 2.x.
La diferencia principal es en el modo de trabajo ya que de usar "ant" como herramienta para generar portates (mediante scripts), pasa a maven 2 que aporta muchas capacidades en la gestión librerías,actualizaciones, integración, etc...
En el momento que se escribe este documento nos vamos a basar en la versión 1.x ya que appfuse 2.x no está en una versión estable.
¿Cómo abordar Appfuse?
1) Echar un vistazo a la home de proyecto appfuse 1.x. Con esto te haces una idea de los frameworks en las que se basa Appfuse, la evolución entre versiones, ver alguna demo, etc...
Project Home
https://appfuse.dev.java.net/
2) Echar un vistazo a este artículo:
http://www-128.ibm.com/developerworks/java/library/j-appfuse/
Comenta en líneas generales la arquitectura Appfuse y 7 razones para usar este proyecto para generar aplicaciones Web.
3) Bajar una versión 1.9.4 de appfuse, por ejemlo, la que utiliza las frameworks struts-spring-hibernate, las más generalistas en desarrollo javaWeb. Fichero appfuse-1.9.4-src.zip.
https://appfuse.dev.java.net/files/documents/1397/42844/appfuse-1.9.4-src.zip
La Project Download Home es
https://appfuse.dev.java.net/servlets/ProjectDocumentList
4)Echar un vistazo a la web de la versión 1.9.4. Hay demos, videos,
artículos,... https://appfuse.dev.java.net/servlets/NewsItemView?newsItemID=4305
5) Comenzar a preparar el entorno para desarrollar con Appfuse. Todas las guías están en una wiki http://raibledesigns.com/wiki/
5.a) Hacer el quick start. http://raibledesigns.com/wiki/AppFuseQuickStart.html
5.b) Hacer los tutoriales.
http://raibledesigns.com/wiki/Wiki.jsp?page=CreateDAO y los siguentes
4.
Nota. La base de datos que utiliza por defecto es MySql. Se puede utilzar cualquier otra. Para cambiar la BD y otros cambios que te surgan (dudas, etc...) existe una sección en la wiki llamada "related hows to" que comentan soluciones para mil cosas (desplegar en OAS,
utilizar eclipse, otras bases de datos,........)
http://raibledesigns.com/wiki/Wiki.jsp?page=Articles
6) Una vez echo el tutorial... ya puedes empezar a desarrollar con está metodología, participar en el proyecto appfuse y colaborar (dudas, sugerencias, problemas,...) en la lista de distribución
No solo aprendes a trabajar con Appfuse sino a ponerte al día en varias frameworks muy potentes y con una metodología bastante secilla y simple.
Suerte!
XFire. Un Buen SOAP stack space
Web:
http://xfire.codehaus.org/
Una buena comparación entre frameworks:
http://xfire.codehaus.org/Stack+Comparison
HL7 (Health Level 7)
HL7 propone una serie de mensajes, bien definidos, para la comunicación entre puntos. Mediante la diversidad de mensajes de envio/respuesta que propone el estándar, se pueden definir todas (posibilidad de extensión) las casuísticas posibles en la comunicación de sistemas de salud. Entres sus versiones propone diferentes formatos de representación de los mensajes la última versión presenta la mensajería en XML.
Es una buena propuesta para definir integraciones entre sistemas sanitarios.