<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[BrightSign Development]]></title><description><![CDATA[BrightScript custom scripting and BrightAuthor plugin development]]></description><link>https://blog.brightscripters.com</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 04:38:35 GMT</lastBuildDate><atom:link href="https://blog.brightscripters.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Connect BrightSign over serial port]]></title><description><![CDATA[Connecting the BrightSign player over serial port to PC or Mac is very helpful during development and troubleshooting.
Let us know if this is a topic you are interested in.]]></description><link>https://blog.brightscripters.com/connect-brightsign-over-serial-port</link><guid isPermaLink="true">https://blog.brightscripters.com/connect-brightsign-over-serial-port</guid><category><![CDATA[BrightSign]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Fri, 19 Sep 2025 02:09:30 GMT</pubDate><content:encoded><![CDATA[<p>Connecting the BrightSign player over serial port to PC or Mac is very helpful during development and troubleshooting.</p>
<p>Let us know if this is a topic you are interested in.</p>
]]></content:encoded></item><item><title><![CDATA[BrightSign Support by 3rd party]]></title><description><![CDATA[BrightSign is a solid digital signage media player that can run for years 24/7.
Get the Support for success with BrightSign]]></description><link>https://blog.brightscripters.com/brightsign-support-by-3rd-party</link><guid isPermaLink="true">https://blog.brightscripters.com/brightsign-support-by-3rd-party</guid><category><![CDATA[BrightSign]]></category><category><![CDATA[BrightScript]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Tue, 19 Aug 2025 21:56:20 GMT</pubDate><content:encoded><![CDATA[<p>BrightSign is a solid digital signage media player that can run for years 24/7.</p>
<p><a target="_blank" href="https://buymeacoffee.com/brightscripters/brightsign-support">Get the Support for success with BrightSign</a></p>
]]></content:encoded></item><item><title><![CDATA[BrightSign DWS not showing Telnet nor SSH access]]></title><description><![CDATA[When Telnet and SSH access is not showing in DWS Diagnostics tab and you know that the OS version supports this feature. Get the answer here and thanks for the coffee!]]></description><link>https://blog.brightscripters.com/brightsign-dws-not-showing-telnet-nor-ssh-access</link><guid isPermaLink="true">https://blog.brightscripters.com/brightsign-dws-not-showing-telnet-nor-ssh-access</guid><category><![CDATA[BrightSign]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Sat, 15 Mar 2025 01:05:55 GMT</pubDate><content:encoded><![CDATA[<p>When Telnet and SSH access is not showing in DWS Diagnostics tab and you know that the OS version supports this feature. <a target="_blank" href="https://buymeacoffee.com/brightscripters/brightsign-dws-showing-telnet-ssh-access">Get the answer here</a> and thanks for the coffee!</p>
]]></content:encoded></item><item><title><![CDATA[HTML Debugging with remote DevTools (inspector)]]></title><description><![CDATA[On Gen4 at 8.5.53.2 the below seems to be working, except for screencast.
Had issues with connecting to Gen5 from Windows 10 on other PC. Wonder if there is a firewall related issue…
sub main()

    x = 0
    y = 0
    width = 1920
    height = 1080
...]]></description><link>https://blog.brightscripters.com/html-debugging-with-remote-devtools-inspector</link><guid isPermaLink="true">https://blog.brightscripters.com/html-debugging-with-remote-devtools-inspector</guid><category><![CDATA[BrightSign]]></category><category><![CDATA[BrightScript]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Mon, 24 Feb 2025 23:29:35 GMT</pubDate><content:encoded><![CDATA[<p>On Gen4 at 8.5.53.2 the below seems to be working, except for screencast.</p>
<p>Had issues with connecting to Gen5 from Windows 10 on other PC. Wonder if there is a firewall related issue…</p>
<pre><code class="lang-javascript">sub main()

    x = <span class="hljs-number">0</span>
    y = <span class="hljs-number">0</span>
    width = <span class="hljs-number">1920</span>
    height = <span class="hljs-number">1080</span>
    rect = CreateObject(<span class="hljs-string">"roRectangle"</span>, x, y, width, height)

    url = <span class="hljs-string">"https://google.com"</span>

    msgPort = CreateObject(<span class="hljs-string">"roMessagePort"</span>)


    inspectorServerPort = <span class="hljs-number">2999</span>

    config = {
    <span class="hljs-attr">url</span>: url,
    <span class="hljs-attr">mouse_enabled</span>: <span class="hljs-literal">false</span>,
    <span class="hljs-attr">storage_path</span>: <span class="hljs-string">"/local/"</span>,
    <span class="hljs-attr">port</span>: msgPort,
    <span class="hljs-attr">inspector_server</span>:{<span class="hljs-attr">port</span>:inspectorServerPort}
    }

    html = CreateObject(<span class="hljs-string">"roHtmlWidget"</span>, rect, config)
    html.Show()

    print <span class="hljs-string">"Debug with Chromium: chrome://inspect/devices#devices"</span>

    ip = createobject(<span class="hljs-string">"ronetworkconfiguration"</span>,<span class="hljs-number">0</span>).getcurrentconfig().ip4_address
    print <span class="hljs-string">"Debug with Chromium: http://"</span> + ip + <span class="hljs-string">":"</span> + inspectorServerPort.toStr()

    <span class="hljs-keyword">while</span> <span class="hljs-literal">true</span>
        msg = msgPort.WaitMessage(<span class="hljs-number">0</span>)
        print <span class="hljs-string">"@http Event: "</span>
        print msg.getData()
    end <span class="hljs-keyword">while</span>

end sub
</code></pre>
]]></content:encoded></item><item><title><![CDATA[BrightScript Reference as pdf]]></title><description><![CDATA[A local copy of the BrightScript Reference could be useful at times.
Here is the BrightSign BrightScript v9 reference document for download.
More can be found here
https://brightsign.atlassian.net/wiki/spaces/DOC/pages/370672718/BrightScript]]></description><link>https://blog.brightscripters.com/brightscript-reference-pdf</link><guid isPermaLink="true">https://blog.brightscripters.com/brightscript-reference-pdf</guid><category><![CDATA[BrightScript]]></category><category><![CDATA[BrightSign]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Tue, 11 Feb 2025 14:40:47 GMT</pubDate><content:encoded><![CDATA[<p>A local copy of the BrightScript Reference could be useful at times.</p>
<p>Here is the <a target="_blank" href="https://brightsign.atlassian.net/wiki/download/attachments/370674351/BrightScriptReferenceManual_ver9.pdf">BrightSign BrightScript v9 reference</a> document for download.</p>
<p>More can be found here</p>
<p><a target="_blank" href="https://brightsign.atlassian.net/wiki/spaces/DOC/pages/370672718/BrightScript">https://brightsign.atlassian.net/wiki/spaces/DOC/pages/370672718/BrightScript</a></p>
]]></content:encoded></item><item><title><![CDATA[Free public APIs for developers]]></title><description><![CDATA[https://jsonplaceholder.typicode.com/
https://world.openfoodfacts.org/data
https://picsum.photos/
https://digidates.de/]]></description><link>https://blog.brightscripters.com/free-public-apis-for-developers</link><guid isPermaLink="true">https://blog.brightscripters.com/free-public-apis-for-developers</guid><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Tue, 11 Feb 2025 02:38:11 GMT</pubDate><content:encoded><![CDATA[<p><a target="_blank" href="https://jsonplaceholder.typicode.com/">https://jsonplaceholder.typicode.com/</a></p>
<p><a target="_blank" href="https://world.openfoodfacts.org/data">https://world.openfoodfacts.org/data</a></p>
<p><a target="_blank" href="https://picsum.photos/">https://picsum.photos/</a></p>
<p><a target="_blank" href="https://digidates.de/">https://digidates.de/</a></p>
]]></content:encoded></item><item><title><![CDATA[Online BrightScript REPL]]></title><description><![CDATA[If you need to fiddle with BrightScript code, this REPL is the perfect solution.
https://brsfiddle.net/


Desktop Simulators for BrightScript can be found here:
https://github.com/lvcabral/brs-desktop/releases]]></description><link>https://blog.brightscripters.com/online-brightscript-repl</link><guid isPermaLink="true">https://blog.brightscripters.com/online-brightscript-repl</guid><category><![CDATA[BrightScript]]></category><category><![CDATA[roku]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Tue, 28 Jan 2025 00:28:36 GMT</pubDate><content:encoded><![CDATA[<p>If you need to fiddle with BrightScript code, this REPL is the perfect solution.</p>
<p><a target="_blank" href="https://brsfiddle.net/">https://brsfiddle.net/</a></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738026560659/6064e214-d1a5-401b-a542-46ad5b461068.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738024183125/f6d973e1-df19-4b4f-b84a-876a35ad03e8.png" alt class="image--center mx-auto" /></p>
<p>Desktop Simulators for BrightScript can be found here:</p>
<p><a target="_blank" href="https://github.com/lvcabral/brs-desktop/releases">https://github.com/lvcabral/brs-desktop/releases</a></p>
]]></content:encoded></item><item><title><![CDATA[Anonymous function in BrightScript]]></title><description><![CDATA[Not the prettiest code but if you must use anonymous function as a function argument in BrightScript you can. This would be the equivalent to JavaScript Arrow Function.
' This function applies a passed function to an argument  '
apply = function ( a,...]]></description><link>https://blog.brightscripters.com/anonymous-function-in-brightscript</link><guid isPermaLink="true">https://blog.brightscripters.com/anonymous-function-in-brightscript</guid><category><![CDATA[BrightScript]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Mon, 27 Jan 2025 04:57:50 GMT</pubDate><content:encoded><![CDATA[<p>Not the prettiest code but if you must use anonymous function as a function argument in BrightScript you can. This would be the equivalent to JavaScript Arrow Function.</p>
<pre><code class="lang-javascript"><span class="hljs-string">' This function applies a passed function to an argument  '</span>
apply = <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params"> a, fn </span>) 
    <span class="hljs-title">fn</span>(<span class="hljs-params">a</span>)
<span class="hljs-title">end</span> <span class="hljs-title">function</span>

' <span class="hljs-title">Here</span> <span class="hljs-title">we</span> <span class="hljs-title">apply</span> <span class="hljs-title">a</span> <span class="hljs-title">string</span> <span class="hljs-title">to</span> <span class="hljs-title">an</span> <span class="hljs-title">anonymouse</span> <span class="hljs-title">function</span> <span class="hljs-title">which</span> <span class="hljs-title">prints</span> <span class="hljs-title">its</span> <span class="hljs-title">argument</span> <span class="hljs-title">a</span> '
<span class="hljs-title">apply</span>(<span class="hljs-params"> <span class="hljs-string">"foo"</span>, function(a) 
                print a
              end function </span>)</span>
</code></pre>
]]></content:encoded></item><item><title><![CDATA[Promise in BrightScript]]></title><description><![CDATA[Implement promise in BrightScript
' methods
'promise_resolve
'promise_reject
'promise_All ' Fulfills when all of the promises fulfill; rejects when any of the promises rejects.
'promise_AllSettled ' Fulfills when all promises settle.
'promise_race ' ...]]></description><link>https://blog.brightscripters.com/promise-in-brightscript</link><guid isPermaLink="true">https://blog.brightscripters.com/promise-in-brightscript</guid><category><![CDATA[BrightScript]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Sun, 26 Jan 2025 23:57:01 GMT</pubDate><content:encoded><![CDATA[<p>Implement promise in BrightScript</p>
<pre><code class="lang-javascript"><span class="hljs-string">' methods
'</span>promise_resolve
<span class="hljs-string">'promise_reject
'</span>promise_All <span class="hljs-string">' Fulfills when all of the promises fulfill; rejects when any of the promises rejects.
'</span>promise_AllSettled <span class="hljs-string">' Fulfills when all promises settle.
'</span>promise_race <span class="hljs-string">' Settles when any of the promises settles. In other words, fulfills when any of the promises fulfills; rejects when any of the promises rejects.
'</span>promise_any <span class="hljs-string">' Fulfills when any of the promises fulfills; rejects when all of the promises reject.
'</span>promise_finally
</code></pre>
]]></content:encoded></item><item><title><![CDATA[BrightSign User Agent String]]></title><description><![CDATA[How to change the User Agent String on the BrightSign player’s browser.]]></description><link>https://blog.brightscripters.com/brightsign-user-agent-string</link><guid isPermaLink="true">https://blog.brightscripters.com/brightsign-user-agent-string</guid><category><![CDATA[BrightSign]]></category><category><![CDATA[BrightScript]]></category><category><![CDATA[HTML]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Wed, 22 Jan 2025 03:47:37 GMT</pubDate><content:encoded><![CDATA[<h2 id="heading-how-to-change-the-user-agent-string-on-the-brightsign-players-browser">How to change the User Agent String on the BrightSign player’s browser.</h2>
]]></content:encoded></item><item><title><![CDATA[BrightScript code example roVideoPlayer]]></title><description><![CDATA[This example shows how to play a video loop and send out UDP message at the end of the video.

' This sample code loops a video and send out a UDP message at the end of the video.
' Created by BrightScripters

' Usage
' Place this script at the root ...]]></description><link>https://blog.brightscripters.com/code-example-rovideoplayer</link><guid isPermaLink="true">https://blog.brightscripters.com/code-example-rovideoplayer</guid><category><![CDATA[BrightScript]]></category><category><![CDATA[BrightSign]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Wed, 15 Jan 2025 04:05:15 GMT</pubDate><content:encoded><![CDATA[<p>This example shows how to play a video loop and send out UDP message at the end of the video.</p>
<pre><code class="lang-javascript">
<span class="hljs-string">' This sample code loops a video and send out a UDP message at the end of the video.
'</span> Created by BrightScripters

<span class="hljs-string">' Usage
'</span> Place <span class="hljs-built_in">this</span> script at the root <span class="hljs-keyword">of</span> a blank microSD card.
<span class="hljs-string">' Typically this file would be renamed to autorun.brs so it starts automatically.
'</span> Place a video file at the root <span class="hljs-keyword">of</span> the microSD card. The script will look <span class="hljs-keyword">for</span> file name video1.mp4.
<span class="hljs-string">' Every time the video file reaches its end, a UDP message is sent out and the video restarts.
'</span> Make adjustments to the variables bellow.

<span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">'
'</span> Variables
videoFileName$ = <span class="hljs-string">"video1.mp4"</span>
udpMessage$ = <span class="hljs-string">"my_udp_message"</span>
udpPort% = <span class="hljs-number">5000</span>
udpDestinationIp$ = <span class="hljs-string">"255.255.255.255"</span>

<span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">''</span><span class="hljs-string">'

u = createObject("roDatagramSender")
u.setDestination( udpDestinationIp$, udpPort% )

v = createObject("roVideoPlayer")

Find the rest of this code at
https://buymeacoffee.com/brightscripters/brightscript-code-example-rovideoplayer</span>
</code></pre>
]]></content:encoded></item><item><title><![CDATA[UDP Sender Receiver for Windows and more]]></title><description><![CDATA[The following tools can be very helpful when sending or receiving UDP messages with

roDatagramSender

roDatagramReceiver


Read the rest of this article here]]></description><link>https://blog.brightscripters.com/udp-sender-receiver-for-windows-and-more</link><guid isPermaLink="true">https://blog.brightscripters.com/udp-sender-receiver-for-windows-and-more</guid><category><![CDATA[UDP]]></category><category><![CDATA[Utilities]]></category><category><![CDATA[BrightSign]]></category><category><![CDATA[BrightScript]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Wed, 15 Jan 2025 03:33:33 GMT</pubDate><content:encoded><![CDATA[<p>The following tools can be very helpful when sending or receiving UDP messages with</p>
<ul>
<li><p><a target="_blank" href="https://brightsign.atlassian.net/wiki/spaces/DOC/pages/370673110/roDatagramSender">roDatagramSender</a></p>
</li>
<li><p><a target="_blank" href="https://brightsign.atlassian.net/wiki/spaces/DOC/pages/370673112/roDatagramReceiver">roDatagramReceiver</a></p>
</li>
</ul>
<p><a target="_blank" href="https://buymeacoffee.com/brightscripters/udp-sender-receiver-tools">Read the rest of this article here</a></p>
]]></content:encoded></item><item><title><![CDATA[JSON Beautify for BrightScript]]></title><description><![CDATA[' JSON Beautifier for BrightScript
' By BrightScripters 
function json_beautify(in$) as string
    indentLevel = 0
    out$ = ""
    newLine$ = chr(13) + chr(10)

    for i = 0 to in$.len() - 1
        char$ = in$.mid(i,1)

        if char$ = "{" or ...]]></description><link>https://blog.brightscripters.com/json-beautify-for-brightscript</link><guid isPermaLink="true">https://blog.brightscripters.com/json-beautify-for-brightscript</guid><category><![CDATA[BrightScript]]></category><category><![CDATA[json]]></category><category><![CDATA[beautify]]></category><category><![CDATA[formatting]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Sat, 04 Jan 2025 05:48:56 GMT</pubDate><content:encoded><![CDATA[<pre><code class="lang-basic"><span class="hljs-comment">' JSON Beautifier for BrightScript</span>
<span class="hljs-comment">' By BrightScripters </span>
function json_beautify(in$) as string
    indentLevel = <span class="hljs-number">0</span>
    out$ = <span class="hljs-string">""</span>
    newLine$ = chr(<span class="hljs-number">13</span>) + chr(<span class="hljs-number">10</span>)

    <span class="hljs-keyword">for</span> i = <span class="hljs-number">0</span> <span class="hljs-keyword">to</span> in$.<span class="hljs-keyword">len</span>() - <span class="hljs-number">1</span>
        char$ = in$.mid(i,<span class="hljs-number">1</span>)

        <span class="hljs-keyword">if</span> char$ = <span class="hljs-string">"{"</span> <span class="hljs-keyword">or</span> char$ = <span class="hljs-string">"["</span> <span class="hljs-keyword">then</span>
            indentLevel = indentLevel + <span class="hljs-number">1</span>
            out$ = out$ +  char$ + newLine$ + indentStr(indentLevel)
        <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> char$ = <span class="hljs-string">"}"</span> <span class="hljs-keyword">or</span> char$ = <span class="hljs-string">"]"</span> <span class="hljs-keyword">then</span>
            indentLevel = indentLevel - <span class="hljs-number">1</span>
            out$ = out$ + newLine$ + indentStr(indentLevel) + char$
        <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> char$ = <span class="hljs-string">":"</span> <span class="hljs-keyword">then</span>
            out$ = out$ + char$ + <span class="hljs-string">" "</span> 
        <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> char$ = <span class="hljs-string">","</span> <span class="hljs-keyword">then</span>
            out$ = out$ + char$ + newLine$ + indentStr(indentLevel)
        <span class="hljs-keyword">else</span>
            out$ =  out$ + char$
        <span class="hljs-keyword">end</span> <span class="hljs-keyword">if</span>

    <span class="hljs-keyword">end</span> <span class="hljs-keyword">for</span>

    <span class="hljs-keyword">return</span> out$
<span class="hljs-keyword">end</span> function


function indentStr( indentLevel ) as string
    indentStr$ = <span class="hljs-string">""</span>
    <span class="hljs-keyword">for</span> i = <span class="hljs-number">0</span> <span class="hljs-keyword">to</span> indentLevel - <span class="hljs-number">1</span>
        indentStr$ = indentStr$ + <span class="hljs-string">"    "</span>
    <span class="hljs-keyword">end</span> <span class="hljs-keyword">for</span>
    <span class="hljs-keyword">return</span> indentStr$
<span class="hljs-keyword">end</span> function
</code></pre>
]]></content:encoded></item><item><title><![CDATA[BrightSign player default password]]></title><description><![CDATA[Default password for the BrightSign player's Diagnostics Web Server aka DWS is the player's serial number.]]></description><link>https://blog.brightscripters.com/brightsign-player-default-password</link><guid isPermaLink="true">https://blog.brightscripters.com/brightsign-player-default-password</guid><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Sun, 09 Jun 2024 17:10:54 GMT</pubDate><content:encoded><![CDATA[<p>Default password for the BrightSign player's Diagnostics Web Server aka DWS is the player's serial number.</p>
]]></content:encoded></item><item><title><![CDATA[Convert BrightAuthor schedule to BrightAuthor Connected]]></title><description><![CDATA[Welcome to our blog!
If you are looking for a way to convert schedule file from BrightAuthor and import it into BrightAuthor Connected, then please leave a comment here.
We've had the same challenge and are in the process of making a schedule convert...]]></description><link>https://blog.brightscripters.com/convert-brightauthor-schedule-xml-to-bpsx</link><guid isPermaLink="true">https://blog.brightscripters.com/convert-brightauthor-schedule-xml-to-bpsx</guid><category><![CDATA[BrightSign]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Tue, 07 May 2024 02:17:52 GMT</pubDate><content:encoded><![CDATA[<p>Welcome to our blog!
If you are looking for a way to convert schedule file from BrightAuthor and import it into BrightAuthor Connected, then please leave a comment here.
We've had the same challenge and are in the process of making a schedule converter for BrightAuthor.</p>
]]></content:encoded></item><item><title><![CDATA[How to rename git branch]]></title><description><![CDATA[# How to rename local git branch
git branch -m newBranchName

# If the old branch name has alrady been pushed to remote, 
# you'd need to do a bit of cleanup.

# To list all your branches:
git branch -a]]></description><link>https://blog.brightscripters.com/how-to-rename-git-branch</link><guid isPermaLink="true">https://blog.brightscripters.com/how-to-rename-git-branch</guid><category><![CDATA[Git]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Tue, 07 May 2024 02:10:02 GMT</pubDate><content:encoded><![CDATA[<pre><code class="lang-bash"><span class="hljs-comment"># How to rename local git branch</span>
git branch -m newBranchName

<span class="hljs-comment"># If the old branch name has alrady been pushed to remote, </span>
<span class="hljs-comment"># you'd need to do a bit of cleanup.</span>

<span class="hljs-comment"># To list all your branches:</span>
git branch -a
</code></pre>
]]></content:encoded></item><item><title><![CDATA[Git tags push to remote]]></title><description><![CDATA[List tags
git tag -l
Push all tags to remote
git push [remote_name] --tags]]></description><link>https://blog.brightscripters.com/git-tags-push-to-remote</link><guid isPermaLink="true">https://blog.brightscripters.com/git-tags-push-to-remote</guid><category><![CDATA[Git]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Wed, 05 Jul 2023 03:11:04 GMT</pubDate><content:encoded><![CDATA[<p>List tags</p>
<p><code>git tag -l</code></p>
<p>Push all tags to remote</p>
<p><code>git push [remote_name] --tags</code></p>
]]></content:encoded></item><item><title><![CDATA[Adding very long integers with brightScript]]></title><description><![CDATA[function longAdd( a$, b$ ) as string
    result$ = ""
    carry = 0

    a$ = a$.trim()
    b$ = b$.trim()

    ' Guess longest
    diff = abs( b$.len() - a$.len() )
    longest = a$.len()

    ' is it longest
    if b$.len() > longest then
        l...]]></description><link>https://blog.brightscripters.com/adding-very-long-integers-with-brightscript</link><guid isPermaLink="true">https://blog.brightscripters.com/adding-very-long-integers-with-brightscript</guid><category><![CDATA[BrightScript]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Mon, 29 May 2023 14:37:41 GMT</pubDate><content:encoded><![CDATA[<pre><code>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">longAdd</span>(<span class="hljs-params"> a$, b$ </span>) <span class="hljs-title">as</span> <span class="hljs-title">string</span>
    <span class="hljs-title">result$</span> = ""
    <span class="hljs-title">carry</span> = 0

    <span class="hljs-title">a$</span> = <span class="hljs-title">a$</span>.<span class="hljs-title">trim</span>(<span class="hljs-params"></span>)
    <span class="hljs-title">b$</span> = <span class="hljs-title">b$</span>.<span class="hljs-title">trim</span>(<span class="hljs-params"></span>)

    ' <span class="hljs-title">Guess</span> <span class="hljs-title">longest</span>
    <span class="hljs-title">diff</span> = <span class="hljs-title">abs</span>(<span class="hljs-params"> b$.len() - a$.len() </span>)
    <span class="hljs-title">longest</span> = <span class="hljs-title">a$</span>.<span class="hljs-title">len</span>(<span class="hljs-params"></span>)

    ' <span class="hljs-title">is</span> <span class="hljs-title">it</span> <span class="hljs-title">longest</span>
    <span class="hljs-title">if</span> <span class="hljs-title">b$</span>.<span class="hljs-title">len</span>(<span class="hljs-params"></span>) &gt; <span class="hljs-title">longest</span> <span class="hljs-title">then</span>
        <span class="hljs-title">longest</span> = <span class="hljs-title">b$</span>.<span class="hljs-title">len</span>(<span class="hljs-params"></span>)
        <span class="hljs-title">a$</span> = <span class="hljs-title">zeroPadLeft</span>(<span class="hljs-params">a$, diff</span>)
    <span class="hljs-title">else</span>
        <span class="hljs-title">b$</span> = <span class="hljs-title">zeroPadLeft</span>(<span class="hljs-params">b$, diff</span>)
    <span class="hljs-title">end</span> <span class="hljs-title">if</span>

    ' <span class="hljs-title">print</span> "@<span class="hljs-title">longAdd</span>(<span class="hljs-params"></span>) <span class="hljs-title">a</span>, <span class="hljs-title">b</span>: &gt;"; <span class="hljs-title">a$</span> + "&lt; &gt;" + <span class="hljs-title">b$</span> + "&lt; ", <span class="hljs-title">carry</span>

    <span class="hljs-title">for</span> <span class="hljs-title">i</span> = <span class="hljs-title">longest</span> - 1 <span class="hljs-title">to</span> 0 <span class="hljs-title">step</span> -1

        <span class="hljs-title">ai</span> = <span class="hljs-title">val</span>(<span class="hljs-params"> a$.mid(i,<span class="hljs-number">1</span>) </span>)
        <span class="hljs-title">bi</span> = <span class="hljs-title">val</span>(<span class="hljs-params"> b$.mid(i,<span class="hljs-number">1</span>) </span>)

        <span class="hljs-title">sumi$</span> = <span class="hljs-title">str</span>(<span class="hljs-params"> ai + bi + carry </span>).<span class="hljs-title">trim</span>(<span class="hljs-params"></span>)

        <span class="hljs-title">if</span> <span class="hljs-title">sumi$</span>.<span class="hljs-title">len</span>(<span class="hljs-params"></span>) = 1
            ' <span class="hljs-title">print</span> "<span class="hljs-title">single</span> <span class="hljs-title">digit</span>: "; <span class="hljs-title">ai</span>, <span class="hljs-title">bi</span>, <span class="hljs-title">sumi$</span>
            <span class="hljs-title">result$</span> = <span class="hljs-title">sumi$</span>.<span class="hljs-title">mid</span>(<span class="hljs-params"><span class="hljs-number">0</span>,<span class="hljs-number">1</span></span>) + <span class="hljs-title">result$</span>
            <span class="hljs-title">carry</span> = 0
        <span class="hljs-title">else</span>
            ' <span class="hljs-title">print</span> "<span class="hljs-title">Two</span> <span class="hljs-title">digits</span>: "; <span class="hljs-title">ai</span>, <span class="hljs-title">bi</span>, <span class="hljs-title">sumi$</span>
            <span class="hljs-title">result$</span> = <span class="hljs-title">sumi$</span>.<span class="hljs-title">mid</span>(<span class="hljs-params"><span class="hljs-number">1</span>,<span class="hljs-number">1</span></span>) + <span class="hljs-title">result$</span>
            <span class="hljs-title">carry</span> = <span class="hljs-title">val</span>(<span class="hljs-params"> sumi$.mid(<span class="hljs-number">0</span>,<span class="hljs-number">1</span>) </span>)
        <span class="hljs-title">end</span> <span class="hljs-title">if</span>

        ' <span class="hljs-title">print</span> "<span class="hljs-title">Result</span>: "; <span class="hljs-title">result$</span>
        ' <span class="hljs-title">print</span> "<span class="hljs-title">Carry</span>: "; <span class="hljs-title">carry</span>

    <span class="hljs-title">end</span> <span class="hljs-title">for</span>

    <span class="hljs-title">if</span> <span class="hljs-title">carry</span> &gt; 0 <span class="hljs-title">result$</span> = <span class="hljs-title">str</span>(<span class="hljs-params">carry</span>) + <span class="hljs-title">result$</span>

    <span class="hljs-title">return</span> <span class="hljs-title">result$</span> 

<span class="hljs-title">end</span> <span class="hljs-title">function</span>


<span class="hljs-title">function</span> <span class="hljs-title">zeroPadLeft</span>(<span class="hljs-params"> str$, pads </span>) <span class="hljs-title">as</span> <span class="hljs-title">string</span>
    <span class="hljs-title">if</span> <span class="hljs-title">pads</span> &lt; 1 <span class="hljs-title">then</span> <span class="hljs-title">return</span> <span class="hljs-title">str$</span> ' <span class="hljs-title">do</span> <span class="hljs-title">nothing</span>
    <span class="hljs-title">for</span> <span class="hljs-title">i</span> = 1 <span class="hljs-title">to</span> <span class="hljs-title">pads</span>
        <span class="hljs-title">str$</span> = "0" + <span class="hljs-title">str$</span>.<span class="hljs-title">trim</span>(<span class="hljs-params"></span>)
    <span class="hljs-title">end</span> <span class="hljs-title">for</span>
    <span class="hljs-title">return</span> <span class="hljs-title">str$</span>.<span class="hljs-title">trim</span>(<span class="hljs-params"></span>)
<span class="hljs-title">end</span> <span class="hljs-title">function</span></span>
</code></pre>]]></content:encoded></item><item><title><![CDATA[Project Euler Problem 8]]></title><description><![CDATA[' https://projecteuler.net/problem=8
' 23514624000

sub main()

    num$ ="7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071...]]></description><link>https://blog.brightscripters.com/project-euler-problem-8</link><guid isPermaLink="true">https://blog.brightscripters.com/project-euler-problem-8</guid><category><![CDATA[BrightScript]]></category><category><![CDATA[Project Euler]]></category><category><![CDATA[Project Euler Solutions]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Sat, 27 May 2023 23:20:19 GMT</pubDate><content:encoded><![CDATA[<pre><code>
<span class="hljs-string">' https://projecteuler.net/problem=8
'</span> <span class="hljs-number">23514624000</span>

sub main()

    num$ =<span class="hljs-string">"7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450"</span>

    max = <span class="hljs-number">0</span>
    width = <span class="hljs-number">13</span>

    <span class="hljs-keyword">for</span> i = <span class="hljs-number">0</span> to num$.len() - <span class="hljs-number">1</span> - (width - <span class="hljs-number">1</span>)
        fourDigits$ = num$.mid(i,width)
        prod = product(fourDigits$)
        <span class="hljs-keyword">if</span> prod &gt; max then max = prod
    end <span class="hljs-keyword">for</span>

    print <span class="hljs-string">"Result: "</span>; max

end sub


<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">product</span>(<span class="hljs-params"> digitsStr </span>) 
    <span class="hljs-title">p</span> = 1
    <span class="hljs-title">for</span> <span class="hljs-title">i</span> = 0 <span class="hljs-title">to</span> <span class="hljs-title">digitsStr</span>.<span class="hljs-title">len</span>(<span class="hljs-params"></span>) - 1
        <span class="hljs-title">p</span> = <span class="hljs-title">p</span> * <span class="hljs-title">val</span>(<span class="hljs-params"> digitsStr.mid(i,<span class="hljs-number">1</span>) </span>)
    <span class="hljs-title">end</span> <span class="hljs-title">for</span>
    <span class="hljs-title">return</span> <span class="hljs-title">p</span>
<span class="hljs-title">end</span> <span class="hljs-title">function</span></span>
</code></pre>]]></content:encoded></item><item><title><![CDATA[Project Euler Problem 5]]></title><description><![CDATA[' https://projecteuler.net/problem=5
' 232792560

sub main()
' 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 
'  without any remainder.
' What is the smallest positive number that is evenly divisible by all of th...]]></description><link>https://blog.brightscripters.com/project-euler-problem-5</link><guid isPermaLink="true">https://blog.brightscripters.com/project-euler-problem-5</guid><category><![CDATA[BrightScript]]></category><dc:creator><![CDATA[Bright Scripters]]></dc:creator><pubDate>Sat, 27 May 2023 04:03:44 GMT</pubDate><content:encoded><![CDATA[<pre><code>
<span class="hljs-string">' https://projecteuler.net/problem=5
'</span> <span class="hljs-number">232792560</span>

sub main()
<span class="hljs-string">' 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 
'</span>  without any remainder.
<span class="hljs-string">' What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?


num = 20

while not done
    divs = [ 19,18,17,16,15,14,13,12,11 ]

    for i = 0 to divs.count()-1
        if not isDivisable( num, divs[i] )
            exit for
        end if
    end for

    if i = divs.count() 
        exit while 
    end if

    num = num + 20

end while

print "Num: "; num

end sub


function isDivisable( number, div ) as boolean
    return (number mod div) = 0
end function</span>
</code></pre>]]></content:encoded></item></channel></rss>