Welcome to curated list of handpicked free online resources related to IT, cloud, Big Data, programming languages, Devops. Fresh news and community maintained list of links updated daily. Like what you see? [ Join our newsletter ]

Optimizing docker images for a faster development workflow

Categories

Tags docker kubernetes microservices

jobandtalent Engineering published an interesting article on Docker images optimization. Architecture being based on docker means that every change that improves the usage of a resource (time to execute, memory usage, disk space usage, network usage…) in any stage of the process, will have an impact in each one of the environments.

Optimizations points to focus on:

  • Base images (basic software, minimal size)
  • Dependencies and context (be strict)
  • Dockerignore file
  • Mind the step, cache layering
  • Keep the layers small
  • Build several images

Detailed information for each step mentioned above provided. Plus links to further resources.

Authors also demonstrate optimization on real project. In this case they’ve chosen an open source, self hosted and mobile optimized CI, powered by fastlane. Nice one!

[Read More]

What you need to consider before building a fintech product

Categories

Tags fintech how-to miscellaneous software startups

Blog post by Artur Bachynskyi with some advice on topic of fintech products. Financial technology aka fintech is a popular start-up sector for entrepreneurs, as more and more people are striving for financial literacy. The shift to treating one’s finances more intelligently has led the creators to apply the principles of human-centered design (HCD) when developing fintech products.

Author will tell you about the pitfalls that await almost anyone who has decided to build a fintech product.

Example of points mentioned in the post:

  • Consider the target country
  • Find a team with experience in developing the fintech products
  • Choose the technology considering the future of your fintech product
  • Consider possible integration with third parties
  • It is not only for the end-customers
  • Have a product owner & communicate (a lot)

All of them valid. For example, eight countries in the world have launched a regulatory sandbox in their financial markets.

This means that they have created a special framework set up by financial center regulation to provide testing of innovation technologies under the regulation’s supervision. Good read!

[Read More]

Creating a load-balanced web service on cloud with Ansible

Categories

Tags ansible programming devops

Alex Callejas from RedHat wrote quick tutorial about Ansible as a tool for creating of load-balanced web service on cloud. Through a practical example, author will show how to automate creation of one of the most basic web services, with three instances of Apache as a backend and a load balancer as frontend.

The infrastructure is deployed on Google Cloud Platform and the link to the Guide is provided. The creation of ssh keys is also explains.

The article is divided in three sections:

  • Prerequisites
  • The role (bare metal or virtual machines)
  • The playbooks

Article will help you to create (or re-use) playbooks to manage a task that would normally take an admin an hour or more if done manually.

You will create:

  • The firewall rule to allow http traffic to our instances, and
  • Load balancing instance
  • 3 instances based on Red Hat Enterprise Linux 7

Code is provided together with video describing each step. Excellent article and tutorial, especially for admins new to DevOps, automation and orchestration.

[Read More]

Code review best practices

Categories

Tags programming code-refactoring cicd learning

Palantir Technologies article about insights and best practices for code reviews. Organizations with deep cultural reluctance to peer reviews may want to consult Karl E. Wiegers’ excellent essay on Humanizing Peer Reviews before trying to follow this guide.

We perform code reviews (CRs) in order to improve code quality and benefit from positive effects on team and company culture.

Authors cover the following topics:

  • Why, what, and when to do code reviews
  • Preparing code for review
  • Performing code reviews
  • Code review examples

Authors claim that committers are motivated by the notion of a set of reviewers. They tend to clean up loose ends, consolidate TODOs, and generally improve the commit.

Sharing knowledge helps development teams in several ways, including added/altered/removed functionality communication, using the technique or algorithm that reviewers can learn from, can help raise the quality bar across the organization, or strengthens social bonds between team member.

There is no eternally true answer to this question and each development team should agree on its own approach. Some teams prefer to review every change merged into the main branch, while others will have a “triviality” threshold under which a review is not required.

Examples and further reading provided. Interesting read, recommended!

[Read More]

How to do Object Oriented Programming the right way

Categories

Tags oop programming javascript

Article by software engineer Xiaoyun Yang about Object Oriented programming done right. Object Oriented Programming (OOP) is a software design pattern that allows you to think about problems in terms of objects and their interactions. OOP is typically done with classes or with prototypes.

Author focuses on two approaches:

  • Class-based inheritance (typical for Java, Python, Ruby…)
  • Prototypal inheritance (JavaScript)

She shows you how to use both approaches for OOP in JavaScript, discuss the advantages and disadvantages of the two approaches of OOP and introduce an alternative for OOP for designing more modular and scalable applications.

In classical (class based) OOP, classes are blueprints for objects. Objects are created or instantiated from classes.

Prototypal inheritance does not use classes at all. Instead, objects are created from other objects.

