- Virtual April PJUG Meetup
Hello PJUG! We got an opportunity from the folks at SecureCodeWarrior to help run a little coding challenge for everyone! It is free to participate, and seems like a lot of fun to go through! I know I will be going through their psuedocode, they have most modern languages available if you want to pick something else besides Java! The competition will be open for 72 hours, you can hop on the website to practice before if you choose! #Online Java Secure Coding Tournament 🎁with prizes! Join us for an online gamified Java secure coding tournament! Compete against your fellow Portland Java User Group peers to identify & fix critical vulnerabilities in real-to-life Java code snippets! Prizes: 🎁1st = Secure Code Warrior hoodie 🎁2nd and 3rd = Secure Code Warrior t-shirt Instructions for playing: ✅1) Register for the Secure Code Warrior platform here: https://discover.securecodewarrior.com/PDXJUG-tournament.html ✅2) Once logged in: click “Tournaments” ✅3) Join the Portland Java User Group Tournament 🎉 Monitor the live leaderboard to see how you're performing! The Secure Code Warrior platform will be open for a month to you, so feel free to practice in the “Training” tab.
- PJUG February Meetup!
- PJUG December Meetup!
Hi Everyone! I am taking over for coordinating the meetups for PJUG! We will bring pizza, let me know if you have any dietary restrictions, allergies, etc for the meetup! Would love to make these a monthly occurrence, feel free to contact me at [masked] if you would like to present as well! OpenAPI and Java OpenAPI is an essential building block for modern Java applications. OpenAPI has become the de facto standard for describing REST API's. Come learn about OpenAPI tools and libraries in the Java ecosystem. Sean Sullivan is a Principal Software Engineer in Portland Oregon. He works on platform systems at Twilio. He is passionate about Scala, code generators, and automated delivery pipelines.
- PJUG September Meetup!
Hi Everyone! I am taking over for coordinating the meetups for PJUG! We will bring pizza, let me know if you have any dietary restrictions, allergies, etc for the meetup! Would love to make these a monthly occurrence, feel free to contact me at [masked] if you would like to present as well! Continuous Delivery with GitHub Actions GitHub Actions enable developers to automate builds and deploy code. Actions are an essential building block for continuous delivery pipelines. We’ll review Github’s pre-built Actions and learn how to setup GitHub CI/CD Workflows for Java applications. Sean Sullivan is a Principal Software Engineer in Portland Oregon. He works on platform systems at Twilio. He is passionate about Scala, code generators, and automated delivery pipelines.
- Implementing a Simple JVM in Java and Rust
The JVM is a truly remarkable piece of software, but it is still just a computer program, not magic! In this talk, I will explain how we might start to implement a JVM from scratch, using the Java programming language. Fundamental concepts such as the bytecode interpreter, classfile parsing and memory management will be explained, using an open-source implementation as reference. We will build up a working interpreter capable of executing simple methods, and then discuss the limitations of the simple JVM. The second half of the talk will be to show how the Rust programming language provides a good alternative implementation language for our simple JVM. We will showcase some basic Rust language features and show how they can be used to provide a version of our JVM that is much cleaner and easier to understand, even if you've never seen Rust code before! Speaker: Ben Evans Twitter: @kittylyst Co-founder of jClarity and a previous representative of the user community as a voting member on Java’s governing body — the JCP Executive Committee (for 6 years) — Ben is regarded as an authority within the Java community. He is the author of five books (‘The Well-Grounded Java Developer’ and the new editions of ‘Java in a Nutshell’, ‘Java: The Legend’ and ‘Optimizing Java’) and writes regularly for industry publications. Location: Grey WACCOM Building Pearl West 1455 NW Irving Street #600 Portland, OR 97202
- Reactive Streams with Spring Reactor-Core
We'll have two 45 minute presentations for this meeting. -------- PRESENTATION 1 -------- ABSTRACT: Imagine the rains in Portland (difficult, but do try). Clouds produce the rain, the storm-drain drains it. This is a good analogy for what reactive-streams has to offer. Cloud is the Producer of the stream of rain drops Storm Drains are the Subscriber. To take the analogy further - the raindrops can be produced by multiple clouds, hence the production can be asynchronous and similarly there will be a lot of different storm drains, thus the draining can be asynchronous. Reactive streams are designed to work with such kinds of asynchronous producers and consumers. An interesting thought is what happens if the storm drains cannot drain faster than it rains - it floods. What if we could prevent it - this is where a concept called back-pressure comes in, what if the storm drains could send a signal to the cloud about the rate that they are comfortable consuming the raindrops at! If this intrigues you, we will dig deep into the Reactive Streams specification(https://github.com/reactive-streams/reactive-streams-jvm/) and how Spring Reactor-core project(https://projectreactor.io/) makes it simple to produce and consume streams of data. SPEAKER: Biju Kunjummen is a Lead Software Engineer at Nike and works on Nike’s homegrown CMS product (Content Management System) which powers the content of Nike.com, Nike App and other Nike experiences. He has worked in the software industry for 20 years and loves to share his learnings. He blogs at http://www.java-allandsundry.com/ -------- PRESENTATION 2 -------- ABSTRACT: Even in cloud environments, a lot of engineering teams still spend plenty of time thinking about infrastructure (VMs, load balancers, auto-scaling groups, etc...). Let's talk about Platform as a Service and the trade offs. This talk focuses on how to quickly get Java workloads running in Azure and how to scale them. We'll include a demo that showcases PaaS workflow integration into common Java tool chains. SPEAKER: Tyler Holmes is a CTO and Practice Lead for Axian, a local software and data engineering firm. He's been working in various stacks doing consulting/professional services for 15+ years. Tyler Holmes: https://www.linkedin.com/in/tylerholmes/
- Deploying Kafka Streams Applications with Docker and Kubernetes
- 1) 7 Principles of Productive Developers 2) Cloud Native Enterprise Java & Istio
Our feature speaker for this meeting is Sebastian Daschner, a Lead Java Developer Advocate for IBM and esteemed Java Champion. He will be giving the following two presentations: --- PART 1 --- TITLE: 7 Principles of Productive Software Developers ABSTRACT: When working as a software developer, as well as in any other job, it’s important to be productive and to get things done. You want to focus on what adds value, increase your development speed, and cut out as many of the cumbersome, boring and repetitive tasks as possible. This session shows seven principles how to accomplish the goal of being more effective and efficient as a Java developer. These principles include technical as well as self-organizational aspects. We’ll see how to implement them, especially how we can get the most out of our tools, why the invention of the mouse was a setback in productivity, and which mindsets to follow. This talk is not limited to specific tools or technologies yet it’ll provide examples and experiences, and it is brought to you by a German — from the country of efficiency. --- PART 2 --- TITLE: Cloud Native, Service-Meshed Java Enterprise With Istio ABSTRACT: In enterprise software, we see more and more of the cloud native technologies, especially container orchestration and service meshes, emerging and slowly taking over the market. Developers are facing the challenge which technology to choose to implement microservices for a cloud native setting. Java Enterprise has been used for software solutions for a long time and its APIs are well-established in the ecosystem. However, is it possible to develop cloud native, service-meshed Java Enterprise applications that fulfill concerns such as scalability, resiliency, and telemetry — in an effective, manageable way? This session shows how to implement service-meshed applications using Java EE 8 and MicroProfile. We will develop a mesh of microservices, managed by Kubernetes and Istio. We’ll see why especially the Java Enterprise approach fits the concepts behind container orchestration and service meshes well. The session also includes how to integrate the required cross-cutting concerns, such as monitoring, tracing, or resiliency into our applications, where developers have to actively integrate technology themselves and where the platform support us. Especially the cooperation between Java EE and MicroProfile provides a potent technology. All of the time will be spent live-coding while explaining the concepts and solutions. SPEAKER: Sebastian Daschner Lead Java Developer Advocate for IBM and renowned Java Champion https://www.sebastian-daschner.com/
- 1) Reactions to Amazon Corretto. 2) Serverless Database, FaunaDB.
This meeting will have two parts. Ian Downard will begin with a short talk about an OpenJDK distribution from Amazon called Corretto. Then Chris Anderson from FaunaDB will talk about the principles of serverless databases and tradeoffs in guaranteed consistency and global replication. # TITLE: Reactions to the latest OpenJDK, Amazon Corretto # SPEAKER: Ian Downard # ABSTRACT: The latest Java distribution to be released into the world has come from Amazon in the form of an OpenJDK distribution they call Corretto. This exciting news has many Java enthusiasts wondering what they should consider when evaluating JDKs for building and running Java software. In this very short presentation, Ian will summarize the history and principles of OpenJDK so that we can better understand how Corretto delivers on the expectation that it be secure, stable, and free. # TITLE: Design Patterns for Serverless Databases # SPEAKER: Chris Anderson # ABSTRACT: Over the past decade, application developers have discovered that it is extremely difficult to build bug-free applications over database systems that do not guarantee consistency. In recent articles, Prof. Daniel Abadi went into deep technical detail comparing Google Spanner and Calvin, the two major approaches to guaranteeing consistency in geo-replicated database systems - global consensus vs partitioned consensus. FaunaDB’s architecture does not experience the latency cost of delaying transactions by clock skew uncertainty, a cost that is present in many other consistent database systems. In this talk I'll show how deterministic transaction resolution means FaunaDB only needs one round of consensus. You'll learn how consistency is managed in FaunaDB and analyze its architectural advantages over Google Spanner and Spanner derivatives such as CockroachDB. # SPEAKER BIO: Chris is a cofounder of Couchbase and architect of Couchbase Mobile. He holds a bachelor’s degree in philosophy from Reed College, and is an O'Reilly technical book author. He leads Fauna's developer community.