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 ... 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 [89] 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 ... 436
881  Foros Generales / Dudas Generales / Re: Teclado escribe numeros y num lk no soluciona el problema en: 22 Junio 2021, 16:03 pm
Ese es mi problema,como podria solucionarlo? Lo logre arreglar momentaneamente cambiando los puertos usb del teclado con el mouse externo,ya que el teclado de mi notebook esta roto...
Si el teclado está roto, toca arreglarlo. No hay soluciones mágicas.

Provisionalmente mira de conectar un teclado USB, o bien (especialmente si no tienes un teclado USB a mano) tirar del teclado virtual (comando OSK (On Screen Keyboard)), que puede configurarse (dispone de su manual) y usando el ratón (o lápiz óptico si tu notebook dispone de él). El 'osk.exe' suele encontrarse en 'windows\System32' por si tienes que buscarlo explorando...
882  Programación / Desarrollo Web / Re: [Dilema]: La manera más eficaz y óptima. en: 22 Junio 2021, 15:32 pm
Ninguno de los dos, es lo sufiicientemente adecuado. Mucha sobrecarga a cambio de incertidumbre. Más bien sería un cron, pero anónimo respecto de un usuario, actuando solo por máximo número de consultas y planificación flexible. Me explico...

Sería preferible tener esa tabla ordenada por el número de notificaciones (O bien crear una consulta para devolverte los usuarios que sobrepasen las 50 activaciones, si no hay ninguno para devolver el usuario con más notificaciones, luego entenderás para qué esto último). Y si la cantidad de usuarios devueltos es mayor que 0...

Luego, tu 'cron' solo consulta si hay usuarios que sobrepasen el número límite de notificaciones (esto es fácil si es una tabla ordenada o si mantiene un campo 'orden' (que vas actualizando para ese usuario cuando recibe una nueva notificación) o si usas una consulta expresa). En caso positivo despachas esos usuarios que sobrepasan ese límite.

La planificación cada minuto (según el caso, claro) puede ser excesiva. No debería estar activado cada minuto, antes de salir (de su previa puesta en marcha), consulta el valor de notificación más próximo al límite (el que ahora es el número de notificaciones mayor en la tabla). Si por ejemplo está en 30 y tu limite es 50, (si por ejemplo se presupone que las notificaciones de media por usuario se recibe 1 cada 20 minutos), lo activas para dentro de 6 horas (20*20=400 minutos)... si está en 45, lo activas para dentro de 90 minutos (5*20=100 minutis), si tiene 49, lo activas para dentro de 20 minutos (1*20=20 minutos)... no pasa nada si se atiende de repente 5 usuarios que han sobrepasado ese limite de 50, es decir en una sola consulta se tenga que despachar a tantos usuarios como hayan sobrepasado las notificaciones.

Si sucede que las notificaciones se reciben de media por usuario, 1 cada minuto (por ejemplo), pués si el de valor más alto es 30, pues considera que hasta 50 notificaciones quizás tarde esos 20 minutos (20*1=20 minutos)... no pasa nada si lo sobrepasa 2 minutos antes o si es otro usuario que lo adelanta porque recibe más), pués lo activas para dentro de 20 minutos... etc... es decir no tiene que ser exhaustivamente programado para que sea perfectamente exacto, eso supone una sobrecarga innecesaria, etc.

p.d.:
Esto va purgando los usuarios con muchas notificaciones, para los que tienen pocas notificaciones y que por tanto la antigüedad de sus notificaciones (y no el número) pueda llegar a ser elevada, puedes programar otro que consulte el menor número de notificaciones... por ejemplo para una base de datos de 1000 usuarios los 10 con menor número de notificaciones (pero mayor que 0, es decir ignora los de 0 notificaciones, esto lo falsearía), y ver si para hay que eliminar para ellos las notificaciones más antiguas si tienen una antigüedad x. Esta programación debería ser más distante en el tiempo, quizas 1 vez al día o 1 vez a la hora. Dependerá de la cantidad de usuarios y la 'actividad' de las notificaciones.

Habrá un grueso en medio que ni estarán arriba, ni abajo, para estos bastaría una programación que se ejecute cada mes (por ejemplo), para borrar consultas más antiguas de x tiempo.
883  Foros Generales / Foro Libre / Re: La OMS alerta del peligro de la variante delta del coronavirus: será la dominante en el planeta en: 21 Junio 2021, 17:32 pm
No tiene sentido lo que dices. La cepa tiene origen en X pais, pero no porque un cuidadano sea de ese X pais va a estar infectado . Si yo soy de la India y llevo viviendo 20 años en España,
Lo que no tiene sentido es esto que tú dices...
Pero, claro... tiene todo el sentido del mundo, porque tú (y solo tú al parecer) sabes cuando alguien que se sienta a tu lado (o tu al suyo), cuántos años lleva viviendo en tal o cual páis, y si ese es el caso. Y sabiendo eso, tienes una certidumbre que el resto ignora.
884  Foros Generales / Foro Libre / Re: La OMS alerta del peligro de la variante delta del coronavirus: será la dominante en el planeta en: 21 Junio 2021, 16:50 pm
La OMS insiste en la tontería de las nomenclaturas "Alfa, Beta, Gamma, Delta..." para las definiciones de nuevas cepas del virus, alegando que con ello se quiere evitar que se 'cuelgue el San Benito' a uno u otro país.
El caso es que esa nomenclatura, a nivel de ciudadano impide que quien lo crea oportuno tome más precauciones, basado en la estúpida creencia de discriminación.

Si uno (por ejemplo), viaja en un avión y hay un pasajero (por ejemplo) de La India y tu asiento es a su lado, y 'está de moda', la cepa Kappa... pues como ni idea de dónde C0J0N3X es Kappa, podrías acabar infectado. Si en cambio se mantuviera el nombre del origen 'cepa India', pués tu mismo podrías decir, "Hale, me pongo la mascarilla aunque ya no sea exigible"...

Por cierto ahora hablaban de otra nueva cepa, de no recuerdo dónde, claro que tampoco hace falta saberlo, le toca la letra siguiente y ya está.  ;-) ;-)
885  Foros Generales / Foro Libre / Re: Es delito atropellar un gato por la via pública?? en: 21 Junio 2021, 16:33 pm
Mi gato volvió a casa...
Lo he visto ahora mismo, esta delgado, pero se le ve bien
...
Cuando se recupere del todo lo traeré a mi casa.
Me alegro...
Si come y bebe bien y también hace sus necesidades bien, tiene todas las de salir adelante.
Si tuviera algo grave interno no observado, sin duda con el tiempo transcurrido (al menos 12 días) ya se habría manifestado, aunque es preferible contar 3 semanas. Así que es buena señal.
886  Programación / .NET (C#, VB.NET, ASP) / Re: Combo de controles desactivado en: 21 Junio 2021, 16:28 pm
Esto es raro. No es la funcionalidad esperada ni es normal que si estás en modo diseño quede desactivado.

Intenta cerrar el entorno de VS y ver si al abrirlo fuenciona bien. Si persiste, apaga el equipo e inícialo de nuevo. Si era  un bloqueo durante la actualización, ahora debiera quedar desbloqueado. Si todavía sigue sin funcionar, tal vez requiera una reinstalación.

Si todo falla, sin duda se trata de un bug de dicha actualización. Lo acertado es buscar info en la propia página de VS en la web de mocosoft, si no se encuentra, deberías reportar el bug.
887  Programación / Programación C/C++ / Re: Letras aleatorias en una matriz en: 21 Junio 2021, 16:07 pm
Citar
1 generar una gran cantidad de letras aleatorias en una matriz.
2 El tema es que esas letras no se pueden pisar,
El punto 1 está reñido con el punto 2. Es decir no queda nada claro, que si generas una 'gran cantidad de letras', pués obivmanete cuado ese número sea tan pequeño como 26, para cumplir el paso 2, el punto 1 deja de cumplrirse y se repiten...

Admitiendo ambas cosas a la vez (aunque creo recordar que ya alguna vez o más ahbré puiesto lo mismo o muy parecido).

Código:
 entero constante MAX_LETRAS = 26
 char bufferChars() = "abc...xyz"  //un array de chars con las 26 letras minusculas, añade si quieres las mayusculas (o remplazaa)
 entero Index = MAX_LETRAS    ' el tamaño

  // Cuando el array está barajado (desordenado), simplemente se recorren en orden...
 // ...y al llegar al final se vuelve a barajar.
 function GetRandomChar
     si (index = MAX_LETRAS)
         Llamada a RandomSort
         indedx =0
     sino
         index +=1
     fin si

     devolver bufferchars(index)
 fin funcion
  
 // batajar el array usando el algoritmo de Fisher-Yates
 funcion RandomSort
     entero index
     char tmp

     bucle para k desde (MAX_LETRAS-1) hasta 1 retrocediendo
         k = random(entre 0 y k)
         tmp = bufferchars(k)  
         bufferchars(k) = bufferchars(index)
         bufferchars(index) = tmp
     siguiente
 fin funcion
888  Sistemas Operativos / Windows / Re: Me puede descargar windows 11 gratis en mi ordenador arquitectura 64? en: 18 Junio 2021, 23:38 pm
Me puede descargar windows 11 gratis en mi ordenador arquitectura 64?
Mi portatil es un acer aspire 5733Z
No. Incluso aunque estuviere disponible.

A ti no te resuelve ningún problema instalar un S.O. de m omento desconocido, con posibles problemas desconocidos (que nadie te va a poder resolver).

Un programa beta, o 'exfiltrado', solo es recomendable para personas capacitadas para poder solventar cualquier problema que pueda acontencer, que como mínimo será volver a su S.O. motivo por el cual, cualquiera (de éstos), sabe que es conveniente instalar de forma virtual o a lo sumo  un equipo destinado exclusivamente a eso, a pruebas...

No basta con tener un equipo 'apto', se requiere también tener conocimientos 'aptos'. Si te pierdes en simplezas por las que preguntas, como crees que nadie te vaya a solventar problemas que de entrada nadie conoce?. No sea culo inquieto. el dicho claramente asegura que: "...quien sentado esté bien, que no se levante..."
889  Seguridad Informática / Seguridad / Re: Youtube movil hackeado en: 18 Junio 2021, 23:08 pm
Borra desde 'ajustes' , 'aplicaciones', 'google'  (la localización en el tf. puede variar con la versión de android) borrar datos y memoria cachés, para esta aplicación que es la general de Android, te lleva al historial de búsqueda de Google (administrar espacio y borrar memoria caché).

Borra también datos y caché de los navegadores que tengas y por supuesto de youtube.

Pudiera ser que esa persona tenga tus datos de login de Youtube (o peor, de tu cuenta de correos, esto pudiera ser posible aún que tu no lo supieras si fue tu pareja, pues tuvo sguramente oportunidad de hacerlo)?. Si fuera así, visionar youtube desde tu login desde otro dispositivo, almacena en la nube (aparte de local) lo que se ha visto desde esa cuenta, que luego se utiliza para sincronizar dispositivos...

Sugiero, ciertos cambios un poco molestos de llevar a cabo, porque uno siempre se resiste a cambiar cuentas que tiene para acceso a muchos sitios, etc... Sin embargo, son el principal punto de 'control y conflicto' y por tanto la solución para ciertos problemas persistentes.

0 - Revisa si tu correo actual asociado con android tiene una cuenta alternativa asociada para rescate. Avisos de login incorrecto y de cambios de contraseña llegan a esa cuenta asociada y desde ella se puede solicitar contraseña a tu correo.
Se intenta ver si actualmente existe una cuenta desconocida (u olvidada) por ti, asociada y en tal caso desvincularla o (preferiblemente) remplazarla por otra tuya de plena confianza (por ejemplo un familiar, hermano/hermana) o algún amigo. Con plena confianza, aquí se refiere uno a que sea alguien que no se lleve bien (o le caiga mal) con esa persona de modo que tengas la absoluta seguridad de que no le van a convencer de ninguna manera para nada relacionado con tu cuenta.

1 - Luego, cambia la contraseña de tu correo actual, el asociado con Android.

2 - Crearte una nueva cuenta de correos y luego asociarlo con tu teléfono. Esto puede ser algo drástico que puede dar algún problema si uno no conoce bien la implicación de lo que supone. Pero a lo que se pretende es la medida más eficaz. Tendrás que escribir un correo a tus contactos (que quieras conservar), para que a partir de entonces te escriban a ese correo (ahora si tienes contacto por otras aplicaciones, basta que les digas que esa cuenta ya no la usas, de momento no la borres ni la elimines, hasta que pasado unos meses veas que no hay rastro de problemas, aún así puede que prefieras descargarte a tu PC, los correos que contiene o eliminarlos definitivamente, aunque te diría que es preferible dejarla inactiva (no la uses)).

3 - Reasocia otras cuentas (solo cuando veas que la asociación al teléfono ya funciona bien) a esa nueva cuenta. Incluyendo youtube, etc... esa asociación debería incluir un cambio de contraseña de las que lo precisan para prevenir el caso de que tengan login a ella sin tu saberlo.

4 - Si esa persona además es alguien a olvidar en tu vida, que no quieres tenerla presente para nada, podrías solicitar de último un cambio de número de teléfono a tu proveedor, en tal caso haz coincidir el paso 2 con éste.

5 - Si el paso 4 es una opción, pudiera ser preferible, acometer el paso 2 el primero (Crearte una nueva cuenta de correo) y comprar un nuevo tf. y que sea éste el que ahora se asocie con tu nuevo tf, con tu nuevo número.
Esto te permite tener el otro tf. con los datos vigentes hasta 'ayer', que con paciencia puedes importar al nuevo teléfono, de preferencia manualmente, las formas automáticas exigen sincornización y por ahí siempre se publican o exigen una cuenta previamente conocida, que puede ser un punto débil. Todo creado nuevo desde cero, evita filtraciones a cambio de la molestia que implica crear nuevas cuentas, olvidar las viejas (poco a poco, aunque seguirás teniendo acceso desde el tf. viejo), y entrar contactos...

No quieras hacer todos los pasos el mismo día, date tiempo para ver posibles problemas derivados con cada paso.  Cuando se hacen muchos pasos de una vez y surgen problemas, es fácil no saber de dónde viene el problema y es también en fácil olvidar cada uno de los pasos dados. Haz un cambio cada semana (por ejemplo).

Si todo se reduce a lo meramente incicado (que te aparecen sugerencias de búsquedas que no corresponden con tu historial), debría bastar con lo primero. Borrar datos y caché de Google. A veces uno lo resume de forma simple, porque no quiere señalar públicamente a desconocidos otros problemas derivados... pero si fuera el caso, el resto de puntos, son la solución.
890  Programación / Programación C/C++ / Re: Frustracion en: 17 Junio 2021, 23:48 pm
La cualidad que distingue una palabra de otra, es que medie un separador entre las palabras, cuando son más de una.

A su vez esto exige definir palabra y separador:
letra = 0|1|2|3...8|9|A|B|C...Y|Z|a|b|c|d...y|z| ...etc, si se precisan más
separador: espacio|tabulador|,|.|:|;|"| ...etc... si se precisan más
separadores = separador+   //uno o más separadores
palabra = letra+ // una o más letras
palabras = palabra [separador palabra]*

Una vez claro que letras pueden (son admitidas para) formar palabras y qué caracteres son un separador, se crean un array de 256 bytes indicando para cada uno, si es letra, separador (o no se admite = 0). Ese valor se toma de una enumeración y el array se crea al iniciar la aplicación.

Código:

array bytes Letras(256)

enumeracion ValorPalabra
    CARACTER_NO_APROBADO =0
    CARACTER_ES_LETRA = 1
    CARACTER_ES_SEPARADOR = 2
fin enumeracion

funcion inicializar
     ...
     Letras(09) =  CARACTER_ES_SEPARADOR  // el tabulador horizontal
     Letras(32) =  CARACTER_ES_SEPARADOR  // el espacio
     ...
     Letras(34) =  CARACTER_ES_LETRA   // comillas dobles
     ...
     Letras(48) =  CARACTER_ES_LETRA   // el dígito 0...
     ...
     Letras(65) =  CARACTER_ES_LETRA   // la letra A...
     ...
     Letras(97) =  CARACTER_ES_LETRA   // la letra a...
     ...
Fin funcion
La función se puede simplificar si se mete cada caracter aceptado como letra en un string y cada caracter admitido como separador en otro, y luego en sendos bucles, simplemente se toma cada carácter de dicho string y se le asigna el valor que toca.
El resto de caracteres tendrá el valor 0, señalando que o bien es un error o bien que se ignorará... (al gusto).

Finalmente puedes crear tu función, que sí, que puede ser recursiva, aunque es el tipo de casos que claramente no lo requiere, pero que para prácticas es adecuado.
En cuyo caso, convendría

Código:
entero BuscarPalabra(string Texto, entero Inicio, entero NumChars)
    entero j = inicio

    si (inicio = numchars) devolver 0 // impide buscar más allá del tamaño del texto.

    Hacer mientras  (texto(inicio) <> CARACTER_ES_SEPARADOR)  //caracteres no aprobados entre letras los ignora como si fueran letras.
        inicio +=1
        si (inicio = numchars) devolver 1
    repetir
    
    Hacer mientras  (texto(inicio) <> CARACTER_ES_LETRA)  // caracteres no aprobados entre separadores los ignora como separadores.
        inicio +=1
        si (inicio = numchars) devolver 1
    repetir
    
    si (inicio > j)   // caracteres no aprobados, pueden falsear esto.
        devolver  BuscarPalabra(texto, inicio, numChars) +1
    sino
        devolver  BuscarPalabra(texto, inicio, numChars)
    fin si
fin funcion

La función se invocaría tal que así:
Código:
texto = "Hola, esto es "..." 0001 ejemplo de pru3ba."
numPalabras = BuscarPalabra(texto, 0, texto.length)
mostrarMensaje "El texto: " + saltodelinea + texto + saltodelinea + "contiene: " + numpalabras + " palabras."
Cada llamada a la funcion BuscarPalabra, reconoce una palabra (o ninguna cuando se alcance el final).

Es del todo importante decidir qué caracteres pertencen a cada uno de los 3 grupos. Idealmente el grupo 'CARACTER_NO_APROBADO' no debería existir. Pero como nada es perfecto, ahi están. Se pueden ignorar o marcar como error, en el pseudocódigo se ignoran, pero su aparición puede arrojar error bajo determinadas condiciones, no se contempla evitar dicho errror, so pena de un código más complejo que luego interferirá con la comprensión.

Por supuesto, no necesitas construir el array ni tirar de la enumeración, sino del propio lenguaje, pero igualmente es preciso ilustrar dichos conceptos, sea que luego se construya o no. Para comprender el asunto, es preferible recrearlo y ver lo sencillo que es resolverlo.

El pseudocodigo está escrito al vuelo, pudiera hacerle falta un repaso, que queda a tu esfuerzo... lo mismo que entenderlo, y convertirlo a código.

...y no, no es necesario eliminar letras... imagina un texto de 100 millones de palabras, si con cada letra tienes que reconstruir otra cadena donde sea idéntica excepto en que ahora no tiene el que antes era el carácter primero/o ultimo (lo mismo me da, que me da lo mismo)... se haría eterno... simplemente avanza el puntero de lectura del char sobre el texto.
Páginas: 1 ... 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 [89] 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 ... 436
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines