<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>sports &amp;mdash; Jerry of the Week</title>
    <link>https://write.in0rdr.ch/tag:sports</link>
    <description>ˈdʒɛri - Individual who sends life against the grain no matter the consequences</description>
    <pubDate>Fri, 01 May 2026 01:00:49 +0000</pubDate>
    <item>
      <title>MyHeats v0.4</title>
      <link>https://write.in0rdr.ch/h1myheats-v0-4-h1</link>
      <description>&lt;![CDATA[I was hacking on a new version of the &#34;live-updating leaderboard&#34; with some bug fixes and a fresh new design (a href=&#34;https://code.in0rdr.ch/myheats/file/CHANGELOG.md.html&#34;CHANGELOG.md/a).&#xA;&#xA;a href=&#34;https://myheats.p0c.ch&#34;Project site/a&#xA;a href=&#34;https://myheats-demo.p0c.ch&#34;Demo instance/a&#xA;a href=&#34;https://code.in0rdr.ch/myheats&#34;Code/a&#xA;&#xA;#coding #sports #myheats&#xA;&#xA;!--more--&#xA;&#xA;I took advantage of the CSS flexbox layout to improve the design on mobile devices. The main idea was to reduce the table size to a minimum on small screen sizes. The individual cells of the table are shown as small boxes, with labels to indicate the content type.&#xA;&#xA;img src=&#34;https://code.in0rdr.ch/pub/blog/myheats1.jpg&#34; alt=&#34;myheats leaderboard mobile layout&#34; /&#xA;&#xA;On larger displays, for instance, a big screen at the finish line of a sport event/run, the table is displayed in a traditional fashion.&#xA;&#xA;img src=&#34;https://code.in0rdr.ch/pub/blog/myheats2.jpg&#34; alt=&#34;myheats leaderboard large display&#34; /&#xA;&#xA;Here some more screenshots of the admin section with the new design.&#xA;&#xA;The live-updating leaderboard:&#xA;img src=&#34;https://code.in0rdr.ch/pub/blog/myheats3.png&#34; alt=&#34;myheats leaderboard mobile view&#34; /&#xA;&#xA;The scoring section where judges can enter the scores. In this section, I found it important to indicate the loading status whenever the score is changed and to make the input field big enough for usage on small smartphone screens:&#xA;img src=&#34;https://code.in0rdr.ch/pub/blog/myheats4.png&#34; alt=&#34;myheats leaderboard mobile view scoring&#34; /&#xA;&#xA;Friends told me that similar software has a feature to &#34;lock&#34; the scores once the scoring is done. Currently, there exists no such feature in MyHeats, but that&#39;s a good idea for my next hacking sess.&#xA;&#xA;The section where event admins can create heats and manage the startlists for each run:&#xA;img src=&#34;https://code.in0rdr.ch/pub/blog/myheats5.png&#34; alt=&#34;myheats leaderboard mobile view startlist&#34; /&#xA;&#xA;The administration of the athletes:&#xA;img src=&#34;https://code.in0rdr.ch/pub/blog/myheats6.png&#34; alt=&#34;myheats leaderboard mobile view athletes&#34; /&#xA;&#xA;Athletes are not required to have a lastname. In this way, the leaderboard can equally well be used to score entire teams.&#xA;&#xA;And last but not least, if you are reading until down here and you are interested in the technical implementation and the arrangement of the data in the database, here the database schema:&#xA;img src=&#34;https://code.in0rdr.ch/pub/blog/myheats7.png&#34; alt=&#34;myheats leaderboard supabase database schema&#34; /&#xA;&#xA;Interested in test-driving the scoring backend for judges and event admins? Drop me a line (see footer).&#xA;&#xA;div style=&#34;text-align:center; font-size: 0.8em&#34;&#xD;&#xA;a href=&#34;https://write.in0rdr.ch/feed&#34;&amp;#128732; RSS/a | a href=&#34;https://m.in0rdr.ch/in0rdr&#34;&amp;#128024; Fediverse/a | a href=&#34;https://chat.in0rdr.ch/#/guest?join=p0c@conference.in0rdr.ch&#34;&amp;#128172; XMPP/a&#xD;&#xA;/div]]&gt;</description>
      <content:encoded><![CDATA[<p>I was hacking on a new version of the “live-updating leaderboard” with some bug fixes and a fresh new design (<a href="https://code.in0rdr.ch/myheats/file/CHANGELOG.md.html">CHANGELOG.md</a>).</p>
<ul><li><a href="https://myheats.p0c.ch">Project site</a></li>
<li><a href="https://myheats-demo.p0c.ch">Demo instance</a></li>
<li><a href="https://code.in0rdr.ch/myheats">Code</a></li></ul>

<p><a href="https://write.in0rdr.ch/tag:coding" class="hashtag"><span>#</span><span class="p-category">coding</span></a> <a href="https://write.in0rdr.ch/tag:sports" class="hashtag"><span>#</span><span class="p-category">sports</span></a> <a href="https://write.in0rdr.ch/tag:myheats" class="hashtag"><span>#</span><span class="p-category">myheats</span></a></p>



<p>I took advantage of the CSS flexbox layout to improve the design on mobile devices. The main idea was to reduce the table size to a minimum on small screen sizes. The individual cells of the table are shown as small boxes, with labels to indicate the content type.</p>

<p><img src="https://code.in0rdr.ch/pub/blog/myheats1.jpg" alt="myheats leaderboard mobile layout"/></p>

<p>On larger displays, for instance, a big screen at the finish line of a sport event/run, the table is displayed in a traditional fashion.</p>

<p><img src="https://code.in0rdr.ch/pub/blog/myheats2.jpg" alt="myheats leaderboard large display"/></p>

<p>Here some more screenshots of the admin section with the new design.</p>

<p>The live-updating leaderboard:
<img src="https://code.in0rdr.ch/pub/blog/myheats3.png" alt="myheats leaderboard mobile view"/></p>

<p>The scoring section where judges can enter the scores. In this section, I found it important to indicate the loading status whenever the score is changed and to make the input field big enough for usage on small smartphone screens:
<img src="https://code.in0rdr.ch/pub/blog/myheats4.png" alt="myheats leaderboard mobile view scoring"/></p>

<p>Friends told me that similar software has a feature to “lock” the scores once the scoring is done. Currently, there exists no such feature in MyHeats, but that&#39;s a good idea for my next hacking sess.</p>

<p>The section where event admins can create heats and manage the startlists for each run:
<img src="https://code.in0rdr.ch/pub/blog/myheats5.png" alt="myheats leaderboard mobile view startlist"/></p>

<p>The administration of the athletes:
<img src="https://code.in0rdr.ch/pub/blog/myheats6.png" alt="myheats leaderboard mobile view athletes"/></p>

<p>Athletes are not required to have a lastname. In this way, the leaderboard can equally well be used to score entire teams.</p>

<p>And last but not least, if you are reading until down here and you are interested in the technical implementation and the arrangement of the data in the database, here the database schema:
<img src="https://code.in0rdr.ch/pub/blog/myheats7.png" alt="myheats leaderboard supabase database schema"/></p>

<p>Interested in test-driving the scoring backend for judges and event admins? Drop me a line (see footer).</p>

<div style="text-align:center; font-size: 0.8em">
<a href="https://write.in0rdr.ch/feed">🛜 RSS</a> | <a href="https://m.in0rdr.ch/in0rdr">🐘 Fediverse</a> | <a href="https://chat.in0rdr.ch/#/guest?join=p0c@conference.in0rdr.ch">💬 XMPP</a>
</div>
]]></content:encoded>
      <guid>https://write.in0rdr.ch/h1myheats-v0-4-h1</guid>
      <pubDate>Sun, 02 Jul 2023 17:09:26 +0000</pubDate>
    </item>
    <item>
      <title>MyHeats Update: Manage Heats</title>
      <link>https://write.in0rdr.ch/myheats-update-manage-heats</link>
      <description>&lt;![CDATA[Extended my newest coding pet project in React with the ability to delete heats.&#xA;&#xA;🚀 Demo instance: https://myheats.in0rdr.ch&#xA;🧬 Code: https://code.in0rdr.ch/myheats&#xA;&#xA;Plan to work on some features the next few days:&#xA;Add/remove athletes (bulk)&#xA;Improve UI&#xA;&#xA;img src=&#34;https://code.in0rdr.ch/pub/blog/myheats-manage.png&#34; alt=&#34;manage-heats-myheats&#34; width=&#34;50%&#34; /&#xA;&#xA;#coding #sports #myheats&#xA;&#xA;!--more--&#xA;&#xA;For more background on the app, the idea and the problem(s) it could solve have a look at the original post a href=&#34;https://write.in0rdr.ch/live-heats-scoring-and-leaderboard-for-sport-events&#34;Live heats, Scoring and Leaderboard for Sport Events/a (March 11, 2023).&#xA;&#xA;hr /&#xA;&#xA;bedit 2023-04-04:/b Bug a href=&#34;https://code.in0rdr.ch/myheats/commit/6d58d104a4827c3fa9510f847d10d596c2286a75.html&#34;fixed/a in v0.2, thanks a href=&#34;https://github.com/JonnyBurger&#34;@JonnyBurger/a and @PatrickH!&#xA;&#xA;oh.. and, I might need your 🥺 help with a little 🐛 bug I encounter.&#xA;&#xA;⁉️ Anyone knows where this flickering comes from? Reproduce as follows:&#xA;ol&#xA;liAdd one heats to display/li&#xA;liRemove the heat again/li&#xA;liWait for the screen to update. Can you see that flickering?/li&#xA;/ol&#xA;&#xA;img src=&#34;https://code.in0rdr.ch/pub/blog/myheats-bug.gif&#34; alt=&#34;myheats-bug-flickering&#34; /&#xA;&#xA;How can I fix that? I&#39;m pretty new in that JavaScript business. If you know the fix, please shoot me a mail, ping me (see footer).&#xA;&#xA;The bug should be in a href=&#34;https://code.in0rdr.ch/myheats/file/src/Leaderboard.js.html&#34;Leaderboard.js/a somewhere.. Thanks for any hints!&#xA;&#xA;img src=&#34;https://media2.giphy.com/media/XjlNyeZp5lDri/giphy.gif?cid=ecf05e47bogzg24umo1f9ctjv19knprueeyzkr83vjfwypxn&amp;rid=giphy.gif&amp;ct=g&#34; /&#xA;&#xA;div style=&#34;text-align:center; font-size: 0.8em&#34;&#xD;&#xA;a href=&#34;https://write.in0rdr.ch/feed&#34;&amp;#128732; RSS/a | a href=&#34;https://m.in0rdr.ch/in0rdr&#34;&amp;#128024; Fediverse/a | a href=&#34;https://chat.in0rdr.ch/#/guest?join=p0c@conference.in0rdr.ch&#34;&amp;#128172; XMPP/a&#xD;&#xA;/div]]&gt;</description>
      <content:encoded><![CDATA[<p>Extended my newest coding pet project in React with the ability to delete heats.</p>
<ul><li>🚀 Demo instance: <a href="https://myheats.in0rdr.ch">https://myheats.in0rdr.ch</a></li>
<li>🧬 Code: <a href="https://code.in0rdr.ch/myheats">https://code.in0rdr.ch/myheats</a></li></ul>

<p>Plan to work on some features the next few days:
* Add/remove athletes (bulk)
* Improve UI</p>

<p><img src="https://code.in0rdr.ch/pub/blog/myheats-manage.png" alt="manage-heats-myheats" width="50%"/></p>

<p><a href="https://write.in0rdr.ch/tag:coding" class="hashtag"><span>#</span><span class="p-category">coding</span></a> <a href="https://write.in0rdr.ch/tag:sports" class="hashtag"><span>#</span><span class="p-category">sports</span></a> <a href="https://write.in0rdr.ch/tag:myheats" class="hashtag"><span>#</span><span class="p-category">myheats</span></a></p>



<p>For more background on the app, the idea and the problem(s) it could solve have a look at the original post <a href="https://write.in0rdr.ch/live-heats-scoring-and-leaderboard-for-sport-events">Live heats, Scoring and Leaderboard for Sport Events</a> (March 11, 2023).</p>

<hr/>

<p><b>edit 2023-04-04:</b> Bug <a href="https://code.in0rdr.ch/myheats/commit/6d58d104a4827c3fa9510f847d10d596c2286a75.html">fixed</a> in v0.2, thanks <a href="https://github.com/JonnyBurger">@JonnyBurger</a> and @PatrickH!</p>

<p>oh.. and, I might need your 🥺 help with a little 🐛 bug I encounter.</p>

<p>⁉️ Anyone knows where this flickering comes from? Reproduce as follows:
<ol><li>Add one heats to display</li>
<li>Remove the heat again</li>
<li>Wait for the screen to update. Can you see that flickering?</li></ol></p>

<p><img src="https://code.in0rdr.ch/pub/blog/myheats-bug.gif" alt="myheats-bug-flickering"/></p>

<p>How can I fix that? I&#39;m pretty new in that JavaScript business. If you know the fix, please shoot me a mail, ping me (see footer).</p>

<p>The bug should be in <a href="https://code.in0rdr.ch/myheats/file/src/Leaderboard.js.html">Leaderboard.js</a> somewhere.. Thanks for any hints!</p>

<p><img src="https://media2.giphy.com/media/XjlNyeZp5lDri/giphy.gif?cid=ecf05e47bogzg24umo1f9ctjv19knprueeyzkr83vjfwypxn&amp;rid=giphy.gif&amp;ct=g"/></p>

<div style="text-align:center; font-size: 0.8em">
<a href="https://write.in0rdr.ch/feed">🛜 RSS</a> | <a href="https://m.in0rdr.ch/in0rdr">🐘 Fediverse</a> | <a href="https://chat.in0rdr.ch/#/guest?join=p0c@conference.in0rdr.ch">💬 XMPP</a>
</div>
]]></content:encoded>
      <guid>https://write.in0rdr.ch/myheats-update-manage-heats</guid>
      <pubDate>Fri, 31 Mar 2023 23:00:47 +0000</pubDate>
    </item>
    <item>
      <title>Live heats, Scoring and Leaderboard for Sport Events</title>
      <link>https://write.in0rdr.ch/live-heats-scoring-and-leaderboard-for-sport-events</link>
      <description>&lt;![CDATA[After last weeks a href=&#34;https://www.rtr.ch/play/tv/redirect/detail/d4c565ac-ad0e-4a02-825d-f8f02b55529e&#34;Bündner Championship/a I found start list generation and ranking process to be error prone, especially for the disciplines that are judged by several experts, such as slopestyle (Ski or Snowboard) or the formation skiing teams. We were editing Excel sheets (stored on OneDrive) and printing the new start lists for the next runs. Just imagine the printer 🖨️ on the mountain 🏔️🤣. The grades of the experts/judges needed to be transferred from paper into Excel after every completed run or heat.&#xA;&#xA;#coding #sports #myheats&#xA;&#xA;!--more--&#xA;&#xA;I detected the following deficiencies which could be improved with a more digital approach (digital/mobile from the start):&#xA;ul&#xA;liMistakes can occur while copying ratings and numbers from paper into Excel/li&#xA;liSorting each Excel list (for every competition and run) manually is error prone, especially, with multiple competitions going on simultaneously (slopestyle ski or snowboard, formation skiing, men, women, several runs, etc.)/li&#xA;liThe results need to be printed on paper and published on the a href=&#34;https://skischule-savognin.ch/DE/winter/bm.html&#34;website (PDF)/a/li&#xA;liFormatting and printing these sheets (for each competition) takes quite some time and the result is not always consistent (in terms of formatting)/li&#xA;liThere are no live results. This is also not convenient for the athletes that want to know right after the run how they scored and how they rank in the competition. Ideally, the athletes get to know their scores right after they cross the finish line./li&#xA;liOneDrive syncing did not always work reliably (depending on the end users devices) and mailing the sheets was a pain/li&#xA;/ul&#xA;&#xA;I was looking into some existing solutions for systems to process the data, such as a href=&#34;https://liveheats.com&#34;liveheats/a. However, since most of these systems are finished products and there is no open source code available that I know of, I decided to quickly draft my own version of a live leaderboard for these kind of sport competitions.&#xA;&#xA;🚀 Demo instance: https://myheats.p0c.ch&#xA;&#xA;🧬 Code: https://code.in0rdr.ch/myheats&#xA;&#xA;Right now, there is only the leaderboard which automatically updates as soon as new data arrives in a href=&#34;https://supabase.com&#34;Supabase/a. During the process of creating this first draft, I became a huge fan of Supabase because it works really well. It is the open source Firebase alternative with Postgres database in the backend. I can highly recommend it for your next project, because it is extremely easy to get started with.&#xA;&#xA;For the purpose of the leaderboard, I was especially interested in the a href=&#34;https://supabase.com/realtime&#34;realtime aspects of Supabase/a. This allows me to update the table as soon as new data is entered in the backend (by the judges of the comptition).&#xA;&#xA;I&#39;m planning to update the code with some more features soonish, among others:&#xA;&#xA;ul&#xA;liAuthenticaiton for the experts that perform the ranking and rating/li&#xA;liA very simple user-interface or view for the experts to edit the score for a single athlete of a heat or run/li&#xA;liBetter import/export functionality for start list and rankings/li&#xA;/ul&#xA;&#xA;Stay tuned. If you have some input or tips feel free to drop me a line (see footer).&#xA;&#xA;div style=&#34;text-align:center; font-size: 0.8em&#34;&#xD;&#xA;a href=&#34;https://write.in0rdr.ch/feed&#34;&amp;#128732; RSS/a | a href=&#34;https://m.in0rdr.ch/in0rdr&#34;&amp;#128024; Fediverse/a | a href=&#34;https://chat.in0rdr.ch/#/guest?join=p0c@conference.in0rdr.ch&#34;&amp;#128172; XMPP/a&#xD;&#xA;/div]]&gt;</description>
      <content:encoded><![CDATA[<p>After last weeks <a href="https://www.rtr.ch/play/tv/redirect/detail/d4c565ac-ad0e-4a02-825d-f8f02b55529e">Bündner Championship</a> I found start list generation and ranking process to be error prone, especially for the disciplines that are judged by several experts, such as slopestyle (Ski or Snowboard) or the formation skiing teams. We were editing Excel sheets (stored on OneDrive) and printing the new start lists for the next runs. Just imagine the printer 🖨️ on the mountain 🏔️🤣. The grades of the experts/judges needed to be transferred from paper into Excel after every completed run or heat.</p>

<p><a href="https://write.in0rdr.ch/tag:coding" class="hashtag"><span>#</span><span class="p-category">coding</span></a> <a href="https://write.in0rdr.ch/tag:sports" class="hashtag"><span>#</span><span class="p-category">sports</span></a> <a href="https://write.in0rdr.ch/tag:myheats" class="hashtag"><span>#</span><span class="p-category">myheats</span></a></p>



<p>I detected the following deficiencies which could be improved with a more digital approach (digital/mobile from the start):
<ul><li>Mistakes can occur while copying ratings and numbers from paper into Excel</li>
<li>Sorting each Excel list (for every competition and run) manually is error prone, especially, with multiple competitions going on simultaneously (slopestyle ski or snowboard, formation skiing, men, women, several runs, etc.)</li>
<li>The results need to be printed on paper and published on the <a href="https://skischule-savognin.ch/DE/winter/bm.html">website (PDF)</a></li>
<li>Formatting and printing these sheets (for each competition) takes quite some time and the result is not always consistent (in terms of formatting)</li>
<li>There are no live results. This is also not convenient for the athletes that want to know right after the run how they scored and how they rank in the competition. Ideally, the athletes get to know their scores right after they cross the finish line.</li>
<li>OneDrive syncing did not always work reliably (depending on the end users devices) and mailing the sheets was a pain</li></ul></p>

<p>I was looking into some existing solutions for systems to process the data, such as <a href="https://liveheats.com">liveheats</a>. However, since most of these systems are finished products and there is no open source code available that I know of, I decided to quickly draft my own version of a live leaderboard for these kind of sport competitions.</p>

<p>🚀 Demo instance: <a href="https://myheats.p0c.ch">https://myheats.p0c.ch</a></p>

<p>🧬 Code: <a href="https://code.in0rdr.ch/myheats">https://code.in0rdr.ch/myheats</a></p>

<p>Right now, there is only the leaderboard which automatically updates as soon as new data arrives in <a href="https://supabase.com">Supabase</a>. During the process of creating this first draft, I became a huge fan of Supabase because it works really well. It is the open source Firebase alternative with Postgres database in the backend. I can highly recommend it for your next project, because it is extremely easy to get started with.</p>

<p>For the purpose of the leaderboard, I was especially interested in the <a href="https://supabase.com/realtime">realtime aspects of Supabase</a>. This allows me to update the table as soon as new data is entered in the backend (by the judges of the comptition).</p>

<p>I&#39;m planning to update the code with some more features soonish, among others:</p>

<ul><li>Authenticaiton for the experts that perform the ranking and rating</li>
<li>A very simple user-interface or view for the experts to edit the score for a single athlete of a heat or run</li>
<li>Better import/export functionality for start list and rankings</li></ul>

<p>Stay tuned. If you have some input or tips feel free to drop me a line (see footer).</p>

<div style="text-align:center; font-size: 0.8em">
<a href="https://write.in0rdr.ch/feed">🛜 RSS</a> | <a href="https://m.in0rdr.ch/in0rdr">🐘 Fediverse</a> | <a href="https://chat.in0rdr.ch/#/guest?join=p0c@conference.in0rdr.ch">💬 XMPP</a>
</div>
]]></content:encoded>
      <guid>https://write.in0rdr.ch/live-heats-scoring-and-leaderboard-for-sport-events</guid>
      <pubDate>Sat, 11 Mar 2023 08:40:19 +0000</pubDate>
    </item>
  </channel>
</rss>