<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Posts on Software Craftsperson</title>
    <link>https://www.softwarecraftsperson.com/posts/</link>
    <description>Recent content in Posts on Software Craftsperson</description>
    <image>
      <title>Software Craftsperson</title>
      <url>https://www.softwarecraftsperson.com/logos/web/png/Color%20logo%20-%20no%20background.png</url>
      <link>https://www.softwarecraftsperson.com/logos/web/png/Color%20logo%20-%20no%20background.png</link>
    </image>
    <generator>Hugo -- 0.147.1</generator>
    <language>en</language>
    <lastBuildDate>Wed, 01 Apr 2026 09:00:00 +0100</lastBuildDate>
    <atom:link href="https://www.softwarecraftsperson.com/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Practical GitHub Repository Hardening for a Hugo Site</title>
      <link>https://www.softwarecraftsperson.com/posts/github-repository-hardening-playbook/</link>
      <pubDate>Wed, 01 Apr 2026 09:00:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/github-repository-hardening-playbook/</guid>
      <description>A practical playbook for hardening a Hugo repository with reproducible builds, dependency controls, secret scanning, Semgrep, scorecards, and local guardrails.</description>
    </item>
    <item>
      <title>When Your Workplace Controls Your Personal GitHub Repos: Understanding GitHub Org Policies</title>
      <link>https://www.softwarecraftsperson.com/posts/github-org-policies-affect-personal-repos/</link>
      <pubDate>Wed, 01 Apr 2026 09:00:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/github-org-policies-affect-personal-repos/</guid>
      <description>Joining a GitHub organisation with your personal account means enterprise policies can silently restrict your private repos. Here is how GitHub permission layers work and what to expect.</description>
    </item>
    <item>
      <title>Prompting Essentials for Software Engineers: 4 Practical Strategies for Better AI Output</title>
      <link>https://www.softwarecraftsperson.com/posts/prompting-essentials-for-software-engineers/</link>
      <pubDate>Sun, 29 Mar 2026 21:43:23 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/prompting-essentials-for-software-engineers/</guid>
      <description>Learn four practical prompting strategies software engineers can use with LLMs to gather better requirements, evaluate trade-offs, and ship higher-quality code faster.</description>
    </item>
    <item>
      <title>Start Here to Learn Large Language Models: Best Andrej Karpathy Resources</title>
      <link>https://www.softwarecraftsperson.com/posts/learn-large-language-models-karpathy-resources/</link>
      <pubDate>Sat, 07 Mar 2026 21:38:10 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/learn-large-language-models-karpathy-resources/</guid>
      <description>Start your LLM learning journey with Andrej Karpathy&amp;#39;s best talks on pretraining, finetuning, scaling laws, and practical model-building resources.</description>
    </item>
    <item>
      <title>From Concept to Production: Building CalOohPay with AI-Assisted Development</title>
      <link>https://www.softwarecraftsperson.com/posts/2026-01-31-ai-assisted-development-caloohpay-journey/</link>
      <pubDate>Sat, 31 Jan 2026 10:00:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2026-01-31-ai-assisted-development-caloohpay-journey/</guid>
      <description>A personal journey of building CalOohPay - from a simple CLI tool to a full-fledged web application - using GitHub Copilot with Claude Sonnet 4.5. Discover how AI-assisted coding accelerated development, the importance of clear constraints, and the real-world impact of generative AI on software delivery.</description>
    </item>
    <item>
      <title>Shift Reliability Left: Use SLOs to Guide Architecture Early</title>
      <link>https://www.softwarecraftsperson.com/posts/2025-12-04-sli-slo-reliability-shift-left/</link>
      <pubDate>Thu, 04 Dec 2025 09:00:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2025-12-04-sli-slo-reliability-shift-left/</guid>
      <description>A practical guide to defining SLOs and SLIs early in the SDLC so reliability requirements shape architecture, testing, and release decisions.</description>
    </item>
    <item>
      <title>To Code or Not to Code as an Engineering Manager: Making the Right Choice</title>
      <link>https://www.softwarecraftsperson.com/posts/2025-10-30-engineering-manager-code-or-not/</link>
      <pubDate>Thu, 30 Oct 2025 21:44:57 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2025-10-30-engineering-manager-code-or-not/</guid>
      <description>Explore whether engineering managers should code. Discover the balance between strategic leadership and technical contributions, different EM archetypes, and when it makes sense to write code as an engineering manager.</description>
    </item>
    <item>
      <title>Transactional Outbox Pattern: A Practical Guide to Trade-offs</title>
      <link>https://www.softwarecraftsperson.com/posts/2025-10-08-transactional-outbox-pattern/</link>
      <pubDate>Mon, 08 Sep 2025 21:40:52 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2025-10-08-transactional-outbox-pattern/</guid>
      <description>How the Transactional Outbox Pattern addresses the dual write problem, with practical implementation choices and operational trade-offs.</description>
    </item>
    <item>
      <title>The Honey Badger Management Framework</title>
      <link>https://www.softwarecraftsperson.com/posts/2025-07-29-honey-badger-management-framework/</link>
      <pubDate>Tue, 29 Jul 2025 10:13:49 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2025-07-29-honey-badger-management-framework/</guid>
      <description>What is honey badger management framework? Why do we need it? Can we not use it in 2025?</description>
    </item>
    <item>
      <title>Moving to AWS Amplify from Azure</title>
      <link>https://www.softwarecraftsperson.com/posts/2025-05-26-aws-amplify-hugo/</link>
      <pubDate>Mon, 26 May 2025 08:16:14 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2025-05-26-aws-amplify-hugo/</guid>
      <description>Good bye Azure Front Door, welcome AWS Amplify</description>
    </item>
    <item>
      <title>Azure CDN, Front Door and the cost</title>
      <link>https://www.softwarecraftsperson.com/posts/2025-04-25-azure-cdn-front-door/</link>
      <pubDate>Fri, 25 Apr 2025 22:41:59 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2025-04-25-azure-cdn-front-door/</guid>
      <description>How I raked up 34 times more cost for hosting a static website</description>
    </item>
    <item>
      <title>How to install an older version of Hugo on MacOs</title>
      <link>https://www.softwarecraftsperson.com/posts/2025-04-12-how-install-older-hugo/</link>
      <pubDate>Sat, 12 Apr 2025 16:26:05 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2025-04-12-how-install-older-hugo/</guid>
      <description>How do I rollback to an older version of Hugo because the new version has breaking changes</description>
    </item>
    <item>
      <title>Evolving your Leadership Style as you scale your organisation</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-12-14-scaling-evolving-leadership-style/</link>
      <pubDate>Sat, 14 Dec 2024 22:58:57 +0530</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-12-14-scaling-evolving-leadership-style/</guid>
      <description>What worked for small teams will not work for larger teams. Change in leadership style is necessary</description>
    </item>
    <item>
      <title>How and Why should you Sign Git Commits with GPG: A Practical Guide</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-11-12-signing-gpg-commit/</link>
      <pubDate>Thu, 12 Dec 2024 09:00:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-11-12-signing-gpg-commit/</guid>
      <description>Learn how to sign Git commits with GPG, why commit signing matters for security and trust, and step-by-step setup for macOS, Linux and GitHub. Prevent identity spoofing and enable verified commits.</description>
    </item>
    <item>
      <title>Adding a responsive menu to your Hugo PaperMod blog</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-11-09-responsive-menu/</link>
      <pubDate>Sat, 09 Nov 2024 16:37:36 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-11-09-responsive-menu/</guid>
      <description>How to add a responsive menu to your Hugo-PaperMod themed blog or website</description>
    </item>
    <item>
      <title>Why your internal developer platform will fail</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-10-31-why-your-idp-will-fail/</link>
      <pubDate>Thu, 31 Oct 2024 21:35:44 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-10-31-why-your-idp-will-fail/</guid>
      <description>What you need to do to avoid failure and make the best internal developer platform</description>
    </item>
    <item>
      <title>Managing life with a new born</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-10-20-managing-a-newborn/</link>
      <pubDate>Sun, 20 Oct 2024 21:04:16 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-10-20-managing-a-newborn/</guid>
      <description>What no one tells you about starting a family. Parenting, sickness, work conference, etc</description>
    </item>
    <item>
      <title>Virtual Private Cloud (VPC): A Practical Guide to Cloud Network Isolation</title>
      <link>https://www.softwarecraftsperson.com/posts/2025-08-21-virtual-private-cloud/</link>
      <pubDate>Wed, 21 Aug 2024 21:44:57 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2025-08-21-virtual-private-cloud/</guid>
      <description>Learn what a VPC is, how it works, and why organizations use it to create secure, isolated networks in public cloud environments. Includes real-world examples and architecture patterns.</description>
    </item>
    <item>
      <title>The Hidden Dangers of Unconscious Bias: Understanding and Managing Implicit Prejudices</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-08-15-dangers-of-unconscious-bias/</link>
      <pubDate>Thu, 15 Aug 2024 07:55:18 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-08-15-dangers-of-unconscious-bias/</guid>
      <description>A look at how unconscious bias works, the harm it can cause, why it is important to manage it</description>
    </item>
    <item>
      <title>Lack of product thinking - A rant</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-04-01-lack-product-thinking/</link>
      <pubDate>Mon, 01 Apr 2024 22:28:49 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-04-01-lack-product-thinking/</guid>
      <description>Pragmatic iterative solutions are always better than embracing a shiny new thing because FAANG has proven it can be done.</description>
    </item>
    <item>
      <title>Using Hugo Modules for themes</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-04-01-hugo-modules/</link>
      <pubDate>Mon, 01 Apr 2024 15:29:34 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-04-01-hugo-modules/</guid>
      <description>How to manage your Hugo themes using Hugo Modules</description>
    </item>
    <item>
      <title>What is Incident Management in Software Engineering?</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-03-02-incident-response-and-management/</link>
      <pubDate>Sat, 02 Mar 2024 07:09:15 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-03-02-incident-response-and-management/</guid>
      <description>Incidents, managing them and the various roles involved in managing them. How do you go about setting up an incident management process for your org?</description>
    </item>
    <item>
      <title>What is my Management Philosophy</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-02-20-management-philosophy/</link>
      <pubDate>Tue, 20 Feb 2024 21:44:40 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-02-20-management-philosophy/</guid>
      <description>What is a management philosophy? What is mine? How to manage successful teams?</description>
    </item>
    <item>
      <title>The journey of an email - from sender to receiver and everything in between</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-02-18-how-email-works/</link>
      <pubDate>Sun, 18 Feb 2024 18:21:06 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-02-18-how-email-works/</guid>
      <description>What happens when you send an email? How does it go from sender to receiver? How does one know if the email was not spam?</description>
    </item>
    <item>
      <title>Updating PaperMod to the latest and greatest</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-02-06-papermod-update/</link>
      <pubDate>Tue, 06 Feb 2024 22:42:57 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-02-06-papermod-update/</guid>
      <description>&lt;p&gt;This post is more of a note to self.&lt;/p&gt;
