Friday, 21 February 2025

AWS S3 Batch Operations Explained: Move, Copy, and Delete Files Efficiently

🚀 Love Learning AWS & Java?

Join our community for more easy-to-follow tutorials!

SUBSCRIBE TO RAM N JAVA

Mastering AWS S3 Batch Operations

Managing a few files in AWS S3 is easy, but what happens when you have millions or even billions? That is where AWS S3 Batch Operations comes in. Instead of clicking through files one by one, you can run a single job to automate changes across your entire bucket.

Why Use S3 Batch Operations?

  • Saves Time: Process millions of objects simultaneously.
  • Automation: Perform the same action (like copying or deleting) on many files at once.
  • Scalability: Built to handle massive datasets with ease.
  • Integration: Works seamlessly with Lambda, Glacier, and Object Tags.

What Can You Do?

With Batch Operations, you can perform several critical tasks in bulk:

  • Copy: Move or duplicate objects across different buckets.
  • Delete: Quickly remove large numbers of files.
  • Restore: Bring back files stored in S3 Glacier.
  • Permissions: Modify Access Control Lists (ACLs) for thousands of files.
  • Lambda: Run custom code, like resizing 10,000 images at once!

Step-by-Step: How It Works

  1. Create a CSV File: List your S3 objects (Bucket Name, Object Key, and optional Version ID).
  2. Upload the CSV: Put your list into an S3 bucket so AWS can read it.
  3. Create a Batch Job: Go to the S3 console, select "Batch Operations," and pick your action (e.g., Copy or Restore).
  4. Run and Monitor: Start the job and watch the progress reports directly in the console.

Key Reminders

Remember that batch jobs run in the background (asynchronously). You will need the correct IAM permissions to execute these jobs, and keep in mind that costs are based on the number of objects processed.

For more detailed Java source code and the full presentation used in the video, check the links in the YouTube video description!

Samsung Galaxy M15 Full Review – Best Budget Smartphone? | Samsung Galaxy M15 Review – Pros & Cons

Samsung Galaxy M05 Quick Review – Best Budget Phone? | Samsung Galaxy M05 Review – Pros & Cons

Samsung Galaxy S25 5G – Full Specs & Features | Samsung Galaxy S25 5G – Pros & Cons

Saturday, 15 February 2025

AWS S3 Requester Pays: Who Pays for Data Access? | How AWS S3 Requester Pays Can Save Storage Costs

🔔 Never Miss a Tutorial!

Support Ram N Java and stay updated with the latest in AWS and Java.

SUBSCRIBE NOW

Understanding AWS S3 Requester Pays

If you share large amounts of data in the cloud, you might worry about high data transfer costs. **AWS S3 Requester Pays** is the perfect solution. It shifts the cost of downloading data from you (the owner) to the person accessing it.

Why Use Requester Pays?

Normally, the bucket owner pays for storage and all data transfers. By enabling this feature:

  • Stop Paying for Others: You don't get billed when people download your files.
  • Share Big Data Safely: Perfect for sharing research or large datasets without going broke.
  • Reduce Spam: Only serious users who are willing to pay for the transfer will download your files.

How to Enable It (Step-by-Step)

  1. Open your AWS S3 Console.
  2. Select your specific Bucket.
  3. Go to the Properties tab.
  4. Scroll down to Requester Pays and click Edit.
  5. Select Enable and click Save Changes.

Important Rules to Remember

To make this work, there are a few simple requirements:

  • AWS Account Needed: The person downloading the files must have their own AWS account.
  • Explicit Agreement: When downloading via CLI, the user must use the --request-payer requester flag to show they agree to the charges.
  • Storage Fees: Even if this is on, the bucket owner still pays for storing the files; only the transfer/request fees are shifted.

Check the video description for the full PowerPoint presentation and Java source code examples!

AWS S3 Access Logs – How to Monitor Bucket Requests | AWS S3 Access Logs Explained for Beginners

🚀 Mastering AWS Together!

Stay ahead with the latest Java and Cloud tutorials. Join our growing community!

SUBSCRIBE TO RAM N JAVA

What are AWS S3 Access Logs?

Ever wondered exactly who is accessing your files in the cloud? AWS S3 Access Logs are your digital footprint tracker. They record every single request made to your S3 bucket, providing a detailed history of what happened, when it happened, and who did it.

Why You Need Access Logs

  • Security Auditing: Instantly spot unauthorized attempts to access your data.
  • Troubleshooting: If a file goes missing or an access is denied, the logs tell you exactly why.
  • Compliance: Meet strict company or industry rules for data tracking.
  • Usage Analysis: Understand which files are popular and track your data usage patterns.

What Information Is Recorded?

Each log entry is packed with useful data, including:

Requester The AWS account or IAM user making the call.
Operation Action performed (e.g., GET, PUT, DELETE).
Timestamp Exactly when the request was made.
Response Code Status (e.g., 200 for success, 403 for denied).

Quick Setup Guide

  1. Select Bucket: Open the S3 console and pick the bucket you want to monitor.
  2. Enable Logging: Go to the Properties tab and find "Server access logging."
  3. Set Destination: Choose a different S3 bucket where your logs will be stored (to avoid log loops!).
  4. Review: Changes take effect quickly, though logs may take a short time to appear in your destination bucket.

Pro Tip: Use AWS Athena to query your logs with SQL for faster analysis!

Check the video description for the PowerPoint presentation and Java source code.

AWS S3 Pre-Signed URLs Explained Simply | How to Use AWS S3 Pre-Signed URLs for Secure Access

🚀 Level Up Your Cloud Skills!

Subscribe to Ram N Java for the best tutorials on AWS, Java, and beyond.

SUBSCRIBE NOW

What are AWS S3 Pre-Signed URLs?

Imagine you have a private file in an S3 bucket that you want to share with someone securely. Normally, you’d have to make the file public, which is risky. AWS S3 Pre-Signed URLs allow you to grant temporary access to specific files without changing your bucket’s privacy settings.

Why Use Pre-Signed URLs?

They are the gold standard for secure, temporary file sharing because:

  • Security: Only people with the unique link can access the file.
  • Time Control: You decide exactly how long the link stays active (minutes or hours).
  • Privacy: Your bucket remains 100% private.
  • Upload/Download: You can create links for both getting files and putting new files into your bucket.

How to Create One in the AWS Console

  1. Go to your S3 Bucket and select the file (object).
  2. Click on the Object Actions dropdown menu.
  3. Select Share with a pre-signed URL.
  4. Set the Time Interval (e.g., 2 minutes or 1 hour).
  5. Click Create pre-signed URL and copy your link!

Using the AWS CLI

For those who prefer the command line, you can generate a URL in seconds:

aws s3 presign s3://your-bucket-name/file-name --expires-in 3600

*This creates a URL valid for 1 hour (3600 seconds).

Want the Code?

Check the YouTube video description for the PowerPoint presentation and Java source code used in this tutorial!

Saturday, 8 February 2025

AWS SNS: How to Send Notifications in AWS | AWS SNS Basics: How to Publish & Subscribe to Messages

🚀 Master AWS & Java Today!

Join the Ram N Java community for more easy-to-follow cloud tutorials.

SUBSCRIBE NOW

What is AWS Simple Notification Service (SNS)?

If you've ever received an automated text or email from a service, you've likely interacted with something like AWS SNS. It is a fully managed messaging service that allows you to send notifications to a large number of subscribers simultaneously.

Key Concepts of SNS

To understand how SNS works, you need to know four simple terms:

  • Topic: Think of this as a "broadcasting station" or a group. It's the channel where you send your messages.
  • Publisher: The application or service that sends (publishes) the message to the topic.
  • Subscriber: The people or systems that "listen" to the topic and receive the message.
  • Message: The actual content—like a text alert, an email, or a piece of data (JSON).

Who Can Receive SNS Messages?

SNS is incredibly flexible. You can send messages to:

  • Humans: Via SMS (Text), Email, or Mobile Push Notifications.
  • Systems: Via AWS Lambda, SQS queues, or HTTP endpoints.

Step-by-Step: How It Works

  1. Create a Topic: Give your notification group a name (e.g., "OrderUpdates").
  2. Add Subscribers: Add the email addresses or phone numbers of the people who should get the alerts.
  3. Publish a Message: When an event happens, send a message to the topic.
  4. Fan Out: SNS automatically "fans out" that one message to every single subscriber in the list!

Why Use AWS SNS?

It is designed for Scalability (can handle millions of users), Reliability (highly available), and is Cost-Effective because you only pay for what you use.

Free Resources:

Don't forget to check the YouTube video description for the PowerPoint presentation and Java source code links!

AWS S3 + Amazon EventBridge: Event Notifications Explained! | AWS S3 EventBridge Integration

🚀 Level Up Your AWS Skills!

Join the Ram N Java community for more easy-to-follow cloud and Java tutorials.

SUBSCRIBE NOW

What are S3 Event Notifications?

Think of S3 Event Notifications as "alarms" that go off whenever something happens to your files in an S3 bucket. Whether a file is uploaded, deleted, or copied, S3 can instantly notify other systems so they can take action.

Introducing Amazon EventBridge

If S3 notifications are the alarms, Amazon EventBridge is the "postman." It is a serverless event bus that connects different parts of your AWS applications. It takes events from S3 and delivers them to targets like:

  • AWS Lambda: To run custom code.
  • Amazon SNS: To send emails or SMS alerts.
  • AWS Step Functions: To start complex workflows.

How the Flow Works

  1. The Action: A file is uploaded or deleted in your S3 bucket.
  2. The Notification: S3 creates an event describing that action.
  3. The Bridge: The event is sent to Amazon EventBridge.
  4. The Target: EventBridge triggers another service (like sending an email) based on rules you've set.

How to Enable Integration

Enabling this connection is simple and done directly in the AWS Console:

  • Go to your S3 Bucket.
  • Click on the Properties tab.
  • Find the Amazon EventBridge section.
  • Click Edit, turn it On, and save your changes.

Free Resources:

Check the YouTube video description for links to download the Java source code and PowerPoint presentation used in this tutorial!

AWS S3 Event Notification: Triggering Lambda, SQS, and SNS | AWS S3 Event Notification Explained! 🚀

🚀 Master AWS & Java Today!

Join the Ram N Java community for more easy-to-follow cloud tutorials.

SUBSCRIBE NOW

What are AWS S3 Event Notifications?

AWS S3 Event Notifications are like setting an alarm for your storage bucket. They allow you to get notified automatically whenever something happens in your S3 bucket—like uploading a new file or deleting an old one—so you can trigger actions in other AWS services immediately.

How Do They Work?

The process is simple and powerful:

  • Detection: The S3 bucket detects an action (like a file upload).
  • Trigger: It creates a notification message about that event.
  • Delivery: The event is sent to your chosen destination (Lambda, SQS, or SNS).
  • Action: The receiving service processes the event, such as a Lambda function resizing an image or an SNS topic sending an alert.

Why Use Event Notifications?

  • Automation: Process files as soon as they are uploaded (e.g., resizing images).
  • Tracking: Keep a real-time record of every change made to your bucket.
  • Integration: Connect your storage directly to your application logic without manual checks.

Step-by-Step Setup Guide

  1. Create Destination: Set up your target service first (e.g., an SQS Queue).
  2. Configure Permissions: Update the target service's policy to allow S3 to send messages to it.
  3. Enable S3 Event: In the S3 Console, go to Properties > Event Notifications and click Create event notification.
  4. Select Events: Choose which actions to monitor (like "All object create events").
  5. Save and Test: Upload a file to your bucket and watch the notification arrive at your destination!

Free Resources:

Check the YouTube video description for links to the Java source code and PowerPoint presentation used in this guide!

WhatsApp Architecture & Technology Explained! 📲 | How WhatsApp Works: Architecture & Tech Breakdown

🚀 Ready to Master System Design?

Join Ram N Java for more deep dives into the tech that powers your favorite apps!

SUBSCRIBE TO RAM N JAVA

Why WhatsApp Never Crashes: The Architecture Breakdown

WhatsApp manages billions of messages every single day with incredible speed and reliability. But how does it handle that much traffic without breaking? In this guide, we explore the simple but powerful Client-Server Architecture and the specific technologies that make WhatsApp a world leader in messaging.

1. The Core: Client-Server Model

At its heart, WhatsApp operates on a straightforward model:

  • The Client: This is your smartphone. It’s responsible for sending your messages and displaying the ones you receive.
  • The Server: This is the "brain." It receives messages from one user and instantly routes them to the correct recipient.

2. The Secret Sauce: Programming Languages

The choice of technology is what gives WhatsApp its legendary stability:

  • Erlang: The backbone of the system. Erlang is famous for handling millions of simultaneous connections efficiently, making it perfect for real-time chat.
  • XMPP: A specialized communication protocol designed specifically for instant messaging and "presence" (seeing if someone is online).

