<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Troubleshooting &amp;mdash; Paul Sutton</title>
    <link>https://personaljournal.ca/paulsutton/tag:Troubleshooting</link>
    <description>Personal Blog</description>
    <pubDate>Tue, 05 May 2026 15:02:23 +0000</pubDate>
    <item>
      <title>Gopher 5: Troubleshooting Gophermap</title>
      <link>https://personaljournal.ca/paulsutton/gopher-5-troubleshooting-gophermap</link>
      <description>&lt;![CDATA[Gopher 5: Troubleshooting Gophermap&#xA;&#xA;As previously discussed, a gophermap is a text file.  It does however require specific formatting. &#xA;&#xA;When adding links to a document, you need to ensure the space between the label and filename is a tab and not spaces.   I previously discussed HOW TO set up an editor to treat pressing tab as an actual tab character.&#xA;&#xA;If things are not working properly, there are several things you can try in the first instance.&#xA;&#xA;IParticle Interactions&#x9;particlechart.jpg&#xA;You can delete the area what is between the label Particle Interactions and filename particlechart.jpg and reinsert a tab&#xA;Delete everything after the label,  (well use cut) then paste it back in,   then insert a tab&#xA;&#xA;This sometimes fixes any issues, it may seem strange in the gophermap that some tabs appear small and others appear longer (as if they are equivalent of 4 spaces)  this seems normal.&#xA;&#xA;If you want to make sure of what is there,  you can use a hex editor to examine deeper in to a file. &#xA;&#xA;Hex editor&#xA;&#xA;What you are looking for are the following&#xA;&#xA;Within ASCII :&#xA;&#xA;  Tab is 09 decimal, Hex 09 &#xA;  Space is 32 decimal, Hex 20 (Two Zero)&#xA;&#xA;Find where tabs are inserted, and check the hex is displaying 09,  It may look by the text field on the right that some characters appear as periods,   this is I think due to the fact that the editor needs to have something to represent what is there.  If that makes sense.&#xA;&#xA;gopher gopher://vern.cc/1/~zleap&#xA;&#xA;Tags&#xA;&#xA;#Gopher,#Gophermap,#TroubleShooting,#Tab,#Space,#Hex,#HexEditor&#xA;&#xA;hr&#xD;&#xA;&#xD;&#xA;table&#xD;&#xA;thead&#xD;&#xA;trtda rel=&#34;me&#34; href=&#34;https://qoto.org/@zleap&#34;Mastodon/a/td&#xD;&#xA;tda href=&#34;https://wiki.ircnow.org/?n=Shelllabs.Intro&#34;ShellLabs/td&#xD;&#xA;tda href=&#34;https://joinmastodon.org/&#34;Join Mastodon/a/td/tr/thead/table&#xD;&#xA;center&#xD;&#xA;AI statement : b Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. /b&#xD;&#xA;/center&#xD;&#xA;&#xD;&#xA;a href=&#34;https://liberapay.com/PaulSutton/donate&#34;img alt=&#34;Donate using Liberapay&#34; src=&#34;https://liberapay.com/assets/widgets/donate.svg&#34;/a&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Gopher 5: Troubleshooting Gophermap</p>

<p>As previously discussed, a gophermap is a text file.  It does however require specific formatting.</p>

<p>When adding links to a document, you need to ensure the space between the label and filename is a <strong>tab</strong> and not spaces.   I previously discussed <a href="https://personaljournal.ca/paulsutton/gopher-3" rel="nofollow">HOW TO set up an editor to treat pressing tab as an actual tab character</a>.</p>

<p>If things are not working properly, there are several things you can try in the first instance.</p>

<pre><code>IParticle Interactions	particle_chart.jpg
</code></pre>
<ul><li>You can delete the area what is between the label <em>Particle Interactions</em> and filename <em>particle_chart.jpg</em> and reinsert a tab</li>
<li>Delete everything after the label,  (well use cut) then paste it back in,   then insert a tab</li></ul>

<p>This sometimes fixes any issues, it may seem strange in the gophermap that some tabs appear small and others appear longer (as if they are equivalent of 4 spaces)  this seems normal.</p>

<p>If you want to make sure of what is there,  you can use a hex editor to examine deeper in to a file.</p>

<p><img src="https://salsa.debian.org/zleap-guest/blog-media/-/raw/master/hexedit.png" alt="Hex editor"></p>

<p>What you are looking for are the following</p>

<p>Within ASCII :</p>
<ul><li>Tab is 09 decimal, Hex 09</li>
<li>Space is 32 decimal, Hex 20 (Two Zero)</li></ul>

<p>Find where tabs are inserted, and check the hex is displaying 09,  It may look by the text field on the right that some characters appear as periods,   this is I think due to the fact that the editor needs to have something to represent what is there.  If that makes sense.</p>

<pre><code>gopher gopher://vern.cc/1/~zleap
</code></pre>

<p><strong>Tags</strong></p>

<p><a href="/paulsutton/tag:Gopher" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Gopher</span></a>,<a href="/paulsutton/tag:Gophermap" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Gophermap</span></a>,<a href="/paulsutton/tag:TroubleShooting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">TroubleShooting</span></a>,<a href="/paulsutton/tag:Tab" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Tab</span></a>,<a href="/paulsutton/tag:Space" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Space</span></a>,<a href="/paulsutton/tag:Hex" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Hex</span></a>,<a href="/paulsutton/tag:HexEditor" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">HexEditor</span></a></p>

<hr>

<p><table>
<thead>
<tr><td><a href="https://qoto.org/@zleap" rel="nofollow">Mastodon</a></td>
<td><a href="https://wiki.ircnow.org/?n=Shelllabs.Intro" rel="nofollow">ShellLabs</td>
<td><a href="https://joinmastodon.org/" rel="nofollow">Join Mastodon</a></td></tr></thead></table>

AI statement : <b> Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. </b>
</p>

<p><a href="https://liberapay.com/PaulSutton/donate" rel="nofollow"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></p>
]]></content:encoded>
      <guid>https://personaljournal.ca/paulsutton/gopher-5-troubleshooting-gophermap</guid>
      <pubDate>Tue, 08 Jul 2025 06:30:00 +0000</pubDate>
    </item>
    <item>
      <title>Code Club 17/9/2022</title>
      <link>https://personaljournal.ca/paulsutton/code-club-17-9-2022</link>
      <description>&lt;![CDATA[Code Club 17/9/2022 &#xA;&#xA;The next Paignton Library code club is on 17th September.   There will be the usual mix of coding, troubleshooting and discussions.  I&#xA;&#xA;We now have some of the Vodafone resources so will be sharing them if anyone is interested. &#xA;&#xA;We still have a few printed resources, which will be binned if no one wants them.   Simple fact is, we are running out of space.&#xA;&#xA;Links&#xA;&#xA;Paignton Library&#xA;Code Club&#xA;  Projects and activities&#xA;  Environment&#xA;  Space Projects&#xA;  Scratch&#xA;E-safety&#xA;        Vodafone digital parenting&#xA;    Social media Checklist&#xA;Online information&#xA;Sense about Science&#xA;  Sense about Science - peer review&#xA;Supporting critical thinking and reliability online&#xA;LateX Bibliographies&#xA;&#xA;Tags&#xA;&#xA;#CodeClub,#Information,#RaspberryPi,#Troubleshooting,&#xA;#esafety,#misinformation,#SenseAboutScience,#Vodafone,&#xA;#DigitalParenting,#StudySkills&#xA;&#xA;Next session&#xA;&#xA;Next Week is the STEM Group meeting 10/9/2022&#xA;Next Code Club is Saturday 17th September 2022. &#xA;&#xA;Please contact Paignton Library for details and booking. &#xA;&#xA;hr&#xD;&#xA;&#xD;&#xA;table&#xD;&#xA;thead&#xD;&#xA;trtda rel=&#34;me&#34; href=&#34;https://qoto.org/@zleap&#34;Mastodon/a/td&#xD;&#xA;tda href=&#34;https://wiki.ircnow.org/?n=Shelllabs.Intro&#34;ShellLabs/td&#xD;&#xA;tda href=&#34;https://joinmastodon.org/&#34;Join Mastodon/a/td/tr/thead/table&#xD;&#xA;center&#xD;&#xA;AI statement : b Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. /b&#xD;&#xA;/center&#xD;&#xA;&#xD;&#xA;a href=&#34;https://liberapay.com/PaulSutton/donate&#34;img alt=&#34;Donate using Liberapay&#34; src=&#34;https://liberapay.com/assets/widgets/donate.svg&#34;/a&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Code Club 17/9/2022</p>

<p>The next Paignton Library code club is on 17th September.   There will be the usual mix of coding, troubleshooting and discussions.  I</p>

<p>We now have some of the Vodafone resources so will be sharing them if anyone is interested.</p>

<p>We still have a few printed resources, which will be binned if no one wants them.   Simple fact is, we are running out of space.</p>

<p><strong>Links</strong></p>
<ul><li><a href="https://www.torbaylibraries.org.uk/web/arena/paigntonlibrary" rel="nofollow">Paignton Library</a></li>
<li><a href="https://codeclub.org/en/" rel="nofollow">Code Club</a>
<ul><li><a href="https://projects.raspberrypi.org/en" rel="nofollow">Projects and activities</a></li>
<li><a href="https://projects.raspberrypi.org/en/pathways/protect-our-planet" rel="nofollow">Environment</a></li>
<li><a href="https://rpf.io/space-projects" rel="nofollow">Space Projects</a></li>
<li><a href="https://scratch.mit.edu/" rel="nofollow">Scratch</a></li></ul></li>
<li>E-safety
    * <a href="https://www.vodafone.co.uk/mobile/digital-parenting/" rel="nofollow">Vodafone digital parenting</a>
<ul><li><a href="https://swgfl.org.uk/resources/checklists/" rel="nofollow">Social media Checklist</a></li></ul></li>
<li>Online information</li>
<li><a href="https://senseaboutscience.org/" rel="nofollow">Sense about Science</a>
<ul><li><a href="https://senseaboutscience.org/activities/peer-review/" rel="nofollow">Sense about Science – peer review</a></li></ul></li>
<li><a href="https://saferinternet.org.uk/online-issue/misinformation" rel="nofollow">Supporting critical thinking and reliability online</a></li>
<li><a href="https://personaljournal.ca/paulsutton/how-to-generate-references-with-latex-bibtex" rel="nofollow">LateX Bibliographies</a></li></ul>

<p><strong>Tags</strong></p>

<p><a href="/paulsutton/tag:CodeClub" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">CodeClub</span></a>,<a href="/paulsutton/tag:Information" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Information</span></a>,<a href="/paulsutton/tag:RaspberryPi" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">RaspberryPi</span></a>,<a href="/paulsutton/tag:Troubleshooting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Troubleshooting</span></a>,
<a href="/paulsutton/tag:esafety" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">esafety</span></a>,<a href="/paulsutton/tag:misinformation" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">misinformation</span></a>,<a href="/paulsutton/tag:SenseAboutScience" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">SenseAboutScience</span></a>,<a href="/paulsutton/tag:Vodafone" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Vodafone</span></a>,
<a href="/paulsutton/tag:DigitalParenting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">DigitalParenting</span></a>,<a href="/paulsutton/tag:StudySkills" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">StudySkills</span></a></p>

<p><strong>Next session</strong></p>
<ul><li>Next Week is the STEM Group meeting 10/9/2022</li>
<li>Next Code Club is <strong>Saturday 17th September 2022</strong>.</li></ul>

<p>Please contact Paignton Library for details and booking.</p>

<hr>

<p><table>
<thead>
<tr><td><a href="https://qoto.org/@zleap" rel="nofollow">Mastodon</a></td>
<td><a href="https://wiki.ircnow.org/?n=Shelllabs.Intro" rel="nofollow">ShellLabs</td>
<td><a href="https://joinmastodon.org/" rel="nofollow">Join Mastodon</a></td></tr></thead></table>

AI statement : <b> Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. </b>
</p>

<p><a href="https://liberapay.com/PaulSutton/donate" rel="nofollow"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></p>
]]></content:encoded>
      <guid>https://personaljournal.ca/paulsutton/code-club-17-9-2022</guid>
      <pubDate>Sat, 10 Sep 2022 15:32:30 +0000</pubDate>
    </item>
    <item>
      <title>Code Club 3/9/2022</title>
      <link>https://personaljournal.ca/paulsutton/code-club-3-9-2022</link>
      <description>&lt;![CDATA[Code Club 3/9/2022 &#xA;&#xA;The next Paignton Library code club is on 3rd September.   There will be the usual mix of coding, troubleshooting and discussions.  I should have some e-safety resources too. &#xA;&#xA;Links&#xA;&#xA;Paignton Library&#xA;Code Club&#xA;  Projects and activities&#xA;  Environment&#xA;  Space Projects&#xA;  Scratch&#xA;E-safety&#xA;        Vodafone digital parenting&#xA;    Social media Checklist&#xA;Online information&#xA;Sense about Science&#xA;  Sense about Science - peer review&#xA;Supporting critical thinking and reliability online&#xA;&#xA;Tags&#xA;&#xA;#CodeClub,#Information,#RaspberryPi,#Troubleshooting,&#xA;#esafety,#misinformation,#SenseAboutScience,#Vodafone,&#xA;DigitalParenting&#xA;&#xA;Next session&#xA;&#xA;Next Week is the STEM Group meeting 10/9/2022&#xA;Next Code Club is Saturday 17th September 2022. &#xA;&#xA;Please contact Paignton Library for details and booking. &#xA;&#xA;hr&#xD;&#xA;&#xD;&#xA;table&#xD;&#xA;thead&#xD;&#xA;trtda rel=&#34;me&#34; href=&#34;https://qoto.org/@zleap&#34;Mastodon/a/td&#xD;&#xA;tda href=&#34;https://wiki.ircnow.org/?n=Shelllabs.Intro&#34;ShellLabs/td&#xD;&#xA;tda href=&#34;https://joinmastodon.org/&#34;Join Mastodon/a/td/tr/thead/table&#xD;&#xA;center&#xD;&#xA;AI statement : b Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. /b&#xD;&#xA;/center&#xD;&#xA;&#xD;&#xA;a href=&#34;https://liberapay.com/PaulSutton/donate&#34;img alt=&#34;Donate using Liberapay&#34; src=&#34;https://liberapay.com/assets/widgets/donate.svg&#34;/a&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Code Club 3/9/2022</p>

<p>The next Paignton Library code club is on 3rd September.   There will be the usual mix of coding, troubleshooting and discussions.  I should have some e-safety resources too.</p>

<p><strong>Links</strong></p>
<ul><li><a href="https://www.torbaylibraries.org.uk/web/arena/paigntonlibrary" rel="nofollow">Paignton Library</a></li>
<li><a href="https://codeclub.org/en/" rel="nofollow">Code Club</a>
<ul><li><a href="https://projects.raspberrypi.org/en" rel="nofollow">Projects and activities</a></li>
<li><a href="https://projects.raspberrypi.org/en/pathways/protect-our-planet" rel="nofollow">Environment</a></li>
<li><a href="https://rpf.io/space-projects" rel="nofollow">Space Projects</a></li>
<li><a href="https://scratch.mit.edu/" rel="nofollow">Scratch</a></li></ul></li>
<li>E-safety
    * <a href="https://www.vodafone.co.uk/mobile/digital-parenting/" rel="nofollow">Vodafone digital parenting</a>
<ul><li><a href="https://swgfl.org.uk/resources/checklists/" rel="nofollow">Social media Checklist</a></li></ul></li>
<li>Online information</li>
<li><a href="https://senseaboutscience.org/" rel="nofollow">Sense about Science</a>
<ul><li><a href="https://senseaboutscience.org/activities/peer-review/" rel="nofollow">Sense about Science – peer review</a></li></ul></li>
<li><a href="https://saferinternet.org.uk/online-issue/misinformation" rel="nofollow">Supporting critical thinking and reliability online</a></li></ul>

<p><strong>Tags</strong></p>

<p><a href="/paulsutton/tag:CodeClub" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">CodeClub</span></a>,<a href="/paulsutton/tag:Information" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Information</span></a>,<a href="/paulsutton/tag:RaspberryPi" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">RaspberryPi</span></a>,<a href="/paulsutton/tag:Troubleshooting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Troubleshooting</span></a>,
<a href="/paulsutton/tag:esafety" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">esafety</span></a>,<a href="/paulsutton/tag:misinformation" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">misinformation</span></a>,<a href="/paulsutton/tag:SenseAboutScience" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">SenseAboutScience</span></a>,<a href="/paulsutton/tag:Vodafone" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Vodafone</span></a>,
<a href="/paulsutton/tag:DigitalParenting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">DigitalParenting</span></a></p>

<p><strong>Next session</strong></p>
<ul><li>Next Week is the STEM Group meeting 10/9/2022</li>
<li>Next Code Club is <strong>Saturday 17th September 2022</strong>.</li></ul>

<p>Please contact Paignton Library for details and booking.</p>

<hr>

<p><table>
<thead>
<tr><td><a href="https://qoto.org/@zleap" rel="nofollow">Mastodon</a></td>
<td><a href="https://wiki.ircnow.org/?n=Shelllabs.Intro" rel="nofollow">ShellLabs</td>
<td><a href="https://joinmastodon.org/" rel="nofollow">Join Mastodon</a></td></tr></thead></table>

AI statement : <b> Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. </b>
</p>

<p><a href="https://liberapay.com/PaulSutton/donate" rel="nofollow"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></p>
]]></content:encoded>
      <guid>https://personaljournal.ca/paulsutton/code-club-3-9-2022</guid>
      <pubDate>Mon, 29 Aug 2022 16:18:33 +0000</pubDate>
    </item>
    <item>
      <title>Code Club 20/8/2022 Write up</title>
      <link>https://personaljournal.ca/paulsutton/code-club-20-8-2022-write-up</link>
      <description>&lt;![CDATA[Code Club 20/8/2022 Write up&#xA;&#xA;So we had another quiet session today, with 4 young people, plus a parent, nevertheless it was productive.  Time was initially split between looking for an iphone cable (could not find one), and also troubleshooting a Raspberry Pi, which seemed more successful. &#xA;&#xA;There was also a discussion on e-safety, in terms of posting online and how this can have consequences later on,  employers can do searches on applicants for example and also what to post,  also a brief discussion on asking for evidence and finding proper, credible information on the internet,  I did give peer review a brief mentiobn&#xA;&#xA;It seems really beneficial to have conversations.&#xA;&#xA;This has prompted me to dig out a few resources I have here at home.  These are set to one side for the next session. I have also asked the library if they can send off for some copies of the Vodafone digital parenting resource. &#xA;&#xA;We also have access to a tablet with the Lego WeDo software installed so if anyone is interested they can have a go at code club without having to bring along own devices. However attendees can, it really helps as you can store projects on your own device.&#xA;&#xA;Links&#xA;&#xA;Paignton Library&#xA;Code Club&#xA;  Projects and activities&#xA;Scratch&#xA;E-safety&#xA;        Vodafone digital parenting&#xA;    Social media Checklist&#xA;Online information&#xA;Sense about Science&#xA;  Sense about Science - peer review&#xA;Supporting critical thinking and reliability online&#xA;&#xA;Tags&#xA;&#xA;#CodeClub,#Information,#RaspberryPi,#Troubleshooting,&#xA;#esafety,#misinformation,#SenseAboutScience,#Vodafone,&#xA;DigitalParenting&#xA;&#xA;Next session&#xA;&#xA;Next Code Club is Saturday 3th September 2022. &#xA;&#xA;Please contact Paignton Library for details and booking. &#xA;&#xA;hr&#xD;&#xA;&#xD;&#xA;table&#xD;&#xA;thead&#xD;&#xA;trtda rel=&#34;me&#34; href=&#34;https://qoto.org/@zleap&#34;Mastodon/a/td&#xD;&#xA;tda href=&#34;https://wiki.ircnow.org/?n=Shelllabs.Intro&#34;ShellLabs/td&#xD;&#xA;tda href=&#34;https://joinmastodon.org/&#34;Join Mastodon/a/td/tr/thead/table&#xD;&#xA;center&#xD;&#xA;AI statement : b Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. /b&#xD;&#xA;/center&#xD;&#xA;&#xD;&#xA;a href=&#34;https://liberapay.com/PaulSutton/donate&#34;img alt=&#34;Donate using Liberapay&#34; src=&#34;https://liberapay.com/assets/widgets/donate.svg&#34;/a&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Code Club 20/8/2022 Write up</p>

<p>So we had another quiet session today, with 4 young people, plus a parent, nevertheless it was productive.  Time was initially split between looking for an iphone cable (could not find one), and also troubleshooting a Raspberry Pi, which seemed more successful.</p>

<p>There was also a discussion on e-safety, in terms of posting online and how this can have consequences later on,  employers can do searches on applicants for example and also what to post,  also a brief discussion on asking for evidence and finding proper, credible information on the internet,  I did give peer review a brief mentiobn</p>

<p>It seems really beneficial to have conversations.</p>

<p>This has prompted me to dig out a few resources I have here at home.  These are set to one side for the next session. I have also asked the library if they can send off for some copies of the Vodafone digital parenting resource.</p>

<p>We also have access to a tablet with the Lego WeDo software installed so if anyone is interested they can have a go at code club without having to bring along own devices. However attendees can, it really helps as you can store projects on your own device.</p>

<p><strong>Links</strong></p>
<ul><li><a href="https://www.torbaylibraries.org.uk/web/arena/paigntonlibrary" rel="nofollow">Paignton Library</a></li>
<li><a href="https://codeclub.org/en/" rel="nofollow">Code Club</a>
<ul><li><a href="https://projects.raspberrypi.org/en" rel="nofollow">Projects and activities</a></li></ul></li>
<li><a href="https://scratch.mit.edu/" rel="nofollow">Scratch</a></li>
<li>E-safety
    * <a href="https://www.vodafone.co.uk/mobile/digital-parenting/" rel="nofollow">Vodafone digital parenting</a>
<ul><li><a href="https://swgfl.org.uk/resources/checklists/" rel="nofollow">Social media Checklist</a></li></ul></li>
<li>Online information</li>
<li><a href="https://senseaboutscience.org/" rel="nofollow">Sense about Science</a>
<ul><li><a href="https://senseaboutscience.org/activities/peer-review/" rel="nofollow">Sense about Science – peer review</a></li></ul></li>
<li><a href="https://saferinternet.org.uk/online-issue/misinformation" rel="nofollow">Supporting critical thinking and reliability online</a></li></ul>

<p><strong>Tags</strong></p>

<p><a href="/paulsutton/tag:CodeClub" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">CodeClub</span></a>,<a href="/paulsutton/tag:Information" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Information</span></a>,<a href="/paulsutton/tag:RaspberryPi" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">RaspberryPi</span></a>,<a href="/paulsutton/tag:Troubleshooting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Troubleshooting</span></a>,
<a href="/paulsutton/tag:esafety" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">esafety</span></a>,<a href="/paulsutton/tag:misinformation" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">misinformation</span></a>,<a href="/paulsutton/tag:SenseAboutScience" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">SenseAboutScience</span></a>,<a href="/paulsutton/tag:Vodafone" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Vodafone</span></a>,
<a href="/paulsutton/tag:DigitalParenting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">DigitalParenting</span></a></p>

<p><strong>Next session</strong></p>
<ul><li>Next Code Club is <strong>Saturday 3th September 2022</strong>.</li></ul>

<p>Please contact Paignton Library for details and booking.</p>

<hr>

<p><table>
<thead>
<tr><td><a href="https://qoto.org/@zleap" rel="nofollow">Mastodon</a></td>
<td><a href="https://wiki.ircnow.org/?n=Shelllabs.Intro" rel="nofollow">ShellLabs</td>
<td><a href="https://joinmastodon.org/" rel="nofollow">Join Mastodon</a></td></tr></thead></table>

AI statement : <b> Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. </b>
</p>

<p><a href="https://liberapay.com/PaulSutton/donate" rel="nofollow"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></p>
]]></content:encoded>
      <guid>https://personaljournal.ca/paulsutton/code-club-20-8-2022-write-up</guid>
      <pubDate>Sat, 20 Aug 2022 16:51:33 +0000</pubDate>
    </item>
    <item>
      <title>Use pastebin from command line</title>
      <link>https://personaljournal.ca/paulsutton/use-pastebin-from-command-line</link>
      <description>&lt;![CDATA[Use pastebin from command line&#xA;&#xA;Use pastebin from command line&#xA;&#xA;Quite often, when you have a problem where, in order to get help you need to paste the contents of a file,or command output so that it can be shared,  for example on IRC (Chat) or a forum, this can be challenging to begin with.&#xA;&#xA;As it is depreciated that you paste more than 2 lines in to IRC chat.  The way round this is to use a service called pastebin.   Debian [1] has it&#39;s own service for this [2].   There is a tool called pastebinit which is really helpful from the command line. &#xA;&#xA;The first step is to switch to the root user. Sear for  and install the package pastebinit as per below.&#xA;&#xA;Search&#xA;&#xA;root@Desktop:/home/user# apt search pastebinit&#xA;Sorting... Done&#xA;Full Text Search... Done&#xA;pastebinit/stable 1.5.1-1 all&#xA;  command-line pastebin client&#xA;&#xA;Install&#xA;&#xA;root@Desktop:/home/user# apt install pastebinit&#xA;Reading package lists... Done&#xA;Building dependency tree... Done&#xA;Reading state information... Done&#xA;The following packages were automatically installed and are no longer required:&#xA;  linux-image-5.10.0-7-amd64 linux-image-5.10.0-8-amd64&#xA;Use &#39;apt autoremove&#39; to remove them.&#xA;The following NEW packages will be installed:&#xA;  pastebinit&#xA;0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.&#xA;Need to get 46.6 kB of archives.&#xA;After this operation, 342 kB of additional disk space will be used.&#xA;Get:1 http://deb.debian.org/debian bullseye/main amd64 pastebinit all 1.5.1-1 [46.6 kB]&#xA;Fetched 46.6 kB in 0s (342 kB/s)&#xA;Selecting previously unselected package pastebinit.&#xA;(Reading database ... 190310 files and directories currently installed.)&#xA;Preparing to unpack .../pastebinit1.5.1-1all.deb ...&#xA;Unpacking pastebinit (1.5.1-1) ...&#xA;Setting up pastebinit (1.5.1-1) ...&#xA;Processing triggers for man-db (2.9.4-2) ...&#xA;root@Desktop:/home/user# &#xA;&#xA;Once complete switch back to normal user (usually type exit)&#xA;&#xA;user@Desktop:~$ cat /etc/apt/sources.list   pastebinit&#xA;user@Desktop:~$ cat /etc/apt/sources.list | pastebinit&#xA;https://paste.debian.net/1228146/&#xA;&#xA;In this example I have used the cat command and piped the contents in to pastebinit,  this has given me a url to paste in to chat, (or copy manually)&#xA;&#xA;Open this in a browser and you and others can see the contents, and people can help you further.  &#xA;&#xA;paste bin it output&#xA;&#xA;This is really useful too if you are stuck at the command prompt,  without a graphical interface.&#xA;&#xA;Links&#xA;&#xA;1 Debian&#xA;2 pastebin - debian&#xA;3 Paignton Library STEM Group&#xA;TAGS&#xA;&#xA;#Debian,#GNULinux,#Paste,#Text,#Pastebin,#Share,#Troubleshooting&#xA;&#xA;img src=&#34;https://socialhub.activitypub.rocks/uploads/default/original/2X/d/dd8ee2842d572bad100cde42f7c98232e69ea9f7.png&#34; target=&#34;_blank&#34; &#xA;&#xA;hr&#xA;&#xA;a href=&#34;https://liberapay.com/PaulSutton/donate&#34;img alt=&#34;Donate using Liberapay&#34; src=&#34;https://liberapay.com/assets/widgets/donate.svg&#34;/a&#xA;&#xA;a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-sa/4.0/&#34;img alt=&#34;Creative Commons Licence&#34; style=&#34;border-width:0&#34; src=&#34;https://i.creativecommons.org/l/by-sa/4.0/88x31.png&#34; //abr /This work is licensed under a a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-sa/4.0/&#34;Creative Commons Attribution-ShareAlike 4.0 International License/a&#xA;&#xA;hr&#xD;&#xA;&#xD;&#xA;table&#xD;&#xA;thead&#xD;&#xA;trtda rel=&#34;me&#34; href=&#34;https://qoto.org/@zleap&#34;Mastodon/a/td&#xD;&#xA;tda href=&#34;https://wiki.ircnow.org/?n=Shelllabs.Intro&#34;ShellLabs/td&#xD;&#xA;tda href=&#34;https://joinmastodon.org/&#34;Join Mastodon/a/td/tr/thead/table&#xD;&#xA;center&#xD;&#xA;AI statement : b Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. /b&#xD;&#xA;/center&#xD;&#xA;&#xD;&#xA;a href=&#34;https://liberapay.com/PaulSutton/donate&#34;img alt=&#34;Donate using Liberapay&#34; src=&#34;https://liberapay.com/assets/widgets/donate.svg&#34;/a&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Use pastebin from command line</p>

<p><strong>Use pastebin from command line</strong></p>

<p>Quite often, when you have a problem where, in order to get help you need to paste the contents of a file,or command output so that it can be shared,  for example on IRC (Chat) or a forum, this can be challenging to begin with.</p>

<p>As it is <strong>depreciated</strong> that you paste more than 2 lines in to IRC chat.  The way round this is to use a service called pastebin.   Debian [1] has it&#39;s own service for this [2].   There is a tool called <em>pastebinit</em> which is really helpful from the command line.</p>

<p>The first step is to switch to the <strong>root</strong> user. Sear for  and install the package <strong>pastebinit</strong> as per below.</p>

<p><em>Search</em></p>

<pre><code>root@Desktop:/home/user# apt search pastebinit
Sorting... Done
Full Text Search... Done
pastebinit/stable 1.5.1-1 all
  command-line pastebin client
</code></pre>

<p><em>Install</em></p>

<pre><code>root@Desktop:/home/user# apt install pastebinit
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-image-5.10.0-7-amd64 linux-image-5.10.0-8-amd64
Use &#39;apt autoremove&#39; to remove them.
The following NEW packages will be installed:
  pastebinit
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 46.6 kB of archives.
After this operation, 342 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bullseye/main amd64 pastebinit all 1.5.1-1 [46.6 kB]
Fetched 46.6 kB in 0s (342 kB/s)
Selecting previously unselected package pastebinit.
(Reading database ... 190310 files and directories currently installed.)
Preparing to unpack .../pastebinit_1.5.1-1_all.deb ...
Unpacking pastebinit (1.5.1-1) ...
Setting up pastebinit (1.5.1-1) ...
Processing triggers for man-db (2.9.4-2) ...
root@Desktop:/home/user# 
</code></pre>

<p>Once complete switch back to normal user (usually type exit)</p>

<pre><code>user@Desktop:~$ cat /etc/apt/sources.list &gt; pastebinit
user@Desktop:~$ cat /etc/apt/sources.list | pastebinit
https://paste.debian.net/1228146/
</code></pre>

<p>In this example I have used the cat command and piped the contents in to pastebinit,  this has given me a url to paste in to chat, (or copy manually)</p>

<p>Open this in a browser and you and others can see the contents, and people can help you further.</p>

<p><img src="https://git.qoto.org/zleap/documents/-/raw/master/debian/pastebin2.png" alt="paste bin it output"></p>

<p>This is really useful too if you are stuck at the command prompt,  without a graphical interface.</p>

<p><strong>Links</strong></p>

<p>1 <a href="https://www.debian.org" rel="nofollow">Debian</a>
2 <a href="https://paste.debian.net" rel="nofollow">pastebin – debian</a>
3 <a href="https://personaljournal.ca/paigntonlibrarystemgroup/" rel="nofollow">Paignton Library STEM Group</a>
<strong>TAGS</strong></p>

<p><a href="/paulsutton/tag:Debian" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Debian</span></a>,<a href="/paulsutton/tag:GNULinux" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">GNULinux</span></a>,<a href="/paulsutton/tag:Paste" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Paste</span></a>,<a href="/paulsutton/tag:Text" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Text</span></a>,<a href="/paulsutton/tag:Pastebin" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Pastebin</span></a>,<a href="/paulsutton/tag:Share" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Share</span></a>,<a href="/paulsutton/tag:Troubleshooting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Troubleshooting</span></a></p>

<p><a href="https://torresjrjr.com/archive/2020-07-19-guide-to-the-fediverse" rel="nofollow"><img src="https://socialhub.activitypub.rocks/uploads/default/original/2X/d/dd8ee2842d572bad100cde42f7c98232e69ea9f7.png"></a></p>

<hr>

<p><a href="https://liberapay.com/PaulSutton/donate" rel="nofollow"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></p>

<p><a href="http://creativecommons.org/licenses/by-sa/4.0/" rel="nofollow"><img alt="Creative Commons Licence" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png"/></a><br/>This work is licensed under a <a href="http://creativecommons.org/licenses/by-sa/4.0/" rel="nofollow">Creative Commons Attribution-ShareAlike 4.0 International License</a></p>

<hr>

<p><table>
<thead>
<tr><td><a href="https://qoto.org/@zleap" rel="nofollow">Mastodon</a></td>
<td><a href="https://wiki.ircnow.org/?n=Shelllabs.Intro" rel="nofollow">ShellLabs</td>
<td><a href="https://joinmastodon.org/" rel="nofollow">Join Mastodon</a></td></tr></thead></table>

AI statement : <b> Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. </b>
</p>

<p><a href="https://liberapay.com/PaulSutton/donate" rel="nofollow"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></p>
]]></content:encoded>
      <guid>https://personaljournal.ca/paulsutton/use-pastebin-from-command-line</guid>
      <pubDate>Mon, 24 Jan 2022 15:18:28 +0000</pubDate>
    </item>
    <item>
      <title>LaTeX and Overleaf - Changing the compiler</title>
      <link>https://personaljournal.ca/paulsutton/latex-and-overleaf-changing-the-compiler</link>
      <description>&lt;![CDATA[LaTeX and Overleaf - Changing the compiler&#xA;&#xA;A question came up on IRC earlier about Overleaf, LaTeX and compiling to use the  \usepackage{arabluatex} package.&#xA;&#xA;I suggested that it is possible to change the compiler to use LuaTeX and made the following video to help others with this&#xA;&#xA;iframe width=&#34;560&#34; height=&#34;315&#34; sandbox=&#34;allow-same-origin allow-scripts allow-popups&#34; src=&#34;https://diode.zone/videos/embed/261cb1bd-9758-4945-800a-d81e57c7bde7&#34; frameborder=&#34;0&#34; allowfullscreen/iframe&#xA;&#xA;@overleaflatex@diode.zone&#xA;&#xA;#Overleaf,#LaTeX,#compiler,#pdfLaTeX,XeLaTeX,LuaLaTeX,&#xA;#typesetting,#troubleshooting,#tech,#science,#document,&#xA;#report,#writing,#author,#authoring&#xA;#thesis,#creative,#creating&#xA;&#xA;a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-sa/4.0/&#34;img alt=&#34;Creative Commons Licence&#34; style=&#34;border-width:0&#34; src=&#34;https://i.creativecommons.org/l/by-sa/4.0/88x31.png&#34; //abr /This work is licensed under a a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-sa/4.0/&#34;Creative Commons Attribution-ShareAlike 4.0 International License/a&#xA;&#xA;hr&#xD;&#xA;&#xD;&#xA;table&#xD;&#xA;thead&#xD;&#xA;trtda rel=&#34;me&#34; href=&#34;https://qoto.org/@zleap&#34;Mastodon/a/td&#xD;&#xA;tda href=&#34;https://wiki.ircnow.org/?n=Shelllabs.Intro&#34;ShellLabs/td&#xD;&#xA;tda href=&#34;https://joinmastodon.org/&#34;Join Mastodon/a/td/tr/thead/table&#xD;&#xA;center&#xD;&#xA;AI statement : b Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. /b&#xD;&#xA;/center&#xD;&#xA;&#xD;&#xA;a href=&#34;https://liberapay.com/PaulSutton/donate&#34;img alt=&#34;Donate using Liberapay&#34; src=&#34;https://liberapay.com/assets/widgets/donate.svg&#34;/a&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>LaTeX and Overleaf – Changing the compiler</p>

<p>A question came up on IRC earlier about Overleaf, LaTeX and compiling to use the  \usepackage{arabluatex} package.</p>

<p>I suggested that it is possible to change the compiler to use LuaTeX and made the following video to help others with this</p>

<iframe width="560" height="315" src="https://diode.zone/videos/embed/261cb1bd-9758-4945-800a-d81e57c7bde7" frameborder="0" allowfullscreen=""></iframe>
<ul><li><a href="https://diode.zone/video-channels/overleaflatex/videos" rel="nofollow"><a href="https://personaljournal.ca/@/overleaflatex@diode.zone" class="u-url mention" rel="nofollow">@<span>overleaflatex@diode.zone</span></a></a></li></ul>

<p><a href="/paulsutton/tag:Overleaf" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Overleaf</span></a>,<a href="/paulsutton/tag:LaTeX" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">LaTeX</span></a>,<a href="/paulsutton/tag:compiler" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">compiler</span></a>,<a href="/paulsutton/tag:pdfLaTeX" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">pdfLaTeX</span></a>,XeLaTeX,LuaLaTeX,
<a href="/paulsutton/tag:typesetting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">typesetting</span></a>,<a href="/paulsutton/tag:troubleshooting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">troubleshooting</span></a>,<a href="/paulsutton/tag:tech" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">tech</span></a>,<a href="/paulsutton/tag:science" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">science</span></a>,<a href="/paulsutton/tag:document" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">document</span></a>,
<a href="/paulsutton/tag:report" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">report</span></a>,<a href="/paulsutton/tag:writing" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">writing</span></a>,<a href="/paulsutton/tag:author" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">author</span></a>,<a href="/paulsutton/tag:authoring" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">authoring</span></a>
<a href="/paulsutton/tag:thesis" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">thesis</span></a>,<a href="/paulsutton/tag:creative" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">creative</span></a>,<a href="/paulsutton/tag:creating" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">creating</span></a></p>

<p><a href="http://creativecommons.org/licenses/by-sa/4.0/" rel="nofollow"><img alt="Creative Commons Licence" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png"/></a><br/>This work is licensed under a <a href="http://creativecommons.org/licenses/by-sa/4.0/" rel="nofollow">Creative Commons Attribution-ShareAlike 4.0 International License</a></p>

<hr>

<p><table>
<thead>
<tr><td><a href="https://qoto.org/@zleap" rel="nofollow">Mastodon</a></td>
<td><a href="https://wiki.ircnow.org/?n=Shelllabs.Intro" rel="nofollow">ShellLabs</td>
<td><a href="https://joinmastodon.org/" rel="nofollow">Join Mastodon</a></td></tr></thead></table>

AI statement : <b> Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. </b>
</p>

<p><a href="https://liberapay.com/PaulSutton/donate" rel="nofollow"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></p>
]]></content:encoded>
      <guid>https://personaljournal.ca/paulsutton/latex-and-overleaf-changing-the-compiler</guid>
      <pubDate>Mon, 07 Dec 2020 07:30:00 +0000</pubDate>
    </item>
    <item>
      <title>Add  more functions</title>
      <link>https://personaljournal.ca/paulsutton/add-more-functions</link>
      <description>&lt;![CDATA[Add  more functions&#xA;&#xA;I have added a few more maths functions to the application and also provided a clear function.  There are still a few items to add to help improve debugging but the application is starting to take shape. &#xA;&#xA;Notes &#xA; &#xA;window = Tk()&#xA;window.title(&#39;Maths Application&#39;)&#xA;window.geometry(&#34;570x150&#34;) # w x h&#xA;window.resizable(0,0)&#xA;&#xA;The above code is being modified as I go. So I am changing the window size depending on what is being displayed.&#xA;&#xA;I have also made the Window title reflect the purpose of the application.&#xA;&#xA;That the source code now has &#39;result&#39; as a label rather than output.  This will show up future screenshots. &#xA;&#xA;addition app&#xA;&#xA;The code for the above is as follows. &#xA;&#xA;!/usr/bin/env python&#xA;import Tkinter # note use of caps&#xA;from Tkinter import &#xA;&#xA;window = Tk()&#xA;window.title(&#39;Maths Application&#39;)&#xA;window.geometry(&#34;570x150&#34;) # w x h&#xA;window.resizable(0,0)&#xA;&#xA;define button actions&#xA;def btn1():&#xA;&#x9;#convert box text in to integers&#x9;&#xA;&#x9;ent1 = int(entrytext.get())&#xA;&#x9;ent2 = int(entrytext2.get())&#xA;&#x9;&#xA;&#x9;#add the 2 integers and store in variable add&#xA;&#x9;add = (ent1 + ent2)&#xA;&#x9;print (add)&#xA;&#x9;&#xA;&#x9;#insert value of variable add in&#x9;to box outtext &#xA;&#x9;outtext1.insert(0,str(add)) # insert response&#xA;&#xA;def btn2():&#xA;&#x9;#print(&#34;subtraction&#34;)&#xA;&#x9;ent1 = int(entrytext.get())&#xA;&#x9;ent2 = int(entrytext2.get())&#xA;&#x9;&#xA;&#x9;#subtract the 2 integers and store in variable sub&#xA;&#x9;sub = (ent1 - ent2)&#xA;&#x9;&#xA;&#x9;&#xA;&#x9;#insert value of variable sub in&#x9;to box outtext &#xA;&#x9;outtext1.insert(0,str(sub)) # insert response&#x9;&#xA;&#x9;&#xA;def btn3():&#xA;&#x9;#print(&#34;multiply&#34;)&#xA;&#x9;ent1 = int(entrytext.get())&#xA;&#x9;ent2 = int(entrytext2.get())&#xA;&#x9;&#xA;&#x9;#multiply the 2 integers and store in variable mul&#xA;&#x9;mul = (ent1  ent2)&#xA;&#x9;&#x9;&#xA;&#x9;#insert value of variable mul in&#x9;to box outtext &#xA;&#x9;outtext1.insert(0,str(mul)) # insert response&#x9;&#x9;&#xA;&#xA;def btn4():&#xA;&#x9;#print(&#34;divide&#34;)&#xA;&#x9;ent1 = int(entrytext.get())&#xA;&#x9;ent2 = int(entrytext2.get())&#xA;&#x9;&#xA;&#x9;#multiply the 2 integers and store in variable div&#xA;&#x9;div = (ent1 / ent2)&#xA;&#x9;&#x9;&#xA;&#x9;#insert value of variable mul in&#x9;to box outtext &#xA;&#x9;outtext1.insert(0,str(div)) # insert response&#x9;&#xA;&#x9;&#xA;clear boxes&#xA;def clear():&#xA;&#x9;#print(&#34;clear boxes&#34;) # leave in for legacy testing&#xA;&#x9;entrytext.delete(0, END) # clear input box&#xA;&#x9;entrytext2.delete(0, END) # clear input box2&#xA;&#x9;outtext1.delete(0, END) # clear output box&#xA;&#x9;&#xA;btntog2 = Button( window, text =&#39;+&#39;, command=btn1) # add&#xA;btntog3 = Button( window, text =&#39;-&#39;, command=btn2)  # subtract&#xA;btntog4 = Button( window, text =&#39;x&#39;, command=btn3) #multiply&#xA;btntog5 = Button( window, text =&#39;/&#39;, command=btn4) #divide&#xA;btntog6 = Button( window, text =&#39;Clear&#39;, command=clear) #clear&#xA;btnexit = Button( window, text =&#39;Exit&#39;,command=exit)&#x9; #exit&#xA;&#xA;define some labels&#xA;box1 = Label(window, text=&#34;1st Value&#34;)&#xA;box2 = Label(window, text=&#34;2nd Value&#34;)&#xA;box3 = Label(window, text=&#34;Result&#34;)&#xA;&#xA;define entry box &#xA;entry1 = StringVar() # this is our entry box&#xA;entry2 = StringVar()&#xA;entrytext = Entry(window, textvariable=entry1) # this is our entry box&#xA;entrytext2 = Entry(window, textvariable=entry2) # this is our second entry box&#xA;&#xA;define out box &#xA;&#xA;entry2 = StringVar() # this is our output box&#xA;outtext1 = Entry(window, textvariable=entry2) # this is our output box&#xA;&#xA;display boxes&#xA;entrytext.grid(row = 3, column = 2,)  #display entry box&#xA;entrytext2.grid(row = 3, column = 3,)  #display entry box&#xA;outtext1.grid(row = 3, column = 4,) #display output box&#xA;&#xA;place labels&#xA;box1.grid(row = 1&#x9;, column = 2, padx = 5, pady = 5)&#xA;box2.grid(row = 1&#x9;, column = 3, padx = 5, pady = 5)&#xA;box3.grid(row = 1&#x9;, column = 4, padx = 5, pady = 5)&#xA;&#xA;buttons&#xA;btntog2.grid(row = 4, column = 2, padx = 1, pady = 1) # addition button&#xA;btntog3.grid(row = 4, column = 3, padx = 1, pady = 1) # subtraction button&#xA;btntog4.grid(row = 5, column = 2, padx = 1, pady = 1) # multiply button&#xA;btntog5.grid(row = 5, column = 3, padx = 1, pady = 1) # divide button&#xA;btntog6.grid(row = 4, column = 6, padx = 1, pady = 1) # clear button&#xA;btnexit.grid(row = 3, column = 6, padx = 1, pady = 1) # exit button&#xA;&#xA;window.mainloop()&#xA;&#xA;The code that I used for a previous application to detect if numerical values have been used is below but provided &#39;as is&#39; for now.&#xA;&#xA;def response():&#xA;&#x9;&#x9;&#xA;&#x9;msg = &#34;error : must be a text value&#34;&#xA;&#xA;&#x9;i = circletext.get()&#xA;&#x9;y = i.isdigit()&#xA;&#x9;l = len(circletext.get())&#xA;&#x9;#print l&#xA;&#x9;if y == True or l == 0:&#xA;&#x9;&#x9;circletext.insert(0,(msg))&#xA;&#x9;&#x9;&#xA;&#x9;else:&#x9;&#xA;&#x9;&#x9;x = random.choice(RESPONSES)&#xA;&#x9;&#x9;circletext2.delete(0, END) # clear prev output&#xA;&#x9;&#x9;circletext2.insert(0,str(x)) # insert response&#xA;&#xA;I will integrate a version of this in to the main code. &#xA;&#xA;#python, #tkinter, #programming, #python, #graphic, #applications, #bugs, #troubleshooting, #howto, #paignton, #library, #virtual, #codeclub&#xA;&#xA;Happy to provide help and support via decentralised social media.  I can be contacted on Mastodon here. You can get a free account on the http://qoto.org instance by following this link.&#xA;&#xA;cc-by logo&#xA;&#xA;Licenced under Attribution 4.0 International (CC BY 4.0)&#xA;&#xA;hr&#xD;&#xA;&#xD;&#xA;table&#xD;&#xA;thead&#xD;&#xA;trtda rel=&#34;me&#34; href=&#34;https://qoto.org/@zleap&#34;Mastodon/a/td&#xD;&#xA;tda href=&#34;https://wiki.ircnow.org/?n=Shelllabs.Intro&#34;ShellLabs/td&#xD;&#xA;tda href=&#34;https://joinmastodon.org/&#34;Join Mastodon/a/td/tr/thead/table&#xD;&#xA;center&#xD;&#xA;AI statement : b Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. /b&#xD;&#xA;/center&#xD;&#xA;&#xD;&#xA;a href=&#34;https://liberapay.com/PaulSutton/donate&#34;img alt=&#34;Donate using Liberapay&#34; src=&#34;https://liberapay.com/assets/widgets/donate.svg&#34;/a&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Add  more functions</p>

<p>I have added a few more maths functions to the application and also provided a clear function.  There are still a few items to add to help improve debugging but the application is starting to take shape.</p>

<p><strong>Notes</strong></p>

<pre><code>window = Tk()
window.title(&#39;Maths Application&#39;)
window.geometry(&#34;570x150&#34;) # w x h
window.resizable(0,0)
</code></pre>
<ol><li><p>The above code is being modified as I go. So I am changing the window size depending on what is being displayed.</p></li>

<li><p>I have also made the Window title reflect the purpose of the application.</p></li>

<li><p>That the source code now has &#39;result&#39; as a label rather than output.  This will show up future screenshots.</p></li></ol>

<p><img src="https://raw.githubusercontent.com/zleap/blogmedia/master/tkinter/AdditionApp2.png" alt="addition app"></p>

<p>The code for the above is as follows.</p>

<pre><code>#!/usr/bin/env python
import Tkinter # note use of caps
from Tkinter import *

window = Tk()
window.title(&#39;Maths Application&#39;)
window.geometry(&#34;570x150&#34;) # w x h
window.resizable(0,0)

#define button actions
def btn1():
	#convert box text in to integers	
	ent1 = int(entrytext.get())
	ent2 = int(entrytext2.get())
	
	#add the 2 integers and store in variable add
	add = (ent1 + ent2)
	print (add)
	
	#insert value of variable add in	to box outtext 
	outtext1.insert(0,str(add)) # insert response

def btn2():
	#print(&#34;subtraction&#34;)
	ent1 = int(entrytext.get())
	ent2 = int(entrytext2.get())
	
	#subtract the 2 integers and store in variable sub
	sub = (ent1 - ent2)
	
	
	#insert value of variable sub in	to box outtext 
	outtext1.insert(0,str(sub)) # insert response	
	
def btn3():
	#print(&#34;multiply&#34;)
	ent1 = int(entrytext.get())
	ent2 = int(entrytext2.get())
	
	#multiply the 2 integers and store in variable mul
	mul = (ent1 * ent2)
		
	#insert value of variable mul in	to box outtext 
	outtext1.insert(0,str(mul)) # insert response		

def btn4():
	#print(&#34;divide&#34;)
	ent1 = int(entrytext.get())
	ent2 = int(entrytext2.get())
	
	#multiply the 2 integers and store in variable div
	div = (ent1 / ent2)
		
	#insert value of variable mul in	to box outtext 
	outtext1.insert(0,str(div)) # insert response	
	
#clear boxes
def clear():
	#print(&#34;clear boxes&#34;) # leave in for legacy testing
	entrytext.delete(0, END) # clear input box
	entrytext2.delete(0, END) # clear input box2
	outtext1.delete(0, END) # clear output box
	
btn_tog2 = Button( window, text =&#39;+&#39;, command=btn1) # add
btn_tog3 = Button( window, text =&#39;-&#39;, command=btn2)  # subtract
btn_tog4 = Button( window, text =&#39;x&#39;, command=btn3) #multiply
btn_tog5 = Button( window, text =&#39;/&#39;, command=btn4) #divide
btn_tog6 = Button( window, text =&#39;Clear&#39;, command=clear) #clear
btn_exit = Button( window, text =&#39;Exit&#39;,command=exit)	 #exit

# define some labels
box1 = Label(window, text=&#34;1st Value&#34;)
box2 = Label(window, text=&#34;2nd Value&#34;)
box3 = Label(window, text=&#34;Result&#34;)

#define entry box 
entry1 = StringVar() # this is our entry box
entry2 = StringVar()
entrytext = Entry(window, textvariable=entry1) # this is our entry box
entrytext2 = Entry(window, textvariable=entry2) # this is our second entry box

#define out box 

entry2 = StringVar() # this is our output box
outtext1 = Entry(window, textvariable=entry2) # this is our output box

#display boxes
entrytext.grid(row = 3, column = 2,)  #display entry box
entrytext2.grid(row = 3, column = 3,)  #display entry box
outtext1.grid(row = 3, column = 4,) #display output box

#place labels
box1.grid(row = 1	, column = 2, padx = 5, pady = 5)
box2.grid(row = 1	, column = 3, padx = 5, pady = 5)
box3.grid(row = 1	, column = 4, padx = 5, pady = 5)

#buttons
btn_tog2.grid(row = 4, column = 2, padx = 1, pady = 1) # addition button
btn_tog3.grid(row = 4, column = 3, padx = 1, pady = 1) # subtraction button
btn_tog4.grid(row = 5, column = 2, padx = 1, pady = 1) # multiply button
btn_tog5.grid(row = 5, column = 3, padx = 1, pady = 1) # divide button
btn_tog6.grid(row = 4, column = 6, padx = 1, pady = 1) # clear button
btn_exit.grid(row = 3, column = 6, padx = 1, pady = 1) # exit button

window.mainloop()


</code></pre>

<p>The code that I used for a previous application to detect if numerical values have been used is below but provided &#39;as is&#39; for now.</p>

<pre><code>def response():
		
	msg = &#34;error : must be a text value&#34;

	i = circletext.get()
	y = i.isdigit()
	l = len(circletext.get())
	#print l
	if y == True or l == 0:
		circletext.insert(0,(msg))
		
	else:	
		x = random.choice(RESPONSES)
		circletext2.delete(0, END) # clear prev output
		circletext2.insert(0,str(x)) # insert response
</code></pre>

<p>I will integrate a version of this in to the main code.</p>

<p><a href="/paulsutton/tag:python" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">python</span></a>, <a href="/paulsutton/tag:tkinter" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">tkinter</span></a>, <a href="/paulsutton/tag:programming" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">programming</span></a>, <a href="/paulsutton/tag:python" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">python</span></a>, <a href="/paulsutton/tag:graphic" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">graphic</span></a>, <a href="/paulsutton/tag:applications" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">applications</span></a>, <a href="/paulsutton/tag:bugs" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">bugs</span></a>, <a href="/paulsutton/tag:troubleshooting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">troubleshooting</span></a>, <a href="/paulsutton/tag:howto" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">howto</span></a>, <a href="/paulsutton/tag:paignton" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">paignton</span></a>, <a href="/paulsutton/tag:library" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">library</span></a>, <a href="/paulsutton/tag:virtual" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">virtual</span></a>, <a href="/paulsutton/tag:codeclub" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">codeclub</span></a></p>

<p>Happy to provide help and support via decentralised social media.  I can be contacted on Mastodon <a href="https://qoto.org/@zleap/" rel="nofollow">here</a>. You can get a free account on the <a href="http://qoto.org" rel="nofollow">http://qoto.org</a> instance by following <a href="https://qoto.org/invite/pN8gdTzi" rel="nofollow">this link</a>.</p>

<p><img src="https://raw.githubusercontent.com/zleap/blogmedia/master/88x31.png" alt="cc-by logo"></p>

<p><a href="https://creativecommons.org/licenses/by/4.0/" rel="nofollow">Licenced under Attribution 4.0 International (CC BY 4.0)</a></p>

<hr>

<p><table>
<thead>
<tr><td><a href="https://qoto.org/@zleap" rel="nofollow">Mastodon</a></td>
<td><a href="https://wiki.ircnow.org/?n=Shelllabs.Intro" rel="nofollow">ShellLabs</td>
<td><a href="https://joinmastodon.org/" rel="nofollow">Join Mastodon</a></td></tr></thead></table>

AI statement : <b> Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. </b>
</p>

<p><a href="https://liberapay.com/PaulSutton/donate" rel="nofollow"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></p>
]]></content:encoded>
      <guid>https://personaljournal.ca/paulsutton/add-more-functions</guid>
      <pubDate>Thu, 21 May 2020 06:44:22 +0000</pubDate>
    </item>
    <item>
      <title>Addition Application</title>
      <link>https://personaljournal.ca/paulsutton/addition-application</link>
      <description>&lt;![CDATA[Addition Application&#xA;&#xA;So following on from the previous posts, I am how sharing a small application, that makes use of what we have been learning. &#xA;&#xA;This presents 2 input boxes and an output box,  any values entered in to the first two,  the sum is placed in to the last box.&#xA;&#xA;addition app&#xA;&#xA;This is not perfect, but getting there slowly.&#xA;&#xA;We need to:-&#xA;&#xA;Fix the name of the button from button1&#xA;Detect if the user has entered numerical values&#xA;Detect for empty boxes&#xA;Make labels more useful&#xA;Fix spelling in comments&#xA;Fix clarity of comments&#xA;&#xA;The code for the above is as follows. &#xA;&#xA;!/usr/bin/env python&#xA;import Tkinter # note use of caps&#xA;from Tkinter import *&#xA;&#xA;window = Tk()&#xA;window.title(&#39;App 1&#39;)&#xA;window.geometry(&#34;650x125&#34;) # w x h&#xA;window.resizable(0,0)&#xA;&#xA;define button actions&#xA;def btn1():&#xA;&#x9;#convert box text in to integers&#x9;&#xA;&#x9;ent1 = int(entrytext.get())&#xA;&#x9;ent2 = int(entrytext2.get())&#xA;&#x9;&#xA;&#x9;#add the 2 integers and store in variable add&#xA;&#x9;add = (ent1 + ent2)&#xA;&#x9;print add&#xA;&#x9;&#xA;&#x9;#instert value add in&#x9;to box outtext &#xA;&#x9;outtext1.insert(0,str(add)) # insert response&#xA;&#x9;&#xA;btntog2 = Button( window, text =&#39;button1&#39;, command=btn1)&#xA;btnexit = Button( window, text =&#39;exit&#39;,command=exit)&#x9;&#xA;&#xA;define some labels&#xA;box1 = Label(window, text=&#34;Entry 1: &#34;)&#xA;box2 = Label(window, text=&#34;Entry 2: &#34;)&#xA;box3 = Label(window, text=&#34;Ouput1: &#34;)&#xA;&#xA;define entry box &#xA;entry1 = StringVar() # this is our entry box&#xA;entry2 = StringVar()&#xA;entrytext = Entry(window, textvariable=entry1) # this is our entry box&#xA;entrytext2 = Entry(window, textvariable=entry2) # this is our second entry box&#xA;&#xA;define out box &#xA;&#xA;entry2 = StringVar() # this is our output box&#xA;outtext1 = Entry(window, textvariable=entry2) # this is our output box&#xA;&#xA;display boxes&#xA;entrytext.grid(row = 3, column = 2,)  #display entry box&#xA;entrytext2.grid(row = 3, column = 3,)  #display entry box&#xA;outtext1.grid(row = 3, column = 4,) #display output box&#xA;&#xA;place labels&#xA;box1.grid(row = 1&#x9;, column = 2, padx = 5, pady = 5)&#xA;box2.grid(row = 1&#x9;, column = 3, padx = 5, pady = 5)&#xA;box3.grid(row = 1&#x9;, column = 4, padx = 5, pady = 5)&#xA;&#xA;buttons&#xA;btntog2.grid(row = 3, column = 5, padx = 5, pady = 5)&#xA;btnexit.grid(row = 3, column = 6, padx = 5, pady = 5)&#xA;&#xA;window.mainloop()&#xA;&#xA;#python, #tkinter, #programming, #python, #graphic, #applications, #bugs, #troubleshooting, #howto, #paignton, #library, #virtual, #codeclub&#xA;&#xA;Happy to provide help and support via decentralised social media.  I can be contacted on Mastodon here. You can get a free account on the http://qoto.org instance by following this link.&#xA;&#xA;cc-by logo&#xA;&#xA;Licenced under Attribution 4.0 International (CC BY 4.0)&#xA;&#xA;hr&#xD;&#xA;&#xD;&#xA;table&#xD;&#xA;thead&#xD;&#xA;trtda rel=&#34;me&#34; href=&#34;https://qoto.org/@zleap&#34;Mastodon/a/td&#xD;&#xA;tda href=&#34;https://wiki.ircnow.org/?n=Shelllabs.Intro&#34;ShellLabs/td&#xD;&#xA;tda href=&#34;https://joinmastodon.org/&#34;Join Mastodon/a/td/tr/thead/table&#xD;&#xA;center&#xD;&#xA;AI statement : b Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. /b&#xD;&#xA;/center&#xD;&#xA;&#xD;&#xA;a href=&#34;https://liberapay.com/PaulSutton/donate&#34;img alt=&#34;Donate using Liberapay&#34; src=&#34;https://liberapay.com/assets/widgets/donate.svg&#34;/a&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Addition Application</p>

<p>So following on from the previous posts, I am how sharing a small application, that makes use of what we have been learning.</p>

<p>This presents 2 input boxes and an output box,  any values entered in to the first two,  the sum is placed in to the last box.</p>

<p><img src="https://raw.githubusercontent.com/zleap/blogmedia/master/tkinter/AdditionApp.png" alt="addition app"></p>

<p>This is not perfect, but getting there slowly.</p>

<p>We need to:-</p>
<ul><li>Fix the name of the button from button1</li>
<li>Detect if the user has entered numerical values</li>
<li>Detect for empty boxes</li>
<li>Make labels more useful</li>
<li>Fix spelling in comments</li>
<li>Fix clarity of comments</li></ul>

<p>The code for the above is as follows.</p>

<pre><code>#!/usr/bin/env python
import Tkinter # note use of caps
from Tkinter import *

window = Tk()
window.title(&#39;App 1&#39;)
window.geometry(&#34;650x125&#34;) # w x h
window.resizable(0,0)

#define button actions
def btn1():
	#convert box text in to integers	
	ent1 = int(entrytext.get())
	ent2 = int(entrytext2.get())
	
	#add the 2 integers and store in variable add
	add = (ent1 + ent2)
	print add
	
	#instert value add in	to box outtext 
	outtext1.insert(0,str(add)) # insert response
	
btn_tog2 = Button( window, text =&#39;button1&#39;, command=btn1)
btn_exit = Button( window, text =&#39;exit&#39;,command=exit)	

# define some labels
box1 = Label(window, text=&#34;Entry 1: &#34;)
box2 = Label(window, text=&#34;Entry 2: &#34;)
box3 = Label(window, text=&#34;Ouput1: &#34;)

#define entry box 
entry1 = StringVar() # this is our entry box
entry2 = StringVar()
entrytext = Entry(window, textvariable=entry1) # this is our entry box
entrytext2 = Entry(window, textvariable=entry2) # this is our second entry box

#define out box 

entry2 = StringVar() # this is our output box
outtext1 = Entry(window, textvariable=entry2) # this is our output box

#display boxes
entrytext.grid(row = 3, column = 2,)  #display entry box
entrytext2.grid(row = 3, column = 3,)  #display entry box
outtext1.grid(row = 3, column = 4,) #display output box

#place labels
box1.grid(row = 1	, column = 2, padx = 5, pady = 5)
box2.grid(row = 1	, column = 3, padx = 5, pady = 5)
box3.grid(row = 1	, column = 4, padx = 5, pady = 5)

#buttons
btn_tog2.grid(row = 3, column = 5, padx = 5, pady = 5)
btn_exit.grid(row = 3, column = 6, padx = 5, pady = 5)

window.mainloop()

</code></pre>

<p><a href="/paulsutton/tag:python" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">python</span></a>, <a href="/paulsutton/tag:tkinter" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">tkinter</span></a>, <a href="/paulsutton/tag:programming" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">programming</span></a>, <a href="/paulsutton/tag:python" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">python</span></a>, <a href="/paulsutton/tag:graphic" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">graphic</span></a>, <a href="/paulsutton/tag:applications" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">applications</span></a>, <a href="/paulsutton/tag:bugs" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">bugs</span></a>, <a href="/paulsutton/tag:troubleshooting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">troubleshooting</span></a>, <a href="/paulsutton/tag:howto" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">howto</span></a>, <a href="/paulsutton/tag:paignton" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">paignton</span></a>, <a href="/paulsutton/tag:library" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">library</span></a>, <a href="/paulsutton/tag:virtual" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">virtual</span></a>, <a href="/paulsutton/tag:codeclub" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">codeclub</span></a></p>

<p>Happy to provide help and support via decentralised social media.  I can be contacted on Mastodon <a href="https://qoto.org/@zleap/" rel="nofollow">here</a>. You can get a free account on the <a href="http://qoto.org" rel="nofollow">http://qoto.org</a> instance by following <a href="https://qoto.org/invite/pN8gdTzi" rel="nofollow">this link</a>.</p>

<p><img src="https://raw.githubusercontent.com/zleap/blogmedia/master/88x31.png" alt="cc-by logo"></p>

<p><a href="https://creativecommons.org/licenses/by/4.0/" rel="nofollow">Licenced under Attribution 4.0 International (CC BY 4.0)</a></p>

<hr>

<p><table>
<thead>
<tr><td><a href="https://qoto.org/@zleap" rel="nofollow">Mastodon</a></td>
<td><a href="https://wiki.ircnow.org/?n=Shelllabs.Intro" rel="nofollow">ShellLabs</td>
<td><a href="https://joinmastodon.org/" rel="nofollow">Join Mastodon</a></td></tr></thead></table>

AI statement : <b> Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. </b>
</p>

<p><a href="https://liberapay.com/PaulSutton/donate" rel="nofollow"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></p>
]]></content:encoded>
      <guid>https://personaljournal.ca/paulsutton/addition-application</guid>
      <pubDate>Wed, 20 May 2020 06:30:00 +0000</pubDate>
    </item>
  </channel>
</rss>