<?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[Malachi Irwin's blog]]></title><description><![CDATA[Malachi Irwin's blog]]></description><link>https://blog.malachiirwin.com</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 20:28:18 GMT</lastBuildDate><atom:link href="https://blog.malachiirwin.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Sing God's Word]]></title><description><![CDATA[Recently I’ve come across a bunch of children’s music with what seemed to be sound doctrine. Many of the songs sung of aspects of Christ and God the Father. Not only were the lyrics good but the instrumentation was something I immensely enjoyed (It t...]]></description><link>https://blog.malachiirwin.com/sing-gods-word</link><guid isPermaLink="true">https://blog.malachiirwin.com/sing-gods-word</guid><category><![CDATA[scripture]]></category><category><![CDATA[Bible ]]></category><category><![CDATA[music]]></category><dc:creator><![CDATA[Malachi Irwin]]></dc:creator><pubDate>Wed, 14 Jan 2026 02:31:53 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/4K2lIP0zc_k/upload/f422ea5bf4598e799ebdbbda6e65679e.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Recently I’ve come across a bunch of children’s music with what seemed to be sound doctrine. Many of the songs sung of aspects of Christ and God the Father. Not only were the lyrics good but the instrumentation was something I immensely enjoyed (It takes a lot to check this box usually). So you can imagine how surprise I was when I heard a song from one of these artists start singing about Joseph Smith’s vision. I had to pause and really thing about what I was intaking and supporting. It wasn’t easy to let go of so much music that seemed to good at the surface. The biggest thing I have, even with the songs that are sound according to the Bible, was that at any moment Spotify’s algorithm could suggest one of the false gosple songs. I couldn’t have that happen if my future kids were listening to those songs and so though it was hard I had to give up listening to all those artists. Additionally on a faith based platform I started watching a movie and it started talking about different people with the terms from the Mormon church. I had to stop watching immediately. It is important to have clean sound media intake. In all these cases they were presented as “Christian”. It’s a bunch more work but it is important to do some research into the media that you consume. You might be surprised at what you actually are supporting.</p>
<p>After giving all this up the music, I soon discovered a few new artists that did more scriptural music. Several even geared towards kids! I wanted to share a few of these resources and an encouragement that God honoring music that draws you closer to God is out there.</p>
<p><a target="_blank" href="https://scripture-lullabies.com/about">Scripture Lullabies</a> I heard of awhile ago, but I have to mention them. They have released four albums in a series called <em>Hidden In My Heart</em> Most of these songs are direct quotations of scripture put to calming music. They are great to listen to at my desk. Again these have amazing instrumentation. There was a lot of hard work put into recording these.</p>
<p><a target="_blank" href="https://www.psallos.com/mission">Psallos</a> is one that I just learned about. Their mission resonates very much with me and their music is good. They have taken several books of the Bible and turned them into albums of music. Besides using scripture as their lyrics they also strive to display their God given artistic gifts through beautiful instrumentation.</p>
<p><a target="_blank" href="https://scripturehymnal.com/pages/about">Scripture Hymnal</a> is another that takes scripture and uses them directly as lyrics. Currently there are eight volumes in the series. Randall Goodgame the founder has written music for several larger CCM artists as well as done some work for Veggie Tales. These connections have allowed him to coordinate and have other talented song writers join in and contribute to the project. The most notable being Ellie Holcomb.</p>
<p><a target="_blank" href="https://slugsandbugs.com/pages/about-us">Slugs and Bugs</a> is also by Randall Goodgame but targeted for kids. Andrew Peterson has also contributed significantly contributed to this project. In the series <em>Sing the Bible</em>, the lyrics also are taken from scripture but the melodies and verses are shorter making it memorable for young minds. I found myself after listening for a little bit that this is very rich content for children to listen to. Growing up listening to something like this will instill Biblical truths in children that will never leave them. In addition to the music there is also a kids TV series on DVD.</p>
<p><a target="_blank" href="https://cornerstoneapex.org/about-us/our-beliefs">Cornerstone Fellowship Music</a> has some strong theological songs too. Many of my colleagues attend church here. Several of them are also involved in writing the songs. The songs are based on passages of scriptures with a few adaptions to make them more singable. You can find their music <a target="_blank" href="https://open.spotify.com/artist/7quK9SS2aGN9VDfDXb3vka?si=29HN4UhITBGpIU81NrOyrw">here</a>.</p>
<p>Reflecting on all these I’m reminded that God is on the move. Many of these artists are continuing to releasing music. It brings me much joy that there are people who want to treasure God’s word in their hearts and they’ve set out to do so through song. I would strongly encourage you give these artists a listen. Swapping out meaningless secular music for theology rich songs will have a huge impact on you. The content we consume is important. Let’s choose to honor God with our ears.</p>
]]></content:encoded></item><item><title><![CDATA[Start Leading Early]]></title><description><![CDATA[I’ve been writing software for 5 years. Why am I still in the software industry? Because I love writing code! However we also can’t be stagnant in growth. At RoleModel Software we have assigned mentors to coach us in continual growth. The next step f...]]></description><link>https://blog.malachiirwin.com/start-leading-early</link><guid isPermaLink="true">https://blog.malachiirwin.com/start-leading-early</guid><category><![CDATA[leadership]]></category><dc:creator><![CDATA[Malachi Irwin]]></dc:creator><pubDate>Wed, 24 Sep 2025 05:00:50 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/dhGFLj3rI0Q/upload/630036218e5586e7fc85f9181bbc1f6e.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I’ve been writing software for 5 years. Why am I still in the software industry? Because I love writing code! However we also can’t be stagnant in growth. At RoleModel Software we have assigned mentors to coach us in continual growth. The next step for me to make is to lead projects. The mindset shift from technical to customer relation was a big change for me and I want to go through some of the things I’ve learned so far.</p>
<p>First start working on honing these skills early on. When working on tasks think in the mindset of the customer. Think about how that fits into the bigger picture.</p>
<p>More life experience and responsibilities aid in better managing customer relations. There isn’t a great substitute for it. When you have a family, you must provide for them. It’s added responsibility. Moving out and living on your own teaches self-discipline. If you realize that you don’t have certain skills, you can look for strategic opportunities to accelerate growth. I’m one of the younger project leads on our team which has been an obstacle that I've had to work through. Putting myself in places where I’m forced to step up and learn new skills has really helped my. Intentionality is important.</p>
<p>In some cases you might not be given any opportunity to lead. In these cases you can lead up the chain of command, a concept from <em>Extreme Ownership</em>. It involves thinking about what your superiors will need and anticipating how you can help them meet their goals.</p>
<p>As a project lead you can spur others to start engaging more with the customer through rotating who is running the standup call.</p>
<p>Additionally having someone who you are mentoring as a 2nd in command is a great way to grow someone into a larger leadership role.</p>
<p>I personally struggled with being overwhelmed with all the things I was now responsible for managing. If you’ve been the 2nd in command for awhile you can slowly take over a little bit her and a little bit there so that it isn’t all at once. Don’t forget to delegate. Having someone you trust really takes a large burden off. When overwhelmed I tend to think that I have to get everything down myself. It’s an easy trap to fall into. Continually remind yourself you can ask for help.</p>
<p>Sometimes seeking out feedback is a great way to grow. Even with feedback cycles things can be missed if you don’t follow up right after an interaction. If you felt that something was off ask someone for a second opinion. Having recent examples to look at and learn from is great.</p>
<p>We all make mistakes and I’ve made plenty already in the first little bit leading a project but the biggest thing is how do you respond to failure. Do you get back up and and learn from your mistakes or just give up. Leadership is hard especially if you are not a born leader. Keep working at it.</p>
<p>In conclusion I’m still improving and there is much more for me to learn, but I very much appreciate the many examples of great leaders around me. Seeing good leaders and positioning yourself among them will spur you on to do your best. Several impactful books I’ve read during this process are <em>Extreme Ownership</em> and <em>Crucial Conversations</em>. I highly recommend reading these too books. Start thinking big picture early on. Keep learning and growing!</p>
]]></content:encoded></item><item><title><![CDATA[Chrome Extension Communication]]></title><description><![CDATA[Have you been debugging your code and realized that the native dev-tools just don’t seem to be effective enough? Our team had the same thought! We wanted a better way to inspect our data tree. We settled that the best solution was to create a custom ...]]></description><link>https://blog.malachiirwin.com/chrome-extension-communication</link><guid isPermaLink="true">https://blog.malachiirwin.com/chrome-extension-communication</guid><category><![CDATA[tech ]]></category><category><![CDATA[chrome extension]]></category><category><![CDATA[#chrome_devtools]]></category><category><![CDATA[devtools]]></category><dc:creator><![CDATA[Malachi Irwin]]></dc:creator><pubDate>Mon, 02 Jun 2025 13:00:31 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/LqKhnDzSF-8/upload/f1a8720248a2ffd94e7c44a79ba413c4.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Have you been debugging your code and realized that the native dev-tools just don’t seem to be effective enough? Our team had the same thought! We wanted a better way to inspect our data tree. We settled that the best solution was to create a custom chrome extension. There’s a lot of varieties of extensions and applications. There is also quite a bit of documentation, but I found most of it confusing and went through much trial and error while working on the extension.</p>
<p>First, I want to go over a few different types of extensions:</p>
<ol>
<li><p>Dev-tool panel</p>
<ul>
<li>This is usually what you’d do if you are inspecting something in your system. React has an extension that inspects components, their props, etc. That falls into this category.</li>
</ul>
</li>
<li><p>Workflows</p>
<ul>
<li>1Password is an example of this, it has a UI that pops up when an email or password field is detected.</li>
</ul>
</li>
<li><p>Background/Scripting</p>
<ul>
<li>Similar to service workers these have scripts that run on the page and can listen to events that the user is triggering. This gets into the CDP (Chrome DevTools Protocol), which I’ll get into more later.</li>
</ul>
</li>
</ol>
<h3 id="heading-basic-setup">Basic Setup</h3>
<p>We chose to do a dev-tool panel. Here’s how we can add a dev-tool panel to our extension:</p>
<pre><code class="lang-javascript">&lt;!-- devtools.html --&gt;
<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">html</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">script</span>&gt;</span>
            chrome.devtools.panels.create(“Extension Name”,
                “path/to/icon.png”,
                “panel.html",
                function (panel) {}
            )
        <span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span></span>
</code></pre>
<pre><code class="lang-json"><span class="hljs-comment">// manifest.json</span>

{
  <span class="hljs-attr">"manifest_version"</span>: <span class="hljs-number">3</span>,
  <span class="hljs-attr">"name"</span>: <span class="hljs-string">"Extension Name"</span>,
  <span class="hljs-attr">"version"</span>: <span class="hljs-string">"1.0"</span>,
  <span class="hljs-attr">"devtools_page"</span>: <span class="hljs-string">"devtools.html"</span>,
  <span class="hljs-attr">"icons"</span>: {
    <span class="hljs-attr">"16"</span>: <span class="hljs-string">"images/logo-16.png"</span>,
    <span class="hljs-attr">"32"</span>: <span class="hljs-string">"images/logo-32.png"</span>,
    <span class="hljs-attr">"48"</span>: <span class="hljs-string">"images/logo-48.png"</span>,
    <span class="hljs-attr">"128"</span>: <span class="hljs-string">"images/logo-128.png"</span>
  },
  <span class="hljs-attr">"host_permissions"</span>: [
    ...
  ],
  ...
}
</code></pre>
<p>Regardless of what the extension is doing there are a set of permissions that you can enable in the manifest.json. The primary permissions we used were <code>scripting</code> and <code>debugger</code>. Scripting enables us to run JavaScript on web pages and interact with objects. This enables us to inspect our smart domain objects that live in the browser. For all of our synchronous scripts, we switch to use the CDP since it allows us to continue using the extension even when the page is stopped in a debugger.</p>
<pre><code class="lang-json"><span class="hljs-comment">// manifest.json</span>

{
  ...
  <span class="hljs-attr">"permissions"</span>: [
    <span class="hljs-string">"scripting"</span>,
    <span class="hljs-string">"debugger"</span>
    ...
  ],
  ...
}
</code></pre>
<p>Here is an example of executing javascript using the CDP:</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">const</span> tabId = chrome.devtools.inspectedWindow.tabId
<span class="hljs-keyword">const</span> result = <span class="hljs-keyword">await</span> chrome.debugger.sendCommand({ tabId }, <span class="hljs-string">"Runtime.evaluate"</span>, {
  <span class="hljs-string">'function myFunction() { return "value" }; myFunction()'</span>,
  <span class="hljs-attr">awaitPromise</span>: <span class="hljs-literal">false</span>
})

<span class="hljs-keyword">return</span> result.result.value
</code></pre>
<p>And also using the scripting permission:</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Promise</span>(<span class="hljs-function">(<span class="hljs-params">resolve, _reject</span>) =&gt;</span> {
  <span class="hljs-keyword">const</span> tabId = chrome.devtools.inspectedWindow.tabId
  chrome.scripting.executeScript(
    {
      <span class="hljs-attr">target</span>: { tabId },
      <span class="hljs-attr">world</span>: <span class="hljs-string">'MAIN'</span>,
      <span class="hljs-attr">func</span>: <span class="hljs-function">(<span class="hljs-params">arg1, arg2, ...</span>) =&gt;</span> { ... },
      <span class="hljs-attr">args</span>: [‘foo’, <span class="hljs-literal">true</span>]
    },
    <span class="hljs-function"><span class="hljs-params">injectionResult</span> =&gt;</span> resolve(injectionResult[<span class="hljs-number">0</span>].result)
  )
})
</code></pre>
<p>Both of these allow for returning simple objects so that we can display data in the extension.</p>
<p>The next problem we needed to solve was detecting when something on the page changes so we can properly update the extension panel. First, we need to add several content scripts. These also require the scripting permission.</p>
<pre><code class="lang-json"><span class="hljs-comment">// manifest.json</span>

{
  ...
  <span class="hljs-attr">"content_scripts"</span>: [
    {
      <span class="hljs-attr">"matches"</span>: [<span class="hljs-string">"&lt;all_urls&gt;"</span>],
      <span class="hljs-attr">"js"</span>: [<span class="hljs-string">"message_forwarding.js"</span>]
    },
    {
      <span class="hljs-attr">"matches"</span>: [<span class="hljs-string">"&lt;all_urls&gt;"</span>],
      <span class="hljs-attr">"world"</span>: <span class="hljs-string">"MAIN"</span>,
      <span class="hljs-attr">"js"</span>: [<span class="hljs-string">"event_emitter.js"</span>]
    }
  ],
  ...
}
</code></pre>
<p>It is important to note that the world is different. The default is <code>ISOLATED</code>. This will run the javascript in a unique environment to the extension. <code>MAIN</code> runs in the main page thread which enables us to inspect things in the browser. However from the main thread you can’t directly talk to the extension since you can’t access <code>chrome.runtime</code></p>
<pre><code class="lang-javascript"><span class="hljs-comment">// message_forwarding.js</span>

<span class="hljs-keyword">const</span> port = chrome.runtime.connect({ <span class="hljs-attr">name</span>: ‘extension-name-browser-port’ })
<span class="hljs-built_in">window</span>.addEventListener(<span class="hljs-string">'ExtensionNameMessage'</span>, <span class="hljs-function"><span class="hljs-params">event</span> =&gt;</span> port.postMessage(event.detail), <span class="hljs-literal">false</span>)
</code></pre>
<pre><code class="lang-javascript"><span class="hljs-comment">// event_emitter.js</span>

<span class="hljs-comment">// monitor your objects and fire this event when something changes</span>
<span class="hljs-keyword">const</span> rebroadcastEvent = <span class="hljs-keyword">new</span> CustomEvent(<span class="hljs-string">'ExtensionNameMessage'</span>, { <span class="hljs-attr">detail</span>: ... })
<span class="hljs-built_in">window</span>.dispatchEvent(rebroadcastEvent)
</code></pre>
<p>Next, we need to add a background script that forwards the message from the browser to the extension. This step is necessary since the browser may not be setup and the extension might not be set either. This allows one side to send messages without throwing errors since the other side isn’t connected.</p>
<pre><code class="lang-json"><span class="hljs-comment">// manifest.json</span>

{
  ...
  <span class="hljs-attr">"background"</span>: {
    <span class="hljs-attr">"service_worker"</span>: <span class="hljs-string">"background.js"</span>,
    <span class="hljs-attr">"type"</span>: <span class="hljs-string">"module"</span>
  }
  ...
}
</code></pre>
<pre><code class="lang-javascript"><span class="hljs-comment">// background.js</span>

<span class="hljs-keyword">let</span> extensionPort, browserPort
chrome.runtime.onConnect.addListener(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">port</span>) </span>{
  <span class="hljs-keyword">if</span> (port.name === <span class="hljs-string">'extension-name-browser-port'</span>) {
    browserPort = port
    browserPort.onMessage.addListener(<span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">request</span>) </span>{
      extensionPort?.postMessage(request)
    })
  }

  <span class="hljs-keyword">if</span> (port.name === <span class="hljs-string">'extension-name-devtool-port'</span>) {
    extensionPort = port
    extensionPort.onMessage.addListener(<span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">request</span>) </span>{
      browserPort?.postMessage(request)
    })
  }
})
</code></pre>
<p>Lastly, we listen in the extension panel.html for those messages:</p>
<pre><code class="lang-javascript"><span class="hljs-comment">// panel.js</span>

<span class="hljs-comment">// This needs to be loaded in panel.html</span>
<span class="hljs-keyword">let</span> port = chrome.runtime.connect({ <span class="hljs-attr">name</span>: <span class="hljs-string">'extension-name-devtool-port'</span> })
port.onMessage.addListener(<span class="hljs-function"><span class="hljs-params">message</span> =&gt;</span> { ... })
port.onDisconnect.addListener(<span class="hljs-function">() =&gt;</span> { port = <span class="hljs-literal">undefined</span> })
</code></pre>
<p>We also added some additional tracking to detect when context is lost and these ports are closed so that we can reconnect them when we come back:</p>
<pre><code class="lang-javascript">chrome.idle.onStateChanged.addListener(<span class="hljs-function"><span class="hljs-params">newState</span> =&gt;</span> {
  <span class="hljs-keyword">if</span> (newState === <span class="hljs-string">'active'</span>) {
    <span class="hljs-comment">// re-establish the connection to the background worker</span>
    port ??= chrome.runtime.connect({ <span class="hljs-attr">name</span>: <span class="hljs-string">'extension-name-devtool-port'</span> })
  }
})

chrome.webNavigation.onCommitted.addListener(<span class="hljs-function"><span class="hljs-params">details</span> =&gt;</span> {
  <span class="hljs-keyword">if</span> ([<span class="hljs-string">'link'</span>, <span class="hljs-string">'typed'</span>, <span class="hljs-string">'generated'</span>, <span class="hljs-string">'reload'</span>].includes(details.transitionType)) {
    chrome.webNavigation.onCompleted.addListener(<span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">onComplete</span>(<span class="hljs-params"></span>) </span>{
      port ??= chrome.runtime.connect({ <span class="hljs-attr">name</span>: <span class="hljs-string">'extension-name-devtool-port'</span> }) <span class="hljs-comment">// ensure the port is still defined</span>

      <span class="hljs-comment">// refresh your extension state and display</span>

      chrome.webNavigation.onCompleted.removeListener(onComplete)
    })
  }
})
</code></pre>
<h3 id="heading-loading-extensions">Loading Extensions</h3>
<p>Finally we can install our extension:</p>
<ol>
<li><p>visit <code>chrome://extensions</code></p>
</li>
<li><p>Turn on <code>Developer mode</code></p>
</li>
<li><p>click <code>Load unpacked</code> and select the root directory of your extension</p>
</li>
</ol>
<h3 id="heading-conclusion">Conclusion</h3>
<p>Extensions can be powerful to inspect your application and correct issues that arise with data. We’ve continued to add new features and make it more valuable to our team. At this point it is the first tool to debug instead of reaching for something else.</p>
]]></content:encoded></item><item><title><![CDATA[The Will of God]]></title><description><![CDATA[I’ve often seen and heard people talk about seeking the will of God. How does that work? Generally in my life I haven’t seen Him write on the wall or speak to me from a burning bush. Sometimes doors are closed and it makes the decision easier. I do b...]]></description><link>https://blog.malachiirwin.com/the-will-of-god</link><guid isPermaLink="true">https://blog.malachiirwin.com/the-will-of-god</guid><dc:creator><![CDATA[Malachi Irwin]]></dc:creator><pubDate>Wed, 15 Jan 2025 03:45:34 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1736912043991/9d6022c6-9c52-4314-8435-ff41bf8b7751.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I’ve often seen and heard people talk about seeking the will of God. How does that work? Generally in my life I haven’t seen Him write on the wall or speak to me from a burning bush. Sometimes doors are closed and it makes the decision easier. I do believe God sometimes does this, but how do we make decisions when both choices seem like they are the right choice? I asked this question to myself as I strolled along the red cedar river.</p>
<p>As I collected my thoughts I found several ways to actively seek God’s will and concrete ways to make good decisions when faced with two choices that both seem right.</p>
<p>I can’t emphasize enough to spend daily time reading in God’s word this is the foundation. It is the clearest form of God’s word that we have. He doesn’t speak as much face to face as he did with Moses or other prophets but we do have a record of God’s commands and actions for about 4 thousand years. We should listen! For some cases we can directly use God’s word to answer our decision. If God says not to do something we should obey His command. Not every law in the old testament still applies we need to use discernment and pass them through the Law of Christ. This can also help us not be legalistic. Many Jews in the new testament were legalistic. It’s not something we should to hold ourselves too, since it can easily be a stumbling block or be pushed on to others.</p>
<p>Another thing that should always be at the forefront of decisions is prayer. This should always be apart of our routine but I have to mention it again. It can be hard sometimes to find a quiet place to meet with God and tell him what is truly on your heart but in the end it is well worth every minute. I personally feel closest to God in natural beauty.</p>
<p>If through God’s Word and prayer there still isn’t a clear right answer, You might need to evaluate the options and reflect on which choice gives God the most glory. A sermon titled <em>The Glory of God’s Presence</em>₁ came to mind. This sermon defines glory like this:</p>
<p>“Glory is the outward display of inward beauty or worth or perfection. Therefore, when we glorify someone, we are either recognizing his worth or putting his worth on display. Here’s what I mean. A world-class sprinter has the ability within himself to outrun all but the fastest people in the world. He has that ability while he sits on the couch, or while he greets his fans, or even when he goes jogging with his friend. His speed doesn’t go anywhere, but it’s not on display until he lines up on the track next to other world-class sprinters, bursts off of the starting block, and strains forward to reach the finish line first. Now, his speed is on full display, and everyone marvels at it especially because he just showed off his speed next to the fastest people in the world. So, what do the fans in the stands do? They whistle and clap and shout. They praise him for his speed.</p>
<p>The sprinter’s speed is his glory, and the fans glorify him by praising him when they see it on display... Glory is worth on display, or perfection on display, or beauty on display. [In John 12:28] Jesus says, ‘Father, glorify your name!’ In other words, ‘Father, put the perfections, beauty, worth of your name on display.’” - Caleb Ziegler</p>
<p>If the sprinter is in our presence our first instinct would be to complement them on their speed. Our response should be the same with God. He is always present. Why do we often forget that He is so near us? Out of our commitment to Jesus we should try our hardest to give him all the glory due Him. If we spend all our days endlessly giving Him glory it still wouldn’t be everything He deserves. He has given us eternal life, a debt we can never repay. So in everything we do we should make choices that give him the most glory. In action, this means following the spirit of his commands and not trying to toe the line and see how much we can do our own thing while still calling ourselves Christians.</p>
<p>In all this we should not get so caught up that we start thinking every choice is something we should ask God about. If we ask him about preferences like “should I put my right shoe on first or my left shoe?” we will be so busy trying to make a decision that we won’t do anything. When I graduated from high school I was given a book called <em>Just do Something.</em> It emphasizes that we should do something with our lives instead of busily planning everything hence missing out on all the goodness the Lord has for us.</p>
<p>Reference:<br />1.) Dan Shambro, The Glory of God's Presence [<a target="_blank" href="https://ekklesia-ec.org/content.cfm?id=213&amp;download_id=435">sermon</a>, <a target="_blank" href="https://faithconnector.s3.amazonaws.com/ekklesia-ec/files/2023.07.23_-_sermon_-_exodus_33.18%E2%80%9334.pdf">notes</a>], (ekklesia, 7/23/23), 1</p>
]]></content:encoded></item></channel></rss>