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 ... 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [39] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 ... 238
381  Foros Generales / Foro Libre / ¿Alguien me traduce estas acciones? De un mod de otro foro hace años. en: 28 Junio 2024, 01:23 am


Apareció un tema titulado "Soy un Troll" que figuraba como creado por un usuario U, pero él decía que no lo creó. El moderador más activo, M1, dijo que no recordaba haberlo hecho. El admin A no participaba, casi. Otro moderador M2 tampoco y otro M3 dió esa imagen.

Todas esas acciones figuran como realizadas por M1. Asumiendo que la imagen no está editada y que no se ururpó la identidad de M1 (hubiera sido la única vez, es poco creíble) ¿qué significan esas acciones que se describen en la imagen? ¿demuestran que es culpable?

El asunto causó bastante revuelo en el foro, U pedía que se modifique el tema, decía no poder edtarlo él mismo, los mods tampoco lo modificaban, y M1 terminó dejando de ser mod.

Yo me quedé con la curiosidad de saber qué pasó realmente y revisando temas lo recordé, en aquél entonces no se me ocurrió preguntar aquí o no conocía este sitio.
382  Programación / Programación General / Re: Lograr exactamente X cambios random en una imagen. en: 27 Junio 2024, 02:18 am
Puse esto y el código tarda demasiado ¿sugerencias?
Código
  1. on (release) {
  2. // Los dibujos serán como el de encima de este botón:
  3. Dibujo = 1;
  4. ModificacionesRequeridas = 1;
  5. // Repetir para el dibujo 1, 2, etc:
  6. while (Dibujo < _level0.MaxCuadro+1) {
  7. // Este if es porque el dibujo a copiar no necesita...
  8. // ser modificado, eso sería como sustituirse por él mismo:
  9. if (Dibujo != _parent.ID) {
  10. Cuadradito = 0;
  11. // Repetir hasta que todo cuadradito se haya copiado:
  12. do {
  13. Cuadradito++;
  14. ColoraCopiar = new Color("_parent.Cuadradito"+Cuadradito);
  15. ColoraSustituirse = new Color("_level0.Dibujo"+Dibujo+".Cuadradito"+Cuadradito);
  16. ColoraSustituirse.setRGB(ColoraCopiar.getRGB());
  17. } while (Cuadradito<_level0.MaxCuadradito);
  18. // Los dibujos mutarán:
  19. // De cada dibujo copia, variar cuadraditos al azar,
  20. // de 1 hasta CuadraditosPorFila,
  21. // aumentando por dibujo hacia derecha y abajo:
  22. // Repetir hasta que se haya variado esa cantidad...
  23. // de cuadraditos:
  24. CuadraditosModificados = 0;
  25. do {
  26. // Para evitar que se modifique uno ya modificado,
  27. // los modificados se guardan en una lista,
  28. // y cuando se va a modificar uno se mira...
  29. // que no esté en la lista, sino se elige otro:
  30. Repetido = "No";
  31. do {
  32. NroDeCuadraditoaCambiar = random(_level0.MaxCuadradito)+1;
  33. PunteroParaLista = 1;
  34. // Ver si NroDeCuadraditoaCambiar está en la lista de modificados:
  35. while (PunteroParaLista <= CuadraditosModificados) {
  36. if (NroDeCuadraditoaCambiar == eval("CuadraditoModificado"+PunteroParaLista)) {
  37. Repetido = "Sí";
  38. PunteroParaLista = CuadraditosModificados+1;
  39. }
  40. PunteroParaLista++;
  41. }
  42. } while (Repetido == "Sí");
  43. CuadraditoaCambiar = "_level0.Dibujo"+Dibujo+".Cuadradito"+(random(_level0.MaxCuadradito)+1);
  44. ColoraSustituirse = new Color(CuadraditoaCambiar);
  45. // A esto lo convierto a String porque...
  46. // lo debo comparar con un string y es más fácil así.
  47. SavedeColoraSustituirse = ""+(ColoraSustituirse.getRGB());
  48. // trace ("SavedeColoraSustituirse: "+SavedeColoraSustituirse);
  49. // Repetir mientras el color no cambie:
  50. do {
  51. NuevoColor = _parent.PosiblesColores[random(_parent.PosiblesColores.length)];
  52. } while (NuevoColor == SavedeColoraSustituirse);
  53. ColoraSustituirse.setRGB(NuevoColor);
  54. // trace ("NuevoColor: "+NuevoColor);
  55. CuadraditosModificados++;
  56. // Agregar el cuadradito a la lista de modificados:
  57. set("CuadraditoModificado"+CuadraditosModificados, NroDeCuadraditoaCambiar);
  58. } while (CuadraditosModificados<ModificacionesRequeridas);
  59. }
  60. Dibujo++;
  61. if (ModificacionesRequeridas <= _level0.Resto) {
  62. ModificacionesRequeridas = Math.floor((Dibujo-1)/(_level0.DistintasMutaciones+1))+1;
  63. } else {
  64.    ModificacionesRequeridas = Math.floor((Dibujo-1-_level0.Resto*(_level0.DistintasMutaciones+1))/(_level0.DistintasMutaciones))+1+_level0.Resto
  65. }
  66. }
  67. }
383  Programación / Programación General / ¿Notan alguna falla? ¿y si se reseteara? Y quiero texto con scroll... en: 25 Junio 2024, 09:00 am
Código
  1. // Este programa genera una comparación simple y su evaluación, pero:
  2. // Debe haber alguna parte cuyo contenido no está definido.
  3. // Ejemplo: 1 < ... : true
  4. // Luego intenta asignar los contenidos faltantes.
  5. // Las siguientes funciones se usan en Resolvedor:
  6. function Comparacion() {
  7. trace("Probando: "+P1+" "+P2+" "+P3+": "+P4);
  8. if (P2 == "==") {
  9. Resultado = P1 == P3;
  10. } else if (P2 == "!=") {
  11. Resultado = P1 != P3;
  12. } else if (P2 == "<=") {
  13. Resultado = P1 <= P3;
  14. } else if (P2 == ">=") {
  15. Resultado = P1 >= P3;
  16. } else if (P2 == "<") {
  17. Resultado = P1 < P3;
  18. } else {
  19. Resultado = P1 > P3;
  20. }
  21. return Resultado+"" == P4;
  22. }
  23. function ModificarP1() {
  24. if (P1<10) {
  25. P1++;
  26. } else {
  27. Puntero++;
  28. // ¿Se puede modificar el contenido de otra parte?
  29. if (Puntero > Indefinidos) {
  30. // Sí, resetear esta y modificar esa:
  31. P1 = 0;
  32. eval("ModificarP"+eval("Indefinido"+Puntero))();
  33. } else {
  34. // No, indicar que el resolvedor se detenga:
  35. Continuar = "No";
  36. }
  37. }
  38. }
  39. function ModificarP2() {
  40. if (P2Valor<6) {
  41. P2Valor++;
  42. P2 = PosiblesSignos[P2Valor];
  43. Puntero = 1;
  44. } else {
  45. Puntero++;
  46. // ¿Se puede modificar el contenido de otra parte?
  47. if (Puntero > Indefinidos) {
  48. // Sí, resetear esta y modificar esa:
  49. P2Valor = 0;
  50. P2 = "==";
  51. eval("ModificarP"+eval("Indefinido"+Puntero))();
  52. } else {
  53. // No, indicar que el resolvedor se detenga:
  54. Continuar = "No";
  55. }
  56. }
  57. }
  58. function ModificarP3() {
  59. if (P3<10) {
  60. P3++;
  61. Puntero = 1;
  62. } else {
  63. Puntero++;
  64. // ¿Se puede modificar el contenido de otra parte?
  65. if (Puntero > Indefinidos) {
  66. // Sí, resetear esta y modificar esa:
  67. P3 = 0;
  68. eval("ModificarP"+eval("Indefinido"+Puntero))();
  69. } else {
  70. // No, indicar que el resolvedor se detenga:
  71. Continuar = "No";
  72. }
  73. }
  74. }
  75. function ModificarP4() {
  76. if (P4 == "true") {
  77. P4 = "false";
  78. Puntero = 1;
  79. } else {
  80. Puntero++;
  81. // ¿Se puede modificar el contenido de otra parte?
  82. if (Puntero > Indefinidos) {
  83. // Sí, resetear esta y modificar esa:
  84. P4 = "true";
  85. eval("ModificarP"+eval("Indefinido"+Puntero))();
  86. } else {
  87. // No, indicar que el resolvedor se detenga:
  88. Continuar = "No";
  89. }
  90. }
  91. }
  92. // Se repite en F2:
  93. function Resolvedor () {
  94. if (Comparacion()) {
  95. trace ("Solución hallada, ver respuesta.");
  96. Mensaje = Mensaje+"\n"+P1+" "+P2+" "+P3+": "+P4;
  97. gotoAndStop (3);
  98. } else if (Continuar == "Sí") {
  99. // Se modificará el candidato:
  100. eval(ModificadoraUsar)();
  101. } else {
  102. trace ("No se pudo hallar una solución.");
  103. gotoAndStop (3);
  104. }
  105. }
  106. PosiblesTiposDeContenido = ["Normal", "Indefinido"];
  107. PosiblesSignos = ["==", "!=", "<=", ">=", "<", ">"];
  108. // Generar los contenidos de las 4 partes hasta que alguno sea indefinido:
  109. do {
  110. Indefinidos = 0;
  111. // Parte 1 (cosa 1 a comparar):
  112. TipoDelParte1 = PosiblesTiposDeContenido[random(PosiblesTiposDeContenido.length)];
  113. if (TipoDelParte1 == "Normal") {
  114. Parte1 = random(10);
  115. } else {
  116. Parte1 = "...";
  117. Indefinidos++;
  118. set("Indefinido"+Indefinidos, 1);
  119. }
  120. // Parte 2 (símbolo comparador):
  121. TipoDelParte2 = PosiblesTiposDeContenido[random(PosiblesTiposDeContenido.length)];
  122. if (TipoDelParte2 == "Normal") {
  123. Parte2 = PosiblesSignos[random(6)];
  124. } else {
  125. Parte2 = "...";
  126. Indefinidos++;
  127. set("Indefinido"+Indefinidos, 2);
  128. }
  129. // Parte 3 (cosa 2 a comparar):
  130. TipoDelParte3 = PosiblesTiposDeContenido[random(PosiblesTiposDeContenido.length)];
  131. if (TipoDelParte3 == "Normal") {
  132. Parte3 = random(10);
  133. } else {
  134. Parte3 = "...";
  135. Indefinidos++;
  136. set("Indefinido"+Indefinidos, 3);
  137. }
  138. // Parte 4 (evaluación):
  139. TipoDelParte4 = PosiblesTiposDeContenido[random(PosiblesTiposDeContenido.length)];
  140. if (TipoDelParte4 == "Normal") {
  141. // Definir esta parte según las anteriores:
  142. // ¿Fueron definidas?
  143. if (Parte1 != "..." && Parte2 != "..." && Parte3 != "...") {
  144. // Sí, ver qué definición corresponde:
  145. if (Parte2 == "==") {
  146. Parte4 = Parte1 == Parte3;
  147. } else if (Parte2 == "!=") {
  148. Parte4 = Parte1 != Parte3;
  149. } else if (Parte2 == "<=") {
  150. Parte4 = Parte1 <= Parte3;
  151. } else if (Parte2 == ">=") {
  152. Parte4 = Parte1 >= Parte3;
  153. } else if (Parte2 == "<") {
  154. Parte4 = Parte1 < Parte3;
  155. } else {
  156. Parte4 = Parte1 > Parte3;
  157. }
  158. } else {
  159. // No toda parte fue definida,
  160. // definir esta al azar:
  161. Parte4 = random(2);
  162. if (Parte4 == 0) {
  163. Parte4 = "true";
  164. } else {
  165. Parte4 = "false";
  166. }
  167. }
  168. } else {
  169. Parte4 = "...";
  170. Indefinidos++;
  171. set("Indefinido"+Indefinidos, 4);
  172. }
  173. } while (Indefinidos == 0);
  174. Mensaje = Parte1+" "+Parte2+" "+Parte3+": "+Parte4;
  175. // Preparar variables, asignar valores a los contenidos indefinidos:
  176. // Parte 1:
  177. if (Parte1 != "...") {
  178. P1 = Parte1;
  179. } else {
  180. P1 = 0;
  181. }
  182. // Parte 2:
  183. if (Parte2 != "...") {
  184. P2 = Parte2;
  185. } else {
  186. P2Valor = 0;
  187. P2 = "==";
  188. }
  189. // Parte 3:
  190. if (Parte3 != "...") {
  191. P3 = Parte3;
  192. } else {
  193. P3 = 0;
  194. }
  195. // Parte 4:
  196. if (Parte4 != "...") {
  197. P4 = Parte4;
  198. } else {
  199. P4 = "true";
  200. }
  201. // Usado para variar qué contenido de P se modifica:
  202. Puntero = 1;
  203. ModificadoraUsar = "ModificarP"+Indefinido1;
  204. // Marca si algún cantenido puede modificarse:
  205. Continuar = "Sí";

Ejemplo:
8 ... ...: ...
Probando: 8 == 0: true
Probando: 8 != 0: true
Solución hallada, ver respuesta.

Otro ejemplo:
... > 4: ...
Probando: 0 > 4: true
Probando: 1 > 4: true
Probando: 2 > 4: true
Probando: 3 > 4: true
Probando: 4 > 4: true
Probando: 5 > 4: true
Solución hallada, ver respuesta.

¿Funciona bien siempre? ¿detectan algo en el código que podría generar fallas?

Si pongo un botón de resetear ¿habrá problema? Pondría las funciones en el frame 1, la comparación se generaría en el 2 y el resolvedor se repetiría en el 3; mi temor es que una variable no eliminada, que no estaba definida al inicio, cause un error.

Lo último: El programa muestra mensajes usando trace, el equivalente de print. Pero eso sólo funciona usando el editor de Flash. Quisiera que esos mensajes se muestren también en un swf o exe. El problema es si el mensaje tiene muchas líneas, no sé cómo ponerle scroll. Voy a mirar el tutorial pero si me dicen mejor.
384  Foros Generales / Foro Libre / Re: Alejandro Cáceres, el ‘hacker’ que dejó a Corea del Norte sin internet desde su casa: “Mi ataque fue respuesta a su en: 24 Junio 2024, 09:05 am
Estuvo tan bueno que no me detuve para escribir preguntas, en otro momento las escribo.
385  Programación / Programación General / Lograr exactamente X cambios random en una imagen. en: 22 Junio 2024, 09:54 am
Tras cliquear en el dibujo superior izquierdo, los demás quedan igual excepto que en este caso los de la fila 1 deben tener 1 diferencia (excepto el que fue cliqueado), los de la fila 2 deben tener 2, y así. Eso no sucede aquí:

Señalé que en la fila 1 hay 1 cambio donde debe, pero en la 4 a veces hay 4, 3, 2 o incluso puede haber 1 porque mi código debe ajustarse para eso ¿cómo?
Código
  1. // Repetir hasta que se haya variado esa cantidad...
  2. // de cuadraditos:
  3. CuadraditosModificados = 0;
  4. do {
  5. CuadraditoaCambiar = "_level0.Dibujo"+Dibujo+".Cuadradito"+(random(_level0.MaxCuadradito)+1);
  6. ColoraSustituirse = new Color(CuadraditoaCambiar);
  7. // A esto lo convierto a String porque...
  8. // lo debo comparar con un string y es más fácil así.
  9. SavedeColoraSustituirse = ""+(ColoraSustituirse.getRGB());
  10. // Repetir mientras el color no cambie:
  11. do {
  12. NuevoColor = _parent.PosiblesColores[random(_parent.PosiblesColores.length)];
  13. } while (NuevoColor == SavedeColoraSustituirse);
  14. ColoraSustituirse.setRGB(NuevoColor);
  15. // trace ("NuevoColor: "+NuevoColor);
  16. CuadraditosModificados++;
  17. } while (CuadraditosModificados<ModificacionesRequeridas);
Si precisan más código avísenme, eso es para modificar los cuadraditos de 1 dibujo, en otras partes se varía cual dibujo. El problema es que se modifica un cuadradito al azar, repetidamente, de modo que cada nuevo modificado puede ser alguno que ya haya sido modificado, por eso aunque en el código se hacen las modificaciones la cantidad de veces requeridas, en la práctica y a la vista pueden ser menos.

¿Debo crear una lista de los modificados y repetir si el nuevo modificado ya lo fue? ¿ha<y alguna alternativa más eficiente, o cómo hago eso? Ya se está repitiendo el cambio de color hasta que efectivamente ocurre (ya que el nuevo es random pero por eso puede ser igual al anterior; se repite para evitar eso), así que en lo posible no quisiera repetir tanta cosa...

Edit:
Acabo de ver que el 2ndo de la 2nda fila es totalmente igual al cliqueado, así que el código está peor de lo que pensé ¿cómo lo mejoro? O tal vez se modificó 1 cuadradito y luego se volvi´a modificar de modo que quedó como estaba, sería como lo que expliqué entonces, no sería un error extra, tal vez.
386  Informática / Hardware / Re: Cagadas de mosca en: 17 Junio 2024, 23:24 pm
No te servirá mi respuesta, en el aspecto técnico, pero como respuesta a una encuesta podría ser.

Rara vez lo limpio.

Pero también rara vez hay moscas aquí, siempre pongo tejido o algo.

Mosquitos sí de algún modo entran, pero difícil que se posen en la pantalla.

Lo que tiene son como gotitas de estornudo pero sólo las noto cuando está apagado, aunque hace poco tenía un fondo blanco y veía un aparente pixel amarillo pero nop, era una manchita que más o menos quité con la uña.

Creo que el problema de mi monitor es el polvo que entra por arriba y las telas de araña. Recientemente cuando lo encendí estaba rojizo en donde estaban las telas, así que las quité. Desde entonces al encenderlo está un poco rojizo ahí. Tal vez es por el Sol también, ni idea, en esa zona le da, en la otra no tanto.

Tengo que limpiarlo algún día pero, hay muchas otras cosas que debo o quiero hacer.
387  Media / Multimedia / Re: Cómo convertir imágenes jpg que contienen vídeo en: 17 Junio 2024, 21:13 pm
Pregunté a los demás sobre lo que dijeron.

Luego dije una posible explicación, no me hagas mucho caso en eso.

Según el video (en la derecha) la cámara es sm-g975f samsung, y al googlear eso me aparece Samsung Galaxy S10 Plus, pero yo ni siquiera tengo móvil (ni me interesa) así que no tengo mucha idea.
388  Media / Multimedia / Re: Cómo convertir imágenes jpg que contienen vídeo en: 17 Junio 2024, 20:17 pm
¿Eso de panorámicas lo logran poniendo datos extra en el JPG? :o ¿cómo es eso de "tienen una disposición y los campos exif adecuados"?
https://es.wikipedia.org/wiki/Exchangeable_image_file_format
No sé pa qué guardan todo eso, en el futuro van a guardar dónde se tomaron las fotos y habrá muchos doxeos xP

He visto el video, parece que hay varias imágenes parecidas, debe ser que la cámara en vez de guardar un video con imágenes todas juntas las graba separadas como si fuesen muchas fotos ¿no? O es producto de algún programa que convierte un video en varias imágenes, quizá para ahorrar memoria.
389  Media / Multimedia / Re: Cómo convertir imágenes jpg que contienen vídeo en: 17 Junio 2024, 13:35 pm
Si ya ves el movimiento en la imagen no entiendo para qué quieres convertirla en otro formato para "conservar el video", ya lo tiene, no se va a perder.
390  Informática / Software / Re: Utilidad de PDFCreator en: 17 Junio 2024, 13:25 pm
Fue hace mucho con una PC bastante más lenta que esta, ahora los abre Chrome.

Y si de evitar modificaciones se trata, quizá sería mejor un exe. Yo empecé uno hace mucho, tenía animaciones y links en distintos lados que llevaban a otras secciones similar a Wikipedia:
Páginas: 1 ... 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [39] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 ... 238
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines