[{"data":1,"prerenderedAt":202},["ShallowReactive",2],{"navigation":3,"talk-/talks/esolangs":154,"person-James Cornall":186,"/talks/esolangs-surround":197},[4],{"title":5,"path":6,"stem":7,"children":8,"page":153},"Talks","/talks","talks",[9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149],{"title":10,"path":11,"stem":12},"The Single Responsibility Principle","/talks/single-responsibility-principle","talks/single-responsibility-principle",{"title":14,"path":15,"stem":16},"The Open/Closed Principle","/talks/open-closed-principle","talks/open-closed-principle",{"title":18,"path":19,"stem":20},"Spack","/talks/spack","talks/spack",{"title":22,"path":23,"stem":24},"GitHub Actions","/talks/github-actions","talks/github-actions",{"title":26,"path":27,"stem":28},"Inheritance is Evil","/talks/inheritance-is-evil","talks/inheritance-is-evil",{"title":30,"path":31,"stem":32},"Nuxt","/talks/nuxt","talks/nuxt",{"title":34,"path":35,"stem":36},"LogSeq","/talks/logseq","talks/logseq",{"title":38,"path":39,"stem":40},"Time Complexity","/talks/time-complexity","talks/time-complexity",{"title":42,"path":43,"stem":44},"How to Review a Codebase","/talks/how-to-review-a-codebase","talks/how-to-review-a-codebase",{"title":46,"path":47,"stem":48},"Numba and Bitmasks","/talks/numba-and-bitmasks","talks/numba-and-bitmasks",{"title":50,"path":51,"stem":52},"Mutation Testing","/talks/mutation-testing","talks/mutation-testing",{"title":54,"path":55,"stem":56},"Message Passing Interface","/talks/message-passing-interface","talks/message-passing-interface",{"title":58,"path":59,"stem":60},"P vs NP","/talks/p-vs-np","talks/p-vs-np",{"title":62,"path":63,"stem":64},"Verbose Graphics with Rust and Vulkan","/talks/verbose-graphics-with-rust-and-vulkan","talks/verbose-graphics-with-rust-and-vulkan",{"title":66,"path":67,"stem":68},"Slidev","/talks/slidev","talks/slidev",{"title":70,"path":71,"stem":72},"Nuxt Content By Example","/talks/nuxt-content-by-example","talks/nuxt-content-by-example",{"title":74,"path":75,"stem":76},"Rust MMU Guest Lecture","/talks/rust-mmu-guest-lecture","talks/rust-mmu-guest-lecture",{"title":78,"path":79,"stem":80},"As We May Think - AI for Coding","/talks/ai-for-coding","talks/ai-for-coding",{"title":82,"path":83,"stem":84},"Git in Practice: Techniques for Collaborative Development","/talks/git-in-practice","talks/git-in-practice",{"title":86,"path":87,"stem":88},"A Crash Course in Natural Language Processing","/talks/natural-language-processing","talks/natural-language-processing",{"title":90,"path":91,"stem":92},"Graphs: Ruining the Travelling Salesman's Day Since 1930","/talks/graph-theory","talks/graph-theory",{"title":94,"path":95,"stem":96},"Automating File Creation With Jinja2 Templates in Python","/talks/jinja2-templates-with-python","talks/jinja2-templates-with-python",{"title":98,"path":99,"stem":100},"What the hell is a Monad?","/talks/monads","talks/monads",{"title":102,"path":103,"stem":104},"The Liskov Substitution Principle","/talks/liskov-substitution-principle","talks/liskov-substitution-principle",{"title":106,"path":107,"stem":108},"Everything as a Specification","/talks/everything-as-a-specification","talks/everything-as-a-specification",{"title":110,"path":111,"stem":112},"The Interface Segregation Principle","/talks/interface-segregation-principle","talks/interface-segregation-principle",{"title":114,"path":115,"stem":116},"The Dependency Inversion Principle","/talks/dependency-inversion-principle","talks/dependency-inversion-principle",{"title":118,"path":119,"stem":120},"A Field Guide To Coupling","/talks/a-field-guide-to-coupling","talks/a-field-guide-to-coupling",{"title":122,"path":123,"stem":124},"Why Python is (and isn't) Fast","/talks/why-python-is-slow","talks/why-python-is-slow",{"title":126,"path":127,"stem":128},"Cybersecurity","/talks/cybersecurity","talks/cybersecurity",{"title":130,"path":131,"stem":132},"What Linux Distribution Should You Use?","/talks/what-linux-distribution","talks/what-linux-distribution",{"title":134,"path":135,"stem":136},"😀 🔤Hello World!🔤❗️: The Weird World of Esolangs","/talks/esolangs","talks/esolangs",{"title":138,"path":139,"stem":140},"Networking 101: From your computer to the internet","/talks/networking-101","talks/networking-101",{"title":142,"path":143,"stem":144},"Agent Communication Protocols","/talks/agent-communication-protocols","talks/agent-communication-protocols",{"title":146,"path":147,"stem":148},"Why I hate try/catch, and why you should hate it too!","/talks/hate-try-catch","talks/hate-try-catch",{"title":150,"path":151,"stem":152},"The Beauty of Vim Motions","/talks/beauty-of-vim-motions","talks/beauty-of-vim-motions",false,{"id":155,"title":134,"body":156,"date":175,"description":162,"extension":176,"imgClass":177,"imgUrl":178,"isImgLogo":153,"meta":179,"navigation":181,"path":135,"recordingUrl":182,"seo":183,"speaker":184,"stem":136,"__hash__":185},"talks/talks/esolangs.md",{"type":157,"value":158,"toc":170},"minimark",[159,163,167],[160,161,162],"p",{},"Let's learn about esoteric programming languages together!",[164,165],"pdf",{"url":166},"/talk-assets/esolangs/presentation.pdf",[160,168,169],{},"Ever wondered what a programming language made of emojis would look like? What about a programming language that uses only whitespace characters? In this short, fun talk, we'll be looking at esoteric programming languages, or 'esolangs' for short. Along the way, we'll consider the requirements of a programming language, what we in turn require from them, and finally explore some notable examples.",{"title":171,"searchDepth":172,"depth":173,"links":174},"",1,2,[],["Date","2026-06-10T00:00:00.000Z"],"md",null,"/images/esolangs.png",{"pronouns":180},"he/him",true,"https://stfc365-my.sharepoint.com/personal/ashraf_hussain_stfc_ac_uk/_layouts/15/embed.aspx?UniqueId=7ceb145d-edd5-435b-a4d0-7bcb98f35f96&embed=%7B%22ust%22%3Afalse%2C%22hv%22%3A%22CopyEmbedCode%22%7D&referrer=StreamWebApp&referrerScenario=EmbedDialog.Create",{"title":134,"description":162},"James Cornall","Hg1DTEuzBRM0pPGbHLEb6gO656nQz-puaSCb4iHhvBg",{"id":187,"title":188,"extension":189,"imgUrl":190,"meta":191,"name":184,"roles":192,"stem":195,"__hash__":196},"people/people/james-cornall.yml","Graduate Software Engineer","yml","/images/people/james-cornall.jpg",{},[193,194],"Website Maintainer","Committee Member","people/james-cornall","GBFS-T9EsyNqxPuYjPnyJKyBbNFMKWma075PiMD1afY",[198,200],{"title":130,"path":131,"stem":132,"description":199,"children":-1},"Linux is famous for having a large number of distributions, and so picking which one to use can be very overwhelming for a linux newcomer. My talk will be a high-level overview of linux, and the different \"lineages\" of distributions that exist.",{"title":138,"path":139,"stem":140,"description":201,"children":-1},"An intro to computer networking and a tour of the heart of the DL network.",1782826382209]