<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>posts on Deepak Kandepet</title><link>https://kandepet.com/posts/</link><description>Recent content in posts on Deepak Kandepet</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Wed, 14 May 2025 06:38:42 +0000</lastBuildDate><atom:link href="https://kandepet.com/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>3D Printing: Slicing 3D objects</title><link>https://kandepet.com/3d-printing-slicing-3d-objects/</link><pubDate>Thu, 01 Jun 2017 22:14:28 +0000</pubDate><guid>https://kandepet.com/3d-printing-slicing-3d-objects/</guid><description>A slicer is a toolpath generation software used in 3D printing. It facilitates the conversion of a 3D object model to specific instructions for the printer. The slicer converts a model in STL (stereolithography) format into printer commands in G-code format. I wrote my own slicer to understand how they work. Here is what I found out.</description></item><item><title>Deconstructing a flashlight</title><link>https://kandepet.com/deconstructing-a-flashlight/</link><pubDate>Thu, 04 May 2017 22:30:39 +0000</pubDate><guid>https://kandepet.com/deconstructing-a-flashlight/</guid><description>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 (&lt;a href="https://www.amazon.com/Flashlight-Astrolux-Zoomable-Waterproof-Adjustable/dp/B018M0B5Y4"&gt;Astrolux S1&lt;/a&gt;) and studied the parts; even reprogrammed it to have different levels of brightness. Here is what I found out.</description></item><item><title>Marlin 3D printer firmware: Delta inverse kinematics</title><link>https://kandepet.com/marlin-3d-printer-firmware-delta-inverse-kinematics/</link><pubDate>Thu, 09 Mar 2017 23:54:36 +0000</pubDate><guid>https://kandepet.com/marlin-3d-printer-firmware-delta-inverse-kinematics/</guid><description>With a simple cartesian printer, the carriage mechanism moves directly along rails in each of the x, y and z directions. If you want to move a print head from the origin to, say, (10,10,20) you simply direct the motors to move it 10mm along the x axis rail, 10 along the y axis rail and 20 along the z. With a delta printer, it’s not so simple. Moving any one of the carriages which run up and down the three vertical towers will cause movement of the printer nozzle in x,y and z simultaneously. Inverse kinematic calculations are required to work out how to move all three carriages to move the print head to the given (x,y,z) coordinates.</description></item><item><title>Dissecting the ErgoDox - The Ergonomic Programmable Keyboard</title><link>https://kandepet.com/dissecting-the-ergodox-the-ergonomic-programmable-keyboard/</link><pubDate>Fri, 10 Jun 2016 21:30:16 +0000</pubDate><guid>https://kandepet.com/dissecting-the-ergodox-the-ergonomic-programmable-keyboard/</guid><description>Invented by Dominic Beauchamp (a.k.a Dox), the ErgoDox is an ergonomic mechanical keyboard that uses an open hardware and software. This keyboard uses a split design that allows your arms to rest naturally at your sides. The split also allows you to angle the boards and doesn’t force you to contort your wrists. The keyboard is also fully programmable. Lets find out how it actually works.</description></item><item><title>Detecting similar and identical images using perseptual hashes</title><link>https://kandepet.com/detecting-similar-and-identical-images-using-perseptual-hashes/</link><pubDate>Tue, 31 Jul 2012 00:48:48 +0000</pubDate><guid>https://kandepet.com/detecting-similar-and-identical-images-using-perseptual-hashes/</guid><description>Couple of my hobbies are traveling and photography. I love to take pictures and experiment with photography. After several years, I have over 200K photos distributed across several disks and machines. I had to find a way to organize these photos and create a workflow for future maintenance. In this post I want to address one of the issues I had to solve: &lt;em&gt;&lt;strong&gt;finding duplicate images&lt;/strong&gt;&lt;/em&gt;.</description></item><item><title>Dissicting the 82559 Ethernet controller - From bits to waves</title><link>https://kandepet.com/from-bits-to-waves-the-inner-workings-of-an-ethernet-controller/</link><pubDate>Wed, 09 May 2012 13:57:00 +0000</pubDate><guid>https://kandepet.com/from-bits-to-waves-the-inner-workings-of-an-ethernet-controller/</guid><description>&lt;p&gt;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 &lt;a href="http://www.intel.com/design/network/products/lan/controllers/82559.htm" title="Intel 82559 10/100 Fast Ethernet Controller"&gt;Intel 82559 10/100 Fast Ethernet Controller&lt;/a&gt; and one of its open-source drivers, the &lt;a href="http://lxr.free-electrons.com/source/drivers/net/eepro100.c?v=2.4.37"&gt;eepro100&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Thought 82559 chip is no longer manufactured and the eepro driver has been deprecated, this article will still serve as a guide for how an ethernet controller works. We&amp;rsquo;ll look at how the eepro100 driver interfaces with the Intel 82559 chipset and how the 82559 converts the packets sent by the driver to signals transmitted over physical ethernet cable.&lt;/p&gt;&#10;</description></item><item><title>Dissecting Lucene - The Index format</title><link>https://kandepet.com/dissecting-lucene-the-index-format/</link><pubDate>Sun, 02 Oct 2011 03:54:10 +0000</pubDate><guid>https://kandepet.com/dissecting-lucene-the-index-format/</guid><description>&lt;p&gt;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.&lt;/p&gt;&#10;&lt;p&gt;This article is about the index format of the 3.4 Lucene. Specifically the Lucene inverted index.&lt;/p&gt;&#10;</description></item><item><title>How big of a haystack do you need to hide?</title><link>https://kandepet.com/how-big-of-a-haystack-do-you-need-to-hide/</link><pubDate>Fri, 05 Aug 2011 01:13:16 +0000</pubDate><guid>https://kandepet.com/how-big-of-a-haystack-do-you-need-to-hide/</guid><description>&lt;p&gt;Every fact you learn about a person reduces the &amp;ldquo;entropy&amp;rdquo; of their identity. For e.g.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;If I know your gender, we can eliminate about 50% of the population: There were about 155.6 million females &amp;amp; 151.4 million males in the United States in 2009.&lt;/li&gt;&#10;&lt;li&gt;If I know your birthday we can eliminate a much larger percentage of the population: At age 85 and older, there were more than twice as many women as men. People under 20 years of age made up over a quarter of the U.S. population (27.3%), and people age 65 and over made up one-eighth (12.8%) in 2009.&lt;/li&gt;&#10;&lt;li&gt;We can narrow you down even more if we know your zip code&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Each of these facts independently narrow down the population, so much so that the combination of gender, ZIP code, birth date was &lt;a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.91.4147&amp;amp;rep=rep1&amp;amp;type=pdf"&gt;unique for about 63% of the U.S&lt;/a&gt;. population.&lt;/p&gt;&#10;</description></item></channel></rss>