Salesforce, Python, SQL, & other ways to put your data where you need it

Need event music? 🎸

Live and recorded jazz, pop, and meditative music for your virtual conference / Zoom wedding / yoga class / private party with quality sound and a smooth technical experience

Bienvenue! Welcome!

My goal is to help you work faster.

I must speak and teach until I hear 10 people say, "That thing you taught me? I used it! And it saved me time!"

(Ahem ... although maybe blogging slower than I'd hoped. Ugh, coders' repetitive stress injury.)

So check out the tutorials. Play with code. Tell me about your triumphs.

Connect to a database from Windows

25 Jan 2022 🔖 databases sql beginner minimum viable build 💬 EN

Relational database management systems (a.k.a. RDBMSes or DBMSes) generally run on computers in the cloud that behave as “servers.”

These days, most people use their web browser to make their computer behave as a “client” so that they can read or edit a given database. Rather than connecting their computer directly to a database server over the internet, they connect to a web site, and the web server hosting that web site connects to the database server hosting the database.

However, certain specialized tasks still require making a direct internet connection (over a protocol such as ODBC) between your desktop computer and a database’s server. This article takes a tour “under the hood” of how Windows can connect directly to two common brands of database: Oracle and SQL Server.

Continue Reading

Read an NDJSON file with anonymous PL/SQL

21 Jan 2022 🔖 databases sql integration 💬 EN

I keep having to go back to old scripts and remember how I read from an NDJSON-formatted file into Oracle PL/SQL memory. (NDJSON is hacky JSON that works great as input to programming languages that are accustomed to reading or writing one line of text at a time when working with files.) This post contains a baseline I can start with from now on.

Continue Reading

SvelteKit Minimum Viable Build

10 Jan 2022 🔖 architecture jamstack web development minimum viable build 💬 EN

I’m wondering if SvelteKit could make it easy for me to build a UI onto an app to help me write “runbooks” for operational processes at work that happen every few weeks. So, first I have to figure out what goes in a SvelteKit, and as usual, I’m starting as bare-bones as the system will let me.

Continue Reading

Salesforce Apex lets you use external IDs

04 Jan 2022 🔖 salesforce 💬 EN

How did I miss this? Salesforce Apex lets you DML lookup and master-detail relationships by external ID.

Continue Reading

How I set up VSCode for a new Salesforce project

21 Dec 2021 🔖 salesforce vscode 💬 EN

It seems my “Setting up VSCode to edit Salesforce metadata” article is still pretty popular, and although I haven’t followed it step-by-step in a while, at a glance I suspect it’s not particularly wrong, per se. However, it’s extremely oriented toward “org-driven development” in sandboxes.

As documented in “Random handy CumulusCI notes”, I’ve been starting to play with “source-driven development” in scratch orgs – like for real, not just for Trailhead points.

This article is my attempt to “think out loud” as I work through whether maybe there’s a good way to set up VSCode, my Salesforce CLI configuration, and my CumulusCI configuration so that folders on my hard drive feel uncluttered but also offer me the flexibility to play with both models of development.

Continue Reading

Localhost HTML with Python on Windows

09 Nov 2021 🔖 python web development minimum viable build 💬 EN

If you’ve ever tried to open a file c:\example\my_web_page.html in a web browser by putting file:///C:/example/webserver/my_web_page.html, you might have noticed that HTML <FORM>...</FORM> tags don’t work like they’re supposed to.

To get an HTML form’s submit button to actually work, you need to visit my_web_page.html at a http://localhost/-style URL, not a file:///C:/-style URL.

On Windows, with the help of Python, you can do this.

Continue Reading

WCOnline API explainer

20 Oct 2021 🔖 api integration python 💬 EN

Apparently at many schools, Twenty Six Design’s WCOnline cloud software is a popular choice for online tutoring and for making appointments with tutors available through the system.

Continue Reading

How I added Algolia search: front-end

04 Oct 2021 🔖 web development jamstack 💬 EN

For a few months now, this site has had an internal search function, and some of you are even using it!

Here’s a new code demo showing how I put an Algolia search box into my web site to actually do something with all that data Algolia had on file.

It’s a great approach for Jekyll, Hugo, 11ty, or other truly statically generated sites. (I’ve tried it on both Jekyll and 11ty so far.)

Continue Reading

Inspecting an existing 11ty project

04 Oct 2021 🔖 web development jamstack 💬 EN

Cassey Lottman’s “Diving into an existing 11ty project” from the 11ty Meetup is great. You can skim a TL;DW on Cassey’s blog, but I recommend listening to the talk, because there’s a bit more “why” behind each of the 6 concepts to orient yourself to in someone else’s 11ty project.

As a case study, let’s follow Cassey’s methodology to look at web-site-11ty-07-movable-git, the most recent 11ty example code I posted on GitHub (which supports my article “Jekyll doesn’t do components? Liar!“).

Continue Reading

Document Salesforce TDTM to avoid dev-admin handoff issues

30 Sep 2021 🔖 salesforce 💬 EN

Salesforce’s Nonprofit Success Pack (“NPSP”) and Education Data Architecture (“EDA”) installable packages both come with functionality called Table-Driven Trigger Management (“TDTM”).

The admin options are powerful enough to break dev code, so good practices around handoff are essential.

Continue Reading