06 mayo 2010
Hacer un TRANSFORM con MySQL
CREATE TABLE tCodApi (
CodApi VARCHAR(25) NOT NULL,
PRIMARY KEY(CodApi)
);
La llenamos con las claves que necesitamos.
INSERT INTO tCodApi
SELECT CodApi
FROM tramApis
GROUP BY CodApi;
Ahora generamos una consulta de la siguiente manera, con el select más externo, recorremos la tabla de claves, y el GROUP_CONCAT va generando una única cadena que contendrá todos los valores del grupo. El concat más externo nos facilitará la tarea de generar la cadena final.
select
concat (
"SELECT t.FechaPeticion ",
group_concat(
concat(
", SUM(IF(.tCodApi = '", api.CodApi, "', 1, 0)) as '", api.CodApi, "'"
)
order by api.CodApi
separator " "
),
" FROM TramitacionAPIS t ",
" GROUP BY FechaPeticion ",
" ORDER BY FechaPeticion DESC ",
" LIMIT 0,20; "
) as pepe
FROM tCodApi api
where api.CodApi<>"--"
order by api.CodApi;
27 abril 2010
Acceso desde Tomcat a ficheros en discos externos
Z:\carpeta1\carpeta2\fichero.txt
hay que transformarlo en
\\servidor\carpetaCompartida\carpeta1\carpeta2\fichero.txt
Esto por una parte, pero otra tanto otra fundamental es que el usuario sobre el que corre el servicio Tomcat, tenga permisos de lectura/escritura sobre la carpeta compartida, es decir, tenga acceso a
\\servidor\carpetaCompartida\carpeta1\carpeta2\fichero.txt
La prueba del 9 es la siguiente: si desde un programa hecho en java, puedes acceder a dicho fichero sin problemas, pero desde dentro del servlet no, entonces estamos en el caso de problemas de permisos.
Solución: (En Windows XP) Vamos a Panel de Control, Herramientas administrativas, y hacemos que el servicio se ejecute con el usuario que sí tiene acceso a dicho recurso compartido.
Espero que sea de utilidad.
09 diciembre 2009
Cómo detectar el navegador del usuario con JavaScript
<%
String ua = request.getHeader( "User-Agent" );
boolean isFirefox = ( ua != null && ua.indexOf( "Firefox/" ) != -1 );
boolean isMSIE = ( ua != null && ua.indexOf( "MSIE" ) != -1 );
response.setHeader( "Vary", "User-Agent" );
%>
<p> <%=ua %></p>
02 septiembre 2009
BCN-Cerdanyola-Sant Cugat y vuelta
Día de "descoberta". Desde casa a Torre Baró, de ahí a Cerdanyola por la montaña, pasando por Can Lloses. De Cerdanyola, por carretera hasta Sant Cugat. Allí hay dos posibilidades, volver por Can Borrell o bien seguir hasta coger la Arrrabassada. Segunda opción. La verdad es que se hace largo. Una vez llegado a BCN, quedan 11km. y vuelvo a casa por la montaña llegando de nuevo a Torre Baró, y de ahí a casita.
22 agosto 2009
BCN-Cerdanyola y vuelta
Sábado 07:30h20 agosto 2009
Salida con bici
dad y hay que aprovecharla. Me he levantado prontito y con ganas y a las 06:30h he ido a dar una vueltecita con la bici. Hay que aprovechar las horas de menos calor, porque estos días pega con ganas.He ido por el lateral de la Ronda, y he subido por la carretera de Vallvidrera. Me ha costado, y sobre todo la parte final, que coge unas rampas importantes. Una vez llegado a la bifurcación hacia el Tibidabo, todo es bajada. En total, 50min. de sufrir y 30min. de bajada casi sin pedales.
08 abril 2009
Carcassonne, el principio del "casulé"
En ella hemos probado el plato típico de la zona, el "cassoulet", que ha derivado en la comidilla de todas las vacaciones. Le llaman la fabada francesa, y hasta aquí puedo leer.
13 diciembre 2008
Hibernate: Primeros pasos
Lo primero es bajarse el hibernate-core y las hibernate-tools. Ok. Hecho. Las tools se utilizan para poder facilitar tareas en Eclipse. Cuando las descomprimimos, tenemos dos carpetas features y plugins. Los contenidos de las mismas, los debemos pasar a las carpetas correspondientes de la instalación de Eclipse que tengamos. Ok. Hecho. Rearrancamos Eclipse con la opción -clean, y vemos qué ha ocurrido. En Software Updates > Installed Software, debemos localizar un elemento Hibernate Tools. Si es así, lo tenemos bien instalado. Continuamos.
Busco algún tutorial en Google para ver cómo comenzar y encuentro éste: http://programacion-shinseiki21.blogspot.com/2008/02/hibernate.html, que está muy bien, pero tiene algún paso demasiado rápido. Por ejemplo, a él le funcionan las librerías que indica que se han de cargar en el Build Path del proyecto, pero falta alguna. En mi caso, aparte del slf4j-api-x.y.z.jar, debía cargar slf4j-log4j12-x.y.z.jar pues de lo contrario me daba error al ejecutar el programa.
Una vez las pruebas hechas, y adaptadas a mi máquina, todo fue "flors i violes".
08 octubre 2008
Ubuntu y los problemas al compilar C

Haciendo una PAC de FPI con el Ubuntu, me he encontrado que con la instalación básica da una serie de errores al utilizar el gcc.
De hecho lo que pasa es que faltan librerías y no encuentra el stdio.h y otros. Una rápida vuelta por Google nos da la solución: hay que instalar algo más. Vamos a ello!.
sudo apt-get install build-essential
Esto instala las librerías que toque y te permite compilar sin problemas.
04 octubre 2008
Fujitsu Amilo M7440G, Disco duro y WiFi
Pues aquí estamos, con un disco duro que ha fallecido en acto de servcio, la garantía caducada y con un poquito de tiempo. Lo primero es comprar un disco duro SATA: 160 Gb, 46 EUR. OK. Segundo, se instala. OK. Probamos de instalar el XP: el ordenador no detecta el disco duro: malo! Probamos de instalar el Ubuntu, detecta el mío el del vecino y no se cuántos más ;-) Tiramos de linux y nos encontramos con que no va el WiFi, y ya me dirás un portátil sin WiFi es un fijo con la pantalla pequeña. Solución: Google, Ubuntu Amilo M7440G WiFi. Nos lleva a la página de una pequeña aplicación que te permite activar el Wifi: http://fsam7440.sourceforge.
En mi caso, cada vez que quiero activar el WiFi, tengo que ir a la carpeta donde tengo el programa y hacer un sudo modprobe fsam7440.En cuanto coja pràctica con el Linux, haré un método más ràpido.
28 septiembre 2008
81a Travessa del Port de BCN
Este año ha ido mejor que el anterior. Mucho mejor. El año pasado quedé el penúltimo, y éste, a pesar de haber llegado fuera de tiempo por 3 minutos, me ha ido muy bien. Hay cosas que he de mejorar, además de entrenar de una manera más... constante, y es el tema de orientación. He nadado muchos más metros de lo que tocaba, pues me iba continuamente hacia la derecha, perdiendo mucho tiempo volviendo hacia donde estaban el resto de los nadadores.
El año que viene el objetivo es bajar de la hora, y con un poco de tiempo y entreno, y nadando en plan waterpolista, lo conseguiré.
25 septiembre 2008
Vuelta, de nuevo, a correr...
Después de varias semanas acudiendo puntual a la cita con el fisio, de saber lo que es aguantar dolor de verdad, de saber lo que es una Indiba, y de buscar en Internet qué es eso de Ciriax, con lo que duele, por fín, me han dejado que trotase 10 min. por Collserola. Para mi una experiencia quasi-religiosa, y rara, pues no he tenido ninguna molestia en la pierna. Esperemos que vaya bien...!
26 julio 2008
Nos vamos de vacaciones...

