Featured

TechBytes on Linux

This is a growing list of Linux commands which might come handy for the of Linux users. 1. Found out i had to set the date like this: ...

Thursday, March 30, 2023

Regular Expressions



Regular Expressions
List of meta characters:

. ---> Any one character
? ---> Zero or one
+ ---> One or more
* ---> zero or more
^ ---> at the beginning of the string
$ ---> at the end of the string
[abc] ---> any one of a b c
{m} ---> 'm' times
{m,n} ---> at least m times, at most n times
| ---> or
\ ---> escape sequence character
\s ---> a space
\d ---> a digit
\w ---> a word
\b ---> a word boundary

examples:
\d ---> a single digit number (0 to 9)
\d\d ---> a two digit number (0 to 99)
\d\d\d ---> a three digit number (000 to 999)

NOTE: ?, +, *, {} are used as Quantifiers (to represent quantity)

\d{3} ---> same as above
\d{3,5} ---> either 3 digit or 5 digit number

hell?o ---> helo | hello
hell+o ---> hello | helllo | helllllo | ...
hrll*o ---> helo | hello | helllo | helllllo | ...
he(ll)+o ---> hello | hellllo | hellllllo | ...

S = "hi hello how are hello"

hello ---> Yes
^hello ---> No
hello$ ---> Yes
\d+ ---> a number
[0123456789]+ ---> a number
[0-9]+ ---> a number
\d{3} ---> a 4 digit ODD number

\d+\s\w+ ---> a number then a space then a word
\d+\s[a-z]+ ---> a number then a space then lowercase word
\d+\s[A-K764]{5,10} ---> a number then a space then min 5 max 10 char uppercase word between A - K 764
\d{3}:\d{2}:\d{4} --->
(ABC)?\d{3}:\d{4}[XYZ]? --->

Sunday, March 26, 2023

Go error: go : go.mod file not found in current directory or any parent directory; (working on GOPATH/src)

As of Go 1.16, the GO111MODULE environment variable is treated as "on" by default, meaning Go expects to find a go.mod file, and no longer falls back to pre-module GOPATH behavior.

If you want to go back to the pre-1.16 behavior, you now have to explicitly specify GO111MODULE=auto, but you're far better off creating a go.mod file.

See https://golang.org/doc/go1.16#go-command and https://golang.org/ref/mod


Source - https://stackoverflow.com/questions/67929883/go-error-go-go-mod-file-not-found-in-current-directory-or-any-parent-director 

Friday, March 10, 2023

𝐈𝐧𝐭𝐞𝐫𝐯𝐢𝐞𝐰 𝐐𝐮𝐞𝐬𝐭𝐢𝐨𝐧𝐬 | Amazon 2022

 Amidst the massive layoffs in Tech industry in these tough times, there are many of us preparing right now for interviews.

LeetCode is a good source to look at the current level of questions.


Below is the list of questions currently being asked by Amazon in the last 3 to 4 months.


-- 𝐆𝐫𝐚𝐩𝐡𝐬

1) Process Ordering - https://lnkd.in/dN4ErKyE


2) Number of Islands - https://lnkd.in/dHQJGhPJ


3) k Jumps on Grid - https://lnkd.in/dKM_ETsM)


-- 𝐓𝐫𝐢𝐞

1) Finding Prefix in Dictionary - https://lnkd.in/dpRvFDq5


-- 𝐓𝐫𝐞𝐞

1) Binary Tree Top Down View - https://lnkd.in/dmun-Pn3


2) Traversing binary tree in an outward manner.


3) Diameter of a binary tree [Path is needed] - https://lnkd.in/dH-w_DQV


-- 𝐒𝐥𝐢𝐝𝐢𝐧𝐠 𝐰𝐢𝐧𝐝𝐨𝐰

1) Contains Duplicates III - https://lnkd.in/djcWHTaX


2) Minimum Window Substring [Variation of this question] - https://lnkd.in/dPfnQZmr


-- 𝐋𝐢𝐧𝐤𝐞𝐝 𝐋𝐢𝐬𝐭

1) Reverse a Linked List II - https://lnkd.in/diHAJZUJ


2) Remove Loop From Linked List - https://lnkd.in/d-zVawwX


3) Reverse a Linked List in k-groups - https://lnkd.in/de99T3hQ


-- 𝐁𝐢𝐧𝐚𝐫𝐲 𝐒𝐞𝐚𝐫𝐜𝐡

1) Search In rotate sorted Array - https://lnkd.in/djxEpFxF


-- 𝐀𝐫𝐫𝐚𝐲𝐬

1) Max bandWidth [Priority Queue, Sorting] - https://lnkd.in/d6JE2xpz


2) Next permutation - https://lnkd.in/dk9cHQbw


3) Largest Rectangle in Histogram - https://lnkd.in/dQHQcF-5


Credits - Sandeep Kumar


Follow Aman Barnwal for more. ❤️️


Join my Telegram group for 𝐈𝐧𝐭𝐞𝐫𝐯𝐢𝐞𝐰 𝐏𝐫𝐞𝐩𝐚𝐫𝐚𝐭𝐢𝐨𝐧 𝐑𝐞𝐬𝐨𝐮𝐫𝐜𝐞𝐬 👉https://lnkd.in/gDBqRNBw


Sunday, March 5, 2023

𝐒𝐲𝐬𝐭𝐞𝐦 𝐃𝐞𝐬𝐢𝐠𝐧 𝐆𝐨𝐥𝐝𝐦𝐢𝐧𝐞 ❤️️

 System Design rounds are an important part of the Software Engineering interview process because they test a candidate's ability to design and implement large-scale systems.


Here is the list of some amazing resource on System Design -


✅ Things you must know in System Design


👉System design basics: https://bit.ly/3SuUR0Y


👉Horizontal and vertical scaling: https://bit.ly/3slq5xh


👉 Load balancing and Message queues: https://bit.ly/3sp0FP4


👉High-level design and low-level design, Consistent Hashing, Monolithic and Microservices architecture: https://bit.ly/3DnEfEm

👉 Caching, Indexing, Proxies: https://bit.ly/3SvyVDc


👉 Networking, How Browsers work, Content Network Delivery ( CDN): https://bit.ly/3TOHQRb


👉 Database Sharding, CAP Theorem, Database schema Design: https://bit.ly/3CZtfLN


👉 Concurrency, API, Components + OOP + Abstraction : https://bit.ly/3sqQrhj


👉 Estimation and Planning, Performance: https://bit.ly/3z9dSPN


👉 Map Reduce, Patterns, and Microservices: https://bit.ly/3zcsfmv


👉 SQL vs NoSQL and Cloud: https://bit.ly/3z8Aa49


👉 Most Popular System Design Questions: https://bit.ly/3Dp40Ux


✅ System Design Case Studies 


👉 Design Netflix: https://bit.ly/3GrAUG1


👉 Design Reddit: https://bit.ly/3OgGJrL


👉 Design Messenger App : https://bit.ly/3DoAAXi


👉 Design Instagram: https://bit.ly/3BFeHlh


👉 Design Dropbox: https://bit.ly/3SnhncU


👉 Design Youtube: https://bit.ly/3dFyvvy


👉 Design Tinder: https://bit.ly/3Mcyj3X


👉 Design Yelp: https://bit.ly/3E7IgO5


👉 Design Whatsapp: https://bit.ly/3M2GOhP


👉 Design URL shortener : https://bit.ly/3xP078x


👉 Design Amazon Prime Video: https://bit.ly/3hVpWP4


👉 Design Twitter: https://bit.ly/3qIG9Ih


👉 Design Uber: https://bit.ly/3fyvnlT


👉 Design TikTok : https://bit.ly/3UUlKxP


👉 Design Facebook's Newsfeed: https://bit.ly/3RldaW7


👉 Design Web Crawler: https://bit.ly/3DPZTBB


👉 Design API Rate Limiter: https://bit.ly/3BIVuh7


✅ All solved case studies: https://bit.ly/3dCG1rc


👉 System Design Important terms - https://bit.ly/3Om9d3H


👉 Most Popular System Design Questions: https://bit.ly/3E9oH7K


👉 Complete System Design Basics Series: https://bit.ly/3rG1cfr


Save this post for later.


Follow Aman Barnwal for more. ❤️️


Join my Telegram group for 𝐈𝐧𝐭𝐞𝐫𝐯𝐢𝐞𝐰 𝐏𝐫𝐞𝐩𝐚𝐫𝐚𝐭𝐢𝐨𝐧 𝐑𝐞𝐬𝐨𝐮𝐫𝐜𝐞𝐬 👉https://lnkd.in/gDBqRNBw 

 

Tuesday, February 28, 2023

API architectural styles



The following image displays the most common architectural styles for APIs.

🔹 1. REST REST, which was proposed in 2000, is the most widely used style for APIs. It is often utilized between front-end clients and back-end services, and it adheres to six architectural constraints. The payload format may be JSON, XML, HTML, or plain text.

🔹 2. GraphQL Meta proposed GraphQL in 2015. It provides a schema and type system that is ideal for complicated systems where entities' relationships are graph-like. In the diagram below, GraphQL can retrieve user and order information in one call, while REST necessitates multiple calls.

GraphQL does not replace REST but can be built upon existing REST services.

🔹 3. Web socket Web socket is a protocol that enables full-duplex communications over TCP. Clients create web sockets to receive real-time updates from back-end services. Unlike REST, which always "pulls" data, web socket allows data to be "pushed".

