teleren/devto huggingface dataset:
Different Roles of Penetration Testers and Security Researchers
Tags: webdev, cybersecurity, security, testing
Published: 2023-08-09 08:54:04

Both penetration testers and security researchers play important roles in identifying and mitigating cybersecurity vulnerabilities. However, there are some key differences between the two roles:

Job Duties
Penetration testers simulate cyber attacks to identify vulnerabilities in systems and networks. Their job is to find weaknesses that malicious hackers could exploit.
Security researchers identify vulnerabilities by analyzing systems, source code, and networks. Their goal is to understand the root cause of vulnerabilities and develop effective mitigation solutions.
Required Skills
Penetration testers need skills in ethical hacking techniques, network scanning, and vulnerability scanning.
Security researchers need skills in reverse engineering, code analysis, and fuzz testing. They also need strong problem-solving abilities to develop effective solutions.
Tools Used
Penetration testers use tools like Metasploit, Nmap, and Burp Suite.
Security researchers use tools like IDA Pro, OllyDbg, and Wireshark for reverse engineering and code analysis. They may also use fuzzing tools like Peach Fuzzer or AFL.
In summary, while both roles are important for cybersecurity, penetration testers focus more on actively finding vulnerabilities through simulated attacks. Security researchers take a more analytical approach to understand the root cause of vulnerabilities and develop long-term mitigation solutions.

Hope this helps explain the differences between penetration testers and security researchers! Let me know if you have any other questions.
Python: Imports and modules
Tags: python, modules, programming, beginners
Published: 2023-08-09 08:32:36

When writing scripts in Python, some definitions prove to be useful in different scripts; instead of rewriting these definitions in several files, importing modules can make this process less cumbersome.

## What is a module?

- A module is a file containing Python definitions and statements, the specific file name is simply suffixed by .py
- Importing a module in Python allows you to access the functions, classes, variables, and other objects defined within that module for use within your Python script. 

## What are the contents of a module?

- Python modules contain various objects such as functions, variables among others.
- For example: we have module named calc; within the calc.py file we have 4 function definitions for mathematical operations i.e., add, sub, multiply, divide.
- We can import the calc module into a script where we want to perform these mathematical operations instead of redefining them again within the script.
- Modules contain executable statements as well, which are used to initialize the module and are run only the first time the module name is encountered in an import statement.

## How to import modules

1. import 'module': this allows access to the entire module from the script.
2. from 'module' import 'object': using the ‘from’ keyword allows you to access specific objects within the module i.e. from math import pi; this imports the pi variable of the math module.
3. from 'module' import *: using the * wildcard allows access to all the names within the module except those starting with an ‘_’; this is not recommended as it introduces an unknown set of names into the interpreter, possibly concealing some parts that you have already defined.
4. python3 -m 'module' 'file_name': modules can be imported in the command-line as well; the -m represents the module, we then specify the module name, and the name of the file in which we want to use the module. 

## Module search path 

- When a module is imported e.g. calc, the interpreter first searches for a built in module with the name calc, the module names are listed in sys.builtin_module_names; if the name is not found, it proceeds to search for the calc.py in a list of directories given by the variable sys.path.

## References:

- https://docs.python.org/3/tutorial/modules.html
Enhance Task Management Efficiency: Building an Efficient To-Do App with Next.js and Vercel
Tags: react, nextjs, vercel, typescript
Published: 2023-08-09 08:17:38

In the fast-paced world of today, having an efficient task management tool is crucial for both work and personal life. I'm excited to introduce my latest project – a to-do app built using Next.js and Vercel. Whether it's organizing work schedules, planning study sessions, or tracking personal goals, this app will be your handy assistant.

## Project Overview
This to-do app is not just your average to-do list. With careful consideration of user needs and leveraging the power of Next.js and Vercel's hosting capabilities, I've brought you a feature-rich and user-friendly task management tool.

## Key Features
1. Clear Task Categorization
We all know that a successful task management tool needs to let users categorize tasks. In this to-do app, you can easily create dedicated categories for different types of tasks. From work to personal affairs, you can create and manage categories as needed, ensuring that each task has its unique place.

2. Intelligent Task Status Marking
Task status is crucial for effective task management. This app allows you to set status markers for each task, such as "completed," "pending," and more. This will help you have a clear overview of the progress of each task, allowing for better time and resource management.

3. Responsive Interface Design
Built with a responsive design, this to-do app ensures an excellent experience across different devices. Whether you're using a computer, tablet, or smartphone, the interface automatically adapts to different screen sizes, allowing you to manage tasks anytime, anywhere.

4. Clean and Powerful User Experience
I understand the importance of user experience, so I've focused on keeping the interface clean while maintaining functionality. You can easily add, edit, and delete tasks, and even customize task colors, priorities, and other details.

## Getting Started
If you're intrigued by this project, you can find the complete source code and detailed documentation in my GitHub repository. Visit the project page: GitHub - [AnsonZnl/react-nextjs-todolist](https://github.com/AnsonZnl/react-nextjs-todolist)

If you find this project helpful and valuable, feel free to give it a star – it's the biggest support for my work.

## Conclusion
My goal is to provide you with an efficient, intuitive, and user-friendly task management tool that helps you organize tasks, plan time, and improve efficiency in both work and life. I believe this Next.js and Vercel-powered to-do app will become your trusty assistant, helping you tackle each day's challenges.

If you have any questions, suggestions, or feedback, don't hesitate to reach out on the GitHub project. Thank you very much for your attention and support!
How to build an Instagram Video Downloader?
Tags: downloade
Published: 2023-08-09 08:08:38

I am trying to build in Python an Pinterest video downloader like [pintodown](https://pintodown.net/) that receives as input some links from Pinterest (from a csv file) and then goes through each link and download the video to a folder.

I have tried using a library named Instascrape but it is not working.

Does anyone know any other solution that might work for this problem?
OracleBootCamp - Chennai - 12 Aug 2023
Published: 2023-08-09 08:07:16

Folks,
I’m will be starting Oracle Boot Camps / Workshop at Chennai  on Oracle Cloud and Database technologies these events are free for public ( limited seats available ) 

Looking for an engaging session on 12-Aug-2023

{% embed https://meetu.ps/e/MmZFW/12zQmm/i
 %}
# #oracle #oci #database #oraclebootcamp
Captcha Solver: Bypass and Auto Enter Captcha
Published: 2023-08-09 08:06:21

Extension link: [https://chrome.google.com/webstore/detail/captcha-solver-auto-recog/ifibfemgeogfhoebkmokieepdoobkbpo](https://share.kz/geCc)

Captcha Solve is the official 2Captcha extension that finds captchas on pages and solves them automatically in the background. The extension allows you to bypass most types of captchas, including ReCaptcha, hCaptcha, GeeTest, Arkose Labs Captcha, FunCaptcha, KeyCaptcha, Lemin, Capy Puzzle Captcha, Yandex Smart Captcha, Cloudflare Turnstile, Amazon AWS WAF Captcha and others. The price for 1 captcha solution is 0.16 rubles, and funds are debited only for automatically solved captchas.

To use the extension, you need to register on the 2Captcha.com website , top up your balance and enter the API key into the extension. After that, the extension will work in the background and automatically solve captchas on the pages.

One of the main advantages of the extension is its complexity. It allows you to bypass most types of captchas, making it a versatile tool for automatically solving captchas on various sites. In addition, the extension allows you to significantly reduce the time spent on solving captchas, which is especially important for users who work with a large number of sites.

In conclusion, the Captcha Solve extension is a handy and efficient tool for automatically solving captchas on pages. It allows you to bypass most types of captchas, works in the background and can significantly reduce the time spent on solving captchas. If you are looking for a versatile tool to automatically solve captchas, then the Captcha Solver extension is a great choice.
Not So Obvious Semantic Changes (Part 2 of 3)
Tags: perl, rakulang, programming, migration
Published: 2023-08-09 07:30:00

## About $_
In Perl, `$_` is a global variable which may be localised for certain scopes, like in a `for` loop.  This means that it is trivial in Perl to make a subroutine that accesses `$_` of the caller's context:
```
# Perl
sub topic_squared {
    say $_ * $_;
}
$_ = 42;
topic_squared;  # 1764
```
However, in Raku, `$_` (aka “ the topic variable “) is **always** lexical.  This means that it is (almost) impossible to write a subroutine that uses the value of `$_` from the scope of the caller.

This also means that idiom such as a bare `say` cannot work in Raku, as basically almost all commands in Raku are just subroutines.  So it was decided to not support that idiom in Raku:
```
# Raku
for 1..10 {
    say;  # Unsupported use of bare “say"
}
```
Fortunately, there **is** a syntax that is almost as small in Raku:
```
# Raku
for 1..10 {
    .say;  # calls method "say" on $_
}
```
This calls the `say` method on `$_`.  As we’ve seen, the period is used in Raku to indicate method calling.  If you call a method on "nothing", then it will assume the current topic, so will use `$_` for that.

## $a and $b are not special
In Perl, the variables `$a` and `$b` are special in that you do not have to define them before you can use them:
```
# Perl
use strict;  # MUST define variables before using them
$a = 42;     # except $a
$b = 666;    # and $b

say $a;  # 42
say $b;  # 666
```
So why does Perl have that?  Well, Perl will fill those variables in certain contexts for you, specifically when doing a `sort`:
```
# Perl
my @sorted = sort {
    $a cmp $b    # $a and $b set to each value in turn to compare
} @files;
```
In Raku there are several ways to do the same, but the easiest to remember is the auto-signature syntax:
```
# Raku
my @sorted = sort {
    $^a cmp $^b    # generates signature -> $a, $b
}, @files;
#↑ note: comma is needed
```
Note that the `^` in this example is called a ["twigil"](https://docs.raku.org/language/variables#The_^_twigil) (as in "secondary sigil").

More on signatures in future blog posts.

# Summary
In this blog post the subtle different semantics of `$_` between Perl and Raku are handled, and it is shown that Raku doesn't have the direct equivalent of Perl's `$a` and `$b`, but that there is a more flexible alternative using secondary sigils.
Simple state management in RoR html.erb files
Tags: rails, webdev, jquery, redux
Published: 2023-08-09 07:38:24

The issue I was trying to solve was that I wanted to use state management and I was coding in Rails. Rails's views html.erb are so convenient to work with, on the other hand state management in frameworks like React are really enticing. Since I chose Rails views, I lose the power of state management. So I researched about simple state management tool asking Chat Gpt. Then I came to know the answer, redux.js. 

**index.html**

```html
<html>
<body>
	<input id="myname" type="text" width="200px" />
	<span id="repeatMyName"></span>
  <span id="repeatMyName2"></span>
</body>
</html>
```
In here I was declaring, a Reducer(a place where I can set the variable of the state)
,which is called myReducer.


**store.js**

```javascript
function myReducer(state=[],action){
  switch(action.type){
    case 'SET_MY_NAME':
      return {...state,myName:action.payload}
    default:
      return state;
  }
}

function createStore(reducer) {
    let state;
    let listeners = [];

    const getState = () => state;

    const dispatch = (action) => {
      state = reducer(state, action);
      listeners.forEach(listener => listener());
    };

    const subscribe = (listener) => {
      listeners.push(listener);
      return () => {
        listeners = listeners.filter(l => l !== listener);
      };
    };
```

Back to index.html, I can start using state like this
**index.html**

```html
<script>
$(document).ready(function(){

  $("#myname").on('keyup',function(event){
      store.dispatch({ type: 'SET_MY_NAME', payload: event.target.value});
    });
  
  store.subscribe(() => {
    const currentState = store.getState();
    $('#repeatMyName').text(currentState.myName);
    $('#repeatMyName2').text(currentState.myName);
  });
  
})  
</script>
```

In codepen, I can't write script in html view, anyway this is my pen link.

https://codepen.io/zawhtutwin/pen/wvQZYxK
Features of AgensGraph
Tags: apacheage, agenssq, bitnine, agensgraph
Published: 2023-08-09 07:34:15


AgensGraph is a flexible and effective tool for organizing graph data and performing graph-based analytics. AgensGraph's capabilities provide a solid foundation for these tasks, whether you're working with complicated relationships, running complex queries, or deriving insights from the connections in your data.
Here are six main features of the AgensGraph which make it such a useful and efficient tool to perform these tasks.



## Hybrid Query Processing:

Cypher is one of the most effective graph query languages in the graph domain.Both Cypher and SQL are supported in the graph domain of AgensGraph. AgensGraph's hybrid query technology helps you get the greatest performance by creating, updating, and querying graph data.



## Graph Data Model: 
The data in Agens Graph is represented as nodes, edges, and attributes according to a graph data model. This approach is best suited for situations in which links and relationships between data elements are essential for analysis and insights.



## Graph Algorithms: 

Users are now able to complete a variety of graph analysis tasks within AgensGraph by the help of built-in graph algorithms. These algorithms, like shortest-path calculations and community recognition, offer helpful information about the graph's structure and properties.



## Indexing and Query Performance: 

Agens Graph uses indexing methods that are tailored for graph data. By facilitating quick traversal and pattern matching, these indexes greatly boost query speed, especially when working with large-scale graph databases.



## Integration with PostgreSQL Ecosystem: 

Agens Graph is developed on top of PostgreSQL, so it gains access to that database's extensive ecosystem. Support for numerous data formats, extensions, tools, and integrations are all included, creating a complete environment for data management and analysis.



## Schema Flexibility: 

With Agens Graph, you don't need a predetermined schema in order to create nodes, edges, and properties dynamically . This adaptability makes dealing with dynamic data structures easier and improves  the process of adding new data elements.
How Code Signing Process Work?
Tags: cybersecurity, tutorial, developers, programming
Published: 2023-08-09 07:32:32

![How Does Code Signing Work](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oqejfvy6ahrd93cjxpvl.jpg)Code signing certificates are issued by Certificate Authorities (CAs) and are used to sign the code of software, scripts, drivers, executables, etc. to secure them from unauthorized alteration and tampering and also validate the publisher's identity, which authenticates the software source as legitimate and trustworthy for users.

But, this is possible only when the developer completes the signing process by applying a digital signature to the code, which involves some specific steps such as:

1. In the first step, the publisher need to request the signing Certificate from a Trusted Certificate Authority (CA) such as [DigiCert Code Signing Certificate](https://signmycode.com/digicert-code-signing) by completing the CA based validation process.

2. The Certificate Authority (CA), like DigiCert, verifies the publisher's identity and then only issues the requested code signing certificate to the publisher.

3. The publisher uses the issued Signing Certificate and Private Key to create a unique **Digital Signature** for signing the software code.

4. Whenever the end user downloads the signed software or application, their system Decrypts the signature using a **Public Key** to authenticate the software source as legitimate

5. Furthermore, the system authenticates that the code signing certificate belongs to a trusted CA through a **"Root"** certificate with a valid identity.

6. In this step, the system compares the **Hash Value** used to sign the code against downloaded software.

7. As per Step 6, if the Hashes Match and the System trusts the Root certificate, the Software is authenticated to be Trustworthy for Download and Installation on the system. 

8. In case of the opposite scenario, if the Hashes don't match, the system recognizes the software source as unsafe by giving a warning message to the user and interrupting the download process.


To conclude, the summation of these 8 Steps is the core [Process of Code Signing](https://signmycode.com/resources/code-signing-architecture-how-does-it-work) used for digitally securing software, applications etc. from the threat of unauthorized tampering or alteration.
How to get more suggestions from GitHub Copilot
Tags: ai, tutorial, githubcopilot, github
Published: 2023-08-09 07:20:54

Have you ever wanted more from GitHub Copilot? Has GitHub Copilot ever made a suggestion where you thought "I wish I had more options?" Good news, you can! GitHub Copilot can provide you with multiple suggestions for your code.

Here's how.

## GitHub Copilot suggestions

When you normally use GitHub Copilot, you'll be provided with a suggestion. This is known as "ghost text". You can accept GitHub Copilot's response by pressing `ENTER` on your keyboard.

GitHub Copilot's ghost text:
![GitHub Copilot suggestion](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wgln2fbxoley6ve4bcu5.JPG)

Accepting GitHub Copilot's output:
![Accepted code](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d38w7dxyvvbh9qxkoths.JPG)

If you don't like GitHub Copilot's idea, then you can continue to type, or press `DELETE` on your keyboard.

Wouldn't it be great to be given a few options to chose from when working with GitHub Copilot? Here's how to get more than one idea when using GitHub Copilot.

## Get multiple suggestions

<ol>1. When using GitHub Copilot in your editor, instead of waiting for the ghost text to appear, press `CTRL` + `ENTER` on your keyboard (⌘ + `ENTER` on Mac).</ol>

<ol>2. Instead of ghost text, you'll see a pop-up window appear. This is called the completions panel. The panel will provide you with up to ten different suggestions.</ol>

The completions panel pops up in the GitHub Copilot tab on VS Code:
![Completions panel](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nwsg72o38k3eso49o6z5.JPG)

Up to 10 code blocks will be provided:
![GitHub Copilot suggestions](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0a2vf6tffgypsbb4rt82.JPG)

<ol>3. Select the suggestion you like by hovering over the desired code and clicking "Accept Suggestion".</ol>

Accepting the suggestion:
![Accept solution](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/425e5ay0x3mej1ukw8l7.JPG)

## Try it out

Open your editor of choice and try it out for yourself. Check out the video tutorial if you want to see GitHub Copilot suggestions in action:

{% youtube VwxYD7YzhvQ %}
Chrome插件开发 - 插件介绍
Published: 2023-08-04 03:16:56


## 浏览器插件类型

通过浏览器插件可以实现一些自定义功能，比如：自定义背景、字体、浏览模式等。

在所有浏览器中，chrome 是最具扩展性，firefox、edge 等也不错。而且有些插件通用兼容 firefox 和 edge。

主题插件：[【All Chrome Themes】](https://chrome.google.com/webstore/category/themes?hl=en-GB)

新窗口插件：比如[daily.dev](https://daily.dev/) [【Some new tab extension on chrome】](https://chrome.google.com/webstore/category/collection/customize_your_new_tab_page)

弹窗插件：

- [Lighthouse](https://chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk)
- [Developer toolbar](https://chrome.google.com/webstore/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm)
- [Metamask](https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn)

以下是 Lighthouse 弹窗插件界面
![rxfcjO](https://cdn.jsdelivr.net/gh/manonicu/pics@master/uPic/rxfcjO.jpg)

页面注入插件

- [Redux devtools](https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd)
- [Black magic](https://chrome.google.com/webstore/detail/blackmagicso-extension/efnjehgfpbogpclnkikafpbgbahaflfd)
- [JSON viewer](https://chrome.google.com/webstore/detail/json-viewer/gbmdgpbipfallnflgajpaliibnhdgobh)

开发者工具插件

这可能是开发者接触的比较多的插件，比如：

- [React devtools](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi)
- [Polymer devtools](https://chrome.google.com/webstore/detail/polymer-devtools-extensio/mmpfaamodhhlbadloaibpocmcomledcg)
- [Ember inspector](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)