miércoles, 15 de mayo de 2013

Reseteando formularios con inputs file

Ayer ocurrió lo impensable, el código js de una aplicación web no era compatible con internet explorer... ¿cómo?... ¿por qué?... si eso nunca me había pasado, es la primera vez...

Así que me puse a buscar por internet y encontré la inspiración y explicación en este post.

En la aplicación estamos usando Foundation, y mi problema en concreto era que tras hacer ajaxSubmit en un formulario con inputs, que estaba dentro de un modal (reveal), el modal se cerraba impidiendo volver a usarlo.

Tal como indican en el enlace, la solución fue fácil, clonar el formulario tras el success de la petición ajax:

if($.browser.msie || $.browser.webkit){
  $('#idForm').after($('#idForm').clone(true)).remove();  
}

Lo difícil fue encontrar dicho post :D , que perdí varias horas probando soluciones alternativas.

Saludos.

domingo, 12 de mayo de 2013

Getting Things Done. Comparando herramientas de productividad.

Desde hace un tiempo me he visto con la necesidad de usar herramientas GTD. El mayor problema que estoy encontrando es que si quiero obtener sincronización entre dispositivos hay que pagar una cuota mensual o anual y las que veo no cumplen con todas mis necesidades.

Habitualmente uso un Tablet Sony S de primera generación, un móvil Sony Ericson con android 2.3, varios pc y un mac.

Entre mis necesidades principales se encuentran: Permitir el uso de etiquetas y contexto, organización de tareas por fechas, recordatorios y posibilidad de adjuntar documentos a las tareas.

En principio la herramienta que más me ha gustado ha sido conqu, de asfusion. Cumple con casi todos mis requitos, y además el que falta (poder adjuntar documentos) está en el roadmap de la aplicación. Así que esta herramienta permite hacer casi todo lo que me planteo como usuario. El mayor problema es que funciona sobre adobe air y en el móvil me va muy lenta. Vamos, que no voy a pagar una cuota mensual para que no funcione bien. Supongo que cuando cambie de dispositivo será la opción adecuada, pero mientras tanto me es imposible elegirla.



Diagrama de sincronización de Conqu

La otra opción que he encontrado, y que es con la que me he quedado a sido wunderlist , que en sí misma (o por lo menos en mi opinión) no es una herramienta GTD, ya que no permite etiquetas ni contextos. No obstante la sincronización es muy buena y gratuita. Y en su roadmap también tiene puesto que en el futuro se podrán adjuntar documntos. El problema que he encontrado es que siempre trabaja online, y si desconectas la wifi /3G del móvil se pierde la sesión y el widget deja de mostrar datos y en su lugar pone un mensaje advirtiendo que no estás logado.


Logotipo de Wunderlist

Así que me quedo un poco a medias. Aunque Wunderlist está bien, el hecho de no tener etiquetas o contextos y poder filtrar por ellas hace que tenga información redundante en varias listas, y esto no mola.

¿Conocéis alguna otra herramienta similar?

sábado, 4 de mayo de 2013

Escritura de archivos XML con JAXB

En un post anterior presenté el proceso que hay que seguir para leer archivos XML usando JAXB. En dicho post generé las clases necesarias y las usé de ejemplo.

Para cerrar el círculo adecuadamente, usando el mismo ejemplo, presento ahora una clase que permite escribir un archivo XML en disco.


import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

import org.example.personas.Persona;
import org.example.personas.Personas;


public class SaveXMLwithJAXB {

 public static void main(String[] args) {

  JAXBContext ctx;
  
  Personas p = new Personas();
  Persona pItem = new Persona();
  pItem.setCiudad("Madrid");
  pItem.setEdad("20");
  pItem.setId("1");
  pItem.setNombre("Carlos");
  
  p.getPersona().add(pItem);
  
  try {
   ctx = JAXBContext.newInstance(Personas.class);
   Marshaller m = ctx.createMarshaller();
   
   File f = new File("C:/destino.xml");
   m.marshal(p, f);
   
  } catch (JAXBException e) {
   e.printStackTrace();
  }  
 }
}


Saludos.
Related Posts Plugin for WordPress, Blogger...