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.

5-18351 5-18394 5-29391 Caja Metal Plástico en varios colores Plástico en varios colores Cristal Hora y minutos Sí Sí Sí Segundos 12h/24h Calendario Sí Sí Sí Día del mes Día de la semana Mes Año Doble horario DST LuzAjuste luz Ajuste de contraste Alarma Señal horaria Melodías Ajuste de precisión Cronógrafo Cuenta regresiva Water proof Shock proof 51 52D 52MD CHN-52 53B 53D CHN-53 CHN-53V 54D CHN-54 55D 55MD CHN-55 Caja Metal Metal Metal Metal Plástico en varios colores Metal Metal Metal Metal Metal Metal Metal Metal Cristal Mineral Mineral Mineral Mineral Mineral Mineral Mineral Mineral Mineral Mineral Mineral Mineral Hora y minutos Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Segundos Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 12h/24h Calendario 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í Mes Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Año Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Doble horario DSTLuz Microlámpara Microlámpara Microlámpara Microlámpara Microlámpara Microlámpara Microlámpara Microlámpara Microlámpara Microlámpara Microlámpara Ajuste luz Ajuste de contrasteAlarma Sí Sí Sí 4 4 Sí Sí Sí Señal horaria Sí Sí Sí Sí Sí Sí Sí Sí Melodías Bip Bip 5 + Bip 5 + Bip 5 + Bip Bip Bip Bip Ajuste de precisión Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Cronógrafo Sí Sí Sí Cuenta regresiva Sí Sí Sí Water proof Sí Sí Sí Sí Sí Shock proof Sí Sí Sí 77A 77M 79 92 Caja Metal Metal Metal Metal Cristal Mineral Mineral Mineral Mineral Hora 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 secundaria Día de la semana Sí Sí Sí Mes Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Año Pantalla secundaria Pantalla secundaria Pantalla secundaria Pantalla secundaria Doble horario DST Luz Microlámpara Microlámpara Electroluminescente Sí Ajuste luz Ajuste de contraste Alarma Sí Sí Sí Sí Señal horaria Sí Sí Sí Sí Melodías 7 + Bip 7 + Bip Bip Ajuste de precisión Cronógrafo Sí Sí Sí Cuenta regresiva Water 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



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...