teleren/devto huggingface dataset:
VENIA: The next frontier in decentralized, high-speed blockchain systems
Tags: blockchain
Published: 2023-12-27 23:43:02


VENIA's Adaptive Shard Technology is a cutting-edge innovation in the world of blockchain technology. It leverages the concept of dynamic sharding, where the network can spontaneously reorganize into smaller or larger shards based on transaction volume. This adaptability ensures that the blockchain can handle varying loads efficiently, enhancing both the efficiency and scalability of the network.

## Key Features of VENIA's Adaptive Shard Technology:

**High Transaction Throughput:** VENIA is designed to achieve an impressive transaction throughput of 100,000 transactions per second (TPS). This high TPS is made possible by the dynamic sharding mechanism, which adjusts the number of shards in real-time, ensuring that the network can handle large volumes of transactions without congestion.

**Rapid Finality Time:** With a finality time of just 0.5 seconds, VENIA stands out in the blockchain space. This swift time to finality means that transactions on the network are confirmed and become irreversible in half a second, offering near-instantaneous transaction finalization.

**Infinite Scalability:** The unique adaptive sharding approach allows VENIA to achieve what is termed 'infinite scalability.' As the network grows and the number of transactions increases, VENIA can dynamically adjust its shard size and count, effectively scaling up to meet any demand without sacrificing performance.

**Smart Contract Support in Rust:** VENIA offers robust support for smart contracts written in Rust, a language known for its safety and performance. Rust’s features, such as its strong type system and memory safety guarantees, make it an ideal choice for developing secure and efficient smart contracts on VENIA.

**EVM Native Support:** Understanding the importance of compatibility in the blockchain ecosystem, VENIA provides native support for the Ethereum Virtual Machine (EVM). This feature enables seamless migration and integration of applications from the Ethereum network, encouraging a broader adoption and developer engagement.

**Native NFT Support:** VENIA embraces the growing NFT market by providing native support for non-fungible tokens. This integration allows for the creation, exchange, and management of NFTs on the VENIA platform, offering a streamlined and optimized experience for NFT enthusiasts and creators.
Codecademy Algorithms and Pseudocodes Portfolio Project
Published: 2023-12-27 23:38:39

This is my "Algorithm and Pseudocodes" portfolio project for Codecademy. The task was to create an algorithm, flow chart, and pseudocode for a word pattern recognition program.

**Algorithm:**
  1. Input **text**, the message we want to search through.
  2. Input **pattern**, the word we want to search for.
  3. Has all of **text** been searched through?
     If no, continue to step 4.
     If yes, skip to step 8.
  4. Iterate to next character of **text**.
  5. Create a variable **match_count** and set it to equal 0.
  6. Has all of **pattern** been searched?
     If no, continue to step 7.
     If yes, go back to step 3.
  7. Is this character from **pattern** equal to the character 
       from **text**?
     If yes, increment **match_count** variable by 1.
     If no, go back to step 6.
  8. Does the variable **match_count** equal the length of 
       **pattern**?
     If yes, then pattern has been found!
     If no, then no pattern has been found.


**Flow Chart:**

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

**Pseudocode**
  define text
  define pattern
  if the entire text hasn't been searched:
    iterate to next character of the text
    create variable match_count == 0
    if the entire pattern hasn't been searched:
      if this character from pattern is equal to 
    the character from text:
        increment match_count =+ 1
      if match_count equals pattern length:
        pattern found!

Following this algorithm and pseudocode, it is possible to create a code to recognize a certain pattern string within a text string.
Day1 - sacredscrolls development
Published: 2023-12-27 23:36:01

Today, I began working as one of the backend developers on SacredScrolls, a full-stack web application that allows users to study the Bible, Quran, and the Bhagavad Gita all in one place. Whether you are a religious individual seeking a deeper connection with your faith or someone interested in academic learning, SacredScrolls provides a comprehensive platform.

I focused on user authentication and authorization today, successfully implementing authentication with a username and password, followed by authorization using the token received upon login. At the moment, the token allows users to view their user information.

However, I encountered an issue while attempting to use Django's `authentication` method, which should return a user object if the credentials are correct. Regardless of the accuracy of the credentials, I consistently received `None`. I identified the problem as creating a user via the `serializer.save()` method. I initially used this approach to validate incoming JSON data with `serializer.is_valid()`. The problem with using .save() to create a user object is that it saves the object as plaintext in the database. In contrast, using Django's `create_user()` method hashes the password before storing it. The authentication method expected the password in the database to be hashed, leading to the issue.

In summary, today, as a backend developer on "sacredscrolls," I worked on implementing user authentication and authorization for studying religious texts. While successfully integrating authentication and token-based authorization, I faced a challenge due to storing passwords as plaintext using `serializer.save()`, causing issues with Django's authentication method, which expects hashed passwords from `create_user()`.
What to do before diving into tech
Tags: beginners, discuss, codenewbie, community
Published: 2023-12-27 23:34:44

This is my first post, so I thought to share with everyone some things I wish I did at the beginning of my tech journey, so beginners can avoid the mistakes I made.

**Mistake #1: I didn't have a focus**

One mistake I made was not to choose a career in tech to focus on. Honestly at the time, I'm not sure I knew what I was getting into. The right thing for me to have done was to look for a career in tech that suited me and that I would be able to thrive in. I ended up jumping from one thing to the other. If I had focus right from the start, I would have been better off. Before jumping into tech, choose a focus, a career that suits you and that you would thrive in.

**Mistake #2: I didn't look for guidance**

Guidance is one very important thing. I should have sought guidance. By guidance I mean, where to start, and  how to start. A roadmap to follow. Since I didn't have a roadmap, I jumped from one thing to the other under web development. I still didn't have a focus. Following a roadmap is a lot better. Recently I started learning backend development with python. I have a roadmap, I know where I'm going. I've learned the language, now I'm learning flask, next I'll learn Django, and then databases and so on. Don't get me wrong though, I still struggle with the problem of jumping around, plus I'm a bit lazy. That aside, you need to follow a roadmap; you'll achieve more. You can go online and look for a roadmap on how to develop yourself in the area you have chosen.

**Mistake #3: I didn't connect with the tech community**

If I had joined the tech community earlier, I would progressed a lot more. So join the community, you'll develop better that way. If you're already here, your off to a great start continue.

You might have made mistakes during your tech journey. Share some! We can all learn
Setting up development blog
Tags: blog, beginners, tutorial, productivity
Published: 2023-12-27 23:26:30

Creating a development blog can be a great way to share your programming knowledge and experiences with others. Whether you're a beginner or an experienced developer, a blog can be a great platform to showcase your work and connect with other developers in the community.

Here are the steps to setting up your development blog:

1. Choose a platform: There are many different platforms you can use to create your blog, such as WordPress, Jekyll, or Ghost. Each platform has its own set of pros and cons, so it's important to choose one that best fits your needs.

2. Choose a domain name: Your domain name is the web address that people will use to access your blog. It's important to choose a domain name that is easy to remember and relevant to your blog's topic.

3. Set up hosting: Hosting is what allows your blog to be accessible on the internet. You can either set up hosting yourself or use a hosting service.

4. Customize your blog's design: Most blog platforms allow you to customize the design of your blog. You can use a pre-made template or create your own.

5. Create content: Once your blog is set up, it's time to start creating content. You should write about topics that you're passionate about and that you think will be interesting to your audience.

6. Promote your blog: Once you have some content on your blog, it's time to start promoting it. Share your blog's link on social media, participate in online communities, and reach out to other bloggers in your niche.

A development blog can be a great way to share your knowledge and connect with other developers. By following these steps, you can set up your own blog and start building your audience.
Thala for a reason!!!!!!!
Tags: webdev, javascript, basic, thala
Published: 2023-12-27 23:26:20

I worked on a simple project during my spare time. It's a simple application that determines whether any alphanumeric string can form a combination resulting in the number 7, humorously referred to as "Thalafied."

Was trying to create a custom HTML tag ( in progress ) for other websites to incorporate, so the code might look messy.

Check it out here - https://thalafier.vercel.app/

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dc9gxcwgeui74lx9oyv9.png)
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8b8v7vtrb6j0o69ovbnn.png)
HOW TO RECOVER LOST BTC - DIGITAL WEB RECOVERY
Published: 2023-12-27 22:50:29

