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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 [8] 9
71  Foros Generales / Noticias / Re: ¿De verdad podemos aprovechar en casa conexiones de más de 100 Mbps o es solo... en: 23 Enero 2016, 21:08 pm
El propietario de este foro tiene contratado servicios con OVH, por lo cual no lo tiene en casa, saludos.

Si que dispone de un servidor en su casa, obviamente no para el foro, pero para otros menesteres que tienen relación.

Te suena el servidor de teamspeak?
72  Foros Generales / Noticias / Re: ¿De verdad podemos aprovechar en casa conexiones de más de 100 Mbps o es solo... en: 23 Enero 2016, 15:01 pm
Depende del uso que se le quiera dar.

Para un usuario normal, con 50Mbps de bajada y 5Mbps de subida , ya hay mas que suficiente. Para mi caso o incluso el caso del propietario de este foro, que tenemos el servidor en casa, pues si que es interesante tener mas conexión, para poder recibir mayor numero de peticiones y en caso de que alguno se ponga a descargar un archivo (o incluso fotos grandes) no afecte a la velocidad de la conexión.
73  Programación / Programación C/C++ / Re: [Sockets] Conexiones múltiples de clientes a servidor. en: 22 Enero 2016, 23:59 pm
No me he leido tu codigo pero te comento lo que se suele hacer en todos los lenguajes

- Inicias un servidor que escuche un puerto.
- Esperas a recibir un Accept (esto te devolvera un filedescriptor en C que sera el socket abierto, o un Socket en Java)
- Pasas ese filedescriptor / socket a un thread, donde sera atendido

Para que te hagas una idea en C tengo algo asi

Código
  1.  
  2. while( 1 == 1 ) {
  3. client_socket = accept(server_socket, (struct sockaddr *) &client, &client_length);
  4. if (client_socket < 0) {
  5. close(server_socket);
  6. close(client_socket);
  7. } else {
  8. run_dozer_thread(client_socket);
  9. }
  10. }
  11.  

Donde run dozer thread

Código
  1. /**********************************************
  2. * @Nombre: run_dozer_thread
  3. * @Def: Funcion encargada lanzar el Thread del Dozer
  4. * @Arg: int socket_cliente
  5. * @Ret:   void
  6. **********************************************/
  7. void run_dozer_thread(int client_socket) {
  8. pthread_t thread_dozer_id;
  9. pthread_create(&thread_dozer_id, NULL, thread_manage_dozer, (void *)client_socket);
  10. }
  11.  
74  Programación / Programación C/C++ / Re: Sincronizacion de hilos en C (MUTEX) en: 22 Enero 2016, 23:51 pm
Pues sencillo, fuera de cualquier funcion, defines el mutex y lo inicializas

Código
  1. static pthread_mutex_t mutexZonaCritica = PTHREAD_MUTEX_INITIALIZER;

y luego dentro de las funciones, donde haya que sincronizar

Código
  1. pthread_mutex_lock(&mutexZonaCritica);
  2. // Codigo que solo haya de tocar un thread
  3. pthread_mutex_unlock(&mutexZonaCritica);

Cuando vayas a compilar, deberas añadir la libreria
-lpthread
75  Programación / Java / Re: Retos de java en: 20 Enero 2016, 22:22 pm
Aunque es cierto lo que dices, realmente el motivo de que haya tanta diferencia se debe a

https://es.wikipedia.org/wiki/Cercan%C3%ADa_de_referencias

Vease, cuando tenemos que cargar datos de la memoria a la cache, no solamente se carga la variable que hemos pedido, si no que se carga un bloque entero ya que se entiende que accederemos a la direccion cercana. El problema es que cuando recorremos un array de la segunda forma (y es un array grande) la siguiente posicion a la que vamos a acceder no esta en el bloque que ya hemos cargado, por lo que el sistema tiene que cargar el nuevo bloque, y asi por cada nueva lectura, haciendo que la memoria cache que sirve precisamente para optimizar no sirva para nada.

En el caso de una lectura normal, como las posiciones que leemos estan en el mismo bloque, es mas rapido leerlas puesto que leemos de la cache y solo cargamos un bloque cuando ya hemos terminado el otro.

No?

76  Programación / Java / Re: Retos de java en: 20 Enero 2016, 17:23 pm
Justo he publicado un post en mi blog. Mas que un problema de programación es un problema "raro", que a mi me dejo bastante flipado.

Os dejo el link
http://www.driverlandia.com/importancia-de-como-recorrer-una-matriz/

A ver si sacáis porque sucede esto :D, aún así os dejo el código aquí.

Código
  1. import java.util.Random;
  2.  
  3. public class StrangesArrays {
  4. int MAXcols = 10000;
  5. int MAXrows = 10000;
  6. Random rd;
  7. int[][] MATRIX = new int[MAXrows][MAXcols];
  8. int cantidad = 0;
  9. public StrangesArrays() {
  10. rd = new Random();
  11. this.initalizeMatrix();
  12. }
  13.  
  14. public void initalizeMatrix() {
  15. for (int i=0; i<MAXrows; i++) {
  16. for (int j=0; j<MAXcols; j++) {
  17. this.MATRIX[i][j] = this.getRandom();
  18. }
  19. }
  20. }
  21. public int getRandom() {
  22. return this.rd.nextInt(200);
  23. }
  24.  
  25. public long recorreFilasColumnas(int value) {
  26. cantidad = 0;
  27. long tsStart = System.currentTimeMillis();
  28. long tsStop = 0;
  29. for (int i=0; i<MAXrows; i++) {
  30. for (int j=0; j<MAXcols; j++) {
  31. if ( this.MATRIX[i][j] == value ) { cantidad++; }
  32. }
  33. }
  34. tsStop = System.currentTimeMillis();
  35. return (tsStop-tsStart);
  36. }
  37.  
  38. public long recorreColumnasFilas(int value) {
  39. cantidad = 0;
  40. long tsStart = System.currentTimeMillis();
  41. long tsStop = 0;
  42. for (int i=0; i<MAXcols; i++) {
  43. for (int j=0; j<MAXrows; j++) {
  44. if ( this.MATRIX[j][i] == value ) { cantidad++; }
  45. }
  46. }
  47. tsStop = System.currentTimeMillis();
  48. return (tsStop-tsStart);
  49. }
  50.  
  51. public static void main(String[] args) {
  52. StrangesArrays test = new StrangesArrays();
  53. System.out.println("Time outer rows - inner cols: "+test.recorreFilasColumnas(10));
  54. System.out.println("Time outer cols - inner rows: "+test.recorreColumnasFilas(10));
  55. }
  56. }
77  Comunicaciones / Redes / Re: duda de comando de redes cmd en: 6 Enero 2016, 22:14 pm
Suponiendo que ese comando funcionara, cosa que ahora no puedo probar. Si tienes una interfaz llamada LAN, hara ipconfig /renew a la interfaz llamada LAN.
78  Programación / Desarrollo Web / Re: Borro archivos de mi servidor y todo sigue igual como si no hubiese borrado nada en: 4 Enero 2016, 14:08 pm
Aquí ya no te puedo asegurar, pero creo que la galeria de Avatares, significa que el usuario pueda subir sus avatares y tener unos cuantos subidos para cambiarlos. De manera que tenga una galeria propia para guardar los que quiera, y luego poder cambiarlo desde ahi.

Pero como digo, esto ultimo no estoy del todo seguro puesto que no lo he usado
79  Programación / Desarrollo Web / Re: Páginas en php y sql en: 4 Enero 2016, 13:09 pm
No entiendo porque no quieres usar JQuery -> Datatables

- Te evitas peticiones al servidor por cada pagina que visitas
- Evitas que el servidor haga peticiones a la SQL
- La carga del procesado la ejecuta el cliente (evitas carga en el servidor)

80  Programación / Desarrollo Web / Re: Borro archivos de mi servidor y todo sigue igual como si no hubiese borrado nada en: 4 Enero 2016, 13:04 pm
PHPBB tiene una cache propia que genera en el servidor. En el panel de control de PhpBB si te fijas hay un boton que pone "Purge cache"



Yo cuando monte por primera vez el foro, me vi negro hasta darme cuenta de lo que estaba pasando.

La cache lo que hace es que la primera vez que alguien visita la web, se genera un HTML con todo ya procesado, de esa forma cuando viene un segundo usuario a la misma pagina, no hace falta que se vuelva a procesar la consulta a la base de datos, ni procesar el php, de forma que la carga del servidor es menor
Páginas: 1 2 3 4 5 6 7 [8] 9
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines