Presentation slides from ISDC2013 held on 16-mar-2013
http://www.siliconindia.com/events-overview/India--Software-Developer-Conference-Bangalore-ISDC_2013Blr.html
Paco van der Linden, werkzaam als Senior ADF Ontwikkelaar bij AMIS, heeft met Groovy een aantal interessante oplossingen ontwikkeld. De kennis en ervaring die hij daarbij met Groovy in combinatie met Java (en ADF) heeft opgedaan, heeft hij op maandag 26 november gedeeld in een kennissessie.
Clojure is a LISP-like programming language that runs on the Java Virtual Machine. It was created in 2007 by Rich Hickey and is currently at version 1.1. Clojure is a functional, immutable, and concurrency-oriented language. It features LISP syntax, macros, immutability, functional programming, and easy interoperability with Java. Data structures in Clojure are code, allowing homoiconicity. Clojure also supports lazy sequences, STM-based concurrency without locks, and dynamic behavior via its REPL.
Kotlin is a statically typed language that compiles to Java bytecode and runs on the JVM. It is fully interoperable with Java and provides features like null safety, data classes, extension functions, and coroutines. Kotlin can be used for Android development, where it works well with existing Java code and libraries. It also allows building server, JavaScript, and native applications. Libraries like Anko simplify Android development tasks in Kotlin. Overall, Kotlin is positioned as the future of Android development due to its interoperability and improvements over Java.
Groovy is a great language with extremely powerful capabilities about compile time meta-programming. Do you know that provides more than 40 AST transformations out-of-the box just to make your life as a developer easier?
In this talk you will learn the most important transformations provided by Groovy. I'll use a lot of code examples to explain all the concepts.
This document summarizes options for using MongoDB with Java, including raw drivers, object mapping libraries like Morphia, and examples of common operations. It discusses using the MongoDB Java driver to directly encode data to BSON format, as well as higher-level libraries that allow working with Java objects like with Morphia annotations and queries. Examples demonstrate basic CRUD operations, embedding vs referencing relationships, and updating documents.
Scala is becoming the language of choice for many development teams. This talk highlights how Scala excels in the world of multi-core processing and explores how it compares to Java 8.
Video Presentation: http://youtu.be/8vxTowBXJSg
Alternatives of JPA
Requery provide simple Object Mapping & Generate SQL to execute without reflection and session, so fast than JPA, simple and easy to learn.
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)lennartkats
Modern IDEs increase developer productivity by incorporating many different kinds of editor services. These can be purely syntactic, such as syntax highlighting, code folding, and an outline for navigation; or they can be based on the language semantics, such as in-line type error reporting and resolving identifier declarations. Building all these services from scratch requires both the extensive knowledge of the sometimes complicated and highly interdependent APIs and extension mechanisms of an IDE framework, and an in-depth understanding of the structure and semantics of the targeted language. This paper describes Spoofax/IMP, a meta-tooling suite that provides high-level domain-specific languages for describing editor services, relieving editor developers from much of the framework-specific programming. Editor services are defined as composable modules of rules coupled to a modular SDF grammar. The composability provided by the SGLR parser and the declaratively defined services allows embedded languages and language extensions to be easily formulated as additional rules extending an existing language definition. The service definitions are used to generate Eclipse editor plugins. We discuss two examples: an editor plugin for WebDSL, a domain-specific language for web applications, and the embedding of WebDSL in Stratego, used for expressing the (static) semantic rules of WebDSL.
Paco van der Linden, werkzaam als Senior ADF Ontwikkelaar bij AMIS, heeft met Groovy een aantal interessante oplossingen ontwikkeld. De kennis en ervaring die hij daarbij met Groovy in combinatie met Java (en ADF) heeft opgedaan, heeft hij op maandag 26 november gedeeld in een kennissessie.
Clojure is a LISP-like programming language that runs on the Java Virtual Machine. It was created in 2007 by Rich Hickey and is currently at version 1.1. Clojure is a functional, immutable, and concurrency-oriented language. It features LISP syntax, macros, immutability, functional programming, and easy interoperability with Java. Data structures in Clojure are code, allowing homoiconicity. Clojure also supports lazy sequences, STM-based concurrency without locks, and dynamic behavior via its REPL.
Kotlin is a statically typed language that compiles to Java bytecode and runs on the JVM. It is fully interoperable with Java and provides features like null safety, data classes, extension functions, and coroutines. Kotlin can be used for Android development, where it works well with existing Java code and libraries. It also allows building server, JavaScript, and native applications. Libraries like Anko simplify Android development tasks in Kotlin. Overall, Kotlin is positioned as the future of Android development due to its interoperability and improvements over Java.
Groovy is a great language with extremely powerful capabilities about compile time meta-programming. Do you know that provides more than 40 AST transformations out-of-the box just to make your life as a developer easier?
In this talk you will learn the most important transformations provided by Groovy. I'll use a lot of code examples to explain all the concepts.
This document summarizes options for using MongoDB with Java, including raw drivers, object mapping libraries like Morphia, and examples of common operations. It discusses using the MongoDB Java driver to directly encode data to BSON format, as well as higher-level libraries that allow working with Java objects like with Morphia annotations and queries. Examples demonstrate basic CRUD operations, embedding vs referencing relationships, and updating documents.
Scala is becoming the language of choice for many development teams. This talk highlights how Scala excels in the world of multi-core processing and explores how it compares to Java 8.
Video Presentation: http://youtu.be/8vxTowBXJSg
Alternatives of JPA
Requery provide simple Object Mapping & Generate SQL to execute without reflection and session, so fast than JPA, simple and easy to learn.
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)lennartkats
Modern IDEs increase developer productivity by incorporating many different kinds of editor services. These can be purely syntactic, such as syntax highlighting, code folding, and an outline for navigation; or they can be based on the language semantics, such as in-line type error reporting and resolving identifier declarations. Building all these services from scratch requires both the extensive knowledge of the sometimes complicated and highly interdependent APIs and extension mechanisms of an IDE framework, and an in-depth understanding of the structure and semantics of the targeted language. This paper describes Spoofax/IMP, a meta-tooling suite that provides high-level domain-specific languages for describing editor services, relieving editor developers from much of the framework-specific programming. Editor services are defined as composable modules of rules coupled to a modular SDF grammar. The composability provided by the SGLR parser and the declaratively defined services allows embedded languages and language extensions to be easily formulated as additional rules extending an existing language definition. The service definitions are used to generate Eclipse editor plugins. We discuss two examples: an editor plugin for WebDSL, a domain-specific language for web applications, and the embedding of WebDSL in Stratego, used for expressing the (static) semantic rules of WebDSL.
Model-Driven Software Development - Pretty-Printing, Editor Services, Term Re...Eelco Visser
The document discusses three topics: pretty-printing, editor services, and term rewriting. Pretty-printing involves transforming abstract syntax trees to concrete syntax. Editor services define behaviors for syntax highlighting, code folding, outlines, and completions. Term rewriting uses rewrite rules and strategies to transform abstract syntax trees.
This document provides an overview of Kotlin for backend development. It discusses Kotlin's advantages like Java interoperability and null safety. Coroutines are presented as an alternative to callback-based asynchronous programming. Examples are given of adopting Kotlin in different contexts like libraries, components and web applications. Strategies covered include preparing development tools and environments, evaluating current skills, and sharing experiences.
Madrid gug - sacando partido a las transformaciones ast de groovyIván López Martín
Groovy es un gran lenguaje con capacidades muy potentes de metaprogramación en tiempo de compilación. ¿Sabías que hay más de 40 transformaciones AST disponibles para hacernos la vida más fácil como desarrolladores?
En esta charla aprenderás las transformaciones más importantes que proporciona Groovy a través de muchos ejemplos para explicar todos los conceptos.
Slides from my GeeCON 2014 Prague talk:
"Groovy is a dynamic language that provides different types of metaprogramming techniques. In this talk we’ll mainly see runtime metaprogramming. I’ll explain Groovy Meta-Object-Protocol (MOP), the metaclass, how to intercept method calls, how to deal with method missing and property missing, the use of mixins, traits and categories. All of these topics will be explained with examples in order to understand them.
Also, I’ll talk a little bit about compile-time metaprogramming with AST Transformations. AST Transformations provide a wonderful way of manipulating code at compile time via modifications of the Abstract Syntax Tree. We’ll see a basic but powerful example of what we can do with AST transformations."
The code is available at: https://github.com/lmivan/geecon2014-prague-metaprograming-with-groovy
Short (45 min) version of my 'Pragmatic Real-World Scala' talk. Discussing patterns and idioms discovered during 1.5 years of building a production system for finance; portfolio management and simulation.
This document provides an overview of Morphia, a Java object mapping library for MongoDB. It discusses Morphia's advantages over using raw MongoDB drivers, including type safety and the ability to work with POJOs rather than generic maps. Key features covered include annotation-based mapping of entities to collections, lifecycle callbacks, queries, updates, and support for relationships and object graphs. The document aims to demonstrate how Morphia simplifies common data access patterns while retaining performance.
Spring Data Requery is alternatives of Spring Data JPA
Requery is lightweight ORM for DBMS (MySQL, PostgreSQL, H2, SQLite, Oracle, SQL Server)
Spring Data Requery provide Query By Native Query, Query By Example and Query By Property like Spring Data JPA
Spring Data Requery is better performance than JPA
This document provides an introduction to Groovy for Java developers. It discusses Groovy's features such as closures, optional typing and syntax, and how it compiles to Java bytecode. It then provides examples of writing a simple Groovy script to generate XML, using closures, mocking objects in tests, and building projects with Ant.
This introduction to Clojure was given to the Utah Java Users Group Aug. 15. It's main focus was on Clojure's time model and how the design of Clojure separates (decomplects) many concepts which are all implemented onto of Objects in Java, and other OO languages. This is the abstract for the original talk:
Tony Hoare famously said "There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." Clojure is a functional Lisp that targets, among other platforms, the JVM and strives to enable the former approach to building software.
In its pursuit of simplicity Clojure encourages the use of pure functions, sequence abstractions which allow for lazy and parallel processing of data, persistent (immutable) data structures, and a novel way of dealing with state as a succession of values. While these concepts may sound intimidating for those unfamiliar with functional programming, they are actually less complicated than many programming constructs that programmers use everyday.
This talk will cover these concepts and the motivation behind them. You will learn the basics of Clojure programming and will be given a taste of what developing an application in Clojure is like.
This document provides a high-level overview of polyglot persistence and different database technologies. It begins by discussing the benefits of polyglot persistence in allowing the use of multiple data storage technologies based on application needs. It then summarizes several common database types including relational, document-oriented, key-value, and column-oriented databases. It also discusses database properties like ACID compliance, scaling, and data consistency models. The document concludes with examples of Amazon's SimpleDB and DynamoDB key-value stores.
자프링(자바 + 스프링) 외길 12년차 서버 개발자가 코프링(코틀린 + 스프링)을 만난 후 코틀린의 특징과 스프링의 코틀린 지원을 알아가며 코프링 월드에서 살아남은 이야기…
코드 저장소: https://github.com/arawn/kotlin-support-in-spring
This document describes Realm and its core components for working with objects in Realm databases. It discusses RealmObject, RealmObjectProxy, RealmList, and RealmResults which allow defining and querying object schemas and relationships. It also covers how to import and export RealmObjects as JSON using various libraries like Gson, Moshi, Jackson, and a custom Rson library. Transactions and exporting data to storage or via email is demonstrated using the Royal wrapper library.
Kotlin @ Coupang Backed - JetBrains Day seoul 2018Sunghyouk Bae
Kotlin Backend @ Coupang discusses Coupang's adoption of Kotlin for backend development. Some of the key reasons for adopting Kotlin included improving code safety, readability and testability. Example uses of Kotlin included developing common libraries, components like a Korean tokenizer, a Kafka client, an audit tool and a product creation pipeline system. Spring Data Requery was also developed as an alternative to JPA/Hibernate that provided better performance. Overall, Kotlin helped improve code quality, simplify asynchronous programming and increase development productivity at Coupang.
Declarative Internal DSLs in Lua: A Game Changing ExperienceAlexander Gladysh
The document discusses using internal domain-specific languages (DSLs) in Lua and provides examples of how to implement them. It describes loading DSL data into a tree structure, validating the data through tree traversal, and generating outputs by traversing the tree a second time. The document argues that this approach provides reusability across different DSLs and output targets with good error reporting. It also gives examples of where internal DSLs are used, such as for HTTP APIs, configuration files, databases, and visual editors.
Java Bytecode for Discriminating Developers - JavaZone 2011Anton Arhipov
The document discusses Java bytecode and provides examples of decompiling a simple "Hello World" Java program to bytecode using the javap tool. It summarizes the structure of bytecode, including one-byte instructions, opcode taxonomy involving stack manipulation, flow control, and object models. The document demonstrates how javap can be used to disassemble a class file into bytecode instructions and interpret the constant pool references.
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?Henri Tremblay
Those are the slides for my presentation at OracleCode One 2018.
Java is moving faster and faster. A lot of features are not as known as they should be.
Let's review together the ones I think you've missed in old versions.
Then I will kickstart you on 9, 10 and 11 features that you never had time to look at.
Java is an object-oriented programming language created by James Gosling. It was originally called Oak but was later renamed to Java. The document discusses the different editions of Java including J2SE, J2EE, and J2ME. It also covers key Java technologies like applets, servlets, JSP, and Swing. The document provides an overview of Java features such as being platform independent, portable, multi-threaded, and having a Java Virtual Machine. It also discusses concepts like inheritance, interfaces, packages, exceptions, and input/output in Java.
The document discusses using Groovy to improve Java testing. Groovy allows writing tests more concisely using features like closures, native list/map syntax, and dynamic proxies. It also enables mocking collaborators without external libraries. Groovy integrates fully with JUnit and TestNG and helps test exceptions, databases using DbUnit, and drive functional UI tests more easily.
The document discusses the new features and certification process for Java SE 7. It describes that the certification has been updated to require more advanced skills. There are now two certification levels: Oracle Certified Associate, Java SE 7 Programmer (OCA) and Oracle Certified Professional, Java SE 7 Programmer (OCP). The OCA exam covers basic Java topics in 90 multiple choice questions over 140 minutes. The OCP exam requires passing the OCA first and covers more advanced topics in 90 questions over 150 minutes. Developers with prior certifications can take an upgrade exam to certify for Java SE 7.
Model-Driven Software Development - Pretty-Printing, Editor Services, Term Re...Eelco Visser
The document discusses three topics: pretty-printing, editor services, and term rewriting. Pretty-printing involves transforming abstract syntax trees to concrete syntax. Editor services define behaviors for syntax highlighting, code folding, outlines, and completions. Term rewriting uses rewrite rules and strategies to transform abstract syntax trees.
This document provides an overview of Kotlin for backend development. It discusses Kotlin's advantages like Java interoperability and null safety. Coroutines are presented as an alternative to callback-based asynchronous programming. Examples are given of adopting Kotlin in different contexts like libraries, components and web applications. Strategies covered include preparing development tools and environments, evaluating current skills, and sharing experiences.
Madrid gug - sacando partido a las transformaciones ast de groovyIván López Martín
Groovy es un gran lenguaje con capacidades muy potentes de metaprogramación en tiempo de compilación. ¿Sabías que hay más de 40 transformaciones AST disponibles para hacernos la vida más fácil como desarrolladores?
En esta charla aprenderás las transformaciones más importantes que proporciona Groovy a través de muchos ejemplos para explicar todos los conceptos.
Slides from my GeeCON 2014 Prague talk:
"Groovy is a dynamic language that provides different types of metaprogramming techniques. In this talk we’ll mainly see runtime metaprogramming. I’ll explain Groovy Meta-Object-Protocol (MOP), the metaclass, how to intercept method calls, how to deal with method missing and property missing, the use of mixins, traits and categories. All of these topics will be explained with examples in order to understand them.
Also, I’ll talk a little bit about compile-time metaprogramming with AST Transformations. AST Transformations provide a wonderful way of manipulating code at compile time via modifications of the Abstract Syntax Tree. We’ll see a basic but powerful example of what we can do with AST transformations."
The code is available at: https://github.com/lmivan/geecon2014-prague-metaprograming-with-groovy
Short (45 min) version of my 'Pragmatic Real-World Scala' talk. Discussing patterns and idioms discovered during 1.5 years of building a production system for finance; portfolio management and simulation.
This document provides an overview of Morphia, a Java object mapping library for MongoDB. It discusses Morphia's advantages over using raw MongoDB drivers, including type safety and the ability to work with POJOs rather than generic maps. Key features covered include annotation-based mapping of entities to collections, lifecycle callbacks, queries, updates, and support for relationships and object graphs. The document aims to demonstrate how Morphia simplifies common data access patterns while retaining performance.
Spring Data Requery is alternatives of Spring Data JPA
Requery is lightweight ORM for DBMS (MySQL, PostgreSQL, H2, SQLite, Oracle, SQL Server)
Spring Data Requery provide Query By Native Query, Query By Example and Query By Property like Spring Data JPA
Spring Data Requery is better performance than JPA
This document provides an introduction to Groovy for Java developers. It discusses Groovy's features such as closures, optional typing and syntax, and how it compiles to Java bytecode. It then provides examples of writing a simple Groovy script to generate XML, using closures, mocking objects in tests, and building projects with Ant.
This introduction to Clojure was given to the Utah Java Users Group Aug. 15. It's main focus was on Clojure's time model and how the design of Clojure separates (decomplects) many concepts which are all implemented onto of Objects in Java, and other OO languages. This is the abstract for the original talk:
Tony Hoare famously said "There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." Clojure is a functional Lisp that targets, among other platforms, the JVM and strives to enable the former approach to building software.
In its pursuit of simplicity Clojure encourages the use of pure functions, sequence abstractions which allow for lazy and parallel processing of data, persistent (immutable) data structures, and a novel way of dealing with state as a succession of values. While these concepts may sound intimidating for those unfamiliar with functional programming, they are actually less complicated than many programming constructs that programmers use everyday.
This talk will cover these concepts and the motivation behind them. You will learn the basics of Clojure programming and will be given a taste of what developing an application in Clojure is like.
This document provides a high-level overview of polyglot persistence and different database technologies. It begins by discussing the benefits of polyglot persistence in allowing the use of multiple data storage technologies based on application needs. It then summarizes several common database types including relational, document-oriented, key-value, and column-oriented databases. It also discusses database properties like ACID compliance, scaling, and data consistency models. The document concludes with examples of Amazon's SimpleDB and DynamoDB key-value stores.
자프링(자바 + 스프링) 외길 12년차 서버 개발자가 코프링(코틀린 + 스프링)을 만난 후 코틀린의 특징과 스프링의 코틀린 지원을 알아가며 코프링 월드에서 살아남은 이야기…
코드 저장소: https://github.com/arawn/kotlin-support-in-spring
This document describes Realm and its core components for working with objects in Realm databases. It discusses RealmObject, RealmObjectProxy, RealmList, and RealmResults which allow defining and querying object schemas and relationships. It also covers how to import and export RealmObjects as JSON using various libraries like Gson, Moshi, Jackson, and a custom Rson library. Transactions and exporting data to storage or via email is demonstrated using the Royal wrapper library.
Kotlin @ Coupang Backed - JetBrains Day seoul 2018Sunghyouk Bae
Kotlin Backend @ Coupang discusses Coupang's adoption of Kotlin for backend development. Some of the key reasons for adopting Kotlin included improving code safety, readability and testability. Example uses of Kotlin included developing common libraries, components like a Korean tokenizer, a Kafka client, an audit tool and a product creation pipeline system. Spring Data Requery was also developed as an alternative to JPA/Hibernate that provided better performance. Overall, Kotlin helped improve code quality, simplify asynchronous programming and increase development productivity at Coupang.
Declarative Internal DSLs in Lua: A Game Changing ExperienceAlexander Gladysh
The document discusses using internal domain-specific languages (DSLs) in Lua and provides examples of how to implement them. It describes loading DSL data into a tree structure, validating the data through tree traversal, and generating outputs by traversing the tree a second time. The document argues that this approach provides reusability across different DSLs and output targets with good error reporting. It also gives examples of where internal DSLs are used, such as for HTTP APIs, configuration files, databases, and visual editors.
Java Bytecode for Discriminating Developers - JavaZone 2011Anton Arhipov
The document discusses Java bytecode and provides examples of decompiling a simple "Hello World" Java program to bytecode using the javap tool. It summarizes the structure of bytecode, including one-byte instructions, opcode taxonomy involving stack manipulation, flow control, and object models. The document demonstrates how javap can be used to disassemble a class file into bytecode instructions and interpret the constant pool references.
OracleCode One 2018: Java 5, 6, 7, 8, 9, 10, 11: What Did You Miss?Henri Tremblay
Those are the slides for my presentation at OracleCode One 2018.
Java is moving faster and faster. A lot of features are not as known as they should be.
Let's review together the ones I think you've missed in old versions.
Then I will kickstart you on 9, 10 and 11 features that you never had time to look at.
Java is an object-oriented programming language created by James Gosling. It was originally called Oak but was later renamed to Java. The document discusses the different editions of Java including J2SE, J2EE, and J2ME. It also covers key Java technologies like applets, servlets, JSP, and Swing. The document provides an overview of Java features such as being platform independent, portable, multi-threaded, and having a Java Virtual Machine. It also discusses concepts like inheritance, interfaces, packages, exceptions, and input/output in Java.
The document discusses using Groovy to improve Java testing. Groovy allows writing tests more concisely using features like closures, native list/map syntax, and dynamic proxies. It also enables mocking collaborators without external libraries. Groovy integrates fully with JUnit and TestNG and helps test exceptions, databases using DbUnit, and drive functional UI tests more easily.
The document discusses the new features and certification process for Java SE 7. It describes that the certification has been updated to require more advanced skills. There are now two certification levels: Oracle Certified Associate, Java SE 7 Programmer (OCA) and Oracle Certified Professional, Java SE 7 Programmer (OCP). The OCA exam covers basic Java topics in 90 multiple choice questions over 140 minutes. The OCP exam requires passing the OCA first and covers more advanced topics in 90 questions over 150 minutes. Developers with prior certifications can take an upgrade exam to certify for Java SE 7.
Groovy is a dynamic language for the Java Virtual Machine that aims to provide productivity features like closures, builders, and metaprogramming while leveraging Java's capabilities. The document discusses why developers should use Groovy to build Atlassian plugins, noting features like closures, domain specific languages, and builders that improve productivity. It addresses myths that dynamic typing reduces IDE support and that scripting languages are unprofessional. Code examples demonstrate how Groovy code can be more concise and readable than equivalent Java code.
Java 7 was released in mid-2011 with some new features but missing others that were postponed to Java 8. The key new features in Java 7 included strings in switch statements, try-with-resources for simpler resource management, multi-catch exceptions, binary literals, and the Fork/Join framework for parallel programming. The invokedynamic bytecode instruction and related APIs also provided better support for dynamic languages on the JVM. Some planned language enhancements from Project Coin were postponed, while others like closures were delayed until Java 8.
Java is an object-oriented programming language developed by James Gosling at Sun Microsystems in 1995. It allows software to run on any device that supports Java Virtual Machine (JVM), making it platform independent. The core Java technologies include Applets, Servlets, JSP, Swing, EJB, JDBC, Struts, Hibernate, and Spring. Java supports concepts like inheritance, polymorphism, abstraction through classes and interfaces. It also allows overriding methods for inheritance and implements interfaces for multiple inheritance.
Java 7 was released in July 2011 with improvements to performance, concurrency, and memory management. Plans for Java 8 include modularity, lambda expressions, and date/time APIs. The Java Community Process is also being improved to increase transparency, participation, and agility through JSR 348. Overall, the Java ecosystem continues to grow with new languages on the JVM and an active community.
The document discusses using Java objects to generate JSON. It provides an overview of the steps involved, including setting response headers, getting the Java object result, converting it to a JSONObject using the org.json utilities, and outputting the JSONObject. Code samples are given for a servlet that performs these steps. Specifically, it shows calling a business logic method to get a Java result, converting it to a JSONObject, and printing the JSONObject to the response.
The document provides an introduction to the Java programming language. It discusses that Java was created by Sun Microsystems to allow web pages to include interactive Java code. It is a simple, object-oriented, portable language that uses bytecode and a virtual machine to achieve platform independence. The document outlines Java's core features such as being distributed, multithreaded, robust, secure, and high performance. It also summarizes Java's basic data types, classes, objects, and how to write both applications and applets.
Groovy & Grails: Scripting for Modern Web Applicationsrohitnayak
Dynamic scripting languages are a powerful addition to a software designer’s toolbox. Rails/Ruby and Python have not gained much acceptance in the enterprise. Grails and Groovy are an attempt to bridge the gap between the modern scripting world and the Enterprise Java world.
This talk is an introduction towards building web applications in Grails. First we will go about creating a REST based webservice. We will also show how to replace the default database backend of Grails with MySQL.
We will then build a web application that consumes this webservice. The emphasis will be on the design patterns and idioms in Grails that address the web application development lifecycle.
This document discusses organizing a Python meetup group in Groningen. It outlines topics for discussion including transitioning from Java to Python, readability differences between the languages, and the Python development cycle. Suggestions are made for logistics like meeting schedule, location, and topics of interest like web development, frameworks, and performance tuning. The document argues that Python has advantages over Java for readability and a more pragmatic, productive development cycle, though Java is safer and more widely adopted in large companies.
This document provides an overview of the Griffon framework for building desktop applications in Groovy and Java. It discusses key Griffon concepts like conventions over configuration, MVC patterns, built-in testing support, and automation of repetitive tasks. The document also covers Griffon features such as lifecycle scripts, binding, threading, and popular plugins. Resources for learning more about Griffon and its community are provided at the end.
The document summarizes new features introduced in Java 5 and Java 6. Java 5 introduced generics, autoboxing/unboxing, enhanced for loops, and annotations. Java 6 added support for XML processing and web services using annotations, the Rhino JavaScript engine, improved GUI APIs, and Java DB for database connectivity.
This document summarizes key features introduced in Java SE 5.0 (Tiger) including generics, autoboxing/unboxing, enhanced for loops, type-safe enums, varargs, static imports, and annotations. It also discusses performance enhancements in the virtual machine as well as new concurrency utilities like Executors and ScheduledExecutorService that make multi-threaded programming easier and more robust.
JavaFX Your Way: Building JavaFX Applications with Alternative LanguagesStephen Chin
JavaFX is more than a language. It is also a platform for building immersive applications with graphics, animation, and rich media. In this session, you will see how you can leverage JavaFX from a host of different JVM languages, including Java, JRuby, Groovy, Scala, and Clojure.
Groovy - Grails as a modern scripting language for Web applicationsIndicThreads
Dynamic scripting languages are a powerful addition to a software designer’s toolbox. Rails/Ruby and Python have not gained much acceptance in the enterprise. Grails and Groovy are an attempt to bridge the gap between the modern scripting world and the Enterprise Java world.
This talk is an introduction towards building web applications in Grails. First we will go about creating a REST based webservice. We will also show how to replace the default database backend of Grails with MySQL.
We will then build a web application that consumes this webservice. The emphasis will be on the design patterns and idioms in Grails that address the web application development lifecycle.
The document discusses polyglot programming on the Java Virtual Machine (JVM). It introduces the speaker and provides background on Java. It notes that while Java is mature, other JVM languages like Groovy, Scala, and Clojure have evolved faster with features like closures, pattern matching, and immutability. These languages are highly interoperable with Java and allow for reduced verbosity. The document demonstrates features of these languages and provides examples of domains where polyglot programming is common like web development, next-gen data stores, and build systems. It encourages the audience to try these languages on the JVM.
Groovy is a dynamic language for the Java Virtual Machine that simplifies programming through features like closures, properties, and built-in support for lists, maps, ranges, and regular expressions. The latest version 1.5 adds support for Java 5 features like annotations and generics to leverage frameworks that use them. Groovy can be integrated into applications through mechanisms like JSR-223, Spring, and Groovy's own GroovyClassLoader to externalize business rules, provide extension points, and customize applications.
Similar to Why is Java relevant? New features of Java8 (20)
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...alexjohnson7307
Predictive maintenance is a proactive approach that anticipates equipment failures before they happen. At the forefront of this innovative strategy is Artificial Intelligence (AI), which brings unprecedented precision and efficiency. AI in predictive maintenance is transforming industries by reducing downtime, minimizing costs, and enhancing productivity.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on automated letter generation for Bonterra Impact Management using Google Workspace or Microsoft 365.
Interested in deploying letter generation automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfflufftailshop
When it comes to unit testing in the .NET ecosystem, developers have a wide range of options available. Among the most popular choices are NUnit, XUnit, and MSTest. These unit testing frameworks provide essential tools and features to help ensure the quality and reliability of code. However, understanding the differences between these frameworks is crucial for selecting the most suitable one for your projects.
A Comprehensive Guide to DeFi Development Services in 2024Intelisync
DeFi represents a paradigm shift in the financial industry. Instead of relying on traditional, centralized institutions like banks, DeFi leverages blockchain technology to create a decentralized network of financial services. This means that financial transactions can occur directly between parties, without intermediaries, using smart contracts on platforms like Ethereum.
In 2024, we are witnessing an explosion of new DeFi projects and protocols, each pushing the boundaries of what’s possible in finance.
In summary, DeFi in 2024 is not just a trend; it’s a revolution that democratizes finance, enhances security and transparency, and fosters continuous innovation. As we proceed through this presentation, we'll explore the various components and services of DeFi in detail, shedding light on how they are transforming the financial landscape.
At Intelisync, we specialize in providing comprehensive DeFi development services tailored to meet the unique needs of our clients. From smart contract development to dApp creation and security audits, we ensure that your DeFi project is built with innovation, security, and scalability in mind. Trust Intelisync to guide you through the intricate landscape of decentralized finance and unlock the full potential of blockchain technology.
Ready to take your DeFi project to the next level? Partner with Intelisync for expert DeFi development services today!
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfChart Kalyan
A Mix Chart displays historical data of numbers in a graphical or tabular form. The Kalyan Rajdhani Mix Chart specifically shows the results of a sequence of numbers over different periods.
This presentation provides valuable insights into effective cost-saving techniques on AWS. Learn how to optimize your AWS resources by rightsizing, increasing elasticity, picking the right storage class, and choosing the best pricing model. Additionally, discover essential governance mechanisms to ensure continuous cost efficiency. Whether you are new to AWS or an experienced user, this presentation provides clear and practical tips to help you reduce your cloud costs and get the most out of your budget.
5. Why is Java still relevant? Popular
TIOBE Programming Language Index
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
6. Why is Java still relevant? Popular
# of projects on
https://github.com/languages
7. Why is Java still relevant? Popular
# of questions by tags on
http://stackoverflow.com/tags
8. Why is Java still relevant? Popular
# of questions in stackoverflow.com
# of github projects
http://redmonk.com/sogrady/2013/02/28/language-rankings-1-13/
10. Why is Java still relevant? Android
Android constitutes >70% of the handheld market
11. Why is Java still relevant? JVM
BYOP – Bring your own Programming Language
12. Why is Java still relevant?
• A rich ecosystem of libraries, frameworks and tools
(batteries included)
• Android (mobile and handhelds)
• The JVM (WORA, support for other languages also)
• Massive installed base
• Still one of the most popular languages around for
enterprise development
• Open Source (Community JCP/JEP)
• Backed by some of the biggest technology companies
(IBM, Google, Apache, RedHat)
14. What is new in Java 8
• The use of lambda expressions (closures,
Moore's Law, simplifying concurrent
programming)
• Method references
• Default methods (monkey patching? Not
really)
• New Time API (JSR 310) (age calculation
finally becomes a one liner!! )
System.out.println("age is " +
Period.between(LocalDate.of(1980, 1, 1), LocalDate.now()).getYears());
15. What is new in Java 8 - Lambda
FileFilter filter = new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".java");
}
}; for ( File f : new File(".")
for ( File f : .listFiles( x ->
new File(".").listFiles(filter) ) { x.getName().endsWith(".java")) ) {
System.out.println(f); System.out.println(f);
} }
$ java -version
java version "1.6.0_41"
Java(TM) SE Runtime Environment (build 1.6.0_41-b02-445-11M4107)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01-445, mixed mode)
$ javac Test.java
$ java Test
./Test.java
./Test8.java
$ $J8_HOME/bin/java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b79)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b20, mixed mode)
$ $J8_HOME/bin/javac Test8.java
$ $J8_HOME/bin/java Test8
./Test.java
./Test8.java
16. What is new in Java 8 – Method references
class Person { List<Person> people = Arrays.asList(
private final String name; new Person(20, "Jack"),
private final int age; new Person(42, "Bill"),
new Person(22, "Jill")
Person(int a, String n) { );
name = n; Collections.sort(people,
age = a; Person::compareByAge);
} System.out.println(people);
public static int compareByAge( Collections.sort(people,
Person a, Person b) { Person::compareByName);
return a.age - b.age; System.out.println(people);
}
public static int compareByName(
Person a, Person b) { $ $J8_HOME/bin/javac MethodRef.java
return a.name.compareTo(b.name); $ $J8_HOME/bin/java MethodRef
} [Jack age 20, Jill age 22, Bill age 42]
@Override [Bill age 42, Jack age 20, Jill age 22]
public String toString() {
return name + " age " + age;
}
}
17. What is new in Java 8 – Default methods
interface Shape { interface Shape {
double getWidth(); double getWidth();
double getHeight(); double getHeight();
} default double area() {
return getWidth() * getHeight();
class Rectangle implements Shape { }
}
double width, height;
Rectangle(double w, double h) {
width = w;
height = h; Default methods allow us
}
@Override
public double getWidth() {
specify default behaviour
}
return width; without having to introduce
abstract classes
@Override
public double getHeight() {
return height;
}
}
19. What is new in JVM
• Convergence of the Hotspot and the JRockIt
• PermGen gives way to Metaspaces (JEP 122)
• Profiles ~ Java ME -> Java SE
• Reduce HotSpot’s class metadata memory
footprint
• More compact and efficient Nashorn Javascript
engine