text:
Retro - News
News Accusations Of Foul Play Surface Around Record-Breaking Graded NES Game Auctions
What the grading companies and auction houses "didn't want us to see"
Update [Wed 25th Aug, 2021 14:20 BST]: A PR firm representing WATA Games has contacted us with a statement from the company regarding Karl Jobst's video. It is presented in full at the bottom of the page. Original story [Tue 24th Aug, 2021 04:05 BST]: In July, just days after a...
Tue 24th Aug 2021
Guide 50 Best Super Nintendo (SNES) Games Of All Time
As rated by you
Remember, this list is dynamic and based on the User Ratings for each game submitted in the Nintendo Life games database. It is, therefore, subject to fluctuation, even now! If you haven't rated any of the games below, simply tap the star on the corresponding entry and rate the game out of 10 to exert your personal influence on the...
Mon 23rd Aug 2021
News How A Tragic Murder Inspired The Epic Retelling Of GBA Classic Golden Sun
"I decided to honour his memory by keeping our promise alive"
The Golden Sun series may have been dormant since the release of Dark Dawn on the Nintendo DS, but it's a franchise which nonetheless has a passionate fanbase – and one man's love of the original GBA game has resulted in a very special tribute. Bryson Elam – known online as Wing...
Anniversary The SNES Launched In North America 30 Years Ago
Excuse us while we crumble to dust
On this day 30 years ago, the Super Nintendo launched in North America. Does that make you feel old? Because we feel positively ancient. The release followed hot on the heels of the Japanese launch of the Super Famicom in November 1990, with American gamers getting a redesigned console which swapped the lush...
News This "Super Rare" Anniversary Edition Game & Watch Unit Just Sold For A Very Low Price
Requested by Gunpei Yokoi and bought for about $9k
We've seen a lot of retro Nintendo products selling for some insane prices in recent times, but this one is a bit different. Despite being a "never before seen for sale" Game & Watch, it's just sold for the "very low" price of ¥1,001,000 (around US$9100 / €8000). Quite reasonable, really...
Sun 22nd Aug 2021
Gunpei Yokoi
News Street Fighter II Doc 'Here Comes A New Challenger' Gets New Trailer And Crowdfunding Drive
Now available to pre-order on Indiegogo "due to demand from fans"
Street Fighter II documentary Here Comes A New Challenger raised over £27,000 when it was crowdfunded on Kickstarter recently, but the team behind the project have now announced that another funding dr
Fri 20th Aug 2021
Video Check Out This Fan-Made Remaster Trailer For Banjo-Kazooie
It looks good enough to play
Although Rare technically re-released an improved version of Banjo-Kazooie during the Xbox 360 generation, there are still many fans out there who have been wondering for many years now what a full-blown remaster of the first title would look like. YouTuber Project Dream has been working on a video series called...
Thu 19th Aug 2021
News GoldenEye 007 Speedrunner Grabs A New Record With A Sneaky Trick
Licence To Skill
It may be almost 24 years since GoldenEye released on the N64 but, in the intervening decades the game's dedicated community of speedrunners has continued to challenge themselves to come up with the fastest times on various levels, blazing through enemy gauntlets as quickly as possible to create new World Record times. Regarded as...
Mon 16th Aug 2021
Video Mole Mania, Miyamoto's Forgotten Game Boy Classic
You'll really dig it
There were a lot of great games during the original Game Boy generation, but one that arguably deserves a little more love (and attention) is the 1996 release, Mole Mania. As our very own American-based video producer Zion Grassl explains, this particular game was released in Japan the same year as Super Mario 64 and the...
Sun 15th Aug 2021
Video 'The Frog For Whom The Bell Tolls', Link's Awakening's Hidden Predecessor
Ribbit Ribbit
Many of us know the story of The Legend of Zelda: Link's Awakening's development: once A Link to the Past went gold, programmer Tōru Ōsawa began experimenting with Game Boy development kits to see how far he could push a Zelda experience. The results were so impressive that more staff started contributing to this unofficial passion...
Hands On One Man's Vision Shaped The GBA-Style GameForce CHI
...but is it any good?
If you're familiar with the raft of emulation-focused handhelds that have been emerging from China over the past few years, then the work of Anbernic and Bitt Boy will no doubt be on your radar already. While these are clearly small-fry when compared to the likes of Nintendo, Sony and Microsoft, they're still firms with a fair...
Random Take A Look At The 'Ultimate Solar Powered Game Boy Pocket'
A sunny outlook
As you are no doubt aware, we enjoy quality retro mods here at Nintendo Life - we may love our decades-old gaming gadgets, but sometimes improved screens, batteries and inputs are very welcome indeed. We particularly like the example above, then, of the 'Ultimate Solar Powered Game Boy Pocket'. That video is a lengthy one that goes...
Wed 11th Aug 2021
Video Retro Gaming Prices Are Much More Reasonable In Japan
Mother, frankly, is quite affordable
If you're a sucker for a few of the classics in the gaming sphere, you'll probably know the sting of looking up some obscure little gem like Doshin the Giant and getting whiplash upon seeing the price. Rare games are just worth a lot, it's just the way it is, right? Well in Japan things are a little bit...
Feature 20 Super NES Classics Nintendo Should Bring To Switch Online
16-bit gems we'd love to see on Switch
Nintendo has been steadily adding to its Nintendo Switch Online NES and SNES offerings since the service launched, and although it was a slow start, we have to say we're impressed with the breadth of titles available to anybody paying for a Nintendo Switch Online subscription. It's pleasing to see lesser-known...
News The Micro-Console Revolution Isn't Over Quite Yet, It Would Seem
Say hello to the A500 Mini
Nintendo might not have been the first company to dream up the notion of the 'mini' console, but it has arguably been the most successful, thanks to its massively popular NES and SNES Classic Editions. Since then, we've seen the likes of
News Analogue Is Restocking The Super NT And Mega SG Later Today
Set your alarms, retro fans
Analogue — the company behind luxurious retro consoles such as the NES-based Analogue NT Mini and the upcoming Analogue Pocket and PC Engine / TurboGrafx-16 console, the Duo — have announced a restock of two previous systems, plus its DAC converter which makes a digital signal play nice with analogue displays. The...
Mon 9th Aug 2021
Memory Pak The Exquisite Weirdness Of The Sims: Bustin' Out
Ah, the 2000s
I've always loved house-building, life-simulating game The Sims. I was on the bandwagon from day one, ever since meeting the tutorial family, Bob and Betty Newbie, and finding out that they could make a baby by kissing back-and-forth for hours. Just like real life, of course. Life most people, I would spend hours and hours building...
Sun 8th Aug 2021
Memory Pak
News A Copy Of Super Mario Bros. For NES Just Smashed World Records, AGAIN
We're still waiting for Beanie Babies to be worth something
Hey, remember last month when a sealed copy of Super Mario 64 sold for a record-breaking $1.56 million? The previous record of most expensive video game was set just days earlier, when an ultra-rare copy of The Legend of Zelda on NES reached a (then)
Fri 6th Aug 2021
Video Remembering The Super Game Boy For SNES
Look at all those custom borders!
Back in the days of the SNES era, there was a device known as the Super Game Boy. If you're as old as some of us are here at NL towers, you might have some fond memories of the device. Basically, it was an adapter cartridge for the SNES that allowed you to play Game Boy and dual-mode GBC titles on the big screen...
Random This Vintage Metroid Cosplay Is Terrible, And We Absolutely Love It
"The incredible Samus"
Over the years, Metroid star Samus Aran has been the focus of many people operating within the cosplay arena, and it's easy to see why – she's a powerful individual who happens to wear a seriously amazing suit of armour, so there's scope for some really impressive cosplay creations. However, we should spare a tho
Thu 5th Aug 2021
Nintendo Power
News Limited Run Games Is Publishing SNES And Virtual Boy Retrospective Books
Download samples now
Well, this is a surprise. Limited Run - the company known best as a physical game distributor - has announced it will be publishing two retro gaming books. Both are by Jeremy Parish and will be available to pre-order on 10th August. Super NES Works Vol. 1 Hardcover Book Super NES Works Vol. I looks back at the early days of...
Random 1990 Preview Of Sonic The Hedgehog Featured A Quirky Unused Enemy
Even Yuji Naka thinks it's a mystery
As the topic of game conservation remains relevant, so does retaining copies of games media such as manuals and magazines. Just recently @VGDensetsu shared an archive of a 1990 issue of Famitsu magazine, discovering some intriguing screenshots of an early preview build of Sonic the Hedgehog. Yuji Naka, such a...
Mon 2nd Aug 2021
Sonic 30th
Talking Point Which Game Stage Have You Replayed More Than Any Other?
Green Hill Zone Act 1 is my new-old timesink
The ability to devote entire days to nothing but video games is a past luxury unavailable to me right now, or in the foreseeable future, unfortunately. The addition to my life of small humans that look a bit like me has substantially diminished my available free time, and I've recently realised that it's...
Tue 27th Jul 2021
News Investment Scheme Opens Up Shares For Nintendo World Championships Cartridge
Along with other games, comics and more
It used to be that investors and traders were typically individuals with slicked back hair and expensive suits, shouting incomprehensible jargon into phones while surrounded by screens. Well, some do that, but nowadays lots of individuals do it with a few taps on a phone app. Whether through crytocurrencies...
Fri 23rd Jul 2021
Nintendo World Championships
Random Finally, Scientists Have Built A Robot Hand That Can Play Super Mario Bros.
Did someone say Power Glove?
Plenty of super-clever, super-talented researchers across the globe have been pretty busy trying to save the world recently, but hey, even scientists need to work on something fun every once and a while. For this team of researchers from the University of Maryland, that fun has arrived in the form of a robotic hand...
Thu 22nd Jul 2021
Soapbox Nintendo Switch Online's Library Is A Snapshot Of '90s Gaming Shelves
Nintendo took its rose-tinted specs and threw them in the bin
Another trio of classic games have just been announced for Nintendo's subscriber-only Virtual Console replacement, this time Claymates, Jelly Boy, and Bombuzal. They all have one very special thing in common: They're all games nobody asked for, and nobody wanted. Nintendo could have...
News Some Of The Original Terranigma Team Want To Revive The Classic SNES RPG
Digital re-release or remaster, we don't mind...
Despite only seeing release in Japan and Europe, 1995's Terranigma is regarded as one of the highlights of the SNES RPG library, and copies change hands for startling prices on the secondary market these days. Sadly, the game has never been re-released in any form, but that's something that some of...
News Collection Of Mint Condition NES Games Fetches $30,000 For Goodwill
Your feel-good story of the day
Pristine copies of classic games can always fetch a pretty penny – a copy of Super Mario 64 broke a world record recently, selling for an absolutely mindblowing $1.56 million USD – but when the money they can generate ends up going to a good cause, it all feels worth it. As reported by
News 25 Seconds Of New EarthBound 64 Footage Emerges Online
Travel back to 1997
At the beginning of this month, someone put a corporate Nintendo CD-ROM from 1998 on sale. The winner of the online auction was a Twitter user known as Zen, who paid the equivalent of $357 USD for the item, after discovering the disc contained footage of the cancelled N64 project, EarthBound 64 - also known back then as Mother 3...
Video How To Play Rare And Expensive Nintendo Games On A Budget
Zion shares some handy advice
The retro game market is booming right now. As you might have seen, a copy of the original Legend of Zelda game on the NES sold for $870,000 USD recently - making it the most expensive video game auction purchase of all time. The trend of paying top dollar for classic games, unfortunately, extends to th
Wed 21st Jul 2021
Random John Romero's PC Port Of Super Mario Bros. 3 Turns Up On A Floppy In A Museum
Where it belongs
You may remember a few years ago when veteran game developer and DOOM legend John Romero released a video of a PC port demo of Super Mario Bros. 3 originally built as a pitch to Nintendo back in 1990. Well, the full demo has now turned up in a bunch of data donated to the Strong National Museum of Play in the US. The team that...
News Here's Why That NES Zelda Sold For $870,000, According To The Guy Who Designed The Packaging
"A cartridge selling for such an astonishing amount is really about legacy"
Back when Nintendo conquered the living room for the first time with the NES, one of the key components of that success was branding – something which was handled by GIRVIN Design, headed up by Tim Girvin. The firm worked with Nintendo to create the 'look' of the NES...
Mon 19th Jul 2021
News Four Lost NES, SNES And N64 Games Have Been Brought Back To Life, Pre-Orders Now Open
But only for a limited time
If you're big on your video game preservation and history, this latest batch of pre-orders will be right up your retro-collecting street. Piko Interactive, an American publisher that specialises in grabbing the rights to forgotten, never-released games from years gone by and giving them the development time they...
Random Fancy A 'New' Copy Of F-Zero On The SNES? PixelHeart Has You Covered
500 units only
We're pretty used to seeing retro games getting reprints these days, but if you have a craving for 100% authenticity, then you might be more excited by the news that French publisher PixelHeart has 500 'new' copies of F-Zero on the SNES for sale. While some overly optimistic individuals might assume these are officially sanctioned...
Thu 15th Jul 2021
News Chip's Challenge Is Making Its Console Debut On SNES And SEGA Genesis
Though many gamers are focused on the latest shiny new games from Nintendo, Sony and Microsoft, there's a market for 'new' releases on retro systems too. Now another one is going up for pre-order, in this case a game that'll be making its console debut on Super NES and SEGA Genesis / Mega Drive; yes, it is indeed 2021! This time...
Guide Where To Pre-Order The Taito EGRET II Mini
Update: All 50 games confirmed
Update: The latest issue of Famitsu has confirmed 10 of the games that will appear on the upcoming Taito Egret II: Adventure Canoe (1982) Bubble Bobble (1986) Bubble Memories (1995) Bubble Symphony (1994) Cadash (1989) Chack'n Pop (1983) Dan-Ku-Ga (unreleased update to Kaiser Knuckle, 1995) Darius Gaiden (1994) Don...
EGRET II
News Slow Mole Is A New And Free NES Platformer, Cartridge Version Incoming
An 8-bit platformer that "makes everyone a speedrunner"
Forget your fancy Switch OLED, because it's time for a brand new game on Nintendo's other new and exciting games console, the NES. Erik Rosenlund, an animator who's taking the first step into the world of game development, has just released Slow Mole, a new game designed for the NES that can...
Feature Nintendo Hardware Refreshes Through The Ages
Nintendo's lineage of console updates and revisions
Update: Now with 100% more Nintendo Switch OLED Model and a new poll at the end. Enjoy! Mid-cycle hardware refreshes may sometimes feel like a relatively recent development, but console manufacturers have been releasing revised versions of their consoles since video gaming first entered the home...
News A Sealed Copy Of Super Mario 64 Just Sold For A Record-Breaking $1.56 Million
Just days after the previous record was set
Over the weekend, the world record for the highest-priced video game sale was well and truly smashed, with an ultra-rare copy of The Legend of Zelda on NES selling for a mind-blowing $870,000 USD. It's a number that's impossible for most of us to even comprehend, and we never would have expected to see a...
News This Ultra-Rare Copy Of The Original NES Zelda Just Sold For $870,000
It's now the most expensive video game collectable ever
Update [Sat 10th Jul, 2021 07:30 BST]: Well, it's official - a week later the same Legend of Zelda NES cartridge has now sold for $870,000 USD. This not only surpasses the amount Super Mario Bros. sold for, but also makes it the highest-priced video game that has ever been sold at an auction...
Sat 10th Jul 2021
News Nintendo Plugs Its NSO Zelda Games Ahead Of Skyward Sword HD's Release
Experience Link's classic adventures while you wait
Next week sees the release of The Legend of Zelda: Skyward Sword HD on the Switch. Although it's only an updated version of a 2011 Wii title, Nintendo has been promoting it non-stop since it was originally announced. It's now using the lead-up to the game's release to promote Link's classics...
Fri 9th Jul 2021
News Another Nintendo Console Has Gotten An Upgrade, But It's From 18 Years Ago
GBA SP battery tech finally catches up with screen upgrades
You can keep your fancy-pants Switch OLED Models, chum – for retro fans, the news that the GBA SP is getting a battery upgrade is arguably more exciting ('arguably' being the operative word here). While older Nintendo systems like the Game Boy and Game Boy Advance have been subject to...
Wed 7th Jul 2021
Soapbox Super Metroid Showed Me I Had The Right To Exist
Samus & Me
My first experience with the Metroid series was relatively unremarkable: I just bought Super Metroid for my SNES, back when a brand new SNES game was something you could just walk into a local shop and buy. I took its oversized box home, flipped through the glossy Player's Guide, and noticed something odd — Samus Aran, the...
Sat 3rd Jul 2021
News 16mm Film From Nintendo's 1974 Wild Gunman Arcade Cabinet Has Been Found
Reach (very carefully) for the sky
As highlighted by @katewillaert on Twitter, Ben Solovey (thefairshot on instagram) has managed to uncover two reels of 16mm film that were originally part of Nintendo's Wild Gunman arcade cabinet from 1974. While Nintendo console gamers will probably be more familiar with the NES port of this light gun shooter (or
Fri 2nd Jul 2021
News DidYouKnowGaming Shares Rare Pokémon Lore From An Official 'Lost' Pokédex
Fascinating details from the IP's early days
If you're a fan of early-gen Pokemon games and the franchise lore, which we suspect many are on these pages, then a recent video by DidYouKnowGaming? is certainly worth a look. A project that's evidently been in the works for some time, it translates and shares intriguing details that weren't previously...
Thu 1st Jul 2021
News Take A Look At 'Planet Hop', A Charming New Game Boy Title
Platformer aims to include at least 72 stages
Though the hardware is long discontinued, there's something about the Game Boy that continues to attract eager coders and game makers. Part of it will be nostalgia and ongoing admiration for the system, while there's also a distinct challenge to making games that fully utilise modest retro hardware...
News After Almost 3 Decades, You Can Finally Read The Comic For SNES Classic 'Skyblazer' Online
Originally published in UK magazine 'Manga Mania'
Skyblazer is one of those 'AA' SNES titles that no one seems to talk about enough these days. Developed by Ukiyotei – the same studio which produced the equally underrated Hook for the same console and would later create the two excellent Metal Slug games for the Neo Geo Pocket Color – Skyblazer...
News This High-Grade Nintendo World Championships Cartridge Could Fetch Over Half A Million Dollars
Was previously traded for a mint Tom Brady card worth $556,000
If you're a regular reader of the site then you'll be aware of the significance of the Nintendo World Championships cartridges. These were carts issued at the famous 1990 event which boasted unique challenges for participants to test their skills on. They were never intended to make...
News The Virtual Boy's Latest Game Comes With Rumble Pack Support
Feel the force (feedback)
Remember when we reported back in 2017 that the Virtual Boy – one of Nintendo's biggest commercial flops – was getting new software thanks to VUEngine? Well, one such game is being made available in demo form, and the surprises don't end there. It's also coming with support for a new unofficial Rumble Pack accessory...
News This Adapter Lets You Play Game Boy Cartridges On Your PC, And It Even Detects Fakes
The GB Operator
Now, here's a handy-sounding device for any Game Boy fans out there. The GB Operator, a cute little adapter from Epilogue, lets owners play and manage their collection of Game Boy cartridges on PC. Original Game Boy, Game Boy Color and Game Boy Advance carts are all supported, and the application used to play the games can run on...
Wed 30th Jun 2021
News 'The Entire History Of JRPGs' Is Available Now From Bitmap Books
Featuring more than 600 reviews!
Update: You can order the book now, using the link below. <products id="15397"> Original Story [Fri 19th Mar, 2021 15:30 GMT]: Bitmap Books, a UK-based publisher known for its stunning retro gaming books, has announced a new project which tackles the entire history of Japanese role-playing games. Fittingly...
Tue 29th Jun 2021
Bitmap Books
News Tributes Pour In For Near, The Developer Behind One Of The World's Best SNES Emulators
"They always wanted to help others and show them a path to the future"
It has been reported that Near, the developer behind the excellent SNES emulator BSNES (also known as Higan), has tragically taken their own life. Near – who also went by the names 'byuu' and 'Dave' in the past and identified as non-binary – posted a Twitter thread over the...
Mon 28th Jun 2021
Retro The Anticlimactic Quest To Find The Person Behind Metroid's Most Famous 'Cheat Code'
Cosmic coincidence or a real person?
If you know Metroid, then chances are you also know the name Justin Bailey. Entering this code (or password, to be more precise) into the original NES Metroid would not only grant you full power, but also a special outfit for Samus Aran. While many passwords of the period were random selections of letters and...
Thu 24th Jun 2021
News Nintendo Tokyo Pop-Up Stores Are Getting NES-Themed Gashapon, And They're Impossibly Cute
We need the "Controller Button Collection"
Japan gets all the best stuff; we know this, you know this, everyone knows this. It's just one of those things that you have to accept in life, like the fact that dropped toast will always land butter-side down or that you're guaranteed to unwittingly wear white on bolognaise night. The latest...
Video The 21 Best NES Games Of All Time, As Rated By The Nintendo Life Community
What did you pick?
Back in the '80s, Nintendo released the NES. It saw the rise of a generation of gamers - shifting millions of units worldwide and kickstarting the careers of many video game icons. If you've ever wanted to know what the best games are on this system, you've come to the right place. Our American-based video producer Zion Grassl...
Sun 20th Jun 2021
Guide 50 Best NES Games Of All Time
The Nintendo Entertainment System, or NES (ness? nezz? enn-eee-ess?), is the archetypal home video game console. Sure, earlier machines such as the mighty Atari 2600 pioneered the basic concept of an under-the-TV console with interchangeable software and controller accessories, but the utilitarian design and hardware innovations of...
Fri 18th Jun 2021
Video Enjoy An Hour Of Sonic The Hedgehog History In This Retrospective
Because Sonic is cool
There are a number of major anniversaries this year, one of which is Sonic the Hedgehog's 30th year. SEGA is celebrating this year with events like an upcoming Sonic Symphony, various cameos and the upcoming release of Sonic Colors Ultimate. Of course, fans are getting involved with their own celebrations as well. The video...
Retro Remember The First Time Nintendo Did A Zelda Game & Watch?
Jump back into 1989...
Yesterday, Nintendo lifted the lid on the one and seemingly only attempt to mark the 35th birthday of its Zelda franchise: a Game & Watch system which includes the two NES outings, as well as Link's Awakening on the Gam
Guide 50 Best Game Boy Advance (GBA) Games Of All Time
The Top 50 GBA games ever, as ranked by you
The Game Boy Advance celebrated the 20th anniversary of its Japanese debut on 21st March 2021. Nintendo's first true successor to the original Game Boy line (the Game Boys Pocket and Color notwithstanding), the GBA in all its forms — original horizontal console, clamshell SP model, and ludicrously sma
News Super Mario Kart Hacker Restores Nintendo's Official Track Editor
Code uncovered in recently leaked prototype
A "hacker guy" known as 'MrL314' has successfully restored the track editor used by Nintendo to construct Super Mario Kart. The original discovery stems from last year's Nintendo leak which contained an early prototype of SMK from 1991. Here, he found references to a track editor in the code -...
News Classic Arcade Game 'The Simpsons' Will Get A New Cabinet This Year
Arcade1up is doing important work
We all have important gaming memories from childhood, defining moments that helped to make us 'gamers'. For this humble scribe one example was spending my parent's hard-earned money on a few choice arcades at the local sports centre. One was The Simpsons, which we'd play as a family; as the younger brother I had to...
Wed 9th Jun 2021
News Ready To Ditch Those AA Batteries? Check Out The Amazing 'CleanJuice' Game Boy Mod
Wireless charging is in the pipeline, too!
If there's one thing we really like about modern portable hardware, it's the fact that we no longer have to dig out AA or AAA batteries to run them. While the Game Boy had more modest power demands than many of its rivals, it still required a steady stock of batteries if you were a serious gamer; sure,...
Video EarthBound's "Lost Secrets" Have Been Revealed Thanks To The Recovery Of Localisation Source Files
Never-before-seen content, cut ideas and much more...
New secrets about the SNES game EarthBound have been uncovered thanks to efforts of the Video Game History Foundation. In 2018, former Nintendo of America employee Marcus Lindblom (and the guy responsible for the English-language script in EarthBound) discovered an old floppy disk which were...
Sat 5th Jun 2021
Soapbox Why Harvest Moon 2 GBC Is Still The Best Farming Game Around
We recently published our reader-ranked top 50 Game Boy Color games, and we've taking a look back at a handful of our favourite GBC carts. Today, Kerry reminisces about her very favourite farming sim... There have been a lot of Harvest Moon games over the y
Tue 1st Jun 2021
Guide 50 Best Game Boy Color (GBC) Games Of All Time
The top 50 GBC games, as ranked by you
It was 1996 in Japan and 1998 in North America (and a year later in Europe) when the ageing Game Boy got an unexpected shot in the arm thanks to a little game named Pokémon. Nintendo's granddaddy of handheld gaming suddenly had a new lease of life, but in the West the release of the game was followed just...
Mon 31st May 2021
Soapbox Is The Best Harry Potter Game On Game Boy Color? Quite Possibly
FLIPENDO
We recently asked you Nintendo Life readers to rate your favourite Game Boy Color games, and as we're preparing to publish the Top 50 results, we're taking a look back at a handful of our favourite GBC games. Here, Kate remembers one particular handheld Harry adventure — the one where the Philosopher and the Sorcerer bickered about whose...
Sun 30th May 2021
Feature More Than Just Pokémon - Japan's Secret World Of Game Boy Color
Hidden handheld happiness
The Game Boy Color was the immensely popular home of a wide range of handheld classics, from multi-million sellers such as Pokémon Gold and Silver and Link's Awakening DX to the now painfully expensive Metal Gear Solid, not to mention the non-Color original Game Boy library it played, too
Memory Pak My Nostalgic Sonic 2 Playthrough Was A Treasured Gaming Moment
You only have one life
It's a big anniversary year for various Nintendo franchises, but it's easy to forget that it's also a whopper for SEGA's mascot, with June bringing the 30th Anniversary of Sonic the Hedgehog. We'll have various articles celebrating that milestone, but a little ahead of time I thought I'd share a fun memory I have with the...
News The Guy Who Made The Stretchy Super Mario 64 Face Also Almost Gave Us Portal Zelda
The cake was a lie
We do love a good retro infodump here at Nintendo Life, and the latest is a podcast interview between Ben Hanson from the MinnMax Show and legendary game developer Giles Goddard. We reported on the interview earlier in the week, in fact, but the full show (above) featured so many intriguing titbits that we wanted to explore them...
Soapbox Resident Evil Gaiden Is Good, Actually
"Good luck Barry"
We recently asked you Nintendo Life readers to rate your favourite Game Boy Color games, and as we're preparing to publish the Top 50 results, we're taking a look back at a handful of our favourite GBC games. Here, Kerry defends the Resident Evil game that NL readers voted the worst in the series... A long time ago we were...
News Project64 Celebrates Its 20th Anniversary With A 3.0 Update
Fixes for "issues" with Donkey Kong 64 and more
Emulation might be a bit controversial, but (like it or not) it's arguably played a crucial role in gaming over the past two decades. Beyond fan-made projects and attempts to preserve long-forgotten releases, developers and publishers have also made use of emulators to revive certain releases. With...
Fri 28th May 2021
Poll What's Your Favourite Game Boy Color... Colour?
Fine and Dandelion
We recently asked you to rate your favourite Game Boy Color games, but while the results for that ranking are still coming in (look out for the Top 50 soon, and don't forget to rate your own GBC collection if you haven't already!), we thought we'd pose a question regarding the hardware itself: Which is the best Game Boy Color...
Thu 27th May 2021
News Sonic Origins Spin Dashes To "The Latest Platforms" Next Year
Sonic 3 is back! & Knuckles
Update: Based on the footage used in the trailer (above), fans were initially sceptical that Sonic 3 would be widescreen in this new collection. It has now been confirmed by Katie MiniKitty, social media and influencer manager for Sonic, that the game will be 16:9. Phew! During today's Sonic Central stream we had
News 30 Years Later, SNES Street Fighter II Confirms One Of The Franchise's Biggest Myths
Another of video gaming's greatest myths has been confirmed, 30 years after it first did the rounds in a pre-internet world. The myth relates to Capcom's insanely popular Street Fighter II: The World Warrior, and the notion that the original version of the game, first released in arcades in 1991 and later ported to the SNES,...
Tue 25th May 2021
News Giles Goddard Reveals 'Portal' Tech Developed In Early Zelda 64 Demo
"When I saw Portal I thought, 'I had that running on N64'"
The Legend of Zelda: Ocarina of Time was a genre-defining release, and it was also a showcase for the graphical power of the Nintendo 64; this was a time when 3D games were incredibly new and exciting. Naturally the project, and Nintendo's work in producing the game engine, was a long time...
Poll What's The Best Game Boy Color Game?
A splash of colo(u)r
The granddaddy of modern handheld gaming, the Game Boy, got an unexpected shot in the arm in the mid-'90s when a little game named Pokémon released and gave the ageing hardware a new lease of life. The updated Game Boy Pocket hardware might have slimmed down the bulky original DMG-001, but it was the long-awaited arrival of the...
Sat 22nd May 2021
News This Christmas, We're Getting A NES-Like Console That Plays Physical Carts
Update: Special 'Founder edition' announced, limited to 5000 units
Update: Blaze has just revealed details regarding a special 'Founder Edition' version of its forthcoming Evercade VS home console. Limited to 5000 units, this special edition retails for £159.99 and comes with the following items: Evercade VS Founder Edition Console Evercade VS...
Fri 21st May 2021
Video Remembering Zelda's Sister Game - The Mysterious Murasame Castle
Link's forgotten sibling 'Takamaru'
It's been long documented that Metroid and Kid Icarus were closely developed. They share the same engine, many of the same staff members and were released within the same time period - hence why people call them sister games. What's lesser known however is The Legend of Zelda had a sibling of its own. Together...
Random Say Hello To The Chinese Mega Man - Zook: Hero
Actually looks decent, too!
Bootleg games are still very much around, but there was a certain charm to them back in the day, in an era when they were the stuff of legend and stealthily distributed. Getting more specific, to varying degrees in past times the Chinese market was cut-off from the mainstream video game industry, but that didn't stop...
Hands On Book4Games "Precision Game Storage" - Fancy Warehousing For Your Loose SNES Carts
We go hands-on with the fanciest alternative to a shoebox yet
Many years ago, some wise penny-pincher at Nintendo decided that shipping games in flimsy cardboard boxes was a sound business decision, and as a result, NES, Game Boy, SNES and even N64 owners had to endure packaging that was annoyingly delicate when compared to that seen on rival...
News One Of The Rarest Mega Man Titles Is Getting A Physical Reprint
Never before released in physical form in North America
Mega Man may have made his name on the NES, but one of the rarest and most desirable products to showcase his moniker isn't on a Nintendo system, but a Sega one. Mega Man: The Wily Wars (AKA: Rockman Mega World in Japan) arrived in 1994 but was only released physically in Europe and Japan; in...
Wed 19th May 2021
Hardware RetroN Sq Review - An Affordable Way To Play The Entire Game Boy Library On Your Big Screen TV
No magnifying glass needed
Recently we've been getting quite a bit of use out of our classic handheld systems. It can be a lot of fun to jump back to your original Game Boy or Game Boy Color to play one of the first Pokémon games, or to see how high of a score you can line up in Tetris. If you're playing with a standard non-backlight screen you may...
Talking Point If Nintendo Released Them, Would You Play Virtual Boy Games In 2021?
Virtually unheard of
Nintendo's Virtual Boy was an inarguably strange system, although mentioning its name can elicit markedly different responses. To many, the little tabletop non-HMD is little more than a punchline; a hilarious blink-and-you'll-miss-it example of Nintendo toying with an idea that was sabotaged from the off by hopelessly inadequate...
Video Remembering The 3D Classics NES Range On Nintendo 3DS
The "definitive way" to play these retro releases
Remember when Nintendo got Arika to bring a bunch of NES games to the 3DS? These games were part of the short running series known as the 3D Classics line, which contained six games like Kirby's Adventure and Kid Icarus, and even had a stereoscopic 3D enhancement. The series kicked off with 3D...
News A Rare SNES SA1 Demo Cartridge Has Been Found And Preserved
Power preservation
The Bit Wars were an intriguing time in gaming, particularly in the era of one-upmanship between the Super NES and the SEGA Mega Drive / Genesis. While there could be arguments over sound chips, BLAST processing etc, we also saw special enhancement chips produced that'd go within the game cartridges to improve performance or make...
Mon 10th May 2021
News It Took This Nintendo Fan Over 20 Years To Complete Their Famicom Collection
Snow Bros. acquired!
The Japanese YouTuber Somari has finally completed the Nintendo Famicom collection, and it only took 20 years. According to Kotaku, they started the collection (which is similar but different to the NES library of games) in December 2000 with the 1986 release Mobile Suit Z Gundam: Hot Scramble, and most recently acquired the...
Sat 8th May 2021
Random Say Hello To The Wii SPii Portable, A GBA-Sized Console
The modding community strikes again
The Wii is a much-loved console, and was actually rather cute and dinky back in the day when compared to Xbox 360 and PlayStation 3. Nevertheless, current-day modders and hackers often look for new ways to play the system, with last year's WiiBoy Color being a good example. The market for shrinking the console...
Fri 7th May 2021
Random Behold The Miya 2000, A Rare NES Accessory That Only Works With One Game
Like any popular games console, the NES was host to some truly weird and wonderful accessories. Devices like the iconic Power Glove and the Brøderbund's U-Force tried to leverage the huge install base of Nintendo's system, but it's fair to say this was easier said than done and many of these products flopped at retail. We assumed we'd seen...
Random There's A Project Aiming To Make Super Mario 64 Fully Ray Traced
Let there be next-gen light
It took some time, but with the release of Super Mario 3D All-Stars we got an official version of Super Mario 64 that was fully modernised for the HD era, to a degree. It retained its original screen ratio and ran at 30fps, but Nintendo did nonetheless sharpen up the visuals and produce what is arguably the definitive...
Random This Guy Makes Incredible, Wearable 16-Bit Cosplay
Flat-pack cosplay
Cosplayers are basically wizards. Sometimes, they are also literal wizards, when they dress up like Gandalf the White or Dumbledore, but we mean in terms of their creative skills — sewing, sculpting, and sometimes even electronics are all part of making a detailed, true-to-life cosplay of a beloved character. Here at Nintendo...
Thu 6th May 2021
News Zelda Screenwriter Opens Up On How Much Fun It Was To Make The TV Series
"I figured I was about to get reamed for all of the sneaky innuendo"
The Zelda cartoon series has its fair share of critics, but like so many shows from the period, there are almost as many fans who will fight tooth and nail to prevent anyone saying anything even remotely negative about it. If you fall into the latter camp, then you'll no doubt be...
Tue 4th May 2021
Random You Can Now Play The Original Game Boy Tetris In Online Multiplayer
Linking up
Not long ago we shared the work of Game Boy hacker stacksmashing, who has been doing intriguing mods with the retro portable. They had managed to connect to the link cable process in the original Tetris to manipulate the pieces that would drop when playing multiplayer. It was just a bit of fun, but from a technical perspective it meant...
Mon 3rd May 2021
News Ouch! NES Collector Recalls The Time He Threw Out Packaging Worth $4,000 To 'Save Space'
"It's cardboard. Who cares?"
Anyone who collects video games will know there's often a massive price difference between a loose cartridge and a 'mint in box' example – which is why the story of hardcore collector Seth is so painful to comprehend. Many years ago, when his collection of gaming items was slowly getting out of control, he decided to...
Fri 30th Apr 2021
News The Legendary Silver and Teal Game Boy Advance, From Space World 2000, Has Been Found
Appears once in a blue moon
Nintendo Space World events live on in gaming history, from a time when Nintendo would save some of its very biggest reveals for the show. It's also a collector's goldmine, with demos, hardware and more revealed at the show before disappearing into obscurity. One example is the Silver and Teal Game Boy Advance; it's from...
Space World
Talking Point Why Did Nintendo Give Up On Its 'Classic Edition' Concept So Soon?
Does it truly hate making money?
We don't exist in a bubble here at Nintendo Life, and there's many a time we've glanced over other sites and spotted a feature that makes us jealous we didn't think of writing it first. One such piece is this excellent RetroBeat feature by Mike Minotti over on VentureBeat, which asks one very reasonable question: Hey...
Random The Game Boy Has Finally Grown Up To Become The 'Game Man'
You're a man, not a boy
The Game Boy turns 32 this year, but, unlike most entering their fourth decade on this planet, it has remained surprisingly small. Thankfully, the Grumpy Modeler has decided to change that by forcing Nintendo's handheld to grow up – in more ways than one. Using a combination of parts – including a 3D-printed case, NES...
Talking Point Do You Miss Instruction Manuals?
They gave the boxes some heft, no?
For many of us more 'seasoned' gamers, it's sometimes tempting to look back with rose-tinted specs and think that video games were just 'better' in the past. You know, back in the olden times when you didn't need an account and an email address and an 8-character password (minimum one capital letter, one special...
Tue 27th Apr 2021
Video Why Do We Buy And Collect Retro Video Games?
Nostalgia is a powerful thing
If you're a retro video game collector, you've probably been asked at least a few times in your life why you buy so many old games. You might have even asked the same question to yourself in the past - perhaps challenging your own reasons. So, why do people collect old (and physical) games in this day and age -...
Sat 24th Apr 2021
News The Konami Code Turns 35 With A Special Album Of Lo-Fi Gradius Tracks
⬆ ⬆ ⬇ ⬇ ⬅ ➡ ⬅ ➡ 🅱 🅰
We've had a lot of 35th Anniversaries this year, including the Mario celebrations and the Zelda... non-celebrations, and this weekend — specifically, the 25th April, 2021 — is the birthday of the Konami Code, perhaps the most famous sequence of buttons in hi
Fri 23rd Apr 2021
Konami Code
News Terra Trilogy Brings '80s Arcade Vibes To Nintendo Switch This Summer
Dig out those quarters
Everyone has their own definition of retro, though we suspect a number of gamers only go as far as the NES-era when they think of old-school classics. Gamers of a certain age remember pre-Nintendo console days, however, when arcade machines made comforting beeps and bloops and made good use of vector-based visuals. For gamers...
Retro - Features
Soapbox Wario Land 4 Deserves More Love, And Indie Devs Are Doing What Nintendon't
Review BlueRetro N64 Adapter - This Plug & Play Bluetooth Dongle Is The Perfect Match For Your NSO Pad
Feature "Arcade Games Are Poetry" - 'Strider' Director On The Return Of 'Cannon Dancer'
Talking Point What Game Do You Replay Every Year?
Feature 25 Years Of GoldenEye 007 - 25 Facts You Didn't Know (Or Forgot You Knew)
Feature Hot Zelda: Link To The Past Takes From '90s Game Mags, 30 Years Later
Your latest retro purchase
4,762 replies | 22 hours ago
Gamecube signed by miyamoto
2 replies | 2 days ago
The N64 Thread
264 replies | 6 days ago
News Iconic GoldenEye "Gong" Sound Is Present And Correct In Switch...
Review GoldenEye 007 - Aged And Flawed, But Still A Masterpiece Of Game Design
Random Unused Bond Face Textures Finally Erased From Switch Online's Goldeneye ...
News Billy Mitchell Photos Emerge Showing Non-Original Donkey Kong Hardware A...
Guide Every Nintendo Switch Online N64 Game Ranked
Review BlueRetro N64 Adapter - This Plug & Play Bluetooth Dongle Is The Per...
Video Learn About The Making Of GoldenEye 007 In This "Leaked" Rare ...
Guide Every Nintendo Switch Online Sega Genesis / Mega Drive Game Ranked
News More N64 Games Are Coming To The Nintendo Switch Online Expansion Pack
Retro - Guides
Guide SEGA Genesis Mini 2 Games List - Every Mega Drive And SEGA CD Game, All 61 Titles
Guide How To Fit An IPS Screen To Your Game Boy Advance SP
Guide Where To Buy PC Engine / TurboGrafx-16 Mini
Guide Powering Up Super Power - Finding The Ultimate SNES Console
Follow Nintendo Life
Nintendo, Sony And Xbox Reportedly Skipping E3 2023


text:
Q: Choosing vectors for projection I have a vector $v = a_1\mu_1 + a_2\mu_2 + ... + a_n\mu_n$ where $\mu_i$ are given linearly independent but not orthogonal vectors.
I need to choose  $k$ vectors from the original set such that when I project $v$ onto the space spanned by these vectors, the length of the projection is highest possible.
Are there any algorithms that could solve this problem?  $n$ is very large number.

redpajama_set_name: RedPajamaStackExchange


Confirm guests have a shelter bed.
Scan guest card or enter guest bed number into Homeless Management Information System (HMIS).
If you are a first time volunteer, please arrive 15 minutes before your shift.
Ability to communicate appropriately with guests.
Comfortable in fast-paced environment with tolerance for an occasional tense situation.
Next, review our Check-In Ambassador Guide for more specifics on the volunteer opportunity.
Now you are ready to sign up for time slots here!
For additional questions, email our Volunteer team.


On 3 May 2018, Aftermath Association volunteers were invited to a fundraiser at Casey's Grill and Bar by a local recreational flag football league, The Gold Bombers. It was a fun filled event where The Gold Bombers players and supporters learned more about Camp Aftermath's approach to long-term management of PTSD through active philanthropy. Even more exciting was how intrigued the rest of the patrons were at Casey's as they partook in the fundraising activities.
Above and beyond the funds raised, relationships were made and follow up meet ups were planned to find new ways and innovative ways to help raise $5000 towards launching Roto 0.
We would like to recognize Casey's at Ogilvie and Blair and Craig Mackay from the Gold Bombers for including Camp Aftermath in this event and for their support.
Please help keep the momentum going by donating to our GoFundMe campaign today!
Stay tuned as Aftermath Association is planning more fun filled activities this summer.


Big Brother Naija 2018 finalist, Tobi Bakre has finally opened up on the true state of his relationship with his supposed girlfriend, Regina.
While he was still in the house, Regina was rumoured to be his girlfriend. He has however set the record straight, stating that the fitness expert is his G and he owes her forever.


text:
"Maurice in the Seven Years War" Topic
Please be courteous toward your fellow TMP members.
Back to the 18th Century Battle Reports Message Board
First Quarter 2021 Update: How's the Plan going?
"Argad!"
Featured Showcase Article
1:700 Black Seas British Brigs
Editor in Chief Bill paints brigs for the British fleet.
Cleopatra & L'Ocean
Monkey Hanger 's motivation to paint Napoleonic ships returns!
767 hits since 5 Mar 2022
carojon 05 Mar 2022 1:42 a.m. PST
This week friends and I got reacquainted with another old friend, Maurice, the card play rules by Sam Mustafa together with a very nicely prepared collection of Seven Years War, Prussians, Austrians and Bavarians as we played a warm-up game to refamiliarize ourselves with the basic mechanics of play, prior to another larger game later this month.
Once we got into it, all the reasons to love playing Maurice came flooding back and I'm really looking forward to our next game.
If you would like to know more then just follow the link to JJ's
GamesPoet 05 Mar 2022 4:27 a.m. PST
What I like about 10mm … the villages!
Regarding Maurice … great rules!
Big Red 05 Mar 2022 5:56 a.m. PST
Great write up. Thanks for sharing and good luck in the game at the DWG.
dantheman 05 Mar 2022 9:31 a.m. PST
Sam's 18th century rules are my favorites for 18th century European wars. Models the linear warfare and limited command structure present in the period, and does it in a fun way. Unfortunately it is long out of print. Sam never maintains or republished old sets.
I have my copy, but I am one of the few in my area.
Tony S 05 Mar 2022 11:51 a.m. PST
Unfortunately it is long out of print.
If you go to his website, samustafa.com, you can buy Maurice as a printed and bound book, or as a PDF which you can get bound and printed. He also sells the cards, which you'll need to play as well. Drivethrucards sell cards to his other games, although not Maurice for some reason.
Thanks for your comments chaps, we certainly enjoyed our game and are looking forward to the next one.
Frostie 08 Mar 2022 12:03 a.m. PST
Loving the look of your figures, very nice
Cavcmdr 08 Mar 2022 4:45 p.m. PST
Looking goood!
Well painted on great bases. Battlefield looks excellent.
Love the windmill. Mine was broken in action last night. Not seen Ted for a while. He dropped his pint on it. I was too busy mopping up to realise at first.
Hey, ho.
I don't like Maurice though. Tried it a couple of times. DBM formations seem to be needed to get the best out of the card game.

redpajama_set_name: RedPajamaCommonCrawl


text:
Wu Yanan (born April 18, 1996) is a Chinese mixed martial artist is a Bantamweight division. A professional competitor since 2013, she formerly competed for the Ultimate Fighting Championship, Chinese Kung Fu Championships, and WLF W.A.R.S.

Background
Wu began training Sanda in middle school, eventually competing in the national level in the discipline. She graduated from Xi'an Physical Education University, where she majored in Sanda under the tuterlage of Zhao Xuejun.

Mixed martial arts career

Early career
Wu made her pro debut in 2013 under the banner of Fighting China, facing fellow debutante  Joo Young Lee. Yanan won the bout by a first round TKO.

Wu's first appearance with the Chinese Kung Fu Championships came almost a year after her first fight, at CKF 9/21. She faced Bo Meng who was coming off of a win against Zhang Weili. Yanan won the fight by a unanimous decision. Six months later she faced Yang Liu, who was making her pro debut. Yanan won through a first round TKO. Wu's next fight was a rematch against Bo Meng at CKF 7/7, which Wu won by a split decision. At CKF 4: Day 1 Yanan faced another debutante in Jinghuan Zhu, which she won by a first round submission. It was her first and only fight at featherweight At WLF E.P.I.C. 5 Wu fought against Bayarmaa Munkhgerel, who hadn't yet won a pro fight, and won through a second round TKO. She returned to CKF to face Saeedeh Fardsanei who was making her debut, and won by a first round TKO.

Leaving the Chinese Kung Fu Championships, Wu fought against the 8-2 Yana Kunitskaya under the banner of Fightspirit Championship at Fightspirit Championship 6. She suffered the first professional loss of her career, with Kunitskaya stopping her by way of TKO, after only 32 seconds of the second round. Fighting at Kunlun Fight MMA 7, Yanan faced the 0-3 Anjela Pink winning in the first round through a TKO. At WLF W.A.R.S. 12 Wu faced the debuting Zuriana Makoeva, stopping her through a TKO in the fourth minute of the second round.

Ultimate Fighting Championship
Wu made her UFC debut on November 25, 2017, at UFC Fight Night 122 against Gina Mazany. She lost the fight via unanimous decision.

Wu faced Lauren Mueller on November 24, 2018, at UFC Fight Night 141. She won the fight via first round armbar.

Wu was scheduled to fight Luana Carolina on May 11, 2019, at UFC 237, but was forced to pull out due to an injury. The fight was rescheduled for UFC Fight Night 157 on August 31, 2019, however Carolina pulled out of the fight due to a fractured spine. Wu instead faced former DEEP Jewels champion Mizuki Inoue. At the weigh-ins, Wu weighed in at 129 pounds, three pounds over the flyweight non-title fight limit, and forfeited 30% of her purse to Inoue. Wu lost the fight via split decision.

Wu was scheduled to face Bethe Correia on December 5, 2020, at UFC on ESPN 19 However, due to visa issues, they were rescheduled for UFC on ABC 1 on January 16, 2021. In early January 2021, it was reported that Corria was forced to withdraw from the bout due to undergoing surgery to remove her appendix.  On January 7, it was announced that Wu would face UFC newcomer Joselyne Edwards. She lost the fight via unanimous decision.

Wu was scheduled to face Nicco Montaño on July 31, 2021, at UFC on ESPN 28. However, the fight was canceled after Montaño missed weight by seven pounds at the weigh-ins.

Wu was scheduled to face Josiane Nunes on February 26, 2022, at UFC Fight Night 202. However, Wu was pulled from the bout for undisclosed reasons and was replaced by promotional newcomer Jennifer Gonzalez.

Wu faced Mayra Bueno Silva on April 16, 2022, at UFC on ESPN 34. She lost the fight via unanimous decision. This fight earned her the Fight of the Night award.

Wu faced returning veteran Lucie Pudilová on August 20, 2022, at UFC 278. She lost the bout via TKO stoppage in the second round due to elbows on the ground.

In August 2022, it was announced that Wu was no longer on the UFC roster.

Championships and accomplishments
Ultimate Fighting Championship
Fight of the Night (One time)

Mixed martial arts record

|-
|Loss
|align=center|13–6
|Lucie Pudilová
|TKO (elbows)
|UFC 278
|
|align=center|2
|align=center|4:04
|Salt Lake City, Utah, United States
|
|-
|Loss
|align=center|13–5
|Mayra Bueno Silva
|Decision (unanimous)
|UFC on ESPN: Luque vs. Muhammad 2
|
|align=center|3
|align=center|5:00
|Las Vegas, Nevada, United States
|
|-
|Loss
|align=center|13–4
|Joselyne Edwards
|Decision (unanimous)
|UFC on ABC: Holloway vs. Kattar
|
|align=center|3
|align=center|5:00
|Abu Dhabi, United Arab Emirates
|
|-
|Loss
|align=center|13–3
|Mizuki Inoue
|Decision (split)
|UFC Fight Night: Andrade vs. Zhang
|
|align=center|3
|align=center|5:00
|Shenzhen, China
|
|-
|Win
|align=center|13–2
|Lauren Mueller
|Submission (armbar)
|UFC Fight Night: Blaydes vs. Ngannou 2
|
|align=center|1
|align=center|4:00
|Beijing, China
|
|-
|Loss
|align=center|12–2
|Gina Mazany
|Decision (unanimous)
|UFC Fight Night: Bisping vs. Gastelum
|
|align=center|3
|align=center|5:00
|Shanghai, China
|
|-
|Win
|align=center|12–1
|Zuriana Makoeva
|TKO (punches)
|WLF W.A.R.S. 12
|
|align=center|2
|align=center|3:19
|Zhengzhou, China
|
|-
|Win
|align=center|11–1
|Margarita Naschyokina
|Submission (armbar)
|Chin Woo Men: 2016-2017 Season, Stage 4
|
|align=center|1
|align=center|0:33
|Hefei, China
|
|-
|Win
|align=center|10–1
|Alena Kuchynskaya
|TKO (punches)
|Chin Woo Men: 2016-2017 Season, Stage 1
|
|align=center|2
|align=center|2:13
|Beijing, China
|
|-
|Win
|align=center|9–1
|Anjela Pink
|TKO (punches)
|Kunlun Fight MMA 7
|
|align=center|1
|align=center|1:17
|Beijing, China
|
|-
|Loss
|align=center|8–1
|Yana Kunitskaya
|TKO (punches)
|Fightspirit Championship 6
|
|align=center|2
|align=center|0:32
|Saint Petersburg, Russia
|
|-
|Win
|align=center|8–0
|Saeedeh Fardsanei
|TKO (submission to punches)
|Chinese Kung Fu Championships: Sunkin
|
|align=center|1
|align=center|1:22
|Qingdao, China
|
|-
|Win
|align=center|7–0
|Bayarmaa Munkhgerel
|Technical Submission (armbar)
|WLF E.P.I.C.: Elevation Power in Cage 5
|
|align=center|2
|align=center|3:43
|Zhengzhou, China
|
|-
|Win
|align=center|6–0
|Kristina Derecha
|Submission (armbar)
|CKF: China vs. Russia
|
|align=center|1
|align=center|3:41
|Beijing, China
|
|-
|Win
|align=center|5–0
|Jinghuan Zhu
|Submission (armbar)
|CKFC 4
|
|align=center|1
|align=center|1:22
|Qingyang, China
|
|-
|Win
|align=center|4–0
|Yang Liu
|TKO (submission to punches)
|CKFC 3/13
|
|align=center|1
|align=center|0:48
|Qingyang, China
|
|-
|Win
|align=center|3–0
|Debbie Tucker
|Decision (unanimous)
|Fight King Gold Belt Contest
|
|align=center|2
|align=center|5:00
|Xi'an, China
|
|-
|Win
|align=center|2–0
|Meng Bo
|Decision (unanimous)
|CKFC 9/21
|
|align=center|5
|align=center|3:00
|Qingyang, China
|
|-
|Win
|align=center|1–0
|Young Joon Lee
|TKO (punches)
|Fighting China
|
|align=center|1
|align=center|N/A
|Qingyang, China
|
|-
|}

