Recent Posts
Archives

Posts Tagged ‘DevoxxUS2017’

PostHeaderIcon [DevoxxUS2017] Java EE 8: Adapting to Cloud and Microservices

At DevoxxUS2017, Linda De Michiel, a pivotal figure in the Java EE architecture team and Specification Lead for the Java EE Platform at Oracle, delivered a comprehensive overview of Java EE 8’s development. With her extensive experience since 1997, Linda highlighted the platform’s evolution to embrace cloud computing and microservices, aligning with modern industry trends. Her presentation detailed updates to existing Java Specification Requests (JSRs) and introduced new ones, while also previewing plans for Java EE 9. This post explores the key themes of Linda’s talk, emphasizing Java EE 8’s role in modern enterprise development.

Evolution from Java EE 7

Linda began by reflecting on Java EE 7, which focused on HTML5 support, modernized web-tier APIs, and simplified development through Context and Dependency Injection (CDI). Building on this foundation, Java EE 8 shifts toward cloud-native and microservices architectures. Linda noted that emerging trends, such as containerized deployments and distributed systems, influenced the platform’s direction. By enhancing CDI and introducing new APIs, Java EE 8 aims to streamline development for scalable, cloud-based applications, ensuring developers can build robust systems that meet contemporary demands.

Enhancements to Core JSRs

A significant portion of Linda’s talk focused on updates to existing JSRs, including CDI 2.0, JSON Binding (JSON-B), JSON Processing (JSON-P), and JAX-RS. She announced that CDI 2.0 had unanimously passed its public review ballot, a milestone for the expert group. JSON-B and JSON-P, crucial for data interchange in modern applications, have reached proposed final draft stages, while JAX-RS enhances RESTful services with reactive programming support. Linda highlighted the open-source nature of these implementations, such as GlassFish and Jersey, encouraging community contributions to refine these APIs for enterprise use.

New APIs for Modern Challenges

Java EE 8 introduces new JSRs to address cloud and microservices requirements, notably the Security API. Linda discussed its early draft review, which aims to standardize authentication and authorization across distributed systems. Servlet and JSF updates are also progressing, with JSF nearing final release. These APIs enable developers to build secure, scalable applications suited for microservices architectures. Linda emphasized the platform’s aggressive timeline for a summer release, underscoring the community’s commitment to delivering production-ready solutions that align with industry shifts toward cloud and container technologies.

Community Engagement and Future Directions

Linda stressed the importance of community feedback, directing developers to the Java EE specification project on java.net for JSR details and user groups. She highlighted the Adopt-a-JSR program, led by advocates like Heather VanCura, as a channel for aggregating feedback to expert groups. Looking ahead, Linda briefly outlined Java EE 9’s focus on further cloud integration and modularity. By inviting contributions through open-source platforms like GlassFish, Linda encouraged developers to shape the platform’s future, ensuring Java EE remains relevant in a rapidly evolving technological landscape.

Links:

PostHeaderIcon [DevoxxUS2017] Eclipse OMR: A Modern, Open-Source Toolkit for Building Language Runtimes by Daryl Maier

At DevoxxUS2017, Daryl Maier, a Senior Software Developer at IBM, introduced Eclipse OMR, an open-source toolkit for building high-performance language runtimes. With two decades of experience in compiler development, Daryl shared how OMR repurposes components of IBM’s J9 Java Virtual Machine to support diverse dynamic languages without imposing Java semantics. His session highlighted OMR’s potential to democratize runtime technology, fostering innovation across language ecosystems. This post explores the core themes of Daryl’s presentation, emphasizing OMR’s role in advancing runtime development.

Unlocking JVM Technology with OMR

Daryl Maier opened by detailing the Eclipse OMR project, which extracts core components of the J9 JVM, such as its compiler and garbage collector, for broader use. Unlike building languages atop Java, OMR provides modular, high-performance tools for creating custom runtimes. Daryl’s examples showcased OMR’s flexibility in supporting languages beyond Java, drawing from his work at IBM’s Canada Lab to illustrate its potential for diverse applications.

