Blog

Field notes, walkthroughs, and conference recaps

  • Upgrading my blog to Docusaurus 3.0

    Upgrading my blog to Docusaurus 3.0

    Upgrading my blog to Docusaurus 3.0 was mostly a foundation change, but it surfaced real gotchas. The MDX v3 checker failed on two posts because unescaped “{” characters in connection strings, so I moved them into code blocks. I learned more about npm, semantic versioning, and package-lock realities, plus updated Prism renderer config after themes moved and defaults changed again.


  • Missing rows in the Accounting Period table in SuiteAnalytics Connect

    Missing rows in the Accounting Period table in SuiteAnalytics Connect

    While moving ETL from NetSuite.com to NetSuite2.com via SuiteAnalytics Connect, I hit a weird issue: the accountingPeriod table looked like it was missing recent and future periods. After checking row counts and testing queries, I found the culprit was the parent column—adding it cut results from 315 to 171. The fix: join accountingPeriod to fiscal calendar tables instead.


  • Syntax Highlighting in Docusaurus

    Syntax Highlighting in Docusaurus

    Docusaurus uses Prism for syntax highlighting, and that’s a big win when you write about niche languages like DAX and Power Query (M). In this post I walk through adding extra Prism languages in docusaurus.config.js, restarting the site, and using the right code-fence aliases. I also show how to swap Prism themes for light/dark mode to match your site’s look


  • Using Environment Variables in Docusaurus

    Using Environment Variables in Docusaurus

    Environment variables let you keep configuration values outside your source files, so settings can differ between test and production without touching code. During the build, each reference is replaced with the real value. This post covers how to set them up in Docusaurus and why keeping configuration in one place pays off.


  • Adding Comments to Docusaurus

    Adding Comments to Docusaurus

    Docusaurus can’t read Node environment variables directly in components, so I use dotenv to load a .env file into process.env, then pass values through customFields in docusaurus.config.js. I show installing dotenv, testing with console.log, and wiring variables into Giscus comments. For dev vs prod, NODE_ENV selects different .env paths—keeping secrets and config out of source for builds and deployments.


  • Adding Icons to Docusaurus

    Adding Icons to Docusaurus

    Your docs site looks solid… until you notice every tab shows the same generic icon. In this post, I walk through giving Docusaurus a real identity by adding a favicon and custom icons—so your blog looks polished in browser tabs, bookmarks, and mobile home screens. It’s a quick win with a surprisingly big impact, and it’s easier than you think.


  • Connecting DBeaver to Netsuite SuiteAnalytics Connect using JDBC

    Connecting DBeaver to Netsuite SuiteAnalytics Connect using JDBC

    Ever connect DBeaver to NetSuite and wonder why half your text columns are mysteriously NULL? It’s not your permissions—it’s the SuiteAnalytics Connect ODBC driver. This post shows a simple workaround: switch DBeaver to the NetSuite JDBC driver. I walk through downloading the driver, adding the class, wiring the connection string, and getting complete data back instantly, including optional StaticSchema too.


  • GOAL(s)!!!! and the need for a mentor

    GOAL(s)!!!! and the need for a mentor

    Why wait for January 1 to set goals? Fresh off PASS Summit inspiration, I started mapping out 2023—more blogging, more speaking, and a sharper focus on the skills that matter. The core idea: find a mentor who can help with topic selection, honest feedback, and efficient progress—like a gym coach teaching proper rope-climb form before you actually chase the top.


  • How the Static Data Model can help with Netsuite SuiteAnalytics Connect

    How the Static Data Model can help with Netsuite SuiteAnalytics Connect

    NetSuite2.com’s role-based permissions can make SuiteAnalytics Connect feel like you’re working blind—tables vanish, ER diagrams hide relationships, and you’re left guessing what access you need. This post shows a lifesaver: enabling the Static Data Model (StaticSchema) so you can see every table and field even without permissions. I walk through adding StaticSchema for ODBC (Windows/Linux), JDBC, and ADO.NET.


  • What I Have Been Working On

    What I Have Been Working On

    Ever feel like your job title changes hourly? In this snapshot post, I lay out the many hats I wear in a small IT shop: gathering requirements, building SSIS pipelines, shaping tabular models, writing DAX, and supporting Excel/Power BI delivery. Along the way I share the tools—DAX Studio, Tabular Editor, Model Auto Build—and what I’m learning next, today, too.


  • Using Hugo and GitHub Pages for my blog

    Using Hugo and GitHub Pages for my blog

    I ditched a half-finished WordPress test site and rebuilt my blog the hard way: Hugo + GitHub Pages. The move saved hosting costs and forced me to learn git, themes, and deployments. Along the way I fixed small-but-annoying details like favicons, picked PrismJS for DAX/M syntax highlighting, and wired comments through GitHub issues— with lessons I’ll reuse.


View all posts →