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.

A git feature commit squashing approach

03 May 2021 🔖 git 💬 EN

This is a trick that Ramon Snir taught me to transform a git-tracked feature branch with hundreds of commits (which I’ve already pushed to a GitHub-hosted remote) into looking like it never had anything but a single commit with a message of “Meaningful fake first commit message.”

Continue Reading

Tailwind JIT starter for Gatsby

07 Apr 2021 🔖 jamstack web development 💬 EN

It’s not quite a starter – more of a bolt-on to an older project – but check out my work adding Tailwind Just-In-Time (JIT) to Gatsby. It’s a FAST editing experience – I can instantly change “purple” to “green” and see my results when running in “develop” mode, just like with my 11ty Tailwind JIT starter.

This got outdated fast – nice work, Tailwind maintainers. I’ll update the repo when I get a chance to actually test my edits, but note that now you just install the normal Tailwind Node package as instructed by Gatsby & enable JIT mode through tailwind.config.js.

Continue Reading

Big Data: What to learn

02 Apr 2021 🔖 architecture databases sql tips 💬 EN

Migrating an oldie but a goodie to the new blog. Back in 2016, I gave a friend who wants to career-change into data science some advice for starting to learn about big data, and I think a lot of the advice has stood the test of time, even if we don’t hear that catchphrase as much as we used to.

Continue Reading

Checking a password against Troy Hunt's list

28 Mar 2021 🔖 tips 💬 EN

Troy Hunt, of HaveIBeenPwned.com, a site that helps you learn what data breaches your email address was involved in, also keeps a database of hacked passwords at api.PwnedPasswords.com so you can check if your password’s as bad as password123 without actually typing your password anywhere on the internet. I can’t remember where I found my instructions for using it anymore, so I’m writing it down myself for future reference, and I apologize to whoever I’m not crediting. I dusted these off recently to make a case to a family member for changing certain passwords I don’t approve of (tip: just get your passwords from Gibson Research Corporation’s random high-entropy password generator).

Continue Reading

Anonymous PLSQL subquery from a file

23 Mar 2021 🔖 databases sql integration 💬 EN

In PL/SQL Nested Queries, we learned how to leverage compiled-into-the-database Oracle SQL record & table-of-record types in anonymous PL/SQL to save the results of one SELECT into a variable, then use them as a filter in another SELECT. But what if we’d rather populate our variable from a file?

Continue Reading

Tailwind JIT starter for 11ty (play fast!)

19 Mar 2021 🔖 jamstack web development 💬 EN

Check out my 11ty starter for Tailwind Just-In-Time (JIT). It’s a FAST editing experience. See it here.

Darrik’s architecture for 11ty Tailwind still works, but the JIT details here are outdated. I’ll update the repo when I get a chance to actually test my edits, but note that now you just install the normal Tailwind Node package, point your custom 11ty JS at normal Tailwind, point postcss.config.js to normal Tailwind, & enable JIT mode through tailwind.config.js.

Continue Reading

Off-by-one errors in Python API pagination

16 Mar 2021 🔖 python tips 💬 EN

If you have json.loads(response.text) in a Python script using requests to perform a loop over API calls structured something like response = requests.get('https://example.com') inside the loop, and you sporadically see an error stack ending in raw_decode mentioning ValueError from None like this, you might have an off-by-one error in your loop condition:

Continue Reading

A Lyris to Marketing Cloud imaginary architecture

15 Mar 2021 🔖 architecture integration salesforce marketing cloud 💬 EN

A lot of small organizations seem to have legacy use of Lyris (now Aurea) ListManager, even as they adopt newer mass e-mailing software like MailChimp or Salesforce Marketing Cloud.

One reason it’s been so hard to migrate away from is that Lyris offers you the ability to attach “magic e-mail addresses” to mailing lists (whose membership lists can be dynamically populated from an enterprise database), meaning, for example, that the chair of the Math department at a university can simply email MathAlumni@example.edu from Microsoft Outlook, and it will be sent along as if they’d BCCed everyone.

For some internal groups, Microsoft Active Directory-based Office365 mailing groups can replace Lyris for this use case, but anyone in the organization can see their membership, so Lyris might still be preferred when list membership is a secret (e.g. to avoid harrassment of its members).

Today, I had a crazy idea that just might work to get Salesforce Marketing Cloud to behave more like Lyris for this use case.

Continue Reading

Can 11ty host my podcast for free?

10 Mar 2021 🔖 jamstack web development 💬 EN

Check out a GitHub repository where I’m building a podcast in 11ty. I’m feeling too cheap to mess with a proper CDN, since I haven’t fully committed to the idea.

Continue Reading

Stackbit can teach you web development

09 Mar 2021 🔖 jamstack web development 💬 EN

Have you seen Stackbit’s new “Code” & “Content” editors? I’m not sure what more a person needs in life to learn or teach static site generator HTML templating & front-matter data modeling practices.

I wish this had been around a year ago when I started my Jamstack journey.

Continue Reading