No te das cuenta, pero las esperas. Al menos es mi caso. Estás tan metido en la rutina, en las teclas que has de ir tocando cada día que a veces cuesta dar el paso de pensar en qué vas a hacer en vacaciones. Antes esto era parte ya del momento. Ahora lo que pides es tiempo para hacer aquello que no haces durante el resto del año: NADA. O como mucho leer un poco y jugar con tus hijos, los que tenemos.
Este año toca Almería, por muchas razones, y sobre todo por recomendación de los amigos: es un paraíso, payas vírgenes, etc... Para mi, que sea tranquilo relajado, con pocas cosas que tenga que ver (obligadas) y con rutina vacacional: desayuno, piscina, comida, siesta, piscina, cena y a las diez en la cama estés. La panacea...
Powered by Qumana
11 mayo 2007
Continuamos entrenando
Lo que sí he notado es que en la bajada se me cargan mucho las piernas. La causa no la tengo clara, pero no debo de apoyar bien el pie, y las zapatillas que uso no deben ser especialmente blandas. Todo ello hace que tema las bajadas como pocas cosas. Prefiero subir, o bien bajar por un sitio blandito...
Espero este finde continuar con la recuperación...
10 mayo 2007
Java Byte[] y los acentos
public Document genXMLDocument(byte[] b){
Document doc = null;
try {
ByteArrayInputStream bais = new ByteArrayInputStream(b);
InputSource is = new InputSource(bais);
is.setEncoding("ISO-8859-1");
SAXBuilder sxb = new SAXBuilder();
doc = sxb.build(is);
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return doc;
}
25 diciembre 2006
Mitja Marató de Vilanova del 2006
El recorrido de la Mitja Marató de Vilanova del 2006. Per mi la primera vegada que intentava una distància com aquesta en una cursa, i la veritat és que és una miqueta dur, però bé. Total 1:44 en fer els 21 km i escaig.He tingut tiretes durnat uns dies, però ho he pogut aguantar bé i he tornat a entrenar.
L'any que vé ho farem millor!
06 noviembre 2006
Cross Popular de Sants 2006
09 octubre 2006
El entreno de muchos días
03 octubre 2006
Esto que hago como unas cuantas veces al año siempre me acaba por dar problemas. En fin, que tengo que poner en marcha el Apache, MySQL, PHP, Perl y alguna cosilla más, y la primera en la frente: tengo instalada la versión de Apache la 2.2.2, que se supone que es la última. Pues bien, cuando hay que configurar el PHP como módulo, empieza a ponerme peros. Tira de Google, hasta que algún buen samaritano pone en su web que hay incompatibilidades. Tiramos para atrás. Vamos a ver qué es lo que se soporta y qué es lo que no. En el "curro" tengo una 1.3.27 que va como una moto, pero por aquello de no ser un individuo poco moderno, digo, vamos a poner una 2.0.xx. Descargamos a buena velocidad, y le damos al .msi, que a más de uno le ha dado un disgusto. Pues no iba a ser menos: no funciona. Da un error de Windows de que hay un problema con el Windows Installer.
Google de nuevo nos da la respuesta a través de la página de Microsoft, que dicho sea de paso, no se lleva bien con el Firefox, o era al revés? El caso es que ábrete un Explorer, y la respuesta: hay que volver a registrar (msiexec /regserver) el MsiExec.exe con el Windows en modo a prueba de fallos. Como es la primera vez, pues hace "ilu". Reinicio, aprieto F8, y entramos en un "nuevo mundo", donde todo debe estar más controlado. Ejecutamos el comando para re-registrar el msiexec.exe, y recuerdo que el otro día mientras instalaba nosequé (puede que la última versión de la mula), se fue la luz por una avería de Fecsa-Endesa. Ya sabemos el porqué de las cosas.
Una vez ejecutado el comando, volvemos a reiniciar, seleccionamos Windows XP dentro de las posibilidades de la máquina, y desinstalamos el Apache 2.2.x (pero qué bien y que ordenadito!) mediante el apache_2.2.2-win32-x86-no_ssl.msi. Ya queda menos. Volvemos a ejecutar mediante un doble-clic el apache_2.0.59-win32-x86-no_ssl.msi, y esta vez va como una moto. Ponemos el directorio que nos interesa, el dominio que queremos y voilà, la máquina está preparada. Apuntamos el Firefox a http://localhost, y voilà: la página de inicio del Apache. Esta noche promete!
Instalamos el PHP 5.1.6
Lo tengo descomprimidito y preparado en mi %PHP_HOME%. Ahora volvemos a Google, y buscamos "configuring apache php5", y lo primero que hemos de hacer es localizar nuestro httpd.conf, que hallamos inmaculado en %APACHE_HOME%conf. Lo editamos y empezamos a "meterle mano":
# For PHP 5 do something like this:
LoadModule php5_module "%PHP_HOME%/php5apache2.dll"
AddType application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "%PHP_HOME%"
Donde %PHP_HOME% es el directorio donde tengamos instalado nuestro PHP. Esto va bien, ya que cuando cambiemos de PHP, poco hemos de tocar el httpd.conf.
Probamos a colocar en la carpeta donde sirve los documentos el fichero con el phpinfo():
phpinfo();
?>
y ahí está, perfecto! Ya tenemos el Apache+PHP5. Vamos a ver si se lleva bien con el MySQL que ya funciona desde hace unos días.... Algo que no veo en el phpinfo() me da en la nariz que tendremos "dificultades".
Probando MySQL 5.22
Hacemos un script de conexión a una tabla que tengo funcionando, y falla. Parece que tenía razón. Nos vamos al php.ini, y verificamos las líneas:
; Directory in which the loadable extensions (modules) reside.
extension_dir = "%PHP_HOME%ext"
y descomentamos la línea:
extension=php_mysql.dll
Ahora sí que sí.
30 junio 2006
Preparando las vacaciones
Pues parece que hay una tiradilla...
from: San Gimignano SI, Italia @43.470334,11.043760 to: San Marino - Google Maps

