teleren/devto huggingface dataset:
Should I Learn Math First, Then Rust or C, or Can I Learn Mathematics and Rust, C Simultaneously?
Tags: clang, c, rust, mathematic
Published: 2023-04-17 11:04:22

First of all Hi Everyone, I'm New to Rust. I'm Currently Learning C# and Bought a Rust Language Book.

I've been learning C# for a while and I've been learning Basic and Discrete Math for a few days at the same time.

The language I want to learn is C first and then Rust.

I Have A Question For You Should I Learn Rust or C After I Finish Basic and Discrete Mathematics? or Should I Learn Mathematics and C at the Same Time?

Let me give an example:

16 April 08.00 - Basic & Discrete Mathematics
16 April 15.00 - C Programming Language
16 April 18.00 - Basic & Discrete Mathematics

Or

16 April 08.00 - Basic & Discrete Mathematics
16 April 20.00 - Basic & Discrete Mathematics
.....

20 June 08:00 - Basic & Discrete Mathematics Lesson (Finished)
21 June 08.00 - C Programming Language Training (Started)
SAP Business One
Tags: sap, sapb1, sapbusinessone, saponebusine
Published: 2023-04-17 10:53:22

Leaping Frog Consulting offers [**SAP Business One**](https://www.leapingfrogconsulting.com/sap-products/sap-business-one) ERP Software Implementation and Support Services based in Mumbai, India.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x37b2gg5nw5bajf7p2ss.jpeg)
Unleashing the Power of BMPT Terminator: The Ultimate Fighting Machine
Tags: news, tank
Published: 2023-04-17 10:52:52

The BMPT Terminator is a Russian armoured vehicle, designed for fire support and protection of tanks and infantry fighting vehicles (IFVs) in combat. It is considered one of the most heavily armed and protected combat vehicles in the world. Let's take a closer look at some of the other tanks that the [BMPT Terminator](https://tankhistoria.com/modern-day/bmpt-terminator/) might encounter on the battlefield.

The [Sherman Tank](https://tankhistoria.com/wwii/m-51-super-sherman-tank/) was an American medium tank used during World War II. It was known for its reliability and was used by several countries, including the United States, Britain, and the Soviet Union. Although the Sherman was not heavily armoured, it was agile and had a powerful 75mm gun.

The M51 Super Sherman was an upgraded version of the Sherman tank, developed by Israel in the 1950s. It had a more powerful engine and a new 105mm gun, making it a formidable opponent on the battlefield.

The Tiger 131 tank was a German heavy tank used during World War II. It was heavily armoured and armed with an 88mm gun, making it a feared opponent on the battlefield. The [Tiger 131](https://tankhistoria.com/news/tiger-131-tank/) is the only surviving operational Tiger I tank in the world and can be seen at The Tank Museum in the UK.

The [Sturmtiger](https://tankhistoria.com/wwii/sturmtiger/) was a German assault gun used during World War II. It was heavily armoured and armed with a 380mm rocket-propelled grenade launcher, making it capable of destroying fortifications and buildings.

The K2 Black Panther is a South Korean main battle tank that entered service in 2014. It is known for its advanced technology, including a hybrid electric drive system, an active protection system, and a highly advanced fire control system.

In a hypothetical scenario, if the BMPT Terminator were to encounter any of these tanks on the battlefield, it would have to rely on its heavily armoured and protected design to withstand its attacks. However, the Terminator's advanced weaponry, including its 30mm automatic cannon, four Ataka-T anti-tank missiles, and two 7.62mm machine guns, would give it a significant advantage over its opponents. The Terminator's ability to engage multiple targets simultaneously would also make it a valuable asset in any combat situation.

In conclusion, the BMPT Terminator is a formidable armoured vehicle that is designed to provide support and protection to tanks and IFVs. While it may encounter tough opponents such as the Sherman Tank, M51 Super Sherman, Tiger 131 Tank, Sturmtiger, and [K2 Black Panther](https://tankhistoria.com/modern-day/k2-black-panther/), its advanced weaponry and heavily armoured design would give it a significant advantage on the battlefield.

Read More Information: [Tank Historia](https://tankhistoria.com/)
Domain Driven Design using a Monorepo
Tags: ddd, domain, monorepo, microservices
Published: 2023-04-17 10:52:43

This article provides practical advice on using Domain Driven Design in a Monorepo.

## What is Domain Driven Design (DDD)?

DDD is used to understand the domain/concepts of the problem-solution space you are trying to solve.
They are also used to define a clear boundary of services.
Even if you are not going to use microservices right it out, it helps to define clear interfaces among the modules.
This helps you decouple your code, and make it easy to scale.


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

## What is a Monorepo?

A Monorepo is a repository where you can have many packages inside of it, check the example below:

```jsx
packages
- ledger
- account
- card
- payment
```

Instead of keeping all the code of your application in a single package (monolith), you can break them in many smaller packages.
It also provides more benefits such as easier code sharing, simplified dependency management, and improved build and deployment times

## DDD in a Monorepo
How can we create a bounded context domain for each monorepo package? only exposing the Public API of each domain?

Each package has an entrypoint, where you can expose the Public API of the package, here is an example of `ledger` 

```jsx
// ledger/src/index.ts
export { createTransaction } from './createTransaction'
```

Restricting imports to internal paths in a monorepo, using Eslint

```jsx
'no-restricted-imports': [
      'error',
      {
        patterns: [
          '@woovi/**/src',          
        ],
      },
    ],
```

If someone tries to import an internal path from another package like this:

```jsx
import { 
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED 
} from '@woovi/ledger/internal/path/secret' 
```
Eslint will throw an error

## In Conclusion
Using a monorepo is a good way to break your monolith before going to microservices.
Thinking in domain makes your code better to reason about it, when you have clear interfaces.
This is how we are structuring our backends at Woovi.

---

How are you using DDD in your product?

---

## References
[Domain Analysis](https://learn.microsoft.com/en-us/azure/architecture/microservices/model/domain-analysis)

---
Woovi
[Woovi](https://www.woovi.com) is a Startup that enables shoppers to pay as they like. To make this possible, Woovi provides instant payment solutions for merchants to accept orders.

If you want to work with us, we are [hiring](https://woovi.com/jobs/)!

---
Photo by <a href="https://unsplash.com/@andalexander?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Andrew Draper</a> on <a href="https://unsplash.com/photos/Q7_5VOi_xew?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
Introducing Selefra’s GPT Feature: Insight Multi-Cloud and SaaS by GPT
Published: 2023-04-17 10:52:13

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2q29feyvisxzizsiwqdu.png)
We are excited to introduce Selefra GPT Feature(beta), this is an exciting feature. It is supported by OpenAI's large language model GPT-3.5/GPT-4 and Selefra.

In the past, it was very complicated for us to collect and analyze data centrally on the infrastructure, so we built Selefra to solve this problem. However, insight into infrastructure still requires expertise in areas such as security, compliance, cost, and so on. Until the recent arrival of generative AI, we found that the GPT4 model already has the basic expertise.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5thcii3oyk02kdjurop4.png)
With Selefra GPT, you don't need to be an expert in areas such as security, cost analysis, architecture, and so on, to get the most basic risk insight from the data. By combining OpenAI and Selefra, we analyze the architectural data of the infrastructure through artificial intelligence technology to provide high-quality insights into business stability and security.

## Exploring sample use cases

In the following examples, We will show you how to analyze security, cost, and architecture through Selefra GPT.

### Detection of AWS S3 for serious vulnerabilities
`selefra gpt "Please help me analyze the vulnerabilities in AWS S3?"`
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9llh3209hv6jcfog6mz7.gif)

### Check if there is a waste of cost in AWS EC2
`selefra gpt "Help me query AWS EC2 volumes that are not attached to an instance"`
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nsslj6z4goxgxsc9xmrq.gif)

### Check whether GCP has architecture design defects
`selefra gpt "Help me search for GCP users who do not have MFA activated"`
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qx7uljeiolmd86tudahp.gif)

## How to Get Started
Read detailed documentation for how to Get Started with Selefra.

For Quick Start, run this demo, it should take less than a few minutes:
1. Install Selefra
`brew install selefra/tap/selefra`

2. Initialization project
`mkdir selefra-demo && cd selefra-demo && selefra init`

3. Execute the GPT command for analysis
`selefra gpt "your prompt"`

## Try Selefra GPT Today
If you are interested in Selefra after reading this article, give us a star at: https://github.com/selefra/selefra ✨

Join Our Slack Community and talk with Community: https://selefra.io/community/join

**More Selefra Links:**

Official Website: https://selefra.io
Blog: https://selefra.io/blog
Slack: https://selefra.io/community/join
Twitter: https://twitter.com/SelefraCorp
Reddit: https://reddit.com/r/Selefra

We are very excited to see what scenarios you will build using Selefra, and to grow together with Selefra!
Power Monitor Library
Tags: arduino, cpp, iot, programming
Published: 2023-04-17 10:51:44

A power monitor library for arduino and alternatives written in c++ , designed to measure the electrical characteristics of AC circuits such as voltage, current, power, reactive power, and power factor..

In the example given I didn't use voltage and current sensors and I have generated two arrays of I and V to check the results and compare them with the theorical ones

so the principe is to give it instantaneous values of current and voltage and it will mesure

Ieff	Effective Value of current
Veff	Effective Value of voltage
Imoy	Mean Value of current
Vmoy	Mean Value of voltage
P	Active Power
Q	Reactive Power
S	Apparent Power
pf      Power factor
Req	The equivalent resistance of the circuit
Xeq	The equivalent reactiance of the circuit
Zeq	The equivalent impedance of the circuit




_https://github.com/zakarialaoui10/PowerMonitor_
When & Why to Choose Apache AGE
Tags: apacheage
Published: 2023-04-17 10:48:34

Apache Age can be a good choice when you need to manage and analyze large-scale graphs and relationships.
Here are some specific situations where Apache Age can be useful:

- Big data graph processing: If you have a large amount of graph data, Apache Age can handle it efficiently using distributed storage and parallel processing. It can help you quickly analyze complex relationships and patterns in your data.

- Real-time graph processing: Apache Age can be used for real-time graph processing, allowing you to analyze and respond to changes in the graph as they happen. This can be useful in applications such as social media monitoring, fraud detection, and recommendation systems.

- Multiple programming language support: Apache Age supports multiple programming languages, including Python, Java, and Scala, making it easy to integrate with existing applications and workflows.

- Open-source: Apache Age is an open-source software, meaning that it is free to use, and its active development community ensures that it stays up-to-date with the latest technologies and best practices.

Overall, Apache Age is a good choice when you need to manage large-scale graph data and relationships and require a scalable and distributed system for analysis. It is a versatile and user-friendly graph database that can handle complex queries and real-time processing.
An Introduction to Apache AGE
Tags: apacheage
Published: 2023-04-17 10:43:09

Apache Age is a graph database that is built on top of Apache Hadoop, Apache Spark, and PostgreSQL. It provides a scalable and distributed system for managing large-scale graphs and complex relationships.

The main advantage of Apache Age is its ability to handle large amounts of data and perform complex queries on them quickly. It uses a distributed storage system and parallel processing to handle queries efficiently. Apache Age also supports multiple programming languages such as Python, Java, and Scala, making it easy to integrate with existing applications.

Apache Age is designed to be user-friendly and has a simple syntax for querying data. It uses the Cypher query language, which is similar to SQL, to query and manipulate graphs. Apache Age also has an interactive shell that allows users to explore and analyze data quickly.

Overall, Apache Age is an excellent choice for anyone who needs a scalable and distributed system for managing large-scale graphs and relationships. It is open-source software, and its active development community ensures that it stays up-to-date with the latest technologies and best practices.
MOT Data Ingestion Speed
Tags: opengauss
Published: 2023-04-17 10:41:04

This test simulates realtime data streams arriving from massive IoT, cloud or mobile devices that need to be quickly and continuously ingested into the database on a massive scale.

**·** The test involved ingesting large quantities of data, as follows –

**·** 10 million rows were sent by 500 threads, 2000 rounds, 10 records (rows) in each insert command, each record was 200 bytes.
**·** The client and database were on different machines. Database server – x86 2-socket, 72 cores.
**·** Performance Results

**·** **Throughput – 10,000** Records/Core or **2** MB/Core.
**·** **Latency – 2.8ms per a 10 records** bulk insert (includes client-server networking)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rpn72st01fm41bgaxvdk.png)
MOT Resource Utilization
Tags: opengauss
Published: 2023-04-17 10:39:00

The following figure shows the resource utilization of the test performed on a x86 server with four sockets, 96 cores and 512GB RAM server. It demonstrates that a MOT table is able to efficiently and consistently consume almost all available CPU resources. For example, it shows that almost 100% CPU percentage utilization is achieved for 192 cores and 3.9M tpmC.

**·** **tmpC –** Number of TPC-C transactions completed per minute is represented by the orange bar and the **tpmC** Y axis on the left.
**· CPU % Utilization –** The amount of CPU utilization is represented by the blue line and the **CPU %** Y axis on the right.
Figure 1 Resource Utilization – Performance Benchmarks

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nb4xy1qs13fdykuz9psg.png)
MOT RTO and Cold-Start Time
Tags: opengauss
Published: 2023-04-17 10:33:43

**High Availability Recovery Time Objective (RTO)**
MOT is fully integrated into openGauss, including support for high-availability scenarios consisting of primary and secondary deployments. The WAL Redo Log's replication mechanism replicates changes into the secondary database node and uses it for replay.

If a Failover event occurs, whether it is due to an unplanned primary node failure or due to a planned maintenance event, the secondary node quickly becomes active. The amount of time that it takes to recover and replay the WAL Redo Log and to enable connections is also referred to as the Recovery Time Objective (RTO).

**The RTO of openGauss is less than 10 seconds, including MOT, thanks to its Parallel Recovery mechanism.**

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

**Cold-Start Recovery Time**
Cold-start Recovery time is the amount of time it takes for a system to become fully operational after a stopped mode. In memory databases, this includes the loading of all data and indexes into memory, thus it depends on data size, hardware bandwidth, and on software algorithms to process it efficiently.

Our MOT tests using ARM servers with NVMe disks demonstrate the ability to load **100 GB of database checkpoint in 40 seconds (2.5 GB/sec)**. Because MOT does not persist indexes and therefore they are created at cold-start, the actual size of the loaded data + indexes is approximately 50% more. Therefore, can be converted to **MOT cold-start time of Data + Index capacity of 150GB in 40 seconds**, or **225 GB per minute (3.75 GB/sec)**.

The following figure demonstrates cold-start process and how long it takes to load data into a MOT table from the disk after a cold start.

Figure 1 Cold-Start Time – Performance Benchmarks

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

**·** **Database Size –** The total amount of time to load the entire database (in GB) is represented by the blue line and the **TIME (sec)** Y axis on the left.
**·** **Throughput –** The quantity of database GB throughput per second is represented by the orange line and the **Throughput GB/sec** Y axis on the right.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fllgt7se48l6i4xrnc45.png)
MOT Low Latency
Tags: opengauss
Published: 2023-04-17 10:30:51

The following was measured on ARM/Kunpeng 2-socket server (128 cores). The numbers scale is milliseconds (ms).

Figure 1 Low Latency (90th%) – Performance Benchmarks

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

MOT's average transaction speed is 2.5x, with MOT latency of 10.5 ms, compared to 23-25ms for disk tables.

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

Figure 2 Low Latency (90th%, Transaction Average) – Performance Benchmarks

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i26yyttlm6xyvp6vc4k1.png)
wishing3 - if you'd 3 wishes, what'd they be?
Tags: wish, wishing, tree, makeawish
Published: 2023-04-17 10:28:37

Have you ever wished for something and hoped it would come true? Maybe you wished for good health, happiness, love, or success. Maybe you wished for a specific person, thing, or event. Maybe you wished for something big or something small. Whatever your wish is, wishing3 can help you make it a reality.

[wishing3.com](https://wishing3.com) is a website that lets you create your own virtual wishing. A wishing tree is a tree where people tie ribbons, paper, or other objects with their wishes written on them. The idea is that the tree will carry your wish to the universe and help it manifest. Wishing trees are found in many cultures and traditions around the world, and they are believed to have magical powers.

On [wishing3.com](https://wishing3.com), you can choose from different types of branches. You can also customize the type, such as #love #life #good #evil #oneday #fantasy. Then you can write your wish on a piece of virtual paper and attach it to the tree. You can also see other people's wishes and send them positive vibes. You can also share your wish with your friends and family on social media.

The website is based on the principles of the law of attraction, which states that whatever you focus on, you attract into your life. By writing your wish on a virtual tree, you are sending a clear message to the universe about what you want. By visualizing your wish as if it has already happened, you are aligning your vibration with it. By feeling grateful for your wish, you are opening yourself to receive it.

If you are looking for a fun and easy way to make your dreams come true, visit [wishing3.com](https://wishing3.com) today and create your own wishing. You have nothing to lose and everything to gain. Remember, the only limit is your imagination. Happy wishing!
Typescript 5.0, Playwright 1.32, Mongoose 7, new VSC release, and more - Frontend News #33
Tags: frontend, typescript, mongoose, playwright
Published: 2023-04-17 10:28:19

{% youtube GKRhF7NKvzY %}

Stay up-to-date with the latest in frontend development and discover new tools and updates to make your coding experience even better. Whether you're a seasoned developer or just starting out, there's something for everyone in this edition of Frontend News.

What’s in the newest Frontend News 33? 
🟣 Typescript 5.0
🟣 Playwright 1.32
🟣 Webkit features in safari 16.4
🟣 Mongoose 7
🟣 New CSS trigonometry functions - sin and cos
🟣 Visual Studio Code March Release (1.77)


Enjoy, you can also read the article at [Frontend House](https://frontendhouse.com/frontend-news/typescript-50-playwright-132-mongoose-7-new-vsc-release-and-more-frontend-news-33).
MOT
Tags: opengauss
Published: 2023-04-17 10:10:08

MOT is a high-performance row-based memory-optimized transactional storage engine (rowstore) that is a feature of Huawei’s openGauss. This user manual describes the openGauss Memory-Optimized Tables (MOT) engine, how it works, how to deploy it and how to use it.

**About This Manual**

**·** Chapter 1, Introducing MOT introduces Huawei’s openGauss Memory-Optimized Tables (MOT), describes its features and benefits, key technologies, applicable scenarios, performance benchmarks and its competitive advantages.
**·** Chapter 2, Using MOT describes how to deploy, use and manage openGauss MOT. Using MOT tables is quite simple. The syntax of all MOT commands is the same as for openGauss diskbased tables. Only the create and drop table statements in MOT differ from the statements for disk-based tables in openGauss. You may refer to this chapter in order to learn how to get started, how to convert a diskbased table into a MOT table, how to use MOT’s Query Native Compilation feature and about MOT’s limitations and coverage. MOT administration options are also described here. This chapter also describes how to perform a TPC-C benchmark.
**·** Chapter 3, MOT Concepts describes how openGauss MOT is designed and how it works. It also sheds light on its advanced features and capabilities and how to use them. This chapter serves to educate the reader about various technical details of how MOT operates, details of important MOT features and innovative differentiators. The content of this chapter may be useful for decision-making regarding MOT’s suitability to specific application requirements and for using and managing it most efficiently.

**Audience**

Database users, such as DBAs and application developers, should read Chapter 1, Introducing MOT, and pay special attention to Chapter 2, Using MOT. If needed, more answers can be found in Chapter 3, MOT Concepts . Software architects and expert database developers may want to read Chapter 3, MOT Concepts closely in addition to the other chapters.
Get Original Dimension in JavaScript
Tags: javascript, webdev, opensource, beginners
Published: 2023-04-17 10:09:52

```
const heightInput = document.querySelector('#height');
const widthInput = document.querySelector('#width');
```

```
    const image = new Image()
    image.src = URL.createObjectURL(file)
    image.onload = function () {
        widthInput.value = this.width
        heightInput.value = this.height
    }
```