teleren/devto huggingface dataset:
How to use Shadowrocket on iPhone iPad IOS devices?
Tags: shadowrocketios, shadowrocketiphone, shadowrocketipad, shadowrocketvpn
Published: 2023-05-04 02:50:54

# How to use Shadowrocket on iPhone iPad IOS devices?
In this article, I will tell you how to configure **[Shadowrocket](https://yilu.us/configuration/how-to-use-shadowrocket-with-yilu-socks5-proxies-in-iphone)** APP on iPhone iPad IOS devices with YiLu Proxy as VPN.  
Here I use **[YiLu Proxy](https://yilu.us)** dynamic residential IP, dynamic datacenter IP, 4G/5G mobile IP, and pro residential IP ad VPN server. After completing configuration, you can use these proxy IPs without running YiLu Proxy client on your iPhone or iPad device.  

## Get YiLu Proxy IP code
On the residential IPs or pro mobile IP tab:
1. Select a proxy IP type  
2. Select a country, state, and city  
3. Refresh  
4. Click an IP  
5. Get a proxy IP code  
![YiLu Proxy dynamic IP code](https://www.imglink.cc/images/2023/04/03/203fcdf53a06a13659b909742ddcb8f8.png "YiLu Proxy dynamic IP code")  
![YiLu Proxy mobile IP code](https://www.imglink.cc/images/2023/04/03/8fc5210d8abaf2cf889cb2413b74a4e6.png "YiLu Proxy mobile IP code")  

## Shadowrocket configuration  
1. Click the scanning icon  
![Shadowrocket scanning icon](https://www.imglink.cc/images/2023/04/03/80c2131c1e73503b9c52b00cc48293d7.png "Shadowrocket scanning icon")  
2. Scan the YiLu Proxy IP code  
![Shadowrocket scan code](https://www.imglink.cc/images/2023/04/03/5ee174c7c6b716d885aa8ff94fb47551.png "Shadowrocket scan code")  
3. Select the proxy IP node  
![Select the proxy IP node](https://www.imglink.cc/images/2023/04/03/dbc50eaf990c66eccf90f2677159eea7.png "Select the proxy IP node")  
4. Turn on the connection button  
![Turn on the connection button](https://www.imglink.cc/images/2023/04/03/e53ef745b836089185c5dd8fe3155c10.png "Turn on the connection button")  
5. Check IP address  
![Check IP address](https://www.imglink.cc/images/2023/04/03/075f309673e9e1bc9f10b6cefa3b0b1c.png "Check IP address")  

## Video Tutorial
You can also view the video to lean: https://www.youtube.com/watch?v=DuIMonJph3c
HTTP ERROR 401 when running npm start
Tags: react, npm, javascript, programming
Published: 2023-05-04 02:42:31

Has anyone ever encountered the error 401 when running the `npm start` command. it is happening to me whenever aI created I try to build a fullstack app and if it is just a frontend (without the backend) I get "upgrade required". I have tried erasing cache on both Chrome and Safari but did not work. Any suggestions?
Dear Beginner, it gets better.
Tags: webdev, beginners, programming, productivity
Published: 2023-05-04 01:50:20


Remember when you first got introduced to the world of programming? Beaming with so much excitement and eagerness, you imagined all the incredible things you could build. And with little to no illusions about how difficult it might get, you picked a field and started learning away. Now here you are, stuck! You start to think this is above what your mind can process or achieve. Well, you are not alone.

Just like every other discipline, everyone who began programming has and most often keeps experiencing difficulties with making their ideas come to life. What you do when you face obstacles will define how 
much you will enjoy the journey.

**What to do whenever you feel stuck or face difficulties along the way.**

- Find the intrigue in the exasperating. Curiosity in this discipline is everything. Putting in the effort to find out why something isn't working or behaving as you please makes a huge difference. You may have followed a tutorial, code after code and yet still, your code may not work as the one shown in the tutorial. Jump on Google or any search engine of your choice to find answers. 

- Programming can be overwhelming especially if you are doing it alone. Communities act as a support network.
Support and motivation are usually the key attributes every community possesses. Join communities or create one where everyone shares the same interest in technology, and eagerness to learn, grow, improve, and help each other.  Being a part of such communities makes you realize most of the mistakes or roadblocks you are experiencing in your journey are common and not just pertaining to only you.

- Ask for help. You may find it hard, embarrassing even if you are not used to asking for help. Fortunately, most people in the programming field are always willing to help. You can start by private messaging people in your field you think may help and sharing the problem you are facing in your learning group. And with time, you will get comfortable with asking for help.

- Share what you are learning. When you share what you are learning and building, it opens you up to criticism. Flaws you may have not noticed will be pointed out to you by others. Suggestions will be made and all these help you improve.

**Conclusion**
The path to becoming a software engineer takes a varying mixture of grit, community support, and optimism. Enjoy your journey. Cheers
10 steps to land your dream job as a SRE Engineer
Tags: devops, sre, devjournal, career
Published: 2023-05-04 01:43:00

Are you looking for a job in the field of Site Reliability Engineering (SRE)? 

Here are 10 steps that can help you stand out when applying for an SRE job:

1. Develop a strong understanding of software engineering and DevOps principles, including agile methodologies, continuous integration/continuous delivery, and infrastructure as code.


2. Acquire experience with a variety of tools and technologies used in SRE, such as monitoring and observability tools, containerization technologies, and service meshes.


3. Build a portfolio of projects that demonstrate your skills and experience in SRE, such as implementing monitoring and observability solutions, automating infrastructure deployment, or improving the reliability and performance of a system.


4. Network with other SRE professionals and attend industry conferences and events to learn from experts and build connections in the field.


5. Gain relevant certifications, such as the Google Cloud Certified Professional Cloud Architect or the AWS Certified DevOps Engineer.


6. Write a compelling resume and cover letter that highlight your skills and experience as an SRE developer, and tailor your application materials to the specific requirements of the job.


7. Prepare for interviews by practising common SRE interview questions and reviewing your portfolio of projects.


8. During interviews, focus on your experience and skills, and provide concrete examples of how you have applied SRE principles to solve real-world problems.


9. Consider gaining additional experience or education through internships, apprenticeships, or further education in SRE or a related field.


10. Be persistent and proactive in your job search, and don't be afraid to apply for multiple positions or to reach out to potential employers directly to learn more about opportunities in SRE.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sa0x0zktm666fwg4jo76.png)
It's a highly sought-after role that requires a combination of technical expertise and strong problem-solving skills. 

These tips will help you stand out from the competition and land your dream job.


Thanks for reading this.

If you have an idea and want to build your product around it, schedule a call with [me](https://calendly.com/pragyanatvade).

If you want to learn more about DevOps and Backend space, [follow me](https://dev.to/pragyanatvade).

If you want to connect, reach out to me on [Twitter](https://twitter.com/pragyanatvade) and [LinkedIn](https://www.linkedin.com/in/pragyanatvade/).
Perl Weekly Challenge #215 - Bad Words and Looking For Zeros
Tags: perl, sort, perlweeklychallenge
Published: 2023-05-04 00:20:48

Hello everybody! Back this week for weekly challenge 215, where we look for unsorted words and sets of zeros. This week both challenges took me only about 10-15 minutes each. The usual disclaimer about an early post, so don't read spoilers if you want to do the challenge yourself.

#### Odd One Out

This one's a very simple task to print the number of words that are not alphabetically sorted. Here's the code:

    #!/usr/bin/perl

    use strict;
    use v5.24;

    my $removed = 0;
    foreach (@ARGV) {if ($_ ne join('', sort(split(//, $_)))) {$removed++}}
    say $removed;

It's that simple. We just make a variable to count the number of non-alphabetical words, then for each word in the list we split it, sort the letters, and see if the resulting word matches the word we're testing. If not, we add it to the count. 3 lines essentially, not including the boilerplate. It might be possible to make it look cleaner, but in this one it was so easy to make it compact that I didn't see a point in cleaning it up.

#### Number Placement

In this task, you're provided with a number of how many zeros you want to remove. We print out a binary value, 1 or 0, of whether it's possible to remove that many zeros. Technically we don't remove the zeros, we change them to 1, but it can only happen if the adjacent numbers are also zero. Here's the solution:

    #!/usr/bin/perl

    use strict;
    use v5.24;

    my $count = shift;
    say 'You chose a count of 0, please provide a different count.' and exit if $count == 0;
    say 'There are not enough elements, please provide more elements to replace.' and exit if @ARGV < 3;
    for (my $i = 1; $i < $#ARGV - 1; $i++) {
        if (!($ARGV[$i - 1] + $ARGV[$i] + $ARGV[$i + 1])) {$ARGV[$i] = 1 and $count--}
    }
    say ($count > 0 ? '0' : '1');

This one I decided to do a little error-checking on zero counts and not having at least 3 elements. Also, I take the count as the first argument provided. I iterate through the numbers provided with a cursor starting at the second position looping to the second to last. If the cursor and its adjacent numbers are all 0, then we switch the cursor element to 1 and subtract from the remaining number to be found. If we haven't found all of them by the time we're done we print a failure 0, and if we have we print a success 1.

That's it for this week! Have a good week everybody and I'll probably see you next week!
AI-Generated Code: A Pandora's Box of Security Risks?
Tags: ai, security, discuss, cybersecurity
Published: 2023-05-04 00:16:56



AI Software Engineering is here. This isn’t code completion. This isn’t a code generation framework. This is code generation. With innovative tools like ChatGPT and GitHub Copilot, AI-generated code transforms how we create software, enabling faster development for professionals and hobbyists alike. However, as we increasingly rely on these cutting-edge technologies to produce accurate and efficient code, it's crucial to remain vigilant about the potential risks.  

Article:

https://www.true-positives.com/post/ai-generated-code-a-pandora-s-box-of-security-risks
Day 93 of #100DaysOfCode: Implementing Undo Button and Removing Matches
Tags: webdev, javascript, programming, react
Published: 2023-05-04 00:06:47

Hello everyone! It's Day 93 of my #100DaysOfCode challenge, and I'm excited to share an update on my project progress.

Today, I started by working on the homepage UI, making some minor tweaks to improve the overall user experience. But the main focus of the day was working on the logic for the "undo" button. This feature allows users to undo a swipe if they accidentally swipe on someone, and show the profile again in the cards.

Although I didn't quite finish implementing the "undo" button today, I feel confident that I'll be able to complete it tomorrow. Once this feature is complete, I will be able to quickly figure out the heart and "dislike" buttons too.

In addition to the "undo" button, I also need to implement the functionality to remove matching. When a user has matched with someone, this feature will remove the matched person from the matches array as well as the array of new people to swipe on. If a match is removed, the user will not see them again

Lastly, I'm planning to implement Google OAuth 2.0 for signup and sign-in, making it easier for users to create an account and log in. This feature will improve the overall user experience, and I'm excited to get started on it.

Overall, I'm proud of the progress I've made so far on this project, especially considering that this is my first project. I'm looking forward to tackling the remaining features and making even more progress. Thanks for following along on my journey!
Learning from Star Wars Universe
Tags: softwarephilosophy, engineeringmindset, softwaredesign, softwaredevelopment
Published: 2023-05-04 00:00:00


**"Potential is only the beginning"** (Ankin was chosen one for Jedi Order who would have brought balance to the FORCE. His choice ended up with dark side). 

- Similarly,  Agile development is not the silver bullet , it can only take you so far. The software engineers should embrace the engineering mindset (System thinking, Iterative progression, Curiosity to learn, keeping improving) in order to deliver and produce effective and measurable software results.

- Its not just about developing features the engineers should take accountability with DevSecOps to ensure speed of delivery and robustness of the feature to support the end user

**"Do or do not"** (Try not. Do or do not. There is no try)- When you do something, go all out with it, without excuses.

- A release biggest risk would be to discovery and resolution of defects late in the process. This puts product stakeholders in the uncertain position of having to deploy known defects in order to hit a deadline. The planning or even implementing tests early within a sprint increases predictability and reduces the chances that defects will be a constraint to a timely deployment

- Features should be fully developed, tested, and accepted by the product owner before assessing them as done—so that they can be deployed to production at the end of the sprint and delivered to customers.

**"It’s better to deliver bad news than surprises"** (With the famous line, "Luke, I am your father," Darth Vader, the essence of evil, came right out with the truth. This concept of delivering bad news rather than surprises applies to agile effort estimation and exceptions as well. In the end, it cost Luke his hand.)

- It’s important to have invest in learning good development practices
- Think about phased release approach where the team could learn from smaller changes into production and enable feedback and test our ideas. Things could go wrong initially but learning would guide / shape the approach for the team forward


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i75yo1ikid6sxj4q28qn.png)
Azure App Configuration task - An unexpected error occurred
Published: 2023-05-03 23:37:58

In Azure DevOps, using the task, "Azure App Configuration Push", I hit the rather obscure error, "An unexpected error occurred".

First step to dig into this is to edit the release, adding the following debug variable -> `system.debug` set the value to `true`. Then re-run and you do get more detail about what actually went wrong. Looking through the log I can now see: 

> ##[debug]{"name":"RestError","statusCode":403

There is much more detail but that is all that was enough for me, following [these instructions](https://learn.microsoft.com/en-au/azure/azure-app-configuration/push-kv-devops-pipeline) I knew I hadn't given my service principal the "App Configuration Data Owner" role in my Azure App Configuration instance. Once the role was added, the task ran successfully.
Unstyled UI component library is the next big thing!
Tags: webdev, design, react, css
Published: 2023-05-03 23:16:10

As the web development landscape continues to evolve, developers are constantly on the lookout for new tools and libraries that can improve their workflow, reduce development time, and ultimately deliver better user experiences. One emerging trend in the world of UI development is the rise of unstyled UI component libraries, which focus on providing a core set of functional components without any pre-defined styles. In this blog post, we'll dive into the world of headless UI libraries, specifically exploring Radix UI and Base UI, and discuss why they're gaining traction as the next big thing in web development.

What are unstyled UI component libraries?

Unstyled UI component libraries, also known as headless UI libraries, provide developers with a set of functional UI components without any pre-defined styles. This allows for greater flexibility and customization, as developers can apply their own design systems and styles to these components, rather than being locked into a particular look and feel.

Here are some key benefits of using unstyled UI component libraries:

- Greater design flexibility: Since the components are not tied to any specific styling, developers can easily adapt them to match their own design systems or adhere to brand guidelines.
- Reduced CSS bloat: By not including any pre-defined styles, unstyled UI component libraries can help keep the overall CSS bundle size smaller, leading to faster page load times.
- Improved accessibility: Many unstyled UI component libraries, including Radix UI and Base UI, prioritize accessibility by default, ensuring that the components meet the needs of a diverse range of users.

The following is the video from Next.js Conf 2021 where Pedro Duarte shows how complex a UI logic can get while creating a dropdown component.

[So You Think You Can Build A Dropdown?](https://www.youtube.com/watch?v=pcMYcjtWwVI&ab_channel=Vercel)

Radix UI is an unstyled, fully accessible UI component library built for React. It focuses on providing developers with low-level, customizable, and accessible components that can be easily integrated into any design system.

Some of the key features of Radix UI include:

- **Accessibility**: Radix UI components follow the WAI-ARIA guidelines and are built with accessibility in mind, ensuring that they work well with screen readers and keyboard navigation.
- **Customizable components :** While Radix UI provides a set of functional components, developers can easily apply their own styles using CSS or popular CSS-in-JS libraries like styled-components or Emotion.


Similar alternatives to Radix UI includes:

1. [HeadlessUI](https://headlessui.com/)
2. [BaseUI](https://mui.com/base/getting-started/overview/)
Sloan's Inbox: Surviving A Job Performance Plan: Is There Hope?
Tags: discuss
Published: 2023-05-03 23:00:00

Hey there! It's Sloan, your friendly neighborhood DEV Moderator 🦥

Time for another installment of Sloan's Inbox, a fresh online advice column and discussion hosted by yours truly. Every week (or so), I dive into the questions, comments, and thoughts of my fellow sloths.

That's what Sloan's Inbox is all about: sharing advice and observations with those who are seeking insight on topics including career development, navigating office politics, staying up-to-date with industry trends, improving technical skills, and more.

Today I received a query from a fellow DEV member seeking guidance on how to improve Jon performance and maintain a positive attitude while working through a challenging situation. 

---

###Here's today's question:

> Can anyone share their experience with being put on a performance improvement plan? I'm feeling pretty down after being placed on one and worry that it's inevitable that I will be fired. Is there any hope for improvement and overcoming this situation?

So, don't be shy! Share your thoughts in the comments below and let's chat.

_Want to submit a question for discussion or ask for advice? [Visit Sloan's Inbox](https://docs.google.com/forms/d/e/1FAIpQLSc6wgzJ1hh2OR4WsWlJN9WHUJ8jV4dFkRDF2TUP32urHSAsQg/viewform)! You can choose to remain anonymous._
Day 743 : Good Lies
Tags: hiphop, code, coding, lifelongdev
Published: 2023-05-03 22:48:34

_liner notes_:
- Professional : Tried to get up super early to check out a talk prep session of a team member in Europe. My alarm went off. I turned it off and went back to sleep. haha. Totally missed it. Woke up around the regular time, had a meeting and attended another talk prep session. Other than that, I submitted my profile for a talk at a conference later this year. Figured out how to get an application up and running on my local machine so I can add some updates. Also started looking into a new feature that I'll be doing a blog post for.

- Personal : Went through some tracks for the radio show. Looked through a bunch of listings for land. Not much coding. I didn't even watch any anime.

![View from a top of a mountain looking into a valley with lots of vegetation in The Coromandel, New Zealand at sunset](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2q4vceseulkvn32ezlgg.jpg)

Going to go through more tracks for the radio show and look at some land listings. Definitely need to get back to working on my side project. These are the good lies I tell myself. haha Going to end the night watching some anime.

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube _EKC7JLBaJ8 %}
Don't use magic strings!
Tags: webdev, javascript, beginners, tutorial
Published: 2023-05-03 22:24:32

Hi everyone, this is something I recently learned and I would like to share with everyone. It is something small but at the same time it becomes a good practice that can greatly improve our code.

## Magic Strings
We can define this as using hardcoded code that contains a specific string, either to handle a state, compare a value, or store a value that we, for whatever reason, need to have hardcoded.

For example:

```
if(this.userStatus === 'online'){
  //any
}
```

## The problem
If you need to check this status in multiple parts of your code by any reason, someone can easily make a typo error and write something like:

```
if(this.userStatus === 'onlien'){
  //any
}
```

and the code won't work as expected.

## Solution
The most obvious solutions should be to create a constant and use this constant when necessary, but what if we have a lot of constants related to that specific functionality? We should create an object with all possible words.... **A Dictionary**.

```
export const USER_STATUS = {
  online: 'online',
  offline: 'offline',
  connecting: 'connecting'
}

export default class Example {
  checkStatus() {
    if(this.userStatus === USER_STATUS.online){
      //any
    }
  }
}
```

## Mutability
We still have a problem here, even if it's a constant, we could edit the content of our object and overwrite the value by mistake.

`USER_STATUS.online = 'hi'`

To avoid this we can improve the code making it immutable.

##Immutability
Freezing an object prevents extensions and makes existing properties non-writable and non-configurable.

```
export const USER_STATUS = Object.freeze({
  online: "online",
  offline: "offline",
  connecting: "connecting"
});
```

## Point of improvement
At this point our dictionary is ready, however there are cases where we use these values only internally in our application, i.e. we don't need any specific text, it can be a number or anything.

In these cases we could use symbol and avoid the fatigue of adding different strings or numbers for each part of our dictionary. Symbol will always make sure to assign a different value.

```
export const USER_STATUS = Object.freeze({
  online: Symbol(),
  offline: Symbol(),
  connecting: Symbol()
});
```

And that's all, thanks for reading and I hope this helps you organize your code better.

You can also see an small example here:
[https://codesandbox.io/s/runtime-dust-zbkfth](https://codesandbox.io/s/runtime-dust-zbkfth)

Bye bye!