teleren/devto huggingface dataset:
Software performance testing - Why it's important? [2]
Tags: devops, sre, performance, productivity
Published: 2022-04-05 13:39:06

In the first post, we discover what is **Software Performance Testing** and a bunch of different types of tests.

Today, we will see why it's important to do performance tests.

---

## Prerequisites
Before talking about why performance tests are important, we need to talk about the prerequisites.

If you want to do this kind of test you need to know for each operation :
- the accepted latency
- the volume of transactions that you can have in a normal period and during peaks

These information must comes from 
- the business line if your service is right behind a front end service

and/or 
- by the aggregation of all the requirements for your consumers.

Also, this informations must come before you start your analysis/architecture, for the following reasons.

---

## Things included with Performance Testing
### Architecture
Performance testing is something that can't arrive late in a project. **It must be here at the beginning.**

Otherwise, how can you be sure to respect all the performance conditions?

For example, if you are alone with one oven to cook some pies for a party, and don't know how many people will come, how will you do if 100 people come?

The idea with development is the same. Developing something which can support 10 or 1.000 TPS is not the same. You won't use the same tools, you won't orchestrate the calls in the same way... especially if you are working in a big enterprise where some services can be "older" or "limited" for some reasons.

### Monitoring
If you want to check what's happening when you are doing performance tests, you will need to have something set up to monitor your services and your infra!

During the performance testing phase, it will be useful to check bottlenecks and understand what is limiting your service.

### Alerting
Now that you know what are your limits about latency and volume, you will be able to add some alerts to prevent if the load is close to the max.

With that, you will be proactive and may avoid a production issue.

---

## Why it's important to do Performance tests?
So finally, why it's important to do Performance tests? 

As you can see in the previous part, doing these tests embed a lot of things that can only be beneficial for your system!

