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 - chuidiang

Pages: [1] 2 3 ... 381
1
Java JSE / Re: Proeblema en transferencia de archivos
« on: Enero 15, 2019, 04:21:55 pm »
Hola:

Cuando lees un array (   n = entrada.read(b) ) no tienes garantía de leer TODOS los bytes del array, sobre todo en socket que los bytes circulan por red y  pueden no haber llegado todavía todos los bytes necesarios para rellenar el array al completo. De hecho, n te está diciendo cuántos bytes has leído y debes usar ese valor de n para saber cuántos bytes hay en el array que han sido leidos.

Deberías hacer algo parecido a esto

Code: [Select]
byte[] b = new byte[8192];
                while ((n = entrada.read(b)) != -1) {
                    salida.write(b, 0, n);   // bytes, empezando en el 0, hasta n
                }

También podias dejarlo como lo tenias, bytes de uno en uno, pero lo que no puedes hacer es usar entrada.ready() para decidir que has llegado al final del socket. Si el byte no ha llegado cuando preguntas, ready() te dira que no hay byte, pero no porque se hayan terminado de enviar, sino porque solo porque no ha llegado todavía.

Saludos.

2
Java JSE / Re: Proeblema en transferencia de archivos
« on: Enero 14, 2019, 05:30:44 pm »
Hola:
Si haces varias pruebas y transmites el mismo fichero varias veces ... ¿siempre tiene el mismo tamaño lo que recibes o cada vez es distinto?
Veo que escribes byte a byte y que lees byte a byte con el ready(). Si el que escribe no lo hace a la suficiente velocidad, es posible que se te corte en cualquier momento. El efecto debería ser que a veces va, a veces no y cuando no va, el fichero recibido será más pequeño, pero unas veces tendrá un tamaño y otras otro.
Saludos.

3
Java JSE / Re: Mantener Foco y Seleccion de Celda al detectar error en valor
« on: Noviembre 21, 2018, 11:12:50 pm »
Hola:

Aquí hay varias alternativas para validar que el campo es correcto, en concreto, la del InputVerifier imipide que se pierda el foco si el campo no es correcto. Echa un ojo a ver si te vale http://chuwiki.chuidiang.org/index.php?title=JTextField_que_solo_admite_digitos

Saludos.

4
Java JSE / MOVED: Ayuda con ejercicios
« on: Noviembre 07, 2018, 01:27:41 am »

5
Hola:

Es fácil de encontrar. Aquí por ejemplo tienes los goal de maven-dependency-plugin https://maven.apache.org/plugins/maven-dependency-plugin/plugin-info.html y lo que hace cada uno.  Pinchando el goal ves los posibles parámetros que tiene.

Saludos.

6
Hola:

El jar se tiene que generar con un fichero de manifiesto que diga cual es la clase main y tiene que tener de alguna forma acceso/saber donde está las librerías (jar) adicionales que necesites.

Aquí tienes varias posibles formas de apañarlo con maven https://www.baeldung.com/executable-jar-with-maven

Saludos.


7
Hola:

Las baja la primera vez, una vez están en tu repositorio local de maven (habitualmente en <tu_home>/.m2/repository), ya no necesita barjárselas nuevamente.

Saludos.

8
Hola:

Tienes que definir un repositorio que sea tu path en disco, algo así

Code: [Select]
<project>
  ...
  <repositories>
    <repository>
      <id>my-internal-site</id>
      <url>file://path/de/tus/jar</url>
    </repository>
  </repositories>
  ...
</project>

y dentro de ese directorio, siguiendo una estructura de directorios de repositorio de maven, dejar tus jar. Por ejemplo, si la dependencia que quieres poner es

Code: [Select]
<groupId>tu.group.id</groupdId>
<artifactId>tuartifactid</artifactId>
<version>1.0</version>

tienes que crear un directorio /tu/group/id/1.0 y meter dentro el jar.

Aquí tienes este ejemplo y un par de opciones más http://roufid.com/3-ways-to-add-local-jar-to-maven-project/

Saludos

9
Java JSE / Re: rarezas del parseFloat y parseDouble
« on: Julio 18, 2018, 01:44:58 am »
Hola:

El problema es el siguiente. Un float son 4 bytes, un double son 8 bytes. En un número finito de bytes no puedes representar todos los valores decimales existentes, que son infinitos. Por ello, a partir de una determinada cifra, suelen haber "problemas" con las cifras que van detrás, "redondeos" extraños.

Con cuatro bytes, tienes números de 7 cifras significativas, a partir de la octava te pueden salir cosas raras. (fijate que tu 9 del final es justo la octava cifra). En un double (ocho bytes), son 15 cifras significativas, tendrías problemas a partir de la 16. Da igual que sean decimales o no, tendrías el mismo problema en la octava cifra de un float si es 0.123456789 como si es 123456789.

En la tabla en https://es.wikipedia.org/wiki/Coma_flotante#Formatos_de_coma_flotante tienes estos reflejado, fijate en la columna dígitos significativos en decimal.

Así que si necesitas más de 7 cifras de precisión, usa double. Y si necesitas más de las 15 que te da el double, tendrías que usar la clase BigDecimal de java.

Saludos.

10
Java: Librerías / Puñetitas con Hazelcast. Map de List
« on: Julio 08, 2018, 05:22:39 am »
Si hago esto

Code: [Select]
Map<String,List<Cosa>> map = hzInstance.getMap("myMap")
map.put("myKey", new ArrayList<Cosa>());
// Hasta aqui todo bien.

map.get("myKey").add(new Cosa());
//Pues no, resulta que map.get("myKey").size() es cero.

// Para que funcione bien hay que hacer esto
List<Cosa> cosas = map.get("myKey");
cosas.add(new Cosa());

// Y hay que añadir la lista entera para que se entere
map.put("myKey",cosas);

No sé si me convence, es fácil olvidarse de este detalle mientras se codifica....

11
Un par de enlaces interesantes que me he encontrado

10 mejores prácticas
5 mejoras prácticas

¿Serán 15 en total?

12
Hola:

Después de borrar mueves todas las filas que hay detrás una fila antes. Pero no "mueves", sino que copias "machacando". La última fila sigue estando porque no la borras de ninguna manera, así que sigue estando.

O rehaces el array con una fila menos, o "marcas" de alguna manera la última como que tiene datos no válidos y no deben pintarse.

Saludos.

13
Java JSE / Re: VALIDAR NÚMEROS DECIMALES
« on: Mayo 03, 2018, 07:14:42 pm »
Hola:

Una vez pones la variable "hayPunto" a true ... nunca más la vuelves a poner a false, por lo que las siguientes llamadas siempre darán que hayPunto.

Saludos.

14
Java JSE / Re: Imágenes de Productos
« on: Abril 15, 2018, 07:11:47 pm »
Hola:

Lo ideal sería tomar la foto con un tamaño parecido al que quieras luego mostrar, así no habría muchos problemas.
No dices como haces el redimensionamiento. Una primera opción es hacerlo con un programa de dibujo externo (gimp o photoshop por ejemplo) que seguramente lo hagan bien para que no salgan rayas y eso.
La otra opción es hacerlo con java. En este enlace tienes una forma de hacerlo https://stackoverflow.com/questions/15558202/how-to-resize-image-in-java
Y hay varias alternativas, otra más simple es la siguiente: la clase Image de java tiene un getScaledInstance(), así que con algo como esto puedes hacerlo también

Code: [Select]
scaledImage = new ImageIcon(originalImage.getImage().getScaledInstance(size, -1, Image.SCALE_SMOOTH));
Saludos.

15
Hola:
No veo ningún 15.
Da la impresión de ser un problema en el formato de la cadena ...¿Qué versión de python están usando?
Saludos.

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