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


 


Tema destacado: Java [Guía] Patrones de diseño - Parte 1


  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 25 26 27 28 29 ... 65
131  Programación / .NET / Re: Encontrar salas de chat con C# en: 6 Julio 2017, 06:16
Un servidor que crea salas? Y si uno quiere una sala nada mas?
Qué funciones crees tú que tiene el servidor????.
Colectar clientes y salas. Los clientes existen, no se crean pero al caso los loguea/conecta (que es conceptualmente lo mismo), ...pero
...y las salas?... no son entes propios o sí?... qué crees tú que son las salas?.
No existen en ninguna parte. Las crea (virtualmente) el servidor a petición de un cliente (si el diseño del servidor permite que cualquier cliente pueda crearlas (o solo clientes con determinados privilegios (los llamados administradores)).

Una sala al fin y al cabo, no es más que un selección de clientes... una colección de clientes, con unas simples propiedades... desde el punto de vista programático, es así de sencillo, instancias de una colección específica, que reúne clientes y comparten eventos a los que todos los clientes que tienen una referencia de esa instancia, están suscritos, y entre sus propiedades puede estar por ejemplo el nombre de la sala... NumeroMaximoUsuarios, cantidadUsuarios, o métodos como AliasDelPropietario, CambiarPrivilegiosDeCliente, ExisteCliente, Addcliente, RemoveCliente, etc...

Tomemos como ejemplo Sb0t y Ares para no confundirnos mas:
Sb0t deberia crear varias salas por defecto? Que yo sepa, Sb0t no hace eso.
Desconozco, lo que haga tal o cual programa. La pregunta no debe ser qué hace tal programa, la pregunta debe  ser qué quieres hacer tú... Si lo que quieres es copiar a otros programas, entonces hazte con una copia del código y estudialo a fondo. Si lo que quieres es diseñar tu propio chat bajo tus propios criterios, pués adelante...

Ares, el lado del cliente no crea salas. Sino no seria cliente, sino servidor.
Insisto... ¿qué quieres hacer?. copiar lo que hace otro programa?... si es que sí busca su código... de todas maneras, las cosas tiene diferentes maneras de resolverse y pensar en copiar lo que hace un programa por que sí, es algo patético. Yo jamás hago algo basado en el hecho de que 'es lo que hacen los demás', como programador, cuando hago algo, lo hago convencido de que es lo mejor que s epuede hacer (dados los recursos de que se dispongan (como el tiempo))... conformarse con copiar, es aspirar... a nada, una copia jamás mejora un original, entonces por qué nadie va a usar una copia teniendo disponible el original, si la copia es mucho peor...

Si quieres crear un chat, no tienes por qué copiar todos y cada uno d elos detalles que tengan otros, lo razonable es que tú tengas ideas propias que puedna aportar soluciones o novedades que incluyan mejoras o diferencias significativas que se ditingan del resto... hacer un clónico solo por hacerlo, suele ser una pérdida de tiempo... y casi siempre es mucho más ineficiente.

----
en fin yo te digo como lo plantearía:

Si tienes la lista de usuarios-clientes conectados global, esa lista es privada. Puede haber una petición para que un cliente obtenga la lista de salas, mejor si cuando se conecta, se la entrega, también un actualización cuando se crea una nueva sala.

Crearía una función para que un cliente (o solo aquellos con determinados privilegios), puedan crear salas, con un evento para actualizar la lista de salas a todos losclientes (quizás determinadas salas solo estén disponibles para los administradores, o bien que requiera supervisión de un administrador, la 'publicación' de una nueva sala. Y una función para que un usuario se mueva de una sala a otra.

La sala como te he dicho, no es más que una instancia de una colección, que almacena básicamente clientes. Y que entre ellos se interconectan porque comparten la misma referencia a dicha instancia. Todo controlado por eventos...

Pero tú mismo, si quieres imitar a otros programas, lo mejor es que te hagas con el código de alguno...
132  Foros Generales / Foro Libre / Re: Corea del Norte anuncia el "éxito" del lanzamiento de su primer misil interconti en: 5 Julio 2017, 14:48
mmmm... lo que dijimos tiempo atrás... no superó terreno por encima de Japón, ni tampoco llevó la dirección de las Kuriles. Es 'empujar' el balón solo una patada más allá. Eso sí muy medida la patada... que es lo que cabría esperar.

es como cuando inflas un globo y piensas que en cualquier momento va a reventar y se lo pasas a otro, ese otro, añade un 'minisoplido' para que no se le reviente a él y rápido se lo pasa a otro... al final reventará, por supuesto, es sólo cuestión de tiempo, de cuantos minisoplidos aguanta. Luego que reviente, habrá que atenerse a las consecuencias, porque no podrá quedar indemne.

China y Rusia, cuando llegue la ocasión tendrán que CHUP4R53L4 a USA.
¿Irán, quien C0ñ0 es Irán y qué pinta aquí?.

Armas nucleares hay más de 30 países que las tienen, por desarrollos propios, al margen de aquellos que las tienen por tener bases amigas en su territorio.
133  Programación / .NET / Re: Encontrar salas de chat con C# en: 5 Julio 2017, 14:36
Como os gusta complicaros la vida...

Vamos a ver, quién crea la sala?.
en teoría debería crearla el servidor, de entrada debería crear varias salas por defecto, y luego permitir a los usuarios crear otras salas. Por tanto el cliente que quiera crear una sala, debería hacer una petición al servidor, pasándole los parámetros de la sala... nombre delcreador, nombre d ela sala, máximos clientes en la sala, tipo de permisos o privilegios, si es visible a todos o solo admite clientes por invitación, etc, etc, etc... (lo que se te ocurra que queiras que haga tu chat).
Con esa petición, el servidor comprueba dichos parámetros (que sean válidos y dentro delrango permitido) y que no exista ya una sala con ese nombre o que no se haya alcanzado el límite máximo de salas... y en respuesta devuelve al cliente si la sala fue creada o no, y si fue creada, el canal... además actualiza la lista de salas, que entrega a todos los clientes en cuanto pueda...

Pero básicamente si tu estás creando un chat, son cosas que decides tú, quién cuándo y cómo se hace qué... pués eres tú quien lo diseña.
134  Foros Generales / Noticias / Re: Este ordenador se formatea automáticamente si es hackeado en: 5 Julio 2017, 03:06
1.700 euros por formatear... Vaya, a donde ha llegado la tecnología.  :laugh: :laugh: :laugh: :laugh:
135  Foros Generales / Noticias / Re: Corrompen al chatbot de Microsoft y despiertan su islamofobia en: 5 Julio 2017, 03:03
jajaja.. pero es que esto es como un niño, con algo de memoria, pero insuficiencia de inteligencia... al final su forma de ser dependerá de la gente que le rodea. Si son ceporros, el niño será un ceporro, si son agresivos, el niño aprenderá a ser agresivo... al menos un niño, puede en algún momento futuro, tomar decisiones drásticas de cambio...

El IA-bot, necesita hacer terapia con el psicólogo...  :laugh: :laugh: :laugh: :laugh: como les pasa a algunos niños, para soacializar y no ser extremista.
136  Foros Generales / Foro Libre / Re: DICCIONARIO DEFINITIVO en: 4 Julio 2017, 14:30
... no tengo ningun diccionario definitivo, ... podríamos conseguirlo entre todo los usuarios de este foro
No existe ni existira jamás un "diccionario definitivo".  Las razones son tan obvias, que no merece el esfuerzo de explicarlo.

según lo poco que se "para conseguir el diccionario de combinaciones es necesario poner siertas letras,números o signos para que una computadora los pueda combinar ejem: A,B,C = {(A,B);(A,C);(B,.......etc}. Y así con todas las combinaciones posibles

 ;-) ;-) ;-)
