teleren/devto huggingface dataset:
Scaleway | Made with Gatsby JS
Published: 2022-06-17 10:12:14

![Scaleway | Made with Javascript | Gatsby JS](https://res.cloudinary.com/madewithjavascript/image/upload/v1654096679/large_scaleway_made_with_gatsby_js_7147947631.png "Scaleway | Made with Javascript | Gatsby JS")


### Our complete cloud ecosystem is used by 25,000+ businesses

> ### The cloud of choice
> Build, deploy and scale applications on Europe's most complete cloud ecosystem.
> 
> ### If you can code it, we can host it
> From Serverless architecture to Elastic Metal and everything in between.
> 
> #### Serverless
> Focus on designing your application and let us worry about maintaining the servers. Control the resources you pay for down to the second.
> 
> #### Containers
> The easiest way to deploy, manage and scale your containerized applications. We'll make sure you're always leveraging the latest Kubernetes release.
> 
> #### Storage & Database
> Hosting your customers's data with a sovereign provider has never been easier. Whether in one or across several of our European data centers, get the scalability, resiliency & flexibility you need to deliver an excellent customer experience.
> 
> #### Virtual Machines
> The right Instance for every workload. Start in seconds at unbeatable prices, and scale up to resilient, production-grade, computing power.
> 
> #### Elastic Metal
> Create a high-performance backbone for your infrastructure, or control it when you need it most with one of our impressive and reliable servers - all at the best price/performance ratio on the market. What are you waiting for?

## Check out more such amazing projects on our website

[Made with Javascript](https://madewithjavascript.club)

## Want us to feature your project

[Submit your Project to Made with Javascript](https://madewithjavascript.club/submit-project)


You can also write to us for any of your queries at:

[Email Made with Javascript](mailto:madewithjavascript@gmail.com)

## Project already shared on our social media handles.

| SocialMedia | SharedLink |
| ----------- | ---------- |
| Twitter | [Scaleway on Twitter](https://twitter.com/withjavascript/status/1537738575793557504?s=20&t=mgwFjPoUtmZ5d7vx6Auvvw)
 |
| Medium | [Scaleway on Medium](https://medium.com/@madewithjavascript/scaleway-made-with-gatsby-js-5e18ecc62662)
 |
| Facebook | [Scaleway on Facebook](https://www.facebook.com/madewithjavascript/posts/pfbid0HVs58tQof5neFr1SD4LmFGPy77DYbdsTYF8hVCRikSWwwEEMWaPT6smcXQcFGhMRl)
 |
| Tumblr | [Scaleway on Tumblr](https://www.tumblr.com/blog/view/madewithjavascript/687300154756399104?source=share)
 |
| LinkedIn | [Scaleway on LinkedIn](https://www.linkedin.com/feed/update/urn:li:activity:6943504398593527808)
 |
| Pinterest | [Scaleway on Pinterest](https://pin.it/6kvRXAu)
 |

Filled Under:

 - [Made with Javascript](https://madewithjavascript.club)
 - [Made with Gatsby JS](https://madewithjavascript.club/categories/gatsby-js)

Make sure to give this post ❤ 50 ❤ hearts, click the 🦄 unicorns 🦄 and follow 👉 @madewithjavascript 👈 for more such awesome showcases. Show you love for the people who have worked so hard!
Sum of Unique Elements
Tags: leetcode, dsa, theabbie
Published: 2022-06-17 10:00:44

You are given an integer array `nums`. The unique elements of an array are the elements that appear **exactly once** in the array.

Return _the **sum** of all the unique elements of_ `nums`.

**Example 1:**

**Input:** nums = \[1,2,3,2\]
**Output:** 4
**Explanation:** The unique elements are \[1,3\], and the sum is 4.

**Example 2:**

**Input:** nums = \[1,1,1,1,1\]
**Output:** 0
**Explanation:** There are no unique elements, and the sum is 0.

**Example 3:**

**Input:** nums = \[1,2,3,4,5\]
**Output:** 15
**Explanation:** The unique elements are \[1,2,3,4,5\], and the sum is 15.

**Constraints:**

*   `1 <= nums.length <= 100`
*   `1 <= nums[i] <= 100`

**SOLUTION:**

    from collections import Counter
    
    class Solution:
        def sumOfUnique(self, nums: List[int]) -> int:
            ctr = Counter(nums)
            return sum([k for k, v in ctr.items() if v == 1])
All you need to know about Oxy Proxy Extension
Tags: proxy, extension, beginners, oxylabs
Published: 2022-06-17 09:59:00

Wanna learn more about the features and benefits of using a Chrome proxy extension? Check out this short post about [Oxy Proxy Extension](https://oxy.yt/xtIy)!

![proxy extension](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dh12h1h5sg5enbeiec5p.png)

**Easy proxy management via one click**

Oxy Proxy Manager for Chrome is a free Chrome browser proxy extension that has all of the essential proxy session features in your browser. It gives you a chance to simply add and switch between multiple IPs on the go with a simple one-click connection.


![oxylabs proxy](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fsk0adyjv2rt4whb1sa6.png)

**Suitable for any proxy provider of your choice**

Oxy Proxy Extension for Chrome works with any proxy provider. So, you can enable your proxies and manage proxy settings without having to jump through various menu options. This allows you to utilize all available resources and stick to using only one extension.


![Residential proxies](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3kngqpolhv8z7vj62j1p.png)

**Allows you to easily change Oxylabs Residential Proxy session**

As an added bonus to Oxy Proxy Extension users, the proxy changer has an additional feature specifically designed for use with Oxylabs Residential Proxies. With it you can change Oxylabs Residential Proxy session without editing your user name.

**Added benefits of Oxy Proxy Extension**

- 
Helps avoid IP blocks and bans
Lock your IP address to maintain the same session and avoid IP blocks

- 
Allows to add unlimited number of proxies
Add an unlimited number of proxies from any proxy provider of your choice

- 
Works with main proxy types and protocols
Easily switch between any proxy type or HTTP(S)  and SOCKS protocols

**Conclusion**

Using a Chrome proxy extension is a great solution for those looking to improve their browsing experience and easily manage all their proxies. What’s particularly useful, it helps to avoid IP bans, ensuring a smooth and effortless scraping process. 

So, if you’re still doubting whether you should use a Chrome proxy extension, just try to use one in order to feel the benefits on yourself!
Open the Lock
Tags: leetcode, dsa, theabbie
Published: 2022-06-17 09:30:41

You have a lock in front of you with 4 circular wheels. Each wheel has 10 slots: `'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'`. The wheels can rotate freely and wrap around: for example we can turn `'9'` to be `'0'`, or `'0'` to be `'9'`. Each move consists of turning one wheel one slot.

The lock initially starts at `'0000'`, a string representing the state of the 4 wheels.

You are given a list of `deadends` dead ends, meaning if the lock displays any of these codes, the wheels of the lock will stop turning and you will be unable to open it.

Given a `target` representing the value of the wheels that will unlock the lock, return the minimum total number of turns required to open the lock, or -1 if it is impossible.

**Example 1:**

**Input:** deadends = \["0201","0101","0102","1212","2002"\], target = "0202"
**Output:** 6
**Explanation:** 
A sequence of valid moves would be "0000" -> "1000" -> "1100" -> "1200" -> "1201" -> "1202" -> "0202".
Note that a sequence like "0000" -> "0001" -> "0002" -> "0102" -> "0202" would be invalid,
because the wheels of the lock become stuck after the display becomes the dead end "0102".

**Example 2:**

**Input:** deadends = \["8888"\], target = "0009"
**Output:** 1
**Explanation:** We can turn the last wheel in reverse to move from "0000" -> "0009".

**Example 3:**

**Input:** deadends = \["8887","8889","8878","8898","8788","8988","7888","9888"\], target = "8888"
**Output:** -1
**Explanation:** We cannot reach the target without getting stuck.

**Constraints:**

*   `1 <= deadends.length <= 500`
*   `deadends[i].length == 4`
*   `target.length == 4`
*   target **will not be** in the list `deadends`.
*   `target` and `deadends[i]` consist of digits only.

**SOLUTION:**

    class Solution:
        def getSteps(self, curr):
            steps = set()
            for i in range(4):
                for d in [1, -1]:
                    now = list(curr)
                    now[i] = (10 + now[i] + d) % 10
                    steps.add(tuple(now))
            return steps
        
        def openLock(self, deadends: List[str], target: str) -> int:
            beg = (0, 0, 0, 0)
            target = tuple(int(d) for d in target)
            paths = [(beg, 0)]
            visited = {beg}
            for end in deadends:
                end = tuple(int(d) for d in end)
                if beg == end:
                    return -1
                visited.add(end)
            i = 0
            while i < len(paths):
                curr, steps = paths[i]
                if curr == target:
                    return steps
                for j in self.getSteps(curr):
                    if j not in visited:
                        visited.add(j)
                        paths.append((j, steps + 1))
                i += 1
            return -1
PyLadies Dublin April Meetup
Tags: pyladies, beginners
Published: 2022-06-17 09:25:13

🥰 Thank you all for attending or your interest in our meetup in April (and apologies for the lateness of the post-event follow-up. A huge thank you to Ciara O’Sullivan sharing her journey using Flask and Python making her interactive game. Game linked below. ⬇️⬇️⬇️

🙌 A special thanks to Mick and Lei for their help co-hosting and moderating Youtube live chat.

🌈 Thanks to our community partners (alphabetical order): PSF (Meetup), PyLadies and Coding Grace (Streamyard) and Inscribe (Raffle Prize). And congrats to Sara for winning the book voucher, happy reading!

---

## Talk Details
### Title: Crack The Code - My First Python Project
(15m) After 2 weeks of learning Python, I began creating my very first Python Project with Code Institute as part of the Diploma in Software Development. This is a command-line interface game based on the classic Mastermind board game. I would love to talk to you about this project and the journey I undertook with Python to complete it.

### About Ciara
I decided to learn how to code in September 2021 as it has been something I have wanted to try for a very long time. I fell in love straight away! My background is in Psychology, Teaching, and Art. I have spent almost 20 years as a carer supporting people of all ages, backgrounds, and abilities. I currently work with adults who have sustained an acquired brain injury and am mainly involved in facilitating their art groups. I have 2 amazing kids, a gentle old soul of a cat, a bossy Jack Russel, and a very supportive partner. 

* https://linkedin.com/in/ciara-o-sullivan-2834378b

🍿 The video on our youtube channel for this April's talk is at https://youtu.be/AfNTod4hgGM

👾 Want to try out Ciara’s game, here it is: http://mastermind-code-breaker.herokuapp.com/

---

### Here are the announcements from the event:

{% embed https://docs.google.com/presentation/d/e/2PACX-1vRTaR_OaTrp4ou6OsoaDTIDafD9FNadVebIDknsmS-OfzvIVbWFnm18EeHFBhJ8jawoLPGrzys2wAzf/pub?start=false&loop=false&delayms=3000&slide=id.g10b25b6a06a_0_77 %}

And the event page itself: https://www.meetup.com/pyladiesdublin/events/284076459
Puzzle-1
Tags: c, programming, beginners
Published: 2022-06-17 09:19:58

## Can you guess the output without the help of code editor ?
**If yes, then comment the output in the below comment section.**
```
#include <stdio.h>
struct result
{
    int marks;
    char grade;
};
int main()
{
    struct result a1, b1;
    a1.marks = 50; a1.grade = 'A';
    b1 = a1;
    printf("marks = %d\n", b1.marks);
    printf("grade = %c\n", b1.grade);
    return 0;
}
```
About My Boss...
Tags: career, management, discuss, watercooler
Published: 2022-06-17 09:19:37

I came across this piece by Adam Grant.

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

So far, I was lucky enough to change several bosses a.k.a line managers, people leaders, etc. 

### The Good

The good part of changing many leaders is seeing extremely different leadership styles, or management styles. Not many are leaders.

### The Bad

The bad part is that you won't like every single style.
 
I happened to work with a person who tried to micromanage me.
It sucks. For the first time, I literally felt physical pain in anticipation of meeting that person. 

You know when you read about micromanagement in books? They mostly agree on saying that micromanaging isn't great.

### The Learning

Experiencing it on my skin was a whole different story!
I hated every single moment I spent with that person. Physically or virtually.
But the experience taught me a lot. If not avoiding it altogether, I can handle it better next time.

That was the case of a selfish boss.

I was lucky enough to work with supportive bosses. That is a whole different story, and I encourage you to strive to find one. 

"_They promote your growth and well-being_" is not just a marketing slogan. 

### People First

If there is a list of things I look forward to in a job, a supportive boss and a nice team ranks pretty high. They make your life 100 times better.

This is what I can say from my experience so far.

What did you learn from the bosses you had?
The Complete Guide to Username Generators and How They can Help You Find a Unique Name for Anything
Tags: ugener, username, randomusernam, usernamegenerate
Published: 2022-06-17 09:12:44

**What is a Username Generator and Why Should You Use it?**
[A username generator](https://ugener.com/) is a tool that helps you come up with a unique and memorable username.

Usernames are often used to sign in, log in, and log out of various accounts such as social media accounts, video game accounts, email accounts, etc.

**Usernames can also be used to create an email address or login ID for a website.**
The username generator can be useful for anyone who wants to have a personalized URL for their website or account but doesn't know what they want the name to be yet. This can help you come up with your own original ideas without having to spend time brainstorming on your own.

**Username Generators in the Market**
When it comes to naming a new account, the most common option is to use your own name. But what if you don't have a good name? The answer is that there are many online tools that can help you generate a username for your account.

Some of these tools provide a free service, while others offer paid options. So, which one should you choose? It all depends on what you are looking for and how much money you want to spend on the process.

**How to Choose the Right Usernames for Your Business or Youselves?**
Choosing the right username for your social media accounts can be difficult. It needs to be short, easy to remember and easy to spell. It also must not contain special characters as they may not display properly on some platforms.

The best place to choose a username is on the website [Random Username Generate](https://ugener.com/)

you don't want your real personal information exposed. Don't worry, it's Ugener. Ugener is a username generator with millions of random ideas. In addition to your username, Ugener also generates additional information:

Last name, First name

Birthday

Address

Email

Phone

Protect your best friend from the dangers of the Internet right now

**How to work**
Using the Ugener username generator is extremely simple. With a single "Create" button, you get the information you want. Simplicity is the principle that we always want to aim for users

**Importance**
All information we provide is fake.
Fresh graduates should attention to their resumes!
Tags: writing, resume
Published: 2022-06-17 08:32:16

Are you a recent graduate and are now worried about your job, never thought to write a suitable resume during your studies? Now that you've graduated, you need a perfectly designed and crafted graduate resume. If you're in London, don't worry, many graduate CV assistants in London offer the best [resume writing services](https://www.cvmasters.co.uk/resume-writing), including the perfect template for graduates. These experts have extensive information on current job market trends to help individuals design and shape their resumes accordingly. Don't wait, get services from Ireland's CV creation and design experts.
Fix Netlify cms failed to load entry api_error object object in with Gitlab
Published: 2022-06-17 09:09:16

Hello all, I will share fixing error Netlify CMS with message "failed to load entry api_error object object". in my case is because netlify CMS don't have access permission to access gitlab repository. Gitlab repository required Access Token for request from Netlify CMS.

Solution:

- Login in Netlify account 
- Open Site menu
- Click your site
- Entry to Identity
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/89qj81fsimrv6yoxcioy.png)

- Scroll to bottom and and get menu Git Gateway
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x6s1fote53tadjctwpwi.png) 
- Edit Setting
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m2ibrs41wwv1v93f6cye.png)

- Click Generate token and it will be redirect to Gitlab account and token will autofill when you have done in Gitlab
Minimum Absolute Difference in BST
Tags: leetcode, dsa, theabbie
Published: 2022-06-17 08:30:41

Given the `root` of a Binary Search Tree (BST), return _the minimum absolute difference between the values of any two different nodes in the tree_.

**Example 1:**

![](https://assets.leetcode.com/uploads/2021/02/05/bst1.jpg)

**Input:** root = \[4,2,6,1,3\]
**Output:** 1

**Example 2:**

![](https://assets.leetcode.com/uploads/2021/02/05/bst2.jpg)

**Input:** root = \[1,0,48,null,null,12,49\]
**Output:** 1

**Constraints:**

*   The number of nodes in the tree is in the range `[2, 104]`.
*   `0 <= Node.val <= 105`

**Note:** This question is the same as 783: [https://leetcode.com/problems/minimum-distance-between-bst-nodes/](https://leetcode.com/problems/minimum-distance-between-bst-nodes/)

**SOLUTION:**

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def inorder(self, root):
            if root:
                self.inorder(root.left)
                if self.latest != None:
                    self.currMin = min(self.currMin, root.val - self.latest)
                self.latest = root.val
                self.inorder(root.right)
        
        def getMinimumDifference(self, root: Optional[TreeNode]) -> int:
            self.currMin = float('inf')
            self.latest = None
            self.inorder(root)
            return self.currMin
Lexicographical Numbers
Tags: leetcode, dsa, theabbie
Published: 2022-06-17 09:00:44

Given an integer `n`, return all the numbers in the range `[1, n]` sorted in lexicographical order.

You must write an algorithm that runs in `O(n)` time and uses `O(1)` extra space. 

**Example 1:**

**Input:** n = 13
**Output:** \[1,10,11,12,13,2,3,4,5,6,7,8,9\]

**Example 2:**

**Input:** n = 2
**Output:** \[1,2\]

**Constraints:**

*   `1 <= n <= 5 * 104`

**SOLUTION:**

    class Solution:
        def lexicalOrder(self, n: int) -> List[int]:
            return sorted(range(1, n + 1), key = lambda i: str(i))
spring boot kotlin validate问题
Tags: kotlin, springboot
Published: 2022-06-17 08:59:02

## 背景

```kotlin
@ApiModelProperty(value = "markdown原始内容", required = true)
@NotBlank(message = "markdown内容不能为空")
var md: String? = "",

```

验证不生效，需要修改一下


```kotlin
@ApiModelProperty(value = "markdown原始内容", required = true)
@field:NotBlank(message = "markdown内容不能为空")
var md: String? = "",
```


统一返回错误，可以针对不的异常类型进行捕获，比如


```kotlin

@ExceptionHandler(BindException::class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ResponseBody
fun handle(e: BindException): R<Any> {
    val err = e.bindingResult.fieldErrors
    val msg = err[0].defaultMessage
    return R.fail(9005, msg ?: "未知错误")
}
```
The Engineering Handbook
Tags: leadership, tutorial, devops, productivity
Published: 2022-06-17 08:48:11

We’ve been working on codifying some of our working practices here into an Engineering Handbook.

I've found that the key ingredients to empower **autonomous teams** are **ownership**, **trust**, and a **common language**.

We want every team to own our customers’ success. As opposed to a static command and control model, we start from a position of trust in every team and continually work together to verify the **quality**, **security**, and **reliability** of a product. 

We then scale this practice by ensuring our engineers have a common language. This includes a set of principles, rituals, and expectations to which they can align. The outcome is a loosely coupled and highly aligned system that empowers our teams to move fast, make decisions, and come up with innovative solutions that propel us forward.

Take a look at our live [Engineering Handbook](https://engineering.firstport.co.uk/)

We want to share the way we work with everyone, to help improve teams across industries. Hopefully, our learnings will help you build autonomous teams and ingrain ownership in your own organisation.

If you would like to build your own Engineering Handbook, feel free to fork my [GitHub Repo](https://github.com/ghostinthewires/Engineering-Handbook).

**Important** 😸

I regularly post useful content related to Azure, DevOps and Engineering on Twitter. You should consider following me on [Twitter](https://twitter.com/GhostInTheWire5)
Build a Group Video Call System using PHP,Javascript + WebRTC Day 3
Tags: webrtc, webdev, php, tutorial
Published: 2022-06-17 08:47:46

WebRTC unlocks the possibility that people can create any video chat app they like. The freedom that WebRTC grants makes the technology highly competitive against traditional video chat apps like Skype.In this video we'll finish working on Register Page

{% youtube lQh23NOYfWc %}