Sign in

Scala | Akka | Functional Programming | Distributed Systems

with signed & verified git commits

Git supports signing commits with a private key and GitHub (& many other git servers) supports verifying those commits with a public key.

Verified commits on Github

Signed and verified commits are marked as “Verified” by GitHub. This provides a level of verification for the commit.

When creating a new commit, I can simply do this to set user-name and email which does not belong to me.

git config user.name "some-other-user"
git config user.email "other-user@gmail.com"

There, done. Now GitHub shows my commit as other user’s commit. 😱 I will leave it to you to imagine what evil things can happen now.

Signed commits are…


A quick guide to get started with akka actors with scala for beginners

Akka with Scala

This is second post in a series of “Actors using Scala & Akka”. In Part 1, we saw how to

  1. Create new scala project and run it
  2. Create new actor system
  3. Create new behaviour to handle messages and modify state
  4. Spawn a new system actor using given behaviour
  5. Send messages to the actor

In this articles we will take a look at

  1. AskPattern ( how to get a reply from actors )
  2. SpawnProtocol ( spawning user actors instead of system actors )

Before we jump into ask pattern, we should have basic understanding of some scala concepts

  • Futures
  • Execution Context


A quick guide to get started with akka actors with scala for beginners

Akka with scala

Since I am stuck at home due to Covid-19 pandemic. With nothing else to do, I thought the best use of time would be to continue my blog series about actors. In the last article, we saw what are actors, their properties and how these properties can be useful for writing concurrent and stateful applications. It was all theory. In this article, I will demonstrate how to write your first akka actor in scala using IntelliJ IDE. Hop on even if you don’t know scala.

IDE & Project Setup

Scala development can be done in many IDEs. We will use IntelliJ with scala plugin.


Introduction

The actor model of computing was introduced by Carl Hewitt in 1973. This model makes it easy to tackle the problem of concurrency and state management. The model treats an “actor” as a primitive unit of computing.


Let’s explore

Image source: http://www.communityworkshopllc.com/goodstuff/2016/11/2/electionaffirmations

One of the features of .NET core 3 is “local tools”. While global tools have been a part for .net core since version 2.1, .net core 3 brings local tools. Local tools are exactly like global tools except they are tied to a specific directory unlike global tools which are associated with the whole machine. You can find out more about global tools here.

PS: You can see all the features of version 3 here.

.net core global tools provided more opportunities for publishing and installing cli tools which are created in .net. They are very similar to npm global…


Creating API

Web today has come a long way from being static web pages. Web experience today feels much more interactive, immersive with rich graphics and animations. However, real-time web applications are still not mainstream yet. By real-time I mean a web application which is constantly connected to a server to receive updates so that user doesn’t have to refresh the page.

Let’s take an example of a simple CRUD application which has a dashboard where people can see list of items, a page where people can edit & delete items and a page where people can add items. Most of the…


Have you ever met a developer who never believes that his/her code is “not the best”. Makes it difficult to work with, isn’t it. Ever thought why does s/he feels that way though? It’s simple. Because s/he loves his/her code. And what happens when you love your code? You can’t accept any criticism for it. In this article we are going to talk about this problem and its effects.

Image source: https://ubr.ua/labor-market/life-at-work/22-sposoba-nauchitsia-vliiat-na-lubogo-cheloveka-468078

In software development there can always be more than one way to do the same thing. And none of then have to be wrong. You have to chose the one that…


I am obsessed with reusability of code. As a result of that, I am always refactoring code. What do you do when you find a piece of code that you think could be reused? Well, I publish it online on repositories like nuget. Think about it. It’s the next step after you have extracted the reusable code into a class.

I have published multiple projects to nuget and I feel happy about it because I have not only helped my teammates but also helped anyone in the word who otherwise would have had to re-write that functionality. …

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store