&lt;h2 id=&#34;papermod-update&#34;&gt;PaperMod Update&lt;/h2&gt;
&lt;p&gt;So last week, after a very long time, I actually spent some time doing some housekeeping on this blog. I decided to check Hugo versions and what&amp;rsquo;s new on &lt;a href=&#34;https://github.com/adityatelange/hugo-PaperMod&#34;&gt;paperMod&lt;/a&gt;. Found that there were many new things. Pulled in the latest and built the site only to realize it broke!&lt;/p&gt;
&lt;h3 id=&#34;how-did-you-get-the-latest-version&#34;&gt;How did you get the latest version?&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git submodule update --recursive --remote
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;So some of the features introduced in the latest version of PaperMod weren&amp;rsquo;t supported in the version of Hugo that I had running, which was &lt;code&gt;v0.109.0&lt;/code&gt;. I am not aware of what features exactly, so can&amp;rsquo;t really tell you. I didn&amp;rsquo;t have the time to explore.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How I optimised my blog&#39;s search performance</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-02-05-hugo-optimise-fusejs-search/</link>
      <pubDate>Mon, 05 Feb 2024 00:25:31 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-02-05-hugo-optimise-fusejs-search/</guid>
      <description>How to give a better user experience for those searching for articles in your blog, using simple programming techniques and overriding the theme&amp;#39;s default search mechanism.</description>
    </item>
    <item>
      <title>How to add commenting functionality to your Hugo Blog using Utterances</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-02-04-blog-comments-using-utterances/</link>
      <pubDate>Sun, 04 Feb 2024 18:36:45 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-02-04-blog-comments-using-utterances/</guid>
      <description>Your blog posts are conversation starters and to support conversations, you need readers to be able to comment on the post. Utterance is a free, open source lightweight comment widget build on GitHub issues for using on blog, wiki, github pages etc.</description>
    </item>
    <item>
      <title>How to create a custom mode for Hugo-PaperMod theme using go template and html</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-02-03-hugo-papermod-modes/</link>
      <pubDate>Sat, 03 Feb 2024 22:23:40 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-02-03-hugo-papermod-modes/</guid>
      <description>Creating a custom landing page for Hugo-PaperMod that is a combination of the HomeInfo mode and the profile mode. I call it the Hybrid mode.</description>
    </item>
    <item>
      <title>Style Modifications to Hugo PaperMod</title>
      <link>https://www.softwarecraftsperson.com/posts/2024-02-02-hugo-papermod-mods/</link>
      <pubDate>Fri, 02 Feb 2024 04:00:31 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2024-02-02-hugo-papermod-mods/</guid>
      <description>&lt;p&gt;I wanted to give a shout-out to a GitHub Repository that I came across, which hosted some custom CSS for modifying the look of PaperMod by a tiny bit. I thought I&amp;rsquo;d try it and hence the shout-out.&lt;/p&gt;
&lt;p&gt;Checkout &lt;a href=&#34;https://github.com/arashsm79/hugo-PaperMod-Mod/tree/main&#34;&gt;hugo-PaperMod-Mod&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The styles include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;thumbnails&lt;/li&gt;
&lt;li&gt;sidebar table of contents&lt;/li&gt;
&lt;li&gt;wider posts on landing page&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Hugo Partial for Buy me a coffee button</title>
      <link>https://www.softwarecraftsperson.com/posts/2023-12-26-partial-for-bmc/</link>
      <pubDate>Tue, 26 Dec 2023 21:43:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2023-12-26-partial-for-bmc/</guid>
      <description>How to add a Buy me a coffee button to all your posts in a Hugo static website or your blog</description>
    </item>
    <item>
      <title>What happens during a TLS handshake?</title>
      <link>https://www.softwarecraftsperson.com/posts/2023-10-22-what-happens-during-tls-handshake/</link>
      <pubDate>Sun, 22 Oct 2023 14:02:28 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2023-10-22-what-happens-during-tls-handshake/</guid>
      <description>&lt;h2 id=&#34;background&#34;&gt;Background&lt;/h2&gt;
&lt;p&gt;I have been wondering how to simplify the concept of handshakes - not the human handshakes; I&amp;rsquo;m talking about the computer ones, like the ones that happen between a server and a client when establishing a connection over HTTPS.&lt;/p&gt;
&lt;p&gt;So I went reading online to see if the content was digestible for everyone - including beginners. I couldn&amp;rsquo;t find a simple diagrammatic representation, so I thought maybe this is my chance to draw them and help others understand it at a glance. To be fair, it isn&amp;rsquo;t that straightforward to jump into discussing TLS handshakes, without learning about a few key terms. So I am certain that I will update this post with more information later on&lt;/p&gt;</description>
    </item>
    <item>
      <title>Handling conflicts in a high performing team</title>
      <link>https://www.softwarecraftsperson.com/posts/2023-02-19-handling-difficult-questions/</link>
      <pubDate>Sun, 17 Sep 2023 11:04:20 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2023-02-19-handling-difficult-questions/</guid>
      <description>Handling conflicts in high performing teams</description>
    </item>
    <item>
      <title>Why and When would you use a Serverless approach to solving your problem?</title>
      <link>https://www.softwarecraftsperson.com/posts/2023-06-11-why-when-serverless/</link>
      <pubDate>Sun, 11 Jun 2023 13:02:28 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2023-06-11-why-when-serverless/</guid>
      <description>&lt;h2 id=&#34;background&#34;&gt;Background&lt;/h2&gt;
&lt;p&gt;As a relatively senior engineering manager, I have been transforming into a less technical person over time. The reason being, I am in charge of two fantastic teams that both have excellent engineers. I generally rely on the technical leads of the respective teams to own the technical aspects of their domains and try to interfere as little as possible. I do this to empower them to take more ownership and learn to be accountable. After all, it is humanly impossible to be everywhere at the same time. I build my teams based on trust, psychological safety and accountability. However, I do review their technical proposals and other documents or design diagrams etc. and I challenge them by asking questions. I have never had to tell them what is right or wrong so far, and I don&amp;rsquo;t think that I&amp;rsquo;ll ever need to do that either because our hiring process is good enough to filter out problem candidates. I give them the feedback they need at the time they need it, covering their blind-spots when necessary.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why I became an Ethnic Diversity Community Lead</title>
      <link>https://www.softwarecraftsperson.com/posts/2023-04-21-why-i-am-edc-lead/</link>
      <pubDate>Fri, 21 Apr 2023 21:52:28 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2023-04-21-why-i-am-edc-lead/</guid>
      <description>&lt;h2 id=&#34;background&#34;&gt;Background&lt;/h2&gt;
