Random tech excursions

  • Preparing for Technical Interviews: A retrospective

    I dread Programming Interviews. I have been programming for a while now (over a decade), but attending a programming interview is still a humbling experience for me. You get rusty, and the inertia to start the preparation all over is too daunting. Treating the preparation as an opportunity for self-development regardless of outcome is something that gets me started. If you are embarking on your preparation for interviews, then I hope you find these pointers helpful.

    Read more…
  • upper_bound and lower_bound in Java Standard Library

    Sometimes, there are simple things that fly under your radar. C++ has upper_bound and lower_bound that return the elements that are bounds for a given element in a sorted array or collection. Python has a similar bisect module that has functions bisect_left and bisect_right. I did not find similar functions in Java Standard Library. I would resort to following the binary search again over the collection or array to find the bounds.

    Read more…
  • Save Disk Space when Installing Jetbrains Products

    I am a fan of Intellij Products. I use them for coding in my personal and professional projects. I have bought a subscription for the entire suite of Intellij Products. Those who bought the suite will know that the suite comes with a “Toolbox” app. The “Toolbox” app keeps the line of products installed on the computer up-to-date. Off late, I saw that disk space used by Intellij Suite grew exponentially.

    Read more…
  • Writing Pipe-able Python Scripts

    I have written many Python scripts over the course of many years. I wrote the scripts for tasks like data cleanup, data extraction, integration scripts and what not. In retrospect, the majority of the scripts I wrote were standalone, or custom unix bash scripts glued them together. Recently, I had an opportunity to write a Python script which was a part of a larger pipleine of scripts for data transformation. I wanted the script to be used in the pipeline without any custom glue code.

    Read more…
  • Umberto Eco's Index Cards in Notion

    Imagine what it was like doing any kind of research before the internet. What would have been the older tab-switching-browsing-bookmarking equivalent? How would someone who was doing research, selected, copied, and pasted text from the reading material? I imagine they would have copied the text by hand and annotated the source material in their notebook. Doing research was an arduous task in the early days without the internet. The thought of researching in pre-internet days is what makes reading Umberto Eco’s “How to Write a Thesis” much more enjoyable.

    Read more…
  • From Tasks to New Checklists

    In a post from before, I wrote about a new workflow that I had been following lately. I took inspiration from the PARA workflow, mental models, and checklists to create a personal workflow. The post was brief, and I feel that the Checklists' generation part needs a bit more elaboration. In this post, I wanted to expand upon one of the workflows. How can you create a new checklist or improve an existing list by reflecting upon what you did in your last project?

    Read more…
  • From Tasks to New Mental Models

    In an earlier post I wrote about a new workflow that I had been following for some time now. I took inspiration from the PARA workflow, mental models, and checklists’ workflow to create a bespoke workflow that spoke to me personally. I tried to list down my workflow in a linear fashion, which turned out to be too brief. I understand that I could have elaborated on the workflow a bit more.

    Read more…
  • Using Notion as a Productivity Tool

    2006 was a different time. I was not overwhelmed with too much information. Gmail was my primary tool to organize resources from the web with a social bookmarking service like Delicious to boot. At the time there were not many blogs or online experts to advise about managing digital life, if there was such a thing. I got hold of David Allen’s excellent book Getting Things Done, about organizing digital overload.

    Read more…
  • N-Queens Problem and the JuMP Package

    In the past I discussed about using the JuMP Package for solving an optimization problem. Recently I came across another problem that seemed like a good fit for the JuMP Package - The N-Queens puzzle. Summary of the N-Queens Puzzle So what is the N-Queens puzzle? Imagine you have a chessboard and eight queens with you. The challenge is to place the queens in such a way that they do not attack each other with their usual moves.

    Read more…
  • How did I create PDF from the Scans sent over By Email

    First off, the scanned documents that I received from my email were split into many documents. Let’s square this off right away. Combine multiple pdf documents into a single document using the pdfunite command like so: pdfunite sample_* single.pdf On Ubuntu the pdfunite command is part of the poppler-utils package. If you are on Ubuntu, you can install the package using the apt command. sudo apt-get install poppler-utils Next up, I wanted to create a bookmarked table of contents for the pdf.

    Read more…