Pero esto se estudia con 12-14 años... luego la gente lo olvida y cuando lo vuelve a ver años más tarde lo considera más complejo... porque olvidó las sencillas matemáticas aplicadas al caso.

LA IDEA que tengo es ... por lo (que) podremos encontrar fácilmente todas LAS COMBINACIONES POSIBLES, así tendremos el diccionario mas completo en ESP.
Fácil, difícil... bailas entre las ideas... más abajo te pongo un link...

Obviamente no sera muy fácil ni muy rápido que lo logremos pero mientras mas seamos mas rápido y sencillo sera el trabajo SE PUEDE LOGRAR, SI TODOS NOS UNIMOS
Fácil?. Es muy fácil... muy complejo para quien tiene la mente enmarañada (como sucede con cas todo en programación). Rápido?. Depende del alcance que se le quiera dar. Se pueden sacar muchos, pero muchos millones por segundo...

mmm.... mírate este hilo: https://foro.elhacker.net/abril_negro/abril_negro_spok_simple_production_of_keys-t468239.0.html
Ahí se hace un extensivo trabajo extremadamente sencillo, para generar permutaciones, se aclaran muchas cosas y hay mucho cóodigo... vamos todo o más de lo que quieres hacer tú, pero con código eficiente. 

p.d.: Esto me recuerda que tengo pendiente una entrega más sobre el tema... lo tenía olvidado.
137  Programación / .NET / Re: GDI+. Hacer zoom respecto a la posición del Mouse en evento MouseWheel de un Pic en: 4 Julio 2017, 05:58
Ya te lo ha explicado bien en el primer mensaje...
si eres capaz de escalar una imagen y eres capaz de desplazarla (pegarla) en otra posición, consigues lo que quieres.

