teleren/devto huggingface dataset:
Software Testing and the relevance of it
Published: 2023-12-19 16:28:08

## **What is Software Testing?**
Software testing is a crucial phase of Software Development Life Cycle (SDLC) process that involves evaluating a software application to identify defects or bugs.

**Why Software Testing?**
1. Early detection of bugs.
2. Quality Assurance purpose.
3. Cost effectiveness of software development and maintanence.
4. Risk mitigation.
5. Customer satisfaction.

**What do we need to know about Software Testing?**

There are many aspects that we need to be aware of software testing.

**Types of Testing:**

1. Manual Testing - Testers manually execute test cases without any automation tools.
2. Automation Testing - Testers use automation tools to execute test cases.

**Stages of Manual Testing:**
1. Unit Testing - Testing individual components or functions in a software.
2. Integration Testing - Focuses of testing interactions between different units or components to ensure they work seamlessly.
3. System Testing - Testing of the entire software functionality to asess whether it meets system requirements.
4. UI Testing - Tests the graphical user interface of software.
5. Acceptance Testing - Tests if the software meets user requirements and expectations.

**Types of Manual Testing:**
1. BlackBox Testing: Testing without knowledge of internal coding structure.
2. WhiteBox Testing: Testing with full knowledge of internal structure, code and logic of software.
3. GreyBox Testing: Combination of both blackbox and whitebox testing.

**What is the relevance of software testing?**
Software Testing is highly relevant and crucial in Software Development Life Cycle because it is these software testers that identify certain functionalities that have been missed out by even the skillest software developer, and by doing so, they correctly validate the information and thereby sign off the product to the market, ensuring that the software application is of high quality meeting the customer requirements. Therefore, software testers are prestigiously called as Quality Analysts.
Monads naturally arise from continuations
Tags: programming, javascript, functional
Published: 2023-12-19 16:28:01

---
title: Monads naturally arise from continuations
published: true
description: 
tags: programming, javascript, functional
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2023-12-19 15:58 +0000
---

A function `const id = x => x` becomes a continuation passing style function in Javascript as soon as you add a function argument and call it with the result value in tail position: `const id_ = x => k => k(x)`. The actual continuation emerges when you apply the CPS function: `id_(2)` yields `const id2 = k => k(2)`, the continuation.

You can compose normal functions with `const comp = f => g => x => f(g(x))` and then `comp(id) (id)`. But can you compose continuations like `id2` as well?

```javascript
// doesn't work, cont2 returns a value but cont expects a fun
const comp_ = cont => cont2 => k => cont(cont2(k));

// works but x is awkwardly discarded
const comp_ = cont => cont2 => k => cont2(x => cont(y => k(y));
```

Unfortunately, no. There is no specialized `comp_` operator for `id2` to compose two continuations in a general way. But there is a way to compose the CPS version `id_` with its continuation `id2`:

```javascript
const comp_ = cont => cps => k => cont(x => cps(x) (k));
const f = comp_(id2) (id_);
f(id); // yields 2 since we are only composing identity
```
`comp_` a.k.a. `chain`/`bind` is one part of the monad interface. The second one is `const of = x => k => k(x)`, which simply puts a normal value into the monad context:

```javascript
const chain = cont => cps => k => cont(x => cps(x) (k));
const of = x => k => k(x);
const f = chain(of(3)) (id_);
f(id); // yields 3
```
So not just the continuation monad but monads of all types are just the most general way to compose/chain expressions of those types using continuations under the hood. Please note that monads are a very generalized and thus subtle concept. Stare at it long enough, play with it once in a while and you'll eventually get it.
Task-1 Manual Testing
Published: 2023-12-19 16:25:39

1.What are different types of Testing?

- Unit Testing
- Integration Testing
- System Testing
- Acceptance Testing
- Smoke Testing
- Regression Testing
- Performance Testing
- Security Testing
- User Acceptance Testing

2.What are different STLC phases?

- Planning 
- Analysis
- Design
- Environment Setup
- Execution
- Closure
- Defect Retesting

3.As an manual tester, what qualities do you possess? Provide examples to illustrate your points.

- Analytical Skills
- Creative thinking
- Monitoring errors

4.What is the difference between Waterfall and Agile methodologies in SDLC?

Waterfall methodologies - Easy to track progress, identify risks, and manage project budgets.
Agile methodologies - Long delivery timeline, slow time to market.
What the hell is IaaS, PaaS, FaaS, and SaaS?
Tags: cloud, services, cloudcomputing, kubernetes
Published: 2023-12-19 16:17:12

