The 3D printing process begins with a 3D model of the object, usually created by computer-aided design (CAD) software. One of the widely used open-source CAD programs is OpenSCAD. Here is an example of a simple 5 x 7 x 10 pyramid created using OpenSCAD. An STL (“StereoLithography”) file is a triangular representation of a… Continue reading
Deconstructing a flashlight
Ever wondered how the modern flashlight works? What happens when you click the switch on, or click it multiple times to change the brightness? I was curious about it as well, so I deconstructed a commercially available flashlight (Astrolux S1) and studied the parts; even reprogrammed it to have different levels of brightness. Here is… Continue reading
Marlin 3D printer firmware: Delta inverse kinematics
Kinematics is the study of motion or movement in space. In the case of Linear Delta Printer Kinematics we are interested in how the (linear) motion of three carriages along identically spaced vertical columns is transformed into the movement of the tip of a hotend in the usual Cartesian system of X, Y and Z… Continue reading
Dissecting the ErgoDox – The Ergonomic Programmable Keyboard
Invented by Dominic Beauchamp (a.k.a Dox), the ErgoDox is an ergonomic mechanical keyboard that uses an open hardware and software. Built off the Key64 keyboard design, which was a keyboard that tried to reduce the total number of keys to just the ones you really need. The ErgoDox has a few additional keys, bringing the total… Continue reading
Detecting similar and identical images using perseptual hashes
Couple of my hobbies are traveling and photography. I love to take pictures and experiment with photography. Usually after my trips, I just copy the photos to either my iPad or couple of my external hard disks. After several years, I have over 200K photos distributed across several disks and machines. I had to find… Continue reading
Dissicting the 82559 Ethernet controller – From bits to waves
When I first started working, I was very interested in learning about the Linux kernel. Specifically the TCP/IP stack and the inner workings of an Ethernet controller. To learn more, I picked one of the most widely used Ethernet controllers at that time, the Intel 82559 10/100 Fast Ethernet Controller and one of its open-source… Continue reading
Dissecting Lucene – The Index format
Lucene is high-performance, scalable, full-featured, open-source text search engine written in Java. Since I am a search engineer by profession, I wanted to learn more about Lucene and its internals. This article is about the index format of the 3.4 Lucene. Specifically the Lucene inverted index. Lucene Inverted Index Some Definitions Index: An Index is… Continue reading
How big of a haystack do you need to hide?
Every fact you learn about a person reduces the “entropy” of their identity. For e.g. If I know your gender, we can eliminate about 50% of the population: There were about 155.6 million females & 151.4 million males in the United States in 2009. If I know your birthday we can eliminate a much larger… Continue reading