Also, *(and it's the biggest reason why)* **your system will be reliable**!

With all these tests, a correct architecture matching the needs, monitoring, alerting... you will avoid a lot of issues related to loading. And if you are close to your maximum, your alerting will ping you to let you know that you have to do something before it's too late.

---

I hope it will help you! 🍺

And see you to the next part : How to do it?

---

<center><h3>You want to support me?</h3></center>
<a href="https://www.buymeacoffee.com/mxguilbert7" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a>
Curiosity | A Valuable Trait for Software Engineer
Published: 2022-04-05 13:28:48

Do you know Albert Einstein has a quote saying

> I am neither especially clever nor especially gifted. I am only very, very curious. - Albert Einstein

This quote changed the way I think about learning new things. Now every time I want to or have to learn something new it's not a problem anymore because now I am actually really **curious** about things. And in my opinion _Curiosity_ is a trait that every software engineer should have to grow as a professional.

The field of software development evolves at a really fast pace, every day there is something new to learn, a new update of the packages you are using, a new security vulnerability found which you have to patch. It's like a continuously erupting volcano of knowledge all around us.

For example, if you hear a word like **Kubernetes** and you are curious about it you can learn something new about it today. And if you are someone like me you will start by learning the meaning of the name and where it comes from and get familiar with it quickly.

![Kubernetes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q15kmmu7cwk6r9ch84lu.png)
 
Like I just found out the word "Kubernetes" comes from an old Greek word for “helmsman,” (someone who steers a ship, like a container ship) which also gives a hint about the ship wheel logo. So as the name suggests it is something that steers or in other words orchestrates and it's exactly what it does.

Kubernetes is an open-source container orchestration system for automating software deployment, scaling, and management. Google originally designed Kubernetes.

If you curious key term in this definition of Kubernetes leads to learn something new for example these words:

- Open-source 
- Container
- Scaling
- Deployment

So what's the conclusion, if you are curious you can learn something new every day and you can have fun along the way so keep learning, and keep coding.
Operating System Concepts 9th edition notes
Published: 2022-04-05 13:22:11

# Part 1 Overview

## Chapeter 1 Introduction

### What Operating Systems Do

#### System View

- An operating system is the heart of computers, mobiles and other computing devices that helps operate the hardware and software.
- OS carry out the most commonly required operations:
    - Process Management
    - Memory management
    - File System Management
    - IO System Management
    - Protection and Security

#### Process Management
How the alias Command works on Linux
Tags: linux, javascript, webdev, tutorial
Published: 2022-04-05 13:18:11

We've covered a lot of linux commands, and it's sometimes necessary to write the same command over and over again. On Linux and other Unix like systems, we can use the alias command to avoid the drudgery of typing the same thing over and over again. It lets us make custom commands that will run a specific command of our choosing.

The alias command has no options, so it can simply be written as shown:

```
alias NAME="STRING"
```

## How the alias Command works on Linux
Let's say we are constantly using the cd command to move into our documents folder. Instead of writing cd ~/Documents every time, we can define a new command which runs cd ~/Documents. I'm going to call it gtd (go to documents):

```
alias gtd="cd ~/Documents"
```

Now all we have to type into our terminal to go to our documents folder is `gtd`, and it'll run cd `~/Documents`.

You can literally create any custom command with alias. Here is another example where we create a command mtf, which moves my-file.txt in the current folder to ./test/my-file.txt:

```
alias mtf="mv my-file.txt ./test/my-new-file.txt"
```

### Alias only lasts for the session
The only thing to note about alias is that the commands created are not permanent. If you close the terminal window, you'll lose them - so they provide a nice efficiency boost for a session, but need to be redefined if you want to create them again. This is so you don't end up with many unused commands sitting around, and taking up name spaces.

## unalias Command
If you think you've made a mistake, and want to remove an alias command, then just use `unalias`. For example, to remove our `mtf` command, we can run the following:

```
unalias mtf
```
Celebrate quitting
Tags: culture, transparency, leadership
Published: 2022-04-05 13:17:53

Companies celebrate when people join. They post on LinkedIn. They post photos of great swag. They send introductory mails to co-workers.

All what is missing is fireworks.

But, sometimes co-workers quit.

People quit their company for various reasons. Some bad, like terrible projects or leaders. Some quiet good. Maybe a new, exciting opportunity in a different part of the economy. Maybe, the person wants to try something new. 

Who knows?

Regardless of the reasons, we - as leaders - should treat quitting the same way we treat joining.

In an open, honest, and transparent way.

Otherwise, people will fill this information vacuum with rumors. And we can be sure, that these rumors will be worse than the true story.

My suggestion is to - at least - write a short mail to the co-workers.

Talk about the person's growth and about the person's impact on other people. Remember the successes, projects and challenges. Recall some funny anecdotes. But be careful, that this is indeed funny and not embarrassing.

And do not forget to thank the leaving person. Don't resent that you are losing a colleague. If you are sad, that a person quit, then this is a testimony to the quitter.

Don't be happy because you are losing a valuable colleague. But be happy for that person, because her journey continues. And remember: it is a small world. Leavers may come back later. 

So, let's make sure the door stays open.
Why I decided that I must live my life on my terms.
Tags: discuss, writing, devjournal
Published: 2022-04-05 13:11:50

Yesterday, I was talking to my partner, and even though I had heard Alex Hormozi mention that "We're all going to die, it doesn't matter who we are", I had never had the "click" that I needed to have to feel it.

We're all going to die one day, and we don't know when that day will be.
I've spent my whole life trying to find my purpose, where I was simply disappointed most of the time, and I was always looking at other people and comparing myself.

But now, I can finally say that I am slowly feeling like I am finding it with more clarity.

For that reason, as scary as it might be, I decided that I needed to stop being scared of things that weren't going to help me achieve the goals that I have set for myself.

The one is to make sure that I always focus on doing something that I love.

The second one is to enjoy the process and the journey that comes with doing what I love.

Basically, I want to grow old doing what I love, not feeling that I am working.

More specially what that means is: building solutions that solve problems (help people) and improve how things are being done (innovate).

What's that one thing for you?
What is the system supposed to do?
Tags: refactorit, productivity, codequality, product
Published: 2022-04-05 13:09:11

_In nearly every legacy system, what the system does is more important than what it is supposed to do._ [Working effectively with Legacy Code]

Let me describe you a real-life example.

Some time ago my team was struggling with a tricky issue. A typical situation without good solution. Imagine an application which allows users to freely modify layout settings, like color of the button background. Unfortunately, there was a bug in the system - instead of changing background color, the setting was changing the border color. 

The bug occurred a while ago, at least a couple of months, and users, whether consciously or not, got used to it in the meantime. So, when the issue was found and resolved, so that the setting started to change background color once more, many clients treated it as... a new bug.

How is that possible that a behavior, which works as it was originally intended, was perceived as an incorrect one?

Well, the incorrect behavior was occurring so long, that it became a new and desired system function. The baseline has changed. It is more important that over the last dozens of versions, the program worked in a non-intended way, despite the original specification. So, in this particular case, instead of changing the system behavior, it would be enough to change the name of the setting, e.g. background color to border color.

The key to understanding the situation is to focus on the phrase “was resolved”. What does it even mean? Is resolving an issue supposed to mean returning to the original intention of a designer, or is it about reflecting how a system actually behaves? So maybe it is about stabilizing, legitimizing or accepting rather than fighting?

What is the system supposed to do? That’s the most fundamental and the most difficult question while dealing with Legacy Code. It’s hard to find proper criteria for this evaluation. No matter what you have decided: communicate clearly with the users, keep backward compatibility and perform impact analysis. No one likes not to know what is happening, no one likes it when things brake without their fault, and everyone should be doing deterministic analysis of changes to prevent the previous two from happening.
Integrating Django framework with Matomo web analytics platform
Tags: django, matomo, analytics, python
Published: 2022-04-05 12:42:33


Recently I wanted to integrate a web application we are working on with Matomo analytics functionalities. Django web framework was used in this application on the backend side. It turned out that there was a package for integrating Matomo with Django -- injecting JavaScript via Django's template mechanism. However, this package was from 2013 (9yo), and it was written for `piwik` -- the former name of the Matomo.

So I decided to refresh the package and I created `django-matomo`. The module is available at `pip`, with:

```
pip install django-matomo
```

[PyPi website of the package](https://pypi.org/project/django-matomo/)

The source code is available at the [`django-matomo` GitHub repository](https://github.com/mikbuch/django-matomo)

I contacted the Matomo Team, and they agreed to update the official support for the integration for Django to `django-matomo`! It is now listed at their website: https://matomo.org/integrate/

There is also [a post I created on Django forums](https://forum.djangoproject.com/t/django-matomo-integrating-django-with-matomo-analytics/12890/2), if anyone have questions regarding the integration on the Django side.

---

Credits for the [`django-piwik`](https://github.com/jasjukaitis/django-piwik) (legacy package) goes to its creator Raphael Jasjukaitis.
Figure out a Guide to Understand How to Delete Cash App Account
Published: 2022-04-05 12:30:49

Could it be said that you are one of those Cash App clients why should looking stop utilizing the Cash App benefits and are looking for one more source to take care of your monetary necessities and prerequisites? For that, you need to initially bring the right data about [How To Delete Cash App Account](https://www.numbersforsupport.net/blog/can-i-access-a-deleted-cash-app-account/) as rapidly as could really be expected.
JavaScript Enthusiast & Technical Author David Walsh Interview
Tags: javascript, programming, beginners, productivity
Published: 2022-04-05 12:29:49

David Walsh is a well-known frontend developer experienced and interested in JavaScript, HTML/5, CSS, as well as PHP and Python. Like developers at Evrone, he focuses on open-source contributing and evangelism, as they open a world of possibilities and rewards for their hard-working developers. We couldn’t miss a chance to ask David a couple of important questions, and we hope you enjoy the interview below!

[The Interview](https://evrone.com/david-walsh-interview)
My first app on google play store
Tags: mobile, javascript, store, app
Published: 2022-04-05 12:20:37

Hello everyone, I finally managed to publish my first app on google play! 😍 It is nothing special but I have taken away a satisfaction!
If you give me a contribution by downloading it (it's free I don't earn anything) and putting a nice review, I would be grateful! 🙂
https://play.google.com/store/apps/details?id=io.kodular.caputoluca88.Shopping_List
Simple Design System(Buttons) - 01
Tags: css, html
Published: 2022-04-05 12:09:52

## What is a Design System?
A design system is simply a group of elements that are most commonly used by developers, this will help them consistency and good user experience while developing UI.

## What is this article about?
This is the first post of the series that I want to create, I picked the button component to start with.

## Tech Needed

- Install VS Code https://code.visualstudio.com/
- Install Live Server Plugin https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer
- Install Live SASS compiler https://marketplace.visualstudio.com/items?itemName=ritwickdey.live-sass


## Here is the video that explains how to start with a design system development:

[![Here is the video that covers Fundamentals of HTML](https://img.youtube.com/vi/XmOR2fnugxA/0.jpg)](https://www.youtube.com/watch?v=XmOR2fnugxA)

## Here is the video that talks about a secondary theme for the buttons:

[![Here is the video that covers Fundamentals of HTML](https://img.youtube.com/vi/uZ3yifuX1HM/0.jpg)](https://www.youtube.com/watch?v=uZ3yifuX1HM)
Deploy Live HLS stream
Published: 2022-04-05 12:05:03

Hi All,

I'm trying to figure what will be the best way to deploy Live HLS stream so the m3u8 file that concatenates all TS static files (on a CDN) will be updated every "Target duration" and let video player get the updated chunk list. 
TS files are already passed encoding and stored on a CDN with multiple bit rates, and a service is creating the m3u8 for - master + one for each resolution. 

What will be the best way to deploy it so it will handle a scalable amount of requests from across the globe?
While upgrading Spring boot to 2.5.12, the db migrator script is throwing a bootstrap related error. Suggestions please.
Tags: springboot, upgrade
Published: 2022-04-05 11:59:42

db-migrator                         | Exception in thread "main" java.lang.IllegalArgumentException: Cannot instantiate interface org.springframework.boot.BootstrapRegistryInitializer : org.springframework.cloud.bootstrap.TextEncryptorConfigBootstrapper
db-migrator                         | 	at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:456)
db-migrator                         | 	at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:438)
db-migrator                         | 	at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:431)
db-migrator                         | 	at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:261)
db-migrator                         | 	at org.springframework.boot.builder.SpringApplicationBuilder.createSpringApplication(SpringApplicationBuilder.java:129)
db-migrator                         | 	at org.springframework.boot.builder.SpringApplicationBuilder.<init>(SpringApplicationBuilder.java:102)
db-migrator                         | 	at org.springframework.boot.builder.SpringApplicationBuilder.<init>(SpringApplicationBuilder.java:98)
db-migrator                         | 	at com.phishme.dbmigrator.Main.main(Main.java:30)
db-migrator                         | Caused by: java.lang.IllegalArgumentException: class org.springframework.cloud.bootstrap.TextEncryptorConfigBootstrapper is not assignable to interface org.springframework.boot.BootstrapRegistryInitializer
db-migrator                         | 	at org.springframework.util.Assert.assignableCheckFailed(Assert.java:720)
db-migrator                         | 	at org.springframework.util.Assert.isAssignable(Assert.java:651)
db-migrator                         | 	at org.springframework.util.Assert.isAssignable(Assert.java:682)
db-migrator                         | 	at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:450)
db-migrator                         | 	... 7 more
db-migrator exited with code 1


I have tried including the following in the POM file:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

Also created bootstrap.properties and added the following:
spring.cloud.bootstrap.enabled=true
Created a vertical timeline component 😃
Tags: svelte, javascript, showdev
Published: 2022-04-05 11:46:10

---
title: Created a vertical timeline component 😃
published: true
description: I created a component library that provides a vertical timeline component
tags: svelte, javascript, showdev
cover_image: https://user-images.githubusercontent.com/32632542/161654928-d2d16ca2-ace5-48b7-bef4-e58d7e09109e.png
---

![image](https://user-images.githubusercontent.com/32632542/161654928-d2d16ca2-ace5-48b7-bef4-e58d7e09109e.png)

I created a svelte component library that provides a vertical timeline component😃😃

Any feed backs are appreciated😃.

Here are the demo site and the repo.

- [Demo site](https://svelte-vertical-timeline.vercel.app/)
- [Repo](https://github.com/K-Sato1995/svelte-vertical-timeline)
yo rush-conventionalcommits
Tags: conventionalcommits, node, rush, yeoman
Published: 2022-04-05 11:45:53

The yeoman generator, automatically deploying resources described in this series is currently published on [npm](https://www.npmjs.com/package/generator-rush-conventionalcommits). 

Instead of manually copying all the necessary files, configuring all the rush commands and autoinstallers and creating git-hooks, simply run: 
```bash
yo rush-conventionalcommits
``` 

And if you'd like to have a look under the hood, or use it as a basis for your own project, here's the [repo](https://github.com/kkazala/generator-rush-conventionalcommits).

EDIT 2022.04.07: Awesome! It's already listed by [Yeoman | Generators](https://yeoman.io/generators/) :smile:
Elixir Regex: How to put an underscore between a letter and a number?
Tags: elixir, parsing, programming, paugramming
Published: 2022-04-05 11:44:47

## Intro

Today I've been struggling on transforming a `camelCase word combined with a number` to become a `snake_case atom`

```elixir
"helloWorld30" -> :hello_world_30
```

I tried using `Macro.underscore/1` before and found out that I should not use it to manipulate strings to add underscore.

> ...Do not use it as a general mechanism for underscoring strings as it does not support Unicode or characters that are not valid in Elixir identifiers.

>_elixir docs_

That's why I used `Inflex: An Elixir library for handling word inflections` 

```elixir
iex) "helloWorld30" 
|> Inflex.underscore()

iex) "hello_world30"
```

## Someone Helped Me Please!

But still using `Inflex` alone cannot show the output that I want.

Luckily I asked to the community and thank God someone helped me. 

Shout out to `Karl Seguin` 🚀.

He come up on suggesting using `RegEx` module.

Here is the RegEx that he gave.

```elixir
iex) Regex.replace(~r/([A-Za-z])(\d)/, "Hello World9000", "\\1_\\2") 

iex) "Hello World_9000"
```

## My Own Version

With another version using `String` module.

```elixir

iex) "helloWorld30    
|> String.replace(~r/(\D)(\d)/, "\\1_\\2")

iex) "helloWorld_30"

```


## Overall output

To transform a camelCase word together with a number to become a snake_case atom:

```elixir
iex) "helloWorld30" 
|> Inflex.underscore() 
|> String.replace(~r/(\D)(\d)/, "\\1_\\2")
|> String.to_atom()


iex) "hello_world_30"
```

> Happy coding!