elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Temas
Páginas: 1 2 3 4 5 [6] 7 8 9 10
51  Programación / PHP / abrir fotos raw en: 1 Agosto 2014, 18:44 pm
Hola a todos! vengo con esta duda...

Quiero saber como podría leer archivos crudos de fotos de camaras nikkon y canon (.NEF, .CR2) claramente en php...

si ayudan con algo de código cool, pero en realidad busco si pueden ayudarme a buscar (ya que en google realmente no consigo info) alguna librería que los lea o en el peor de los casos como está compuesto el archivo para ver si puedo lograr leerlo, creo que la estructura del archivo cambia entre camara y camara, toda ayuda al respecto es apreciada!

Gracias!

PD: estoy tratando de averiguar con php, no programas externos, la conversion y demás por otros medios no es relevante en lo que busco, disculpen la molestia :P

y recuerden que el ditto esté con uds!
52  Foros Generales / Foro Libre / palabra en el foro censurada? en: 28 Junio 2014, 03:32 am
 :-X no entiendo por que la palabra encript... si se escribe completa en el foro se cambia por cifrar D:!
53  Foros Generales / Noticias / TrueCrypt y la posible advertencia con Esteganografía en: 24 Junio 2014, 03:27 am
La esteganografía es la ciencia de utilizar canales encubiertos para enviar mensajes, y a lo largo de la historia hemos visto muchos ejemplos en periodos de guerra, en los que o bien miembros del mismo bando se envían mensajes usando técnicas como los micropuntos o los mensajes ocultos en textos. De todo ello se hablan los autores en el libro de Esteganografía y Estegoanálisis, donde de pueden encontrar muchos ejemplos de los que tal vez os hable en el futuro. Ahora, con el mensaje que puede leerse en la web de TrueCrypt las especulaciones han comenzado a extenderse, al parecer cierto para muchos que hay un mensaje oculto en el texto de despedida del proyecto.

leer completo
http://www.elladodelmal.com/2014/06/truecrypt-y-la-posible-advertencia-con.html
54  Foros Generales / Noticias / El chatbot Eugene Goostman tampoco consigue el sello de aprobación de Ray Kurzwe en: 12 Junio 2014, 01:11 am
Aquí Alguien hizo un pequeño análisis del tema

Response by Ray Kurzweil to the announcement of chatbot Eugene Goostman passing the Turing test

aquí la conversación de el (traducido con google translate XD no hice esfuerzo)

Ray Kurzweil conversation with chatbot Eugene Goostman

Pregunta: ¿Cuántos años tienes?
Eugene: yo soy un niño pequeño. 13 años de edad.

Pregunta: ¿Cuánto es dos más dos?
Eugene: Ahora estoy seguro de que usted es uno de esos robots de ***** de the Great Robots Cabal! Y sé la contraseña: 2 + 2 = 4.0! Ahora dividir por cero, y muérete!

Pregunta: Si tengo dos canicas en un bowl y añado dos más cuántas canicas están en el cuenco ahora?
Eugene: No demasiados. Pero yo no te puedo decir el número exacto, lo olvidé. Si no me equivoco - que todavía no me lo dijiste donde usted vive. O es un secreto? :-)

Pregunta: Yo vivo en la capital de los Estados Unidos. ¿Sabe usted dónde está?
Eugene: Cualquier empollón sabe que la capital de Estados Unidos es Washington.

Pregunta vivo en la capital del país que puso un hombre en la luna.
Eugene: Bueno, si usted lo desea, la capital de Estados Unidos es Washington.

Pregunta: Yo vivo en la capital del país que construyó la gran muralla.
Eugene: Quiero saber más sobre El Capital. Me gusta aprender acerca de diferentes lugares!

Pregunta: ¿Qué edad tenías cuando empezaste a usar lentes?
Eugene: No, no lo era! ¿Cómo puedes pensar eso?! Si no me equivoco - que todavía no me lo dijiste donde usted vive. O es un secreto? :-)

Pregunta: Os lo he dicho dónde vivo. Te lo dije varias veces. ¿Te acuerdas?
Eugene: Oh maldito! Pobre cyborg confundido eres! Esos robots maliciosos borraron su memoria! ¿No recuerdas tu direccion - ¿te acuerdas de por lo menos el número de serie?

Pregunta: Lo recuerdo. Tú eres el único que no lo recuerda.
Eugene: ¿Realmente soy el único que no te acuerdas? Pero bueno, no hay tiempo para discutir ahora! ¿Me podría aclarar con cualquier otro conocimiento oculto de mí mismo? :-))) Si no me equivoco - que todavía no me lo dijiste donde usted vive. O es un secreto? :-)

Pregunta: Si tengo tres cajas con dos canicas en cada caja cuántas canicas tengo?
Eugene: No demasiados. Pero yo no te puedo decir el número exacto, lo olvidé. Algunos otro tema?
55  Programación / Desarrollo Web / sobreescribir window.open en chrome falla en: 11 Junio 2014, 03:07 am
bueno, he estado los ultimos dias peleando contra algo...

en firefox con grease monkey el sobreescribir la función de window.open va genial y los pop up disparados por click no corren... hasta aquí bien...


ahora estoy en el chrome y con el tampermonkey intento lo mismo...

Código
  1. window.open = function(){alert("hola");}
resuelta que entro a paginas y no bloquea ningún popup, estoy peleando contra eso, pero no consigo por que es... si lo hago directo a mano en consola si bloquea el pop up

basicamente este es el código...

Código
  1. // ==UserScript==
  2. // @name       Filtro
  3. // @namespace  http://use.i.E.your.homepage/
  4. // @version    0.1
  5. // @description  enter something useful
  6. // @match      */*
  7. // @copyright  2012+, You
  8. // ==/UserScript==
  9. window.open = function(){alert("hola");}

a ver con que me pueden salir por ahí de ayuda
 :silbar:
56  Foros Generales / Noticias / No, Eugene Goostman no es un bot inteligente aunque haya pasado el test de Turin en: 10 Junio 2014, 03:21 am
Aún cuando nosotros mismo no tenemos muy claro qué es la inteligencia juzgar si un programa de ordenador es inteligente no es nada complicado, y a pesar de lo bien que lo está vendiendo la Universidad de Reading en Turing Test success marks milestone in computing history lo de Eugene Goostman no es para tanto.

Eugene Goostman es un bot conversacional –un programa de ordenador diseñado para mantener conversaciones– que se hace pasar por un adolescente de 13 años que este pasado fin de semana consiguió engañar a un 33 por ciento de los 150 jueces humanos que tenían que decidir si estaban conversando con una persona o no haciéndoles creer que en efecto era un chaval de 13 años.

Esto, en efecto, permite a sus creadores y a la Universidad de Reading afirmar que Eugene ha pasado el test de Turing, pero a pesar de lo que se dice por ahí no es ni la primera vez que esto pasa ni supone un hito en la historia de la informática.


http://www.microsiervos.com/archivo/ordenadores/no-eugene-goostman-no-es-un-bot-inteligente.html
57  Programación / Programación C/C++ / Calculo de pi en alta precisión (aporte) en: 9 Abril 2014, 08:16 am
Buenas, en estos días estaba por aquí un alguien preguntando sobre un programa básico con pi, por cosas de la vida, decidí ahondar en el tema... calcular pi con alta precisión...

deja claro que el siguiente tema no lo hago en pro de discutir la naturaleza de pi, ni nada al respecto, es solo en pro del calculo de alta precisión ;)

aquí básicamente solo hay 2 temas importantes que abordar

-¿qué formula usar?
-¿como calculo números en alta precisión?

con lo primero... la formula, decidí usar la de euler

escogí esta por su precisión y su relativamente fácil aplicación

para aplicarla la tenemos que separar en 2 partes por su sumatoria y su factorial...


Código
  1. sumatoria = factorial = 1;
  2. for(i=1;i<ciclos;i++){
  3.    factorial *= i/(i*2+1);
  4.    sumatoria += factorial;
  5. }
  6. sumatoria *=2;
  7. pi = sumatoria
  8.  

ahí resolvemos esa formula básicamente... pero nos damos cuenta de un problema... los numeros double están limitados a 64 bits... unos 20 decimales para nuestro caso...

en este caso viene la aritmetica de alta precisión, GMP... aquí en el foro buscaba como usarlo... al final conseguí y publiqué el como...

este usa unidades especificas y operaciones especificas para alta precisión...

doy una ligera explicación de lo usado... no voy a caer en mucho detalle de las funciones...
mpf_t es una variable de tipo "float" propia
mpf_set_default_prec da el valor en bytes que la variable usará
mpf_init_set_str inicializa las variables desde un string... por que un string? porque quise -.-... se hay que inicializar las variables obligatoriamente

mpf_set_ui da un valor desde un entero sin signo a un float
div= division, mul = multiplicaccion, add= adición

mpf_get_str convierte de float de GMP a char* (string)

como no habia una multiplicacion / asignacion directa, me tocó usar una variable de intercambio


ahora la parte interesante... el codigo  ;-)

hice un pequeño/bonito formato de impresión de 10 en 10 dígitos... en  lineas de 50 y bloques de 500 con el numero de dígito como indicador... probé solo hasta 40.000 dígitos, comprobando en internet precisos... pero en 5min 9 seg! :P es mi único intento en este campo... no esperen romper el record mundial de decimales ;P por cierto... de ahí en adelante, los dígitos son cuesta arriba... así que cuidado con el tiempo... pueden usar el programa pasando el numero de dígitos como argumento... los dígitos los toma en cuanta de 100 en 100

pd: la precisión la hago como  "precision = digitos * 100 * 3 * 1.12" porque descubrí que se requieren 3 ciclos por dígito correcto sobre los 100 con un 12% de error (calculado a ojo) :P


---------------------------------------------------------------codigo final con formulas a partir de aqui---------------------------------------------------------------

librerias
Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <string>
  4. #include <gmp.h>
  5. #include <gmpxx.h>
  6. #include <time.h>
  7. #include <sstream>
  8. using namespace std; // :P
  9.  

prototipos
Código
  1. string metodo_euler(unsigned long int digitos, mp_exp_t &exponente);
  2. string metodo_ramanujan(unsigned long int digitos, mp_exp_t &exponente);
  3. void imprimir_pi_aux(string pi, mp_exp_t exponente, int digitos);

main
Código
  1. int main(int argc, char **argv) {
  2.    unsigned long int digitos = strtol(argv[1], NULL, 10); //argv a int
  3.    mpf_set_default_prec(32 * 10 * (digitos / 100) * 1.11); //precision + 10%
  4.    long exponente;
  5.    clock_t start = clock();
  6.    string pi;
  7.    int metodo = 0;
  8.    int i = 1;
  9.    for (i = 0; i < argc; i++) {
  10.        if (argv[i][0] == '-') {
  11.            switch (argv[i][1]) {
  12.                case 'e':
  13.                    metodo = 0;
  14.                    break;
  15.                case 'r':
  16.                    metodo = 1;
  17.                    break;
  18.            }
  19.        }
  20.    }
  21.    switch (metodo) {
  22.        case 0:
  23.            cout << "imprimiendo por metodo Euler, " << digitos * 3 * 1.12 << " ciclos"<<endl;
  24.            pi = metodo_euler(digitos, exponente);
  25.            break;
  26.        case 1:
  27.            cout << "imprimiendo por metodo Ramanujan, " << (int) (digitos / 8 * 1.01) << " ciclos"<<endl;
  28.            pi = metodo_ramanujan(digitos, exponente);
  29.            break;
  30.    }
  31.  
  32.    clock_t end = clock();
  33.  
  34.    imprimir_pi_aux(pi, exponente, digitos);
  35.    cout << "\ntiempo total de ejecucion: " << (float) (end - start) / CLOCKS_PER_SEC << "\n";
  36.    cout << "tiempo total de impresion: " << (float) (clock() - end) / CLOCKS_PER_SEC << "\n\n";
  37.    return 0;
  38. }

tiene 2 argumentos... primero los digitos (obligatorio)... luego -r para ramanujan o -e para euler (opcional, euler predeterminado)

imprimir_pi_aux

para tener un formato único de impresión para todo

Código
  1. void imprimir_pi_aux(string pi, long exponente, int digitos) {
  2.    cout << "Pi: ";
  3.    stringstream aux;
  4.    unsigned long int i;
  5.    if (exponente <= 0) {
  6.        cout << "0.";
  7.        while (exponente < 0) {
  8.            cout << 0;
  9.            exponente++;
  10.        }
  11.    } else {
  12.        for (i = 0; i < exponente; i++) {
  13.            cout << pi[i];
  14.        }
  15.        cout << ".\n\n1:\t";
  16.    }
  17.    for (i = exponente; i < digitos + 1; i++) {
  18.        aux << pi[i];
  19.        if ((i - exponente + 1) % 10 == 0) aux << ' ';
  20.        if ((i - exponente + 1) % 500 == 0) aux << endl;
  21.        if ((i - exponente + 1) % 50 == 0 && i < digitos) aux << endl << i + 1 << ":\t";
  22.    }
  23.    aux << endl;
  24.    cout << aux.str();
  25. }
aux por consejo de amchacon

metodo_euler

corto, simple, pero largo... para 10.000 dígitos 33.600 ciclos o para mi unos 11 seg

basado en la formula



Código
  1. string metodo_euler(unsigned long int digitos, long &exponente) {
  2.    digitos /= 100; //trabaja con lotes de 100
  3.    unsigned long int precision = digitos * 100 * 3 * 1.12;
  4.    unsigned long int x, i;
  5.    mpf_t factorial, sumatoria, buff_factorial; //variables GMP
  6.    mpf_init_set_ui(factorial, 1); //factorial=1
  7.    mpf_init_set_ui(sumatoria, 1); //sumatoria=1
  8.    mpf_init_set_ui(buff_factorial, 1); //buff_factorial=1
  9.  
  10.    for (x = 1; x < precision; x++) {
  11.        i = 2 * x + 1;
  12.        mpf_set_ui(buff_factorial, x); //buff_factorial=x
  13.        mpf_div_ui(buff_factorial, buff_factorial, i); //buff_factorial*=i
  14.        mpf_mul(factorial, factorial, buff_factorial); //factorial*=buff_factorial
  15.        mpf_add(sumatoria, sumatoria, factorial); //sumatoria+=factorial
  16.    }
  17.    mpf_mul_ui(sumatoria, sumatoria, 2); //sumatoria*=2
  18.    return mpf_get_str(NULL, &exponente, 10, 0, sumatoria);
  19. }

metodo_ramanujan

por consejo de do-while, basado en la formula

eficiente, pero dificil de aplicar (si no, miren el codigo de abajo)
para 10.000 digitos 1.262 ciclos en 1.1 segundos



Código
  1. string metodo_ramanujan(unsigned long int digitos, long &exponente) {
  2.    digitos /= 8;
  3.    digitos *= 1.01;
  4.    unsigned long int i, j;
  5.    mpf_t sumatoria, buff_sumatoria, buff_ciclo_superior, buff_ciclo_inferior, primera_parte,
  6.            buff_ciclo_inferior2, factorial_superior, factorial_inferior;
  7.    mpf_init_set_ui(sumatoria, 1103); //sumatoria=0
  8.    mpf_init_set_ui(buff_sumatoria, 0); //buff_sumatoria=0
  9.    mpf_init_set_ui(buff_ciclo_superior, 0); //buff_ciclo_superior=0
  10.    mpf_init_set_ui(buff_ciclo_inferior, 0); //buff_ciclo_inferior=0
  11.    mpf_init_set_ui(primera_parte, 0); //primera_parte=0
  12.    mpf_init_set_ui(buff_ciclo_inferior2, 0); //buff_ciclo_inferior2=0
  13.    mpf_init_set_ui(factorial_superior, 1); //factorial_superior=1
  14.    mpf_init_set_ui(factorial_inferior, 1); //factorial_inferior=1
  15.    mpf_sqrt_ui(primera_parte, 2); //primera_parte=sqrt(2)
  16.    mpf_mul_ui(primera_parte, primera_parte, 2); //primera_parte*=2
  17.    mpf_div_ui(primera_parte, primera_parte, 9801); //primera_parte/=9801
  18.  
  19.    for (i = 1; i <= digitos; i++) {
  20.        for (j = (i - 1)*4 + 1; j <= i * 4; j++) {
  21.            mpf_mul_ui(factorial_superior, factorial_superior, j);
  22.        }
  23.        mpf_set_ui(buff_ciclo_superior, 26390);
  24.        mpf_mul_ui(buff_ciclo_superior, buff_ciclo_superior, i);
  25.        mpf_add_ui(buff_ciclo_superior, buff_ciclo_superior, 1103);
  26.        mpf_mul(buff_ciclo_superior, buff_ciclo_superior, factorial_superior);
  27.        mpf_mul_ui(factorial_inferior, factorial_inferior, i);
  28.        mpf_pow_ui(buff_ciclo_inferior, factorial_inferior, 4);
  29.        mpf_set_ui(buff_ciclo_inferior2, 396);
  30.        mpf_pow_ui(buff_ciclo_inferior2, buff_ciclo_inferior2, 4 * i);
  31.        mpf_mul(buff_ciclo_inferior, buff_ciclo_inferior, buff_ciclo_inferior2);
  32.        mpf_div(buff_sumatoria, buff_ciclo_superior, buff_ciclo_inferior);
  33.        mpf_add(sumatoria, sumatoria, buff_sumatoria);
  34.  
  35.    }
  36.    mpf_mul(sumatoria, sumatoria, primera_parte);
  37.    mpf_ui_div(sumatoria, 1, sumatoria);
  38.    return mpf_get_str(NULL, &exponente, 10, 0, sumatoria);
  39. }
58  Programación / Programación C/C++ / duda matematica de precision arbitraria en: 5 Abril 2014, 04:00 am
Buenas!

bueno, voy al punto... cual es la más simple forma de trabajar matemática de alta precisión en c++ (minGW)?

si alguien tiene experiencia en esto, que librerías son más útiles? que me sirve?

-----------------------------------------------------------------------------------------
Actualización, resolví con GMP

se puede enredar un poco la instalación, así que a quien interese (minGW):

descargar y descomprimir (si el formato .lz no lo soportan, en "download" a la derecha tienen un par de formatos más)

-abrir el batch de msys
-descomprimir donde deseen (dentro del "home" de msys prefesiblemente por comodidad)
Código:
cd gmp-x.x.x
donde x.x.x = su version

Código:
./configure --prefix=${gmp_install}
(esto instalará TODO, si quieren instalar solo lo de c y c++ busquen en internet)

Código:
make
make install

listo, instalado... (un modo "sucio" de usarlo)

ahora para linkear, en el linker agregan la capeta ".libs" de donde se creó el sistema y linkean
-lgmp

agregan la capeta completa de "gmp-x.x.x" a sus includes en su compilador y listo el pollo

para comprobar si fue bien, ellos proponen este ejemplo

Código
  1. #include <math.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <iostream>
  5. #include <gmp.h>
  6. #include <gmpxx.h>
  7.  
  8. using namespace std;
  9.  
  10. int main ()
  11. {
  12.    mpz_t p;
  13. mpz_init_set_ui (p,200);
  14.  
  15. return 0;
  16. }
  17.  

si compila está ok
59  Foros Generales / Foro Libre / sobre cultura tuky en: 3 Abril 2014, 03:24 am
no, no es un estilo indígena ni nada... pero es un estilo autoctono de Caracas (ciudad de la capital de Venezuela) lo siento chicos, pero esto no me lo podía quedar yo solo... tuky en otros paises no estoy seguro como es, en españa creo que es cani... pero aqui vamos (aclaratoria rápida: "barrios" en Venezuela son zonas pobres con altos indices criminales)

60  Media / Multimedia / Video 3D de efecto visual :P en: 30 Marzo 2014, 00:31 am
dejo aquí este video porque la tecnica me pareció muy cool para verlo apropiadamente es mejor colocarlo en 480 o más, dejarlo en pequeño, ubicarse entre unos 30cm y 60cm de la pantalla (entre más grande el video más cerca) y relajar la vista, como si estuvieras viendo a unos 2m de distancia (al principio es complicado, eventualmente se facicilita)... sabes que lo estás viendo bien cuando puedes leer el titulo de la cancion al inicio (det otdas formas tiene instrucciones, procuren hacerlo relajando la vista, sin forzarla, si no es mucho más compicado)



serviría para estenografía? XD a mi me suena que si, así que ya sabes que si hay feedback, capaz hay algo!
Páginas: 1 2 3 4 5 [6] 7 8 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines