teleren/devto huggingface dataset:
Dear technical lead
Tags: development, leadership, leader, mentor
Published: 2022-04-22 12:44:49

---
title: Dear technical lead
published: true
date: 2022-04-22 09:52:22 UTC
tags: development,leadership,leader,Mentor
canonical_url: https://craignicol.wordpress.com/2022/04/22/dear-technical-lead/
series: mentor
cover_image: https://craignicol.files.wordpress.com/2021/04/wp-1617831689430.jpg
---

_I don’t know how you got your promotion, but I hope you’re a little scared. If you’re not, there’s a good chance that your arrogance will be your downfall._

If you got the job because you want what’s best for the team and the project, then congratulations and welcome to your new challenge.

Your job is still to produce the best product you can, but your toolkit has expanded. It’s no longer just about the code you write, it’s about helping the team produce the best product. It’s about developing processes, building a framework for everyone to work in, whether technical, social, procedural, ethical, anything that’s required.

You’re not doing it alone. You need a good relationship with your PM, your product owner, whatever role your company has.

Relationships are key to your new role. One-to-many when discussing the strategy for the project to the team, and one-to-one discussions with the developers and the stakeholders. Those relationships are the key to your expanding toolkit.

Learn about your team, what are their motivators, strengths and weaknesses. Give them autonomy to work, but be aware of what choices walk the trade-off between upskilling the team and delivering the best product sooner, because upskilling the team helps you deliver vNext, so your horizon has to be beyond this sprint.

Be a mentor.

Be decisive, even if others disagree. And stand by your decision until a better one emerges.

The next project you work on is likely to be the best learning experience you’ve ever had. Enjoy the opportunity. Seek and take advice.

_Listen._

_You got this._
Choose the Best Among IT Staff Augmentation Vs Managed Services
Tags: staffaugmentation, managedservices, itoutsourcing, hiredeveloper
Published: 2022-04-22 09:43:20

[Managed IT and IT staff augmentation](https://www.esparkinfo.com/blog/it-staff-augmentation-vs-managed-services.html) services are very common and the most used outsourcing method, in all major organizations.  They are a very good alternative to hiring full-in-house employees, it gives you the same experience as the inhouse employees at a much lower cost. 

What is IT Staff Augmentation

Staff Augmentation gives you the opportunity to work with the specialist on a project--by project basis, it saves your time and energy to hire a dedicated employee, this service can help you to grow your business rapidly. 

What are Managed Services

While on the other hand in this service, Your company outsources IT processes to another company with managed IT services. In this, you can operate with other company's parent operation and can predefine the norma & requirement


Both the service are very widely used in different sectors, for a firm that likes to work in a small group with personnel who chooses staff augmentation, while everything in one location in a physical format, managed services are the way to go. For more details please visit us.
Instant Scaling using AWS Aurora Serverless v2
Tags: serverless, aws, aurora, autoscaling
Published: 2022-04-22 09:37:07

Amazon Web Services (AWS) 𝘼𝙪𝙧𝙤𝙧𝙖 𝙎𝙚𝙧𝙫𝙚𝙧𝙡𝙚𝙨𝙨 𝙫2:
(1) ➡️ enables you to 𝙨𝙘𝙖𝙡𝙚 𝙮𝙤𝙪𝙧 𝙙𝙖𝙩𝙖𝙗𝙖𝙨𝙚 𝙩𝙤 𝙝𝙪𝙣𝙙𝙧𝙚𝙙𝙨 𝙤𝙛 𝙩𝙝𝙤𝙪𝙨𝙖𝙣𝙙𝙨 𝙤𝙛 𝙩𝙧𝙖𝙣𝙨𝙖𝙘𝙩𝙞𝙤𝙣𝙨 𝙥𝙚𝙧 𝙨𝙚𝙘𝙤𝙣𝙙 and
(2) ➡️ cost-effectively 𝙢𝙖𝙣𝙖𝙜𝙚 𝙩𝙝𝙚 𝙢𝙤𝙨𝙩 𝙙𝙚𝙢𝙖𝙣𝙙𝙞𝙣𝙜 𝙬𝙤𝙧𝙠𝙡𝙤𝙖𝙙𝙨.
(3) ➡️ 𝙨𝙘𝙖𝙡𝙚𝙨 𝙙𝙖𝙩𝙖𝙗𝙖𝙨𝙚 𝙘𝙖𝙥𝙖𝙘𝙞𝙩𝙮 𝙞𝙣 𝙛𝙞𝙣𝙚-𝙜𝙧𝙖𝙞𝙣𝙚𝙙 𝙞𝙣𝙘𝙧𝙚𝙢𝙚𝙣𝙩𝙨 to closely match the needs of your workload without disrupting connections or transactions.
(4) ➡️ enables you to 𝙥𝙖𝙮 𝙤𝙣𝙡𝙮 𝙛𝙤𝙧 𝙩𝙝𝙚 𝙚𝙭𝙖𝙘𝙩 𝙘𝙖𝙥𝙖𝙘𝙞𝙩𝙮 𝙮𝙤𝙪 𝙘𝙤𝙣𝙨𝙪𝙢𝙚, and you can save up to 90 percent compared to provisioning for peak load.
(5) ➡️ allows you to 𝙘𝙧𝙚𝙖𝙩𝙚 𝙖𝙣 𝘼𝙪𝙧𝙤𝙧𝙖 𝙎𝙚𝙧𝙫𝙚𝙧𝙡𝙚𝙨𝙨 𝙫2 𝙞𝙣𝙨𝙩𝙖𝙣𝙘𝙚 𝙬𝙞𝙩𝙝𝙞𝙣 𝙩𝙝𝙚 𝙨𝙖𝙢𝙚 𝙘𝙡𝙪𝙨𝙩𝙚𝙧. This way, you’ll have a 𝙢𝙞𝙭𝙚𝙙 𝙘𝙤𝙣𝙛𝙞𝙜𝙪𝙧𝙖𝙩𝙞𝙤𝙣 𝙘𝙡𝙪𝙨𝙩𝙚𝙧 where both provisioned and Aurora Serverless v2 instances can coexist within the same cluster.
(6) ➡️ supports the 𝙛𝙪𝙡𝙡 𝙗𝙧𝙚𝙖𝙙𝙩𝙝 𝙤𝙛 𝘼𝙢𝙖𝙯𝙤𝙣 𝘼𝙪𝙧𝙤𝙧𝙖 𝙛𝙚𝙖𝙩𝙪𝙧𝙚𝙨. For example, you can create up to 15 Amazon Aurora read replicas deployed across multiple Availability Zones. 𝘼𝙣𝙮 𝙣𝙪𝙢𝙗𝙚𝙧 𝙤𝙛 𝙩𝙝𝙚𝙨𝙚 𝙧𝙚𝙖𝙙 𝙧𝙚𝙥𝙡𝙞𝙘𝙖𝙨 𝙘𝙖𝙣 𝙗𝙚 𝘼𝙪𝙧𝙤𝙧𝙖 𝙎𝙚𝙧𝙫𝙚𝙧𝙡𝙚𝙨𝙨 𝙫2 𝙞𝙣𝙨𝙩𝙖𝙣𝙘𝙚𝙨 𝙖𝙣𝙙 𝙘𝙖𝙣 𝙗𝙚 𝙪𝙨𝙚𝙙 𝙖𝙨 𝙛𝙖𝙞𝙡𝙤𝙫𝙚𝙧 𝙩𝙖𝙧𝙜𝙚𝙩𝙨 for 𝙝𝙞𝙜𝙝 𝙖𝙫𝙖𝙞𝙡𝙖𝙗𝙞𝙡𝙞𝙩𝙮 𝙤𝙧 𝙛𝙤𝙧 𝙨𝙘𝙖𝙡𝙞𝙣𝙜 𝙧𝙚𝙖𝙙 𝙤𝙥𝙚𝙧𝙖𝙩𝙞𝙤𝙣𝙨.

Check out Amazon 𝘼𝙪𝙧𝙤𝙧𝙖 𝙪𝙨𝙚𝙧 𝙜𝙪𝙞𝙙𝙚 for a comprehensive list of features.
https://lnkd.in/e-X-RcXV

Thanks to Marcia Villalba for her blog post
𝘼𝙢𝙖𝙯𝙤𝙣 𝘼𝙪𝙧𝙤𝙧𝙖 𝙎𝙚𝙧𝙫𝙚𝙧𝙡𝙚𝙨𝙨 𝙫2 𝙞𝙨 𝙂𝙚𝙣𝙚𝙧𝙖𝙡𝙡𝙮 𝘼𝙫𝙖𝙞𝙡𝙖𝙗𝙡𝙚: 𝙄𝙣𝙨𝙩𝙖𝙣𝙩 𝙎𝙘𝙖𝙡𝙞𝙣𝙜 𝙛𝙤𝙧 𝘿𝙚𝙢𝙖𝙣𝙙𝙞𝙣𝙜 𝙒𝙤𝙧𝙠𝙡𝙤𝙖𝙙𝙨


𝙎𝙩𝙖𝙮 𝙩𝙪𝙣𝙚𝙙 𝙗𝙮 𝙛𝙤𝙡𝙡𝙤𝙬𝙞𝙣𝙜
https://www.linkedin.com/feed/hashtag/didAbRyouAbRknowAbRthat/

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/od1ci2fphymieqq5q144.png)
TypeScript any or unknown?
Published: 2022-04-22 09:36:06

