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

#3401
No me convence la explicación...

De entrada si fuera así, producida por un cometa, porqué dejó de recibirse la emisión, el cometa seguía ahí... No se repitió la señal aunque se barrió la zona en los siguientes días.

Tampoco han pedido al SETI, para que apunte de nuevo a esos cometas y confirme si en efecto se captan esas señales... y pueda concluirse que definitivamente esa podría se rla causa (o al menos que en efecto esos cometas generan señales como la "WOW").

El foco de atención es que el giro del propio planeta (el nuestro), hace que la señal deba durar justamente 12 segundos y eso es lo que le confiere la capacidad merecedora de un estudio más profundo de la señal que se recibe... si sigue ahí... y no fue el caso.
#3402
No se hacen tareas y menos a los estudiantes...
Se resuelven dudas puntuales donde uno se queda atascado. si uno se queda atascado sin siquiera    pode rempezar, es un claro indicativo, de que no se ha esforzado demasiado...

De todos modos te pongo los pasos (pasos grandes, luego hay que desmenuzar cada uno en otros más pequeños).

0 - De entrada la imagen de salida no puede ser cualquier formato, debe ser un formato de imagen que no se comprima, ya que el compresor de la imagen sobrescribirá el contenido real (no preserva la imagen original), y por tanto se perderá el código que trates de ocultar. Dicho lo cual, elige un formato sin compresión, por ejemplo BMP.

1 - Lo siguiente es pués tener una especificación del formato, para ser capaz de leer e interpretar la imagen de origen... en realidad te puede bastar con saber como obtener el array de bytes de los píxeles para modificarlos...

2 - Una vez cargada la imagen (hazte a la idea que necesitas 1 píxel por cada 3 bits de tu mensaje), obtén el array de píxeles si los obtienes en bytes, no tienes que desmenuzarlos (separarlos en sus componentes RGB (o RGBA)).

3 - Ya con el array de bytes de los píxeles, construyes varios bucles, uno por cada carácter que debas ocultar y otro interno por cada bit del carácter.
Sobre este mismo bucle, llevas un contador de un bucle 'fantasma' es decir se recorre el bucle de bytes al mismo tiempo que se explora cada bit de los caracteres...
Más o menos así:

Por cada caracter a ocultar
   Por cada bit en el carácter
       arraypixeles(n) = (arraypixeles(n) and 254 or bit)
       n +=1 <---- aumenta el contador de bytes del array
   siguiente bit  <---- aumenta el contador de bits del carácter
siguiente caracter <---- aumenta el contador de carácteres en la cadena a ocultar


La línea, clave es: arraypixeles(n) = (arraypixeles(n) and 254 or bit)

  "arraypixeles(n) and 254", pone el último bit de ese byte a 0, es decir lo borra, porque 254 es una máscara: 11111110, por lo cual, respeta en origen los 7 bits más altos, pero borra el último.

