<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog on Akshay Raj Gollahalli</title><link>https://www.gollahalli.com/blog/</link><description>Recent content in Blog on Akshay Raj Gollahalli</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 22 Dec 2024 23:38:20 +1300</lastBuildDate><atom:link href="https://www.gollahalli.com/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Tauri 2 With Flutter: A Template</title><link>https://www.gollahalli.com/blog/tauri-2-with-flutter-template/</link><pubDate>Sun, 22 Dec 2024 23:38:20 +1300</pubDate><guid>https://www.gollahalli.com/blog/tauri-2-with-flutter-template/</guid><description>&lt;!--adsense--&gt;
&lt;p&gt;The template can be found at &lt;a href="https://github.com/akshaybabloo/tauri_flutter_template"&gt;
 &lt;span class="text-base font-semibold inline-flex items-center m-2 px-3 py-1 rounded hover:bg-gray-600 bg-gray-700 text-gray-400 border border-gray-500"&gt;
 &lt;svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 fill-current" height="1em" viewBox="0 0 496 512"&gt;&lt;path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/&gt;&lt;/svg&gt;
 &lt;span class="ml-1"&gt;
 
 akshaybabloo/tauri_flutter_template
 
 &lt;/span&gt;
 &lt;/span&gt;
&lt;/a&gt;
&lt;/p&gt;</description></item><item><title>Setting Swapfile on Ubuntu</title><link>https://www.gollahalli.com/blog/setting-swapfile-on-ubuntu/</link><pubDate>Wed, 08 May 2024 13:26:07 +1200</pubDate><guid>https://www.gollahalli.com/blog/setting-swapfile-on-ubuntu/</guid><description>&lt;!--adsense--&gt;
&lt;p&gt;When you are running out of memory on your Linux system, the OS starts killing processes to free up the memory. This is not a good idea, as it can lead to data loss. To avoid this, a swap file is used. By default, Ubuntu creates a swap file during installation. However, if you want to create a new swap file or change the size of the existing swap file, you can do so by following the steps below.&lt;/p&gt;</description></item><item><title>Running OpenCV with CMake and Ninja</title><link>https://www.gollahalli.com/blog/running-opencv-with-cmake-and-ninja/</link><pubDate>Sun, 24 Mar 2024 14:53:40 +1300</pubDate><guid>https://www.gollahalli.com/blog/running-opencv-with-cmake-and-ninja/</guid><description>&lt;div class="block md:flex w-full mx-auto overflow-hidden rounded-lg shadow-md bg-gray-700"&gt;
 &lt;div class="flex items-center justify-center w-full md:w-12 bg-blue-500"&gt;
 &lt;svg class="w-6 h-6 text-white fill-current" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M20 3.33331C10.8 3.33331 3.33337 10.8 3.33337 20C3.33337 29.2 10.8 36.6666 20 36.6666C29.2 36.6666 36.6667 29.2 36.6667 20C36.6667 10.8 29.2 3.33331 20 3.33331ZM21.6667 28.3333H18.3334V25H21.6667V28.3333ZM21.6667 21.6666H18.3334V11.6666H21.6667V21.6666Z"/&gt;
 &lt;/svg&gt;
 &lt;span class="text-white text-sm md:hidden px-1"&gt;INFO&lt;/span&gt;
 &lt;/div&gt;

 &lt;div class="px-2 py-1 w-full md:px-4 md:py-2"&gt;
 &lt;div class="mx-3"&gt;
 &lt;p class="text-base text-gray-300"&gt;&lt;p&gt;Code can be found at &lt;a href="https://github.com/akshaybabloo/opencv-cmake-ninja"&gt;https://github.com/akshaybabloo/opencv-cmake-ninja&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This post assumes that you have already built OpenCV with Visual Studio and CMake CLI or CMake GUI. If not, please refer to &lt;a href="https://www.gollahalli.com/blog/build-opencv-with-visual-studio-and-cmake-cli/"&gt;Build OpenCV With Visual Studio and CMake CLI&lt;/a&gt; or &lt;a href="https://www.gollahalli.com/blog/build-opencv-with-visual-studio-and-cmake-gui/"&gt;Build OpenCV With Visual Studio and CMake GUI&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Using QAbstractListModel With QML ListView in Qt6</title><link>https://www.gollahalli.com/blog/using-qabstractlistmodel-with-qml-listview-in-qt6/</link><pubDate>Sun, 08 Oct 2023 21:22:52 +1300</pubDate><guid>https://www.gollahalli.com/blog/using-qabstractlistmodel-with-qml-listview-in-qt6/</guid><description>&lt;!--adsense--&gt;
&lt;div class="block md:flex w-full mx-auto overflow-hidden rounded-lg shadow-md bg-gray-700"&gt;
 &lt;div class="flex items-center justify-center w-full md:w-12 bg-blue-500"&gt;
 &lt;svg class="w-6 h-6 text-white fill-current" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M20 3.33331C10.8 3.33331 3.33337 10.8 3.33337 20C3.33337 29.2 10.8 36.6666 20 36.6666C29.2 36.6666 36.6667 29.2 36.6667 20C36.6667 10.8 29.2 3.33331 20 3.33331ZM21.6667 28.3333H18.3334V25H21.6667V28.3333ZM21.6667 21.6666H18.3334V11.6666H21.6667V21.6666Z"/&gt;
 &lt;/svg&gt;
 &lt;span class="text-white text-sm md:hidden px-1"&gt;INFO&lt;/span&gt;
 &lt;/div&gt;

 &lt;div class="px-2 py-1 w-full md:px-4 md:py-2"&gt;
 &lt;div class="mx-3"&gt;
 &lt;p class="text-base text-gray-300"&gt;The code can be found at &lt;a href="https://github.com/akshaybabloo/qabstractlistmodel-with-qml-listview"&gt;https://github.com/akshaybabloo/qabstractlistmodel-with-qml-listview&lt;/a&gt;&lt;/p&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This blog is going to be big!&lt;/p&gt;
&lt;p&gt;Ever found yourself working on a project, wanting to combine the power of C++ with the flair of a QML ListView? That was me not too long ago. I thought diving into this would be straightforward, but as I dug deeper, I realised there were some gaps in available resources, especially when it came to dynamically handling lists.&lt;/p&gt;</description></item><item><title>Importing Existing Project to STM32CubeIDE</title><link>https://www.gollahalli.com/blog/importing-existing-project-to-stm32cubeide/</link><pubDate>Thu, 03 Aug 2023 21:43:05 +1200</pubDate><guid>https://www.gollahalli.com/blog/importing-existing-project-to-stm32cubeide/</guid><description>&lt;p&gt;Let&amp;rsquo;s get one thing straight: I&amp;rsquo;m not the biggest fan of the Eclipse IDE. There, I&amp;rsquo;ve said it. In my view, Eclipse tends to overcomplicate tasks and create unnecessary obstacles for users just starting out. However, given that STM32 has chosen to tightly integrate their tools with their Eclipse-based IDE - STM32CubeIDE - I find myself using it regardless. While alternatives like VSCode or CLion are available, that&amp;rsquo;s not the focus of this post.&lt;/p&gt;</description></item><item><title>Build OpenCV With Visual Studio and CMake CLI</title><link>https://www.gollahalli.com/blog/build-opencv-with-visual-studio-and-cmake-cli/</link><pubDate>Wed, 17 May 2023 10:58:20 +1200</pubDate><guid>https://www.gollahalli.com/blog/build-opencv-with-visual-studio-and-cmake-cli/</guid><description>&lt;p&gt;In the previous &lt;a href="https://www.gollahalli.com/blog/build-opencv-with-visual-studio-and-cmake-gui/"&gt;post&lt;/a&gt;, we have seen how to build OpenCV with Visual Studio and CMake GUI. In this post, we will see how to build OpenCV with Visual Studio and CMake CLI.&lt;/p&gt;
&lt;!--adsense--&gt;
&lt;p&gt;Compared to the previous post, this should be straight forward. We will be using the same CMake settings as before. The only difference is that we will be using the CMake CLI instead of the GUI and we will also use Ninja.&lt;/p&gt;</description></item><item><title>Helpful Powershell Cmdlets/Functions</title><link>https://www.gollahalli.com/blog/helpful-powershell-cmdlets-functions/</link><pubDate>Sun, 26 Feb 2023 12:02:06 +1300</pubDate><guid>https://www.gollahalli.com/blog/helpful-powershell-cmdlets-functions/</guid><description>&lt;!--adsense--&gt;
&lt;p&gt;These are some of the PowerShell cmdlets that I have found useful. I will be adding more as I find them. I usually add them to my PowerShell profile so that I can use them anywhere. To get the path of your PowerShell profile, run the following command:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;gt; $profile
C:\Users\&amp;lt;user&amp;gt;\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Don&amp;rsquo;t forget to restart PowerShell after adding the cmdlets to your profile.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Table of Contents&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#list-all-usb-devices"&gt;List all USB devices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#get-the-size-of-a-folder"&gt;Get the size of a folder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#list-path-environment-variable"&gt;List PATH environment variable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#print-environment-variables"&gt;Print environment variables&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="list-all-usb-devices"&gt;List all USB devices&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;function&lt;/span&gt;&lt;span style="color:#6e7681"&gt; &lt;/span&gt;Get-UsbDevices { 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Get-PnpDevice -InstanceId &lt;span style="color:#a5d6ff"&gt;&amp;#39;USB*&amp;#39;&lt;/span&gt; -Class &lt;span style="color:#a5d6ff"&gt;&amp;#39;USB&amp;#39;&lt;/span&gt; -Status OK 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Set-Alias -Name lsusb -Value Get-UsbDevices
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="get-the-size-of-a-folder"&gt;Get the size of a folder&lt;/h2&gt;
&lt;p&gt;This is a recursive function that will get the size of a folder in MB with 2 decimal places.&lt;/p&gt;</description></item><item><title>Build OpenCV With Visual Studio and CMake GUI</title><link>https://www.gollahalli.com/blog/build-opencv-with-visual-studio-and-cmake-gui/</link><pubDate>Sat, 25 Feb 2023 12:15:12 +1300</pubDate><guid>https://www.gollahalli.com/blog/build-opencv-with-visual-studio-and-cmake-gui/</guid><description>&lt;!--adsense--&gt;

 
 
 &lt;blockquote&gt;
 &lt;p&gt;If you want to use the command line approach, check out my other blog - &lt;a href="https://www.gollahalli.com/blog/build-opencv-with-visual-studio-and-cmake-cli/"&gt;Build OpenCV With Visual Studio and CMake CLI&lt;/a&gt;.&lt;/p&gt;

 &lt;/blockquote&gt;
 &lt;p&gt;If you have ever used OpenCV, you would know that it is a very powerful library for image processing. This is owing to ease in usage and availability of multiple functions which can be utilised to perform a variety of image processing tasks. In this post, we will explore the steps on how to build OpenCV with Visual Studio and Cmake GUI.&lt;/p&gt;</description></item><item><title>git-alias: Over Engineered Pretty Git Alias Printer</title><link>https://www.gollahalli.com/blog/git-alias-over-engineered-pretty-git-alias-printer/</link><pubDate>Tue, 06 Dec 2022 23:02:37 +1300</pubDate><guid>https://www.gollahalli.com/blog/git-alias-over-engineered-pretty-git-alias-printer/</guid><description>&lt;blockquote&gt;
 &lt;p&gt;The binary files and the code can be found at &lt;a href="https://github.com/akshaybabloo/git-alias"&gt;github.com/akshaybabloo/git-alias&lt;/a&gt;.&lt;/p&gt;

 &lt;/blockquote&gt;
 &lt;p&gt;Now there are different ways to list all the aliases in git. One of the ways is to use the command &lt;code&gt;git config --get-regexp alias&lt;/code&gt; which will list all the aliases in the following format:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;alias.la !git-alias
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;!--adsense--&gt;
&lt;p&gt;But is it pretty, though? No. So, I decided to use Go language to make it look &amp;#x1f60d;.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t know Go language, it&amp;rsquo;s a programming language developed by Google. It&amp;rsquo;s a compiled language and it&amp;rsquo;s pretty fast. It&amp;rsquo;s also easy to learn. I would recommend you to learn it if you are interested in programming.&lt;/p&gt;</description></item><item><title>dnode: Search and Delete Node Modules Folders Recursively</title><link>https://www.gollahalli.com/blog/2021/8/dnode-search-and-delete-node-modules-folders-recursively/</link><pubDate>Tue, 17 Aug 2021 12:41:03 +1200</pubDate><guid>https://www.gollahalli.com/blog/2021/8/dnode-search-and-delete-node-modules-folders-recursively/</guid><description>&lt;p&gt;Source: &lt;a href="https://github.com/akshaybabloo/dnode"&gt;github.com/akshaybabloo/dnode&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Node&amp;rsquo;s package managers makes it easy to develop applications, but the bloat it brings with it is (that&amp;rsquo;s node_modules) painful. My 2013 Mac with 256 GB HDD cannot handle it. I currently have around eight projects that use &lt;code&gt;yarn&lt;/code&gt; package manager and the total size of all &lt;code&gt;node_modules&lt;/code&gt; comes to around &lt;strong&gt;~2.2GB&lt;/strong&gt;. And lets not even get to the cache folder (Tip: &lt;code&gt;yarn cache clean&lt;/code&gt;). All the hate for &lt;code&gt;node_modules&lt;/code&gt; is totally justified.&lt;/p&gt;</description></item><item><title>uHugo: A CLI Tool for Hugo Static Site Generator</title><link>https://www.gollahalli.com/blog/2021/7/uhugo-a-cli-tool-for-hugo-static-site-generator/</link><pubDate>Sat, 10 Jul 2021 21:25:21 +1200</pubDate><guid>https://www.gollahalli.com/blog/2021/7/uhugo-a-cli-tool-for-hugo-static-site-generator/</guid><description>&lt;p&gt;&lt;a href="https://github.com/akshaybabloo/uHugo"&gt;uHugo&lt;/a&gt; is a CLI utility tool written in Python for maintaining Hugo binary files. You might think &amp;ldquo;Wait! don&amp;rsquo;t we have Homebrew, Chocolatey, Snap and a plethora of other tools for this?&amp;rdquo; that&amp;rsquo;s exactly why, and also they are package managers. uHugo takes it to the next step by not only updating your Hugo binary file to the version you need, but also updates cloud provider&amp;rsquo;s environment variables or configuration files. For example, &lt;a href="https://pages.cloudflare.com/"&gt;Cloudflare Pages&lt;/a&gt; has a CI/CD system that builds and uploads the files to their storage place, but you will need to specify which version of Hugo you want to used to build these files. Some static host providers have configuration files to specify the version name, whereas Cloudflare Pages don&amp;rsquo;t; you will need to specify the Hugo version under their environment variable section.&lt;/p&gt;</description></item><item><title>Cookiecutter Template for Writing Go Command Line Interface</title><link>https://www.gollahalli.com/blog/2021/6/cookiecutter-template-for-writing-go-command-line-interface/</link><pubDate>Sun, 27 Jun 2021 18:25:31 +1200</pubDate><guid>https://www.gollahalli.com/blog/2021/6/cookiecutter-template-for-writing-go-command-line-interface/</guid><description>&lt;p&gt;I have been developing a lot of Go language based CLIs and most of them have similar structure. And every time I start a new project I tend to rewrite the same structure. So, instead of doing that I copied the required code and turned in into a cookiecutter template &amp;#x1f60e;.&lt;/p&gt;
&lt;p&gt;The repository is available at - &lt;a href="https://github.com/akshaybabloo/go-cli-template"&gt;github.com/akshaybabloo/go-cli-template&lt;/a&gt;.&lt;/p&gt;

 
 
 &lt;blockquote&gt;
 &lt;p&gt;This template is highly inspired by &lt;a href="https://github.com/cli/cli"&gt;GitHub&amp;rsquo;s CLI&lt;/a&gt;.&lt;/p&gt;

 &lt;/blockquote&gt;
 &lt;!--adsense--&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Python 3.6+
&lt;ol&gt;
&lt;li&gt;Install &lt;a href="https://github.com/cookiecutter/cookiecutter"&gt;cookiecutter&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Go 1.16+&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="usage"&gt;Usage&lt;/h2&gt;
&lt;p&gt;In your terminal type in&lt;/p&gt;</description></item><item><title>Setting Azure AD B2C Authentication in Postman</title><link>https://www.gollahalli.com/blog/2021/3/setting-azure-ad-b2c-authentication-in-postman/</link><pubDate>Thu, 04 Mar 2021 16:20:34 +1300</pubDate><guid>https://www.gollahalli.com/blog/2021/3/setting-azure-ad-b2c-authentication-in-postman/</guid><description>&lt;p&gt;Azure AD B2C has been so far good, mostly because of the 50k free user authentication &amp;#x1f607;, also it just works. The problem I had using B2C with backend was acquiring and testing tokens in development.&lt;/p&gt;
&lt;p&gt;Yes, Azure AD B2C has Resource Owner Password Credential (ROPC) flow that allows you to get tokens by just posting your username and password, but &lt;a href="https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-net-aad-b2c-considerations#resource-owner-password-credentials-ropc"&gt;they don&amp;rsquo;t recommend it&lt;/a&gt;. Though, I have been using that locally to get the tokens.&lt;/p&gt;</description></item><item><title>Creating Custom Widget for QListWidget in Qt 6</title><link>https://www.gollahalli.com/blog/2021/1/creating-custom-widget-for-qlistwidget-in-qt-6/</link><pubDate>Sat, 02 Jan 2021 16:44:41 +1300</pubDate><guid>https://www.gollahalli.com/blog/2021/1/creating-custom-widget-for-qlistwidget-in-qt-6/</guid><description>&lt;p&gt;With the arrival of Qt 6 and the complete integration of CMake, I wanted to give Qt another try before I give up and go to Electron. So far it has been good.&lt;/p&gt;
&lt;p&gt;I have been trying to create an app that uses &lt;a href="https://doc.qt.io/qt-6/qlistwidgetitem.html"&gt;QListWidget&lt;/a&gt; with custom widgets as a list, to list recently viewed files. The custom widget contains a label and a button, this button deletes itself on clicking. I had trouble connecting the child widget to the parent, and if you had the same problem then this article could help you.&lt;/p&gt;</description></item><item><title>Mongo: A MongoDB Helper for Go Language</title><link>https://www.gollahalli.com/blog/2020/6/mongo-a-mongodb-helper-for-go-language/</link><pubDate>Mon, 01 Jun 2020 19:50:00 +1200</pubDate><guid>https://www.gollahalli.com/blog/2020/6/mongo-a-mongodb-helper-for-go-language/</guid><description>&lt;p&gt;I am an avid user of MongoDB; I have used it everywhere from saving machine learning parameters to storing financial details. I have recently moved to Go language from Python/C++ and at the time of writing this article, MongoDB had its package for Go language - &lt;a href="https://github.com/mongodb/mongo-go-driver"&gt;mongo-go-driver&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Traditionally, whenever we create a document in a collection, the database creates a unique ID - &lt;code&gt;_id&lt;/code&gt; (more on that &lt;a href="https://docs.mongodb.com/manual/core/document/#the-id-field"&gt;here&lt;/a&gt;), this field is of type &lt;a href="https://docs.mongodb.com/manual/reference/bson-types/#objectid"&gt;ObjectID&lt;/a&gt;. ObjectID is a hexadecimal string that contains - 4-byte of timestamp value, 5-byte of a random value, 3-byte of incrementing counter.&lt;/p&gt;</description></item><item><title>Stopping HTTP Server Gracefully: Context vs Channels vs SyncGroup</title><link>https://www.gollahalli.com/blog/stopping-http-server-gracefully-context-vs-channels-vs-syncgroup/</link><pubDate>Sun, 02 Feb 2020 13:01:03 +1300</pubDate><guid>https://www.gollahalli.com/blog/stopping-http-server-gracefully-context-vs-channels-vs-syncgroup/</guid><description>&lt;blockquote&gt;
 &lt;p&gt;Complete code can be found at &lt;a href="https://github.com/akshaybabloo/gracefully-exit-go-http-server"&gt;github.com/akshaybabloo/gracefully-exit-go-http-server&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
 &lt;p&gt;I am developing a CLI application that requires it to authenticate and obtain a token from an API. I had a problem of gracefully shutting down the HTTP server from another function (handle), in this case, after a token is received. Go 1.8 introduced &lt;code&gt;Shutdown&lt;/code&gt; that gracefully shuts down the server without interrupting any active connections.&lt;/p&gt;
&lt;p&gt;In this post, we will look at using three ways to tell the server to shut down gracefully. Also, I am using Gorilla&amp;rsquo;s mux router.&lt;/p&gt;</description></item><item><title>dotnetcore: A .Net Core SDK Uninstaller for POSIX (now with Windows support)</title><link>https://www.gollahalli.com/blog/dotnetcore-a-dot-net-core-sdk-uninstaller-for-posix-systems/</link><pubDate>Fri, 19 Jul 2019 17:09:20 +1200</pubDate><guid>https://www.gollahalli.com/blog/dotnetcore-a-dot-net-core-sdk-uninstaller-for-posix-systems/</guid><description>&lt;p&gt;There is no official way to uninstall previous versions of .Net Core SDK on POSIX type operating systems, this tool may help you solve that problem.&lt;/p&gt;
&lt;p&gt;In Windows this tool can help you launch uninstaller as easy as writing a command line.&lt;/p&gt;
&lt;p&gt;The repository can be found at &lt;a href="https://github.com/akshaybabloo/dot-net-core-uninstaller"&gt;https://github.com/akshaybabloo/dot-net-core-uninstaller&lt;/a&gt;.&lt;/p&gt;

 
 
 &lt;blockquote&gt;
 &lt;p&gt;Note: You might need super user account to use this library.&lt;/p&gt;

 &lt;/blockquote&gt;
 &lt;h2 id="instillation"&gt;Instillation&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pip install dot-net-core-uninstaller
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;!--adsense--&gt;
&lt;h2 id="usage"&gt;Usage&lt;/h2&gt;
&lt;p&gt;There are to ways to use this:&lt;/p&gt;</description></item><item><title>Using SLF4J With Apache Log4j: An Example</title><link>https://www.gollahalli.com/blog/using-slf4j-with-log4j-an-example/</link><pubDate>Fri, 07 Jun 2019 11:56:12 +1200</pubDate><guid>https://www.gollahalli.com/blog/using-slf4j-with-log4j-an-example/</guid><description>&lt;p&gt;Logging is essential when developing a software to keep a track on what is happening internally. This blog will show you how to use SLF4J with Apache Log4j.&lt;/p&gt;
&lt;!-- TOC --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#1-requirements"&gt;1. Requirements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-what-is-logging"&gt;2. What is logging?&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#21-logger"&gt;2.1. Logger&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#211-name"&gt;2.1.1. Name&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#212-levels"&gt;2.1.2. Levels&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#22-pattern-layout"&gt;2.2. Pattern Layout&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#23-appenders"&gt;2.3. Appenders&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#231-console-appender"&gt;2.3.1. Console Appender&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#232-file-with-pattern"&gt;2.3.2. File with Pattern&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#233-json-file-async"&gt;2.3.3. JSON File (Async)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#3-what-is-log4j"&gt;3. What is Log4J?&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#31-why-use-log4j-when-java-has-javautillogging"&gt;3.1. Why use Log4J when Java has java.util.logging?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#4-what-is-slf4j"&gt;4. What is SLF4J?&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#41-why-use-slf4j-when-log4j-has-different-types-of-log-levels"&gt;4.1. Why use SLF4J when Log4J has different types of log levels?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#5-all-about-log4j2xml"&gt;5. All about &lt;code&gt;log4j2.xml&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /TOC --&gt;
&lt;h2 id="1-requirements"&gt;1. Requirements&lt;/h2&gt;
&lt;p&gt;This example assumes that you are familiar using Maven dependency manager. All the dependencies are listed in &lt;a href="https://github.com/akshaybabloo/Using-Log4J-SLF4J/blob/master/pom.xml#L32-L67"&gt;pom.xml&lt;/a&gt;&lt;/p&gt;</description></item><item><title>azsecrets: A CLI to Set Azure Key Vault as Environment Variables</title><link>https://www.gollahalli.com/blog/azsecrets-a-cli-to-set-azure-key-vault-as-environment-variables/</link><pubDate>Sat, 13 Apr 2019 18:05:05 +1200</pubDate><guid>https://www.gollahalli.com/blog/azsecrets-a-cli-to-set-azure-key-vault-as-environment-variables/</guid><description>&lt;p&gt;&lt;strong&gt;Repository: &lt;a href="https://github.com/akshaybabloo/azsecrets"&gt;https://github.com/akshaybabloo/azsecrets&lt;/a&gt;&lt;/strong&gt;
&lt;strong&gt;Documentation: &lt;a href="https://akshaybabloo.github.io/azsecrets/"&gt;https://akshaybabloo.github.io/azsecrets/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Using environment variables to store your secrets is one of the more natural way to do; these variables then can be used in your code throughout the life cycle of your Docker environment. You shouldn&amp;rsquo;t hard code your secret keys inside your application; it is just not secured. Docker lets you add the environment variable before creating an image or at the entry point when starting up your image, &lt;code&gt;azsecrets&lt;/code&gt; lets you set these environment variables that are stored in Azure Key Vault.&lt;/p&gt;</description></item><item><title>Splitting Django Settings for Local and Production Development</title><link>https://www.gollahalli.com/blog/splitting-django-settings-for-local-and-production-development/</link><pubDate>Thu, 04 Apr 2019 23:37:42 +1300</pubDate><guid>https://www.gollahalli.com/blog/splitting-django-settings-for-local-and-production-development/</guid><description>&lt;p&gt;I have been working on a few projects that use Django 2+ and deploying them to Azure Docker container. I do have one problem though; my development settings are very much different from my production. So, I have divided &lt;code&gt;settings.py&lt;/code&gt; into a package with - &lt;code&gt;base.py&lt;/code&gt;, &lt;code&gt;local.py&lt;/code&gt; and &lt;code&gt;production.py&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-tree" data-lang="tree"&gt;&amp;lt;project name&amp;gt;
├── &amp;lt;project name&amp;gt;
│   ├── __init__.py
│   └── settings
│      ├── __init__.py
│      ├── base.py
│      ├── local.py
│      └── production.py
└── .dockerignore
&lt;/code&gt;&lt;/pre&gt;&lt;!--adsense--&gt;
&lt;h2 id="dockerignore-file"&gt;&lt;code&gt;.dockerignore&lt;/code&gt; file&lt;/h2&gt;
&lt;p&gt;While building a container, the CLI looks for &lt;code&gt;.dockerignore&lt;/code&gt; file, which contains the file or file pattern to be ignored before sending the information to the Docker daemon. We can compare this to &lt;code&gt;.gitignore&lt;/code&gt;, that ignores any file mentioned in this before committing into the version control.&lt;/p&gt;</description></item><item><title>Setting Up Powershell Core in Visual Studio Code for macOS</title><link>https://www.gollahalli.com/blog/setting-up-powershell-core-in-visual-studio-code-for-macos/</link><pubDate>Mon, 03 Dec 2018 10:30:16 +0530</pubDate><guid>https://www.gollahalli.com/blog/setting-up-powershell-core-in-visual-studio-code-for-macos/</guid><description>&lt;p&gt;Things we need:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Apple computer/laptop running macOS 10.14 (yes, the expensive one)&lt;/li&gt;
&lt;li&gt;Ruby (it&amp;rsquo;s pre-installed on macOS, I have 2.3 pre-installed)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://brew.sh"&gt;Homebrew&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://code.visualstudio.com/"&gt;Visual Studio Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Patience to do this :)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you are NOT a newbie, jump to &lt;a href="#4-setting-up-vscode-to-use-powershell"&gt;Step 4&lt;/a&gt;.&lt;/p&gt;
&lt;!--adsense--&gt;
&lt;h2 id="1-installing-homebrew"&gt;1. Installing Homebrew&lt;/h2&gt;
&lt;p&gt;Open &lt;code&gt;Terminal&lt;/code&gt; and copy the link from the &lt;a href="https://brew.sh"&gt;Homebrew&lt;/a&gt; website, this will install all the necessary packages and everything nice. Easy as.&lt;/p&gt;
&lt;h2 id="2-installing-visual-studio-code"&gt;2. Installing Visual Studio Code&lt;/h2&gt;
&lt;p&gt;Goto &lt;a href="https://code.visualstudio.com/"&gt;Visual Studio Code&lt;/a&gt; website, click on the big, obvious, button to download the DMG package. Open the package and copy it to &lt;code&gt;Application&lt;/code&gt; folder. Again, easy as.&lt;/p&gt;</description></item><item><title>Spark: A Hugo Theme for Researchers</title><link>https://www.gollahalli.com/blog/spark-a-hugo-theme-for-researchers/</link><pubDate>Sun, 14 Oct 2018 19:07:26 +1300</pubDate><guid>https://www.gollahalli.com/blog/spark-a-hugo-theme-for-researchers/</guid><description>&lt;p&gt;&lt;a href="https://gohugo.io"&gt;Hugo&lt;/a&gt; is a super fast static site generator with more than 500 contributors. Companies such as 1Password, Kubernetes and Cloudflare rely on Hugo to generate their documentation. Even this website is generated using Hugo.&lt;/p&gt;
&lt;p&gt;There are a number of &lt;a href="https://themes.gohugo.io/"&gt;themes&lt;/a&gt; out there for companies, bloggers, and personal websites but I have yet to see one for researchers and PhD candidates. Introducing &lt;a href="https://github.com/akshaybabloo/spark-hugo-theme"&gt;Spark&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Spark has been developed for researchers and PhD students by a researcher, it is fully SEO integrated. It has the following features:&lt;/p&gt;</description></item><item><title>Running Java 8 With Java 9 and 10 on Windows 10</title><link>https://www.gollahalli.com/blog/running-java-8-with-java-9-and-10-on-windows-10/</link><pubDate>Wed, 04 Apr 2018 14:33:10 +1200</pubDate><guid>https://www.gollahalli.com/blog/running-java-8-with-java-9-and-10-on-windows-10/</guid><description>&lt;p&gt;Oracle has decided that from Java 9 there will be a new java version every six months and the third release would be an LTS release (?). More on it &lt;a href="https://medium.com/codefx-weekly/radical-new-plans-for-java-5f237ab05b0"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Not all libraries have upgraded them self to the latest Java releases, for example at the time of writing this Scala 2.12.5 doesn&amp;rsquo;t fully support Java 9, so I still had to use Java 8. For some reason, if you want to experiment with the newer releases of Java and for the same reason, if you install Java 9 or 10, you just cannot run Scala (or other libraries that run Java 8) that&amp;rsquo;s because Java 9/10 changes your path. Even though you add a &lt;strong&gt;JAVA_HOME&lt;/strong&gt; variable, you still find Java 9/10 being used in command line.&lt;/p&gt;</description></item><item><title>Export Your Github and Gitlab Releases as a Changelog</title><link>https://www.gollahalli.com/blog/export-your-github-and-gitlab-releases-as-a-changelog/</link><pubDate>Mon, 22 Jan 2018 13:02:05 +1200</pubDate><guid>https://www.gollahalli.com/blog/export-your-github-and-gitlab-releases-as-a-changelog/</guid><description>&lt;p&gt;The repository can be found at &lt;a href="https://github.com/akshaybabloo/release-exporter-old"&gt;https://github.com/akshaybabloo/release-exporter-old&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;At the time of writing this blog post, I have 55 repositories on my GitHub account, and more than half of them are active. None of the repositories has a changelog in it, but I have made sure that I have written the release notes at the time of releasing the package/software.&lt;/p&gt;
&lt;p&gt;So why do we need changelog you ask? I would recommend reading &lt;a href="https://softwareengineering.stackexchange.com/questions/83797/is-there-a-point-to-including-a-change-log-in-every-code-file-when-you-are-usi"&gt;this&lt;/a&gt; and &lt;a href="http://http//keepachangelog.com/"&gt;this&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Using Dirent With Msvc Compilers</title><link>https://www.gollahalli.com/blog/using-dirent-with-msvc-compilers/</link><pubDate>Tue, 12 Dec 2017 12:58:56 +1200</pubDate><guid>https://www.gollahalli.com/blog/using-dirent-with-msvc-compilers/</guid><description>&lt;p&gt;At the time of writing this blog, I am developing a C++ version of my &lt;a href="https://github.com/akshaybabloo/Spikes"&gt;Spiks&lt;/a&gt; library - &lt;a href="https://github.com/akshaybabloo/libSpikes"&gt;libSpikes&lt;/a&gt;. I was compiling the &lt;code&gt;libSpikes&lt;/code&gt; using &lt;a href="https://www.cygwin.com/"&gt;Cygwin&lt;/a&gt; and &lt;a href="http://www.mingw.org/"&gt;MinGW&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have used Linux before you can recognise the way Cygwin folder is structured. Cygwin tends to create a complete POSIX environment on the Windows, that means it brings loads of DLL files to compile C++ files. MinGW, on the other hand, brings the functionality of Win 32 API&amp;rsquo;s and also provides specific POSIX API&amp;rsquo;s.&lt;/p&gt;</description></item><item><title>Collatz Conjecture Lets Compute This</title><link>https://www.gollahalli.com/blog/collatz-conjecture-lets-compute-this/</link><pubDate>Thu, 17 Aug 2017 12:51:48 +1200</pubDate><guid>https://www.gollahalli.com/blog/collatz-conjecture-lets-compute-this/</guid><description>&lt;p&gt;Before we look into what a Collatz conjecture is, I highly recommend watching the (below video by Numberphile.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/5mFpVDpKX70?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;Collatz conjecture also called as $3n+1$ problem, $3x+1$ mapping, Hasse&amp;rsquo;s algorithm, Kakutani&amp;rsquo;s problem, Syracuse algorithm, Syracuse problem, Thwaites conjecture, and Ulam&amp;rsquo;s problem.&lt;/p&gt;
&lt;p&gt;Basically, the problem states that all positive whole numbers should eventually compute to $1$, which is based on the following condition:&lt;/p&gt;</description></item><item><title>Part 1.2 Car Nd Masking and Colouring a Region of the Image</title><link>https://www.gollahalli.com/blog/part-1-2-car-nd-masking-and-colouring-a-region-of-the-image/</link><pubDate>Tue, 09 May 2017 12:55:25 +1200</pubDate><guid>https://www.gollahalli.com/blog/part-1-2-car-nd-masking-and-colouring-a-region-of-the-image/</guid><description>&lt;p&gt;In this part of Car-ND, we will look at how to mask and colour the region.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Table of Contents&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#1-basic-math"&gt;1 Basic Math&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#11-one-degree-polynomial"&gt;1.1 One Degree Polynomial&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-lets-code"&gt;2 Let&amp;rsquo;s Code&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#21-complete-code"&gt;2.1 Complete Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#22-output"&gt;2.2 Output&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#3-whats-next"&gt;3. What&amp;rsquo;s Next?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!--adsense--&gt;
&lt;h2 id="1-basic-math"&gt;1 Basic Math&lt;/h2&gt;
&lt;p&gt;Before I show you the code, let&amp;rsquo;s understand some (very) basic mathematics that are necessary to understand for this part&lt;/p&gt;
&lt;h3 id="11-one-degree-polynomial"&gt;1.1 One Degree Polynomial&lt;/h3&gt;
&lt;p&gt;A polynomial equation looks something like this (lets call it equation 1):&lt;/p&gt;</description></item><item><title>Part 1.1 Car Nd Detect Road Lanes Using Computer Vision and Python 3</title><link>https://www.gollahalli.com/blog/part-1-1-car-nd-detect-road-lanes-using-computer-vision-and-python-3/</link><pubDate>Fri, 24 Feb 2017 11:46:09 +1200</pubDate><guid>https://www.gollahalli.com/blog/part-1-1-car-nd-detect-road-lanes-using-computer-vision-and-python-3/</guid><description>&lt;p&gt;This blog is few part series in the field of Computer Vision and Deep Learning. In this blog, we will try to understand the following questions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What is Computer Vision?&lt;/li&gt;
&lt;li&gt;Why use Computer Vision?&lt;/li&gt;
&lt;li&gt;What are the languages out there that do Computer Vision?&lt;/li&gt;
&lt;li&gt;A simple example of image manipulation.&lt;/li&gt;
&lt;/ol&gt;
&lt;!--adsense--&gt;
&lt;h2 id="1-what-is-computer-vision"&gt;1. What is Computer Vision?&lt;/h2&gt;
&lt;p&gt;According to Wikipedia&lt;/p&gt;

 
 
 &lt;blockquote&gt;
 &lt;p&gt;Computer vision is an interdisciplinary field that deals with how computers can be made to gain high-level understanding from digital images or videos. From the perspective of engineering, it seeks to automate tasks that the human visual system can do.&lt;/p&gt;</description></item><item><title>Retrieving Dns Records Using Python</title><link>https://www.gollahalli.com/blog/retrieving-dns-records-using-python/</link><pubDate>Fri, 16 Sep 2016 11:34:26 +1200</pubDate><guid>https://www.gollahalli.com/blog/retrieving-dns-records-using-python/</guid><description>&lt;p&gt;You can retrieve DNS records using &lt;code&gt;dnspython&lt;/code&gt; package. You can install the package using &lt;code&gt;pip install dnspython&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Gist can be found at &lt;a href="https://gist.github.com/akshaybabloo/2a1df455e7643926739e934e910cbf2e"&gt;https://gist.github.com/akshaybabloo/2a1df455e7643926739e934e910cbf2e&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The problem with this package is that you cannot retrieve all the records at a time so a quick and dirty alternative is to put them in &lt;code&gt;for&lt;/code&gt; loop. Few record names in this list (&lt;code&gt;ids&lt;/code&gt;) raise an exception, for example &lt;code&gt;ANY&lt;/code&gt;, this is because there is no DNS record called &lt;code&gt;ANY&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Introduction to Unreal Engine 4</title><link>https://www.gollahalli.com/blog/introduction-to-unreal-engine-4/</link><pubDate>Fri, 16 Sep 2016 11:25:50 +1200</pubDate><guid>https://www.gollahalli.com/blog/introduction-to-unreal-engine-4/</guid><description>&lt;p&gt;&lt;strong&gt;The project files can be downloaded from &lt;a href="https://github.com/akshaybabloo/UnrealEngine_4_Notes"&gt;https://github.com/akshaybabloo/UnrealEngine_4_Notes&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;UnrealEngine 4 using Blueprint visual scripting system.&lt;/p&gt;

 
 
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Note 1:&lt;/strong&gt; This project is developed on Mac OSX 10.11.2 using UnrealEngine 4.10.2. It should work on Windows as well.&lt;/p&gt;

 &lt;/blockquote&gt;
 
 
 
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Note 2:&lt;/strong&gt; Notes shown below may contain few lines from the original &lt;a href="https://docs.unrealengine.com"&gt;UnrealEngine Documentation&lt;/a&gt;.&lt;/p&gt;

 &lt;/blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Outcome&lt;/strong&gt;&lt;/p&gt;

 
 
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Note 3:&lt;/strong&gt; This is only a gif file compressed to load easily. The quality of the environment is 1000000% better than this.&lt;/p&gt;</description></item><item><title>Unreal Engine 4 and Samsung Gear VR</title><link>https://www.gollahalli.com/blog/unreal-engine-4-and-samsung-gear-vr/</link><pubDate>Mon, 05 Sep 2016 11:20:47 +1200</pubDate><guid>https://www.gollahalli.com/blog/unreal-engine-4-and-samsung-gear-vr/</guid><description>&lt;p&gt;A simple game using Unreal Engine 4.10.* and 4.11.2 for GearVR&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The code can be found at - &lt;a href="https://github.com/akshaybabloo/GearVR-UnrealEngine4"&gt;https://github.com/akshaybabloo/GearVR-UnrealEngine4&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

 
 
 &lt;blockquote&gt;
 &lt;p&gt;Note 1: For Mac users make sure you download Java 6 -&amp;gt; &lt;a href="https://support.apple.com/kb/dl1572"&gt;https://support.apple.com/kb/dl1572&lt;/a&gt; and Java 7. The setup is the same for UnrealEngine 4.11.&lt;/p&gt;

 &lt;/blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Table of content&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#1-introduction"&gt;1 Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-requirements"&gt;2 Requirements&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#21-general"&gt;2.1 General&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#22-mac"&gt;2.2 Mac&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#23-windows"&gt;2.3 Windows&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#3-instillation"&gt;3 Instillation&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#31-mac"&gt;3.1 Mac&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#311-android-studio"&gt;3.1.1 Android Studio&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#32-enabling-android-developer-options"&gt;3.2 Enabling Android Developer Options&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#33-getting-device-id"&gt;3.3 Getting device ID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#34-downloading-oculus-signature-file-osig-and-placing-it-in-ue"&gt;3.4 Downloading &lt;code&gt;Oculus Signature File (osig)&lt;/code&gt; and placing it in UE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#34-installing-codeworks-for-android"&gt;3.4 Installing &lt;code&gt;CodeWorks for Android&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#4-developing-a-game"&gt;4 Developing a game&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#5-packing-it-up-for-android"&gt;5 Packing it up for Android&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#51-package-configuration"&gt;5.1 Package Configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#52-packing"&gt;5.2 Packing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#6-installing-it-on-android"&gt;6 Installing it on Android&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;License&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Setting up WiFi EAP-PEAP on Linux</title><link>https://www.gollahalli.com/blog/setting-up-wifi-eap-peap-on-linux/</link><pubDate>Sat, 25 Jun 2016 18:29:02 +1200</pubDate><guid>https://www.gollahalli.com/blog/setting-up-wifi-eap-peap-on-linux/</guid><description>&lt;p&gt;A few months ago I was trying to setup up WiFi on my Raspberry Pi. That time I didn&amp;rsquo;t know that Pi has problems with Enterprise WiFi and my university did not provide support to Linux distribution. Thanks to Google I fond the answer.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t want others to have the same problem. Follow these steps to setup up your office/university WiFi.&lt;/p&gt;
&lt;!--adsense--&gt;
&lt;h2 id="step-1-requirements"&gt;Step 1: Requirements&lt;/h2&gt;
&lt;p&gt;Make sure you have your username, password, proxy IP and WiFi SSID. For the sake of this tutorial let&amp;rsquo;s consider a username, password, proxy IP and WiFi SSID.&lt;/p&gt;</description></item><item><title>Emotiv and Matlab</title><link>https://www.gollahalli.com/blog/emotiv-and-matlab/</link><pubDate>Mon, 06 Jun 2016 16:29:14 +1200</pubDate><guid>https://www.gollahalli.com/blog/emotiv-and-matlab/</guid><description>&lt;p&gt;&lt;strong&gt;The code can be found at &lt;a href="https://github.com/akshaybabloo/Emotiv-Matlab"&gt;https://github.com/akshaybabloo/Emotiv-Matlab&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

 
 
 &lt;blockquote&gt;
 &lt;p&gt;Note 1: Please note that this only works on 32-bit version of Matlab&lt;/p&gt;

 &lt;/blockquote&gt;
 &lt;p&gt;There are two ways to get the data from your Emotiv EPOC device&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/akshaybabloo/Emotiv-Matlab/tree/master/one"&gt;One&lt;/a&gt; -&amp;gt; Copyright (c) May 2010 The Johns Hopkins University Applied Physics Laboratory (JHU/APL).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/akshaybabloo/Emotiv-Matlab/tree/master/two"&gt;Two&lt;/a&gt; -&amp;gt; Copyright (c) 2012, Gavin&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Table of Contents&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#1-structure"&gt;1 Structure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-requirements"&gt;2 Requirements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#3-installing-mex-compiler"&gt;3 Installing &lt;code&gt;mex&lt;/code&gt; compiler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#4-using-m-files"&gt;4 Using &lt;code&gt;.m&lt;/code&gt; files&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#41-using-one-eeg-logger"&gt;4.1 Using &lt;code&gt;one&lt;/code&gt; (EEG Logger)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#42-using-two-emotiv-eeg"&gt;4.2 Using &lt;code&gt;two&lt;/code&gt; (Emotiv EEG)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#5-troubleshooting"&gt;5 Troubleshooting&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;License&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Retrieving User Repositories Using Github Api With Little Help of Python 3</title><link>https://www.gollahalli.com/blog/retrieving-user-repositories-using-github-api-with-little-help-of-python-3/</link><pubDate>Tue, 02 Feb 2016 11:20:32 +1200</pubDate><guid>https://www.gollahalli.com/blog/retrieving-user-repositories-using-github-api-with-little-help-of-python-3/</guid><description>&lt;p&gt;There are different ways to retrieve user repositories; one such is using Python libraries, but they usually need your API keys even though your repository is public. We could do this by using GitHub&amp;rsquo;s API v3 HTTP request.&lt;/p&gt;
&lt;p&gt;For example, to retrieve my public libraries I would use https://api.github.com/users/akshaybabloo/repos, this returns a JSON array; we just have to use the Python&amp;rsquo;s &lt;strong&gt;json&lt;/strong&gt; standard library to get the desired key-value pairs (in Python&amp;rsquo;s terminology - Dictionary).&lt;/p&gt;</description></item></channel></rss>