teleren/devto huggingface dataset:
What is Given, When Then in agile stories & why ?
Tags: agile, testing, programming
Published: 2021-07-21 18:40:25

## Why do we use given, when then

You might be surprised how many engineers, scrum masters and general agile people use given when then, in some form or another, but may not be able to clearly explain why.

A simple user story
> Given that I am a user, When I click the update button, Then the button should turn green.

Some may say it makes stories easy to understand, that would be true, but lot's of language styles can do that, so why ?

Ask around ? let us know in the comments

### First clue

Given
When
Then

We have three items, where else do we have a similar conceptual flow ?

If you've twigged it already, you're a genius, (yeah I didn't either)

### Second clue..

Arrange
Act
Assert

Anyone ?

### Map the story to the test

|                Story                |                     Test                    |
|:-----------------------------------:|:-------------------------------------------:|
| Given, that I am user               | Arrange, test in the context of a user      |
| When, I click the update button     | Act, create button click test               |
| Then, the button should turn green. | Assert, the button colour is actually green |

See how the story maps to the test, it makes it crystal clear what the ask is, bearing in mind it's not acceptance criteria it should stay high level.

The developers & the testers are able to break the story down relatively precisely into tasks.

Hopefully you now understand the all encompassing why, at least as far as given when them goes anyway 😮😮😮.  

🤚 Bye for now. 

<sup>Drop me some feedback please, helps decide what to write about next!</sup>
Non-Fungible Tokens
Tags: blockchain, ipfs, nfts, decentralisation
Published: 2021-07-21 18:29:42

“In the streets of the Tech. World is mostly known as NFTs”
There is a whole wrong misconception relation between NFT and Blockchain. “All arts that are NFT defined are not stored on the Blockchain”
Most developers/people think that when you encode a “jpeg” as a string, it is when it's stored on the blockchain. Problem is that the encode is way too big and way too expensive to decentralise the “jpeg”.
So what happens is the Host Website that sells NFT(Non-Fungible Tokens), what they will do is, they will host the content for your NFT on IPFS (**InterPlanetary File System**) but instead of redirecting to IPFS they put a layer in between where you will go to a variable, and then go to IPFS to get the file.
So in reality it's not decentralized at all, falling from the definition of a blockchain. But it falls into the category of Centralized, where it depends heavily on the Website where you bought your NFT.
“if that place goes down your NFT goes away basically”
Digger.dev: A new kind of PaaS
Tags: javascript, python, aws, devops
Published: 2021-07-21 17:57:36

[We've just launched on HackerNews](https://news.ycombinator.com/show)!

Say you want to deploy a Node app. Or a Python app. Or a Rails app. And maybe one or two React or Vue frontends as well. Oh and a database too.

You have 2 options:

1. Traditional PaaS like Heroku. Going to be quick and easy. But also expensive and you can't build much beyond the very basics.

2. AWS or GCP or Azure. That's going to be hard and slow, unless you have DevOps expertise. But with over 200 services you can build pretty much anything.

Why isn't there an easy way to start on AWS without spending days figuring it out? We thought so as well, and built Digger.dev

## Digger makes AWS simple

It automatically generates infrastructure for your code in your AWS account. So you can build on AWS without having to deal with its complexity. See How it works

You can launch in minutes – no need to build from scratch, or even think of infrastructure at all

✅ Easy to use Web UI + powerful CLI
✅ Deploy webapps, serverless functions and databases: just connect GitHub repositories
✅ Multiple environments: replicate your entire stack in a few clicks. Dev / staging / production; short-lived for testing; per-customer
✅ Zero-configuration CI with GitOps: pick a branch for each environment and your services will be deployed on every git push
✅ Logs, environment variables, secrets, domains: never touch AWS again!

## A PaaS that generates Terraform

... So that you keep the full power of AWS

Traditional platforms-as-a-service (PaaS) like Heroku or Vercel run your code on their servers. Digger takes a different approach: it generates infrastructure-as-code (Terraform) that manages your AWS account. See Digger vs Ohter

This removes the main limitation of traditional PaaS. With Digger you can have great modern developer experience and get a future-proof stack at the same time. Terraform is industry standard for all things DevOps; with Digger you can customise every bit. You can even use your own bespoke templates with Digger. So unlike traditional PaaS, you never outgrow Digger.

## What do you think?

We've just launched and super hungry for feedback. [Try it out](https://digger.dev)!
Don't Leave Your Career to Chance
Tags: recruitment, jobs, gigs, email
Published: 2021-07-21 17:50:37

---
title: Don't Leave Your Career to Chance
published: true
description: 
tags: recruitment, jobs, gigs, email
cover_image: https://hackerintro.com/social.png
---

Hi, my name is Yurii. I am an entrepreneur, software engineer and I run [HackerIntro](https://hackerintro.com). I built it out of personal frustration over how inefficient tech talent recruitment is — on both sides.

Have you ever felt unsure about how to deal with recruiting emails?

Say, with something like this:

<blockquote>
Hey, found your GitHub account and was really impressed. We at Amazing Company are building X and I thought you might be a good match. Let me know if you want to chat!
</blockquote>

Should you respond? It seems to be a polite thing to do. On the other hand, engaging takes time and energy and saying "no" doesn't always feel good.

In fact, at the right time, it might have been an interesting opportunity for you. But instead it becomes an email you never replied to.

At HackerIntro, we want to create new relationships that work out great. And we do this by giving you a way to communicate your availability, interests and aspirations to most qualified matching opportunities.

Today, it starts with a specialized `@hackerintro.com` mailbox that gives you control over who can communicate with you and when. This is something you can leave out in public (your GitHub account, LinkedIn, etc.) and give recruiters and companies that are hiring a strong signal that you might be interested, without having to get inundated with mass-sent emails.

Tomorrow depends on you. There are a lot of ideas that are being experimented on, like compensation for screening calls,
auto-tailored resumes, anonymous profiles and so on. Whatever works out best for everybody will stay!
How to display a spinner to show long-hanging operations in Python / Jupyter
Tags: python, jupyter
Published: 2021-07-21 17:55:41

Working on Machine Learning models or big data processing means a lot of waiting.

While I work on scraping data from a website or train a machine learning model, it happens that I am not sure that the script is still working.

It will be good to have an indicator that the script is executing, just like the old Windows hourglass cursor.

Read More:
https://blog.devgenius.io/how-to-display-a-spinner-to-show-long-hanging-operations-in-python-jupyter-db223563d4f2
What Permissions Do I Need
Tags: aws, iam, terraform
Published: 2022-06-03 21:18:37

---
title: What Permissions Do I Need
published: true
date: 2021-07-21 17:55:00 UTC
tags: AWS,iam,Terraform
canonical_url: https://thjones2.blogspot.com/2021/07/what-permissions-do-i-need.html
---

 In recent months, I've been converting some automation I originally wrote under CloudFormation to instead work under Terraform. Ultimately, the automation I wrote is going to be used in a different account than I (re)developed it in. As part of the customer's "least-privileges" deployment model, I needed to be able to specify to them all of the specific AWS IAM permissions that my TerraForm-based automation would need. Since the development account I've been working in doesn't provide me CloudTrail or other similarly-useful access, I had to find another way. Turns out, that "another way" is effectively built into Terraform, itself!

When one uses the `TF_LOG=trace` environment-variable, the activity-logging becomes _very_ verbose. Burried amongst the storm of output is all of the IAM permissions that Terraform needs in order to perform its deployment, configuration and removal actions. Extracting it all was a matter of:

1. Execute a `terraform apply` using:
    ```
    TF_LOG=trace terraform apply -autoapprove > apply.log
    ```
2. Execute a `terraform apply` using:
    ```  
    TF_LOG=trace terraform apply --autoapprove \  
      -refresh-only > refresh.log
    ```
3. Execute a `terraform apply` using:
    ```  
    TF_LOG=trace terraform destroy -autoapprove > destroy.log
    ```
Once each of the above completes successfully, one has three _looooong_ output files. To extract the information (and put it in a format IAM administrators are more used to), a simple set of filters can be applied:

```
cat *.log | \
grep 'DEBUG: Request ' | \
sed -e 's/.*: Request//' \
  -e 's/ Details:.*$//' \
  -e 's#/#:#' | \
sort -u
```

In my case, this filter-set resulting in a list that looked something like:  

```
ec2:AuthorizeSecurityGroupEgress
ec2:AuthorizeSecurityGroupIngress
ec2:CreateSecurityGroup
ec2:DescribeImages
ec2:DescribeInstanceAttribute
ec2:DescribeInstanceCreditSpecifications
ec2:DescribeInstances
ec2:DescribeSecurityGroups
ec2:DescribeTags
ec2:DescribeVolumes
ec2:DescribeVpcs
ec2:RevokeSecurityGroupEgress
ec2:RunInstances
elasticloadbalancing:AddTags
elasticloadbalancing:CreateListener
elasticloadbalancing:CreateLoadBalancer
elasticloadbalancing:CreateTargetGroup
elasticloadbalancing:DescribeListeners
elasticloadbalancing:DescribeLoadBalancerAttributes
elasticloadbalancing:DescribeLoadBalancers
elasticloadbalancing:DescribeTags
elasticloadbalancing:DescribeTargetGroupAttributes
elasticloadbalancing:DescribeTargetGroups
elasticloadbalancing:ModifyLoadBalancerAttributes
elasticloadbalancing:ModifyTargetGroup
elasticloadbalancing:ModifyTargetGroupAttributes
elasticloadbalancing:SetSecurityGroups
s3:GetObject
s3:ListObjects
```

Once such a list is generated, it can then be passed on to the parties that set up the requisite IAM roles.
Forecast evaluation statistics with examples in Python

Tags: datascience, machinelearning, timeseries
Published: 2021-07-21 17:54:38

If I had to choose one basic skill in data science that is the most useful, it would be time series forecasting. Predicting the future value of something contributes to making better decisions. Therefore, it is crucial to be sure that you can rely on forecasting. The choosing, construction and interpretation of forecast evaluation statistics are just as important as making forecasts.

What actually makes up the accuracy of the forecast?

Read More:
https://fischerbach.medium.com/forecast-evaluation-statistics-with-examples-in-python-6b540ef751c2
Fingerprinting - Why cashiers ask for your postal code when you pay using a credit card
Published: 2021-07-21 17:52:46

# Why not only storage-based

Storage-based methods (described in my previous articles) are the best-known and the most-used methods for identifying and tracking people online. However, these methods sometimes do not affect. Users can easily turn off or clear up browser storages. Browsers also develop methods to restrict the possibility of tracking.
Device or browser fingerprinting is to solve those issues.

Read More:
https://medium.datadriveninvestor.com/fingerprinting-aba640862019
How to predict solar energy production
Tags: datascience, machinelearning, solar, renewables
Published: 2021-07-21 17:51:20

# Efficient use of renewable energy sources with machine learning

Solar power systems could be a key tool for energy production for the present and future generations. Solar energy is environmentally friendly and provides electricity to places where it is difficult to build conventional infrastructure. Photovoltaic (PV) cells become cheaper each year. Solar energy is cheaper than ever.

However, it has two huge obstacles: energy is produced only during the daytime and the amount of energy produced is highly dependent on the weather. Machine learning algorithms combined with weather data have the potential to overcome these barriers, which results with more efficient use of renewable energy sources.

In this article, you will learn about predicting time series depending on external (weather) conditions. I will show you how to improve your predictions using the domain knowledge of the target variable. We will go quickly through collecting data about energy production from the solar farm through its producers API. Next, we will analyze gathered data and select features for time-series forecasting. Finally, we will train and test several predictive models and identify the best, most suitable for the described case.

Read More:
https://netlabe.com/how-to-predict-solar-energy-production-887ce31ec9d1
tmux select-layout
Tags: cli, linux, tmux
Published: 2021-07-21 17:48:24

---
tags: ['cli', 'linux', 'tmux']
title: tmux select-layout
published: true
canonical_url: https://waylonwalker.com/tmux-select-layout/
series: tmux
---


When you get many splits going in tmux sometimes its time for a new layout.
There are four layout strategies that I use, main-vertical, main-horizontal,
even-vertical, even-horizontal. Almost always I am useing the main ones with
mod plus a or mod plus shift a keybindings.

``` bash
# Select Layouts
#―――――――――――――――――
bind -n M-a select-layout main-vertical
bind -n M-A select-layout main-horizontal 
bind -n M-E select-layout even-vertical
bind -n M-V select-layout even-horizontal
```

---

Be sure to check out the full youtube playlist and subscribe if you like it.

https://www.youtube.com/playlist?list=PLTRNG6WIHETB4reAxbWza3CZeP9KL6Bkr

---

{% post https://dev.to/waylonwalker/how-i-navigate-tmux-in-2021-2ina %}

> Also check out this long form post for more about how I use tmux.
I created 9 free dashboard templates built with Tailwind for React, Next, Vue, Nuxt and Svelte.
Tags: react, tailwindcss, nextjs, javascript
Published: 2021-07-21 17:48:17

![Salvia-kit dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ajn6mcas324qyhlszyrc.jpg)

[Website](http://salvia-kit.com)
[Github](https://github.com/salvia-kit/salvia-kit-website)

##Background
By creating several dashboards for my professional use, I ended up with several dashboard templates. So I decided to make it open source because it would motivate me to create even more dashboards.

At the beginning I wanted to make them only for React but with time I was motivated to make them for **Next.js**, **Vue.js**, **Nuxt** and **Svelte** to reach more developers. 


##Presentation
I made a total of 9 dashboards and each dashboard has 5 templates.

- **React** template
- **Next.js** template
- **Vue** template
- **Nuxt.js** template
- **Svelte** template


##Features
i took advantage of Tailwind's flexibility to create free premium dashboard templates.

- Support of the active route (styled by default).
- Fully customizable and without external dependencies.
- No vendor lock-in, you can export it and integrate it in your project.
- Sidenav aligned left or right according to your preferences (on mobile).
- A detailled documentation.

##No vendor lock-in
Salvia-kit is created to solve a problem I often encountered when using dashboards owned by third party developers or companies. that is vendor lock-in.

These dashboards often contained many configurations with several scripts, which still did not allow to export them and integrate them easily into an existing project. Therefore, it was always necessary to use the repository provided by the owner of the dashboard.

This is what motivated me to create dashboards that can be easily integrated into existing projects with simple, readable code and documentation designed for developers.

##Contributions
As English is not my native language, I can make some grammatical mistakes while writing all the 43 repositories. You can fix that by contributing to improve content.

If You'd like to add a new dashboard, please check out the **[Contribution Guide](https://github.com/salvia-kit/salvia-kit-website/blob/main/contributing.md)**

##Acknowledgements
Thanks to [**Vercel**](https://vercel.com/?utm_source=salvia-kit&utm_campaign=oss) for sponsoring this project by allowing it to be deployed for free for the entire Salvia-kit Team.
How to detect online trends without web scraping
Tags: forecasting, timeseries, datascience
Published: 2021-07-21 17:39:55

Web scraping has become the default way to extract data from websites. Web scraping is used, among many other things, for price monitoring, watching competitors and website updates detection. Although with the popularity of scraping came a lot of libraries and other tools to make it easier. You can easily extract all the text data from the source code of the website. However, you still have to make the effort to properly point out items of interest, i.e. using CSS selectors. If the authors of the site change its structure or the naming of the elements, adjustments to your scraper code will be necessary. But what if I said that it’s possible to prepare a mechanism that will be maximally resistant to changes in the code and even the layout of every web page?

In this article, I will show you how to extract data from websites using methods that are successfully used in processing scanned documents. You’ll learn how to track trends on a news site by regularly taking its screenshots. We will do this using image and photodetection and text recognition. Finally, we will generate clouds of the most popular words from the data obtained in this way.

Read More:
https://netlabe.com/how-to-detect-online-trends-without-web-scraping-b6799fc00450
Third-party cookies alternatives
Tags: privacy, chrome, javascript
Published: 2021-07-21 17:38:36

# Cookie bakery
Modern Web is the cookie bakery. Advertisers use cookies to serve creepy ads. Website owners use cookies to measure their audience. Developers use cookies to store user settings.
Gosh, even those cookie information pop-ups are cookie-based (how would otherwise a website know you have already seen one?).

Since the invention of mighty cookies, the whole industry is relying on the ability to track website users. And third-party cookies are the most popular mechanism used by advertisers to identify the user between domains.
So no wonder, this mechanism is under discussion. Due to privacy concerns.

Read more:
https://medium.datadriveninvestor.com/alternatives-to-third-party-cookies-in-2020-857609f8f2bb
Federated Learning of Cohorts — Google’s cookie killer
Tags: floc, privacy, chrome, browsers
Published: 2021-07-21 17:36:21

From this article, you’ll learn how Google is supposed to replace cookie-based tracking by using some federated learning concepts. You’ll also learn the details of algorithms that could shape the future of the online industry. I will show you how to reproduce this approach to segment users by their book interests.

The success of the machine learning projects depends on access to high-quality and large-scale datasets. So far, the common methodology for creating models has been to collect user’s data in the central place and use it however you want.

In today’s web reality, it means relying on a variety of user tracking techniques, such as third-party cookies (and alternative storages) and device fingerprinting. But in a world of data leaks, GDPR, CCPA and increased data protection legislation inspired by those, this approach becomes very inconvenient. Safari and Firefox have built-in solutions for reducing cross-site tracking already. Nearly a year and a half ago, Chrome’s team announced that they are going to drop third-party cookies from their browser within 2 years.

While it is extremely unlikely that third-party cookies will disappear from Chrome within six months, Google’s recent announcement sets out the direction they may take on this issue. Chrome browser has a significant share of the market and thus great impact on the market.

Read more:
https://netlabe.com/federated-learning-of-cohorts-googles-cookie-killer-7f63b2395173
cdc
Tags: hello, dc
Published: 2021-07-21 17:28:25

csdcdsdsadasd
Now whenever dark mode is enabled on the user’s operating system, dark:{class} classes will take precedence over unprefixed classes. The media strategy uses the prefers-color-scheme media feature under the hood, but if you’d like to support toggling dark mode manually, you can also use the ‘class’ strategy for more control.

By default, when darkMode is enabled dark variants are only generated for color-related classes, which includes text color, background color, border color, gradients, and placeholder color.

Now whenever dark mode is enabled on the user’s operating system, dark:{class} classes will take precedence over unprefixed classes. The media strategy uses the prefers-color-scheme media feature under the hood, but if you’d like to support toggling dark mode manually, you can also use the ‘class’ strategy for more control.

By default, when darkMode is enabled dark variants are only generated for color-related classes, which includes text color, background color, border color, gradients, and placeholder color.
Announcement: CodeNewbie to feature short videos from the community at CodeLand
Tags: codeland, meta, codenewbie
Published: 2021-07-21 17:27:27

---
title: Announcement: CodeNewbie to feature short videos from the community at CodeLand
published: true
description: CodeLand Recess is the community-sourced video track at CodeLand. Check it out!
tags: codeland, meta, codenewbie
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c4pwfbx45eri4jfkbzuv.png
---

While the [CodeLand](https://codelandconf.com) CFP might officially be closed as of yesterday, there’s an exciting new way to participate in CodeLand this year. 

In addition to featuring keynotes, talks, and workshops, our friends over at CodeNewbie Community just announced a new community-generated video track to be featured at the conference called **[CodeLand Recess](https://community.codenewbie.org/codenewbie/a-new-codeland-opportunity-for-creative-codenewbies-5e82)**. 

### Quick details: 
- From now through August 20th, community members can submit 30 second-1 minute videos across four categories
- A handful of videos will be selected to be featured throughout the day at CodeLand 2021 
- This TikTok-style community track will be a great chance for the audience to see your perspective on learning to code and being a software developer today. 

### Take a look at [this post](https://community.codenewbie.org/codenewbie/a-new-codeland-opportunity-for-creative-codenewbies-5e82) on CodeNewbie Community for all the details on CodeLand Recess. This is going to be fun 📺
tsParticles 1.32.0 - More plugins, lighter and more particles, confetti and fireworks effect for your website
Tags: showdev, javascript, webdev, html
Published: 2021-07-21 17:09:00

# tsParticles 1.32.0 changelog

## Breaking Changes

- Removed some old unused alias types
- Removed the infection plugin from the library, it's an external plugin now
- Removed light interaction from the core library, it's an external plugin now

## Bug Fixes

- Improved particles links, closes #1848 
- Fixed out of canvas out mode

## New Features

- Improved roll back color, now darken and enlighten can be set both and one of them will be picked randomly for each particle and will work also for animated colors
- Added particles orbits external plugin, closes #188
- Added particle repulse external plugin, closes #609

{% link https://dev.to/matteobruni/tsparticles-1-31-0-and-2k-stars-on-github-36e6 %}

{% github matteobruni/tsparticles %}