<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>HowTo &amp;mdash; Paul Sutton</title>
    <link>https://personaljournal.ca/paulsutton/tag:HowTo</link>
    <description>Personal Blog</description>
    <pubDate>Tue, 05 May 2026 14:58:31 +0000</pubDate>
    <item>
      <title>Making a Sodium Chloride Solution attempt 3</title>
      <link>https://personaljournal.ca/paulsutton/making-a-sodium-chloride-solution-attempt-3</link>
      <description>&lt;![CDATA[Making a Sodium Chloride Solution attempt 3&#xA;&#xA;So further to my previous video, where I measure out the required amount of Sodium Chloride,  this video illustrates mixing the solution in a 100ml volumetric flask&#xA;&#xA;Two parts to this video&#xA;&#xA;Measuring Sodium Chloride&#xA;Making the actual solution&#xA;&#xA;Tags&#xA;&#xA;#Science,#Chemistry,#Molar,#Solutions.#HowTo,#Demonstration&#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>Making a Sodium Chloride Solution attempt 3</p>

<p>So further to my previous video, where I measure out the required amount of Sodium Chloride,  this video illustrates mixing the solution in a 100ml volumetric flask</p>

<p>Two parts to this video</p>
<ol><li><a href="https://diode.zone/w/b9hE5BKz1TV7WHKrULsTBg" rel="nofollow">Measuring Sodium Chloride</a></li>
<li><a href="https://diode.zone/w/sVu7LwafmWeBL2C9L5NorK" rel="nofollow">Making the actual solution</a></li></ol>

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

<p><a href="/paulsutton/tag:Science" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Science</span></a>,<a href="/paulsutton/tag:Chemistry" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Chemistry</span></a>,<a href="/paulsutton/tag:Molar" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Molar</span></a>,<a href="/paulsutton/tag:Solutions" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Solutions</span></a>.<a href="/paulsutton/tag:HowTo" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">HowTo</span></a>,<a href="/paulsutton/tag:Demonstration" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Demonstration</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/making-a-sodium-chloride-solution-attempt-3</guid>
      <pubDate>Sun, 10 Sep 2023 16:19:58 +0000</pubDate>
    </item>
    <item>
      <title>Code Club - Trinket and python Modules</title>
      <link>https://personaljournal.ca/paulsutton/code-club-trinket-and-python-modules</link>
      <description>&lt;![CDATA[Code Club - Trinket and python Modules&#xA;&#xA;Trinket allows you to use a number of different modules to add functionality to your programs.&#xA;&#xA;Code Club have added a py5 module for their own projects.  So this post will examine how to add one of the available libraries to your program.&#xA;&#xA;Firstly a list of the modules that Trinket.io provides can be found here. along with some documentation for each.&#xA;&#xA;builtins&#xA;math&#xA;matplotlib.pyplot&#xA;numpy&#xA;operator&#xA;processing&#xA;random&#xA;string&#xA;time&#xA;turtle&#xA;pygal&#xA;re&#xA;urllib.request&#xA;&#xA;So to add a module we need to use the import command.  &#xA;&#xA;Start with a blank new Python 3 project  and enter the following&#xA;&#xA;#!/usr/bin/env python3 #use python 3&#xA;Then the instruction to import the required module.&#xA;import numpy&#xA;&#xA;Now test if you don&#39;t get errors proceed to add&#xA;&#xA;from numpy import *&#xA;And test again. &#xA;&#xA;iframe src=&#34;https://trinket.io/embed/python3/5e0497e6e3?runOption=run&#34; width=&#34;100%&#34; height=&#34;356&#34; frameborder=&#34;0&#34; marginwidth=&#34;0&#34; marginheight=&#34;0&#34; allowfullscreen/iframe&#xA;&#xA;Should give no errors, in which case you can now start to use module numpy&#xA;&#xA;Other info&#xA;&#xA;You can use modules such as Numpy and matplotlib in software such as Jupyter Notebook&#xA;&#xA;Tags&#xA;&#xA;#Python,#Trinket,#Modules,#HowTo,#CodeClub&#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 – Trinket and python Modules</p>

<p>Trinket allows you to use a number of different modules to add functionality to your programs.</p>

<p>Code Club have added a py5 module for their own projects.  So this post will examine how to add one of the available libraries to your program.</p>

<p>Firstly a list of the modules that Trinket.io provides can be <a href="https://trinket.io/docs/python" rel="nofollow">found here</a>. along with some documentation for each.</p>
<ul><li>builtins</li>
<li><a href="https://docs.python.org/3/library/math.html" rel="nofollow">math</a></li>
<li><a href="https://matplotlib.org/stable/tutorials/introductory/pyplot.html" rel="nofollow">matplotlib.pyplot</a></li>
<li><a href="https://numpy.org/" rel="nofollow">numpy</a></li>
<li><a href="https://docs.python.org/3/library/operator.html" rel="nofollow">operator</a></li>
<li><a href="https://py.processing.org/" rel="nofollow">processing</a></li>
<li><a href="https://docs.python.org/3/library/random.htm" rel="nofollow">random</a></li>
<li><a href="https://docs.python.org/3/library/string.html" rel="nofollow">string</a></li>
<li><a href="https://docs.python.org/3/library/time.html" rel="nofollow">time</a></li>
<li><a href="https://docs.python.org/3/library/turtle.html" rel="nofollow">turtle</a></li>
<li>pygal</li>
<li>re</li>
<li>urllib.request</li></ul>

<p>So to add a module we need to use the import command.</p>

<p>Start with a blank new <em>Python 3</em> project  and enter the following</p>

<pre><code>#!/usr/bin/env python3 #use python 3
</code></pre>

<p>Then the instruction to import the required module.</p>

<pre><code>import numpy
</code></pre>

<p>Now test if you don&#39;t get errors proceed to add</p>

<pre><code>from numpy import *
</code></pre>

<p>And test again.</p>

<iframe src="https://trinket.io/embed/python3/5e0497e6e3?runOption=run" height="356" frameborder="0" allowfullscreen=""></iframe>

<p>Should give no errors, in which case you can now start to use module numpy</p>

<p><strong>Other info</strong></p>

<p>You can use modules such as Numpy and matplotlib in software such as <a href="https://jupyter.org/" rel="nofollow">Jupyter Notebook</a></p>

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

<p><a href="/paulsutton/tag:Python" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Python</span></a>,<a href="/paulsutton/tag:Trinket" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Trinket</span></a>,<a href="/paulsutton/tag:Modules" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Modules</span></a>,<a href="/paulsutton/tag:HowTo" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">HowTo</span></a>,<a href="/paulsutton/tag:CodeClub" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">CodeClub</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/code-club-trinket-and-python-modules</guid>
      <pubDate>Sun, 04 Jun 2023 06:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Subscribe to Librelounge podcast with vlc</title>
      <link>https://personaljournal.ca/paulsutton/subscribe-to-librelounge-podcast-with-vlc</link>
      <description>&lt;![CDATA[Subscribe to Librelounge podcast with vlc&#xA;&#xA;In today&#39;s video, I do a quick run through on how to subscribe to the Librelouge podcast using the vlc media player.&#xA;&#xA;I am already subscribed to this, so before I paste the link in I remove the existing entry.  But this also illustrates that it is just as easy to remove subscriptions.&#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/5a0a4e68-e576-499b-88be-732e9ba54172&#34; frameborder=&#34;0&#34; allowfullscreen/iframe&#xA;&#xA;#podcast,#vlc.#subscription,#rss,#media,#howto,#help,&#xA;#support,#LibreLounge&#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>Subscribe to Librelounge podcast with vlc</p>

<p>In today&#39;s video, I do a quick run through on how to subscribe to the <a href="https://librelounge.org/" rel="nofollow">Librelouge</a> podcast using the vlc media player.</p>

<p>I am already subscribed to this, so before I paste the link in I remove the existing entry.  But this also illustrates that it is just as easy to remove subscriptions.</p>

<iframe width="560" height="315" src="https://diode.zone/videos/embed/5a0a4e68-e576-499b-88be-732e9ba54172" frameborder="0" allowfullscreen=""></iframe>

<p><a href="/paulsutton/tag:podcast" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">podcast</span></a>,<a href="/paulsutton/tag:vlc" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">vlc</span></a>.<a href="/paulsutton/tag:subscription" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">subscription</span></a>,<a href="/paulsutton/tag:rss" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">rss</span></a>,<a href="/paulsutton/tag:media" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">media</span></a>,<a href="/paulsutton/tag:howto" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">howto</span></a>,<a href="/paulsutton/tag:help" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">help</span></a>,
<a href="/paulsutton/tag:support" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">support</span></a>,<a href="/paulsutton/tag:LibreLounge" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">LibreLounge</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/subscribe-to-librelounge-podcast-with-vlc</guid>
      <pubDate>Tue, 22 Dec 2020 07:30:00 +0000</pubDate>
    </item>
    <item>
      <title>Add new users to Debian</title>
      <link>https://personaljournal.ca/paulsutton/add-new-users-to-debian</link>
      <description>&lt;![CDATA[Add new users to Debian&#xA;&#xA;To do this you need to install gnome-system-tools then from the menu select Users and Groups &#xA;&#xA;apt install gnome-system-tools&#xA;&#xA;The video below illustrates the, short, simple process of adding new users to your system.&#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/bd34bbc9-1e6f-4faf-a8b6-fb9673747ae7&#34; frameborder=&#34;0&#34; allowfullscreen/iframe&#xA;&#xA;#debian,#add,#new,#user,#howto,#help,#support,freesoftware&#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>Add new users to Debian</p>

<p>To do this you need to install <em>gnome-system-tools</em> then from the menu select <em>Users and Groups</em></p>

<p><strong>apt install gnome-system-tools</strong></p>

<p>The video below illustrates the, short, simple process of adding new users to your system.</p>

<iframe width="560" height="315" src="https://diode.zone/videos/embed/bd34bbc9-1e6f-4faf-a8b6-fb9673747ae7" frameborder="0" allowfullscreen=""></iframe>

<p><a href="/paulsutton/tag:debian" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">debian</span></a>,<a href="/paulsutton/tag:add" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">add</span></a>,<a href="/paulsutton/tag:new" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">new</span></a>,<a href="/paulsutton/tag:user" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">user</span></a>,<a href="/paulsutton/tag:howto" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">howto</span></a>,<a href="/paulsutton/tag:help" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">help</span></a>,<a href="/paulsutton/tag:support" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">support</span></a>,freesoftware</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/add-new-users-to-debian</guid>
      <pubDate>Sat, 19 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>
    <item>
      <title>Scratch : Share projects</title>
      <link>https://personaljournal.ca/paulsutton/scratch-share-projects</link>
      <description>&lt;![CDATA[Scratch : Share projects&#xA;&#xA;By default, Scratch projects are set to private. This means that only you can edit them.   This feature helps to keep users safe.  However the very nature of Scratch is collaborative and you are encouraged to share, but remember to be safe while you are sharing, Ask a grown up first. &#xA;&#xA;To share your new project: &#xA;&#xA;Fill in the name box next to the orange share button.&#xA;Click the orange share button. &#xA;&#xA;share scratch projects&#xA;&#xA;Don&#39;t worry if you forget to give your project a name, clicking on the share button brings up this screen.&#xA;&#xA;share scratch projects&#xA;&#xA;Adding to a studio&#xA;&#xA;Method 1&#xA;&#xA;From the above screen you will see there is an Add to studio button near the bottom right&#xA;&#xA;Method 2&#xA;&#xA;If you click on your name in the corner, click my stuff you are then taken to this screen, where you can share your project with a studio you are following.&#xA;&#xA;share scratch projects&#xA;&#xA;share scratch projects&#xA;&#xA;You do this by clicking Add to and selecting the studio from the list. &#xA;&#xA;#scratch, #share, #project, #howto&#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>Scratch : Share projects</p>

<p>By default, Scratch projects are set to private. This means that only you can edit them.   This feature helps to keep users safe.  However the very nature of Scratch is collaborative and you are encouraged to share, but remember to be safe while you are sharing, Ask a grown up first.</p>

<p>To share your new project:</p>
<ol><li>Fill in the name box next to the orange share button.</li>
<li>Click the orange share button.</li></ol>

<p><img src="https://raw.githubusercontent.com/zleap/blogmedia/master/scratch/share1.png" alt="share scratch projects"></p>

<p>Don&#39;t worry if you forget to give your project a name, clicking on the share button brings up this screen.</p>

<p><img src="https://raw.githubusercontent.com/zleap/blogmedia/master/scratch/share2.png" alt="share scratch projects"></p>

<p><strong>Adding to a studio</strong></p>

<p><strong>Method 1</strong></p>

<p>From the above screen you will see there is an Add to studio button near the bottom right</p>

<p><strong>Method 2</strong></p>

<p>If you click on your name in the corner, click <strong>my stuff</strong> you are then taken to this screen, where you can share your project with a studio you are following.</p>

<p><img src="https://raw.githubusercontent.com/zleap/blogmedia/master/scratch/share3.png" alt="share scratch projects"></p>

<p><img src="https://raw.githubusercontent.com/zleap/blogmedia/master/scratch/share4.png" alt="share scratch projects"></p>

<p>You do this by clicking <strong>Add to</strong> and selecting the studio from the list.</p>

<p><a href="/paulsutton/tag:scratch" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">scratch</span></a>, <a href="/paulsutton/tag:share" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">share</span></a>, <a href="/paulsutton/tag:project" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">project</span></a>, <a href="/paulsutton/tag:howto" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">howto</span></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/scratch-share-projects</guid>
      <pubDate>Wed, 15 Apr 2020 08:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Following Friendica tags</title>
      <link>https://personaljournal.ca/paulsutton/follow-friendica-tags</link>
      <description>&lt;![CDATA[Following Friendica tags&#xA;&#xA;How to follow tags on Friendica&#xA;&#xA;On Friendica, posts are accompanied by tags at the bottom of the text.  These help to give an idea on what topic or topics are being discussed by including keywords.&#xA;&#xA;If you are interested in a particular topic, then you can follow the tags you are interested in. &#xA;&#xA;Here is how:&#xA;&#xA;Click on a tag and you get the following displayed, you can see the tag you clicked on has been inserted in to the box. &#xA;&#xA;cc-by logo&#xA;&#xA;Click follow and the tag will be added to the list on the left hand side.  You will now see posts that contain those tags. &#xA;&#xA;cc-by logo&#xA;&#xA;following #newhere, will help you find new users, so you can respond to them and make them feel welcome. &#xA;&#xA;#friendica, #tags, #follow, #howto, #help, #support, #fediverse&#xA;&#xA;You can find me on Friendica at zleap@social.isurf.ca&#xA;&#xA;---&#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>Following Friendica tags</p>

<h2 id="how-to-follow-tags-on-friendica">How to follow tags on Friendica</h2>

<p>On Friendica, posts are accompanied by tags at the bottom of the text.  These help to give an idea on what topic or topics are being discussed by including keywords.</p>

<p>If you are interested in a particular topic, then you can follow the tags you are interested in.</p>

<p>Here is how:</p>

<p>Click on a tag and you get the following displayed, you can see the tag you clicked on has been inserted in to the box.</p>

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

<p>Click follow and the tag will be added to the list on the left hand side.  You will now see posts that contain those tags.</p>

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

<p>following <a href="/paulsutton/tag:newhere" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">newhere</span></a>, will help you find new users, so you can respond to them and make them feel welcome.</p>

<p><a href="/paulsutton/tag:friendica" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">friendica</span></a>, <a href="/paulsutton/tag:tags" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">tags</span></a>, <a href="/paulsutton/tag:follow" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">follow</span></a>, <a href="/paulsutton/tag:howto" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">howto</span></a>, <a href="/paulsutton/tag:help" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">help</span></a>, <a href="/paulsutton/tag:support" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">support</span></a>, <a href="/paulsutton/tag:fediverse" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">fediverse</span></a></p>

<p><a href="https://social.isurf.ca/profile/zleap" rel="nofollow">You can find me on Friendica at zleap@social.isurf.ca</a></p>

<hr>

<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/follow-friendica-tags</guid>
      <pubDate>Mon, 30 Dec 2019 13:30:00 +0000</pubDate>
    </item>
  </channel>
</rss>