• Domingo 17 de Noviembre de 2024, 22:27

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - silverfox

Páginas: 1 ... 6 7 [8] 9 10 ... 12
176
Java / Buscando Libros De Seguridad En Java
« en: Martes 1 de Agosto de 2006, 09:10 »
Buenas...

Me gustaría saber si podeis recomendarme algún tipo de libro acerca de seguridad en entornos Java a todos los niveles.

Estamos haciendo cosas de este tipo en el trabajo y me he dado cuenta de que no tengo ningún texto de referencia acerca de estos temas.

En particular, me gustaría conocer vuestras recomendaciones acerca de texto sobre:


- Los paquetes JCA y JCE (Crypto y Crypto extension)
- Manejo de encriptación y firmas digitales en Java para XML y servicios web(Paquetes, XSS4J WSS4J, por ejemplo)
- Seguridad del lenguaje Java y políticas de seguridad.

Si conoceis algunos textos, preferiblemente libros en papel, no importa si es en español o en inglés, por favor, comentadme.



Gracias por todo.



Silverfox

177
Java / Re: Ejecutar Un Programa En Otra Pc.
« en: Martes 1 de Agosto de 2006, 09:00 »
El acceso a un pc remoto a través de Java se puede hacer con las herramientas que usarías para hacer la conexión a mano: Por ejemplo, mediante un Telnet. Hay librerías que implementan estas cosas sobre los Sockets básicos de Java, echa un vistazo al paquete apache.commons.net

Tienes que tener en cuenta que la política de seguridad de Java probablemente no te permita ejecutar comandos en una máquina remota, por lo que tendrías que modificar esa política. En java.sun.com hay varios tutoriales que te hablan de la seguridad en Java y de sus políticas y cómo modificarlas.



Espero que te sirva.
Un saludo.



Silverfox

178
Java / Re: Jtextfield Que Actúe Como Jpasswordfield
« en: Lunes 31 de Julio de 2006, 11:50 »
Citar
getPassword().toString()

¿¿¿Qué resultado te da eso???

me temo que un char[] no puede convertirse en String por las buenas...

Bueno, sí, pero la forma correcta de hacerlo es con el constructor de cadenas

String (char[]);



En todo caso, si no cambiases nada del código, debería funcionar tanto con el JTextField como con el JPasswordField, porque el segundo es subclase del primero. Lo único que debería es dar una advertencia de getText deprecated en JPasswordField.


De todas formas, necesitaríamos saber qué método es el super.insertString(arg0, arg1, arg2); para ayudarte algo más y cuál es el fallo que tienes al insertar el texto del JPassword.


Un saludo.




Silvefox

179
Java / Re: Frame
« en: Lunes 31 de Julio de 2006, 11:29 »
http://www.programacion.com/java/tutorial/swing/17/

http://www.javahispano.org/news.item.action?id=559083498



Ahí tienes algunos enlaces para que veas cómo crear ventanas modales.


Espero que te aclaren algo.



Suerte.




Silverfox

180
Java / Re: Frame
« en: Viernes 28 de Julio de 2006, 11:51 »
¿Puedes especificar más qué es lo que quieres conseguir?

Vamos a ver... lo normal es recibir eventos de ventana en la ventana activa, ya sea la primera o la última que abres.

Otra cuestión es que no puedas cambiar de ventana activa, entonces, lo que estás haciendo es abrir una ventana tipo modal, que permanece activa hasta que recibe un evento específico (la típica ventana aceptar-cancelar que aparece en algunos programas).




Silverfox

181
Java / Re: Caracteres Especiales
« en: Martes 18 de Julio de 2006, 13:06 »
No sé qué camino recorren tus datos desde que los sacas de la BD... pero tiene toda la pinta de que los conviertes en algún punto a un juego de caracteres en el que no se soportan los acentos. Trata de depurar dónde es y tendrás la solución.

