teleren/devto huggingface dataset:
Sentiment Analysis
Published: 2023-03-20 20:13:50

Sentiment analysis is a technique used to process textual data. It has a diverse range of real-life applications. Sentiment analysis relies on an Artificial Intelligence engine powered by Machine Learning and Natural Language Processing. Some of these include: 

- social media monitoring

- product management and analysis

- customer support and feedback analysis

- brand monitoring and reputation management

Contextual mining of text identifies and extracts subjective information in source material which contributes to understanding the social sentiment of a brand, product or service while monitoring online conversations. There are cases where social media streams analysis limited to just basic sentiment analysis and count based metrics. This may result in missing crucial insight. 

However, recent advances in deep learning have significantly improved the ability of algorithms to analyze text.

There are steps involved in the entirety of the process. They include:


* **Data gathering**

This involves data that will be later analyzed. Some sources of this data include social media, majorly Twitter, using data scraping tools, APIs, customers’ data feed, or even gather data from user reviews on services like Google and Yelp.


* **Text cleaning**

Text cleaning tools will allow us to process the data and prepare it for analysis by:

   -> Removal of stopwords - Prepositions and conjunctions mostly  
   (a, and, or, but, how, what…).
   -> Dropping punctuation marks (commas, periods…).
   -> Stemming - Reduction of a word to its root. For example 
    running, runner and run share the stem **run**


* **Analyzing the data**

At this point, sentiment analysis algorithms can be used to analyze the gathered data. The most common classification is the spectrum between “positive” and “negative.” However, more refined tools may also identify more complex sentiments such as anger, sadness, etc. 
The algorithms will different sentiment libraries to identify opinions and classify them.


* Understanding the results

Last but not least, we should be able to see the data grouped into major categories. This in turn clarifies the reactions as positive, neutral, or negative reactions. 

Other attributes such as tagging each sentiment with its original date are particularly important. A timeline will show us if we had surges of positive sentiments or troughs of negative sentiments at specific moments in time. 

This might therefore give correlations between something that happened on a specific date and a surge of opinions regarding the  brand in question.
Juice
Tags: frontend, webdev, ux
Published: 2023-03-20 20:01:18

In video games, Juice is the non-essential visual, audio & haptic effects that enhance the player's experience. Think about any Mario game. When he jumps, he yells 'ya-hoo'. This doesn't fulfil any functional requirement. If you removed it, you could still play the game. But the game would lose character. The emotional connection the player has with the game. My latest post details: 
- theories behind juice, 
- how to create it,
- examples &
- how it can be used for web development.

See [my digital garden](https://garden.bradwoods.io/notes/design/juice) for details.
Build an Event-Driven Media Conversion Pipeline
Tags: aws, cloud, awscommunity, 100daysofcloud
Published: 2023-03-20 19:49:50

[79/100] #100DaysOfCloud Today, I created a Video on Demand ("CatTube") backend that will take any uploaded video format to a source bucket, convert it to the format we require, and place the output video into another bucket ready to be served by Cloudfront.

AWS Elemental MediaConvert is a file-based video transcoding service with broadcast-grade features. Create live stream content for broadcast and multi-screen delivery at scale.

<u>Use cases:</u>
- Generate video highlight clips
 - Gather insights with artificial intelligence (AI) and machine learning (ML) models to generate relevant clips for sporting events.
- Create high-quality video regardless of input
 - Using quality-defined variable bitrate (QVBR) Auto, set an appropriate quality level based on content complexity and encoding parameters, without human intervention.
- Deliver 4K HDR media assets
 - Prepare 4K HDR videos for over-the-top (OTT) delivery, creating both HDR and SDR adaptive bitrate outputs.

You can try do it by yourself by following the steps from the link below: [GitHub](https://github.com/aaditunni/100DaysOfCloud/blob/main/Journey/079/Readme.md)
Not All ATM support Wirex Card Cash Withdrawal
Tags: wirex, crypto, blog, atm
Published: 2023-03-20 19:24:38

[Wirex](https://steemyy.com/out/wirex) is a crypto bank card app that integrates the crypto wallets, exchanges, and debit cards, so that you can send crypto to [Wirex](https://steemyy.com/out/wirex) wallets, exchange them to the fiat, and then spend it via the [Wirex](https://steemyy.com/out/wirex) debit card.

The monthly allowance for cash withdrawal using [Wirex](https://steemyy.com/out/wirex) at ATM is 200 (GBP, USD or EUR). However, I have tested it, and not all ATM support it.

Here is an error shown on two ATM machines at two different Supermarkets.
![image.png](https://cdn.steemitimages.com/DQmU5G7UXuLa5Lbvz6Rw5EnHFaU1rFmUvyXJtfiUgboihMQ/image.png)

I was able to withdraw some cash from another ATM.

[Wirex](https://steemyy.com/out/wirex)  is FCA regulated, and you can earn [Passive Income](https://helloacm.com/earning-passive-income-by-staking-coins-usdt-etc-on-wirex-x-accounts/) by staking cryptos.

<hr/>

### [Steem](https://steemyy.com) to the Moon!
1. You can swap the STEEM/SBD to USDT (TRC-20) via [Steem2USDT](https://steemyy.com/steem2usdt.php)
2. Register a free STEEM account at [here](https://steemyy.com/reg.php)


https://justyy.com/png/whale.png
Understanding JavaScript API Requests and Responses in the Data Fetching lifecycle
Tags: javascript, node, webdev, programming
Published: 2023-03-20 19:21:42

---
title: Understanding JavaScript API Requests and Responses in the Data Fetching lifecycle
description: Introduction, V8 JavaScript Engine, Callbacks, AJAX/XMLHttpRequest, Synchronous/Asynchronous, Promises, Async/Await, Fetch API, and Conclusion.
published: true
tags: JavaScript, Node, webdev, Programming
# cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vhrqhjh26hjmly090atv.JPG
---

![JavaScript logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vhrqhjh26hjmly090atv.JPG)

Beginning today, I’ll start an article series about JavaScript API Requests and Responses in the Data Fetching lifecycle.

In this article series, I’ll cover a range of topics, including the **Introduction, V8 JavaScript Engine, Callbacks, AJAX/XMLHttpRequest, Synchronous/Asynchronous, Promises, Async/Await, Fetch API, and Conclusion**. I’ll explain the advantages and disadvantages of each technique, provide examples and code snippets, and share best practices for building efficient and scalable applications.

I’m excited to share my knowledge with you and help you level up your skills.

So, whether you’re a seasoned JavaScript developer or just starting out, this article series is for you. Follow along to learn everything you need to know about data fetching in JavaScript and start building better applications today.

Stay tuned for the first article in the series, where we’ll dive into the Introduction for the theme.

Thank you for reading, I hope this article can somehow have increased your knowledge base about it.
Perspective of a new developer
Published: 2023-02-26 23:39:47

As a new developer in the field, I find platforms to be confusing mainly due to the vast array of options available. With so many choices, it can be challenging to understand which platform is best suited for a particular project or use case. The terminology used in the platforms can be intimidating, and it can be challenging to keep up with the constant updates and changes.

I believe in order to make web components and VanillaJS more approachable new developers should start with small projects and building up to more complex ones. Using visual aids and real-world examples can also make these standards more accessible and easier to understand.

On my first stab at development, I found Vue to be the easiest to work with. The framework is simple and it was easy to pick up and start building. The reactivity of Vue's components also made it straightforward to manipulate the UI.

I found the various command-line tools to be the most confusing but after some practice, I began to understand their purpose and how to use them effectively. On the other hand, I found version control tools like Git to be relatively straightforward.

As a new developer, I had to do a lot of additional reading to make sense of things. I also found it helpful to read other people's code to learn how they approached problems and to get inspiration for my own projects.
Var vs Let
Published: 2023-03-20 18:49:22

Good stuff:


**for (var i = 0; i < 3; ++i) {
  setTimeout(() => console.log(i), 1000); // returns 3 three times
}

for (let i = 0; i < 3; ++i) {
  setTimeout(() => console.log(i), 1000); // returns 0 1 2
}**


This is because var creates a single binding at the function scope, so after a one-second timeout the loop has already run its course, hence you get 3 three times. By using let you bind the variable at the block scope (loop), so it returns the values you expected since i refers to the value at that loop iteration.
chicago
Tags: ctf
Published: 2023-03-20 17:42:43

### Challenge description

> Keygenme...sort of
>
> Author: `akhbaar`

### The keygen

As usual, we start by trying to run the executable.

```shell
./chicago
```

but unfortunately, we get

```shell
... Bad lenght! ...
```

Opening the file with ghidra, we see that the file is a rust compiled executable, with **A TON** of functions (I suppose from the rust standard library). After some time we find the `main`, with an interesting portion of code:

```c
if (local_1a8 < 10) {
    FUN_00107480("Bad length ...
```

So the length of the input must be at least 10.
Also, after some analysis and variable renaming, we find that

```c
actual_num = input[i] - 0x30; // 0x30 is the ascii code for '0'
```

So every character of the input must be a digit.

```c
if (((i & 1) != 0) && (actual_num = actual_num * 2, L'4' < (uint)input[i])) {
    actual_num = (uint)(byte)((char)(actual_num & 0xff) + (char)((actual_num & 0xff) / 10) * -9);
}
```

So if the index of the character is odd, we multiply it by 2.
Also, if the original number is greater than 4, we replace it with $x + x / 10 * -9$, where $x$ is the original number.

Then, at least that's what I thought, it gets compared to the first character of the input, and if it's equal we get the flag.

### The real keygen

After spending much more time than I should have, and after writing a python script to bruteforce the flag, I was so surprised when the first number it tried checked all the conditions.

As you could have guessed, the first and most obvious string that my script tried was `0000000000`, and it worked 😭.

To get the flag, I then just had to run the program with `./chicago 0000000000`.
Will AI Take Our Jobs?
Tags: ai, chatgpt, software, webdev
Published: 2023-03-20 18:44:21

https://www.pcmag.com/news/openai-chatgpt-could-disrupt-19-of-us-jobs-is-yours-on-the-list

Many people are concerned about AI taking jobs which we are seeing at the moment. 
What are your thoughts on this as a developer?
Sketch Note: SwiftUI App Structure
Tags: swift, swiftui, ios, sketchnotes
Published: 2023-03-20 18:31:27

The SwiftUI `App` *protocol* looks simpler but is decisive for your [applications' structure and organization](https://developer.apple.com/documentation/swiftui/app-organization).

This sketch note shares a general look at the parts involved while implementing your app's entry point.

![Sketch Note: SwiftUI App Structure](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/noiv606i3rmto2q6eefl.JPG)

Things to take in mind:

**1.** The `App` *protocol* represents **structure** and **behavior**.

**2\.** The `body` is the **content** and can **define scenes**.

**3.** `Scene` acts as the **root view** of the view hierarchy and can be more than one.

**4.** The `@main` initialize and call the `main()` method which **runs your app**.

**5.** The `init()` **runs by default**.

**6.** You can have **multiple scenes** whose **lifecycles will be managed by the system**.  
  
I hope this sketch note is helpful to you.
How to Make an Android Phone Charger at Home
Tags: productivity
Published: 2023-03-20 18:30:00

## Introduction:

Have you ever found yourself with a dead phone battery and no charger in sight? It can be frustrating and inconvenient, but what if I told you that you could make your own **[android phone charger](https://theaquavault.com/products/chargecard-credit-card-sized-phone-charger)** at home? In this blog post, we'll walk you through the steps of making your own charger using everyday household items.

## Materials Required:

USB cable
Scissors
Electrical tape
9-volt battery
Battery connector
Soldering iron and solder (optional)

**Step 1: Cut the USB Cable**
The first step is to cut the USB cable in half using a pair of scissors. You will only need one half of the cable for this project, so you can set the other half aside for future use.

**Step 2: Strip the Wires**
Next, strip the wires on both ends of the USB cable. You can use a wire stripper if you have one, or simply use a pair of scissors to carefully strip away the outer layer of insulation.

**Step 3: Connect the Wires to the Battery Connector**
Once the wires are stripped, you can connect them to the battery connector. The red wire should be connected to the positive terminal, and the black wire should be connected to the negative terminal. If you have a soldering iron, you can use it to attach the wires to the battery connector more securely.

**Step 4: Connect the Battery**
Now it's time to connect the battery to the battery connector. Simply attach the positive and negative terminals of the 9-volt battery to the corresponding terminals on the battery connector.

**Step 5: Test the Charger**
Before using the charger, it's important to test it to make sure it's working properly. Plug the USB cable into your android phone and the other end into a USB port on your computer or wall adapter. Your phone should start charging immediately if everything is connected correctly.

**Step 6: Cover the Connections**
Finally, cover the connections with electrical tape to prevent any accidental shocks or short circuits. This step is especially important if you used a soldering iron to connect the wires.

## Conclusion:
Making your own android phone charger at home is a simple and inexpensive solution for when you need to charge your phone on the go. With just a few household items and some basic electrical knowledge, you can create a charger that will work just as well as a store-bought one. However, it's important to use caution when working with electricity and always double-check your connections before using the charger. By following these steps, you can create a reliable and efficient charger that will keep your phone powered up whenever you need it.
Important Questions related to Data Engineering
Tags: data, dataengineering, pipelines, questions
Published: 2023-03-20 18:23:43

**Can a database be used as DWH?**

Yes, Database can be used as a Data Warehouse. Even before the data warehouse, we use database for the business. But now it's a good practice to use Data warehouse because of quick response and Analystical tools. Data warehouse is based on specific category thatswhy, we get quick response as compared to Database.

**Difference between structured and UN structured data ?**

Structured Data: 
Is in the form of structured manner, it can be a SQL query or a script that we run on terminal of any platform to perform task is considered as structured data. This data is in uniform format.

Unstructured Data:
This data is in distributed manner. It is in scattered formed. This data contains text file, video, image, audio etc. 

**Roles of Data Engineer :**

1. Design and develop databases, data models and tables to store data.
2. Develop ETL processes and data pipelines for data integration.
3. Monitor and optimize database performance.
4. Analyze data for patterns, trends, and insights.
5. Develop data visualizations and dashboards.
6. Troubleshoot data-related issues.
7. Implement security and privacy measures.
8. Collaborate with data scientists and business stakeholders.
9. Build API connection to fetch the data from the source target to the destination target.
Desestruturação em Javascript
Tags: javascript, webdev
Published: 2023-03-20 18:14:17

Eai pessoal! Hoje venho aqui falar um pouco sobre desestruturação no javascript. 

## O que é desestruturação?
Se a gente der um google temos uma definição rápida, temos:

> **Desestruturação**
> _substantivo feminino_
> ação ou efeito de desestruturar(-se).
> desfazimento de estrutura, sustentação, organização; desordem, desorganização.
> perda do referencial; perturbação.

Muito genérico né? hahaha. De uma forma fácil, desestruturar é desconstruir. 

Imagine uma caixa e dentro dela temos diversos itens, você sabe que dentro dela tem um lápis e com isso quando você retira esse lápis de dentro dela está fazendo uma desestruturação.

No javascript não é diferente, teremos um objeto (Array/Object) que queremos retirar um item de dentro dele de forma fácil. Se liga nesse **exemplo simples de atribuição**: 
```js
let [a, b] = [1, 2];

console.log(a) // 1
console.log(b) // 2
```

De forma geral, a desestruturação funciona dessa forma (atribuindo valores a variáveis).

### Desestruturando um objeto
Agora vamos dar mais um passo, imagine que temos um objeto de `Pessoa` e a pessoa terá um nome e uma idade, teremos algo dessa forma:
```js
let Pessoa = {
    nome: 'Matheus Martins',
    idade: 23
}
```

Agora imagine que você está desenvolvendo um Header da sua aplicação e deseja mostrar apenas o nome dessa pessoa na sua tela, muito provavelmente você usaria: `Pessoa.nome` e não está errado! Mas como estamos falando de desestruturação você poderia fazer da seguinte forma:

```js
let { nome } = Pessoa
console.log(nome) // Matheus Martins
```

Dessa forma, o objeto pessoa em si não importa tanto para nós e você se foca apenas na variável que deseja usar.

### Certo, mas é só isso?

Cara não é só isso! O javascript permite que você use desestruturação em vários momentos do seu código e de várias formas diferentes. Meu intuito aqui só foi introduzir o conceito e logo mais irei trazer um post sobre desestruturação mais avançado com exemplos em React.

Se tu ta curioso e não aguenta esperar. Vai na documentação do MDN que tem tudo lá! E foi de lá que eu baseei esse post!

[Documentação Desestruturação](https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment)
How use a Magic keyboard on top of a Macbook
Published: 2023-03-20 18:05:17

Install Karabiner and disable built-in keyboard when a bluetooth keyboard is connected.

https://apple.stackexchange.com/questions/67133/how-to-disable-the-built-in-macbook-keyboard

Prevent Touch ID button to trigger:
1) screen lock: `defaults write com.apple.loginwindow DisableScreenLockImmediate -bool yes`
2) Accessibility shortcut (triple press): Apple menu  > System Settings (or System Preferences), click Accessibility, then click Shortcut. Then just uncheck every shortcut option and the menu no longer comes up.
Amending my professional path
Tags: opensource, beginners, typescript, programming
Published: 2023-03-20 18:00:34

In [Starchart](https://github.com/DevelopingSpace/starchart) 0.6, one of the features we shipped is implementing repeatable background jobs to process expired DNS records at reconfigurable intervals on startup. Additionally, the jobs get removed automatically on completion and failure after seven days. 

### The Process
We start by running a query that fetches all the DNS records from the database, with the `expiresAt` field set in the past. If the array is not empty, we iterate through each record and perform the following actions:

- Delete the expired DNS records from Route53 and the database
- Send an email notification letting the user know about the DNS record expiration. 


### The Experience
This [PR](https://github.com/DevelopingSpace/starchart/pull/357) took less time to get merged than the one before it, as I am getting comfortable working with the BullMQ API. However, I should take some time to review my code to eliminate any ambiguity or silly errors, which I end up realizing immediately after pushing the code to be reviewed by the project maintainers. On a happy note, Starchart has attracted a new contributor, who raised a PR that closed one of the filed issues. 

### Amending my path
Over the last few months, it's my observation that I have improved in certain areas where I had struggled for a good chunk on my programming journey, and I could not be more happy about that I am amending my professional path.
One step to speed up testing cycle based on code diff. For multiple languages.
Tags: devops, opensource, testing
Published: 2023-03-20 17:55:12

[squ](https://github.com/opensibyl/squ) is a simple enough tool to `squeeze` your test suites and speed up testing cycle based on code diff.

## Before vs After

Before: I have to run all the cases for even a tiny change, which takes 40 minutes. Which means 0.32 USD per push.

<img width="694" alt="image" src="https://user-images.githubusercontent.com/13421694/226383324-80c878de-815b-4a80-8666-772dc44fedf0.png">

```bash
$ pytest --collect-only
============================= test session starts ==============================
platform darwin -- Python 3.7.4, pytest-7.2.2, pluggy-0.12.0
rootdir: /Users/fengzhangchi/github_workspace/stagesepx
plugins: cov-2.7.1
collected 45 items

...

========================= 45 tests collected in 15.30s =========================
```

After: Only need to run the influenced cases.

<img width="705" alt="image" src="https://user-images.githubusercontent.com/13421694/226386547-d4c88519-56b3-4113-b8fe-6cda8e1778d0.png">

```bash
$ ./squ | xargs pytest --collect-only
============================= test session starts ==============================
platform darwin -- Python 3.7.4, pytest-7.2.2, pluggy-0.12.0
plugins: cov-2.7.1
collected 5 items

...

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
========================= 5 tests collected in 14.93s ==========================
```

All you need is simply adding the `./squ | xargs` prefix.

## Usage

| Language | Before     | After                                  |
|----------|------------|----------------------------------------|
| Python   | `pytest`   | <code>squ &#124; xargs pytest</code>   | 
| Java     | `mvn test` | <code>squ &#124; xargs mvn test</code> |
| Golang   | `go test`  | <code>squ &#124; xargs go test</code>  |


But brings much benefits:

| Repo                                                                | Language | Analyze time | Before Cases | After Cases | Optimize |
|---------------------------------------------------------------------|----------|--------------|--------|-------|----------|
| [stagesepx (our own case)](https://github.com/williamfzc/stagesepx) | Python   | ~1 s         | 45     | 0~15  | ~75%     |
| [Jacoco](https://github.com/jacoco/jacoco)                          | Java     | ~7 s         | 1364   | 0~983 | ~50%     |
| [sibyl2](https://github.com/opensibyl/sibyl2)                       | Golang   | ~1 s         | 53     | 0~20  | ~70%     |

See https://github.com/opensibyl/squ for details!