Un sencillo ejemplo (yo en pseudocódigo, así cualquier que lea lo puede trasladar al lenguaje que precise...)

Código:
// Da igual si es una imagen o una captura de la pantalla, ventana, control, etc...
Funcion ZoomEnXY( entero X, entero Y, fraccion Zoom, grafico Imagen)
    fraccion dX, fraccion dY
    grafico ImgZoom
    
    // 0º Es realmente necesario?
    si zoom=1.0 luego Devolver //nada que cambiar.

     // 1º primero obtienes una imagen escalada al zoom indicado.
    ImgZoom = ZoomImg(Zoom, Imagen)

    // 2º Ahora toca cordenar la imagen en el mismo punto que se pulsó.
        // 2.1 X e Y deben ser cordenadas relativas en la imagen (si ya lo son, se puede omitir).
    X = (X - Imagen.Left)
    Y = (Y - Imagen.Top)
      
        //2.2 Escalamos las cordenadas relativas (x,y).
        // Esto es, dónde está el pixel en la imagen escalada, donde se pinchó en la original?
    dX = (Zoom * X)
    dY = (Zoom * Y)
        // Esto quiere decir que una vez la imagen se coloque en el mismo punto, dX y dY
        //sería la cordenada relativa de la imagen coincidente con x,y relativa de la imagen original.
        // 2.3 ahora solo queda traducir la cordenada relativa de la imagen escalada a la cordenada absoluta.
        // O lo que es lo mismo, obtener el origen de la imagen, poscionado como 'eje' en dX,dY.
    X = ((Imagen.left + X) - dX)  // la absoluta (previa) - la relativa actual, no da el origen de la imagen escalada.
    Y = ((Imagen.Top + Y) - dY)  // Es una regla de tres. X= ... es lo mismo que decir ImgZoom.Left = ...
    
    // 3º Finalmente pegar la imagen en la nueva posicion.
    GraficoDibujar(X, Y, ImgZoom)  
Fin Funcion


Un código más limpio podría relativizar el asunto de las cordenadas derivándolo a otra función...
Código:
Funcion ZoomEnXY( entero X, entero Y, fraccion Zoom, grafico Imagen)
    grafico ImgZoom
    
    // 0º Es realmente necesario?
    si zoom=1.0 luego Devolver //nada que cambiar.

     // 1º primero obtienes una imagen escalada al zoom indicado.
    ImgZoom = ZoomImg(Zoom, Imagen)

    // 2º Ahora toca cordenar la imagen en el mismo punto que se pulsó.
    X = TrasladarOrigen(X , Imagen.Left, Zoom)
    Y = TrasladarOrigen(Y , Imagen.Top, Zoom)
    
    // 3º Finalmente pegar la imagen en la nueva posicion.
    GraficoDibujar(X, Y, ImgZoom)  
