Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Serapis

#1921
Gracias r32, tiene buena pinta, me lo descargo.

Aunque no lo necesito extrictamente para lo que se ofrece, seguramente pueda serme útil para alguna cosa que tengo entre manos, de esas que uno hace poco a poco según saca tiempo...
#1922
Hum Sergiolo428... entonces tienes que estudiar un poquito más... paciencia.

p.d.:perdón me había comido una r en tu alias.
#1923
Gracias drvy por la info...

Sin embargo yo prefiero mejor esto que comentas:
CitarSi no os fiáis, os podéis descargar el torrent con los hashes (más abajo en la misma página) y comprobarlos vosotros mismos.

Más que por desconfianza, por sistema. Considero que la seguridad es algo que debe imponerse-mantenerse de forma sistemática, no por confianza...

Mañana que saque un tiempito, miro de ponerlo a descargar.
#1924
Para una cuenta privada, es muy mala idea usar el formato: 'nombre_email'@gmail.com"
Usa una cuenta rara, que no pueda asociarse con tu persona.

Otra cosa es que tengas una empresa o tal, en cuyo caso es cuando únicamente interesa tener un correo que identifique claramente tu empresa de cara a recibir ofertas.

Y sí, una vez una cuenta ha sido cerrada queda libre... ahora no es lo mismo que la cierres tú a que te la cierren por inactividad. es muy probable que en efecto una vez cerrada una cuenta esta pudiera queda inservible durante un tiempo, pudiera ser que por motivos de seguridad, esto es que 3 meses más tardes venga alguiena decir: "oye donde está mi cuenta que tenía esto y lo otro", ellos te digan que la cerraste y tu respondas que has estado 3 meses en el hospital en coma, que no has podido ser tú... tal vez por que la propia ley exija que guarden ciertos datos x tiempo, en fin ,el motivo exacto, solo ellos lo sabrán... pero también juegan con la baja probabilidad de que alguien quiera crear una misma cuenta que una que justamente se acaba de cerrar. De cualquier manera, jamás aceptes como nombre de cuenta la que te sugiera, solo porque la que querías ponerte ya esté tomada. Que además es claro indicativo de que hiciste mala elección, para el nombre de tu cuenta.
#1925
Es muy sencillo...

tienes 15 frases en 4 partes...

Se trata simplemente de tomar un indice en cada array de parte al azar entre los no elegidos aún, que es el que se toma...
y un índice para todas que al comienzo apunta al último, éste se va reduciendo con cada llamada.
Cada vez que se eleige un texto, este se remplaza por el del final, y el final se reduce en 1... cuando solo queda el 0, este se toma si o sí, luego el final vuelve a ser el 14.
como los valores se eligen al azar, se van deositando (cada array), tambien al azar al final, por lo que siempre estarán constantemente barajados...

El pseudocódigo para esto es muy simple...

entero max= 14

string = funcion Generarfrase
   string f
 
   f = TomarParte(Array1, max)
   f =f + TomarParte(Array2, max)
   f =f + TomarParte(Array3, max)
   f = f+ TomarParte(Array4, max)
   
    max = (max -1)
   si max= -1 luego max = 14
 
   devolver f
fin funcion

string = Funcion TomarParte(array de string ArrayX, entero  max)
    entero x
    string tmp

   // elegir un índice al azar entre 0 y los restantes disponibles.
   x=random entre 0 y max
   // remplezar el elegido por el último disponible (en este momento)
   tmp = ArrayX(x)
   ArrayX(x) = ArrayX(max)
   ArrayX(max) = tmp
   
   devolver tmp
fin funcion
#1926
No me creo que ninguna de mis cuentas haya sido hackeada.... de todos modos, la propia web de "I, pwned", se presta a ser un tarro de miel (como ya he dicho en otras ocasiones), así que paso de tales verificaciones... la última vez que cambié mi contraseña fue hace apenas un mes... y no tardaré otro en volverla a cambiar y habiendo 800 millones de cuentas, ya sería mucha casualidad que fueran a tocar la mía sin ni siquiera saber a quién corresponde y ni es es importante o solo para cosas superfluas (resulta absurdo que alguien llamado Arturo García Luna, se cree cuentas del tipo arturogarcialuna@gmail.com (o Arturo.Garcia.Luna85@yahoo.com ), sería más acorde para Arturo García tener una cuenta más como A85djGreofLprodf@gmail.com que tu cuenta no dé pistas de tu nombre (es algo de perogrullo).

De todas maneras (si no me equivoco de noticia), señalaba que los datos tomados eran hashes, que es lo que deberían guardar los hospedajes de correo, no las contraseñas.
Así el par "direccion email - hash", no les sirve de nada, porque el acceso exige una contraseña como dato de ingreso, el hash solo sirve para la validación, no para el acceso... Eso sí, es suficiente para que un hipotético Donald.Trump@gmail.com pudiera atraer la atención a hackers más interesados por los que intentar hallar una contraseña que derive al hash.
Algo de entrada harto difícil, y que debería ser imposible si tal hash fuere en realidad  la concatenación del resultado de dos funciones de hash distintas operando sobre la misma contraseña.

Por último, es fácil falsificar estas cosas... recoges correos te inventas el hash o contraseña y las vuelcas en tal o cual sitio como si en efecto, los hubieras vulnerado, con lo que si al final tu correo acaba afirmado en "I been pwned", (al menos) para mi, solo es indicativo (a lo sumo) que de que han recopilado tu dirección de correo.
#1927
Hay funciones que se ejecutan al ser llamadas de forma asíncrona y otras que detienen la ejecución y no se ejecuta la siguiente instrucción hasta regresas de la llamada, esto es son síncronas.

- En general todas las llamadas internas son síncronas, ya que lo que ha de pasar después a menudo depende de lo que pase antes y necesita los valores de regreso (si hubiere alguno)... Uno luego decide si algo debe ser asíncrono, básicamente  guarda datos y pone en marcha un temporizador, que cuando salte tomará dichos datos y los procese, la ejecución previa, en cambio sigue su curso...

- Y en general llamadas externas pueden ser asíncronas. No cuando estas llamadas sean para ejecutar funcionalidad especifica, si en cambio cuando es para por ejemplo ejecutar un programa, o cuestiones de hardware (el harware admite 'esperas', pero no le gustan las 'esperas indefinidas', razón por la que 'prefiere asíncrono y admita interrupciones). Luego es uno quien si lo precisa puede hacer que una llamada  asíncrona se comporte como si fuera síncrona (esto es, forzar una espera hasta que aquella termine).

Lo que tiene que quedarte claro es cuando es razonable que una llamada (por lógica sea o deba ser síncrona y cuando asíncrona).
Por ejemplo: Si pides entrada de datos del usuario es razonable que sea síncrono, porque si no estás obligando a que el usuario tenga que responder en un tiempo finito y muy breve... en general mientras el usuario no pulse la tecla 'enter', no se da por finalizada la entrada de datos. Puede optarse por funciones que leen carácter a carácter... pero vamos si se espera una introducción de más de un carácter, en general la técnica de devolución pasa por pulsar la tecla intro, a modo de indicador de finalización de la entrada del usuario.

Algo a tener en cuenta es la multitarea, que en realidad simula procesos asíncronos a cambio de conmutar entre tareas cada cierto intervalo de tiempo.

Es algo que con el tiempo a medida que avances en la programación, irás teniendo mucho más claro, de momento si estás empezando, básicamente considera que tu código se ejecuta de modo secuencial... y con el tiempo irás conociendo en detalle las excepciones y los motivos para ello.
#1928
Pareciera que al que redacta el artículo, le molesta que Mocosoft deje actualizar a usuarios con win7 o win8.

Quien no decida actualizar al final, será finalmente por 3 o 4 razones básicas:
- Que uno estime que probablemente no haya drivers disponibles para todo el hardware que dispone el equipo y algo nunca acabe funcionando bien, o simplemente no funcione. Esto será tanto más cierto, si ya el equipo fue actualizado a win7 de una versión previa (Vista, XP)...
- Que no haya programas en sustitución de los que use y desde Mocosoft, se acabe finalmente impidiendo usar programas para versiones previas de win2 (esto espero que no suceda, pero plausible es). El problema suele ser para casos donde hay programas con versiones de 32 bits, pero no para 64 bits... Aunque esto siempre es dependiente de las decisiones que Mocosoft tome al respecto. Lo más temido por todo el mundo es que cuando win10 acapare definitivamente todo el mundo win2, y sean solo residuales los usuarios de viejos S.O. empiece a tomar derroteros, de los que al final uno esté pensando bajarse de definitivamente de windows, porque no le gusta la senda a seguir... a mi por ejemplo, eso de que cada actualización conlleve tantos problemas por prisas, por falta de probar a fondo los cambios, me tira mucho para atrás, igual que a la mayoría de las empresas que no admiten permitirse el lujo de estar ni un solo día colgados por una mierdosa actualización fallida que te deje el equipo colgado.
- Que el usuario simplemente prefiera seguir hasta la muerte final de su equipo y cuando eso suceda (o de modo alternativo), compre un win10. Es decir si ya me he comprado un equipo win10 (o lo comprare más adelante) y aún tengo uno con win7, ¿para qué rayos voy a actualizar ese de win7 a win10?.
- Que no tenga ni idea de informática, y el miedo de una actualización así, le supere de tal modo que desista... suele ser usuarios que hasta instalar un simple programa nuevo, les produce miedo y trauma.
#1929
dijsktra, creo que no has revisado adecuadamente mi pseudocódigo... está en un tiempo O(n)

El bucle externo, recorre una sola vez cada elemento único, ya que la condición final, se va decrementando en el bucle interno, razón por la que se elige un bucle 'while'.

Si un array tiene pongamos 1000 elementos y hay 250 repes... el bucle externo, primero apunta a 999, pero al final solo habrá llegado hasta al 749. El bucle interno, en cambio solo recorre esos 250 repes, la suma de ambos es pués el total 1000 elementos.
Por supuesto alguna pequeña optimización puede hacerse, quizás eliminando variables, etc... pués está redactado al vuelo...

La declaración de  variables 'no inicializadas', ya te he respondido en alguna ocasión, que en pseudocódigo uno no tiene necesidad de dar detalles que distraigan la atención de lo que se pretende explicar, toda vez que cualquier programador podrá entender sin problemas tales detalles nimios.
Así poner el valor de un número a cero, es innecesario en pseudocódigo, otra cosa es que el valor inicialmente deba ser distinto del valor que tiene por defecto cada tipo de variable... es decir el pseudocódigo se abstrae de las características de todos los lenguajes, porque ya el que aplique algo a su lenguaje u otro aplicará lo que tal o cual lenguaje exija.
#1930
Ana, aunque tu descripción técnicamente es correcta, es subóptima...
Imagina un array de 1 millón de elementos, entonces tienes que para buscar repes en un millón de elementos, por cada repe hay que mover todos los de encima.
El peor caso sería que todo el array tuviera  un único y mismo valor, lo que implica que el segundo array se ejecutaría la primera vez 1 millon-1, el segundo ciclo 1 millón menos 2, el tercer ciclo un millón menos 3... así hasta que lleguemos al penúlimo el 999998 que solo moveremos 1.

La descripción que yo doy es la misma, pero el movimiento de ítems está optimizado, ninguno se mueve más de 1 vez. Para ello basta llevar adecuadamente actualizado cada índice... De la descripción dada, tan solo varía que al final, se entrega un array con solo los elementos no repetidos, que han sido copiados a un nuevo array, que a fin de cuentas es algo opcional según se necesite o no.