Thursday, November 20, 2014

Cómo crear una instancia de tomcat

Para  crear una instancia distinta de tomcat, se siguen los siguientes pasos

  1. Copiamos el script de tomcat anterior con otro nombre y lo modificacamos con una varialble de la con el nombre de carpeta donde apuntará nuestra instancia  INSTANCE=instance3 y modificamos esta nueva ruta de
    CATALINA_BASE=/var/lib/$NAME/$INSTANCE
  2. Creamos una carpeta de instance3. En ella creamos:
    1. una carpeta "conf" y copiamos en ella el contenido de la carpeta "conf" de tomcat.
    2. una carpteta "log"
    3. una carpeta "temp"
    4. una carpeta "wepapps"
    5. y creamos un link simbolico  a "cache/tomcat7", llamado "work" mediante la instruccion "ln  -s ../../../cache/tomcat7/instance3 work", si esta carpeta
  3. establecemos permisos a la carpeta "instance3" al usuario de tomcat
  4. modificamos el fichero conf/server.xml con el pueto que tendrá nuestra instancia. 
  5. lanzamos el servicio de nuestra nueva instancia.

Friday, September 19, 2014

Hacer una ordenacion aleatoria

Para ordenar de manera aleatoria en mongodb solamente se me ocurre insertar un campo aleatorio.


db.Collection
    .find({},{_id:1})
    .forEach(function(doc){
        db.collection.
        update(
            { _id: doc._id},
            { $set: { r: Math.random() } } ,
            { upsert: true }
                       );
    });
después solo tienes que ordenar por r.

Wednesday, July 9, 2014

Error lucene Mahout and Carrot2

En un proyecto hemos intentado generar un servicio con los cluster de Mahout Kmeans y los de Carrot2. Nos da un error de mahout-math ya que en de la version 0.6 a la 0.9 pasa una clase de interface a clase abstracta y no se pueden utilizar las 2 juntas. Mahout kmeans usa Mahout -math 0.9 y Carrot2 3.9.2 usa Mahout-math-0.6. La solución es recompilar y cambiar el nombre tanto de mahout-math.0.6 y sus referencias a Carrot2. Como uso Maven tambien tengo que publicarlo con otro groupid quitando las dependecias e integrando todo en un único jar. como he odiado este error. java.lang.IncompatibleClassChangeError: Implementing class

Tuesday, July 8, 2014

Regresion lineal con octave.

La regresion lineal sirve para apatir de un gran conjunto de historicos datos, entrenar un algoritmo para a partir de estos datos predecir futuros comportamientos. Parece complejo, pero con Octave es muy sencillo. simplemente cargas los datos de histórico a partir de un fichero csv. Estos datos en la primera columna tenemos la variable a predecir.

 //crea matriz X = dlmread('datos.csv', ";");
//Como hemos comentado en la primera columna está la variable a predecir
Y Y =X(:,1);
//con convencion ponemos a 1 la primera columna.
X(:,1)=1;
//normalizamos dividiendo por el maximo valor de cada columna
X2 = bsxfun(@rdivide,X, max(X));
//calculamos el valor de theta a partir de esta formula matricial
theta=pinv(X'*X)*X'*Y;
//dibujamos los puntos por pantalla. plot(X2(:,2), X2*theta, '-')
 //para saber el valor que predecimos si es correcto o no comprobar los valores de Y con los de
X*theta
//comprobar el error y ajustaremos los modelos matriciales para ver si el error se puede corregir. //añadiremos mas columnas al modelo X dependiendo el tipo de curva que se adapte a nuestro modelo
//por ejemplo añadiendo al modelo distintas columnas. Ten en cuenta que todo aquí son matrices y el tiempo de cálculo se eleva considerablemente.

 =====Solucion =====
X = dlmread('datos.csv', ";");
Y =X(:,1);
X(:,1)=1;
X2 = bsxfun(@rdivide,X, max(X));
X3 = pow2(X2)
X4 = sqrt(X2)
X5 = pow2(X2,3)
X6 = [X2 X3 X4 X5]
theta6=pinv(X6'*X6)*X6'*Y; X6*theta6

sony xperia C5303 arreglado el tema del altavoz y del microfono

Llevo varios días intentando usar mi teléfono móvil, pero no funcionaba ni el micro ni el altavoz externo. Es como si estuviera el jack de los cascos activados. En un foro he leído que simplemente metiendo un destornillador por el jack de los auriculares funcionaba de nuevo. Como no me atrevo a meter un objeto metálico, a ver si lo rompo del todo. He cogido un bastoncillo de los oídos y lo he cortado con las tijeras. La parte que he cortado lo he metido un par de veces hasta el fondo del jack, magia, ha vuelto a funcionar. Solucionado el tema del teléfono.

Monday, June 9, 2014

java and access

to connect access form java, i get this error. Error: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified To connect java 64 bit with access, it 's necesary install driver 64 bit download and install http://download.microsoft.com/download/0/B/8/0B8EFDD9-8CE5-405C-A28D-A108A63AE2FC/AccessDatabaseEngine_X64.exe And if you want read all query and launch this query "SELECT [Name] FROM MSysObjects WHERE Name Like 'MSys*' ORDER BY [Name]" you get this error: error: READ en 'MSysObjects' You must execute a macro http://stackoverflow.com/questions/19971082/no-read-permission-on-msysobjects strDdl = "GRANT SELECT ON MSysObjects TO Admin;" CurrentProject.Connection.Execute strDdl If you get this error "ODBC Driver Manager 'invalid string or buffer length' error " , my solver is update java 1.7.70 at least.