Posts

Build Your Own Custom AMI With Packer

Image
  Yup, that's me again... dealing with some new pain in the neck and then writing about it.  And this time let me tell you a few things about mutable infrastructure or even more specific, how to build your own using Packer and AWS. So, for the past 2 years or so I have been working in an amazing company where I lead the Automation Infra team. A team of awesome and super talented all around infra developers that basically maintain the entire QA Guild's infrastructure including automation, pipelines, custom AWS resources and much more. In the scope of our work, dynamic EC2 instances are heavily in use for various deployment and automation needs. The need for dynamic mutable infrastructure is a very common need and in the era of cloud providers and various open source and commercial solutions we are able to address that need effectively.  So, What is Packer? Packer is an open-source tool for creating Machine Images from source configuration developed by HashiCorp. (And if you are

Docker cheat sheet - Get to know the most common docker commands

Image
  Docker is a very popular piece of technology. It is being heavily used for the past several years in Development/QA teams. In this post, we are going to list the most common docker terminal commands that will make your life easier, and serve as a glossary/cheat sheet when you need a reminder on how to perform a certain operation.  On this note, if you haven't read my previous articles about docker I would strongly advise you to start from reading those as well. $docker login <repository> This command allows you to login to docker hub or any other remote repository of your choice.  $docker ps This command will list all currently running containers on the machine it is executed on. $docker ps -a/--all This will list all containers both running and stopped. $docker run <image>:<version> /  $docker container run  <image>:<version> $docker run will do the following : Check if the image exists locally                                                       

A quick intro to MongoDB

Image
  In this blogpost we are going to take a quick look at one of the most popular peaces of modern technology, MongoDB. What is MongoDB? MongoDB is an open source, NoSql, non-relational, schema-less, document-oriented data base. In Mongo, data is organised in a Binary Json document format which is called a Collection. The basic differences between Mongo and a relational data base such as PostgreSQL can be summarised as: Collections INSTEAD OF Tables Documents INSTEAD OF Rows Fields INSTEAD OF columns Installation and Interface. MongoDB can be downloaded from their official website . If you are on a Mac, you can easily use the Homebrew  package manager.  Once the installation is completed just start the MongoDB service to initiate a local DB server. Connecting to the DataBase. To start using my database, I'm going to use a client called RoboMongo (Robo 3T) which can be downloaded from this link Once the client is installed, we can begin by connecting to our DataBase. To initiate a new

Introducing - the DOM

Image
  No, not that one... This one! If you are into UI automation like myself, then you probably heard about this DOM thingy everyone is talking about, right? Well, In this article we are going to take a slightly deeper look into what is known as the Document Object Model. A quick introduction Quite often we address the DOM in terms of the page source of our AUT (Application under test). But, DOM is actually a language -independant interface for treating XML and HTML documents. That Interface offers the document as a tree of objects. Well, we are into the Test-Automation stuff, so let's stick to the HTML part. In the WEB world, the DOM would be referred to as the browsers programatic representation of the web page. An API if you will, for dealing with and manipulating the HTML without actually going in and changing it manually. The interface specification is standartized by the W3C. Using this API we can build, navigate through, add or modify a document and its content. For example, wh

Access modifiers in Java

Image
  "Which access modifiers are you familiar with and what is the difference between them?" This is a very common interview question, that can at times catch a candidate off guard. In this post, we will discuss the different access modifiers available in Java, and the differences between them. In Java, there are 4 main access modifiers that are basically reserved keyword which allow us to control access to fields, methods and classes from other entities. Confused? Let's see if we can clear things up a bit. Public The public keyword means that this class/member/method can be accessed from anywhere. And by anywhere I mean that any class, package, method can access the field defined as public. Private The private modifier limits the access of a particular member/method to the specific class where it was initialised or declared. The private keyword cannot be applied to classes. Protected Protected means that the member will be accessible within that paticular class, within the