teleren/devto huggingface dataset:
Agile estimation and planning
Tags: agile
Published: 2022-11-04 09:55:14

## Why estimating?

If our estimates are always wrong, and most of the time they are, why should we even attempt estimating in the first place?

I can easily identify at least four reasons why we still do estimations:

- Arrive at a shared understanding of the user story

- Split user stories into smaller deliverables 

- Organize Product Backlog based on value and effort

- Plan upcoming work

Estimation problems start when used to set project deadlines and team performance.

## Why not estimate in hours?

If you estimate in hours, you run a risk of having a lot of discussions based on the seniority of the developers doing the job

People generally underestimate obstacles they might face and consider only the best-case scenario.

If one developer estimates a project, but another completes the task, the estimate becomes invalid.



## Why estimate in story points?

The Story Points approach compares the story being estimated with one or more other stories. "This story is a little bigger than that story." 

The comparison allows the team to understand the difficulty of a particular feature and lets them assign a numerical value that indicates its complexity. 

There is evidence that we are better at estimating relative size than we are at estimating absolute size.

## Why can the Scrum Velocity metric be evil?

Do you know what a team usually does when management uses velocity to measure productivity? What would you do?…. Yes, "story points inflation."

From here, you are only a step away from broken trust, frustration, and culture damage. 

Software quality will deteriorate and make things much more difficult in future sprints.

Bad intentions aren't even required for this to happen. It's natural human behaviour.



## Metrics that matter

Based on research, programmers spend 35% of their time on understanding code, 5% on writing code, 10% on other coding-related activities, and 50% on other non-coding activities. 

None of those activities above can be measured upfront. What should we measure, then? As we learned from Agile Principles, we should hold up to what truly matters: frequently delivering value to our stakeholders at a constant pace. 

Value delivered - defects = customer satisfaction; Those are the metrics that matter at the end of the day.
Install Ruby older versions with Openssl@1.0
Tags: ruby, rails, codenewbie, git
Published: 2022-11-04 09:51:31

prerequisite:
- RVM

run this command:
```
brew install rbenv/tap/openssl@1.0

PKG_CONFIG_PATH=/usr/local/Cellar/openssl@1.0/1.0.2t/lib/pkgconfig \
rvm install 2.3.8 \
--with-openssl-dir=/usr/local/Cellar/openssl@1.0/1.0.2t \
--with-openssl-lib=/usr/local/Cellar/openssl@1.0/1.0.2t/lib \
--with-openssl-include=/usr/local/Cellar/openssl@1.0/1.0.2t/include --rubygems ignore
```

this will add openssl@1.0 and install ruby 2.3.8 version
you can change the version if you want here i've used 2.3.8

done, enjoy.
Learn How to use Google Sheets in GoLang?
Tags: webdev, go, programming, opensource
Published: 2022-11-04 09:50:56

Do you know how to perform crud operations in Google sheets from the backend?

Google is providing APIs to use Google spreadsheets in your project.

We can easily access those services and add or update the same using APIs.

Today, you will learn...

- How to authenticate and create a google sheet
- Append data to google sheet
- Update cells of the google sheet
- Append data with a background color to google sheet


