James Brundage | MVP
mrpowershell.com
James Brundage | MVP
@mrpowershell.com
Jack of all Trades, Master of PowerShell.

Prolific Programmer

Microsoft MVP in Azure / PowerShell

https://mrpowershell.com/
https://github.com/StartAutomating
https://github.com/PowerShellWeb

NB, Neurodivergent, Nerdy, Newsjunkie.

Ask me anything.
I don't see it going anywhere.

The timeline on languages is _long_.

Basic "dying" took somewhere between the 1980s and now.

PowerShell came out in 2006.

I'd say we have at least 40 years.

Also realizing with some horror:

#PowerShell will outlive me

Our languages will outlive us

😱
a painting of a man screaming with the words sherlockspeare tumblr underneath it
Alt: Languages last a long time. Basic was only just now deprecated, after four decades as part of the operating system. C is still going strong. It's creator, Dennis Ritchie, died in 2011. PowerShell came out in 2006, and turns 19 this week. ( they grow up so fast ) Our languages will outlive us. They outshine us. It's beautiful and it's crazy, and it humbles the mind and ego.
media.tenor.com
November 11, 2025 at 6:42 AM
Just wrap it in a list expression @($table.keys).

List expressions are very useful for when you want to force things to be an array.
a man wearing glasses and a bow tie has the words incredibly useful on his face
Alt: List array operators in PowerShell are incredibly useful. By the way, I highly recommend this subject of this gif: The History Guy on YouTube.
media.tenor.com
November 11, 2025 at 6:17 AM
Strangely / sadly no.

Basically keys is a enumerable, not indexable.

Because .keys could change at any time.

To work around this, force into an array.

@($table.keys)[0]

You might also enjoy using this range indexing #PowerShell #Trick:

$table[$table.Keys -match 'pattern']

Hope this helps!
November 11, 2025 at 1:55 AM
💯

Bonus points for #PowerShell #requires :

You can easily detect this with the AST and auto-install the module in a #GitHub #Workflow.

~~~PowerShell
(Get-Command ./SomeScript.ps1).ScriptBlock.Ast.ScriptRequirements
~~~
November 10, 2025 at 9:16 PM
Because of the #PowerShell or because of the #MacOS?
November 10, 2025 at 7:48 PM
Honestly haven't cracked open a Publisher file in some time.

A brief bit of recon reveals it is not a zip file in a trenchcoat 🤔

I don't know of any API off the top of my head, but there _might_ be a COM api.

Looking forward to seeing what you produce.

Glad I don't use publisher 😉
November 9, 2025 at 8:45 PM
Yep. With #Powershell, the world is your oyster.

What's your favorite .net api so far?
November 9, 2025 at 8:20 PM
Verbs aren't types.

Types are types.

Verbs ain't nothing but a part of speech and a naming convention.
November 8, 2025 at 6:37 PM
We did.

It's called #PowerShell, and it can work with all #DotNet types ( which can work with all C types).

We even gave you an inline compiler with Add-Type.

Stop trolling and try the thing...

Ignorance -ne Bliss
November 8, 2025 at 6:36 PM
I know this is some trolling, but I have to point out the irony of saying things on the internet, which was basically built atop shell languages like #Perl (because your browser is a fancy shell for the https protocol).

So yeah, use a "real" language. "Fake" ones built the internet.
November 8, 2025 at 1:46 AM
Lol, now #Turtle can make you clickable pie graphs. So it might just save you some time 😉
November 7, 2025 at 9:27 PM
And also made a quick and dirty #Math #MathML #PowerShell module:

github.com/PowerShellWe...

Should round my way back to that...
GitHub - PowerShellWeb/MathML: PowerShell and MathML
PowerShell and MathML. Contribute to PowerShellWeb/MathML development by creating an account on GitHub.
github.com
November 7, 2025 at 9:26 PM
Made a really quick and dirty simple module for Vectors.

Should update it with a logo:

github.com/PowerShellWe...
GitHub - PowerShellWeb/Vector: Vectors in PowerShell
Vectors in PowerShell. Contribute to PowerShellWeb/Vector development by creating an account on GitHub.
github.com
November 7, 2025 at 9:25 PM
Started to crack open the mouth of madness that is #PowerShell and #OpenXML (manipulating #Word, #Excel, and #PowerPoint):

github.com/PowerShellWe...
GitHub - PowerShellWeb/OpenXML: Automate OpenXML with PowerShell
Automate OpenXML with PowerShell. Contribute to PowerShellWeb/OpenXML development by creating an account on GitHub.
github.com
November 7, 2025 at 9:24 PM
Also got a few small modules out....

In order of recency, we've got Glass, which was meant to help find #Glassware #Glassworm messages in files or packages, and help people understand the vector:

github.com/StartAutomat...
GitHub - StartAutomating/Glass: Glass is a module for seeing thru invisible characters
Glass is a module for seeing thru invisible characters - StartAutomating/Glass
github.com
November 7, 2025 at 9:23 PM
@tangled.org the least I'll be able to do for now is add you tangled to the site list I support for an upcoming overpowered packaging project.

Sadly, without support for sparse clones, this won't work _quite_ as smoothly as it will for github.

(I want people to be able to copy/paste a tree path)
November 7, 2025 at 8:10 PM