I will directly get to the point. (I am a good samaritan 😉)

IaaS (Infrastructure as a Service): It refers to a cloud computing model where the fundamental infrastructure resources, such as servers, storage, and networking, are provided as a service. With IaaS, users have control over their operating systems and applications, while the cloud provider manages the underlying infrastructure.

PaaS (Platform as a Service): PaaS is a cloud computing model that provides a platform for developing, running, and managing applications. It offers a complete development environment, including operating systems, programming languages, libraries, and tools. PaaS abstracts the underlying infrastructure, enabling developers to focus on application development rather than managing hardware or software infrastructure.

FaaS (Function as a Service): FaaS is a cloud computing model where developers can execute functions or code snippets without the need to manage the underlying infrastructure. Developers can write and deploy individual functions that are triggered by events or requests. FaaS abstracts away the server management aspects, allowing developers to focus solely on writing the code for specific functions.

SaaS (Software as a Service): SaaS is a cloud computing model where software applications are delivered over the internet as a service. Users can access and use the software through a web browser or a thin client, without the need for installation or local hardware resources. SaaS providers handle all aspects of software maintenance and infrastructure management.

Please enlarge and take a look



![IaasPaasFaasSaas](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bchmqg3atcn1xg2zk77q.png)

In short:

> IaaS provides infrastructure resources as a service.
> PaaS offers a platform for application development and deployment.
> FaaS allows developers to execute functions without managing infrastructure.
> SaaS delivers software applications over the internet as a service.
Master emmet and you'll be a great developer
Tags: vscode, productivity, codenewbie, html
Published: 2023-12-19 16:14:59

# Introduction
Why use emmet ? Simple, it is the most useful tool you can ever find. Its function ? Simplify your life with fast, efficient and very very useful commands.

I've been using emmet for 3 years now and it's really simpler.

---
1. Installation
2. Syntax
3. Links and doc

---

## Installation
If you're on VScode or JetBrains, it is already installed.