3. Smart Data Storage

WhatsApp stores data differently depending on where it is:

  • Local Storage (Your Phone): Uses SQLite, a lightweight database that keeps your chats available even when you are offline.
  • Server Storage: Uses Mnesia, a high-speed database that stores user data like contacts and works perfectly alongside Erlang.

4. Privacy & Multimedia

Security is baked into every message:

  • End-to-End Encryption: Powered by the Signal Protocol, ensuring only the sender and receiver can read messages.
  • Calls: Uses WebRTC for smooth video/voice and the Opus Codec for crystal-clear audio.

Check out the video above for the full architectural walkthrough!

Friday, 7 February 2025

How WhatsApp Works: Sequence Diagram Deep Dive | WhatsApp System Design: Sequence Diagram

🚀 Love Learning System Design?

Join our community of Ram N Java learners! Get deep dives into Java, Sequence Diagrams, and System Architecture.

SUBSCRIBE TO OUR CHANNEL

How WhatsApp Works: Sequence Diagram Explained

Ever wondered what happens behind the scenes when you hit "send" on WhatsApp? In this guide, we break down the journey of a message using a Sequence Diagram. This is perfect for beginners who want to understand system design without the complex jargon!

The Key Players (Participants)

In our sequence diagram, we have four main entities that make the magic happen:

  • Sender: Your phone where you type the message.
  • WhatsApp App (Sender Side): The application installed on your device.
  • WhatsApp Server: The central "brain" that manages message delivery.
  • WhatsApp App (Recipient Side): Your friend's phone receiving the message.

Step-by-Step Message Journey

1. Encryption & Sending

As soon as you press send, the WhatsApp App on your phone encrypts the message. This ensures that only you and your friend can read it—not even WhatsApp can see your private chats! The encrypted message is then sent to the WhatsApp Server.

2. The Server's Decision

The server acts as a middleman. It checks if your friend (the recipient) is online:

  • If Online: The server immediately pushes the message to their phone.
  • If Offline: The server stores the message safely in a queue and waits for them to reconnect.

3. Delivery & Decryption

Once your friend's phone connects to the internet, it pulls the message from the server. The app then decrypts it and displays it clearly in the chat window.

What Do the Ticks Mean?

WhatsApp uses a simple visual system to keep you informed:

  • ✔️ Single Gray Tick: Message successfully sent to the WhatsApp Server.
  • ✔️✔️ Double Gray Ticks: Message delivered to the recipient's phone.
  • ✔️✔️ Double Blue Ticks: The recipient has opened and read your message.

Summary

By using sequence diagrams, we can see how WhatsApp efficiently manages billions of messages daily. The core pillars are Encryption for privacy and a smart Server for reliable delivery.

Check out the full video at the top of this post for a visual walkthrough of the diagram!

Thursday, 6 February 2025

WhatsApp Architecture: Block Diagram Overview | WhatsApp System Design: Block Diagram Breakdown 🛠️

🚀 Master System Design with Ram N Java!

Join our community for clear, visual tutorials on Java and Architecture.

SUBSCRIBE TO OUR CHANNEL

How WhatsApp Works: A Block Diagram Breakdown

WhatsApp handles a staggering 100 billion messages daily. Have you ever wondered how it ensures every single "Hello" reaches its destination securely and instantly? In this guide, we use a simple Block Diagram to explain the magic happening behind the scenes.

The 5 Key Components

To understand the system, we look at five essential parts of the WhatsApp infrastructure:

  • User Device: Your smartphone where you type and send messages.
  • WhatsApp App: The local software that handles Encryption.
  • WhatsApp Server: The central brain responsible for Routing and Queueing.
  • Recipient Device: Your friend's phone that receives the final message.
  • Delivery Status System: The real-time tracker for those famous checkmarks.

How Your Message Travels

1. Encryption at the Source

When you hit send, the WhatsApp App immediately converts your text into a secret code (Encryption). This ensures that only the person you are messaging can read it—not even WhatsApp can peek!

2. The Server's Dual Role

The encrypted message reaches the WhatsApp Server, which makes a quick decision:

  • Is the recipient online? The server routes the message instantly.
  • Are they offline? The server queues the message, holding it safely until they reconnect.

3. Delivery & Decryption

Once delivered, the Recipient Device uses a private key to turn that secret code back into readable text (Decryption) right in the chat window.

Decoding the Ticks

✔️ Single Tick: Message has reached the WhatsApp Server.

✔️✔️ Double Gray Ticks: Message delivered to the recipient's phone.

✔️✔️ Blue Ticks: The recipient has read your message.

Why This Architecture Wins

WhatsApp's design is brilliant because it prioritizes Privacy (End-to-End Encryption) and Reliability (Message Queueing). This ensures fast communication with minimal delays, even on slow connections.

For a full visual walkthrough and to see the diagram in action, watch the video at the top of this post!

WhatsApp System Design: Explained for Beginners! 📲 | How WhatsApp Handles 100B+ Messages Daily! 🤯

🚀 Level Up Your System Design Skills!

Join the Ram N Java community for deep dives into high-scale architecture.

SUBSCRIBE TO RAM N JAVA

Inside WhatsApp: System Design for 2 Billion Users

WhatsApp isn't just a simple chat app; it's a massive distributed system that handles billions of messages in real-time. In this guide, we break down the core components that keep the world connected without a hitch.

1. Client-Server Architecture

WhatsApp uses a Client-Server model. Your phone acts as the Client, which communicates directly with WhatsApp Servers. This ensures that your messages are synchronized across all platforms, including WhatsApp Web.

2. End-to-End Encryption

Privacy is the backbone of WhatsApp. Using End-to-End Encryption, only the sender and the recipient can read the contents of a message. Even the WhatsApp servers cannot see your private chats!

3. Handling Offline Messages (Message Queue)

What happens when your friend's phone is off? WhatsApp uses a Message Queue:

  • Messages are stored temporarily on the server while the recipient is offline.
  • Once they come online, the message is delivered and immediately deleted from the server to save space and maintain privacy.

4. Real-Time Communication (XMPP)

To ensure messages land instantly, WhatsApp utilizes XMPP (Extensible Messaging and Presence Protocol). This protocol maintains a constant connection between the user and the server for lightning-fast delivery.

5. The Tech Stack Behind the Magic

  • 🛠️ Erlang: Used for high scalability and fault tolerance.
  • 📡 WebRTC: Powers the crystal-clear voice and video calls.
  • 📦 Cassandra: A NoSQL database used to store massive amounts of user data.
  • 🔔 Firebase & APNs: Handle the push notifications on Android and iOS.

The "Tick" System Explained

The sequence diagram shows how delivery statuses are updated:

  • ✔️ Single Tick: Message sent to the server.
  • ✔️✔️ Double Gray Ticks: Message delivered to the recipient.
  • ✔️✔️ Blue Ticks: Message read by the recipient.

Want the full breakdown? Watch the video above for a visual walkthrough of the architecture!

Tuesday, 4 February 2025

Netflix Architecture for Beginners – Easy Explanation! | Netflix Cloud Architecture – Full Breakdown

🚀 Level Up Your Tech Skills!

Join the Ram N Java community for the simplest tech breakdowns on the web!

SUBSCRIBE TO RAM N JAVA

How Netflix Streams to Millions: Architecture Explained

Ever wondered how Netflix manages to play high-quality video instantly on your TV, phone, or laptop without constant buffering? It's all thanks to a world-class system called Microservices Architecture. Let's break down the "brain" behind the binge-watch!

1. The Brain: Netflix on AWS

Netflix doesn't use its own physical data centers for everything. Instead, its "brain" runs on Amazon Web Services (AWS). This handles the complex stuff:

  • Personalization: Deciding which movies to suggest based on what you like.
  • User Management: Handling your profile, subscription, and payments.
  • Metadata: Storing titles, descriptions, and actor details.

2. The Speed Secret: Open Connect (CDN)

To prevent lag, Netflix uses its own Content Delivery Network (CDN) called Open Connect.

Instead of sending a movie from California to India every time someone clicks play, Netflix places "Open Connect" servers all over the world. When you press play, the video comes from a server physically close to you, making it super fast!

3. Why "Microservices"?

Netflix is built with thousands of tiny, independent parts called Microservices. Think of it like a LEGO set:

  • Scalability: If a new season of Stranger Things drops, they can just boost the "Video Streaming" service without touching the "Search" service.
  • Fault Tolerance: If the "Ratings" service breaks, the "Play" button still works. You can still watch your show even if one small part is down!

The 3-Step Streaming Process

  1. The Request: Your device asks the Netflix backend (AWS) for a movie.
  2. The Check: The backend checks your subscription and your internet speed.
  3. The Delivery: The backend tells your device to pull the video from the nearest Open Connect server.

Ready to dive deeper? Watch the video above for a full visual walkthrough of this amazing system!

Netflix Backend Architecture: Block Diagram Overview | Netflix System Design: Block Diagram Overview

🚀 Want to Master System Design?

Join the Ram N Java family for the best tech tutorials and free resources!

SUBSCRIBE NOW (IT'S FREE!)

Netflix Backend Architecture: The Magic Behind the Screen

Have you ever wondered what happens when you click "Play" on Netflix? It’s not just a simple video file playing. There is a massive, intelligent system working behind the scenes to make sure your movie starts instantly without buffering. Let's break down the Netflix Block Diagram in simple terms!

1. Your Device (The User Interface)

Whether it's your phone, laptop, or smart TV, your device is the starting point. When you open the app, it sends a request to the Netflix backend to load your profile, watch history, and those personalized "Top Picks."

2. Backend Servers (The Brain)

Netflix uses powerful servers to manage the heavy lifting. This part of the architecture handles:

  • User Authentication: Logging you in securely.
  • Billing: Managing your subscription.
  • Content Management: Organizing thousands of movies and shows.

3. Recommendation Engine

This is an AI system that studies your habits. It knows you liked that Sci-Fi thriller, so it suggests another one. The backend talks to this engine to build your unique home screen.

4. Open Connect (Content Delivery Network)

Netflix doesn't store all its movies in one place. They use Open Connect, their custom CDN. They place servers in different cities across the world. When you watch a show, it's actually streaming from a server physically close to your house! This is why it's so fast.

5. Adaptive Streaming & Monitoring

Netflix is smart. If your Wi-Fi gets weak, it doesn't stop the video; it just slightly lowers the quality so you can keep watching. This is called Adaptive Streaming. The system constantly monitors your connection and switches between 4K, HD, and SD in real-time based on your speed.

Want the full diagram? Check out the video above for a detailed walkthrough and download the PowerPoint from the video description!

Samsung Galaxy A35 5G Full Review – Pros & Cons! | Samsung Galaxy A35 5G – The Budget King?

Monday, 3 February 2025

Netflix System Design: Sequence Diagram Breakdown | Netflix System Architecture: Sequence Diagram

🚀 Master Tech with Ram N Java!

Don't miss out on high-quality system design tutorials and free resources!

SUBSCRIBE TO OUR YOUTUBE CHANNEL

The Netflix Sequence Diagram: Step-by-Step Flow

A Sequence Diagram is like a step-by-step timeline. It shows how different parts of a system talk to each other over time. In this guide, we’ll look at the exact "conversation" that happens between you and Netflix when you want to watch a movie.

Meet the Key Players

  • The User: That's you!
  • Netflix App/Web: The screen you interact with.
  • Backend Servers: The central "brain" handling your data.
  • Recommendation Engine: The AI that suggests what to watch.
  • Open Connect (CDN): Local servers that hold the actual video files.

The 7 Steps of Streaming

Step 1: Logging In

When you open the app, it sends your email and password to the Backend Server to make sure it's really you.

Step 2: Profile Selection

Once verified, the backend sends back your profiles. You pick yours, and the system loads your specific watch history.

Step 3: Getting Recommendations

The backend asks the Recommendation Engine for suggestions. This AI-powered list is then displayed on your home screen.

Step 4: The Play Request

You click "Play" on a movie. The app tells the backend, "Hey, the user wants to watch this specific video file!"

Step 5: Finding the Closest Server

The backend finds the Open Connect (CDN) server closest to your physical location to ensure the fastest possible start.

Step 6: Delivery & Adaptive Streaming

The CDN server starts sending the video. Netflix uses Adaptive Streaming to change the quality (4K to SD) based on how fast your internet is at that exact second.

Step 7: Constant Monitoring

While you watch, the backend keeps checking your connection to prevent that annoying "buffering" circle from appearing!

💡 Pro Tip: Check the video description above to download the full PowerPoint presentation and Java source code for this diagram!

Tutorials