ElkunCoding

Blog

vlc ai subtitles

VLC Media Player Just Redefined Offline Video Accessibility at CES 2025

At CES 2025, VLC Media Player unveiled a groundbreaking innovation that could revolutionize how we experience video content:AI-powered automatic subtitles and real-time translations — available for any video, in multiple languages, and here’s the kicker: it works entirely offline. Developed by VideoLAN, this cutting-edge feature uses on-device AI inference to generate subtitles and translations locally—no internet, no cloud servers. Just open-source AI, running privately, securely, and effortlessly on your device. Why is this a game changer? Until now, real-time subtitle and translation tools—like those found on YouTube or Instagram—have relied on cloud computing and active internet connections.VLC just flipped that script. Whether you’re watching a foreign film, attending an offline class, or viewing livestreams in another language, this feature provides seamless accessibility without compromising privacy or requiring manual downloads. Who benefits most? Though a public release date hasn’t been announced, one thing’s for sure:VLC is no longer just a media player — it’s a global translator.Open-source. Offline. On your terms. 🎬🌍

VLC Media Player Just Redefined Offline Video Accessibility at CES 2025 Read More »

My Take on Apple’s New iPhone Ad: A Mini Horror Movie Targeting Android Users

Apple’s latest ad for the iPhone, titled “Privacy on iPhone, Flock,” is a clever and eerie take on the importance of privacy. With the haunting tune “Billathi Askara” by Björn Jason Lindh playing in the background, the ad depicts Android users being spied on by cameras that morph into birds and fly away. The ad’s horror movie-like atmosphere features these mechanical camera birds swooping down on Android users, even those with phones resembling a Pixel handset, as they browse the web. The chilling scene intensifies when a camera bird crashes into an office window, emphasizing that no place is safe from these spying eyes. These sinister camera birds perch on power lines, rooftops, and other typical bird hangouts. Some even resemble bats, hanging upside down with glowing red eyes, highlighting their menacing nature. The true terror, however, lies in what they symbolize: third-party trackers that follow Android users across websites and apps, collecting data for personalized ads. Apple’s App Tracking Transparency feature empowers iPhone users to decide whether to allow trackers or block them on an app-by-app basis. If an iPhone user opts out, these trackers lose access to certain identifiers needed to track the user’s activity. As night falls in the ad, camera birds swarm the city, and the message “Your browsing is being watched” appears on the screen. Scenes of Android users being stalked by these creatures follow, including a funny moment where a frightened fisherman throws his Android phone into the ocean. The climax shows a woman in the city, surrounded by camera birds. She raises her iPhone, opens Safari, and the camera birds explode. Other iPhone users do the same, causing even more explosions. The message is crystal clear: if you want to avoid being tracked while browsing, switch to an iPhone. The ad concludes with the tagline: “Safari. A browser that’s actually private.” This ad effectively drives home Apple’s point, making it clear why privacy-conscious users might prefer an iPhone. Expect to see this ad during your favorite prime-time TV shows and sporting events soon.

My Take on Apple’s New iPhone Ad: A Mini Horror Movie Targeting Android Users Read More »

How To Use IMAP/POP3 with Laravel to Fetch Mailbox

How To Use IMAP/POP3 with Laravel to Fetch Mailbox

In this article, I will reveal a method for accessing your personal email inbox, such as those from Gmail or Yahoo, using PHP and the Laravel framework. Many enterprise systems, such as Customer Relationship Management (CRM) platforms, offer the ability to manage mailboxes and emails directly within the system, allowing system administrators to easily monitor their inbox and compose messages without having to switch to external email clients like Outlook. PHP offers support for connecting to and reading mailboxes through the use of the IMAP or POP3 protocols. I will demonstrate this technique by utilizing the Webklex/laravel-imap package, which is built on the PHP imap extension, in the Laravel framework. Installation Before getting started, it’s important to ensure that the PHP IMAP extension library is properly installed on your system. If it’s not already installed, you can use the following command to install it: After installation, be sure to add it to your PHP.ini file and restart your Apache server. You can also check if the IMAP extension was installed successfully by running the phpinfo() function. To use the Webklex/laravel-imap package in your Laravel project, you’ll need to install it via Composer by running the following command: If you’re using Laravel 5.5 or later, the package discovery will automatically configure the service provider and Client alias for you. However, if you’re using Laravel 5.4 or earlier, you’ll need to manually add the following to your config/app.php file: Once you have completed these steps, you can generate the config file by running the command: Configuration 1- Single Account If you intend to use the package for only a single account then the process is pretty simple, add those configuration items into the .env file: 1- Multi Accounts If you intend to use it for multi accounts such as every user in the system can control their mailbox it’s preferred to store the above variables into the database in a separate table connected with user_id. If you open config/imap.php their will a lot of options: Example Fetching all messages Sometimes when you run this example it takes a long time to execute and this is because this code fetch all messages in your inbox and this can be a huge number so the best way is to limit the results as demonstrated below in the pagination and limit sections. Using Facade Get specific folder by name Searching For Messages: Refer to Webklex/laravel-imap for more options on searching. Result limiting To limit the results you can use function limit(number, page): Pagination Use function paginate() to paginate: Paginate a message collection: By default the pagination displays 15 results per page but you can customize it like this: Messages Get specific message Get a specific message by uid (Please note that the uid is not unique and can change): Set message flags: Attachments Get message attachments Fetch messages without body fetching (decrease load) useful in listing pages: This example will disable body fetching to speed the retrieval process while fetching. Fetch messages without body, flag and attachment fetching (decrease load) useful in listing pages: This example will disable body and attachment fetching to speed the retrieval process while fetching. Best practices

How To Use IMAP/POP3 with Laravel to Fetch Mailbox Read More »

Deleting a Record in Laravel

Deleting a Record in Laravel

To delete a record in Laravel, you can use the delete method on a model instance. For example: This will delete the Post model with an id of 1. If you want to delete multiple records at once, you can use the destroy method on the model’s query builder. For example: This will delete the Post models with an id of 1, 2, and 3. You can also use the destroy method with a collection of model instances: This will delete all Post models that have an active column with a value of 0. Keep in mind that these methods will permanently delete the records from the database. If you want to “soft delete” a model, meaning that it is not actually deleted from the database but a deleted_at timestamp is set, you can use the softDelete method provided by Laravel’s built-in soft delete feature.

Deleting a Record in Laravel Read More »

How Make a Countdown Timer in Laravel

How Make a Countdown Timer in Laravel

You can create a countdown timer in Laravel using JavaScript or a JavaScript library such as Moment.js. Here is an example of how you could implement a countdown timer in Laravel using JavaScript: Add a script tag to your template and use the setInterval function to update the countdown timer every second. This example will create a countdown timer that displays the number of days, hours, minutes, and seconds remaining until the specified date (in this case, January 5th, 2023). When the countdown is finished, the timer will display the text “EXPIRED”. You can also use a library like Moment.js to simplify the process of creating a countdown timer. Moment.js provides a simple interface for working with dates and times in JavaScript, and it can be used to create a countdown timer with just a few lines of code. For example, you could use Moment.js to create a countdown timer like this: This example uses Moment.js to calculate the distance between the current date and time and the specified countdown date. It then calculates the number of days, hours, minutes, and seconds remaining in the countdown and displays the result in the element with id “countdown”. When the countdown is finished, the timer will display the text “EXPIRED”.

How Make a Countdown Timer in Laravel Read More »

Searching Records in Laravel

In Laravel, you can use the where method on a query builder instance to search records based on specific criteria. Here is an example of how you could use it to search for records containing a given search term in the title column of a posts table: This will return a collection of all posts with a title that contains the search term. You can also use the orWhere method to specify additional search criteria, or use other operators like =, <, >, etc. depending on your needs. You can then pass the $posts variable to your view and display the search results to the user. How to Search Records Between Related Tables in Laravel To search records between two tables in Laravel, you can use the whereHas method on the query builder. The whereHas method allows you to specify a relationship constraint on the query: In this example, the users table is being queried, and the whereHas method is being used to constrain the results to only those users who have at least one order with a total greater than 100. You can also use join and where to achieve the same result: This will return all users who have at least one order with a total greater than 100. You can also use Eloquent relationships to search between two tables. For example, if the User model has an orders relationship defined, you can use the whereHas method on the User model to search for users who have at least one order with a total greater than 100: Here’s another sample code:

Searching Records in Laravel Read More »

How to Concatenate Javascript Variable to a Route in a Bladefile in Laravel

To concatenate a JavaScript variable to a route in a Blade template file in Laravel, you can use the following syntax: This will generate an anchor tag with the href attribute set to the route with the JavaScript variable appended as a route parameter. Here’s an example of how you might use this in a Blade template: This will generate an anchor tag with the href attribute set to /route-name/foo. I hope this helps! Let me know if you have any questions. Method 2: Another way would be replacing a substring using the replace method in Javascript. Here’s an example:

How to Concatenate Javascript Variable to a Route in a Bladefile in Laravel Read More »

how to register sim card in the philippines

How to register your SIM card – Philippines

In the Philippines, it is required by law to register your SIM card with your mobile phone service provider. This is to ensure that the service provider has your correct personal information on file and to help prevent the use of unregistered SIM cards for illegal activities. The SIM registration is set to start on December 27. The registration may be extended for a period nor more than 120 days.

How to register your SIM card – Philippines Read More »