<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://bmoler68.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://bmoler68.github.io/" rel="alternate" type="text/html" /><updated>2026-06-29T21:31:44+00:00</updated><id>https://bmoler68.github.io/feed.xml</id><title type="html">Brian’s Blog</title><subtitle>Creating applications that are both useful and fun.</subtitle><author><name>Brian Moler</name></author><entry><title type="html">Stars&amp;amp;Stacks v1.0.0</title><link href="https://bmoler68.github.io/2026/06/29/stars-and-stacks-v1-0-0-release.html" rel="alternate" type="text/html" title="Stars&amp;amp;Stacks v1.0.0" /><published>2026-06-29T00:00:00+00:00</published><updated>2026-06-29T00:00:00+00:00</updated><id>https://bmoler68.github.io/2026/06/29/stars-and-stacks-v1-0-0-release</id><content type="html" xml:base="https://bmoler68.github.io/2026/06/29/stars-and-stacks-v1-0-0-release.html"><![CDATA[<p><img src="/images/Stars-Stacks/Banner.png" alt="Stars&amp;Stacks Banner" /></p>

<p>I’m excited to announce the release of <strong>Stars&amp;Stacks v1.0.0</strong> — a native Android application for tracking a personal precious metals portfolio. <em>Stack metals, not promises.</em></p>

<h3 id="about-the-application">About the Application</h3>

<p>Stars&amp;Stacks helps you log purchases and sales, view derived holdings and cost basis, back up data to CSV, and monitor stack value against live spot prices for gold, silver, and platinum.</p>

<h3 id="whats-new-in-v100">What’s New in v1.0.0</h3>

<p>This initial release is <strong>offline-first</strong>, with portfolio data stored locally using Room. Spot prices for <strong>XAU</strong>, <strong>XAG</strong>, and <strong>XPT</strong> are fetched via MetalpriceAPI in a user-selected base currency (<strong>USD</strong> by default; also <strong>CAD</strong>, <strong>AUD</strong>, <strong>GBP</strong>, and <strong>EUR</strong>).</p>

<p>Purchases and sales support <strong>FIFO</strong>, <strong>LIFO</strong>, and <strong>Average</strong> cost-basis methods. The <strong>Dashboard</strong> includes a live metal ticker, Holdings and Lifetime portfolio summary (with premium over spot), metal allocation by value chart, My Stack by metal, and Stacking Activity (12-month purchase stats plus a 6-month spend chart). <strong>My Stack</strong> product detail shows open lots, history, and spot to break even. <strong>Settings</strong> provides theme mode, CSV export/import, and portfolio data reset.</p>

<p>Adaptive layouts provide two-pane list-detail on tablets and landscape, with NavigationRail on wider screens.</p>

<h3 id="download-and-resources">Download and Resources</h3>

<ul>
  <li><strong>📥 Download APK</strong>: <a href="https://www.brianmoler.com/releases/releases.html">Application Releases</a></li>
  <li><strong>🔗 GitHub Repository</strong>: <a href="https://github.com/bmoler68/Stars-Stacks">Stars&amp;Stacks on GitHub</a></li>
</ul>

<p>For questions, support, or feedback, please contact me at bmoler@brianmoler.com.</p>]]></content><author><name>Brian Moler</name></author><category term="2026" /><category term="Releases" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">supalive-365</title><link href="https://bmoler68.github.io/2026/05/19/supalive-365-release.html" rel="alternate" type="text/html" title="supalive-365" /><published>2026-05-19T00:00:00+00:00</published><updated>2026-05-19T00:00:00+00:00</updated><id>https://bmoler68.github.io/2026/05/19/supalive-365-release</id><content type="html" xml:base="https://bmoler68.github.io/2026/05/19/supalive-365-release.html"><![CDATA[<p><img src="/images/supalive-365/banner.png" alt="supalive-365 Banner" /></p>

<p>I’m excited to announce the release of <strong>supalive-365</strong> — centralized uptime automation for all Supabase projects.</p>

<h3 id="about-the-project">About the Project</h3>

<p>supalive-365 is a GitHub Actions–based keepalive system that prevents Supabase free-tier projects from pausing due to inactivity. It sends daily health pings to every configured project using lightweight, deterministic workflows.</p>

<h3 id="features">Features</h3>

<p>Daily scheduled pings run at <strong>06:00 UTC</strong>. One repository can target <strong>multiple Supabase projects</strong>, using only <strong>public anon keys</strong> (safe by design). Each run logs <strong>per-project success or failure</strong> in the Actions output. After secrets and config are in place, maintenance is low. The design is also <strong>extensible</strong> for retries, alerts, or Management API usage later.</p>

<h3 id="how-it-works">How It Works</h3>

<p>Supabase pauses free-tier projects after roughly seven days without API activity. supalive-365 issues a daily <code>GET</code> request to each project’s health endpoint:</p>

<p><code>{SUPABASE_URL}/auth/v1/health</code></p>

<p>That request counts as valid activity and resets the inactivity clock.</p>

<h3 id="resources">Resources</h3>

<ul>
  <li><strong>🔗 GitHub Repository</strong>: <a href="https://github.com/bmoler68/supalive-365">supalive-365 on GitHub</a></li>
</ul>

<p>For questions, support, or feedback, please contact me at bmoler@brianmoler.com.</p>]]></content><author><name>Brian Moler</name></author><category term="2026" /><category term="Releases" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Borderlands SHiFT Codes v2.0.0</title><link href="https://bmoler68.github.io/2026/05/16/borderlands-shift-codes-v2-0-0-release.html" rel="alternate" type="text/html" title="Borderlands SHiFT Codes v2.0.0" /><published>2026-05-16T00:00:00+00:00</published><updated>2026-05-16T00:00:00+00:00</updated><id>https://bmoler68.github.io/2026/05/16/borderlands-shift-codes-v2-0-0-release</id><content type="html" xml:base="https://bmoler68.github.io/2026/05/16/borderlands-shift-codes-v2-0-0-release.html"><![CDATA[<p><img src="/images/BorderlandsSHiFTCodes/Banner.png" alt="Borderlands SHiFT Codes Banner" /></p>

<p>I’m excited to announce the release of <strong>Borderlands SHiFT Codes v2.0.0</strong>. This is a major update that moves both the Android app and the web dashboard to a shared Supabase (PostgreSQL) data source, with automated loading and publishing through GitHub Actions.</p>

<h3 id="about-the-application">About the Application</h3>

<p>Borderlands SHiFT Codes is an unofficial fan project designed to provide easy access to SHiFT codes for the Borderlands and Wonderlands gaming universe. This Android application serves as a convenient way to view and manage codes that can be redeemed on the official Gearbox SHiFT website or directly in-game.</p>

<h3 id="whats-new-in-v200">What’s New in v2.0.0</h3>

<p><strong>Android app.</strong> The remote SHiFT source for the app now reads from Supabase Postgres instead of a published Google Sheets CSV.</p>

<p><strong>Data pipeline.</strong> Remote SHiFT data is loaded into the database automatically from the repository-maintained file at <code>/appdata/BL_SHIFT_CODES.csv</code>. When changes to that file are pushed, a GitHub Actions workflow loads the updated data into Supabase.</p>

<p><strong>Dashboard.</strong> The dashboard has moved from self-hosted hosting into this project and is published via GitHub Pages. It now uses the same Supabase-backed remote source instead of CSV. A GitHub Actions workflow republishes the dashboard when dashboard code changes are pushed. The dashboard is available at <a href="https://bmoler68.github.io/BorderlandsSHiFTCodes/">Borderlands SHiFT Codes Dashboard</a>.</p>

<p>This release also includes a few other miscellaneous cleanup and optimization changes.</p>

<h3 id="download-and-resources">Download and Resources</h3>

<ul>
  <li><strong>📥 Download APK</strong>: <a href="https://www.brianmoler.com/releases/releases.html">Application Releases</a></li>
  <li><strong>🔗 GitHub Repository</strong>: <a href="https://github.com/bmoler68/BorderlandsSHiFTCodes">BorderlandsSHiFTCodes on GitHub</a></li>
  <li><strong>📊 Dashboard</strong>: <a href="https://bmoler68.github.io/BorderlandsSHiFTCodes/">Borderlands SHiFT Codes Dashboard</a></li>
</ul>

<p>For questions, support, or feedback, please contact me at bmoler@brianmoler.com.</p>]]></content><author><name>Brian Moler</name></author><category term="2026" /><category term="Releases" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">XAUlytics v1.2.0</title><link href="https://bmoler68.github.io/2026/05/11/xaulytics-v1-2-0-release.html" rel="alternate" type="text/html" title="XAUlytics v1.2.0" /><published>2026-05-11T00:00:00+00:00</published><updated>2026-05-11T00:00:00+00:00</updated><id>https://bmoler68.github.io/2026/05/11/xaulytics-v1-2-0-release</id><content type="html" xml:base="https://bmoler68.github.io/2026/05/11/xaulytics-v1-2-0-release.html"><![CDATA[<p><img src="/images/XAUlytics/banner.png" alt="XAUlytics Banner" /></p>

<p>I’m excited to announce the release of <strong>XAUlytics v1.2.0</strong>.  This release adds a gold/silver ratio chart to the dashboard.</p>

<h3 id="about-the-application">About the Application</h3>

<p>XAUlytics is a <strong>precious metal price automated ETL flow</strong>. It ingests metal and FX-related quotes from MetalpriceAPI, normalizes them in Python, and loads idempotent rows into Supabase (PostgreSQL). A static browser dashboard reads pricing and symbol catalog data from Supabase. The stack includes Docker (containerized CLI for Linux-style runs anywhere) and GitHub Actions for scheduled jobs. You can use it as a reference for extract → transform → load layout, environment-driven configuration, and automation.</p>

<p>This project is a demonstration of my use of generative AI to create a fully automated front-to-end ETL flow, sourcing data from an API and loading daily precious metal pricing data to a Supabase instance to produce an analytics dashboard.</p>

<h3 id="whats-new-in-v120">What’s New in v1.2.0</h3>

<p>Version <strong>1.2.0</strong> is now available. For a detailed list of changes in this release, see the <a href="https://github.com/bmoler68/XAUlytics/releases">XAUlytics releases on GitHub</a>.</p>

<h3 id="download-and-resources">Download and Resources</h3>

<ul>
  <li><strong>🔗 GitHub Repository</strong>: <a href="https://github.com/bmoler68/XAUlytics">XAUlytics on GitHub</a></li>
</ul>

<p>For questions, support, or feedback, please contact me at bmoler@brianmoler.com.</p>]]></content><author><name>Brian Moler</name></author><category term="2026" /><category term="Releases" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Borderlands SHiFT Codes v1.8.0</title><link href="https://bmoler68.github.io/2026/04/26/borderlands-shift-codes-v1-8-0-release.html" rel="alternate" type="text/html" title="Borderlands SHiFT Codes v1.8.0" /><published>2026-04-26T00:00:00+00:00</published><updated>2026-04-26T00:00:00+00:00</updated><id>https://bmoler68.github.io/2026/04/26/borderlands-shift-codes-v1-8-0-release</id><content type="html" xml:base="https://bmoler68.github.io/2026/04/26/borderlands-shift-codes-v1-8-0-release.html"><![CDATA[<p><img src="/images/BorderlandsSHiFTCodes/Banner.png" alt="Borderlands SHiFT Codes Banner" /></p>

<p>I’m excited to announce the release of <strong>Borderlands SHiFT Codes v1.8.0</strong>. This release improves startup stability and sync reliability when loading newly added codes.</p>

<h3 id="about-the-application">About the Application</h3>

<p>Borderlands SHiFT Codes is an unofficial fan project designed to provide easy access to SHiFT codes for the Borderlands and Wonderlands gaming universe. This Android application serves as a convenient way to view and manage codes that can be redeemed on the official Gearbox SHiFT website or directly in-game.</p>

<h3 id="whats-new-in-v180">What’s New in v1.8.0</h3>

<p>Fixed intermittent startup issue where newly added codes could briefly appear twice. Corrected the issue by making sure codes are unique during remote/local reconciliation and by adding sync serialization to reduce race conditions during startup/background refresh overlap.</p>

<h3 id="download-and-resources">Download and Resources</h3>

<ul>
  <li><strong>📥 Download APK</strong>: <a href="https://www.brianmoler.com/releases/releases.html">Application Releases</a></li>
  <li><strong>🔗 GitHub Repository</strong>: <a href="https://github.com/bmoler68/BorderlandsSHiFTCodes">BorderlandsSHiFTCodes on GitHub</a></li>
</ul>

<p>For questions, support, or feedback, please contact me at bmoler@brianmoler.com.</p>]]></content><author><name>Brian Moler</name></author><category term="2026" /><category term="Releases" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Borderlands SHiFT Codes Dashboard Now Live</title><link href="https://bmoler68.github.io/2026/04/20/borderlands-shift-codes-dashboard-release.html" rel="alternate" type="text/html" title="Borderlands SHiFT Codes Dashboard Now Live" /><published>2026-04-20T00:00:00+00:00</published><updated>2026-04-20T00:00:00+00:00</updated><id>https://bmoler68.github.io/2026/04/20/borderlands-shift-codes-dashboard-release</id><content type="html" xml:base="https://bmoler68.github.io/2026/04/20/borderlands-shift-codes-dashboard-release.html"><![CDATA[<p><img src="/images/BorderlandsSHiFTCodes/Banner.png" alt="Borderlands SHiFT Codes Banner" /></p>

<p>I’m excited to announce the launch of the <strong>Borderlands SHiFT Codes Dashboard</strong> on my website at <a href="https://www.brianmoler.com">brianmoler.com</a>, available here: <a href="https://www.brianmoler.com/shift-codes-dashboard/shift-codes-dashboard.html">Borderlands SHiFT Codes Dashboard</a>.</p>

<h3 id="a-companion-to-the-mobile-app">A Companion to the Mobile App</h3>

<p>The dashboard is designed as a web companion to the <strong>Borderlands SHiFT Codes</strong> Android app. It offers very similar functionality to the mobile app, but in a larger desktop browser layout so it is easier to browse, filter, and redeem codes.</p>

<h3 id="what-the-dashboard-does">What the Dashboard Does</h3>

<p>The dashboard includes summary cards for Borderlands, Borderlands 2, Borderlands 3, Borderlands 4, The Pre-Sequel, and Wonderlands, along with a detailed codes table with search, filtering, and one-click code copy to make finding and redeeming codes faster.  There is also a button to quickly access the Gearbox SHiFT website to redeem active codes.</p>

<h3 id="chart-highlights">Chart Highlights</h3>

<p>I was able to incorporate some charts into the dashboard.  The charts are designed to give a quick at-a-glance view of code frequency and quality for each game. <strong>New Codes Over Time</strong> helps you spot recent SHiFT code drops, <strong>Status Breakdown</strong> shows the balance of active and expired codes, and <strong>Code Type Breakdown</strong> highlights the mix of rewards like Keys, Cosmetics, and Gear.</p>

<p>All charts update as you switch games, so you can get a quick visual summary of the the detailed code list contents.</p>

<p>The overall goal of this release is to provide a web companion to the mobile app, with visual trends and filterable details that make it easy to find redeemable codes quickly.</p>

<p>For questions, support, or feedback, please contact me at bmoler@brianmoler.com.</p>]]></content><author><name>Brian Moler</name></author><category term="2026" /><category term="Releases" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Using Published Google Forms and Sheets as a Data Source</title><link href="https://bmoler68.github.io/2025/12/18/using-google-forms-sheets-as-data-source.html" rel="alternate" type="text/html" title="Using Published Google Forms and Sheets as a Data Source" /><published>2025-12-18T00:00:00+00:00</published><updated>2025-12-18T00:00:00+00:00</updated><id>https://bmoler68.github.io/2025/12/18/using-google-forms-sheets-as-data-source</id><content type="html" xml:base="https://bmoler68.github.io/2025/12/18/using-google-forms-sheets-as-data-source.html"><![CDATA[<p>When I started working on the requirements for the Borderlands SHiFT Code application I needed a way to provide data to the app without building a complex backend infrastructure. As my first AI generated Android application, I wanted to keep it reasonably simple.  Unfortunately, Gearbox Software does not appear to have a public API that could be used to obtain this data directly from the SHiFT servers.  So I wanted to find a solution that would allow me to quickly provide new codes to the mobile app anytime I would see them on the Gearbox social accounts.</p>

<p>After doing some research, I read about a surprisingly simple solution of using published Google Forms and Google Sheets as a data source. It turned out to be the perfect low-code approach for my needs, and I thought I’d share how it works in case it helps others in similar situations.</p>

<h3 id="the-problem-i-was-trying-to-solve">The Problem I Was Trying to Solve</h3>

<p>For the Borderlands SHiFT Codes app, I needed a way to:</p>
<ul>
  <li>Build a repository of SHiFT codes whether they are active, expired or non-expiring</li>
  <li>Have an interface that could be used to update the repository</li>
  <li>Make the data accessible to the Android app without building a complicated backend</li>
  <li>Keep the solution simple and maintainable</li>
</ul>

<p>Building a traditional backend with a database and API seemed like overkill for this particular application.  The function of this Android app was to simply provide a way to present new SHiFT codes to the community via an app as a convenience.  These SHiFT codes are public data and would not be high-volume, so a secure and scalable solution was not required.</p>

<h3 id="the-solution-google-forms--sheets-pipeline">The Solution: Google Forms + Sheets Pipeline</h3>

<p>Google Forms and Google Sheets work together to create a simple but powerful data pipeline. Here’s how I set it up:</p>

<h4 id="step-1-create-and-configure-the-form">Step 1: Create and Configure the Form</h4>

<p>I started by creating a Google Form with well-structured questions. The key here is to think about how your data will be used later.  Use clear, concise labels that will map cleanly to column headers in the sheet. I made sure to enable required fields and use data validations via regular expressions to maintain the quality of the dataset.</p>

<h4 id="step-2-link-the-form-to-a-sheet">Step 2: Link the Form to a Sheet</h4>

<p>In the Form editor, I navigated to <strong>Responses → Link to Sheets</strong> and created a new spreadsheet. Every form submission automatically appends a new row to the sheet, creating a live datastore that updates in real-time.</p>

<h4 id="step-3-publish-the-form">Step 3: Publish the Form</h4>

<p>Once the form was set up, I clicked the <strong>Send</strong> button and copied the link. I could share the form link with others who might want to contribute SHiFT codes, or I could use it myself to add new entries. The sharing settings let me control who can access it.</p>

<h4 id="step-4-publish-the-sheet">Step 4: Publish the Sheet</h4>

<p>I opened the linked Google Sheet and went to <strong>File → Share → Publish to the web</strong>.  I then selected <strong>CSV</strong> as the format. Google generates a public URL that serves the sheet data as a CSV file, which can be consumed directly by applications.</p>

<p>This published CSV URL became my app’s data source. The Android app could simply make an HTTP request to this URL, download the CSV, parse it, and display the data. No backend needed!</p>

<h3 id="how-it-works-in-practice">How It Works in Practice</h3>

<p>The workflow is simple:</p>

<p><strong>[User Input via Google Form] → [Google Sheet (live response log)] → [Published CSV → Public Data Source]</strong></p>

<p>For my Borderlands SHiFT Codes app, this meant:</p>
<ol>
  <li>I (or others) could submit SHiFT codes through the Google Form</li>
  <li>The data automatically appeared in the linked Google Sheet</li>
  <li>The published CSV URL always served the latest data</li>
  <li>My Android app fetched and parsed this CSV on startup or when refreshing</li>
</ol>

<h3 id="best-practices-i-learned-along-the-way">Best Practices I Learned Along the Way</h3>

<p>After using this approach, here are some things I’d recommend:</p>

<ul>
  <li><strong>Data Hygiene</strong>: Use consistent naming conventions for your column headers (I prefer snake_case or camelCase) to make parsing easier in your app.  I also highly recommend the use of required fields and data validation using regular expressions to maintain the integrity of the data entered in the form.</li>
  <li><strong>Availability Considerations</strong>: On rare occasion, Google will make an update to Sheets that will force sheets published as a CSV URL to be treated as a HTML URL instead.  In my case, I created a self-published fallback CSV URL on my own server as a form of fault tolerance for the app whenever this occurs.  If your app has uptime requirements, I would recommend having a backup solution in place.</li>
  <li><strong>Security Considerations</strong>: If you’re collecting sensitive data, make sure to limit form access appropriately. For public data like SHiFT codes, this wasn’t a concern</li>
  <li><strong>Schema Documentation</strong>: Document your data structure somewhere as this will help when you’re writing the parsing logic in your app</li>
  <li><strong>Automation Options</strong>: If you need more control, you can use Google Apps Script or the Drive API to automate exports, but for my use case, the simple published CSV was perfect</li>
</ul>

<h3 id="why-this-approach-worked-for-me">Why This Approach Worked for Me</h3>

<p>Using Google Forms and Sheets as a data source was ideal for my first Android app because:</p>

<ol>
  <li><strong>No Backend Required</strong>: I could focus entirely on developing the app without getting distracted by server-side concerns</li>
  <li><strong>Easy Updates</strong>: Adding new SHiFT codes was as simple as filling out a form</li>
  <li><strong>Real-time Data</strong>: The published CSV always reflected the latest data in the sheet</li>
  <li><strong>Low Maintenance</strong>: Once set up, it required minimal ongoing maintenance</li>
  <li><strong>Free</strong>: Google’s tools are free to use, which was perfect for a hobby project</li>
</ol>

<h3 id="conclusion">Conclusion</h3>

<p>Publishing Google Forms and Sheets as a public data source transformed what could have been a complex backend project into a simple, manageable solution. For the Borderlands SHiFT Codes app, it provided a way to collect, store, and serve data without building unnecessary infrastructure.</p>

<p>This approach might not be suitable for every application.  If you need complex queries, authentication, or high-performance requirements, you’ll eventually need a proper backend. But for simple data collection and distribution, especially when you’re learning or prototyping, it’s a surprisingly powerful solution that lets you focus on building your app.</p>

<p>If you’re working on your first mobile app and feeling overwhelmed by the prospect of building a backend, consider giving this approach a try. Sometimes the simplest solution is the best one.</p>]]></content><author><name>Brian Moler</name></author><category term="2025" /><category term="Development" /><summary type="html"><![CDATA[When I started working on the requirements for the Borderlands SHiFT Code application I needed a way to provide data to the app without building a complex backend infrastructure. As my first AI generated Android application, I wanted to keep it reasonably simple. Unfortunately, Gearbox Software does not appear to have a public API that could be used to obtain this data directly from the SHiFT servers. So I wanted to find a solution that would allow me to quickly provide new codes to the mobile app anytime I would see them on the Gearbox social accounts.]]></summary></entry><entry><title type="html">Borderlands SHiFT Codes v1.7.0</title><link href="https://bmoler68.github.io/2025/12/17/borderlands-shift-codes-v1-7-0-release.html" rel="alternate" type="text/html" title="Borderlands SHiFT Codes v1.7.0" /><published>2025-12-17T00:00:00+00:00</published><updated>2025-12-17T00:00:00+00:00</updated><id>https://bmoler68.github.io/2025/12/17/borderlands-shift-codes-v1-7-0-release</id><content type="html" xml:base="https://bmoler68.github.io/2025/12/17/borderlands-shift-codes-v1-7-0-release.html"><![CDATA[<p><img src="/images/BorderlandsSHiFTCodes/Banner.png" alt="Borderlands SHiFT Codes Banner" /></p>

<p>I’m excited to announce the release of <strong>Borderlands SHiFT Codes v1.7.0</strong>.  This release fixes a small issue with some SHiFT codes being truncated on the compact view.  Corrected this by removing the status dot on the compact view.  The status dot was redundant, as the compact cards already had a colored bar on the left to indicate status.</p>

<h3 id="about-the-application">About the Application</h3>

<p>Borderlands SHiFT Codes is an unofficial fan project designed to provide easy access to SHiFT codes for the Borderlands and Wonderlands gaming universe. This Android application serves as a convenient way to view and manage codes that can be redeemed on the official Gearbox SHiFT website or directly in-game.</p>

<h3 id="whats-new-in-v170">What’s New in v1.7.0</h3>

<p>Removed the redundant status dot in compact view to prevent SHiFT code text from being truncated.</p>

<h3 id="download-and-resources">Download and Resources</h3>

<ul>
  <li><strong>📥 Download APK</strong>: <a href="https://www.brianmoler.com/releases/releases.html">Application Releases</a></li>
  <li><strong>🔗 GitHub Repository</strong>: <a href="https://github.com/bmoler68/BorderlandsSHiFTCodes">BorderlandsSHiFTCodes on GitHub</a></li>
</ul>

<p>For questions, support, or feedback, please contact me at bmoler@brianmoler.com.</p>]]></content><author><name>Brian Moler</name></author><category term="2025" /><category term="Releases" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">BookmarkWallet v1.1.0 - Open Source Release</title><link href="https://bmoler68.github.io/2025/11/26/bookmarkwallet-v1-1-0-release.html" rel="alternate" type="text/html" title="BookmarkWallet v1.1.0 - Open Source Release" /><published>2025-11-26T00:00:00+00:00</published><updated>2025-11-26T00:00:00+00:00</updated><id>https://bmoler68.github.io/2025/11/26/bookmarkwallet-v1-1-0-release</id><content type="html" xml:base="https://bmoler68.github.io/2025/11/26/bookmarkwallet-v1-1-0-release.html"><![CDATA[<p><img src="/images/BookmarkWallet/banner.png" alt="BookmarkWallet Banner" /></p>

<p>I’m excited to announce the release of <strong>BookmarkWallet v1.1.0</strong> and the open sourcing of this application! This version marks a significant milestone as the codebase is now publicly available on GitHub under the MIT License.</p>

<h3 id="about-the-application">About the Application</h3>

<p>BookmarkWallet is a comprehensive Android application for managing, organizing, and launching bookmarks to URLs, built for an intuitive and efficient bookmark management experience. Features include folder organization, tag system, search &amp; filter, import/export, and home screen shortcuts.</p>

<h3 id="whats-new-in-v110">What’s New in v1.1.0</h3>

<p>This release represents the <strong>open source release</strong> of the application. The complete source code is now available on GitHub.</p>

<h3 id="download-and-resources">Download and Resources</h3>

<ul>
  <li><strong>📥 Download APK</strong>: <a href="https://www.brianmoler.com/releases/releases.html">Application Releases</a></li>
  <li><strong>🔗 GitHub Repository</strong>: <a href="https://github.com/bmoler68/BookmarkWallet">BookmarkWallet on GitHub</a></li>
</ul>

<p>For questions, support, or feedback, please contact me at bmoler@brianmoler.com.</p>]]></content><author><name>Brian Moler</name></author><category term="2025" /><category term="Releases" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">HexaRoll v1.2.0 - Open Source Release</title><link href="https://bmoler68.github.io/2025/11/25/hexaroll-v1-2-0-release.html" rel="alternate" type="text/html" title="HexaRoll v1.2.0 - Open Source Release" /><published>2025-11-25T00:00:00+00:00</published><updated>2025-11-25T00:00:00+00:00</updated><id>https://bmoler68.github.io/2025/11/25/hexaroll-v1-2-0-release</id><content type="html" xml:base="https://bmoler68.github.io/2025/11/25/hexaroll-v1-2-0-release.html"><![CDATA[<p><img src="/images/HexaRoll/banner.png" alt="HexaRoll Banner" /></p>

<p>I’m excited to announce the release of <strong>HexaRoll v1.2.0</strong> and the open sourcing of this application! This version marks a significant milestone as the codebase is now publicly available on GitHub under the MIT License.</p>

<h3 id="about-the-application">About the Application</h3>

<p>HexaRoll is a modern Android dice rolling application designed specifically for tabletop RPG gaming. Featuring five distinct visual themes, it provides a comprehensive dice rolling experience with 8 different polyhedral dice types, persistent roll history, and a comprehensive achievement system.</p>

<h3 id="whats-new-in-v120">What’s New in v1.2.0</h3>

<p>This release represents the <strong>open source release</strong> of the application. The complete source code is now available on GitHub.</p>

<p>Additionally, this version includes significant <strong>image asset optimization</strong> which has greatly reduced the APK size and improves overall performance of the app.</p>

<h3 id="download-and-resources">Download and Resources</h3>

<ul>
  <li><strong>📥 Download APK</strong>: <a href="https://www.brianmoler.com/releases/releases.html">Application Releases</a></li>
  <li><strong>🔗 GitHub Repository</strong>: <a href="https://github.com/bmoler68/HexaRoll">HexaRoll on GitHub</a></li>
</ul>

<p>For questions, support, or feedback, please contact me at bmoler@brianmoler.com.</p>]]></content><author><name>Brian Moler</name></author><category term="2025" /><category term="Releases" /><summary type="html"><![CDATA[]]></summary></entry></feed>