or bit) <---- pone ese bit (el de menor peso en el byte al valor que contiene el bit tratado en el carácter. Si es 1, pone un 1 si es 0, queda tal cual.

4 - Guarda la imagen a fichero. Si tomaste el array de bytes de forma copiada en vez de obtener un puntero al origne, deberás copiar el nuevo ocntenido al destino, antes de guardar la imagen.
Como la imagen es sin compresión, no hay una operación ulterior que borre los bits menos relevantes.

Por qué funciona: Porque el cambio de un bit en un byte apenas si cambia de matiz el color del píxel, además no siempre se cambian los 3 bits (RGB), alguno coincidirá con el bit de origen.

Es buena práctica, al comienzo añadir un textoadicional para que al leer de nuevo, se pueda asegurar de forma rápida si contiene aún nuestor mensaje o no, añadiendo una especie de 'copyright', que tiene más el sentido de 'sigue existiendo'... si tuvieras un conocimiento mayor, yo haría un hash al texto a escribir, y escribiría ese hash, así sabría al final si el texto se ha conservado sin alteración...

Lógicamente deberías realizar la parte inversa, es decir la parte que lee la imnagen y luego recompone el texto con el último bit de cada byte del array de bytes de los píxeles.

mmm... te advierto solo de 3 cosas:
A - Según el formato elegido, pueden sus líneas ser leídas de abajo arriba o de arriba abajo. debe tenerse en cuenta, para que no quede al revés el texto al escribirlo o leerlo y uno crea que 'falló'.
B - Ten encuenta como vas leyendo los bits de los caracteres, eres libre de empezar desde el bit de menos peso primero y acabar en el 7º, o al revés... incluso nada teimpide seguir otro orden diferente, por si alguien intenta leerlos seguidos para descubrir si hay un texto oculto.
C - No uses los bytes del canal alfa, si el formato lo guarda, a veces puede ser ignorado y por tanto podría no ser recuperado.

El resto es tarea tuya. a grandes rasgos tienes el tema bastante claro... Suerte y al tajo, al trabajo.


#3403
Un bucle for en C, no es tan distinto de un bucle for en VB... aunque me parece más transparente el de Vb, es cuestión de acostumbrarse...

Desgajo los bucles, así analizas y comparas las partes:
for (int i = 0; i < bytes.Length; i++)
For i = 0  to bytes.length step 1 ' en VB si Step =1, se puede omitir...

Un Stream no es distinto en VB que en C.
En el siguiente enlace, verás que los métodos, constructores, etc... son idénticos, solo cambia a veces la sintaxis conforme a cada lenguaje. de hecho pulsa en una sintaxis, y luego en la de VB, para ver las diferencias
https://msdn.microsoft.com/es-es/library/system.io.stream(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

Si el problema es que no entiendes muy bien la clase, debajo de las propiedades y métodos, vienen unos comentarios que te ayudarán a entenderlo mejor.

Y debajo de los comentarios hay un ejemplo (muy escueto) de código en C# y el mismo en VB
#3404
A mi la palabra superdotado... no me dice nada.
Creo que hay gente aplicada y gente enormemente aburrida y bueno también hay algunos zeporros a los que no les entra ni 2 + 2.

Puede ser cierto que si alguien se centra en los estudios pueda recibir acoso por parte del algunos con-estudiantes (es absurdo empeñarse en llamarlos compañeros si no existe compañerismo), tampoco será menos cierto que dotarles de medidas especiales como centros especializados, profesorado más cualificado y más medios, creará auténticos imbéciles egocéntricos... entonces nos habremos ido de un extremo al otro, solo que en este último caso, encima nos ha costado algo del bolsillo...

Creo que si uno se considera superdotado, lo que debe hacer es estudiar en clase, como buenamente pueda, y en su tiempo libre que se extienda en lo que prefiera. Creo que  lo más sano para un estudiante (15-25 años), es que tenga una vida lo más 'normal' posible al menos en su horario estudiantil...
#3405
Hay varias formas...

Desde luego usar una aplicación como consola es la mejor solución. Básta añadir un módulo y crear el método público Main... y ya desde ahí abres el formulario que quieras, o ninguno...
Código (vbnet) [Seleccionar]
Module Module1
   Dim f As New Form1

   Public Sub main()

       f.Show()
       '  f.ShowDialog() ' según lo que convenga al caso...
        ' o simplemente no lo muestras y ejecutas código, desde la instancia 'f'
   End Sub
End Module


Si persistes en usar una aplicación windows forms (no es tan relevante el caso), entonces lo tienes que hacer desde el evento Mostrado:

Código (vbnet) [Seleccionar]
Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
       Me.Visible = False
   End Sub

#3406
Lo absurdo es nombrar Alá, por aquí y por allí... Asesinan sin más y sin motivo (por lo menos conocido).
Alá no manda matar a nadie, pero me temo que la mayoría de musulmanes son incultos de su propia fé.

Incluso cuando alegan lo de "la guerra santa contra los infieles", se habal de guerra, no se asesinatos... una guerra conlleva una declaración de guerra y los miembros son reconocidos como tales en ambos bandos (aunque sea una declaración de guerra unilateral). Para colmo, ni siquiera entienden eso de 'infieles'. Un cristiano cree en Dios y Dios, Alá, Yahvé son distintos nombres para el mismo dios. Luego ni los cristianos ni los judíos son 'infieles', pero parece que les da igual, o quizás esa misma ignorancia les empapa.

Lo que les mueve es un odio irracional, que roza la locura... y considero que como la rabia, hay que hacer lo que dice el dicho: "Muerto el perro, se acabó la rabia". La cárcel es un beneficio de duda, que no merecen tenerse en consideración con esos babosos.

...y si creen que les esperan 10.000 vírgenes, lo llevan crudo...  creerse promesa vanas.  :laugh: :laugh: :laugh:
#3407
No entiendo a qué viene tanta polémica barata. Pero eres bastante cansino con que el chico tenga que aprender lo que a ti te salga de los ëggs...

Te pongo un ejemplo de adónde lleva... Si tu vas a un taller mecánico a arreglar tu coche, porque tiene un problema y tienes prisa, puede que tras salir de ahí, te queden ganas de aprender algo de mecánica, porque te ha parecido interesante... y por lo tanto puede que quieras seguir un cursillo... ahí llegas tú y le dices que nada mejor que comprarse un coche viejo de segunda mano y ponerse a arreglar el motor... cuando uno solo quería aprender mecánica, pero a fondo, no mancharse las manos arreglando nada.

Cita de: Poyoncio en  4 Junio 2017, 04:15 AM
De todas formas, volviendo a tu comentario de aprender algoritmia, no entiendo porque le recomiendas eso,
Ye calientas inútilmente... Te reto a que me muestres donde le señalo "que aprenda algoritmia".

Bla, bla, bla... No estamos aquí para discutir tonterías, si no para resolver las dudas que la gente pueda tener... y resolver dudas, nunca puede ser 'aprende este lenguaje' y si no lo entiendes, lo siento por tí.
#3408
Poyoncio, el usuaro 4k1l3s, no ha dicho que quiera ser programador, lo ha dejado bien claro... Él mismo lo ha remarcado en negrita:
Cita de: 4k1l3s en  3 Junio 2017, 17:50 PM
...Me interesa adquirir un conocimiento técnico y con cierta profundidad en informática general antes de adentrarme en la seguridad informática.
#3409
El primero de la editorial RA-MA, está muy bien... no te preocupes que sea del año 2004, incluso libros de los años 80, son buenos para una introducción a la informática. Piensa que a media que pasa el tiempo, hay más 'cosas', luego para explicalro todo en 500 páginas tienes que pasar poir encima, de soslayo o sin mención en muchas cosas. Así que en realidad, una auténtica introducción a la informática es la que se daba en los 80, hoy día en vez de llamarlo introducción, habría que llamarlo 'paseo' por la informática. en cualquier caso, es imposible en un solo libro asumir toda la informática, realmente haría falta una enciclopedia de muchos tomos. con la circunstancia de que habría que actualizarlo cada 2 años...

Respecto de aprender programación: ERROR, y tal o cual lenguaje: ERROR... con respecto a la programación interesa más saber pensar, tener un pensamiento matemático y resolver problemas de un modo de pseudocódigo. Más adleante si uno quiere adentrarse en la programación, deberádecidir que lenguaje le conviene más, lo cual en su mayor parte deberá basarse en la plataforma que mejor domine (para qué C0J0N3X quiere uno aprender un idioma que solo hablan 100.000 personas, y que nunca va a ser una cifra de mayor envergadura?). en resumen, no  te dejes llevar por las aseveraciones de 'aprende este lenguaje', son basadas en fanatismos ridículos. Cuando llegue el c aos, si llega, decide por tí mismo...
#3410
No se ve bien... aunque te han reducido la imagen, mejor si la hubieras recortado y así seguiría viéndose grande sin ocupar demasiada pantalla.

De todos modos por lo que se intuye, y porque en esos tiempos todos los cables de altavoces eran iguales, la cosa es que basta con pelar los cables, retrcerlos bien y estañar la punta 2cm. aprox.
Bajas la pestaña, introduces la punta del cable estañada, y vuelves a subir la pestaña, y listo el cable queda bien sujeto y con buena conexión.

Si no es el caso, vuelve a poner la imagen grande, pero recortandola para mostrar solo la zona del recuadro amarillo que has trazado... Había otros dos tipos de conexión similares, que funcionaban de igual modo, pero en uno la pestaña no era tan cómoda, hacía de pulsador, en vez de tener dos posiciones y en otra, bastaba con empujar... en este caso es cuando era más notable lo incómodo si el cable no estaba estañado, pues resultaba complicado ejercer fuerza para introducirlo (en los otros casos con pesataña, se salvaba).