&lt;p&gt;I grew up as a third culture kid, born in India and raised in the United Arab Emirates. At a very early age, I had encounters with some racist kids, often while in a school bus in the lane next to mine. This altered my perception of myself, created an inferiority complex when compared to the instigators of the racist incident, and I felt helpless and trapped.&lt;/p&gt;
&lt;p&gt;The problem in the UAE was not a lack of diversity.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Switching from managing teams to managing managers</title>
      <link>https://www.softwarecraftsperson.com/posts/2023-02-15-managing-managers/</link>
      <pubDate>Wed, 15 Feb 2023 13:04:20 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2023-02-15-managing-managers/</guid>
      <description>From Managing teams to other managers</description>
    </item>
    <item>
      <title>What is Homebrew? How is it useful?</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-12-25-homebrew-macos/</link>
      <pubDate>Sun, 25 Dec 2022 20:40:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-12-25-homebrew-macos/</guid>
      <description>A look at the unofficial but extremely invaluable package manager for MacOS - Homebrew.</description>
    </item>
    <item>
      <title>Setting up your Macbook Pro as a developer</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-12-25-macbook-pro-setup/</link>
      <pubDate>Sun, 25 Dec 2022 18:04:20 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-12-25-macbook-pro-setup/</guid>
      <description>What I do to setup and customize my MacBook Pro as an engineer</description>
    </item>
    <item>
      <title>What did I learn from The Unicorn Project?</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-12-24-unicorn-project-summary/</link>
      <pubDate>Sat, 24 Dec 2022 00:16:02 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-12-24-unicorn-project-summary/</guid>
      <description>A summary of useful things I learned from the Unicorn Project, a book by Gene Kim, the author of The Phoenix Project.</description>
    </item>
    <item>
      <title>What is a System Design Interview</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-10-16-system-design-overview/</link>
      <pubDate>Sun, 16 Oct 2022 12:16:28 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-10-16-system-design-overview/</guid>
      <description>Why do organisations conduct system design interviews? What is expected from the candidate? Demystify a system design interview.</description>
    </item>
    <item>
      <title>Creating a great organisational culture</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-10-07-organisational-culture/</link>
      <pubDate>Fri, 07 Oct 2022 19:38:31 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-10-07-organisational-culture/</guid>
      <description>Exploring the importance of developing a positive culture in an organisation</description>
    </item>
    <item>
      <title>Psychological Safety: What, how and why?</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-08-13-psychological-safety/</link>
      <pubDate>Sat, 13 Aug 2022 13:22:14 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-08-13-psychological-safety/</guid>
      <description>Exploring psychological safety and importance of it in developing great organisations.</description>
    </item>
    <item>
      <title>Invisible Work and how you can tame it in your organisation</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-08-07-invisible-work/</link>
      <pubDate>Sun, 07 Aug 2022 16:25:57 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-08-07-invisible-work/</guid>
      <description>What is invisible work? How can you tame it in your organisation?</description>
    </item>
    <item>
      <title>What is Self Management and why do you need to get better at it?</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-06-27-self-management/</link>
      <pubDate>Mon, 27 Jun 2022 23:35:31 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-06-27-self-management/</guid>
      <description>How does better self-management help you lead others better?</description>
    </item>
    <item>
      <title>Azure Service Principal Credential Reset</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-04-23-az-sp-credential-reset/</link>
      <pubDate>Sat, 23 Apr 2022 17:21:09 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-04-23-az-sp-credential-reset/</guid>
      <description>How to reset Azure Service Principal Credentials?</description>
    </item>
    <item>
      <title>Coaching conversations using the GROW Model</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-04-18-coaching-using-grow-model/</link>
      <pubDate>Mon, 18 Apr 2022 16:05:59 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-04-18-coaching-using-grow-model/</guid>
      <description>What is the GROW model? How can it be used to have effective coaching conversations?</description>
    </item>
    <item>
      <title>Leadership, trust and how not to ruin it</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-03-26-trust-leadership-toxic/</link>
      <pubDate>Sat, 26 Mar 2022 11:44:58 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-03-26-trust-leadership-toxic/</guid>
      <description>Some observations as a manager on trust and leadership in a rapidly changing company with inexperienced people leaders.</description>
    </item>
    <item>
      <title>What are Git submodules?</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-02-19-git-sub-modules/</link>
      <pubDate>Sat, 19 Feb 2022 20:39:46 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-02-19-git-sub-modules/</guid>
      <description>A look at a less known feature of git - submodules</description>
    </item>
    <item>
      <title>What is Agile Scrum?</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-02-14-agile-scrum-series/</link>
      <pubDate>Mon, 14 Feb 2022 02:13:20 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-02-14-agile-scrum-series/</guid>
      <description>What is Scrum? What is Agile? Are they the same or very different things?</description>
    </item>
    <item>
      <title>Building software quality from Day 1 using Lean Quality Assurance</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-01-30-good-quality-assurance/</link>
      <pubDate>Sun, 30 Jan 2022 16:24:06 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-01-30-good-quality-assurance/</guid>
      <description>Understand what we can do to build quality into an agile development environment</description>
    </item>
    <item>
      <title>Customize your Mac or Linux prompt or terminal</title>
      <link>https://www.softwarecraftsperson.com/posts/2022-01-23-shell-customize-mac-linux/</link>
      <pubDate>Sun, 23 Jan 2022 10:10:13 -0800</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2022-01-23-shell-customize-mac-linux/</guid>
      <description>Customize your bash or zsh prompt or terminal.</description>
    </item>
    <item>
      <title>Site Reliability Engineering vs DevOps — How they differ and when to use each</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-12-04-site-reliability-engineering/</link>
      <pubDate>Sat, 04 Dec 2021 00:17:06 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-12-04-site-reliability-engineering/</guid>
      <description>A practical comparison of Site Reliability Engineering (SRE) and DevOps: responsibilities, culture, tooling, and recommendations for building reliable systems.</description>
    </item>
    <item>
      <title>Azure Active Directory for Developers: What you need to know</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-10-23-az-ad-for-devs/</link>
      <pubDate>Sat, 23 Oct 2021 15:27:17 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-10-23-az-ad-for-devs/</guid>
      <description>What do I need to know of Azure Active directory as a developer</description>
    </item>
    <item>
      <title>How to use complex settings in Azure Functions using Options pattern and Dependency injection</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-09-19-az-fn-di-opts/</link>
      <pubDate>Fri, 22 Oct 2021 22:25:15 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-09-19-az-fn-di-opts/</guid>
      <description>Dependency Injection: Options pattern and settings in Azure Functions</description>
    </item>
    <item>
      <title>Azure functions with Swagger and OpenAPI</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-09-19-az-fn-swagger-openapi/</link>
      <pubDate>Sun, 19 Sep 2021 21:13:56 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-09-19-az-fn-swagger-openapi/</guid>
      <description>How to create a swagger page for your HTTP Azure functions</description>
    </item>
    <item>
      <title>DevOps, Continuous Integration, Delivery and Deployment</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-08-09-ci-cd-deploy-strategies/</link>
      <pubDate>Sun, 29 Aug 2021 16:36:18 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-08-09-ci-cd-deploy-strategies/</guid>
      <description>What are : DevOps, Continuous Integration, Continuous Delivery and Continuous Deployment</description>
    </item>
    <item>
      <title>Azure Cognitive Search (formerly Azure Search)</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-08-27-azure-search/</link>
      <pubDate>Fri, 27 Aug 2021 11:23:02 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-08-27-azure-search/</guid>
      <description>An intro into Azure Cognitive Search</description>
    </item>
    <item>
      <title>What is Software Architecture and what does a software architect do?</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-07-24-software-architecture/</link>
      <pubDate>Sat, 24 Jul 2021 15:37:38 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-07-24-software-architecture/</guid>
      <description>What is software architecture and how is it different from Software design? What does a software architect do?</description>
    </item>
    <item>
      <title>Azure Pipelines and test code coverage for Dotnet core projects</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-06-29-az-pipeline-test-coverage/</link>
      <pubDate>Tue, 29 Jun 2021 11:44:22 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-06-29-az-pipeline-test-coverage/</guid>
      <description>Azure Pipelines and dotnet core test coverage: How to configure your pipeline to generate test code coverage for continuous integration quality checks.</description>
    </item>
    <item>
      <title>Entity Framework Core: Configure Database Connection using Azure Service Token Provider</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-06-22-az-ad-sql-conn/</link>
      <pubDate>Sat, 26 Jun 2021 11:44:22 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-06-22-az-ad-sql-conn/</guid>
      <description>Entity Framework Core: The right way to configure Database Connection using Azure Service Token Provider. A deep dive into EF Core Interceptors, ORM, AzureServiceTokens and related things.</description>
    </item>
    <item>
      <title>OPENJSON - The Utility function you did not know you needed in a Data transfer Logic App</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-06-21-open-json/</link>
      <pubDate>Mon, 21 Jun 2021 11:44:22 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-06-21-open-json/</guid>
      <description>OPENJSON - The Utility function you did not know you needed in a Data transfer Logic App</description>
    </item>
    <item>
      <title>What is Caching? The different types of caches and interfaces in .NET Core for caching</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-06-20-caching/</link>
      <pubDate>Sun, 20 Jun 2021 16:50:45 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-06-20-caching/</guid>
      <description>What is caching? The different types caches and interfaces in .NET Core for caching.</description>
    </item>
    <item>
      <title>What are Azure Logic Apps and How to deploy them using Azure Devops Pipeline - A tutorial and a list of challenges you might encounter</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-06-12-az-logic-app-pipeline/</link>
      <pubDate>Sat, 12 Jun 2021 11:44:22 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-06-12-az-logic-app-pipeline/</guid>
      <description>Walking you through steps on How to deploy Azure Logic Apps and some challenges you could face - Tutorial</description>
    </item>
    <item>
      <title>Proxy vs Reverse Proxy - What are they?</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-06-06-proxy-reverse/</link>
      <pubDate>Sun, 06 Jun 2021 15:25:41 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-06-06-proxy-reverse/</guid>
      <description>Proxy vs Reverse Proxy - A simple description of what they are and the differences are</description>
    </item>
    <item>
      <title>Git, Case Sensitivity and Github actions</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-05-15-git-case-sensitivity/</link>
      <pubDate>Sat, 15 May 2021 22:50:18 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-05-15-git-case-sensitivity/</guid>
      <description>Git, Case sensitivity and Github actions can confuse you. How do avoid wasting time?</description>
    </item>
    <item>
      <title>Cohesion and Coupling - two important concepts to understand when building good software</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-05-09-cohesion-coupling/</link>
      <pubDate>Sun, 09 May 2021 22:55:34 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-05-09-cohesion-coupling/</guid>
      <description>What is Cohesion and What is Coupling? What exactly is the difference between them?</description>
    </item>
    <item>
      <title>Using ProblemDetails in .NET Core 3.1 with C#</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-05-04-problem-details/</link>
      <pubDate>Sat, 08 May 2021 15:30:08 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-05-04-problem-details/</guid>
      <description>Conveying information about an error using ProblemDetails in .NET Core with C#</description>
    </item>
    <item>
      <title>.NET (dotnet) Framework and Core and things</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-05-07-dotnet/</link>
      <pubDate>Fri, 07 May 2021 21:48:44 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-05-07-dotnet/</guid>
      <description>What is this ASP .NET? What about Framework? What about Core?</description>
    </item>
    <item>
      <title>Client Side Search for your Hugo Blog with Fuse.js</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-05-01-client-side-search-fuse/</link>
      <pubDate>Sat, 01 May 2021 22:21:16 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-05-01-client-side-search-fuse/</guid>
      <description>How to provide simple, fast search functionality for your Hugo static website using fuse.js</description>
    </item>
    <item>
      <title>Event Storming</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-04-25-event-storming/</link>
      <pubDate>Sun, 25 Apr 2021 18:41:27 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-04-25-event-storming/</guid>
      <description>Discover your domain and uncover hidden complexities using Event storming.</description>
    </item>
    <item>
      <title>Why Domain Driven Design</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-04-08-why-domain-driven-design/</link>
      <pubDate>Thu, 08 Apr 2021 22:38:30 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-04-08-why-domain-driven-design/</guid>
      <description>Domain Driven Design might be the way to solve complex solution.</description>
    </item>
    <item>
      <title>Good Bye Wordpress. Hello Hugo on Azure Storage</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-04-04-good-bye-wordpress/</link>
      <pubDate>Sun, 04 Apr 2021 17:24:42 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-04-04-good-bye-wordpress/</guid>
      <description>Migrating from Wordpress to Static Generator Blog using Hugo, continuously deployed from GitHub to Azure storage served through Azure CDN, using Continuous Integration with GitHub Actions</description>
    </item>
    <item>
      <title>Web API Versioning</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-03-12-web-api-versioning/</link>
      <pubDate>Fri, 12 Mar 2021 22:35:38 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-03-12-web-api-versioning/</guid>
      <description>&lt;p&gt;Back-end developers quite often find themselves thinking about making breaking changes to their API. A change that could break the client application consuming the API. We quite often forget how easy it is to cause havoc for our clients by breaking the contract we agreed between front-end and back-end. All sorts of unintentional consequences could arise from this.&lt;/p&gt;
