Warning: Declaration of Portfolio_Walker::start_el(&$output, $category, $depth, $args) should be compatible with Walker_Category::start_el(&$output, $category, $depth = 0, $args = Array, $id = 0) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/themes/bearded/functions.php on line 947

Warning: Declaration of Bearded_Walker_Nav_Menu_Edit_Custom::start_el(&$output, $item, $depth, $args) should be compatible with Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = NULL, $id = 0) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/themes/bearded/inc/class-custom-edit-walker.php on line 22

Warning: Declaration of Bearded_Custom_Menu_Walker::start_el(&$output, $item, $depth, $args) should be compatible with Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = NULL, $id = 0) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/themes/bearded/inc/class-custom-menu-walker.php on line 11
Números mágicos: CAFEBABE - Pisito en Madrid
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524

Números mágicos: CAFEBABE

Posted by: David Alayón

Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524

Ayer estábamos Kike y yo peleándonos por añadirle un JScrollPane a nuestro JTree y que éste se actualizase correctamente cuando le envíabamos el DefaultMutableTreeNode… vale… me callo…

El caso es que fuimos a preguntarle a un amigo, ex profesor de Java, próximo director de proyecto y lector de PisitoenMadrid quien, además de solucionarlos la duda en un momento y dejarnos una sensación de «somos muuuuy tontos«, me dijo una curiosidad sobre Java y los números mágicos (magic numbers)

En programación, un «magic number» es una constante numérica usada para identificar que tipo de dato se está usando. Por supuesto no sólo se usan en tipos de datos sino también en protocolos y ficheros. ¿Cómo identifica el Sistema Operativo qué tipo de fichero es un cierto archivo? Pues además de las extensiones, información nada relevante en Unix, el Sistema Operativo usa los «magic numbers» para saber el tipo de un archivo.

Los números mágicos están compuestos por dos bytes que contienen un número en Hexadecimal y la mayoría son muy típicos y aburridos:

  • GIF: es ‘GIF89a’ (0x474946383961) o ‘GIF87a’ (0x474946383761)
  • Zip: es ‘PK’, las iniciales de Phil Katz, creador de la utilidad de DOS PKZIP.
  • MIDI: ‘MThd’ (0x4D546864)
  • TIFF: ‘II’ (para Intel o little endian) o «MM» (para Motorola o big endian)

Luego hay otros más curiosos y simpáticos como los ejecutables de la Game Boy y Game Boy Advance cuyo número mágico codifica el bitmap del logo de Nintendo; o los antiguos archivos binarios para procesadores PowerPC en los Mac OS que contenían ‘Joy!’ (0x4A6F7921).

Pero Sun en un alarde de originalidad y supongo que para poder identificar perfectamente sus bytecodes, clases Java «compiladas», sin tener que realizar la conversión de hexadecimal o aprenderse una ristra de números y letras, puso como código hexadecimal 0xCAFEBABE… ¡CAFEBABE!

La verdad es que nadie sabe en concreto el por qué, o por lo menos no lo he encontrado. Lo más probable es que lo hayan pensado tanto por lo práctico como por la coña. Curioso que el símbolo de java sea una taza de café…

  1. n.l

    Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
    n.l
    at /

    En un dialecto de inglés, java quiere decir café.

    El ponerle Java al proyecto vino de James gosling, Arthur Van hoff, Andy bechtolsheim (se les ocurrió en una cafetería)

  2. meneame.net

    Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
    meneame.net
    at /
  3. DdS

    Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
    DdS
    at /

    Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524

    Que yo sepa lo de Java viene por la isla de Java (Indonesia) y su famoso café (de ahí la taza). Pruebas:

    http://en.wikipedia.org/wiki/Java_coffee (ver trivia)

    ¿Un dialecto del inglés? Parece que te lo hayas inventado, n.l…

  4. cocomiel

    Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
    cocomiel
    at /

    afecta en algo el endian?.

  5. Semana: 4-10 Junio 2007 at Pisito en Madrid

    Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
    Semana: 4-10 Junio 2007 at Pisito en Madrid
    at /
  6. Carlicos

    Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
    Carlicos
    at /

    Segun tengo entendido ( leyenda o no) la palabra java es usada para denominar coloquialmente al cafe , sobre todo entre los programadores.
    Y le pusieron ese nombre debido a la gran cantidad de cafe que tomaban sus creadores.

Los comentarios están cerrados.


Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524