What is the difference between 'unknown' and 'any' in TypeScript? 

'unknown' is more type-safe and contributes to TypeScript control flow-based type analysis. This means you can't assign 'unknown' type to any other variable type without type checking.

Here example with unknown

```Javascript
function testFunc(nameOfVar: unknown) { 
    if (typeof nameOfVar == 'string') {
        const anotherStringVar: string = nameOfVar;
    }
}
```

Example with any
```Javascript
function testFunc(nameOfVar: any) { 
    const anotherStringVar: string = nameOfVar;
}
```
'Any' type literally could be assigned to any value. 

## When you should use 'unknown'?
 'unknown' requires your code to be more predictable. Because you clearly assign a value if a type is definitely correct.
unknown is recommended because it provides safer typing — you have to use type assertion or narrow it to a specific type.

## Can I use 'any' instead of 'unknown'?
Yes, you can but then TypeScript won't control strictly your assignments. This is a bit risky because your code can't guarantee that called or assigned variable has the correct type.

I Hope, I brought you some useful content.

Follow me on 🐦 [Twitter](https://twitter.com/DevMoroh) if you want to see more content.
cat Command in CLI
Tags: cli, webdev, beginners, tutorial
Published: 2022-04-22 09:31:48

---
canonical_url: https://baransel.dev/post/cli-cat-command/
---

`cat` is one of the frequently used commands in Linux. It is used to see the contents of a file on standard output (sdout). To run this command, enter `cat` followed by the filename and extension. For example: `cat file.txt`

Here are other ways to use the `cat` command:
* `cat > filename` creates a new file
* `cat file1 file2 > file3` merge two files (1 and 2) and store the result in a new file (3)
* `cat filename | tr a-z A-Z > result.txt` to change a file to upper or lower case

> [Sign up to my newsletter!](https://baransel.dev/newsletter/).
box model
Published: 2022-04-22 09:27:06

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

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

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

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

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

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

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

## width - height - content - box 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2if96huhyu5jkk444jor.png)

## border width - border color - border style 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z7n7ikvaztztv0neqakv.png)

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

## margin accept negative values 

## padding doesn't accept negative values 

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

## margin auto - center aligning 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4wflf62xcmkx15wo7btk.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k4qn9wxvu6glk7lw36un.png)
Intro showcase view in Jetpack Compose — Android
Tags: android, javascript, kotlin, programming
Published: 2022-04-22 09:23:45


**Want to make it easy for your new users to understand all the features of your app?**

Here's how you can do it using [jetpack compose](https://blog.canopas.com/android-drag-and-drop-ui-element-in-jetpack-compose-14922073b3f1) in [android](https://blog.canopas.com/android-development-best-practices-2022-203682a440f5).

This implementation is inspired by the [TapTargetView](https://github.com/KeepSafe/TapTargetView) which is useful for legacy views.

Full source code is available on GitHub as **[Intro Showcase View](https://github.com/canopas/Intro-showcase-view)** and you can also add this as a gradle dependency in your project.


![1_q37VrC0BqQQeMpeG-VHQuQ.gif](https://cdn.hashnode.com/res/hashnode/image/upload/v1650618776486/SISP76rH1.gif)
Once you follow the 10 steps in this article, your final implementation will look like this.

Step 1: Add a feature and draw circles on Canvas

Step 2: Find LayoutCoordinates of a fab button and recenter circle.

Step 3: Blend the overlapped circle to set transparency

Step: 4 Add circle reveals animation to highlight the target

Step 5: Add texts to describe the feature

Step 6: Set offset of Texts

Step 7: Calculate outer circle radius

Step 8: change the offset of our outer circle

Step 9: Fix the outer circle center point for the Top and Bottom bar.

Step 10: Add circle reveals animation to our outer circle.


Check out the full article on [canopas blog](https://blog.canopas.com/intro-showcase-view-in-jetpack-compose-ac044cd3bf28).
Control Flow statement on Dart — Dart Programming — Part 6
Tags: flutter, dart, mobile, beginners
Published: 2022-04-22 09:23:35

Hello guys. From now on i'll move into Medium to write blog but still want to share for another channel. So i'll up-to-date my blog in here. You guys can check my lastest about [Dart Control Flow](https://hoangnguyen0403.medium.com/control-flow-statement-on-dart-dart-programming-part-6-c94c2d5d8c5a) in Medium.
File sharing web app
Tags: webdev
Published: 2022-04-22 08:58:42

I wrote a file sharing web app, any suggestion?

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4qq3oe6winp5w8eqgjz4.PNG)

https://github.com/arnosolo/easy-share-frontend
https://github.com/arnosolo/easy-share-backend
FAANG Interview Question| Longest Valid Parentheses
Tags: python, stack, programming
Published: 2022-04-22 08:56:51

Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring.

**Example 1:**
```
Input: s = "(()"
Output: 2
Explanation: The longest valid parentheses substring is "()".
```
**Example 2:**
```
Input: s = ")()())"
Output: 4
Explanation: The longest valid parentheses substring is "()()".
```
**Example 3:**

```
Input: s = ""
Output: 0
```
**Constraints:**

- 0 <= s.length <= 3 * 104
- s[i] is '(', or ')'.

## Solution 1:

```
# O(n) time | O(n) space - where n is the length of the input string
def longestBalancedSubstring(string):
    stack = [-1]
	longest = 0
	for idx in range(len(string)):
		ch = string[idx]
		if ch == "(":
			stack.append(idx)
		else:
			stack.pop()
			if len(stack) == 0:
				stack.append(idx)
			else:
				top = stack[-1]
				longest = max(longest, idx - top)
				
	
	return longest
```

## Better Solution

```
# O(n) time | O(1) space - where n is the length of the input string
def longestBalancedSubstring(string):
    return max(
			get_longest_sub_string_count(string, True),
			get_longest_sub_string_count(string, False)
		)

def get_longest_sub_string_count(string, left_to_right):
	open_ch= "(" if left_to_right else ")"
	step = 1 if left_to_right else -1
	idx = 0 if left_to_right else len(string) - 1
	open_count = 0
	close_count = 0
	longest = 0
	while idx > -1 and idx < len(string):
		ch = string[idx]
		if ch == open_ch:
			open_count +=1
		else:
			close_count += 1
			
		if close_count == open_count:
			longest = max(longest, open_count*2)
		elif close_count > open_count:
			open_count = 0
			close_count = 0
		
		idx += step
		
		
	return longest
	
```
This Week in Python
Tags: python
Published: 2022-04-22 08:34:43


**Fri, April 22, 2022**

This Week in Python is a concise reading list about what happened in the past week in the Python universe. 

## Python Articles


- [Python’s “Type Hints” are a bit of a disappointment to me](https://www.uninformativ.de/blog/postings/2022-04-21/0/POSTING-en.html) – Limitations of Pythons Type Hinting System
- [Singleton is a bad idea](https://nedbatchelder.com/blog/202204/singleton_is_a_bad_idea.html) – There are better options than singletons to maintain clean code
- [Threading in Python: The Complete Guide](https://superfastpython.com/threading-in-python/) – This guide provides a detailed and comprehensive review of threading in Python
- [Permissions in Django](https://testdriven.io/blog/django-permissions/) – How to assign permissions to users and groups in order to authorize them to perform specific actions
- [Easily Automate Your Documentation](https://towardsdatascience.com/easily-automate-and-never-touch-your-documentation-again-a98c91ce1b95) – Completely automated documentation process in Python using MkDocs



## Projects

- [memray](https://github.com/bloomberg/memray) – memory profiler for Python
- [flask_for_startups](https://github.com/nuvic/flask_for_startups) – Flask boilerplate using a services oriented structure
- [PyPDF2](https://github.com/py-pdf/PyPDF2) – A pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files
- [pytube](https://github.com/pytube/pytube) – A lightweight, dependency-free Python library (and command-line utility) for downloading YouTube Videos
- [localstack](https://github.com/localstack/localstack) – A fully functional local AWS cloud stack. Develop and test your cloud & Serverless apps offline
About Jonie
Tags: programming, life
Published: 2022-04-22 08:33:52

**My name Johnstone, a student at Kirinyaga University pursuing Software Engineering currently 


I had a childhood dream of being an architect or civil engineer but due to life circumstances, I ended up studying about the science of computers and computer programming, and definitely, I didn’t regret that! In fact, I enjoy being a programmer and love learning new things in tech all the time!

I enjoy solving challenging complex problems, coding front end and has great interest in developing applications full-stack in Python  using new technologies.
From time to time on my spare time, I volunteer and share my technical knowledge at some virtual conferences and user groups events.

I used to teach programming to my fellows in schools and there I saw the gender gap and inequality problem already. I realized something needs to be done about it. I need to do something about it!**
How to parse JSON in JavaScript
Tags: javascript, beginners, webdev, codenewbie
Published: 2022-04-22 08:26:05

## What is JSON?
`JSON`, also known as JavaScript Object Notation, is a text-based data exchange format. It is a collection of key-value pairs with a few rules to keep in mind,

- The `key` must be a string type and enclosed in double-quotes.
- The `value` can be of any type, String, Boolean, Number, Object, Array, and null.
- A colon separates the key-value pair (:).
- Multiple key-value pairs are separated by a comma(,).
- All the key-value pairs must be enclosed within the curly braces({...})
- You can not use comments(like /*...*/ or //...) in JSON.

Alright, with all that, let us see an example of JSON,

```js
{
    "name": "Ravi K",
    "age": 32,
    "city": "Bangalore"
}
```

## How to Parse JSON in JavaScript?

We need to use the `JSON.parse()` method in JavaScript to parse a valid JSON string in a JavaScript Object.

```js
const employee = `{
    "name": "Ravi K",
    "age": 32,
    "city": "Bangalore"
}`;

const employeeObj = JSON.parse(employee);
console.log(employeeObj);
```
The output is a JavaScript Object,

![JS Employee OBJ](https://cdn.hashnode.com/res/hashnode/image/upload/v1650513522110/FdtzPP3FW.png?border=1,CCCCCC&auto=compress)

## How to Handle a Parsing Error?
When you parse a JSON text, you are likely to encounter a parsing error like this,

![Parsing Error](https://cdn.hashnode.com/res/hashnode/image/upload/v1650513596546/cRQKr15z7.png?border=1,CCCCCC&auto=compress)

It is mainly because the JSON is not a valid one. You must have missed one of the rules we have discussed above. Also, you are likely to forget to enclose the JSON text in a single quote('') or backtick(``) while assigned to a variable in JavaScript.

When you encounter such errors, please validate your JSON with a [JSON Linter](https://jsonlint.com/).

That's all for now. I hope you find this article helpful.

Let's connect,

- [Give a Follow on Twitter](https://twitter.com/tapasadhikary)
- [Communities on Showwcase](https://www.showwcase.com/atapas398)
- [Subscribe to my YouTube Channel](https://www.youtube.com/tapasadhikary?sub_confirmation=1)
- [Side projects on GitHub](https://github.com/atapas)
What is logic programming and how does it work?
Tags: webdev, programming
Published: 2022-04-22 08:20:46

Logic programming is a type of computer programming in which program statements convey facts and rules about circumstances using a formal logic framework. For example, "H" is a state as a logic clause with a head and a body if B1, B2, and B3 are true.
The programmer must instruct the machine on how to make decisions based on mathematical logic. In logical programming, for example, the use of a mathematical algorithm.

Computer programs are made up of code that tells the computer how to do specific things. However, the computer will eventually be obliged to make a decision about how to proceed. It will be unable to complete its present task without the knowledge. Logic programming solves these challenges by giving the computer instructions that allow it to make a "logical" decision about how to respond to a particular situation.

Studying logic is similar to learning math. It's a skill that must be learned via practice. This could be accomplished directly through programming or indirectly through logic puzzles. The following are the most important aspects of the skill:

- You should be aware of the formal moves that you can make in your system.

- Breaking down your problem into manageable chunks so that each aspect may be addressed separately.

- Understanding how to put the movements together to reach where you want to go.

It may appear straightforward, but as everyone who has done mathematics knows, applying simple rules may be difficult at times. Because the underlying skills are so similar, doing some math can surely assist. The important aspect is to really do something — to solve problems. Alternatively, practicing formal logic problem sets would be beneficial in honing these abilities.
Learning to solve difficulties for yourself is the most important aspect. Watching tutorials or copying other people's solutions will never get you where you need to be. While seeing solutions is beneficial, doing the work yourself should be the focus of your practice.

During the Year of Code in America, many schools throughout the world began introducing a computer programming skill element into the school day. Children can learn the principles of computer functioning through this type of education. If they can get a computer to do what they want, kids can be proud of themselves. This foundation can help children prepare for a lifetime of successful technology use and management.

Computational thinking is the capacity to express your thoughts in a systematic and logical manner. This brain process is analogous to how a machine follows instructions step by step. It's also the meticulous process of creating and solving problems that a computer could repeat. To address problems, software engineers, computer programmers, and logistics professionals adopt this approach of thinking. Computational thinking encompasses advanced mathematics, algorithm development, and reasoning. To develop computational thinking, consider a problem and break it down into single-action phases. Each of these procedures is carried out as quickly as possible.

See you soon.
Basic JavaScript slider ready source
Tags: javascript, slider, css
Published: 2022-04-22 08:00:13


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2mycn6s6dh84d47bkmx1.png)
To use, you can download and use My Gate Hub.
Note: For English use, please equate dir="rtl" with dir="ltr"
Amir Reza Heydari
[download in github](https://github.com/Amirrezaheydari81/slider-button-js)
A Nice Developer Joke For Today
Tags: jokes, dailydeveloperjokes
Published: 2022-04-22 08:00:01

---
title: "A Nice Developer Joke For Today"
description: "Check out today's daily developer joke! (a project by Fred Adams at xtrp.io)"
series: "Daily Developer Jokes"
published: true
tags: #jokes, #dailydeveloperjokes
---

Hi there! Here's today's Daily Developer Joke. We hope you enjoy it; it's a good one.

![Joke Image](https://private.xtrp.io/projects/DailyDeveloperJokes/public_image_server/images/5e1258a87ad7e.png)

---

For more jokes, and to submit your own joke to get featured, check out the [Daily Developer Jokes Website](https://dailydeveloperjokes.github.io/). We're also open sourced, so feel free to view [our GitHub Profile](https://github.com/dailydeveloperjokes).

### Leave this post a ❤️ if you liked today's joke, and stay tuned for tomorrow's joke too!

_This joke comes from [Dad-Jokes GitHub Repo by Wes Bos](https://github.com/wesbos/dad-jokes) (thank you!), whose owner has given me permission to use this joke with credit._

<!--
Joke text:
___!false___

It's funny 'cause it's true.
 -->