Los sitios susceptibles suelen ser páginas web (trata de convertir el juego de caracteres a UTF-8 (o el juego en el que estén los datos en tu BD). También los streams pueden llegar a dar problemas, mira en el API si los streams que estás usando admiten como parámetro un juego de caracteres.

La verdad, es que sin ver el código, es complicado de averiguar el punto exacto.



Suerte.


Silverfox

182
Java / Re: Restar Tiempo
« en: Martes 18 de Julio de 2006, 13:00 »
Efectivamente, si quieres tomar tiempos durante la ejecución, tu solución es correcta:

getTimeMillis() y lo guardas y cuando quieras saber cuánto tiempo lleva funcionando esto, getTimeMillis() y restas.

Esto da el tiempo en milisegundos, tendrás que transformarlo en horas, o días, o lo que sea...


Suerte.


Silverfox

183
Java / Re: Utilización De Html:select
« en: Martes 18 de Julio de 2006, 12:56 »
Vamos a ver...

si no entiendes eso, es que no has entendido del todo lo que es un JSP, o un Bean...


Mira:

Cuando tienes una JSP, generas una página HTML estática dependiendo del contenido.
¿Cómo enlazas una página HTML con otra? Facil, ¿no? Con llamadas a otras páginas o la pulsación de botones. (Los métodos GET y POST). Cuando haces algo así en una JSP tienes que tener una clase que guarda los datos de una página a otra (un bean). Mira la etiqueta jsp:usebean, que se usa con eso.

Eso te permite pasar datos de un sitio a otro.

Si lo haces con servlets, o bien, estás usando algún botón o formulario HTML, necesitarás acceder a la información que se pasó de un sitio a otro.

El paso de parámetros por get se hece mediante la URL y por post, mediante información guardada en un objeto específico.

Una página JSP es lo mismo que un Servlet (de hecho, compilar una JSP te devuelve un Servlet), por lo que puedes echar un vistazo a la clase Servlet para ver qué opciones tienes para acceder a la información. Básicamente, tienes acceso a los objetos request (información que te llega a la página) y response (información que quieres enviar desde esta página).


En cuanto a accesos a base de datos y esas cosas... al final, el JSP es un archivo .java, puedes hacer tus peticiones a BBDD de la forma habitual, pero recuerda que hasta que no llega al final de la JSP, la página no se visualizará en el navegador... cuidadito con lo que haces...


Si necesitas pulir algunas cosas en este aspecto, busca un manual de J2EE o de JSP y Servlets, los hay buenos en la web, algunos en español y te explican cómo enlazarlo todo.



Espero que esto te sirva más.
Suerte.



Silverfox

184
Java / Re: Utilización De Html:select
« en: Miércoles 12 de Julio de 2006, 13:03 »
Echa un vistazo a este enlace:

http://www.laliluna.de/struts-example-html-elements.html



Espero que te aclare algunas cosas.


Suerte.



Silverfox

185
Java / Re: Restar Tiempo
« en: Miércoles 12 de Julio de 2006, 12:59 »
Lamentablemente, creo recordar que no se pueden restar fechas directamente.

De todas formas, puedes hacerlo indirectamente, usando la clase Calendar, en concreto, el método getTimeInMillis().

Echa un vistazo a la documentación y pregunta de nuevo si tienes dudas.

Un saludo.




Silverfox

186
Java / Re: Joptionpane
« en: Martes 20 de Junio de 2006, 07:34 »
Buenas...


Si no has encontrado nada, es que no has buscado bien.

Echa un vistazo al API, en concreto a la clase JPasswordField de java.swing.




Suerte.



Silverfox

187
Java / Re: Outofmemoryerror
« en: Miércoles 7 de Junio de 2006, 10:49 »
Buenas...

Para empezar, echa un vistazo a lo que dijo jpaler... Seguramente estés entrando en un bucle infinito y usas un new dentro, por lo que terminarás quedando sin memoria.

El uso normal de la memoria de la JVM es (al menos en mi compilador actual) de 64Mb.

En los parámetros de la máquina virtual (VM Params en la mayoría de los entornos) puedes cambiar la memoria utilizada por Java con el comando -Xmx y un número:

-Xmx256M dará a tu JVM el uso de 256Mb de memoria, aunque no creo que lo necesites.


Por cierto, el error OutOfMemoryError se puede capturar con catch(Throwable th) para tratar de solucionarlo en tiempo de ejecución.

También se puede controlar la memoria consumida por el programa. Si estais interesados en ello, echad un vistazo a la documentación, en la clase Runtime, los métodos freeMemory() maxMemory() y totalMemory().


Un saludo.



Silverfox

188
Java / Re: Calcular Retardos
« en: Miércoles 7 de Junio de 2006, 10:34 »
Hola jpaler...

¿Qué error te deja tu código?

Supongo que lo que terminará haciendo es dejar bloqueadas las Threads que utilizas, ¿no?

Fíjate en una cuestión:

Código: Text
  1.  
  2.        while ([B] this.puerto.isDSR() [/B]) {
  3.            try {
  4.                this.wait( timeOut );
  5.            }
  6.            catch ( InterruptedException e ) {}
  7.        }
  8.        if ([B]this.puerto.isDSR() [/B]) {
  9.              //escribe caracteres
  10.        }
  11.  
  12.  
Nunca escribirá caracteres, porque es condición para que salga del bucle que puerto.isDSR= false;

Creo recordar que tenías sólo 2 hebras funcionando, ¿has probado si se envía el notify?

Yo cambiaría lo siguiente:
    Crear un método reservarPuerto:
 
Código: Text
  1.    synchronized reservarPuerto(long timeOutMillis) throws TimeOutException{
  2.         if (puerto ocupado){
  3.              wait(timeOutMillis);
  4.              if (se excedió el tiempo) throw new TimeOutException("Tiempo de espera excedido");
  5.         }
  6.         else {
  7.             ocupado= true;
  8.         }
  9.     }
  10.  
   
    Crear un método devolverPuerto:
Código: Text
  1.     synchronized devolverPuerto(){
  2.         //aqui reseteas todos los flags del puerto y lo pones en modo de espera de comandos
  3.  
  4.         this.notifyAll();  //esta es la última instrucción y despierta a todos los dormidos en el wait, de los cuales el más rápido reservará el puerto
  5.     }
  6.  


En todos los métodos que usen el recurso compartido, será obligatorio reservarlo y liberarlo:

Código: Text
  1. synchronized void escribir puerto(){
  2.     reservarPuerto();
  3.     . . .
  4.     devolverPuerto();
  5.     return;
  6. }
  7.  

Y con esto debería funcionarte sin problemas.


Espero haberme explicado correctamente. Echare un vistazo a algunos libros a ver si puedo recomendarte alguno. De momento, te remito a uno que se llama Concurrent Programming with Java, de Prentice Hall.


Suerte, si tienes más dudas, dilo y trataré de explicarlo mejor.
Un saludo.



Silverfox

189
Java / Re: Calcular Retardos
« en: Lunes 5 de Junio de 2006, 15:40 »
Con gusto, jpaler. Vamos a ver...

Si quieres echar un vistazo extenso a estas cosas, mira en algún libro el trabajo con Threads.

Para empezar, supongo que sabes lo que ocurre con un método sincronizado en Java: Cuando llamas a un método clasificado como synchronized, se bloquearán todas las llamadas posteriores a métodos synchronized del mismo objeto por parte de otras hebras. Este bloqueo termina cuando el Thread que llamó retorna del método sincronizado, dejando el camino libre a una de las hebras que entrará en uno de los métodos sincronizados del objeto compartido.

Cuando se hace un sleep, la hebra que llama al método queda ocupando el método, a diferencia de cuando se llama a wait. En el último caso, la hebra queda en estado de suspendida (puedes ver el método suspend de Thread, también deberías repasar el ciclo de vida de una hebra en Java en la documentación o en algún libro similar). Por lo tanto, si usas sleep, puede que la máquina virtual continúe ejecutando la hebra dormida y que, por lo tanto, la otra no avance (con un tiempo de sleep tan corto como ponías en tu ejemplo, seguramente haya pasado eso).

Tal y como lo pones, creo que la opción sería la siguiente:

Código: Text
  1. public synchronized void delay(long timeOut){
  2.     while (puertoSerial.estaOcupado()){
  3.         this.wait(timeOut);
  4.     }
  5.     return;
  6. }
  7.  

pero también tendrás que modificar los métodos que modifiquen la variable ocupado:

Código: Text
  1. public synchronized void setOcupado(boolean busy){
  2.     this.ocupado= busy;
  3.     if (!busy)
  4.         this.notifyAll();
  5. }
  6.  



Cuando se hace el wait, quedarás bloqueado en el método, en espera de que alguien te despierte con un notify. El wait con un parámetro indica un tiempo de espera en milisegundos. Si no se recibe el notify correspondiente en este tiempo, la hebra despertará sola y continuará la ejecución.
Si sólo tienes 2 hebras, en lugar de un while, podrás poner un if y te dará el comportamiento que esperabas. Si tienes más de dos hebras funcionando deberás usar el while, considerando que el notifyAll despierta a todas las hebras que estén dormidas en el wait, pero de las cuales sólo una podrá entrar en el método, las otras tendrían que volver a ejecutar el wait (por eso el while).


Espero que con estos consejos puedas terminar el trabajo sin problemas. Si necesitas alguna cosa más, ya sabes.


Un saludo.


Silverfox

190
Java / Re: Un Duda
« en: Lunes 5 de Junio de 2006, 13:15 »
Existe la clase ArrayList en java desde la versión 1.2.

Lo que no sé es si la funcionalidad es la misma o parecida que en el C#, aunque no me extrañaría nada, porque han intentado hacer C# lo más parecido posible al Java en cuanto a esas cosas.

Consulta la documentación del API de Java para saber más cosas de esta clase.



Un saludo.



Silverfox

191
Java / Re: Java Patrones Tutorial
« en: Lunes 5 de Junio de 2006, 12:33 »
Hola josu.

Lo primero de todo es esto: Los patrones no son específicos para Java, sino que se aplican a cualquier lenguaje de programación. Aunque hay muchos recursos donde hablan de patrones para Java y para J2EE, en realidad lo que te enseñan es una aplicación de los patrones generales adaptada al uso del tipo de construcciones típicas de lo que quiera que sea que estés usando.

En principio, busca información acerca de los patrones generales. Hay buenas páginas que te permitirán entender las cosas de una manera sencilla. Una vez que entiendas los conceptos básicos, podrás empezar a usar libros de esos que te comento que están aplicados a Java.

Un recurso interesante es el Thinking in patterns, de la serie de los Thinking in ... . Puedes encontrarlo en formato electrónico en la red, gratuito. Lamentablemente, está en inglés, pero es bastante interesante para echarle un vistazo.

En cuanto a libros en castellano, te recomendaría el libro UML y patrones. Puedes encontrarlo en castellano y creo recordar que estaba en la web, aunque yo lo estudié en su primera edición y hace poco adquirí la segunda en una librería. En él se explican los patrones de forma general, con ejemplos. Bastante bueno como libro de consulta para estas cosas...



Espero haber sido de ayuda.

Un saludo.



Silverfox

192
Java / Re: Arboles N-arios En Java
« en: Lunes 5 de Junio de 2006, 12:24 »
Buenas...


Para guardar un árbol n-ario, necesitas almacenar también el número de hijos que tiene cada nodo.

A parte de eso, tienes las 3 opciones base de recorrido de árboles: preorden, inorden y postorden. Yo elegiría la primera, es decir, que se guarda primero el nodo actual y luego se baja al primer hijo, se guarda y se baja al siguiente y así hasta las hojas del árbol y así recursivamente con cada hijo de cada nodo.

Recuerda que en cada nodo necesitas guardar la información cualquiera que sea, de tu aplicación, más la longitud de la lista de hijos del nodo en curso.

Y con todo esto ya podrás guardar y recuperar sin problemas (espero).

Espero que te sirva.
Un saludo.


Silverfox

193
Java / Re: Calcular Retardos
« en: Lunes 5 de Junio de 2006, 11:49 »
Hola a todos.

Creo recordar que Java no tiene forma de encontrar el procesador, puesto que no está en las propiedades del sistema. La opción que tienes es preguntárselo al SO y obtenerlo con un método nativo.


De todas formas, estás equivocado en una cuestión:

Código: Text
  1. Thread.sleep( 10 );
  2.  

El parámetro de este método está dado en milisegundos, por lo que, si quieres que espere un segundo, tendrás que utilizar sleep(1000).

Yo lo que haría sería otra cosa, ya que estás implementando una espera activa con el sleep y eso baja el rendimiento de tu aplicación.
Utiliza mejor el wait() que tienes comentado. Lo único que tienes que hacer es meter una instrucción notify() o notifyAll() justo antes de la salida del método que se ejecute cuando el puertoSerie quede libre. Los métodos donde tengas el wait y el notify deberían ser synchronized, con eso tendrías que poder manejar la variable puertoSerie de forma exclusiva sin problemas.


Espero que consigas resolverlo. Si tienes más dudas, ya sabes.


Un saludo.


Silverfox

194
UML / Re: Duda Modelo De La Información
« en: Lunes 22 de Mayo de 2006, 13:00 »
Tal y como yo lo entiendo, el modelo de datos que buscas es aquél en el que una temporada está formada por varias competiciones, y cada competición formada por jornadas.

En esencia, una temporada serán un conjunto de jornadas de todas las competiciones que se jueguen en dicha temporada.

Lo que yo propondría es una relación entre temporada y competición, sabiendo que en 1 temporada hay N competiciones.

Después, cada temporada está asociada a un grupo de jornadas (también en relación 1-N) y, además, otra relación entre competición y jornada (1-N también), con lo que me quedan 3 relaciones y las jornadas son dependientes de temporada y competición, tal y como te han pedido.


Si no me he explicado bien, dímelo e intentaré repetirlo.

Espero que te sirva.




Silverfox

195
Java / Re: Problemas Con Applet
« en: Lunes 22 de Mayo de 2006, 12:40 »
Busca el uso del tag <applet ... en HTML, en cualquier página donde te expliquen este lenguaje podrás encontrar cómo se hace para que cargue el applet.







Silverfox

196
Java / Re: Problemas Con Revalidate Creo
« en: Lunes 22 de Mayo de 2006, 12:37 »
Eso es porque mientras estás procesando consumes el tiempo de tu aplicación y no le da tiempo a procesar el repaint.

Si no quieres que ocurra, deberías utilizar varias hebras con distintas prioridades: Una para procesar los datos y otra para realizar el repintado. Seguramente pasará lo mismo si tienes un botón 'cancelar' y quieres pulsarlo: Al consumir el tiempo en el procesado de los datos, no conseguirás pulsar el botón. La solución es la misma: una hebra aparte donde controlar este click en el botón.


Suerte.


Silverfox

197
Java / Re: Jtextarea
« en: Lunes 22 de Mayo de 2006, 12:33 »
Hummmm, ¿capturando todos con sus correspondientes listeners y que no se haga nada en respuesta al evento?

¿Es realmente eso lo que quieres?



Espero que te sirva.




Silverfox

198
Java / Re: Reemplazar Una Cadena De Caracteres
« en: Viernes 19 de Mayo de 2006, 08:05 »
Buenas...

Echa un vistazo a la clase StringTokenizer. Con ella puedes partir la cadena y analizar cada palabra por separado. Luego, recostruye la cadena.

La otra opción es el replace, pero usa espacios al comienzo y al final de tu cadena, porque si no te cambiaría también la parte de las palabras que coincidan con el patrón.




Un saludo.



Silverfox

199
Java / Re: Java & Perl?
« en: Viernes 12 de Mayo de 2006, 12:42 »
Hola.

Para poder contestarte necesitamos saber más cosas... por ejemplo, ¿qué parte estás haciendo en Java y qué parte en Perl?, ¿estás haciendo una aplicación con entorno o vía navegador? Si es vía navegador, ¿estás usando JSP o Servlets? para saber los combos que estás utilizando...




Un saludo.


Silverfox

200
Java / Re: Javax.swing
« en: Viernes 12 de Mayo de 2006, 12:18 »
Citar
me despliega todos los componentes del frame sobre todo los botones como si fueran en ambiente gráfico awt

¿Qué quieres decir con esto?

Lo que entiendo es que todo compila, ejecuta pero, cuando sale la ventana, los componentes tienen un aspecto diferente. ¿Estoy en lo cierto?




Silverfox

Páginas: 1 ... 6 7 [8] 9 10 ... 12