{"pageContext":{"group":[{"node":{"fields":{"slug":"/simple-reusable-dialog/"},"excerpt":"A small native Android/Kotlin library that helps build dialogs with however many buttons in however many styles you want.\n","frontmatter":{"title":"Simple Reusable Dialog for Android","date":"April 8, 2020","featuredImage":{"childImageSharp":{"sizes":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAIABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAQF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB0qAgB//EABgQAAIDAAAAAAAAAAAAAAAAAAADEBEi/9oACAEBAAEFAlUYj//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABgQAAIDAAAAAAAAAAAAAAAAAAARARBC/9oACAEBAAY/ApaM1//EABgQAAIDAAAAAAAAAAAAAAAAAAAQIUGh/9oACAEBAAE/IYdSrP/aAAwDAQACAAMAAAAQgA//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAbEAACAgMBAAAAAAAAAAAAAAABEQAxIUGxwf/aAAgBAQABPxBrAFhY+wHbiGypz//Z","aspectRatio":2.4518388791593697,"src":"/static/dialogbig-9fe7d92f6d334d5a7f706b18d7b13c82-6b3a1.jpg","srcSet":"/static/dialogbig-9fe7d92f6d334d5a7f706b18d7b13c82-182ff.jpg 213w,\n/static/dialogbig-9fe7d92f6d334d5a7f706b18d7b13c82-7f5c7.jpg 425w,\n/static/dialogbig-9fe7d92f6d334d5a7f706b18d7b13c82-6b3a1.jpg 850w,\n/static/dialogbig-9fe7d92f6d334d5a7f706b18d7b13c82-45cc1.jpg 1275w,\n/static/dialogbig-9fe7d92f6d334d5a7f706b18d7b13c82-055dc.jpg 1400w","sizes":"(max-width: 850px) 100vw, 850px"}}}}}},{"node":{"fields":{"slug":"/golden-path-document/"},"excerpt":"A golden path document is the best way for new starters to come in strong and help those that come after them\n","frontmatter":{"title":"Setting up a Golden Path Document","date":"February 4, 2020","featuredImage":{"childImageSharp":{"sizes":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAIABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAMEBf/EABYBAQEBAAAAAAAAAAAAAAAAAAIDBP/aAAwDAQACEAMQAAABr6RicAFP/8QAGBABAQADAAAAAAAAAAAAAAAAAQIAAyL/2gAIAQEAAQUCLzV1FiV//8QAFxEBAQEBAAAAAAAAAAAAAAAAAQACEf/aAAgBAwEBPwHK3W//xAAWEQEBAQAAAAAAAAAAAAAAAAABAhD/2gAIAQIBAT8BoM//xAAYEAEAAwEAAAAAAAAAAAAAAAAAAQIRIf/aAAgBAQAGPwJtocf/xAAYEAEBAQEBAAAAAAAAAAAAAAABABExQf/aAAgBAQABPyEBgeg5ZpaX/9oADAMBAAIAAwAAABAMP//EABYRAQEBAAAAAAAAAAAAAAAAAAABYf/aAAgBAwEBPxC5s//EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAgEBPxCZMf/EABoQAQADAAMAAAAAAAAAAAAAAAEAESExQXH/2gAIAQEAAT8Qxgr7O9BvhqM7CWW7P//Z","aspectRatio":2.4518388791593697,"src":"/static/goldenpathlarge-cee690aa1396307abec7f48cd3a95f08-6b3a1.jpg","srcSet":"/static/goldenpathlarge-cee690aa1396307abec7f48cd3a95f08-182ff.jpg 213w,\n/static/goldenpathlarge-cee690aa1396307abec7f48cd3a95f08-7f5c7.jpg 425w,\n/static/goldenpathlarge-cee690aa1396307abec7f48cd3a95f08-6b3a1.jpg 850w,\n/static/goldenpathlarge-cee690aa1396307abec7f48cd3a95f08-45cc1.jpg 1275w,\n/static/goldenpathlarge-cee690aa1396307abec7f48cd3a95f08-055dc.jpg 1400w","sizes":"(max-width: 850px) 100vw, 850px"}}}}}},{"node":{"fields":{"slug":"/open-source-pipeline/"},"excerpt":"A guide to building a simple pipeline from PR to deploy with a scalable solution. (TurtleWare 2.0 pt3)\n","frontmatter":{"title":"Golang automated pipeline","date":"December 9, 2019","featuredImage":{"childImageSharp":{"sizes":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAIABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAduZZQH/xAAWEAEBAQAAAAAAAAAAAAAAAAABABD/2gAIAQEAAQUChc//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAWEAADAAAAAAAAAAAAAAAAAAAAECL/2gAIAQEABj8CKX//xAAZEAACAwEAAAAAAAAAAAAAAAABEQAQIVH/2gAIAQEAAT8hmlAOIuv/2gAMAwEAAgADAAAAEHAf/8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQMBAT8QZ//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EABoQAAMAAwEAAAAAAAAAAAAAAAABETFBgaH/2gAIAQEAAT8QdjkuqKelDmROqo//2Q==","aspectRatio":2.4518388791593697,"src":"/static/goline-62aadd8af557846018fcb4e9333040a7-6b3a1.jpg","srcSet":"/static/goline-62aadd8af557846018fcb4e9333040a7-182ff.jpg 213w,\n/static/goline-62aadd8af557846018fcb4e9333040a7-7f5c7.jpg 425w,\n/static/goline-62aadd8af557846018fcb4e9333040a7-6b3a1.jpg 850w,\n/static/goline-62aadd8af557846018fcb4e9333040a7-45cc1.jpg 1275w,\n/static/goline-62aadd8af557846018fcb4e9333040a7-055dc.jpg 1400w","sizes":"(max-width: 850px) 100vw, 850px"}}}}}},{"node":{"fields":{"slug":"/making-wear-os/"},"excerpt":"Making a wearOS watch face and avoiding some of the faff. (TurtleWare 2.0 pt2)\n","frontmatter":{"title":"Building a WearOS Watch face","date":"November 18, 2019","featuredImage":{"childImageSharp":{"sizes":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAIABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAEE/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAL/2gAMAwEAAhADEAAAAcUKig//xAAYEAADAQEAAAAAAAAAAAAAAAAAARMREv/aAAgBAQABBQKaONJo/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAFBABAAAAAAAAAAAAAAAAAAAAEP/aAAgBAQAGPwJ//8QAGRAAAgMBAAAAAAAAAAAAAAAAAREAECFB/9oACAEBAAE/IZAOEsq//9oADAMBAAIAAwAAABAAD//EABYRAAMAAAAAAAAAAAAAAAAAAAABEf/aAAgBAwEBPxCIiP/EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/EFf/xAAZEAACAwEAAAAAAAAAAAAAAAAAEQEhYVH/2gAIAQEAAT8Q0H8I23TQ/9k=","aspectRatio":2.4518388791593697,"src":"/static/trtlwearbig-040e897d594d2e7aa6b51466324174e4-6b3a1.jpg","srcSet":"/static/trtlwearbig-040e897d594d2e7aa6b51466324174e4-182ff.jpg 213w,\n/static/trtlwearbig-040e897d594d2e7aa6b51466324174e4-7f5c7.jpg 425w,\n/static/trtlwearbig-040e897d594d2e7aa6b51466324174e4-6b3a1.jpg 850w,\n/static/trtlwearbig-040e897d594d2e7aa6b51466324174e4-45cc1.jpg 1275w,\n/static/trtlwearbig-040e897d594d2e7aa6b51466324174e4-055dc.jpg 1400w","sizes":"(max-width: 850px) 100vw, 850px"}}}}}},{"node":{"fields":{"slug":"/making-magic-mirror/"},"excerpt":"A smart mirror build with spotify added in\n","frontmatter":{"title":"Making a Smart Mirror","date":"October 10, 2019","featuredImage":{"childImageSharp":{"sizes":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAIABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAIF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAcGyIB//xAAWEAADAAAAAAAAAAAAAAAAAAAAECH/2gAIAQEAAQUCIv/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABQQAQAAAAAAAAAAAAAAAAAAABD/2gAIAQEABj8Cf//EABgQAAMBAQAAAAAAAAAAAAAAAAABIREx/9oACAEBAAE/IVhSXDLD/9oADAMBAAIAAwAAABADz//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAgEBPxCtf//EABkQAQEBAQEBAAAAAAAAAAAAAAERACExYf/aAAgBAQABPxD0WfMEiEe3KqBLyJv/2Q==","aspectRatio":2.4518388791593697,"src":"/static/mirrormain-eb95d453870867599e5ae2f96e0ab091-6b3a1.jpg","srcSet":"/static/mirrormain-eb95d453870867599e5ae2f96e0ab091-182ff.jpg 213w,\n/static/mirrormain-eb95d453870867599e5ae2f96e0ab091-7f5c7.jpg 425w,\n/static/mirrormain-eb95d453870867599e5ae2f96e0ab091-6b3a1.jpg 850w,\n/static/mirrormain-eb95d453870867599e5ae2f96e0ab091-45cc1.jpg 1275w,\n/static/mirrormain-eb95d453870867599e5ae2f96e0ab091-055dc.jpg 1400w","sizes":"(max-width: 850px) 100vw, 850px"}}}}}},{"node":{"fields":{"slug":"/middlewear-go/"},"excerpt":"How to teach yourself a new language and the advantages of a middleware API (TurtleWare 2.0 pt1)\n","frontmatter":{"title":"Making a middleware API layer in GO","date":"September 21, 2019","featuredImage":{"childImageSharp":{"sizes":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAIABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAIDBP/EABYBAQEBAAAAAAAAAAAAAAAAAAEAAv/aAAwDAQACEAMQAAAB0VgyFn//xAAaEAACAgMAAAAAAAAAAAAAAAABAgAEEhMU/9oACAEBAAEFAnsHHaUPRP/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABsQAAEEAwAAAAAAAAAAAAAAAAEAAhARISJR/9oACAEBAAY/AjRyhs432P/EABsQAAICAwEAAAAAAAAAAAAAAAABESFBUWFx/9oACAEBAAE/IVqrBlqW2zPT0f/aAAwDAQACAAMAAAAQg/8A/8QAFhEAAwAAAAAAAAAAAAAAAAAAARAx/9oACAEDAQE/EBF//8QAFhEAAwAAAAAAAAAAAAAAAAAAARAx/9oACAECAQE/EDV//8QAGhAAAgMBAQAAAAAAAAAAAAAAAREAITFh0f/aAAgBAQABPxC80C0RJTUo6BYGFGKYeZDf3P/Z","aspectRatio":2.4518388791593697,"src":"/static/gopherbig-1a7217f26b87bff249249410e928e717-6b3a1.jpg","srcSet":"/static/gopherbig-1a7217f26b87bff249249410e928e717-182ff.jpg 213w,\n/static/gopherbig-1a7217f26b87bff249249410e928e717-7f5c7.jpg 425w,\n/static/gopherbig-1a7217f26b87bff249249410e928e717-6b3a1.jpg 850w,\n/static/gopherbig-1a7217f26b87bff249249410e928e717-45cc1.jpg 1275w,\n/static/gopherbig-1a7217f26b87bff249249410e928e717-055dc.jpg 1400w","sizes":"(max-width: 850px) 100vw, 850px"}}}}}}],"pathPrefix":"","first":false,"last":false,"index":2,"pageCount":3,"additionalContext":{}}}