<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ sports - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ sports - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Wed, 24 Jun 2026 17:36:11 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/sports/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Where Data Science meets Sports Analytics with Ken Jee [Podcast Interview #135] ]]>
                </title>
                <description>
                    <![CDATA[ On this week's episode of the podcast, I interview Ken Jee. Ken's a Data Scientist. He's also a Sports Analytics practitioner who works with US Team Golf and USA Basketball. Ken hosts the excellent Ken's Nearest Neighbors podcast and the Exponential ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/where-data-science-meets-sports-analytics-with-ken-jee-podcast-interview-135/</link>
                <guid isPermaLink="false">66ace689028fa1067f03a05b</guid>
                
                    <category>
                        <![CDATA[ podcast ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Data Science ]]>
                    </category>
                
                    <category>
                        <![CDATA[ sports ]]>
                    </category>
                
                    <category>
                        <![CDATA[ analytics ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Quincy Larson ]]>
                </dc:creator>
                <pubDate>Fri, 02 Aug 2024 14:00:41 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1722162236835/5e458f87-0c04-44a3-a601-007ee03d713f.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>On this week's episode of the podcast, I interview Ken Jee. Ken's a Data Scientist. He's also a Sports Analytics practitioner who works with US Team Golf and USA Basketball.</p>
<p>Ken hosts the excellent Ken's Nearest Neighbors podcast and the Exponential Athelete podcast.</p>
<p>We talk about:</p>
<ul>
<li><p>How an injury pushed Ken out of pro sports and into data science</p>
</li>
<li><p>How Ken explains his statistical insights to coaches and players to help them improve their performance</p>
</li>
<li><p>Why Ken doesn't think building projects is all that useful anymore. "Data Scientists should instead build products."</p>
</li>
<li><p>How Ken starts and ends each day with meditation, and writes down all the ideas that pop into his head after each session.</p>
</li>
<li><p>Ken's observation that: "Who is the best suited to excel in a world where AI tools are prominent? Probably the people who are building them. People in the data science domain, people who are coding – they're the most prepared to use these tools for other things."</p>
</li>
</ul>
<p>Can you guess what song I'm playing on my bass during the intro? It's from a 2006 dance song, and it was originally played on a synth.</p>
<p>Also, I want to thank the 9,779 kind people who support our charity each month, and who make this podcast possible. You can join them and support our mission at: <a target="_blank" href="https://www.freecodecamp.org/donate">https://www.freecodecamp.org/donate</a></p>
<p>You can watch the interview on YouTube:</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/y8owE6swaLw" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p> </p>
<p>Or you can listen to the podcast in Apple Podcasts, Spotify, or your favorite podcast app. Be sure to follow the freeCodeCamp Podcast there so you'll get new episodes each Friday.</p>
<p>Links we talk about during our conversation:</p>
<p>Ken's Nearest Neighbors Podcast: <a target="_blank" href="https://www.youtube.com/channel/UCpEJMMRoTIHJ8vG8q_EwqCg">https://www.youtube.com/channel/UCpEJMMRoTIHJ8vG8q_EwqCg</a></p>
<p>The Exponential Athelete Podcast, also hosted by Ken: <a target="_blank" href="https://www.youtube.com/playlist?list=PLAkSd12rP282takuFJKsAsYlHdpdEDhuE">https://www.youtube.com/playlist?list=PLAkSd12rP282takuFJKsAsYlHdpdEDhuE</a></p>
<p>The Founders podcast, which both Ken and Quincy listen to. James Dyson episode: <a target="_blank" href="https://www.founderspodcast.com/episodes/88384801/senra-james-dyson-against-the-odds-an-autobiography">https://www.founderspodcast.com/episodes/88384801/senra-james-dyson-against-the-odds-an-autobiography</a></p>
<p>Anna Wintour episode: <a target="_blank" href="https://www.founderspodcast.com/episodes/58741411/senra-326-anna-wintour">https://www.founderspodcast.com/episodes/58741411/senra-326-anna-wintour</a></p>
<p>San Antonio caves that Quincy visited: <a target="_blank" href="https://naturalbridgecaverns.com/">https://naturalbridgecaverns.com/</a></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to implement WebSockets in Rails 4 ]]>
                </title>
                <description>
                    <![CDATA[ By Arun Mathew Kurian WebSockets can be implemented in Rails5 using ActionCable. It can be used for enabling many features like chats, notifications, and other real-time modules. But, how does one achieve the same goal without ActionCable and Rails 5... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/implementing-web-sockets-in-a-rails-4-fb45696f8d8c/</link>
                <guid isPermaLink="false">66c357d2d372f14b49bdcba7</guid>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Ruby on Rails ]]>
                    </category>
                
                    <category>
                        <![CDATA[ sports ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 16 Oct 2017 08:05:29 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*irjLgFzdHlA5vZBd2p_zUg.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Arun Mathew Kurian</p>
<p>WebSockets can be implemented in Rails5 using ActionCable. It can be used for enabling many features like chats, notifications, and other real-time modules. But, how does one achieve the same goal without ActionCable and Rails 5? This blog deals with how we can implement WebSockets in Rails 4.</p>
<p>Before we start, let’s have a quick look at the concept of WebSockets.</p>
<h4 id="heading-what-are-websockets-and-how-do-they-work">What are WebSockets and how do they work?</h4>
<p>The majority of the web is based on HTTP request/responses. They enable the communication of many hosts and clients over TCP/IP transports. This means that web applications usually don’t do anything after a user visits them in a browser and parses the request and sends a response. Until the user clicks something on the page, the server won’t receive any new HTTP request. Therefore it will stand idle.</p>
<p>There are technologies that enable the server to start communication with the client when there is data to be sent. Examples are “Push” or “Comet”. There is the long polling technique which keeps an HTTP connection open once a client connects to the server. The bad thing with these approaches is the overhead of HTTP. It isn’t very good for low latency applications.</p>
<p>This is where WebSockets come into the picture. They are an API that provides “socket” persistent connections between a server and a client. This enables both server and client to send data at any time.</p>
<p>In this blog, we will create an online cricket player auction site that uses web sockets in Rails 4. The site can be used by multiple users to bid for the same player. The challenge is to update the bid without reloading the page and keeping up the live communication.</p>
<h3 id="heading-getting-started">Getting started</h3>
<p>Mainly three gems are used for implementing the web socket functionality:</p>
<p><strong>Gemfile</strong></p>
<pre><code>gem ‘faye’gem ‘thin’, <span class="hljs-attr">require</span>: falsegem ‘render_sync’
</code></pre><p>The <strong>thin</strong> is a small and fast ruby server. It should be installed with faye, as the faye gem doesn’t work with servers like webrick.</p>
<p>The next important gem is <strong>faye</strong>. Faye is a set of tools for simple publish-subscribe messaging between web clients. It ships with easy-to-use message routing servers for Node.js and Rack applications, and clients that can be used on the server and in the browser.</p>
<p>The <strong>sync</strong> or <strong>render_sync</strong> gem is used to create real-time partials with Rails. Sync lets you render partials for models that, with minimal code, update in real-time in the browser when changes occur on the server.</p>
<p>Our objective is to have a functionality which allows displaying the bid values on the show page of a user. The first step for implementing this is to install templates from the sync gem.</p>
<blockquote>
<p><strong><em>rails generate sync:install</em></strong></p>
</blockquote>
<p>And require sync in our asset pipeline.</p>
<p><strong>app/assets/javascripts/application.js</strong></p>
<pre><code><span class="hljs-comment">//= require jquery//= require jquery_ujs//= require turbolinks//= require sync//= require_tree</span>
</code></pre><p>The configuration script is required in the application layout</p>
<p><strong>app/views/layouts/application.html.erb</strong></p>
<pre><code>&lt;%= include_sync_config %&gt;
</code></pre><p>We need to create a partial and store it in the directory <strong>views/sync/</strong> as <strong>_bid_log_row.html.erb.</strong></p>
<p>This partial contains the value of the user’s bid. It will look like this:</p>
<pre><code>Current Bid: &lt;%= @bid_log.amount || ‘ — ‘ rescue nil%&gt;
</code></pre><p>And in order to render this in the show page, add the following lines in the users show page:</p>
<p><strong>app/views/users/show.html.erb</strong></p>
<pre><code>&lt;%= sync partial: ‘bid_log_row’, <span class="hljs-attr">resource</span>: @bid_log %&gt;&lt;%= sync_new partial: ‘bid_log_row’, <span class="hljs-attr">resource</span>: BidLog.new %&gt;
</code></pre><p>And lastly, make the changes in the BidLogsController so it knows how to handle remote form submissions. It also syncs the new bids in place.</p>
<pre><code><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">BidLogsController</span> &lt; <span class="hljs-title">ApplicationControllerrespond_to</span> :<span class="hljs-title">html</span>, :<span class="hljs-title">js</span></span>
</code></pre><pre><code> def index  @bid_logs = BidLog.all  @new_bid = current_user.bid_logs.build  end
</code></pre><pre><code> def create  @bid_log = current_user.bid_logs.build(bid_log_params)  <span class="hljs-keyword">if</span> @bid_log.save   sync_new @bid_log  end  respond_to <span class="hljs-keyword">do</span> |format|   format.html { redirect_to user_path(@bid_log.player_id) }   format.json { <span class="hljs-attr">head</span> :no_content }  end end
</code></pre><pre><code>private
</code></pre><pre><code> def bid_log_params  params.require(:bid_log).permit(:amount, :player_id) end
</code></pre><pre><code>end
</code></pre><h3 id="heading-configuration">Configuration</h3>
<p>Now the basic coding part is done. Next step is to configure Faye. Faye needs to run on a separate web server from the web application itself. To accomplish this, you need to create a Rackup config file. Add a faye.ru file to the root of the project and make sure it looks like this:</p>
<pre><code><span class="hljs-built_in">require</span> ‘faye’
</code></pre><pre><code>bayeux = Faye::RackAdapter.new(:<span class="hljs-function"><span class="hljs-params">mount</span> =&gt;</span> ‘/faye’, :timeout =&amp;gt; <span class="hljs-number">25</span>)
</code></pre><pre><code>bayeux.listen(<span class="hljs-number">9292</span>)
</code></pre><p>This file simply tells Rackup how to start the Faye server. Try it out to ensure that it’s working correctly. Run this in your Terminal:</p>
<blockquote>
<p><strong><em>rackup faye.ru -E production -s thin</em></strong></p>
</blockquote>
<h3 id="heading-wrapping-up">Wrapping up</h3>
<p>Now we are good to go. The application can be run by starting the Rails server. The code associated with this blog can be found <a target="_blank" href="https://github.com/jayakrishnang/AuctionManager-Sample-Bidding-App">here</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to code sports games for Amazon Alexa, plus some fun games I built ]]>
                </title>
                <description>
                    <![CDATA[ By Terren Peterson I’m both a sports nut and a software engineer. I’m also recognized as an Amazon Alexa Champion. I continue to look for new ways to stretch this technology. Over the past two years, I’ve won hackathons for skills on the Alexa platfo... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-code-sports-games-for-amazon-alexa-and-some-fun-games-i-built-8179d2142f02/</link>
                <guid isPermaLink="false">66c350a0465d1b2f886ba42a</guid>
                
                    <category>
                        <![CDATA[ Alexa ]]>
                    </category>
                
                    <category>
                        <![CDATA[ amazon echo ]]>
                    </category>
                
                    <category>
                        <![CDATA[ sports ]]>
                    </category>
                
                    <category>
                        <![CDATA[ startup ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sat, 30 Sep 2017 20:34:15 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*2MZNttNYjigeKtg43OiPZA.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Terren Peterson</p>
<p>I’m both a sports nut and a software engineer. I’m also recognized as an Amazon <a target="_blank" href="https://developer.amazon.com/alexa/champions/terren-peterson">Alexa Champion</a>. I continue to look for new ways to stretch this technology.</p>
<p>Over the past two years, I’ve won <a target="_blank" href="https://en.wikipedia.org/wiki/Hackathon">hackathons</a> for skills on the Alexa platform.</p>
<p>Skills are the part of the Alexa voice service that activates its capabilities. In Alexa, <em>skill</em> is a term used for capabilities that make an experience more personal. You can enable or disable them as you choose. And, with the Alexa Skills Kit, You can create and customize them.</p>
<h3 id="heading-sports-games-are-an-enormous-market">Sports games are an enormous market</h3>
<p>Video games are a huge market, with annual revenues projected at more than <a target="_blank" href="https://newzoo.com/insights/articles/the-global-games-market-will-reach-108-9-billion-in-2017-with-mobile-taking-42/">$100B worldwide</a>. Shooter and action games are the most popular, <a target="_blank" href="http://marketrealist.com/2016/06/action-and-sports-genres-dominate-the-video-gaming-space/">followed by sports games</a>.</p>
<p>Voice platforms are growing at a fantastic rate. The popular Amazon Alexa platform has grown by 4 times in the past year. There are now 20,000 custom skills on the Alexa platform. Yet no sports games are more complex than calling out trivia.</p>
<p>Here is a sample of my new football game called <em>End Zone Football</em>. This shows how an advanced game can work on the Alexa platform.</p>
<h3 id="heading-begin-game-design-with-storyboards">Begin game design with Storyboards</h3>
<p>Designing the skill requires writing <a target="_blank" href="https://en.wikipedia.org/wiki/Storyboard">storyboards</a> to script the action. Start with how the game will begin. Then write the narrative for basic <a target="_blank" href="https://en.wikipedia.org/wiki/Gameplay">gameplay</a>.</p>
<p>Consider yourself to be a playwright or a movie director. Ask yourself: What should the native Alexa voice say? What sounds can be played that are part of the game?</p>
<p>Here’s what I learned from publishing a Baseball and Football game on Alexa. These tips will improve the usability of your game:</p>
<ul>
<li>Keep the interaction simple<br>yes or no and 1/2/3/4 answers work best</li>
<li>Identify sounds that can make the gameplay more exciting<br>Crowd cheering, whistles, or the crack of a bat</li>
<li>Simplify the game<br>The Baseball game skills should include foul balls<br>The Football game skills should simulate penalties<br>These help keep the user engaged</li>
<li>Don’t rely on visuals<br>A background image for the Echo Show is nice, but the images on the companion app should be secondary</li>
<li>Bound the game to 2–5 minutes<br>Users can play again and again if they have time</li>
<li>Create a help function that explains the game in detail<br>Give examples of phrases to use to play</li>
<li>Above all else<br>Make it Fun!</li>
</ul>
<h3 id="heading-learn-ssml-to-include-sounds-with-voice">Learn SSML to include sounds with voice</h3>
<p><a target="_blank" href="https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/speech-synthesis-markup-language-ssml-reference">Speech Synthesis Markup Language</a> (SSML) integrates sound with voice. It’s used to create the audio for the Alexa device.</p>
<p>This is how I set the main response attribute to call the Alexa API. After splicing the strings in JavaScript, the code looks like this:</p>
<pre><code><span class="hljs-keyword">var</span> speechOutput = “Welcome to End Zone Football. “ +   “&lt;audio src=\”” + bucketLoc + “BandMusicIntro.mp3\” /&gt;” +  “The game that lets you drive the “ +   “ball down the field using just your voice. “ +   “&lt;<span class="hljs-keyword">break</span> time=\”<span class="hljs-number">1</span>s\”/&gt;” +   “You are <span class="hljs-keyword">in</span> charge <span class="hljs-keyword">of</span> the Blackbears, and are down “ +  sessionAttributes.away + “ to “ + sessionAttributes.home + “. “ +   “&lt;<span class="hljs-keyword">break</span> time=\”<span class="hljs-number">1</span>s\”/&gt;” + “The ball is on the “ +   yardline + “ yardline. “ +   “When you are ready, just call out the play you want to run, and the game will begin. “ +   “For a list <span class="hljs-keyword">of</span> plays at anytime say, Read Playbook. “;
</code></pre><p>Here are some examples of how to use SSML in this context:</p>
<ul>
<li>To create a pause  </li>
<li>To insert a soundclip<br>&lt;audio src=”https://s3.amazonaws.../file.mp3"&gt;</li>
</ul>
<p>I recommend using an <a target="_blank" href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html">S3 bucket</a> to store the media files. This is a low-cost way of storing data. And they can be accessible to Alexa.</p>
<h3 id="heading-state-management-tracks-the-progress-of-play">State management tracks the progress of play</h3>
<p>Alexa has the ability to store the gameplay state. Use this feature to simplify the coding and testing of your skill.</p>
<p>In the <a target="_blank" href="https://aws.amazon.com/sdk-for-node-js/">Node.js SDK</a>, a session attribute is passed with the request and response attributes. You can use the session attribute for the gameplay state. Store critical game information in this field. You can include anything, like the play number or recorded number of outs.</p>
<p>Here is an example used in the Football game</p>
<pre><code><span class="hljs-comment">// save the game attributes through to the next play    if (session.attributes) {          sessionAttributes = session.attributes;    }...</span>
</code></pre><pre><code><span class="hljs-comment">// gameplay rules for passingif (offensivePlaybook[i].playType === “pass” &amp;&amp;    offensivePlaybook[i].playNumber.toString() ===     intent.slots.playNumber.value) {       console.log(“Matched Play Number”);       // calculate pass distance based on play selected      passDistance = Math.round(Math.random() *         (offensivePlaybook[i].maxYardage            — offensivePlaybook[i].minYardage)            + offensivePlaybook[i].minYardage);       // make sure distance of play can’t be longer than       // the remaining field       if (passDistance &gt; sessionAttributes.yardline) {         passDistance = sessionAttributes.yardline;       }       playDesc = offensivePlaybook[i].playDesc;       speechOutput = speechOutput + playDesc + “. “;       // based on the play selected, determine relative       // completion rate       passCompletion = offensivePlaybook[i].completionRate;)...// pass back the response to Alexa, and save the gamestatecallback(sessionAttributes,                 buildSpeechletResponse(cardTitle, speechOutput,       cardOutput, repromptText, device, shouldEndSession));</span>
</code></pre><p>Storing this data in a table for analytics is helpful, but is not needed in an initial version. Let the Alexa platform do this work for you.</p>
<h3 id="heading-advertise-your-skill-on-social-media">Advertise your skill on social media</h3>
<p>People don’t yet realize all the things that an Alexa can do. When doing demos of these skills, I consistently get feedback that “I didn’t think Alexa could do that.”</p>
<p>All skills must be certified before publication on the Amazon Store. When your skill passes the certification process, take the time to record a video of it in action. It is the best way to prove what the platform is capable of.</p>
<p>Thank you for reading, and please enjoy these games — they’re free!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ I crunched the data from every episode of Netflix’s Ultimate Beastmaster ]]>
                </title>
                <description>
                    <![CDATA[ By Kande Bonfim There’s a new show on Netflix called Ultimate Beastmaster. It’s basically a clone of American Ninja Warrior: strong people running through crazy hard obstacle courses. I decided to dive in and give the show the full data science treat... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/i-crunched-the-data-from-every-episode-of-netflixs-ultimate-beastmaster-71e91e471574/</link>
                <guid isPermaLink="false">66c35742c7095d76345eaf8e</guid>
                
                    <category>
                        <![CDATA[ Data Science ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Life lessons ]]>
                    </category>
                
                    <category>
                        <![CDATA[ sports ]]>
                    </category>
                
                    <category>
                        <![CDATA[ startup ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 29 Mar 2017 04:59:58 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*pa3ZXPlXVGBZok_qoexcIQ.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Kande Bonfim</p>
<p>There’s a new show on Netflix called Ultimate Beastmaster. It’s basically a clone of American Ninja Warrior: strong people running through crazy hard obstacle courses.</p>
<p>I decided to dive in and give the show the full data science treatment. Fair warning if you haven’t watched the show yet — <strong>there are spoilers here</strong>.</p>
<p>Here we go.</p>
<h3 id="heading-the-participants">The participants</h3>
<p>There are <strong>10 episodes</strong>. <strong>9</strong> of them presenting <strong>12 new participants each</strong>. <strong>108 people</strong> jumping like crazy trying to be the next <strong>Ultimate Beastmaster</strong> while you eat a family-sized Cheetos<strong>.</strong></p>
<p>The following graph gives a big picture of what happened in the show. <strong>I’m excluding the final here, because we’ll talk about it separately later in this article.</strong></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/RbyZfyraQX0dRfMsjClCjW0PjFYP96nZ8Nw8" alt="Image" width="800" height="441" loading="lazy">
<em>The Ultimate Scatterplot</em></p>
<p>Now let's get dive into the data.</p>
<h4 id="heading-gender">Gender</h4>
<p>Unfortunately, there's still a huge difference in the number of men and women in the <em>Ultimate Beastmaster</em>. Only <strong>22 women</strong> faced the beast. <strong>That's 20.4% percent of the competitors.</strong></p>
<p>It gets even worse: All the women were eliminated in the first (81%) and second level (13%). The only exception was the young student ?? Si<strong>lke Sollfrank (1</strong>8 yrs) that got eliminated on Level 3. That's it. No <strong>woman in the finals.</strong> ?</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/XYwzjvaesGvfUcrRQLwMubJc9rfjNYaYB-SI" alt="Image" width="800" height="429" loading="lazy">
<em>?? Mi<strong>mi Bonny w</strong>as one of the 5 <strong>woman eliminated on Throat Erosion w</strong>here competitors must use an industrial trampoline to jump and grab a lever releasing a climbing wall. Th<strong>is obstacle eliminated just women.</strong></em></p>
<p><strong>That made me think about how the show should handle with some advantages the average male body has over the female’s in this competition. </strong>Some obstacles were way too hard to beat if you are shorter than average<strong>.</strong></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/egTuXWCMEdvy6UgtbgIMILIXiUcIsg6g3cI-" alt="Image" width="800" height="488" loading="lazy">
<em>This is not a music wave. It's a histogram.</em></p>
<h4 id="heading-age"><strong>Age</strong></h4>
<p><strong>The age of the participants varies </strong>from 18 to 40 years<strong> (29.1 Avg.). The five youngest ones are German (no clue why).</strong></p>
<p><strong>The Beastmasters — the winners of each episode — are aged </strong>20 to 35 year sold<strong> (28.1 on average). Being too young or too old doesn't help.</strong></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/AZTwswy4QZOAk37Qg12FtWmtAvmpF6IVlhgS" alt="Image" width="800" height="647" loading="lazy">
<em>Yeah, no Japanese in the finals… ???</em></p>
<h4 id="heading-the-finals"><strong>The finals</strong></h4>
<p><strong>?? USA brought 3 beastmasters. ?? Germany and ?? South Korea, 2. But it only took one ?? Brazilian to win the Ultimate Beastmaster prize.</strong></p>
<p><strong>Yes, I'm Brazilian too, and now I feel better about the </strong>7x1<strong> we took from Germany in the World Cup.</strong></p>
<h3 id="heading-points"><strong>Points</strong></h3>
<p><img src="https://cdn-media-1.freecodecamp.org/images/oqBK9E9HUbcOrYpYuZrufAt0sfEwUb5YVFAK" alt="Image" width="800" height="563" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/mMkIVHhV73tqcyRie7B78PWYb0QuGinAThdP" alt="Image" width="800" height="546" loading="lazy">
<em>Points acquired by each competitor along the tv show.</em></p>
<p><strong>Note that there's a </strong>soft tendency of dropping your score once you’re older<strong>.</strong></p>
<blockquote>
<p><strong>Correlation of age and points: </strong>-0.24<em>**</em></p>
</blockquote>
<h3 id="heading-competition-funnel"><strong>Competition Funnel</strong></h3>
<p><img src="https://cdn-media-1.freecodecamp.org/images/fvvS6isat1bauHbT1WATABJFmisqF-rfduQh" alt="Image" width="800" height="458" loading="lazy">
<em><strong>? Eliminated — ?</strong> Cl<strong>assified</strong></em></p>
<h3 id="heading-the-levels"><strong>The Levels</strong></h3>
<p><strong>Let's take a deeper look into each level of the competition and their main causes of failing.</strong></p>
<h3 id="heading-level-1"><strong>Level 1</strong></h3>
<p><img src="https://cdn-media-1.freecodecamp.org/images/Mwopr9Bq3nZJbcm2O0UQLvCqmve4d5p3fO2i" alt="Image" width="800" height="474" loading="lazy">
<em>Main causes of failing ordered by position in level 1.</em></p>
<p><strong>Only </strong>5<strong> </strong>(4.6%)<strong> participants were able to accomplish the first level. The most difficult parts of the track are:</strong></p>
<ol>
<li><strong>Energy Coils</strong> 30.6%</li>
<li><strong>Mag Wall</strong> 27.8%</li>
<li><strong>Faceplant</strong> 22.2%</li>
</ol>
<p><strong>Brandon Douglass ?? is</strong> the ONLY ONE that failed in Br<em>ain Matter.</em> He is the tiny red line in the chart.</p>
<p><strong>The average time spent on this track is </strong>2'54<strong> and for accomplishing it is </strong>5'29<strong>. ?? Fe</strong>lipe Camargo is<strong> the fastest to finish it: 5'</strong>10 ?. And<strong> the quickest to fail is a Brazilian competitor too: ?? </strong>Karine Abrahim faile<strong>d in 0'18.<em>**</em></strong></p>
<p><strong>39.3</strong> is the average points per person in this track and it varies <strong>from 10 to 70</strong> points. <strong>Nobody got all the 80 points available in this level</strong>.</p>
<h3 id="heading-level-2"><strong>Level 2</strong></h3>
<p><img src="https://cdn-media-1.freecodecamp.org/images/GhCt1PUXocBYGvlGjdpZVMQM3j8eKeI5W3Dc" alt="Image" width="800" height="515" loading="lazy">
<em>Main causes of failing ordered by position in level 2.</em></p>
<p><strong>?? Taeho Kwon wa</strong>s the only one to complete the second level (he made it in 4'<strong>28).</strong></p>
<p><strong>Main causes of failing:</strong></p>
<ol>
<li><strong>Dreadmills</strong> 27.8%</li>
<li><strong>Spinal Ascent</strong> 22.2%</li>
<li><strong>Stomach Churn</strong> 19.4%</li>
</ol>
<p><strong>Points</strong>: from <strong>20 to 220</strong> (<strong>109.1 in average</strong>).</p>
<p><strong>Time:</strong> from <strong>1'01 to 9'53</strong> (<strong>4'08 in average</strong>).</p>
<h3 id="heading-level-3"><strong>Level 3</strong></h3>
<p><img src="https://cdn-media-1.freecodecamp.org/images/iwaqGm6KvKNgd3QmxnssjPVcYg6uStgvQv1z" alt="Image" width="800" height="460" loading="lazy">
<em>Main causes of failing ordered by position in level 3.</em></p>
<p><strong>?? He</strong>eyong Park wa<strong>s the only one to accomplish this level (he made it in 6'</strong>19).<em>**</em></p>
<p><strong>Main causes of failing:</strong></p>
<ol>
<li><strong>Ejector ⚠️</strong> 40%</li>
<li><strong>Bungee Beds</strong> 20%</li>
<li><strong>The Extractor</strong> 13.3%</li>
</ol>
<p><strong>Points</strong>: from <strong>90 to 340</strong> (<strong>186.6 in average</strong>).</p>
<p><strong>Time:</strong> from <strong>0'03 to 12'48</strong> (<strong>2'17 in average</strong>).</p>
<h3 id="heading-which-country-won"><strong>Which country won?</strong></h3>
<p><strong>What if the Ultimate Beastmaster were a competition between the countries instead of individuals? Which country performed the better result?</strong></p>
<p><strong>Taking the average score by country, we can get the result: ?? So</strong>uth Korea won the Ultimate Beastmaster!<em>**</em></p>
<p><strong><code>+-----------------+-------------+----------+</code></strong><br><strong><code>|    Country      | Avg. Points | Position |</code></strong><br><strong><code>+-----------------+-------------+----------+</code></strong><br><strong><code>| ??South Korea   |       117.2 | 1st      |</code></strong><br><strong><code>| ??Germany       |         110 | 2nd      |</code></strong><br><strong><code>| ??United States |       105.5 | 3rd      |</code></strong><br><strong><code>| ??Mexico        |       100.5 | 4th      |</code></strong><br><strong><code>| ??Brazil        |        96.1 | 5th      |</code></strong><br><strong><code>| ??Japan         |        69.4 | 6th      |</code></strong><br><strong><code>+-----------------+-------------+----------+</code></strong></p>
<h3 id="heading-the-finalists"><strong>The Finalists</strong></h3>
<p><strong><code>+------------------+-----+--------------------------+---------+</code></strong><br><strong><code>|       name       | age |           job            | country |</code></strong><br><strong><code>+------------------+-----+--------------------------+---------+</code></strong><br><strong><code>| Felipe Camargo   |  24 | Professional Climber     | Brazil  |</code></strong><br><strong><code>| David Manthei    |  20 | Architecture Student     | Germany |</code></strong><br><strong><code>| Philip Meyer     |  23 | Soldier                  | Germany |</code></strong><br><strong><code>| Roberto Perez    |  25 | Student                  | Mexico  |</code></strong><br><strong><code>| Heeyong Park     |  34 | Ice Climber              | Korea   |</code></strong><br><strong><code>| Hyunho Kim       |  30 | Crossfit Coach           | Korea   |</code></strong><br><strong><code>| Steven Tucker    |  29 | Rock Climbing Instructor | EUA     |</code></strong><br><strong><code>| Jonathan Collins |  33 | Track Coach and Model    | EUA     |</code></strong><br><strong><code>| Ken Corigliano   |  35 | Air Force Major          | EUA     |</code></strong><br><strong><code>+------------------+-----+--------------------------+---------+</code></strong></p>
<p><strong>We can clearly see why the finalists got the Beastmaster title. Their average of points is </strong>265<strong> against </strong>88.7<strong> of the other competitors.</strong></p>
<h3 id="heading-the-dataset"><strong>The dataset</strong></h3>
<p><strong>This article is based on the data gathered by me, and it’s available for further expansion if you want to help or just try some analysis. Also, the dataset is available on <a target="_blank" href="https://www.kaggle.com/kandebonfim/ultimate-beastmaster">Kaggle</a>.</strong></p>
<p><strong>Discovered something new?</strong> My twitter is <a target="_blank" href="https://twitter.com/kandebonfim">@kandebonfim</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
