teleren/devto huggingface dataset:
Pace is the reality check that you need, but might be too scared to calculate. 
Tags: devops, productivity
Published: 2020-05-26 13:51:24

A few months ago someone from our team asked a few product owners how they figure out delivery dates in for their teams. We got a lot of 'I guess' and 'I try not to', but we also got this strangely correct and poetic answer.

"I take the time and double it, then take the unit and bump it up. Something that I think should take 2 hours, will actually take 4 days... and of course I keep enough money in the budget to take the boss out for beers so I can tell him that we're running behind."

I mean... I guess that's one way to do it? What if there were a simple calculation you could use to help your team better estimate how long it will take them to complete projects, features, and work items?

That’s <b> pace. </b>

<h2> Calculating Pace </h2>
![pace equation with pace equals time tracked/effort estimation or story points](https://www.7pace.com/wp-content/uploads/2019/10/5-1-1024x576.png)

<h2> Why Does Pace Matter? </h2>
Your team’s average pace is 5. You want to know how much time you need to complete a work item that’s 4 story points. So plug those numbers into the pace equation.

5 = X hours of tracked time / 4

That means a good guess would be 20 hours of tracked time.

And while anything that helps developers make more accurate time estimations is great, that’s not the only way Pace can help you or your team.

Before we get into this, here’s something that actually happened with the 7pace team. One of our developers was going ham on a work item that was estimated to be three story points. But around the 80th hour of tracked time, we realized something was wrong.

Here’s the math...

Pace = 80 hours of tracked time / 3 story points.

Pace = 26.67, in this case. Our team’s average pace is 5. Knowing that it’s OK for pace to fluctuate a little sometimes is fine. But a pace more than 21 points higher than our average? That’s an indication that we need to take a closer look at this project. 

<h2> What to do if your pace is high/low </h2>
If your pace is low, you should:

- Check your estimates. If your pace is consistently low, you might be overestimating effort.

If your pace is high, you should:

- See if the work item needs to be split into multiple work items.
- Check if the acceptance criteria could be changed. If it’s a small acceptance criteria that isn’t super important but causes a ton of work, you need to reevaluate that acceptance criteria.
- Label the project a black hole and move it to your backlog so you can continue on.

<h3> TDLR; </h3>
- pace = time tracked/effort or story points
- it helps you estimate delivery time better than guessing 
- if your pace is lower than usual, you're overestimating effort
- if your pace is higher than usual, check to see if the item needs to be split into smaller tasks, take a look at the acceptance criteria, or label the item or project a black hole

This is a <i> no-nonsense </i> short and sweet version of [this article.](https://www.7pace.com/blog/software-development-pace-calculation)
how long it will take you to learn each programming language
Tags: java, codenewbie, html, css
Published: 2020-05-26 13:46:35

Before I continue with this post, let me state that this is the average time, both from my experience and from research. Much depends on your individual situation and tools. 

LANGUAGE                                                  AVERAGE DURATION 

1. html                                  1 week, if you spend 2 hours daily.
                                                html stands for Hypertext 
                                                Markup Language. It is the 
                                                standard markup language for 
                                                documents designed to 
                                                be displayed in a web browser. 



2. css                                     1 week, if you spend 2 hours daily.
                                               css means Cascading Style 
                                              Sheets. CSS is a language 
                                               that is used to change the 
                                                appearance of html 
                                               documents. 



3. javascript basics                    3 weeks, if you spend 4 hours daily
                                               JavaScript is a powerful  
                                               lightweight 
                                              programming language. It is used 
                                              in web development to 
                                              build interractive webpages.



4. java                               4 months, if you spend 6 hours daily.
                                           Java is a general-purpose 
                                             programming language that is 
                                            class-based, object-oriented. It is 
                                             intended to let 
                                            application developers write once, 
                                        run anywhere..



5. php                                1 week, if you spend 2 hours daily.
                                             Was created by Danish-Canadian 
                                             programmer Rasmus Lerdorf in 1994.                                     
                                              It is a scripting language for 
                                              backend web development.  


In the next post, I will include other programming languages. 
Comments are appreciated. Thanks for your time
What Are you Grateful for today? | 5/26/2020
Tags: watercooler, discuss, gratitude
Published: 2020-05-26 13:46:19

---
title: What Are you Grateful for today? | 5/26/2020
published: true
description: 
tags: watercooler, discuss, gratitude
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/utj3c0bf21exb7bloro3.png
---

Let's kick this week off right! What is something that you are grateful for?
I published Reddit Media Downloader on GitHub
Tags: sideprojects, javascript, programming, github
Published: 2020-05-26 13:45:05

Hi everyone!

I published a repository called Reddit Media Downloader for a hobby. It is written in JavaScript.

Reddit Media Downloader downloads video or image files from the thread URL.

I didn't write any tests. So, I'm sure there are many errors. You can find them and yes we can fix errors together. Currently there are no elegant codes. It took only about 25~30 minutes

Pull Requests are welcome. Thanks!

 {% github aligoren/reddit-media-downloader %}
Reuse Data for Training During Upstream CPU Bottlenecks
Tags: machinelearning, datascience
Published: 2020-05-26 13:33:11

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

Upstream operations (eg. Disk I/O and data preprocessing) in the neural network training pipeline do not run on hardware accelerators.

“Data echoing” reuses intermediate outputs from earlier pipeline stages when the training pipeline has an upstream bottleneck. This maximises hardware utilisation. The number of times data is reused is set as the echoing factor. The effectiveness of this approach challenges the idea that use of repeated data for SGD updates is useless or even harmful.

Echoing can be done:

1. Before batching – data is repeated and shuffled at the training example level, increasing the likelihood that nearby batches will be different. This has the risk of duplicating examples within a batch.

2. After batching

3. Before augmentation – allows repeated data to be transformed differently, potentially making repeated data more akin to fresh data

4. After augmentation – other methods like dropout that add noise during the SGD update can make repeated data appear different

Data echoing reduces the number of fresh examples required for training and the training time, without harming predictive performance (up to a upper bound on the echoing factor). There is also empirical evidence of data echoing performing better with larger batch sizes and more shuffling.

Source paper: https://arxiv.org/pdf/1907.05550.pdf

Liked this post? 
This summary first appeared in the [Pragmatic CS newsletter](https://pragmaticcs.substack.com/welcome). Subscribers got it first!
GFTW Hackathon: Need some inspiration? - Web Monetized Video Calls
Tags: gftwhackathon, webmonetization, jitsi
Published: 2020-05-26 13:30:58

The latest addition to my demo portfolio is a page to host monetized video calls using the [Jitsi Meet API](https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-iframe). 

[Jitsi](https://jitsi.org/) is an open source community that has built an end-to-end encrypted videoconferencing tool called [Jitsi Meet](https://meet.jit.si) which is compatible with WebRTC. You can use Jitsi's hosted instance or you can decide to host your own. Jitsi Meet also exposes an [API](https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-iframe) that allows you to embed calls into a webpage. This is precisely what I used for this demo. 

A video call host specifies a call name and a payment pointer that will receive the streamed mircopayments from the call participants. The host then shares the link to the video call, which is generated for him/her, with the participants, who can only join the call if they have Web Monetization enabled. If Web Monetization is not enabled, participants will see an error message. If participants switch to another tab and Web Monetization is stopped, they are automatically removed from the call. A more detailed walk through including a video can be found in my [blog post](https://coil.com/p/sabinebertram/Web-Monetized-Video-Calls-A-Demo-/j5OgyYUmK). Here is the demo:

{% glitch wm-video-call-demo app%}

I would say that this demo is the furthest from being a product and here is why: First, by using the Jitsi API, the actual call is hosted on [meet.jit.si](https://meet.jit.si/), so any participant who receives the URL to the video call can just copy the room name and attend the meeting on [meet.jit.si](https://meet.jit.si/) without streaming payments. 

Second, even if we hosted our own instance of Jitsi and made the UI inaccessible or added a payment pointer form to the UI, participants could still swap that payment pointer in the meta tag. The demo only checks that payments are streamed, not to whom. This can only be fixed by integrating with the new [STREAM receipts verifier](https://github.com/coilhq/receipt-verifier). 

Finally, the amounts that are being streamed are usually too low for the use cases is was thinking of, like online tutoring or counseling. For that, we would have to introduce adjustable streaming rates or at least tipping functionality. If the price to attend a video call becomes very high, however, it may make sense to use the [Open Payments](https://openpayments.dev/) standard instead of Web Monetization. I can imagine a flow where the host creates a mandate against the participants wallet that allows him to charge every minute the participant is on the call.  

Do you have other ideas about how to elevate this idea from a demo to a useful solution? Please share them with us in the comments below!
A Quick Self-learning tip 
Tags: beginners, codenewbie, coding
Published: 2020-05-26 08:55:51

Hello Everyone

This is just a random post that might help self learners. Let's look into it.

Yesterday I have come across  a question " I have so many resources , I've registered courses in more than one resource and now I'm confused about which one to prefer and I feel like I'm lost and not learning anything " .

This kind of questions will be common in most of them ! Even I was into this situation in some phase of my life.

The best thing I want to mention about this is ... "Do not expect some course to give you entire knowledge about that language/library/framework or anything that you are learning". Instead make list of resources, compare the topics, find one good resource(based on topics it is providing/way of explanation), follow docs  simultaneously,read books and blogs . This helps you gain more knowledge in the language you are learning !!

Keep going guys ! 
Thank you !
New book: Modern CSS
Tags: showdev, webdev, css
Published: 2020-05-26 13:28:21

![Modern CSS cover](https://dev-to-uploads.s3.amazonaws.com/i/lc9ajrg5949ltzpnaust.png)

I am excited to announce that my new book, [Modern CSS](https://moderncss.info), is now available!

The book is targeted at beginners and experienced developers who might not be up to date on the latest CSS topics like flexbox and grid.

The topics covered include:

- box model
- specificity
- selectors
- units
- colors
- inline vs block elements
- backgrounds
- gradients
- shadows
- borders
- text and fonts
- layout
- positioning
- transforms
- transitions
- animations
- floats
- responsive design
- Flexbox
- CSS Grid

For more information on the book, including a full table of contents and sample chapter, you can go to [https://moderncss.info](https://moderncss.info).

Thanks for looking!
Automate GIT PULL

Tags: git, automation, productivity, github
Published: 2020-05-26 06:21:49

Have you encountered a situation where you have a bunch of projects git repos and every morning you have to manually do git pull for all the project repos, so that you have the latest code in local development machine.

Well I used to go to each and every repo folders and open git bash and manually pull the latest changes. Think of you have ten different projects/solutions/Microservice you work on day to day basis and you have to repeat this process every time, its tedious right, so as a developer what can we do AUTOMATE boring tedious tasks.

Well you can say this level of automation won't save a lot of time for me, maybe 10 mins a day. Well you are kind of correct but think of 10*5*4 = 200, you will save 200 mins a month. Not bad huh so let's get to the actual script on how can we do that.

## Prerequisite:
* Install GIT on your machine
* Admin privileges(though its not required but sometimes PS acts crazy if you don’t have admin permission)
* Group all project repo under single directory in your local box (for example I have all my project repos located under C:\Code, you can modify below script if you project scattered all across your drive )

{% gist https://gist.github.com/DMehro/a215e707d41c9e70b2ba538085cee047 %}

<I>You can skip user input by hard coding 'repoLocalpath'</i>

Using the above script you can customize based on your needs such as find a difference before pulling remote changes or push/sync all repo.
VS Code: Collapse-and-Expand
Tags: webdev, vscode, productivity, beginners
Published: 2020-05-26 13:17:25

---
title: VS Code: Collapse-and-Expand
published: true
series: VS Code
description: I recently had a large amount of data to refactor out of HTML and into JSON. What I want to document for myself are the various code expand and collapse options.
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/wnjxuqj17ejoab5vut5f.png
tags: WebDev, VSCode, Productivity, Beginners
---

I recently had a large amount of data to refactor out of HTML and into JSON. The details about how I achieved this is a whole different article. What I want to document for myself (and maybe others will find it useful, even if it's only a refresher) are the various code expand and collapse options.

Rather than doing things the easy way and combing through the VS Code documentation, I did a search on Stack Overflow and found the following ...

{% stackoverflow 30077543 %}

And, while this looked **exactly** like what I was looking for, I found that even a simple answer can have its own complications.

## Terminology

It is not called Collapse and Expand, rather **Folding**.

Folding has been rolled out and is now implemented since Visual Studio Code version 0.10.11. There are these keyboard shortcuts available:

**Fold** folds the innermost uncollapsed region, while **Unfold** unfolds the collapsed region at the cursor.

| Fold Keys | Unfold Keys | System |
|-----------|-------------|--------|
| Ctrl + Shift + [ | Ctrl + Shift + ] | on Windows and Linux |
| ⌥ + ⌘ + [ | ⌥ + ⌘ + ] | on macOS |

**Fold All** folds all regions, while **Unfold All** unfolds all regions in the editor:

| Fold Keys | Unfold Keys | System |
|-----------|-------------|--------|
| Ctrl + (K => 0) (**zero**) | Ctrl + (K => J) | on Windows and Linux |
| ⌘ + (K => 0) (**zero(() | ⌘ + (K => J) | on macOS |

**NOTE**: Watch out for the **ZERO** listed, it is not an "O" key. Additionally, The `K => 0` and `K => J` are meant to be pressed while the Ctrl and ⌘ are held down. I kept releasing the Ctrl key before pressing the second key while caused some heartache.

As I said before, this is a personal documentation of this process for that point in time when I need this useful information again.
Popular Methods to Earn Money with Cryptocurrency Online
Tags: cryptocurrencies, earn
Published: 2020-05-26 12:59:30

You’ve probably heard of cryptocurrency from your colleagues or others in your social circle. You might have done some research work just to find out that you can also earn money with it, but found the other details too technical.

Never mind! By the end of this article, you’ll be able to have all the information about the popular methods to earn money with cryptocurrency online. Read on with us here!

Buy & Hold
Hold them for Dividends
Run Cryptocurrency Master Nodes
Stake Cryptocurrencies
Micro Tasking
Day Trade Cryptocurrencies
Work for Cryptocurrencies
Accept Cryptocurrencies
Cryptocurrency Arbitrage
Blogging
Lending Cryptocurrencies
Mining
Bitcoin Faucets

Read all these points in details at original blog shared below https://steemexperts.com/popular-methods-to-earn-money-with-cryptocurrency-online/
You can earn through Bitcoin faucets by performing tasks like solving captchas, playing games, watching videos and other such activities. As a result, you will earn a small amount of Bitcoin. The Bitcoin faucets are a reward system that pays its visitors in the form of a satoshi in exchange for doing the mentioned tasks.

Conclusion:
That was all about the ways to earn cryptocurrency online. You can make your mark in the cryptocurrency market by utilizing any of these methods to earn. Make sure to have detailed knowledge beforehand so that you do it right for the very first time. Explore now!
How should I fix for SEO, or rather, do I need to fix to appear on SERP?
Tags: seo, webdev, webperf
Published: 2020-05-26 12:26:32

I am pretty damn lazy, and only want to do only what I needed, but this is the result from https://web.dev/measure/ for https://polv.cc

It is Nuxt, so do I need to `nuxt generate`? (It is currently Nuxt Universal.) Will it be dynamic as I post new contents or do I need to rebuild?

It is partially about the [CMS](https://github.com/patarapolw/blogdown-cms) as well, I think. What CMS ranks good on both customzability (customizable markdown/markup) and SEO optimized?

![polv.cc-perf-2020-05-26](https://res.cloudinary.com/patarapolw/image/upload/v1590495855/polv.cc-perf-2020-05-26.png)

What about web apps (as opposed to blogs), like https://zhquiz.cc or https://rep2recall.net How do I make it appear on SERP?
Github Awesome Lists
Tags: beginners, productivity, opensource
Published: 2020-05-26 12:38:49

_TL;DR: [Awesome repo](https://github.com/sindresorhus/awesome)_

In the last couple of weeks, I have seen a lot of custom made lists and suggestions for apps, frameworks and others, which is fantastic. A good tip is an excellent way to jumpstart someone's work or project. A curated list from someone experienced is just irreplaceable. 

With that said, allow me to present to you Github's repo called [Awesome](https://github.com/sindresorhus/awesome). This repository is full of different lists of impressive **open-source** applications, libraries and frameworks for a plethora of usages.

Please have a look. Give some of them a try. I know it helped me a lot of times. Sometimes it even sparks an idea.

Good luck and happy coding!
Angular Presentation Components
Tags: angular, typescript, javascript
Published: 2020-05-26 12:37:01

I grew up in [MVVM](https://www.google.com/search?q=mvvm) land. The [MVP](https://www.google.com/search?q=mvp+pattern) pattern was known but not considered; because well, after all, do we need anything else? 

Then there was [SSR](https://www.google.com/search?q=server+side+rendering) using [MVC](https://www.google.com/search?q=mvc+pattern), then client side MVC in Angular which they call the MV(x) where x is anything you want. 

Angular got rid of the client side controller in favor of the (smart) Component and the router (which is a pseudo controller). Confused yet? 

**The MVP Pattern**

The Model View Presenter pattern is the same thing as MVVM and Angular's traditional Component, with one exception. There's no logic to do anything but display the injected data and send an event when anything else happens!  

 This means the HTML is bound to the data via an @Input mechanism. Anything requiring interaction is simply an @Output event! Otherwise known as a dumb component, they do serve a reusable purpose. 

What I didn't know is that I had been doing this a lot in MVVM-land where I wanted to reuse a View that simply had different data to display.

One interesting note about MVP, is that as soon as you want to refactor existing code to get there, you will immediately see all the close-coupling. This reason alone makes it worthwhile to think more highly of the dumb component as it only focuses on rendering!  This gives our traditional Angular Components much more leeway in consistent rendering without regard to the content!

I'll add some code to this post this week, so we can see how easy it is and provide yet another tool in our toolbox.

JWP2020
Sharing React hooks stateful logic between components
Tags: react, javascript, webdev, usebetween
Published: 2020-05-26 12:11:15

When you want to separate your React hooks between several components it's can be very difficult, because all context data stored in React component function area. If you want to share some of state parts or control functions to another component your need pass It thought React component props. But If you want to share It with sibling one level components or a set of scattered components, you will be frustrated.

`useBetween` hook is the solution to your problem 😚


```javascript
// App.jsx
import React, { useState, useCallback } from 'react';
import { useBetween } from 'use-between';

const useCounterStore = () => {
  const [count, setCount] = useState(0);
  const inc = useCallback(() => setCount(c => c + 1), []);
  const dec = useCallback(() => setCount(c => c - 1), []);
  return {
    count,
    inc,
    dec
  };
};

const Count = () => {
  const { count } = useBetween(useCounterStore);
  return <p>{count}</p>;
};

const Buttons = () => {
  const { inc, dec } = useBetween(useCounterStore);
  return (
    <>
      <button onClick={inc}>+</button>
      <button onClick={dec}>-</button>
    </>
  );
};

const App = () => (
  <>
    <Count />
    <Buttons />
    <Count />
    <Buttons />
  </>
);

export default App;
```
[![Example on codesandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/flamboyant-knuth-7qxhj?fontsize=14&hidenavigation=1&theme=dark)

`useBetween` is a way to call any hook. But so that the state will not be stored in the React component. For the same hook, the result of the call will be the same. So we can call one hook in different components and work together on one state. When updating the shared state, each component using it will be updated too.

If you like this idea and would like to use it, please put star in github. It will be your first contribution!

{% github betula/use-between %}