Implementing UDP vs TCP in Golang

Go is known to be a very capable systems programming language. Programmers enjoy it’s simplicity, ease of deployment, and performance when writing backend services. A key feature in any backend software service is networking communications. There are numerous application level protocols by which software can communicate over a network. Underneath the great majority of these protocols lie either TCP or UDP. In this article, we’ll talk about the code involved in implementing UDP vs TCP in Golang. Let’s get started.

TCP in go

TCP’s support in Go is covered quite well in numerous articles and resources. Obviously, TCP is … Read more

Concurrency in Golang

Yesterday, I answered a question in Quora about the concurrency model in Go. Now, I feel like I want to say more!! Concurrency in Golang is one of the most powerful features in the language. Numerous folks covered the topic, ranging in their takes from very simple to overly complicated. Today, it’s my turn to give my two cents.

Concurrency in Golang is a way of thinking more than just syntax. In order to harness the power of Go , you need to first understand how Go approaches concurrent execution of code. Go relies on a concurrency model called CSP … Read more

Thoughts on Process historians

Today, I found myself wanting to talk about a SCADA related topic a little bit. What is SCADA you say? Well, you can either check this article, or just read on. SCADA is a world that I live in, where software meets temperature sensors and pressure gauges. SCADA is the software layer that sits between a human being and a bunch of devices that control and monitor operations in a factory, oil pipelines in the desert , or power generation substations… you get the idea!! Process historians are not considered SCADA systems by themselves, however they are vital companions … Read more

Cross-platform mobile development

This post is about my thoughts on C#, Xamarin and cross-platform mobile programming in general. Originally, I wanted to talk exclusively about C# and it’s significance in modern mobile programming however I couldn’t resist covering the topic from the beginning. If you are only interested in C# and Xamarin , click here.

Cross-platform mobile development

So you love technology, you enjoy your iPhone/Android/Windows device, you know how to program and you have a ground-breaking-kick-ass-never-seen-before-will-turn-the-world-upside-down idea for a mobile app, what next? Answer is simple: go make it!! But make it how? Isn’t your idea worth sharing with the whole … Read more

Never underestimate the power of art

According to wikipedia, art is an outlet for human expression, a vessel for our creativity. A very attractive definition indeed. But what value does art provide? Why do we care about outlets for human expression? How does it apply to our day to day lives?

Way back when, in my college days, I was deeply puzzled about the usefulness of any study that doesn’t yield immediate measurable value. Let’s say you studied medicine, shortly after you graduate you are treating patients, helping people get better, making families happier while making money in the process. How about engineering? You finish school … Read more

How to build a Modbus driver in Go?

This article serves as a practical guide into how to build a Modbus driver. I use the Go (Golang) programming language because I like it . However, the principles outlined should apply to any stack.

I happen to be a software engineer who works in SCADA. What does that mean?  it means that a lot of my days involve making various pieces of complex software work in harmony with industrial devices like one big happy family. In order to make software talk to industrial devices, we use protocols that both the devices and the software can understand. Some protocols … Read more

A Class Factory in Golang (Google Go)

Do you know what a class factory is and why is it useful?  Ever considered implementing a class factory in Golang (Google Go) even though Go is not considered fully object oriented in nature? Are you curious about some awesome features in Go other than it’s impressive concurrency capabilities? If any of the these questions interests you, then reading on may be worth your while. This article covers implementing the factory design pattern in Go.

If that’s not your first time visiting my site, then you probably know by now that the Go programming language is a personal favorite … Read more

A dive into the industrial software industry

This article serves to provide a decent overview of the industrial software industry. This industry is the gate to the intelligent solutions that drive the success of industrial operations in factories, plants, pipelines, electrical grids, and similar facilities. Let’s start the journey by covering SCADA which is the main component of any industrial software.

What is scada?

A SCADA (Supervisory Control And Data Acquisition) system simply refers to the layers of software and infrastructure that sit between a digital screen, and any control or measuring device. SCADA is used to issue control commands to remote devices like valves or pumps, read values from those devices, and analyze device data when needed. SCADA … Read more

Life is not fair!!

Do you think good always wins over evil?? Do bad people who do nasty things end up getting punished in life?? How about people who go through life crises? Are they all guilty of something? did they cause the agony of other human beings and hence they are suffering in return? In short, do you think life is fair??

life is not fair

As a kid, I enjoyed fairy tales, stories of how the good always prevails and how evil always loses. I had my own theory that any person who commits an act of evil will always lose, it’s just a matter of … Read more

I was bored!!

I was really bored a couple of years ago, why? Ummm, let me think, was it because of the lack of something to do? don’t think so, I had tons of things that I could have done!! Was it for the lack of someone to talk to? Absolutely not, I had and still have amazing people in my life. Was it because of the lack of travel? Nope, I travelled quite a bit!! Come to think about it, I felt like there was the whole world to conquer out there, places yet to visit, lives yet to live, awesome people … Read more