It is possible to lose fortunes just as quickly as find them in the maze-like depths of the digital world. Before a single mistake sent my Bitcoin into the deep end, the world of cryptocurrencies was, for me, a place of limitless possibilities. I stared at the empty wallet, the weight of despair trying to overwhelm me, my heart hammering against my ribs like a trapped bird. But then Digital Web Recovery showed itself, a ray of hope emerging from the darkness. Their siren song was "Bitcoin Recovery," a melody that resonated with the desperation gnawing at my soul. Could it be true? Could these digital alchemists truly transmute my despair into retrieved riches? With a hesitant click, I embarked on a journey with Digital Web Recovery, a journey that would redefine my faith in the digital unknown. The procedure was methodical, a deft tango between human skill and sophisticated machinery. The crew at Digital Web Recovery, a symphony of brilliant minds, painstakingly examined the ruins of my virtual shipwreck. They explored the dark recesses of the blockchain, their algorithms acting as sonar pings to illuminate the way to possible rescue. Their commitment was a comfort to my nervousness as each step was patiently and clearly explained. Sufficient strain to cut through and then out of the darkness came a beacon of light. A notification emerged from the depths of obscurity, bearing a glimmer of hope: a portion of my Bitcoin had been saved. Even though it was a minor triumph, it was nonetheless one. It proved that Digital Web Recovery was more than just a marketing gimmick; instead, they were actual digital knights on the run, saving misplaced riches from the jaws of the virtual dragon. The retrieval proceeded, a slow steady trickle that built up to a torrent over time. Every Bitcoin that was recovered served as evidence of Digital Web Recovery's expertise and as a pillar supporting my rekindled faith. Ultimately, they were able to retrieve a large chunk of my lost wealth, which still makes me feel quite grateful. More than just a service, Digital Web Recovery is a lifeline and evidence of the creativity and kindness that persist in the digital frontier Email: digitalwebrecovery(@)mail-me.com They serve as evidence that hope can be found and lost things may be found again, even in the most remote and dangerous places on the internet. Do not give up if you end up lost in the virtual ocean with your Bitcoin being swept away by bad luck. Keep in mind with Digital Web Recovery; they might hold the secret to achieving your own digital happily ever after. I assure you to get back what you lost by contacting Digital web recovery on Telegram User: @digitalwebrecovery
Jasa Pijat Panggilan: Praktis dan Nyaman untuk Menikmati Manfaat Pijat
Tags: pijat, massage
Published: 2023-12-27 22:36:53

Pijat adalah salah satu terapi kesehatan yang telah digunakan sejak zaman dahulu. Pijat memiliki banyak manfaat, antara lain membantu mengurangi stres, meningkatkan sirkulasi darah, memperlancar pencernaan, meningkatkan kualitas tidur, dan membantu meredakan nyeri.

![Jasa Pijat Panggilan](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nazk0c2hk5woxsky304b.png)
Jika Anda ingin menikmati manfaat pijat, kini Anda tidak perlu pergi ke tempat pijat. Anda dapat memanfaatkan jasa pijat panggilan. Jasa pijat panggilan adalah layanan pijat yang dilakukan oleh terapis yang datang ke rumah atau tempat Anda. Layanan ini sangat praktis dan nyaman, karena Anda tidak perlu pergi ke tempat pijat.

Berikut adalah beberapa manfaat menggunakan jasa pijat panggilan:

* **Praktis**
Anda tidak perlu pergi ke tempat pijat. Terapis akan datang ke rumah atau tempat Anda.
[Image of Terapis pijat panggilan]
* **Nyaman**
Anda dapat pijat di tempat yang nyaman, yaitu di rumah atau tempat Anda.
* **Privasi**
Anda dapat pijat dengan privasi, karena terapis hanya melayani Anda saja.

Ada berbagai jenis pijat panggilan yang tersedia, antara lain:

* **Pijat tradisional**
Pijat tradisional adalah jenis pijat yang menggunakan teknik pijat yang telah diturunkan secara turun-temurun.
* **Pijat refleksi**
Pijat refleksi adalah jenis pijat yang menggunakan teknik pijat pada titik-titik refleksi di kaki.
* **Pijat shiatsu**
Pijat shiatsu adalah jenis pijat dengan tekanan yang kuat.
* **Pijat aromatherapy**
Pijat aromatherapy adalah jenis pijat yang menggunakan minyak esensial untuk memberikan efek relaksasi.
* **Pijat prenatal**
Pijat prenatal adalah jenis pijat yang khusus untuk ibu hamil.

Untuk memesan jasa pijat panggilan, Anda dapat menghubungi nomor telepon yang tertera di website atau brosur. Anda akan diminta untuk memberikan informasi tentang lokasi, jenis pijat, dan waktu pemesanan.

Saat memilih jasa pijat panggilan, Anda perlu memperhatikan beberapa hal berikut:

* **Pastikan terapis memiliki sertifikat yang valid**
Sertifikat yang valid menunjukkan bahwa terapis telah mengikuti pelatihan dan memiliki keterampilan pijat yang baik.
* **Tanyakan pengalaman terapis**
Pengalaman terapis dapat menjadi pertimbangan dalam memilih terapis.
* **Pastikan terapis memiliki keterampilan pijat yang baik**
Anda dapat menanyakan kepada terapis tentang keterampilan pijat yang dimilikinya.

[Jasa pijat panggilan](https://halomassage.id/) adalah pilihan yang tepat untuk Anda yang ingin menikmati manfaat pijat dengan praktis dan nyaman.
How to Increase File Upload Size in Django Backend
Tags: django, programming, backenddevelopment, python
Published: 2023-12-27 22:32:14


Handling file uploads in Django is usually a breeze with the convenient request.data or request.FILES. However, there are situations where you might find yourself needing to up the ante on the maximum allowed file upload size for your Django backend server. Fear not! This guide is here to walk you through the process by tweaking the right knobs in Django's configuration.

## Understanding Memory Size Settings

In the Django universe, two unsung heroes govern the realm of file uploads: DATA_UPLOAD_MAX_MEMORY_SIZE and FILE_UPLOAD_MAX_MEMORY_SIZE. These settings are like the unsung heroes that ensure optimal memory usage during the file upload dance. Getting to know them is key to preventing hiccups and ensuring silky-smooth file uploads on your Django backend server.

### DATA_UPLOAD_MAX_MEMORY_SIZE

This setting in Django dictates the maximum size in bytes that a request body can be before sounding the alarms with a SuspiciousOperation. Defaulting to 2.5 MB (2621440 bytes), this setting keeps a watchful eye on incoming data.

### FILE_UPLOAD_MAX_MEMORY_SIZE
This setting is the maestro that controls the maximum size (in bytes) a file can be before taking it off the memory stage and onto the file system. Imagine a user uploading a file through a Django form—the file starts off in memory. But, if it decides to be a bit too big for its digital britches and crosses the set limit, off it goes to temporary storage (a.k.a. the disk) during the upload performance.

### Fine-Tuning the Symphony: DATA_UPLOAD_MAX_MEMORY_SIZE and FILE_UPLOAD_MAX_MEMORY_SIZE
Let's paint a picture to illustrate this harmony. Suppose DATA_UPLOAD_MAX_MEMORY_SIZE is set to 20M, and FILE_UPLOAD_MAX_MEMORY_SIZE is strutting its stuff at 15M. If someone tries to upload a file larger than 25 MB, brace yourself—error incoming. To dodge this digital bullet, simply crank up DATA_UPLOAD_MAX_MEMORY_SIZE to a safer 30M. Voila! No more errors.


```python
# settings.py

DATA_UPLOAD_MAX_MEMORY_SIZE = 30 * 1024 * 1024  # 30 MB
FILE_UPLOAD_MAX_MEMORY_SIZE = 15 * 1024 * 1024  # 15 MB
```

Now, when users upload files less than 15 MB, the data gracefully pirouettes in memory. However, if it decides to be a heavyweight contender and crosses the 15 MB threshold, it elegantly glides to the disk, ensuring a perfect balance between memory usage and efficient file handling.

With these settings in your Django symphony, you can customize the upload experience, making it error-free and seamless for users interacting with your Django backend server. Happy uploading!
Who wants to learn Python with me? (not from me)
Published: 2023-12-27 22:17:37

Who wants to learn Python with me?

If you:

- don't already know python,
- enjoy learning a language by pairing with another developer,
- are fine with it being recorded and published as a podcast,
- like to learn things in a slightly unconventional manner (read: more practicality, less theory),

...Well, you have a choice now!

`Come join me in my quest for Python-knowledge.`

{% embed https://youtu.be/VptKhxj9XJw %}
🚀 Revolvendo o problema de hydratação com nextJs 14 🚀
Tags: nextjs, react, frontend
Published: 2023-12-27 22:10:26

Olá desenvolvedores!!!

**O problema:** 
 
Atualmente passei por esse problema, o famoso "_hydration for rendering_" com o **nextJs14**

**A solução:**

Utilizando o hook useEffect só roda no cliente, então agora podemos mostrar a UI com segurança para o usuário, dessa forma como segue no código abaixo:

```
'use client'

import { useState, useEffect } from 'react'
import { useTheme } from 'next-themes'

const ThemeSwitch = () => {
  const [mounted, setMounted] = useState(false)
  const { theme, setTheme } = useTheme()

  // useEffect only runs on the client, so now we can safely show the UI
  useEffect(() => {
    setMounted(true)
  }, [])

  if (!mounted) {
    return null
  }

  return (
    <select value={theme} onChange={(e) => setTheme(e.target.value)}>
      <option value="system">System</option>
      <option value="dark">Dark</option>
      <option value="light">Light</option>
    </select>
  )
}

export default ThemeSwitch

```

![Image description](https://cdn.pixabay.com/animation/2023/12/07/08/37/08-37-00-420_512.gif)
Adventofcode 🎄: Learning React!
Tags: beginners
Published: 2023-12-27 22:08:42

Hello Developers,

I hope you had a great Christmas🎄 in this short blog I am going to recommend some resources to learn React.

Let us begin!

There are numerous resources available to help you get started...

**Online courses**

**Udemy:** This course covers React fundamentals, hooks, and state management with Redux.

**Codecademy:** Codecademy offers an interactive React course for beginners.

**freeCodeCamp:** This is a free full course available on YouTube covering React basics and more.


**Practice**

**CodeSandbox:** Practice building React applications in an online code editor.

**Community and Forums**

**Stack Overflow:** Browse or ask questions related to React on Stack Overflow.

**Official Documentation**

**React Official Documentation:** The official documentation is an excellent starting point. It provides a comprehensive guide to understanding React concepts and building React applications.

_Practice is key, so try to build small projects to solidify your understanding of React concepts. Good luck on your React learning journey!!_
How to get the keys without pressing enter in rust ⌨️
Tags: rust, beginners, programming, opensource
Published: 2023-12-27 22:08:34

The standard rust library does not support getting keyboard events in raw mode to capture keys without pressing enter. So, if you are in **linux**: in this post I am going to show you how to obtain the events and keys using the lightweight crate [k_board](https://crates.io/crates/k_board).

```toml
[dependencies]
k_board = { version = "1.2.1", features = ["standar", "f", "alt_lower_letter", "ctrl_lower_letter", "lower_letter"] }
```

```rust
use k_board::{keyboard::Keyboard, keys::Keys};

fn main() {
    for key in Keyboard::new() {
        match key {
            Keys::Char('q') => break,
            Keys::Up => println!("Up arrow press"),
            Keys::Ctrl('t') => println!("Ctrl + t press"),
            Keys::Alt('p') => println!("Alt + p press"),
            Keys::Char('+') => println!("+ press"),
            Keys::F(2) => println!("F2 press"),
            Keys::Char('7') => println!("7 press"),
            _ => (),
        }
    }
}
```


## What do features do?

Considering that efficiency in code is vital for developing a high-performance program, **you can choose which parts of the keyboard will be listened to during runtime**. If you only want to use the arrow keys and enter for your program, you can simply add it to your repository without features. However, **if you want to use letters, numbers, special combinations, then you'll have to add it as a feature**.

See you in the next post!🥰
Bandit Level 20 Level 21
Tags: ctf, writeup, overthewire, bandit
Published: 2023-12-27 21:44:50

## Introduction

Welcome back tothe OverTheWire Bandit challenges. In this level, we encounter a scenario involving networking and data transfer.

## Previous Flag

Before we delve into the current challenge, let's input the flag from the previous level:

Flag:

```
VxCazJaVykI6W36BkBU0mJTCM8rR95XT
```

### Netcat

The provided command involves using Netcat (`nc`) to transfer the contents of the `/etc/bandit_pass/bandit20` file over a network connection. Let's break it down:

```bash
cat /etc/bandit_pass/bandit20 | nc -lvp 1234 &
```

This command reads the password from the file and sends it over a network connection. The `nc -lvp 1234` part sets up a Netcat listener on port 1234, waiting to receive the data.

### Connecting with suconnect

Now, let's use the `./suconnect` command to establish a connection and retrieve the password:

```bash
./suconnect 1234
```

This command initiates a connection to the Netcat listener on port 1234, allowing us to receive the contents of the password file.

### Flag Unveiled

Upon successful execution, the password for Bandit level 21 should be displayed, providing us with the key to the next stage:

Flag:

```
NvEJF7oVjkddltPSrdKEFOllh9V1IBcq
```