teleren/devto huggingface dataset:
Top 11 ChatGPT SEO prompts
Tags: seo, chatcgp, prompt, ai
Published: 2023-01-15 02:04:52

As the world of SEO continues to evolve, it is becoming increasingly important to stay ahead of the competition. One of the most important tools for SEO in the near future is Artificial Intelligence (AI). Those who understand how to use **AI language models** with **the right prompts** will be the ones who come out on top. To help you stay ahead of the competition, here are the top 11 SEO prompts that you should consider start using as soon as possible:

> Prompt engineering -  the art of asking **the right question in the right form** in order  to get the best possible outcome.
I believe that this is **the most significant skill to learn** in order to use AI models effectively, because _how you ask is what you get back_.

{% embed https://twitter.com/dom_sipowicz/status/1610376570065018881?s=20&t=Rh2KK4bRoO7v2x_NMBoJ3w %}

1. "Create a list of synonyms for [keyword]"
2. "Identify long-tail keywords for [topic] content"
3. "Research industry-specific terminology for use in [topic] content"
4. "Create meta description based on [keywords] and [notes]"
5. "Identify topics for blog posts in the [industry] industry"
6. "Come up with 11 ideas for the blog post about [topic]"
7. "Among the blogs in the [industry] industry, what is the most popular topic?
8. "Create a list of questions related to [topic]"
9. "Identify the top 10 influencers in the [industry]"
10. "Research and identify the top 10 trends in the [industry]"
11. "Generate a list of questions people ask about [topic]?"


The ability to ask questions in ChatGPT is not a problem, but the ability to ask them in the right way is much more difficult. 

Godspeed

PS. Follow me on Elon's Twitter. In some cases, I tweet things before they become mainstream. You can check the date on the tweet for more information:

{% embed https://twitter.com/dom_sipowicz/status/1598086288091250689?s=20&t=Rh2KK4bRoO7v2x_NMBoJ3w %}

{% embed https://twitter.com/dom_sipowicz %}

PS2. If you find ChatGPT unresponsive, lagging or broken, you can always try [free Jasper Chat](https://jasper.ai?special=gRl5Gqw)
View your localhost web applications on your mobile device (Laravel/React) for Windows users (2023)
Tags: webdev, tutorial, react, laravel
Published: 2023-01-15 02:01:37

🧐 Believe it or not, I've recently discovered that you can test your web apps using your mobile device.
This can help when you want to test for responsiveness because Developer Tools is not always accurate.

I think this may work with any framework but I've only tested this with Laravel and React. Comment down below if it worked for any other frameworks!

I'll assume you already set up your environment and your project can be ran, so let's dive straight in. There are really only 4 steps.

---

## **First let's mess with our network settings:**
1. Click on the wifi icon near the bottom right of your screen 
2. Underneath your wifi name, click on _properties_
3. Ensure your Network Profile is set to _Private_


## **For the second step, all you need to do is connect your mobile device to the same wifi as your PC**

I'm not sure exactly why it's important to set it to Private, but if you know then I'd like to know why this works when the network is set to so.

## **Third, let's find the ip address of our PC:**
_This is important so that you can actually connect to the localhost and share it with your PC._
💻
1. Press Win+R and type _cmd_
2. Press Ok
3. While command prompt is open, type `ipconfig` and keep note of your IPV4 Address. (There may be multiple IPV4's for you so keep note of all of them if one doesn't work)

## **Last Step: **
🔗 _Laravel users:_
1. In your terminal, run your app with `php artisan serve --host 0.0.0.0`
2. On your mobile device, enter your IPV4 address into your browser url along with your port # as the following 
(http://122.169.22.22:8000). 

🔗 _React users:_
1. In your terminal, run your app with `npm start --host 0.0.0.0`
2. On your mobile device, enter your IPV4 address into your browser url along with your port # as the following (http://122.169.22.22:8000). 


So if your app is on port 3000, then replace 8000 with 3000 instead._

---

There you have it! So whenever you make changes to your application it should refresh in real time! (With laravel I've had troubles and have had to refresh it myself).

Let me know down below if this worked for any other frameworks and if it works for Mac if you own one. This is better for those who don't want to pay to test on different devices. A bonus if you own multiple devices!
Day 10 #100DaysofCode
Tags: webdev, beginners, 100daysofcode
Published: 2023-01-15 01:46:36

Today, I took a break from all the coding stuff and watched this [video](https://www.youtube.com/watch?v=SG5Sb5WTV_g&list=WL&index=76&t=1329s) on how to improve your LinkedIn for software developers

## Here is what I learned about LinkedIn
* LinkedIn should be a summary of your resume
* I need a good headshot
* Drop generic terms like "software developer" and use tech terminology like "React" "Bootstrap" etc
* Bio should be short
* Feature section is essential!
  * Everything I've done should go here
* Keep strengths on LinkedIn
* Show quantitative improvements
  * Job description is what I achieved not what I did
* Skills and endorsements are not that important
  * Certifications should not be the focus
* Recommendations are powerful.
AWS Hyperplane: Are Lambdas inside a VPC slow?
Tags: aws
Published: 2023-01-15 01:46:29

By default, when your Lambda function is not associated to your own VPCs, the function can access anything available on the public internet such as other AWS services, HTTPS endpoints for APIs, or services and endpoints outside AWS. The function then has no way to connect to your private resources inside your VPC.

## Connecting to a VPC
The way for your Lambdas to connect to private resources is by associating them with the VPC your resources reside in. This association is translated to an elastic network interface that lets traffic flow between function and VPC. 


![Single Lambda using ENI to connect to a private VPC](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/29wjbrpoekdioo37aw4e.png)


### Problem?
With this model, there are a number of challenges that you might face. The time taken to create and attach new network interfaces can cause longer cold-starts, increasing the time it takes to spin up a new execution environment before your code can be invoked.

As your function’s execution environment scales to handle an increase in requests, more network interfaces are created and attached to the Lambda infrastructure. The exact number of network interfaces created and attached is a factor of your function configuration and concurrency.


![Multiple Lambdas, each one using an ENI to connect to a private VPC](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7jtxisrks2l0x66hwqq8.png)


Also, each elastic network interface (ENI) uses an IP address of your VPC subnets so you could possibly reach a limit on the available IPs of your subnet, preventing you from creating additional resources.

### Solution?
So what should we do? Should we surrender to these trade-offs? Should we go for a different architecture?

I've been there, I've done my research and I've tested that **none of that happens currently**. There are a lot of outdated posts about it that generate a lot of misconceptions. That's the motivation of this post.

Since 2019 AWS launched a new (internal) service called **Hyperplane**, this service address the issues and drawbacks of putting lambdas inside private VPCs!

#### But... how?
On a high level it's pretty simple and interesting, at least if you have some idea of how NAT works on a network. The idea it's basically the same, you have a bunch of lambdas living in the AWS infrastructure, but when you need to associate them with your VPC they all go through a NAT-ish service that translate each different lambda request to a resource by using only one ENI.

It's very magical, and very convenient service. Because now, the difference in response times of VPC-ed Lambdas and normal Lambdas is almost negligible. I've tested this personally with my infrastructure but you can also see here [a comparison made by AWS (with a more detailed explanation)](https://aws.amazon.com/blogs/compute/announcing-improved-vpc-networking-for-aws-lambda-functions/)
Photogram 1&2
Published: 2023-01-15 01:21:01

Reminders
- Add index to foreign keys!
 
New:
- `rails db:rollback` is just for the last migration
- We write the `sample data` to review databases and their associations
- When creating sample data, `p u.errors.full_massages` to see erros that may be happening 
- We can use `<<` to push (creating) record in a table
automate: run github ci/cd through slack slash command
Tags: devops, slack, tutorial, productivity
Published: 2023-01-15 12:13:17

---
title: automate: run github ci/cd through slack slash command
published: true
date: 2023-01-15 01:20:00 UTC
tags: devops,slack,tutorial,productivity
canonical_url: https://mrturkmen.com/posts/automate-ci-cd-with-slack-command/
---

![Workflow from Slack command to Github actions through AWS Gateway](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/565stq50d6hofp1sczpf.png)



Easy integration for running Github workflow files through Slack slash command

{% embed https://mrturkmen.com/posts/automate-ci-cd-with-slack-command/ %}
Photogram Industrial
Published: 2023-01-15 01:04:11

- Keep Devise gem outside of the development group in the Gemfile. We want to use Devise in our production app. Any gems used for development only will fall under the development group.

- Gem groups allow us to specify Gems used in production vs. development

- Command + K clears terminal

- Under the 'change' method of the migration file, include: enable_extension("citext")

- Then change username and email from 'string' to 'citext'. Most developers forget to do this! This removes case sensitivity from these two columns in the database.

- Reminder that 'git acm ""' is an appdev shortcut for: "git add -A; git commit -m"

- typically, we generate users model first using Devise

- Use the command 'annotate --models' to use the Annotate Gem. This creates annotations in each of the Model files.

- Use 'rails g annonate:install' to annotate models anytime we run 'rails db:migrate' 

- Reminder: each belongs_to should have an inverse has_many

- https://blog.arkency.com/how-to-add-a-default-value-to-an-existing-column-in-a-rails-migration/

- Wrap .destroy_all commands in the following manner:
  if Rails.env.development?
    User.destroy_all
    FollowRequest.destroy_all
  end

- Keep in mind that we need to destroy children objects before parent objects

- Unique use of shuttle operator: 
    photos.fans << follower # pushing follower into the fans collection of the Photo
       
- creates a record in the join table, adding user to collection of users under the 'likes' table
Performing Marketplace Transactions with the Mirror World Smart SDK
Published: 2023-01-15 00:45:21

---
title: Performing Marketplace Transactions with the Mirror World Smart SDK
published: true
description: 
tags: 
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2023-01-14 21:43 +0000
---

An SDK not only helps you create dedicated Marketplaces for your NFTs and NFT collections, but it also equips you with different ways to perform transactions in the marketplace. Here's a quick guide showing a few methods of making transactions:

##1. Marketplace Methods
You can create, update, and query marketplaces using the SDK, which provides methods that make setting up your very own marketplace seamless. Go through this comprehensive guide on how to create NFT Marketplaces using the SDK to learn more.

##2. NFT Transaction Methods

**List NFT:** This is used to list an NFT on the marketplace.

`// how to list an NFT on a marketplace using the Mirror World JS SDK
const listing = await mirrorworld.listNFT({
    mintAddress: `Hc2My3GQCQTXTjV34Pi1pQGYUeckT1mEcMRiZZaH7Ydr`,
    price: 2, // Amount in SOL
})`

**Update NFT Listing:** You may update NFT listing details on the marketplace. e.g the price of the NFT.

`// how to update an NFT listing on a marketplace using the Mirror World JS SDK  const listing = await mirrorworld.updateNFTListing({ 
    mintAddress: `Hc2My3GQCQTXTjV34Pi1pQGYUeckT1mEcMRiZZaH7Ydr`, 
    price: 2, // Amount in SOL
})`

**Cancel NFT Listing:** You may also cancel an NFT listing.

`// how to cancel an NFT listing on a marketplace using the Mirror World JS SDK  const listing = await mirrorworld.cancelNFTListing({ 
    mintAddress: `Hc2My3GQCQTXTjV34Pi1pQGYUeckT1mEcMRiZZaH7Ydr`, 
    price: 2, // Amount in SOL
}) `

**Buy NFT:** This can be used to purchase an NFT on the Mirror World marketplace.

`// how to list buy an NFT on a marketplace using the Mirror World JS SDK 
const listing = await mirrorworld.buyNFT({ 
    mintAddress: `Hc2My3GQCQTXTjV34Pi1pQGYUeckT1mEcMRiZZaH7Ydr`, 
    price: 2, // Amount in SOL
}) `

**Transfer NFT:** If you would like to transfer an NFT from a holder's wallet to another address.

`// how to transfer an NFT on a marketplace using the Mirror World JS SDK 
const listing = await mirrorworld.transferNFT({ 
    mintAddress: `Hc2My3GQCQTXTjV34Pi1pQGYUeckT1mEcMRiZZaH7Ydr`, 
    recipientAddress: `C64RkD2jnvrFF8mi9FUBwfhNHuuiPuRMzCLRSWcyJKUG`, 
})`

## 3. Fetch NFTs
It could also be to display NFTs in a dApp or list them on a marketplace. Whatever the reason, the Mirror World Smart SDK provides a variety of ways in which you can successfully fetch these NFTs and work with them.

There could be a number of reasons why you may want to fetch an NFT or a list of NFTs. From creating a marketplace to listing an NFT on that marketplace, there are a lot of options available to you as a developer to start building your next killer dApp. Learn more about different methods that you can make using an SDK through this guide on performing marketplace transactions: [https://docs.mirrorworld.fun/guides/marketplace-transactions-with-mirrorworld-sdk].
Rust Formatting
Tags: rust, format
Published: 2023-01-15 00:36:08

In this post, let us explore different ways to format integers, decimal, strings using format specifiers

##### Formatting Integers

Just to format integers as it-is, we have to pass integers as argument to format macro

```rust
    println!("{}", format!("{}", 100));
```

To zero-pad integers with specific number of digits, in the format macro, specify the length. In this below example, we'll have zero-padded integer with max 10 digits

```rust
    println!("{}", format!("{:010}", 5));
```

Convert number into binary-formatted, just specify `#b` in format macro as below 

```rust
    println!("{}", format!("{:#b}", 50));
```

Convert number into octal-formatted, just specify `#o` in format macro as below 

```rust
    println!("{}", format!("{:#o}", 50));
```

Convert number into hex-formatted, just specify `#x` or `#X` in format macro as below 

```rust
    println!("{}", format!("{:#x}", 50));
```

If you would like to have 1000 specifier as per locale, it can be achieved using `num_format` crate. The below example, will format the number 1 billion in US locale 

```rust
    println!("{}", 1_000_000_000.to_formatted_string(&num_format::Locale::en));
```

Formatting the number 1 billion in French locale 

```rust
    println!("{}", 1_000_000_000.to_formatted_string(&num_format::Locale::fr));
```

Formatting the number 1 billion in Indian locale 

```rust
    println!("{}", 1_000_000_000.to_formatted_string(&num_format::Locale::en_IN));
```

##### Formatting Decimals

To format decimal numbers with specific precision, we can use below specifiers

```rust
    println!("{}", format!("{:.5}", 100.02));
```

In case if the decimal number exceeds the given precision, the number will get rounded-off at nth precision. The below code outputs `100.02782`

```rust
    println!("{}", format!("{:.5}", 100.02781839));
```

##### Formatting String

To format string in left-aligned, we can use below specifier in the macro

```rust
    println!("{}", format!("{:<20}", "Rust is awesome"));
```

To align string in center within given length, we can use below specifier in the macro

```rust
    println!("{}", format!("{:^20}", "Rust is awesome"));
```

To right-align string within given length, we can use below specifier in the macro

```rust
    println!("{}", format!("{:>20}", "Rust is awesome"));
```

In case if you would like to fill the white-space with specific character, we just need to specify the specific character before the respective symbol (^, >, <) in the specifier

```rust
    println!("{}", format!("{:*^20}", "Rust is awesome"));
```

We can use the above specifiers to align integers as well.

All the code examples can be found in this [link](https://github.com/sivakumar-sivaprakasam/rust-examples/tree/main/format)

Please feel free to share your feedback.

Happy reading!!!
9 websites that will help you learn web 🌐 development faster 🚀 and free‍ 💯
Tags: webdev, tutorial, beginners, programming
Published: 2023-01-15 00:23:07

- Here is the list of the best 9 websites to help you learn web development.

### How HTTP Works

- Everything you need to know about HTTP based system.

### 30 Days of Node 

- Learn Node step by step with interactive examples and code snippet in 30 days.
 
### How DNS Works

- Learn what happens when you type a website address in your browser.

### Git

- Check out this excellent free website to learn git visually.

### JavaScript

- Visualize JavaScript code and learn the workflow.

### Algorithm Visualizer

- 
Algorithms are always a little tricky to learn. But this website can make it easier.

### Cryptozombies

- Learn to code Blockchain DApps by building simple games.

### useWeb3 

- useWeb3 is a platform for developers to explore and learn about Web3.

### Sorting Algorithms

- Learn sorting algorithms visually and intuitively.

Happy learning

🎥 Websites links {% youtube qALb8m6Toy4 %}


####Bonus:

#### 15 Free Harvard Courses🎓📣🔥🎉

🎥 Websites links {% youtube mdlS34KDlCk&t=2s %}

#### Python top free courses from Coursera🐍💯🚀

🎥 Websites links {% youtube 2VRXU2H4q0c %}

#### SQL 🔥 Get Expertise in SQL with These Top Free Courses💯🏆

🎥 Websites links {% youtube 00loCpVmozI %}




### Connect with Me 😊

#### 🔗 Links

[![linkedin](https://img.shields.io/badge/linkedin-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/mahmoud-el-kariouny-822719149/)

[![twitter](https://img.shields.io/badge/twitter-1DA1F2?style=for-the-badge&logo=twitter&logoColor=white)](https://twitter.com/Mahmoud42275)
AFFiNE the next Gen Knowledge-Base: Looking forward to adding both #French and #German translations into the next AFFiNE release
Published: 2023-01-14 23:27:47



AffineOfficial @AffineOfficial Jan 12
Looking forward to adding both #French and #German translations into the next AFFiNE release.
Both languages are up-to-date on translations #community #teamwork #opensource  
If you'd like to see your language added, why not get involved!
	
AFFiNE, die Next-Gen Knowledge Base: Notion-, Miro- & Monday-Alternative in Open Source: 

AFFiNE, das neue System, das Miro (collaborating-whiteboard) und Notion (note-taking) und Monday resp. Trello. (Projektmanagement) ablösen will - es kündigt an die Integration der Features beider Systeme zu bieten - und quelloffen zu sein. 

[b]Links:[/b] https://github.com/toeverything/AFFiNE 
Interessant: eine Kombination von Notion & Miro-Features zu haben, und gleichzetig ein Open-Source-Projekt, welches offen entwickelt wird.	
	
[b]Zentraler Ansatz:[/b] das Open-Source-Konzept, welches komplett anders ansetzt u. sogesehen radikal anders ist als alle o.g. Projekte: 
[b]Motto:[/b] Open-source, privacy-first,and always free. Built with Typescript/React/Rust  https://github.com/toeverything/AFFiNE

AFFiNE is the Next-Gen Knowledge Base to Replace Notion & Miro. Open-source, privacy-first, and always free. Built with Typescript/React/Rust
https://github.com/toeverything/AFFiNE

[b]Projekt: [/b]
https://affine.pro :: https://github.com/toeverything/AFFiNE
React Context
Published: 2023-01-14 22:42:02


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

**Conception**
React Context API is a way to essentially create global variables that can be passed around in a React app. This is the alternative to “prop drilling”, or passing props from grandparent to parent to child, and so on. Context is often touted as a simpler, lighter solution to using Redux for state management
Context provides a way to pass data through the component tree without having to pass props down manually at every level.

**Advantage**
– Context API doesn’t require any third-party libraries.
– Optimization on project’s overall structure and speed side.
– Stable management for state:
( To a good extent, Redux works for state management in React applications and has a few advantages, but its verbosity makes it really difficult to pick up, and the ton of extra code needed to get it working in our application introduces a lot of unnecessary complexity.
On the other hand, with the useContext API and React Hooks, there is no need to install external libraries or add a bunch of files and folders in order to get our app working. This makes it a much simpler, more straightforward way to handle global state management in React applications. )

**Application**
In many case, we use Redux as choice for state management, But sometimes, Redux may be non-suitable for developer’s needs.
I used context and consumer in main components of React project, and after defining context, it will provide all state and actions needed.
The result is very similar with Redux.
Mostly, React context has used as combination type with React hooks, here is reference link:
https://www.hoseinh.com/react-context-vs-redux-hooks/
Regarding comparing between Redux and React context + Hooks, Context can’t still kill Redux, but I think it might be more useful in proper case.

Thanks.

**Reference**
https://reactjs.org/docs/context.html
https://www.taniarascia.com/using-context-api-in-react/
https://blog.logrocket.com/use-hooks-and-context-not-react-and-redux/
WebRTC Implementation with React and React Native by using OpenTok
Published: 2023-01-14 22:40:05

Add **opentok-react** as a dependency of your application:

`yarn add opentok-react`

Or if you’re still using npm:

`npm install --save opentok-react`


Then include **opentok.js** before your application:
`<script src="https://static.opentok.com/v2/js/opentok.min.js"></script>`

Alternatively, wrap your top-level component using OpenTok with the [preloadScript](https://www.npmjs.com/package/opentok-react#preloadscript-higher-order-component) HOC. The HOC will take care of loading opentok.js for you before rendering.


https://github.com/opentok/opentok-react
https://github.com/opentok/opentok-react-native-samples
Angular DevTools
Tags: webdev, javascript, angular, typescript
Published: 2023-01-14 22:31:17

Angular DevTools is a Chrome extension that provides debugging and profiling capabilities for Angular applications. Angular DevTools supports Angular v9 and later, with Ivy enabled.

You can find Angular DevTools in the [Chrome Web Store](https://chrome.google.com/webstore/detail/angular-developer-tools/ienfalfjdbdpebioblfackkekamfmbnh).

After installing Angular DevTools, find the extension under the Angular tab in Chrome DevTools.


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

When you open the extension, you’ll see two additional tabs:

Components – lets you explore the components and directives in your application and preview or edit their state.
Profiler – lets you profile your application and understand what the performance bottleneck is during change detection execution.


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

In the top-right corner of Angular DevTools you’ll find which version of Angular is running on the page as well as the latest commit hash for the extension.

You can find more details at [here](https://angular.io/guide/devtools).