teleren/devto huggingface dataset:
Best medium articles on site
Published: 2022-10-18 19:22:09

https://www.iksirsi.com/ is live!

A project where I aim to collect the best (hard work) software articles on Medium in one place (with permission from the Author) to create a clean resource. Both API and Client side are in my github account as Open Source.

Note: If there is an article you want me to share, please send me the link.
Note: The service sleeps after 15 minutes of inactivity, so you can wait for 15 seconds. (reason: free deployment)

Api Source: https://lnkd.in/davvNQ8f
Client Source: https://lnkd.in/dnnMKyST
What is Command Injection, and how to protect yourself against it?
Tags: cybersecurity, python, programming, tutorial
Published: 2022-10-18 19:15:37

Command injection is a cyber-attack that involves executing commands on another person's host operating system. This could include removing files and changing data on the host computer. This type of attack happens when the programmer does not use enough **input validation** to check if the input is _malicious_ or not.

For example, in Python you can code:
```python
import os

domain_name = input()

os.system('ping ' + domain_name)
```
Then, when I run this in my computer, I can input `google.com` as the `domain_name`, such as:
![Pinging Google](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n73nia4g802g8woq6hy5.gif)
As you can see, you get a response back from Google!

Although, someone not as nice as me or you may type out something different when prompted for input. Let's say you want to just `echo` what the user said back to us from the command line.

You would just replace the `ping` in the `os.system` with
`os.system('echo ' + input)`

But this time, lets add `; ls` after whatever you want to `echo`
![Command Injection](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yalwvtjikt5p284tn62x.gif)
As you can see, we get the files in the current working directory, which happens to be `example.py`. This is **bad**.

You can even take it a step further and use the `rm` command to remove a file on your system such as:
`hello; rm example.py`

![Removing File](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6rk3tqp9iw35kw5kueb9.gif)

As you can see the file is now **gone** from your computer. This can lead to a slew of security issues if left unchecked. To combat this (in Python specifically) we can use the `call` method from the `subprocess` module. Such as

```python
from subprocess import call

user_input = input()

call(["echo", user_input])
```
The `call` function will make sure that only a **single** command will be run.

![Fixing Security Issue](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2t9ocviqdm02mf5z2rdg.gif)

There are language equivalents for the example in Python above. 
Be safe!
([Anime CS Girls](https://github.com/cat-milk/Anime-Girls-Holding-Programming-Books))
Access to UI Library props or hard-coded options in a Design System?
Tags: webdev, components, typescript, react
Published: 2022-10-18 19:04:06

## Quick Question: Would you rather have access to the props of a UI Library or have a dev hard-code options you select from when using components in a Design System?

So recently, I wrote [an article](https://dev.to/opensauced/create-more-maintainable-ui-by-adding-a-wrapper-around-ui-library-elements-3oae) about adding a wrapper around components from a UI library so you get access to the props from the UI library but you can customize the component before displaying it on the page. At the time, I thought this was the ultimate in component management. The more I think about it though, the more that might not be the best or simply not other Engineers' preference. So I wanted to post the question to everyone.

Please comment here or in the Twitter thread that this will appear in. Thanks so very much!
The beginning of my journey - AquaHub #1
Tags: webdev, opensource, career
Published: 2022-10-18 18:54:00

**Hello happy programmers** 👋
In this post I want to talk about me and my plans for the future I'm going to take you on with. I have absolutely no idea how everything's going to come out but I'm super excited for it!

- [👨 About me](#about-me)
- [🔮 Future plans](#future-plans)
- [🚀 How I will take you on this journey](#how-i-take-you-on-this-journey)

## 👨 About me
My name is **Jannis** and I'm a teenager programmer. I'm mainly a web developer and started doing this, my todays favourite passion, around three years ago. In this time I learned a ton of stuff about _frontend, backend, security, hosting, docker and much more._

## 🔮 Future plans
After my quick introduction I want to tell you about my "thing" that I plan for the future. A while back I started this "thing" and it was always my goal. Still there was stuff that came in between I had or wanted to do. Even if it costed much time I took it as a good practice for this project now.

Now, this "thing" is my big project called "**AquaHub**" (or "AquaHubStudio"). I want to make it a network of multiple web softwares that can work together easily if needed. So everything's extensible and combinable.

## 🚀 How I will take you on this journey
Before I lose myself in my vision let's quickly talk about how I want to take you with me on this journey. I decided to write a post **weekly every Saturday** to update you about the progress and future tasks.

About AquaHub or/and it's current project I'm still debating if I will open-source it or not. I'm a huge fan of OSS (Open-Source-Software) and I probably **will** open-source it but I'm planning on making it paid for bigger groups/companies.

AquaHub also has a [Discord](https://discord.gg/GjJNf7zhgy)!

## 🔥 Last words
**Thanks for reading!**
Don't hesitate to comment what you think about it or if you have any tips you want to give me on my journey. I will respond to every comment with joy.

<a href="https://www.buymeacoffee.com/jannisdev" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-blue.png" alt="Support me" height="20" width="80"></a>
wd command
Tags: haskell
Published: 2022-10-18 18:12:45

I have just released wd command!

# What's wd command?

A following command runs a `COMMAND` with some `OPTIONS` on a `DIRECTORY` as a working directory.

```
$ wd DIRECTORY COMMAND OPTIONS
```

`pushd` and `popd` are too long to type for me.

# Install

Binaries are provided at a GitHub Release page. They are for Windows, Linux, and macOS (x64)[^1].

[^1]: I'm going to add a binary for macOS (ARM) when GitHub Actions will provide a macOS (ARM) platform.
https://github.com/kakkun61/wd/releases/tag/0.1.0.0

If you want to build it, you need `cabal` and `ghc`.

```
$ make install
```

You like it? Give a star on the GitHub repo.
BinarySearch Site Down For A Few Days
Tags: binarysearch
Published: 2022-10-18 17:26:02

Not looking good... seems it is gone forever.

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

I have used it as a source in the past to [teach my sons programming](https://zhihua-lai.com/teaching/). Sad to see it gone.
Loopback Framework
Tags: javascript, programming, node, developer
Published: 2022-10-18 17:23:24


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

Loopback is an open-source and award-winning node js and typescript framework based on express.
This framework enables the developer to rapidly create API's from the backend systems including Databases and RESTful services.

Loopback is built for the following:

For API developers
For Teams
For your platform

Loopback serves as a composition bridge between incoming requests and outgoing integrations. It involves different personas who are mainly the developers and platform engineers in various capabilities provided by Loopback.

**How loopback is built for API developers?**

1) Using OpenAPI standard, an API developer can define his API endpoints along with schemas.
2) Developer can write his endpoints using modern JavaScript using ES2017 with async and await modules.
3) Use your defined endpoints and schemas as the source of truth without generating code.

**How loopback is built for Teams?**

1) Without digging into JavaScript, review changes to the API endpoints.
2) Maintain consistency by automating the validation of your endpoints and schemas.
3) First class support for TypeScript a strongly typed JavaScript

**How loopback is built for platform?**

1) As a starting point for your own platform, you can use loopback.
2) Using loopback one can build reusable components and libraries in a most standard way
3) Databases, web services and other platforms using connectors can be integrated by loopback.

To continue reading and explore more information and official docs click this link [https://loopback.io/doc/en/lb4/index.html](https://loopback.io/doc/en/lb4/index.html)
Hactoberfest 2022
Tags: programming, hacktoberfest, opensource, github
Published: 2022-10-18 17:18:42

![@neo7337's Holopin board](https://holopin.me/neo7337)

This HACKTOBERFEST was a pretty good one.
I was working on my library and got some good contributions.

I worked on [Struct Validator](https://pkg.go.dev/github.com/neo7337/go-struct-validator) built for Golang.

We will continue to improve the library and being an open source project we welcome all the contributions and efforts to make this library better.
Elevate your data with faster NRQL parsing and more precise querying & other New Relic updates
Tags: devops, monitoring, o11y
Published: 2022-10-18 17:17:52

Here’s the scoop on the latest New Relic product innovations, partnerships, and events:


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


**Elevate your data with faster NRQL parsing and more precise querying**
New Relic query language (NRQL) productivity improvements include NRQL variables, anchor parse, and regex multi-capture to allow for faster parsing and more productive querying that delivers the insights you need on your data. [Watch the Demo](https://www.youtube.com/watch?v=AxDS1IJCfbY)


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



**We’re getting a new look!**
On October 17, 2022, the New Relic  [redesigned UI](https://newrelic.com/blog/nerdlog/new-ui-new-relic?utm_source=devto&utm_medium=community&utm_campaign=global-fy-23q3-dev_to_post) will be turned on automatically for all users. Experience a simpler, faster, and more convenient interface that allows you to focus on the data that matters most. You can switch back to our legacy UI at any time via your account menu by toggling New design to Off. Check out our [demo video](https://www.youtube.com/watch?v=c8gxuwEFtuU) for more info. 

[Learn More](https://docs.newrelic.com/docs/new-relic-solutions/new-relic-one/new-navigation-transition-guide/?utm_source=devto&utm_medium=community&utm_campaign=global-fy-23q3-dev_to_post)

**Support Tip of the Week: Switching between accounts in different regions**
If you have accounts in both our EU and US data regions, account switching can be a bit challenging. Don’t worry though, we’ve got [an article that makes it easier](https://discuss.newrelic.com/t/switching-between-accounts-in-different-data-regions/190186?utm_source=devto&utm_medium=community&utm_campaign=global-fy-23q3-dev_to_post).

**What’s new at New Relic**
Learn more about these new features and the rest of our latest releases by checking out [What's new](https://docs.newrelic.com/whats-new/?utm_source=devto&utm_medium=community&utm_campaign=global-fy-23q3-dev_to_post).

---

Join [New Relic’s Slack community](https://join.slack.com/t/newrelicusers/shared_invite/zt-1ayj69rzm-~go~Eo1whIQGYnu3qi15ng?utm_source=marketo&utm_medium=email&utm_campaign=amer-fy23-q3-changelog&utm_content=changelog) to continue the conversation with hundreds of other developers using New Relic.

Not an existing New Relic user? [Sign up for a free account](https://newrelic.com/signup/?utm_source=devto&utm_medium=community&utm_campaign=global-fy23-q3-dev_to_techupdates) to get started!
The Best Programming Language For Your First Project
Tags: programming, beginners, webdev, codenewbie
Published: 2022-10-18 17:17:01

If you have just started learning to code, choosing the best programming language for your first project can be a challenge. 

There are so many options, and each one has pros and cons. I've worked on over 100 projects in the past 6 years and tried out plenty of programming languages. This article is a summary of my experience and knowledge, so that you don't need to start from scratch.

## There are countless languages to learn in programming but only a few will help explode your career trajectory

Here's my list of recommended programming languages you should look at


## 👉 Python (Recommended)

Python is always recommended if you’re looking for an easy and even fun programming language to learn first. Python also is ideal for web development, graphic user interfaces (GUIs), and software development. In fact, it was used to build Instagram, YouTube, and Spotify, so it’s clearly in demand among employers in addition to having a faster onboarding.


## Alternatives

### 👉 1. C#

While C is one of the more difficult languages to learn, it’s still an excellent first language pick up because almost all programming languages are implemented in it. This means that once you learn C, it’ll be simple to learn more languages like C++ and C#.


### 👉 2. Java

Java is an object-oriented and feature-heavy programming language that’s in high demand. It’s been built under the premise of “Write once, run anywhere,” meaning that it can be written on any device and work cross-platform. Additionally, Java is often used for Android and iOS app development, as it’s the basis of the Android operating system, which makes it one of the best choices if you want to build mobile apps.


### 👉 3. JavaScript

JavaScript is another incredibly popular language. Many websites that you use every day rely on JavaScript including Twitter, Gmail, Spotify, Facebook, and Instagram according to General Assembly. Additionally, it’s a must-have when adding interactivity to websites because it communicates with HTML and CSS.


### 👉 4. Ruby

Ruby is similar to Python in that it’s one of the easiest languages for people with no prior programming experience to read. You don’t need to know a ton of commands or programming vocabulary to learn it, and it has a multitude of libraries and tools that come in handy.



## Conclusion

The potential of programming can be overwhelming, and so deciding what language to learn first can be a point of contention for many students, who value efficiency over nearly all else. If you're looking to start coding but aren't sure which language is best for your first project, I hope that this article will help guide you to the right project for your first programming experience.

______________________________

I love jotting down my thoughts on my blog [Sleepless Yogi](https://www.sleeplessyogi.com/).

Follow me on Twitter [@sleeplessyogi]
Ways to get knowledge
Tags: performance, career
Published: 2022-10-18 17:04:10

Get knowledge is something that everyone desires, searching by a magical formula to increase and expand the intelligence. I've already posted an article about learning by videos or classes in which I expressed my dissatisfaction with this method, read in [You shouldn't need to watch videos or lessons to learn something](https://dev.to/vinibgoulart/you-dont-need-to-watch-videos-or-lessons-to-learn-something-52j5). 

So this article will cover my favorite knowledge methods and the ones I feel that are more successful

## Asking in the community
For sure, my favorite method is asking in community and interact with the people, listen to different opinions and points of view is nice, you'll be able to discuss. Don't be afraid to ask, people are more receptive than you think, every question is valid, everyone already started somewhere. But don't fall into your comfort zone and appeal to community always, just use to debate and understand other thoughts.

## Learning articles or docs
Documents and articles are the best methods to learn quickly, you can apply some reading methods like skimming and scanning saving a lot of time.

## Searching a similar solution
Probably, what you want to do after learning already exists or has something similar, so look for it and see how it was done. You will automatically be learning and studying.

## Writing
Accept the challenge of writing about something, on the way you will need to understand how things really work, greatly increasing your tree of knowledge. You can write about anything, choose a topic and start writing and learn along the way. Write to learn, don't learn to write.

## Videos
Videos should also be considered ways to learn, even though they are massive and time consuming. I particularly like to watch videos to learn when I'm tired, they are easy to understand but lack in terms of productivity
UIHUT - Figma Plugin
Tags: uikitplugin, figma, helpfuldeisgn, devresources
Published: 2022-10-18 16:56:35

**Designers use thousands of hours every year searching for resources and Inspiration.**

Searching, Downloading any file and uploading it on Figma. It takes a lot of time and destructive things for our main design task.  

Two years ago, I dreamed of a plugin with UIHUT where designers could search for any resources or inspiration they needed. Then simply, they can copy and paste it on their artboard. 

Here is the [UIHUT](https://www.figma.com/community/plugin/1162429535586149534/UIHUT) plugin - Make your design workflow 10X faster than before

Thank You
Why I Am Preparing for My Next Role
Tags: beginners, career
Published: 2022-10-18 14:37:09

Things need to change. The direction of my development in my current company has become unfavourable for me to grow as a dev.

My current role has shifted from being a software engineer to that of a more operational/marketing role. I have written 0 lines of code for the app in the past 3 week, and thats not my choice but from  management because other parts have been deemed more critical by them. This change is likely to persist many months into the future.

I became a software dev to buildl, not to do marketing or any other of these tasks. This job scope is likely to continue in the future and will really stunt my growth as a dev. And in all honesty, I already have had good success doing marketing, strategic planning and operational management in my former business (pre-pandemic) and work.

On the practical side of things, I havent been given equity (formally) like I was promised and I don't get paid enough to do all those things combined. I am very clear on my professional worth.

Don't get me wrong, I dont mind these tasks as long as my main role is to develop the software/code with the other things as side responsibilities.

A dev should always code/build as their primary source of contribution. 

Since I believe in discarding or walking away for situations that don't help you achieve your goal, I am going to prepare myself for the next job. 

These next few months are going to be fun :)
VS Code Jest extension: tackling Debug codelens disappearing act
Tags: jest, javascript, testing, vscode
Published: 2022-10-18 16:24:03

This is the section of my VS Code User Preferences `settings.json` (to access, `Ctrl +P` then select `Preferences: Open User Settings`) for Jest VS Code extension:

```
{
    ...
    "jest.coverageFormatter": "GutterFormatter",  
    "jest.debugCodeLens.showWhenTestStateIn": [
        "fail",
        "unknown",
        "pass",
        "skip"
    ]
}
```

I found that the Jest extension's Debug CodeLens wouldn't always appear on tests. A lot of the time I had to go to **Testing** window in VS Code sidebar to start debugging on a test because the Debug codelens wasn't available on the test in situ in the code file. 

Turns out this was because `jest.debugCodeLens.showWhenTestStateIn` has default value of `["fail", "unknown"]`. 

I added the other two possible statuses to ensure that the Debug codelens is always available.

----

The other setting here is `jest.coverageFormatter`. I find seeing coverage in the gutter on the left of a file unobtrusive compared to the extension's default behaviour of colour-coding regions of code in the file.

----

You can of course set the above on a per project basis by putting the snippet above in `.vscode\settings.json` in your workspace (this file can be created/navigated to using the command `Ctrl + P` then `Preferences: Open Workspace Settings`).
7 Tips for job hunting from my personal experience
Tags: career, watercooler, beginners
Published: 2022-10-18 16:20:01

## Be positive and confident
This is the first and the main step in starting a job hunt. You have to jump into this with a positive attitude.
It means that you should believe in yourself, and your skills and have a positive mindset that you'll eventually get the job you deserve.

## Create your resume
There are multiple online tools to create your resume. I designed mine using [canva](https://www.canva.com/). Make sure to add your all skills and experiences in the resume.
If you already have a resume, make time to update it regularly and especially before a job hunt.

## Update your LinkedIn profile
Nowadays most companies ask for your LinkedIn profile in the job application form. LinkedIn profiles act like your portfolio in some cases. 
So I recommend properly updating your LinkedIn with this information.
* Profile headline
* Profile picture
* About
* Experience
* Skills
* Projects
* Honors & Awards

## Ask for recommendations
The recommendation is a feature available on LinkedIn. You can ask your present or ex-coworkers to give you commends regarding your skills and work. Many employers prefer someone who has multiple recommendations over a person who has none.

## Apply intelligently
Only apply for jobs that match your requirements. Read the job description, responsibilities, and skills required for it. I look for certain things before applying for a job.
* Job title
* Job Type (Remote/On site)
* Description/Skills
* Company profile and benefits offered
* Number of employees
* Number of followers
Some of you may find the number of followers and employees irrelevant. But if you are looking for big companies or other than startup companies then I think these 2 factors matter.

## Be organized and patient
Once you get interview calls, start organizing your calendar. I would recommend max 3 scheduled interview calls a day. This way it doesn't drain your energy and keeps you energetic for all interviews.
After the interview, wait for the response call or email patiently. You can send a follow-up email after a week if you don't hear back from your employers. 

## Get insights
Lastly, before accepting the offer, you must get an insight about the employer/company from the other employees. Sometimes you get very eye-opening reviews that help you make your decision easy.
I get this by making a connection on LinkedIn with that company's employees which are acting in the same role as me. And don't get settled with only one review. At least ask 2 or 3 people and then make your decision.

Thank you for reading!
Feel free to connect on [Twitter](https://twitter.com/Aneeqa_Khan25)