But if it is not, click [here](https://emmet.io/)
## Syntax
Here we are! The fun part. Using emmet is really simple, it uses abbreviation and autocomplete.

For example, if you write this :
```
div>a*3
```
It should output this :
``` HTML
<div>
  <a href=""></a>
  <a href=""></a>
  <a href=""></a>
</div>
```
You see? Emmet automatically setup three a inside of a div, by using > and *3.

There's a lot of rules like that but the most used are:

- add children : >
- add sibling : +
- set the number of element : *Number
- set the class : .
- set the id : #
- insert content : {Content}
- use auto-number : $

With this list you should be ready to use emmet but you don't have all the keys.

The exact syntax is : `element[#id or .class][{Content}][*Number][>children or +sibling]`
This is how it works, but with some exemple you'll clearly understand don't panic.
---
Let's try some lines
First what should looks like this line ?
```
div.container>a.item#button{item $}*3
``` 
it supposes to output this:

``` HTML
<div class="container">
  <a class="item" id="button">item 1</a>
  <a class="item" id="button">item 2</a>
  <a class="item" id="button">item 3</a>
</div>
```
Then this one ?
```
.container>p{Hello world}+a.button{Read more}
```
If you writted this correctly, you should see this:
```
<div class="container">
  <p>Hello world</p>
  <a href="" class="button">Read more</a>
</div>
```
You see? We started with a class and it automatically add a `<div>`. It is the power of emmet.

With emmet you also have the autocomplete, you just have to write `img` and it'll be `<img src="" alt="">`. What a super power huh?

---
## Links and doc
[emmet documentation](https://docs.emmet.io/)
[emmet installation](https://emmet.io/)

---
_Thank you very much for reading this article, made with love and coffee. <3_
New Jacket Brand in the Town.
Tags: jackets
Published: 2023-12-19 16:03:28

[Pelle Pelle Shop](https://pellepelle.shop/) is a company that takes care of the audience who likes to wear chic and rocky-style jackets. We have been working in this industry for the past 10 years and until now all of our jackets are made with premium quality products and stitched to perfection by our in-house tailors who will make sure that you get the perfect fitting of the jacket.
เว็บตรงเบทฟิก
Tags: betflik
Published: 2023-12-19 15:56:55

[เบทฟิก](https://betflix.fan/) เราคือเว็บไซต์รวมสล็อต เว็บตรงเบทฟิก ที่มีความตั้งใจจะเป็นอันดับ 1 ในการให้บริการด้านความบันเทิงออนไลน์ มีพนักงานผ่านการฝึกฝนให้ได้มาตรฐาน มีการเงินที่มั่นคง มีระบบที่รวดเร็ว ปลอดภัย นึกถึงเบทฟลิกเมื่อไหร่ ขอให้นึกถึงเรา
Betflik online in thailand
Tags: betflik
Published: 2023-12-19 15:46:18

[BETFLIK](https://betflik.wtf/) เป็นที่นิยมอย่างมากในปัจจุบัน “เบทฟิก” หนึ่งในเว็บที่ตอบสนองความต้องการผู้เล่นได้ดีที่สุดมีเกมส์ทุกรูปแบบครบวงจร โดยเฉพาะ สล็อต, คาสิโน, ยิงปลา, รูเล็ต, ไฮโล, โป๊กเกอร์ ให้เลือกเล่นมากกว่า 1,600 เกมส์ ที่สำคัญทางเว็บไซต์มีระบบฝากถอนไม่ต้องโยกเครดิต ทันสมัยที่สุดในเอเชีย ภาพ แสง สี เสียง ดูอลังการงานสร้าง คุณสามารถหลุดเข้าไปโลกแฟนตาซีกับ เบทฟลิก ได้กับ WTF

แจกโบนัสสูงถึง 50% รับได้ทั้งสมาชิกใหม่และสมาชิกเก่า ได้เครดิตฟรีทุกวัน 10% คิดคำนวณจากยอดฝาก สูงสุด 300 บาท นำเครดิตฟรีไปทดลองเล่นเกมออนไลน์กับเบทฟิกของเราได้ตลอด 24 ชั่วโมง บริการด้วยใจ ดูแลอย่างทั่วถึง
dbForge Studio for Oracle
Tags: oracle, dbforge, devart
Published: 2023-12-19 15:43:27

Looking to simplify your Oracle development and management workflow? dbForge Studio is a powerful and intuitive integrated development environment (IDE) for Oracle that offers advanced tools to assist you in migrating and managing databases, all inside of a user-friendly GUI.

If you’re new to Oracle database management, or you’ve been using Oracle SQL Developer, dbForge Studio offers an all-in-one toolkit with added features like smart PL/SQL coding with code completion, SQL query tuning, data export/import, and much more. Here’s what you need to know.

What is dbForge Studio?

dbForge Studio provides a front-end client that simplifies the process of designing database structures, executing queries, and managing data. Using dbForge Studio for Oracle, you can boost your PL/SQL coding speed, migrate with ease, and automate daily maintenance tasks.

Among other features, dbForge Studio’s user-friendly visual interface can help you:
- Write and format code on the fly
- Debug procedures, functions, and triggers
- Design Oracle schema objects visually
- Build queries in a few clicks
- Create and edit database objects
- Migrate schemas and data between databases
- Design advanced data reports, charts, and pivot tables

Explore these features in greater detail here - https://www.techmagazines.net/dbforge-studio-for-oracle/
local Area Networking
Published: 2023-12-19 15:41:18

**We will start by Defining what a local area network (LAN)
is all about.**

A local area network (LAN) is a collection of devices connected together in one physical location, such as a building, office, or home. A LAN can be small or large, ranging from a home network with one user to an enterprise network with thousands of users and devices in an office or school.

## TYPES OF LOCAL AREA NETWORK
1. Client-server LAN
2. Peer to peer LAN
3. Token ring LAN
4. Wired LAN
5. Wireless LAN
6. Cloud manage LAN


1. **Client-server LAN**
    This type of Local area communicate at the same time in a 
    network whereby the server provide Data to the client system.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s4ili2d6fwwixc3llw5y.png)


2. **Peer to peer LAN**
    In this type of networking there is no Central server all the 
    connected system share there resource together.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yzj19vmhqip3aoautz6d.png)
3. **Token ring LAN**
    In the Token ring LAN all devices are connected in a ring 
    form. A token is Assigned to all Devices based on their 
    requirement. This was introduced by IBM in 1984.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vj9d60sr0gqhcn65hxap.png)

4. **Wired LAN**
    Wired LAN is the most common LAN it uses a medium to transmit 
    to each device connected to it, such medium include (Fiber 
    optics, Coaxial cable, copper cable(Shielded twisted pair and 
    Unshielded twisted pair)
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fucp4ewzkov78uk572y3.png)

5. **Wireless LAN**
    Wireless LAN is just like the wired LAN the difference is the 
    medium of communication it uses wireless device such as 
    wireless router, access point, wireless repeater for it 
    communication.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wpnu0ufxz6udmur3qv6f.jpg)


6. **Cloud managed LAN**
    Cloud managed LAN is a type of LAN where a dedicated cloud 
    platform is used to managed all the devices.
    This is what all organization are keying into currently, and 
    this is the future of networking we have many Cloud providers 
    like AWS, Azure, Oracle cloud service, Alibaba cloud, Goggle 
    cloud.
   
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3rlrxf2lvag53pr0ydgv.png)
    



## NETWORK TOPOLOGY

1. Star Topology
2. Bus Topology
3. Ring Topology
4. Tree Topology
Transform Your Business with Our Austin App Development Services
Published: 2023-12-19 15:34:15

Explore the [best Mobile app development services](https://www.technbrains.com/locations/mobile-app-development-austin) in Austin, TX with TechnBrains. Our award-winning team is ready to elevate your business success through cutting-edge mobile solutions. Don't miss out – boost your brand with our top-tier app development expertise.
Snap Fitness Franchise
Published: 2023-12-19 15:31:42

Be part of the growing global health and wellness market and own a gym franchise with Snap Fitness. We are a globally established and recognized brand with 20 years of experience, offering a complete support structure for franchisees from sourcing the right locations through to operating profit making gyms. Our mission is to help our members create positive lifestyle habits that make them feel fantastic. It’s all about the feeling!
Python - Kruskal's Algorithm for Minimum Spanning Trees
Tags: python, algorithms, programming, tutorial
Published: 2023-12-19 15:30:00

Kruskal's algorithm is a widely used technique for finding the Minimum Spanning Tree (MST) of a connected, undirected graph. MST is a subgraph that includes all vertices of the original graph with the minimum possible sum of edge weights. Kruskal's algorithm is efficient and works well for sparse graphs. Here's an example:

**Example - Finding Minimum Spanning Tree with Kruskal's Algorithm in Python:**

```python
class Graph:
    def __init__(self, vertices):
        self.V = vertices
        self.graph = []

    def add_edge(self, u, v, w):
        self.graph.append([u, v, w])

    def kruskal_mst(self):
        def find(parent, i):
            if parent[i] == i:
                return i
            return find(parent, parent[i])

        def union(parent, rank, x, y):
            x_root = find(parent, x)
            y_root = find(parent, y)

            if rank[x_root] < rank[y_root]:
                parent[x_root] = y_root
            elif rank[x_root] > rank[y_root]:
                parent[y_root] = x_root
            else:
                parent[y_root] = x_root
                rank[x_root] += 1

        result = []
        i = 0
        e = 0

        self.graph = sorted(self.graph, key=lambda item: item[2])
        parent = [i for i in range(self.V)]
        rank = [0] * self.V

        while e < self.V - 1:
            u, v, w = self.graph[i]
            i += 1
            x = find(parent, u)
            y = find(parent, v)

            if x != y:
                e += 1
                result.append([u, v, w])
                union(parent, rank, x, y)

        return result

# Example usage:
g = Graph(4)
g.add_edge(0, 1, 10)
g.add_edge(0, 2, 6)
g.add_edge(0, 3, 5)
g.add_edge(1, 3, 15)
g.add_edge(2, 3, 4)

mst = g.kruskal_mst()
for u, v, weight in mst:
    print(f"Edge: {u} - {v}, Weight: {weight}")
```

In this example, we use Kruskal's algorithm to find the Minimum Spanning Tree of a graph represented by an adjacency list. The algorithm starts with an empty MST and iteratively adds the smallest available edges while ensuring that no cycles are formed.

Kruskal's algorithm is valuable for optimizing network design, cluster analysis, and various applications involving connected graphs. It provides an efficient way to find the minimum spanning tree in a graph.
ESLint Extension for VS Code - Error Detection and Fixing
Tags: tools, vscode
Published: 2023-12-19 15:29:57

## Find and Fix Errors Easily with the ESLint VS Code Extension!

Are you tired of spending countless hours searching for errors in your code? As a web developer, I understand the frustration that comes with hunting down problems. Everything gets easier with the ESLint VS Code extension, a tool that simplifies error detection and fixing in modern web development. 🚀

For a more in-depth exploration of why you should use ESLint, check out this other blog post [The Pros and Cons of Using ESLint for Web Development](https://www.franciscomoretti.com/blog/the-pros-and-cons-of-using-eslint). 📚

## Installation

Follow one of these options to install it.

*   Search for `dbaeumer.vscode-eslint` in VS Code Extensions panel and hit install.
*   [Install via the Visual Studio Code Marketplace →](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint).

**Note:** To ensure that the Eslit VS Code extension works properly, make sure that you have ESLint installed and a ESLint config file named `.eslintrc` in your workspace.

## Benefits of the ESLint VS Code Extension

Now that you have the ESLint VS Code extension up and running, let's explore its incredible benefits:

### 1. Enhanced Error Detection

The extension seamlessly integrates ESLint, a popular JavaScript linter, into VS Code. With ESLint, you can catch potential errors, maintain code quality, and enforce coding standards. This provides a seamless integration for detecting and highlighting errors! 🔍

### 2. Automatic Code Fixes

Still manually fixing each error one by one? The ESLint VS Code extension offers automatic code fixes for many kinds of issues. It finds problems in your code and suggests quick fixes, saving you time and effort. Let the extension handle the tedious work while you focus on coding amazing web applications. 💪

## Conclusion

The ESLint VS Code extension is another great tool to have for modern web development. It empowers you to find and fix errors efficiently, improving the quality of your code and your development experience. Install the ESLint VS Code extension today and unlock a new level of productivity. Happy coding! 💻✨
Need rubyists help in RSpec Framework
Tags: discuss, ruby, rails, testing
Published: 2023-12-19 15:22:42

Recently I made a TDD for my project `rails_todo_api` it is a API only application with devise for user authentication and RSpec framework for testing. I'm new to testing and rspec. Here is my github repo: [https://github.com/iak97/rails_todo_api](https://github.com/iak97/rails_todo_api).

I need a code review and feedback about it. What improvements and fixes I need to make to better the code. Thanks in advance!
TS: Type Record<K, T>
Published: 2023-12-19 14:38:15

**Record** type is an advanced type of TS. Let's see its definition first:

> Record<Keys, Type> constructs an object type whose property keys are Keys and whose property values are Type. This utility can be used to map the properties of a type to another type.

## Flexiable keys


It is usually used when require a dictionary-like object. For example:

```
const records: Record<number, string> = {
    1: 'a',
    2: 'b'
}
```
This is a very simple but useful usage scenario. Its _property keys_ are number and its _property values_ are string. In this scenario, records don't have fixed number of member, it's extenable, you can add as much number-string pair as you like:

```
const pair: Record<number, string> = {
    1: 'a',
    2: 'b',
    3: 'c',
    ....
    99: 'X'
}

```
No error would be report , of course.

## Fixed keys


While the number of keys of **Record** type can also be strict, let demostrate it by create a type "**gameName**" and an interface "**comment**", then combine them to serve a **Record** type:

```
type gameName = 'Sekiro' | 'Cyberpunk2077' | 'GTA'
interface comment {
  hours: number,
  review: 'good' | 'bad'
}
  
const game: Record<name, comment> = {}
```
In this moment, if you code it in a qulified IDE, it will report an error on variable game saying: 

> Type '{}' is missing the following properties from type 'Record<gameName, comment>': Sekiro, Cyberpunk2077, GTA

Which shows that the keys of **Record** type game is **_No more, no less, no deviation_**

Let's complete the missing property

```
const game: Record<gameName, comment> = {
    'Sekiro': {
        hours: 200,
        review: 'good'
    },
    'Cyberpunk2077': {
        hours: 30,
        review: 'bad'
    },
    'GTA': {
        hours: 500,
        review: 'good'
    }
  }
```
Now everything is perfect, but if we try to add an extra property "Metro":

```
const game: Record<gameName, comment> = {
    'Sekiro': {
        hours: 200,
        review: 'good'
    },
    'Cyberpunk2077': {
        hours: 30,
        review: 'bad'
    },
    'GTA': {
        hours: 500,
        review: 'good'
    },
    'Metro': {
        hours: 100,
        review: 'good'
    }
  }
```
Record will immediately yell out:

> Object literal may only specify known properties, and ''Metro'' does not exist in type 'Record<gameName, comment>'.

## Source code

Here is the source code of **Record** type

```
/**
 * Construct a type with a set of properties K of type T
 */
type Record<K extends keyof any, T> = {
    [P in K]: T;
};
```
That is, each attribute in K ([P in K]) is converted to type T.
Aqua Prowash
Published: 2023-12-19 15:18:20

Aqua ProWash is locally owned and operated in Medina, Ohio. Providing professional results for your home and business. We take pride in restoring and protecting one of your biggest assets! Using top of the line equipment to clean and preserve your siding, driveways, roofs and more. We promise to deliver the best  results for your property in a safe and effective way.

[Roof Washing](https://www.aquaprowashing.com/)


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ewmzws4fxorvuox96ad.jpg)