Yash Agarwal

Posts categorized in ‘Technical’ (14)

Automatic HTTPS Certs Using GoDaddy and Gitlab APIs

Before I start, here is some technical information about my website - Hosted on Gitlab and usage its CD for automatic deployment, which is triggered on a git commit. The domain name registrar is GoDaddy. Let’s Encrypt as the TLS certificate provider for my domain name. Let’s Encrypt provides certificates for 90 days only, so I was forced to set up the certbot every three months, then generate the certificate and manually deploy the certificates to GitLab.

Setting Up ModSecurity on Ubuntu

Recently, I am experimenting with Web Application Firewalls a lot. ModSecurity is one of them. It is the most famous and useful open-source Web Application Firewall (WAF) in existence. It is supported by various web servers such as Apache, Nginx, and IIS. The job of ModSecurity is to sit in front of the application web server and check the incoming requests and outgoing responses to filter out malicious content. It does so by the use of powerful and complex regular expressions.

Go + gRPC + OPA - A Perfect Union - Part 3

I finished my last post with the following issue - Now, here one problem arises, how to make sure that the search results will not return any book which the user is not authorized to access. We will solve this problem using OPA in the next and last post of this series. Let’s solve this issue now. We will use OPA’s declarative language, Rego, to implement policies which will decide on the basis of some user-provided data, which all objects are to be returned to the user.

Go + gRPC + OPA - A Perfect Union - Part 2

In the last post, we discussed about the structure of our library application. In this post, we will define the data definitions using protobuf, and then we will use these definitions to create a Go service. We will also add a REST interface to the service. So let’s get started. Defining Proto Definitions gRPC uses protocol buffers for serializing structured data. To define the structure of the data that you want to serialize, we use a proto file - it is a simple text file that contains all the logical pieces of your data in the form of messages, and the methods that will be called over the network.

Go + gRPC + OPA - A Perfect Union - Part 1

TL;DR – In a series of blog posts, I will be implementing a simple library application supporting both gRPC and REST interfaces using Go, gRPC, and OPA. My approach might not be the most optimal one, but I am learning these technologies currently. Please give your valuable suggestions and be kind :) I have been learning the basics of microservices and Golang lately. On the work front, I got a chance to work on Go, gRPC, and Open Policy Agent as my first professional project.

Proxy Your Requests to the Backend Server With Grunt

This article was originally published on zeolearn. If you are working on large projects, it is undoubtedly a good idea to have a build script or some task scripts to help to automate some of the repetitive parts of the development process. For JavaScript projects, Grunt serves a similar purpose. It is a JavaScript task/build runner that is written on top of NodeJS. Grunt can help you with automatically minifying your JavaScript or CSS files, or reload your browser on every file change.

Writing Drozer Modules

This post is a result of my experimentation with Drozer. Drozer is a security testing framework for Android, developed by MWR Labs. According the Drozer’s official documentation: Drozer allows you to assume the role of an Android app and interact with other apps. It can do anything that an installed application can do, such as making use of Android’s Inter-Process Communication (IPC) mechanism and interact with the underlying operating system.

Develop a Theme for Hugo

This article was originally published on zeolearn. Introduction In this tutorial, I will show you how to create a basic Hugo theme. I assume that you are familiar with basic HTML, and how to write content in markdown. I will be explaining the working of Hugo and how it uses Go templating language and how you can use these templates to organize your content. As this post will be focusing mainly on Hugo’s working, I will not be covering CSS here.

My Own Configuration Manager

I have been using Linux since I was in my second year of undergraduate. My experiments with the dotfiles (configuration files) also started at the same time. For the uninformed, in Linux, it is common to configure a lot of settings and configurations within dotfiles. Dotfiles are files in a Linux user’s home directory that begin with a dot or a full-stop character. This dot indicates to the operating system that these files are used to store the settings of programs like vim or shells like bash or fish to name a few.

Setting up ALM Octane with Docker Compose

Recently, I got a chance to set up ALM Octane on one of my university servers for a course project. From the support page of ALM Octane: ALM Octane is a web-based application lifecycle management platform that enables teams to collaborate easily, manage the product delivery pipeline, and visualize the impact of changes. Precursor My department insists on using open-source software (a plus point, indeed!). But ALM Octane has Oracle DB/MSSQL as a dependency.

Setting up Hugo automatic deployment to Github with Wercker

Recently, I again migrated my blog from Pelican to Hugo. So till now, I have experimented with Wordpress, Jekyll, Pelican, and Hugo. Without any doubt, Hugo is the simplest to set up. This time, I have setup Hugo in Windows, as I think, in my system, I reinstall Windows OS much less frequently than the Linux. So that way, it will be less painful for me to set up the blog again.

Setting up Python Development Environments

Recently I was searching for Python projects on Github for contribution. Every single project I found, had a thing common among them. In every project’s contribution guide, it was asked to set up the virtual environment for the project. What the heck is this virtual environment and how does it work? As a beginner to open source projects, the problem I faced, in the beginning, was how to set up the development environments for the projects I was looking at.

Custom Arch Linux setup with Openbox

After my summer vacation started, I bought a new laptop, and the first thing I did was to install Arch Linux on it. After a standard arch installation procedure, I started putting together my desktop environment, beginning with ArchLinux and Openbox, and then piecing all pieces together to build a proper desktop environment. Building a desktop this way follows the Unix Methodology; have software that each does one thing well, and when you put them together, you get something amazing.

A good Sublime Text setup

So, after a hectic day, good news finally came. I have been selected as a Lab Administrator for the Software Systems Lab of my college. Cheers!!! Let’s come to our today’s topic on configuring Sublime Text Settings. There is just one rule you must follow while designing your own editor preference configuration. Don’t put any lines in your configuration that you don’t understand. You will find tons of online tutorials that contains all kinds of awesome hacks to make your sublime text experience better but the worst way to make your development environment better is just to borrow the configuration from someone else.