Personal
Arquitectura Tecnologica
Apr 15th
He estado leyendo sobre las arquitecturas tecnologicas para desarrollar software en la web y no he podido decidirme entre:
- JBoss Seam
- Struts 2 + Spring 2 + JPA + AJAX
Me hago la pregunta Microsoft ASP.NET no sera mas facil?
Arquitectura elegida
Para aplicaciones web: Struts 2 + Spring 2 + JPA + AJAX + Groovy + Codehaus XFire
Aplicaciones cliente/servidor: C# + NHibernate
Compiladores y gramatica BNF
Apr 15th
Tenia que procesar un archivo plano con valores de este tipo:
4564,Time : Play and Pay,1:00,1,”41,38″,”258,62″
Grata fue mi sorpresa que la separacion por la coma no me funcionaba, existia los decimales que tambien estan separado por coma, despues de un rato intendando hacer un algoritmo, lo solucione con compiladores, aqui les va la expresion BNF.
linea: campo linea | COMA linea | EOF ;
campo: COMILLA numero COMILLA | TEXTO ;
numero: TEXTO COMA TEXTO ;
FIN: (‘\t’ |’\n’ |’\r’)+ ;
COMILLA:’”‘ ;
COMA: ‘,’ ;
TEXTO: (’0′..’9′ |’a’..’z’ |’A’..’Z’ |’/’ | ‘:’ |’.’ |’$’ |’-’ |’ ‘ | ‘(‘|’)’ |’#’ |’\u0080′..’\ufffe’ )+ ;
La gramatica puesta en el ANTLR
header{
import java.util.*;
}
class LineaParser extends Parser;
options {
buildAST = true; // uses CommonAST by default
k=1;
defaultErrorHandler=false ;
}
{
String num="";
List array=new ArrayList();
public List getList(){
return array;
}
}
linea: campo linea|COMA linea|EOF
;
campo: COMILLA numero COMILLA| t:TEXTO{array.add(t.getText());}
;
numero: t:TEXTO{num+=t.getText();} COMA{num+=",";} t1:TEXTO{num+=t1.getText();array.add(num);num="";}
;
class LineaLexer extends Lexer;
options {
charVocabulary='\u0000'..'\uFFFE';
}
FIN : ('\t' | '\n' { newline(); } | '\r' )+
{ $setType(Token.SKIP); }
;
COMILLA: '"'
;
COMA: ','
;
TEXTO
'0'..'9'|'a'..'z'|'A'..'Z'|'/'|':'|'.'|'$'|'-'|' '|'('|')'|'#'|'\u0080'..'\ufffe')+
;
Van ya 2 trabajos reales en empresas Colombianas con compiladores, sera que me estoy complicando y se puede hacer mas facil las cosas?
Identificador URI en IE
Apr 8th
Estoy enviando un parametro que tenia un % y un espacio en blanco por medio de AJAX, no me di cuenta de estos valores hasta 2 dias despues de estar buscando el error y haber refactorizado 3 veces la aplicación solamente me encuentro con el el mensaje de error de internet explorer.
El identificador URI para decodificar no tiene una codificación valida.
buscando y escudriñando me di cuenta que hay que codificar la URI (IE me lo decia), pues hay le mando la instruccion.
deseo mandar un string como este
“Este es un ejemplo de codificar una URI %”
IE no me lo permite asi que hay que anteponer esta instruccion
encodeURIComponent(“Este es un ejemplo de codificar una URI %”)
Problema Error 403 Forbbiden
Apr 7th
Hace poco al desarrollar un software en PHP no me funciono las llamadas asincronicas al estilo AJAX (prototype o YUI), investigando un poco me encontre una solución que a continuacion describo.
En el directorio de la aplicacion creo un archivo .htaccess y escribo las siguientes lineas.
SecFilterEngine Off
SecFilterScanPOST Off
Por lo poco que investigue, el apache esta en modo seguro y no acepta llamadas al post desde envios de URL con header, solamente acepta envios por medio del submit.