elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ... 48
81  Programación / Java / Re: ordenar matriz en: 4 Noviembre 2013, 15:52 pm
Solo al ver tu problema, se me ocurrieron muchas maneras de resolverlo.

Aunque lo primero que haría es demostrar cuando se demora tu problema en general. Si es que aún tienes intenciones de encontrar una manera más eficiente.

Dada una matriz m y n dimensiones y l el largo del vector donde l = m*n.

  • Pasar matriz a vector tiene un costo de O(m*n)
  • Ordenar vector tiene un costo O(l^2) (me da la impresión que usas burbuja, por el ciclo for anidado)
  • Pasar el vector a matriz tiene un costo de O(m*n)

En total, tu algoritmo tiene un costo de...  2 * O(m*n) + O((m*n)^2) osea O((m*n)^2)
Por lo que podemos apreciar lo más costoso, es ordenar el arreglo. Podrías usar Quicksort para hacerlo más eficiente.

Bueno con esto podrías empezar a buscar métodos más eficientes para tu algoritmo.

Saludos!
82  Programación / Java / Re: [JavaFX] VirusTotal Analyzer en: 4 Noviembre 2013, 15:01 pm
Con el animo de fomentar el conocimiento.

¿Como te conectas a Virus Total?
83  Programación / Java / Re: evaluacion postfija en: 29 Octubre 2013, 19:37 pm
¿Intentaste intercambiar el orden de las instrucciones?

Código
  1. op1 = pilita.pop();
  2. op2 = pilita.pop();
  3.  

Creo que por ahí anda el error.

Suponte tu que tienes esto en tu pila.
12/4
[12][4][/]

Luego haces
operator = pop() devuelve el '/'
op1 = pop() devuelve '4'
op2 = pop() devuelve '12'

Finalmente
resultado = op1 / op2 ( osea 4 / 12)


Saludos!
84  Programación / Java / Re: Eliminar argumento de evento en netbeans en: 29 Octubre 2013, 19:15 pm
No, no se puede. Porque así está hecha la arquitectura de los eventos en java y no se puede cambiar.
Lo que si puedes hacer y lo menciona Darhius en sus screenshots es que esa misma función que tiene ese argumento, invocar a otra que no tiene ningún argumento.

Saludos.
85  Programación / Java / Re: Mantener conexión abierta en servidor - conexión cliente servidor en: 29 Octubre 2013, 19:13 pm
Está mal planteado el código de tu servidor
Código
  1. package servidor;
  2. import java.io.*;
  3. import java.net.*;
  4. import java.util.GregorianCalendar;
  5. /*
  6.  * @author Cesar
  7.  */
  8. public class Servidor
  9. {
  10.    private static int PUERTO=5000;
  11.  
  12.    public static void main(String[] args)
  13.    {
  14.        String horaSistema, op="";
  15. int hora, minuto, segundo, cliente=0;
  16. boolean infinito = true, skCl=true;
  17.  
  18.        try
  19.        {
  20.            ServerSocket skServidor = new ServerSocket(PUERTO); // conexión hecha con el cliente.
  21.            System.out.println("Escuchando al Puerto "+PUERTO+" Esperando..");
  22.  
  23.            Socket skCliente = skServidor.accept();                         // aqui el prog. se detiene y espera(escucha) al prox cliente
  24.            ++cliente;
  25.            while(infinito)
  26.            {
  27.                //recibo e imprimo en pantalla el msje q recibo de 'Cliente' en
  28.                //infoEntrada -> informac. que entra - ingresa al servidor
  29.                InputStream auxIn = skCliente.getInputStream();
  30.                DataInputStream infoEntrada = new DataInputStream(auxIn); // se crea el objeto infoEntrada
  31.                op=infoEntrada.readUTF(); //recibe el texto: “HORA” “MINUTO” “SEGUNDO” “HORAMINUTO” “HORAMINUTOSEGUNDO”
  32.  
  33.                System.out.println("El Cliente numero "+Integer.toString(cliente)+" me esta solicitando.."+op);
  34.  
  35.                GregorianCalendar datoTime = new GregorianCalendar();
  36.                hora = datoTime.get(GregorianCalendar.HOUR_OF_DAY);
  37.                minuto = datoTime.get(GregorianCalendar.MINUTE);
  38.                segundo = datoTime.get(GregorianCalendar.SECOND);
  39.                //--------------------------------------------------------------
  40.                //Aqui validar el parametro que se recibe desde el cliente.
  41.                switch(op)
  42.                {
  43.                    case "HORA":
  44.                            op = "La hora actual es : "+hora;
  45.                            break;
  46.                    case "MINUTO":
  47.                            op = "El minuto actual es : "+minuto;
  48.                            break;
  49.                    case "SEGUNDO":
  50.                            op = "el segundo actual es : "+segundo;
  51.                            break;
  52.                    case "HORAMINUTO":
  53.                            op = "La hora y el minuto actual es : "+hora+" : "+minuto;
  54.                            break;
  55.                    case "HORAMINUTOSEGUNDO":
  56.                            op = "La hora el minuto y el segundo actual es : "+hora+" : "+minuto+" : "+segundo;
  57.                            break;
  58.                    case "salir" :
  59.                            op = "saliendo";
  60.                            break;
  61.                    case "SALIR" :
  62.                            op = "saliendo";
  63.                            break;
  64.                    default :
  65.                            op = "Opcion incorrecta";
  66.                            break;
  67.                }
  68.                //envia RESPUESTA al cliente
  69.                //infoSalida -> informac. que sale fuera del servidor
  70.                OutputStream auxOut = skCliente.getOutputStream();
  71.                DataOutputStream infoSalida = new DataOutputStream(auxOut);     // se crea el objeto infoSalida
  72.                infoSalida.writeUTF(op);
  73.                //--------------------------------------------------------------
  74.             }
  75.             skCliente.close();  /// **** AQUI ESTA EL TEMA ..ESTO CIERRA LA CONECC AL CLIENTE
  76.  
  77.        }
  78.        catch (Exception e)
  79.        {
  80.            System.out.println(e.getMessage());
  81.        }
  82.    }
  83. }

Interpreta con tu cerebro el flujo de tu programa.

Si no lo captas mira esta linea
Código
  1.  Socket skCliente = skServidor.accept();                         // aqui el prog. se detiene y espera(escucha) al prox cliente
Está rodeada de un try/catch no tiene ningún bucle o ciclo que indique que se repita.

Una arquitectura para manejar los nuevos clientes en los servidores seria algo así.

Código:
while(infinito)
    socket nuevo = accept()
    iniciar_un_nuevo_thread(nuevo)
endwhile
En resumen: Cada vez que un nuevo cliente se conecte, se creará un nuevo Thread por cada cliente. En cada Thread tu deberías colocar el codigo que tienes en el while (en el tuyo).


Espero que hayas entendido.
Saludos!
86  Programación / Java / Generador rápido de prototipos para Videojuegos. Ayuda!! en: 29 Octubre 2013, 18:30 pm
Buenas Tardes.

Bueno les cuento mi problema.

Estoy desarrollando un software que a partir de un archivo de configuración simple, crea el prototipo de un videojuego utilizando el enfoque Entidad-Comportamiento. El programa funciona de esta manera, toma el archivo de configuración crea el modelo en la memoria y luego escribe los archivos java para compilarlos. Sin embargo aunque compila todo bien, este falla a la hora de ejecutar debido que me faltan algunas cosas por desarrollar.

Bueno, yo no se si hay alguien interesado en este proyecto que me pueda ayudar. Cualquiera que esté interesado que publique su interés en este hilo.

De hace un tiempo que lo tengo publicado en github bajo la licencia BSD y hace otro tiempo más estuve probando el generador y lo publiqué en mi blog (Si se dan cuenta, está muy pobre en los assets, que es lo que me falta en el generador).

Bueno, eso es todo.
Saludos!
87  Programación / Java / Re: Generar archivo jar desde aplicacion? en: 1 Agosto 2012, 20:50 pm
Asumo que quieres crear un ejecutable jar, bueno te digo que investiges el uso de estas clases

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/jar/package-summary.html


Saludos!

88  Programación / Java / Re: FORK en java en: 1 Agosto 2012, 20:47 pm
Muchas gracias por las respuestas, esta claro que tb os sabeis la teoria, jeje.

Solo una cosa mas, a pesar de la inseguridad que se genera con los fork(), en alguna ocasion especifica, no seria interesante poder usar fork() ??

supongamos que tenemos un App concurrente, no seria interesante el poder hacerlo con procesos para darle independencia a cada proceso que se genere y asi su propio espacio de memoria?? (siempre y cuando no haya necesidad de compartir datos entre procesos, en tal caso seria obvio usar Threads)

no se si me he explicado bien...
pero el caso es, si yo tengo un App en el que cada hilo necesita "bastante memoria" y ademas no hay "datos compartidos entre hilos" seria mas interesante poder hacer fork(), no?? ademas se dotaria de mas potencia a la App, por ofrecerle mas memoria, no??

o estoy yo en un pensamiento erroneo ??

Gracias chicos!



En ese caso llamas otro Proceso (distinto) usando Processs

Bueno ahora con respecto a tu pregunta, no tengo que aportar xDDD
89  Programación / Java / Re: FORK en java en: 1 Agosto 2012, 03:23 am
Ahhh disculpa, no había entendido tu pregunta.
Entonces yo no puedo responderte a tu pregunta, tendrás que experimentar para ver si es equivalente al Fork.

Ahh una cosa más...
Si no mal recuerdo en esas conversaciones que he tenido con compañeros que ya no es muy recomendable usar Fork si no procesos hijos o Threads ya que estos ultimos comparten la memoria del proceso sin tener que crear otro proceso.

Saludos.
90  Programación / Java / Re: FORK en java en: 1 Agosto 2012, 02:32 am
No he visto algo parecido así en Java.
Buscando rápidamente en Google me tope algo así... tal vez te sirva
http://docs.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html

Saludos!
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ... 48
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines