ADVERTISEMENT

STREAMING REVIEWS: Series on parade

Published Jan 3, 2023 11:07 pm
A scene from 'Kaleidoscope'

Today, we’re looking at two limited series that bring suspense and action to the foreground. They’re both available for viewing on Netflix.

Kaleidoscope (Netflix USA) - Eric Garcia is the Creative Director behind this eight episode series. And if you viewed the trailer and didn’t give the series a chance, you’d think it’s an American attempt at creating their own version of Money Heist. And yes, the cliche heist at an impregnable safe is at the heart of the series, and you also get the ‘gang’ being assembled. But what Garcia does in a unique manner is to enjoy the series in your own way. The right episodes are color-coded, and we’re allowed to watch the episodes in any order, save for the White episode which is the finale. It’s a novel way of filmmaking and story-telling and it’s the one thing that sets this series apart from the many others that mine the genre.

Giancarlo Esposito plays the ring leader and he’s a fulcrum from which all the action originates from. With the eight episodes covering up to two decades of back story, there’s a lot to understand about the motives and putting together of the heist plans. Depending on how much you invest in the series, this will be the form of payback, as there’s a lot of texture and history to sink your teeth into and unravel. Each of the seven episodes do introduce each of the main characters, and so one is surprised to discover that the sequence of watching these seven isn’t important at all, and yet, a story is strung as you watch them all. What is unfortunate, is that the heist itself is a bit of an anti-climax; and that this was more about the journey.

Treason (Netflix UK) - If you recall how The Bodyguard ticked all the right boxes in giving us a British-made secret service action series, then you’ll appreciate how Treason is hoping to achieve that same kind of success. It’s five episodes, and with a fast-paced, twisty, plot, there is much to be drawn into and enjoy. And at five episodes, the series is smart enough not to overstay its welcome and bring things to a resolved end before we get impatient. Charlie Cox (Daredevil in the MCU) is your leading man, and we’re asked to believe this likable chap would be second in command in British Intelligence. When his boss is poisoned, he’s asked to assume the top post, and get to the bottom of said assassination attempt.

A scene from 'Treason'

Olga Kurylenko is on board as a former Russian lover, while Oona Chaplin plays the wife of Cox’s character. And yes, Oona is the granddaughter of Charlie Chaplin. The series opens with Cox confirming Chaplin, and we see this from the telescopic sight of a rifle trained on the couple, then moving to their son, who’s framed in another door at the house. Then we’re off to the races, going back in time to five days earlier, as the events leading to that opening scene unravels. It’s a heady mix of blackmail, ambition, shifting loyalties, and enough action sequences to keep us interested in the main characters. What it doesn’t have, is as much texture and a strong enough leading man as Bodyguard did. And as the smoke clears, we do realize just how incredulous and filled with holes the storyline has been. 

Related Tags

kaleidoscope treason
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.