We will use the [google SDK library](https://github.com/googleapis/google-api-go-client) implemented in Golang.

Explore google’s [spreadsheet API reference](https://developers.google.com/sheets/api/guides/concepts) in depth for a detailed explanation. 

[Here's the video tutorial](https://youtu.be/D1wsR6GXRuY) if you prefer watching over reading.

For detailed implementation, check out the [original post.](https://blog.canopas.com/golang-interacting-with-google-spreadsheets-b381f819c2eb)
Detailed metrics of your coding activity using WakaTime
Tags: programming, tutorial, productivity
Published: 2022-11-04 09:50:41

[WakaTime](https://wakatime.com)  is an open source  plugin for metrics, insights, and time tracking automatically generated from your programming activity.


![Desktop Screenshot 2022.06.23 - 02.03.38.32.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1655930081408/Tzzd9DSDS.png)

It keeps track of information like total coding time, operating systems used, IDEs used, Languages, projects, GitHub Activity, Lines of Codes Written

![Desktop Screenshot 2022.06.23 - 02.07.34.40.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1655930267806/fHlQu-ESD.png)

You can view the data directly from the dashboard, get embeddable customizable  charts and graphs to put int your GitHub readme or portfolio website, there are many open source projects which uses GitHub actions to retrieve data from your WakaTime instance and beautifully display and update regularly on your GitHub readme.

## Getting Started With WakaTime
1. Create a free account on [WakaTime](https://wakatime.com/)
2. Get your [Secret API key](https://wakatime.com/settings/account) from your profile page
3. Search for the WakTime extension in your IDEs extension's marketplace or follow the [Official Plugins Docs](https://wakatime.com/plugins)
4. Enter your Secret API Key after installation of extension and now you are done, all your activity will be recorded.

## GitHub projects using WakaTime and GitHub actions:
1. [anmol098/waka-readme-stats](https://github.com/anmol098/waka-readme-stats)

![79395484-5081ae80-7fac-11ea-9e27-ac91472e31dd.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1655930781171/UMgLb5-2V.png)

![88030180-8e1c4780-cb58-11ea-8a8b-b3576dd73652.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1655930787214/vh0PeOyl7.png)
2. [YouEclipse/waka-box-go](https://github.com/YouEclipse/waka-box-go)

![83985147-9afb2800-a96a-11ea-9841-eec3a1f61d75.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1655930839084/XXf6s-Ifv.png)
3.[guilyx/guilyx](https://github.com/guilyx/guilyx)
Netflix-My Wish-English
Published: 2022-11-04 09:50:10

I struggle with English for years. I read books, articles, news... listen, talk, watch movies, series in English. Netflix has subtitles but I want them with two seconds delay. I wrote to Netflix about this but they didn't hear me! Then I wrote this code. (Saved into browser's code snippets). I'm watching video for ten seconds without reading subtitles then code rewinds the video ten seconds and I'm listening and reading subtitles.

```javascript
setInterval(function () {
    const videoCanvas = document.querySelector(
        '[data-uia="player"]'
    );

    videoCanvas.click();

    setTimeout(function () {
        const prevBtn = document.querySelector('[data-uia="control-back10"]');
        prevBtn.click();
    }, 1000);
}, 20000);
```
Javascript Variables
Published: 2022-11-04 09:38:52

Variables are tools within Javascript that allow you to declare a variable, and assign it some value, for example, a string (a word or letter, eg "Privetiki") Boolean values (True, False), objects, a number etc. Here's one example of its structure:

`var greeting;
greeting = "Privetiki";`

or

`var greeting = "Privetiki";`

If you want to be super fancy about it, you can also concatenate, or add together text in this way:

`var greeting = "Privetiki" + "tavarishulichki";`

Here are some basic operations you can do with variables if you're assigning them numbers:

`var number = 5;
number += 1;
// or number = number + 1; or number ++;`
which will change the number 5 to 6.

These are also some of the operations you could do with variables. Some alternatives to variables, are the let and const tool.

With the variable, you are able to change its assigned value at any point in the code, and it won't show an error message. The most recent update to the variable value will be its reflected one. 

The let function, however, is a more specific version of var, which can only be accessed within its 'block of code'. It should also be assigned a value on the same line of code it was declared on, or it will display an error message, like the const function.

The const function cannot be changed later on in the code, unlike a variable, and will continue to have the same value that was assigned in the beginning, or it will display an error message. It has the same scope as the let tool.

Scope describes the places where a declared variable can be accessed. For example, the variable's scope is global, because it can be accessed anywhere. However, if it is declared within a function, it cannot be accessed outside of it.
Internet Connectivity Checker using JavaScript
Tags: javascript, html, css, webdev
Published: 2022-11-04 09:27:30

Hello Guys! Welcome to Welcome to [Coding Torque](https://codingtorque.com)  In this blog, I'm going to explain to you how to make an internet connectivity checker using javascript. This will be a step-by-step guide including HTML and CSS. Let's get started 🚀.

## **Let's cover HTML Part**
We use HTML to make the skeleton of a website. HTML is a markup language.

Now let's import the fonts using Google Fonts API. Below is the code for `Poppins` Font. Paste the below code in `<head>` tag.

```html
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" rel="stylesheet">
```

Now let's design the container in our `<body>` tag. In the below HTML code, we have created a container that contains a div for status (message). Next, we have the button with the onclick listener attribute, to check connectivity status by clicking on the button.

```html
<div class="container">
    <div class="status" id="status">
        Click button to check status
    </div>
    <button onclick="checkConnectivityStatus()">Check Status</button>
</div>
```


## **Here is the final HTML code**

```html
<!doctype html>
<html lang="en">

<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Google Fonts  -->
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" rel="stylesheet">

    <title>Internet Connectivity Detector using JavaScript - @code.scientist x @codingtorque</title>
</head>

<body>
    <div class="container">
        <div class="status" id="status">
            Click button to check status
        </div>
        <button onclick="checkConnectivityStatus()">Check Status</button>
    </div>

</body>

</html>
```


### **Output Till Now**



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


[continue reading](https://www.codingtorque.com/2022/08/internet-connectivity-status-checker.html)
Entry level remote roles - RevampedCP
Tags: career, job
Published: 2022-11-04 09:22:01

####   Original Tweet From  [@RevampedCP](https://twitter.com/RevampedCP)
{% embed https://twitter.com/RevampedCP/status/1587239768462589952 %}


###1|. Revenue Operations Analyst  
{% embed https://jobs.zendesk.com/us/en/job/ZENDUSR22740EXTERNALENUS/Revenue-Operations-Analyst %}

###2|. Compliance Analyst at Affirm
{% embed https://t.co/Q9SPCqlM4x %}

AdSpace Here!!

###3|. Salary Finance - Operations Analyst
{% embed  https://t.co/vQrBtjAdna %}

###4|.  Forecasting Analyst at Toast
{% embed https://boards.greenhouse.io/embed/job_app?token=4657260&gh_src=dbd19ebc1 %}

AdSpace Here!!

###5|. Plaid - Risk Analyst - Customer Oversight
{% embed https://t.co/zWzNdUf65Q %} 



Click [Here](https://www.knowledge-twitter.com/?utm_source=dev.to)  For More Posts Like This [https://www.knowledge-twitter.com](https://www.knowledge-twitter.com/?utm_source=dev.to)
7 Chrome Extensions for React Developers - JSAyushThakur
Tags: webdev, react, productivity, beginners
Published: 2022-11-04 09:05:12

####   Original Tweet From  [@JSAyushThakur](https://twitter.com/JSAyushThakur)
{% embed https://twitter.com/JSAyushThakur/status/1587471861377794049 %}



###1️⃣ React Developers Tools

➡ It shows all the root React components and subcomponents that are rendering ![Twitter Image 1](https://pbs.twimg.com/media/FgfUwPIagAAwznw.png) 

###2️⃣ Redux Dev Tool

➡ Helps you to monitor triggered actions and their effect on your Redux state ![Twitter Image 2](https://pbs.twimg.com/media/FgfU43naAAEMIwS.png) 

###3️⃣ React Context DevTool 

➡ It helps to debug and keep track of state changes in React Context and useReducer API ![Twitter Image 3](https://pbs.twimg.com/media/FgfU8mJakAAcdey.png) 

###4️⃣ React Performance Devtool

➡ Helps to increase the performance of the React App by removing the unused components ![Twitter Image 4](https://pbs.twimg.com/media/FgfU_PjaMAEh2DQ.png) 

AdSpace Here!!

###5️⃣ React VT

➡ It presents a live view of the React component structure, and its current state and props ![Twitter Image 5](https://pbs.twimg.com/media/FgfVCygaMAAVW0Q.png) 

###6️⃣ HTML To React

➡ Helps to convert HTML tags to JXS directly from the browser ![Twitter Image 6](https://pbs.twimg.com/media/FgfVHGFacAAAPvX.png) 

###7️⃣ Website HTML To React 

➡ Helps to convert any selected website element into a React component ![Twitter Image 7](https://pbs.twimg.com/media/FgfVJ88acAA6ZQA.png) 

AdSpace Here!!

Thank you for reading the thread ☺️

If you like it then do give the first tweet a RETWEET 🙌

 [https://twitter.com/JSAyushThakur/status/1587471861377794049?t=lIzHOhuBmFbQ5gViB5SKsg&s=19](https://twitter.com/JSAyushThakur/status/1587471861377794049?t=lIzHOhuBmFbQ5gViB5SKsg&s=19) 



Click [Here](https://www.knowledge-twitter.com/?utm_source=dev.to)  For More Posts Like This [https://www.knowledge-twitter.com](https://www.knowledge-twitter.com/?utm_source=dev.to)
Friday humor
Published: 2022-11-04 08:52:52

After a long week we tend to be more relaxed. We cannot wait for Friday to come and ...after a few hours for the Weekend to begin.

We must however not forget a few things should not be done on Friday

- No Friday quick fixes
https://www.youtube.com/watch?v=VInujJMy-Ho&list=PLNQq42pqd-rxR_XmZLcOC7evB7ltC7zjn&index=13&ab_channel=ResterTest
- No sprint start without a Planning
https://www.youtube.com/watch?v=yRD2bqg0smI&list=PLNQq42pqd-rxR_XmZLcOC7evB7ltC7zjn&index=22&ab_channel=ResterTest
- Do not check the Production logs before leaving
https://www.youtube.com/watch?v=lHR9sbD9woc&list=PLNQq42pqd-rxR_XmZLcOC7evB7ltC7zjn&index=2&ab_channel=ResterTest

I hope this made you smile. More serious topics starting Monday :)
Build Modern React Chat App
Tags: webdev, javascript, react
Published: 2022-11-04 08:51:11

Hey guys,

So I created this ChatApp with lots of cool features.

Frontend (React + MUI v5, Redux)

Backend (NodeJs, Expreess, MongoDB, Socket.io & Agora WebRTC API (for audio & video calling))

I would like to get your feedback on this.

To help others to build this kind of app I am also creating a YouTube Playlist
Check it out here: https://www.youtube.com/@shreyansh_shah

Thanks a lot 
Waiting for your feedback
Design to encapsulate volatility
Tags: solid, principles, development, technology
Published: 2022-11-04 08:45:00

Our strong belief in **Clean Architecture** compliments the principle of **Encapsulating Volatility**. If something is likely to change, make sure it's easy.

A very retro analogy can be applied to hifi systems:

Some manufacturers sold complete integrated hifi systems. These systems had everything on them. Amp, record player, double cassette deck, radio, CD player, equalizer (a graphic one if you were lucky) etc.

The problem is that as CDs were replaced by next gen technology (like minidisc, ok, like mp3 on storage and then streaming), the whole system was at risk of becoming obsolete, even though the system still served its original purpose.

However high-end manufacturers stuck to their component model. You could buy an Amp, separately from a CD player, and speakers etc. You can even mix and match components from different manufacturers.

So when CDs were replaced by mp3’s then mp3’s by streaming services, you could just add, or swap out the relevant components. The CD player, one of the ‘music suppliers’ within the system was a volatile component.

This view on things goes beyond modularisation. It informs you what modules you should have. If it’s volatile, very likely to change, encapsulate it.

##Clean architecture


![Clean architecture](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n6wujv50bkeha4468nzw.png)



Regardless of whether we choose Microservices, SOA, or a monolithic approach, Clean Architecture can and should still be used. All of our systems should be built this way. It emphasises the domain at the heart of our designs (key also to DDD etc).

Dependency inversion is integral (and thus this approach supports good programming practice in general, and some specific SOLID principles). It moves things that are more susceptible to change to the edge instead of the center, making them easier to replace. Whatever we build can be built following this principle (even other architectures/patterns can be built in this manner).

## SOLID

- S - Single-responsibility principle
- O - Open-closed principle
- L - Liskov substitution principle
- I - Interface segregation principle
- D - Dependency Inversion Principle

You adhere to [SOLID](https://en.wikipedia.org/wiki/SOLID) principles (no exceptions for object-oriented development). These are 5 of the basic principles of Object Oriented design and programming. They should be second nature to every OO developer at Coolblue.
Boundaryを意識せずにsuspendをすると世界は消滅するしHooksはSuspenseできない
Tags: webdev, react, nextjs
Published: 2022-11-04 08:42:08

Next12+React18にて、Streaming SSRを用いてSuspenseを行う際の注意点みたいな話です。

Reactは全体で一貫性を保つために、内包するコンポーネントがsuspendした場合は全てのレンダリングを行いません。

これは非同期処理を用いたコンポーネントが正しくPromiseをThrow出来なかったり不正な値をreturnした場合などに、全体のレンダリングを中断する機能です。

これによりページが部分的に破損してしまうなんてことはなくなりますが、逆に言えば一箇所がコケるだけで全てが見えなくなってしまいますので、注意が必要です。

## 注意点1
また、これは公式ドキュメントにPitfallとして書かれている情報で、独自の手段によるデータのfetchはSuspenseは気が付かないよ、ということが書かれています。具体的にはuseEffect内部で発生させたPromiseなどです。

```tsx
const [data, setData] = useState(null)
useEffect(() => {
  FetchData().then(setData)
}, [])
```

一見すると動作するのですがSuspenseは効いていないのでコンポーネントがPromiseを投げられる恩恵を受けられていません。意味が無いです。

## 注意点2
また、APIデータをuseStateなどのHooksで持たせる場合にも注意が必要です。Hooksはコンポーネントのレンダリングが完了しない限り、毎回再生成されます。これが意味することは、無限ループの発生を招く危険性があるということです。具体的には以下のような実装で起こり得ます。

```tsx
const [data, setData] = useState(null)
if (data === null) {
  throw FetchData().then(setData)
}
```

## SWRを使う
実装する手段の1つとして、SWRを使うと良いです。SWRはSuspenseをサポートしています。この様に定義されたComponentであればSuspenseでラップすることでその恩恵を正しく受けることが出来ます。

```tsx
// Data.tsx
import useSWR from 'swr'
const { data } = useSWR('endpoint', fetcher, option)
/* render components with data */
```

```tsx
// index.tsx
import { lazy, Suspense } from 'react'
const Data = lazy(() => import('../components/Data'))

<Suspense fallback={<Loading />}>
  <Data />
</Suspense>
```

また、useSWRを多用する場合はカスタムフックにしてあげることでnullやundefinedを隠蔽してあげることが出来ます。必要に応じて抽象化していきましょう。
Vue 3 and Vite: ignore custom components code example
Tags: vue, vite, html
Published: 2022-11-04 08:41:28

This is how you ignore custom elements in Vue 3 and Vite:

```javascript
 // vite.config.js
import vue from '@vitejs/plugin-vue'

export default {
  plugins: [vue({
    template: {
      compilerOptions: {
        // i am ignorning my custom '<container>' tag
        isCustomElement: (tag) => ['container'].includes(tag)
      }
    }
  })]
}
```

As mentioned on this github vite issue:
https://github.com/vitejs/vite/issues/1312

Error you will see before implementing this:
```text
[Vue warn]: Failed to resolve component: container
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
```
Jangan berputus asa, berikan yang terbaik untuk sesama (:
Published: 2022-11-04 08:39:06

[Daftar Supplier Baju Import Tangan Pertama Terbaik Untuk Bisnis
](https://ocistok.com/blogs/news/daftar-supplier-baju-import-tangan-pertama)
[Cara Membuat Akun di Platform AliExpress
](https://ocistok.com/blogs/news/cara-membuat-akun-di-platform-aliexpress)
[Daftar Barang Import China Murah Dan Terlaris
](https://ocistok.com/blogs/news/daftar-barang-import-china-murah-dan-terlaris
)
[Referensi Supplier Aksesoris Wanita Import Tangan Pertama
](https://ocistok.com/blogs/news/referensi-supplier-aksesoris-wanita-import-tangan-pertama
)
[Cara Menjadi Reseller Barang Import China Murah dan Terpercaya
](https://ocistok.com/blogs/news/cara-menjadi-reseller-barang-import-china-murah-dan-terpercaya
)
[Cara Membeli Barang Import Murah Dari Supplier Terpercaya
](https://ocistok.com/blogs/news/cara-membeli-barang-import-murah-dari-supplier-terpercaya
)
[Rekomendasi Barang Import Yang Paling Laku Di Indonesia, Apa Saja?
](https://ocistok.com/blogs/news/rekomendasi-produk-import-yang-paling-laku-di-indonesia
)
[Cara Belanja Import Murah di Taobao China
](https://ocistok.com/blogs/news/cara-belanja-import-murah-di-taobao-china
)
[Step by Step Cara Import Barang dari China Mudah di Pahami Untuk Pemula
](https://ocistok.com/blogs/news/cara-import-barang-dari-china-bagi-pemula
)
[Cara Mendapatkan Barang Import Murah Untuk Usaha
](https://ocistok.com/blogs/news/cara-mendapatkan-barang-import-murah-untuk-usaha
)
[Pasar Yiwu Pusat Grosir Terbesar di China
](https://ocistok.com/blogs/news/pasar-yiwu-pusat-grosir-terbesar-di-china
)
[Distributor Perlengkapan Bayi Import
](https://ocistok.com/blogs/news/distributor-perlengkapan-bayi-import
)
Memilih Jasa Import Door To Door China Terpercaya di Indonesia
Published: 2022-11-04 08:24:58

[Jasa import door to door](https://ocistok.com/blogs/news/memilih-jasa-import-door-to-door-china-terpercaya-di-indonesia) menjadi salah satu pilihan yang masih terpopuler bagi para pebisnis maupun pebisnis baru. Mereka tidak perlu repot dengan prosedur dan prosesnya.

Cukup menitipkan barang kepada pengirim kemudian membayar biaya pengiriman sampai tiba di penerima.
How to fix MongoDB connection Error in AWS Lambda?
Tags: aws, cloud, mongodb, help
Published: 2022-11-04 08:22:10

Hello developers! 

Hey, does Anyone face a MongoDB connection error/issue on AWS lambda?
and if you know the solution, please help me, guys!

my code works perfectly in my local system!

But when I try to post, using the API gateway endpoint, MongoDB disconnect! ( session time-out error )

Tech things 🛠️:
- aws lambda
- aws api gateways
- serverless
- node js [16.x]
- azure cosmos DB ( MongoDB )


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


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