<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Saurabh Garg</title><description>Notes on C++, concurrent programming, and embedded systems. Plus older writing on Qt, Python, and the occasional micrograph.</description><link>https://saurabhg.com/</link><item><title>Disable OpenCV Logging</title><link>https://saurabhg.com/blog/disable-opencv-logging/</link><guid isPermaLink="true">https://saurabhg.com/blog/disable-opencv-logging/</guid><description>When we use OpenCV from command line process, sometimes OpenCV will print internal logging messages such as: This might be useful while debugging OpenCV problems but it is a noise…</description><pubDate>Tue, 07 Sep 2021 00:00:00 GMT</pubDate><category>programming</category><category>cpp</category><category>opencv</category></item><item><title>History of all Visual C++ versions</title><link>https://saurabhg.com/blog/visual-cpp-version-history/</link><guid isPermaLink="true">https://saurabhg.com/blog/visual-cpp-version-history/</guid><description>Reference table mapping every Visual C++ release to its _MSC_VER and supported C++ standard.</description><pubDate>Sun, 29 Aug 2021 00:00:00 GMT</pubDate><category>programming</category><category>cpp</category><category>visual-studio</category></item><item><title>Git command reference</title><link>https://saurabhg.com/blog/git-command-reference/</link><guid isPermaLink="true">https://saurabhg.com/blog/git-command-reference/</guid><description>A personal cheat-sheet for git: config, branch, checkout, diff, commit, stash, log, reset, and .gitignore patterns.</description><pubDate>Thu, 26 Aug 2021 00:00:00 GMT</pubDate><category>tools</category><category>git</category></item><item><title>Microsoft Terminal</title><link>https://saurabhg.com/blog/microsoft-terminal/</link><guid isPermaLink="true">https://saurabhg.com/blog/microsoft-terminal/</guid><description>Why Windows Terminal replaced my previous setup, with profile and color-scheme references.</description><pubDate>Mon, 08 Feb 2021 00:00:00 GMT</pubDate><category>tools</category><category>terminal</category><category>windows</category></item><item><title>Microsoft PowerToys: the modules I cannot work without</title><link>https://saurabhg.com/blog/microsoft-powertoys/</link><guid isPermaLink="true">https://saurabhg.com/blog/microsoft-powertoys/</guid><description>Tour of Microsoft PowerToys with a focus on PowerToys Run, Keyboard Manager, and the rest of the tools I rely on day-to-day.</description><pubDate>Sat, 30 Jan 2021 00:00:00 GMT</pubDate><category>tools</category><category>powertoys</category><category>windows</category></item><item><title>Center/Right Align a Widget in QTreeWidget</title><link>https://saurabhg.com/blog/qt-align-widget-in-qtreewidget/</link><guid isPermaLink="true">https://saurabhg.com/blog/qt-align-widget-in-qtreewidget/</guid><description>Qt comes with a class which can be used to show data in a tree view. It can be used to show hierarchical data using either Model/View framework or by manually creating the…</description><pubDate>Tue, 26 Jan 2021 00:00:00 GMT</pubDate><category>programming</category><category>cpp</category><category>qt</category></item><item><title>Display FPS for VTK on Python</title><link>https://saurabhg.com/blog/vtk-python-fps-counter/</link><guid isPermaLink="true">https://saurabhg.com/blog/vtk-python-fps-counter/</guid><description>In the last post, I discussed how to get started with VTK on Python. In this post, I will show how to add support to show frames per second (FPS). The idea to calculate FPS is…</description><pubDate>Mon, 18 Jan 2021 00:00:00 GMT</pubDate><category>programming</category><category>python</category><category>vtk</category></item><item><title>Getting Started with VTK for Python</title><link>https://saurabhg.com/blog/vtk-python-getting-started/</link><guid isPermaLink="true">https://saurabhg.com/blog/vtk-python-getting-started/</guid><description>The visualization toolkit (VTK) is a open source library displaying scientific data. VTK is maintained by Kitware, the same company which gave us CMake. VTK is written in C/C++…</description><pubDate>Fri, 15 Jan 2021 00:00:00 GMT</pubDate><category>programming</category><category>python</category><category>vtk</category></item><item><title>Goodbye Launchy!</title><link>https://saurabhg.com/blog/goodbye-launchy/</link><guid isPermaLink="true">https://saurabhg.com/blog/goodbye-launchy/</guid><description>I have been using Launchy for last 15 years since it was first released in 2005. I has been an awesome companion since then and saved me tons of time. Simple press Alt + Space and…</description><pubDate>Tue, 29 Dec 2020 00:00:00 GMT</pubDate><category>tools</category><category>tools</category></item><item><title>QWidgetLogger: A Qt logging device for SLogLib</title><link>https://saurabhg.com/blog/qt-qwidgetlogger-sloglib/</link><guid isPermaLink="true">https://saurabhg.com/blog/qt-qwidgetlogger-sloglib/</guid><description>SLogLib is a flexible logging library written in C++. It comes with three logging devices: console, file, and memory but often there is a need to show log directly on the user…</description><pubDate>Mon, 28 Dec 2020 00:00:00 GMT</pubDate><category>programming</category><category>cpp</category><category>logging</category><category>qt</category></item><item><title>Added Multi-threading Support in SLogLib</title><link>https://saurabhg.com/blog/sloglib-multithreading/</link><guid isPermaLink="true">https://saurabhg.com/blog/sloglib-multithreading/</guid><description>Adding thread safety to SLogLib with std::mutex and std::lock_guard.</description><pubDate>Sun, 29 Nov 2020 00:00:00 GMT</pubDate><category>programming</category><category>cpp</category><category>sloglib</category></item><item><title>Error loading numpy arrays</title><link>https://saurabhg.com/blog/numpy-load-allow-pickle-error/</link><guid isPermaLink="true">https://saurabhg.com/blog/numpy-load-allow-pickle-error/</guid><description>If you received &quot;_Object arrays cannot be loaded when allow_pickle=False_&quot; while loading a numpy array using it is because numpy has changed the default loading behaviour since…</description><pubDate>Mon, 04 Nov 2019 00:00:00 GMT</pubDate><category>programming</category><category>numpy</category><category>python</category></item><item><title>Solution to Kaggle&apos;s Dogs vs. Cats Challenge using Logistic Regression</title><link>https://saurabhg.com/blog/kaggle-dogs-vs-cats-logistic-regression/</link><guid isPermaLink="true">https://saurabhg.com/blog/kaggle-dogs-vs-cats-logistic-regression/</guid><description>In the previous post, I discussed a solution to Kaggle&apos;s Dogs vs. Cats Challenge using Convolutional Neural Networks. CNN&apos;s takes time to train and I tried a number of different…</description><pubDate>Sun, 03 Nov 2019 00:00:00 GMT</pubDate><category>programming</category><category>dogs-vs-cats</category><category>python</category><category>regression</category><category>sklearn</category><category>ml</category></item><item><title>Solution to Kaggle&apos;s Dogs vs. Cats Challenge using Convolutional Neural Networks</title><link>https://saurabhg.com/blog/kaggle-dogs-vs-cats-cnn/</link><guid isPermaLink="true">https://saurabhg.com/blog/kaggle-dogs-vs-cats-cnn/</guid><description>Dogs vs. cats challenge [1] from Kaggle ended in Jan 2014 but it is still extremely popular for getting started in deep learning. This is because of two main reasons: the data set…</description><pubDate>Wed, 30 Oct 2019 00:00:00 GMT</pubDate><category>programming</category><category>dogs-vs-cats</category><category>keras</category><category>python</category><category>tensorflow</category><category>ml</category></item><item><title>String Selection Widget for Qt5</title><link>https://saurabhg.com/blog/qt-string-selection-widget/</link><guid isPermaLink="true">https://saurabhg.com/blog/qt-string-selection-widget/</guid><description>Some time back, I developed a data entry application in Qt5. One of the requirements was to let the user select a single string from a predefined list of string. I developed a…</description><pubDate>Mon, 26 Aug 2019 00:00:00 GMT</pubDate><category>programming</category><category>cpp</category><category>qt</category></item><item><title>Color Picker Widget for Qt5</title><link>https://saurabhg.com/blog/qt-color-picker-widget/</link><guid isPermaLink="true">https://saurabhg.com/blog/qt-color-picker-widget/</guid><description>Qt5 support standard dialogs such as QFileDialog, QFontDialog, and QColorDialog, however, it does not provide a color picker to allow a user to pick a color. Recently, I need a…</description><pubDate>Sat, 24 Aug 2019 00:00:00 GMT</pubDate><category>programming</category><category>cpp</category><category>qt</category></item><item><title>Fill Disk Partition</title><link>https://saurabhg.com/blog/fill-disk-partition/</link><guid isPermaLink="true">https://saurabhg.com/blog/fill-disk-partition/</guid><description>Recently, I had to give away a computer with couple of disks in it. I wanted to securely erase data on these disks as I stored personal sensitive information on them. Using a…</description><pubDate>Fri, 23 Aug 2019 00:00:00 GMT</pubDate><category>programming</category><category>python</category></item><item><title>Tomato Cells under Microscope</title><link>https://saurabhg.com/blog/tomato-cells/</link><guid isPermaLink="true">https://saurabhg.com/blog/tomato-cells/</guid><description>To see tomato cells under microscope, simply squeeze a bit of tomato juice on a clean glass slide and gently place a cover slip over it. Below is the micrograph of the tomato…</description><pubDate>Fri, 15 Apr 2016 00:00:00 GMT</pubDate><category>microscopy</category></item><item><title>Search Box using QLineEdit</title><link>https://saurabhg.com/blog/qt-search-box-qlineedit/</link><guid isPermaLink="true">https://saurabhg.com/blog/qt-search-box-qlineedit/</guid><description>This week, at work I had to implement a search box for a software I am working on. The search box is to filter some data dynamically as user types a query. I wanted to show a…</description><pubDate>Thu, 30 Jul 2015 00:00:00 GMT</pubDate><category>programming</category><category>cpp</category><category>qt</category></item><item><title>Markdown to PDF Converter</title><link>https://saurabhg.com/blog/markdown-to-pdf-converter/</link><guid isPermaLink="true">https://saurabhg.com/blog/markdown-to-pdf-converter/</guid><description>Few weeks ago, I published SLogLib (a cross-platform logging library) on GitHub. I wrote the user manual in a readme.md file as is the standard practice at GitHub. However, since…</description><pubDate>Wed, 29 Jul 2015 00:00:00 GMT</pubDate><category>programming</category><category>markdown</category></item><item><title>Onion cells under a microscope</title><link>https://saurabhg.com/blog/onion-cells/</link><guid isPermaLink="true">https://saurabhg.com/blog/onion-cells/</guid><description>Wet-mount technique for onion epidermis, with micrographs at 40× and 100×.</description><pubDate>Mon, 27 Jul 2015 00:00:00 GMT</pubDate><category>microscopy</category><category>microscope</category></item><item><title>Cross-platform high-resolution timer</title><link>https://saurabhg.com/blog/cross-platform-high-resolution-timer/</link><guid isPermaLink="true">https://saurabhg.com/blog/cross-platform-high-resolution-timer/</guid><description>Often there is a need to estimate the time it takes for a piece of code to run. This is useful not only for debugging but also for reporting the execution time of lengthy tasks to…</description><pubDate>Thu, 16 Jul 2015 00:00:00 GMT</pubDate><category>programming</category><category>cpp</category></item><item><title>SLogLib: An easy to use, fully customizable and extensible, cross-platform logging library</title><link>https://saurabhg.com/blog/sloglib-intro/</link><guid isPermaLink="true">https://saurabhg.com/blog/sloglib-intro/</guid><description>A long time ago when I was doing PhD I was implementing a very complex geometric algorithm for computing intersection of two triangular meshes. There were bugs in code which would…</description><pubDate>Sun, 14 Jun 2015 00:00:00 GMT</pubDate><category>programming</category><category>cpp</category><category>sloglib</category></item><item><title>Computing area of all facets in CGAL::Polyhedron_3</title><link>https://saurabhg.com/blog/cgal-polyhedron3-facet-area/</link><guid isPermaLink="true">https://saurabhg.com/blog/cgal-polyhedron3-facet-area/</guid><description>In this post I will show how to compute area of a facet in . ComputeFacetArea() is a thread-safe functor for computing the area of a given facet in a CGAL::Polyhedron_3. The facet…</description><pubDate>Thu, 09 Oct 2014 00:00:00 GMT</pubDate><category>programming</category><category>cpp</category><category>cgal</category></item><item><title>Computing normal of all vertices in CGAL::Polyhedron_3</title><link>https://saurabhg.com/blog/cgal-polyhedron3-vertex-normals/</link><guid isPermaLink="true">https://saurabhg.com/blog/cgal-polyhedron3-vertex-normals/</guid><description>In this post I will show how to compute normal vector at a vector in CGAL::Polyhedron_3. is a thread-safe functor for computing the normal vector at a given vertex in a . The…</description><pubDate>Thu, 09 Oct 2014 00:00:00 GMT</pubDate><category>programming</category><category>cpp</category><category>cgal</category></item><item><title>Computing edge length of all half-edges in CGAL::Polyhedron_3</title><link>https://saurabhg.com/blog/cgal-polyhedron3-edge-length/</link><guid isPermaLink="true">https://saurabhg.com/blog/cgal-polyhedron3-edge-length/</guid><description>In this post I will show how to compute edge length for a half-edge in CGAL::Polyhedron_3. ComputeEdgeLength() is a thread-safe functor for computing the edge length of a given…</description><pubDate>Wed, 08 Oct 2014 00:00:00 GMT</pubDate><category>programming</category><category>cpp</category><category>cgal</category></item><item><title>Computing normal of all facets in CGAL::Polyhedron_3</title><link>https://saurabhg.com/blog/cgal-polyhedron3-facet-normals/</link><guid isPermaLink="true">https://saurabhg.com/blog/cgal-polyhedron3-facet-normals/</guid><description>In this post I will show how to compute normal vector of a facet in CGAL::Polyhedron_3. ComputeFacetNormal() is a thread-safe functor for computing the normal vector of a given…</description><pubDate>Wed, 08 Oct 2014 00:00:00 GMT</pubDate><category>programming</category><category>cpp</category><category>cgal</category></item><item><title>Wavefront OBJ reader for building CGAL::Polyhedron_3</title><link>https://saurabhg.com/blog/wavefront-obj-reader-cgal-polyhedron3/</link><guid isPermaLink="true">https://saurabhg.com/blog/wavefront-obj-reader-cgal-polyhedron3/</guid><description>A small loader that reads vertex coordinates and faces from a Wavefront OBJ file into a CGAL polyhedral surface.</description><pubDate>Tue, 07 Oct 2014 00:00:00 GMT</pubDate><category>programming</category><category>cpp</category><category>cgal</category></item><item><title>Paramecium under a microscope in pond water</title><link>https://saurabhg.com/blog/paramecium-pond-water/</link><guid isPermaLink="true">https://saurabhg.com/blog/paramecium-pond-water/</guid><description>A paramecium swimming around in water collected from Swan Lake at the Singapore Botanic Gardens.</description><pubDate>Sat, 19 Jul 2014 00:00:00 GMT</pubDate><category>microscopy</category><category>microscope</category><category>video</category></item><item><title>Amscope 50-piece prepared slides — gallery</title><link>https://saurabhg.com/blog/amscope-50pc-slides-gallery/</link><guid isPermaLink="true">https://saurabhg.com/blog/amscope-50pc-slides-gallery/</guid><description>A consolidated gallery covering the specimens I worked through from the Amscope 50-piece biology prepared-slides kit.</description><pubDate>Fri, 04 Jul 2014 00:00:00 GMT</pubDate><category>microscopy</category><category>microscope</category><category>amscope</category></item><item><title>How I started with Microscopy</title><link>https://saurabhg.com/blog/started-microscopy/</link><guid isPermaLink="true">https://saurabhg.com/blog/started-microscopy/</guid><description>I have been interested in microscopy for very long time and the recent flurry of articles (io9.com, twitter, and telegraph.co.uk) showing very nice images further fueled my…</description><pubDate>Thu, 03 Jul 2014 00:00:00 GMT</pubDate><category>microscopy</category></item><item><title>SPhdThesis: A Latex template for writing PhD Thesis</title><link>https://saurabhg.com/blog/sphdthesis-latex-template/</link><guid isPermaLink="true">https://saurabhg.com/blog/sphdthesis-latex-template/</guid><description>SPhdThesis is a latex document class for writing PhD thesis. I developed it while writing my PhD thesis in School of Computing (SoC), National University of Singapore (NUS). By…</description><pubDate>Sat, 31 May 2014 00:00:00 GMT</pubDate><category>latex</category></item></channel></rss>