teleren/devto huggingface dataset:
Javascript - Handling reject in a Promise
Tags: javascript, promise, reject, asyncronous
Published: 2023-11-01 03:46:57

To demonstrate that reject does not halt processing I wrote this trivial example.

```js
function wait(seconds) {
    return new Promise((resolve, reject) => {
        if (seconds == null || seconds == 5) {
            console.log('Before reject');
            reject('Please supply number not equal to 5');
            console.log('After reject');
        }
        setTimeout(() => {
            resolve('Done');
        }, seconds * 1000);
    });
}
```

It's a function that returns a Promise.
If the seconds specified is 5, then the expected behavior is to reject and **not wait**.
Any other value, I expect it to wait the specified time.

This is how I call my function:
```js
wait(seconds)
    .then(() => {
        console.log('Successfully completed test');
    })
    .catch((error) => {
        console.error('Error in test', error);
    });
```

Here is my output when running the function:

###Test 1
With a value of seconds = 7
The wait function behaves as expected. It waits 7 seconds and resolves. 
```txt
Successfully completed test
```

###Test 2
With a value of seconds = 5
The wait function does not behave as expected. It waited 5 seconds!
```txt
Before reject
After reject
Error in test Please supply number not equal to 5
```

I didn't expect the "After reject" and I didn't expect it to wait the 5 seconds.
To correct this add a return statement after the reject.

```js
function wait(seconds) {
    return new Promise((resolve, reject) => {
        if (seconds == null || seconds == 5) {
            reject('Please supply number not equal to 5');
            return; // Do not continue
        }
        setTimeout(() => {
            resolve('Done');
        }, seconds * 1000);
    });
}
```

Now re-executing test 2 above produces:
```txt
Error in test Please supply number not equal to 5
```
And there was no wait which is the expected behavior.

Read more about Promises here: https://www.freecodecamp.org/news/javascript-es6-promises-for-beginners-resolve-reject-and-chaining-explained/
ScanPay vs. Stripe: 开源支付解决方案与行业领先者的综合对比
Published: 2023-11-01 03:33:36

