Hints y anotaciones



Cuando escribía likely, unlikely y __builtin_expect, me vinieron recuerdos de antaño. Me refieron en concreto a los hints o anotaciones. Es decir, añadidos que se hacen en el código fuente, con la finalidad que el documentador, compilador, intérprete o cualquier otra herramienta, pueda leerlos.

El caso de la macro likely, era evidente, un añadido que no afecta al código fuente, pero que sirve para indicar al compilador como mejorar el código que genera.

En realidad, las anotaciones, son algo que se usan con bastante frecuencia en casi todos los lenguajes de programación. Por ejemplo Google Closure Compiler y JSDoc usan los suyos para mejorar la velocidad de ejecución, detección de errores, y el detalle de la documentación respectivamente.…

Continuar leyendo...

Suunto Essential Steel



Como entusiasta de los relojes digitales, recuerdo de manera especial cuando el mercado estaba lleno de ellos. Marcas japonesas de renombre como Citizen u Orient, que hoy han abandonado completamente estos relojes. Incluso la presencia en el caso de Seiko es testimonial.

Puede no parecerlo, pero la oferta va más allá de los Casio que todos conocemos. Desde marcas más bien caras como Junghans, a medias como Vestal o Nixon. Sin duda la mayor variedad, la copen las marcas deportivas y de moda como Diesel, Adidas, Fila, Gucci, Guess, Nike, Rip Curl, etcétera. Incluso compañías españolas incluyen en su oferta algún modelo digital: Marea, Nowley o Calypso.…

Continuar leyendo...

likely, unlikely y __builtin_expect



Estaba cotilleando las novedades de GCC, y me he encontrado con lo que llaman __builtin_expect. Esta macro, permite indicar al compilador la probabilidad de una condición, de manera que el predictor de saltos sea capaz de generar un código más eficiente.

Lo habitual es que se usen con una macro más legible llamada likely / unlikely, y que indica una probabilidad alta, y una baja respectivamente.

Imaginemos un fragmento de código que lee un pixel, y en el caso de ser de color negro, retorna cierto, y falso en caso contrario:

if (GetPixel() == BLACK) { return(true); } else { return(false); }

Digamos que el compilador podría traducir este código a x86 de una forma parecida a esta:

call GetPixel cmp eax, BLACK je true false: xor eax, eax ret true: mov eax, 1 ret

De este modo nos encontramos que a nivel de lenguaje máquina, cuando el píxel sea de color negro, entonces se ejecutará el salto a la etiqueta true: y retornará cierto.…

Continuar leyendo...

Relojes digitales Elektronika



Hace tiempo hablaba de Elektronika, y ya había hablado en más de una ocasión sobre los relojes rusos Vostok. Cuando os hablaba de mi Elektronika ChN 54, surgió la enorme variedad de modelos disponibles, cada uno con diferentes funciones, pero ninguno con todas ellas.

De modo que en este artículo, intentaré aclarar las diferencias entre los relojes digitales Elektronika más populares, para que podáis compararlos entre ellos, o incluso con otros digitales más habituales.

var googletag=googletag || {}; googletag.cmd=googletag.cmd || [];googletag.cmd.push(function() { googletag.defineSlot("/360613911/GenericDFP2017", [728, 90], "div-gpt-ad-1506002846364-4").addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); });googletag.cmd.push(function() { googletag.display("div-gpt-ad-1506002846364-4"); });

5-18351 5-18394 5-29391Caja Metal Plástico en varios colores Plástico en varios coloresCristalHora y minutos Sí Sí SíSegundos12h/24hCalendario Sí Sí SíDía del mesDía de la semanaMesAñoDoble horarioDSTLuzAjuste luzAjuste de contrasteAlarmaSeñal horariaMelodíasAjuste de precisiónCronógrafoCuenta regresivaWater proofShock proof51 52D 52MD CHN-52 53B 53D CHN-53 CHN-53V 54D CHN-54 55D 55MD CHN-55Caja Metal Metal Metal Metal Plástico en varios colores Metal Metal Metal Metal Metal Metal Metal MetalCristalMineral Mineral Mineral Mineral Mineral Mineral Mineral Mineral Mineral Mineral Mineral MineralHora y minutos Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí SíSegundosSí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí12h/24hCalendario Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí SíDía del mes Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí SíDía de la semana Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí SíMesPantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundariaAñoPantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundariaDoble horarioDSTLuzMicrolámpara Microlámpara Microlámpara Microlámpara Microlámpara Microlámpara Microlámpara Microlámpara Microlámpara Microlámpara MicrolámparaAjuste luzAjuste de contrasteAlarmaSí Sí Sí4 4 Sí Sí SíSeñal horariaSí Sí SíSí Sí Sí Sí SíMelodíasBip Bip 5 + Bip5 + Bip 5 + Bip Bip Bip BipAjuste de precisiónSí Sí Sí Sí Sí SíSí Sí Sí Sí SíCronógrafoSí Sí SíCuenta regresivaSí Sí SíWater proofSíSíSíSí SíShock proofSíSí Sí77A 77M 79 92Caja Metal Metal Metal MetalCristal Mineral Mineral Mineral MineralHora y minutos Sí Sí Sí SíSegundos Sí Sí Sí12h/24h Sí SíCalendario Sí Sí Sí SíDía del mes Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundariaDía de la semana Sí Sí SíMes Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundariaAño Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundariaDoble horarioDSTLuz Microlámpara Microlámpara Electroluminescente SíAjuste luzAjuste de contrasteAlarma Sí Sí Sí SíSeñal horaria Sí Sí Sí SíMelodías 7 + Bip 7 + Bip BipAjuste de precisiónCronógrafo Sí Sí SíCuenta regresivaWater proofShock proof

