teleren/devto huggingface dataset:
An Overview of UI | UX
Tags: ui, ux, design, beginners
Published: 2021-11-05 09:44:00

We are going to discuss a little bit about the differences between UI and UX in this article. 

**UI**, which stands for User Interface, acts as a bridge between users and the visual content on the screens. The screens could range from desktops, laptops, tablets to our mobile phones. UI is more towards tangible and visible design. For example the buttons, scroll bar and even the colour palettes used by the website are also parts of UI. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0yd2s5d20z2ut0448ynp.jpg)
       *Image from [Technology vector created by freepik - www.freepik.com](https://www.freepik.com/vectors/technology)*

UI decides the aesthetic and feel for the website. Either you want your app to be more playful (e.g. A travelling information website), or to be more serious (e.g. Scientific research), UI plays an important role. UI design has also evolved and improved over time as it has to be responsive to different screen sizes. An example would be we are not going to show a huge side bar when the website is displayed on a phone's browser, instead we could hide it with a togglable hamburger menu. In this case, UI designers have to draft out different wireframes and figure out how do they look the best with all the elements on the screen. They will normally create sample pattern library, mood boards and static interface to determine the design of an app.

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

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

&nbsp;
&nbsp;

**UX** refers to User Experience design, including research, testing, planning etc. UX design cares about how users feel when accessing and navigating through the app. The workflow of UX design (from ideation to the creation of prototype) will be covered in the future articles. This is an example of simple wireframes and the navigation routes for an app:

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

UX design also involves getting users' feedback (in the early stages of designing phase), and make improvements to the flow. For example, when user clicks on an icon, he or she found out that some important information on the interface is blocked by the popped up modal window. In this case, the layout can be adjusted to optimize the overall experience of our app.

**Do follow me for more future articles on web design, programming and self-improvement 😊**

[Follow me on Medium](https://dylanoh.medium.com)
Benefits you get partnering up with a QA vendor
Tags: testing, qa, okqa
Published: 2021-11-05 10:08:16

1) Flexible cooperation models to choose from: full-time QA, dedicated QA team, part-time involvement, or on-demand testing.
2) QA manager to work on the processes within the software development life-cycle, ensuring two-tier verification and minimizing bottlenecks with product delivery to end-users.
3) Access to the extensive expertise and multi-qualified team of manual and automation QA engineers with the opportunity of quick team resize.
Explore other advantages with the OKQA team.
https://ok-qa.com/
No async method as a parameter in useEffect Hook
Tags: react
Published: 2021-11-05 10:03:05

Hey 👋 

We are currently working on something and we are using React :) during test automation of our components we found out that it is a bad practice to use async functions in a useEffect hook like this:

useEffect(async () => {
// Code
})

This is bad because the hook expects a function as a return value or nothing, right? The thing that I would suggest is that this is also mentioned in the official documentation :) because this could have prevented us from doing this :) what do you think?

PS: Is it possible for me to contribute to the documentation somewhere and have a pull request?
Day 28 of 100 Days of Code & Scrum: Next.js Is Supercharged For Production
Tags: 100daysofcode, beginners, javascript, programming
Published: 2021-11-05 10:01:10

Happy Friday, everyone!

I enjoyed learning about a lot of things today, even if it was a grind. It feels great to be productive.

Next.js is such an interesting framework to learn about! It performs really well on production and also comes with a lot of quality-of-life features built-in. I most likely will use Next.js for most of my projects from here on, because it has amazing performance and SEO benefits.

Anyway, let's move on to my daily report!

## Yesterday

I was working on my company website, and I finished a temporary, prototype banner for it.

## Today

Here are the things I learned and worked on today:

### Next.js

- I learned about the [next-seo package](https://github.com/garmeeh/next-seo).
- next-seo makes SEO configuration a lot easier with its built-in components:
  - `<NextSeo />` - allows you to change various meta tag values that is usually in `<Head />`
  - `<DefaultSeo />` - it enables you to set default SEO properties that affect all pages. It can be overridden by `<NextSeo />`
- kind of random, but it seems `<Container />` in Next.js is deprecated.

### Scrum

- I wrote some user stories and tasks for my company website.
- I did some practice flashcards for Scrum.

Thank you for reading! Have a good day.

![Thank You Banner](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j5khh0okv8g7solnh2w4.png)

### Resources/Recommended Readings

- [next-seo | Github](https://github.com/garmeeh/next-seo)
- [Official Next.js tutorial](https://nextjs.org/learn/basics/create-nextjs-app?utm_source=next-site&utm_medium=nav-cta&utm_campaign=next-website)
- [Scrum and XP from the Trenches](https://www.infoq.com/minibooks/scrum-xp-from-the-trenches-2/).
- [The 2020 Scrum Guide](https://scrumguides.org/scrum-guide.html)
- [Mikhail Lapshin's Scrum Quizzes](https://mlapshin.com/index.php/scrum-quizzes/)

### DISCLAIMER

**This is not a guide**, it is just me sharing my experiences and learnings. This post only expresses my thoughts and opinions (based on my limited knowledge) and is in no way a substitute for actual references. If I ever make a mistake or if you disagree, I would appreciate corrections in the comments!

### Other Media

Feel free to reach out to me in other media!

<span><a target="_blank" href="https://www.rammina.com/"><img src="https://res.cloudinary.com/rammina/image/upload/v1638444046/rammina-button-128_x9ginu.png" alt="Rammina Logo" width="128" height="50"/></a></span>

<span><a target="_blank" href="https://twitter.com/RamminaR"><img src="https://res.cloudinary.com/rammina/image/upload/v1636792959/twitter-logo_laoyfu_pdbagm.png" alt="Twitter logo" width="128" height="50"/></a></span>

<span><a target="_blank" href="https://github.com/Rammina"><img src="https://res.cloudinary.com/rammina/image/upload/v1636795051/GitHub-Emblem2_epcp8r.png" alt="Github logo" width="128" height="50"/></a></span>
SPO600 Lab2 - 6502 Assembly Language Lab
Published: 2021-11-01 03:53:36

In lab2 we are going to draw borders around the bitmap screen with 4 different colours using 6502 assembly language.

![result](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cvtz2fx6kusc259484yt.jpg)

**Source Code**
```
	LDA #$00	; set a pointer at $40 to point to $0200
	STA $40
	LDA #$02
	STA $41

	LDA #$05	; colour number: green
	LDY #$00	; set index to 0

; draw green line at the top of the bitmap screen

top:	
    STA ($40),y	; set pixel at the address (pointer)+Y
	INY 		; increment index
	CPY #$20	; 
	BNE top         ; continue until done the page


	LDA #$05	; set page to 5
	STA $41		; 

	LDA #$06	; colour number: blue
	LDY #$E0	; set index to starting index of last line in pg.5

; draw blue line at the bottom of the bitmap screen

bottom:	
    STA ($40),y	; set pixel at the address (pointer)+Y
	INY 		; increment index
	CPY #$00	; 
	BNE bottom      ; continue until done the page


	LDA #$02	; set page to 2
	STA $41		; 

	LDY #$00	; set index to starting index of pg.2

; draw yellow line to the left and 
; purple line to the right of the bitmap screen

sides:	
    CLC		; clear carry to prevent accumulating of a value
	LDA #$07	; colour number: yellow
	STA ($40),y	; set pixel at the address (pointer)+Y
	TYA		; transfer y to a
	ADC #$1F 	; increment memory (a) by 1f (32 in hex = 1 line)
	TAY		; transfer a to y
	LDA #$04	; colour number: purple
	STA ($40),y	; set pixel at the address (pointer)+Y
	INY		; increment y (to first index of next line)
	CPY #$00	; 
	BNE sides	; continue until done the page

	INC $41		; increment 1 page
	LDX $41		; get current page number
	CPX #$06	; compare with 6
	BNE sides	; continue until done the page
```

I have break down the process of drawing the borders into 3 parts. 
1. loop "top" draws a green border at the top of the bitmap screen
![top](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nh7xivk8hmj1uqyk5e0f.jpg)
2. loop "bottom draws a blue border at the bottom of the bitmap screen by setting the starting index to $05E0
![bottom](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1lceih3742j2ejkvvzhp.jpg)
3. loop "sides" draws a yellow border to the left and a purple border to the right of the bitmap screen by keep switching between the two colours and increasing the index of the current line.
![sides](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/260xwfrwtjjtm2hhd66k.jpg)
Cherry-Pick Your Teammate's Changes Without Push 'n Pull-ing To Your Repo In WebStorm
Tags: programming, git, webdev, productivity
Published: 2021-11-05 09:58:15

You asked your teammate for help with a piece of code and they showed you the solution in their editor. Now you need to fetch those changes. Usually, this would mean a series of tedious Git commands for both of you (not to mention that the changes will forever grace your git history), but no longer - GitLive allows you to cherry-pick your teammate's changes straight from their local files without having to push and pull to Git.

In WebStorm, open up the team window by clicking on the GitLive icon on the bottom tool window bar.

![IMG-1.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1636043004823/mLTXn9qUk.png)


This will show a list of your teammates, if they are online (or away) and the issue they are currently working on. Click the arrow on the left-hand side of the teammate that helped you to see the repositories they have cloned, locate the one they made the changes to and click the arrow beside that too.



![IMG-2.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1636040361139/9UIvwDqxV.png)




Here, you can see the list of files changed by your teammate on their branch compared to the main branch. Files with asterisks next to the file icon contain changes made locally by your teammate that have not yet been pushed to the remote repository.

Since we are only interested in their local changes, click the filter icon at the bottom of the team window to filter to only the unpushed changes.

![IMG-3(2).png](https://cdn.hashnode.com/res/hashnode/image/upload/v1636044027568/Lu7qC-CJu.png)

Now we can see the single file that contains the solution we want to copy! Clicking on it will open a diff of the changes so we can make sure it contains only the changes we need. Now all we need to do is to right click on the file and select the cherry-pick option to pick the changes. And voilà - no need for any git push- or git pull -ing!

![IMG-4.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1636040373331/gYKKUXoB0.png)

You can also perform the cherry pick at the level above if you want to pick all changes from multiple files at once by right-clicking on the repository and selecting the cherry-pick option.

![IMG-5.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1636040379492/TuZp7N4Ts.png)


Don't have the GitLive extension installed yet? You can [find GitLive here](https://plugins.jetbrains.com/plugin/11955-gitlive), and if you want to learn more, check out [this blog post](https://blog.git.live/gitlive-8-0-Cherry-picking-your-teammates-changes) or the [GitLive docs](https://docs.git.live/docs/cherrypicking/).
Making Sites Because I Can't Stop Buying Domains
Tags: webdev, learning, design, programming
Published: 2021-11-05 09:54:45

Now, don't leave when I show it to you, just read on - but today, I came across this awesome post. {% post https://dev.to/inhuofficial/do-you-own-a-domain-name-without-a-purpose-let-me-give-you-a-project-for-it-5kn %}.

The guy asked for people to submit domain names they own that they just aren't doing anything with. I own about _100_, so I gave him 3.

These were his recommendations.

{% comment 1jel8 %}

What a wonderful, creative individual we have.

I retorted with my own ideas that I had.

{% comment 1jeme %}

Together, with powers combined, I think I can pull something awesome out of some or all of these ideas.

## The Next Steps

This is the first post in a series of what will become a journey of website development just for the fun of it. I want to teach those who want to learn more, including myself, and so - we will venture together on this journey. 

**Creating for creation's sake**.

Let me know what you think we should start with, or if you have any ideas that can help improve what we've brainstormed so far!
CSS Modules - rule with two class
Tags: css, react, cssmodules
Published: 2021-11-05 09:40:21

I have two components and I use CSS modules. How can I write CSS that use both of the components and classes? One component has class description the other one "title". How, where can I put that code? (code below) 

```css
.description[open] > .title {

  font-weight: 700;

}
```
Guest Post Reach Blog Links
Published: 2021-11-05 09:30:56

Guest Post Reach blog is one of the top guest blogging websites that accept posts from guest posts anywhere in this technological universe - Technology Write for us. Because we are aware that guest bloggers need opportunities to post regularly

Do you wish to write on anything related to technology,business, fashion, entertainment, travel, health, sports and news, or any topic of your choice, you have to come the right place. We have Guest Blog Posting depending on the subject you wish to write on. If you are a content writer, this is the right platform for you. You can join our team of writers by posting your article which will be shared the people of similar interests.

Technology Write For Us
https://guestpostreach.com/write-for-us/

Y2Mate Youtube Downloader free
https://guestpostreach.com/y2mate-youtube-downloader-free/

RomsMania Is Safe
https://guestpostreach.com/romsmania/

Where is the Armory in WoW Classic
https://guestpostreach.com/what-is-wow-classic-armorywhere-is-the-armory-in-wow-classic/

https://guestpostreach.com/jio-rockers-website-watch-and-download-hd-latest-movies/
Jio Rockers website : watch and Download Hd latest Movies

https://guestpostreach.com/filmyzilla/
Filmyzilla : Watch and Download movies

https://guestpostreach.com/ssrmovies-illegal-movies-download-website-free/
SSRMovies : Illegal Movies Download Website free

https://guestpostreach.com/yts-yify-movies/
YTS – YIFY Movies – Torrent Downloads & Alternatives

https://guestpostreach.com/tamilyogi/
Tamilyogi – Illegal latest HD Movies Download Website

https://guestpostreach.com/movierulz/
Find Latest Movies and Shows on the Internet With the Movierulz Website

https://guestpostreach.com/ways-to-solve-pii_pn_21b3e8d4b4164fdf-error-code-with-solutions/
solve pii pn 21b3e8d4b4164fdf errorcode

https://guestpostreach.com/how-to-fix-pii_email_7f50b3874b546a6ddaaf-error-code-is-ms-outlook-mail/
fix pii email 7f50b3874b546a6ddaaf

https://guestpostreach.com/how-to-fix-solve-a-solution-of-pii_email_5d94daa1541973bf76f2-error-code/
How to Fix & solve a Solution of [pii_email_5d94daa1541973bf76f2] Error Code
Rules Engine 規則引擎
Tags: rulesengine, rete
Published: 2021-11-05 09:17:52

最近在某些機緣下認識了規則引擎，以華文介紹規則引擎的文章好像不多，這邊試著粗淺的記下我對規則引擎的認識。

## 什麼是規則引擎？

在程式的世界，規則引擎通常以套件的方式存在，在系統內藉由規引擎套件的引入，可以利用規則引擎提供的特定方法來定義一系列的商業邏輯，包括每個商業邏輯被觸發的條件，以及被觸發後的行為。

一個最典型的例子：評分機制，九十分以上的為甲級，享有某些特殊優惠；七十至九十分的為乙級，享有略低於甲級的優惠；七十分以下的為丙級，不享有優惠。生活中常見的會員分級、銀行的信用評分都是類似的評分機制的實際應用。

## 和 if / else、switch / case 有什麼不同？

上面的例子看起來好像用原生的 `if` / `else` 或 `switch` / `case` 就可以做到同樣的事？然而在某些不同的場景上，用 `if` / `else` 是不適合的。

首先是關注的焦點不同，不論是 `if` / `else` 或 `switch` / `case`，他們的語法都專為判斷程式運作邏輯而設計，並不適合拿來做商業邏輯的判斷，因為商業邏輯的規則往往更複雜；規則引擎的關注焦點就是商業邏輯而非程式邏輯。硬要用 `if` / `else` 來做商業邏輯很有可能長出多層巢狀的 `if` / `else`，並且在商業邏輯上，隨著規則的複雜化，系統要做的可能不只是單純的判斷，而是推斷，根據一系列的指標數據由系統協助推斷後續的動作，以銀行系統為例，根據客戶的各項指標（年齡、職業、性別、家庭、地區、資產、收入、信用、健康）來推斷他的風險值，並進一步決定他的借貸利率，像這樣的規則引擎的應用被稱為專家系統，專家系統的推斷可以用演算法或是人工智慧的方式實現。

第二點，規則引擎提供更靈活的參數調整方式，在 `if` / `else` 裡面的判斷條件都是死的，難以被開發者以外的營運人員變更，或是必須由開發者手動刻出參數調整的程式、介面，而規則引擎在這方面都提供更靈活的調整方法，可能是用讀入特定格式的檔案（csv 或 xls 或 json）來實現規則的設定，並且這些格式同時是人機可讀的，讓營運人員更簡易的自行調控。第二種做法就是由規則引擎提供程式介面，由開發人員實現操作介面給營運人員使用，這當然有一定的複雜度，需要花費心力去讀規則引擎的文件，但以一個商業用系統的長遠來看，用規則引擎來實現應該是可以有更低的長期維運成本。

## 規則引擎的應用

- 金融信用評分系統
- 保險風險評估系統
- 交易行為異常監控系統
- 會員分級系統
- 交易優惠系統

以上這些系統的共同特色：參數多、規則複雜。

## 規則引擎的套件

規則引擎在 Java 生態系內是最多的，大概是因為上面的應用大多是大型系統，而大型系統也都是 Java 的世界的緣故吧！不過其實其它語言也都有規則引擎套件，去 PyPI、npm、Crates.io、RubyGems 等站台搜尋 rules engine 應該都會有相對應的套件，不過成熟度、維護程度各異，服用前需要評估。

## 規則引擎的實做分纇

前面提到過，規則引擎在各語言都有，並且是以第三方套件的形式提供，但以每個規則引擎套件的實做方式來說，有兩大種分別：是否以 [Rete 演算法](https://en.wikipedia.org/wiki/Rete_algorithm)為基礎。

較簡單的規則引擎套件並不以 Rete 演算法實現，而是用作者自己的做法實現，通常這種規則引擎不會具有自行推斷的能力，而只是實現了一層較適合商業邏輯的設定與撰寫的程式介面供我們使用，較好上手功能也較少，較適合簡單的商業場景。

第二種規則引擎套件即以 Rete 演算法為基礎實現，關於 Rete 演算法，可以簡單的理解為用於比對**多個事實（條件）**與**多個規則**，並做出最終**推斷**的一種演算法，這種規則引擎適用於更複雜的場景。

## 商業化的產品

商業化的產品因為是要賣錢錢的，不會只有 rules engine，而是再加上一些人機介面輔助等等的週邊元件包裝成完整的產品。

- [IBM Operational Decision Manager](https://www.ibm.com/tw-zh/products/operational-decision-manager)
- [紅帽決策管理器](https://www.redhat.com/zh/technologies/jboss-middleware/decision-manager)（[Red Hat Desicision Manager](https://www.redhat.com/en/technologies/jboss-middleware/decision-manager)）

## 參考資料

- [Rules Engine in node.js](https://medium.com/codingtown/rules-engine-in-the-node-js-6c4577aee2b0)
- [規則系統的發展](http://microbuddy.blogspot.com/2009/01/blog-post_5382.html)
- [How can I implement a Rete algorithm?](https://www.quora.com/How-can-I-implement-a-Rete-algorithm)
To Github Owners: Do you like minor fixes? #Discuss
Tags: discuss, github, pullrequests
Published: 2021-11-05 09:16:12

Over the last month or so I have been playing with creating Discord bots for Dungeons and Dragons using Javascript. For this I have been reviewing  lot of packages that have Dungeons and Dragons functions and a lot of repos using Discord.js for ideas and understanding the best way to do things.

Over the last month I have raised 4 Pull Requests that fixed spelling or grammar or material issues in the readme.md files. Of these 4 pull requests - 3 have been merged and the other ignored (I don't think the repo owner is active on Github anymore).

My question to Repo owners - Do you like/want pull requests that correct minor issues like this?
Differences between Javascript and Typescript
Tags: javascript, typescript
Published: 2021-11-05 08:37:33

In this article we are going to talk about the differences between **Javascript** and **Typescript**, they are two languages that are widely use nowadays in all types of projects, JS was the first to be introduced as **client-side** language. As time passed the projects were JS was being used started to be too complex and heavy, thats were TS enters the game, and starts as language to resolve all the problems that JS was having at the moment, nowadays TS is a language widely used also and is becoming bigger and bigger, so I hope that with this article I can help you a little bit to now any differences or to resolve any doubts.

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

There are many differences, now I'm going to show you a comprehensible list of differences.

## Differences

1. JS is used for **client-side** *mostly* while TS is used mostly for both client-side and **server-side**.
2. TS has an improved **readability**, since JS requires a lot of manual detection of bugs and errors, this has been improved a lot by TS.
3. TS has **static typing** while JS doesn't support it since JS is a dynamically-typed language.
4. TS supports **ES6**.
5. TS has a full support in modern IDE.
6. TS can also convert its code to JS if necessary.
7. Using TS means that you can use OOP(Object-oriented programming) principles.
8. In JS functions are considered an object and they can have its own method and properties.

## Conclusion

The choice is up to you at the end on what to choose if you want to work with this languages, you will have to balance the pros and the cons between both of them, and make an educated choice. Usually the option you choose will come from different variables like having in mind the size and complexity of the project you are going to work on, there are more differences between this two languages but the ones I wrote are the main ones and the important ones, I hope you like the article, any queries feel free to comment and ask!
Meet webMethods 10.11
Tags: video, webmethods, apimanagement, b2bintegration
Published: 2021-11-11 11:00:50

---
title: Meet webMethods 10.11
published: true
date: 2021-11-05 08:29:06 UTC
tags: #video, #webMethods, #apiManagement, #B2BIntegration
canonical_url: https://tech.forums.softwareag.com/t/meet-webmethods-10-11/245578
---

[![webMethods 10.11](https://aws1.discourse-cdn.com/techcommunity/optimized/3X/3/2/32d2f9170267198b9a9545884237b3f837ff61cf_2_509x375.jpeg)](https://aws1.discourse-cdn.com/techcommunity/original/3X/3/2/32d2f9170267198b9a9545884237b3f837ff61cf.jpeg "webMethods 10.11")

## Overview

Software AG’s webMethods products empower you to build solutions on the top-rated hybrid integration platform and integrate cloud-based apps and on-premises systems without coding, simplify with one toolset for on-premises and cloud integrations and use microservices-style architecture to deliver and scale new integrations faster.

> Learn more: [What’s New in webMethods 10.11 Release](https://tech.forums.softwareag.com/t/what-s-new-in-webmethods-10-11-release/245056)

## Playlist

youtube: {% youtube XDBDczyF8Vc %}

Contents [(click for more details)](https://tech.forums.softwareag.com/t/meet-webmethods-10-11/245578/1)

[Read full topic](https://tech.forums.softwareag.com/t/meet-webmethods-10-11/245578)
ลบ volume ใน docker-compose
Tags: docker
Published: 2021-11-05 08:22:17

รันคำสั่งนี้ ใน Terminal
1. `$ docker-compose down` ปิดการทำงาน
2. `$ docker-compose rm` ลบ Contraner
3. `$ docker volume ls` เรียกดี รายการที่สร้าง volume ไว้
    ```sh
    DRIVER    VOLUME NAME
    local     e8345a61f94e265e66fe6b...
    local     project_db_data
    ```
4. `$ docker volume rm project_db_data` ลบ volume ที่ต้องการ
5 Reasons to Use PHP 8
Tags: php, laravel, programming, beginners
Published: 2021-11-05 08:17:52

Let's start quickly
Match :-
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vaogq5mw00jp5ae3e9h3.jpg)

Null safe operator :- 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x10y15j9ysd7ea3agwqb.jpg)

`- $address = $customer->getAddress();`
`- $country = $address ? $address->getCountry() : null;`
`+ $country = $customer->getAddress()?->getCountry();` 

Named parameters :-
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/34p3ai5xpx2a393bni03.jpg)

Constructor property promotion :- 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bjvj02qhvw79qsdgfd8f.jpg)

Union types :-  
Given the dynamically typed nature of PHP, there are lots of cases where union types can be useful. Union types are a collection of two or more types which indicate that either one of those can be used.

`public function foo(Foo|Bar $input): int|float;`

Source :- https://www.youtube.com/watch?v=F-AWT88vsyM

I hope everyone enjoys.