ADVERTISEMENT

FILM REVIEWS: Action pack

Published Mar 23, 2023 10:47 am

Keanu Reeves in 'John Wick: Chapter 4'



The action genre remains a popular brand of film to put one’s money on. And so today, I review one that just opened in cinemas, and one on the streaming services, that proves there’s more than one way to butter your toast.
John Wick 4 (in cinemas) - Here’s the 4th installment of a franchise that began with wreaking havoc and creating mayhem in the memory of a pet dog that was collateral damage in a botched hit. Four films later and John Wick (Keanu Reeves) is still your angry killer for hire, ready to take on all who inhabit his world of assassins. It’s a creaky-tired formula, but hey, if it’s worked for over three films, who are we to tell the producers and Keanu to stop? This time out, the narrative has to do with ... wait! Does anyone even care what the narrative is about? Hell, no! This is a John Wick film, and all we’re after is the action-defying opening sequence, the body count, the new weapons and deaths devised, and how many such fight sequences we’ll get to witness.
The answer to that last question is a lot. A real lot! The film runs for close to three hours; so if this is the last installment, and we were supposed to view this as the farewell to John Wick, the producers are out to give us more, more, and even more. The likes of Donnie Yen, Bill Skarsgård, Scott Adkins, Rina Sawayama, and Asia Kate Dillon are along for the ride; and Ian McShane, Lawrence Fishburne and Hiroyuki Sanada clock in so that some linear connection to the first film is aimed for. But more is not always better. In the end, it will come down to whether you’ve been a faithful fan of the first three films and will revel in the excess that this film brings to the table. If you loved the first film for its sinewy quality, you’ll find this one excessive and indulgent.
Die Hart the Movie (Amazon Prime) - If the title Die Hart feels familiar; don’t be surprised. Kevin Hart did two seasons of this ‘a comedian named Kevin Hart wants to be taken seriously, and evolve into an action star’ a couple of years ago. What this film does is have its cake, and eat it too. The producers cobbled scenes from the episodes to give it a running narrative and transform it into a feature film. It’s obviously a case of let’s bleed this dry, as there may still be ways to make money from the original TV series. The basic premise extends to how Kevin now has to enter an action movie school run by a shady character played by John Travolta. Jean Reno plays the action movie director who’s ready to hire Kevin and Nathalie Emmanuel, something of a love interest.
Josh Harnett has a cameo, and is easily the funniest and smartest person in the film, as he gets an early exit. Thankfully, even with all the stitching the producers resorted to, the film runs for under 90 minutes. If you watched the two seasons, then there’s nothing for you here. It’s funny in patches but never takes off, and Hart is either endearing or downright annoying - take your pick, and that’s how you’ll react to this somewhat desperate film. That Kevin is playing himself, will remind you of the meta-narrative device that Nicolas Cage put to good use in The Unbearable Weight of Massive Talent. Unfortunately, this comes nowhere close to having that kind of precious humor.
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.