&lt;p&gt;We recently had a similar conversation at my workplace about how we wanted to deal with the release of a feature we had been working on in the last sprint.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Managing a team</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-03-03-managing-a-team/</link>
      <pubDate>Wed, 03 Mar 2021 23:21:26 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-03-03-managing-a-team/</guid>
      <description>&lt;p&gt;Featured Image by &lt;!-- raw HTML omitted --&gt;Austin Distel&lt;!-- raw HTML omitted --&gt; on &lt;!-- raw HTML omitted --&gt;Unsplash&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;
&lt;p&gt;The title of this post is a bit vague. I agree it doesn&amp;rsquo;t give away much. Having managed teams since 2015ish, I have finally come to realise that as managers, one must make sure that their team members have an environment to thrive. A place where they can grow, be stretched just enough to feel proud of their achievement and not too much where they feel, work is taking over their life. It is not just about getting something done or achieving a target, but it is more about how you get there in a way that your team is committed to it rather than forced to it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Azure Functions - Overview and tutorial</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-01-24-azure-functions-overview-and-tutorial/</link>
      <pubDate>Sun, 24 Jan 2021 22:44:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-01-24-azure-functions-overview-and-tutorial/</guid>
      <description>&lt;p&gt;I have been building and deploying Azure functions at work and it is really exciting.
&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://media1.giphy.com/media/l2SpXyO9TOJCrCbo4/giphy.gif?cid=ecf05e47r2hmihg2p9k5crudx3hm1ifw9q73uxhbd03fs5me&amp;amp;rid=giphy.gif&#34;
         alt=&#34;excited will smith GIF by 1LIVE&#34;/&gt; 
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;However, due to the time constraints, we often have to learn just enough to build the solution. And this makes me sad 😢 because I like learning things in depth and understanding every detail.&lt;/p&gt;
&lt;p&gt;So my solution was to create a tutorial with information to help anyone understand Azure Functions.
&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://media1.giphy.com/media/a7NBvg3Ss8UYo/giphy.gif&#34;
         alt=&#34;Fun Learn GIF by SoulPancake&#34;/&gt; 
&lt;/figure&gt;
&lt;/p&gt;</description>
    </item>
    <item>
      <title>React aka Reactjs</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-01-23-react-aka-reactjs/</link>
      <pubDate>Sat, 23 Jan 2021 20:31:51 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-01-23-react-aka-reactjs/</guid>
      <description>&lt;p&gt;So last week I did a little example app following instructions by &lt;a href=&#34;https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqbTR6YWRXNW9Rd09iOTlnY3R4WXJsX0djdExIZ3xBQ3Jtc0tsUkVPbjA2Z09sRlAzaVZ5ZkhHcWRybjd3LTYyMThtU2J2bWtGQUk0dk1vZUlUM09uUEo5T0IyZC12dnF2TjNfZHJGaXVORm85R25PZ090RDFtSzFOMm9EbzdwSVBnbG5sNVF2blFSN0YyTEZJX1pyWQ&amp;amp;q=http%3A%2F%2Fwww.traversymedia.com&#34;&gt;Brad Traversy&lt;/a&gt;. To give credit where credit is due, I have linked his video right here in my post. I&amp;rsquo;m going to share the gist of what I learned here as part of this post. Because sometimes, you might just want to get an overview, you may not want to get hands on and start coding. This is a very high level overview of some of the concepts. And the source code can be found in &lt;a href=&#34;https://github.com/lonelydev/react-todolist&#34;&gt;my github repository&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quirky Arrays in C#</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-01-14-quirky-arrays-in-c/</link>
      <pubDate>Thu, 14 Jan 2021 21:30:16 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-01-14-quirky-arrays-in-c/</guid>
      <description>&lt;p&gt;I have been coding in C# &lt;strong&gt;&lt;em&gt;on and off&lt;/em&gt;&lt;/strong&gt; since the end of 2013. You might be wondering why I mentioned that here though.
&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://media4.giphy.com/media/z1GQ9t8FxipnG/giphy.gif?cid=ecf05e47xp22emm8yqmmvt2yliqevehk85xvs6ffb54hzf4t&amp;amp;rid=giphy.gif&#34;
         alt=&#34;Confused Liam Neeson&#34;/&gt; 
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;The reason is that, a large part of that time especially between 2015 to 2021, I was pretty much managing a team, rather than coding full-time. Now, does that make a difference? Of course, it does. Being primarily in a managerial role meant that I had less time to code and more time to do non coding tasks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>HashSet in C#</title>
      <link>https://www.softwarecraftsperson.com/posts/2021-01-10-hashset-in-csharp/</link>
      <pubDate>Sun, 10 Jan 2021 13:08:58 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2021-01-10-hashset-in-csharp/</guid>
      <description>Hashsets in C# - high performance unique elements store</description>
    </item>
    <item>
      <title>Windows Terminal and customisations</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-12-31-windows-terminal-and-customisations/</link>
      <pubDate>Thu, 31 Dec 2020 15:58:17 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-12-31-windows-terminal-and-customisations/</guid>
      <description>&lt;p&gt;I began my software development career on Linux. I am and have always been very comfortable with the command line and do not really care if I have to open up the command line on Windows.&lt;/p&gt;
&lt;p&gt;However, in the Windows world, command line used to suck. I think that is a polite way to put it. It truly sucked so bad that developers from a Linux background, often wondered how windows even got this far. It had a weird window size limitation and used to open only halfway through your wide screen!&lt;/p&gt;</description>
    </item>
    <item>
      <title>What did I learn as a software engineering manager</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-12-22-what-i-learned-from-5-years-as-a-software-engineering-manager/</link>
      <pubDate>Tue, 22 Dec 2020 22:53:51 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-12-22-what-i-learned-from-5-years-as-a-software-engineering-manager/</guid>
      <description>Adventures of a software engineering manager - a taste of leadership</description>
    </item>
    <item>
      <title>Application Insights in .Net Core App</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-12-20-application-insights-in-net-core-app/</link>
      <pubDate>Sun, 20 Dec 2020 12:15:55 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-12-20-application-insights-in-net-core-app/</guid>
      <description>Application Insights in .NET Core applications</description>
    </item>
    <item>
      <title>Semantic versioning - Semver - An introduction - node package manager syntax and quirks</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-12-06-semantic-versioning-semver-introduction/</link>
      <pubDate>Sun, 06 Dec 2020 18:33:07 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-12-06-semantic-versioning-semver-introduction/</guid>
      <description>Semantic versioning - Semver - An introduction and how to specify version logic to your node package manager</description>
    </item>
    <item>
      <title>Node - Get started</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-12-06-node-get-started/</link>
      <pubDate>Sun, 06 Dec 2020 17:37:59 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-12-06-node-get-started/</guid>
      <description>&lt;h2 id=&#34;what-is-it&#34;&gt;What is it?&lt;/h2&gt;
&lt;p&gt;For a really simple introduction, check out my earlier post on an &lt;a href=&#34;https://www.softwarecraftsperson.com/posts/2020-12-06-node-and-npm-the-intro-i-wish-i-got-when-i-began-web-development/&#34;&gt;Introduction to Node and npm&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Node is a javascript runtime environment outside your browser.&lt;/p&gt;
&lt;p&gt;It is a program that embeds Chrome&amp;rsquo;s V8 engine into a command line executable that lets you run javascript.&lt;/p&gt;
&lt;p&gt;You can download and install it from &lt;a href=&#34;https://nodejs.org/en/&#34;&gt;Nodejs.Org&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;so-what&#34;&gt;So what?&lt;/h2&gt;
&lt;p&gt;Node comes with a package manager - npm, node package manager. that allows you to &lt;em&gt;publish and download&lt;/em&gt; packages from &lt;a href=&#34;https://www.npmjs.com/&#34;&gt;npmjs.com&lt;/a&gt;, a web portal that allows developers to share their re-usable javascript modules. It has inherent support for both &lt;a href=&#34;https://en.wikipedia.org/wiki/CommonJS&#34;&gt;CommonJS&lt;/a&gt; and &lt;a href=&#34;https://nodejs.org/api/esm.html&#34;&gt;ECMAScript&lt;/a&gt; modules. When you download and install node, you&amp;rsquo;ll get node executable and also the node package manager.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Node and npm: The intro I wish, I got when I began web development</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-12-06-node-and-npm-the-intro-i-wish-i-got-when-i-began-web-development/</link>
      <pubDate>Sun, 06 Dec 2020 14:30:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-12-06-node-and-npm-the-intro-i-wish-i-got-when-i-began-web-development/</guid>
      <description>&lt;p&gt;There are times in life, when you begin doing something without fully understanding it, simply because, at that point, you didn&amp;rsquo;t have the luxury to dig deeper, go further and be in a position where you could explain to a 5 year old, what it is really like to do what you were doing.&lt;/p&gt;
&lt;p&gt;I have been in this position several times. A lot of times, software development for me has been a journey of reverse engineering, or figuring things backwards. Do it first, based on snippets read here and there online and then connecting the dots gradually as you spend more time doing similar things. Sounds familiar? Probably, the life of every other software engineer on the planet working on a target deadline.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Application Insights, SeriLog and .NET Core</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-11-28-application-insights-serilog-and-net-core/</link>
      <pubDate>Sat, 28 Nov 2020 07:27:55 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-11-28-application-insights-serilog-and-net-core/</guid>
      <description>&lt;p&gt;I realised recently that I have always taken application logging for granted.&lt;/p&gt;
&lt;p&gt;In my previous firm, which was a pretty large company, over a few thousand employees, we had a centralised logging platform and some lovely packages for each language and a team to configure the logging instance for our application and all that luxury.&lt;/p&gt;
&lt;p&gt;Developers, did just application development. For everything else, there was always somebody you could lean on. So the good thing was, you could spend all your time, polishing your code, applying all sorts of clean-code principles and achieve some coding nirvana and focus on just the business logic and the core problem.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Feature Toggles</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-11-08-feature-toggles/</link>
      <pubDate>Sun, 08 Nov 2020 16:07:49 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-11-08-feature-toggles/</guid>
      <description>&lt;p&gt;How many times have you as a software engineer worked on a large feature, in an isolated branch that only got merged to the mainline branch when it is time to actually release the feature and then struggled for hours and sometimes days with the merge conflicts, simply because many other changes were contributed to the main branch in the meanwhile?&lt;/p&gt;
&lt;p&gt;If your answer is &lt;strong&gt;&lt;em&gt;many times&lt;/em&gt;&lt;/strong&gt;, then you really might benefit from this.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A static responsive website as an Azure AppService</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-10-31-static-website-as-an-azure-appservice/</link>
      <pubDate>Sat, 31 Oct 2020 21:06:06 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-10-31-static-website-as-an-azure-appservice/</guid>
      <description>What to consider when hosting a static responsive website as an Azure AppService</description>
    </item>
    <item>
      <title>Entity Framework Core 3.1 - Part 4</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-11-12-ef-core-3-1-part-4/</link>
      <pubDate>Sun, 25 Oct 2020 17:53:59 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-11-12-ef-core-3-1-part-4/</guid>
      <description>Entity Framework Core 3 - Things you must know</description>
    </item>
    <item>
      <title>Entity Framework Core 3.1 - Part 3</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-10-25-ef-core-3-1-part-3/</link>
      <pubDate>Sun, 25 Oct 2020 17:22:33 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-10-25-ef-core-3-1-part-3/</guid>
      <description>Entity Framework Core 3 - Things you must know</description>
    </item>
    <item>
      <title>Entity Framework Core 3.1 - Part 2</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-10-25-ef-core-3-1-part-2/</link>
      <pubDate>Sun, 25 Oct 2020 17:16:49 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-10-25-ef-core-3-1-part-2/</guid>
      <description>Entity Framework Core 3 - Things you must know</description>
    </item>
    <item>
      <title>Entity Framework Core 3.1 - Part 1</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-10-24-ef-core-3-1-part-1/</link>
      <pubDate>Sun, 25 Oct 2020 17:04:36 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-10-24-ef-core-3-1-part-1/</guid>
      <description>Entity Framework Core 3 - Things you must know</description>
    </item>
    <item>
      <title>Containers! Docker! Virtual Machines! What exactly do they do?</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-10-04-docker/</link>
      <pubDate>Sun, 04 Oct 2020 11:58:01 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-10-04-docker/</guid>
      <description>When should use a container? Why should you even think of it as a solution? How is it different from a virtual</description>
    </item>
    <item>
      <title>Git: Part 5 - Reset and further</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-10-03-git-part-5-reset-and-further/</link>
      <pubDate>Sat, 03 Oct 2020 13:30:31 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-10-03-git-part-5-reset-and-further/</guid>
      <description>A practical introduction to Git - Part 5 - Undoing changes</description>
    </item>
    <item>
      <title>Git: Part 4 - Branching and more</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-10-03-git-part-4-branching-and-more/</link>
      <pubDate>Sat, 03 Oct 2020 13:09:57 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-10-03-git-part-4-branching-and-more/</guid>
      <description>A practical introduction to Git - Part 4</description>
    </item>
    <item>
      <title>Git: Part 3 - Hands on</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-10-03-git-part-3-hands-on/</link>
      <pubDate>Sat, 03 Oct 2020 12:39:45 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-10-03-git-part-3-hands-on/</guid>
      <description>A practical introduction to Git - Part 3 - Try some Git commands</description>
    </item>
    <item>
      <title>Git: Part 2 - Some essential concepts</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-10-03-git-part-2-some-essential-concepts/</link>
      <pubDate>Sat, 03 Oct 2020 12:36:03 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-10-03-git-part-2-some-essential-concepts/</guid>
      <description>A practical introduction to Git - Part 2</description>
    </item>
    <item>
      <title>Git: Part 1 - An introduction</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-10-03-git-part-1-an-introduction/</link>
      <pubDate>Sat, 03 Oct 2020 12:30:48 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-10-03-git-part-1-an-introduction/</guid>
      <description>A practical introduction to Git - Part 1</description>
    </item>
    <item>
      <title>Moving a blog to Wordpress</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-09-28-moving-a-blog-to-wordpress/</link>
      <pubDate>Mon, 28 Sep 2020 17:41:27 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-09-28-moving-a-blog-to-wordpress/</guid>
      <description>&lt;p&gt;&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://live.staticflickr.com/2525/4236186947_ff0093c191_b.jpg&#34;/&gt; 
&lt;/figure&gt;

&lt;a href=&#34;https://www.flickr.com/photos/25653307@N03/4236186947&#34;&gt;&amp;ldquo;01119 (304) 08-09-2009 Curley Cattle Transport - Mack Prime Mover 02-CCT + 3 trailers for cartage of cattle in a yard in Burke Development Road, Normanton, Queensland, Australia.&amp;rdquo;&lt;/a&gt; by &lt;a href=&#34;https://www.flickr.com/photos/25653307@N03&#34;&gt;express000&lt;/a&gt; is licensed under &lt;a href=&#34;https://creativecommons.org/licenses/by-nc-sa/2.0/?ref=ccsearch&amp;amp;atype=rich&#34;&gt;CC BY-NC-SA 2.0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When starting this blog, I really hadn&amp;rsquo;t done enough research onto which platform to start blogging. I previously used to post some of my daily work problems on blogger.&lt;/p&gt;
&lt;p&gt;It was alright. But I hadn&amp;rsquo;t really written many interesting posts apart from posting some problems and solutions. Hopefully importing all those posts into this domain, will not only give them some visibility but also give my blog some content.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Software and invisibility</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-09-16-software-and-invisibility/</link>
      <pubDate>Wed, 16 Sep 2020 20:29:26 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-09-16-software-and-invisibility/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The Invisible Man.&amp;rdquo; by Chaotic Good01 is licensed with CC BY-NC-SA 2.0. To view a copy of this license, visit &lt;a href=&#34;https://creativecommons.org/licenses/by-nc-sa/2.0/&#34;&gt;https://creativecommons.org/licenses/by-nc-sa/2.0/&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;keeping-people-informed&#34;&gt;Keeping people informed&lt;/h2&gt;
&lt;p&gt;Early in my career, I thought writing software is all about the outcome. Delivering something that works. I thought it didn&amp;rsquo;t matter how it was done. At the end of the sprint if you didn&amp;rsquo;t have a deliverable, it was a problem. This was true in companies which adopt a waterfall model of development.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Software design - Why?</title>
      <link>https://www.softwarecraftsperson.com/posts/2020-06-27-software-design-why/</link>
      <pubDate>Sat, 27 Jun 2020 14:31:41 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2020-06-27-software-design-why/</guid>
      <description>&lt;h2 id=&#34;the-problem&#34;&gt;The problem&lt;/h2&gt;
&lt;p&gt;A lot of software engineers get into the industry and often end up starting to write code soon after they read the requirements&amp;rsquo; specification. Sounds familiar? You might have done it too. Hard to admit? Can be. We are humans, after all.&lt;/p&gt;
&lt;p&gt;Jumping right into the coding process might be a great idea for a simple coding challenge, where the objective is to solve a problem in as little time as possible, with potentially &lt;em&gt;very few lines of code&lt;/em&gt;. You just have that &lt;em&gt;very specific goal&lt;/em&gt;. You &lt;em&gt;don&amp;rsquo;t have worry about future enhancements&lt;/em&gt; for that solution, nor do you have to &lt;em&gt;think about maintainability&lt;/em&gt; of that solution. Once solved, the code might have to run through a set of tests and pass the criteria of the question. Fantastic! And you might even get selected for the next round of interviews! Great! So why think about design when you start working on a real solution?&lt;/p&gt;</description>
    </item>
    <item>
      <title>LINQ - watchout for slow queries</title>
      <link>https://www.softwarecraftsperson.com/posts/2016-02-14-linq-watchout-for-slow-queries/</link>
      <pubDate>Sun, 14 Feb 2016 19:19:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2016-02-14-linq-watchout-for-slow-queries/</guid>
      <description>LINQ - what is it? why are queries slow? What to look out for?</description>
    </item>
    <item>
      <title>Password free SSH login to Server using Putty</title>
      <link>https://www.softwarecraftsperson.com/posts/2016-02-13-password-free-ssh-login-to-server-using/</link>
      <pubDate>Sat, 13 Feb 2016 23:29:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2016-02-13-password-free-ssh-login-to-server-using/</guid>
      <description>&lt;p&gt;Hey folks,&lt;br&gt;
So I&amp;rsquo;ve seen a lot of people open putty and then select their host and finally enter a user name and password. I don&amp;rsquo;t do that. I don&amp;rsquo;t want to either. Why would I? I&amp;rsquo;m a computer scientist/programmer/whatever. I should not do repetitive tasks. I should automate it. Password free SSH login is just that: Automation.&lt;/p&gt;
&lt;p&gt;How do you do it?&lt;/p&gt;
&lt;p&gt;This isn&amp;rsquo;t rocket science. Let us start with what SSH is Secure Shell. OMG! That didn&amp;rsquo;t help. It is a protocol that helps you to connect to remote machines securely over unsecured networks. Over use of &lt;strong&gt;secure&lt;/strong&gt; you might say. You generally need an SSH server and an SSH client for this purpose. Generally most of your enterprise linux hosts would be configured to allow your personal workstation to connect to it using an SSH client like Putty. There are several different versions of this protocol too. But I&amp;rsquo;m not a networking protocol geek. So enough said. Let us go right into what you have to do to setup your computer to log in.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting to know LINQ</title>
      <link>https://www.softwarecraftsperson.com/posts/2014-07-27-getting-to-know-linq/</link>
      <pubDate>Sun, 27 Jul 2014 20:54:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2014-07-27-getting-to-know-linq/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://msdn.microsoft.com/en-GB/library/bb397897.aspx&#34;&gt;LINQ&lt;/a&gt; stands for Language Integrated Query Language. It was a feature introduced along with Visual Studio 2008 that extends the querying capabilities of C# for any sort of data source. Generally LINQ is used to query data sources like SQL Server Databases and XML files. I use it to query databases.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not going to explain everything about LINQ here. I&amp;rsquo;m going to just talk about some very basic details.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Refactoring - Code written by others</title>
      <link>https://www.softwarecraftsperson.com/posts/2014-04-21-refactoring-code-written-by-others/</link>
      <pubDate>Mon, 21 Apr 2014 01:26:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2014-04-21-refactoring-code-written-by-others/</guid>
      <description>&lt;p&gt;As you might have noticed from my recent posts, I&amp;rsquo;ve just recently jumped from one platform to another. And my current project is a bit of a legacy thing. A lot of people worked on it previously and those who did weren&amp;rsquo;t necessarily experts in the technology that they used when they initially developed it. They did a lot of hacky things, to get things going. But such hacks are good for getting a product moving, but not really good for maintaining them.  And now that I&amp;rsquo;m having to implement changes to them, I realized how hard they have made this for me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Perl Catalyst - VBox Network Configuration on Ubuntu</title>
      <link>https://www.softwarecraftsperson.com/posts/2014-02-09-perl-catalyst-vbox-network/</link>
      <pubDate>Sun, 09 Feb 2014 22:35:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2014-02-09-perl-catalyst-vbox-network/</guid>
      <description>&lt;p&gt;In my previous post regarding &lt;a href=&#34;http://teknologk.blogspot.com/2014/02/perl-catalyst-tutorial-needs-us-to.html&#34;&gt;PerlCatalyst tutorial setup&lt;/a&gt; I mentioned about setting up a virtual machine inside a virtual machine. I didn&amp;rsquo;t provide you with much information regarding how I did it because all the tutorials related to that is already available online. Pasting the links below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://metacpan.orgf/pod/Catalyst::Manual::Tutorial::01_Intro&#34;&gt;Catalyst::Manual::Tutorial::01_Intro&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But I had a serious problem with my virtual box inside a virtual box. Not so serious actually, just that it stopped me from proceeding ahead because of my &lt;strong&gt;ignorance&lt;/strong&gt; of network configuration. The tutorial says that after downloading the virtual machine for the tutorial and setting it up as mentioned in the website, I could start using it as a server and log into it using ssh from my host computer. But for some reason the VM (virtual machine) provided by Catalyst just had a loopback network configuration. It wouldn&amp;rsquo;t show me a proper ip address to which I could connect to. And hence I had no way of connecting to this new tutorial virtual machine that I started from within an Ubuntu Virtual machine. I played around with the network configuration of VBox for a couple of hours trying out the different settings provided:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Perl Catalyst Tutorial needs us to download a virtual machine</title>
      <link>https://www.softwarecraftsperson.com/posts/2014-02-09-perl-catalyst-tutorial-needs-us-to/</link>
      <pubDate>Sun, 09 Feb 2014 11:29:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2014-02-09-perl-catalyst-tutorial-needs-us-to/</guid>
      <description>&lt;p&gt;I was trying to explore more about how and where Perl is used on the web. I figured out that there are a lot of web frameworks that are based on Perl. Catalyst seems to be a nice MVC framework that is really popular. I thought I&amp;rsquo;d take some time off to learn more about it. And I downloaded all the necessary packages and modules and then went on to check out the tutorial which is posted here: &lt;a href=&#34;https://metacpan.org/pod/Catalyst::Manual::Tutorial::01_Intro&#34;&gt;Catalyst Tutorial&lt;/a&gt;. I am already using Ubuntu on a virtual machine. My laptop came pre-loaded with Windows 8. And I&amp;rsquo;ve upgraded it to Windows 8.1. I always wanted to own a Linux laptop. But thinking about the lack of availability of games, I chose Windows over Linux. But I still can&amp;rsquo;t avoid using Linux as I always use it at work. Though recently I made a move to a windows based development team, which still has some code on non-windows based boxes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>emacs - Why do I use it?</title>
      <link>https://www.softwarecraftsperson.com/posts/2014-02-09-emacs-why-do-i-use-it/</link>
      <pubDate>Sun, 09 Feb 2014 00:01:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2014-02-09-emacs-why-do-i-use-it/</guid>
      <description>&lt;p&gt;Over the past few years, the only text editor I&amp;rsquo;ve been using on Linux is emacs. Not because I wanted to. But after I joined the firm that I currently work for, I was trained in emacs. And I found it difficult to use initially. But then I decided that if every one else in the firm could use it and become an expert, then so can I. So I spend some time with the built-in emacs tutorial and I just learned it really quick.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Perl module installation - Ubuntu</title>
      <link>https://www.softwarecraftsperson.com/posts/2014-02-05-perl-module-installation-ubuntu/</link>
      <pubDate>Wed, 05 Feb 2014 22:59:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2014-02-05-perl-module-installation-ubuntu/</guid>
      <description>&lt;p&gt;Ever wondered how to install a Perl module from CPAN:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo perl -MCPAN -e &lt;span class=&#34;s1&#34;&gt;&amp;#39;install ModuleName&amp;#39;&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Perl - Modules and path on disk</title>
      <link>https://www.softwarecraftsperson.com/posts/2014-02-02-perl-modules-and-path-on-disk/</link>
      <pubDate>Sun, 02 Feb 2014 20:51:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2014-02-02-perl-modules-and-path-on-disk/</guid>
      <description>&lt;p&gt;I don&amp;rsquo;t know if you have ever wondered where a module that you have been using is installed. Working in a corporate with multiple operating systems and having to maintain data update systems on multiple platforms that run on Perl based scripts, you might have to make sure that the CPAN modules you use are of the same versions, to keep your code portable. So recently I ran across one of these problems and came up with some interesting solutions as suggested by my colleague. I didn&amp;rsquo;t understand what I was doing at the time. So I took a break and tried to understand how I actually got to know what it was.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GNU Screen - Dynamic Window Titles, etc - tmux after this</title>
      <link>https://www.softwarecraftsperson.com/posts/2014-02-02-more-about-gnu-screen-tmux-after-this/</link>
      <pubDate>Sun, 02 Feb 2014 04:50:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2014-02-02-more-about-gnu-screen-tmux-after-this/</guid>
      <description>How to use GNU Screen? What can I customize? Why is it useful? Terminal Multiplexing?</description>
    </item>
    <item>
      <title>BASH - keymap and binding</title>
      <link>https://www.softwarecraftsperson.com/posts/2014-01-26-bash-keymap-and-binding/</link>
      <pubDate>Sun, 26 Jan 2014 13:55:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2014-01-26-bash-keymap-and-binding/</guid>
      <description>&lt;p&gt;Hello there folks!&lt;br&gt;
I have been using &lt;code&gt;[BASH](http://en.wikipedia.org/wiki/Bash_%28Unix_shell%29)&lt;/code&gt; for quite a long time. Yet I feel like there is a lot that I don&amp;rsquo;t know. The irony is that I am doing the BASH and Linux Basics training for new hires at my firm. I am not that bad, you see. It is just that there is so much to know. And I am never happy with what I know. &lt;/p&gt;</description>
    </item>
    <item>
      <title>GNU Screen - Introduction to terminal multiplexing</title>
      <link>https://www.softwarecraftsperson.com/posts/2014-01-22-gnu-screen-introduction-to-terminal/</link>
      <pubDate>Wed, 22 Jan 2014 21:32:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2014-01-22-gnu-screen-introduction-to-terminal/</guid>
      <description>&lt;p&gt;I thought everyone knew it. But very few actually do. Especially young software engineers. Probably everyone uses a GUI today and don&amp;rsquo;t interact much with the terminal. In fact many of the new hires at my firm have only heard of the term multiplexer, but never really bothered to use one. So I thought I&amp;rsquo;d just write a bit about it.&lt;/p&gt;
&lt;p&gt;I used to be normal putty user till 2011 (which is a shame). Then my friend introduced me to screen. At first I thought &amp;ldquo;OMG! What a mess! I would have to remember so many commands!&amp;rdquo;. But in less than a month I was a big fan of screen and had learned a lot more than necessary information about it. When you work in a company that gives you laptops as your primary workstation, your putty session dies off when you dock your laptop off or go to the next floor. So screen helped me maintain my session and made me less worried about saving work on the terminal. And it is so convenient, when I have long running tests or scripts, I just don&amp;rsquo;t bother waiting, switch to another window and keep working.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Windows 8 and Windows 8.1 shortcuts</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-12-23-windows-8-and-windows-81-shortcuts/</link>
      <pubDate>Mon, 23 Dec 2013 21:11:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-12-23-windows-8-and-windows-81-shortcuts/</guid>
      <description>&lt;p&gt;I was playing around with Windows 8.1 on my computer and I figured out there are some cool shortcuts maybe you haven&amp;rsquo;t known.&lt;/p&gt;
&lt;p&gt;Did you know that the icons in your task bar starting after the start button on the left bottom corner of your screen are numbered from 1 - 9.&lt;br&gt;
&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;http://4.bp.blogspot.com/-PY549EatRLY/Urihz1VTQjI/AAAAAAAAB68/soA9fwW6yJE/s200/images.jpg&#34;/&gt; 
&lt;/figure&gt;
 + 1 - opens the application or whatever your 1st icon after the start menu&lt;br&gt;
&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;http://4.bp.blogspot.com/-PY549EatRLY/Urihz1VTQjI/AAAAAAAAB68/soA9fwW6yJE/s200/images.jpg&#34;/&gt; 
&lt;/figure&gt;
 + 2 &amp;amp; and so on. Does the same.&lt;br&gt;
&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;http://4.bp.blogspot.com/-PY549EatRLY/Urihz1VTQjI/AAAAAAAAB68/soA9fwW6yJE/s200/images.jpg&#34;/&gt; 
&lt;/figure&gt;
 + ShiftKey + &lt;/p&gt;</description>
    </item>
    <item>
      <title>Vertica and K-Safety</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-11-06-vertica-and-k-safety/</link>
      <pubDate>Wed, 06 Nov 2013 01:41:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-11-06-vertica-and-k-safety/</guid>
      <description>&lt;p&gt;So you probably know that I have been working with HP&amp;rsquo;s Vertica. I&amp;rsquo;m very glad that I had this opportunity to interact with something like this. The technology behind it is pretty new and immature and lacks the power of PL/SQL but the speed that it achieves through massive parallel execution of queries is simply amazing.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t know if you have heard of the term K-Safe or K-Safety. When I first heard it, I had no idea what it was. Then after going through some of the documentation I kind of got the point.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Perl - Autovivification</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-11-04-perl-autovivification/</link>
      <pubDate>Mon, 04 Nov 2013 23:41:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-11-04-perl-autovivification/</guid>
      <description>&lt;p&gt;When I first heard that term, I was worried. I felt ashamed of myself for not knowing it. After all I&amp;rsquo;ve been writing Perl scripts for almost 3 years now. And I still don&amp;rsquo;t know what that means.&lt;/p&gt;
&lt;p&gt;But finally I accepted that computer science is too vast to know everything about everything. You learn it as you get through it. So apparently:&lt;br&gt;
Autovivification is the name for what happens when you attempt to assign a nonexistant entry of a hash; Perl actually creates the missing hash entry for the key you specified. You might not have intended that to happen. But Perl does exactly that. I&amp;rsquo;ve recently seen a bug in my new team because of this very feature or curse of Perl. And it did take a long time for them figure out the root cause of the problem. Because Perl doesn&amp;rsquo;t complain when this happens. This is more of a logical error than a compile time or run time error. Hence too hard to find.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Software Engineers should read this</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-10-14-software-engineers-should-read-this/</link>
      <pubDate>Mon, 14 Oct 2013 10:21:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-10-14-software-engineers-should-read-this/</guid>
      <description>&lt;p&gt;I think as programmers you should read and understand this:&lt;br&gt;
&lt;a href=&#34;http://martinfowler.com/ieeeSoftware/explicit.pdf&#34;&gt;http://martinfowler.com/ieeeSoftware/explicit.pdf&lt;/a&gt;&lt;br&gt;
From the expert in OOAD and related stuff - Martin Fowler.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SQuirreL graphical user interface for Vertica</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-09-24-squirrel-graphical-user-interface-for/</link>
      <pubDate>Tue, 24 Sep 2013 17:21:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-09-24-squirrel-graphical-user-interface-for/</guid>
      <description>&lt;p&gt;Hey guys,&lt;br&gt;
I tried out DBVisualizer earlier. I liked it and I have blogged about &lt;a href=&#34;http://teknologk.blogspot.co.uk/2013/06/setup-dbvisualizer-with-hp-vertica-db.html&#34;&gt;setting that up for your Vertica database&lt;/a&gt;. But it is expensive. I mean I can&amp;rsquo;t buy it for my personal use unless a company actually sponsors me. I&amp;rsquo;m a poor developer you see.&lt;br&gt;
So I searched for alternatives and I kind of liked SQuirrel SQL client. It is a java based open source SQL client which is pretty awesome. First you should go and download it to know what I mean: &lt;a href=&#34;http://squirrel-sql.sourceforge.net/&#34;&gt;http://squirrel-sql.sourceforge.net/&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Vertica Query Performance Tuning - An introduction</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-09-12-vertica-query-performance-tuning/</link>
      <pubDate>Thu, 12 Sep 2013 13:36:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-09-12-vertica-query-performance-tuning/</guid>
      <description>Query performance optimisation in Vertica</description>
    </item>
    <item>
      <title>DIR on VMS and display useful information</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-08-07-dir-on-vms-and-display-useful/</link>
      <pubDate>Wed, 07 Aug 2013 11:20:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-08-07-dir-on-vms-and-display-useful/</guid>
      <description>&lt;p&gt;I don&amp;rsquo;t know if you have even heard of this operating system named OpenVMS by HP. Unfortunately or maybe fortunately I have had a chance to work on it. The operating system has a cool feature, file version is built into the OpenVMS file system. But the problem with this is that if you go into a log directory and list out files, the list could get really long.&lt;/p&gt;
&lt;p&gt;I was just trying to make it display things that I usually use on Linux.&lt;br&gt;
ls -lrt&lt;/p&gt;</description>
    </item>
    <item>
      <title>Vertica and its version - Find out using SQL</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-06-24-vertica-and-its-version-find-out-using/</link>
      <pubDate>Mon, 24 Jun 2013 22:09:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-06-24-vertica-and-its-version-find-out-using/</guid>
      <description>&lt;p&gt;I was playing around with Vertica and my friend suddenly asked me what version of Vertica I was using. This was because he was trying to debug something and posted a question to guys from Vertica and they asked him that question. At my workplace we use the same Vertica cluster for development. It is a playground with a lot of restrictions. Without DB Admin access you can&amp;rsquo;t really explore much in Vertica. But yea we are trying to get the most out it despite all that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exploring Vertica&#39;s INTERPOLATE predicate </title>
      <link>https://www.softwarecraftsperson.com/posts/2013-06-18-exploring-verticas-interpolate-predicate/</link>
      <pubDate>Tue, 18 Jun 2013 00:55:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-06-18-exploring-verticas-interpolate-predicate/</guid>
      <description>&lt;p&gt;Vertica has a special feature to join tables and fill in the last available values where values would otherwise be null. I had a similar use case and wanted to test how I could make the best use of it. I played with simple examples and got it right, but with a slightly more complex one, I was stuck or maybe I just couldn&amp;rsquo;t understand what was happening. So I posted a question at &lt;a href=&#34;http://stackoverflow.com/q/17070545/2262959&#34;&gt;Stackoverflow&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Vertica - Calendar table with dates from a start date to an end date using analytical SQL</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-06-18-vertica-calendar-table-with-dates-from/</link>
      <pubDate>Tue, 18 Jun 2013 00:50:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-06-18-vertica-calendar-table-with-dates-from/</guid>
      <description>&lt;p&gt;I had a problem creating a table with just SQL that is supported by Vertica. Most of the solutions that I came across online were using procedures. But after a lot of playing around and reading vertica documentation I found a solution to my problem. read more about the problem and the solution at &lt;a href=&#34;http://stackoverflow.com/q/17155805/2262959&#34;&gt;Stackoverflow&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bash v/s Cshell - Functions and their definitions - useful &#39;type&#39; keyword</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-06-09-bash-vs-cshell-functions-and-their/</link>
      <pubDate>Sun, 09 Jun 2013 23:41:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-06-09-bash-vs-cshell-functions-and-their/</guid>
      <description>&lt;p&gt;Hey if you have worked on Linux then you have interacted with bash. Maybe not. But it is mostly likely that your default shell is bash. I&amp;rsquo;m not surprised. I&amp;rsquo;m among the few people on this planet who regularly interacts with cshell also. Thanks to the kind of work I do.&lt;br&gt;
One great feature of bash that I miss in cshell is: Functions.&lt;br&gt;
Surprised? Cshell doesn&amp;rsquo;t support functions. It doesn&amp;rsquo;t have any concept of function. If you wanted to simulate a function, you have to write another cshell script that does what your function would do and define an alias that calls it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Viewing function definitions in Vertica</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-06-05-viewing-function-definitions-in-vertica/</link>
      <pubDate>Wed, 05 Jun 2013 09:28:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-06-05-viewing-function-definitions-in-vertica/</guid>
      <description>&lt;p&gt;I don&amp;rsquo;t know if you have tried this. But I did try to read function definition from the system tables in Vertica.&lt;/p&gt;
&lt;p&gt;I used the table called USER_FUNCTIONS which is a table in the V_CATALOG system schema. More details can be found here: &lt;a href=&#34;https://my.vertica.com/docs/6.1.x/HTML/index.htm#15021.htm&#34;&gt;https://my.vertica.com/docs/6.1.x/HTML/index.htm#15021.htm&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But unfortunately when I try and do something like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;vertdeva01:20130604-113434 &amp;gt; &lt;span class=&#34;k&#34;&gt;select&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;function&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\_&lt;/span&gt;definition from v&lt;span class=&#34;se&#34;&gt;\_&lt;/span&gt;catalog.user&lt;span class=&#34;se&#34;&gt;\_&lt;/span&gt;functions where schema&lt;span class=&#34;se&#34;&gt;\_&lt;/span&gt;name&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;calc&amp;#39;&lt;/span&gt; and &lt;span class=&#34;k&#34;&gt;function&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\_&lt;/span&gt;name&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;getCYForDate&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;\-&lt;/span&gt;---------------------------------------------------------------------------------------------------------------------------------  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RETURN to&lt;span class=&#34;se&#34;&gt;\_&lt;/span&gt;date&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;concat&lt;span class=&#34;o&#34;&gt;(((((&lt;/span&gt;date&lt;span class=&#34;se&#34;&gt;\_&lt;/span&gt;part&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;year&amp;#39;&lt;/span&gt;, &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;processDate&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;::timestamp&lt;span class=&#34;o&#34;&gt;))&lt;/span&gt;::int - CASE WHEN &lt;span class=&#34;o&#34;&gt;((&lt;/span&gt;date&lt;span class=&#34;se&#34;&gt;\_&lt;/span&gt;part&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;month&amp;#39;&lt;/span&gt;, &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;processDate&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;::time  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; row&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If you notice the function definition is only partly visible. The rest of it gets truncated. I don&amp;rsquo;t know how to set it right. If you know how, feel free to comment on this post.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setup DBVisualizer with an HP Vertica DB connection</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-06-05-setup-dbvisualizer-with-hp-vertica-db/</link>
      <pubDate>Wed, 05 Jun 2013 00:03:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-06-05-setup-dbvisualizer-with-hp-vertica-db/</guid>
      <description>&lt;p&gt;Download your free copy of DBVisualizer from &lt;a href=&#34;http://www.dbvis.com/download/&#34;&gt;http://www.dbvis.com/download/&lt;/a&gt;&lt;br&gt;
I am going to give you the steps to setup vertica connection to DB Visualizer on a windows 7. Our windows might look different. But I suppose the terms used on the GUI would match that on any operating system.&lt;/p&gt;
&lt;p&gt;I know this might be a big assumption as I don&amp;rsquo;t work for DBVisualizer and I haven&amp;rsquo;t installed it on any other platform. But it is always worth giving this a try if you are starting to use Vertica and would like to see your tables and write queries on a GUI based environment. I am not a big fan of GUIs. But some times it might become handy. Especially if you are a DBA and you manage quite a lot of databases.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CShell and Absurd quotes and eval</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-06-03-cshell-and-absurd-quotes-and-eval/</link>
      <pubDate>Mon, 03 Jun 2013 20:58:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-06-03-cshell-and-absurd-quotes-and-eval/</guid>
      <description>Quirky C-Shell and difficulties with quotes and eval</description>
    </item>
    <item>
      <title>MySQL Partitioning Tutorial</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-06-03-mysql-partitioning-tutorial/</link>
      <pubDate>Mon, 03 Jun 2013 20:57:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-06-03-mysql-partitioning-tutorial/</guid>
      <description>&lt;p&gt;This is a brilliant power point presentation that helped summarize partitioning and its uses. I am currently working on mapping an object oriented database into a relational one, focusing on query time performance. So partitioning data according to how it is accessed was a key. And this sure helped a lot in clearing the basics, without wasting much time. hope it helps you as well.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;http://www.slideshare.net/datacharmer/mysql-partitions-tutorial&#34; title=&#34;MySQL partitions tutorial&#34;&gt;MySQL partitions tutorial&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>VSQL extract data into file</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-05-30-vsql-extract-data-into-file/</link>
      <pubDate>Thu, 30 May 2013 17:34:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-05-30-vsql-extract-data-into-file/</guid>
      <description>&lt;p&gt;Hey there! So you use Vertica and vsql to interact with your tables. Ever had those times when you wanted to take stuff from your table and paste it into Microsoft Excel for sending it off to someone not so technically acquainted with Vertica?&lt;br&gt;
You could write a script to do that for you. But if you just had to do it within a vsql session you also have options to do it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Vertica DELETE columns from one table using data from another</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-05-30-vertica-delete-columns-from-one-table/</link>
      <pubDate>Thu, 30 May 2013 16:34:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-05-30-vertica-delete-columns-from-one-table/</guid>
      <description>How to delete columns from one table using data from another</description>
    </item>
    <item>
      <title>Windows Run box</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-05-07-windows-run-box/</link>
      <pubDate>Tue, 07 May 2013 15:17:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-05-07-windows-run-box/</guid>
      <description>Windows Run box - `apps you can open directly</description>
    </item>
    <item>
      <title>xargs saved my day</title>
      <link>https://www.softwarecraftsperson.com/posts/2013-02-06-xargs-saved-my-day/</link>
      <pubDate>Wed, 06 Feb 2013 22:33:00 +0000</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2013-02-06-xargs-saved-my-day/</guid>
      <description>&lt;p&gt;So I was doing my regular job, writing new queries to test out my team&amp;rsquo;s new databases on Vertica. And suddenly my senior manager sends out an email to all in the team asking an estimated disk space requirement for each of our work. I had to find out how much space the raw data files for a complete history that were used to load my databases occupy on disk.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Emacs - Copy Line</title>
      <link>https://www.softwarecraftsperson.com/posts/2012-10-02-emac-copy-line/</link>
      <pubDate>Tue, 02 Oct 2012 13:19:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2012-10-02-emac-copy-line/</guid>
      <description>&lt;p&gt;To get the equivalent of kill line command in emacs for copying purposes, I use the following code snippet.&lt;br&gt;
Just copy paste it in your .emacs file.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;defun&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;copy-line&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;arg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Copy lines (as many as prefix argument) in the kill ring&amp;#34;&lt;/span&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;interactive&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;p&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;kill-ring-save&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;line-beginning-position&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;line-beginning-position&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;arg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)))&lt;/span&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;message&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;%d line%s copied&amp;#34;&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;arg&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;arg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;s&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)))&lt;/span&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;global-set-key&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;\\M-k&amp;#34;&lt;/span&gt; &lt;span class=&#34;ss&#34;&gt;&amp;#39;copy-line&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If \C is your control key then \M is your alt key.&lt;br&gt;
So generally by default your kill line can be done by \C-k&lt;br&gt;
Now you can also copy a line by doing: \M-k
I don&amp;rsquo;t remember where I got this bit of code from, I lost those tabs when Firefox crashed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Surrogate keys v/s natural keys</title>
      <link>https://www.softwarecraftsperson.com/posts/2012-07-18-surrogate-keys-vs-natural-keys/</link>
      <pubDate>Wed, 18 Jul 2012 13:37:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2012-07-18-surrogate-keys-vs-natural-keys/</guid>
      <description>Difference between a surrogate key vs natural keys in databases</description>
    </item>
    <item>
      <title>Static in C&#43;&#43;</title>
      <link>https://www.softwarecraftsperson.com/posts/2012-07-18-static-in-c/</link>
      <pubDate>Wed, 18 Jul 2012 11:02:00 +0100</pubDate>
      <guid>https://www.softwarecraftsperson.com/posts/2012-07-18-static-in-c/</guid>
      <description>&lt;p&gt;Hey, its been a really long time.&lt;br&gt;
I couldn&amp;rsquo;t get my adsense account approved.&lt;br&gt;
It seems I need more content.&lt;br&gt;
If only I spend enough time blogging. Everyone gets busy once in a while. And everyone forgets that they have a blog. Especially ones like mine, where people rarely visit.&lt;br&gt;
Anyways, that&amp;rsquo;s relevant to what I wanted to make note of here.&lt;br&gt;
I was working on a minor change in my company&amp;rsquo;s C++ code base.&lt;br&gt;
Its a simple one for anyone who knows C++. But I don&amp;rsquo;t do much C++. The last time I remember writing real C++ code was during my university days. I mean my bachelors degree. During my masters I worked solely on Java based stuff for my projects and for a coursework, I just opted to do something in ASP .NET, just to get a feel of it.&lt;br&gt;
Coming straight back to the point. Static is an overused keyword. Literally it would mean something that doesn&amp;rsquo;t change. But in C++, this keyword has special meanings, depending on the context it is used.&lt;br&gt;
Static can be used for three purposes.&lt;br&gt;
One use is to have a variable defined that has a lifetime of the whole program. That is once you declare it static and initialize it, then that variable&amp;rsquo;s value can be accessed from anywhere in that program. That variable&amp;rsquo;s allocation is cleared up only when the program closes or quits. And it helps prevent re-initialization. If I were to write something like this:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
