{"id":30379,"date":"2024-02-04T16:07:12","date_gmt":"2024-02-05T00:07:12","guid":{"rendered":"https:\/\/www.podfeet.com\/blog\/?p=30379"},"modified":"2024-02-04T16:09:19","modified_gmt":"2024-02-05T00:09:19","slug":"ccatp-786","status":"publish","type":"post","link":"https:\/\/www.podfeet.com\/blog\/2024\/02\/ccatp-786\/","title":{"rendered":"CCATP #786 \u2014 Bart Busschots on PBS 160 of X \u2014 jq as a Programming Language"},"content":{"rendered":"<p>In this week&#8217;s installment of Programming By Stealth, Bart Busschots teaches us how to use jq as a programming language. Before we get into the new stuff, Bart takes us through his solution to the challenge, and I have to say I was pretty chuffed when he said my solution to the extra credit portion was more elegant than his. To be fair, it took a buddy programming session with him for me to get the <em>first<\/em> part of the challenge figured out.<\/p>\n<p>When we got into the programming language part of the lesson, there were so many times that I said, &#8220;I needed this last week!&#8221;  I think finding out these options are available after understanding the problems they solve was fantastic.<\/p>\n<p>We learned how to run jq filters from files, which means no more looking at our filters all on one line &#8211; we can put line feeds and indents into our filters to make them more readable. We can even add comments. Bart tells us about a couple of handy plugins for VS Code to give us syntax highlighting which will be swell.<\/p>\n<p>My favorite thing I learned was how to add debugging to our filters. This one is a life changer. We explore a few functions for exploring data filters that will make life easier. We wrap up with an introduction to jq variables, which the developers of jq really don&#8217;t want you to use unless absolutely necessary.<\/p>\n<p>You can find Bart&#8217;s fabulous tutorial shownotes at <a href=\"https:\/\/pbs.bartificer.net\/pbs160\">pbs.bartificer.net<\/a>.<\/p>\n<audio class=\"wp-audio-shortcode\" id=\"audio-30379-1\" preload=\"none\" style=\"width: 100%;\" controls=\"controls\"><source type=\"audio\/mpeg\" src=\"https:\/\/media.blubrry.com\/nosillacast\/traffic.libsyn.com\/nosillacast\/CCATP_2024_02_04.mp3?_=1\" \/><a href=\"https:\/\/media.blubrry.com\/nosillacast\/traffic.libsyn.com\/nosillacast\/CCATP_2024_02_04.mp3\">https:\/\/media.blubrry.com\/nosillacast\/traffic.libsyn.com\/nosillacast\/CCATP_2024_02_04.mp3<\/a><\/audio>\n<p><a title=\"mp3 download\" href=\"https:\/\/media.blubrry.com\/nosillacast\/traffic.libsyn.com\/nosillacast\/CCATP_2024_02_04.mp3\" target=\"_blank\" rel=\"noopener noreferrer\">mp3 download<\/a><\/p>\n<p>Read an unedited, auto-generated transcript with chapter marks:   <a href=\"https:\/\/podfeet.com\/transcripts\/CCATP_2024_02_04.html\">CCATP_2024_02_04<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this week&#8217;s installment of Programming By Stealth, Bart Busschots teaches us how to use jq as a programming language. Before we get into the new stuff, Bart takes us through his solution to the challenge, and I have to say I was pretty chuffed when he said my solution to the extra credit portion [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":18994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[147,172,213],"tags":[6313,6120,3457,176,240,617],"class_list":["post-30379","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-posts","category-ccatp","category-programming-by-stealth","tag-debugging","tag-jq","tag-json","tag-programming","tag-programming-by-stealth","tag-variables"],"jetpack_featured_media_url":"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2019\/08\/PBS_Logo-1-300x300_no_alpha.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts\/30379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/comments?post=30379"}],"version-history":[{"count":3,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts\/30379\/revisions"}],"predecessor-version":[{"id":30399,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts\/30379\/revisions\/30399"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/media\/18994"}],"wp:attachment":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/media?parent=30379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/categories?post=30379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/tags?post=30379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}