<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Deepak Nagaraj</title>
    <link>https://ndeepak.com/</link>
    <description>Recent content on Deepak Nagaraj</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>n.deepak@gmail.com (Deepak Nagaraj)</managingEditor>
    <webMaster>n.deepak@gmail.com (Deepak Nagaraj)</webMaster>
    <lastBuildDate>Wed, 31 Dec 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://ndeepak.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Ego is the problem</title>
      <link>https://ndeepak.com/posts/2025-12-31-eoy/</link>
      <pubDate>Wed, 31 Dec 2025 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2025-12-31-eoy/</guid>
      <description>&lt;p&gt;This is a blog post that&amp;rsquo;s kind of self-defeating.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Semantic Search on PDFs with Elasticsearch</title>
      <link>https://ndeepak.com/posts/2025-04-18-es-semantic-search/</link>
      <pubDate>Fri, 18 Apr 2025 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2025-04-18-es-semantic-search/</guid>
      <description>&lt;p&gt;This document shows semantic search on Elasticsearch on PDF documents without any additional client code.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SSO and RBAC for Elasticsearch (Kibana)</title>
      <link>https://ndeepak.com/posts/2025-04-17-es-sso/</link>
      <pubDate>Thu, 17 Apr 2025 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2025-04-17-es-sso/</guid>
      <description>&lt;p&gt;This page documents the steps for:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;using an external Identity Provider for user authentication to&#xA;Kibana (single sign-on, aka SSO)&lt;/li&gt;&#xA;&lt;li&gt;providing differentiated access to Kibana based on the assigned role&#xA;to the authenticated user (role-based access control, aka RBAC)&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>System Setup for GPU Performance Measurements</title>
      <link>https://ndeepak.com/posts/2025-03-16-gpu-profile/</link>
      <pubDate>Sun, 16 Mar 2025 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2025-03-16-gpu-profile/</guid>
      <description>&lt;p&gt;In this document, I outline the steps to set up a system to take NVIDIA GPU performance measurements. This could be required, for example, to analyze and improve the performance of an LLM.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Field Level Access Control with Elasticsearch</title>
      <link>https://ndeepak.com/posts/2025-03-15-es-field-access-ctrl/</link>
      <pubDate>Sat, 15 Mar 2025 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2025-03-15-es-field-access-ctrl/</guid>
      <description>&lt;p&gt;This page documents experiments with field-level access control in ES8.x.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Favorite Books of 2024</title>
      <link>https://ndeepak.com/posts/2024-12-31-fav-books-year/</link>
      <pubDate>Tue, 31 Dec 2024 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2024-12-31-fav-books-year/</guid>
      <description>&lt;p&gt;Some favorite books of 2024, and further thoughts they evoke.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Opinion: With Apache Beam, Tread Carefully</title>
      <link>https://ndeepak.com/posts/2023-04-26-beam-careful/</link>
      <pubDate>Tue, 25 Apr 2023 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2023-04-26-beam-careful/</guid>
      <description>&lt;p&gt;Machine learning teams today often want to process data in real-time. They also standardize on Python as a programming language. Apache Beam supports Python and gives a lot of hope, but my opinion is that this combination is practically too complex and unreliable to put in production.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Implementation Notes on LLMs for the Enterprise Use-Case</title>
      <link>https://ndeepak.com/posts/2023-04-11-llm-notes/</link>
      <pubDate>Tue, 11 Apr 2023 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2023-04-11-llm-notes/</guid>
      <description>&lt;p&gt;Note: My blog posts are (still) 100% handwritten, without any contribution from an AI model.&lt;/p&gt;&#xA;&lt;p&gt;Large language models (LLMs) are very powerful, as ChatGPT has demonstrated very successfully. In this post, I will document some caveats, tips and pointers if you are interested in utilizing an LLM for an enterprise use-case.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tutorial: Understanding Beam with a Local Beam, Flink and Kafka Environment</title>
      <link>https://ndeepak.com/posts/2022-07-07-local-beam/</link>
      <pubDate>Thu, 07 Jul 2022 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2022-07-07-local-beam/</guid>
      <description>This is a tutorial-style article. I wrote it in June/July 2022, but found time to clean up and make a blog post only in September 2022.&#xA;This tutorial is relevant to software engineers and data scientists who work with Apache Beam on top of Apache Flink.&#xA;Our goal is to set up a local Beam and Flink environment that can run cross-language Beam pipelines.&#xA;Specifically, in this tutorial, I will discuss how to set up your laptop to run a Beam pipeline that:</description>
    </item>
    <item>
      <title>Barrett on the Human Brain</title>
      <link>https://ndeepak.com/posts/2022-05-30-barrett-brain/</link>
      <pubDate>Mon, 30 May 2022 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2022-05-30-barrett-brain/</guid>
      <description>&lt;p&gt;In the past, I have written here about the theory of psychology. One weak point about it is that it&amp;rsquo;s a lot of, well, &lt;em&gt;theory&lt;/em&gt;. However, what if there was an underlying &lt;em&gt;physical reality&lt;/em&gt; to it, i.e. to how our brains develop and work?  I recently read two books by Lisa Feldman Barrett. I think she provides this much-needed connection.&lt;/p&gt;</description>
    </item>
    <item>
      <title>In Search of Lost Time</title>
      <link>https://ndeepak.com/posts/2021-12-31-in-search-of-lost-time/</link>
      <pubDate>Fri, 31 Dec 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-12-31-in-search-of-lost-time/</guid>
      <description>&lt;p&gt;As the year 2021 draws to an end, it is a good time to write about &lt;em&gt;In Search of Lost Time&lt;/em&gt;. I found a graphic novel adaptation of it and bought it for my fortieth birthday.  The title seemed quite apt.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Throwback Thursday: Daylight hours across time and location</title>
      <link>https://ndeepak.com/posts/2021-12-30-daylight-graph/</link>
      <pubDate>Thu, 30 Dec 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-12-30-daylight-graph/</guid>
      <description>Back in 2006, I wrote a script (in Perl!) to plot daylight hours over the year, given a location. From what I remember, I was curious about how it changed with the seasons: was it a straight line or a curve, and how did it look in the polar regions?&#xA;(If any image below looks blurry, open it in a separate tab or save it to disk to see it in actual size.</description>
    </item>
    <item>
      <title>Religion as a Salve for Existential Truths</title>
      <link>https://ndeepak.com/posts/2021-12-25-religion-salve-for-existential-truths/</link>
      <pubDate>Sat, 25 Dec 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-12-25-religion-salve-for-existential-truths/</guid>
      <description>Today is Christmas, an apt time to write a little about religion. I&amp;rsquo;m not a Christian, I cannot even call myself religious, but more on it in a bit.&#xA;The Four Existential Truths I have long wondered about the purpose of religion, but a couple of years ago, I found an answer in a book by Irvin Yalom.1 He&amp;rsquo;s certainly not writing about religion; he&amp;rsquo;s not a priest or a preacher, but a psychotherapist.</description>
    </item>
    <item>
      <title>A meditation on time and change</title>
      <link>https://ndeepak.com/posts/2021-11-28-time-change/</link>
      <pubDate>Sun, 28 Nov 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-11-28-time-change/</guid>
      <description>About a year ago, I read this in a book on psychotherapy1:&#xA;There cannot be change without loss.&#xA;It struck me as a profound statement, because it carries many implications with it. I want to expand on what change means, looking behind and ahead in time, especially in our times.&#xA;In retrospective, change is loss We often talk of &amp;ldquo;big life changes&amp;rdquo;: graduation, marriage, childbirth, and so on. But it&amp;rsquo;s wiser to think of them in terms of loss: what did I lose with this change?</description>
    </item>
    <item>
      <title>Throwback Thursday: Linux in the 2000s</title>
      <link>https://ndeepak.com/posts/2021-11-04-throwback-linux/</link>
      <pubDate>Thu, 04 Nov 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-11-04-throwback-linux/</guid>
      <description>In the years between 2000 and 2005, I spent a lot of time trying out many different operating systems. Linux was a big one: Red Hat, Debian, SuSE. So also the BSD Unices: FreeBSD, OpenBSD, NetBSD. There was Solaris from Sun Microsystems. I also checked out MINIX (educational, from a CS prof), BeOS (good media support) and QNX (real-time OS). I tried dual- and multi-boot installations, also tried installing within VMWare.</description>
    </item>
    <item>
      <title>Underrepresented Senses in the Electronic Age</title>
      <link>https://ndeepak.com/posts/2021-10-12-underrepresented-senses/</link>
      <pubDate>Tue, 12 Oct 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-10-12-underrepresented-senses/</guid>
      <description>&lt;p&gt;There&amp;rsquo;s a disparity in how our smartphones and computers cater to our senses.  They rely heavily on the eyes and the ears.  What&amp;rsquo;s left out is touch, smell and taste.  Not strictly a sense, but scale of size is another I would add to this list &amp;ndash; it&amp;rsquo;s the difference between looking at a &lt;em&gt;T. rex&lt;/em&gt; in a museum vs a TV documentary.  These can be a differentiator for brick-and-mortar stores.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Father and The Bishop</title>
      <link>https://ndeepak.com/posts/2021-10-02-father-and-bishop/</link>
      <pubDate>Sat, 02 Oct 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-10-02-father-and-bishop/</guid>
      <description>&lt;p&gt;I recently saw the movie &lt;em&gt;The Father&lt;/em&gt; (2020) by Florian Zeller. It’s a poignant movie on the themes of aging and senility. Anthony Hopkins acts as the father who is losing memory, and along with it, a sense of what’s happening around him. To his family and us, it is abundantly clear, but the old man lives in a world of denial. What results is continuously escalating conflict, culminating in a moving climax. In this heartbreaking scene, the old father cries like a baby, and starts wailing “Mother! O Mother!” to the nurse who is caring for him.  The nurse, instinctively, comforts him like a child.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Notes from bird-feeding</title>
      <link>https://ndeepak.com/posts/2021-09-24-bird-feeding-notes/</link>
      <pubDate>Fri, 24 Sep 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-09-24-bird-feeding-notes/</guid>
      <description>&lt;p&gt;Homebound in the pandemic, I purchased a bird-feeder last December.  I&amp;rsquo;ve had a lot to observe since then.  What follows are notes, photographs, and video clips.  I conclude with tips and advice if you&amp;rsquo;d like to try it as well.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A systems approach to mental well-being</title>
      <link>https://ndeepak.com/posts/2021-09-02-pain-familiarity/</link>
      <pubDate>Thu, 02 Sep 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-09-02-pain-familiarity/</guid>
      <description>&lt;p&gt;I am an engineer by profession but I like to read about psychology and psychotherapy out of interest.  As I have become familiar with it, I&amp;rsquo;ve found it to be highly logical.&lt;/p&gt;&#xA;&lt;p&gt;I will specify the system first, and then use it to make some suggestions for our improvement.&lt;/p&gt;&#xA;&lt;p&gt;I originally started writing this in July 2021 but it took several revisions before I felt it was polished enough to post.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Large hailstorms in the US</title>
      <link>https://ndeepak.com/posts/2021-06-29-us-hail/</link>
      <pubDate>Tue, 29 Jun 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-06-29-us-hail/</guid>
      <description>&lt;p&gt;Hailstorms can pose a problem, if you&amp;rsquo;re installing solar panels.  Large hailstones, those that are 2 inches wide or larger, &lt;a href=&#34;https://www.google.com/search?q=hailstorm+solar+panel+damage&amp;amp;tbm=isch&#34;&gt;can damage solar panels&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;If you are solar panel provider, you typically want to play it safe and install where there has been no hailstorms, historically.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Making your program faster by relegating blocking I/O to thread-pool</title>
      <link>https://ndeepak.com/posts/2021-06-17-python-threadpool/</link>
      <pubDate>Thu, 17 Jun 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-06-17-python-threadpool/</guid>
      <description>&lt;p&gt;Sorry about that jargon soup, but this post is technical and is intended for such audiences.&lt;/p&gt;&#xA;&lt;p&gt;I recently had an opportunity to speed things up by 10X:&lt;/p&gt;&#xA;&lt;p&gt;&lt;center&gt;&lt;figure&gt;&lt;img src=&#34;https://ndeepak.com/files/blocking_io_vs_threadpool.png&#34; width=&#34;70%&#34;&gt;&lt;figcaption&gt;&lt;small&gt;Run-time drop from 20 min to 2 min&lt;/small&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/center&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Selections from Kagga</title>
      <link>https://ndeepak.com/kagga/</link>
      <pubDate>Thu, 10 Jun 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/kagga/</guid>
      <description>I posted the verses below originally on the LJ community daily_kagga, almost daily, during 2006-07. I have not altered the content in any way while creating this page.&#xA;The verses originally are from a philosophical work in Kannada, Mankuthimmana Kagga (1943), by D V Gundappa.&#xA;2006/12/17 19:54:00&#xA;Reputation&#xA;ಅನ್ನದಾತುರಕಿಂತ ಚಿನ್ನದಾತುರ ತೀಕ್ಷ್ಣ ।&#xA;ಚಿನ್ನದಾತುರಕಿಂತ ಹೆಣ್ಣುಗಂಡೊಲವು ।।&#xA;ಮನ್ನಣೆಯ ದಾಹವೀಯೆಲ್ಲಕಂ ತೀಕ್ಷ್ಣತಮ ।&#xA;ತಿನ್ನುವುದದಾತ್ಮವನೆ ಮಂಕುತಿಮ್ಮ ।।&#xA;There is in Man craving for food, but more so for wealth.</description>
    </item>
    <item>
      <title>Et Cetera</title>
      <link>https://ndeepak.com/etc/</link>
      <pubDate>Tue, 08 Jun 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/etc/</guid>
      <description>Although a technologist by profession, I appreciate and enjoy many branches of sciences and humanities. Physics, history, geography, economics, art, literature, philosophy and psychology are all subjects I have often dabbled in out of curiosity.&#xA;Philosophy and Psychology I think Barrett&amp;rsquo;s books provide a neurological basis to psychology.&#xA;Religion may seem obsolete, but I think that it has a lofty purpose: helping us with our existential truths.&#xA;Some book recommendations while reviewing a book by Lori Gottlieb.</description>
    </item>
    <item>
      <title>Technology</title>
      <link>https://ndeepak.com/tech/</link>
      <pubDate>Tue, 08 Jun 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/tech/</guid>
      <description>This section of the site showcases some blog posts and artifacts from software engineering and machine learning. I also throw in some advice for free where it makes sense.&#xA;Machine Learning A setup to profile NVIDIA GPUs using their software suite (Nsight).&#xA;I have some implementation notes if you&amp;rsquo;d like to use large language models (LLMs) at your company.&#xA;Elasticsearch used to be lexical search only, but ES now allows you to run ingest pipelines and semantic search.</description>
    </item>
    <item>
      <title>Rules for humans in the age of automation</title>
      <link>https://ndeepak.com/posts/2021-06-04-futureproof/</link>
      <pubDate>Fri, 04 Jun 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-06-04-futureproof/</guid>
      <description>&lt;p&gt;I recently read &lt;em&gt;Futureproof&lt;/em&gt; by Kevin Roose.  Kevin is a technology writer for The New York &lt;em&gt;Times&lt;/em&gt;. The book has two parts to it; I skimmed through the first part but found the second part interesting.  It is a list of nine rules designed to help us, humans, navigate a world increasingly run by machines.&lt;/p&gt;&#xA;&lt;p&gt;I want to call out four of them that struck me as very insightful.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Detecting irrigation with radar satellite and artificial intelligence</title>
      <link>https://ndeepak.com/posts/2021-05-07-sar-transfer-learning-irrigation/</link>
      <pubDate>Fri, 07 May 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-05-07-sar-transfer-learning-irrigation/</guid>
      <description>I&amp;rsquo;ve previously talked about detecting irrigated croplands in this blog. I used classical machine learning techniques in it, i.e. we decide what features to use, we fit a model or an ensemble of models, we predict. Modern machine learning, or what the press calls &amp;ldquo;Artificial Intelligence&amp;rdquo;, has gone way beyond it.&#xA;In this post, I want to talk about a different approach to detect irrigated croplands. This method gave 95% test-set accuracy on a random sample of 2000 pictures from California.</description>
    </item>
    <item>
      <title>Gottlieb and other tales of psychotherapy</title>
      <link>https://ndeepak.com/posts/2021-05-07-gottlieb-therapy/</link>
      <pubDate>Thu, 06 May 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-05-07-gottlieb-therapy/</guid>
      <description>&lt;p&gt;Back in 2004, when I was in Bangalore and still fresh out of college, I was mesmerized by a book with a title that asked you to &lt;a href=&#34;https://www.google.com/books/edition/If_You_Meet_the_Buddha_on_the_Road_Kill/HgGVEoW-nWEC&#34;&gt;kill the Buddha if you met him&lt;/a&gt;.  The murderous Zen title notwithstanding, the book was written by a psychotherapist who drew parallels between literary characters and his patients.  I wanted to read more such books, but as I said, I was in India and it was 2004.  Only in the last year have I delved deep again into the realm of psychotherapy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lego piano</title>
      <link>https://ndeepak.com/posts/2021-04-30-lego-piano/</link>
      <pubDate>Fri, 30 Apr 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-04-30-lego-piano/</guid>
      <description>I built a mechanical Lego piano. It very much looks like a real piano, both on the outside and inside. It has keys, gears, hammers&amp;hellip; its designers are piano teachers. The music comes from a companion Bluetooth app, but the piano makes convincing movements. I&amp;rsquo;m very impressed.&#xA;This is my first Lego project, and the fact that I could do something this complex tells you how mature and professional Lego&amp;rsquo;s assembly instructions pictures are.</description>
    </item>
    <item>
      <title>Irrigation ML paper published</title>
      <link>https://ndeepak.com/posts/2021-04-25-irrigation-paper/</link>
      <pubDate>Sun, 25 Apr 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-04-25-irrigation-paper/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve previously posted on this blog about a machine-learning model we built to &lt;a href=&#34;https://ndeepak.com/posts/2020-07-05-global-irrigation-map/&#34;&gt;detect irrigation globally&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m happy to report that our work is now published as a paper in the journal &lt;a href=&#34;https://authors.elsevier.com/c/1cx6J16J1mzUtI&#34;&gt;Advances in Water Resources&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>George Saunders: A Swim in a Pond in the Rain</title>
      <link>https://ndeepak.com/posts/2021-04-17-george-saunders/</link>
      <pubDate>Sat, 17 Apr 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-04-17-george-saunders/</guid>
      <description>Close to the end of A Swim in a Pond in the Rain, George Saunders looks back on a class from his graduate school. His professor, a short-story writer, gave a reading of Chekhov. Saunders didn&amp;rsquo;t know much about Chekhov then: he thought Chekhov&amp;rsquo;s stories were &amp;ldquo;mild&amp;rdquo; and &amp;ldquo;voiceless&amp;rdquo;. The professor reads three stories, and in doing so, brings Chekhov to life. After that reading, Saunders was not only convinced of the power of the short story, but also &amp;ldquo;desperate&amp;rdquo; about writing better short stories himself.</description>
    </item>
    <item>
      <title>Julian Barnes: The Sense of an Ending</title>
      <link>https://ndeepak.com/posts/2021-04-10-sense-of-an-ending/</link>
      <pubDate>Sat, 10 Apr 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-04-10-sense-of-an-ending/</guid>
      <description>&lt;p&gt;&lt;em&gt;The Sense of an Ending&lt;/em&gt; is a slim novel by Julian Barnes.  I don&amp;rsquo;t have much to say about the story, but I was drawn to the main character, Tony Webster.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ishiguro: Klara and the Sun</title>
      <link>https://ndeepak.com/posts/2021-04-07-klara-and-the-sun/</link>
      <pubDate>Wed, 07 Apr 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-04-07-klara-and-the-sun/</guid>
      <description>&lt;p&gt;We are all familiar with sci-fi stories of evil robotic overlords.  I&amp;rsquo;m not into science fiction as a genre, yet I thoroughly liked the movies &lt;em&gt;Ex Machina&lt;/em&gt; (2015) and &lt;em&gt;The Matrix&lt;/em&gt; (1999).  Both movies are nominally about artificial intelligence, but ask deep philosophical questions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ghachar Ghochar, A Novella</title>
      <link>https://ndeepak.com/posts/2021-03-27-ghachar-ghochar/</link>
      <pubDate>Sat, 27 Mar 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2021-03-27-ghachar-ghochar/</guid>
      <description>&lt;p&gt;I recently read &lt;em&gt;Ghachar Ghochar&lt;/em&gt;, a novella by Vivek Shanbhag.  The original is in Kannada, but I read the English translation by Srinath Perur.&lt;/p&gt;&#xA;&lt;p&gt;The novel is slim; it runs to a little more than 100 pages.  This is significant, because within these pages, the author still tells a wonderful story.  It’s a story that leaves a lot unsaid, for the reader to fill in the details.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://ndeepak.com/about/</link>
      <pubDate>Sun, 07 Mar 2021 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/about/</guid>
      <description>Hello, I&amp;rsquo;m Deepak. I work as a machine learning engineer at Citrix. On a typical day, I might be writing models, deploying them into production, enhancing ML infrastructure, or debugging running models. I use Spark, Python, Scala, sklearn, Hive, YARN and Azure for my daily work. I&amp;rsquo;m passionate about real-time and production-grade ML systems, which demand that you understand both software engineering and machine learning.&#xA;From 2003 to 2015, I worked in networking companies, where I wrote software for load balancers to make websites load faster.</description>
    </item>
    <item>
      <title>How we built a global ML model with Google Earth Engine</title>
      <link>https://ndeepak.com/posts/2020-08-05-ml-on-gee/</link>
      <pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2020-08-05-ml-on-gee/</guid>
      <description>&lt;p&gt;A couple posts ago, I described the machine learning model that we developed to predict the &lt;a href=&#34;http://127.0.0.1:4000/2020/07/05/global-irrigation-map.html&#34;&gt;extent of cropland irrigation worldwide&lt;/a&gt;.  This post is a collection of all the things I learned about Google Earth Engine that went into running a global-scale model successfully.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The importance of selection effect</title>
      <link>https://ndeepak.com/posts/2020-07-17-selection-effect/</link>
      <pubDate>Fri, 17 Jul 2020 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2020-07-17-selection-effect/</guid>
      <description>&lt;p&gt;It was the first class of a data science course in the MIDS program.  Our instructor started off with a question: &amp;ldquo;Do you think this academic program gives you a better career?&amp;rdquo;  We gave a bunch of answers, quite the ignorant folks that we were.  Of course, is this even a question at this point?!  Yes, here are all the new things we&amp;rsquo;re learning.  Yes, the instructors are top-notch. Yes, look at the syllabus and the projects, yada yada &amp;hellip; nothing surprising there.&lt;/p&gt;&#xA;&lt;p&gt;The instructor asked, &amp;ldquo;Yes, but how do you know that the &lt;em&gt;program&lt;/em&gt; is making you better?  What if you joined the program &lt;em&gt;because&lt;/em&gt; you were motivated enough to apply and work through it, and therefore you&amp;rsquo;d get better in your career &lt;em&gt;anyway?&lt;/em&gt;&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Global Irrigation Map, our capstone machine learning project</title>
      <link>https://ndeepak.com/posts/2020-07-05-global-irrigation-map/</link>
      <pubDate>Sun, 05 Jul 2020 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2020-07-05-global-irrigation-map/</guid>
      <description>&lt;p&gt;For our capstone project at UC Berkeley, we worked with the Department of Environmental Studies.  We developed a machine learning model that we continued to improve even after the course term, and I&amp;rsquo;m happy to report that it is now under discussion to be a published paper &amp;ndash; a first for the program itself, according to our lecturer.&lt;/p&gt;&#xA;&lt;center&gt;&lt;figure&gt;&lt;img src=&#34;https://ndeepak.com/files/irr_extent.png&#34;&gt;&lt;figcaption&gt;Global Irrigation Extent, as per our ML Model&lt;/figcaption&gt;&lt;/figure&gt;&lt;/center&gt;&#xA;&lt;p&gt;&lt;strong&gt;Update Aug/5/2020: New blog post: a behind the scenes look on &lt;a href=&#34;http://ndeepak.com/posts/2020-08-05-ml-on-gee/&#34;&gt;how we built the model&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lazy evaluation in real life</title>
      <link>https://ndeepak.com/posts/2020-06-28-lazy-eval/</link>
      <pubDate>Sun, 28 Jun 2020 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2020-06-28-lazy-eval/</guid>
      <description>&lt;p&gt;There are so many great ideas in engineering we can take home and&#xA;apply to our own lives.  Today I will talk about one of them: lazy&#xA;evaluation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How are you saving your knowledge?</title>
      <link>https://ndeepak.com/posts/2020-05-02-notes/</link>
      <pubDate>Sat, 02 May 2020 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2020-05-02-notes/</guid>
      <description>&lt;p&gt;We live in a &amp;ldquo;knowledge economy&amp;rdquo;.  Every day brings with it new&#xA;information.  Do you have an external system to store your knowledge&#xA;efficiently and effectively?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Notes on Spark Streaming app development</title>
      <link>https://ndeepak.com/posts/2019-12-18-spark-streaming/</link>
      <pubDate>Wed, 18 Dec 2019 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2019-12-18-spark-streaming/</guid>
      <description>&lt;p&gt;This post contains various notes from the second half of this&#xA;year.  It was a lot of learning trying to get a streaming model&#xA;working and ready in production.  We used Spark Structured Streaming,&#xA;and wrote the code in Scala.  Our model was stateful.  Our source and&#xA;sink were both Kafka.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Privacy in today&#39;s age with a SOCKS proxy</title>
      <link>https://ndeepak.com/posts/2019-08-07-socks/</link>
      <pubDate>Wed, 07 Aug 2019 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2019-08-07-socks/</guid>
      <description>&lt;p&gt;Say you are at a cafe, and you want to surf the Web.  But the WiFi is&#xA;not secure.  Or say your company lets you bring your laptop, but what&#xA;if its firewall has blocked your favorite website?  Is there no hope,&#xA;besides paying $15 to a VPN provider?&lt;/p&gt;&#xA;&lt;p&gt;There is, and it costs about $3.50 per month as of this writing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Spark tunable that gave me 8X speedup</title>
      <link>https://ndeepak.com/posts/2019-08-07-spark-tune/</link>
      <pubDate>Wed, 07 Aug 2019 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2019-08-07-spark-tune/</guid>
      <description>&lt;p&gt;There are many configuration tunables in Spark.  However, if you have&#xA;time for only one, set this one.  It made a streaming application we&#xA;run process data 8X faster.  That&amp;rsquo;s 800% improvement, no code change&#xA;needed!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting top-N elements in Spark</title>
      <link>https://ndeepak.com/posts/2019-05-11-spark-topn/</link>
      <pubDate>Sat, 11 May 2019 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2019-05-11-spark-topn/</guid>
      <description>&lt;p&gt;The documentation for pyspark &lt;code&gt;top()&lt;/code&gt; function has this warning:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;This method should only be used if the resulting array is expected&#xA;to be small, as all the data is loaded into the driver&amp;rsquo;s memory.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;This piqued my interest: why would you need to bring all the data to&#xA;the driver, if all you need is a few top elements?&lt;/p&gt;&#xA;&lt;p&gt;The answer is: it does &lt;em&gt;not&lt;/em&gt; load &lt;em&gt;all&lt;/em&gt; the data into the driver&amp;rsquo;s&#xA;memory.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Livy is out of memory</title>
      <link>https://ndeepak.com/posts/2018-03-11-livy-oom/</link>
      <pubDate>Sun, 11 Mar 2018 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2018-03-11-livy-oom/</guid>
      <description>&lt;p&gt;Spark jobs were failing.  All of them.  The data pipeline had stopped.  This is a tale of high-pressure debugging.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Accessing home computer from anywhere</title>
      <link>https://ndeepak.com/posts/2017-11-26-mac-remote-desktop/</link>
      <pubDate>Sun, 26 Nov 2017 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2017-11-26-mac-remote-desktop/</guid>
      <description>&lt;p&gt;Do you sometimes want to access your home computer from an outside&#xA;network?  Maybe you use another system, but you do not trust it and&#xA;would prefer your home computer for some workflows?&lt;/p&gt;&#xA;&lt;p&gt;This post outlines the steps to make such access possible.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The program that would not go away</title>
      <link>https://ndeepak.com/posts/2017-02-17-sigterm/</link>
      <pubDate>Fri, 17 Feb 2017 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2017-02-17-sigterm/</guid>
      <description>&lt;p&gt;This post is about a program hang.  The hang was in the Python process&#xA;that was running Ansible scripts.  The problem was hard to debug and&#xA;had me go back to Unix textbook.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Correct way to create a directory in Python</title>
      <link>https://ndeepak.com/posts/2017-02-02-eexists/</link>
      <pubDate>Thu, 02 Feb 2017 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2017-02-02-eexists/</guid>
      <description>&lt;p&gt;Can you see the problem with this code?  It comes from Ansible, v2.1.1.0.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exists&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;makedirs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mo&#34;&gt;0o700&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It&amp;rsquo;s quite straightforward.  It checks if a directory path exists.  If&#xA;it does not, then it creates the directory path, similar to &lt;code&gt;mkdir -p&lt;/code&gt;.  What could be wrong?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting rid of unused virtual disks on XenServer</title>
      <link>https://ndeepak.com/posts/2017-02-01-xsvdi/</link>
      <pubDate>Wed, 01 Feb 2017 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2017-02-01-xsvdi/</guid>
      <description>&lt;p&gt;A continuous test server I&amp;rsquo;d set up had stopped working.  The&#xA;XenServer on which it was running had a 1TB disk: &lt;em&gt;and it was full&lt;/em&gt;.&#xA;What&amp;rsquo;s going on?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Log rotation, no code change needed</title>
      <link>https://ndeepak.com/posts/2017-01-24-logrotate/</link>
      <pubDate>Tue, 24 Jan 2017 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2017-01-24-logrotate/</guid>
      <description>&lt;p&gt;This post shows you how to rotate old logs from your application.&#xA;There is no change to application code.  There is no specialized&#xA;logging library or framework needed.  It works for any language, on&#xA;standard Unix platform.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Resetting a TCP connection and SO_LINGER</title>
      <link>https://ndeepak.com/posts/2016-10-21-tcprst/</link>
      <pubDate>Fri, 21 Oct 2016 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2016-10-21-tcprst/</guid>
      <description>&lt;p&gt;Can you quickly close a TCP connection in your program by sending a&#xA;reset (&amp;ldquo;RST&amp;rdquo;) packet?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Program crashes, only in 64-bit mode</title>
      <link>https://ndeepak.com/posts/2016-10-14-segv/</link>
      <pubDate>Fri, 14 Oct 2016 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2016-10-14-segv/</guid>
      <description>&lt;p&gt;This is a story of a program that worked, until it broke on a 64-bit platform.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ps | grep is broken on FreeBSD</title>
      <link>https://ndeepak.com/posts/2016-10-10-psww/</link>
      <pubDate>Mon, 10 Oct 2016 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2016-10-10-psww/</guid>
      <description>&lt;p&gt;It is true.  Even on the latest FreeBSD 11.0 (I checked the source tree).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Debugging emacs slowness</title>
      <link>https://ndeepak.com/posts/2016-09-29-slowemacs/</link>
      <pubDate>Thu, 29 Sep 2016 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2016-09-29-slowemacs/</guid>
      <description>&lt;p&gt;I use Emacs (emerge) while merging files.  Today, when trying to merge&#xA;some Python code, I found that it was taking exceedingly long time.&#xA;It was blank for 5 minutes and counting.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Weird PID files</title>
      <link>https://ndeepak.com/posts/2016-09-29-pidfiles/</link>
      <pubDate>Thu, 29 Sep 2016 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2016-09-29-pidfiles/</guid>
      <description>&lt;p&gt;This is a story of multiple processes running on a system, but with&#xA;empty PID files.&lt;/p&gt;&#xA;&lt;p&gt;It took a lot of debugging.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Don&#39;t hang up on me</title>
      <link>https://ndeepak.com/posts/2016-07-30-sighup/</link>
      <pubDate>Sat, 30 Jul 2016 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2016-07-30-sighup/</guid>
      <description>&lt;p&gt;Can you tell me when a shell sends a &amp;ldquo;HANGUP&amp;rdquo; signal to a process?&#xA;What happens if there is a pipeline?  What if you prefix this pipeline&#xA;with the &amp;ldquo;nohup&amp;rdquo; command?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rotating the log makes it empty</title>
      <link>https://ndeepak.com/posts/2016-07-29-logrotate/</link>
      <pubDate>Fri, 29 Jul 2016 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2016-07-29-logrotate/</guid>
      <description>&lt;p&gt;If you don&amp;rsquo;t do log rotation right, you may have a full hard drive and&#xA;a ghost file.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Socket timeout</title>
      <link>https://ndeepak.com/posts/2016-06-29-sockettimeout/</link>
      <pubDate>Wed, 29 Jun 2016 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2016-06-29-sockettimeout/</guid>
      <description>&lt;p&gt;Have you run into a problem that happens only once in a while, and you&#xA;never seem to have enough information to figure it out?  We all have.&#xA;This is one such tale: except that it has a happier ending.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Build fails, only for you</title>
      <link>https://ndeepak.com/posts/2016-06-16-autoconf/</link>
      <pubDate>Thu, 16 Jun 2016 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2016-06-16-autoconf/</guid>
      <description>&lt;p&gt;As programmers, we face it many times: a build fails on only our&#xA;system.  This is one such tale.&lt;/p&gt;</description>
    </item>
    <item>
      <title>You got too many open files</title>
      <link>https://ndeepak.com/posts/2016-05-21-enfile/</link>
      <pubDate>Sat, 21 May 2016 00:00:00 +0000</pubDate><author>n.deepak@gmail.com (Deepak Nagaraj)</author>
      <guid>https://ndeepak.com/posts/2016-05-21-enfile/</guid>
      <description>&lt;p&gt;This is a tale about a hopelessly bad error message.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
