<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>pbarc &amp;mdash; KJ7RRV</title>
    <link>https://kj7rrv.com/tag:pbarc</link>
    <description></description>
    <pubDate>Mon, 27 Apr 2026 08:16:48 -0700</pubDate>
    <item>
      <title>Pledge of Allegiance speech and motion</title>
      <link>https://kj7rrv.com/pledge-of-allegiance-speech-and-motion</link>
      <description>&lt;![CDATA[I gave this speech at the Pelican Bay Amateur Radio Club meeting on February 23, 2024. The motion passed, and at the next meeting, we voted to approve a new version of the rule.&#xA;&#xA;When we recite the Pledge of Allegiance, we promise loyalty to our flag and to our republic. This does not mean that we always agree with our government&#39;s decisions. Rather, it means we support our nation and its values – the values represented by the colors of our flag.&#xA;&#xA;The flag’s blue field symbolizes vigilance and justice. It represents the ideal, named in the Pledge of Allegiance, of “liberty and justice for all.”&#xA;&#xA;The white stars and stripes symbolize innocence and pure motives. While America is not perfect, we seek to do what is right and work toward a better nation.&#xA;&#xA;Finally, the flag’s red stripes represent bravery and valor. They remind us of the sacrifices made by the millions of Americans who have served in our armed forces. In particular, they honor the nearly seven hundred thousand men and women who have given their lives for this country. Do we want to stop honoring their sacrifice?&#xA;&#xA;When we pledge allegiance to our republic, we are not endorsing our government, which changes from year to year. Rather, we are expressing support for our form of government: a constitutional democratic republic that has succeeded in reflecting the will of the people for nearly two hundred and fifty years without falling to mob rule.&#xA;&#xA;After the Constitutional Convention, a woman asked Benjamin Franklin what form of government had been established. He told her, “A republic, if you can keep it.” To keep our republic requires that we show respect for our flag and our country. To stop beginning our meetings with the Pledge would work against this goal.&#xA;&#xA;Therefore, I move that we continue and formalize our long-standing custom by adopting a standing rule that all meetings shall begin with the Pledge of Allegiance.&#xA;&#xA;span xmlns:cc=&#34;http://creativecommons.org/ns#&#34; xmlns:dct=&#34;http://purl.org/dc/terms/&#34;a property=&#34;dct:title&#34; rel=&#34;cc:attributionURL&#34; href=&#34;https://kj7rrv.com/pledge-of-allegiance-speech-and-motion&#34;Pledge of Allegiance speech and motion/a by a rel=&#34;cc:attributionURL dct:creator&#34; property=&#34;cc:attributionName&#34; href=&#34;https://kj7rrv.com/&#34;Samuel Sloniker/a is licensed under a href=&#34;http://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1&#34; target=&#34;blank&#34; rel=&#34;license noopener noreferrer&#34; style=&#34;display:inline-block;&#34;CC BY-SA 4.0img style=&#34;height:22px!important;margin-left:3px;vertical-align:text-bottom;&#34; src=&#34;https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1&#34;img style=&#34;height:22px!important;margin-left:3px;vertical-align:text-bottom;&#34; src=&#34;https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1&#34;img style=&#34;height:22px!important;margin-left:3px;vertical-align:text-bottom;&#34; src=&#34;https://mirrors.creativecommons.org/presskit/icons/sa.svg?ref=chooser-v1&#34;/a/span&#xA;&#xA;#PBARC #HamRadio #USA]]&gt;</description>
      <content:encoded><![CDATA[<p><em>I gave this speech at the <a href="https://w7bkg.org/">Pelican Bay Amateur Radio Club</a> meeting on February 23, 2024. The motion passed, and at the next meeting, we voted to approve <a href="https://w7bkg.org/wiki/Policies#Standing_rules">a new version of the rule</a>.</em></p>

<p>When we recite the Pledge of Allegiance, we promise loyalty to our flag and to our republic. This does not mean that we always agree with our government&#39;s decisions. Rather, it means we support our nation and its values – the values represented by the colors of our flag.</p>

<p>The flag’s blue field symbolizes vigilance and justice. It represents the ideal, named in the Pledge of Allegiance, of “liberty and justice for all.”</p>

<p>The white stars and stripes symbolize innocence and pure motives. While America is not perfect, we seek to do what is right and work toward a better nation.</p>

<p>Finally, the flag’s red stripes represent bravery and valor. They remind us of the sacrifices made by the millions of Americans who have served in our armed forces. In particular, they honor the nearly seven hundred thousand men and women who have given their lives for this country. Do we want to stop honoring their sacrifice?</p>

<p>When we pledge allegiance to our republic, we are not endorsing our government, which changes from year to year. Rather, we are expressing support for our form of government: a constitutional democratic republic that has succeeded in reflecting the will of the people for nearly two hundred and fifty years without falling to mob rule.</p>

<p>After the Constitutional Convention, a woman asked Benjamin Franklin what form of government had been established. He told her, “A republic, if you can keep it.” To keep our republic requires that we show respect for our flag and our country. To stop beginning our meetings with the Pledge would work against this goal.</p>

<p>Therefore, <strong>I move that we continue and formalize our long-standing custom by adopting a standing rule that all meetings shall begin with the Pledge of Allegiance.</strong></p>

<p><em><span><a href="https://kj7rrv.com/pledge-of-allegiance-speech-and-motion">Pledge of Allegiance speech and motion</a> by <a href="https://kj7rrv.com/">Samuel Sloniker</a> is licensed under <a href="http://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1" target="_blank" style="display:inline-block;">CC BY-SA 4.0<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1"><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1"><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/sa.svg?ref=chooser-v1"></a></span></em></p>

<p><a href="https://kj7rrv.com/tag:PBARC" class="hashtag"><span>#</span><span class="p-category">PBARC</span></a> <a href="https://kj7rrv.com/tag:HamRadio" class="hashtag"><span>#</span><span class="p-category">HamRadio</span></a> <a href="https://kj7rrv.com/tag:USA" class="hashtag"><span>#</span><span class="p-category">USA</span></a></p>
]]></content:encoded>
      <guid>https://kj7rrv.com/pledge-of-allegiance-speech-and-motion</guid>
      <pubDate>Sat, 24 Feb 2024 20:07:53 +0000</pubDate>
    </item>
    <item>
      <title>User configuration template for MediaWiki</title>
      <link>https://kj7rrv.com/user-configuration-template-for-mediawiki-wl4x</link>
      <description>&lt;![CDATA[I wrote a #MediaWiki template that allows for the creation of templates that change based on user configuration.&#xA;&#xA;Edit: This will invalidate MediaWiki cache on pages that use it, increasing server CPU usage and page load times. Use this template sparingly.&#xA;&#xA;Dependencies/Prerequisites&#xA;&#xA;The GetUserName and ParserFunctions extensions are required. Also, you must create namespaces called DefaultConfig and UserConfig.&#xA;&#xA;define(&#34;NSDEFAULTCONFIG&#34;, 3000);&#xA;define(&#34;NSDEFAULTCONFIGTALK&#34;, 3001);&#xA;define(&#34;NSUSERCONFIG&#34;, 3002);&#xA;define(&#34;NSUSERCONFIGTALK&#34;, 3003);&#xA;$wgExtraNamespaces[NSUSERCONFIG] = &#34;UserConfig&#34;;&#xA;$wgExtraNamespaces[NSUSERCONFIGTALK] = &#34;UserConfigtalk&#34;;&#xA;$wgExtraNamespaces[NSDEFAULTCONFIG] = &#34;DefaultConfig&#34;;&#xA;$wgExtraNamespaces[NSDEFAULTCONFIGTALK] = &#34;DefaultConfigtalk&#34;;&#xA;$wgNamespaceProtection[NSDEFAULTCONFIG] = array(&#34;editdefaultconfig&#34;);&#xA;$wgGroupPermissions&#39;sysop&#39; = true;&#xA;$wgCapitalLinkOverrides[NSDEFAULTCONFIG] = false;&#xA;$wgCapitalLinkOverrides[NSDEFAULTCONFIGTALK] = false;&#xA;$wgNamespacesWithSubpages[NSUSERCONFIG] = true;&#xA;wfLoadExtension(&#39;GetUserName&#39;);&#xA;wfLoadExtension(&#39;ParserFunctions&#39;);&#xA;&#xA;It is recommended to only allow administrators or other trusted users to edit the DefaultConfig namespace. Unfortunately, I am not aware of any way to prevent users from editing other users&#39; UserConfig pages; this means that users can change the configuration settings of others.&#xA;   &#xA;Template&#xA;&#xA;Put this in Template:Config:&#xA;&#xA;{{#ifexist:DefaultConfig:{{{1}}}|{{#ifexist:UserConfig:{{#USERNAME:}}/{{{1}}}|{{UserConfig:{{#USERNAME:}}/{{{1}}}}}|{{ DefaultConfig:{{{1}}}}}}}|&#39;&#39;&#39;ERROR&#39;&#39;&#39;: No such configuration option exists. Please {{#ifexist:UserConfig:{{#USERNAME:}}/isadmin|create|ask an administrator to create}} [[DefaultConfig:{{{1}}}]].}}&#xA;&#xA;If you wish, you can create a UserConfig:[username]/isadmin page for all admin users. This has no effect other than changing the error message, so it is not important. Unlike other configuration settings, the content of this page does not matter; it only has to exist.&#xA;&#xA;Usage&#xA;&#xA;Simply use {{config|[option name]}} to get a configuration option. You must have a DefaultConfig:[option name] page. By default, {{config}} will return its content. However, if a user has a UserConfig:[user name]/[option name] page, its content will be returned instead.&#xA;&#xA;Example&#xA;&#xA;On the PBARC Web site, we use this for several things, including a {{time}} template. This takes time values in the format {{time|18|45}} and allows users to choose whether to see times as &#34;6:45 PM&#34; (12-hour time) or &#34;18:45&#34; (24-hour/military time). &#xA;&#xA;Here is the code for Template:Time:&#xA;&#xA;{{#ifeq: {{config|miltime}}|true|{{{1}}}:{{{2}}}|{{#ifexpr: ({{{1}}} = 12) and ({{{2}}} = 00)|12:00 noon|{{#ifexpr: ({{{1}}} = 00) and ({{{2}}} = 00)|12:00 midnight| {{#ifeq: {{#expr: {{{1}}} mod 12}} | 0 | 12 | {{#expr: {{{1}}} mod 12}}}}:{{{2}}} {{#ifexpr: {{{1}}} &lt; 12|AM|PM}}}}}}}}&#xA;&#xA;It will check the miltime configuration value and, if it is true, use 24-hour time; otherwise, it will use 12-hour time. On the PBARC site, it is set to false by default, but it could also be set to true. &#xA;&#xA;License&#xA;&#xA;This post, including all code, is released into the public domain under Creative Commons Zero. Feel free to use it for any purpose without asking permission or giving attribution.&#xA;&#xA;#PBARC #FOSS #Programming]]&gt;</description>
      <content:encoded><![CDATA[<p>I wrote a <a href="https://kj7rrv.com/tag:MediaWiki" class="hashtag"><span>#</span><span class="p-category">MediaWiki</span></a> template that allows for the creation of templates that change based on user configuration.</p>

<p><strong>Edit:</strong> This will invalidate MediaWiki cache on pages that use it, increasing server CPU usage and page load times. Use this template sparingly.</p>

<h2 id="dependencies-prerequisites" id="dependencies-prerequisites">Dependencies/Prerequisites</h2>

<p>The <a href="https://www.mediawiki.org/wiki/Extension:GetUserName"><code>GetUserName</code></a> and <a href="https://www.mediawiki.org/wiki/Extension:ParserFunctions"><code>ParserFunctions</code></a> extensions are required. Also, you must create namespaces called <code>DefaultConfig</code> and <code>UserConfig</code>.</p>

<pre><code class="language-php">define(&#34;NS_DEFAULTCONFIG&#34;, 3000);
define(&#34;NS_DEFAULTCONFIG_TALK&#34;, 3001);
define(&#34;NS_USERCONFIG&#34;, 3002);
define(&#34;NS_USERCONFIG_TALK&#34;, 3003);
$wgExtraNamespaces[NS_USERCONFIG] = &#34;UserConfig&#34;;
$wgExtraNamespaces[NS_USERCONFIG_TALK] = &#34;UserConfig_talk&#34;;
$wgExtraNamespaces[NS_DEFAULTCONFIG] = &#34;DefaultConfig&#34;;
$wgExtraNamespaces[NS_DEFAULTCONFIG_TALK] = &#34;DefaultConfig_talk&#34;;
$wgNamespaceProtection[NS_DEFAULTCONFIG] = array(&#34;editdefaultconfig&#34;);
$wgGroupPermissions[&#39;sysop&#39;][&#39;editdefaultconfig&#39;] = true;
$wgCapitalLinkOverrides[NS_DEFAULTCONFIG] = false;
$wgCapitalLinkOverrides[NS_DEFAULTCONFIG_TALK] = false;
$wgNamespacesWithSubpages[NS_USERCONFIG] = true;
wfLoadExtension(&#39;GetUserName&#39;);
wfLoadExtension(&#39;ParserFunctions&#39;);
</code></pre>

<p>It is recommended to only allow administrators or other trusted users to edit the <code>DefaultConfig</code> namespace. Unfortunately, I am not aware of any way to prevent users from editing other users&#39; <code>UserConfig</code> pages; this means that users can change the configuration settings of others.</p>

<h2 id="template" id="template">Template</h2>

<p>Put this in <code>Template:Config</code>:</p>

<pre><code class="language-mediawiki">{{#ifexist:DefaultConfig:{{{1}}}|{{#ifexist:UserConfig:{{#USERNAME:}}/{{{1}}}|{{UserConfig:{{#USERNAME:}}/{{{1}}}}}|{{ DefaultConfig:{{{1}}}}}}}|&#39;&#39;&#39;ERROR&#39;&#39;&#39;: No such configuration option exists. Please {{#ifexist:UserConfig:{{#USERNAME:}}/isadmin|create|ask an administrator to create}} [[DefaultConfig:{{{1}}}]].}}
</code></pre>

<p>If you wish, you can create a <code>UserConfig:[username]/isadmin</code> page for all admin users. This has no effect other than changing the error message, so it is not important. Unlike other configuration settings, the content of this page does not matter; it only has to exist.</p>

<h2 id="usage" id="usage">Usage</h2>

<p>Simply use <code>{{config|[option name]}}</code> to get a configuration option. You must have a <code>DefaultConfig:[option name]</code> page. By default, <code>{{config}}</code> will return its content. However, if a user has a <code>UserConfig:[user name]/[option name]</code> page, its content will be returned instead.</p>

<h2 id="example" id="example">Example</h2>

<p>On the <a href="https://w7bkg.org/wiki/Home_Page">PBARC Web site</a>, we use this for several things, including a <code>{{time}}</code> template. This takes time values in the format <code>{{time|18|45}}</code> and allows users to choose whether to see times as “6:45 PM” (12-hour time) or “18:45” (24-hour/military time).</p>

<p>Here is the code for <code>Template:Time</code>:</p>

<pre><code class="language-mediawiki">{{#ifeq: {{config|miltime}}|true|{{{1}}}:{{{2}}}|{{#ifexpr: ({{{1}}} = 12) and ({{{2}}} = 00)|12:00 noon|{{#ifexpr: ({{{1}}} = 00) and ({{{2}}} = 00)|12:00 midnight| {{#ifeq: {{#expr: {{{1}}} mod 12}} | 0 | 12 | {{#expr: {{{1}}} mod 12}}}}:{{{2}}} {{#ifexpr: {{{1}}} &lt; 12|AM|PM}}}}}}}}
</code></pre>

<p>It will check the <code>miltime</code> configuration value and, if it is <code>true</code>, use 24-hour time; otherwise, it will use 12-hour time. On the PBARC site, it is set to <code>false</code> by default, but it could also be set to <code>true</code>.</p>

<h2 id="license" id="license">License</h2>

<p>This post, including all code, is released into the public domain under <a href="https://creativecommons.org/publicdomain/zero/1.0/">Creative Commons Zero</a>. Feel free to use it for any purpose without asking permission or giving attribution.</p>

<p><a href="https://kj7rrv.com/tag:PBARC" class="hashtag"><span>#</span><span class="p-category">PBARC</span></a> <a href="https://kj7rrv.com/tag:FOSS" class="hashtag"><span>#</span><span class="p-category">FOSS</span></a> <a href="https://kj7rrv.com/tag:Programming" class="hashtag"><span>#</span><span class="p-category">Programming</span></a></p>
]]></content:encoded>
      <guid>https://kj7rrv.com/user-configuration-template-for-mediawiki-wl4x</guid>
      <pubDate>Wed, 15 Mar 2023 00:46:19 +0000</pubDate>
    </item>
  </channel>
</rss>