🔹 4. Webhook Webhooks are frequently used for third-party asynchronous API calls. In the diagram below, Stripe or Paypal is used for payment channels, and a webhook for payment results is registered. When a third-party payment service is completed, it notifies the payment service if the payment was successful or failed. Webhook calls are usually part of the system's state machine.

🔹 5. gRPC gRPC, which was released in 2016, is used for communications among microservices. The gRPC library handles encoding/decoding and data transmission.

🔹 6. SOAP SOAP stands for Simple Object Access Protocol, and its payload is only XML, making it suitable for internal system communications.



Friday, February 17, 2023

Difference between Hub Switch Router & Firewall

 Hub

Hubs are used to connect multiple devices in a network. They’re less likely to be seen in business or corporate networks than in home networks. Hubs are wired devices and are not as smart as switches or routers.

Switches
Switches are wired devices that know the addresses of the devices connected to them and route traffic to that port/device rather than retransmitting to all devices.
Offering greater efficiency for traffic delivery and improving the overall throughput of data, switches are smarter than hubs but not as smart as routers

Router
Routers are used to control traffic flow on networks and are often used to connect similar networks and control traffic flow between them. Routers can be wired or wireless and can connect multiple switches. Smarter than hubs and switches, routers determine the most efficient “route” for the traffic to flow across the network.

Firewalls
Firewalls are essential tools in managing and controlling network traffic and protecting the network. A firewall is a network device used to filter traffic. It is typically deployed between a private network and the internet, but it can also be deployed between departments (segmented networks) within an organization (overall network). Firewalls filter traffic based on a defined set of rules, also called filters or access control lists.

Thursday, February 16, 2023

UX ದೃಷ್ಟಿಕೋನದಿಂದ ಎಲ್ಲಾ ಪೂರ್ವಾಪೇಕ್ಷಿತ ತಪಾಸಣೆಗಳನ್ನು ಒಂದೇ ಪರದೆಯಲ್ಲಿ ತೋರಿಸುವುದು ಅಥವಾ ಅವುಗಳನ್ನು ಬಹು ಪರದೆಗಳಾಗಿ ವಿಭಜಿಸುವುದು ಉತ್ತಮವೇ?


UX ದೃಷ್ಟಿಕೋನದಿಂದ, ಪೂರ್ವಾಪೇಕ್ಷಿತ ಚೆಕ್‌ಗಳು ಹಲವಾರು ಅಥವಾ ಸಂಕೀರ್ಣವಾಗಿದ್ದರೆ ಅವುಗಳನ್ನು ಬಹು ಪರದೆಗಳಾಗಿ ವಿಭಜಿಸುವುದು ಉತ್ತಮವಾಗಿದೆ, ವಿಶೇಷವಾಗಿ ಅವುಗಳಿಗೆ ಬಳಕೆದಾರರ ಇನ್‌ಪುಟ್ ಅಥವಾ ಪರಸ್ಪರ ಕ್ರಿಯೆಯ ಅಗತ್ಯವಿದ್ದರೆ. ಒಂದೇ ಪರದೆಯ ಮೇಲೆ ಬಹು ಪೂರ್ವಾಪೇಕ್ಷಿತ ತಪಾಸಣೆಗಳನ್ನು ಪ್ರದರ್ಶಿಸಿದಾಗ, ಅದು ಬಳಕೆದಾರರಿಗೆ ಅಗಾಧವಾಗಿರಬಹುದು ಮತ್ತು ಯಾವ ಚೆಕ್‌ಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ಯಾವವುಗಳು ಬಾಕಿ ಉಳಿದಿವೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಕಷ್ಟವಾಗಬಹುದು. 
ಇದು ಗೊಂದಲ, ಹತಾಶೆ ಮತ್ತು ದೋಷಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು. ಪೂರ್ವಾಪೇಕ್ಷಿತ ಚೆಕ್‌ಗಳನ್ನು ಬಹು ಪರದೆಗಳಾಗಿ ವಿಭಜಿಸುವುದರಿಂದ ಬಳಕೆದಾರರಿಗೆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಹೆಚ್ಚು ನಿರ್ವಹಿಸಬಹುದಾಗಿದೆ. ಪ್ರತಿಯೊಂದು ಪರದೆಯು ನಿರ್ದಿಷ್ಟ ಕಾರ್ಯ ಅಥವಾ ಕಾರ್ಯಗಳ ಸೆಟ್‌ನ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಬಹುದು, ಸ್ಪಷ್ಟ ಸೂಚನೆಗಳು ಮತ್ತು ಪೂರ್ಣಗೊಂಡ ಪ್ರತಿಕ್ರಿಯೆಯೊಂದಿಗೆ. ಇದು ಬಳಕೆದಾರರಿಗೆ ಪ್ರಕ್ರಿಯೆಯ ಮೇಲೆ ಹೆಚ್ಚು ನಿಯಂತ್ರಣವನ್ನು ಹೊಂದಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ ಮತ್ತು ಪೂರ್ವಾಪೇಕ್ಷಿತ ಪರಿಶೀಲನೆಗಳ ಒಟ್ಟಾರೆ ಸಂಖ್ಯೆಯಿಂದ ಕಡಿಮೆಯಾಗಿ ಮುಳುಗುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಪೂರ್ವಾಪೇಕ್ಷಿತ ಪರಿಶೀಲನೆಗಳು ಸರಳವಾಗಿದ್ದರೆ ಮತ್ತು ತ್ವರಿತವಾಗಿ ಪೂರ್ಣಗೊಳಿಸಬಹುದಾದರೆ, ಅವುಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಸಂಘಟಿಸಿದರೆ ಮತ್ತು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸುಲಭವಾಗಿದ್ದರೆ, ಅವುಗಳನ್ನು ಒಂದೇ ಪರದೆಯಲ್ಲಿ ಪ್ರದರ್ಶಿಸುವುದು ಸೂಕ್ತವಾಗಿರುತ್ತದೆ. 

ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಒಂದೇ ಪರದೆಯು ಬಳಕೆದಾರರಿಗೆ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿರುತ್ತದೆ ಮತ್ತು ವೇಗವಾಗಿರುತ್ತದೆ ಮತ್ತು ಅವರು ಪ್ರತಿ ಪರಿಶೀಲನೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದಾಗ ಅದು ಪ್ರಗತಿಯ ಅರ್ಥವನ್ನು ನೀಡುತ್ತದೆ. ಸಾರಾಂಶದಲ್ಲಿ, ಪೂರ್ವಾಪೇಕ್ಷಿತ ಚೆಕ್‌ಗಳನ್ನು ಸ್ಕ್ರೀನ್‌ಗಳಾಗಿ ವಿಭಜಿಸುವ ಅಥವಾ ಸಂಯೋಜಿಸುವ ನಿರ್ಧಾರವು ಚೆಕ್‌ಗಳ ಸಂಖ್ಯೆ ಮತ್ತು ಸಂಕೀರ್ಣತೆ, ಅಗತ್ಯವಿರುವ ಬಳಕೆದಾರರ ಇನ್‌ಪುಟ್ ಪ್ರಮಾಣ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ ಅಥವಾ ವೆಬ್‌ಸೈಟ್‌ನ ಒಟ್ಟಾರೆ ಬಳಕೆದಾರರ ಅನುಭವದ ಗುರಿಗಳನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ. 

ಶೇರ್ ಮಾಡಿ

From UX perspective is it good to show all prerequisite checks in a single screen or split them into multiple screens?

From a UX perspective, it's generally best to split prerequisite checks into multiple screens if they are numerous or complex, especially if they require user input or interaction.

When multiple prerequisite checks are displayed on a single screen, it can be overwhelming for the user, and it may be difficult to understand which checks have been completed and which ones are outstanding. This can lead to confusion, frustration, and errors.

Splitting the prerequisite checks into multiple screens can make the process more manageable for the user. Each screen can focus on a specific task or set of tasks, with clear instructions and feedback on completion. This can help the user feel more in control of the process and less overwhelmed by the overall number of prerequisite checks.

However, if the prerequisite checks are simple and can be completed quickly, it may be appropriate to display them all on a single screen, provided they are clearly organized and easy to understand. In this case, a single screen can be more efficient and faster for the user, and it can also provide a sense of progress as they complete each check.

In summary, the decision to split or combine prerequisite checks into screens depends on the number and complexity of the checks, the amount of user input required, and the overall user experience goals of the application or website.

Thursday, February 2, 2023

Netflix strategy on preventing password sharing

Netflix has decided to end the practice of password sharing. Previously, they had encouraged sharing passwords with friends and family, but now they require users to confirm that they live in the same household or purchase their own subscription.

To confirm that someone outside the household is using the account, the primary account holder will need to verify their device using a 4-digit code. The device will have access for seven days before requiring another verification. 

Netflix considers a household as a location where the account owner and others sharing the account live. They will use IP addresses, device IDs, and account activity to confirm if the user belongs to the household. If the account holder is traveling or connected to the home WiFi, they won't need to verify their device, but they need to connect to the home WiFi once every 31 days. 

However, if someone outside the household is using the account, they will be asked to verify and failure to do so may result in being blocked. Currently, Netflix won't charge for sharing an account, but this could change in the future.

Popular Posts