teleren/devto huggingface dataset:
What is CI/CD?
Published: 2022-12-10 11:49:12

CI stands for Continuous Integration, and it is a software engineering practice that involves merging all development work into a single codebase several times a day. This practice helps to ensure that all code changes are tested, and that the codebase remains in a releasable state at all times. 

Continuous Delivery is also a software engineering practice in which teams develop software products in short cycles. This makes it easier to release software at any time. The primary goal of continuous delivery is to build, test, and release software at the right speed and frequency. Allowing frequent updates in production helps reduce the cost, time, and risk of deploying changes.

CI/CD is a set of processes that enable developers to quickly incorporate changes into software applications and deploy them to staging or production environments. This is a key component of Agile software development as it ensures that changes are tested and released in a timely manner.

The CI/CD process begins with a development team writing code and committing it to a source code repository. Once the code is executed, it starts an automated process. This often involves running tests to check your code for errors. If the tests pass, the code is integrated into the main branch of the repository. This integration process is CI-centric and is typically automated using CI tools such as **Jenkins**, **CircleCI**, and **TravisCI** etc.

The next step in the CI/CD process is continuous delivery. During this phase, the code is deployed to a staging or production environment, depending on your business needs. The deployment process is automated and often managed by a CD pipeline.
New Magic Release
Tags: lowcode, productivity, product, showdev
Published: 2022-12-17 09:06:10

We have just released the largest change to Magic we have ever done. A brand new dashboard, UX and UI, in addition to hundreds of new features, such as [GitHub](https://github.com/) integration, DevOps and CI/CD, the ability to render static HTML directly from your backend cloudlet, etc, etc, etc.

In addition, we’ve also reduced the price from €49 per month to €6 per month. This implies that you can buy a Magic Cloudlet for the same price as you can buy the cheapest VPS droplet from [DigitalOcean](https://www.digitalocean.com/), with of course the difference being that a Magic Cloudlet does 80% of your job related to creating back office administration types of apps, and also a large portion of the job related to creating **any** app really.

{% embed https://www.youtube.com/watch?v=n8Y4sTrprqk %}

The dashboard has been completely rebuilt, with a much better flow. Below are some screenshots of how the new dashboard looks like.

![Aista Magic Dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qwxalffyo0mnjp7dhpd9.jpg)

Below is the new SQL Studio

![SQL Studio](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2i9tddih2npgugq7k12k.jpg)

Below is the new Hyper IDE

![Hyper IDE](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4h18qsn61v1jbl8243td.jpg)

To try out the new stuff, [go to hub](https://hub.aista.com/) to either register or login if you already have an account.
VueJS Computed Property
Tags: vue, beginners, javascript
Published: 2022-12-17 09:03:51

Suppose you have this list:

```vuejs
<template>
  <div>
    <h1>Avengers </h1>
    <ul>
      <li v-for="(hero, index) in heroes" :key="index"> 
       {{hero}}
      </li>
   </ul>
  </div>
</template>

<script>
export default {
  name: "App"
  data(){
    heroes: ["Ironman", "Capitan America", "Hulk", "Thor", "Black Widow"]
  }  
 
}
</script>
```

And then you wanted to add a search filter, so when you type in input field, it'll show matching heroes. 

```vuejs
<template>
  <div>
    <h1>Avengers </h1>
     <input type="text" placeholder="Search Heroes" />
    <ul>
      <li v-for="(hero, index) in heroes" :key="index"> 
       {{hero}}
      </li>
   </ul>
  </div>
</template>

<script>
export default {
  name: "App"
  data(){
    heroes: ["Ironman", "Capitan America", "Hulk", "Thor", "Black Widow"]
  }  
 
}
</script>
```

You can use **computed properties** for that.


### But What exactly are Computed Properties?


**Computed properties** enable you to create a property that can be used to modify, manipulate, and display data within your components in a readable and efficient manner.

Second thing is **computed properties are cached based on their dependencies** means it'll only re-evaluate when some of its dependencies changed. 

In code below, I have created a computed property `heroList` and have added `term` as a dependency, so when `term` is changed, heroList will be re-evaluated and rendered. 

That means, When you type in input field, it'll change `term` value and re-render the list. 

Type in input -> term value change -> heroList re-evaluated -> render heroList

```vuejs
<template>
  <div>
    <h1>Avengers </h1>
     <input type="text" placeholder="Search Hero's" v-model="term"/>
    <ul>
      <li v-for="(hero, index) in heroList" :key="index"> 
       {{hero}}
      </li>
   </ul>
  </div>
</template>

<script>
export default {
  name: "App"
  data(){
    heroes: ["Ironman", "Capitan America", "Hulk", "Thor", "Black Widow"],
   
    term : ""
  },
  
  computed: {
   // filtered list of heroes
   heroList(){
      return this.heroes.filter(hero => {
         return hero.indexOf(this.term) !== -1
      })
   }
 
  }  
 
}
</script>
```

Thanks for reading.
ISTQB 🧙🏻‍♀️The software testing Myth, do you need that?
Tags: softwaretesting, istqb, ctfl, testing
Published: 2022-12-17 08:52:22

To have or not to have ISTQB CTFL certification is always a **myth** to most of the software tester.

The main reason I guess is most software tester are very good at testing the software without realizing **“Testing” is only part of the whole software testing life cycle.**

Can’t denied that ISTQB is setting the **benchmark on the minimal requirement of a software tester need to have**, and I think ISTQB is more like **a standard for every software tester to have the same definition and understanding of the terminology of software testing, regardless of the person experience level or career background.**

For example, this could be achieve when every tester have the same definition, term acceptance criteria , and glossary that may be use to description the situation when finding a problem in the piece of software.

Hence, in my opinion, it’s always good to have ISTQB-Foundation Level Certification in your pocket. This could give you a very good head start in the software testing industry.

To know more about ISTQB, can check out this [link](https://www.istqb.org/)

❤️

Related Articles:
    [Cloud Computing , let’s talk about it [Part 2]](https://dev.to/alanliew88/cloud-computing-lets-talk-about-it-part-2-2mgj)
    [AWS ! the terms you must know 🤫](https://dev.to/alanliew88/aws-the-terms-you-must-know-2k8p)
❤️


Connect with me in [Linkedin](https://www.linkedin.com/in/alan-liew/) !
The Key to C
Tags: c, beginners
Published: 2022-12-01 04:35:34

## C for Beginners?
Let's be clear here: no matter the popularity, C is a difficult language for beginners. To truly understand C, beginners have to learn both about programming and hardware, two very deep and complex topics. 

In this article, I'll attempt to bridge the two.

### Some background: Types? What are they?

A type is simply a description of a variable. More precisely, a type describes what operations can be performed with the given data.

## The Key to C: Types are an Illusion

To truly understand C, one must view an entire program in terms of operations on interpretations of raw data. 

*Operations on interpretations of raw data? What does that mean?*

Let's break that down with an example: 

A `char` isn't just a single character, it's an interpretation of the data one byte holds. For example, this block of code is perfectly valid:

```
char x = '2';
char y = '2';

char z = x + y;
printf("%d\n", (int)z); // Outputs '100'
```

Again, `char` is just an interpretation of the data. Sure, most of the time, a `char` refers to an actual character, but the only guarantee C gives us is that a char is exactly one byte. 

In the example code, I performed an operation (addition) on raw data, even though the data is interpreted as characters. In ASCII, '2' is represented by the decimal number 50. 


*Viewing types as illusions simplifies all of the more difficult topics in C.*

Sure, you can view an `int` is a number, but then what is an `int*`? It points to a number? What does that even mean?

Or, you can view an `int` is a (typically) 4 byte block of memory on the stack, and an `int*` holds a number that is usually the address of a (typically) 4 byte block. 

Yes, it's a mouthful, but until this line of thinking becomes intuitive, it's important to break down components of a program in that manner to truly understand C.


If C hasn't clicked for you yet, try viewing your programs in the way I've described. You'll surprise yourself!
Kotlin Code Smell 12 - Ripple Effect
Tags: kotlin, codesmells, cleancode, programming
Published: 2022-12-17 09:18:40

---
title: Kotlin Code Smell 12 - Ripple Effect
published: true
date: 2022-12-17 08:30:42 UTC
tags: kotlin,codesmells,cleancode,programming
canonical_url: https://yonatankarp.com/kotlin-code-smell-12-ripple-effect
---

> **TL;DR:** If small changes have a significant impact, you need to decouple your system.

## Problems

* Coupling
    

## Solutions

* Decouple.
    
* Cover with tests.
    
* Refactor and isolate what is changing.
    
* Depend on interfaces.
    

## Examples

* Legacy Systems
    

## Sample Code

### Wrong

```kotlin
class Time(
    private val hour: Int,
    private val minute: Int,
    private val seconds: Int
) {
    fun now() {
        // call operating system  
    } 
}

// Adding a TimeZone will have a big Ripple Effect
// Changing now() to consider timezone will also bring the effect
```

### Right

```kotlin
// Removed now() since it is invalid without context
data class Time(
    private val hour: Int,
    private val minute: Int,
    private val seconds: Int,
    private val timezone: String
)

class RelativeClock(private val timezone: String) {
    fun now() {
        val localSystemTime = this.localSystemTime()
        val localSystemTimezone = this.localSystemTimezone()
        
        // Make some calculations to translate timezones...
        
        return Time(..., timezone)
    }
    
    // ...
}
```

## Conclusion

There are multiple strategies to deal with legacy and coupled systems. It is essential to address this problem before it becomes unmanageable.

---

Stay updated with my latest thoughts and ideas by registering for my [**newsletter**](https://yonatankarp.com/newsletter). Connect with me on [**LinkedIn**](https://www.linkedin.com/in/yonatankarp/) or [**Twitter**](https://twitter.com/yonatan_karp). Let's stay connected and keep the conversation going!

---

## More info

* [**How to Decouple a Legacy System**](https://maximilianocontieri.com/how-to-decouple-a-legacy-system)
    

## Credits

* [Code Smell 16 - Ripple Effect](https://maximilianocontieri.com/code-smell-16-ripple-effect) by @[Maxi Contieri⭐⭐⭐](@mcsee)
Difference between Kubernetes DeamonSet and Stateful Set
Tags: kubernetes, devops
Published: 2022-12-17 10:12:03

---
title: Difference between Kubernetes DeamonSet and Stateful Set
published: true
date: 2022-12-17 08:00:42 UTC
tags: Kubernetes, DevOps
canonical_url: 
---

Kubernetes is a powerful container orchestration platform that allows you to deploy and manage your applications at scale. One of the key features of Kubernetes is its ability to run different types of workloads, such as Deployments, ReplicaSets, and DaemonSets. In this article, we will take a closer look at two of these workloads, DaemonSets, and StatefulSets, and explore the key differences between them.

### What is DaemonSet?

First, let's define what a DaemonSet is. A DaemonSet is a type of Kubernetes workload that ensures that a specific pod runs on every node in the cluster. This can be useful for running pods that provide a cluster-wide service, such as a storage daemon or a logging agent. For example, you could use a DaemonSet to deploy a pod that runs the Elasticsearch search engine on every node in your cluster. This would allow you to use Elasticsearch for distributed search and analytics across your entire Kubernetes cluster.

### What is a StatefulSet?

A StatefulSet, on the other hand, is a type of Kubernetes workload that manages the deployment and scaling of a set of replicas of a stateful application. Unlike a DaemonSet, which runs a single pod on each node, a StatefulSet maintains a unique identity for each pod it manages and ensures that the pods are started and terminated in a specific order. This makes it suitable for running applications that require a unique identity and persistent storage, such as databases or message brokers.

For example, you could use a StatefulSet to deploy a distributed database, such as Apache Cassandra, on your Kubernetes cluster. Each Cassandra node in the cluster would be represented by a separate pod, and the StatefulSet would ensure that the nodes are started and terminated in the correct order to avoid data loss or other issues.

So, what are the key differences between DaemonSets and StatefulSets? Here are a few key points to consider:

- A DaemonSet runs a single pod on each node in the cluster, whereas a StatefulSet maintains a unique identity for each pod it manages.

- DaemonSets are designed to run background services that are required by the other containers in the cluster, such as logging and monitoring agents, while StatefulSets are used to run stateful applications that require stable and unique network identities and persistent storage.

- DaemonSets are used to run a copy of a specific container on every node in the cluster, while StatefulSets are used to run a specific number of identical containers that are assigned unique network identities and persistent storage.

Overall, the main differences between DaemonSets and StatefulSets are the way they manage and run containers, and the type of workloads they are designed to support.
Finished SCRIMBA beginner js course
Tags: scrimba, javascript
Published: 2022-12-17 07:46:18

It was about two weeks ago that I started the course. I didn't know how awesome and cool experience it is going to be. But thanks to Per Harald Borgen, the founder of Scrimba and the best educator, I am now equipped with the basics for learning and advancing my coding skills. I definitely recommend this course for every beginner trying to find their way. Ant it is free.
A compile error of await for in Dart
Tags: dart
Published: 2022-12-17 07:44:39

People love dart programming language because of its easy-to-use asynchronous feature. I definitely agree with it.

I came across the following error the other day. 


> The type 'Stream<String>' used in the 'for' loop must implement Iterable. (view docs)


My code snippest was :
```
void main() async {
  
  for(String v in countStream('a b c d')) { // *** compile error ***
    print(v);
  };
  
 }

Stream<String> countStream(String text) async* {
  var words = text.split(' ');
  for (int i = 0; i <= words.length; i++) {
    await Future.delayed(const Duration(milliseconds: 300));
    yield words.getRange(0, i).join(' ');
  }
}
```


You'll soon notice I forgot "await" before "for". But I couldn't figure out that. I went the wrong way.


The compiler requested Iterable, so I was wondering if Stream is Iterable and googled how to make Stream into Iterable. It was a wast of time.


In dart, "await for" is said to be ["Asynchronous For-in"](https://dart.dev/guides/language/specifications/DartLangSpec-v2.10.pdf#Asynchronous%20For-in) in the language specification. It is different from "for", which is used for asynchronous.


The compiler can't infer which feature a programmer intends to use, even thought one codes async*.
C++ga kirish
Tags: beggin, javascript, webdev, programming
Published: 2022-12-14 14:49:00


Biz  bugun `C++` darsida ishlashni organdik.`Replit.com `esa qanday foydalanishni bilib oldik unda kamentlarni kodlashni organib oldik.

```cpp
  /*cout << "Salom guruhdegilar\n";
 cout << "salom nima "<<end ;
  cout << "salom nima ";*/
    
  
```
_Replit.comdan  C++dan foydalanish_ 
`#include <iostream>` biz foydalanmoqchi bolgan kutubxonamiza.
`using namespace std;`bundan esa hadib `std::` `cout` ishlatmaslig ucun foydalandik.
`RUN`dan esa qanday qilib ekranga ciqarib olishnin bilib oldik.


Biz `c++dan` yana kop narsalarni o'rgandik.
`C++dan`  O'zgaruvchilar turlarni organdik
                
```cpp
adata tip nom=qiymat;

-------------Ozgaruvchilar turlari---------------
   int=>integer ya'ni faqat butun son saqlaydi;4byte  
  string=>faqat tekstlar saqlash ucun;4byte
  char=>faqat 1ta belgi saqlash ucun;1byte
 float=>faqat kasr son saqlash ucun;4byte
*/

 int yosh =17;
string ism =" Charos";

  cout<<" Salom"<<ism<<endl;
  cout<<"men"<<yosh<<" daman";
  return 0;
}

```cpp
 **C++ ** kopaytirish,qoshishni,ayirishni organdik  

```cpp
int main4(){
 int son,son1,son2;
  son1=10;
  son2=son1+20;
  son=son1+son2;
    
  cout<< son << endl; //40

  son=son*3;
  cout<< son<<endl;
  string ism,a,b,c;
  ism=" Charos";
  a="Salom";
  b=" Nima gap";

  cout <<a<<ism<<b<<endl;

  b="Qalaysan";
  cout<<b;
return 0;
```

```cpp
`int main6(){
int son;
cin >>son;
  
cout<< son<<"*"<<1<<"="<<son*1<<endl;  
cout<< son<<"*"<<2<<"="<<son*2<<endl;
cout<<son<<"*"<<3<<"="<<son*3<<endl; 
cout<<son<<"*"<<4<<"="<<son*4<<endl;
cout<<son<<"*"<<5<<"="<<son*5<<endl;
cout<<son<<"*"<<6<<"="<<son*6<<endl;
cout<<son<<"*"<<7<<"="<<son*7<<endl;
cout<<son<<"*"<<8<<"="<<son*8<<endl;
cout<<son<<"*"<<9<<"="<<`
```
**BU ko'paytirish**





@dawroun
What is AI and What is Not?
Tags: android, ios, startup, ai
Published: 2022-12-17 06:54:54

The terms "AI-powered" or "AI-technology" are frequently used to brand products on the market today. However, you should understand what AI is and is not before selecting such a solution for your company.

A technological advancement is said to be AI if it is able to observe, gather, and draw conclusions about information on its own (Artificial intelligence)

Simply expressed, artificial intelligence (AI) is the ability of technology to do tasks such as abstraction, logic, understanding, learning, planning, creativity, critical thinking, problem-solving, and others without the involvement of people.

What then, is not AI?

AI is not used to operate, decide, or control technologies that require human interaction. Such technology solely employs algorithms. Technology that isn't artificial intelligence (AI) can't learn from its mistakes or improvise.

To know more visit: http://bitly.ws/xSNh
Guide to naming good and unique Instagram for you 2023
Tags: storysaver, storysaverig
Published: 2022-12-17 06:54:19

The account name is always a matter of concern to many people, not only used to identify you with others, but the nickname also shows your personality. Many people really want to have a good Instagram name but don't know how to choose. Let's find out below!

In the following article, we will give you a few criteria to help you choose a good Instagram nickname and guide you how to change your IG name.

## Criteria for choosing a good IG name

Named after characteristics, personality and interests
Each individual will have different preferences and personalities, you can rely on this criterion to choose a name that is both good and reflects your personality and personality. Best of all, naming by personality traits will also help others easily distinguish you from other users of the same name. For example you are a book lover you can name it Lovebook or booklover…
**TIP:** You can view and download everything on Instagram with [StorySaverHD](https://storysaverhd.io/) web tool - [storiessaver for instagram](https://storysaverhd.io/)
**Named by date, month, year of birth**
This is one of the most popular naming methods today, from famous KOLS and KOCs to ordinary Instagram users can name their nick this way. Some IG nick names named by date can be mentioned as: 20day2month,...
**Name in English or change syllables**
There is a note I want to mention when naming IG nick in English, that is, you should choose popular names instead of long, difficult names because that will make it difficult for people to find you. In addition to that, you can name by syllable variation, for example John into JOJO...

**Named after the zodiac sign**
Zodiac sign is also an interesting criterion for you to name, you can use both English and Vietnamese names. The English zodiac names may not be as popular in Vietnamese, but when put together, they look more luxurious and quality. Try naming according to the zodiac combined with the date of birth, maybe you will find an extremely special name.
The above criteria are the most common criteria to help readers quickly find a good name on IG. There are many other naming methods that we cannot list them all here. Therefore, please refer to the list of the best IG names in 2022 below.

**Instructions on how to rename IG very detailed**

**Step 1:** Go to the Instagram application and select Personal page.
**Step 2:** Click Edit on the profile page.
**Step 3:** After clicking, the editing interface will appear, you just need to edit the name in the Name or Username section.
**Step 4:** Click Done to save.
**Goodbye**
So the sharing of good IG names comes to an end. Thank you for reading and do not forget to continue to accompany us in the next articles.
How to change the timestamp column's format in Laravel?
Tags: laravel, developme, php, programming
Published: 2022-12-17 06:51:20

If you want to compare the `timestamp` column value with today's date then first you need to change the format of the `date-time` value to the current date 

**For example - ** 

find today's date data from the database table compare on the field `created_at` which is the timestamp column type.

```
$query->where(name, $name)->where(DB::raw("(DATE_FORMAT(date_time,'%Y-%m-%d'))"), 
Carbon::now()->format('Y-m-d'));
```
Use `DATE_FORMAT` in `DB::raw` to convert the `timestamp` field into today's date and get data accordingly from the database.
150. Leetcode Solution in javascript
Tags: javascript
Published: 2022-12-17 06:43:50

```javascript
/**
 * @param {string[]} tokens
 * @return {number}
 */
var evalRPN = function(tokens) {
    var stack = [];
    for (var i = 0; i < tokens.length; i++) {
        var token = tokens[i];
        if (!isNaN(token)) {
            stack.push(token);
        } else {
            var num1 = stack.pop();
            var num2 = stack.pop();
            var result = getResult(num2, num1, token);
            stack.push(result);
        }
    }

    return Math.floor(parseInt(stack[stack.length - 1]));
};

var getResult = function(num1, num2, operator) {
    var a = parseInt(num1);
    var b = parseInt(num2);
    if (operator === '+') return a + b;
    if (operator === '-') return a - b;
    if (operator === '/') return a / b;
    if (operator === '*') return a * b;
};
```
#leetcode 
#challenge
Here is the link for the problem:
https://leetcode.com/problems/evaluate-reverse-polish-notation/