Fin Funcion

La función que calcula la nueva posición en un solo paso
Pero mejor entenderlo bien más arriba, paso a paso, no usarlo sin entenderlo.
Con copiar y pegar no se aprende...
Código:
entero = Funcion TrasladarOrigen(entero Distancia, entero Posicion, fraccion Zoom)
    Devolver = (Distancia - ((distancia - Posicion) * Zoom))
Fin Funcion
138  Foros Generales / Foro Libre / Re: Que ha pasado exactamente en Venezuela esta vez??? en: 3 Julio 2017, 02:52
El medio de permanecer en el poder, es convencer a otros que luchen por él... ¿cómo?.

Otorgándoles supuestos beneficios como si fueran derechos, para que entusiasmados ellos, sean quienes defiendan a ultranza (por no decir a muerte) esos 'derechos adquiridos'...
No es distinto a aquellos tiempos antemedievales donde se sacaba a varios al patio, se les tiraba un trozo de carne y se les decía: "el que quede vivo al llegar la noche, cenará en mi mesa 100 trozos como ése y beberá todo el vino que pueda beber"... así que el ser animalizado, se lanza a muerte contra los otros... sin saber que tras la cena, él mismo sería el objeto de diversión y perversión para los tiranos.

Históricamente esto es lo más bajo y siniestro a lo que un tirano puede llegar operando precisamente con la ignorancia y la nula rendición de espíritu de la 'plebe' (digo plebe, en la forma del seguidor que sigue un camino, sin conocimiento ni sentimiento propio alguno, solo ciego sordo y loco, esperanzado en la promesa de otro).
139  Foros Generales / Noticias / Re: Microsoft anuncia Windows Autopilot, te contamos todo lo que debes saber en: 1 Julio 2017, 05:40
jajaja.. resulta gracioso...
Al final viene a ser lo mismo que se ha venido haciendo en muchas empresas, cuando se compra una remesa de equipos (todos iguales y la siguiente también), se instala el primero y se configura por completo y finalmente se crea una imagen del disco duro... en los siguientes equipos luego es solo volcar la imagen al disco y ya está.

Ahora que si ellos le ponen un nombre nuevo y lo sirven a la mesa como si fuera alguna novedad novísima nunca visto, pués vale...

Me recuerda un viejo vídeo de Benny Hill, que servía un vino... lo probaban, no les gustaba hacía que iba a cambiarlo por otro, le cambiaba la etiqueta, volvía y ahora si les parecía bueno...  :laugh: :laugh: :laugh:
140  Foros Generales / Noticias / Re: ¿Tiene sentido una pantalla de 120 Hz en un móvil? en: 1 Julio 2017, 00:18
La frecuencia de refresco es clave y tiene su muchas utilidades que más o menos todo programador conoce...

Aparte de eso, ya como usuario, también se agradece que haya flexibilidad. Recuerdo que hace un par de décadas, se me cansaba mucho la vista con el monitor, entonces eran todos CRC, de repente un día decidí cambiar de 60 a 75hz. y el problema desapareció, ni cansancio ni dolor de cabeza.

Probablemente aunque siempre asumimos que nuestro cerebro funciona así o asá, hay pequeñas diferencias entre cada uno de nosotros que son lo que nos acomoda.

El modo más fácil de comprobarlo, es tomar una foto, escanearla y luego decir a varios que gradúen el monitor hasta que los colores (solo los niveles RGB,  brillo y contraste) aparezcan idénticos a los que se ven en la foto, y cuando esté seguro que pare... veremos que lo frecuente es que todos varíen los controles en distintos grados y siempre pidiéndoles que se aseguren que son idénticos, no 'lo más parecido que puedan hacerlo', ya que eso sería indicativo de que no saben manejar los controles para lograr que sean idénticos a su vista. Así pués descartando dicho caso, lo que resta es la diferencia con que cada cual ve lo mismo que otro.
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 25 26 27 28 29 ... 65
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines