Mostrar Mensajes

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - venkman

Pages: [1] 2 3 ... 5
1
Javascript / Re: Problema con setTimeout
« on: Diciembre 17, 2007, 10:57:18 pm »
¿Qué es lo que pretendes hacer con los document.write? ¿Dónde pretendes escribir?



Si no funciona es porque al hacer document.write así, estás abriendo un nuevo document y en ese, no existe ya el envia().

2
Java JSE / Re: String y StringBuffer
« on: Diciembre 17, 2007, 09:13:00 pm »
El problema de la concatenación de cadenas viene cuando usas un ejemplo real y no el típico ejemplo teórico.

Lo digo porque en el mundo real, lo que te vas a acabar encontrando (o haciéndolo tú mismo) no es tan simple. Concatenarás más trozos y ahí está el problema.

Cuando tienes:
Code: [Select]
String a = "Hola, " + getUsername() + "!";el compilador es capaz de comprenderlo e implementarlo con un único Stringbuilder (StringBuffer en antiguas versiones).

Pero cuando tienes 2 sentencias diferentes:
Code: [Select]
String a = "Hola, ";
a += getUsername();
a += "!";
(esto tampoco es un ejemplo del mundo real, pero se parece bastante más en el detalle de tener múltiples sentencias de concatenación separadas a lo largo de un bloque de código)
El problema aquí es que el compilador no es suficientemente inteligente como para saber si puede implementar eso con un único StringBuilder/Buffer. lo que hace entonces es crear para cada sentencia un StringBuilder/Buffer, concatenar, convertir a String y devolverlo.

Ahora, imagina que tienes un proceso que genera un texto (por ejemplo un mensaje de email con los datos del usuario y con diferentes contenidos y relativamente largo) a mano, concatenando Strings. Para cada sentencia se crea y destruye un nuevo StringBuilder/Buffer, y ahí es donde puede estar el problema. Puede haber problema si resulta que para cada mensaje creas y destruyes 10.000 StringBuilders/Buffers (he visto casos así, no lo digo por decir). Y además, en cada ocasión el nuevo StringBuilder/Buffer tiene que mover toda la cadena, que cada vez será más y más larga.


En cuanto a la diferencia de StringBuffer y StringBuilder, es lo que ha comentado chiudiang, pero a efectos de lo que he comentado, es irrelevante. La decisión de uno u otro se ve únicamente influida por eso, por necesidad o no de ser thread-safe.

3
C/C++ linux / Re: Como Abri Imagenes Como Archivos Binarios
« on: Diciembre 17, 2007, 08:55:25 pm »
Me parece extraño que no puedas encontrar alguna de las múltiples librerías que existen. Así sin pensarlo mucho... échale un ojo a libpng, libjpg, cario, GD...

4
Java JSE / Re: eclipse y windows de 64bits
« on: Noviembre 14, 2007, 07:41:26 pm »
Mientras no utilices librerías nativas en 64 bits que no haya en 32, no debería haber problema.

Por lo demás, por curiosidad, ¿qué tal el Eclipse de 64 bits? ¿Es estable?

5
¿Un cafecito? / Re: ¿Eres más inteligente que la media?
« on: Noviembre 02, 2007, 03:40:43 pm »
Por cierto...

Quote
Obviamente, al menos el 49% están equivocados.

Eso no es necesariamente cierto. Imagina que medimos la inteligencia del 0 al 10. Hay 20 personas en el mundo. 15 personas tienen una inteligencia de 10. 5 personas tienen una inteligencia de 2. ¿Cuántos están por debajo de la media? Si todos creyeran que están por encima, ¿cuántos estarían equivocados?

6
¿Un cafecito? / Re: Windows
« on: Octubre 23, 2007, 03:43:19 pm »
Porque cuando apagas Windows es cuando empieza lo bueno ;)

7
Java J2EE y JSP / Re: Más problemas con <jsp:useBean...
« on: Octubre 18, 2007, 03:17:19 pm »
Creo que el problema es que estás confundiendo algunas cosas.

Cuando haces el setProperty, el valor que se introduce es el indicado por param="login" y, como su nombre (param) indica, es un "parametro de la página". Es decir, que no se obtiene de la sesión, sino de la request.

Para que quede más claro, estas líneas:
Code: [Select]
<jsp: useBean id="user" class="laRutaDondeEstaMiClase.MiClaseUsuario">
        <jsp:setProperty name="user" property="login" param="login" />
</jsp:useBean>
más o menos (*) corresponden a hacer algo así:
Code: [Select]
MiClaseUsuario user = new MiClaseUsuario();
user.setLogin(request.getParameter("login"));

Lo importante ahí es que param="login" se traduce como request.getParameter("login") que es el parámetro "login" que se reciba en la petición de la página (por ejemplo, enviando un formulario).


(*) En realidad equivalen a hacer bastantes más cosas pero simplificando, la idea de lo que hace es esa. Si quieres te explico con más detalle cómo funciona el useBean.

8
Recuerda, además, que la extensión .dat es usada para muchas cosas, así que posiblemente necesites conocer de alguna forma el formato que tiene ese fichero concreto. ¿Es simplemente texto? ¿Es binario? ¿Va comprimido?

9
Java J2EE y JSP / Re: Frameworks
« on: Septiembre 24, 2007, 03:49:13 pm »
Frameworks hay muchos. Algunos están expresamente hechos para entornos web, otros no, y otros más a lo mejor cubren una parte concreta y pueden usarse en entornos web o no.

Por ejemplo, Hibernate trata la persistencia y el acceso a datos, pero nada más. Spring abarca bastantes cosas pero puede usarse en web o no; tiene algunos subproyectos como SpringMVC o Webflow que son para la parte de presentación en web, pero el framework abarca mucho más.


Pero como decía hay muchos actualmente. Tienes Java Server Faces, tienes Struts 2 (Shale), tienes alguno más reciente pero bastante interesante como es Wicket, y otros más "maduros" como Appfuse o Tapestry. También se habla bastante últimamente de Seam.

Lo mejor es ver los ejemplos (sencillos) que pone cada uno en su página web. Estudiarlos un poco y comparar. Ver con cuál te sientes más cómodo o te parece más accesible y probar ese framework un par de días haciendo alguna cosa básica pero que funcione. Si no te gusta, prueba otro.

10
Java JSE / Re: Como sustituir un operando?
« on: Agosto 27, 2007, 07:43:46 pm »
No puedes pero ¿has pensado simplemente comprobar qué operación es con un if?

Por ejemplo:

Code: [Select]
String operacion = bd.getValor("<operacion>"); // o como se llame
if (operacion.equals("<multiplicar>")) {
    temperatura = temperatura * Double.parseDouble(bd.getValor("TE"));
} else if (operacion.equals("<sumar>")) {
    temperatura = temperatura + Double.parseDouble(bd.getValor("TE"));
} else {
    // etc
}

No es muy elegante, pero en fin.

11
Varios / Re: Configurar tomcat
« on: Agosto 23, 2007, 02:59:13 pm »
Si aún sigues sin solucionar el problema:

Busca el fichero <TOMCAT>/conf/web.xml
Ahí hay un parámetro de inicio llamado listings que seguramente estará puesto a true:
Code: [Select]
        <init-param>
            <param-name>listings</param-name>
            <param-value>true</param-value>
        </init-param>

Para hacer que no se muestren los listados de directorios, simplemente cámbialo a false.

12
Varios / Re: quitar de un direccion el :8080
« on: Agosto 23, 2007, 02:52:12 pm »
Eso no es algo que puedas hacer así sin más.

Quiero decir, cuando pones una dirección como http://localhost/ lo único que se está haciendo es suponer que el puerto es el 80 ( http://localhost:80/ ), pero no existe modo de decir que sea otro puerto distinto.

La única solución es hacer que el servidor escuche en el puerto 80 en lugar de en el 8080 (o el que sea). Si es esto lo que quieres hacer, mira la configuración del servidor donde se define el puerto en el que se escucha.

Nota: Si es Tomcat el fichero es el server.xml y la línea será algo como:
Code: [Select]
<Connector port="8080"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000"
               disableUploadTimeout="true" />
Cambia port="8080" por port="80".

13
Java JSE / Re: java.lang.UnsupportedClassVersionError
« on: Agosto 20, 2007, 01:57:39 pm »
Si utilizas clases y métodos que sólo están en la versión 6, entonces no hay manera de ejecutarlo luego sobre una versión que sea anterior a la 6. Esto es evidente, porque en versiones anteriores esos métodos no existen.

Si no utilizas esos métodos (o en tu caso, si los cambias), sí puedes compilar con la versión 6, diciendo que genere bytecode compatible con versiones anteriores. Esto lo indicas al compilar con la opción -target:
Code: [Select]
javac -target 1.5 MiClase.javaSi usas un IDE, como Eclipse o Netbeans, le puedes indicar esto en las propiedades del proyecto. Y fíjate que la versión que le indiques va a ser la mínima. Es decir, si le dices -target 1.4 se podrá ejecutar como mínimo con 1.4 (es decir, con versiones más nuevas vale, pero no con versiones más viejas).

Lo que sí es importante es no utilizar cosas que no estén en la versión en la que quieres luego ejecutar, porque entonces ya no lo podrás compilar para esa versión.

14
PHP / Re: Redirigir a otra página usando POST
« on: Agosto 16, 2007, 03:39:56 pm »
Más directa no hay. Y esa tampoco es que sea directa, la verdad.


Una forma alternativa es utilizar el navegador para hacer la redirección a mano. Es decir, envías en tu respuesta una página en la que sólo hay un formulario con campos ocultos (y en ellos los valores apropiados, claro) y le pones en el onload que haga un submit de ese formulario.


Aún así... entiendo que esto puede ser más o menos útil/necesario si el formulario tienes que enviarlo a algún sitio externo a tu aplicación. ¿Es ese tu caso? Porque si lo que quieres hacer es enviar el formulario a tu propia aplicación, hay opciones mejores que no necesitan hacer eso. También... ¿por qué te gustaría enviarlo por POST? ¿Debe ser realmente un post (es decir, es una acción) o es sólo para que no se vean los parámetros en la URL?

15
C/C++ linux / Re: Pregunta que demuestra lo poco que se:
« on: Julio 27, 2007, 04:01:35 pm »
Ouch, ouch, perdón, perdón! Estaba pensando en punteros y ni me fijé. Error mío. Esto de mezclar tantos lenguajes no va a ser bueno...

Pages: [1] 2 3 ... 5
ey