teleren/devto huggingface dataset:
The Future of Cyber security: Safeguarding Nigeria's Society
Tags: cybersecurity, security
Published: 2023-10-12 12:08:37

In today's digitally connected world, cyber security has emerged as a critical concern, and its significance in Nigeria cannot be overstated. As technology continues to advance at a rapid pace, the concept of cyber security is evolving to meet the ever-growing challenges posed by cyber threats.
 Economic Growth: Nigeria's economy is increasingly reliant on digital infrastructure, making it imperative to secure critical systems. A strong cyber security ecosystem can foster trust in online transactions, boost e-commerce, and attract foreign investments, thereby driving economic growth.

 Data Privacy: With the advent of data-driven technologies, safeguarding personal and sensitive information is paramount. Effective cyber security measures ensure the protection of individuals' privacy rights, which is vital in an era of digitization.

 National Security: Cyber threats can have severe implications for national security. A robust cyber security framework can defend against cyber attacks on government institutions, critical infrastructure, and defense systems, ensuring the nation's safety.

 Technological Advancement: As Nigeria aims to become a technological hub, a strong cyber security infrastructure is a prerequisite. It encourages innovation and research in the cyber security field, promoting technological advancement.

 Cyber Workforce: The cyber security sector offers substantial employment opportunities. Investing in cyber security education and training can create a skilled workforce, reducing unemployment rates and contributing to national development.

 Global Competitiveness: A nation with a secure digital environment is more competitive on the global stage. Nigeria can attract international businesses and partnerships by demonstrating a commitment to cyber security.

To harness these future advantages, Nigeria must invest in cyber security education, research, and infrastructure. Collaborative efforts between the government, private sector, and educational institutions are essential to build a cyber-resilient society.

In conclusion, cyber security is not merely a technological concern; it's a societal imperative. The future of Nigeria's society depends on its ability to adapt, innovate, and secure the digital landscape. By prioritizing cyber security, Nigeria can unlock a promising future in the digital age, ensuring the safety, privacy, and prosperity of its citizens.
Under the hood: development in debugger mode
Tags: python, vscode, django, ethereum
Published: 2023-10-12 12:05:48


Let's make a small break in this series of articles regarding backend development for web3 projects with one I hope useful small detail. Namely: development in debugger mode. 

People often jump to debugger at the point when they are already highly frustrated with some stubborn bug. When they already hit the wall and there is no easy solutions. Then they start to think about atomic solution! Run program in debugger mode. And of course there is nothing wrong about that. But for peace of your mind I will propose one simple and slightly different approach: develop your program all the time in debugger mode (not only when problems emerge). This will allow you to see deeper layers of your program. In return this will speed up development time and improve clarity and situation awareness about what is going under the hood at any give point in program execution. 

VS Code allow us to develop Django app in debugger mode very easily. 

Step one: open your VS code in your Django project root folder

Step two: press debugger button from left side 


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



Press create a `launch.json` and select `Python` and then `Django` and you will get in your root folder: 1. new (local Django project related) `launch.json` where all general settings are located; 2. newly created hidden VS code folder `.vscode` (`launch.json` is there).


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

Now just open `view.py` (we presuppose here that you already have  `settings.py` and `urls.py` setted) from your Django app and make `breakpoint` (in case you miss breakpoint are positions where code will stop and allow you to inspect what is going on). 


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


Last: let's run Django server from debugger like this


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

Now if you go to your browser and type in address bar `http://127.0.0.1:8000/name_of_your_app_path/` and go back to VS Code. You will see that debugger stop execution of your code at breakpoint. 


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


Then in left panel you can inspect what is going on with your objects and have in depth view in inner workings of your program. I think this can be extremally helpful at any give point in developmental process.
#Windows11 – Extract Text with Snipping Tool
Tags: englishpost, snippingtool, windows11
Published: 2023-10-18 18:42:13

---
title: #Windows11 – Extract Text with Snipping Tool
published: true
date: 2023-10-12 12:00:00 UTC
tags: EnglishPost,EnglishPost,SnippingTool,Windows11
canonical_url: 
---

Hi!

A couple of months ago, I wrote about how cool it was to use the “Text Extract” Feature in PowerToys ([link](https://dev.to/azure/powertoys-the-best-text-extractor-utility-for-windows11-5dpl)). And hey, this is a super cool feature.

Now we have a similar feature, out of the box directly in Windows 11 with the Snipping Tool ([link](https://blogs.windows.com/windows-insider/2023/08/31/new-updates-for-snipping-tool-and-notepad-for-windows-insiders/)).

Let’s look at this feature, over a screenshot of an OpenAI email. This feature uses Optical Character Recognition (OCR), which means we can now scan the text within our captured images.

We have the option to either copy a selected portion of the recognized text or copy all the text from the screenshot before saving it.

Additionally, you can also censor sensitive text and then copy the remaining part of the text from the image. It’s a handy tool for working with text in your screenshots.

![screenshot of an openai email receipt, where the snipping tool is extracting the text](https://brunocapuano.files.wordpress.com/2023/10/snipping-tool-now-get-text.png?w=1024)

Super cool!

Happy coding!

Greetings

El Bruno

More posts in my blog [ElBruno.com](https://www.elbruno.com).

More info in [https://beacons.ai/elbruno](https://beacons.ai/elbruno)

* * *
Install Incus in WSL2
Tags: incus, lxd, linux, lxc
Published: 2023-10-12 11:56:31

Nape Incus nim ? ia merupakang fork LXD - linux Container. memandangkang pembangunang lxd telah diambil balik oleh Pihok Connicel Ubuntu, makanya saknim, sep-sep Linux Container pong Fork ahh lxd, jadi tubik lah hok baru nama dia Incus. jadi nota hok ambe tulis nim, ambe test dalam WSL2, guna debian 12 deh. soh beng tanya ahh linux lain.. amber dok test. 

Mula-mula skali, kena update wsl dulu. Dalang PowerShell, taip

```
wsl --update
```
lepas tu buka WSL2 Image - sedia ada, misalnya debian, enablekang systemd 

```
cd /etc
touch wsl.conf 
vi wsl.conf
```

Tulis sebagaimana di bawoh. 
```
[boot]
systemd=true
```
lepah tu, restart wsl , guna powershell neh

```
wsl --shutdown
```
pah tu gok, kita install lah incus tu 

```
curl -fsSL https://pkgs.zabbly.com/key.asc | gpg --show-keys --fingerprint
```
mesti nampok key zabbly sebagaimana di bawoh 
```
pub   rsa3072 2023-08-23 [SC] [expires: 2025-08-22]
      4EFC 5906 96CB 15B8 7C73  A3AD 82CC 8797 C838 DCFD
uid                      Zabbly Kernel Builds <info@zabbly.com>
sub   rsa3072 2023-08-23 [E] [expires: 2025-08-22]
```
pahtu deme save key tu guna arahan di bawoh. 
```
curl -fsSL https://pkgs.zabbly.com/key.asc -o /etc/apt/keyrings/zabbly.asc
```

pahtu run arahan tu dalam root atau sudo

```
sh -c 'cat <<EOF > /etc/apt/sources.list.d/zabbly-incus-stable.sources
Enabled: yes
Types: deb
URIs: https://pkgs.zabbly.com/incus/stable
Suites: $(. /etc/os-release && echo ${VERSION_CODENAME})
Components: main
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/zabbly.asc

EOF'
```
```
apt-get update
```
```
apt install incus 
```

bila sudoh siap install incus tu, deme check systemd incus 

```
sudo systemctl status incus 
```

kalu ada, enable kan dia


```
sudo systemctl enable incus 
```

```
sudo systemctl start incus 
```

tapi kalu nok molek, deme restart wsl skali guna powershell.

pastu deme set supaya dok payah tulis sudo sudo doh bila nok run incus. sudo apa kerek kerek.. 

```
sudo adduser YOUR-USERNAME incus-admin
newgrp incus-admin
```

```
incus admin init --minimal
```

pah tu boleh la nok main dengan container pun, kasi test create container satu kali. 


```
incus launch images:alpine/edge alpine
incus exec alpine sh

```
kalu boleh masuk ke alpine tu, kira jadi doh tu . 

ni untuk tengok berapa kontainer ada dalam incus. 
```
incus list 
```

rujukang 
1. https://linuxcontainers.org/incus/docs/main/installing/
2. https://github.com/zabbly/incus
3. https://wsl.dev/wsl2-lxd-funtoo/
Buy Gift Cards with Crypto: The Ultimate Way to Gift and Pay Securely
Published: 2023-10-12 11:56:19

Welcome to the future of gifting and payment! At our platform, you can seamlessly buy gift cards with cryptocurrency, offering you a secure and efficient way to both give and use digital assets. Whether you're a cryptocurrency enthusiast or simply looking for a modern way to shop and share the joy of giving, our service has you covered.

Why Choose to Buy [Gift Cards with Crypto](https://shopviacrypto.com/buy-gift-cards-with-bitcoin/)?

Secure Transactions: Your security is our top priority. With cryptocurrency payments, your transactions are encrypted and decentralized, ensuring your personal and financial information remains confidential.
Endless Choices: Browse our vast selection of gift cards for popular retailers, restaurants, entertainment, and more. Find the perfect gift or treat yourself to your favorite brands.
Instant Delivery: Say goodbye to waiting for physical cards in the mail. Our digital gift cards are delivered instantly to your email or wallet, ready to be used immediately.
Global Accessibility: No matter where you are in the world, you can access our platform and buy gift cards using your preferred cryptocurrency, eliminating the need for currency exchange hassles.
Cryptocurrency Variety: We accept a range of cryptocurrencies, including Bitcoin (BTC), Ethereum (ETH), Litecoin (LTC), and more. Choose the one that suits you best.
Easy Redemption: Redeem your gift cards online or in-store effortlessly, making your shopping experience hassle-free and enjoyable.
Gift and Share: Spread the love by sending digital gift cards to friends and family. It's the perfect way to share your appreciation.
No Hidden Fees: Enjoy transparent pricing with no hidden fees or additional charges. What you see is what you get.
Eco-Friendly: Go green with digital gift cards, reducing the need for physical materials and waste.
24/7 Accessibility: Shop and gift at any time, day or night, to fit your schedule.
[Join the Crypto Gift Card Revolution](https://shopviacrypto.com/)!

Embrace the convenience and versatility of buying gift cards with cryptocurrency. It's a modern and secure way to make payments and share the joy of giving. Shop, gift, and pay with confidence at our platform, where the future of gifting is digital and crypto-friendly.

Start exploring our wide selection of gift cards today and experience a new way to exchange value and express your sentiments with cryptocurrency. It's time to unlock the potential of your digital assets.
Shop via Crypto: Your Ultimate Destination for Secure and Convenient Crypto Shopping
Published: 2023-10-12 11:54:20

Welcome to [Shop via Crypto](https://shopviacrypto.com/), the premier online shopping destination where cryptocurrency meets convenience! At Shop via Crypto, we've harnessed the power of blockchain technology to provide you with a safe, fast, and efficient way to shop for your favorite products and services using cryptocurrency as your preferred payment method.

Why Choose [Shop via Crypto](https://shopviacrypto.com/product/apple-iphone-15-pro/)?

Secure Transactions: Your security is our top priority. With blockchain technology, your cryptocurrency transactions are encrypted and decentralized, ensuring that your personal and financial information remains confidential and protected.
Global Access: Shop via Crypto breaks down geographical barriers, allowing shoppers from around the world to access a wide range of products and services. Say goodbye to traditional payment restrictions and currency exchange hassles.
Wide Product Selection: From electronics and fashion to home essentials and digital services, Shop via Crypto boasts an extensive catalog of products and services, catering to diverse tastes and needs.
Instant Settlements: No more waiting for banks to process your payments. With cryptocurrency, transactions are settled in a matter of minutes, ensuring swift and hassle-free shopping experiences.
Low Transaction Fees: Enjoy lower transaction fees compared to traditional payment methods. Keep more of your hard-earned crypto while shopping for your desired items.
User-Friendly Interface: Our intuitive and user-friendly website ensures that even newcomers to cryptocurrency can navigate effortlessly. You don't need to be a crypto expert to start shopping with us.
Customer Support: Have questions or need assistance? Our dedicated customer support team is here to provide you with prompt and friendly help, ensuring a seamless shopping journey.
Cryptocurrency Variety: Shop via Crypto accepts a variety of cryptocurrencies, including Bitcoin (BTC), Ethereum (ETH), Litecoin (LTC), and more. Choose the crypto that suits you best.
Crypto Education: Not familiar with cryptocurrencies? No worries! We provide educational resources to help you understand and get started with digital currencies.
Partnerships and Discounts: Take advantage of exclusive partnerships and discounts when you shop with us. Get the best deals while paying with your favorite crypto.
Join the Crypto Revolution!

Embrace the future of shopping by choosing Shop via Crypto as your go-to online marketplace. With the security and convenience of cryptocurrency payments, you can enjoy a seamless shopping experience that transcends borders. Say goodbye to traditional payment methods and hello to the future of e-commerce!

Start shopping with Shop via Crypto today and discover a world of possibilities where crypto meets convenience. It's time to unlock the full potential of your digital assets.
Converting markdown to pdf in Python
Tags: tutorial, python, pdf, markdown
Published: 2023-10-12 11:48:42

There are many solutions for the task of automatically converting text in markdown format into a printable pdf file. These solutions based on Pandoc, LaTex, wkhtmltopdf, etc.

I want to share a new (at least for me) solution to this problem in Python.

This solution has the following advantages.

- All dependencies are in requrments.txt, no external binaries.
- There are no problems with non-standard encoding, pictures and the most popular markup elements.
- Ability to use different page sizes within one pdf.
- Customizable mode for creating a table of contents (bookmarks).

This method is based on the use of the libraries [markdown-it-py](https://github.com/executablebooks/markdown-it-py) (conversion from markdown to html) and [PyMuPDF](https://github.com/pymupdf/PyMuPDF) (conversion from html to pdf). A [small Python class](https://github.com/vb64/markdown-pdf/) links them together.

Install

```bash
pip install markdown-pdf
```

Create a pdf with TOC (bookmarks) from headings up to level 2.

```python
from markdown_pdf import MarkdownPdf

pdf = MarkdownPdf(toc_level=2)
```

Add three sections of markdown to the pdf. Each section starts on a new page. Headings from the first section are not included in the TOC.

```python
from markdown_pdf import Section

pdf.add_section(Section("# Title\n", toc=False))
pdf.add_section(Section("# Head1\n\nbody\n"))
pdf.add_section(Section("## Head2\n\n### Head3\n\n"))
```

Set the properties of the pdf document.

```python
pdf.meta["title"] = "User Guide"
```

Save to file.

```python
pdf.save("guide.pdf")
```
Done!
Building My First Full-Stack Web Application with React, MongoDB, Node.js, Express.js
Tags: javascript, webdev, react, beginners
Published: 2023-10-12 11:34:12

Hi everyone!

I am a student who is interested in web development. Please bear with me if there are any mistakes, as this is my first time writing an article.

I am excited to share that I recently built my first web application: a URL shortener! I have been learning web development for a few months now, and I wanted to challenge myself by building something real and useful.

At first, a URL shortener may seem like a small project, but it gave me a solid understanding of how front-end and back-end development communicate with each other.

For the front-end of my application, I used React. This gave me a solid understanding of how components work and how they are updated. I also learned how to use the useState, useEffect hook and how to update values using it.

Create your REACT Project. I have used Vite as my build tool,

```
npm create vite@latest
npm install
```

Then create the HTML Page and then add the required function

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

Adding the functionalities to the application: 


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

For the back-end of my application, I used Node.js and Express. To store the long and short URLs, I used MongoDB. Throughout the back-end development process, I learned what schemas, models, and documents are in MongoDB. I also used Mongoose to carry out operations such as connection, creation, deletion, and others.

Require the needed library


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

Setup the routes:


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

Recent developments with AI models like Bard have made learning easier. These tools gave me an insight into the steps needed to develop an application. This gave me the advantage of not wasting time and getting straight into development. It also helped me with places where I got stuck and helped me to fix them.


You can check it out here:{% embed https://github.com/Anandprabhu530/Url_Shortner %}

Thank you for reading this article. I will be back soon!
Not able to generate unit test coverage report using karma runner after updating Angular 15 to 16.
Published: 2023-10-12 11:22:27


1 - I Changed the packages.json according to New Angular 16 App Demo.
2 - I found a Major point in Angular 16 : karma.conf.js file is not available  
3 - I try to change the angular.json file also according to new Angular 16 App.
4 - I try to change the tsconfig.json file also as per new angular 16 App.

reference : package.json
  "devDependencies": {
    "@angular-devkit/build-angular": "16.2.0",
    "@angular-eslint/builder": "16.1.0",
    "@angular-eslint/eslint-plugin": "16.1.0",
    "@angular-eslint/eslint-plugin-template": "16.1.0",
    "@angular-eslint/schematics": "16.1.0",
    "@angular-eslint/template-parser": "16.1.0",
    "@angular/cli": "16.2.0",
    "@angular/compiler-cli": "16.2.0",
    "@angular/language-service": "16.2.0",
    "@compodoc/compodoc": "1.1.19",
    "@types/jasmine": "~4.3.0",
    "@types/jasminewd2": "2.0.4",
    "@typescript-eslint/eslint-plugin": "5.3.0",
    "@typescript-eslint/parser": "5.3.0",
    "async": "3.2.4",
    "ejs": "3.1.8",
    "eslint": "^8.2.0",
    "eslint-formatter-html-extended": "^1.0.2",
    "eslint-plugin-import": "latest",
    "eslint-plugin-jsdoc": "latest",
    "eslint-plugin-prefer-arrow": "latest",
    "jasmine-core": "~4.6.0",
    "jasmine-spec-reporter": "~5.0.0",
    "karma": "~6.4.0",
    "karma-chrome-launcher": "~3.2.0",
    "karma-cli": "2.0.0",
    "karma-coverage": "~2.2.0",
    "karma-jasmine": "~5.1.0",
    "karma-jasmine-html-reporter": "~2.1.0",
    "minimist": "1.2.6",
    "protractor": "~7.0.0",
    "protractor-jasmine2-screenshot-reporter": "0.5.0",
    "rxjs-tslint-rules": "4.34.8",
    "ts-node": "4.1.0",
    "typescript": "4.9.5",
    "webpack": "5.74.0"
  }
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jx183licxe6u6052gi91.PNG)
FUNDAMENTALS - POINTERS ARE EASY
Tags: programming, computerscience, tutorial
Published: 2023-10-12 10:58:25

You could already have heard about this guy and imagined it as a Hydra from D&D. So today we gonna talk about pointers and show how easy it is.

## Yes, we have to talk about Memory
But before we talk about them, let's see how our programs handle memory. When you create a variable, it is stored in a space in memory and this space has an address to identify the location of it and its value.

We can imagine memory as a set of lockers, where you store your things (variables) and the address as the number to identify the locker.

## Finally, pointers!
So wtf are pointers? Pointers are just references to some space in memory that contains a variable a its values.

Analogy time! Pointers are like your locker key with the locker's number on it.

## But, when we use pointers?
When you pass a variable to a function as a parameter, and your function receives that value, it doesn't receive the original variable but a copy.

```
// Here is a small example in C

// This function gonna receives the copy value
void change_x_value(int x) 
{
    x = 5;
}

int main()
{
    int x = 2;

    printf("Variable before change: %i\n", x);

    change_x_value(&x);

    printf("Variable after change: %i\n", x);
}

// RESULT:
 "Variable before change: 2"
 "Variable after change: 2"
```

So if you want to change the value of the parameters received directly, you just can't. The solution is to pass a pointer (you are just passing a variable that stores an address/reference) as a parameter to the function that tells exactly where the real value is stored in the memory.

```

// This function gonna receives the pointer
// to the variable x and its value 
void change_x_value(int* x)
{
    // * symbol set and get the x variable value 
   // at the specified address
    x* = 5;
}

int main()
{
    int x = 2;

    printf("Variable before change: %i\n", x);
    
// Now I am passing the pointer (just an address) to the function
    change_x_value(&x); // & symbol just get the address of this variable

    printf("Variable after change: %i\n", x);
}

// RESULT:
 "Variable before change: 2"
 "Variable after change: 5"
```

## End
Did you see it? It's easy peasy lemon squeezy, don't need to be afraid of pointers anymore.