From 035a76ca1d12537a5a4466e40d635ee12aeb4583 Mon Sep 17 00:00:00 2001 From: "dbitter@anwb.nl" Date: Thu, 29 Aug 2024 13:05:04 +0200 Subject: [PATCH] feat(events): add events connection meetup.com --- .github/workflows/main.yaml | 2 + components/EventCalendar.js | 47 ++ components/EventCarousel.js | 53 +++ data/events.json | 862 ++++++++++++++++++++++++++++++++++++ layouts/PostLayout.js | 21 +- layouts/SerieLayout.js | 25 +- lib/events.js | 21 + package.json | 3 + pages/articles/[...slug].js | 11 +- pages/index.js | 14 +- pages/series/[...slug].js | 8 +- scripts/events.js | 120 +++++ yarn.lock | 36 +- 13 files changed, 1213 insertions(+), 10 deletions(-) create mode 100644 components/EventCalendar.js create mode 100644 components/EventCarousel.js create mode 100644 data/events.json create mode 100644 lib/events.js create mode 100644 scripts/events.js diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index df0f7737..1fd8eac5 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -34,6 +34,8 @@ jobs: run: node scripts/youtube.js - name: Update Jobs data run: node scripts/jobs.js + - name: Update Events data + run: node scripts/events.js - name: Commit and Push updated json files to the repository uses: EndBug/add-and-commit@v9 with: diff --git a/components/EventCalendar.js b/components/EventCalendar.js new file mode 100644 index 00000000..e23e1ac3 --- /dev/null +++ b/components/EventCalendar.js @@ -0,0 +1,47 @@ +import Link from '@/components/Link' +import { isFutureEvent } from '@/lib/events' + +const EventCalendar = ({ events }) => { + return ( + + ) +} + +export default EventCalendar diff --git a/components/EventCarousel.js b/components/EventCarousel.js new file mode 100644 index 00000000..62c84d2b --- /dev/null +++ b/components/EventCarousel.js @@ -0,0 +1,53 @@ +import Link from '@/components/Link' +import { isFutureEvent } from '@/lib/events' + +const EventCarousel = ({ events }) => { + return ( + + ) +} + +export default EventCarousel diff --git a/data/events.json b/data/events.json new file mode 100644 index 00000000..5475438e --- /dev/null +++ b/data/events.json @@ -0,0 +1,862 @@ +{ + "events": [ + { + "title": "Mastering Event-Driven Design", + "description": "PLEASE RSVP SO THAT WE KNOW HOW MUCH FOOD WE WILL NEED Are you and your team struggling with event-driven microservices? Join us for a meetup with Mehmet Akif Tütüncü, a senior software engineer, who has given multiple great talks so far and Allard Buijze founder of CTO and founder of AxonIQ, who built the fundaments of the Axon Framework. RSVP for an evening of learning, delicious food, and the fusion of creativity and tech! 🚀 18:00 – 🚪 Doors open to the public 18:15 – 🍕 Let’s eat 19:00 – 📢 Getting Your Axe On Event Sourcing with Axon Framework 20:00 – 🍹 Small break 20:15 – 📢 Event-Driven Microservices - Beyond the Fairy Tale 21:00 – 🙋‍♀️ drinks 22:00 – 🍻 See you next time? Details: Getting Your Axe On - Event Sourcing with Axon Framework In this presentation, we will explore the basics of event-driven architecture using Axon Framework. We'll start by explaining key concepts such as Event Sourcing and Command Query Responsibility Segregation (CQRS), and how they can improve the scalability and maintainability of modern applications. You will learn what Axon Framework is, how it simplifies implementing these patterns, and see hands-on examples of setting up a project with Axon Framework and Spring Boot. Whether you are new to these concepts or looking to understand them more, this session will provide practical insights and tools to help you build resilient and efficient applications. Event-Driven Microservices - Beyond the Fairy Tale Our applications need to be faster, better, bigger, smarter, and more enjoyable to meet our demanding end-users needs. In recent years, the way we build, run, and operate our software has changed significantly. We use scalable platforms to deploy and manage our applications. Instead of big monolithic deployment applications, we now deploy small, functionally consistent components as microservices. Problem. Solved. Right? Unfortunately, for most of us, microservices, and especially their event-driven variants, do not deliver on the beautiful, fairy-tale-like promises that surround them.In this session, Allard will share a different take on microservices. We will see that not much has changed in how we build software, which is why so many “microservices projects” fail nowadays. What lessons can we learn from concepts like DDD, CQRS, and Event Sourcing to help manage the complexity of our systems? He will also show how message-driven communication allows us to focus on finding the boundaries of functionally cohesive components, which we can evolve into microservices should the need arise.", + "venue": { + "name": "iO | Digital agency | Utrecht", + "address": "Boven Clarenburg 2", + "postalCode": "3511 JJ", + "city": "Utrecht", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/303071752", + "dateTime": "2024-09-19T18:00+02:00", + "endTime": "2024-09-19T20:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "The Leadership Meetup", + "description": "PLEASE RSVP SO THAT WE KNOW HOW MUCH FOOD WE WILL NEED What distinguishes a software developer from a software team lead? As a team leader, you are responsible for people, their performance, and motivation. Your output is the output of your team. Whether you are a front-end or back-end developer, or any other discipline that wants to grow into the role of a tech lead, RSVP for an evening of learning, delicious food, and the fusion of leadership and tech! 🚀 18:00 – 🚪 Doors open to the public 18:15 – 🍕 Let’s eat 19:00 – 📢 First round of Talks 19:45 – 🍹 Small break 20:00 – 📢 Second round of Talks 20:45 – 🙋‍♀️ drinks 21:00 – 🍻 See you next time? First Round of Talks: Pixel Perfect and Perfectly Insane: About That Time My Brain Just Switched Off Remy Parzinski, Design System Lead at Logius Learn from Remy how you can care for yourself because we all need to. Second Round of Talks: Becoming a LeadDev at your client; How to Fail at Large (or How to Do Slightly Better) Arno Koehler Engineering Manager @ iO What are the things that will help you become a lead engineer? Building Team Culture (Tales of trust and positivity) Michel Blankenstein Engineering Manager @ iO & Head of Technology @ Zorggenoot How do you create a culture at your company or team? RSVP now to secure your spot, and let's explore the fascinating world of design systems together!", + "venue": { + "name": "iO | Digital Agency | Campus Amsterdam", + "address": "Spaklerweg 52", + "postalCode": "1114 AE", + "city": "Amsterdam", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-amsterdam/events/301460473", + "dateTime": "2024-06-26T18:00+02:00", + "endTime": "2024-06-26T21:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Amsterdam" + }, + { + "title": "Coven of Wisdom - Herentals - Spring `24 edition", + "description": "Join us for an exciting web technology meetup where you’ll get a chance to gain valuable insights and knowledge about the latest trends in the field. Don’t miss out on this opportunity to expand your knowledge, network with fellow developers, and discover new and exciting possibilities. And the best part? Food and drinks are on us! Johan Vervloet - Event sourced wiezen; an introduction to Event Sourcing and CQRS Join me on a journey into the world of CQRS and Event Sourcing! Together we will unravel the misteries behind these powerful concepts, by exploring a real-life application: a score app for the 'Wiezen' card game.Using examples straight from the card table, we will delve into the depths of event sourcing and CQRS, comparing them to more traditional approaches that rely on an ORM.We will uncover the signs in your own database that indicate where event sourcing can bring added value. I will also provide you with some tips and pointers, should you decide to embark on your own event sourcing adventure. Filip Van Reeth - WordPress API; \"Are you talking to me?\" What if the WordPress API could be one of your best friends? What kind of light-hearted or profound requests would it share with you? In this talk, I would like to introduce you to it and ensure that you become best friends so that together you can have many more pleasant conversations (calls). Wanna be friends? Please note that the event or talks will be conducted in Dutch. Want to give a talk? Send us your proposal at meetup.herentals@iodigital.com 18:00 - 19:00: Food/Drinks/Networking 19:00 - 21:00: Talks 21:00 - 22:00: Networking Thursday 30th of May, 18h00 - 22h00 CET iO Campus Herentals, Zavelheide 15, Herentals", + "venue": { + "name": "Zavelheide 15", + "address": "Zavelheide 15", + "postalCode": "2200", + "city": "Herentals", + "country": "be" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-herentals/events/299483634", + "dateTime": "2024-05-30T18:00+02:00", + "endTime": "2024-05-30T22:00+02:00", + "timezone": "Europe/Brussels", + "groupName": "Coven of Wisdom Herentals" + }, + { + "title": "The Vue-niverse meetup", + "description": "PLEASE RSVP SO THAT WE KNOW HOW MUCH FOOD WE WILL NEED NOTE: We are INSIDE Hoog Catharijne shopping center, at the door it reads: \"De Utrecht\" Dive into the Dynamic World of Vue.js at Our Meetup! Immerse yourself in enlightening discussions with Vue.js luminaries, featuring talks by industry experts: Anthony Fu: Creator of Vitest, Slidev, and others Matias Capeletto (patak): Vite Core Team Member Daniel Roe: Lead Nuxt Core Team There will be a Panel Q&A where you will have the opportunity to ask them everything you want to know about Vue or their journeys. Program 17:45 – 🚪Doors open to the public 17:50 – 🍕 Let’s eat 18:30 – 📢 Writing Malleable (User First) Apps: Live Coding an app that is Recoded by Users with AI at Runtime 19:10 – 🍹 Small break 19:15 – 📢 Anthony’s Road to Open Source: The Progressive Path 19:55 – 🍹 Small break 20:00 – 📢 Vite: Stories of collaboration 20:40 – 🙋‍♀️ Panel Q&A 21:10 – 🍻 Drinks 22:30 – 👋 See you next time? Be a part of the Vue.js community, elevate your skills, and enjoy a delightful dinner with pizza! Don’t miss out on this opportunity to learn, share, and connect with the best in the Vue-niverse. RSVP now to secure your spot, and let’s explore the fascinating world of Vue with the best gurus and delicious food! 🚀 First time at our campus? Check the pictures for a route instruction.", + "venue": { + "name": "iO | Digital agency | Utrecht", + "address": "Boven Clarenburg 2", + "postalCode": "3511 JJ", + "city": "Utrecht", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/298711260", + "dateTime": "2024-02-27T18:00+01:00", + "endTime": "2024-02-27T21:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "Coven of Wisdom - HER - February `24 edition", + "description": "Join us for an exciting front-end technology meetup where you’ll get a chance to gain valuable insights and knowledge about the latest trends in the field. Don’t miss out on this opportunity to expand your knowledge, network with fellow developers, and discover new and exciting possibilities. And the best part? Food and drinks are on us! Brecht De Ruyte - The future of UI is \"open\" When dealing with more advanced UI elements there are a lot of things that go wrong. They impact performance, accessibility and have the tendency to create frustrations along the way. In this talk, I will be introducing you to the W3C community around Open UI, while also taking a little detour with the Anchoring API. By combining these future specs we'll take a peek at the future of styling custom UI by only using HTML and CSS, giving you less frustration, performance boosts and basic accessibility out of the box. As a bonus, we'll also have a little look at selectlist and exclusive accordions. Tim Dujardin - Why semantics matter Are you developing forms without labels? Is the < div > element your go-to element to provide 'structure' in your website or web application? Do you make use of < a href=\"#\" > to create actionable elements? In this talk, I will guide you through accessible design, development and testing by exposing common misconceptions and how to handle them correctly in the future. The goal is to create awareness on how impactful our design and development decisions can be on the target audience. Want to give a talk? Send us your proposal at meetup.herentals@iodigital.com 18:00 - 19:00: Food/Drinks/Networking 19:00 - 21:00: Talks Thursday 8th of February, 18h00 - 21h00 CET iO Campus Herentals, Zavelheide 15, Herentals", + "venue": null, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-herentals/events/296673932", + "dateTime": "2024-02-08T18:00+01:00", + "endTime": "2024-02-08T21:00+01:00", + "timezone": "Europe/Brussels", + "groupName": "Coven of Wisdom Herentals" + }, + { + "title": "Kadena Unleashed: A Beginner's Journey into Next-Generation Blockchain Tech.", + "description": "PLEASE RSVP SO THAT WE KNOW HOW MUCH FOOD WE WILL NEED Dive into the world of Kadena, a groundbreaking blockchain platform, in this enlightening meetup designed for newcomers. Explore the essentials of Kadena's unique technology, including its scalable layer-1 blockchain, the Pact smart contract language, and its revolutionary approach to solving the blockchain trilemma. Whether you're a budding developer, a crypto enthusiast, or just blockchain-curious, this meetup will equip you with a solid foundation in Kadena and inspire you to engage with its innovative ecosystem. 18:00 – 🚪 Doors open to the public 18:15 – 🍕 Let’s eat 19:00 – 📢 Introduction and First Talk 20:00 – 🍹 Small break 20:15 – 📢 Second Talk 21:00 – 🍻 drinks Introduction and First Talk Randy Daal: Introducing Kadena in 10 minutes. Andy Tang: Breaking Chains: “Passwordless Innovation for Blockchain Security and User Experience?” Join us as we explore the future of user authentication with passwordless innovation on the blockchain. Discover how this groundbreaking approach combines enhanced security and user-friendly experiences. Witness a captivating demo showcasing seamless authentication without the need for passwords. Embrace the power of blockchain to revolutionize the way we protect and authenticate sensitive information. Second Talk Salama Ashoush: \"Building Your First DApp: A Practical Guide to Pact and KadenaJS\" This talk is crafted for aspiring developers and blockchain enthusiasts eager to learn about DApp creation. Gain valuable insights into the fundamentals of Pact, Kadena's smart contract language, and discover how KadenaJS simplifies interacting with the Kadena blockchain. From conceptualizing your DApp idea to coding and deployment, this talk provides a step-by-step guide to bring your blockchain vision to life in the thriving Kadena ecosystem.", + "venue": { + "name": "iO | Digital Agency | Campus Amsterdam", + "address": "Spaklerweg 52", + "postalCode": "1114 AE", + "city": "Amsterdam", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-amsterdam/events/298503141", + "dateTime": "2024-01-31T18:00+01:00", + "endTime": "2024-01-31T21:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Amsterdam" + }, + { + "title": "Moving from Java to Kotlin - is it worth it?", + "description": "PLEASE RSVP SO THAT WE KNOW HOW MUCH FOOD WE WILL NEED Join us for a Kotlin-focused meetup featuring two expert talks. Urs Peter, JetBrains certified Kotlin trainer, will discuss the transition from Java to Kotlin, presenting its perks and pitfalls in his talk “Moving from Java to Kotlin - is it worth it?” Following Urs, Mehmet Akif Tütüncü, a senior software engineer, will explore the power of Kotlin’s unique feature - properties, in his talk “Discovering Kotlin’s Magic: The Power of Properties”. Whether you’re a Kotlin developer or a Java enthusiast, this meetup promises to be a wealth of knowledge and practical insights. RSVP for an evening of learning, delicious food, and the fusion of creativity and tech! 🚀 18:00 – 🚪 Doors open to the public 18:15 – 🍕 Let’s eat 19:00 – 📢 Moving from Java to Kotlin - is it worth it? 20:00 – 🍹 Small break 20:15 – 📢 Discovering Kotlin's Magic: The Power of Properties 21:00 – 🙋‍♀️ drinks 22:00 – 🍻 See you next time? The first talk by Urs Peter: Title: Moving from Java to Kotlin - is it worth it? Urs is a seasoned software engineer, solution architect, conference speaker, and trainer with over 20 years of experience in building resilient, scalable, and mission-critical systems, mostly involving Kotlin, Scala and Java. Besides his job as a consultant, he is also a passionate trainer and author of a great variety of courses ranging from language courses for Kotlin and Scala to architectural training such as Microservices and Event-Driven Architecture. As a people person by nature, he loves to share knowledge and inspire and get inspired by peers on meetups and conferences. Urs is a JetBrains certified Kotlin trainer. Abstract: With statistics painting a clear picture of its consistent growth, Kotlin is the rising star on the JVM. But, is it as bright as proclaimed? This talk will explore the journey you embark on when moving from Java to Kotlin. With many code samples, statistics, anecdotes, and a great deal of real-world experience, light will be shed on questions like \"What are the benefits and drawbacks?’\" and \"How did we approach it?\" Most importantly, we'll tackle the overarching question: \"Is it genuinely worth it, and why?\" By the end of this session, you'll have gained a solid understanding of the differences between modern Java and Kotlin, including the latest features like Virtual Threads. You'll know what to anticipate and gain when embracing Kotlin, including the required efforts and ingredients for a smooth transition. Armed with this knowledge, you'll be well-equipped to assess whether Kotlin is indeed worth the try. (edited) The second talk by Mehmet Akif Tütüncü Title: Discovering Kotlin's Magic: The Power of Properties Akif is a speaker at conferences and a senior software engineer focused mainly on the backend with more than 10 years of professional experience in software development. He has conducted consulting, and training and worked with companies worldwide such as Shazam, Socrata, Beam/MAF, sahibinden, Numbrs, Scalac and Conduktor. Akif is proficient in Scala, Java, and Kotlin, using both object-oriented and functional programming. He has skills in CI/CD, testing, databases, cloud applications, and microservices and is a fan of open-source software. Abstract: Let's dive into Kotlin's cool feature called properties! In this talk, we'll check out how properties in Kotlin make coding easier and more fun, especially when compared to Java. We'll break down the idea of property delegation, showing how it helps simplify code and keep things neat. Plus, get ready for a hands-on example that proves how this delegation thing can solve real-world problems. Whether you're a Kotlin whiz or a fan of Java, this talk is all about making sense of the magic in Kotlin's properties.", + "venue": { + "name": "iO | Digital agency | Utrecht", + "address": "Boven Clarenburg 2", + "postalCode": "3511 JJ", + "city": "Utrecht", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/297634954", + "dateTime": "2024-01-25T18:00+01:00", + "endTime": "2024-01-25T22:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "Design Systems || A multidisciplinary meetup", + "description": "PLEASE RSVP SO THAT WE KNOW HOW MUCH FOOD WE WILL NEED Explore the wonderful world of Design Systems at our event! Engage in talks on the evolution of Design Systems, inventive color accessibility, Figma component tracking, and how to make your stakeholders love your Design System. Whether you are a developer, designer or any other discipline needed for a Design System, RSVP for an evening of learning, delicious food, and the fusion of creativity and tech! 🚀 18:00 – 🚪 Doors open to the public 18:15 – 🍕 Let’s eat 19:00 – 📢 First round of Talks 19:45 – 🍹 Small break 20:00 – 📢 Second round of Talks 20:45 – 🙋‍♀️ drinks 21:00 – 🍻 See you next time? First Round of Talks: The Evolution of Design Systems - Remy Parzinski, Design System Lead at Logius Design Systems didn't appear out of thin air. I'll take you on a journey from NYC's Times Square to Design Systems using LEGOs. Color me surprised! - Robbert Broersma, Design System Lead at NL Design System Did you know some people see your website completely in their own color scheme? Using a media query for forced-colors and some CSS custom properties, your website will become accessible in interesting new ways. Do you mean select or a dropdown? - Tanja van der Heide, User Experience Designer at iO Amsterdam Common understanding is about more than words. Let's dive into the collaboration between design and development and how we can climb out of pitfalls together. Second Round of Talks: Figma API Fun: Lessons Learned in Taming Icon Libraries and Tracking Component Detachments - Thomas Berghaus-Dobber, Design System Engineer (formerly at Adyen) In my time at Adyen, I actively contributed to projects that extensively utilized the Figma API. These projects were focused on automating the syncing and distribution of icon libraries, and tracking component (mis)usage across the organization. Join me in this talk as I share my learnings and delve into some of the details of their implementation. Stay in love with Poncho - Erwin Schaapman, Product Owner Poncho Design System at ANWB In a corporate organization like ANWB a team that is responsible for its design system faces a variety of challenges. Let's take a tour and meet these challenges and see what we do to make our stakeholders keep loving Poncho the Design System. RSVP now to secure your spot, and let's explore the fascinating world of design systems together!", + "venue": { + "name": "iO | Digital Agency | Campus Amsterdam", + "address": "Spaklerweg 52", + "postalCode": "1114 AE", + "city": "Amsterdam", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-amsterdam/events/297919556", + "dateTime": "2024-01-17T18:00+01:00", + "endTime": "2024-01-17T21:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Amsterdam" + }, + { + "title": "Coven of Wisdom - EHV - AWS SageMaker workshop", + "description": "Our last collaboration with AWS was such a great success, it left us wanting for more. We are happy to announce our second workshop event together with AWS, hosted by Samuel Sopeju, Solutions Architect at AWS. 🌟 In this workshop, you will have the opportunity to dive deep into the world of machine learning with Amazon SageMaker, a fully managed service that empowers data scientists and developers to build and train machine learning models with ease. 🔍 Discover how to utilize the Extension for Stable Diffusion on AWS solution to invoke Amazon SageMaker Endpoint and generate images at scale. Learn how to build a pipeline for fine-tuning models automatically, allowing for seamless optimization and improved performance. 💡 Want to take your machine learning skills to the next level? This workshop is perfect for developers looking to expand their knowledge and leverage AWS technologies. Whether you're a seasoned ML expert or just starting out, there's something for everyone in this hands-on learning experience. 🖥️ During the workshop, we'll guide you through building the Stable Diffusion WebUI on an EC2 instance, and then showcase the power of the Stable Diffusion AWS Extension in conjunction with Amazon SageMaker to generate high-quality images at scale. 🗓️ Date: 16th of November 🕒 Time: 15h00 - 20h00 CET 📍 Location: iO, Campus Eindhoven. 🎉 Don't miss out on this unique opportunity to learn from industry experts and network with fellow developers. Reserve your spot now and secure your place at this exclusive event! Spots are limited, and this event will not be live-streamed Coven of Wisdom is powered by iO.", + "venue": { + "name": "iO Campus Eindhoven", + "address": "Marconilaan 16", + "postalCode": "meetup5", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/296634456", + "dateTime": "2023-11-16T15:00+01:00", + "endTime": "2023-11-16T20:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "Coven of Wisdom - EHV - CSS Edition", + "description": "Grab your web scuba gear, ’cause none other than Brecht de Ruyte and Hidde de Vries will take us down to the depths of CSS & HTML. Brecht, who you might know from his articles on Smashing Magazine, CSS-tricks and utilitybend.com, will inspire you to use custom properties more often. They have been available to us for a while now, but don’t get used as much as they should. Custom properties are more than just a constant; they are flexible and smart. We’ll be styling 4 buttons with less than 20 lines of code, learning to take more control of a grid by using smart variables, and adding some JavaScript trickery as a finishing touch. After Brecht has taught us how to optimise our design systems using custom properties, Hidde will take our hand and lead us further on our design system journey, on a deep dive into popovers and how to build them. Hidde is a freelance front-end and accessibility specialist working in the Dutch government’s NL Design System team. He is also involved in the W3C’s Open UI Community Group and CSS Working Group. Have you already experienced that our design systems commonly feature components that show on top of other content: tooltips, date pickers, menus and teaching UI, to name just a few? There are many ways to build them, and new features in the web platform are about to make this a whole lot easier. You might not even need JavaScript. In this talk, you’ll learn all about dialogs, including the new ‘popover’ attribute, “modality”, and using the top layer. We couldn’t be more stoked to host a gathering with these 2 Web Wizards! Join us, won't you? We’ll provide the drinks ’n bites, and we hope you’ll come and have great conversations. --- Program 6pm: Welcome 6:30pm: Pizza 7pm: Brecht – So, you're still not using custom properties? 7:45pm: Break 8pm: Hidde – Dialog dilemmas and modal mischief: a deep dive into popovers and how to build them 8:30pm: Networking and drinks 9pm: Closing time Reachability Location iO Eindhoven, Marconilaan 16, 5621 AA Eindhoven Public transport Station Eindhoven Strijp-S, 5-minute walk Station Eindhoven Centraal, 25-minute walk Car Parking behind the building. Entry via Edisonstraat Enough free parking possibilities in the neighbourhood. --- The Coven of Wisdom is powered by iO.", + "venue": { + "name": "iO Campus Eindhoven", + "address": "Marconilaan 16", + "postalCode": "meetup5", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/295147947", + "dateTime": "2023-10-26T18:00+02:00", + "endTime": "2023-10-26T21:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "Coven of Wisdom - HER - Autumn `23 edition", + "description": "Join us for an exciting front-end technology meetup where you’ll get a chance to gain valuable insights and knowledge about the latest trends in the field. Our team of experienced developers will be sharing their expertise and best practices, as well as discussing cutting-edge technology that can take your skills to the next level. Intro into Svelte Kit by Pieter-Jan de Ridder The testing revolution by Johan Vervloet Don’t miss out on this opportunity to expand your knowledge, network with fellow developers, and discover new and exciting possibilities. And the best part? Food and drinks are on us! More information on the schedule will be disclosed, closer to the meetup. Want to give a talk? Send us your proposal at meetup.herentals@iodigital.com 18:00 - 19:00: Food/Drinks/Networking 19:00 - 21:00: Talks Thursday 12th of October, 18h00 - 21h00 CET iO Campus Herentals, Zavelheide 15, Herentals", + "venue": { + "name": "Intracto", + "address": "Zavelheide 15", + "postalCode": "2200", + "city": "Herentals", + "country": "be" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-herentals/events/294033744", + "dateTime": "2023-10-12T18:00+02:00", + "endTime": "2023-10-12T21:00+02:00", + "timezone": "Europe/Brussels", + "groupName": "Coven of Wisdom Herentals" + }, + { + "title": "Coven of Wisdom - EHV - AI Edition", + "description": "Are you seeing more and more news on your timeline about your tech stack in combination with AI? And are you curious about what information is truly relevant to you about AI, so you can work even more efficiently on software projects? The Coven of Wisdom's is hosting an AI meetup, so you will get a nuanced view on how you can make smart use of AI. Software Developer Job van Drunen will take you through the possibilities, pitfalls, and impact of AI on society, and Senior Frontend Consultant Vince Liem will explain how to work with AI as productively as possible. Topics of this meetup AI: What even is it? Job van Drunen will help you understand the potential, pitfalls, and impact of AI on society. With the news you see almost daily about AI, it can be challenging to distinguish the main points from the details. Job will help you to find the relevant information, provide an insider's perspective on the current state of AI, and explain the benefits and the potential drawbacks. Generative AI: An anything-to-anything translation device Why is everything you read suddenly about AI? Hasn’t AI already existed for ages? What is the difference between traditional AI and generative AI? Vince Liem will give you a fresh perspective on how you could see AI and the concepts of Large Language Models or Generative AI and explain how to be as productive as possible with them. While explaining that, Vince will push the current AI possibilities to their technical limits. The programme 6pm: Welcome 6:30pm: Pizza 7pm: AI: What even is it? – Job van Drunen 7:45pm: Break 8pm: Generative AI: An anything-to-anything translation device – Vince Liem 8:30pm: Networking and drinks 9pm: Closing time Did we spark your interest? Curious? Click that attend button now to be sure of one of the 75 spots. Attendance is free and catering is taken care of, all free of charge. Join the fun! Thursday 14th of September 18h00 - 21h00 CET iO Campus Eindhoven, Marconilaan 16, Eindhoven The Coven of Wisdom is powered by iO", + "venue": { + "name": "iO Campus Eindhoven", + "address": "Marconilaan 16", + "postalCode": "meetup5", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/295147612", + "dateTime": "2023-09-14T18:00+02:00", + "endTime": "2023-09-14T20:30+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "Going Fast with Spring and JDK 21", + "description": "PLEASE RSVP SO THAT WE KNOW HOW MUCH FOOD WE WILL NEED NOTE: We are INSIDE Hoog Catharijne shopping center, at the door it reads: \"De Utrecht\" Improved Developer Experience with Java 21 Be part of an informative presentation unveiling the newest functionalities in Java 21. Our focus will be on three groundbreaking upgrades: String Templates (String Interpolation) for streamlined string manipulation, Unnamed Classes/Methods to eliminate redundant code, and Pattern Matching for simplified conditional checks. Witness how these features empower developers to craft more expressive, concise, and maintainable code, leading to enhanced productivity and top-notch software quality. Don't miss out on this chance to explore the forefront of Java development! Going native with Spring Boot 3 One of the main new features provided with the latest major releases of Spring Boot and the Spring Framework is support for native compilation with GraalVM. With this, we can build native executables that run directly on the OS, without a JVM. This results in very fast startup times and vastly reduced memory usage, opening up all sorts of new use cases for Java-based applications. In this presentation, Joris will provide an overview of this new option through slides and demos so that you'll be ready to explore this further yourself to build command-line applications or services and functions that'll run in the cloud way more efficiently!", + "venue": { + "name": "iO | Digital agency | Utrecht", + "address": "Boven Clarenburg 2", + "postalCode": "3511 JJ", + "city": "Utrecht", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/295316917", + "dateTime": "2023-09-14T17:30+02:00", + "endTime": "2023-09-14T21:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "Coven of Wisdom - HER - Summer `23 edition", + "description": "Join us for an exciting front-end technology meetup where you’ll get a chance to gain valuable insights and knowledge about the latest trends in the field. Our team of experienced developers will be sharing their expertise and best practices, as well as discussing cutting-edge technology that can take your skills to the next level. Container Queries: The next step towards a truly modular CSS GitHub Co-Pilot: Tips & Tricks Smooth Cruising with Prisma and Remix Don’t miss out on this opportunity to expand your knowledge, network with fellow developers, and discover new and exciting possibilities. And the best part? Food and drinks are on us! More information on the schedule will be disclosed, closer to the meetup. Thursday 6th of June, 18h00 - 21h00 CET iO Campus Herentals, Zavelheide 15, Herentals", + "venue": { + "name": "Intracto", + "address": "Zavelheide 15", + "postalCode": "2200", + "city": "Herentals", + "country": "be" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-herentals/events/293017889", + "dateTime": "2023-06-06T18:00+02:00", + "endTime": "2023-06-06T21:00+02:00", + "timezone": "Europe/Brussels", + "groupName": "Coven of Wisdom Herentals" + }, + { + "title": "Coven of Wisdom - EHV - Hyvä Edition", + "description": "We are happy to announce that, together with Hyvä, the Coven of Wisdom is having a Hyvä themed edition (pun intended). On Thursday the 11th of May, iO Campus Eindhoven will host an afternoon with talks about and from Hyvä and an opportunity to socialize over a hot meal and refreshing beverages. Talks: iO will share why they and their clients absolutely adore using Hyvä for their commerce solutions and how their business-as-usual performs with a tool like Hyvä. Hyvä will talk about their highly anticipated Hyvä Checkout. Registrations are limited to 100 persons. Join the fun! Thursday 11th of May, 16h00 - 20h00 CET iO Campus Eindhoven, Marconilaan 16, Eindhoven", + "venue": { + "name": "iO Campus Eindhoven", + "address": "Marconilaan 16", + "postalCode": "meetup5", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/292356004", + "dateTime": "2023-05-11T16:00+02:00", + "endTime": "2023-05-11T20:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "Frontend Frameworks 2023 || Astro, Qwik, SolidJS, Redwood and RSC", + "description": "PLEASE RSVP SO THAT WE KNOW HOW MUCH FOOD WE WILL NEED Finally, it seemed the JS framework wars came to an end with React, Vue, and Angular being the most popular. Now that rendering UI is solved, Open Source creators are switching to new challenges. Starting last year we’ve seen some really innovative concepts emerge and a lot of new terms like Signals & Reactivity. This evening we’ll look at the concepts they introduce and, with an open mind, look at their strengths and weaknesses. With talks about: Astro Qwik SolidJS RedwoodJS React Server Components Schedule 18:00 – 🚪 Doors open to the public 18:30 – 🍕 Let’s eat 19:00 – 📢 First round of Talks 19:45 – 🍹Small break 20:00 – 📢 Second round of Talks 20:30 – 🙋‍♀️ Q&A 21:00 – 🍻 See you next time?", + "venue": { + "name": "iO | Digital Agency | Campus Amsterdam", + "address": "Spaklerweg 52", + "postalCode": "1114 AE", + "city": "Amsterdam", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-amsterdam/events/292064053", + "dateTime": "2023-04-19T18:00+02:00", + "endTime": "2023-04-19T21:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Amsterdam" + }, + { + "title": "Coven of Wisdom - EHV - AWS Serverless Workshop", + "description": "For the Spring '23 edition, we are proud to announce that we are teaming up with AWS to host a hands-on workshop for Serverless Computing! Burak Unuvar, Senior Solutions Architect at AWS, will introduce the basics of building full stack serverless applications and microservices using services like AWS Amplify, AWS Lambda, AWS Step Functions, Amazon API Gateway, Amazon DynamoDB, Amazon Kinesis, and Amazon S3. You'll learn to build and deploy your own full stack serverless application using these services for common use cases like web applications, analytics, and more. Join the fun! Program: 15h45: Doors open, getting settled. 16h15 - 19h00: Workshop 19h00 - 20h00: Q&A, food & drinks 20h00: End of event Thursday 23rd of March, 16h00 - 20h00 CET iO Campus Eindhoven, Marconilaan 16, Eindhoven Registrations are limited to 50 people. Bring Your Own Laptop. Free food and drinks are provided. This event will unfortunately not be streamed online. Do you want to share your knowledge? Do you actively want to contribute to a growing community of technology enthusiasts in the greater Eindhoven region? Contact us via meetup.eindhoven@iodigital.com", + "venue": { + "name": "iO Campus Eindhoven", + "address": "Marconilaan 16", + "postalCode": "meetup5", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/291155865", + "dateTime": "2023-03-23T16:00+01:00", + "endTime": "2023-03-23T20:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "Coven of Wisdom - EHV - Agile extravaganza edition", + "description": "Due to the fact we bought a Christmas tree so large we need 4 Developer Advocates to move this thing from the local IntraTuin to our wizard-cave, it is just impossible to also organise the most amazing Yuletide themed developer meetup Mariah Carey could ever be witness of. That's why we are moving the December edition of the Coven Of Wisdom to the 12th of January 2023. Theme of the evening will be: Agile extravaganza with Michel Grootjans Michel is a technical agile coach and will teach you the effects of team flow in a non-technical workshop. Together with interactive simulations on team organisation and the effect this has on the total flow of work, we will address topics like: Why would we prefer T-shaped team members? How can swarming help? Why would you deliberately limit work in progress? Why is it that we have trouble estimating when work will be done? Be sure to bring your mobile phone if you want to be part of the fun. You'll only need your phone's browser. Program: 18:00 – 🚪 Doors open to the public 18:30 – 🍕 Let’s eat 19:00 – 📢 Part 1 of the workshop 19:40 – 🍹 Intermission 19:50 – 📢 Part 2 of the workshop 20:30 – 🙋‍♀️ Q&A / Discussions / Drinks 21:00 – 🚪 Closing time Hope to see you there! If you're not able to attend, no worries, the meetup will be live-streamed via the iO TechHub YouTube channel at https://youtu.be/pOqfOdSiA7I Do you want to share your knowledge? Do you actively want to contribute to a growing community of technology enthusiasts in the greater Eindhoven region? Contact us via meetup.eindhoven@iodigital.com", + "venue": { + "name": "iO Campus Eindhoven", + "address": "Marconilaan 16", + "postalCode": "meetup5", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/288373709", + "dateTime": "2023-01-12T18:00+01:00", + "endTime": "2023-01-12T20:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "Coven of Wisdom - EHV - Autumn edition", + "description": "We are happy to announce our Autumn meet-up on the 22nd of September at iO Campus Eindhoven, Marconilaan 16 Eindhoven. Time to catch up, enjoy delicious pizza and learn more about fascinating topics we have planned for you! The event will be on- and offline. Please let us know if you will be joining us in person and if you would like a pizza please. Live-stream: https://youtu.be/KYge_AJO1K4 Topics: Dave Bitter Remix is a great framework to build robust, progressively enhanced and interactive web apps! During COVID-19, we all missed the Parties… therefore Dave will create his own party on stage. He will take you on a fun journey on how he created a multi-user and real-time progressive web app. But be aware, there is a guest list and not every solution is invited to join the party! Dave will show you how the Remix friend group will keep your party rocking: Where the state of your data is on the server where it belongs. (load some data and take action to get the party started). Where this multi-user web app is not dependent on complex client-side JavaScript (so even your drunk friend will understand it) Where the client-side is less error-prone (no party fouls wanted) Where the components are just plain stupid (no good story starts with a glass of milk) Where your application becomes simple and easy to understand (you know, for that friend) Dave will tell you about the challenges he encountered building this web app and how it was solved charmingly by using Remix. He will show you how Remix can be used for web apps with a lot of interactivity, not just for plain websites with an occasional form. Getting FOMO? Make sure to sign up for the party and don’t miss out! Vincent Immink More info coming Program: 18:00 – 🚪 doors open to the public 18:30 – 🍕 let’s eat 19:00 – 📢 Dave Bitter: Remix party, you are invited! 19:30 – 🙋‍♂‍ Q&A 19:45 – 🍹small break 20:00 – 📢 Vincent Immink: Codeless test automation 20:30 – 🙋‍♀️ Q&A ??:?? – 🍻 See you next time? Do you want to share your knowledge? Do you actively want to contribute to a growing community of technology enthusiasts in the greater Eindhoven region? Contact us via meetup.eindhoven@iodigital.com", + "venue": { + "name": "iO Campus Eindhoven", + "address": "Marconilaan 16", + "postalCode": "meetup5", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/287980363", + "dateTime": "2022-09-22T18:00+02:00", + "endTime": "2022-09-22T21:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "Summer edition — iO Campus Eindhoven Meet-up", + "description": "We are happy to announce our Summer meet-up on the 23th of June at iO Campus Eindhoven, Marconilaan 16 Eindhoven. Time to catch up, enjoy delicious pizza and learn more about fascinating topics we have planned for you! The event will be on- and offline. Please let us know if you will be joining us in person and if you would like a pizza please. Program: 18:00 – 🚪 doors open to the public 18:30 – 🍕 let’s eat 19:00 – 📢 Maarten Van Hoof (iO) - Putting the C in CSS 19:30 – 🙋‍♂‍ Q&A 19:45 – 🍹small break 20:00 – 📢 Mark van der Linden (iO) - The road towards less passwords 20:30 – 🙋‍♀️ Q&A ??:?? – 🍻 See you next time? Live-stream: https://www.youtube.com/watch?v=S7Gdi9N2uaQ Do you want to share your knowledge? Do you actively want to contribute to a growing community of technology enthusiasts in the greater Eindhoven region? Contact us via meetup.eindhoven@iodigital.com", + "venue": { + "name": "iO Campus Eindhoven", + "address": "Marconilaan 16", + "postalCode": "meetup5", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/284842744", + "dateTime": "2022-06-23T18:00+02:00", + "endTime": "2022-06-23T21:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "Spring edition — iO Campus Eindhoven Meet-up", + "description": "We are happy to announce our Spring meet-up on the 24th of March at iO Campus Eindhoven, Marconilaan 16 Eindhoven. Time to catch up, enjoy delicious pizza and learn more about fascinating topics we have planned for you! The event will be on- and offline. Please let us know if you will be joining us in person and if you would like a pizza please. --- Livestream: https://youtu.be/YdEK3kDNQvg --- Program: 18:00 – 🚪 doors open to the public 18:30 – 🍕 let’s eat 19:00 – 📢 Michael Jorissen (iO) – Impact of 3D in commerce 19:30 – 🙋‍♂‍ Q&A 19:45 – 🍹small break 20:00 – 📢 Eddy Vinck (iO) - Getting Started with Remix and a Headless CMS 20:30 – 🙋‍♀️ Q&A ??:?? – 🍻 See you next time? --- Michael Jorissen - Impact of 3D in commerce 3D is becoming more and more prevalent on the web and in applications. And because of the continuous development and improvement of 3D aspects, more and more is possible. Examples are viewing the interior of your new car before buying it, configuring your own bookshelf, and even viewing an accurate and detailed representation of the universe. In this talk, Michael will explain the impact of 3D on our shopping patterns. And thus what this means for e-commerce. He will highlight topics such as the various implementations of 3D in e-commerce and when 3D has the most impact (and when it doesn’t). In addition, he will share some of his own experiences. After the talk, Michael will be happy to answer all your 3D e-commerce or web-related questions. Eddy Vinck - Getting Started with Remix and a Headless CMS Does the thought of writing your own server scare you? Grabbing a headless CMS to generate those static files? I definitely used to think servers are scary. But not anymore. With Remix, you don’t run into problems when your brochure websites eventually evolve into something bigger and more complex — without the workarounds of a static website. When your server renders your front-end, you can integrate as many services as you like, or write it all yourself: it’s completely up to you. All without drowning your users in request waterfalls. In this talk, I will show you how to integrate a headless CMS into your Remix projects to provide great authoring- and user experiences.", + "venue": { + "name": "iO Campus Eindhoven", + "address": "Marconilaan 16", + "postalCode": "meetup5", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/284350991", + "dateTime": "2022-03-24T18:00+01:00", + "endTime": "2022-03-24T21:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "Container Queries and Functional Programming", + "description": "After a very nice insight on Remix, by Kent C Dodds. It is time for Round 2 🥊 Check out the Remix tour video in case you missed it: https://www.youtube.com/watch?v=r2Gks2qm0AY This time it's a home game with two of our own Developer Advocates: Maarten van Hoof and Abbe Keultjes! On February, 23rd at 16:00 they will tell you all about Container Queries and Functional Programming. Set a reminder via Youtube to not miss out or Subscribe to our channel to never miss a livestream! Maarten Van Hoof - Developer Advocate & Front-end Engineer @ iO: Container Queries, the next step towards a truly modular css Modular, componentized frameworks and libraries are more popular than ever, but currently screen size is the only dimensional constraint to which a web design can adapt to. In this talk, Maarten will explain what Container Queries are and show you how each component can adapt its design to the dimensions of its container. Join us on our journey towards a more modular CSS. Abbe Keultjes - Developer Advocate & Front-end Engineer @ iO: A Beginner’s Guide To Functional Programming You want to know more about functional programming, but where to start? Should you start learning Haskell? Do you need to know about setoids, functors and monads? What libraries should you use? Where did you get yourself into!? In this talk, a fellow beginner shares his experience with learning functional programming in JS/TS. Why it’s wise to invest in this paradigm, how to start and whe", + "venue": { + "name": "Online event", + "address": "", + "postalCode": "", + "city": "", + "country": "" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-amsterdam/events/283674592", + "dateTime": "2022-02-23T16:00+01:00", + "endTime": "2022-02-23T18:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Amsterdam" + }, + { + "title": "Container Queries and Functional Programming", + "description": "After a very nice insight on Remix, by Kent C Dodds. It is time for Round 2 🥊 Check out the Remix tour video in case you missed it: https://www.youtube.com/watch?v=r2Gks2qm0AY This time it's a home game with two of our own Developer Advocates: Maarten van Hoof and Abbe Keultjes! On February, 23rd at 16:00 they will tell you all about Container Queries and Functional Programming. Set a reminder via Youtube to not miss out or Subscribe to our channel to never miss a livestream! Maarten Van Hoof - Developer Advocate & Front-end Engineer @ iO: Container Queries, the next step towards a truly modular css Modular, componentized frameworks and libraries are more popular than ever, but currently screen size is the only dimensional constraint to which a web design can adapt to. In this talk, Maarten will explain what Container Queries are and show you how each component can adapt its design to the dimensions of its container. Join us on our journey towards a more modular CSS. Abbe Keultjes - Developer Advocate & Front-end Engineer @ iO: A Beginner’s Guide To Functional Programming You want to know more about functional programming, but where to start? Should you start learning Haskell? Do you need to know about setoids, functors and monads? What libraries should you use? Where did you get yourself into!? In this talk, a fellow beginner shares his experience with learning functional programming in JS/TS. Why it’s wise to invest in this paradigm, how to start and whe", + "venue": { + "name": "Online event", + "address": "", + "postalCode": "", + "city": "", + "country": "" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/283651480", + "dateTime": "2022-02-23T16:00+01:00", + "endTime": "2022-02-23T18:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "Kent C. Dodds: Building Excellent User Experiences with Remix", + "description": "Our first GURU TALK of the new year is going to be a good one! Wednesday the 19th of January (at 19:00h) our speaker will be none other than Kent C. Dodds. He will tell us all about Remix with some Q&A at the end. Remix is a Web Framework that uses the web platform to enable you to build excellent user experiences. In this talk I'm going to show you what makes Remix so special and how the user experiences you build with Remix are excellent by default.", + "venue": { + "name": "Online event", + "address": "", + "postalCode": "", + "city": "", + "country": "" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/282800242", + "dateTime": "2022-01-19T19:00+01:00", + "endTime": "2022-01-19T20:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "Albert Groothedde and Juan Castellanos | Guru Talks", + "description": "Wednesday the 24th of November (at 16:00h) we have a new GURU TALK coming up. The first speaker is Albert Groothedde, senior frontend developer at iO. Transforming JS & TS codebases with the Typescript compiler and ASTs Have you ever wanted to make a big change to the codebase but got scared off by the thought of rebasing, applying all your changes again and again… and again? Fear no longer! Transform your codebase completely automated. Using the Typescript compiler that’s also used in VSCode and with help of the Abstract Syntax Tree, this will become a breeze. You can finally do that long awaited upgrade towards a better developer experience! This talk will make these distant utopias a reality, with practical examples, and useful boilerplate. Our Second Speaker is Frontmen Developer Juan Castellanos. Infrastructure as Code with AWS CDK AWS provides more than 100 services, and it can be quite difficult to get started. Creating Cloudformation templates in YAML or JSON don't exactly make it easier, as it sometimes lack clarity. AWS CDK seeks to resolve these issues enabling you to use existing skills and more with your infrastructure as code. Whether it's Java, Javascript, Python, or Typescript, AWS CDK has you covered. In this session, you will learn about AWS architectures, the types of ways you can deploy your services/ apps, and how CDK can help you be more predictable with your architecture deployment. We will also build a small service ( Grapqhl or REST ) to show the power of CDK. I will also share the pros and cons of working with CDK.", + "venue": { + "name": "Online event", + "address": "", + "postalCode": "", + "city": "", + "country": "" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/282141358", + "dateTime": "2021-11-24T16:00+01:00", + "endTime": "2021-11-24T18:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "Front-end meetup Eindhoven", + "description": "New Meet-up! We (Eindhoven.js and Eindhoven Front-end Meetup) have combined forces and are happy to announce a meet-up on the 11th of November at the Marconilaan 16 in Eindhoven. Time to catch up, enjoy delicious pizza and learn more about fascinating topics we have planned for you! More info about the topics will be announced soon. The event will be on- and offline. Please let us know if you will be joining us in person and if you would like a pizza please. Stream: https://www.youtube.com/watch?v=UuozuZm7xKU Program meet-up 11-11-2021 18:00 – 🚪 doors open to the public 18:30 – 🍕 let’s eat 19:00 – 📢 Dave Bitter (frontmen (becoming iO)) – Dynamically generate Open Graph images using Next.js Serverless 19:30 - 🙋‍♂‍ Q&A 19:45 – 🍹small break 20:00 - 📢 Maarten van Hoof (ISAAC (becoming iO)) - Container Queries: The next step towards a truly modular CSS 20:30 - 🙋‍♀️ Q&A ??:?? - 🍻 See you next time? Dave Bitter: Dynamically generate Open Graph images using Next.js Serverless We all know how you can add an OG image to your website. But did you know it is quite easy to generate custom, freshly designed and stateful images which make you stand out from the crowd? You might have seen this before. GitHub leverages this to create awesome images which show general info about PR's. Curious, like me, how they did this? In this talk I will leverage the power of Next.js serverless functions to generate these on the fly! Maarten van Hoof: Container Queries: The next step towards a truly modular CSS Modular, componentized frameworks and libraries are more popular than ever, but currently screen size is the only dimensional constraint to which a web design can adapt to. In this talk, Maarten will explain what Container Queries are and show you how each component can adapt its design to the dimensions of its container. Join us on our journey towards a more modular CSS.", + "venue": { + "name": "iO Campus Eindhoven", + "address": "Marconilaan 16", + "postalCode": "meetup5", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/281232494", + "dateTime": "2021-11-11T18:00+01:00", + "endTime": "2021-11-11T21:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "Lucien Immink and Justus Romijn | Guru Talks", + "description": "Wednesday the 3rd of November (at 16:00h) we have a new GURU TALK coming up. Not 1, but 2 great speakers talking about everything Web Component. The first speaker is Lucien Immink, software architect at ISAAC. One Web Component a day keeps the doctor away Let's talk about web components and how they help build scalable and maintainable applications. Do you need to replace your whole front-end stack with web components or can you replace bit by bit? Spoiler alert: It's the latter. Ever wondered if they play nice with Angular, React or Vue? Our Second Speaker is Frontmen Developer Justus Romein. Learning using Web Components in an Enterprise Justus will share his experiences of building and maintaining a big Web Component library at the Rabobank. He will offer tips, guidance and common issues and pitfalls in both the technical and the organisational scope.", + "venue": { + "name": "Online event", + "address": "", + "postalCode": "", + "city": "", + "country": "" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/281818964", + "dateTime": "2021-11-03T16:00+01:00", + "endTime": "2021-11-03T18:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "Jason Lengstorf & Dave Bitter | Guru Talks", + "description": "On September 29th (at 16:00h) we have a new GURU TALK coming up. Not 1, but 2 great speakers this time. The first speaker is Jason Lengstorf, principal developer experience engineer at Netlify. He will be talking about how your architecture & Infrastructure can help your team’s productivity. Productive By Default: How Your Architecture & Infrastructure Can Make (or Break) Your Team's Productivity Healthy teams are high performers. Organizations that focus on team health gain a significant advantage in the market. But did you know the way that we build our applications has a significant impact on team culture? In this talk, learn how your architecture can improve — or damage — your team's health. Key takeaways: How systems can become fragile, making it hard to ship How complexity leads to a snowball of slowness How decoupled systems speed up companies What defines a culture of shipping Our Second Speaker is Frontmen Developer and Dev advocate Dave Bitter. He will give a presentation on how to Dynamically genereate Open Graph images using Next.js Serverless. Dynamically generate Open Graph images using Next.js Serverless We all know how you can add an OG image to your website. But did you know it’s quite easy to generate custom, freshly designed and stateful images which makes you stand out from the crowd? You might have seen this before. Github leverages this to create awesome images which show general info about PR’s. Curious, like me, how they did this? In this talk I will leverage the power of Next.js serverless functions to generate these on the fly.", + "venue": { + "name": "Online event", + "address": "", + "postalCode": "", + "city": "", + "country": "" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/280662842", + "dateTime": "2021-09-29T16:00+02:00", + "endTime": "2021-09-29T18:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "Building Full Stack Apps on Ethereum with Next.js and Solidity | Guru Talks", + "description": "Decentralized apps (dApps) are continuing to gain momentum in the industry. These developers are also now some of the highest paid in the entire trade. Building decentralized apps is a paradigm shift that requires a different way of thinking than those built with traditional centralized infrastructure, tooling, and services – taking into consideration things like game theory, decentralized serverless infrastructure, and cryptoeconomics. As a React developer, I initially had a hard time understanding this entirely new (to me) ecosystem, how everything fit together, and the mental model needed to understand and be a productive full stack developer in this space (and why I would consider it in the first place). In this talk, you'll learn how to build a full stack dapp on Ethereum with Next.js, Solidity, and Hardhat.", + "venue": { + "name": "Online event", + "address": "", + "postalCode": "", + "city": "", + "country": "" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-amsterdam/events/280301214", + "dateTime": "2021-08-25T16:00+02:00", + "endTime": "2021-08-25T18:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Amsterdam" + }, + { + "title": "Building Full Stack Apps on Ethereum with Next.js and Solidity | Guru Talks", + "description": "Decentralized apps (dApps) are continuing to gain momentum in the industry. These developers are also now some of the highest paid in the entire trade. Building decentralized apps is a paradigm shift that requires a different way of thinking than those built with traditional centralized infrastructure, tooling, and services – taking into consideration things like game theory, decentralized serverless infrastructure, and cryptoeconomics. As a React developer, I initially had a hard time understanding this entirely new (to me) ecosystem, how everything fit together, and the mental model needed to understand and be a productive full stack developer in this space (and why I would consider it in the first place). In this talk, you'll learn how to build a full stack dapp on Ethereum with Next.js, Solidity, and Hardhat.", + "venue": { + "name": "Online event", + "address": "", + "postalCode": "", + "city": "", + "country": "" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/280168502", + "dateTime": "2021-08-25T16:00+02:00", + "endTime": "2021-08-25T18:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "Frontend-for-Backend Webinar", + "description": "==================================================== REGISTER AT: https://zoom.us/meeting/register/tJUkd-CrqTkvEtOr6VeRvr9sfJSLx9sDoK86 Over the last years, many frontend libraries and frameworks enabled the creation of complex, scalable and user-friendly interfaces. These techniques also matured frontend development, making it more accessible to developers with a non-frontend background. Despite all the new programming patterns and code abstractions, the frontend still runs in JavaScript, a language with its … quirks. The language has improved significantly since 2015 and each year, new features are added. In this webinar we’ll discuss how to utilise these (and existing) features and write more readable modern JavaScript. Who is this webinar for? Any developer with a little or a lot of experience in any language who wants to learn more about JavaScript. This webinar is the first of two and focusses on where JavaScript is different from other languages and which important features are added in the last 5 years. The host Abbe Keultjes is a senior frontend developer who works at Frontmen, part of Intracto. He specialises in JavaScript, (S)CSS and Angular with 13+ years of experience.", + "venue": { + "name": "Online event", + "address": "", + "postalCode": "", + "city": "", + "country": "" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/270309249", + "dateTime": "2020-04-30T13:00+02:00", + "endTime": "2020-04-30T14:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "Webinar | GraphQL Workshop (free)", + "description": "======== MAXIMUM NUMBER OF REGISTRATIONS REACHED ======== Hi, Thanks for the interest in our GraphQL Webinar! At the moment, we have reached the maximum number of registrations. However, you can still register! If we have cancellations, we will assign the available seat(s) on a first come, first serve basis. WEBINAR Many companies are investigating whether they can benefit from the advantages of GraphQL. To give you a better understanding what GraphQL is and how your organisation and development teams can benefit from this emerging technology. We organise a free interactive webinar. Albert Groothedde, senior full-stack developer with a passion for GraphQL, will show you the ins and outs of GraphQL in professional environments. Register via: https://frontmen.clickmeeting.com/graphql-workshop/register SCHEDULE 15:00: Start 15:00 to 15:45: High-level overview of GraphQL, how it works and how to apply it 15:45 to 15:55: Break 15:55 to 17:00: Interactive Deep-dive and Q&A 17:00: Wrap-up EXAMPLE GRAPHQL CASE An example of one of our client cases with GraphQL can be found at https://www.frontmen.nl/work/air-france-klm", + "venue": { + "name": "Online event", + "address": "", + "postalCode": "", + "city": "", + "country": "" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/269643697", + "dateTime": "2020-04-16T15:00+02:00", + "endTime": "2020-04-16T17:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": " 1st front end meet up of the year! ", + "description": "Hi all, A new year, a new meet up... but customary style! On the 27th of February we will organise a front-end meet at ISAAC. Instead of our lightning talks, we will go back to the customary way, which means delicious pizza Talk #1: A/B testing for the rest of us (Gaya Kessler) Talk #2: CI/CD from a front-end perspective (Lucien Immink) plentiful drinks fascinating chatter Hope to see you Thursday the 27th", + "venue": { + "name": "Marconilaan 16", + "address": "Marconilaan 16", + "postalCode": "5621 AA", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/267906298", + "dateTime": "2020-02-27T18:00+01:00", + "endTime": "2020-02-27T21:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "FrontMania - Angular – Nederlandse Spoorwegen (Dutch Railways)", + "description": "Our friends from FrontMania teamed up with NS to have a meetup about Angular on the 12th of December. NS is active in the public transportation sector and is at the heart of our society. Every day, NS takes more than a million travelers wherever they need to go, on one of the busiest railway networks in the world. More information can be found here: https://www.meetup.com/FrontMania/events/266552746/", + "venue": { + "name": "NS - Central Station Utrecht", + "address": "Stationshal 17", + "postalCode": "meetup4", + "city": "Utrecht", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-amsterdam/events/266633099", + "dateTime": "2019-12-12T18:30+01:00", + "endTime": "2019-12-12T21:30+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Amsterdam" + }, + { + "title": "Frontend Love Eindhoven", + "description": "Grab your ticket for Frontend Love Eindhoven here: https://www.eventbrite.co.uk/e/frontend-love-eindhoven-tickets-75129910585 Hello all! We are happy to announce that for the very first time, on Friday November 22nd, #FrontendDeveloperLove is organizing ‘Frontend Love’ in Eindhoven. As you’re all front-end enthusiasts, we like to share this in our platform. Hope to see you there! During Frontend Love Eindhoven you’ll be treated to in-depth talks from experienced front-end developers, speakers and core contributors. This new edition of Frontend Love takes place at the High Tech Campus in Eindhoven, with only 250 tickets are available. It also creates an ample opportunity to spar and exchange ideas with other community enthusiasts but also with the speakers which are present. 13:30 Doors open + ☕️🍩🍪 14:00 💬 Lucien Immink – One component a day keeps the doctor away 14:30 💬 Pooya Parsa – Nuxt.js 15:00 💬 Israel Rodan – Advanced Vue.JS Features and Patterns in the Enterprise 15:30 Break + ☕️🍩🍪 15:45 💬 Coling van Eenige – WebGL Demo with THREE.js 16:00 💬 Gert Hengeveld – Mistakes I made building React Async 16:30 💬 Jad Joubran – native-like PWAs n Web Components (live-code) 17:00 💬 Francisca van Maurik – Angular & Elastic Search: Combined Forces 17:30 Networking + 🍺🍤🍗 Tickets are FREE and are available now! Grab your ticket here: https://www.eventbrite.co.uk/e/frontend-love-eindhoven-tickets-75129910585 See you there! Frontend Love Eindhoven is powered by ISAAC & Passionate People", + "venue": { + "name": "High Tech Campus Eindhoven", + "address": "HTC", + "postalCode": "5656 AE", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/265587820", + "dateTime": "2019-11-22T13:30+01:00", + "endTime": "2019-11-22T18:30+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "FrontMania Conference 50% off for first 25 applicants", + "description": "On November 15th, together with FrontMania, we are organizing the second edition of FrontMania conference, with many awesome speakers like: Andre Staltz Lee Boonstra Felix Reisenberg Katerina Skroumpelou Covering topics like: Cloudflare workers Dialogflow NodeJs on Mobile Blink browser engine webassembly puppeteer and many more You can find more at https://www.frontmania.com, including information about the conference, schedule and tickets*. As you have been with us quite a while, the first 25 applicants get a 50% discount. Use the link below to get it done! https://www.eventbrite.nl/e/tickets-frontmania-conference-2019-58636364946?aff=meetupfcnl&discount=_CodingNL_FrontManiacs_ Hope to see you there! *RSVPing to this event doesn't give you access yet, you need to get a conference ticket at the FrontMania website or direct via eventbrite.", + "venue": { + "name": "Rabobank Hoofdkantoor", + "address": "Croeselaan 18", + "postalCode": "", + "city": "Utrecht", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-amsterdam/events/266228848", + "dateTime": "2019-11-15T08:30+01:00", + "endTime": "2019-11-15T18:30+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Amsterdam" + }, + { + "title": "FrontMania Conference 2019", + "description": "This year we planned on going big! At the 15th of November, together with FrontMania, we will organize a conference with many great Frontend Guru's. We've got some of the best speakers from all over the world: Andre Staltz Lee Boonstra Felix Reisenberg Katerina Skroumpelou Covering topics like: Cloudflare workers Dialogflow NodeJs on Mobile Blink browser engine webassembly puppeteer and many more See the FrontMania website (http://www.frontmania.com) for more information about speakers, schedule and tickets*. Get your tickets* directly over here: https://www.eventbrite.nl/e/tickets-frontmania-conference-2019-58636364946?aff=meetupguru the first 25 can use this code to get an extra 50% discount: Guru_Frontend_Maniacs *RSVPing to this event doesn't give you access yet, you need to get a conference ticket at the FrontMania website.", + "venue": { + "name": "Rabobank", + "address": "Croeselaan 18", + "postalCode": "", + "city": "Utrecht", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/266228265", + "dateTime": "2019-11-15T08:30+01:00", + "endTime": "2019-11-15T18:30+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "By popular demand: More lightning talks in Eindhoven!", + "description": "Lightning talks?! Yes! Short, powerful lightning talks (max. 10 minutes) and more time (10 - 20 minutes) for questions and conversations. Have you made something you are proud of? Do you want to discuss your own processes with a group of like-minded people? Share it with your meetup members. Some examples, just to name a few: A new framework or work approach An undiscovered verb that turns out to be a JavaScript tool The latest in CSS animations But also graphql, rest and integration solutions Devops / full-stack; CI/CD If you have something interesting to talk about, we got an audience of peers that listen (and ask questions!) Do you want to fill in one of the slots? Let us know in the comments at the bottom of this page. Program · 18.00 Walk-in (pizza is provided) · 18.30 Welcome · 18.45 Lightning talk #1: \"A Superficial Deep Dive into Visualization of Software\" by Joris Kraak, GN ReSound. · 19.10 Lightning talk #2: \"OpenAPI?! 🤔: Exploring the front-end possibilities of the OpenAPI specification.\" by Maarten van Hoof, ISAAC · 19.35 Break · 19.45 Lightning talk #3: [your talk here?] · 20.10 Lightning talk #4: \"Trusted Web Activity (TWA)\" by Lucien Immink, ISAAC · 20.35 Drinks Don't be shy and share your ideas. You can contact us via Meetup or ellen@isaac.nl or lucien@isaac.nl Nothing more easy for a programmer to shoot at code that he/she has not written him/herself. However, software is not written by programmers, but by people. People who have the best intentions when writing software. The whole purpose of group discussions is to constructively gain and share new insights and to provide each other with positive, critical feedback.", + "venue": { + "name": "ISAAC", + "address": "Marconilaan 16", + "postalCode": "", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/264338998", + "dateTime": "2019-10-08T18:00+02:00", + "endTime": "2019-10-08T21:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "Albelli QE Meetup", + "description": "This time Frontend coding NL teamed up with Albelli to have a nice meetup on Quality Engineering. Why? The two craftmenships are getting closer to each other, and subsequently more developers get interested in this area of expertise. And ... there is a specific talk on frontend testing as well. To top it all, what about the view (see picture) you will have during this meetup on the top floor of Albelli's office :-) What is the setup? 17:30 Walk in / Drinks / Dinner: 18:15 Kickoff 18:30 Continuous Testing with AWS Lambda (30 mins) 19:15: Common Pitfalls in Automated Frontend Testing (30 mins) 20:00 Load testing at Albelli (30 mins) 20:45 Close / Networking More info in the presentation: Continuous Testing with AWS Lambda - Bo Wang The industry trend on Continuous Delivery has made Continuous Testing an important goal for the team. This aims to provide immediate feedback but test duration is often the bottleneck. In this presentation, Bo will describe how we use AWS lambda and other services to run tests in parallel and accelerate test execution. He will also talk about integrating the tests into Continuous Delivery pipeline in Jenkins. Take away: • Apply Micro Service to test architecture • Running test on AWS lambda • Continuous Delivery pipeline with Jenkins Bo Wang works at Albelli as a Senior Quality Engineer. With 16 years of experience in software testing, he has a background in telecommunications, banking and E-commerce domains. Bo has extensive experience in both Web API and Web UI tests; he focuses on test automation and Continuous Testing in Agile teams. Common Pitfalls in Automated Frontend Testing - Giovanni Rago As part of the industry's shift left trend, automated UI testing has been a staple in many organizations’ QA effort for several years now. Whether fully integrated as automated quality gate in a continuous delivery pipeline, or just as a set of nightly runs, UI test suites still pose a challenge to many organizations. In this talk, Giovanni will discuss: • Sticking points big and small, organizations are reporting from the field • Best practices on how to avoid them • These will range from the technical to the more strategic, with examples presented when possible. Giovanni Rago is a Solutions Engineer at Sauce Labs EMEA. Giovanni is responsible for providing in-depth technical advice to customers about how to be successful with their automation and CI/CD efforts. His previous roles involved leading Customer Success, Support and Test Automation during which he has implemented automated tests at multiple different companies. Load testing at Albelli - Denys Ulyanov • What happens at Albelli during Black Friday? • What is the load we expect? • What are the business concerns? • What are the technical challenges? • How are we solving them? These are some of the questions Denys tries to answer with his presentation of Load Testing. He'll describe the different solutions tried and explain the reasons behind choosing what is currently used. Denys Ulyanov is a Quality engineer at Albelli with more than 10 years of experience in test automation. During his career, he has worked for e-commerce, game industry, and the American health care industry developing solutions for Obama Care. In his free time, you will find him sailing or organizing a new sailing adventure.", + "venue": { + "name": "albelli", + "address": "Stationsplein 53-57", + "postalCode": "1012 AB", + "city": "Amsterdam", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-amsterdam/events/261927236", + "dateTime": "2019-07-11T17:30+02:00", + "endTime": "2019-07-11T20:30+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Amsterdam" + }, + { + "title": "Eindhoven Front-end meetup: Lightning Talks", + "description": "Lightning talks?! Yes! This time our meet-up will take a different approach: Short, powerful lightning talks (max. 10 minutes) and more time (10 - 20 minutes) for questions and conversations. You can also provide a talk. Have you made something you are proud of? Do you want to discuss your own processes with a group of like-minded people? Talk examples, just to name a few: A new framework or work approach An undiscovered verb that turns out to be a JavaScript tool The latest in CSS animations But also graphql, rest and integration solutions Devops / full-stack; CI/CD If you have something interesting to talk about, we got an audience of peers that listen (and ask questions!) Do you want to fill in one of the slots? Let us know in the comments at the bottom of this page. Program · 18.00 Walk-in (pizza is provided) · 18.30 Welcome · 18.45 Lightning talk # 1: ‘Clean Code’ by Bart Rabeling · 19.10 Lightning talk # 2: 'Type strictness in JavaScript' by Gaya Kessler · 19.35 Break · 19.45 Lightning talk # 3: 'SvelteJS' by Eddy Vinck · 20.10 Lightning talk # 4: 'Realtime color blindness simulator PWA' by Koen Kivits · 20.35 Drinks Nothing more easy for a programmer to shoot at code that he/she has not written him/herself. However, software is not written by programmers, but by people. People who have the best intentions when writing software. The whole purpose of group discussions is to constructively gain and share new insights and to provide each other with positive, critical feedback.", + "venue": { + "name": "ISAAC", + "address": "Marconilaan 16", + "postalCode": "", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/261538805", + "dateTime": "2019-06-25T18:00+02:00", + "endTime": "2019-06-25T21:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "Find out more about Static sites & vDOM", + "description": "Following last meeting of November 2018 let's start the year with more knowledge sharing combined with pizza and a pint/soda. Topics: We'll start of with ISAAC's Technical Director Koen Peters who will talk about 'the state of static site generators' Second talk will be given by Mark op 't Hoog, Full Stack Developer at BIG Impact BV. 'It's dangerous to go alone, take this: vDOM' Hope to see you here the 26st of March!", + "venue": { + "name": "ISAAC", + "address": "Marconilaan 16", + "postalCode": "", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/258364789", + "dateTime": "2019-03-26T18:00+01:00", + "endTime": "2019-03-26T21:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "Higher order functions & custom elements", + "description": "This evening we'll cover 2 topics: Functional programming and JavaScript go hand in hand. Learn more about how higher order functions and composition can help you become a better developer; by Gaya Kessler from the Clever node and Technical functioning of web components, and how to offer them; by Lucien Immink from ISAAC We'll have room for discussion, free pizza and a drink or 2. Sign up if you want to learn more about either topic.", + "venue": { + "name": "ISAAC", + "address": "Marconilaan 16", + "postalCode": "", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-eindhoven/events/254549378", + "dateTime": "2018-11-20T18:00+01:00", + "endTime": "2018-11-20T21:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Eindhoven" + }, + { + "title": "FrontMania Conference 10% off for first 25 applicants", + "description": "On November 16th, together with FrontMania, we are organizing our first frontend conference with many awesome speakers like: Lea Verou Andre Staltz Chris Lilley Uri Goldshtein And many more!! You can find more at https://www.frontmania.com/conference/welcome, including information about the conference, schedule and tickets*. As you have been with us quite a while, the first 25 applicants get a 10% discount. Use the link below to get it done! https://www.eventbrite.nl/e/frontmania-frontend-conference-tickets-47581065247?discount=_CodingNL_FrontManiacs_ Hope to see you there!", + "venue": { + "name": "Rabobank Hoofdkantoor", + "address": "Croeselaan 18", + "postalCode": "", + "city": "Utrecht", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-amsterdam/events/255476445", + "dateTime": "2018-11-16T08:00+01:00", + "endTime": "2018-11-16T18:30+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Amsterdam" + }, + { + "title": "FrontMania Conference 2018", + "description": "This year we planned on going big! At the 16th of November, together with FrontMania, we will organize a conference with many great Frontend Guru's. We've got some of the speakers from all over the world: Lea Verou Andre Staltz Chris Lilley Uri Goldshtein and many more... See the FrontMania website (http://www.frontmania.com) for more information about speakers, schedule and tickets*. Get your tickets* directly over here: https://www.eventbrite.com/e/frontmania-frontend-conference-tickets-47581065247?aff=MeetupGuruSessions the first 25 can use this code to get an extra 10% discount: Guru_Frontend_Maniacs *RSVPing to this event doesn't give you access yet, you need to get a conference ticket at the FrontMania website.", + "venue": { + "name": "Rabobank", + "address": "Croeselaan 18", + "postalCode": "", + "city": "Utrecht", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/255446515", + "dateTime": "2018-11-16T08:00+01:00", + "endTime": "2018-11-16T18:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": " FrontMen is kicking 2018 off with two Guru Sessions from Andre Staltz!", + "description": "This international superstar will visit FrontMen within 2 weeks. Andre is called a Guru in the domain of Reactive programming (RxJS), instructor at egghead.io (https://egghead.io/instructors/andre-staltz) and builder of several open source libraries as Cycle.js, xstream, react-native-node… On the 26th Andre will give a 3-hour Workshop about ''Functional Collections'' ; getters, setters, Iterables, Iterators, Observers, Observable, Generators, AsyncIterable. 10.30 Welkom with coffee and thee (or just soda) 11.00 Start Workshop 12.30 Lunch 13.00 Continue Workshop 14.30 finish up P.S. If this day session doesn’t fit your schedule; at Wednesday 25th we organize a MeetUp at PON Automotive, where Andre will speak about Cycle.js. • What to bring Laptop!", + "venue": { + "name": "Eindhoven - KickOffices", + "address": "Frederiklaan 10-E", + "postalCode": "meetup5", + "city": "Eindhoven", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/246806621", + "dateTime": "2018-01-26T11:00+01:00", + "endTime": "2018-01-26T15:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "FrontMen and Pon Digital Solutions are kicking 2018 off with Guru Andre Staltz!", + "description": "This international superstar will visit FrontMen within 2 weeks. Andre is called a Guru in the domain of Reactive programming (RxJS), instructor at egghead.io ---->(https://egghead.io/instructors/andre-staltz) and builder of several open source libraries as Cycle.js, xstream, react-native-node… On the 25th Andre will speak at PON Autmotive in Leusden about ''Cycle.js'' and after that there will be room for discussions. 18:00 - Open 18.30 - Beers and Pizza 19:00 - Start talk Andre 20:00 - Drinks and chats with the men himself P.S. If you want to know more about Functional Collections, Andre will give a Workshop at Friday 26th in our new office in Eindhoven!", + "venue": { + "name": "PON Automotive", + "address": "Zuiderinslag", + "postalCode": "meetup142", + "city": "Leusden", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/246806401", + "dateTime": "2018-01-25T18:30+01:00", + "endTime": "2018-01-25T21:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "The awesome new stuff on the Web", + "description": "We all know that innovation is at a rapid pace within the web. In this meetup a selection of stuff we think is very useful to know and fun to work with. Agenda: 18:00 doors open, a bite and drinks 19:00 Wait, Web could do that?!? small break. 20:00 AI and speaker recognition Relax Wait, Web could do that?!? Did you know that window.length gives you the amount of frames on your browser window? Or that you can actually do some serious performance tweaks with CSS?The frontend world moves at an incredibly fast pace. New standards, frameworks and tools popping up all the time. It’s hard to keep track of what’s there and what’s not.We did (some of) the hard work for you and we’re here to talk about the things that the web on the frontend can already do today but many developers might not know yet.New CSS standards, cutting edge dev tools features and all kinds of shiny features and APIs. We want to expose some of these to you and, hopefully, make your day! A talk by Prashant Palikhe and Rafael Fernandes AI and speaker recognition Artificial Intelligence has entered the realm of the web, with frameworks like TensorFlow and deeplearn.js. At Eenvoud, we did not have any experience with AI yet, so we set out to see if it was possible to develop a simpel SPA (with Vue.js), that we could train to recoginize different people when they speak. During the meetup, we will present our findings and try to actively involve the crowd. So don't forget to bring your voice! See you all on the 21st!", + "venue": { + "name": "Eenvoud Media Amsterdam", + "address": "Frederik Hendrikstraat 23HS, 1052 HJ", + "postalCode": "", + "city": "Amsterdam", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-amsterdam/events/243137748", + "dateTime": "2017-09-21T18:00+02:00", + "endTime": "2017-09-21T18:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Amsterdam" + }, + { + "title": "Web Components & Websites: The good, the bad, the ugly and the fast", + "description": "Doors open at 18:00 for a drink and a byte. A fully packed program after that. We start with Web Components: the Good, the Bad and the Ugly. We made a last minute change as the talks about the Good, the Bad ant the Ugly were too much alike. So now we start with: Christian Andrade and Rick de Hoop on: Polymer: The ugly truth Web components are awesome, but like every new technology not everything is perfect. Christian and Rick will present you some of the learnings/problems after one and half years of working with Polymer at IceMobile Followed by Mikhail Bashkirov with: Polymer component inspector New technologies often lack tools that are common for mature technologies. Polymer is not an exception. During a live coding session Mikhail will show the problems he faced while developing components with Polymer and the solution he came up with to improve his experience. After that we switch to Fast and Furious websites done by Prashant Palikhe. His talk: Journey to high-performing websites Prashant will take you through the journey of how NonDutch improved performance of nondutch.nl by applying several industry best practices and cutting-edge technologies. He will also look into other newcomers in the world of web performance and tell how we can apply those new techniques now or in the near future to improve the performance of web applications even more. Then relax have another beer and doors will close at 21:30. So be in time as we must start prompt to fit the full and fabulous program J Cheers, Rodney", + "venue": { + "name": "IceMobile", + "address": "Mensinge 2, 1083 HA", + "postalCode": "", + "city": "Amsterdam", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-amsterdam/events/239380127", + "dateTime": "2017-05-02T18:00+02:00", + "endTime": "2017-05-02T18:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Amsterdam" + }, + { + "title": "Frontend Coding Service workers meetup", + "description": "Service workers, we have all at least heard about it and for this meetup we go a little bit more in depth. We do this by showing the different scenario's worked out in an open source app and a real case scenario on caching. This all in a very cool venue, the Zamro office on walking distance from Amsterdam CS with an nice view over the IJ. We start at 18:00 with food and drinks and at 19:00 we start the first talk with: Rafael Fernandes on Service Worker Crash Course. So you've heard about service workers, progressive web apps, how they're the \"next big thing\" for a lot of web developers and frontend developers and all that jazz… Well, I'm not gonna preach you the PWA gospel, but I will try to share my love for the emerging offline-first attitude. I'll be using a simple open source PW for this and show what is the code behind a generic service worker that will work for most scenarios, tell you how it works, hopefully teach you a few tricks and have you excited about implementing it in your projects. After that we have: Antoni Vives on Service Workers, the gotchas in your path to production. From the moment someone accesses your site the loading time is a critical factor. Statistics have proven to us that if it takes more than 3 seconds to load, you've already lost half of your users. Fortunately modern browsers offer different storage technologies to cache information so it only needs to be downloaded once from your network. This is the largest loading performance win you can implement today.We all know that caching is hard so this talk will cover the best practices and design patterns to make your caching strategies production ready. And the most important (and coolest thing) is that I'll demonstrate how to make them work together with one of the most cutting edge technologies for caching: service workers ! Then a quick drink again enjoying the scenery and the knowledge gained. See you on the 7th", + "venue": { + "name": "Zamro", + "address": "Oosterdoksstraat 80", + "postalCode": "", + "city": "Amsterdam", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-amsterdam/events/237315359", + "dateTime": "2017-02-07T18:00+01:00", + "endTime": "2017-02-07T18:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Amsterdam" + }, + { + "title": "Harry Roberts meetup!", + "description": "Get your ticket here: https://frontmen.eventbrite.nl (https://frontmen.eventbrite.nl/) Harry Roberts is a one-of-a-kind CSS architect and international speaker. He provides CSS and performance consultancy to companies of all sizes across the globe. Not just clients and environments, Harry is teaming with Google, Kickstarter and Etsy to make the world a better CSS place. FrontMen is proud to announce that he will join us for a full-day workshop internally and in cooperation with ING will give a solid talk for the Dutch Frontend community that's open for everyone interested. Topic will be: Refactoring CSS - The Three I's: Identify, Isolate, Implement' We will additionally invite some of the attendees to join our full-day workshop @ FrontMen office! \"Harry helped our team level up their scalable CSS architecture skills, and to say that he had a large impact on our work is an understatement. We can’t recommend him enough.\" - Addy Osmani (Google) http://photos3.meetupstatic.com/photos/event/c/a/1/b/600_455751739.jpeg", + "venue": { + "name": "ING - Amsterdamse Poort", + "address": "Bijlmerplein 888", + "postalCode": "", + "city": " 1102 MG Amsterdam ZO", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/235321106", + "dateTime": "2016-11-22T18:00+01:00", + "endTime": "2016-11-22T18:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "Frontend Coding CSS Meetup", + "description": "Frontend Coders know a lot about JavaScript and its surrounding frameworks, libraries, etc. They don't give CSS the same attention which is understandable. It can however be useful to have a quick look as it can give coders some nice features and developments are on a very fast pace here as well. This meetup offers you that quick look. Next to that you have a change of winning a full day workshop with Harry Roberts (https://twitter.com/csswizardry) as well, a Guru on this subject. This workshop will on the 22nd of November and we will raffle two free tickets under the attendees off this meetup. Back to the meetup itself, we start at 18:00 with food and drinks. At 19;00 the talks will start and we have: Kristijan Ristovski with: CSS in JS. Wait ... What? It is a talk about how JavaScript can help us with the styling of our apps, and solve all the problems that we have with CSS, different methodologies, and preprocessors. Next to that we have: Alexander Gerasimov with: CSS Quickdraw Our CSS is fast, but are you? Can you survive in the Wild West of front-end? Test your reflexes and stylesheet skills in a multiplayer game. Compete against your friends and colleagues to prove you have true CSS grit! (Please bring your laptop!) Then a quick drink again and we're done for the evening, updated on CSS! So see you at the 17th.", + "venue": { + "name": "Virtual Affairs", + "address": "Daniël Goedkoopstraat 14", + "postalCode": "", + "city": "Amsterdam", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-amsterdam/events/235017464", + "dateTime": "2016-11-17T18:00+01:00", + "endTime": "2016-11-17T18:00+01:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Amsterdam" + }, + { + "title": "Frontend Coding Midsummer Meetup", + "description": "For those of us who like to enjoy the summer in The Netherlands and maybe extend it later on abroad, we have the midsummer meetup. In our beautiful industrial building, where great things, like the restaurant of the euromast, were moulded, we like to share great ways with you to shape or improve your frontend coding. We start at 18:00 with food and drinks, and you can enjoy our pool and football table or just get acquainted. At 19;00 the talks will start and we have: Prashant Palikhe with his talk about Chrome DevTools: Chrome DevTools come with lots of features that allow developers to debug problems faster, stay productive and profile their apps for bottlenecks. Prashant will share his workflow on Chrome DevTools along with some handy tips and tricks.Some of the features that he will talk about are: Profiling load-time performance using network waterfall view Profiling runtime performance using timeline view Auditing web app for memory leaks Emulating networks and devices capabilities Staying productive with shortcuts Debugging in the DevTools David Ferreira with his talk about Web Components: In his daily work, David is working to merge several component libraries for frontend development into one central library, for a large enterprise. These components are being written in Angular Components, as they need to deliver ASAP the final product. However, David and his team are looking to implement Web Components in a near future. They want to use Webcomponents.JS polyfills only, so they can keep the application as clean and framework-agnostic as they can. So David has spent several hours a week investigating the usual suspects for a components library: Web Components. However some problems came up, and much more if we talk about old browsers compatibility. What David is going to share, are the difficulties he found dealing with the business, how to keep the application well structured and organized to start developing Web Components with ES6 and SASS, and how to implement quickly the 4 web components specifications: Custom elements; HTML Imports; Templates; Shadow DOM. Rafael Fernandes and Antoni Huguet Vives with their talk “Surviving to the offline status”: They are going to show the basic principles to design an application with a “thinking offline first” approach. To do that they will cover technologies like: Web workers; Service workers; IndexedDB. With this talk they want to give you a good overview about the future web standards for offline and low connectivity scenarios.", + "venue": { + "name": "Werkspoorkathedraal", + "address": "Tractieweg 41", + "postalCode": "", + "city": "Utrecht", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-amsterdam/events/231619347", + "dateTime": "2016-08-03T18:00+02:00", + "endTime": "2016-08-03T21:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Amsterdam" + }, + { + "title": "Join 2 Advanced JavaScript talks from Kyle Simpson at RTL (for free)", + "description": "We are still very proud to tell that Kyle Simpson is visiting FrontMen for a 3-day experience. Even better: together with RTL Nederland (one of our clients, we are currently building Videoland streaming platform with them) we want to invite you all to join 2 talks given by Kyle at RTL Media Park. Entrance will be free. The topics will cover Advanced JavaScript and Node.js Foundations - Kyle style.", + "venue": { + "name": "Media Park, Villa Heideheuvel", + "address": "Bob Spaaklaantje 2a", + "postalCode": "", + "city": "Hilversum", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/231507408", + "dateTime": "2016-06-23T15:00+02:00", + "endTime": "2016-06-23T15:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + }, + { + "title": "Have a drink with Kyle Simpson", + "description": "Yes! We are proud to announce that Kyle Simpson is visiting us for a 3-day experience. One of the events that is publicly available for JavaScript enthousiasts in NL is our drink with Kyle at Werkspoorkathedraal Utrecht. Right in front of our office we will setup a mobile beer cafe inside the former train-construction hall. Subscribe and join us!", + "venue": { + "name": "Werkspoorkathedraal", + "address": "Tractieweg 41", + "postalCode": "", + "city": "Utrecht", + "country": "nl" + }, + "eventUrl": "https://www.meetup.com/coven-of-wisdom-utrecht/events/231392306", + "dateTime": "2016-06-22T19:00+02:00", + "endTime": "2016-06-22T19:00+02:00", + "timezone": "Europe/Amsterdam", + "groupName": "Coven of Wisdom - Utrecht" + } + ] +} diff --git a/layouts/PostLayout.js b/layouts/PostLayout.js index 55fcbe58..2e06345d 100644 --- a/layouts/PostLayout.js +++ b/layouts/PostLayout.js @@ -13,8 +13,18 @@ import formatDate from '@/lib/utils/formatDate' import Arrow from '@/data/arrow.svg' import Clock from '@/data/clock.svg' import SeriePlaylist from '@/components/SeriePlaylist' +import EventCalendar from '@/components/EventCalendar' +import { hasFutureEvents } from '@/lib/events' -export default function PostLayout({ frontMatter, authorDetails, serie, next, prev, children }) { +export default function PostLayout({ + frontMatter, + authorDetails, + serie, + events, + next, + prev, + children, +}) { const { slug, date, title, tags, images, summary, readingTime } = frontMatter const { theme } = useBrandingTheme() const authorNames = new Intl.ListFormat('en').format(authorDetails.map(({ name }) => name)) @@ -156,8 +166,15 @@ export default function PostLayout({ frontMatter, authorDetails, serie, next, pr
{children} + +
-
+ {hasFutureEvents(events) && ( +
+

Upcoming events

+ +
+ )}

Share

diff --git a/layouts/SerieLayout.js b/layouts/SerieLayout.js index 68177764..99429ab9 100644 --- a/layouts/SerieLayout.js +++ b/layouts/SerieLayout.js @@ -3,6 +3,7 @@ import removeMarkdown from 'markdown-to-text' import Link from '@/components/Link' import { BlogSEO } from '@/components/SEO' import Image from '@/components/Image' +import Share from '@/components/Share' import Tag from '@/components/Tag' import siteMetadata from '@/data/siteMetadata' import Serie from '@/components/Serie' @@ -13,8 +14,18 @@ import formatDate from '@/lib/utils/formatDate' import Arrow from '@/data/arrow.svg' import Clock from '@/data/clock.svg' import { Children } from 'react' +import EventCalendar from '@/components/EventCalendar' +import { hasFutureEvents } from '@/lib/events' -export default function PostLayout({ frontMatter, authorDetails, posts, next, prev, children }) { +export default function PostLayout({ + frontMatter, + authorDetails, + posts, + events, + next, + prev, + children, +}) { const { slug, date, title, tags, images, summary, readingTime } = frontMatter const { theme } = useBrandingTheme() const authorNames = new Intl.ListFormat('en').format(authorDetails.map(({ name }) => name)) @@ -147,8 +158,20 @@ export default function PostLayout({ frontMatter, authorDetails, posts, next, pr {Children.count > 0 && (
{children} +
+
+ {hasFutureEvents(events) && ( +
+

Upcoming events

+ +
+ )} +

Share

+ +
)} +
    {!posts.length && 'No articles found.'} diff --git a/lib/events.js b/lib/events.js new file mode 100644 index 00000000..60e301da --- /dev/null +++ b/lib/events.js @@ -0,0 +1,21 @@ +import events from '@/data/events.json' + +export async function getAllEvents() { + return events +} + +export async function getLatestEvents(num = 5) { + const { events } = await getAllEvents() + + return { + events: events.slice(0, num), + } +} + +export const isFutureEvent = (date) => { + return new Date(date) > new Date() +} + +export const hasFutureEvents = (events) => { + return events.some((event) => isFutureEvent(event.dateTime)) +} diff --git a/package.json b/package.json index 38d2b1ff..eec1f17f 100644 --- a/package.json +++ b/package.json @@ -25,15 +25,18 @@ "@tailwindcss/line-clamp": "^0.3.1", "@tailwindcss/typography": "^0.5.0", "autoprefixer": "^10.4.5", + "date-fns": "^3.6.0", "esbuild": "^0.13.13", "github-slugger": "^1.3.0", "gray-matter": "^4.0.2", "image-size": "1.0.0", "markdown-it": "^13.0.1", "markdown-to-text": "^0.1.1", + "marked": "9", "mdx-bundler": "^8.0.0", "next": "^12.1.6", "next-themes": "^0.0.14", + "node-html-parser": "^6.1.13", "postcss": "^8.4.5", "preact": "^10.6.2", "react": "17.0.2", diff --git a/pages/articles/[...slug].js b/pages/articles/[...slug].js index 06fa1cca..a11d5d13 100644 --- a/pages/articles/[...slug].js +++ b/pages/articles/[...slug].js @@ -4,6 +4,7 @@ import generateRss from '@/lib/generate-rss' import { MDXLayoutRenderer } from '@/components/MDXComponents' import { formatSlug, getAllFilesFrontMatter, getFileBySlug, getFiles } from '@/lib/mdx' import { getRelatedJobs } from '@/lib/jobs' +import { getLatestEvents } from '@/lib/events' import { getSerie } from '@/lib/series' import JobGrid from '@/components/JobGrid' @@ -44,12 +45,16 @@ export async function getStaticProps({ params }) { const searchString = authorDetails.reduce((acc, author) => acc + author.occupation + ' ', '') const { jobs } = await getRelatedJobs(4, searchString) + const { events } = await getLatestEvents(3) + const theme = post.frontMatter.theme || 'blue' - return { props: { post, authorDetails, prev, next, jobs, serie, theme } } + return { + props: { post, authorDetails, prev, next, jobs, events, serie, theme }, + } } -export default function Blog({ post, authorDetails, prev, next, jobs, serie }) { +export default function Blog({ post, authorDetails, prev, next, jobs, events, serie }) { const { mdxSource, toc, frontMatter } = post return ( @@ -65,7 +70,9 @@ export default function Blog({ post, authorDetails, prev, next, jobs, serie }) { prev={prev} next={next} serie={serie} + events={events} /> +

    Jobs diff --git a/pages/index.js b/pages/index.js index 2da4ae98..99e86a14 100644 --- a/pages/index.js +++ b/pages/index.js @@ -4,8 +4,10 @@ import siteMetadata from '@/data/siteMetadata' import { getAllFilesFrontMatter } from '@/lib/mdx' import { getLatestVideos } from '@/lib/youtube' import { getLatestJobs } from '@/lib/jobs' +import { getLatestEvents } from '@/lib/events' import Image from '@/components/Image' import JobGrid from '@/components/JobGrid' +import EventCarousel from '@/components/EventCarousel' import VideoCarousel from '@/components/VideoCarousel' import { getAllAuthors } from '@/lib/authors' import SectionTitle from '@/components/SectionTitle' @@ -25,14 +27,17 @@ export async function getStaticProps() { ) const { videos } = await getLatestVideos(10) const { jobs } = await getLatestJobs(9) + const { events } = await getLatestEvents(9) const allAuthors = await getAllAuthors() const contributors = shuffle(allAuthors.filter((author) => author.slug[0] !== 'default')) - return { props: { posts, videos, jobs, contributors, theme: 'green' } } + return { + props: { posts, videos, jobs, events, contributors, theme: 'green' }, + } } -export default function Home({ posts, videos, jobs, contributors }) { +export default function Home({ posts, videos, jobs, events, contributors }) { const { theme } = useBrandingTheme() const authors = contributors.reduce((acc, author) => { @@ -162,6 +167,11 @@ export default function Home({ posts, videos, jobs, contributors }) { + + Our latest events + + + Some of our jobs diff --git a/pages/series/[...slug].js b/pages/series/[...slug].js index 995c4e19..c8d2d3b4 100644 --- a/pages/series/[...slug].js +++ b/pages/series/[...slug].js @@ -4,6 +4,7 @@ import generateRss from '@/lib/generate-rss' import { MDXLayoutRenderer } from '@/components/MDXComponents' import { formatSlug, getAllFilesFrontMatter, getFileBySlug, getFiles } from '@/lib/mdx' import { getLatestJobs } from '@/lib/jobs' +import { getLatestEvents } from '@/lib/events' import { getSerie } from '@/lib/series' import JobGrid from '@/components/JobGrid' import path from 'path' @@ -48,12 +49,14 @@ export async function getStaticProps({ params }) { const { jobs } = await getLatestJobs(4) + const { events } = await getLatestEvents(3) + const theme = serie.frontMatter.theme || 'blue' - return { props: { serie, posts, authorDetails, prev, next, jobs, theme } } + return { props: { serie, posts, authorDetails, prev, next, jobs, events, theme } } } -export default function Serie({ posts, authorDetails, prev, next, jobs, serie }) { +export default function Serie({ posts, authorDetails, prev, next, jobs, events, serie }) { const { mdxSource, toc, frontMatter } = serie return ( @@ -70,6 +73,7 @@ export default function Serie({ posts, authorDetails, prev, next, jobs, serie }) next={next} serie={serie} posts={posts} + events={events} />
    diff --git a/scripts/events.js b/scripts/events.js new file mode 100644 index 00000000..dbc2ec70 --- /dev/null +++ b/scripts/events.js @@ -0,0 +1,120 @@ +const { compareAsc, compareDesc } = require('date-fns') +const { marked } = require('marked') +const { parse } = require('node-html-parser') +const fs = require('fs') +const path = require('path') +const fetch = (...args) => import('node-fetch').then(({ default: fetch }) => fetch(...args)) + +const COW_GROUPS = [ + 'coven-of-wisdom', + 'coven-of-wisdom-herentals', + 'coven-of-wisdom-amsterdam', + 'coven-of-wisdom-utrecht', +] + +function getGroupWithEventsByUrlName(groupUrlName) { + const query = `{ + groupByUrlname(urlname: "${groupUrlName}") { + name + upcomingEvents(input: { first: 10 }) { + edges { + node { + title + description + venue { + name + address + postalCode + city + country + } + eventUrl + dateTime + endTime + timezone + } + } + } + pastEvents(input: {}) { + edges { + node { + title + description + venue { + name + address + postalCode + city + country + } + eventUrl + dateTime + endTime + timezone + } + } + } + } + }` + + return fetch('https://api.meetup.com/gql', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ query }), + }) + .then((res) => res.json()) + .then((res) => { + if (res.errors) { + throw new Error(JSON.stringify(res.errors)) + } + + return res.data + }) +} + +function stripHtml(input) { + const parsed = parse(input) + const text = parsed.textContent || '' + const trimmed = text + .trim() + .replace(/\s+/g, ' ') + .replace(/[\r\n]+/g, ' ') + return trimmed +} + +function parseMarkdown(input) { + return marked.parse(input) +} + +function transformGroupsToEvents(events, eventType) { + const normalizedEvents = events.map((event) => + event.groupByUrlname[eventType].edges.map((edge) => ({ + ...edge.node, + groupName: event.groupByUrlname.name, + })) + ) + const flattenedEvents = normalizedEvents.flat() + const sanitizedEvents = flattenedEvents.map((event) => ({ + ...event, + description: stripHtml(parseMarkdown(event.description)), + })) + const sortedEvents = sanitizedEvents.sort((a, b) => { + const operation = eventType === 'upcomingEvents' ? compareAsc : compareDesc + return operation(new Date(a.dateTime), new Date(b.dateTime)) + }) + return sortedEvents +} +const getEvents = async () => { + const groups = await Promise.all(COW_GROUPS.map(getGroupWithEventsByUrlName)) + const upcomingEvents = transformGroupsToEvents(groups, 'upcomingEvents') + const pastEvents = transformGroupsToEvents(groups, 'pastEvents') + + fs.writeFileSync( + path.resolve('data/events.json'), + JSON.stringify({ events: [...upcomingEvents, ...pastEvents] }) + ) +} + +getEvents() diff --git a/yarn.lock b/yarn.lock index 2de4392d..309630ce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2385,6 +2385,17 @@ css-select@^4.1.3: domutils "^2.8.0" nth-check "^2.0.1" +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + css-selector-parser@^1.0.0: version "1.4.1" resolved "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz" @@ -2398,7 +2409,7 @@ css-tree@^1.1.2, css-tree@^1.1.3: mdn-data "2.0.14" source-map "^0.6.1" -css-what@^6.0.1: +css-what@^6.0.1, css-what@^6.1.0: version "6.1.0" resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== @@ -2433,6 +2444,11 @@ data-uri-to-buffer@^4.0.0: resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz" integrity sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA== +date-fns@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-3.6.0.tgz#f20ca4fe94f8b754951b24240676e8618c0206bf" + integrity sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww== + deasync@^0.1.0: version "0.1.26" resolved "https://registry.npmjs.org/deasync/-/deasync-0.1.26.tgz" @@ -3895,6 +3911,11 @@ hastscript@^7.0.0: property-information "^6.0.0" space-separated-tokens "^2.0.0" +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + html-enumerated-attributes@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/html-enumerated-attributes/-/html-enumerated-attributes-0.1.0.tgz" @@ -4568,6 +4589,11 @@ markdown-to-text@^0.1.1: "@types/chai" "^4.2.14" "@types/mocha" "^8.2.0" +marked@9: + version "9.1.6" + resolved "https://registry.yarnpkg.com/marked/-/marked-9.1.6.tgz#5d2a3f8180abfbc5d62e3258a38a1c19c0381695" + integrity sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q== + mdast-util-definitions@^5.0.0: version "5.1.0" resolved "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.0.tgz" @@ -5428,6 +5454,14 @@ node-gyp-build@^4.3.0: resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz" integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== +node-html-parser@^6.1.13: + version "6.1.13" + resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-6.1.13.tgz#a1df799b83df5c6743fcd92740ba14682083b7e4" + integrity sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg== + dependencies: + css-select "^5.1.0" + he "1.2.0" + node-releases@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz"