Ir al contenido principal

Entradas

Mostrando entradas de 2018

Micro-Robots sin motores

Recientemente investigadores de la Universidad de Hong-Kong han desarrollado un nuevo material a base de Hidróxido de Níquel "Ni(OH)2" cuya propiedad es que puede contraerse/expandirse al recibir luz o una pequeña tensión de menos de 1V. Básicamente se trataría de un material compuesto por dos capas (al estilo de un magnetotérmico bimetálico), en el que una capa estaría compuesta por Ni(OH)2/NiOOH y la otra capa por un material "pasivo" con unas determinadas propiedades. La idea es sencilla, al aplicar luz o una pequeña tensión, la capa compuesta por Ni(OH)2/NiOOH lo que hace es contraerse y, en ausencia de los mismos expandirse. Esta transformación de contracción/expansión se hará en mayor o menor medida dependiendo también de las características de flexibilidad de la otra capa compuesta por el material pasivo. En la siguiente imagen podemos ver más fácilmente de que se trata: El grado o magnitud de la curvatura no solamente va a depender de la int...

I designed a PCB Holder

If you're one of those people who like electronics, then you know how frustrating it can be when you need to hold a PCB for soldering a component. Download Link: https://www.thingiverse.com/thing:1103401 That was my case when I decided to make a stand PCB. First I was looking at what was available in the market (Weller by example), in order to have some reference on which to base my design. Finally, I decided on a type of support that allows to turn the PCB in order to be able to have easy access to both sides of it. The hardest part was to design the clamping mechanism. In the end I think I found a good solution, based on three springs that allow the PCB firmly secure but at the same time release with little effort, to rotate if necessary. Here you can download all files you need to make my PCB Holder: https://www.thingiverse.com/thing:1103401

Programadores de Malware ¿Malas prácticas?

Cuando uno se enfrenta al análisis de un nuevo malware, son muchos los frentes que podemos abrir y los enfoques que podemos darle. Como es lógico, un primer paso será identificar que es un malware de aquello que no lo es, y en ocasiones esto es preciso hacerlo con la mayor rapidez posible. Muchas veces no contamos con el tiempo necesario para hacer un análisis completo a priori, y lo único que necesitamos es tomar decisiones tempranas para iniciar todos los protocolos oportunos ante una nueva muestra "maléfica". Parece lógico pensar, que un código que inicialmente está ofuscado, empaquetado, o que hace uso de determinadas APIs del sistema, ya tiene una cierta probabilidad de ser malware y por lo tanto empezar a tratarlo de manera especial. Durante estos días he estado analizando un nuevo malware, posiblemente una variante de tantas que andan circulando en estos días por internet. En concreto, lo que tengo entre manos es un Ransomware, si compañeros, un especimen ...

FDS6690A un MOSFET SMD para Switching

Si buscas un MOSET con encapsulado SMD especialmente indicado para aplicaciones de switching, de baja potencia, dirigidas por batería y capaz de trabajar con niveles lógicos, te presento al FDS6690A. Estamos ante un MOSFET N-Channel, capaz de soportar corrientes de 11 amperios y tensiones de hasta 30 voltios. Cuenta además con una baja resistencia de encendido lo que le confiere gran rapidez en los flancos de subida y bajada de la conmutación. Con respecto a esto último, es capaz de superar los flancos de subida en tan solo 10 nanosegundos y los flancos de bajada en algo menos de 20 nanosegundos, obviamente esto variará en función de los parámetros bajo los cuales lo hagamos trabajar. Según su gráfica de características de transferencia, sería capaz de trabajar con 30 amperios utilizando como tensión de puerta tan solo 3,3 voltios. Esto es lo que diferencia principalmente a un MOSFET común de un MOSFET de nivel lógico. Aunque este tipo de MOSFET (los Logic-Level) s...

Variable especial __name__ de Python

En muchos programas de python nos encontramos con que se hace uso de una variable especial llamada __name__ y que parece estar ahí como por arte de magia. Pues bien, dicha magia "existe" y es elpropio intérprete de Python el que se encarga de hacerla y de crear e inicializar la variable __name__ antes de ejecutar el código del programa. El intérprete de python crea diversas variables "especiales" y, en el caso que nos ocupa de la variable __name__ la inicializa con el valor "__main__" cuando el script se ejecuta directamente. Sin embargo, si el script se importa desde otro módulo o script, la variable __name__ será inicializada por el intérprete para que contenga el nombre del módulo. Nada mejor que un ejemplo práctico para entender el funcionamiento de la variable __name__ de python. En este sencillo script vamos a tener una función "Suma(op1, op2)" que sencillamente va a hacer la suma de los dos operandos que la pasamos como paráme...

Testing Syntax Coloring in Blogger

This entry is for testing purposes only. Put some code in this blog by using syntax coloring by hand is a very tedious thing so we need to do something to avoid that work. There is some different options to do that and here I am using a nice one by putting some Javascript and CSS into the Blogger template. I published some information in this github repository: https://github.com/braincodec/syntaxhighlighter Here is some C++ code to test the highlighter: #include <iostream> void main() { std::cout << "Hello World!" << std::endl; }

x:Bind DateTime to DatePicker (DateTimeOffset conversion)

If you need to bind a DateTime property you have in your ViewModel with a DatePicker in your XAML, all you must to do is implement a converter. Below you can see the Converter class: ...     public class DateTimeToPickerConverter : IValueConverter     {         public object Convert(object value, Type targetType, object parameter, string language)         {             var date = (DateTime)value;             return new DateTimeOffset(date);         }         public object ConvertBack(object value, Type targetType, object parameter, string language)         {             throw new NotImplementedException();  ...

¡ ARANGE ! ¿Qué haces? (numpy, python, matlab)

Si hay algo que me saca de mis casillas y a la vez me encanta, es encontrar un comportamiento anómalo en algo y no saber - a priori- porque sucede. Me saca de mis casillas, porque muchas veces necesitas hacer algo rápido y lo último que quieres son problemas, complicaciones y pérdidas de tiempo. Pero a la vez me encanta, porque todo el proceso de búsqueda, investigación y depuración que implica dar con la solución, es apasionante y enriquecedor, siempre se aprenden cosas nuevas o rememoran otras olvidadas. Voy al grano. Resulta que necesitaba generar unas gráficas sobre una operación de muestreo de señales FSK con el fin de analizar el comportamiento de unos filtros digitales. Y como de costumbre, termino utilizando alguno de los paquetes "matemáticos" al uso, ya sea tipo Matlab o bien, con algún lenguaje de programación. En este caso, decidí utilizar python y su paquete científico y para generar el espacio de tiempo necesario para representar las gráficas, pues ...