On April 23, 2025 at 13:48

AI just run the first `rm …` command on my computer. And I trusted it to delete just the files it said it will delete.
What's the scariest thing that you've done with AI?
AI just run the first `rm …` command on my computer. And I trusted it to delete just the files it said it will delete.
What's the scariest thing that you've done with AI?
Just got roasted by an AI π₯ about my strategy on socials:
> Youβre creating technically dense content for an audience that doesnβt want to be lectured or debug with you unless thereβs something emotionally or practically in it for them.
Fair. Brutal. True.
Does this resonate with you? What are some tactics that have worked well for you?
Attached are my stats for reference.
Are you running paid ads for your WordPress products? Which platforms are you using and what type of creatives are working best?
The WP core navigation-link block doesn't support current-ancestor feature which was available in the legacy menu system.
Previously we had the following classes available:
– current-menu-ancestor
– menu-item-has-children
– current_page_ancestor
This render method no longer has any of that logic: https://github.com/WordPress/gutenberg/blob/9122cc34fb1d972cdfc59614bf6f140a9b6f7d94/packages/block-library/src/navigation-link/index.php#L172-L295
And there doesn't appear to be an issue for this in the repo.
Responded to @kasparsd:
The Mail Pilot plugin (still in testing) now ensures that all of these match. https://wpelevator.com/plugins/mail-pilot
Are you getting "SPF alignment issues" or "spf=neutral" for emails sent by WP?
Turns out that wp_mail() doesn't set the Return-Path email header which leads to PHPMailer populating that from the php.ini sendmail_from setting. While that is correct, email clients these days expect the FROM domain, Return-Path and DKIM p= domain to be equal to pass the DMARC checks.
Here is a crazy idea — use JSON with actual JS for config files. So many JS and PHP projects seem to embrace it now over plain JSON or YAML files.
Was listening to this interview with Sam Goodwin on devtoolsFM podcast about Alchemy and realized how cool it is to have actual programming language features for configs.
Responded to @kasparsd:
Get the beta version with a 50% discount here: https://wpelevator.com/plugins/lazy-load-blocks
Introducing Lazy Load Blocks for WordPress!
Speed up your site and boost UX by lazy loading any block — videos, embeds, forms, and more without breaking SEO.
π‘ Easy setup
π€ SEO-friendly
π― Lightweight and effective
Watch the walkthrough: π½
Why is naming things hard? π·οΈ OpenAI is such a young company but their user-facing product names look like this already.
Native <video> in HTML is extremely good these days. Videos encoded with H264/AAC are universally playable and with HTTP chunk support you can serve the same video to all users.
However, browsers seem to request videos with preload=auto/metadata as soon as the page loads which is unnecessary. So I built this lazy-load solution that hides the src attribute (prevents loading) until an Intersection Observer callback.
WordPress would be perfect for this kind of personal AI buttler β we have a simple table for memories and cron runner for scheduled tasks. https://www.geoffreylitt.com/2025/04/12/how-i-made-a-useful-ai-assistant-with-one-sqlite-table-and-a-handful-of-cron-jobs
Responded to @kasparsd:
Which one do you use the most? Which blew your mind the first time?
Responded to @kasparsd:
Optional Chaining & Nullish Coalescing π ES2020
const what = user?.profile?.name ?? 'N/A';
Reads the value of name without undefined crashes, and returns 'N/A` if not present.
Responded to @kasparsd:
Object.fromEntries() π ES2019
const entries = [ ['a', 1], ['b', 2] ];
Object.fromEntries(entries);
returns { a: 1, b: 2 }.
Responded to @kasparsd:
Object.entries() π ES2017
const obj = { a: 1, b: 2 };
Object.entries(obj);
returns [ ['a', 1], ['b', 2] ] which is useful for mapping.
Responded to @kasparsd:
Property Shorthand π ES6 (2015)
const x = 1, y = 2;
const point = { x, y };
Less typing, same object.
Responded to @kasparsd:
Object Spread for Merge π ES2018
const a = { x: 1 };
const b = { y: 2 };
const c = { …a, …b };
Merges like magic (shallow copy).
Responded to @kasparsd:
Computed Property Names π ES6 (2015)
const key = 'foo';
const obj = { [key]: 123 };
Turns variable value into a property key. Syntax sugar for obj[key] = 123.
Responded to @kasparsd:
Nested Destructuring π ES6 (2015)
const user = { profile: { name: 'Ada' } };
const { profile: { name } } = user;
Same as name = user.profile.name;
And you can rename the variable name to userName:
const { profile: { name: userName } } = user;