Compiler and Runtime Innovations

Transitioning to technical specifics, Daryl explored OMR’s compiler technology, designed for just-in-time (JIT) compilation in dynamic environments. He contrasted OMR with LLVM, noting its lightweight footprint and optimization for runtime performance. Daryl highlighted OMR’s garbage collection and code generation capabilities, which enable efficient, scalable runtimes. His insights underscored OMR’s suitability for dynamic languages, offering developers robust tools without the overhead of traditional compilers.

Active Development and Use Cases

Daryl discussed active OMR projects, including integrations with existing runtimes to enhance debuggability and performance. He referenced a colleague’s upcoming demo on OMR’s tooling interfaces, illustrating practical applications. Drawing from IBM’s extensive runtime expertise, Daryl showcased how OMR supports innovative use cases, from scripting languages to domain-specific runtimes, encouraging developers to leverage its modular architecture.

Engaging the Developer Community

Concluding, Daryl invited developers to contribute to Eclipse OMR, emphasizing its open-source ethos. He highlighted collaboration opportunities, noting contact points with project co-leads Mark and Charlie. Daryl’s call to action, rooted in IBM’s commitment to open-source innovation, encouraged attendees to explore OMR’s GitHub repository and participate in shaping the future of language runtimes.

Links:

PostHeaderIcon [DevoxxUS2017] Eclipse Che by Tyler Jewell

At DevoxxUS2017, Tyler Jewell, CEO of Codenvy and project lead for Eclipse Che, delivered a compelling session on the shift from localhost to cloud-based development. Highlighting Eclipse Che as a next-generation IDE and workspace server, Tyler discussed how it streamlines team collaboration and agile workflows. With contributions from industry leaders like Red Hat and Microsoft, Che has rapidly gained traction. This post explores the key themes of Tyler’s presentation, focusing on the future of cloud development.

The Rise of Cloud Development

Tyler Jewell began by outlining market forces driving the adoption of cloud development, such as the need for rapid onboarding and consistent environments. He contrasted traditional localhost setups with cloud-based workflows, emphasizing how Eclipse Che enables one-click environment creation. Tyler’s insights, drawn from his role at Codenvy, highlighted Che’s ability to reduce setup time, allowing teams to focus on coding rather than configuration.

Eclipse Che’s Workspace Innovation

Delving into technical details, Tyler showcased Che’s workspace server, which supports reproducible environments through containerized runtimes. Unlike Vagrant VMs, Che workspaces offer lightweight, scalable solutions, integrating seamlessly with Docker. He demonstrated how Che’s architecture supports distributed teams, enabling collaboration across geographies. Tyler’s live demo illustrated creating and managing workspaces, underscoring Che’s role in modernizing development pipelines.

Community Contributions and Roadmap

Tyler emphasized the vibrant Eclipse Che community, with nearly 100 contributors from companies like IBM and Samsung. He discussed ongoing efforts to enhance language server integration, citing the Language Server Protocol’s potential for dynamic tool installation. Tyler shared Che’s roadmap, focusing on distributed workspaces and team-centric features, inviting developers to contribute to its open-source ecosystem.

Balancing IT Control and Developer Freedom

Concluding, Tyler addressed the tension between IT control and developer autonomy, noting how Che balances root access with governance. He highlighted its integration with agile methodologies, enabling faster iterations and improved collaboration. Tyler’s vision for Che, rooted in his experience at Toba Capital, positioned it as a transformative platform for cloud-native development, encouraging attendees to explore its capabilities.

Links:

PostHeaderIcon [DevoxxUS2017] What Developers Should Know About Design by Erwin de Gier

At DevoxxUS2017, Erwin de Gier, a Software Architect at Sogeti, shared practical insights into design principles for developers, emphasizing their role in enhancing communication and product appeal. With a background in open-source technology and agile methodologies, Erwin highlighted how developers can make informed design decisions when designers are unavailable. His session, rich with actionable advice, focused on proportions, composition, and color, empowering developers to create visually appealing interfaces. This post explores the core themes of Erwin’s presentation, offering guidance for developers navigating design challenges.

Mastering Proportions and Composition

Erwin de Gier opened by addressing the importance of proportions in design, particularly when developers must create features like forms or buttons without a designer’s input. He advocated using fixed proportions, such as the golden ratio, to create balanced layouts. Erwin demonstrated how to structure interfaces using proportional boxes, ensuring visual harmony. His practical examples, drawn from his experience at Sogeti, illustrated how consistent proportions enhance user experience, making interfaces intuitive and aesthetically pleasing.

Strategic Use of Color and Typography

Transitioning to color and typography, Erwin emphasized consistency as a cornerstone of effective design. He recommended limiting color palettes to one or two primary colors, complemented by neutral tones like gray, white, or black, to maintain brand recognition. Using a brand color quiz, Erwin illustrated how colors like WhatsApp’s green shape user perception. For typography, he advised using proven font combinations, such as serif and sans-serif pairs, with a minimum size of 16 points for web readability. These principles, he noted, ensure designs remain accessible and professional.

Links:

PostHeaderIcon [DevoxxUS2017] The Hardest Part of Microservices: Your Data by Christian Posta

At DevoxxUS2017, Christian Posta, a Principal Middleware Specialist at Red Hat, delivered an insightful presentation on the complexities of managing data in microservices architectures. Drawing from his extensive experience with distributed systems and open-source projects like Apache Kafka and Apache Camel, Christian explored how Domain-Driven Design (DDD) helps address data challenges. His talk, inspired by his blog post on ceposta Technology Blog, emphasized the importance of defining clear boundaries and leveraging event-driven technologies to achieve scalable, autonomous systems. This post delves into the key themes of Christian’s session, offering a comprehensive look at navigating data in microservices.

Understanding the Domain with DDD

Christian Posta began by addressing the critical need to understand the business domain when building microservices. He highlighted how DDD provides a framework for modeling complex domains by defining bounded contexts, entities, and aggregates. Using the example of a “book,” Christian illustrated how context shapes data definitions, such as distinguishing between a book as a single title versus multiple copies in a bookstore. This clarity, he argued, is essential for enterprises, where domains like insurance or finance are far more intricate than those of internet giants like Netflix. By grounding microservices in DDD, developers can create explicit boundaries that align with business needs, reducing ambiguity and fostering autonomy.

Defining Transactional Boundaries

Transitioning to transactional boundaries, Christian emphasized minimizing the scope of atomic operations to enhance scalability. He critiqued the traditional reliance on single, ACID-compliant databases, which often leads to brittle systems when applied to distributed architectures. Instead, he advocated for identifying the smallest units of business invariants, such as a single booking in a travel system, and managing them within bounded contexts. Christian’s insights, drawn from real-world projects, underscored the pitfalls of synchronous communication and the need for explicit boundaries to avoid coordination challenges like two-phase commits across services.

Event-Driven Communication with Apache Kafka

A core focus of Christian’s talk was the role of event-driven architectures in decoupling microservices. He introduced Apache Kafka as a backbone for streaming immutable events, enabling services to communicate without tight coupling. Christian explained how Kafka’s publish-subscribe model supports scalability and fault tolerance, allowing services to process events at their own pace. He highlighted practical applications, such as using Kafka to propagate changes across bounded contexts, ensuring eventual consistency while maintaining service autonomy. His demo showcased Kafka’s integration with microservices, illustrating its power in handling distributed data.

Leveraging Debezium for Data Synchronization

Christian also explored Debezium, an open-source platform for change data capture, to address historical data synchronization. He described how Debezium’s MySQL connector captures consistent snapshots and streams binlog changes to Kafka, enabling services to access past and present data. This approach, he noted, supports use cases where services need to synchronize from a specific point, such as “data from Monday.” Christian’s practical example demonstrated Debezium’s role in maintaining data integrity across distributed systems, reinforcing its value in microservices architectures.

Integrating Apache Camel for Robust Connectivity

Delving into connectivity, Christian showcased Apache Camel as a versatile integration framework for microservices. He explained how Camel facilitates communication between services by providing routing and transformation capabilities, complementing Kafka’s event streaming. Christian’s live demo illustrated Camel’s role in orchestrating data flows, ensuring seamless integration across heterogeneous systems. His experience as a committer on Camel underscored its reliability in building resilient microservices, particularly for enterprises transitioning from monolithic architectures.

Practical Implementation and Lessons Learned

Concluding, Christian presented a working example that tied together DDD, Kafka, Camel, and Debezium, demonstrating a cohesive microservices system. He emphasized the importance of explicit identity management, such as handling foreign keys across services, to maintain data integrity. Christian’s lessons, drawn from his work at Red Hat, highlighted the need for collaboration between developers and business stakeholders to refine domain models. His call to action encouraged attendees to explore these technologies and contribute to their open-source communities, fostering innovation in distributed systems.

Links:

PostHeaderIcon [DevoxxUS2017] New Computer Architectures: Explore Quantum Computers & SyNAPSE Neuromorphic Chips by Peter Waggett

At DevoxxUS2017, Dr. Peter Waggett, Director of IBM’s Emerging Technology group at the Hursley Laboratory, delivered a thought-provoking session on next-generation computer architectures, focusing on quantum computers and IBM’s TrueNorth neuromorphic chip. With a background in radio astronomy and extensive research in cognitive computing, Peter explored how these technologies address the growing demand for processing power in a smarter, interconnected world. This post delves into the core themes of Peter’s presentation, highlighting the potential of these innovative architectures.

Quantum Computing: A New Frontier

Peter Waggett introduced quantum computing, explaining its potential to solve complex problems beyond the reach of classical systems. He described how quantum computers manipulate atomic spins using MRI-like systems, leveraging quantum entanglement and superposition. Drawing from his work at IBM, Peter highlighted ongoing research to make quantum computing accessible, emphasizing its role in advancing fields like cryptography and material science, despite challenges like helium shortages impacting hardware.

TrueNorth: Brain-Inspired Computing

Delving into neuromorphic computing, Peter showcased IBM’s TrueNorth chip, a brain-inspired architecture with 1 million neurons and 256 synapses, consuming just 73mW. Unlike traditional processors, TrueNorth challenges conventions like exact data representation and synchronicity, enabling low-power sensory perception for IoT and mobile applications. Peter’s examples illustrated TrueNorth’s scalability, positioning it as a cornerstone of IBM’s cognitive hardware ecosystem for transformative applications.

Addressing Scalability and Efficiency

Peter discussed the scalability of new architectures, comparing TrueNorth’s energy efficiency to traditional compute fabrics. He highlighted how neuromorphic chips optimize for error tolerance and energy-frequency trade-offs, ideal for IoT’s sensory demands. His insights, grounded in IBM’s client-focused projects, underscored the need for innovative designs to meet the computational needs of a connected planet, from smart cities to autonomous devices.

Building a Developer Community

Concluding, Peter emphasized the importance of fostering a developer community to advance these technologies. He encouraged collaboration through IBM’s research initiatives, noting the need for skilled engineers to tackle challenges like helium scarcity and system design. Peter’s vision for accessible platforms, inspired by his radio astronomy background, invited developers to explore quantum and neuromorphic computing, driving innovation in cognitive systems.

Links:

PostHeaderIcon [DevoxxUS2017] Creating a Connected Home by Kevin and Andy Nilson

At DevoxxUS2017, Kevin Nilson, a Java Champion and lead of the Chromecast Technical Solutions Engineer team at Google, joined forces with his 12-year-old son, Andy Nilson, to present a captivating live coding demo on building a connected home. Their session showcased how voice and mobile controls can interact with smart devices, leveraging platforms like Google Home. Kevin and Andy’s collaborative approach highlighted the accessibility of IoT development, blending technical expertise with educational outreach. This post examines the key themes of their presentation, emphasizing the fusion of innovation and learning.

Building a Smart Home Ecosystem

Kevin Nilson and Andy Nilson began by demonstrating a connected home setup, where lights, fans, and music systems respond to voice commands via Google Home. Kevin explained the architecture, integrating devices like Philips Hue and Nest thermostats through APIs. Andy, showcasing his coding skills, contributed to the demo by writing scripts to control devices, illustrating how accessible IoT programming can be, even for young developers. Their work reflected Google’s commitment to seamless smart home integration.

Voice Control and Device Integration

The duo delved into voice-activated controls, showing how Google Home processes commands like “turn on the lights.” Kevin highlighted the use of OAuth for secure device linking, ensuring commands are tied to user accounts. Andy demonstrated triggering actions, such as activating a fan, by coding simple integrations. Their live demo, despite network challenges, showcased practical IoT applications, emphasizing ease of use and real-time interaction with smart devices.

Inspiring the Next Generation

Kevin and Andy emphasized the educational potential of their project, drawing from their involvement in Devoxx4Kids and JavaOne Kids Day. Andy’s participation, rooted in his experience coding since childhood, inspired attendees to engage young learners in technology. Kevin shared resources for learning IoT, recommending starting with specific problems and exploring community solutions, such as hackathon projects like the Febreze air freshener integration, to spark creativity.

Fostering Community and Collaboration

Concluding, Kevin encouraged developers to explore IoT through open-source communities and hackathons, sharing his experience as a Silicon Valley JUG leader. Andy’s enthusiasm for coding underscored the session’s goal of making technology accessible. Their call to action invited attendees to contribute to smart home projects, leveraging platforms like Google Home to build innovative, user-friendly solutions for connected living.

Links:

PostHeaderIcon [DevoxxUS2017] Next Level Spring Boot Tooling by Martin Lippert

At DevoxxUS2017, Martin Lippert, a pivotal figure at Pivotal and co-lead of the Spring Tool Suite, delivered an engaging presentation on advanced tooling for Spring Boot development within the Eclipse IDE. With a rich background in crafting developer tools, Martin showcased how recent updates to Spring IDE and Spring Tool Suite streamline microservice development, particularly for Spring Boot and Cloud Foundry. His live demos and coding sessions highlighted features that enhance productivity and transform the IDE into a hub for cloud-native development. This post explores the key themes of Martin’s presentation, offering insights into optimizing Spring Boot workflows.

Streamlining Spring Boot Development

Martin Lippert opened by demonstrating the ease of initiating Spring Boot projects within Eclipse, leveraging the Spring Tool Suite. He showcased how developers can quickly scaffold applications using Spring Initializr integration, simplifying setup for microservices. Martin’s live demo illustrated generating a project with minimal configuration, emphasizing how these tools reduce boilerplate code and accelerate development cycles, aligning with Pivotal’s mission to empower developers with efficient workflows.

Advanced Configuration Management

Delving into configuration, Martin highlighted enhanced support for Spring Boot properties in YAML and property files. Features like content-assist, validation, and hover help simplify managing complex configurations, crucial for microservices. He demonstrated real-time synchronization between local projects and Cloud Foundry manifests, showcasing how the Spring Boot dashboard detects and merges configuration changes. These capabilities, Martin noted, ensure consistency across development and deployment environments, enhancing reliability in cloud-native applications.

Spring Boot Dashboard and Cloud Integration

A centerpiece of Martin’s talk was the Spring Boot dashboard, a powerful tool for managing multiple microservice projects. He showcased its ability to monitor, start, and stop services within the IDE, streamlining workflows for developers handling distributed systems. Martin also explored advanced editing of Cloud Foundry manifest files, illustrating seamless integration with cloud runtimes. His insights, drawn from Pivotal’s expertise, underscored the dashboard’s role in transforming Eclipse into a microservice development powerhouse.

Links:

PostHeaderIcon [DevoxxUS2017] Continuous Optimization of Microservices Using Machine Learning by Ramki Ramakrishna

At DevoxxUS2017, Ramki Ramakrishna, a Staff Engineer at Twitter, delivered a compelling session on optimizing microservices performance using machine learning. Collaborating with colleagues, Ramki shared insights from Twitter’s platform engineering efforts, focusing on Bayesian optimization to tune microservices in data centers. His talk addressed the challenges of managing complex workloads and offered a vision for automated optimization. This post explores the key themes of Ramki’s presentation, highlighting innovative approaches to performance tuning.

Challenges of Microservices Performance

Ramki Ramakrishna opened by outlining the difficulties of tuning microservices in data centers, where numerous parameters and workload variations create combinatorial complexity. Drawing from his work with Twitter’s JVM team, he explained how continuous software and hardware upgrades exacerbate performance issues, often leaving resources underutilized. Ramki’s insights set the stage for exploring machine learning as a solution to these challenges.

Bayesian Optimization in Action

Delving into technical details, Ramki introduced Bayesian optimization, a machine learning approach to automate performance tuning. He described its application in Twitter’s microservices, using tools derived from open-source projects like Spearmint. Ramki shared practical examples, demonstrating how Bayesian methods efficiently explore parameter spaces, outperforming manual tuning in scenarios with many variables, ensuring optimal resource utilization.

Lessons and Pitfalls

Ramki discussed pitfalls encountered during Twitter’s optimization projects, such as the need for expert-defined parameter ranges to guide machine learning algorithms. He highlighted the importance of collaboration between service owners and engineers to specify tuning constraints. His lessons, drawn from real-world implementations, emphasized balancing automation with human expertise to achieve reliable performance improvements.

Vision for Continuous Optimization

Concluding, Ramki outlined a vision for a continuous optimization service, integrating machine learning into DevOps pipelines. He noted plans to open-source parts of Twitter’s solution, building on frameworks like Spearmint. Ramki’s forward-thinking approach inspired developers to adopt data-driven optimization, ensuring microservices remain efficient amidst evolving data center demands.

Links:

PostHeaderIcon [DevoxxUS2017] Java Puzzlers NG S02: Down the Rabbit Hole by Baruch Sadogursky and Viktor Gamov

At DevoxxUS2017, Baruch Sadogursky and Viktor Gamov, from JFrog and Hazelcast respectively, entertained attendees with a lively exploration of Java 8 and 9 puzzlers. Known for their engaging style, Baruch, a Developer Advocate, and Viktor, a Senior Solution Architect, presented complex coding challenges involving streams, lambdas, and Optionals. Their session combined humor, technical depth, and audience interaction, offering valuable lessons for Java developers. This post examines the key themes of their presentation, highlighting strategies to navigate Java’s intricacies.

Decoding Java 8 Complexities

Baruch Sadogursky and Viktor Gamov kicked off with a series of Java 8 puzzlers, focusing on streams and lambdas. They presented scenarios where seemingly simple code led to unexpected outcomes, such as subtle bugs in stream operations. Baruch emphasized the importance of understanding functional programming nuances, using examples to illustrate common pitfalls. Their interactive approach, with audience participation, made complex concepts accessible and engaging.

Navigating Java 9 Features

Transitioning to Java 9, Viktor explored new puzzlers involving modules and CompletableFutures, highlighting how these features introduce fresh challenges. He demonstrated how the module system can lead to compilation errors if misconfigured, urging developers to read documentation carefully. Their examples, drawn from real-world experiences at JFrog and Hazelcast, underscored the need for precision in adopting Java’s evolving features.

Tools for Avoiding Pitfalls

Baruch and Viktor stressed the role of tools like IntelliJ IDEA in catching errors early, noting how its inspections highlight potential issues in lambda and stream usage. They advised against overusing complex constructs, advocating for simplicity to avoid “WTF” moments. Their practical tips, grounded in their extensive conference-speaking experience, encouraged developers to leverage IDEs and documentation to write robust code.

Community Engagement and Resources

Concluding with a call to action, Baruch and Viktor invited developers to contribute puzzlers to JFrog’s puzzlers initiative, fostering community-driven learning. They shared resources, including their slide deck and blog posts, encouraging feedback via Twitter. Their enthusiasm for Java’s challenges inspired attendees to dive deeper into the language’s intricacies, embracing both its power and pitfalls.

Links: