|
692
|
Foros Generales / Dudas Generales / Re: Webs abandonadas, pedir eliminación.
|
en: 6 Diciembre 2023, 00:54 am
|
La situación puede ser compleja: Quizá el niño no quiere aparecer ahí, quizá no sabe que está ahí pero si supiera no querría, quizá murió pero si hubiera podido elegir no quisiera que su foto esté ahí, quizá otra cosa, no sé...
Pero lo tuyo suena a woke o como le llamen, alguien que quiere "cancelar" cosas por motivos insignificantes.
¿Acaso los niños están desnudos, haciendo poses sugerentes o algo? ¿les has preguntado a los niños en cuestión si les molesta que sus fotos estén ahí?
No creo que esté bien ir por la vida como si fueses un dictador, intentando borrar publicaciones que no son tuyas, a menos que en ellas te estuvieran insultando (*) o poniendo fotos tuyas sin tu permiso, o editadas (**), o estuvieran poniendo datos tuyos sin tu permiso. (*): E incluso en este caso no sé si debería importarte, mientras no te obliguen o a otros a verlo. Todos defecamos, pero algunos según mi experiencia defecan acciones o palabras, piensa que es eso, y no vale la pena mirar sus eses. Y si algún conocido tuyo las mira seguido, probablemente sea de la misma calaña. (**): A menos que sea en broma, que avisen que es en broma. Si te molesta, volvemos al punto anterior.
Si los niños fuesen tus hijos o adoptados, podrías ir a la policía supongo, o a un abogado, pero no creo que sea el caso. Sino podrías intentar ponerte en contacto con los padres o tutores, si los conoces, sino organizar una "cruzada" para conocerlos. Pero tampoco tengas mucha esperanza de que funcione, el sistema humano de justicia es... injusto.
Piensa que tal vez el publicante murió o está en coma, o en un hospital por un accidente, o porque le dieron una paliza, o lo metieron preso o en un manicomio, quizá por error. Y que quizá es su deseo que su publicación siga ahí, para quien quiera verla, o para continuarla cuando pueda.
Si el blog está en una empresa, podrías contactarte con ella. Busca la palabra "contacto", suele estar al final de las páginas.
En fin, páginas fraudulentas son otro tema, al principio parece que te importaba no el contenido sino el hecho de que esté abandonado. En ese sentido, a mí me molestaban los posts en que dan a descargar algo y luego resulta que los links estaban caídos. Eso sí que debvería borrarse, si no se hizo ya, porque hacía perder el tiempo a muchos y no era lo que prometían, o al menos ya no.
|
|
|
693
|
Programación / Programación General / ¿El programa dice que 9999999+1 es 9999999.99999999?
|
en: 5 Diciembre 2023, 10:17 am
|
Quiero un programa que haga esto: N = 0 N = 1 N = 10 N = 2 N = 101 N = 1000 etc O sea: 1era vuelta: Se produce un número de 1 cifra. 2nda: De 1 cifra, de 2 cifras. 3era: De 1 cifra, de 2 cifras, de 3 cifras. Y así sigue. Cada nuevo número de cierta cifra es +1 con respecto al anterior de esas cifras. Cuando con 1 cifra no haya más posibles, ya no se producen más de esos, lo mismo ocurre con los de cualquier otra cifra. Es que luego del 9 viene el 10 pero ese tiene 2 cifras, ya se produjo, no quiero que se produzcan repetidos. Hice este código y le puse traces porque me da un error que no entiendo: Escena 1 actions for fotograma 1 MinLongitud = 1; MaxLongitud = 1; N1 = -1; actions for fotograma 2 Longitud = MinLongitud; trace ("F2: Longitud: "+Longitud); actions for fotograma 4 Nombre = "N"+Longitud; trace ("Nombre: "+Nombre); N = eval(Nombre)+1; trace ("N: "+N); if (String(N).length>Longitud) { trace (String(N).length+" > "+Longitud); // El valor ya fue producido. MinLongitud = MinLongitud+1; trace ("MinLongitud: "+MinLongitud); gotoAndPlay (2); } else { // Guardar el valor en la lista correspondiente. set (Nombre, N); trace ("Se generó "+Nombre+": "+N); C = String(N).charat(N); // trace (N+" resulta "+C); if (C == 0) { if (Solfor0 == undefined) { Solfor0 = N; } } else if (C == -9) { if (Solfor9 == undefined) { Solfor9 = N; } } else if (C == 4.5) { if (Solfor4 == undefined) { Solfor4 = N; } } else if (C == -7.2) { if (Solfor7 == undefined) { Solfor7 = N; } } } actions for fotograma 5 if (Longitud<MaxLongitud) { Longitud = Longitud+1; gotoAndPlay (4); } else { // Se creará una nueva lista. MaxLongitud = MaxLongitud+1; set ("N"+MaxLongitud, -1+Math.pow(10, MaxLongitud-1)); trace ("Se creó N"+MaxLongitud+": "+String(-1+Math.pow(10, MaxLongitud-1))); gotoAndPlay (2); }
Salida: F2: Longitud: 1 Nombre: N1 N: 0 Se generó N1: 0 Se creó N2: 9 F2: Longitud: 1 Nombre: N1 N: 1 Se generó N1: 1 Nombre: N2 N: 10 Se generó N2: 10 Se creó N3: 99 F2: Longitud: 1 Nombre: N1 N: 2 Se generó N1: 2 Nombre: N2 N: 11 Se generó N2: 11 Nombre: N3 N: 100 Se generó N3: 100 Se creó N4: 999 F2: Longitud: 1 Nombre: N1 N: 3 Se generó N1: 3 Nombre: N2 N: 12 Se generó N2: 12 Nombre: N3 N: 101 Se generó N3: 101 Nombre: N4 N: 1000 Se generó N4: 1000 Se creó N5: 9999 F2: Longitud: 1 Nombre: N1 N: 4 Se generó N1: 4 Nombre: N2 N: 13 Se generó N2: 13 Nombre: N3 N: 102 Se generó N3: 102 Nombre: N4 N: 1001 Se generó N4: 1001 Nombre: N5 N: 10000 Se generó N5: 10000 Se creó N6: 99999 F2: Longitud: 1 Nombre: N1 N: 5 Se generó N1: 5 Nombre: N2 N: 14 Se generó N2: 14 Nombre: N3 N: 103 Se generó N3: 103 Nombre: N4 N: 1002 Se generó N4: 1002 Nombre: N5 N: 10001 Se generó N5: 10001 Nombre: N6 N: 100000 Se generó N6: 100000 Se creó N7: 999999 F2: Longitud: 1 Nombre: N1 N: 6 Se generó N1: 6 Nombre: N2 N: 15 Se generó N2: 15 Nombre: N3 N: 104 Se generó N3: 104 Nombre: N4 N: 1003 Se generó N4: 1003 Nombre: N5 N: 10002 Se generó N5: 10002 Nombre: N6 N: 100001 Se generó N6: 100001 Nombre: N7 N: 1000000 Se generó N7: 1000000 Se creó N8: 9999999 F2: Longitud: 1 Nombre: N1 N: 7 Se generó N1: 7 Nombre: N2 N: 16 Se generó N2: 16 Nombre: N3 N: 105 Se generó N3: 105 Nombre: N4 N: 1004 Se generó N4: 1004 Nombre: N5 N: 10003 Se generó N5: 10003 Nombre: N6 N: 100002 Se generó N6: 100002 Nombre: N7 N: 1000001 Se generó N7: 1000001 Nombre: N8 N: 9999999.99999999 16 > 8 MinLongitud: 2 F2: Longitud: 2 Nombre: N2 N: 17 Se generó N2: 17 O sea, no genera el número 8 ni el 9, porque, si lo interpreté bien, cuando N8 = 9999999 y Longitud = 8, y se hace esto: Nombre = "N"+Longitud; N = eval(Nombre)+1;
El resultado es: Nombre = "N"+8 = "N8" N = eval(Nombre)+1 = eval("N8")+1 = 9999999+1 = 9999999.99999999 y apartir de ahí no sé qué hace, pero ya eso es un error ¿mío o qué pasa? ¿el máximo valor que puede tener una variable en Macromedia Flash 5 es 9999999.99999999 no 10000000? ¿o sea no más de 7 caracteres enteros? No me resulta un problema, creo, pero ¿por qué sucede eso? ¿tiene sentido? Si se puede guardar textos largos ¿por qué no un número? ¿o con números largos calcula mal tal como ocurre cuando son decimales?
|
|
|
694
|
Foros Generales / Dudas Generales / Re: Sobre páginas de descargas
|
en: 2 Diciembre 2023, 17:35 pm
|
Te vi preguntar algo similar en otro lado ¿por qué preguntas? ¿no tienes ganas/tiempo de buscar o tienes algún problema con buscar? ¿no te aparecen resultados acordes a lo que buscas? ¿sí pero los links están caídos? ¿cuántas páginas has visitado? ¿tienes miedo de virus, etc?
Te podría hacer una guía sobre cómo encontrar y descargar cosas pero no quiero decir cosas obvias ni que ya sepas. Si dices exactamente qué problema tienes, es mejor.
|
|
|
695
|
Programación / Programación General / ¿Es muy difícil hacer un buscador estilo Google?
|
en: 30 Noviembre 2023, 11:27 am
|
Me resulta molesto que si pongo descargar X me aparezcan páginas en que no se puede descargar (quizá no veo la opción, pero es mala señal porque en otras se ve clarito) o que si pongo hacer X Word 2013 me aparezcan cosas de ahora que no me sirven. Si pongo las palabras clave entre comillas se soluciona, pero no debería ser necesario: Los 1eros resultados deberían ser los más acordes a las palabras puestas, no los que más fama tienen según no sé quién, y las páginas que mienten sobre lo que se puede hacer en ellas deberían bajar en los resultados.
También, existía un complemento que bloqueaba páginas indeseadas, no aparecían en la lista de resultados, pero dejó de funcionar y me aburrí de buscar algo similar. Sería bueno que al usar el buscador este mirara una lista de páginas en un archivo, indicadas por el usuario, para no ponerlas en los resultados. Es mas, ojalá uno pudiera dar un dislike y que en el futuro esa página se muestre más abajo, por ejemplo cuando busco algo XXX no es que tenga toooda la paciencia del mundo como para andar haciendo scroll para encontrar páginas nuevas, y me suelen aparecer como 3 resultados de las mismas, así que suelo mirar siempre las mismas, no porque sean mejores sino porque aparecen 1ero no se sabe por qué.
Supongo que debe ser muy difícil, yo no estoy como para ponerme a hacer algo así, pero ya que me pasa lo que comenté, quisiera info, por curiosidad.
|
|
|
696
|
Sistemas Operativos / Windows / Re: Detectar archivos no repetidos.
|
en: 27 Noviembre 2023, 08:10 am
|
Machacador: La lista sería muy larga, no sabría cuales faltan.
Daniel: Lo entendiste en tu 2ndo post, entenderás también que no me voy a poner a aprender Python para esto...
Serapis: Interesante, buscaré cómo hashear. En cuanto a ficheros iguales, no sé si te confundiste o qué. Lo normal es que si tienen el mismo nombre y tamaño sean iguales, sólo porque tengan el mismo tamaño no asegura que sean iguales... Lo mismo con el nombre.
EdePC: Sería según modificación. Se ve bonito el 2ndo, lo pruebo.
|
|
|
697
|
Programación / Programación General / Re: Generar lista evitando ", " al inicio sin repetir code.
|
en: 27 Noviembre 2023, 04:33 am
|
profinet: Aunque un operador ternario fuese más eficiente como dices, estás haciendo varias comprobaciones por algo que sabemos a priori que sólo se aplicará en el 1er caso, por eso tampoco me sirve. Crea primero el primer elemento, por ejemplo: 'a' Luego el resto ',b,c,d...'
Sí, pero resumí o simplifiqué demasiado el problema, si hago eso repito código creo, tengo esto (no quise postearlo porque es complicado de entender/explicar): Escena 1 actions for fotograma 1 function ChequearCandidato () { C = String(N).charat(N); trace (N+" resulta "+C); if (C == 0) { if (Solfor0 == undefined) { Solfor0 = N; } } else if (C == -9) { if (Solfor9 == undefined) { Solfor9 = N; } } else if (C == 4.5) { if (Solfor4 == undefined) { Solfor4 = N; } } else if (C == -7.2) { if (Solfor7 == undefined) { Solfor7 = N; } } ListasegunGeneracion = ListasegunGeneracion+", "+N; } MinN = 0; MaxN = 33; Rango = MaxN-MinN+1; MenoroMayor = -1; ListPart1 = MinN; ListPart2 = MaxN; ListParts = 2; N = MinN-MaxN; ListasegunGeneracion = ""; do { N = N+MaxN; ChequearCandidato(); } while (N != MaxN); Mayordistancia = 0; Puntero = ListParts; Lista = ""; actions for fotograma 2 Distancia = eval("ListPart"+Puntero)-eval("ListPart"+(Puntero-1)); if (MenoroMayor == -1) { if (Distancia == Mayordistancia) { NElegido = Puntero; CambiarMenoroMayor = "Sí"; } else if (Distancia>Mayordistancia) { NElegido = Puntero; Mayordistancia = Distancia; CambiarMenoroMayor = "No"; } } else if (Distancia == Mayordistancia) { CambiarMenoroMayor = "Sí"; } else if (Distancia>Mayordistancia) { NElegido = Puntero; Mayordistancia = Distancia; CambiarMenoroMayor = "No"; } Puntero = Puntero-1; actions for fotograma 3 if (Puntero>1) { gotoAndPlay (2); } else { if (MenoroMayor == -1) { N = Math.floor((eval("ListPart"+NElegido)+eval("ListPart"+(NElegido-1)))/2); } else { N = Math.ceil((eval("ListPart"+NElegido)+eval("ListPart"+(NElegido-1)))/2); } ChequearCandidato(); Lista = ""; } actions for fotograma 5 if (N<eval("ListPart"+Puntero)) { Saver = eval("ListPart"+Puntero); set ("ListPart"+Puntero, N); Lista = Lista+", "+N; N = Saver; } else { Puntero = Puntero+1; Lista = Lista+", "+eval("ListPart"+(Puntero-1)); gotoAndPlay (4); } actions for fotograma 7 if (Puntero == ListParts) { ListParts = ListParts+1; // Sólo falta correr al último elemento. set ("ListPart"+ListParts, N); // ¿Se analizaron todos los números del rango? if (Rango == ListParts) { // Sí, mostrar los Ns que cumplen la condición y finalizar. if (Solfor0 != undefined) { trace ("Para que C sea 0 usar N: "+Solfor0); } if (Solfor9 != undefined) { trace ("Para que C sea -9 usar N: "+Solfor9); } if (Solfor4 != undefined) { trace ("Para que C sea 4.5 usar N: "+Solfor4); } if (Solfor7 != undefined) { trace ("Para que C sea -7.2 usar N: "+Solfor7); } ListasegunGeneracion = ListasegunGeneracion.substring(2); stop (); } else { // Analizar otro N. if (CambiarMenoroMayor == "Sí") { MenoroMayor = MenoroMayor*-1; CambiarMenoroMayor = "No"; } Mayordistancia = 0; Puntero = ListParts; Lista = ""; gotoAndPlay (2); } } else { Puntero = Puntero+1; // Correr hacia el final a las partes de la lista. Saver = eval("ListPart"+Puntero); set ("ListPart"+Puntero, N); Lista = Lista+", "+N; N = Saver; gotoAndPlay (6); }
Básicamente es como si se fuese a crear una lista de números del 0 al 33 pero en un orden especial. El número se agrega a la lista (ListasegunGeneracion) mediante la función del frame 1. Si el 1er número se agregara de distinta manera, eso que hace la función tendría que copiarlo para ese caso particular, cambiando sólo 1 cosa. Eso es repetición de código, todo igual excepto 1 cosa, por eso no quería hacer eso. Esto: actions for fotograma 1 function ChequearCandidato () { C = String(N).charat(N); trace (N+" resulta "+C); if (C == 0) { if (Solfor0 == undefined) { Solfor0 = N; } } else if (C == -9) { if (Solfor9 == undefined) { Solfor9 = N; } } else if (C == 4.5) { if (Solfor4 == undefined) { Solfor4 = N; } } else if (C == -7.2) { if (Solfor7 == undefined) { Solfor7 = N; } } ListasegunGeneracion = ListasegunGeneracion+", "+N; } MinN = 0; MaxN = 33; Rango = MaxN-MinN+1; MenoroMayor = -1; ListPart1 = MinN; ListPart2 = MaxN; ListParts = 2; N = MinN-MaxN; ListasegunGeneracion = ""; do { N = N+MaxN; ChequearCandidato(); } while (N != MaxN);
Con tu método tendría que hacerlo así: actions for fotograma 1 function ChequearCandidato () { C = String(N).charat(N); trace (N+" resulta "+C); if (C == 0) { if (Solfor0 == undefined) { Solfor0 = N; } } else if (C == -9) { if (Solfor9 == undefined) { Solfor9 = N; } } else if (C == 4.5) { if (Solfor4 == undefined) { Solfor4 = N; } } else if (C == -7.2) { if (Solfor7 == undefined) { Solfor7 = N; } } ListasegunGeneracion = ListasegunGeneracion+", "+N; } MinN = 0; MaxN = 33; Rango = MaxN-MinN+1; MenoroMayor = -1; ListPart1 = MinN; ListPart2 = MaxN; ListParts = 2; C = String(MinN).charat(MinN); trace (MinN+" resulta "+C); if (C == 0) { if (Solfor0 == undefined) { Solfor0 = MinN; } } else if (C == -9) { if (Solfor9 == undefined) { Solfor9 = MinN; } } else if (C == 4.5) { if (Solfor4 == undefined) { Solfor4 = MinN; } } else if (C == -7.2) { if (Solfor7 == undefined) { Solfor7 = MinN; } } ListasegunGeneracion = MinN; N = MaxN; ChequearCandidato();
También podría quitar esto de la función: ListasegunGeneracion = ListasegunGeneracion+", "+N Y ponerlo fuera de ella en todos los casos menos en el 1ero, como has dicho, no estoy seguro de cómo quedaría, algo así: Escena 1 actions for fotograma 1 function ChequearCandidato () { C = String(N).charat(N); trace (N+" resulta "+C); if (C == 0) { if (Solfor0 == undefined) { Solfor0 = N; } } else if (C == -9) { if (Solfor9 == undefined) { Solfor9 = N; } } else if (C == 4.5) { if (Solfor4 == undefined) { Solfor4 = N; } } else if (C == -7.2) { if (Solfor7 == undefined) { Solfor7 = N; } } } MinN = 0; MaxN = 33; Rango = MaxN-MinN+1; MenoroMayor = -1; ListPart1 = MinN; ListPart2 = MaxN; ListParts = 2; N = MinN-MaxN; do { N = N+MaxN; ChequearCandidato(); } while (N != MaxN); ListasegunGeneracion = MinN+", "+MaxN; Mayordistancia = 0; Puntero = ListParts; Lista = ""; actions for fotograma 2 Distancia = eval("ListPart"+Puntero)-eval("ListPart"+(Puntero-1)); if (MenoroMayor == -1) { if (Distancia == Mayordistancia) { NElegido = Puntero; CambiarMenoroMayor = "Sí"; } else if (Distancia>Mayordistancia) { NElegido = Puntero; Mayordistancia = Distancia; CambiarMenoroMayor = "No"; } } else if (Distancia == Mayordistancia) { CambiarMenoroMayor = "Sí"; } else if (Distancia>Mayordistancia) { NElegido = Puntero; Mayordistancia = Distancia; CambiarMenoroMayor = "No"; } Puntero = Puntero-1; actions for fotograma 3 if (Puntero>1) { gotoAndPlay (2); } else { if (MenoroMayor == -1) { N = Math.floor((eval("ListPart"+NElegido)+eval("ListPart"+(NElegido-1)))/2); } else { N = Math.ceil((eval("ListPart"+NElegido)+eval("ListPart"+(NElegido-1)))/2); } ChequearCandidato(); ListasegunGeneracion = ListasegunGeneracion+", "+N Lista = ""; } // El resto no cambia, sólo se quita el substring que me dijo EdePC.
Sí, es mejor, pero sirve porque la función sólo se ejecuta en 2 frames: En el 1 cuando la lista se genera distinto, y en el frame 3 donde se genera "normal". Si la función se ejecutara más veces esa línea de código que estaba dentro habría que repetirla fuera varias veces, pensé que ocurriría eso, por eso no me parecía buena idea. Bueno, no era lo que esperaba pero le doy solucionado al tema porque efectivamente lo solucionó. Pero sigo respondiendo otro día.
|
|
|
698
|
Sistemas Operativos / Windows / Re: Detectar archivos no repetidos.
|
en: 26 Noviembre 2023, 05:28 am
|
MCKSys Argentina: No googlé porque no creí que alguien más hubiera querido lo mismo xD
Pero incluso lo que has buscado no sería lo que busco, sería "windows" find not duplicated files in directories hash o "windows" find uniques files in directories hash
¿Lo de hash para qué es?
Luego buscaré por mi cuenta.
Hallar los archivos repetidos no me sirve, la lista sería muy larga, no sé cuales son los que no están repetidos. ¿Que no debería tener repetidos? Si clasificarlos es difícil así, imaginate lo que sería A o B: A- Clasificarlos por fecha, luego crear accesos directos, luego enviar esos a distintas carpetas según el tipo de contenido. B- Clasificarlos por tipo, luego crear accesos directos, luego enviar esos a distintas carpetas según la fecha. ¿Hay otra mejor manera?
Por ahora lo que se me ocurre es clasificarlos por contenido, luego hacer una búsqueda *.*, ordenarlos por fecha, y entonces irlos copiando a las carpetas correspondientes. El problema es que tengo algunas carpetas "por fecha" que sin embargo tienen archivos de otras fechas, porque así los copié a un dvd, y porque dan cierto contexto, y yo no me voy a poner a borrar esos que ya están bien. Pero bueno, ya que esos están más o menos bien clasificados o en cierto órden, probablemente no serán un problema.
|
|
|
699
|
Foros Generales / Dudas Generales / Re: necesito su ayuda
|
en: 26 Noviembre 2023, 05:06 am
|
¿Sobre ti, alguien que conoces o qué? Decir tonterías es legal, distinto sería si te lo dijeran al oído o te enviaran esas cosas, simplemente no prestes atención a esas personas y si gente que te conoce o podría conocerte les presta atención y le creen... Bueno, los 2ndos es un caso aparte, además si mienten haciendo videos o imágenes con IA es más complicado, pero no hay que creer las cosas https://somoskudasai.com/noticias/cultura-otaku/evangelion-asuka-fue-acosada-en-un-supermercado/y si alguien las cree y te preocupa, no debería, esas personas no valen mucho la pena, tú mismo lo dices en tu firma ¿qué importan las apariencias? Juzgar en base a lo que diga un random en ticu tocu cucu es como juzgar en base a las apariencias.  O más bien "Too much people lie".
|
|
|
700
|
Programación / Programación General / Re: Generar lista evitando ", " al inicio sin repetir code.
|
en: 25 Noviembre 2023, 07:15 am
|
EdePC: Bien, me funcionó esto que me dijiste: String.substr Sintaxis
myString.substr(inicio, longitud); Argumentos
inicio Un número entero que indica la posición del primer carácter de la subcadena que se está creando. Si inicio es un número negativo, el punto inicial se determina desde el final de la matriz, donde -1 es el último carácter.
longitud El número de caracteres en la subcadena que se está creando. Si no se especifica longitud, la subcadena incluye todos los caracteres desde el inicio al final de la cadena.
Descripción
Método; devuelve los caracteres de una cadena desde el índice especificado en el argumento inicio, hasta el número de caracteres especificados en el argumento longitud.
Reproductor
Flash 5 o posterior. Pensaba probar algo de eso. Para mí eso es medio confuso porque le llaman "borrar" creo pero no es que borre desde el caracter 2 en este caso, sino que genera una cadena desde el caracter 2. Sería más claro si por ejemplo le llamaran take o get (from, until). Los arrays no me gustan, no sé, mañas mías xD todos mis ejemplos están basados en ActionScript 2 y mínimo Flash 5, versiones anteriores serían extremadamente antiguas Ah, ya que sabes del tema, y suponiendo que te refieres a Macromedia Flash 5, no el de Adobe (creo que es CS5). ¿MF5 usa AS2 entonces? Te pregunto porque sé que en cierto punto salió el AS3, pero nunca supe cual uso, que yo sepa no dice "es AS2", además en cada nueva versión de Flash agregaron/quitaron cosas, por lo que yo en el fondo dudo que existan sólo 3 versiones de AS... Ojo con eso.
|
|
|
|
|
|
|