Episodios

  • PBS 169 of X — Advanced YAML Topics
    Jul 7 2024

    In this second (and final) installment about YAML, Bart teaches us who to write multi-line strings and how not to write multi-line strings. He teaches us about String Blocks which is a bit head-bendy but allows you to write human-readable strings and also tell YAML what to do with empty lines and white space.

    After that slightly heavy lift, we learn about how to write much simpler-looking Sequences and Mappings than the way we learned in our introduction to YAML in PBS 168. It's really nifty how you can write them in compact, sensible forms, and even easily combine separate YAML documents into the same sequence or mapping.

    Finally we learn how to use the `yq` language to query JSON, CSV, and XML files using a language that uses `jq` syntax so you'll feel right at home.

    Read an unedited, auto-generated transcript with chapter marks: PBS_2024_07_06

    Más Menos
    1 h y 6 m
  • PBS 168 – Introduction to YAML
    Jun 22 2024

    In Programming By Stealth, we've completed our series on the jq language and now Bart Busschots brings us a two-part miniseries about the YAML data format. He takes us through the history of data formats we've "enjoyed" such as fixed-width text files, Comma Separated Value files, through to JSON and XML. All of them had their place in history but also had their downsides. YAML promises to be human-readable (yay) and computer-readable (also yay.)

    Once we're bought into how YAML is the data format of our dreams, Bart explains that there are only two kinds of data, scalar,s and collections, and that collections can be sequences or mapping and all of these data types go into a document. Luckily this is all of the jargon we'll have to learn and there are useful synonyms from other languages (e.g. sequences are really just arrays).

    I found this lesson enjoyable and not too hard on my little brain so I suspect you'll enjoy it as much as I did.

    You can find Bart's fabulous tutorial shownotes at pbs.bartificer.net.

    Read an unedited, auto-generated transcript with chapter marks: CCATP_2024_06_22

    Más Menos
    56 m
  • PBS 167 of X – jq: Recursion, Syntactic Sugar, Some old Friends and a Few Honourable Mentions
    Jun 8 2024

    It was actually bittersweet for Bart and me this week as he taught the final installment in our series of Programming By Stealth about jq. As Bart says partway through our recording, he thought this would just be a few episodes but it took 13 episodes to go through everything Bart thought was fun about this deceptively simple programming language.

    This final installment in the jq series covers querying nested data structures with the `recurse` command. One of the really fun parts of the episode is when he teaches us how to dramatically simplify our code, a concept that's often called syntactic sugar. We get to do `if` statements for the first time, where I wondered why he didn't let us have them earlier! I was cross with him for holding out on us with `try-catch` too because it would have made our coding so much easier. But that was the real theme of this installment – we had to learn the way everything works before learning the shortcuts.

    In the finale, he gives us a few of what he calls "honourable mentions" – little tidbits that came in handy at times.

    You can find Bart's fabulous tutorial shownotes at pbs.bartificer.net.

    Read an unedited, auto-generated transcript with chapter marks: CCATP_2024_06_07

    Join our Slack at podfeet.com/slack and look for the #pbs channel, and check out our pbs-student GitHub Organization. It's by invitation only but all you have to do is ask Allison!

    Más Menos
    1 h y 21 m
  • PBS 166 of X — jq: Processing Arrays & Dictionaries sans Explosion
    May 26 2024

    In this penultimate jq episode of Programming By Stealth, Bart introduces us to three new ways to process arrays and dictionaries without exploding them first. I know that sounds crazy – we've always exploded our arrays first. He teaches us how to use the `reduce` operator which lets us take an entire array or dictionary and reduce it down to one thing. The `map` function lets us process every element in an array (or or values in a dictionary) and return a new array. Finally, `map_values` lets us apply a function against all of the values in a dictionary (or an array).

    It was a bitter sweet ending to the primary series on `jq` for Bart, but next time he'll do the epilogue where he'll introduce us to some rarely needed but still very useful things you can do with jq.

    You can find Bart's fabulous tutorial shownotes at pbs.bartificer.net.

    Read an unedited, auto-generated transcript with chapter marks: CCATP_2024_05_25

    Más Menos
    58 m
  • PBS 165 of X – jq: Variables
    May 12 2024

    In this installment of Programming By Stealth, Bart explains why jq is uniquely designed not to need variables (most of the time) and then explains how to use them in the few instances when there's no other way. It's really a fairly straightforward lesson as Bart sets up some clear examples and solves them with some simple variables. It's one of my favorite episodes because the problem is clear and the solutions are clear. It really shows off how clean jq is as a language.

    You can find Bart's fabulous tutorial shownotes at pbs.bartificer.net.

    Read an unedited, auto-generated transcript with chapter marks: CCATP_2024_05_11

    Más Menos
    1 h y 15 m
  • PBS 164 of X – jq: Working with Lookup Tables
    Mar 31 2024

    In our previous episode of Programming By Stealth, Bart Busschots taught us how to create lookup tables with jq from JSON data using the `from_entries` command. Just when we have that conquered, this time he teaches us how to do the exact opposite – disassemble lookup tables. I think this was a really fun lesson because taking data apart, reassembling it the way you want and then putting it back together again is a great way to really understand what we're doing with jq. I got much more comfortable as I started to recognize the patterns in what Bart was doing. We also get to play with a new data set, the Have I Been Pwned data gathered by Troy Hunt.

    If you're a data nerd, and really who amongst us isn't, you'll love this episode too.

    You can find Bart's fabulous tutorial shownotes at pbs.bartificer.net.

    Más Menos
    1 h y 18 m
  • PBS 163 of X – jq: Lookups & Records
    Mar 17 2024

    In this episode of Programming By Stealth, Bart Busschots as usual works through his solution to the challenge from last time, and as usual I learn a lot more about how to use jq to solve problems. He takes a bit of a detour to explain a fun email we got from Jill of Kent in which she explained the vast number of headaches you'll run into when trying to alphabetize names no matter the language.

    Then we buckle down and learn about how to make tradeoffs between speed and efficiency of resources, and how jq lookups can help us. Bart also helps us understand _when_ lookups can help us with querying JSON files.

    This episode is more of a lecture, which is fine because he's introducing a new concept and explaining some philosophy. You won't hear me breaking into the conversation very much but it's only because I'm not confused! Don't worry, when we get into the final example you'll hear me get confused! Bart explains it about 3 or 4 times and when you hear why your co-host here was confused, it's kind of ironic.

    You can find Bart's fabulous tutorial shownotes at pbs.bartificer.net.

    Más Menos
    1 h y 35 m
  • PBS 162 of X — jq: Altering Arrays & Dictionaries
    Mar 3 2024

    Bart Busschots is back to teach us how to alter arrays and dictionaries in JSON files using jq. Bart went through his challenge solution on cleaning up the Nobel Prize database and I learned a lot from it. Maybe he'd already taught all of it to us before but I sure wouldn't have been able to put the pieces together.

    For the new content, we learned how to alter arrays. We mastered sorting and reversing, how to add and remove elements, how to deduplicate the values within, and how to flatten even nested arrays. From there we learned how to manipulate dictionaries by adding and removing keys.

    It's a very focused lesson that continues to show how powerful the jq language is. I think my favorite part though was when Bart made an existential philosophy observation when he said "Everything exists with the value of null."

    You can find Bart's fabulous tutorial shownotes at pbs.bartificer.net.

    Más Menos
    1 h y 3 m