Si te es más cómodo, he hecho el esfuerzo de generar también una hoja de cálculo que puedes descargar (35 Kb.…

Continuar leyendo...

Actualiza tus feeds



Últimamente he recibido algunos reportes de usuarios que me indican que los feeds de mi blog no se actualizan correctamente. Después de muchas pruebas, he descartado un problema en WordPress, en Cloudflare y en el W3 Total Cache.

El síntoma es bastante evidente, se muestra como último artículo, uno de Agosto de 2015, a pesar de que los feeds nativos, muestran el contenido normal, es Feedburner quien retorna los antiguos. Pensé que era algo transitorio, pero ocasionalmente va ocurriendo, y forzar un refresco completo, solamente lo corrige temporalmente.

Si es tu caso, por favor, abandona los feeds de Feedburner, y usa los propios del blog:

Entradas:
– RSS (Recomendado)
– Atom
– RDF

Comentarios:
– RSS (Recomendado)
– Atom
– RDF

Categorías:
– Actualidad
– Afeitado
– Arte
– Ciencia
– Cine
– Coches
– Escritura
– Filosofía
– Humor
– Informática
– Informática / Hardware
– Informática / Internet
– Informática / Juegos
– Informática / Noticias
– Informática / Programación
– Informática / Retro
– Informática / Software
– Juguetes
– Libros
– Moda
– Música
– Personal
– Reflexiones
– Relojes
– Televisión
– Varios

var googletag=googletag || {}; googletag.cmd=googletag.cmd || [];googletag.cmd.push(function() { googletag.defineSlot("/360613911/GenericDFP2017", [728, 90], "div-gpt-ad-1506002846364-5").addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); });googletag.cmd.push(function() { googletag.display("div-gpt-ad-1506002846364-5"); });



Continuar leyendo...

¡Feliz 2016!



Entramos en un nuevo año y toca una felicitación a mi estilo.

Esta vez, la cosa es sencilla, un 2016, que tiene nombre de popular pila, CR-2016 que nos ha acompañado durante décadas, y de la que os deseo lo haga muchas más.



Continuar leyendo...

¿Quién gana dinero con los Bitcoin?



Estoy seguro que todos habéis oído hablar de los Bitcoins o BTC, la moneda virtual de moda. Por supuesto yo tambíen había oído de ella, pero no fue hasta que Sergi, me dio más detalles, que no profundicé en el tema.

Para que todos lo entendamos, un Bitcoin es una divisa virtual, con conversiones a dinero real. En este sentido sería como una acción, o cualquier otra moneda, yo puedo comprar Bitcoins, o venderlos, a cambio de moneda real, sobre el tipo de cambio establecido.

Sin embargo, a diferencia del dinero real, que no se apoya en nada, recordemos que el patrón oro dejó de utilizarse en la década de los 1970, los Bitcoin se apoyan en un bien también escaso.…

Continuar leyendo...

Los relojes y los precios



Algún tiempo después de que reflexionara sobre la evolución del precio del Casio F-91W, se me ocurrió extenderlo a otros relojes, y así ver si a lo largo del tiempo han aumentado su precio o por el contrario lo han reducido.

La metodología que he seguido, ha sido partir de anuncios de la época en EE.UU donde aparecía el precio de tarifa, y compararlo con el PVP actual de ese mismo reloj, o un modelo lo más parecido posible cuando ésto no ha sido posible. A diferencia de otras comparativas que omiten el paso clave de la cotización variable a lo largo del tiempo de la peseta/euro, lo he tenido en consideración.…

Continuar leyendo...

La gabardina



Desde hace mucho tiempo que me gustan las gabardinas, y he tenido unas cuantas a lo largo del tiempo, incluso una de color morado oscuro que aún a día de hoy es recordada. Lo que ocurre, es que nunca me había planteado indagar acerca de sus orígenes, que si bien no son sorprendentes, al menos para mi, resultan interesantes.

El tejido de gabardina está compuesto de algodón, lana o fibra sintética muy apretada para darle consistencia. Se caracterizada por tener una cara lisa y una acanalada en diagonal, de manera que es relativamente impermeable al agua y aislante del viento.

Aunque esta tela es utilizada también en la confección de ropa de trabajo y uniformes espaciales, su mayor uso es en las prendas del mismo nombre, las gabardinas.…

Continuar leyendo...

La magia de un reloj



Los primeros relojes, ya fueran de sol, arena, o agua (clepsidras), tiene su origen bastantes años antes de Cristo, al ser instrumentos de concepción sencilla, tenían mucho de técnica y ciencia, y poco de ingeniería.

No sería hasta los primeros relojes mecánicos, datados del siglo XIV, que la relojería se asentó como una disciplina más. Comenzaron a ser protagonistas destacados en iglesias y abadías, dando una información temporal a todos aquellos que veían su exterior.

Internamente sus resortes, engranajes, péndulos, etcétera, moviéndose de manera coordinada, los hacían aparatos no aptos para neófitos.…

Continuar leyendo...