<?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 Arjun Krishna - Software Developer</title>
    <link>https://www.arjunkrishna.us/blog/</link>
    <description>Recent content in Blog on Arjun Krishna - Software Developer</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 05 May 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://www.arjunkrishna.us/blog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Improving Moving Average implementation in conjunction with BenchmarkDotNet</title>
      <link>https://www.arjunkrishna.us/blog/moving-average-improvement-using-benchmark-dot-net/</link>
      <pubDate>Wed, 05 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.arjunkrishna.us/blog/moving-average-improvement-using-benchmark-dot-net/</guid>
      <description>Last night I read an article about someone working on moving average calculation. I remembered I had done a similar exercise few years ago. I put it into BenchmarkDotNet and then wanted to try ArrayPool and ReadOnlySpan features in C# to improve its performance. I do not do much open-source stuff, so feel free to improve it and let me know where I have gone wrong. BenchmarkConsoleTest .
Github Repo The code is available on github : BenchmarkConsoleTest Moving Average Sample Implementation [Benchmark] public double[] MovingAverageDeltaSum() { var currentFrameSize = 0; double cumulativeSum = 0; ReadOnlySpan&amp;lt;double&amp;gt; dataSpan = Data.</description>
    </item>
    
    <item>
      <title>Configure Alexa Skill to use Blazor Backend</title>
      <link>https://www.arjunkrishna.us/blog/alexa-backend-within-blazor/</link>
      <pubDate>Mon, 28 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.arjunkrishna.us/blog/alexa-backend-within-blazor/</guid>
      <description>I have an Alexa Skill for a personal project that utilizes azure functions for its backend. I had started dabbling into blazor wasm and wanted to try connecting an alexa skill to it with account linking functionality. I found a sample public repo which utilizes Identity server for managing users, so it was a perfect test bed for alexa account linking functionality. I faced some issues while doing that. I jotted down the steps which finally made it work and added them into a sample repository as a README.</description>
    </item>
    
    <item>
      <title>Reverse Engineer Postgres Database Model Using EntityFramework Core</title>
      <link>https://www.arjunkrishna.us/blog/reverse_engineer-postgres-db-model-with-efcore/</link>
      <pubDate>Sun, 27 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.arjunkrishna.us/blog/reverse_engineer-postgres-db-model-with-efcore/</guid>
      <description>I tried Dapper it was fun to use. It is pretty powerful. I now wanted to try entityframework-core. In Dapper, I did everything in database first. Now I wanted to do everything in code first. I&amp;rsquo;ve used entityframework earlier in my previous jobs so have an understanding how it works but there is always something new to learn.
I&amp;rsquo;ve this side project (parents life app) where I use blazor wasm along with identity server 4, grpc-web, hangfire, alexa integration (kinda broken at this time) with postgres as backend.</description>
    </item>
    
    <item>
      <title>Dapper DateTime to Protobuf TimeStamp</title>
      <link>https://www.arjunkrishna.us/blog/dapper-protobuf-timestamp/</link>
      <pubDate>Mon, 08 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.arjunkrishna.us/blog/dapper-protobuf-timestamp/</guid>
      <description>I was trying blazor with Grpc-web in .net core and wanted it to work with a postgres sample table. I was feeling lazy and did not want to create a DTO object in between. This attempt to save time became a time waster very fast. :)
I received an error &amp;ldquo;Invalid cast from &amp;lsquo;System.DateTime&amp;rsquo; to &amp;lsquo;Google.Protobuf.WellKnownTypes.Timestamp&amp;rsquo;&amp;rdquo;. I immediately thought of adding a DTO and populate the data and then translate it to protobuf type.</description>
    </item>
    
    <item>
      <title>Setup Postgres on Local Docker</title>
      <link>https://www.arjunkrishna.us/blog/local-docker_postgres-setup/</link>
      <pubDate>Sun, 02 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.arjunkrishna.us/blog/local-docker_postgres-setup/</guid>
      <description>I keep forgetting how to setup a postgres instance on local docker on windows 10 machine. I have to search it everytime. I am adding the steps here for myself.
Two links I found useful this time were
Don&amp;#39;t install Postgres. Docker pull Postgres postgres container setup setup
--default driver is local so it persists on your local machine. --I was not able to resolve a permission error while mapping my local folder to docker&amp;#39;s internal postgres/data folder --this worked so left it as is and moved on.</description>
    </item>
    
    <item>
      <title>After GPU Upgrade, Unable to access BIOS</title>
      <link>https://www.arjunkrishna.us/blog/after-gpu-upgrade-unable-to-access-bios/</link>
      <pubDate>Sat, 05 Jan 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.arjunkrishna.us/blog/after-gpu-upgrade-unable-to-access-bios/</guid>
      <description>I had upgraded my GPU on my dual boot desktop recently (default as Ubuntu, secondary as Windows). Everything was working fine or so I thought. I don&amp;rsquo;t use windows a lot at home these days because some tutorials that I have been following lately, uses setup for linux, which unfortunately is not working via windows bash ( windows subsystem for linux does not talk to CUDA yet ).
My wife uses the desktop sometimes.</description>
    </item>
    
    <item>
      <title>Hyper - yet another terminal</title>
      <link>https://www.arjunkrishna.us/blog/hyper-terminal/</link>
      <pubDate>Wed, 05 Dec 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.arjunkrishna.us/blog/hyper-terminal/</guid>
      <description>I was going through a course to learn react and noticed in the video that the instructor is using some terminal which can be updated with plugins in realtime.
I gave Hyper terminal a spin. It is available for multiple platforms. I have used it for a day and I like it, but it feels a little bit buggy.
To mimic conEmu&amp;rsquo;s multiple pane, I did install the hyper-pane plugin and it works well.</description>
    </item>
    
    <item>
      <title>Etcher failing to write to USB thumb drive on windows 10</title>
      <link>https://www.arjunkrishna.us/blog/etcher-windows10-write-failure/</link>
      <pubDate>Wed, 21 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.arjunkrishna.us/blog/etcher-windows10-write-failure/</guid>
      <description>On Windows 10 if etcher is failing to write (lets say ubuntu iso) to the USB thumb drive, with permission error, then we need to temporarily turn off Windows 10 Controlled Folder Access.
Windows 10 Controlled Folder Access Update open windows defender open virus &amp;amp; threat protection open ransomware protection turn off controlled file access Go back to Etcher and restart the usb thumb drive flash process. It should work now.</description>
    </item>
    
    <item>
      <title>Nvidia Driver Causes Ubuntu Crash</title>
      <link>https://www.arjunkrishna.us/blog/nvidia-driver-causes-ubuntu-crash/</link>
      <pubDate>Tue, 20 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.arjunkrishna.us/blog/nvidia-driver-causes-ubuntu-crash/</guid>
      <description>Steps to remove nvidia driver If Ubuntu is not booting up after installing the nvidia drivers, we need to remove them and restore it to X.Org X server driver. Please reboot to root shell and run the following commands.
ubuntu-drivers list output should look something similar
nvidia-340 nvidia-driver-390 Now remove these drivers.
sudo apt-get remove nvidia-340 sudo apt-get remove nvidia-driver-390 reboot Your machine should boot normally.
The Software Updates screen should look something like this.</description>
    </item>
    
    <item>
      <title>Calibrate touchscreen on ubuntu</title>
      <link>https://www.arjunkrishna.us/blog/calibrate-touchscreen-ubuntu/</link>
      <pubDate>Sat, 17 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.arjunkrishna.us/blog/calibrate-touchscreen-ubuntu/</guid>
      <description>Steps to setup calibration settings xinput is a utility to list available input devices, query information about a device and change input device settings.
xinput ⎡ Virtual core pointer id=2	[master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4	[slave pointer (2)] ⎜ ↳ SONiX USB Keyboard id=11	[slave pointer (2)] ⎜ ↳ USB Optical Mouse id=12	[slave pointer (2)] ⎜ ↳ Melfas LGD AIT Touch Controller id=9	[slave pointer (2)] ⎣ Virtual core keyboard id=3	[master keyboard (2)] ↳ Virtual core XTEST keyboard id=5	[slave keyboard (3)] ↳ Power Button id=6	[slave keyboard (3)] ↳ Power Button id=7	[slave keyboard (3)] ↳ HD Pro Webcam C920 id=8	[slave keyboard (3)] ↳ SONiX USB Keyboard id=10	[slave keyboard (3)] ↳ Eee PC WMI hotkeys id=13	[slave keyboard (3)] ↳ SONiX USB Keyboard id=14	[slave keyboard (3)] xrandr tool (an app component in Xorg) is a command line interface to RandR extension, and can be used to set outputs for a screen dynamically, without any specific setting in xorg.</description>
    </item>
    
    <item>
      <title>Useful Powershell Commands</title>
      <link>https://www.arjunkrishna.us/blog/useful-powershell-scripts/</link>
      <pubDate>Thu, 11 Oct 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.arjunkrishna.us/blog/useful-powershell-scripts/</guid>
      <description>This is an old list of powershell scripts I use. I should update this list to use latest version of powershell.
Steps to create your profile $profile test-path $profile #if false then create a new file for your user account new-item -path $profile -itemtype file -force notepad $profile Set-ExecutionPolicy unrestricted Create powershell functions and store them in your profile file #Installation Step #Install-Module posh-git -Scope CurrentUser -Force #Install-Module oh-my-posh -Scope CurrentUser -Force Import-Module posh-git Import-Module oh-my-posh Set-Theme Paradox function _pskill ($processName=&amp;#34;&amp;#34;) {Get-Process | Where { $_.</description>
    </item>
    
    <item>
      <title>Creating a New Theme</title>
      <link>https://www.arjunkrishna.us/blog/creating-a-new-theme/</link>
      <pubDate>Sun, 28 Sep 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.arjunkrishna.us/blog/creating-a-new-theme/</guid>
      <description>Introduction This tutorial will show you how to create a simple theme in Hugo. I assume that you are familiar with HTML, the bash command line, and that you are comfortable using Markdown to format content. I&amp;rsquo;ll explain how Hugo uses templates and how you can organize your templates to create a theme. I won&amp;rsquo;t cover using CSS to style your theme.
We&amp;rsquo;ll start with creating a new site with a very basic template.</description>
    </item>
    
    <item>
      <title>(Hu)go Template Primer</title>
      <link>https://www.arjunkrishna.us/blog/goisforlovers/</link>
      <pubDate>Wed, 02 Apr 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.arjunkrishna.us/blog/goisforlovers/</guid>
      <description>Hugo uses the excellent go html/template library for its template engine. It is an extremely lightweight engine that provides a very small amount of logic. In our experience that it is just the right amount of logic to be able to create a good static website. If you have used other template systems from different languages or frameworks you will find a lot of similarities in go templates.
This document is a brief primer on using go templates.</description>
    </item>
    
    <item>
      <title>Getting Started with Hugo</title>
      <link>https://www.arjunkrishna.us/blog/hugoisforlovers/</link>
      <pubDate>Wed, 02 Apr 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.arjunkrishna.us/blog/hugoisforlovers/</guid>
      <description>&lt;h2 id=&#34;step-1-install-hugo&#34;&gt;Step 1. Install Hugo&lt;/h2&gt;
&lt;p&gt;Go to &lt;a href=&#34;https://github.com/spf13/hugo/releases&#34;&gt;hugo releases&lt;/a&gt; and download the
appropriate version for your os and architecture.&lt;/p&gt;
&lt;p&gt;Save it somewhere specific as we will be using it in the next step.&lt;/p&gt;
&lt;p&gt;More complete instructions are available at &lt;a href=&#34;https://www.arjunkrishna.us/overview/installing/&#34;&gt;installing hugo&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Migrate to Hugo from Jekyll</title>
      <link>https://www.arjunkrishna.us/blog/migrate-from-jekyll/</link>
      <pubDate>Mon, 10 Mar 2014 00:00:00 +0000</pubDate>
      
      <guid>https://www.arjunkrishna.us/blog/migrate-from-jekyll/</guid>
      <description>&lt;h2 id=&#34;move-static-content-to-static&#34;&gt;Move static content to &lt;code&gt;static&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Jekyll has a rule that any directory not starting with &lt;code&gt;_&lt;/code&gt; will be copied as-is to the &lt;code&gt;_site&lt;/code&gt; output. Hugo keeps all static content under &lt;code&gt;static&lt;/code&gt;. You should therefore move it all there.
With Jekyll, something that looked like&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;▾ &amp;lt;root&amp;gt;/
    ▾ images/
        logo.png
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    
  </channel>
</rss>
