Subscríbase /Subscribe

Bienvenidos a mi Bitácora personal sobre novedades en ciencia, tecnología, naturaleza y tal vez algo de arte desde mi particular punto de vista; también incluyo algunas noticias que considero puedan tener cierto interés o relevancia relacionadas principalmente con Hardware y Software. En el primer artículo incluyo información sobre esta página. Gracias por su visita.

Welcome to my personal Blog. Here you can find several articles about science, technology, nature and maybe some of art from my own point of view; also I will include some interesting news about software and hardware. Many are written in spanish but you can use this translator to read in english. Thank you for your visit.

sábado, 27 de junio de 2015

El problema de las llaves de agua

Un acertijo sencillo, sin frases escondidas ni cosas para adivinar, sólo hay que pensar:

En el primer piso de un edificio de tres pisos (un departamento por piso) hay tres llaves que controlan el abastecimiento de agua (A,B y C), cada una de un departamento. Puedo entrar al departamento del tercer piso, pero no al primero ni al segundo. Las llaves pueden abrirse y cerrarse las veces que se necesite. No hay nadie que informe desde alguno de los departamentos si hay o no agua. Sólo subiendo al tercer piso se puede saber si hay o no abastecimiento de agua en dicho departamento. El problema consiste en averiguar cuál de las llaves corresponde al departamento del tercer piso, subiendo el menor número de veces a realizar la verificación. Asumir que las llaves están inicialmente cerradas.



Rpta: Sólo hay que subir a verificar una vez: Se deja algo bajo el caño abierto del tercer piso, un balde vacío por ejemplo. Se baja y se abre la llave A medio minuto, luego se deja abierta la llave B y se sube a realizar la verificación. Si el balde se encuentra con agua pero no sale agua del caño, entonces la llave A corresponde al departamento del tercer piso. Si hay agua saliendo del caño, entonces es la llave B. Si no hay agua en el balde ni sale del caño, entonces la llave correcta es la C.

martes, 28 de abril de 2015

vHDL Obfuscator GUI - Ofuscador de código HDL

 Los Lenguajes VHDL ([Very High Speed Integrated Circuit] Hardware Description Language) y Verilog HDL, son estándares definidos por la IEEE que permiten describir el comportamiento de hardware. Su aplicación más extendida, pero no única, es la generación de circuitos digitales y su simulación.

En algunas ocasiones un diseñador necesita compartir información pero no desea revelar el contenido de su código. Existen técnicas propietarias de los fabricantes de dispositivos lógicos programables (como las FPGA) que permiten encriptar el código, pero la mayor parte de las herramientas que realizan dicha protección, requieren de la adquisición de licencias adicionales y además no suelen ser portables.

Cuando lo que se desea es proteger ligeramente la propiedad intelectual del código fuente HDL, pero no necesariamente controlar la distribución del mismo, es posible utilizar técnicas más sencillas como la ofuscación. Esto permite generar un archivo fuente en HDL que es muy difícil de ser leído por un ser humano, permaneciendo válido y aceptado por un sintetizador o compilador, generando un resultado funcionalmente idéntico al código original sin ofuscar.

Hay que resaltar, que la ofuscación del código no tiene por intención la protección de secretos industriales, pues no tiene el nivel de una encriptación. Las referencias siguientes pueden ayudar a comprender mejor la aplicación que tiene el ofuscar el código:

https://www.aldec.com/en/support/resources/documentation/articles/1586

https://www.aldec.com/en/company/blog/5--camouflage-for-your-hdl-code

http://www.visengi.com/products/software/vhdl_obfuscator

http://www.semdesigns.com/Products/Obfuscators/VHDLObfuscator.html

En el siguiente enlace se muestra un proyecto que consiste en la generación de una herramienta gratuita, con interfaz de usuario gráfico que permite ofuscar con facilidad código fuente HDL, permitiendo realizar comprobaciones de la sintaxis, tanto mediante el resaltado de palabras clave como con el uso de una herramienta gratuita para la comprobación semántica:

http://ue.accesus.com/vhdl-obfuscator


miércoles, 15 de abril de 2015

Albert, Bernard, Cheryl y el problema de la fecha de su cumpleaños (Cheryl's birthday)

Un problema de lógica matemática aplicado a niños entre 14 y 15 años en Singapur ha llamado mucho la atención en internet en días recientes. El enunciado del problema es el siguiente:

"Albert y Bernard se han hecho amigos de Cheryl y ellos quieren saber cuándo es su cumpleaños. Cheryl les da una lista de 10 posibles fechas:

15 de mayo, 16 de mayo, 19 de mayo,
17 de junio, 18 de junio,
14 de julio, 16 de julio,
14 de agosto, 15 de agosto y 17 de agosto.

Cheryl les cuenta a Albert y a Benard, por separado, el mes y el día de su cumpleaños respectivamente.

Albert: "Yo no sé cuándo es el cumpleaños de Cheryl, pero sé que Bernard tampoco lo sabe".
Bernard: "Al principio, yo no sabía cuándo era el cumpleaños de Cheryl, pero ahora lo sé".
Albert: "Entonces, yo también sé cuándo es el cumpleaños de Cheryl".

Así que, ¿cuándo es el cumpleaños de Cheryl?"

Se han dado varias soluciones, yo mismo llegué en principio a una respuesta común: 17 de Agosto, pero luego de un análisis más meditado se obtiene el 16 de Julio. La diferencia principal en la obtención de dichas fechas radica en la forma en que nuestro cerebro maneja los supuestos y organiza la información de forma global, esto nos arrebata la pista que nos da la secuencialidad y textualidad de las afirmaciones de Albert y Bernard.

Un punto controversial se encuentra al analizar la primera afirmación de Albert:

Albert: "Yo no sé cuándo es el cumpleaños de Cheryl, pero sé que Bernard tampoco lo sabe".

Que Albert esté tan seguro de que Bernard no conoce la fecha elimina aquellas soluciones con día único, es decir:

19 de Mayo y 18 de Junio

Albert conoce que en dichas fechas no es el cumpleaños. Pero aquí empieza la controversia, algunos sugieren que sólo esas dos fechas pueden ser eliminadas por dicha afirmación, sin embargo se pasa por alto algo esencial, Albert sólo tiene información sobre los meses, por lo tanto que el 19 de Mayo sea descartado, por ejemplo, indica indirectamente que él sabe con certeza que el mes mayo es incorrecto. En lógica lo escribiríamos así:

(19 y mayo) = falso;
por lo cual 19=falso y/o mayo=falso;

Como Albert no puede afirmar nada sobre el día sólo queda mayo=falso, con lo cual se descartan las soluciones que incluyen al mes mayo y de la misma forma las que incluyen a junio:

15 de mayo, 16 de mayo, 19 de mayo,
17 de junio, 18 de junio,
14 de julio, 16 de julio,
14 de agosto, 15 de agosto y 17 de agosto.

Bernard que ha estado escuchando atentamente aplica el mismo razonamiento de Albert quedándose con las siguientes posibilidades:

14 de julio, 16 de julio,
14 de agosto, 15 de agosto y 17 de agosto.

Pero Bernard conoce el día, lo único indeterminado para él es el mes, dado que afirma que ahora ya sabe cual es la fecha correcta entonces podemos descartar que el día sea el 14, las opciones quedan entonces de la siguiente manera:

14 de julio, 16 de julio,
14 de agosto, 15 de agosto y 17 de agosto.

Albert sabe ahora que Bernard conoce la respuesta, deduce también por lo tanto que el día 14 queda descartado con lo cual se queda con las siguientes opciones:

16 de julio,
15 de agosto y 17 de agosto.

Y cómo él conoce cual es el mes correcto dice sin dudar: "Entonces, yo también sé cuándo es el cumpleaños de Cheryl", esta afirmación sólo es posible si Albert conoce que el mes del cumpleaños es en julio, puesto que si fuera agosto, quedaría aún con la duda de si es el 15 o el 17. Nosotros por lo tanto podemos deducir de la última afirmación de Albert que agosto queda descartado:

16 de julio,
15 de agosto y 17 de agosto.

Por lo cual obtenemos como respuesta que el cumpleaños de Cheryl es sin duda el 16 de Julio.

miércoles, 4 de febrero de 2015

ALERTA: Ransomware "CryptoWall 3.0", HELP_DECRYPT

Si de pronto no puedes acceder a un documento y en su carpeta aparece cualquiera de los archivos:

HELP_DECRYPT.TXT
HELP_DECRYPT.PNG
HELP_DECRYPT.HTML
HELP_DECRYPT.URL

Apaga inmediatamente tu PC, y comunícate con tu asesor en informática de confianza. Tu información está en serio peligro. El Ransowware "CryptoWall 3.0" anda suelto encriptando documentos de Office, imágenes, videos, etc. sobre escribiéndolos, haciéndolos prácticamente irrecuperables, y solicitando como rescate de tus datos el valor de USD$500 pagables en (2.33 al cambio) Bitcoins dentro de las 170 horas de realizada la encriptación, luego el costo sube al doble. El malware ataca a todos los archivos que se encuentren dentro de las unidades listadas por el sistema operativo, es decir, discos duros, unidades de memoria externas (memorias y discos usb) y unidades de red inclusive. Hasta hay reportes de que es capaz de modificar los archivos en Dropbox a los que la computadora infectada tuviera acceso.

En lo posible no intentes recuperar tu mismo la información, ni empieces a descargar supuestas herramientas que ofrecen ayudarte, muchas de ellas son falsas y buscan sacar provecho de tu situación. La mejor forma de intentar recuperar en algo tus documentos es mediante técnicas y herramientas profesionales y mejor si se realiza desde una computadora que se encuentre libre del Ransomware, si se tiene suerte y su sistema operativo es Windows 7, es posible que se haya tenido activada la opción de protección de sistema. y mediante la exploración del "volume shadow copy" existe la posibilidad de recuperar versiones previas de sus valiosos archivos. Sin embargo CryptoWall en su tercera versión intenta borrar esta copia de seguridad e inclusive desabilita la protección mencionada en un intento de desaparecer cualquier posibilidad de recuperación, afortunadamente no siempre consigue eliminar adecuadamente el archivo principal del "Shadow Copy" que se encuentra en una ubicación protegida.

¿Cómo protegerse de este nuevo ataque?
La medida más efectiva de todas: La copia de seguridad (Backup) Usted siempre debe de suponer que los archivos de su computadora son vulnerables, y que de un momento a otro simplemente puede perder todo aquello que en ella se encuentra, bajo esa premisa, debería de regularmente realizar copias de seguridad de sus archivos en unidades que sólo se conecten a la computadora para realizar dicha copia.
Mantenga su sistema operativo actualizado, muchos malwares de este tipo aprovechan las vulnerabilidades del sistema para tomar el control del mismo. Un sistema operativo no actualizado y conectado a la Internet se encuentra extremadamente expuesto a estos ataques y no existe garantía total de que un antivirus lo proteja si su sistema no ha sido corregido (parchado).
No abra ningún tipo de archivo de fuentes no confiables, no descargue contenido ni juegos que ofrecen ser gratuitos si no está 100% seguro de su origen.
Cuando navegue por Internet preste especial atención a los anuncios que indican que debe actualizar tal o cual complemento "plug-in" muchos de esos avisos son falsos, sólo haga caso a las actualizaciones que el propio sistema operativo (Windows) le sugiera e ignore los avisos que aparezcan en el navegador o página web.
Si tiene un antivirus actualízelo regularmente, conectando cada cierto tiempo su máquina a la Internet. Un antivirus desactualizado es una coladera.
Finalmente, vuelva a hacer backups, suba sus archivos críticos en forma manual a la nube.

lunes, 24 de noviembre de 2014

Nokia -> Ovi -> Here Maps: Offline Free Navigation

Echabas de menos Nokia Maps (Ovi Maps) pues Here de Nokia está disponible para Android, con navegación y mapas gratis. Lo mejor de todo es que puedes descargar mapas detallados y gratuitos además de voces en diferentes idiomas por WiFi y usar la navegación fuera de línea para no consumir ni un KB de tu plan de datos. Se instala sin problemas en tablets y smartphones Android. Perfecto para salir de viaje a lugares en donde no se tiene acceso a internet. Además realiza las búsquedas de los destinos y traza la ruta de navegación en modo sin conexión (Offline).

viernes, 19 de septiembre de 2014

Actualización PulsarERD: Disco de Rescate de Emergencia, ISO o USB de arranque

Hace años (2006) lancé por primera vez un disco de rescate de emergencia, esa vez basado en Windows XP (PE) ahora en la versión 2014 he actualizado las herramientas y basado el sistema en Windows 8.1 (PE) lo que permite recuperar sistemas hasta dicha versión. Por el momento no incluye muchas herramientas, sólo las imprescindibles y se irán agregando en caso se necesiten. Además es posible generar a partir de la imagen ISO una unidad USB de arranque con lo cual no sólo es posible tener mas espacio disponible sino que se hace sencillo agregar herramientas adicionales.

domingo, 15 de junio de 2014

Error: "!Especificación de carácter no válida" en las fórmulas de tablas en Word

Múltiples referencias a la configuración regional en la web. Cambiar separador de listas a ";" Caso particular el Perú con su símbolo de moneda "S/." cambiar a "Soles" o "PEN"

Habilitar JQuery para ser usado en la consola de Chrome

Tratando de ejecutar algunos comandos de jQuery, en la consola de Google Chrome con la finalidad de extraer los nombres de los campos de un formulario de Google Docs, me topé con el inconveniente de que la consola asigna a $ como alias a document.getElementById() por lo cual algo como: 

$('td').each(function() {
// realizar algo relevante con cada elemento aquí
});

No funciona en la consola a menos que jQuery se cargue manualmente; lo que se hace con facilidad ejecutando el código siguiente en la consola:

var script = document.createElement("script");
script.setAttribute("src", "https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js");
script.addEventListener('load', function() {
   var script = document.createElement("script");
   document.body.appendChild(script);
}, false);
document.body.appendChild(script);

A continuación, el código jQuery que se inserte será interpretado correctamente. Una pequeña modificación se realizó al script respecto a ejemplos que se encontraron en la web. Debido a que los formularios de Google Docs se cargan de forma segura usando https, se tuvo que modificar la línea de carga del jQuery de http a https.

Existen extensiones de Chrome que permiten la inyección jQuery en cualquier página web, aunque no las he probado dejo los enlaces hacia algunas de ellas:

lunes, 9 de diciembre de 2013

Graduación de la Promoción 2013 Nikola Tesla

Si bien he tenido la suerte de participar muchas veces en eventos y conferencias como expositor, pocas veces han sido tan significativas como la del pasado 30 de noviembre del 2013, en la que tuve el honor de participar como padrino de promoción de un grupo muy especial de alumnos y amigos. A diferencia de otras oportunidades sabía que, en esta ocasión, lo que dijera podría quedar en la memoria de aquellos jóvenes que se encontraban viviendo uno de los momentos más especiales de su formación profesional. A continuación coloco el discurso que les preparé:

Discurso del Padrino de la Promoción 2013 Nikola Tesla

Buenas noches, autoridades de la universidad, docentes, padres, familiares, estimados graduandos:

Quiero agradecer su consideración al elegirme como uno de sus padrinos de promoción junto al Ingeniero Jaime Marcas. Es para mí muy emocionante tener el honor de ser parte de esta noche tan importante en la vida de cada uno de ustedes. Cuándo me preguntaron si deseaba ser padrino de la promoción sentí una gran alegría, luego internamente me interrogué que podría haber hecho para merecer tal distinción y finalmente un terror me invadió cuando supe que tenía que preparar un discurso.

Sentado frente a mi computadora, intentaba escribir alguna anécdota para contar esta noche, en eso recordé un pequeño y antiguo libro que guardo en el estante; en estos tiempos en que todo se busca en internet me pareció curioso acudir a algo impreso que pudiera tener cierta vigencia. Había un separador hecho de un trozo de papel que señalaba una página en particular, así que con curiosidad me apresuré a leer qué había quedado marcado, El párrafo iniciaba con un consejo:

”Vive con sencillez, ¿Por qué complicar las cosas? Sé sencillo y eficaz”.

Una frase muy acertada y cada vez más difícil de cumplir en momentos en que parece que todos están en continua competencia. A veces es necesario que se nos recuerde que en el valor de la sencillez se encuentra el secreto para ver las cosas como realmente son y darles su verdadero valor. Mediante la sencillez nuestro instinto e intuición se manifiestan y nos permiten una mayor claridad de pensamiento.

Vivimos en el tiempo de las computadoras, de la información y del mundo conectado, Yo pertenezco a la generación que vio a muchos de estos inventos desarrollarse día a día y pasar a formar parte de la vida cotidiana. Ustedes han elegido como nombre de su promoción a Nikola Tesla, uno de los ingenieros y científicos más revolucionarios de nuestra historia, sin él no hubiesen sido posibles muchas de esas comodidades que hoy gozamos en lo que llamamos la vida moderna. Tesla era rebelde e idealista, su motivación no era el dinero o la fama, buscaba con sus inventos un mundo mejor y por lo mismo era incomprendido en un mundo que se mueve principalmente hacia la creación de riqueza.

Ustedes durante el desarrollo de su carrera, deberán también elegir; todo sería fácil si la riqueza viniera de la mano con el beneficio de la humanidad, pero lamentablemente la mayor parte del tiempo no sucede así. Espero que llegado el momento, puedan brindar un poco de su brillantez e ingenio a causas que no necesariamente les reporte un beneficio económico, y recuerden que las habilidades que les fueron concedidas pueden también ser empleadas para el beneficio de los demás.

Finalmente, queridos graduandos, futuros ingenieros, ustedes egresan en un momento en que nuestro país tiene la gran necesidad de ideas inspiradas, mano firme y corazones bondadosos, que le permitan seguir adelante y luchen contra los males que continuamente deterioran nuestra vida. Su éxito depende totalmente de ustedes, de sus acciones y decisiones. Tienen en sus vidas el enorme poder de la juventud y tengo fe de que saldrán victoriosos. Del mismo libro que mencioné antes quiero compartir con ustedes el siguiente párrafo:

“Cada uno de nosotros tiene una tarea específica en la difusión del bien. Prepárate para trabajar, porque los deberes son muchos e importantes, y son pocos los que tienen conciencia de ellos. Extiende tus brazos generosos para cultivar el bien, así podrás recoger frutos abundantes de felicidad y amor”.

Piensen con la cabeza pero vivan con el corazón.

Muchas gracias.

Miguel Alberto Risco Castillo
Noviembre 2013

viernes, 25 de octubre de 2013

Raspberry Pi - Programación visual usando CodeTyphon y cross compile

La Raspberry Pi es una pequeña tarjeta que encierra muchas horas de diversión, tanto electrónica como informática. Es esa gran idea que permite colocar al alcance de muchos un dispositivo de bajo costo ($25 o $35 según el modelo) pero de estupendas características: procesador ARM11 de 700MHz con unidad de coma flotante, GPU Videocore 4. La GPU es capaz de reproducir contenido con calidad BluRay, usando H.264 a 40MBits/s. Tiene un núcleo 3D que puede ser usado mediante OpenGL ES2.0 y librerías OpenVG. Pero como todo ingenio programable, es inútil si no se cuenta con las herramientas adecuadas para su explotación. Afortunadamente la fundación que da soporte a este proyecto, y muchos otros entusiastas, han provisto del sistema operativo, librerías y ejemplos suficientes para sacar un gran partido a esta maravilla de hardware.

Sin embargo, aún queda mucho espacio para seguir colaborando con este proyecto, cuyo objetivo principal es acercar nuevamente hacia los niños y jóvenes, el gusto por la innovación, el desarrollo de dispositivos y la programación; rescatándolos de la peligrosa tendencia actual, de ser puramente consumidores de lo que el mercado les ofrece. Lejos están los tiempos de los jóvenes Bill Gates y del emprendedor Steve Jobs, creadores de maravillas en sus garajes.

De entre las herramientas disponibles para empezar a utilizar la Raspberry Pi, se encuentra el Scratch, un estupendo lenguaje gráfico/simbólico para aprender la base de la programación sin tener que preocuparse del tipeo y los errores de sintaxis. Con este programa se pueden realizar pequeñas simulaciones/animaciones que en cierta forma hacen recordar al olvidado Logo.

Si se desea realizar una programación mas compleja y crear un GUI las herramientas disponibles son escasas. Modificando algunos scripts de CodeTyphon (IDE de FreePascal)  es posible realizar la programación en una PC y luego mediante compilación cruzada generar el ejecutable para la Raspberry Pi.

En la página del grupo de microelectrónica se encuentra el proyecto Digitalización de un Sistema de Microscopía Óptica para el Análisis y Diagnóstico de Muestras Biológicas en donde se hizo uso de este método para realizar el interfaz de usuario, los resultados son bastante satisfactorios y abren muchas posibilidades en el uso de este pequeño y sorprendente dispositivo.

hardware eventos experimento laboratorio ciencia informática computación computadoras fotografía digital naturaleza niños científico tecnología profesional aplicación escolar Perú hardware eventos experimento laboratorio ciencia informática computación computadoras fotografía digital naturaleza niños científico tecnología profesional aplicación escolar Perú hardware eventos experimento laboratorio ciencia informática computación computadoras fotografía digital naturaleza niños científico tecnología profesional aplicación escolar Perú hardware eventos experimento laboratorio ciencia informática computación computadoras fotografía digital naturaleza niños científico tecnología profesional aplicación escolar Perú news events experiment laboratory science computer calculation photographs digital nature children scientific technology professional application school news events experiment laboratory science computer calculation photographs digital nature children scientific technology professional application school