teleren/devto huggingface dataset:
An Open Source DevOps Toolchain Manager
Tags: opensource, devops, tooling
Published: 2022-03-02 17:07:00

Hey Dev.to Family! Forgive my shameless promotion, but I'm proud of my teammates and want to share, and hoping you'll help! 

**Quick demo video at the bottom of the post!
**

DevStream, is an open source DevOps toolchain manager that we developed to make it fast and easy to configure, launch, and manage a workflow in just a few minutes with a single command. 

https://github.com/merico-dev/stream

As we've built DevOps tools, it became clear what a headache it was for teams to set up new workflows (and many don't really have them because of this!) So we wanted to do our part to solve this.

No more manual curl/wget download, apt install, helm install; no more local experiments and playing around just to get a piece of tool installed correctly. 

DevStream does the hard work for you so you can focus on building (the fun part!) 


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

You can define your desired DevOps tools in a single human-readable YAML config file, and at the press of a button (one single command), you will have your whole DevOps toolchain and SDLC workflow set up. 

We've already integrated GitHub Actions, Jenkins, ArgoCI, Grafana/Prometheus, and Trello, more tools on the way! 
We'd love your feedback, ideas, contributions, anything is most welcome. We hope you love it and find it as helpful as we intended, and that if so, that you'll help us spread the word!

GitHub link HERE: https://github.com/merico-dev/stream

<iframe width="560" height="315" src="https://www.youtube.com/embed/gHxStaTfUho" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
Reat.js Internationalization
Tags: react, i18, javascript, tutorial
Published: 2022-03-02 17:03:52

I recently learned about the implementation of internationalization in react app. Let me tell you the process.

There is a lot of libraries to help you implement i18n in React.js but I used i18next for the task.

**Installation:**

```
npm install i18next react-i18next i18next-browser-languagedetector
```


Let's install a few packages to make it work. Like **i18next**, **react-i18next**, and **i18next-browser-languagedetector**.

Just run the snippet in the terminal.

Then create a file named "**i18n.js**" or whatever you have chosen to, then add the following code:


```
import i18n from "i18next";
import { initReactI18next } from "react-i18next";
import LanguageDetector from "i18next-browser-languagedetector";


import English from "./en/translations";
import Bangla from "./bn/translations";


i18n
  .use(LanguageDetector)
  .use(initReactI18next)
  .init({
    // we init with resources
    resources: {
      English: English,
      Bangla: Bangla,

    },
    fallbackLng: "English",
    debug: true,


    // have a common namespace used around the full app
    ns: ["translations"],
    defaultNS: "translations",


    keySeparator: false, // we use content as keys


    interpolation: {
      escapeValue: false,
    },
  });


export default i18n;
```

I know there is no such file called **English** in the "_./en/translations_" folder, and we will create that later. But for now, let's move on to the next step.

In the index.js file add the following line.

```
import "./i18n";
```

By this translations are now globally accessible.

Now let's create the translations,

First, create folders and files in the following structure:

![folder structure](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yeqyyrorfc0qrt8m0g8b.png)

and add translations, 

In _en/translations.js_


```
const English = {
  translations: {
    "NAME": "Akhlak Hossain Jim",
    ...
  },
};

export default English;
```

And in bn/translations.js

```
const Bangla = {
  translations: {
    "NAME": "আখলাক হোসেন জিম",
    ...
  },
};

export default Bangla;
```

In this way, you can set as many keys and values with short names and strings.

And it's now time for using it. Let's go to the App.js file or wherever you want to use, and use as follows:

```
import { useTranslation } from "react-i18next";


export default function App() {
  const { t } = useTranslation();


  return (
    <div>{t("NAME")}</div>
  );
} 
```

And now it's all set.

These are the basic steps for adding i18next.
If you build it, you should break it
Tags: beginners, security, codenewbie
Published: 2022-03-02 16:57:01

You may have heard, “If you build it, they will come.”

Have you heard, “If you build it, I will break it?”

This is a skill I developed over my career to build better systems. It is a skill that took me a while to learn I had.

