[{"id":"115632596019062166","created_at":"2025-11-29T10:49:51.403Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/115632596019062166","url":"https://fosstodon.org/@johnny_reilly/115632596019062166","replies_count":0,"reblogs_count":0,"favourites_count":0,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003eIf you\u0026#39;re using Yargs (and on older projects that\u0026#39;s pretty common) and want to statically type your builder commands, here\u0026#39;s how:\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://johnnyreilly.com/yargs-statically-typed-builder-commands\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ejohnnyreilly.com/yargs-statica\u003c/span\u003e\u003cspan class=\"invisible\"\u003elly-typed-builder-commands\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":{"url":"https://johnnyreilly.com/yargs-statically-typed-builder-commands","title":"Yargs: statically typed builder commands | johnnyreilly","description":"This post demonstrates how to use Yargs to create statically typed commands with builders in TypeScript.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":640,"height":360,"image":null,"image_description":"","embed_url":"","blurhash":"UjODwm0L4:IVNL%hWZR*t7RjIUjt%LM_aeof","published_at":"2025-11-29T00:00:00.000Z","authors":[]},"poll":null,"quote_approval":{"automatic":["public"],"manual":[],"current_user":"denied"}},{"id":"115111111075546282","created_at":"2025-08-29T08:29:22.652Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/115111111075546282","url":"https://fosstodon.org/@johnny_reilly/115111111075546282","replies_count":0,"reblogs_count":0,"favourites_count":0,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003eAzure DevOps generates commit messages when pull requests are merged, that act against conventional commits. If you want to control your commit messages on merge in an automated fashion, there is a way:\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://johnnyreilly.com/azure-devops-pull-requests-conventional-commits\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ejohnnyreilly.com/azure-devops-\u003c/span\u003e\u003cspan class=\"invisible\"\u003epull-requests-conventional-commits\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":{"url":"https://johnnyreilly.com/azure-devops-pull-requests-conventional-commits","title":"Azure DevOps: merging pull requests with conventional commits | johnnyreilly","description":"How to merge a pull request in Azure DevOps and maintain a git commit history of conventional commits, using the Azure DevOps API and build validations.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":640,"height":360,"image":null,"image_description":"","embed_url":"","blurhash":"UTRymPbv_N$*%MRjV@t7?vsmDiOEWBt7t7M{","published_at":"2025-08-29T00:00:00.000Z","authors":[]},"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"115085198775520174","created_at":"2025-08-24T18:39:32.332Z","in_reply_to_id":"115084861397832746","in_reply_to_account_id":"108250191004094827","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/115085198775520174","url":"https://fosstodon.org/@johnny_reilly/115085198775520174","replies_count":1,"reblogs_count":0,"favourites_count":1,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003e\u003cspan class=\"h-card\" translate=\"no\"\u003e\u003ca href=\"https://mastodon.social/@stevefenton\" class=\"u-url mention\"\u003e@\u003cspan\u003estevefenton\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e yeah the jQuery-ification of Stack Overflow answers was unfortunate. I\u0026#39;m delighted that browser alignment happened, but my gosh it was a long time coming. And TBH, I do wonder if it would have happened had jQuery not shown up and shown what a standardized DOM looked like. document.querySelector felt like a browser native jQuery implementation\u003c/p\u003e","reblog":null,"application":null,"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[{"id":"108250191004094827","username":"stevefenton","url":"https://mastodon.social/@stevefenton","acct":"stevefenton@mastodon.social"}],"tags":[],"emojis":[],"quote":null,"card":null,"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"115084798370548147","created_at":"2025-08-24T16:57:42.637Z","in_reply_to_id":"115083977069006017","in_reply_to_account_id":"108250191004094827","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/115084798370548147","url":"https://fosstodon.org/@johnny_reilly/115084798370548147","replies_count":1,"reblogs_count":0,"favourites_count":0,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003e\u003cspan class=\"h-card\" translate=\"no\"\u003e\u003ca href=\"https://mastodon.social/@stevefenton\" class=\"u-url mention\"\u003e@\u003cspan\u003estevefenton\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e Why didn\u0026#39;t you like jQuery?\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[{"id":"108250191004094827","username":"stevefenton","url":"https://mastodon.social/@stevefenton","acct":"stevefenton@mastodon.social"}],"tags":[],"emojis":[],"quote":null,"card":null,"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"114869754250123734","created_at":"2025-07-17T17:29:09.763Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":null,"uri":"https://fosstodon.org/users/johnny_reilly/statuses/114869754250123734/activity","url":"https://fosstodon.org/users/johnny_reilly/statuses/114869754250123734/activity","replies_count":0,"reblogs_count":0,"favourites_count":0,"quotes_count":0,"edited_at":null,"content":"","reblog":{"id":"114869741720438939","created_at":"2025-07-17T17:25:58.575Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/SquiggleConf/statuses/114869741720438939","url":"https://fosstodon.org/@SquiggleConf/114869741720438939","replies_count":0,"reblogs_count":2,"favourites_count":2,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003e🌟 Speaker Spotlight: Oliver Medhurst\u003c/p\u003e\u003cp\u003e@goose.icu is the creator of Porffor and a TC39 \u0026amp; WinterTC invited expert. Who better than to talk to us about the latest advances in ahead-of-time compiling TypeScript to native and WASM code?\u003c/p\u003e\u003cp\u003eSchedule, speakers \u0026amp; more info: squiggleconf.com\u003c/p\u003e","reblog":null,"application":null,"account":{"id":"110460423571142271","username":"SquiggleConf","acct":"SquiggleConf","display_name":"SquiggleConf","locked":false,"bot":false,"discoverable":null,"indexable":false,"group":false,"created_at":"2023-05-31T00:00:00.000Z","note":"\u003cp\u003e✨ SquiggleConf | A conference for excellent web dev tooling \u003cbr /\u003e💡 Inspiring talks, magnificent speakers, \u0026amp; a vibrant community\u003cbr /\u003e🌐 Join us in exploring the latest in web development \u0026amp; open-source\u003cbr /\u003e\u003ca href=\"https://fosstodon.org/tags/SquiggleConf\" class=\"mention hashtag\" rel=\"tag\"\u003e#\u003cspan\u003eSquiggleConf\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","url":"https://fosstodon.org/@SquiggleConf","uri":"https://fosstodon.org/users/SquiggleConf","avatar":"https://cdn.fosstodon.org/accounts/avatars/110/460/423/571/142/271/original/b89a92d063f8ff39.png","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/110/460/423/571/142/271/original/b89a92d063f8ff39.png","header":"https://cdn.fosstodon.org/accounts/headers/110/460/423/571/142/271/original/0bdc82b816f61a7e.png","header_static":"https://cdn.fosstodon.org/accounts/headers/110/460/423/571/142/271/original/0bdc82b816f61a7e.png","followers_count":43,"following_count":16,"statuses_count":162,"last_status_at":"2025-09-22","hide_collections":null,"noindex":true,"emojis":[],"roles":[],"fields":[{"name":"🕸️","value":"\u003ca href=\"https://squiggleconf.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003esquiggleconf.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[{"id":"114869724027219399","type":"image","url":"https://cdn.fosstodon.org/media_attachments/files/114/869/724/027/219/399/original/f42f9ee6f45cf7f0.png","preview_url":"https://cdn.fosstodon.org/media_attachments/files/114/869/724/027/219/399/small/f42f9ee6f45cf7f0.png","remote_url":null,"preview_remote_url":null,"text_url":null,"meta":{"original":{"width":1600,"height":900,"size":"1600x900","aspect":1.7777777777777777},"small":{"width":640,"height":360,"size":"640x360","aspect":1.7777777777777777},"focus":{"x":0.0,"y":0.0}},"description":"Poster for SquiggleConf 2025, September 18-19 Boston\n\nAhead-of-Time Compiling TypeScript to WASM and Native\n\nOliver Medhurst, creator of Porffor; TC39 \u0026 WinterTC invited expert","blurhash":"U56IKsOb$eNGQ*^iNKe.OukXw[M{nMIVx^R*"}],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":null,"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},"application":null,"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":null,"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"114744700705033361","created_at":"2025-06-25T15:26:24.095Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/114744700705033361","url":"https://fosstodon.org/@johnny_reilly/114744700705033361","replies_count":0,"reblogs_count":0,"favourites_count":0,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003eEver wanted to dynamically set pull request reviewers in Azure DevOps? With only marginal clunk, you can!\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://johnnyreilly.com/azure-devops-pull-requests-dynamic-required-reviewers\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ejohnnyreilly.com/azure-devops-\u003c/span\u003e\u003cspan class=\"invisible\"\u003epull-requests-dynamic-required-reviewers\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":{"url":"https://johnnyreilly.com/azure-devops-pull-requests-dynamic-required-reviewers","title":"Azure DevOps: pull requests and dynamic required reviewers | johnnyreilly","description":"How to have dynamically assigned required reviewers for a pull request in Azure DevOps using build validations and the Azure DevOps Client for Node.js.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":640,"height":360,"image":null,"image_description":"","embed_url":"","blurhash":"UMR:E8o}~W%3x]RPozxu~qoL9ZR%$+x]V?My","published_at":"2025-06-25T00:00:00.000Z","authors":[]},"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"114489650462504127","created_at":"2025-05-11T14:23:46.246Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/114489650462504127","url":"https://fosstodon.org/@johnny_reilly/114489650462504127","replies_count":0,"reblogs_count":0,"favourites_count":0,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003eMicrosoft Graph is a quirky API. You want to filter results by endswith? Well you\u0026#39;re going to need a magical incantation and special methods if you\u0026#39;re using the Graph client. Here are the incantations as a blog post:\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://johnnyreilly.com/microsoft-graphclient-filter-endswith-consistencylevel-eventual-header\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ejohnnyreilly.com/microsoft-gra\u003c/span\u003e\u003cspan class=\"invisible\"\u003ephclient-filter-endswith-consistencylevel-eventual-header\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":{"url":"https://johnnyreilly.com/microsoft-graphclient-filter-endswith-consistencylevel-eventual-header","title":"Microsoft Graph client: how to filter by endswith | johnnyreilly","description":"Learn how to filter by endswith using the Microsoft Graph client. This is a common use case when working with Azure AD groups.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":640,"height":360,"image":null,"image_description":"","embed_url":"","blurhash":"UmKBn7fl~Uoeskj?ogj[$|fkNJayW?afj?kB","published_at":"2025-05-11T00:00:00.000Z","authors":[]},"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"114359594023336200","created_at":"2025-04-18T15:08:42.475Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/114359594023336200","url":"https://fosstodon.org/@johnny_reilly/114359594023336200","replies_count":0,"reblogs_count":2,"favourites_count":3,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003e\u003cspan class=\"h-card\" translate=\"no\"\u003e\u003ca href=\"https://fosstodon.org/@ashley\" class=\"u-url mention\"\u003e@\u003cspan\u003eashley\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e and I have written a logrocket post on our take on the TypeScript Go port. Many thanks to \u003cspan class=\"h-card\" translate=\"no\"\u003e\u003ca href=\"https://fosstodon.org/@JoshuaKGoldberg\" class=\"u-url mention\"\u003e@\u003cspan\u003eJoshuaKGoldberg\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e and \u003cspan class=\"h-card\" translate=\"no\"\u003e\u003ca href=\"https://fosstodon.org/@jakebailey\" class=\"u-url mention\"\u003e@\u003cspan\u003ejakebailey\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e for their very useful input ❤️\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://blog.logrocket.com/typescript-go-pragmatic-choice/\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003eblog.logrocket.com/typescript-\u003c/span\u003e\u003cspan class=\"invisible\"\u003ego-pragmatic-choice/\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[{"id":"109336325311266152","username":"ashley","url":"https://fosstodon.org/@ashley","acct":"ashley"},{"id":"109294572058457276","username":"JoshuaKGoldberg","url":"https://fosstodon.org/@JoshuaKGoldberg","acct":"JoshuaKGoldberg"},{"id":"109277559049830491","username":"jakebailey","url":"https://fosstodon.org/@jakebailey","acct":"jakebailey"}],"tags":[],"emojis":[],"quote":null,"card":{"url":"https://blog.logrocket.com/typescript-go-pragmatic-choice/","title":"TypeScript is going Go: Why it's the pragmatic choice - LogRocket Blog","description":"Explore why the TypeScript team is porting the compiler to Go in TypeScript 7. Learn how this shift impacts performance, tooling, and the future of the TypeScript ecosystem.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"LogRocket Blog","provider_url":"","html":"","width":588,"height":392,"image":null,"image_description":"","embed_url":"","blurhash":"UpNA#dRQj[Wq~qI=Ipj[$$xsxZs:xZoeodWB","published_at":"2025-04-16T14:51:38.000Z","authors":[]},"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"114292628162136679","created_at":"2025-04-06T19:18:24.524Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/114292628162136679","url":"https://fosstodon.org/@johnny_reilly/114292628162136679","replies_count":0,"reblogs_count":1,"favourites_count":0,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003eNot my most interesting blog post by a long shot; but useful nonetheless \u003c/p\u003e\u003cp\u003e\u003ca href=\"https://johnnyreilly.com/list-pipelines-with-azure-devops-api\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ejohnnyreilly.com/list-pipeline\u003c/span\u003e\u003cspan class=\"invisible\"\u003es-with-azure-devops-api\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":{"url":"https://johnnyreilly.com/list-pipelines-with-azure-devops-api","title":"List Pipelines with the Azure DevOps API | johnnyreilly","description":"Learn how to list the Azure Pipelines in a project using the Azure DevOps REST API with TypeScript and the continuation token.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":640,"height":360,"image":null,"image_description":"","embed_url":"","blurhash":"UISF@Ut7~p%Mobayt8j]_2of9GWB_4ofM_WB","published_at":"2025-04-06T00:00:00.000Z","authors":[]},"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"114241979793200045","created_at":"2025-03-28T20:37:51.745Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/114241979793200045","url":"https://fosstodon.org/@johnny_reilly/114241979793200045","replies_count":0,"reblogs_count":0,"favourites_count":1,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003eHaving a simple authentication setup for local development can be a fiddly affair. In this post I co-opt the Static Web Apps CLI to achieve that end when combined with ASP.NET. If you have no internet connection but you still want to hack on your app, this is what you need\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://johnnyreilly.com/static-web-apps-cli-local-auth-emulator-with-dotnet-authentication\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ejohnnyreilly.com/static-web-ap\u003c/span\u003e\u003cspan class=\"invisible\"\u003eps-cli-local-auth-emulator-with-dotnet-authentication\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":{"url":"https://johnnyreilly.com/static-web-apps-cli-local-auth-emulator-with-dotnet-authentication","title":"Static Web Apps CLI: local authentication emulation with ASP.NET | johnnyreilly","description":"The Static Web Apps CLI has a local authentication emulator. This is a useful tool for local development, and can be used with ASP.NET authentication. This post shows how.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":640,"height":360,"image":null,"image_description":"","embed_url":"","blurhash":"ULSFqzR6?u.7$*rrs.Or?]t6IBRk%gKPNw#R","published_at":"2025-03-29T00:00:00.000Z","authors":[]},"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"114021297188891409","created_at":"2025-02-17T21:15:22.437Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/114021297188891409","url":"https://fosstodon.org/@johnny_reilly/114021297188891409","replies_count":0,"reblogs_count":0,"favourites_count":1,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003eIf you\u0026#39;ve ever struggled to get a Node.js app set up with Azure Application Insights and Fastify, this should help!\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://johnnyreilly.com/nodejs-azure-appinsights-fastify\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ejohnnyreilly.com/nodejs-azure-\u003c/span\u003e\u003cspan class=\"invisible\"\u003eappinsights-fastify\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":{"url":"https://johnnyreilly.com/nodejs-azure-appinsights-fastify","title":"Node.js, Azure Application Insights, and Fastify | johnnyreilly","description":"Learn how to set up a Node.js with Azure Application Insights and Fastify.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":640,"height":360,"image":null,"image_description":"","embed_url":"","blurhash":"UKR{uxjc~qx[-;ofRjjb.7t7IBRjafRkt7of","published_at":"2025-02-17T00:00:00.000Z","authors":[]},"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"113970619614527109","created_at":"2025-02-08T22:27:24.020Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/113970619614527109","url":"https://fosstodon.org/@johnny_reilly/113970619614527109","replies_count":0,"reblogs_count":0,"favourites_count":1,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003eI spoke at the Investec Developer meetup the other week. My talk title was \u0026quot;the Hitchhiker\u0026#39;s Guide to Open Source\u0026quot;. Tips and tricks for getting into OSS. Peep it here:\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://youtu.be/IOnOsyQJYkc?t=200\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003eyoutu.be/IOnOsyQJYkc?t=200\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":{"url":"https://youtu.be/IOnOsyQJYkc?t=200","title":"Investec Developer Community | January 2025","description":"","language":null,"type":"video","author_name":"Investec","author_url":"https://www.youtube.com/@investec","provider_name":"YouTube","provider_url":"https://www.youtube.com/","html":"\u003ciframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/IOnOsyQJYkc?feature=oembed\" frameborder=\"0\" allowfullscreen=\"\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox allow-forms\"\u003e\u003c/iframe\u003e","width":200,"height":113,"image":null,"image_description":"","embed_url":"","blurhash":"U86H_-fR9FofofazWBj[8^j@-;WURjj[xaay","published_at":null,"authors":[{"name":"Investec","url":"https://www.youtube.com/@investec","account":null}]},"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"113888184230108309","created_at":"2025-01-25T09:02:59.879Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/113888184230108309","url":"https://fosstodon.org/@johnny_reilly/113888184230108309","replies_count":0,"reblogs_count":1,"favourites_count":0,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003eOnce again I\u0026#39;ve fought the battle of not implemented Node.js methods in the Azure DevOps client library and won. For all mankind \u003c/p\u003e\u003cp\u003e\u003ca href=\"https://johnnyreilly.com/get-service-connections-with-azure-devops-api\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ejohnnyreilly.com/get-service-c\u003c/span\u003e\u003cspan class=\"invisible\"\u003eonnections-with-azure-devops-api\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":{"url":"https://johnnyreilly.com/get-service-connections-with-azure-devops-api","title":"Get Service Connections with the Azure DevOps API (REST and TypeScript) | johnnyreilly","description":"Learn how to get service connections with the Azure DevOps REST API using both curl and TypeScript.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":640,"height":360,"image":null,"image_description":"","embed_url":"","blurhash":"UQRD1YWG~m-.t8oeoeWC^%t6D+IWt8WCoet6","published_at":"2025-01-25T00:00:00.000Z","authors":[]},"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"113765694398792943","created_at":"2025-01-03T17:52:13.380Z","in_reply_to_id":"113765263312304884","in_reply_to_account_id":"19028","sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/113765694398792943","url":"https://fosstodon.org/@johnny_reilly/113765694398792943","replies_count":1,"reblogs_count":0,"favourites_count":0,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003e\u003cspan class=\"h-card\" translate=\"no\"\u003e\u003ca href=\"https://toot.cafe/@rachelnabors\" class=\"u-url mention\"\u003e@\u003cspan\u003erachelnabors\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e My household has been ill for 6 days now. Please tell me you woke on the seventh day after sickness entirely cured. Being ill is so boring\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[{"id":"19028","username":"rachelnabors","url":"https://toot.cafe/@rachelnabors","acct":"rachelnabors@toot.cafe"}],"tags":[],"emojis":[],"quote":null,"card":null,"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"113760381234566494","created_at":"2025-01-02T19:21:00.926Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/113760381234566494","url":"https://fosstodon.org/@johnny_reilly/113760381234566494","replies_count":0,"reblogs_count":0,"favourites_count":1,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003eIn which I implement a /deploy slash command in GitHub which builds and deploys a pull request to a preview environment. With Azure Container Apps. And nuns. Always with the nuns\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://johnnyreilly.com/slash-command-your-deployment-with-github-actions\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ejohnnyreilly.com/slash-command\u003c/span\u003e\u003cspan class=\"invisible\"\u003e-your-deployment-with-github-actions\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":{"url":"https://johnnyreilly.com/slash-command-your-deployment-with-github-actions","title":"Slash command your deployment with GitHub Actions | johnnyreilly","description":"Slash commands are a great way to interact with your GitHub issues. In this post, we look at how to implement a `/deploy` slash command to deploy an Azure Container Apps service with GitHub Actions.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":640,"height":360,"image":null,"image_description":"","embed_url":"","blurhash":"UHRyyuIv~o^%?DxrbdIq~Vt6D%Rj.9M}Mxxs","published_at":"2025-01-02T00:00:00.000Z","authors":[]},"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"113698345541759802","created_at":"2024-12-22T20:24:31.375Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/113698345541759802","url":"https://fosstodon.org/@johnny_reilly/113698345541759802","replies_count":0,"reblogs_count":0,"favourites_count":1,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003eIt being Christmas, I\u0026#39;ve written a blog post about smuggling dotfiles in npm packages. 🎄🥷📦\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://johnnyreilly.com/smuggling-gitignore-npmrc-in-npm-packages\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ejohnnyreilly.com/smuggling-git\u003c/span\u003e\u003cspan class=\"invisible\"\u003eignore-npmrc-in-npm-packages\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":{"url":"https://johnnyreilly.com/smuggling-gitignore-npmrc-in-npm-packages","title":"Smuggling .gitignore, .npmrc and friends in npm packages | johnnyreilly","description":"The npm publish command will not just package up .gitignore and .npmrc files. This post shows how to use zipping and unzipping with postinstall and prepare scripts to include these files into your npm package.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":640,"height":360,"image":null,"image_description":"","embed_url":"","blurhash":"URRfg{%3_NS0Xlt7nORi?bbFE1az-qR%SKs;","published_at":"2024-12-22T00:00:00.000Z","authors":[]},"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"113616678593418781","created_at":"2024-12-08T10:15:32.640Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/113616678593418781","url":"https://fosstodon.org/@johnny_reilly/113616678593418781","replies_count":0,"reblogs_count":0,"favourites_count":0,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003eBeing able to distribute private CLI tools is traditionally a fiddly problem. But npx combined with a private npm registry like Azure Artifacts / Azure DevOps is an awesome approach. Herewith the how to do it:\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://johnnyreilly.com/npx-and-azure-artifacts-the-secret-cli-delivery-mechanism\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ejohnnyreilly.com/npx-and-azure\u003c/span\u003e\u003cspan class=\"invisible\"\u003e-artifacts-the-secret-cli-delivery-mechanism\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":{"url":"https://johnnyreilly.com/npx-and-azure-artifacts-the-secret-cli-delivery-mechanism","title":"npx and Azure Artifacts: the secret CLI delivery mechanism | johnnyreilly","description":"By combining npx and Azure Artifacts, you can deliver your command line application to consumers in a way that is easy to use and secure.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":640,"height":360,"image":null,"image_description":"","embed_url":"","blurhash":"URR{lTOq.8m-s:j[ozWB_MxaMxb]%MkCV@jb","published_at":"2024-12-08T00:00:00.000Z","authors":[]},"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"113570982126078643","created_at":"2024-11-30T08:34:19.882Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/113570982126078643","url":"https://fosstodon.org/@johnny_reilly/113570982126078643","replies_count":0,"reblogs_count":0,"favourites_count":0,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003eBecause I\u0026#39;m a diligent tester, when putting together azdo-npm-auth I ended up creating *hundreds* of Personal Access Tokens (PATs). Feeling low level guilt every time I look at the tokens screen in Azure DevOps. Possibly time for a cleanup script!\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly/azdo-npm-auth\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003egithub.com/johnnyreilly/azdo-n\u003c/span\u003e\u003cspan class=\"invisible\"\u003epm-auth\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":{"url":"https://github.com/johnnyreilly/azdo-npm-auth","title":"GitHub - johnnyreilly/azdo-npm-auth: Set up local authentication to Azure DevOps npm feeds, optionally using the Azure CLI for PAT acquisition","description":"Set up local authentication to Azure DevOps npm feeds, optionally using the Azure CLI for PAT acquisition - johnnyreilly/azdo-npm-auth","language":"en","type":"link","author_name":"","author_url":"","provider_name":"GitHub","provider_url":"","html":"","width":480,"height":480,"image":null,"image_description":"Set up local authentication to Azure DevOps npm feeds, optionally using the Azure CLI for PAT acquisition - johnnyreilly/azdo-npm-auth","embed_url":"","blurhash":"UbONRq?F%gRk%LRlWBob_MR+-Nofw^jYf+t8","published_at":null,"authors":[]},"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"113562716323639052","created_at":"2024-11-28T21:32:13.747Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/113562716323639052","url":"https://fosstodon.org/@johnny_reilly/113562716323639052","replies_count":0,"reblogs_count":1,"favourites_count":1,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003eUpdated my post on creating an Azure DevOps pipeline with a TypeScript example. I still have no idea how I discovered how to do this in the first place given the incomplete API documentation \u003c/p\u003e\u003cp\u003e\u003ca href=\"https://johnnyreilly.com/create-pipeline-with-azure-devops-api#what-if-i-want-to-use-typescript\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ejohnnyreilly.com/create-pipeli\u003c/span\u003e\u003cspan class=\"invisible\"\u003ene-with-azure-devops-api#what-if-i-want-to-use-typescript\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":{"url":"https://johnnyreilly.com/create-pipeline-with-azure-devops-api#what-if-i-want-to-use-typescript","title":"Create a Pipeline with the Azure DevOps API | johnnyreilly","description":"Learn how to create an Azure Pipeline using the Azure DevOps REST API with a personal access token and JSON file, as detailed in this post.","language":"en","type":"link","author_name":"","author_url":"","provider_name":"","provider_url":"","html":"","width":764,"height":302,"image":null,"image_description":"","embed_url":"","blurhash":"UARW3k8_9F4:~q%MNf?HWZxukCt8?bj]j^M{","published_at":"2021-05-08T00:00:00.000Z","authors":[]},"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}},{"id":"113522392282725421","created_at":"2024-11-21T18:37:17.711Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"https://fosstodon.org/users/johnny_reilly/statuses/113522392282725421","url":"https://fosstodon.org/@johnny_reilly/113522392282725421","replies_count":0,"reblogs_count":0,"favourites_count":1,"quotes_count":0,"edited_at":null,"content":"\u003cp\u003eTaught a coding bootcamp with a bunch of friends today. Nothing like teaching data types to remind you how weird it is we have one text data type (string) and a small battalion of number data types (int, float, long, decimal, did I mention big decimal and big int, oh and also....)\u003c/p\u003e","reblog":null,"application":{"name":"Elk","website":"https://elk.zone"},"account":{"id":"109318148889656665","username":"johnny_reilly","acct":"johnny_reilly","display_name":"John Reilly ❤️🌻","locked":false,"bot":false,"discoverable":true,"indexable":false,"group":false,"created_at":"2022-11-10T00:00:00.000Z","note":"\u003cp\u003eMacGyver turned Dev ❤️🌻\u003c/p\u003e\u003cp\u003e\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003eOSS, blogs and talks\u003c/p\u003e\u003cp\u003eTypeScript | ts-loader | DefinitelyTyped | Docusaurus | C# | Azure\u003c/p\u003e","url":"https://fosstodon.org/@johnny_reilly","uri":"https://fosstodon.org/users/johnny_reilly","avatar":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","avatar_static":"https://cdn.fosstodon.org/accounts/avatars/109/318/148/889/656/665/original/fe61b4848c4910b9.jpg","header":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","header_static":"https://cdn.fosstodon.org/accounts/headers/109/318/148/889/656/665/original/3ef7b6307423003f.jpg","followers_count":233,"following_count":149,"statuses_count":704,"last_status_at":"2025-11-29","hide_collections":false,"noindex":false,"emojis":[],"roles":[],"fields":[{"name":"Blog","value":"\u003ca href=\"https://johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003ejohnnyreilly.com\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-12-31T17:28:14.929+00:00"},{"name":"GitHub","value":"\u003ca href=\"https://github.com/johnnyreilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003egithub.com/johnnyreilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":"2022-11-12T08:06:33.077+00:00"},{"name":"Twitter","value":"\u003ca href=\"https://twitter.com/johnny_reilly\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"\"\u003etwitter.com/johnny_reilly\u003c/span\u003e\u003cspan class=\"invisible\"\u003e\u003c/span\u003e\u003c/a\u003e","verified_at":null},{"name":"Bluesky","value":"\u003ca href=\"https://bsky.app/profile/johnnyreilly.com\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"\u003e\u003cspan class=\"invisible\"\u003ehttps://\u003c/span\u003e\u003cspan class=\"ellipsis\"\u003ebsky.app/profile/johnnyreilly.\u003c/span\u003e\u003cspan class=\"invisible\"\u003ecom\u003c/span\u003e\u003c/a\u003e","verified_at":null}]},"media_attachments":[],"mentions":[],"tags":[],"emojis":[],"quote":null,"card":null,"poll":null,"quote_approval":{"automatic":[],"manual":[],"current_user":"denied"}}]