See also
List of female mixed martial artists

References

External links

1996 births
Living people
Chinese female mixed martial artists
Bantamweight mixed martial artists
W
Mixed martial artists utilizing Brazilian jiu-jitsu
Kunlun Fight MMA Fighters
Ultimate Fighting Championship female fighters
Flyweight mixed martial artists
Sportspeople from Liaoning
People from Chaoyang, Liaoning

redpajama_set_name: RedPajamaWikipedia


text:
Shires Equestrian Sponsor 4* Event Rider Matthew Wright
Matthew Wright is the latest name in eventing to become a member of Team Shires. The Nottinghamshire-based rider joins fellow event riders Camilla Speirs, Emily Beshear, Selena O'Hanlon and Bonnie Fishburn as part of the team of performance riders who "are passionate about their riding careers and their horses."
His previous achievements include a silver medal at the Young Rider European Championships in 2002 on Park Pilot — a horse that he bred, backed and produced himself. He has competed for Great Britain at Junior, Young Rider and Senior levels, most notably finishing 13th at the FEI European Championships at Blenheim Palace on his Senior Squad debut.
He has also competed consistently at four-star level, with six Badminton and Burghley competitions between 2002–2014 under his belt — riding his first Burghley track at 18 years old.
Matthew is back for the 2018 season after taking a step away from top-level eventing in 2014/15 due to ill health. After his recovery he has been focusing on producing and bringing on young horses, as well as competing up to two-star level. This year sees his string of fourteen competition horses contain seven advanced rides, including DHI Paparazzi, Prince Mayo and The Artist Almost Famous.
"I am so excited to be working with Shires Equestrian and to have their support for the 2018 season. My horses have been wearing Shires rugs for many years, so to be officially part of the team is an enormous honour. I'm really looking forward to the rest of the season together and the start of a great partnership."
As part of Team Shires, Matthew joins the sponsored rider team of British, Irish, Canadian and American riders across different disciplines and levels.
Since 1968, Shires Equestrian have been an integral part of the equestrian trade industry, supplying horse and rider alike with great products that stand the test of time. Shires is a family-run business, well-established as one of the leading names in equestrian equipment, and a major player on the world stage.
"Matthew has a true fighting spirit with a wealth of experience. Everyone at Shires is proud to be supporting him in his comeback year."
Both Shires and Matthew are looking forward to the rest of 2018. Matthew in particular, cannot wait to get back into action.
matthew wright, news, team shires
Shires Equestrian has a new blog!
Style Spotlight: Riding Tights


text:
package org.apache.drill.exec.physical.impl.mergereceiver;

import java.io.IOException;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.PriorityQueue;
import java.util.ArrayList;

import org.apache.calcite.rel.RelFieldCollation.Direction;
import org.apache.drill.common.exceptions.DrillRuntimeException;
import org.apache.drill.common.expression.ErrorCollector;
import org.apache.drill.common.expression.ErrorCollectorImpl;
import org.apache.drill.common.expression.LogicalExpression;
import org.apache.drill.common.expression.SchemaPath;
import org.apache.drill.common.logical.data.Order.Ordering;
import org.apache.drill.exec.compile.sig.GeneratorMapping;
import org.apache.drill.exec.compile.sig.MappingSet;
import org.apache.drill.exec.exception.ClassTransformationException;
import org.apache.drill.exec.exception.OutOfMemoryException;
import org.apache.drill.exec.exception.SchemaChangeException;
import org.apache.drill.exec.expr.ClassGenerator;
import org.apache.drill.exec.expr.ClassGenerator.HoldingContainer;
import org.apache.drill.exec.expr.CodeGenerator;
import org.apache.drill.exec.expr.ExpressionTreeMaterializer;
import org.apache.drill.exec.expr.fn.FunctionGenerationHelper;
import org.apache.drill.exec.ops.ExchangeFragmentContext;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.ops.MetricDef;
import org.apache.drill.exec.physical.MinorFragmentEndpoint;
import org.apache.drill.exec.physical.config.MergingReceiverPOP;
import org.apache.drill.exec.proto.BitControl.FinishedReceiver;
import org.apache.drill.exec.proto.BitData;
import org.apache.drill.exec.proto.ExecProtos.FragmentHandle;
import org.apache.drill.exec.proto.GeneralRPCProtos.Ack;
import org.apache.drill.exec.proto.UserBitShared;
import org.apache.drill.exec.proto.UserBitShared.SerializedField;
import org.apache.drill.exec.record.AbstractRecordBatch;
import org.apache.drill.exec.record.BatchSchema;
import org.apache.drill.exec.record.BatchSchema.SelectionVectorMode;
import org.apache.drill.exec.record.ExpandableHyperContainer;
import org.apache.drill.exec.record.MaterializedField;
import org.apache.drill.exec.record.RawFragmentBatch;
import org.apache.drill.exec.record.RawFragmentBatchProvider;
import org.apache.drill.exec.record.RecordBatch;
import org.apache.drill.exec.record.RecordBatchLoader;
import org.apache.drill.exec.record.SchemaBuilder;
import org.apache.drill.exec.record.TypedFieldId;
import org.apache.drill.exec.record.VectorAccessible;
import org.apache.drill.exec.record.VectorContainer;
import org.apache.drill.exec.record.VectorWrapper;
import org.apache.drill.exec.record.WritableBatch;
import org.apache.drill.exec.record.selection.SelectionVector2;
import org.apache.drill.exec.record.selection.SelectionVector4;
import org.apache.drill.exec.rpc.RpcException;
import org.apache.drill.exec.rpc.RpcOutcomeListener;
import org.apache.drill.exec.testing.ControlsInjector;
import org.apache.drill.exec.testing.ControlsInjectorFactory;
import org.apache.drill.exec.vector.AllocationHelper;
import org.apache.drill.exec.vector.CopyUtil;
import org.apache.drill.exec.vector.FixedWidthVector;
import org.apache.drill.exec.vector.ValueVector;

import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.sun.codemodel.JConditional;
import com.sun.codemodel.JExpr;

import io.netty.buffer.ByteBuf;

/**
 * The MergingRecordBatch merges pre-sorted record batches from remote senders.
 */
public class MergingRecordBatch extends AbstractRecordBatch<MergingReceiverPOP> implements RecordBatch {
  private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(MergingRecordBatch.class);
  private static final ControlsInjector injector = ControlsInjectorFactory.getInjector(MergingRecordBatch.class);

  private static final int OUTGOING_BATCH_SIZE = 32 * 1024;

  private RecordBatchLoader[] batchLoaders;
  private final RawFragmentBatchProvider[] fragProviders;
  private final ExchangeFragmentContext context;
  private VectorContainer outgoingContainer;
  private MergingReceiverGeneratorBase merger;
  private final MergingReceiverPOP config;
  private boolean hasRun = false;
  private boolean outgoingBatchHasSpace = true;
  private boolean hasMoreIncoming = true;

  private int outgoingPosition = 0;
  private int senderCount = 0;
  private RawFragmentBatch[] incomingBatches;
  private int[] batchOffsets;
  private PriorityQueue <Node> pqueue;
  private RawFragmentBatch[] tempBatchHolder;
  private long[] inputCounts;
  private long[] outputCounts;

  public enum Metric implements MetricDef {
    BYTES_RECEIVED,
    NUM_SENDERS,
    NEXT_WAIT_NANOS;

    @Override
    public int metricId() {
      return ordinal();
    }
  }

  public MergingRecordBatch(final ExchangeFragmentContext context,
                            final MergingReceiverPOP config,
                            final RawFragmentBatchProvider[] fragProviders) throws OutOfMemoryException {
    super(config, context, true, context.newOperatorContext(config));
    this.fragProviders = fragProviders;
    this.context = context;
    this.outgoingContainer = new VectorContainer(oContext);
    this.stats.setLongStat(Metric.NUM_SENDERS, config.getNumSenders());
    this.config = config;
    this.inputCounts = new long[config.getNumSenders()];
    this.outputCounts = new long[config.getNumSenders()];
  }

  @SuppressWarnings("resource")
  private RawFragmentBatch getNext(final int providerIndex) throws IOException {
    stats.startWait();
    final RawFragmentBatchProvider provider = fragProviders[providerIndex];
    try {
      injector.injectInterruptiblePause(context.getExecutionControls(), "waiting-for-data", logger);
      final RawFragmentBatch b = provider.getNext();
      if (b != null) {
        stats.addLongStat(Metric.BYTES_RECEIVED, b.getByteCount());
        stats.batchReceived(0, b.getHeader().getDef().getRecordCount(), false);
        inputCounts[providerIndex] += b.getHeader().getDef().getRecordCount();
      }
      return b;
    } catch(final InterruptedException e) {
      // Preserve evidence that the interruption occurred so that code higher up on the call stack can learn of the
      // interruption and respond to it if it wants to.
      Thread.currentThread().interrupt();

      return null;
    } finally {
      stats.stopWait();
    }
  }

  private void clearBatches(List<RawFragmentBatch> batches) {
    for (RawFragmentBatch batch : batches) {
      if (batch != null) {
        batch.release();
      }
    }
  }

  @Override
  public IterOutcome innerNext() {
    if (fragProviders.length == 0) {
      return IterOutcome.NONE;
    }
    boolean schemaChanged = false;

    if (!outgoingBatchHasSpace) {
      logger.debug("Outgoing vectors were full on last iteration");
      allocateOutgoing();
      outgoingPosition = 0;
      outgoingBatchHasSpace = true;
    }

    if (!hasMoreIncoming) {
      logger.debug("next() was called after all values have been processed");
      outgoingPosition = 0;
      return IterOutcome.NONE;
    }

    List<UserBitShared.SerializedField> fieldList = null;
    boolean createDummyBatch = false;

    // lazy initialization
    if (!hasRun) {
      schemaChanged = true; // first iteration is always a schema change

      // set up each (non-empty) incoming record batch
      final List<RawFragmentBatch> rawBatches = Lists.newArrayList();
      int p = 0;
      for (@SuppressWarnings("unused") final RawFragmentBatchProvider provider : fragProviders) {
        RawFragmentBatch rawBatch;
        // check if there is a batch in temp holder before calling getNext(), as it may have been used when building schema
        if (tempBatchHolder[p] != null) {
          rawBatch = tempBatchHolder[p];
          tempBatchHolder[p] = null;
        } else {
          try {
            rawBatch = getNext(p);
          } catch (final IOException e) {
            context.getExecutorState().fail(e);
            return IterOutcome.STOP;
          }
        }
        if (rawBatch == null && !context.getExecutorState().shouldContinue()) {
          clearBatches(rawBatches);
          return IterOutcome.STOP;
        }

        // If rawBatch is null, go ahead and add it to the list. We will create dummy batches
        // for all null batches later.
        if (rawBatch == null) {
          createDummyBatch = true;
          rawBatches.add(rawBatch);
          p++; // move to next sender
          continue;
        }

        if (fieldList == null && rawBatch.getHeader().getDef().getFieldCount() != 0) {
          // save the schema to fix up empty batches with no schema if needed.
            fieldList = rawBatch.getHeader().getDef().getFieldList();
        }

        if (rawBatch.getHeader().getDef().getRecordCount() != 0) {
          rawBatches.add(rawBatch);
        } else {
          // keep reading till we get a batch with record count > 0 or we have no more batches to read i.e. we get null
          try {
            while ((rawBatch = getNext(p)) != null && rawBatch.getHeader().getDef().getRecordCount() == 0) {
              // Do nothing
            }
            if (rawBatch == null && !context.getExecutorState().shouldContinue()) {
              clearBatches(rawBatches);
              return IterOutcome.STOP;
            }
          } catch (final IOException e) {
            context.getExecutorState().fail(e);
            clearBatches(rawBatches);
            return IterOutcome.STOP;
          }
          if (rawBatch == null || rawBatch.getHeader().getDef().getFieldCount() == 0) {
            createDummyBatch = true;
          }
          // Even if rawBatch is null, go ahead and add it to the list.
          // We will create dummy batches for all null batches later.
          rawBatches.add(rawBatch);
        }
        p++;
      }

      // If no batch arrived with schema from any of the providers, just return NONE.
      if (fieldList == null) {
        return IterOutcome.NONE;
      }

      // Go through and fix schema for empty batches.
      if (createDummyBatch) {
        // Create dummy record batch definition with 0 record count
        UserBitShared.RecordBatchDef dummyDef = UserBitShared.RecordBatchDef.newBuilder()
            // we cannot use/modify the original field list as that is used by
            // valid record batch.
            // create a copy of field list with valuecount = 0 for all fields.
            // This is for dummy schema generation.
            .addAllField(createDummyFieldList(fieldList))
            .setRecordCount(0)
            .build();

        // Create dummy header
        BitData.FragmentRecordBatch dummyHeader = BitData.FragmentRecordBatch.newBuilder()
            .setIsLastBatch(true)
            .setDef(dummyDef)
            .build();

        for (int i = 0; i < p; i++) {
          RawFragmentBatch rawBatch = rawBatches.get(i);
          if (rawBatch == null || rawBatch.getHeader().getDef().getFieldCount() == 0) {
            rawBatch = new RawFragmentBatch(dummyHeader, null, null);
            rawBatches.set(i, rawBatch);
          }
        }
      }

      // allocate the incoming record batch loaders
      senderCount = rawBatches.size();
      incomingBatches = new RawFragmentBatch[senderCount];
      batchOffsets = new int[senderCount];
      batchLoaders = new RecordBatchLoader[senderCount];
      for (int i = 0; i < senderCount; ++i) {
        incomingBatches[i] = rawBatches.get(i);
        batchLoaders[i] = new RecordBatchLoader(oContext.getAllocator());
      }

      // after this point all batches have moved to incomingBatches
      rawBatches.clear();

      int i = 0;
      for (final RawFragmentBatch batch : incomingBatches) {
        // initialize the incoming batchLoaders
        final UserBitShared.RecordBatchDef rbd = batch.getHeader().getDef();
        try {
          batchLoaders[i].load(rbd, batch.getBody());
          // TODO:  Clean:  DRILL-2933:  That load(...) no longer throws
          // SchemaChangeException, so check/clean catch clause below.
        } catch(final SchemaChangeException e) {
          logger.error("MergingReceiver failed to load record batch from remote host.  {}", e);
          context.getExecutorState().fail(e);
          return IterOutcome.STOP;
        }
        batch.release();
        ++batchOffsets[i];
        ++i;
      }

      // after this point all batches have been released and their bytebuf are in batchLoaders

      // Ensure all the incoming batches have the identical schema.
      // Note: RecordBatchLoader permutes the columns to obtain the same columns order for all batches.
      if (!isSameSchemaAmongBatches(batchLoaders)) {
        context.getExecutorState().fail(new SchemaChangeException("Incoming batches for merging receiver have different schemas!"));
        return IterOutcome.STOP;
      }

      // create the outgoing schema and vector container, and allocate the initial batch
      final SchemaBuilder bldr = BatchSchema.newBuilder().setSelectionVectorMode(BatchSchema.SelectionVectorMode.NONE);
      for (final VectorWrapper<?> v : batchLoaders[0]) {

        // add field to the output schema
        bldr.addField(v.getField());

        // allocate a new value vector
        outgoingContainer.addOrGet(v.getField());
      }
      allocateOutgoing();

      outgoingContainer.buildSchema(BatchSchema.SelectionVectorMode.NONE);

      // generate code for merge operations (copy and compare)
      try {
        merger = createMerger();
      } catch (final SchemaChangeException e) {
        logger.error("Failed to generate code for MergingReceiver.  {}", e);
        context.getExecutorState().fail(e);
        return IterOutcome.STOP;
      }

      // allocate the priority queue with the generated comparator
      this.pqueue = new PriorityQueue<>(fragProviders.length, new Comparator<Node>() {
        @Override
        public int compare(final Node node1, final Node node2) {
          final int leftIndex = (node1.batchId << 16) + node1.valueIndex;
          final int rightIndex = (node2.batchId << 16) + node2.valueIndex;
          try {
            return merger.doEval(leftIndex, rightIndex);
          } catch (SchemaChangeException e) {
            throw new UnsupportedOperationException(e);
          }
        }
      });

      // populate the priority queue with initial values
      for (int b = 0; b < senderCount; ++b) {
        while (batchLoaders[b] != null && batchLoaders[b].getRecordCount() == 0) {
          try {
            final RawFragmentBatch batch = getNext(b);
            incomingBatches[b] = batch;
            if (batch != null) {
              batchLoaders[b].load(batch.getHeader().getDef(), batch.getBody());
            } else {
              batchLoaders[b].clear();
              batchLoaders[b] = null;
              if (!context.getExecutorState().shouldContinue()) {
                return IterOutcome.STOP;
              }
            }
          } catch (IOException | SchemaChangeException e) {
            context.getExecutorState().fail(e);
            return IterOutcome.STOP;
          }
        }
        if (batchLoaders[b] != null) {
          pqueue.add(new Node(b, 0));
        }
      }

      hasRun = true;
      // finished lazy initialization
    }

    while (outgoingBatchHasSpace) {
      // poll next value from pq and copy to outgoing batch
      final Node node = pqueue.poll();
      if (node == null) {
        break;
      }
      outgoingBatchHasSpace = copyRecordToOutgoingBatch(node);

      if (node.valueIndex == batchLoaders[node.batchId].getRecordCount() - 1) {
        // reached the end of an incoming record batch
        RawFragmentBatch nextBatch;
        try {
          nextBatch = getNext(node.batchId);

          while (nextBatch != null && nextBatch.getHeader().getDef().getRecordCount() == 0) {
            nextBatch = getNext(node.batchId);
          }

          assert nextBatch != null || inputCounts[node.batchId] == outputCounts[node.batchId]
              : String.format("Stream %d input count: %d output count %d", node.batchId, inputCounts[node.batchId], outputCounts[node.batchId]);
          if (nextBatch == null && !context.getExecutorState().shouldContinue()) {
            return IterOutcome.STOP;
          }
        } catch (final IOException e) {
          context.getExecutorState().fail(e);
          return IterOutcome.STOP;
        }

        incomingBatches[node.batchId] = nextBatch;

        if (nextBatch == null) {
          // batch is empty
          boolean allBatchesEmpty = true;

          for (final RawFragmentBatch batch : incomingBatches) {
            // see if all batches are empty so we can return OK_* or NONE
            if (batch != null) {
              allBatchesEmpty = false;
              break;
            }
          }

          if (allBatchesEmpty) {
            hasMoreIncoming = false;
            break;
          }

          // this batch is empty; since the pqueue no longer references this batch, it will be
          // ignored in subsequent iterations.
          continue;
        }

        final UserBitShared.RecordBatchDef rbd = incomingBatches[node.batchId].getHeader().getDef();
        try {
          batchLoaders[node.batchId].load(rbd, incomingBatches[node.batchId].getBody());
          // TODO:  Clean:  DRILL-2933:  That load(...) no longer throws
          // SchemaChangeException, so check/clean catch clause below.
        } catch(final SchemaChangeException ex) {
          context.getExecutorState().fail(ex);
          return IterOutcome.STOP;
        }
        incomingBatches[node.batchId].release();
        batchOffsets[node.batchId] = 0;

        // add front value from batch[x] to priority queue
        if (batchLoaders[node.batchId].getRecordCount() != 0) {
          node.valueIndex = 0;
          pqueue.add(node);
        }

      } else {
        node.valueIndex++;
        pqueue.add(node);
      }

    }

    // set the value counts in the outgoing vectors
    for (final VectorWrapper<?> vw : outgoingContainer) {
      vw.getValueVector().getMutator().setValueCount(outgoingPosition);
    }

    if (pqueue.isEmpty()) {
      state = BatchState.DONE;
    }

    if (schemaChanged) {
      return IterOutcome.OK_NEW_SCHEMA;
    }
    else {
      return IterOutcome.OK;
    }
  }

  // Create dummy field that will be used for empty batches.
  private UserBitShared.SerializedField createDummyField(UserBitShared.SerializedField field) {
    UserBitShared.SerializedField.Builder newDummyFieldBuilder = UserBitShared.SerializedField.newBuilder()
        .setVarByteLength(0)
        .setBufferLength(0)
        .setValueCount(0)
        .setNamePart(field.getNamePart())
        .setMajorType(field.getMajorType());

    int index = 0;
    for (UserBitShared.SerializedField childField : field.getChildList()) {
      // make sure we make a copy of all children, so we do not corrupt the
      // original fieldList. This will recursively call itself.
      newDummyFieldBuilder.addChild(index, createDummyField(childField));
      index++;
    }

    UserBitShared.SerializedField newDummyField = newDummyFieldBuilder.build();

    return newDummyField;
  }

  // Create a dummy field list that we can use for empty batches.
  private List<UserBitShared.SerializedField> createDummyFieldList(List<UserBitShared.SerializedField> fieldList) {
    List<UserBitShared.SerializedField> dummyFieldList = new ArrayList<UserBitShared.SerializedField>();

    for (UserBitShared.SerializedField field : fieldList) {
      dummyFieldList.add(createDummyField(field));
    }

    return dummyFieldList;
  }

  @Override
  public FragmentContext getContext() {
    return context;
  }

  @Override
  public BatchSchema getSchema() {
    return outgoingContainer.getSchema();
  }

  @Override
  public void buildSchema() throws SchemaChangeException {
    // find frag provider that has data to use to build schema, and put in tempBatchHolder for later use
    tempBatchHolder = new RawFragmentBatch[fragProviders.length];
    int i = 0;
    try {
      while (true) {
        if (i >= fragProviders.length) {
          state = BatchState.DONE;
          return;
        }
        final RawFragmentBatch batch = getNext(i);
        if (batch == null) {
          if (!context.getExecutorState().shouldContinue()) {
            state = BatchState.STOP;
          } else {
            state = BatchState.DONE;
          }
          break;
        }
        if (batch.getHeader().getDef().getFieldCount() == 0) {
          i++;
          continue;
        }
        tempBatchHolder[i] = batch;
        for (final SerializedField field : batch.getHeader().getDef().getFieldList()) {
          @SuppressWarnings("resource")
          final ValueVector v = outgoingContainer.addOrGet(MaterializedField.create(field));
          v.allocateNew();
        }
        break;
      }
    } catch (final IOException e) {
      throw new DrillRuntimeException(e);
    }
    outgoingContainer.buildSchema(SelectionVectorMode.NONE);
  }

  @Override
  public int getRecordCount() {
    return outgoingPosition;
  }

  @Override
  public void kill(final boolean sendUpstream) {
    if (sendUpstream) {
      informSenders();
    } else {
      close();
    }

    for (final RawFragmentBatchProvider provider : fragProviders) {
      provider.kill(context);
    }
  }

  private void informSenders() {
    logger.info("Informing senders of request to terminate sending.");
    final FragmentHandle handlePrototype = FragmentHandle.newBuilder()
            .setMajorFragmentId(config.getOppositeMajorFragmentId())
            .setQueryId(context.getHandle().getQueryId())
            .build();
    for (final MinorFragmentEndpoint providingEndpoint : config.getProvidingEndpoints()) {
      final FragmentHandle sender = FragmentHandle.newBuilder(handlePrototype)
              .setMinorFragmentId(providingEndpoint.getId())
              .build();
      final FinishedReceiver finishedReceiver = FinishedReceiver.newBuilder()
              .setReceiver(context.getHandle())
              .setSender(sender)
              .build();
      context.getController()
        .getTunnel(providingEndpoint.getEndpoint())
        .informReceiverFinished(new OutcomeListener(), finishedReceiver);
    }
  }

  // TODO: Code duplication. UnorderedReceiverBatch has the same implementation.
  private class OutcomeListener implements RpcOutcomeListener<Ack> {

    @Override
    public void failed(final RpcException ex) {
      logger.warn("Failed to inform upstream that receiver is finished");
    }

    @Override
    public void success(final Ack value, final ByteBuf buffer) {
      // Do nothing
    }

    @Override
    public void interrupted(final InterruptedException e) {
      if (context.getExecutorState().shouldContinue()) {
        final String errMsg = "Received an interrupt RPC outcome while sending ReceiverFinished message";
        logger.error(errMsg, e);
        context.getExecutorState().fail(new RpcException(errMsg, e));
      }
    }
  }

  @Override
  protected void killIncoming(final boolean sendUpstream) {
    //No op
  }

  @Override
  public Iterator<VectorWrapper<?>> iterator() {
    return outgoingContainer.iterator();
  }

  @Override
  public SelectionVector2 getSelectionVector2() {
    throw new UnsupportedOperationException();
  }

  @Override
  public SelectionVector4 getSelectionVector4() {
    throw new UnsupportedOperationException();
  }

  @Override
  public TypedFieldId getValueVectorId(final SchemaPath path) {
    return outgoingContainer.getValueVectorId(path);
  }

  @Override
  public VectorWrapper<?> getValueAccessorById(final Class<?> clazz, final int... ids) {
    return outgoingContainer.getValueAccessorById(clazz, ids);
  }

  @Override
  public WritableBatch getWritableBatch() {
    return WritableBatch.get(this);
  }

  private boolean isSameSchemaAmongBatches(final RecordBatchLoader[] batchLoaders) {
    Preconditions.checkArgument(batchLoaders.length > 0, "0 batch is not allowed!");

    final BatchSchema schema = batchLoaders[0].getSchema();

    for (int i = 1; i < batchLoaders.length; i++) {
      if (!schema.equals(batchLoaders[i].getSchema())) {
        logger.error("Schemas are different. Schema 1 : " + schema + ", Schema 2: " + batchLoaders[i].getSchema() );
        return false;
      }
    }
    return true;
  }

  private void allocateOutgoing() {
    for (final VectorWrapper<?> w : outgoingContainer) {
      @SuppressWarnings("resource")
      final ValueVector v = w.getValueVector();
      if (v instanceof FixedWidthVector) {
        AllocationHelper.allocate(v, OUTGOING_BATCH_SIZE, 1);
      } else {
        v.allocateNewSafe();
      }
    }
  }

  /**
   * Creates a generate class which implements the copy and compare methods.
   *
   * @return instance of a new merger based on generated code
   * @throws SchemaChangeException
   */
  private MergingReceiverGeneratorBase createMerger() throws SchemaChangeException {

    try {
      final CodeGenerator<MergingReceiverGeneratorBase> cg = CodeGenerator.get(MergingReceiverGeneratorBase.TEMPLATE_DEFINITION, context.getOptions());
      cg.plainJavaCapable(true);
      // Uncomment out this line to debug the generated code.
      // cg.saveCodeForDebugging(true);
      final ClassGenerator<MergingReceiverGeneratorBase> g = cg.getRoot();

      ExpandableHyperContainer batch = null;
      boolean first = true;
      for (final RecordBatchLoader loader : batchLoaders) {
        if (first) {
          batch = new ExpandableHyperContainer(loader);
          first = false;
        } else {
          batch.addBatch(loader);
        }
      }

      generateComparisons(g, batch);

      g.setMappingSet(COPIER_MAPPING_SET);
      CopyUtil.generateCopies(g, batch, true);
      g.setMappingSet(MAIN_MAPPING);
      final MergingReceiverGeneratorBase merger = context.getImplementationClass(cg);

      merger.doSetup(context, batch, outgoingContainer);
      return merger;
    } catch (ClassTransformationException | IOException e) {
      throw new SchemaChangeException(e);
    }
  }

  public final MappingSet MAIN_MAPPING = new MappingSet( (String) null, null, ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
  public final MappingSet LEFT_MAPPING = new MappingSet("leftIndex", null, ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
  public final MappingSet RIGHT_MAPPING = new MappingSet("rightIndex", null, ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
  GeneratorMapping COPIER_MAPPING = new GeneratorMapping("doSetup", "doCopy", null, null);
  public final MappingSet COPIER_MAPPING_SET = new MappingSet(COPIER_MAPPING, COPIER_MAPPING);

  private void generateComparisons(final ClassGenerator<?> g, final VectorAccessible batch) throws SchemaChangeException {
    g.setMappingSet(MAIN_MAPPING);

    for (final Ordering od : popConfig.getOrderings()) {
      // first, we rewrite the evaluation stack for each side of the comparison.
      final ErrorCollector collector = new ErrorCollectorImpl();
      final LogicalExpression expr = ExpressionTreeMaterializer.materialize(od.getExpr(), batch, collector,context.getFunctionRegistry());
      if (collector.hasErrors()) {
        throw new SchemaChangeException("Failure while materializing expression. " + collector.toErrorString());
      }
      g.setMappingSet(LEFT_MAPPING);
      final HoldingContainer left = g.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
      g.setMappingSet(RIGHT_MAPPING);
      final HoldingContainer right = g.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
      g.setMappingSet(MAIN_MAPPING);

      // next we wrap the two comparison sides and add the expression block for the comparison.
      final LogicalExpression fh =
          FunctionGenerationHelper.getOrderingComparator(od.nullsSortHigh(), left, right,
                                                         context.getFunctionRegistry());
      final HoldingContainer out = g.addExpr(fh, ClassGenerator.BlkCreateMode.FALSE);
      final JConditional jc = g.getEvalBlock()._if(out.getValue().ne(JExpr.lit(0)));

      if (od.getDirection() == Direction.ASCENDING) {
        jc._then()._return(out.getValue());
      } else {
        jc._then()._return(out.getValue().minus());
      }
    }

    g.getEvalBlock()._return(JExpr.lit(0));
  }

  /**
   * Copy the record referenced by the supplied node to the next output position.
   * Side Effect: increments outgoing position if successful
   *
   * @param node Reference to the next record to copy from the incoming batches
   */
  private boolean copyRecordToOutgoingBatch(final Node node) {
    assert outgoingPosition < OUTGOING_BATCH_SIZE
        : String.format("Outgoing position %d must be less than bath size %d", outgoingPosition, OUTGOING_BATCH_SIZE);
    assert ++outputCounts[node.batchId] <= inputCounts[node.batchId]
        : String.format("Stream %d input count: %d output count %d", node.batchId, inputCounts[node.batchId], outputCounts[node.batchId]);
    final int inIndex = (node.batchId << 16) + node.valueIndex;
    try {
      merger.doCopy(inIndex, outgoingPosition);
    } catch (SchemaChangeException e) {
      throw new UnsupportedOperationException(e);
    }
    if (++outgoingPosition == OUTGOING_BATCH_SIZE) {
      logger.debug("Outgoing vectors space is full (batch size {}).", OUTGOING_BATCH_SIZE);
      return false;
    }
    return true;
  }

  /**
   * A Node contains a reference to a single value in a specific incoming batch.  It is used
   * as a wrapper for the priority queue.
   */
  public class Node {
    public int batchId;      // incoming batch
    public int valueIndex;   // value within the batch
    Node(final int batchId, final int valueIndex) {
      this.batchId = batchId;
      this.valueIndex = valueIndex;
    }
  }

  @Override
  public void close() {
    outgoingContainer.clear();
    if (batchLoaders != null) {
      for (final RecordBatchLoader rbl : batchLoaders) {
        if (rbl != null) {
          rbl.clear();
        }
      }
    }
    super.close();
  }

}

redpajama_set_name: RedPajamaGithub


text:
July 14, 2020 Update from Denis – It's going to take conversion!
The Youth Festival will take place – August 1-6, 2020!!
Dear Apostles of Our Lady of Medjugorje:
When Cathy awoke, she immediately felt a lightening of her spirit. Something had been lifted. She felt a new joy! Later that day we saw the announcement: the Croatian Bishop of Hvar, Mons. Petar Palic (who was eight years old when Our Lady started appearing in Medjugorje) had just been named the new Bishop of Mostar! Cathy believes grace for conversion through Our Lady's presence is now going to explode…
We have a lot of reasons to rejoice. The Permanent Papal Visitor just returned to Medjugorje and a great apostle of Our Lady of Medjugorje, Fr. Daniel Klimek was just ordained to the priesthood. Fr. Daniel's series "Living the Message" and his "Fruit of Medjugorje" episodes (# 009 and # 227) can still be viewed on Mary TV.
Oxford University Press published Fr. Daniel's PhD dissertation on the medical studies conducted on the visionaries. His work brings empirical scientific evidence in support of the authenticity of Our Lady's apparitions in Medjugorje. (And the world's most prestigious academic publisher insisted the word "Medjugorje" be in the book's title.)
Remembering a prophecy given by Fr. Michael Scanlan in 1976, that it appears is being fulfilled today, a Catholic evangelist recently asked:
"What is it going to take to wake up souls? What is it going to take to shake us out of our complacency, our luke warmness, our indifference to the things of God, and our worldliness, and to re-center our lives on Jesus? …What is it going to take?"
It's going to take conversion!
Conversion comes only by grace. Conversion is offered from Heaven!
We've all been watching the devil play his hand. Now let's watch the "ace up the sleeve" of the Father for these times. "Medjugorje is the spiritual center of the world!" (St. Pope John Paul ll, November 24, 1990).
Cathy wrote about it in today's reflection. Here is the link:
https://marytv.tv/july-14-2020-reflection-the-grace-of-conversion/
Remember, you can now share all of Mary TV's videos with others through Facebook, twitter and email!
Also, this year's youth festival will take place from August 1 to 6, in Medjugorje – And since the boarders are still closed only the young people from the local area will be able to attend. But the entire event will be live-streamed as usual through Mary TV! We will be very busy that week!!
Thank you and God bless you!
Denis Nolan
Consider joining Mary TV's team by pledging a monthly donation:
To become a supporter in the work of Mary TV through a donation, click on the "Donate" popup in the upper right hand corner of our home page to find the best way for you to donate to Mary TV. Thank you!!!
www.marytv.tv


Eating at restaurants is my financial kryptonite. Still every now and again it's fun to go out to eat with the family or friends. The key is not going crazy. We have some tricks we use to save money eating out. There are a few key areas that if you can master make eating in restaurants easier on your wallet.
The easiest way to save money on dining out is to snack a bit before getting there. That way you aren't famished when you get there and order everything on the menu. You'll eat less, and cut down on the food you order and your food bill at the same time. Have an appetizer or something else to curb the hunger and you will keep your appetite in check.
There are tons of restaurants fighting for your business every night of the week. Make sure you some shopping around to find some great places where your kids can dine for free.
Check out this list of over 60 places where kids can eat free (or almost free).
Depending on where you live, more restaurants are offering a BYOB service with a corkage fee.
Check with your local restaurant to see if this allowed. With markups on alcohol being around 300% or more you would be saving huge by bringing that bottle from home.
Check out this wine carrying case for some ideas.
As a Costco member you have access to some great discounted gift cards. You can routinely save 10% to 20% on restaurant gift cards. Make a point to check for which restaurants are offering discounted cards at your local Costco.
Check out Costco's online gift cards to start saving upwards of 20% on your restaurant gift cards.
Before you go out to eat next time, pop over to Gift Card Granny and see if you can get a discounted gift card for your next restaurant.
You can save anywhere from 5% to 55% on various restaurants. It's so simple and it's a great way to stretch your dining out dollars.
Check out Gift Card Granny for some great discounted restaurant gift cards.
The mark up on drinks in a restaurant can get a little crazy. Skip the pop and the alcohol. Instead opt for water and this will greatly reduce the cost when your check comes.
When it comes to water get it from the tap to max out your savings.
Who doesnt' love the bread at these places?
Seriously, I could literally sit down and just eat bread. If they are offering up free bread you can easily cut down the size of your entree. Doing this means you can order and enjoy a smaller portion (at a fraction of the cost)!
Have you ever noticed that as plates get bigger, so do the meals?! If you aren't in the habit of eating a full entree maybe you can split the plate with your partner and save the full price of a second entree.We routinely do this at restaurants.
It might feel weird the first time, but the savings making it worth when you are eating in restaurants.
If you aren't a big eater, or you were wise and pre-gamed before going out, it's way more affordable to order an appetizer than it is an entree.
Order an app or two or split a plate of nachos (a personal fave btw), nothing spells savings like sharing a plate of nachos.
If you are like me, you may have noticed that the best deal is usually the largest. This is pretty common when it comes to restaurants.
When you can separate yourself from the fact that the smallest portion may be least value portion, buying the cheaper portion does still save you money.
I love bacon and cheese just as much as the next guy, but there is an added cost that doesn't make sense. $1.50 for 10 cents slice of cheese can be a bit unnecessary. Don't even get me started on the price of guacamole lately!
Skip the add-ons, if you need something ask for a substitute, you are likely to get it for free. Why? Because their systems are often set up for add ons, but substitutes are a different thing. It's strange but it works quite a bit.
I've never met a 7 layered chocolate dish I didn't like. But the desert prices in restaurants are a very expensive option. Instead convince your friends to go back to your place and have a desert and coffee at home with your group.
That way the night can keep going.
Find this helpful? Help others save money eating out by sharing this!
Sent To You Once A Week.
So You Can Take Action!
Get our weekly email with our best ideas for saving money.
We always split entrees, they are plenty for two people. And we are two distance running competitive tennis players who work off a ton of calories. When I'm on an expense account it means we both eat free and when I'm not, its half price! We never get dessert and usually do not get much alcohol out due to the mark up. Good ideas!


text:
izzit.org
Demo Course
U.S. Constitution/Bill of Rights
Q53 – What is one promise you make when you become a United States citizen?
Answer(s)
Give up loyalty to other countries
Defend the Constitution and laws of the United States
Obey the laws of the United States
Serve in the military (if needed)
Serve (help, do important work for) the nation (if needed)
Be loyal to the United States
Q52 – What do we show loyalty to when we say the Pledge of Allegiance?
Q49 – What is one responsibility that is only for United States citizens?
Serve on a jury
Vote in a federal election
Q47 – What is the name of the speaker of the House of Representatives now?
Visit uscis.gov/citizenship/testupdates for the name of the Speaker of the House of Representatives.
Q45 – What are the two major political parties in the United States?
Democratic and Republican
Q44 – What is the capital of your state?
Answers will vary. [District of Columbia residents should answer that D.C. is not a state and does not have a capital. Residents of U.S. territories should name the capital of the territory.]
Q38 – What is the highest court in the United States?
Q29 – What is the name of the vice president of the United States now?
Visit uscis.gov/citizenship/testupdates for the name of the vice president of the United States.
Q28 – What is the name of the president of the United States now?
Visit uscis.gov/citizenship/testupdates for the name of the president of the United States.
Q27 – In what month do we vote for president?
←Previous page Page 1 Page 2 Page 3 Next page→
Copyright 2021 - All Rights Reserved | Designed by WisdmLabs


The secret behind the Crème de la Crème brand is the firm commitment of several people to do things as best as possible. Crème de la Crème means the cream of the crop or the best of the best. Everything we sell we make ourselves, and we stand behind our products. All of our artisan Italian gelato recipes are created by Honza Hochsteiger, alias "Mr Ice Cream", who has worked for many years in Italy and other places around the world for the best Italian gelato makers, and now he makes the finest Italian gelato for you here in Prague.