The document contains an agenda for a Java User Group meeting on October 2011. The agenda includes Java User Group updates, a sponsored talk by Tieto, presentations on Introduction to Gradle, Liferay Portal, and Code Retreat, followed by a wrap-up and raffle. Future events mentioned are Java Day Riga on November 29th and meetings on November 8th and December 8th.
The document provides an overview of using Flyway and JOOQ together to manage database migrations and generate Java objects from database schemas. Flyway is used to run SQL scripts for schema migrations, while JOOQ generates Java classes that correspond to database tables and can be used to write type-safe SQL queries. Examples are given of using JOOQ to build queries, fetch results in various formats, perform CRUD operations on records, and integrate Flyway and JOOQ into build systems like Gradle.
This document discusses best practices for developing useful APIs. It recommends treating all reusable code as an API and following principles like using minimal dependencies and packaging code appropriately. It also provides examples of API design patterns at the module, class, and method level, such as using dependency injection, builder patterns, and exception handling conventions. The goal is to make APIs easy to read, use, extend, and hard to misuse by learning from open source projects and following trends in API design.
This document summarizes some of the new features introduced in Java 8, including streams, lambda expressions, default methods, and date/time API changes. It discusses streams in more detail, covering stream operations like filter, map, distinct, and collect. It also covers new features like Optional for returning absent/present values, annotations for null checks, parallel array sorting, and concurrency utilities.
This document provides an overview of a Dart workshop that teaches Dart fundamentals and building full-stack Dart applications. The workshop is divided into five parts that cover Hello World examples, integrating Google Maps, dynamic HTML, adding a server backend, and connecting to MongoDB. Each part includes tasks to complete and concepts to learn, such as the Dart project structure, writing unit tests, manipulating the DOM, making HTTP requests, and using the MongoDB Dart driver. The conclusion discusses why Dart may be better than JavaScript and considers if Dart has the potential to be the future for web development.
This document discusses how Redis can be used to solve various data and application scenarios for a social Q&A platform. It describes 6 scenarios including using Redis strings for counters, Redis lists for a message queue, Redis hashes for user activity tracking, Redis bits for feature flags, Redis sorted sets for a social wall, and Redis pub/sub for real-time monitoring. It provides examples of how Redis data structures map to each use case and discusses capabilities like performance, scalability and data consistency.
This document discusses refactoring Java code to Clojure using macros. It provides examples of refactoring Java code that uses method chaining to equivalent Clojure code using the threading macros (->> and -<>). It also discusses other Clojure features like type hints, the doto macro, and polyglot projects using Leiningen.