Shortly before I graduated from college, I decided to leave the material science industry because I had a tendency to break stuff. When working with toxic substances, this can be hazardous. As a result, I changed to the systems engineering field.

It turned out I had a knack for breaking stuff there too. For a long while, I avoided working on things I could break. Yet, I found I wasn’t growing as much as my peers. So I decided I needed to do some hands-on work.

As it turns out, I was breaking stuff, and people were getting mad. They had to fix deficiencies and errors I discovered. A time came people started expecting me to fix what I broke. That was a pivotal moment in my career.

I had to learn how to fix things, and I wasn’t trained as an engineer. My undergrad was in material science. I started learning how to fix things and became more knowledgeable about the technology. I eventually learned how to find defects, flaws, and deficiencies in designs.

I turned what I thought was a flaw into a skill. I could help build more reliable systems by “breaking them.” Penetration testers do this type of work. They look for vulnerabilities and ways to break “in.” I had a knack for finding ways to break “down” systems. If I can learn why a system could falter, I can help prevent it.

My recommendation for your systems: Plan to break your system before it breaks on you.

### Want to Connect?

[Miguel](https://miguelacallesmba.com/) is a Principal Engineer and the author of the “[Serverless Security](https://serverlesssecuritybook.com/)” book. He has worked on multiple serverless projects as a developer and security engineer, contributed to [open-source serverless projects](https://github.com/miguel-a-calles-mba?tab=repositories), and worked on large military systems in various engineering roles.

<hr>

Originally published on [Medium](https://miguelacallesmba.medium.com/if-you-build-it-you-should-break-it-25e06f2d53b6)

Photo by [Marc Rafanell López](https://unsplash.com/@marcrafanell) on https://unsplash.com/@marcrafanell
#100 DAYS OF PYTHON CODE  #DAY 2
Published: 2022-03-02 16:26:54

TOPICS LEARNT:
1.DATA TYPES.
2.TYPE ERROR,TYPE CHECKING AND TYPE CONVERSION.
3.MATHEMATICAL OPERATIONS (PEMDASLR RULE).
4.round(),format() and f-strings.
5.Completed Tip Calculator project.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wmb1fetafj6mao57ptce.png)
Learning to code and inferiority complex
Tags: beginners, programming
Published: 2022-03-02 16:25:33

If you're a member of tech communities online, you'll often read success stories of people whose lives were changed by working in tech. People who knew nothing and got their first job months later, others having a six-figure salary, etc.

But if you're not there, it may feel demotivating! You might think that maybe you're not good enough, **even inferiority complex may creep up.** It is normal?

The first thing to consider is that people love to boast about their own successes. It's also inspiring for many people, who upvote/like/favourite those comments and make them popular and viral.

**Many of those success stories are real, but those are not the full picture.** Many of them also struggled just like you, but they decided not to post that. Or maybe they did post their struggles, but those posts weren't so popular.

**Also, some people on the Internet just lie.** It's wise to take everything you read online with a grain of salt.

I say this a thousand times, and I'll say it again: coding is a skill. As such, most people can master it if they take a learning approach that suits them and if they **practice consistently.**

For some people it will be harder than others, there's no way around it. For some people, it will take longer than others. But it **is** possible nonetheless. Don't let social media distract you! **You've got this 💪**

---

Become a Better JavaScript Developer! My newsletter has easy, actionable steps to level up your JavaScript skills, right to your inbox. [Click here to subscribe](https://nicozerpa.com/newsletter)
Bash mktemp
Tags: bash, cli, linux
Published: 2022-03-02 16:20:37

---
canonical_url: https://waylonwalker.com/til/bash-mktemp/
published: true
tags:
- bash
- cli
- linux
series: til
title: Bash mktemp
---

There is GNU coreutils command called `mktemp` that is super handy in shell scripts to make temporary landing spots for files so that they never clash with another instance, and will automatically get cleaned up when you restart, or whenever `/tmp` gets wiped.  I'm not sure when that is, but I don't expect it to be long.

## Making temp directories

Here are some examples of making temp directories in different places, my favorite is `mktemp -dt mytemp-XXXXXX`.

``` bash
# makes a temporary directory in /tmp/ with the defaul template tmp.XXXXXXXXXX
mktemp

# makes a temporary directory in your current directory
mktemp --directory mytemp-XXXXXX
# shorter version
mktemp -d mytemp-XXXXXX

# same thing, but makes a file
mktemp mytemp-XXXXXX

# makes a temporary directory in your /tmp/ directory (or what ever you have configured as your TMPDIR)
mktemp --directory --tmpdir mytemp-XXXXXX
# shorter version
mktemp -dt mytemp-XXXXXX

# same thing, but makes a file
mktemp --tmpdir mytemp-XXXXXX
# shorter version
mktemp -t mytemp-XXXXXX
```

## Use Case

Here is a sample script that shows how to capture the tempdir as a variable and reuse it.  Here is an example of curling my bootstrap file into a temp directory and running it from that directory.

``` bash
local tmp=`mktemp -dt bootstrap-XXXXXX` pushd $tmp curl https://raw.githubusercontent.com/WaylonWalker/devtainer/main/bootstrap > bootstrap bash bootstrap popd
```

## Templates

You must have at least 3 trailing X's that mktemp will replace with random characters.  I played with it for a bit, it kinda allows for some trailing characters, and will not fill groups of X's earlier in your template, only the last consecutive string.

My randomm samples I played with.

``` bash
waylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com) took 2m24s
❯ mktemp myXtemp-XaXbXXXX -dt
/tmp/myXtemp-XaXbx9hn

waylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)
❯ mktemp myXtemp-XaXbXXXXs -dt
/tmp/myXtemp-XaXb2tpGs

waylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)
❯ mktemp myXtemp-XaXbXXcXXs -dt
mktemp: too few X's in template ‘myXtemp-XaXbXXcXXs’

waylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)
❯ mktemp myXtemp-XaXbXXcXXs -dt

waylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)
❯ mktemp myXtemp-XaXbXXXXt -dt
/tmp/myXtemp-XaXbe8PWt

waylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)
❯ mktemp myXtemp-XXX-you-XXX -dt
/tmp/myXtemp-XXX-you-48l

waylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)
❯ mktemp myXtemp-XXX-you-XX -dt
mktemp: too few X's in template ‘myXtemp-XXX-you-XX’
```

## RTFM

The man page has good stuff on all the flags that you might need.
``` bash
man mktemp
```
Performance Efficiency Design Principles and Definition - AWS Well-Architected Framework Study Guide
Published: 2022-03-02 16:19:45

[Return to Well-Architected Framework Guide](https://dev.to/aidutcher/aws-well-architected-framework-study-guide-introduction-fjg)

[**Performance Efficiency**](https://docs.aws.amazon.com/wellarchitected/latest/framework/performance-efficiency.html)
- Use computing resources efficiently to meet system requirements
- Maintain that efficiency as demand changes and technologies evolve

[**Design Principles**](https://docs.aws.amazon.com/wellarchitected/latest/framework/perf-dp.html)
- Democratize advanced technologies
- Go global in minutes
- Use serverless architectures
- Experiment more often
- Consider mechanical sympathy

[**Definition**](https://docs.aws.amazon.com/wellarchitected/latest/framework/perf-def.html)
- Four best practice areas:
     - Selection
     - Review
     - Monitoring
     - Tradeoffs


[Return to Well-Architected Framework Guide](https://dev.to/aidutcher/aws-well-architected-framework-study-guide-introduction-fjg)
Created a product used by 50,000 people per month
Tags: vue, flask, sideprojects, webdev
Published: 2022-03-02 16:13:16


_(This text is translated from Japanese into English by DeepL, so there may be some grammatical errors. Please understand.)_

In October 2018, my coworker and I started a side project in web app development.

We wanted to create a web app that solves the tedious task of recording the money owed and borrowed that occurs when you go on a trip with friends in a spreadsheet and calculating who should pay back how much to whom at the end of the trip.

We developed the front-end in Vue.js and the back-end in Python (Flask) and deployed it on Heroku.

The functionality is simple: create a group page from a browser and add members to it. After that, you can share the URL of that group page in a group chat to keep track of who paid what to whom and how much they paid for what. As you record the expenditures, you will be able to see the calculation results of who should pay back how much to whom in real time.

![screen](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0tdcx8c9vv5qtq7ilssy.png)

We named it [spliito](https://spliito.com/).

## Until we get on a growth path

The app grows semi-automatically once the number of users grows to a certain number because the action of "sharing with friends" is built into the user experience. However, my specialty is not marketing, so I have been taking measures through trial and error.

- Contacted people who are about to travel via Twitter and introducing them to our product.
- Printed QR codes on chocolate packages and hand them out in town
- Gave a speech about product development to the developer community and introduced the product.

Roughly around the time MAUs increased to about 150, the product gradually began to enter a growth path.

## Tenfold growth in 2021

Despite the impact of the coronavirus, the number of users increased tenfold from January to December 2021, finally reached 50,000 MAU.

![google analytics](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fbjg5i15ojagso91xucr.png)

Our main source of income is Google Adsense, which brings us about $300 per month so far.

This year, we are planning to expand to the U.S. and are writing an article introducing our product in this way.

## Marketing measures for expansion to the U.S.

We are expanding to the U.S. without knowing what to expect, but I have conducted user interviews with about 5 of my American online English teachers and have confirmed that there is some need for this product.

We are now operating several channels.

- Create a podcast channel that provides information about Japan, and insert a short product introduction there..
- Write articles on Medium to introduce our product and attract customers through Google searches.
- Opened Twitter account
- Posted on ProductHunt

However, I have yet to see results from any of them, so if you have any advice, please let me know.

[spliito | Calculate Complex Splits in Seconds](https://bit.ly/3H7w3Zf)
Web3, TypeScript, New Frameworks, and More!
Tags: podcast, web3, typescript, svelte
Published: 2022-03-02 16:03:55

{% spotify spotify:episode:33RYDj97XajeLMkOSULw4E %}

## What is HTML All The Things

HTML All The Things is a [web development podcast](https://www.htmlallthethings.com/) and [discord community](https://discord.com/invite/jweMCx9) which was started by Matt and Mike, developers based in Ontario, Canada. 

The podcast speaks to web development topics as well as running a small business, self-employment and time management. You can join them for both their successes and their struggles as they try to manage expanding their Web Development business without stretching themselves too thin.

## What's This One About?

In this episode Matt and Mike tackle some of your Twitter questions including topics such as Web2 versus Web3, when to learn TypeScript, how to tell when you should change your framework, and why influencers speak about new tech so much.


## Show Notes

#### Question 1
What do you think about web2 vs web3? How will the internet look like in the upcoming years? -- [@csaba_kissi](https://twitter.com/csaba_kissi)

#### Question 2
When do you decide to look closer at a new tech or framework? What is that going point? Community, solves a problem, been around more then 2 years, etc. -- [@ChrisKeeneMA](https://twitter.com/ChrisKeeneMA)

#### Question 3
To TypeScript or not to TypeScript...And if so, should this be on the short list of things to learn towards the beginning of the dev journey or some time after? -- [@j4w8n](https://twitter.com/j4w8n)

#### Question 4
Why are some developers on twitter and on the web in general always talking about new technologies (Bulma CSS, Tailwind) when in fact the reality is that most companies (including the one where I'm an intern) use WordPress and jQuery? -- [@techsavvyteachy](https://twitter.com/techsavvyteachy)

## Resources

* [https://www.investopedia.com/web-20-web-30-5208698#toc-web-10](https://www.investopedia.com/web-20-web-30-5208698#toc-web-10)
* [https://www.investopedia.com/terms/w/web-20.asp](https://www.investopedia.com/terms/w/web-20.asp)


## Thank you!

If you're enjoying the podcast consider giving us a review on [Apple Podcasts](https://podcasts.apple.com/us/podcast/html-all-things-web-development-web-design-small-business/id1412209136) or checking out our Patreon to get a shoutout on the podcast. 

**[Support us on Patreon](https://www.patreon.com/htmlallthethings)**


You can find us on all the podcast platforms out there as well as

[Instagram (@htmlallthethings)](https://www.instagram.com/htmlallthethings/)
[Twitter (@htmleverything)](https://twitter.com/htmleverything)
[TikTok (Html All The Things)](https://www.tiktok.com/@htmlallthethings)
The first search engine for remote only engineering jobs 
Tags: career, remote
Published: 2022-03-02 16:00:21

I am Nitin, the creator of Remote Only Engineers and I would like to welcome you to the Remote Only Engineers Community.   

Working remotely for the past 5 years has been a super rewarding experience for me and during this journey I have met so many fellow engineers who wanted to work remotely but they just didn't know where to get started.   

I strongly believe good engineers should NOT have to scour through dozens of job boards to find a good remote job in 2022.   In line with that vision, I have created a specialized Search Engine that can be your gateway to discovering Top quality remote jobs. The Search Engine has already indexed 2900+ high quality remote jobs and it continues to crawl various job boards and websites to bring you the most relevant opportunities. 

[Try it out now](https://remoteonlyengineers.com)
c++ dasturlash tili haqida
Tags: programming, cpp, uzbek, beginners
Published: 2022-03-02 15:56:37

#C++ - bu
*Siz C++ dasturlash tilida komputerlar uchun dasturlar tuzishingiz mumkin.*
C++ dagi eng oson code bu:
```
cout << "hello world" << endl;
```
*Siz C++ ni o'rganib kelajakda katta yutuqlarga erishishingiz mumkin*
Career Advice
Published: 2022-03-02 15:50:18

Hello everyone. I just got enrolled in a software engineering school for a one-year diploma. I initially chose cloud engineering but I am having a second thought on it. The school also offers frontend and backend. What are the job opportunities in cloud engineering and easy is it for me to get a job in the cloud? Also is it mandatory I get certified in one of the cloud providers like aws?
#cloudengineering #frontend #tech
Stop using express.Router()
Tags: express, javascript, node, nextjs
Published: 2022-03-02 15:32:34

Ever wrote code like this? Stop it.

```ts
// 🚨 this is messy
const router = express.Router()

router.get("/posts", async (req, res) => {
    res.json([])
})

export default router
```

One of the great features that come with modern frontend frameworks like Next.js is a `/pages` directory where all your app's routes live in.

Luckily, we can achieve the same DX in our Express backend codebases too without writing our own ugly `express.Router()`s but with the [`express-file-routing`](https://github.com/matthiaaas/express-file-routing) package.

```ts
// ✅ this is enjoyable
export const get = async (req, res) => {
    res.json([])
}
```

As you can see, it's a super clean approach and quite beneficial for code style and maintainability to split your Express route handlers into separate files.

Just by taking a look at a project's file structure, one can intuitively see what endpoints our API is about to provide.

```ts
├── app.ts
├── routes
    └── posts
        ├── index.ts
        └── [id].ts
└── package.json
```

- `/routes/posts/index.ts` → /posts
- `/routes/posts/[id].ts` → /posts/:id

## How to use Express file routing

This is quite of a straightforward process. Even though this post is more of an intro rather than a tutorial on how to use this [`express-file-routing`](https://github.com/matthiaaas/express-file-routing), here's a quick start.

All you need to do is to install `express-file-routing` from npm.

```
npm install express-file-routing
```

In your main entry file, create an Express app instance and attach the file router.

```ts
// app.ts
import express from "express"
import { router } from "express-file-routing"

const app = express()

app.use("/", router()) // this is the magic

app.listen(4000)
```

You're already done!

Enqueuing new routes from now on is as easy as creating a file in `/routes` and exporting your HTTP method handlers.

```ts
// /routes/posts.ts
export const get = async (req, res) => {
    res.json([])
}

export const post = async (req, res) => {
    await db.post.create()
    res.status(201)
}
```

Even middlewares are supported by exporting an array of request handlers instead of a single one.

```ts
export const post = [
  rateLimit(), userAuth(),
  async (req, res) => {
    res.status(201).json({})
  }
]
```

For detailed docs check out https://github.com/matthiaaas/express-file-routing.

Thanks for reading and stop using `express.Router()` ever again.