8.24.2011

blendMode must be non-null when using selenium flex (sfapi)

Well, this one was easy: I was using maven to import sfapi, however, the version in the maven repository is compiled against 3.3, causing this error.

Easy fix: Download the sfapi.swc from the offcial page and install it on your maven repo with somehting like "customversion" and compile versus that one.

----

By the way, you see against what version it was compiled by unzipping th swc, and checking out catalog.xml

7.20.2011

java.lang.NoSuchMethodError: javax.xml.ws.WebFault.messageName()Ljava/lang/String;

java.lang.NoSuchMethodError: javax.xml.ws.WebFault.messageName()Ljava/lang/String;


Esto me paso cuando estaba yo tratando de usar Metrgo glassfish 2.2 en java 1.6, resulta que hay que copiar
jaxws-api.jar and jaxb-api.jar into the JRE endorsed directory, which is $JRE_HOME/lib/endorsed (or $JDK_HOME/jre/lib/endorsed). 


More info:


http://metro.java.net/guide/Using_JAX_WS_2_x___Metro_1_x_2_0_with_Java_SE_6.html#Using_Metro_2_0_with_Java_SE_6Publish Post

7.09.2011

El sueño eterno

Acostado, medio tumbado, tiene dos minutos más para vivir.

-No prefieres...?

Iba a toser, se interrumpe, su garganta ruega por aire.

-¿No prefieres la certeza de que no hay nada después? Olvídate de habitar, ciertamente: Un hoyo lleno de fuego, a lo mejor, un paraíso eterno que suena a esta vida multiplicada al infinito.
No. Prefiero olvidarme, poder descansar, la certeza del punto final, el sueño eterno, el olvido definitivo. La ausencia inmortal.

Olvidarme.



5.30.2011

Piratas del caribe 4: On stranger tides 2d eng review

Piratas del caribe cuatro  dos puntos navegando en aguas misteriosas tiene dos problemas con el titulo: El primero es que es tan largo que se desborda en  las teles que muestran los horarios en los cines y no te queda de otra mas que pararte enfrente del cajero y preguntar: "Oye, a que horas es piratas del caribe cuatro navegando en aguas peligrosas en 2d y en subtitulada en ingles?" a lo que la pobre cajera agarro y me dijo que no estaba en ingles, hasta que le señale la pantalla, y mezclandose con el 7:30pm, parecia emerger la abreviacion "eng".

La segunda es que la pelicula no tiene nada que ver con el titulo. La primera media hora es un pobre intento del director actual en tratar de imitar a verbinski (osease, tratar de imitar a un director medianamente eficiente (y al mismo tiempo (nada, es que se me antojaba poner parentesis(continuemos)) complacer a disney en hacer una peli y cual para niños) , La peli llega a los pastelazos. La musica hace una muestra del mal de parkinson metiendo trompetones cada vez lloni dep agita los dedos, o en cada acercamiento a sus pestañas pintadas. (y por alguna razon, a su cabello recientemente guero (y una escena absolutamente ridicula de la dama y el vagabundo con el tema de piratas adecuadamente transformada en un bolero español (penelope cruz desaprovechada(pese a que la unica razon que disney la contrato fue porque fue la unica actriz que "demostro que sus dones era naturales y no implantes" (penelope cruz no habla ingles ni aunque le rebanen el pescuezo.)))).

Despues de sufrir la primera media hora, se pone por fin entretenida, agarra ritmo, y te recuerda que la saga fue entretenida.


5.18.2011

xpath util

Why, oh why do I need to create a document every time I want to xpath evaluate something simple?

So I creates XpathUtil

Usage:
NodeList nodes = 
(NodeList)new XPathUtil(file).evaluate("//directoryToRead/text()");

package com.util;

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.w3c.dom.Document;

public class XPathUtil {

 private Log log = LogFactory.getLog(getClass().getName());

 private Document doc = null;

 private XPath xpath = null;

 public XPathUtil(File inputFile) {
  // begin:Recipe code to get xpath factory
  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  factory.setNamespaceAware(true); // never forget this!
  DocumentBuilder builder;
  try {
   builder = factory.newDocumentBuilder();

   doc = builder.parse(inputFile);
  } catch (Exception e) {
   log.error(e.getMessage(), e);
   throw new RuntimeException(e.getMessage(), e);
  }
  XPathFactory xPathFactory = XPathFactory.newInstance();
  xpath = xPathFactory.newXPath();
  // end: recipe code to get xpath
 }

 public Object evaluate(String xPathExpression) {
  XPathExpression expr;
  Object result;
  try {
   expr = xpath.compile(xPathExpression);

   result = expr.evaluate(doc, XPathConstants.NODESET);
  } catch (XPathExpressionException e) {
   log.error(e.getMessage(), e);
   throw new RuntimeException(e.getMessage(), e);
  }

  return result;
 }
}

4.01.2011

JAva threads



Casos cuando te debes de preocupar en hacer tus clases Thread Safe:

-Cuando tienens variso threads modificando el mismo objecto
-Cuando usas servlets y esos servlets usan el mismo objecto (que es basicamente, el caso de arriba)

Hay 3 formas de curar esto:
Si te importa mantener el valor, usa synchronized.

Si quieres que cada thread posea un solo valor del objeto, usa ThreadLocal.


Alguna vez pense que habia un modificador que hace que el objeto local sea del thread, pero creo que lo soñe :(

Por otra parte, si tu punto de entrada crea  todos sus obejtcos necesarios, no hay problema: Cada Trhead tiene su stack. En pocas palabras: Los metodos deben ser atomcios y no depender de variabels de instancia. Al menos, el primer punto de entrada.

3.17.2011

Firefox 4 y Flex Debug Does not work...


Taken from http://tech.top21.de/techblog/20100624-debugging-flex-with-firefox-3-6-4.html;jsessionid=43F87175A24BAA1DF5B3920FCEC77E40


Firefox 4 tiene una nueva funcionalidad: matar plugins que no responden. Lo malo es que tambien mata tu sesion de Debug!

FIX:


Simply type about:config into the address line, then search fordom.ipc.plugins.timeoutSecs and change the integer value to 1000 or higher. That should do the trick.

2.01.2011

jaxb use CDATA


  1. Marshaller m = JAXBContext.newInstance( Item.class ).createMarshaller();  
  2.   m.setProperty( "com.sun.xml.internal.bind.characterEscapeHandler"new CharacterEscapeHandler() {  
  3.    @Override  
  4.    public void escape( char[] ac, int i, int j, boolean flag, Writer writer ) throws IOException  
  5.    {  
  6.     // do not escape  
  7.     writer.write( ac, i, j );  
  8.    }  
  9.   });  
  10.     
  11.   m.marshal( i1, new OutputStreamWriter( System.out ) );