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 ]

Using GitHub container registry in practice

Categories

Tags containers kubernetes cicd web-development

Exploring the new capabilities of GitHub Container Registry. Did you know that GitHub has launched the new GitHub Container Registry September 2020? By Kasun Rajapakse.

A Container Registry is a place to store and manage container images. These container images can be either Public and Private. The Public container images are accessible by anyone, whereas you can configure access control for Private container images.

Today most of the applications are running on the cloud. Major cloud providers support downloading container images from popular container registries to deploy applications on demand.

Here is what’s covered in this article:

  • Introduction to container registry
  • The new capabilities of GitHub Container Registry
  • How to migrate to GitHub Container Registry?
  • A use case — Deploying an Nginx webserver to Kubernetes with GitHub Actions, Kubernetes, and GitHub Container Registry

The new features of GitHub Container Registry includes:

  • Ability to store container images under your organization
  • Fine-grained permissions for the container images
  • Can access public container images anonymously

GitHub Container Registry allows organizations to seamlessly host and manage their container images with fine-grain permissions. It can store both Private and Public container images as well. You will also get a comparison between other container registries. Nice read!

[Read More]

Client side architecture basics guide to testable flexible maintainable react

Categories

Tags open-source react ux software-architecture web-development nodejs

Though the tools we use to build client-side web apps have changed substantially over the years, the fundamental principles behind designing robust software have remained relatively the same. By Khalil Stemmler.

Developers are confused about where to start and what to choose when they start learning to write high-quality React applications. They want a strong foundation of knowledge and the confidence to architect React applications at scale built to current industry standards.

This guide teaches you client-side architecture fundamentals. It’s the result of my research using first principles on how to design and develop robust, flexible, testable, and maintainable client-side applications.

Modern Model View Presenter

Source: https://khalilstemmler.com/articles/client-side-architecture/conclusion/

During my experience working on client-side apps of varying sizes, I’ve realized that some serious upfront design on the architecture can have a significant impact on the quality of the code for the duration of its life. From simple dashboards to multi-layered apps with rendering layers, domain logic, multiple types of users - this guide teaches you the essential design principles front-end developers inadvertently code around within their everyday programming jobs.

The main bits this guide covers:

  • Prerequisites
  • Architecture
    • Model View Controller (MVC) explained
    • Model View Presenter (MVP) explained
    • MVC & MVP are too generic
    • Tasks of the model
    • Tools used within the model (React hooks, Redux, Context API, Apollo client …)
  • Principles
  • Layers
    • Presentation components
    • UI logic
    • Container/controller

… and much more. Excellent source of the information for anybody in the frontend development. Author honestly thinks that reading books and learning from the past is one of the best ways to avoid future mistakes. Design principles are great. You don’t need to always follow them, but know the rules before deciding whether you want to break ’em. Great source of knowledge!

[Read More]

Search engine giants like Google could soon face competitions

Categories

Tags open-source search miscellaneous software software-architecture web-development cio

The European Union and the United States want to introduce tighter rules for tech giants like Google. Search engine rivals are ready to step up as efforts are made to create a fairer competitive environment. By dw.com.

Is it right that one company should dominate the internet the way Google does? One person who feels things should be different is Gabriel Weinberg, the 41-year-old CEO of DuckDuckGo, a search engine that claims to protect the user’s private sphere and not collect huge amounts of personal data like Google.

While such legal action has been taken in somewhat piecemeal fashion in the US, the European Union is planning large-scale measures that will revamp the digital world. The European Commission wants to ensure fair competition with a digital services law and a digital market law. Those who violate the intended legislation could face penalties of up to 6% of their annual global revenue.

Asymmetries of power: According to the proposal by the European Commission, platforms will no longer be allowed to prioritize their own content and products over those of other providers. They will have to make their advertising and their recommendation algorithms more transparent so that is possible to trace what is shown to whom when. The EU is even considering breaking up corporations if they don’t stick to the EU rules.

One effective weapon could also be so-called interoperability. This means that the big corporations would have to open up their systems. For example, a WhatsApp message could also be sent to Telegram. “This could lead to more competition on the messenger service market,” Beckedahl told DW. Interesting read!

[Read More]

How to structure CSS classes

Categories

Tags web-development css frontend app-development react

A clean and arranged CSS structure is hard to maintain in growing projects. Therefore it is important to think about how you would like to structure your classes right from the start so that you don’t lose control. But if you start searching for methodologies and techniques to organize your CSS, you will soon realize that there are many ways to reach your goal! By Anne Debora Zimmermann.

The universe of CSS methodologies is big and grows from time to time, although the list of the most popular ones seems not to change:

  • Object-Oriented CSS (OOCSS) by Nicole Sullivan, introduced 2009
  • Block, Element, Modifier (BEM) by the developer team at Yandex 2005, open source since 2010
  • Atomic CSS by Thierry Koblenz, introduced 2013
  • Multilayer CSS (MCSS) by Robert Haritonov, introduced 2014
  • SUIT CSS by Nicolas Gallagher, introduced 2014
  • Attribute Modules for CSS (AMCSS) by Glen Maddern & Ben Schwarz, introduced 2014
  • Scalable and Modular Architecture for CSS (SMACSS) by Jonathan Snook, introduced 2015

You’ve probably already heard of BEM, after all, it’s the most known one and maybe even a kind of superstar among the CSS methodologies. The creation of BEM was started by a developer team at Yandex in 2005 and it became open source in 2010. Companies that are using BEM are e.g. Google, BBC, and BuzzFeed. SUIT CSS is another methodology with many similarities and was developed by Nicolas Gallagher in 2014. Companies that are using it are e.g. Twitter, BBC Three, and LevelEleven.

// SUIT CSS
// LESS nesting
.u-fullSize {}
.AuthorCard {
  &-image {
    &.is-empty {}
  }
  &-description {}
  &-name {}
}

Both methodologies include component-based thinking to achieve reusable, clean code for faster development and code sharing in a scalable team. And both provide a clean structure of semantically meaningful class names to express how a component is structured and if there are presentation modifications. Although the spelling is different, there is a best practice that runs like a red thread through both: Instead of deep nesting, try to build new components. This also includes to focus on writing CSS classes in form of flat nesting. Excellent read!

[Read More]

Deploy Fedora CoreOS servers with Terraform

Categories

Tags devops nginx microservices servers software

Fedora CoreOS is a lightweight, secure operating system optimized for running containerized workloads. A YAML document is all you need to describe the workload you’d like to run on a Fedora CoreOS server. By Nathan Smith @fedoramagazine.

This is wonderful for a single server, but how would you describe a fleet of cooperating Fedora CoreOS servers? For example, what if you wanted a set of servers running load balancers, others running a database cluster and others running a web application? How can you get them all configured and provisioned?

The main parts of this article:

  • Getting started
  • Configuring Terraform
  • Updates and immutability
  • Using variables
  • Leveraging the dependency graph
  • Web server configuration
  • Load balancer configuration
  • Clean up

The load balancer will is a basic HAProxy load balancer that forwards to each server. Code for this tutorial can be found at this GitHub repository. Feel free to play with examples and contribute more if you find something you’d love to share with the world. Good read!

[Read More]

Open source strategy of Amazon Web Services

Categories

Tags open-source app-development web-development cio learning

Did you know that Amazon leads more than 1,200 open source projects on GitHub? That number, which author got from the Open Source at AWS web page, was confirmed by Asay (Head of Open Source Strategy and Marketing at Amazon Web Services) to represent “officially sponsored projects” — meaning they are open source projects that began inside of AWS, rather than being independent projects run by AWS employees. By Richard MacManus.

Asay added that AWS actually contributes to thousands of other open source projects, too. “The majority of the [GitHub] repositories to which we contribute are not AWS sponsored,” he said. Asay spends a bunch of his time working with AWS partners, such as MongoDB. Which brings up an interesting question: how does he explain the open source strategy of AWS to a company like MongoDB, which AWS actually competes with because of open source. Long story short: MongoDB is a company built around open source technology that it created, only to then watch AWS launch a managed service version of the same technology.

The article further explains:

  • Why does aws want you to use Open Source?
  • Why AWS contributes to so many Open Source projects
  • Open Source as a strategy for AWS

As for AWS, it is not only running 1,200 open source projects and contributing to thousands more, but it’s also the place where a huge amount of open source code runs. Good read!

[Read More]

How to build with Terraform: Azure VMs (Windows)

Categories

Tags devops app-development web-development programming azure containers

Have you created an Azure VM via the Azure portal before? If so, how many clicks did it take to do that? Can you do it, again and again, providing the exact same input values to ensure you meet a specific standard? Probably not. You need to automate the process. Create Azure VMs with Terraform! By Adam Bertram.

In this article, you’re going to learn how to get started with Terraform by creating an Azure VM. This tutorial will be a great Terraform Azure example.

The main bits of this guide are:

  • Installing terraform
  • Authenticating to Azure
  • Create a configuration file
  • Build the Azure VM with terraform
  • Clean up

Terraform uses providers to talk to various on-prem and cloud vendors. In this case, you need to configure the Terraform Azure provider. Assuming that you’ve got the Azure CLI installed and already authenticated to Azure, you ned to first create a service principal. Terraform will use the service principal to authenticate and get access to your Azure subscription.

Terraform is a great and free tool to build infrastructure in many different areas. Learning the syntax of HCL is the hardest part of Terraform but honestly, HCL is an intuitive language. If you’re thinking about using a tool like Terraform or ARM temples, for example, learn Terraform. Excellent!

[Read More]

TypeScript compilation performance best practices

Categories

Tags nodejs javascript app-development web-development programming

There are easy ways to configure TypeScript to ensure faster compilations and editing experiences. The earlier that these practices can be adopted, the better. By Daniel Rosenwasser.

Beyond best-practices, there are some common techniques for investigating slow compilations/editing experiences, some common fixes, and some common ways of helping the TypeScript team investigate the issues as a last resort.

The main parts of this guide:

  • Writing easy-to-compile code
  • Using project references
  • Configuring tsconfig.json or jsconfig.json
  • Configuring other build tools
  • Investigating issues
  • Common issues

TypeScript compilation is often performed with other build tools in mind - especially when writing web apps that might involve a bundler. While we can only make suggestions for a few build tools, ideally these techniques can be generalized.

Perceived editing performance is frequently impacted by a number of things, and the only thing within the TypeScript team’s control is the performance of the JavaScript/TypeScript language service, as well as the integration between that language service and certain editors (i.e. Visual Studio, Visual Studio Code, Visual Studio for Mac, and Sublime Text). Ensure that all 3rd-party plugins are turned off in your editor to determine whether there is an issue with TypeScript itself. Good read!

[Read More]

How to optimize large scale serverless applications for operational excellence

Categories

Tags serverless programming devops cicd performance

Managing applications at scale often comes up as one of the biggest concerns for businesses; How can it work smoothly? How do we monitor so many resources? By Taavi Rehemägi.

In this article, we run through the best approach for operational excellence looking at serverless monitoring strategy, serverless alerting strategy, and security and compliance best practices.

The main points from the article:

  • The serverless challenge
  • Observability
  • Serverless application monitoring strategy
  • Serverless application alerting strategy
  • Serverless security and compliance best practice

It goes without saying that operational excellence takes a lot of time and practice, especially in serverless.

Some things you can do today to get started or continue doing:

Good read!

[Read More]

NULL values in SQL queries

Categories

Tags data-science sql database programming

This post is about NULL values in SQL, and comes courtesy of my friend and database wizard, Kaley. You should check out his website if you’d like to learn more about SQL, Oracle database, and making queries run faster. By Mitchum.

Whenever you issue a SQL query to a database…and you want to know whether a column has a NULL value in it…what is the proper way to write a query that will find the result?

SELECT * FROM SOME_TABLE
WHERE SOME_COLUMN IS NULL

So why on earth would we do the IS keyword with a NULL value? Why would we need to treat NULL differently? The answer is this: In SQL, NULL represents the concept of “unknown” (so a NULL value represents an “unknown” value).

In most databases, there is a difference between NULL and an empty string (represented by a “double apostrophe” or “). But this isn’t always true for all databases: For example, Oracle database won’t allow you to have an empty string. Anytime Oracle database sees an empty string, it automatically converts the empty string into a NULL value.

For the majority of the other databases out there, though, a NULL value is treated differently than an empty string:

  • An empty string is treated like a known value where there is no value
  • A NULL value is treated like a value that is not known

It’s important to consider a NULL value to be equivalent to an unknown value–it’s going to help you whenever you craft complex SQL queries. Good read.

[Read More]