Code examples and pop quiz (with answers) provided. Good read for any fun of Object Oriented Programming!

[Read More]

8 best practices for perfect CSS documentation

Categories

Tags css frontend web-development miscellaneous

Adriana De La Cuadra article about best practices for CSS documentation. In the world of CSS, documentation is underused. Since documentation is not visible to the end user, its value is often overlooked by clients.

Yet documenting CSS can offer a lot to your project: from encouraging better code practices to easing the onboarding of new team members. Sometimes it can be difficult to determine what to document and how to do it most effectively.

Author’s advice revolves around:

  • Settting the ground rules
  • Explaining the structure of your code base
  • Establishing your coding standards
  • Avoiding long stylesheets

… and for the rest click on the link below. The author note, that with these best practices in mind, the next step is to incorporate a living style guide as part of your documentation.

In a living style guide, you can include interactive demonstrations of your code and you can further organize your documentation independently from the code structure. Interesting read!

[Read More]

Setting up a reverse-proxy with NGINX and docker-compose

Categories

Tags nginx how-to performance web-development performance

Dominik Weber tutorial how to set up reverse-proxy with NGINX, which can then handle server-related aspects, like SSL and caching, completely transparent to the application behind it. It is good practice in general to not make internal services public-facing that don’t have to be.

Article is divided into few sections:

  • Docker-compose configuration
  • Images used for docker-compose
  • Networks with Docker
  • Docker volumes
  • NGINX configuration with LetsEncrypt certificates

docker-compose is a neat little tool that lets you define a range of docker containers that should be started at the same time, and the configuration they should be started with.

In the article author briefly explains how to configure the docker-compose features used in examples. He uses official NGINX image with the second image he created himself called “ismydependencysaf”. It exposes port 80, too. The difference to the ports configuration is that they are not published to the host machine.

This article is especially useful for people new to Docker, docker-compose and containers. With further resources and links to articles aimed at NGINX security. Well worth your time!

[Read More]

Enterprise integration for Ethereum

Categories

Tags blockchain cio crypto distributed fintech

Bilgin Ibryam article about Ethereum usage in enterprise. Ethereum is distributed and decentralized, but it is mostly a closed system with the embedded ledger, the currency, and the executing nodes. The most popular open source Java integration library – Apache Camel supports Ethereum’s JSON-RPC API now.

In order to be useful for the enterprise, Ethereum has to be well integrated with existing legacy and new systems.

Ethereum is an open source, public, blockchain platform for running smart contracts. Today, Ethereum is one of the most established and mature blockchain platforms with interests from small and large companies, non-profit organizations and governments.

You will further find in the article:

  • The Ethereum ecosystem
  • Open source enterprise integration
  • Apache Camel connector for Ethereum
  • Use cases for Apache Camel
  • An Ethereum Oracle (smart contract) implemented in Apache Camel

Example code in Java included. Excellent read!

[Read More]

A sysadmin's guide to Ansible: How to simplify tasks

Categories

Tags cicd ansible devops

Jonathan Lozada De La Matta from RedHat wrote this article about sysadmin tasks automation. There are many ways to automate common sysadmin tasks with Ansible. In this article you will find several of them.

Author gives some advice how to better approach Ansible learning when you are new to it. He also creates list and code with examples of managing basic tasks for cloud infrastructure:

  • Managing accounts in systems
  • Maintaining lists of required packages
  • Configuring systems and applications
  • Provisioning a VM in the cloud
  • Doing other things

As mentioned code examples for various approaches to tasks done in Ansible in different ways included. Short, straight to the point Ansible intro. Great starting point for any sysadmin!

[Read More]

Reduce JavaScript payloads with tree shaking

Categories

Tags performance javascript frontend

Jeremy Wagner neat article about reducing the JavaScript in modern web applications. JavaScript is often compressed when sent over the network, meaning that the actual amount of JavaScript is quite a bit more after the browser decompresses it.

As of mid-2018, HTTP Archive puts the median transfer size of JavaScript on mobile devices at approximately 350 KB.

As far as resource processing is concerned, compression is irrelevant. 900 KB of decompressed JavaScript is still 900 KB to the parser and compiler, even though it may be ~300 KB when compressed.

JavaScript is an expensive resource to process. Unlike images which only incur relatively trivial decode time once downloaded, JavaScript must be parsed, compiled, and then finally executed. Byte for byte, this makes JavaScript more expensive than other types of resources.

Tree shaking is a form of dead code elimination.

Author explains:

  • What is tree shaking
  • How to find opportunities to shake a tree
  • How to use webpack to implement tree shaking in sample app
  • How to keep Babel from transpiling ES6 modules to CommonJS modules
  • About keeping side effects in mind
  • And how to import only what we need

And of course example code is included. Excellent read!

[Read More]