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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 [75] 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 ... 431
741  Programación / .NET (C#, VB.NET, ASP) / Re: Alinear textos derecha e izquierda en: 9 Agosto 2021, 16:52 pm
El textbox tiene su propiedad alineacion...
Ahora bien, me parece que tu quieres mantener una alineación 'múltiple' al mismo tiempo, tal cual aparece en los chats...

No has aclarado como debe aparecer verticalmente, es decir si el 'append' se realiza debajo de lo previo (quedando último mensaje abajo) o encima d elo previo (quedando lo último arriba dle todo).
Normalmente queda abajo, pero requiere scroll por parte del usuario. El caso es que esto debe queda claro antes de nada para desarrollar un sistema y no el otro.

Esto se puede hacer de varias maneras:
 - Mantener 2 controles, uno alineado a la derecha y otro a la izquierda, ambos deberían mantener un aspecto transparente de modo que uno no tape al otro, si no que los textos se solapen como si estuvieran en la misma área. La complicación aquí es mantener la verticalidad , un mensaje debado de otro. Esto se logra fácil y chapuceramente manteniendo sendos controles otro oculto, donde se pega primero y se contabilida las líneas que ocupa, luego al texto a pegas hay que endosarle dichos saltos de línea (tantos como líneas).

 - Mantener 1 solo control. Eliges una alineación (por ejemplo izquierda), cuando pegas el texto a izquierda no tienes nada más que hacer, pero cuando pegas el texto alineado a la derecha, debes calcular el espacio a añadir a la izquierda. Como consejo, se puede simplificar los cálculos si eliges una fuente monoespaciada (todos los caracteres tienen le mismo ancho), luego sabiendo el ancho del textbox, sabes cuantos caracteres caben en una línea. A la noche si estás interesado y saco un tiempito te pongo un sencillo pseudocódigo para esto...

 - Mantener 2 controles ocultos cada uno con su alineación. El textbox donde se ve la imagen en realidad sería ahora un control de imagen. Tú pegas el texto en cada control oculto (que además tienen el mismo ancho que el control de imagen), y luego recortas (copias) el gráfico generado en el textbox de turno, y lo pegas en el control de imagen. Si tiene un fondo este control el pegado debe ser con transparencias y para ello el fondo de los textbox deben ser del color a enmascarar en el control de imagen.

En cualquier caso, date cuenta que si el control donde se expone al usuario es modificable (el menos en ancho), cada vez que se modifique dicho ancho requiere volver a renderizar todo su contenido, por lo que para que sea efectivo, todo el texto debe irse guardando en un fichero, diferenciando lo que se alinea a un lado de lo que se alinea al otro...

Ejemplo
Como se guarda en el fichero:
Pedro:
Hola Juan, que harás esta noche?. Podríamos ir al cine...
Juan:
Hola Pedro, tengo toda la noche ocupada

Como se ve en la interfaz:

--------------------------------------------
Pedro:
Hola Juan, que harás esta noche?. Podríamos 
ir al cine...
                                       Juan:
                Hola Pedro, tengo toda la no
                                 che ocupada
--------------------------------------------


'Pedro:' y 'Juan:' (+ solo el salto de línea), hacen en el ejemplo el identificador de alineación en el fichero...
742  Programación / Programación General / Re: Problema del viajante de comercio - Branch and Bound en: 9 Agosto 2021, 16:04 pm
Citar
Aca te mando un tabla donde la primer columna es la distancia, en la segunda una de las ciudades y la tercera es la otra ciudad que une.
Ese sistema es muy laaaaaargo de definir y sobretodo de interpretar al programarlo, pues va a requerir rellenar huecos...

Citar
623939   1   2
1341230   1   3
1652150   1   4
354682   1   5
...
No es necesario que me lo mandes por privado, son simplemente datos, cifras, nada que requiera discrección, de hecho si se deja público puede que alguien más se anime a hacer un cálculo por su cuenta... o pruebe con su propia solución... y te dé 'su solución'.

Una tabla es sencilla de hacer.... te paso un dibujo de ejemplo, pero tú debes anotarlo en un fichero de texto, que luego yo pueda leer desde el programa para cargar los datos... meterlo manualmente tiene el riesgo de error en la introducción de datos, aparte de lo tedioso de la introducción manual que supone cuando los datos son varios.

Un ejemplo y te comento brevemente:

Cada número supone el nodo enésimo representado por el número en su fila o columna. Nota que los números de fila y columna en la imagen están solo por claridad, en el fichero es preferible omitirlos, su orden de ubicación lo representa y es suficiente, si no, exige filtrarlo.

Cada fila representa un nodo (ciudad por ejemplo), y a su derecha se señala la distancia que hay de él a cada uno de los nodo bajo cuya columna se ubica.
En la imagen se observa que solo he rellenado las distancias que parten del nodo 4 al resto de nodos: Al nodo 1 hay una distancia de 15, al nodo 2 una distancia de 22, al nodo 3 una distancia de 36, al nodo 4 (a sí mismo), una distancia de 0 (pero que he marcado como 'x', todos los nodos a sí mismo tienen igual valor representan la violación de pasar 2 veces por él mismo...), al nodo 5 hay una distancia de 81, al nodo 6 de 54... ...y finalmente al nodo 13 de 61.

Como ves cada nodo ocupa una fila, lo que se traduce en el fichero de texto como una línea de texto, al final de la misma un salto de línea (no te preocupes si tu sistema exige salto de línea y avance de carro, o solo uno de dichos caracteres (diferencias entre win2, mac y Linux) ya lo determino yo mismo al cargar el fichero al programa).
Separa la distancia entre nodos en el fichero con un simple espacio (no te preocupes si en alguno pusiste 2 o más espacios, se filtrarán)...

Al final guarda el fichero, verifica que esté correctamente editado, lo comprimes en zip (para evitar que sea manipulado), lo subes a una página de descarga y publicas el enlace.

Si el texto fuera muy pequeño (pongamos 10-20 nodos), y las líneas no muy largas puedes copiar el texto una vez completo el fichero y pegarlo directamente aquí en el foro entre etiquetas code...
Si las líneas son muy largas, incluso las etiquetas code pueden forzar saltos de línea, cuando una línea exceda x tamaño de longitud, aunque supongo que con etiquetas code el tamaño de línea será más generoso (que con eqtiquetas quote o que sin etiquetas).
...si se cortan automáticamente las líneas, falsea la interpretación de los datos a la hora de leerlos con un programa que entiende que los datos de un nodo están en una línea.
Si a pesar de todo las líneas fueran tan largas, que quedaren cortadas, entonces es preferible subir el fichero a alguna página de descargas y poner enlace y listo.

Con el ejemplo de la imagen, el fichero se vería así (nota que como solo he rellenado la fila 4, debe suponerse 3 filas por delante, y muchas más por detrás).
Código:
...
15 22 36 x 81 54 21 7 13 103 84 52 20 61
...
743  Programación / .NET (C#, VB.NET, ASP) / Re: Comunicación SerialPort concurrente en: 9 Agosto 2021, 15:03 pm
Yo haría lo último que señalas... una cola de salida y otra de entrada.

Debes cuidar la cola de salida... para que no se envíen más peticiones por unidad de tiempo de las que está capacitado a recibir, ya que el puerto serie tiene sus limitaciones. Un temporizador que se  encargue de ver si tiene salidas pendientes, y si las hay enviar la primera en curso y si se espera una devolución asignarle un id y pasarlo a la cola de entrada, que cuando sea despachado del dispositivo (con el mismo id), se envía a la cola de entrada (devolución) que seguramente podrá actuar a una mejor velocidad, y una vez servida borrar de esta cola.

Con ambas colas evitas la necesidad del bloqueo que seguramente te haga perder notificaciones.

Es importante que recabes las especificaciones del puerto serie, para aprovecharlo al máximo... no saturarlo ni tampoco dejarlo inactivo y que caiga su eficiencia por debajo de sus capacidades.
744  Foros Generales / Foro Libre / Re: EE.UU. acusa a las autoridades chinas de colaborar con 'hackers' y de estar detrás de ciberataques en todo el mundo en: 8 Agosto 2021, 18:10 pm
No sé vosotros, pero yo desde hace muchos, muchos años, recibo en mi router (PC) peticiones de IPs chinas... constantemente. Ahora es más difícil rastrear el origen pero entonces (muchos años atrás), era más simple, no había tanta intencionalidad de ocultar el origen.

A menudo basta prender el PC y abrir la red, bloquear todas las peticiones de red salientes y solo esperar, y llegan peticiones.

Es algo más que sabido que China espía a todo el mundo por internet, da igual qué equipo tengas, da igual que programas tengas o no tengas, parece ser algo sistemático...
745  Informática / Hardware / Re: dudas sobre memorias en: 8 Agosto 2021, 18:02 pm
A la hora de almacenar informacion,¿todo se reduce a celdas con dos estados posibles?
Es decir,hay muchos tipos de celdas,pero al final en todos hay dos estados posibles,no?

¿se podria hacer una clasificacion de los tipos de celda? Deduzco que habrá varios criterios para hacer una clasificacion,habrá carios subtipos...

¿se podria hacer un intento?

Me salen 3 tipos:

Las celdas de la SRAM
Las celdas de la DRAM
Las celdas de los flipflops (biestables)

¿esas son las 3 grandes tipologicas de celda? Comentad y desarrollad mi "boceto".
MUCHAS GRACIAS
Las memorias son todo un mundo.
Sin embargo no debes confundir la tecnología de implementación con la teoría subyacente en las memorias.
Léete antes el hilo en wikipedia que te han citado, para aclarar ideas...

De entrada el biestable es la unidad básica de memoria... Luego es superado por diseños más 'costosos', por ejemplo el flip-flop JK, D, etc... antes del transistor de chip, se hacían con mallas poniendo toros de ferrita en las uniones, la fila y columna identificaban unívocamente cada bit, y con las líneas de Set o Reset se cambiada el estado.
https://www.electronics-tutorials.ws/sequential/seq_2.html

Nota que una cosa es la teoría y otra la tecnología... la tecnología es más barata cuando todos los circuitos combinacionales se hacen de un mismo tipo de puerta (puerta lógica), para realizar un chip... típicamente puertas NAND, incluso NOR, esto puede cambiar también con el desarrollo de nuevos materiales...
Así que la teoría es bueno estudiarla conforme a la simplicidad, considerando transistores. De ahí no será complicado saltar a las puertas para entender los circuitos combinacionales... Y cuando te resulte asequible entenderlo, luego avanza hacia los diseños de implementación en la tecnología de frabricación. Pero nota que éstas dependen mucho de la cuestión económica... elegir un material o un tipo de diseño suelen obedeces a cuestiones económica, sean monetarias o de características (que suelen influir finalmente en las económicas, salvo desarrollos teóricos de futuro en la investigación).
746  Programación / Programación General / Re: Problema del viajante de comercio - Branch and Bound en: 8 Agosto 2021, 17:23 pm
Bien...
Si crees haber creado un algoritmo que resuelva el problema, lo primero es asegurarte que es así.
Para ello genera muy diferentes ejemplos, calculas por fuerza bruta la solución y tiempo empleado y luego lo comparas con tu algoritmo (importa sobre todo que la solución sea correcta, pués el tiempo es de suponer que será más eficiente que la fuerza bruta, si esto último no fuere así, no solucionaría nada, obviamente).
Cuando lo anterior quede satisfecho, intenta ponerte en contacto con un centro que tenga un superordenador, pregúntales si tienen datos de algún problema del viajero cuya solución hayan calculado, pídeles los datos para algo como 1000, 100.000 y 10 millones (por ejemplo), cuando lo resuelvas con tu algoritmo, dales la solución para que la comparen con la que ellos obtuvieron, si no coincide, pide la solución donde no coincide (la comparación en primera instancia sería la medida total, fallando, conviene tener como solución la ruta seguida, de modo que tú mismo puedas comparar si la suma de ellos es errónea, aunque pudiera ser que el problema fuere debido a la precisión de los decimales (es habitual esta discrepancia cuando se usa un PC y se compara el resultado con los obtenidos en un superordenador cuya coma flotante es muy superior), es decir que quede claro si la discrepancia es debida a la cuestión de la precisión o a un error en tu algoritmo.

- Si la solución coincide perfectamente, plánteate primero registrar tu algoritmo (al menos la propiedad intelectual, que quede acreditada a tu nombre), luego según lo que quiesieres hacer debes operar, si quieres que quede libre, solicita ayuda técnica para publicar un paper a los que te ayudaron en el superordenador... y si quieres obtener beneficios, podrías ponerte en contacto con grandes empresas.
Es muy conveniente antes de esto, intentar optimizarlo, pues no faltará quien partiendo de tu algoritmo haga unos simples cambios (a veces obvios) y reclamar que hizo una mejora sustancial sobre tu algoritmo (en general suele pasar a la historia el autor del algortimo más óptimo, especialmente si los menos óptimos, son además muy engorrosos de implementar).
Al margen de ello, el instituto Clay ofrece una recompensa para los 'Problemas del Milenio', creo recordar que éste (no exactamente el problema, si no que su resolución demostraría que los problemas NP son equivalentes a los problemas P y que por tanto pueden ser resueltos en tiempo polinómico). Por supuesto ese 'paper' debieras crearlo antes, porque sería lo que al final entregarías para reclamar el premio. (prize.problems@claymath.org , admin@claymath.org Nota para Admins, no borrar emails, son públicos)

- Si la solución no coincide (y ya probaste que no fue debido a error en la precisión de decimales), intenta escrutar donde pudiera estar el problema y tratar de arreglarlo. Si lo consigues, considera el paso anterior.

Si la solución no coincide, y no consigues resolverlo, intenta al menos determinar hasta que tamaño tu algoritmo resulta válido, seguramente todavía tenga interés un algoritmo que resuelva eficientemente (la fuerza bruta es muy ineficiente), para un número medio de nodos (pongamos entre cientos y pocos miles, pues cosas como semáforos, paradas de buses, etc... andan en esos términos). Simplemente sería un 'algoritmo menor del agente viajero' y a buena fé podría dar pistas a otros para intentar partiendo del mismo una solución total.

Considera que aunque se diga 'fuerza bruta' a menudo es razonable no practicarla en su totalidad, si no que puede ser podada... por ejemplo mi intuición me dice que en la práctica si los nodos tienen una distribución uniforme, bastaría con considerar para cada nodo la raíz cuadrada de los nodos, luego estos se escogerían entre los x más cercanos al mismo.
Resulta obvio lo absurdo de considerar cualquier ruta cuyo tramo parcial consista en ir de un nodo al nodo más lejano a éste, lo cual se puede descartar para todos los nodos, igualmente podría decirse lo mismo para el penúiltimo más lejano, etc... no queda claro el punto donde esto deja de ser cierto (ya digo que mi intuición me señala que es la raíz cuadrada aprox. para una distribución más o menos uniforme, como regla general).

Eso sí... prueba también con nodos cuya posición sea elegida al azar dentro de un área dada, para garantizar que no hay cierto vicio en los mapas seleccionados.

Tengo por ahí un programa de grafos para resolver determinados problemas, creo que se podría ajustar perfectamente para hallar soluciones por fuerza bruta (en realidad cortocircuita una ruta cuando la suma de un nodo supera la longitud de un trayecto que previamente ha sido más corto). Quizás tuviera que reajustarlo, porque creo recordar que lo hice para operar con pesos de valor entero (no con decimales)... Además tampoco precisa recorrer todas las rutas, ya que A-B-C es equivalente a C-B-A, a lo sumo precisa explorar = (((n-1)*2)/2) rutas.
...para nodos de pocas decenas calcularía perfectamente la solución en un tiempo asumible, así que si precisas comparar tus resultados, basta que me pases un mapa (una tabla de los nodos con las distancias al resto de ellos). Así se podría comparar si efectivamente tu algoritmo genera la solución óptima.
747  Foros Generales / Dudas Generales / Re: Pregunta irrelevante, los pythoneers/pythonistas suelen usar los ; o los () ? en: 7 Agosto 2021, 18:32 pm
stmt_list     ::=  simple_stmt (";" simple_stmt)* [";"]

Hecha la aclaración, conviene otra aclaración:
Al final de sentencia es opcional. Lo que atiende básicamente a la consulta del hilo.

Si bien es opcional, creo que hace el código más ordenado, pero me pregunto si está mal visto o algo...
No entiendo donde ves que le dé más orden... Es una imposición 'no natural'.
La naturaleza del lenguaje, es el salto de línea. Incluso una línea en blanco de por medio, favorece 'ese orden' que buscases.

Históricamente, era una conveniencia, porque cuando se creó había un problema de memoria disponible (para la compilación e interpretación de los programas), entonces separar contrucciones mediante un solo carácter (que no incluyese ambigüedad, esto es, que no estuviere ya en uso entre los caracteres imprimibles), era una solución óptima frente al caso en otros lenguajes 'end sentencia', ...pero que pasado el tiempo y la ganancia en la memoria, no solo es ridículo si no fuente de problemas absurdos (especialmente entre los principantes, aunque no descarta a nadie).
748  Foros Generales / Noticias / Re: Apple escaneará automáticamente las fotos del iPhone y iCloud en busca de pornografía infantil en: 7 Agosto 2021, 18:09 pm
...luego está el problema de fotos de niños que son legales...
pongamos por ejemplo, esas fotos que los padres sacan a sus bebés, o cuando teniendo ya algunos añitos, los bañan desnuditos e igualmente les sacan fotos que suben al album famliar... Se suma cuando se saque foto a una madre con su hijo lactando...

¿Cómo distinguirá el algoritmo empleado una foto familiar de una foto de pedofilia en estos casos?.
749  Programación / Programación General / Re: Problema del viajante de comercio - Branch and Bound en: 7 Agosto 2021, 15:54 pm
... no existe ningun programa que lo resuelva de manera eficaz, ademas de la fuerza bruta?
Es decir que tarde lo que tarde no hay programa que siempre encuentre la solucion mas optima?
No. Es un problema no resuelto.
No existe ningún algoritmo conocido al margen de la fuerza bruta que garantice la solución correcta.
Nota que el diseño de un algoritmo que lo resuelva debe resolver todos los casos (para ser tenido como tal), y no uno que solo resuelva casos demasiado simples (para estos casos siempre podrá crearse un algoritmo eficaz y aceptable en tiempo).

Se recurre a heurísticas (aproximación a la solución, pero sin poder saber realmente si es la solución real), como te comentaba al señalarte:
La eficacia en estos casos están basado en heurísticas y ahí es muy dependiente de los ejemplos usados.
750  Seguridad Informática / Seguridad / Re: Adwcleaner me encuentra repetidas entradas "maliciosas" o no y que no se eliminan! en: 4 Agosto 2021, 16:00 pm
¿Por qué te empeñas en usar programas que no entiendes????.

Pretendes que los programas actúen de modo automático y adivinen que es lo que tú pretendes hacer y operen en consecuencia???. Un buscado necesitará como mínimo que se le indique qué ha de buscar, el donde se puede autoatizar si por defecto es 'en todo'.


Vamos, que si en vez de programas fueran aviones, te habrías matado ya 500 veces  :silbar: :silbar: :silbar:

En tu caso, no instales programas que ya suple el Sistema Operativo (windows). Y si al final decides instalarlo, lo mínimo es que aprendas a usarlo, si no para qué instalarlo...
Páginas: 1 ... 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 [75] 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 ... 431
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines