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.
Checking a password against Troy Hunt's list
28 Mar 2021
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).
Anonymous PLSQL subquery from a file
23 Mar 2021
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?
Tailwind JIT starter for 11ty (play fast!)
19 Mar 2021
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
.
Off-by-one errors in Python API pagination
16 Mar 2021
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:
A Lyris to Marketing Cloud imaginary architecture
15 Mar 2021
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 [email protected]
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 ReadingCan 11ty host my podcast for free?
10 Mar 2021
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 ReadingStackbit can teach you web development
09 Mar 2021
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.
Data Development and Integrations (official Salesforce Developers podcast appearance)
08 Mar 2021
Official Salesforce Developers podcast host Josh Birk is so much fun to geek out with!
Following up from Cactusforce, our working title was “APIs are for everybody,” but we threw in the whole kitchen sink of admineloper-ey goodness about Flow, data modeling, testing, Apex for beginners, user-oriented automation design, Python – and yes, APIs! – that the final show, hot off the presses, is called Data Development and Integrations.
What's a docking station?
06 Mar 2021
A docking station is a piece of hardware meant to be permanently-ish installed at 1 location, to facilitate plugging a laptop into accessories that are also permanently-ish installed at that location.
Continue ReadingUsing OBS as a virtual webcam for Zoom conference calls
06 Mar 2021
Going really deep into the world of “virtual webcams” …
In its latest versions, OBS has an option to set its output as a “webcam.”