teleren/devto huggingface dataset:
I build an email digest for AWS products 🚀
Tags: aws, webdev, showdev
Published: 2020-11-19 22:10:50

---
title: I build an email digest for AWS products 🚀
published: true
tags: #aws #webdev #showdev
---

{% twitter 1329344639862775810 %}

I was tired of AWS emails with hundreds of product updates so I build a simple tool to change that. 🤯 

![CleanShot 2020-11-18 at 19.14.00](https://dev-to-uploads.s3.amazonaws.com/i/fduj0l0fat7hbsbx40k8.gif) 

## What is it?
It's a website where you subscribe to any AWS products. You then get an email digest once every week/month with news from those products only.

## Tech stack

I've built it using Phoenix Liveview and it was a blessing. It's my default framework when I have to bootstrap a new product quickly. I highly recommend it and if you need some advice on how to use it, don't hesitate to reach out in the comments 😊

Say you subscribe to DynamoDB, Lambda and EC2. You'll get an email along those lines:

![CleanShot 2020-11-19 at 23.05.31@2x](https://dev-to-uploads.s3.amazonaws.com/i/9qrsvrhocmkzzmarm68s.png)
 



If you're interested in the product, you can find it here -> https://www.cloudnews.dev


Let me know what you think 🙏
What would you like to know about making educational coding games? Answer for the chance to be heard on DevDiscuss!
Tags: discuss, podcast
Published: 2020-11-19 21:46:20

---
title: What would you like to know about making educational coding games? Answer for the chance to be heard on DevDiscuss!
published: true
tags: discuss, podcast
---

The [DevDiscuss Podcast](https://dev.to/devdiscuss) begins with an interview and ends with commentary from listeners — and we like to feature the actual _voices_ from our community!

### **This week's prompt: “What would you like to know about making games for helping people learn to code?”** 
  
For your chance to appear on an upcoming episode, answer the question above by:

- Calling our Google Voice at +1 (929)500-1513 and leave a message 📞

- Sending a voice memo to pod@dev.to 🎙

- OR, leaving a comment here (we'll read your response aloud for you) 🗣

_Please send in your recordings by Wednesday, November 25th at Midnight, ET (9 PM PT, 5 AM UTC)_

---

Don't forget to check out the latest episode [here](https://dev.to/devdiscuss/s3-e2-demystifying-architecture)
"The Next 21 Days"
Tags: devrel
Published: 2020-11-19 21:39:27

I'm giving myself 21 Days to jumpstart my career in tech.

That's such a blunt statement but the truth is I've been looking at a very short list of things that I need to do to *feel* ready for a job as a Developer Advocate.

In the back of my mind, this list of things contain the things I need to do and skills I need to have (despite any disability or shortcoming I might face) that I need to be able to have or show at any given moment.  They are the things I've held on the back-burner or overcompensated for.

The first thing is my portfolio.  I never really finished or made it live.  I always came to a point where there was always a later and later never came for so many things.  Ultimately I want my portfolio to have these things:L

- 6 projects that show my all my talents.
- 3 blog posts that talk about tech.
- 3 YouTube videos (1 featuring me live coding original code)

When I look at it...this list is daunting.  I've never finished a project I started on my own, building the portfolio has always been frustrating, and I know that I don't know how to edit videos.

Over the next 21 Days (November 19, 2020 to December 10, 2020) I am going to get this portfolio done and gain the skills I need to be job ready.
Jest config with TSX
Tags: opensource
Published: 2020-11-19 21:29:43

### Summary
I worked on a non-student opensource project. I spent a lot of time research multiple subjects just to add a feature.
[Repo link](https://github.com/HenryZerocool/couchers)
[Pull request](https://github.com/Couchers-org/couchers/pull/306)

### Features
Jest will run on pre-commit stage (front-end).

### Challenges
As mentioned above, the most challenging problem was researching and finding the best/appropriate solutions. The actually fix was only about 15 lines of code.
First of all, I looked into jest and I think it is simple enough to my understanding. It will run tests case for the repo. When I setup the repo, they already had some kind of configs for Jest. However, I could not run Jest in my terminal. That was very odd. In `package.json`, `jest` dependency did not exist (also not in dev dependency). How can the config already exist?!...
So I installed `jest` npm package, added it to `npm run-script`. When I ran the test for `jest`, there were multiple weird errors. It showed `missing babel@version`, `es-version`, some problem with new syntax of `JSX`, ...
I tried to install all those things, still did not work. So I started to think the config they had might be the problem. I delete all that config and started fresh, set it to `react-preset` because it is a React project. It still did not work. Some how I look at the files they have, and realized they are `.ts` file. So they made a React app in TypeScript. I updated `jest` config with `ts,tsx` and it finally worked.
The last part is make it 'run when commit'. Took me a while to understand it's `pre-commit` and `husky` came up. The set up for `husky` was easy enough.

### Lessons
I'm not sure if my lesson is to not assume anything. Because most of my assumptions when working with this projects were wrong. But I must set some base assumption to start working. That base can be later on found wrong, but it is the process. I just need to question my base when things don't work out.
Namespaced Stacks via SAM
Tags: aws, awssam
Published: 2020-11-19 21:22:22

[AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-command-reference.html) is a nice tool when it comes to orchestrating a new serverless stack. It has its own quirks and shenanigans which needs to be worked around. One such was the lack of support for namespaced stacks, which could come in handy where you have multiple developers deploying in the same environment during development phase.

![There can be only one!!](https://dev-to-uploads.s3.amazonaws.com/i/f2xgotklug4vrfykt6ay.jpg)<figcaption>There can be only one!!</figcaption>

But thanks to `--config-file` samcli option, this has become possible. Here is my take on how we can establish this.

### Create Sam Configuration File

You need to create a new configuration file, which will have the same contents as existing samconfig.toml file apart from some minor differences as highlighted below.

samconfig.toml
```toml
stack_name = "blog-sam-custom-namespace-dev"
s3_bucket = "aws-sam-cli-managed-default-samclisourcebucket-s7lq825ncn5b"
s3_prefix = "blog-sam-custom-namespace-dev"
region = "us-east-1"
capabilities = "CAPABILITY_NAMED_IAM"
parameter_overrides = """
  Environment=dev
  NodeEnv=dev
"""
```

samconfig-jdoe.toml
```toml
stack_name = "blog-sam-custom-namespace-jdoe"
s3_bucket = "aws-sam-cli-managed-default-samclisourcebucket-s7lq825ncn5b"
s3_prefix = "blog-sam-custom-namespace-jdoe"
region = "us-east-1"
capabilities = "CAPABILITY_NAMED_IAM"
parameter_overrides = """
  Environment=jdoe
  NodeEnv=jdoe
"""
```

### Update your template

Update your template.yaml(or yml) like following, 

```yaml
S3UploaderFunction:
  Type: AWS::Serverless::Function
  Properties:
    CodeUri: build/s3-uploader
    Handler: index.handler
    Role: !Sub ${BlogSamCustomNamespaceRole.Arn}
    Environment:
      Variables:
        ENV: !Ref Environment
        NODE_ENV: !Ref NodeEnv
```
> Note: If you have multiple functions, you can also move the environment variable declaration to Globals.

### Handle or use environment in the code

Now, if you want to use the passed in environment, you can use it in following way (not limited to),

```typescript
const S#_BUCKET = `blog-sam-custom-namespace-bucket-${process.env.ENV}`;
```

### Deploy

Given you already have your AWS profile set and project built, you can run the following command to deploy,
```
sam deploy --config-file samconfig-jdoe.toml
```

If everything goes well, you will get the stack deployed ending with your provided namespace.

![We are all the same](https://dev-to-uploads.s3.amazonaws.com/i/mpn7lmyoj2ws5vnskwz8.gif)<figcaption>We are all the same</figcaption>

Full code can be found [here](https://github.com/vikasgarghb/blog-sam-custom-namespace).
Getting started with web dev using Flask
Tags: pythonfunbites, python, flask, webdev
Published: 2020-11-19 21:21:52

---
title: Getting started with web dev using Flask
published: true
description: 
tags:
- pythonfunbites
- python
- flask
- webdev
cover_image: https://github.com/trallard/python-fun-bites/blob/main/assets/python-bites-banner.png?raw=true
series: Python Fun Bites - All things Python at Microsoft # keep this to ensure all the posts are in the series
---
This article is part of [#PythonFunBites](http://aka.ms/PythonFunBites).

There's a lot of different web dev frameworks out there, and it can be confusing to figure out which to use when. One of my favorites is [Flask](https://flask.palletsprojects.com/) because of the fact it mostly gets out of the way, allowing you to do almost whatever you want with it!

Flask is defined as a "micro-framework", meaning it fills the mandatory requirements of a web framework and not much else. You'll notice Flask has a great routing engine for managing different user requests, a templating engine called [Jinja](https://jinja.palletsprojects.com/) for rendering HTML on the server, and a couple of other core features. After that, it's really up to us as developers!

This makes Flask a great choice for creating front-ends for machine learning models you've created or other AI implementations, or scenarios where you have an API already created which needs a user interface. You'll also notice you can get up and running with just a few lines of code.

I created a video highlighting how to perform the installation and create a **Hello, world** application using templates.

{% youtube dKwbCHWuOGI %}

It's also worth highlighting the fact [Visual Studio Code](https://code.visualstudio.com/docs/python/tutorial-flask) makes for a great editor, and you can deploy all these projects to [Azure](https://docs.microsoft.com/en-us/azure/developer/python/tutorial-deploy-app-service-on-linux-01?WT.mc_id=python-10852-chrhar) if you so desire.

If you're looking for a lightweight framework on which to build your web applications, Flask can be the perfect option!

Watch for content on all things Python at Microsoft between the 16th and 20th of November. Stay tuned here at dev.to for all kinds of content ranging from IoT, to Machine Learning and much more! 🐍
open source Node.js RPC framework project
Tags: javascript, node
Published: 2020-11-19 21:16:03

i created a new open-source project on github.

it is written in TypeScript , based on Node.js API.


it is high performance and extensible.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/qnxs77pyepquflf626xr.jpg)

jigsaw.use API is similar to koa API so you can create a JSON-RPC middleware extension to make it support JSON-RPC.

welcome your contribution!

https://github.com/ZhyMC/jigsaw-rpc
APM workflows, performance and emotion, and PS5 crashing Walmart's website
Tags: performance, monitoring, performancematters
Published: 2020-11-19 21:15:17

Hey folks, 

Welcome back to yet another edition of Performance Matters, your hub for software performance tips, tricks, and news. 

Do you feel as though you have an effective APM workflow? Well, this week we're digging deep and providing [3 powerful workflows](https://raygun.com/blog/apm-workflow-guide/) that you can use with Raygun. We'll also be looking into how emotion and performance are correlated, the PS5 launch taking down Walmart's website and more.

Enjoy! 

Your Curator 


------------------------------

### FEATURED ARTICLES

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/py3a8d9fn2buhvzgkzk9.png)

<strong>How to build 3 powerful APM workflows with Raygun</strong>

There are many ways we can approach improving application performance on any given day. By the end of this article, you’ll have a powerful new APM workflow at each stage of your SDLC that will help you detect, diagnose, and resolve performance problems.

[Improve your workflow](https://raygun.com/blog/apm-workflow-guide/)

------------------------------

<strong>Performance's impact on emotion</strong>

How does your site make users feel? Performance and emotion are more closely intertwined than you think.

[Delight your users](https://tech.bluesmoon.info/2020/11/understanding-emotion-for-happy-users.html)


------------------------------

<strong>Back/forward cache</strong>

Optimize your pages for instant loads when using the browser's back and forward buttons.

[Reap the benefits](https://web.dev/bfcache/)


------------------------------

### BUG OF THE WEEK

<strong>Walmart disappointed several gamers this week</strong>

With the release of the brand new PS5, it should come as no surprise that gamers flooded to retailers stocking the elusive console in record numbers. Unfortunately, Walmart's website couldn't keep up with the demand. 

[The power of gamers](https://www.gamespot.com/articles/walmarts-website-has-issues-as-people-frantically-order-ps5/1100-6484378/)

------------------------------

### COMMUNITY

<strong>The speed geek's favorite time of year</strong>

Passionate about a topic? Working on a new tool? Have a technique you want to teach? Research you’ve done? Tell the web performance community!

[Make a contribution](https://calendar.perfplanet.com/contribute/)

------------------------------

<strong>The results are in!</strong>

If the Google Page Experience Update was rolling out in December 2020, how ready and optimized do you think your site(s) would be? 
 
[See what the polls say](https://twitter.com/izzionfire/status/1328378928390672384)

------------------------------

If you think Performance Matters is pretty great, why not [sign up](https://performancematters.dev/) to receive it in your inbox every week? 🙌

------------------------------


![Made with Love by Raygun](https://dev-to-uploads.s3.amazonaws.com/i/gylnptlhm42m5jlmim8p.png)

------------------------------
Roman Numeral Converter
Published: 2020-11-19 21:11:16

---
title: Roman Numeral Converter
published: true
description: javascript, beginner, algorithms
tags: 
cover_image: https://k8q7r7a2.stackpathcdn.com/wp-content/uploads/2018/08/Roman-numeral-number-IIII-watches-clocks-12.jpg
---

Who doesn't like roman numerals, am I right? Have you ever been stuck in a place with roman numeral clocks? This is a nice programming challenge that involves using lists or arrays to store the letters/values. You could also use a switch or a literal object.

The conversion is actually quite easy once you understand the algorithm.

The secret sauce here are two arrays, you can do it with one and use objects. The secret is to add 1, 4, 5, 9 combinations from 1 to 1000, numbers after 4000 in roman numerals are not that common, so this is focusing only on 1 through 3,999. Either way this is how they look:

```
const nums = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
const romanLetters = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"];
```

Let's take `48` for example.

1. Iterate through nums until you find a number that 48 is divisable by. i.e. 48 / 40 = 1.2, so this corresponds to index 7 = XL. We only care about Math.Floor(1.2) = 1, 1 is how many times we loop

2. Inside our loop:
    - Append the value of index 7 to romanNum string = XL
    - Subtract 40 from 48 which give us 8
4. Repeat steps until the previous subtraction result is 1

>Because the way nums is setup, the division result will always be 0-3 and that's great because roman numerals can only be used three times in a row.

I will finish just so you see how it would work. The above steps are the core of the algorithm.

1. Find what can divide 8, in this case 5. 8/5 = 1.6, or better yet 1. This is index 10 = V.
2. We loop one time
    - Append the value of index 10 to romanNum string = XLV
    - Subtract 5 from 8 which give us 3

Last round we're almost there:

1. 3 is divisable by 1, 3/1 = 3, index = 12 = I
2. We loop 3 times
    - Append the value of index 12 to romanNum string = XLVI
    - Subtract 1 from 3 which give us 2
    - Go back to step 2 until we get to 1, and in the end romanNum string will look like this XLVIII. Don't take my word try it below!



{% codepen https://codepen.io/thefern2/pen/wvWbmKp %}

I hope you enjoyed this programming challenge, let me know how you would have done it, or optimized it. Thanks for reading!
AzureFunBytes - Episode 21 - @Azure Security with @deanbryen
Tags: azure, security, tutorial, beginners
Published: 2020-11-19 20:36:42

Security is always the primary concern for those deploying applications into the cloud.  This week on AzureFunBytes we dive into the different ways to improve your security posture in the cloud.  Cloud Advocate and security wiz, [Dean Bryen](https://twitter.com/deanbryen), joins me to discuss the many features and services in Azure that are built to keep your applications and customers secure.

We chat about [Azure Sentinal](https://docs.microsoft.com/azure/sentinel/overview?WT.mc_id=devops-10835-jagord), [Azure Security Center](https://docs.microsoft.com/azure/security-center/security-center-introduction?WT.mc_id=devops-10835-jagord), and just plain old network security.

{% youtube kzSC4idX2Bw %}

Live stream is available on Twitch at 2 pm EST Thursday. You can also find the recordings here as well:

https://twitch.tv/azurefunbytes
https://twitter.com/azurefunbytes
https://aka.ms/jaygordonontwitter

Join me, ask questions, and learn about Azure!

[Microsoft Learn: Azure Fundamentals](https://docs.microsoft.com/en-us/learn/paths/azure-fundamentals/?WT.mc_id=blog-devto-jagord)
[Microsoft Azure: $200 Free Credit](https://azure.microsoft.com/en-us/free/?WT.mc_id=devto-blog-jagord)
[Strengthen your security posture with Azure](https://azure.microsoft.com/overview/security/?WT.mc_id=devops-10835-jagord)
[Cloud Security on Azure](https://azure.microsoft.com/product-categories/security/?WT.mc_id=devops-10835-jagord)
Microsoft Learn: [Secure your cloud data](https://docs.microsoft.com/learn/paths/secure-your-cloud-data/?WT.mc_id=devops-10835-jagord)
Microsoft Learn: [Security, responsibility, and trust in Azure](https://docs.microsoft.com/learn/modules/intro-to-security-in-azure/?WT.mc_id=devops-10835-jagord)
Recursion is Recursion is Recursion...
Tags: recursion, beginners, javascript
Published: 2020-11-18 01:52:10

---
title: Recursion is Recursion is Recursion...
published: true
description: 
tags: recursion, beginner, javascript
//cover_image: https://direct_url_to_image.jpg
---
I took on the challenge of completing freecodecamp curriculum just to see the extent of my self-taught learning over the years, and is going well so far. Never did it occurred to me that I rarely use recursion functions, because well is easier to do a forloop. I tried to learn recursion before and the problem was that most people teaching start with the factorial example or some other complicated example. Mixing a math principle with a new programming principle isn't the best choice and sometimes is better to start with an easier example.

Credit: Freecodecamp Basic Javascript

{% codepen https://codepen.io/thefern2/pen/NWrmjQB %}

## What is recursion?

Recursion is when a function calls itself over and over until it hits the base case(s). A recursive function needs an exit statement, otherwise known as the base case because is the last time the recursive function gets called before returning the result. Another thing to be aware is that variables need to be passed down on each recursion, unlike in loops where you can keep track with local variables.

A recursive function works well with things that are normally done in a loop where there is a computation that is stepping up or down.

A few other examples of recursive functions are:

- [factorial](https://en.wikipedia.org/wiki/Factorial)
- [fibonacci](https://en.wikipedia.org/wiki/Fibonacci)
- [minimax](https://en.wikipedia.org/wiki/Minimax)

Thanks for reading, and I hope you learned something today!
A Git beginner should learn these basic git commands
Tags: github, devops
Published: 2020-11-19 20:06:04

Every developer at the beginning of his journey always faces issues with Git & GitHub and most organizations use Git as version control for their source code. In this blog, we will learn basic commands of git which are used by developers in their daily life.

So, Lets Start

---

##**Git Commands**

+ to initialize a git repository
```
git init
```

+ it adds the file to the staging. (adds the file to your project)

```
git add .
```
+ it makes all the changes in the staging file on your local repository. (commits the changes in the file)
```
git commit -m "<commit_message>"
ex:
git commit -m "first commit"

also, you can add and commit together by using this
git commit -a "first commit"
```
+ command is used to upload local repository(local commits) content to a remote repository.
```
git push
```
+ same as push command "-u" here represents an upstream sign which means you can upload your local commits to selected remote/branch 
```
git push -u <remote_name> <branch_name>
ex:
git push -u origin main
```
+ Don't use this command until you don't know its consequences.it forcibly pushes your local commits to the remote.
```
git push -f
```
+ to update/fetch your local repository from remote ( your codebase now up to date with a remote repo)
```
git pull
```
+ to check all the branches
```
git branch
```
+ to change the branch or check out the branch
```
git checkout <branch_name>
ex:
git checkout development
```
+ to cut new branch. always run this command from that branch you want to cut a new branch
```
git checkout -b <new_branch_name>
ex:
git checkout -b newbranch
```
+ it shows all the changing logs including ( commits, author, time, branch)
```
git log
```
+ to config git author which shows on remote repo who pushed the changes
```
git config user.name <git_username>
git config user.email <git_email>

```
+ it shows the configuration list
```
git config --list
```
+ to reset the changes in a specific branch
```
git reset
```
+ to merge changes with the specific branch. ( it merges changes on your local from remote )
```
git merge <branch_name>

```
+ it shows the remote URL of git on which remote repo it pushed or pulled
```
git remote -v
```
+ it sets the remote URL( from which you pull or update local with remote )
```
git remote set-url <url_of_origin>
```
+ in this file you add those file paths which you don't want to push on remote
```
.gitignore
```
+ it reset a branch by 1 commit. means set back a branch by 1 commit. you can replace 1 by number (no. of commits revert)
```
git reset --hard HEAD~1
```
+ it rebases your branch with a named branch
```
git rebase -i <branch>

for ex:
branch1: head
branch2: dev
git checkout dev
git rebase head

it looks like  head->dev
now head added as a base in dev branch
```

I hope, this blog helped you as a beginner. thank you for reading 
and all the best for the journey :)
S1E9 Learn JMeter Series - HTTP Cookie Manager 🍪
Tags: webperf, performance, testing, tutorial
Published: 2020-11-19 19:57:08

Welcome to Learn JMeter Series!

In this season one, episode nine, you will learn the following:

* HTTP Cookie Manager 🍪

{% youtube CbAUpTSwwrg %}

✔ [Buy me a tea 🍵](https://www.buymeacoffee.com/qainsights)
✔ [My Blog](https://qainsights.com)
✔ [My Udemy Course](https://www.udemy.com/course/performance-testing-using-truweb)
🧩 How Development Teams Buy SaaS
Tags: saas, development, api
Published: 2020-11-19 19:51:19

💡 Auth0 teamed with SD Times to discover how organizations evaluate and purchase technology.
[Read more...](https://auth0.com/blog/how-development-teams-buy-saas/?utm_source=content_synd&utm_medium=sc&utm_campaign=buy_saas)