Social media and the doom of people
(dis-)connections We live in a deeply connected world. As far as humanity can remember we never lived this way. This situation has many up and downsides. There’s no doubt how much better communication is nowadays when compared to our antecessors’. It does not matter if you live on the other side of the Atlantic or in the other room, we can have real-time-enough conversations just by using something called Internet. ...
The Beauty of the Simple
Life started simple We look everywhere. Everything seems so complex, so magical, so beautiful. For sure there must be some intelligent mind behind all of this. Maybe there is, maybe there isn’t. Who knows? Let’s assume for a moment that there isn’t. All of this complexity sprung from a simple thing, a single condensed point and then, after many iterations known as years, we arrived at what we have today. ...
Elliptic Curve Cryptography (ECC) - ELI5
ELI5 ECC is a widespread way of dealing with the public key cryptography keys generation. Elliptic Curve Cryptography The figure above illustrate how to get the point 8G starting from an origin point G. It works as: Pick a generator point (G) that belongs to the curve; To get 2G, which is in fact the sum of G to itself, you draw the tangent of the G point and then find the point that it hits the elliptic curve. This point will be -2G; Reflect this point over the x-axis to find the 2G; Now to find the 4G, find the tangent of 2G and do the same process above. Once you find it, do the same to find 8G. You could also do it in a different way: after finding 2G, you could add 2G + G to find 3G by drawing a line defined by 2G and G, finding the intersection with the curve and then reflecting over x-axis. ...
Diffie-Hellman (Blind) Key Exchange
Key Exchange The Diffie-Hellman (DH) Key Exchange is a way of two parties exchanging their secret in a secure manner over a public network. Here is a diagram showing how they do it: Diffie-Hellman Key Exchange So, basically an asymmetric cryptography is used to generate a pair or private and public keys for each party. Then, each party shares their public keys over a public space (like the internet). This is secure because the public keys are supposed to be public. ...
Debugging Python tests
Debugging? Debugging is part of our every day lives as software developers - or it should be. Understanding why an error is happening is not always easy. In fact, most of the times it isn’t. A great tool we all have are debuggers. As the name suggests, they remove (“de-”) bugs. One part of the software development process that they are needed but we usually don’t think too much about it, is in the tests. ...
Using just
Makefile stops being best friend When your old friend Makefile leaves you hanging…enter just. What is just just is just a command runner with a syntax inspired by make that helps you, well, run commands. That’s it. Why I am used to using Makefile in my personal projects and I really like it. It has a simple syntax and works well whenever we don’t want to keep writing the same command over and over again. It also helps you create the recipes that make the whole process of, for example, running a project that needs to be tested and built before, a piece of cake. ...