├── .gitignore ├── 0-Sample ├── Sample.pdf ├── Sample.pptx ├── license.txt └── readme.md ├── 10-ways-to-write-clean-javascript-code └── 10-ways-to-write-clean-javascript-code-links.md ├── Codemash-Gearhead-200.png ├── Mission-Impossible-Testing-With-Cypress └── intro-to-cypress-talk.md ├── are-you-ready-for-a-senior-role └── README.md ├── asynchronous-javascript--living-on-a-prayer └── README.md ├── better-devops-practices-from-a-global-pandemic └── Codemash 2022 - DevOps and Software Delivery in a Global Pandemic.pdf ├── building-android-for-everyone └── android-for-everyone-talk.md ├── consistent-cloud-environments-with-infrastructure-as-code ├── Consistent cloud environments with Infrastructure as Code.pdf ├── license.txt └── readme.md ├── crafting-an-interpreted-programming-language-in-60-minutes └── readme.md ├── create-table-user-considered-harmful ├── create-table-user-considered-harmful.pdf ├── license.txt └── readme.md ├── dark-ux-patterns └── README.md ├── easy-domain-drive-design └── readme.md ├── freaky-fast-full-stack-with-the-FERN-stack └── README.md ├── introduction-to-functional-programming-it-isnt-so-scary ├── Benefits ├── Functional Made Easy.key ├── FunctionalCodemash │ ├── .bsp │ │ └── sbt.json │ ├── build.sbt │ ├── helloCodeMash.txt │ ├── project │ │ └── build.properties │ └── src │ │ └── main │ │ └── scala │ │ └── Monads.scala ├── Monad ├── Pitfalls ├── README ├── Tenets └── Terminology ├── jakarta-ee-10-is-coming-your-way └── jakarta-ee-10-is-coming-your-way.md ├── let's-play └── README.md ├── life-in-the-fastlane └── README.md ├── making-the-most-of-your-devops-artifacts ├── Making the most of your DevOps Artifacts.pdf ├── license.txt └── readme.md ├── portable-gaming-system └── readme.md ├── protecting-your-api-with-oauth ├── license.txt ├── protecting-your-api-with-oauth.pdf └── readme.md ├── readme.md ├── regex-is-for-dot-star └── README.md ├── stand-back-im-going-to-try-data-science └── readme.md ├── time-traveling-with-azure ├── license.txt ├── readme.md └── samvanhoutte-time-travel.pdf ├── using-svg-to-create-responsive-graphics └── README.md ├── visualizing-code └── readme.md └── where-has-jane-gone ├── Where has Jane Gone_ CodeMash2022.pdf └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /0-Sample/Sample.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TechConf/Codemash2022/8d7ac2b5255d130eb030fea78e8d68084070a824/0-Sample/Sample.pdf -------------------------------------------------------------------------------- /0-Sample/Sample.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TechConf/Codemash2022/8d7ac2b5255d130eb030fea78e8d68084070a824/0-Sample/Sample.pptx -------------------------------------------------------------------------------- /0-Sample/license.txt: -------------------------------------------------------------------------------- 1 | All content in this directory is under a Creative Commons Attribution-ShareAlike 3.0 Unported License ( http://creativecommons.org/licenses/by-sa/3.0/ ) -------------------------------------------------------------------------------- /0-Sample/readme.md: -------------------------------------------------------------------------------- 1 | This is the readme for the sample session 2 | ============ 3 | 4 | Follow me on Twitter at [@jkuemerle](https://twitter.com/jkuemerle) 5 | 6 | 7 | -------------------------------------------------------------------------------- /10-ways-to-write-clean-javascript-code/10-ways-to-write-clean-javascript-code-links.md: -------------------------------------------------------------------------------- 1 | # 10 Ways to Write Clean JavaScript Code 2 | 3 | ### Slides 4 | 5 | Thanks for coming to my talk at CodeMash 2020. 6 | 7 | Check out the slides [here](https://avindrafernando.github.io/codemash2022/) 8 | 9 | ### Links 10 | 11 | Follow me on Twitter [@avindrafernando](https://twitter.com/avindrafernando). 12 | -------------------------------------------------------------------------------- /Codemash-Gearhead-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TechConf/Codemash2022/8d7ac2b5255d130eb030fea78e8d68084070a824/Codemash-Gearhead-200.png -------------------------------------------------------------------------------- /Mission-Impossible-Testing-With-Cypress/intro-to-cypress-talk.md: -------------------------------------------------------------------------------- 1 | ## Mission: Impossible, testing with Cypress 2 | 3 | 🐦 [@BekahHW](https://twitter.com/BekahHW) on Twitter 4 | 5 | 💻 Follow me on [GitHub](https://github.com/BekahHW) 6 | 7 | 💖 Come hang out at [Virtual Coffee Community](https://virtualcoffee.io) 8 | 9 | 10 | 11 | ### Slides 12 | Check out my [my slides](https://www.canva.com/design/DAEyt42qwgQ/xoOMVr92loZIX9AYWPFnwA/view?utm_content=DAEyt42qwgQ&utm_campaign=designshare&utm_medium=link&utm_source=sharebutton) 13 | -------------------------------------------------------------------------------- /are-you-ready-for-a-senior-role/README.md: -------------------------------------------------------------------------------- 1 | # Are You Ready for a Senior Role 2 | 3 | ## Description 4 | Presented by: Jenny Bramble 5 | Time: Thursday, Jan. 13, 10:30 AM - 11:30 AM 6 | 7 | Moving from being a mid level engineer a senior role can feel like a huge leap--especially when your new responsibilities aren't well defined. What does it mean to embrace a senior role? It's not just about experience and years on the job; it's an entire mindset shift. 8 | 9 | Jenny Bramble, Director of Quality Engineering, takes a step back from formal job descriptions to talk about what she looks for in rising senior engineers including how we approach assessing risk, how we work to empower and lead others, and how our impact changes as we mature in our roles. By generalizing the senior mindset, you can apply these ideas to any type of role. 10 | 11 | You'll leave this talk with a clearer picture on what seniors are often asked to do and how we can start building a senior mindset as early as possible in our careers. Most off, you'll be prepared to answer: Am I ready for a senior role? 12 | 13 | ## Speaker Bio 14 | 15 | Jenny ended up in a quality assurance career after coming up through support and devops, cutting her teeth on that interesting role that acts as the 'translator' between customer requests from support and the development team. Her love of support and the human side of problems lets her find a sweet spot between empathy for the user and empathy for my team. She's done testing, support, or human interfacing for most of her career. She finds herself happiest when she's making an impact on other people--whether it's helping find issues in applications, leading scrum, speaking at events, or just grabbing coffee and chatting. 16 | 17 | * [Twitter: @jennydoesthings](https://twitter.com/jennydoesthings) 18 | * [LinkedIn](https://www.linkedin.com/in/jennybramble) 19 | * http://jennydoesthings.com/ 20 | * 21 | ## Materials 22 | 23 | * https://speakerdeck.com/jennydoesthings/are-you-ready-for-a-senior-role 24 | * [Are_You_Ready_for_a_Senior_Role_-_CodeMash_-_Jan_2022.pdf](https://github.com/TechConf/Codemash2022/files/7905304/Are_You_Ready_for_a_Senior_Role_-_CodeMash_-_Jan_2022.pdf) 25 | 26 | -------------------------------------------------------------------------------- /asynchronous-javascript--living-on-a-prayer/README.md: -------------------------------------------------------------------------------- 1 | # Asynchronous JavaScript: Livin' On A Prayer 2 | 3 | ## Author 4 | 5 | Bob Fornal @rfornal 6 | 7 | ## Slide Deck 8 | 9 | [REPOSITORY](https://github.com/bob-fornal/tears) 10 | -------------------------------------------------------------------------------- /better-devops-practices-from-a-global-pandemic/Codemash 2022 - DevOps and Software Delivery in a Global Pandemic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TechConf/Codemash2022/8d7ac2b5255d130eb030fea78e8d68084070a824/better-devops-practices-from-a-global-pandemic/Codemash 2022 - DevOps and Software Delivery in a Global Pandemic.pdf -------------------------------------------------------------------------------- /building-android-for-everyone/android-for-everyone-talk.md: -------------------------------------------------------------------------------- 1 | ## Building Android for Everyone 2 | 3 | 🐣 [@_sierraobryan](https://twitter.com/_sierraobryan) on Twitter 4 | 5 | 💻 Follow me on [GitHub](https://github.com/sierraobryan) 6 | 7 | 💖 Join [Women Who Code Mobile](https://beacons.ai/wwcodemobile) and say hi! 8 | 9 | ### Slides 10 | Check out my [my slides](https://github.com/sierraobryan/slides/blob/main/AndroidforEveryone%20-%20CodeMash.pdf) -------------------------------------------------------------------------------- /consistent-cloud-environments-with-infrastructure-as-code/Consistent cloud environments with Infrastructure as Code.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TechConf/Codemash2022/8d7ac2b5255d130eb030fea78e8d68084070a824/consistent-cloud-environments-with-infrastructure-as-code/Consistent cloud environments with Infrastructure as Code.pdf -------------------------------------------------------------------------------- /consistent-cloud-environments-with-infrastructure-as-code/license.txt: -------------------------------------------------------------------------------- 1 | All content in this directory is under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) ( https://creativecommons.org/licenses/by-nc-sa/4.0/ ) 2 | -------------------------------------------------------------------------------- /consistent-cloud-environments-with-infrastructure-as-code/readme.md: -------------------------------------------------------------------------------- 1 | # Consistent cloud environments with Infrastructure as Code 2 | 3 | ## Author 4 | Matt Sheehan 5 | 6 | Email: matt-sheehan@outlook.com 7 | 8 | ## Abstract 9 | Your SaaS app is doing great, but your cloud environment is growing more and more complex. After years of provisioning additional resources to keep it growing, nobody on the team remembers all of the dependencies anymore, and deployments are hitting snags because the development, testing, and production environments are inconsistent. 10 | 11 | In this talk, you'll learn how to embrace Infrastructure as Code starting with Microsoft Azure. Together we'll create a robust Bicep script that can deploy to multiple environments, keeping them consistent. The days of your infrastructure being undocumented and inconsistent are over with a code-first, version-controlled method of managing cloud resources. 12 | 13 | ## Code 14 | [Code Samples](https://github.com/MattSheehanDev/codemash2022-bicep) 15 | -------------------------------------------------------------------------------- /crafting-an-interpreted-programming-language-in-60-minutes/readme.md: -------------------------------------------------------------------------------- 1 | ## Crafting an interpreted programming language in 60 minutes 2 | 3 | Are you curious how programming languages are designed and implemented? Do you have nightmares about the “magic” that happens when you run/compile your code? Have you ever wanted to create your own programming language from scratch? 4 | 5 | If you answered yes to any of these questions, then this session is for you! 6 | 7 | In this session, you will learn the fundamentals of programming language design and will create and run an interpreted programming language called “Mash”. When this session is over, you will emerge a stronger software engineer and can say you had fun “Mash”-ing code at CodeMash. 8 | 9 | Presented by Granville Schmidt 10 | 11 | Follow Granville: 12 | 13 | - Twitter [@gramidt](https://twitter.com/gramidt) 14 | - GitHub [gramidt](https://github.com/gramidt) 15 | - [LinkedIn](https://www.linkedin.com/in/granvilleschmidt/) 16 | 17 | ### Slides 18 | Check out the [slides](https://drive.google.com/file/d/1Z4QucmVj3crGO1RujPp1wTY74eXGRN3j/view) -------------------------------------------------------------------------------- /create-table-user-considered-harmful/create-table-user-considered-harmful.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TechConf/Codemash2022/8d7ac2b5255d130eb030fea78e8d68084070a824/create-table-user-considered-harmful/create-table-user-considered-harmful.pdf -------------------------------------------------------------------------------- /create-table-user-considered-harmful/license.txt: -------------------------------------------------------------------------------- 1 | All content in this directory is under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) ( https://creativecommons.org/licenses/by-nc-sa/4.0/ ) 2 | -------------------------------------------------------------------------------- /create-table-user-considered-harmful/readme.md: -------------------------------------------------------------------------------- 1 | This is the readme for: 'create table user;' Considered Harmful 2 | ============ 3 | 4 | Follow me on Twitter at [@mooreds](https://twitter.com/mooreds) 5 | 6 | Learn more about FusionAuth: https://fusionauth.io/ 7 | 8 | 9 | -------------------------------------------------------------------------------- /dark-ux-patterns/README.md: -------------------------------------------------------------------------------- 1 | # Dark UX Patterns 2 | 3 | ## Session description: 4 | 5 | Congratulations! You are the 1,000,000th visitor to our website. Click here to redeem your prize! Just provide your date of birth and phone number to get started. 6 | 7 | Learn about Dark UX Patterns, how they work, how they trick you and what companies are the worst offenders. Roach Motel, Privacy Zuckering? Let’s visit Dark Patterns Hall of Shame and see who joined the dark side! 8 | 9 | This talk will break down the most popular dark patterns using real life examples from websites and apps you use every day. If you are a designer, a developer or a product manager, you will learn what to avoid when building your product and how to integrate digital well-being and safety features into your service. If you are an end user, we will teach you how to respond to dark patterns in order to stay safe online, protect your privacy, save your money and keep your sanity. 10 | 11 | ## Materials 12 | - [Slides](https://bit.ly/dark-ux-patterns) 13 | 14 | ## Speaker 15 | Vitaliy Matiyash 16 | - [LinkedIn](www.linkedin.com/in/vitaliymatiyash/) 17 | - [Twitter](twitter.com/VitaliyMatiyash) 18 | - [Github](https://github.com/vitaluha) 19 | - [Personal Website](www.vitaliymatiyash.com) -------------------------------------------------------------------------------- /easy-domain-drive-design/readme.md: -------------------------------------------------------------------------------- 1 | # Easy Domain Driven Design 2 | 3 | Ryan Foote 4 | 5 | @TheRealDenster 6 | 7 | rfoote@daytonfreight.com 8 | 9 | [Sample Project & Slides](https://github.com/footedr/easyddd) 10 | -------------------------------------------------------------------------------- /freaky-fast-full-stack-with-the-FERN-stack/README.md: -------------------------------------------------------------------------------- 1 | # Freaky Fast Full Stack with the FERN Stack 2 | Can you code, build, and deploy a full-stack app with a web, iOS, and Android front-end in four hours? If it's possible, you'll at least have a fighting chance with the FERN stack: Firebase, Expo, and React Native. This fast-paced session will walk you through writing a messaging app front-end in React Native that uses Firebase for authentication, data storage, and API. Then we'll build and deploy the app to web, iOS, and Android in a flash with the help of Expo. Along the way, we'll meet some other tools that are great for fast prototyping of tri-platform apps, including React Navigation and MobX State Tree. This is a great session for anyone looking for shortcuts for their next hackathon project, as well as those interested in learning about any of the aforementioned technologies through realistic hands-on examples. 3 | 4 | # Presentation materials 5 | [Sample project github](https://github.com/llamaluvr/fern-chat-2022) 6 | 7 | [Google Slides](https://docs.google.com/presentation/d/1ppJL2kTDJbmn3Wu0Vn6AfyNN8duplaKttGFcfCkqnlo/edit?usp=sharing) 8 | 9 | *** 10 | 11 | Follow me on Twitter at [@llamaluvr](https://twitter.com/llamaluvr) 12 | -------------------------------------------------------------------------------- /introduction-to-functional-programming-it-isnt-so-scary/Benefits: -------------------------------------------------------------------------------- 1 | BENEFITS 2 | 3 | 4 | Composition 5 | =========================== 6 | def add1(a: Int) = a + 1 7 | def squared(a: Int) = a * a 8 | val firstFive = 1 to 5 9 | 10 | for(x <- firstFive) { 11 | println(squared(add1(x))) 12 | } 13 | 14 | 15 | firstFive.map(add1).map(squared).foreach(println) 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /introduction-to-functional-programming-it-isnt-so-scary/Functional Made Easy.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TechConf/Codemash2022/8d7ac2b5255d130eb030fea78e8d68084070a824/introduction-to-functional-programming-it-isnt-so-scary/Functional Made Easy.key -------------------------------------------------------------------------------- /introduction-to-functional-programming-it-isnt-so-scary/FunctionalCodemash/.bsp/sbt.json: -------------------------------------------------------------------------------- 1 | {"name":"sbt","version":"1.6.1","bspVersion":"2.0.0-M5","languages":["scala"],"argv":["/opt/homebrew/Cellar/openjdk/17.0.1_1/libexec/openjdk.jdk/Contents/Home/bin/java","-Xms100m","-Xmx100m","-classpath","/opt/homebrew/Cellar/sbt/1.6.1/libexec/bin/sbt-launch.jar","-Dsbt.script=/opt/homebrew/Cellar/sbt/1.6.1/libexec/bin/sbt","xsbt.boot.Boot","-bsp"]} -------------------------------------------------------------------------------- /introduction-to-functional-programming-it-isnt-so-scary/FunctionalCodemash/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TechConf/Codemash2022/8d7ac2b5255d130eb030fea78e8d68084070a824/introduction-to-functional-programming-it-isnt-so-scary/FunctionalCodemash/build.sbt -------------------------------------------------------------------------------- /introduction-to-functional-programming-it-isnt-so-scary/FunctionalCodemash/helloCodeMash.txt: -------------------------------------------------------------------------------- 1 | Hi everybody! 2 | I hope you're having a good time! -------------------------------------------------------------------------------- /introduction-to-functional-programming-it-isnt-so-scary/FunctionalCodemash/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version=1.6.1 2 | -------------------------------------------------------------------------------- /introduction-to-functional-programming-it-isnt-so-scary/FunctionalCodemash/src/main/scala/Monads.scala: -------------------------------------------------------------------------------- 1 | class Monads { 2 | val books = List( 3 | Book("Hunger Games", 374, Author("Suzanne", "Collins")), 4 | Book("Harry Potter and the Order of the Phoenix", 766, Author("JK", "Rowling")), 5 | Book("To Kill a Mockingbird", 281, Author("Harper", "Lee")), 6 | Book("Pride and Prejudice", 384, Author("Jane", "Austen")), 7 | Book("The Book Thief", 584, Author("Markus", "Zusak")), 8 | Book("Animal Farm", 112, Author("George", "Orwell")) 9 | ) 10 | } 11 | 12 | case class Author(firstName: String, lastName: String) 13 | case class Book(title: String, numberOfPages: Int, author: Author) 14 | -------------------------------------------------------------------------------- /introduction-to-functional-programming-it-isnt-so-scary/Monad: -------------------------------------------------------------------------------- 1 | MONAD 2 | 3 | 4 | NULL 5 | ================== 6 | val myStr: String = null 7 | myStr.toLowerCase 8 | 9 | 10 | val myStrOption: Option[String] = None 11 | myStrOption.toLowerCase 12 | myStrOption.map(_.toLowerCase) 13 | val myStrOption = Some("ABC") 14 | myStrOption.map(_.toLowerCase) 15 | 16 | 17 | 18 | FUTURE 19 | =================== 20 | //Threads and thread management....too much for talk 21 | 22 | import scala.concurrent.Future 23 | implicit val ec: scala.concurrent.ExecutionContext = scala.concurrent.ExecutionContext.global 24 | val simpleFuture = Future{1} 25 | simpleFuture 26 | val delayedFuture = Future { 27 | Thread.sleep(10000) 28 | println("I am done") 29 | 1 30 | } 31 | println("Do stuff") 32 | 33 | 34 | LIST 35 | ==================== 36 | cd Development/FunctionalCodemash 37 | sbt console 38 | val monads = new Monads 39 | monads.books.foreach(println) 40 | 41 | import scala.collection.mutable 42 | val filteredBooks = mutable.ListBuffer[Book]() 43 | for(book <- monads.books) { 44 | if(book.numberOfPages > 500) 45 | filteredBooks += book 46 | } 47 | for(book <- filteredBooks) println(book) 48 | 49 | monads.books.filter(book => book.numberOfPages > 500).foreach(println) 50 | 51 | 52 | BONUS FUNCTIONS 53 | ==================== 54 | (1 to 10).reduce(_+_) 55 | monads.books.foldLeft(0)((totalPages, book) => totalPages + book.numberOfPages) 56 | monads.books.map(_.author) 57 | 58 | -------------------------------------------------------------------------------- /introduction-to-functional-programming-it-isnt-so-scary/Pitfalls: -------------------------------------------------------------------------------- 1 | PITFALLS 2 | 3 | 4 | Increased GC 5 | ====================== 6 | val ten = 1 to 10 7 | ten.sliding(2).flatMap{ case IndexedSeq(a, b) => 8 | Vector(a, b) 9 | }.toList 10 | 11 | import scala.collection.mutable 12 | val output = mutable.ListBuffer[Int]() 13 | ten.sliding(2).foreach{ case IndexedSeq(a, b) => 14 | output += a 15 | output += b 16 | } 17 | output 18 | 19 | //Keep mutability inside of method 20 | //Don't prematurely optimize -------------------------------------------------------------------------------- /introduction-to-functional-programming-it-isnt-so-scary/README: -------------------------------------------------------------------------------- 1 | README 2 | ===== 3 | 4 | This is for the talk [Introduction to Functional Programming: It Isn’t So Scary](https://www.codemash.org/session-details/?id=284399) by Justin Pihony 5 | 6 | There are breaks in the slides where code exhibits the points. You can see the code in the different text files (named appropriately), and some require the extra project for background setup. -------------------------------------------------------------------------------- /introduction-to-functional-programming-it-isnt-so-scary/Tenets: -------------------------------------------------------------------------------- 1 | TENETS 2 | 3 | 4 | First Class Functions 5 | ====================== 6 | val myAddingFunction = (a: Int, b: Int) => a + b 7 | myAddingFunction(1, 2) 8 | 9 | 10 | Higher Order Functions 11 | ====================== 12 | def doStuffWithThisThing[T,S](stuff: T => S, thing: T) = { 13 | stuff(thing) 14 | } 15 | val intToStringConverter= (a: Int) => a.toString() 16 | doStuffWithThisThing[Int, String](intToStringConverter, myAddingFunction(1, 2)) 17 | 18 | 19 | 20 | Referential Transparency 21 | ======================= 22 | def add(a:Int, b: Int) = a + b 23 | val output = add(1, add(2, 3)) 24 | val sameOutput = add(1, 5) 25 | 26 | 27 | Discliplined State 28 | =================== 29 | var counter = 0 //Could be a mutable reference passed into f(n) 30 | def addWithoutReferentialTransparency(a: Int, b: Int) = { 31 | val addedValue = a + b + counter 32 | counter = counter + 1 33 | addedValue 34 | } 35 | addWithoutReferentialTransparency(1, 2) 36 | addWithoutReferentialTransparency(1, 2) -------------------------------------------------------------------------------- /introduction-to-functional-programming-it-isnt-so-scary/Terminology: -------------------------------------------------------------------------------- 1 | TERMINOLOGY 2 | 3 | 4 | ADT 5 | ================== 6 | monads.books.foreach{ 7 | case Book(title, pageCount, _) if pageCount > 500 => println(s"$title is a big book!") 8 | case Book(title, _, _) => println(s"$title is not so big.") 9 | } 10 | 11 | 12 | 13 | PARTIAL FUNCTION 14 | =================== 15 | monads.books.collect{ 16 | case Book(_, _, Author("Jane", _)) => "Jane" 17 | } 18 | 19 | monads.books.map{ 20 | case Book(_, _, Author("Jane", _)) => "Jane" 21 | } 22 | 23 | 24 | CURRYING 25 | =================== 26 | def add(a: Int, b: Int) = a + b 27 | add(3,4) 28 | def addWithCurrying(a: Int) = (b: Int) => a + b 29 | val curriedAdd = addWithCurrying(3) 30 | curriedAdd(4) 31 | addWithCurrying(3)(4) 32 | 33 | //Benefit = wrapper code 34 | import java.io._ 35 | def using[T](reader: BufferedReader)(userFunction: BufferedReader => T) = 36 | try{ 37 | userFunction(reader) 38 | } finally { 39 | reader.close() 40 | } 41 | 42 | using(new BufferedReader(new FileReader("helloCodeMash.txt"))){reader => 43 | var currentLine = reader.readLine 44 | while(currentLine != null){ 45 | println(currentLine) 46 | currentLine = reader.readLine 47 | } 48 | } -------------------------------------------------------------------------------- /jakarta-ee-10-is-coming-your-way/jakarta-ee-10-is-coming-your-way.md: -------------------------------------------------------------------------------- 1 | # Jakarta EE 10 is Coming Your Way! 2 | 3 | ## Slides 4 | 5 | https://speakerdeck.com/ivargrimstad/jakarta-ee-10-is-coming-your-way 6 | 7 | ## Demo Code 8 | 9 | https://github.com/ivargrimstad/jakartaee-duke 10 | 11 | ## Speaker 12 | 13 | Ivar Grimstad 14 | *Jakarta EE Developer Advocate, Eclipse Foundation* 15 | 16 | https://www.linkedin.com/in/ivargrimstad/ 17 | https://twitter.com/ivar_grimstad 18 | https://agilejava.eu 19 | 20 | ![Ivar Grimstad](http://www.agilejava.eu/wp-content/uploads/2020/05/ivar_jc_512_512.png) 21 | -------------------------------------------------------------------------------- /let's-play/README.md: -------------------------------------------------------------------------------- 1 | # Let's Play! 2 | This is another instance of an improv games workshop run by Remy Porter and Jean Lange. At CodeMash 2022 (and also 2020!), we ran it as a 4-hour precompiler. We have also run it many other times in many other contexts and timeframes. 3 | 4 | ## Session description: 5 | Have you become a feral person who doesn’t remember how to interact with other humans? Let’s exercise those interaction muscles by playing some improv games! You will practice cheerfully celebrating failure, figuring out when it’s your turn to talk or listen, and negotiating uncertainty - and these skills build up to real world benefits like understanding the people around you better, being a good teammate, and embracing failure as part of progress. 6 | 7 | No experience is required, just readiness to jump in. You’ll meet people, learn activities that you can take back to your teams/families/friends, practice and reflect on a variety of skills, and walk out full of joy and energy. Come play with us! 8 | 9 | ## Presenters 10 | * Jean Lange 11 | * [@jean_lange](http://twitter.com/jean_lange), doesn't use Twitter. 12 | * jean.f.lange@gmail.com 13 | * Remy Porter 14 | * [@RemyPorter](http://twitter.com/RemyPorter). 15 | * remy.porter@gmail.com 16 | 17 | ## Materials 18 | * [Slides](https://docs.google.com/presentation/d/1wnS3gzi9z1eHrBmiOHzGM70rzQ10FtTHoVnEZDwgyKs/edit?usp=sharing) 19 | * [Games to play notes/retrospective](https://docs.google.com/document/d/1P8ZqqhKOpXVu5iAYgAxn-rqQqa3qNkyY1cvwx0hkNjA/edit#) 20 | -------------------------------------------------------------------------------- /life-in-the-fastlane/README.md: -------------------------------------------------------------------------------- 1 | # Life in the Fastlane: App Deployments That Don't Make You Lose Your Mind 2 | Imagine deploying your shiny new app to the Apple App Store- creating certs, uploading your app to Testflight, adding testers, taking screenshots on four different devices, filling in dozens of fields on the store description, clicking through EULA’s, and resubmitting five times because the reviewer didn’t like the drop shadow on your home screen icon. Now imagine doing that 70 times for each update because you’ve just inherited 70 white label apps. With examples from the real-life tribulations of a developer faced with this “automate-or-die” scenario, learn how to use Fastlane to build scripts that do all that annoying App Store Connect and Google Play Console stuff for you. Highly-recommended for mobile developers suffering from app store fatigue who have never used Fastlane, or who want to go beyond the one or two Fastlane scripts they copied from Stack Overflow- whether they support one app or a thousand. 3 | 4 | # Presentation materials 5 | [Google Slides](https://docs.google.com/presentation/d/1Lx-5tmIgzKXSKK-GcbAB9w2PR6-RQEyOEA6oRiKwVc0/edit?usp=sharing) 6 | 7 | *** 8 | 9 | Follow me on Twitter at [@llamaluvr](https://twitter.com/llamaluvr) 10 | -------------------------------------------------------------------------------- /making-the-most-of-your-devops-artifacts/Making the most of your DevOps Artifacts.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TechConf/Codemash2022/8d7ac2b5255d130eb030fea78e8d68084070a824/making-the-most-of-your-devops-artifacts/Making the most of your DevOps Artifacts.pdf -------------------------------------------------------------------------------- /making-the-most-of-your-devops-artifacts/license.txt: -------------------------------------------------------------------------------- 1 | All content in this directory is under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) ( https://creativecommons.org/licenses/by-nc-sa/4.0/ ) 2 | -------------------------------------------------------------------------------- /making-the-most-of-your-devops-artifacts/readme.md: -------------------------------------------------------------------------------- 1 | # Making the most of your DevOps Artifacts 2 | 3 | ## Author 4 | Matt Sheehan 5 | 6 | Email: matt-sheehan@outlook.com 7 | 8 | ## Abstract 9 | With greater emphasis placed on automating the creation of predictable software bundles, you may be asking what are DevOps artifacts and what can you do with them? Well, it turns out you can do many things with them. Artifacts can be the compiled output for your app deployment, or a Nuget or NPM package ready to be pushed to a private (or public) registry; sometimes they can just be a place for temporary storage before becoming the input of another job in the pipeline. 10 | 11 | Understanding your pipeline artifacts will help your CI builds become more predictable and possibly shrink the time it takes your pipelines to complete. Using Azure Pipelines as our CI tool, you'll learn the different uses for build artifacts, where they are stored, how they integrate with your deployments and unit tests, and how to compose your pipeline to make the best use of intermediate artifacts. 12 | 13 | ## Code 14 | [Code Samples](https://github.com/MattSheehanDev/codemash2022-artifacts) 15 | -------------------------------------------------------------------------------- /portable-gaming-system/readme.md: -------------------------------------------------------------------------------- 1 | # Build Your Own Portable Gaming System 2 | 3 | Presenter: Paul Pagel 4 | 5 | [Workshop Repo](https://github.com/DigiTorus86/Teensy-R4ge-Pro) 6 | 7 | Includes: 8 | * source code 9 | * slide decks with build instructions 10 | * bill of materials 11 | * gerber files -------------------------------------------------------------------------------- /protecting-your-api-with-oauth/license.txt: -------------------------------------------------------------------------------- 1 | All content in this directory is under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) ( https://creativecommons.org/licenses/by-nc-sa/4.0/ ) 2 | -------------------------------------------------------------------------------- /protecting-your-api-with-oauth/protecting-your-api-with-oauth.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TechConf/Codemash2022/8d7ac2b5255d130eb030fea78e8d68084070a824/protecting-your-api-with-oauth/protecting-your-api-with-oauth.pdf -------------------------------------------------------------------------------- /protecting-your-api-with-oauth/readme.md: -------------------------------------------------------------------------------- 1 | This is the readme for: Protecting Your API with OAuth 2 | ============ 3 | 4 | Follow me on Twitter at [@mooreds](https://twitter.com/mooreds) 5 | 6 | Learn more about FusionAuth: https://fusionauth.io/ 7 | 8 | 9 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | CodeMash 2022 ![CodeMash Logo](Codemash-Gearhead-200.png) 2 | ============ 3 | 4 | CodeMash 2022 session decks, sample code, links and other stuff. 5 | 6 | Speakers: please feel free to send me pull requests with any of your content that you want to share with the CodeMash attendees. This way we have a single place for attendees to go and get content. 7 | 8 | Organization: fork this repository and put your session materials, links or anything else in a subdirectory named with the same name as your session. Then send a pull request and I will merge it in. See the [sample](0-Sample) for an example of how it could work. 9 | 10 | --- 11 | 12 | *Note that this is a volunteer effort and is not representing CodeMash in any official way. Thanks! -------------------------------------------------------------------------------- /regex-is-for-dot-star/README.md: -------------------------------------------------------------------------------- 1 | # Regex is for .* 2 | This is another instance of an introductory Regular Expressions talk given by Jean Lange. You can find a [recording of a past version](https://www.twitch.tv/videos/1087718582) on Academy Pittsburgh's Twitch channel. 3 | 4 | ## Session description: 5 | Regular expressions are a powerful tool available to coders in many programming languages - but they’re so cryptic and hard to read/work with! Let’s explore what they can do for you and where you might want to use them. Then we’ll dive into regex101.com and the regex crossword for practical examples of how to use, test, and learn more about regular expressions. 6 | 7 | ## Presenters 8 | * Jean Lange 9 | * [@jean_lange](http://twitter.com/jean_lange), doesn't use Twitter. 10 | * jean.f.lange@gmail.com 11 | 12 | ## Materials 13 | * [Slides](https://docs.google.com/presentation/d/1AYTdQwaBs5n70fDIfCHZIR92hqk2rx9Ui6-8giesReQ/edit?usp=sharing) 14 | * [Recording of a past version](https://www.twitch.tv/videos/1087718582) 15 | * [regex101.com](https://regex101.com/) 16 | * [regexcrossword.com](https://regexcrossword.com/) 17 | -------------------------------------------------------------------------------- /stand-back-im-going-to-try-data-science/readme.md: -------------------------------------------------------------------------------- 1 | # "Stand Back; I'm Going to try Data Science" Resources 2 | 3 | By Matt Eland ([Twitter](https://twitter.com/integerman) / [LinkedIn](https://linkedin.com/in/matteland) / [YouTube](https://MattOnDataScience.com)) 4 | 5 | Up-to-date talk slides, resources, and links can be found at [https://MattEland.dev/TryDS](https://MattEland.dev/TryDS) 6 | 7 | I'm happy to hear from you if you have any questions. -------------------------------------------------------------------------------- /time-traveling-with-azure/license.txt: -------------------------------------------------------------------------------- 1 | All content in this directory is under a Creative Commons Attribution-ShareAlike 3.0 Unported License ( http://creativecommons.org/licenses/by-sa/3.0/ ) -------------------------------------------------------------------------------- /time-traveling-with-azure/readme.md: -------------------------------------------------------------------------------- 1 | # Time traveling in the cloud. 2 | 3 | ## Process time series data in Microsoft Azure 4 | 5 | Follow me on Twitter at [@samvanhoutte](https://twitter.com/samvanhoutte) 6 | 7 | All code and samples are in my [GitHub Repo](https://github.com/SamVanhoutte/azure-time-travel) 8 | 9 | [Download Slides](samvanhoutte-time-travel.pdf) 10 | 11 | Agenda & topics: 12 | 13 | - [X] Time series characteristics 14 | - [X] Azure Time Series Insights (TSI) 15 | - [X] Azure Data Explorer (ADX) 16 | - [ ] LSTM Deep Learning 17 | - [X] Azure Machine Learning Service 18 | - [X] Azure Stream Analytics 19 | - [ ] Azure Event Grid integration 20 | 21 | During the session at Codemash, the checked Items were covered. -------------------------------------------------------------------------------- /time-traveling-with-azure/samvanhoutte-time-travel.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TechConf/Codemash2022/8d7ac2b5255d130eb030fea78e8d68084070a824/time-traveling-with-azure/samvanhoutte-time-travel.pdf -------------------------------------------------------------------------------- /using-svg-to-create-responsive-graphics/README.md: -------------------------------------------------------------------------------- 1 | # Using SVG to create responsive, interactive and animatable graphics 2 | 3 | A message is often best stated visually. Traditional methods of designing graphics, diagrams, and charts produce something that retains its aspect ratio, regardless of the size it is viewed. This may work fine for print and slide media, but fails to take advantage of viewing digital content on devices of various screen sizes and resolutions, especially when text associated with the graphic is to be readable. On small devices, while the graphical element may retain its intent (e.g. two overlapping circles), associated text may be shrunk to unreadable point size. This session will describe how to use SVG (Scalable Vector Graphics) as a vector graphic format not just to render the graphic as it was originally designed, but transform itself using technologies such as CSS transforms and javascript to retain its readability on smaller layouts. Methods for exporting vector art from designer software such as Illustrator will be discussed. Demonstrations of mixing SVG and HTML into the same graphic using responsive techniques will be given. Integrating SVG elements with reactive frameworks to enhance interactivity and animation of the graphic will be covered. At the conclusion of the session, participants will have a better understanding of how to use SVG as a high quality format for rendering graphics on the web for a variety of screen sizes, retaining readability without compromising the impact of the graphic. 4 | 5 | ## Presenters 6 | * Ben Hoffmann 7 | * [LinkedIn](https://www.linkedin.com/in/benhoffmann/) 8 | 9 | ## Materials 10 | * [Slides and code](https://github.com/benrunInBay/svg) 11 | -------------------------------------------------------------------------------- /visualizing-code/readme.md: -------------------------------------------------------------------------------- 1 | # "Visualizing Code" Resources 2 | 3 | By Matt Eland ([Twitter](https://twitter.com/integerman) / [LinkedIn](https://linkedin.com/in/matteland) / [YouTube](https://MattOnDataScience.com)) 4 | 5 | Up-to-date talk slides, resources, code and links can be found at [https://MattEland.dev/VisualizingCode](https://MattEland.dev/VisualizingCode) 6 | 7 | I'm happy to hear from you if you have any questions. -------------------------------------------------------------------------------- /where-has-jane-gone/Where has Jane Gone_ CodeMash2022.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TechConf/Codemash2022/8d7ac2b5255d130eb030fea78e8d68084070a824/where-has-jane-gone/Where has Jane Gone_ CodeMash2022.pdf -------------------------------------------------------------------------------- /where-has-jane-gone/readme.md: -------------------------------------------------------------------------------- 1 | # CodeMash2022 2 | 3 | ## Where Jane has Gone? 4 | 5 | ## Presenter 6 | * Karen M Linden 7 | * linkedin https://www.linkedin.com/in/karenmlinden/ 8 | * Email karen.m.linden@gmail.com 9 | 10 | ## Materials 11 | * Slides 12 | 13 | --------------------------------------------------------------------------------