GitHub 代码库: [ScanPay](https://github.com/BlockATMOnLine/ScanPay)

在支付领域，开源项目ScanPay崭露头角，为商户提供多样化的加密货币代收代付功能，包括USDT-TRC20、USDT-ERC20等。本文将ScanPay与行业领先者Stripe进行全面对比，以帮助您更好地了解它们的各项功能。

## **1. 开源性质:**

- **ScanPay:** 作为一款开源解决方案，ScanPay提供了透明度和灵活性，使得开发者能够自由贡献并形成一个协作社区。
- **Stripe:** Stripe是一款专有平台，限制用户对核心功能的修改和贡献。

## **2. 加密货币支持:**

- **ScanPay:** ScanPay以其全面的加密货币支持，包括USDT-TRC20和USDT-ERC20等，成为处理多种数字资产的理想选择。
- **Stripe:** Stripe主要处理传统法定货币，对于加密货币的直接支持有限。

## **3. 集成的简易性:**

- **ScanPay:** ScanPay通过开放且详细记录的代码库，为商户提供了轻松集成到现有系统的便利性，可根据需要进行定制。
- **Stripe:** Stripe以其开发人员友好的API和广泛的文档而著称，实现了与网站和应用程序的无缝集成。

## **4. 社区支持:**

- **ScanPay:** 由于是开源的，ScanPay受益于全球开发者的社区支持，可以共同贡献、报告问题并分享见解。
- **Stripe:** Stripe拥有庞大的用户群体，但由于其专有性质，社区贡献受到一定限制。

## **5. 安全措施:**

- **ScanPay:** 安全是ScanPay的首要任务，商户可以根据其独特需求审查和加强安全措施。
- **Stripe:** 作为广泛采用的支付解决方案，Stripe遵循着行业安全标准。然而，用户对于平台的安全协议控制有限。

## **6. 交易费用:**

- **ScanPay:** 作为开源软件，ScanPay不直接收取交易费用，但用户可能需要支付与加密货币交易相关的网络费用。
- **Stripe:** Stripe采用透明的费用结构，按每笔交易的百分比收费。费用会根据地区和支付方式而有所不同。

## **结论:**

在支付解决方案领域，ScanPay和Stripe各具特色。ScanPay以其开源性质和对加密货币的全面支持，适用于处理数字资产的业务。而Stripe凭借其用户友好界面和庞大的用户社区成为传统支付处理的可靠选择。

[探索ScanPay在GitHub上](https://github.com/BlockATMOnLine/ScanPay)

[了解Stripe在官方网站上](https://stripe.com/)

根据您的业务目标和技术需求，选择适合您的解决方案。
Sửa máy lạnh quận 9 - TPHCM - Điện Lạnh Quản Lý Việt Nam
Published: 2023-11-01 03:19:20

Giới thiệu

Máy lạnh là một thiết bị quan trọng trong cuộc sống hàng ngày của chúng ta, đặc biệt là trong những ngày nóng oi bức. Tuy nhiên, máy lạnh cũng có thể gặp phải một số vấn đề kỹ thuật, gây khó khăn cho chúng ta. Trong bài viết này, chúng ta sẽ tìm hiểu về [dịch vụ sửa máy lạnh quận 9](https://dienlanhquanly.vn/dich-vu-sua-may-lanh-quan-9/) - TPHCM do Điện Lạnh Quản Lý cung cấp, nhằm giúp bạn giải quyết các vấn đề liên quan đến máy lạnh của mình một cách chuyên nghiệp.

I. Sửa máy lạnh hỏng board

Một vấn đề phổ biến mà chúng ta thường gặp phải đó là máy lạnh hỏng board. Board máy lạnh là linh kiện quan trọng, có nhiệm vụ điều khiển các chức năng của máy lạnh. Khi board gặp sự cố, máy lạnh có thể không hoạt động đúng cách hoặc ngừng hoạt động hoàn toàn.

Để sửa máy lạnh hỏng board, chúng tôi của Điện Lạnh Quản Lý có đội ngũ kỹ thuật viên giàu kinh nghiệm, đảm bảo sẽ kiểm tra và xử lý sự cố một cách nhanh chóng và hiệu quả. Chúng tôi sẽ đảm bảo rằng máy lạnh của bạn sẽ hoạt động trở lại một cách ổn định sau khi sửa chữa.

II. Sửa máy lạnh chảy nước

Một vấn đề khác thường gặp là máy lạnh chảy nước. Nếu bạn thấy máy lạnh của mình chảy nước, điều này có thể gây ra hư hỏng cho nội thất hoặc gây nguy hiểm cho điện năng. Nguyên nhân chảy nước có thể bao gồm đường ống nước bị tắc, quá tải hoặc hư hỏng bơm nước.

Để khắc phục tình trạng này, Điện Lạnh Quản Lý sẽ kiểm tra và xác định nguyên nhân gây chảy nước. Đội ngũ kỹ thuật viên của chúng tôi sẽ thực hiện công việc vệ sinh và sửa chữa để đảm bảo rằng máy lạnh của bạn không còn chảy nước và hoạt động tốt như mới.

III. Sửa máy lạnh xì gas

Một vấn đề khác liên quan đến máy lạnh là xì gas. Khi máy lạnh xì gas, nó sẽ không làm mát không gian như mong muốn và tiêu tốn nhiều năng lượng hơn. Nguyên nhân gây ra tình trạng này có thể là do rò rỉ gas hoặc hệ thống làm lạnh bị hư hỏng.

Để khắc phục tình trạng máy lạnh xì gas, Điện Lạnh Quản Lý sẽ kiểm tra và xác định nguyên nhân gây ra sự cố. Chúng tôi sẽ sửa chữa và bơm gas mới vào hệ thống để đảm bảo máy lạnh của bạn hoạt động hiệu quả và tiết kiệm năng lượng.


IV. Vệ sinh máy lạnh

Cuối cùng, một yếu tố quan trọng trong việc duy trì hoạt động ổn định của máy lạnh là vệ sinh định kỳ. Máy lạnh bị bám bụi và bẩn có thể làm giảm hiệu suất làm lạnh và làm tăng nguy cơ hỏng hóc.

Điện Lạnh Quản Lý cung cấp dịch vụ vệ sinh máy lạnh chuyên nghiệp để đảm bảo rằng máy lạnh của bạn được làm sạch và hoạt động tốt như mới. Chúng tôi sẽ loại bỏ bụi bẩn, vệ sinh bộ lọc và làm sạch các bộ phận quan trọng khác của máy lạnh.
Sửa máy lạnh Tân Bình 

Kết luận

Trên đây là một số vấn đề thường gặp liên quan đến máy lạnh và dịch vụ sửa máy lạnh quận 9 - TPHCM do Điện Lạnh Quản Lý cung cấp. Với đội ngũ kỹ thuật viên giàu kinh nghiệm và chuyên nghiệp, chúng tôi cam kết sẽ cung cấp cho bạn những giải pháp tốt nhất để giải quyết các vấn đề liên quan đến máy lạnh của bạn. Hãy liên hệ với chúng tôi ngay hôm nay để được tư vấn và hỗ trợ!
高防服务器是什么？
Published: 2023-11-01 02:29:00

在租用高防服务器的过程中，我们经常会看到这两个名词：单机防御和集群防御。 这两个名词通俗易懂，但是在理解的过程中，有些朋友对它们有一些误解。 今天就跟着小编一起来了解一下高防服务器中的单机防御和集群防御。
在租用高防服务器的过程中，会标注单机防御或集群防御。

Anti-DDoS Pro服务器单机防御是什么意思？ Anti-DDoS Pro服务器防御分为单机防御和集群防御两种。  

单机防御：为一台服务器提供相应的防御能力。 比如你选择的服务器防御配置是100G单机防御。 只要遇到的攻击不超过100G，服务器仍然可以正常运行。

集群防御：单个防火墙保护多台服务器。 一旦遇到攻击，并且攻击值超过集群防御的最大范围，不仅会有一台服务器崩溃，而且集群中的所有服务器都会崩溃。 比如集群防御是100G，保护300台服务器。 如果300台服务器中剩下的299台没有被攻击，被攻击的服务器可以防御100G的攻击。 但是，如果所有服务器的总攻击量超过100G，集群下的所有服务器都会受到影响。

服务器防御100G是什么意思？

1.集群防御值为100G，保护100台服务器。 如果这100台机器都没有被攻击，而你的服务器被攻击，那么你的服务器可以防御100G攻击； 如果其他服务器被90G攻击，如果再有10G攻击，那么所有被攻击的服务器都会挂掉。

2、单机防御值100G，只保护一台服务器。 如果单机硬防御是100G，那么只要攻击不超过100G，就可以拦截。 选择服务器配置时，一定要询问IDC服务商防御是集群保护还是单机保护。 许多服务提供商在玩文字游戏时没有指定是集群保护还是单机保护。 有的集群保护是100G，真正的防御。 此能力类似于 10G 单机保护能力。 友情提示：高防御服务器的防御成本非常高。
Estudos poliglotas: Compartilhe conhecimento, aprenda mais!
Tags: polyglotstudies, tecnologiadainformação, desenvolvimentodesistemas
Published: 2023-11-01 02:20:22

A área de [desenvolvimento de sistemas](https://dev.to/alexjesustech/o-que-e-desenvolvimento-de-sistemas-32o9) está em constante evolução, com novas tecnologias surgindo a todo momento. Isso pode ser desafiador para iniciantes, que precisam lidar com uma grande quantidade de informações e termos técnicos. 

Em uma conversa com um amigo que está iniciando seus estudos na área, percebi que ele enfrenta alguns desafios. Sente-se sobrecarregado com a quantidade de informações disponíveis e não sabe por onde começar. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e9iuhrptmjdge1cttllq.png)
Essa conversa me fez refletir sobre o meu próprio aprendizado. Eu também enfrentei desafios quando comecei a estudar [desenvolvimento de sistemas](https://dev.to/alexjesustech/o-que-e-desenvolvimento-de-sistemas-32o9), mas tive a sorte de encontrar bons mentores e recursos que me ajudaram a superar esses desafios. 

Com base na minha experiência, acredito que os iniciantes podem se beneficiar de um aprendizado organizado e estruturado. É importante começar com os fundamentos e, a partir daí, ir avançando gradualmente. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h87cg70x4yhoztalyfi7.png)
Para isso, é importante encontrar bons recursos de aprendizagem. Existem muitos livros, cursos e tutoriais disponíveis online. É importante escolher recursos que sejam de qualidade e que sejam adequados ao seu nível de conhecimento. 

Além disso, é importante praticar regularmente. A melhor maneira de aprender é fazendo. Experimente diferentes tecnologias e projetos para ver o que você gosta e o que você é bom. 

Estou iniciando uma série de posts no blog com o objetivo de compartilhar meu conhecimento com iniciantes. Os posts serão sobre diferentes tecnologias e conceitos de [desenvolvimento de sistemas](https://dev.to/alexjesustech/o-que-e-desenvolvimento-de-sistemas-32o9). 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w53nq67w4ycyma9jyzb7.png)
As instruções serão apresentadas passo a passo, para facilitar a compreensão dos iniciantes. Os posts serão marcados com a hashtag #PolyglotStudies para facilitar a localização. 

Espero que esses posts sejam úteis para iniciantes que estão buscando aprender sobre [desenvolvimento de sistemas](https://dev.to/alexjesustech/o-que-e-desenvolvimento-de-sistemas-32o9). 

Espero que você tenha achado este post útil. Se você está aprendendo [desenvolvimento de sistemas](https://dev.to/alexjesustech/o-que-e-desenvolvimento-de-sistemas-32o9), gostaria de convidá-lo a compartilhar suas experiências e desafios com a gente, basta deixar um comentário abaixo deste post. 

Até o próximo post!
Zuul Proxy / Api gateway
Published: 2023-11-01 02:18:26

**Zuul Server** is a **gateway application** that handles all the requests and does the **dynamic routing of microservice applications**. The Zuul Server is also known as Edge Server.

For Example, /api/user is mapped to the user service and /api/products is mapped to the product service and Zuul Server dynamically routes the requests to the respective backend application.

For Zuul routing, add the below properties in your application.properties file or application.yml file.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fc6vp875zrcbfrd0g7sw.png)

This means that http calls to /api/demo/ get forwarded to the products service. For example, /api/demo/products is forwarded to /products.

yaml file users can use the application.yml file shown below 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2omelb18p2ze6yi9bepa.png)

**Note** − The http://localhost:8080/ application should already be running before routing via Zuul Proxy.



**Zuul** is the front door for all requests from devices and web sites to the backend of the Netflix streaming application. As an edge service application, Zuul is built to enable dynamic **routing, monitoring, resiliency and security. **It also has the ability to route requests to multiple Amazon Auto Scaling Groups as appropriate.

The volume and diversity of Netflix API traffic sometimes results in production issues arising quickly and without warning. Zuul uses a range of different types of filters that enables us to quickly and nimbly apply functionality to our edge service. These filters help us perform the following functions:

**Authentication and Security** - identifying authentication requirements for each resource and rejecting requests that do not satisfy them.

**Insights and Monitoring** - tracking meaningful data and statistics at the edge in order to give us an accurate view of production.

**Dynamic Routing** - dynamically routing requests to different backend clusters as needed.

**Stress Testing** - gradually increasing the traffic to a cluster in order to gauge performance.

**Load Shedding** - allocating capacity for each type of request and dropping requests that go over the limit.

**Static Response handling** - building some responses directly at the edge instead of forwarding them to an internal cluster

**Multiregion Resiliency** - routing requests across AWS regions in order to diversify our ELB usage and move our edge closer to our members
Task management system app data models generated by ChatGPT
Tags: nextjs, mongodb, typescript, react
Published: 2023-11-01 02:15:51

Designing data models for a task management system app where users can create projects, add members to those projects, and assign tasks to project members involves several interconnected data entities. Here's a detailed breakdown of the data models you can use:

User:

Fields:
User ID (unique identifier)
Username
Email
Password (encrypted)
Profile Picture
Other user-related information (e.g., name, bio, etc.)
This model represents the app's users and contains their personal information.

Project:

Fields:
Project ID (unique identifier)
Project Name
Description
Created By (User ID of the project creator)
Creation Date
Deadline (optional)
Other project-related information
This model represents the projects created within the app. Each project is associated with a user who is its creator.

ProjectMember:

Fields:
Member ID (unique identifier)
User ID (the member)
Project ID (the project they're a member of)
Role (e.g., Admin, Member)
Join Date
Other member-related information
This model links users to specific projects and defines their roles within those projects. A user can be a member of multiple projects, each with a different role.

Task:

Fields:
Task ID (unique identifier)
Task Name
Description
Project ID (the project it belongs to)
Assigned To (User ID of the member responsible for the task)
Created By (User ID of the task creator)
Due Date
Status (e.g., To-Do, In Progress, Completed)
Priority (e.g., High, Medium, Low)
Other task-related information
This model represents the tasks that users create within projects. Tasks are assigned to specific project members.

With these data models, you can create relationships and implement various functionalities:

Users can create and manage their accounts.
Users can create projects and become project owners.
Users can invite other users to their projects, specifying their roles (e.g., admin or member).
Users can create tasks within projects, assign them to specific project members, and track task statuses and due dates.
Users can view their projects, see project members, and manage tasks within those projects.
Implementing these data models requires a database system and an API or backend code to handle data storage and interactions. You can use relational databases (e.g., MySQL, PostgreSQL) or NoSQL databases (e.g., MongoDB) depending on your app's requirements and scalability. Additionally, you'll need to define API endpoints for creating, updating, and querying these data models.
New Feature: Syntax Highlighting
Published: 2023-11-01 01:58:36

## Describe feature
New feature is `syntax highlighting`, code blocks are text blocks wrapped around by strings of 3 backticks.

## What did you build it?
I modified the `unwrapMdxCodeBlocks` function from `Docusaurus` and created a new function `unwrapCodeBlocks` to my project. 

```ts
export function unwrapCodeBlocks(content: string): string {
  const regex = /```(.*?)\n(.*?)\n```/gs;
  content.replace(regex, function (match, lang, code) {
    if (lang === "") {
      content = `<pre><code>
      ${code}
   </code></pre>`;
    } else {
      content =
        `<pre><code class="language-${lang}">` +
        `
      ${code}
      </code></pre>`;
    }

    return content;
  });
  return content;
}

```
Also, I added `Prism` to the `.html` to highlight code blocks automatically. 
```html
  <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/0.0.1/prism.min.js"></script>
      <link
        href="https://cdnjs.cloudflare.com/ajax/libs/prism/0.0.1/prism.min.css"
        rel="stylesheet"
      />
```
There are lots of supported languages on [Prism](https://prismjs.com/) and the class name depends on what user put in. 

```javascript
function helloWord(){
    console.log("helloWord");
}
```
This is `codeblocks.txt` and `javascript` value is going to be class name like `class="language-javascript"` and when I run the app the output is as below:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b0fx339jhg8eihtan6ze.png)

## Issues
The app looks fine when I run `codeblocks.txt` file, but there are couple of issues, one is that `<p>` tags are automatically added to code blocks in `.html` file. The other is that code blocks and other tags are not working together, so when `unwrapCodeBlocks` function runs it replaces other texts with `<pre><code>` tags. The next step is to fix these bugs.
ALEX - The finance layer on Bitcoin
Tags: blockchain, cryptocurrency, finance
Published: 2023-11-01 01:56:09

ALEX is an open-source DeFi development company built on the Stacks Blockchain and modeled on the world’s financial markets. Our mission is simple: to give our customers the tools to become the masters of their own financial experience.

On our platform, you can easily lend, earn, and borrow BTC, minimize the risks, and maximize returns with fully decentralized integrated financial solutions. Together, we will revolutionize crypto investing.

[http://alexgo.io](http://alexgo.io)
"Empowering Educational Odyssey: Assignment Help in Canada"
Tags: beginners
Published: 2023-11-01 01:43:32

In the dynamic landscape of Canadian education, [Assignment Help](https://www.greatassignmenthelp.com/ca/) emerges as a beacon, illuminating the path to academic excellence. This comprehensive support system goes beyond traditional assignment assistance, fostering holistic student development. Through an extensive array of services, it addresses diverse academic needs, creating a conducive environment for intellectual growth.

The Canadian education system, renowned for its quality and diversity, can be both exhilarating and challenging. In this vibrant milieu, students seek not just academic aid but a guiding force that understands the intricacies of their educational journey.

Assignment Help in Canada acts as a multifaceted companion, providing nuanced assistance tailored to individual requirements. From elucidating complex concepts to refining writing skills, the support extends across various disciplines. This is not merely a service; it's a collaborative effort to enhance comprehension, ensuring that students grasp the essence of their subjects.

What sets this assistance apart is its commitment to fostering critical thinking and independent learning. Rather than spoon-feeding solutions, Assignment Help encourages students to engage with the material, promoting a deeper understanding. Tutors act as mentors, facilitating a learning process that extends beyond the confines of assignments.

Moreover, the service recognizes the diverse needs of students, considering the cultural and linguistic variations within Canada's academic landscape. It strives to bridge gaps and create an inclusive learning environment, where every student feels empowered to excel.

In an era where education transcends conventional boundaries, Assignment Help in Canada embraces technological advancements. The integration of innovative tools and platforms ensures seamless communication, making educational assistance accessible to students across the vast expanse of the country.

But Assignment Help is not just about academics; it's about holistic student well-being. Recognizing the pressures students face, the service provides a support system that extends beyond assignments. It acknowledges the importance of mental health and strives to create a nurturing space where students can thrive academically and personally.

In essence, [Assignment Help in Canada](https://www.greatassignmenthelp.com/ca/) is not a mere academic crutch; it's a catalyst for growth. It instills confidence, empowers students with knowledge, and propels them toward a future imbued with success. It's not just about completing assignments; it's about sculpting a brighter, informed future for every student navigating the intricate tapestry of Canadian education.
Vitriol: Mithril+Vite
Tags: vite, mithril, ionic, vitriol
Published: 2023-11-01 01:28:37

[Vitriol](https://github.com/DeJy/vitriol) is a package that provides a simple and elegant way to use [Mithril ](https://mithril.js.org/)with [Vite](https://vitejs.dev/), a fast and modern frontend tooling.In this blog, I will show you how to set up a basic Mithril + Vite project usign Vitriol.

**Prerequisites**
To follow this tutorial, you will need:
•	Node.js and npm installed on your machine
•	A code editor of your choice
•	A basic knowledge of Javascript and Mithril


**Step 1: Launch Vitriol npm package to create your project**

`npm create vitriol`

_if you are usign Vitriol for the first type, the system will ask you to install the package first._

**Step 2: Follow the prompts**
The vitriol client will ask you the type of project (JSX or Standard), the name of the project and if you want to include Ionic framework or not. For this demo, we will use JSX and we will include the [Ionic Framework](https://ionicframework.com/). Also, you can keep vitriol-project as the default project name. If you use another project name, you have to change _vitriol-project_ by this other project name in step 3.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jq9ghov0143k4oqb5pjs.PNG)

**Step 3: Install your project**

```
cd vitriol-project
npm install
```
Wait until the node packages installation is completed

**Step 4: Run your project**
Run the following command to run your application on the development web server.
 `npm run dev`
Open your browser usign the URL displayed on your terminal

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dyxu3o0eqglq6b3y93zy.png)

You should see this page

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lgbeqkqhksl6bf60vrvl.PNG)

**Step 5: Update the application**

The source code of the application is located in the _src_ folder.

The entry point file is main.js. This is where the components initialization are done as well as Mithril routes definition.

All _.jsx_ files in the _pages_ folder are automatically included as Mithril routes and can be reach using _/#!/pagename_ url or m.route.set(/_pagename_) function.

**Step 6: Test automation**

[Vitest ](https://vitest.dev/)is used as test framework for your application. All testing scripts are in folder _/test_

Run the following command to launch the test scripts

`npm run test` 

**Step 7: Production Build**

Once your application is ready for production, run the build command to create the final application bundle.
`npm run build`
You can test your production files locally before uploading them to your web server by running this command
`npm run preview`

Production files are created in _/dist_ folder and can be uploaded to you web server from there.