Modern Software Development Method
So first of all, when you hear terms like Waterfall, SCRUM, Sprint, Agile, Continuous Integration, Continuous Delivery, Continuous Deployment, DevOps, DevSecOps, etc; think of those terms as a way of doing something, not a skill set.
There are “no 12 steps” to successful DevOps implementation or Agile, etc. it’s pretty much just using those concepts and applying them to create a workflow that works better for your team or organization.
What is DevOps?
“Dev” refers to software application development, and “Ops” refers to IT operations. Defining what DevOps engineers do is still in flux because DevOps is not a framework or a workflow. …
Intro to C#
In this article, we are going to explore c#, an OOP language, in order to showcase and understand OOP concepts.
C# is a simple, modern, general-purpose, object-oriented programming language developed by Microsoft within its .NET initiative led by Anders Hejlsberg. C# is a modern, general-purpose, object-oriented programming language developed by Microsoft and approved by the European Computer Manufacturers Association (ECMA) and International Standards Organization (ISO). C# is based on object-oriented programming concepts.
Want to read this story later? Save it in Journal.
The following reasons make C# a widely used professional language:
Virtual Machine vs Container
Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package.
Algorithm’s Time Complexity
Let’s start with a short popular fun story:
I’m originally from the D.R.Congo, in Central Africa and we have a very low internet speed. For illustration, opening a Gmail might take about 2 to 3 min of loading time (sometimes the whole process might just failed and time out).
In 2009, a company in South Africa had a similar issue: “really slow internet speed”. …
Intro to source code management With GitLab
Well now that we have our CentOS 8.2 template set up and ready. Let’s go ahead a create VM to host our GitLab source code management by cloning the template VM:
Things to double-check:
* Adapter 1 is set to NAT
* Adapter 2 is set to Host-only Adapter: vboxnet1
After powering on the Gitlab VM, we need to do all the network configuration for internet access and set the Static IP address on the second Adapter.
To do so, turn off both adapters on the VM and verify the IP address allocation:
Intro to source code management With GitLab
GitLab is a web-based DevOps lifecycle tool that provides a Git-repository manager providing wiki, issue-tracking, and continuous integration and deployment pipeline features, using an open-source license, developed by GitLab Inc.
Why is GitLab used for?
GitLab is a single application for the entire DevOps lifecycle that allows teams to work together better and bring more value to your customers, faster. GitLab does this by shortening your DevOps cycle time, bridging silos and stages, and taking work out of your hands.
Similar to GitHub, GitLab is a repository manager that lets teams collaborate on code. Written in Ruby and Go, GitLab offers some similar features for issue tracking and project management as GitHub. …
The golden rule of debugging: Don’t think; Look! Don’t assume; Validate!
Much more like most things in life, when It comes to code debugging; “Assumption is the mother of all fuckups.” I learned this early on from Chris Shellenbarger and it helped me catch really dumb mistakes I made when I was a junior software engineer.
There are several different kinds of errors that can occur when writing code or in programming; mainly, all those errors fall into these 3 categories:
Syntax errors are mistakes in the source code, such as misspelling an instruction, command, or a variable name, punctuation errors, incorrect labels, missing a comma at the end of the code line for some programming languages, and so on; which cause an error message to be generated by the compiler. These appear in a separate error window on your IDE, with the error type and line number indicated so that it can be corrected in the edit window. …
Intro to GitHub Actions
In this article, I’m going to share and demo a solution that could help offload some of the toolings to GitHub. This is called GitHub Actions. The way it works is that you create actions in your repositories by creating one or more text files. These are called workflows.
Workflows can handle common build tasks, like continuous delivery and continuous integration. That means that you can use an action to compress images, test your code, and push the site to your hosting platform when the master branch changes.
One interesting usage of Actions is in conjunction with tools like Bit (Github). For example, let’s say your team has a shared component collection on Bit. Your repo uses a few of these shared components. You can configure Bit to automatically send a PR whenever a component gets published with a bumped version. Using Actions, you can set up a CI to run on every such event. …
Getting Started with OpenShift Minishift
The following section describes how to install Minishift and the required dependencies for mac os. This is not for production use, but rather just something to get you started and get familiar with Openshift setup and usage. These are the basic steps for setting up Minishift on your personal system:
1. Install virtual box
Download VirtualBox for Mac OS here and follow this video tutorial on how to install Virtualbox on Mac OS:
2. Set up your virtualization environment
Minishift uses libmachine and its driver plug-in architecture to provide a consistent way to manage the Minishift VM. …
How to Manage Log Files in Linux/Unix Servers
Logrotate is a tool used to manage log files created by system processes. It automatically compresses and removes logs to maximize the convenience of logs and conserve system resources. This is accomplished through automatic rotation, compression, removal, and mailing of log files.
Logrotate is designed to simplify the administration of systems that generate large numbers of log files. It also provides extensive control to the system administrator over how and when log rotation should be processed. Each log file rotation might be handled daily, weekly, monthly, or when it grows too large. …