Scripting for the JVM using Groovy. Adil Khan Sr. Application Developer /Java Group Biomedical Informatics

Size: px
Start display at page:

Download "Scripting for the JVM using Groovy. Adil Khan Sr. Application Developer /Java Group Biomedical Informatics"

Transcription

1 Scripting for the JVM using Groovy Adil Khan Sr. Application Developer /Java Group Biomedical Informatics

2 Outline

3 What is Groovy? Outline

4 Outline What is Groovy? Why would we want to use it?

5 Outline What is Groovy? Why would we want to use it? A taste of the features.

6 Outline What is Groovy? Why would we want to use it? A taste of the features. Some examples in the BMI world.

7 Outline What is Groovy? Why would we want to use it? A taste of the features. Some examples in the BMI world. Other Features

8 What is Groovy?

9 What is Groovy? Released in 2003 ~ Java 1.4

10 What is Groovy? Released in 2003 ~ Java 1.4 Scripting language that is a Superset of Java.

11 What is Groovy? Released in 2003 ~ Java 1.4 Scripting language that is a Superset of Java. Great for Designing Domain Specific Languages (DSL).

12 What is Groovy? Released in 2003 ~ Java 1.4 Scripting language that is a Superset of Java. Great for Designing Domain Specific Languages (DSL). Seamless Integration with Java. (Groovy is Java)

13 What is Groovy? Released in 2003 ~ Java 1.4 Scripting language that is a Superset of Java. Great for Designing Domain Specific Languages (DSL). Seamless Integration with Java. (Groovy is Java) Natural for Java Developers /Access to all java libraries.

14 What is Groovy? Released in 2003 ~ Java 1.4 Scripting language that is a Superset of Java. Great for Designing Domain Specific Languages (DSL). Seamless Integration with Java. (Groovy is Java) Natural for Java Developers /Access to all java libraries. Natural for Scripters who want to learn/use Java.

15 What is Groovy? Released in 2003 ~ Java 1.4 Scripting language that is a Superset of Java. Great for Designing Domain Specific Languages (DSL). Seamless Integration with Java. (Groovy is Java) Natural for Java Developers /Access to all java libraries. Natural for Scripters who want to learn/use Java. Potential avenue for non-java developers who need access to java api/libraries

16 What is Groovy (Ctd.) Numerous ways to run groovy. Interactive console like Ruby, Python Shell Scripts: #!/usr/bin/env groovy GroovyShell Helper class java groovy.lang.groovyshell path_to/myscript.groovy Plugins for Eclipse/Netbeans etc. The designers goals is to have a language that gets out of the way and allows you to be productive.

17 A Taste Hello World Java: Hello World Groovy: Note lack of parenthesis, semicolons, modifiers and Typing.

18 More useful Example Java (6) Print contents of a file: With Groovy:

19 More useful Example Java (6) Print contents of a file: With Groovy:

20 More useful Example (Ctd) java.io.file class with a Groovy Nature. Groovy enhances existing java Objects. Use of closures /Functional programming. A more java like example:

21 Baked in Features

22 Baked in Features A quick overview of some basic built in features.

23 Baked in Features A quick overview of some basic built in features. Collections

24 Baked in Features A quick overview of some basic built in features. Collections {G}Strings

25 Baked in Features A quick overview of some basic built in features. Collections {G}Strings Templating

26 Baked in Features A quick overview of some basic built in features. Collections {G}Strings Templating Switch

27 Baked in Features A quick overview of some basic built in features. Collections {G}Strings Templating Switch Builders / Slurpers

28 Lists : Collections

29 Lists : Collections

30 Maps : Collections (Ctd)

31 Maps : Collections (Ctd)

32 Collections (Ctd) Range Using the.. operator

33 Collections (Ctd) Range Using the.. operator

34 {G}Strings Powerful extensions to the java.lang.string class. Evaluate expressions and here documents ( ).

35 {G}Strings Powerful extensions to the java.lang.string class. Evaluate expressions and here documents ( ).

36 Templating Templating engine allows for quick building of text. Good use case of building sql statements, or any dynamic text.

37 Templating Templating engine allows for quick building of text. Good use case of building sql statements, or any dynamic text.

38 Templating Templating engine allows for quick building of text. Good use case of building sql statements, or any dynamic text.

39 Switch Can use any object in the condition

40 Switch Can use any object in the condition

41 Switch Can use any object in the condition

42 Builders Built in ability to generate/parse JSON/XML Declarative Nature of groovy simplifies the task.

43 Builders Built in ability to generate/parse JSON/XML Declarative Nature of groovy simplifies the task.

44 Builders Built in ability to generate/parse JSON/XML Declarative Nature of groovy simplifies the task.

45 Builders (Ctd) Using MarkupBuilder to generate XML

46 Builders (Ctd) Using MarkupBuilder to generate XML

47 Builders (Ctd) Using MarkupBuilder to generate XML

48 Slurpers Using the Slurpers to build an object graph from Json/XML

49 Slurpers (Ctd) Xml example.

50 Potential Uses for Java Group

51 Potential Uses for Java Group Testing : unit/integration Ease of parsing/generating xml/json is very useful in integration tests.

52 Potential Uses for Java Group Testing : unit/integration Ease of parsing/generating xml/json is very useful in integration tests. Simplifying Utils classes.

53 Potential Uses for Java Group Testing : unit/integration Ease of parsing/generating xml/json is very useful in integration tests. Simplifying Utils classes. Build/Deployment scripts.

54 Potential Uses for Java Group Testing : unit/integration Ease of parsing/generating xml/json is very useful in integration tests. Simplifying Utils classes. Build/Deployment scripts. System Administration

55 Potential Uses for Java Group Testing : unit/integration Ease of parsing/generating xml/json is very useful in integration tests. Simplifying Utils classes. Build/Deployment scripts. System Administration DSLs

56 Testing Java with Groovy Creating Mock/Stub objects that simulate request/response for unit testing. Requirements specific testing using frameworks such as Spock (BDD) Unit Testing baked in groovy.util.groovytestcase Use case of using groovy constructs to simplify loops/parameters to java code.

57 Simplifying Utils Classes

58 Simplifying Utils Classes

59 Simplifying Utils Classes

60 Simplifying Utils Classes

61 Simplifying Utils Classes

62 Build/Monitor Scripts Invoke Groovy Scripts in Ant using the <groovy> tag. Use Groovy to monitor tomcat/application status *.

63 Build/Monitor Scripts Invoke Groovy Scripts in Ant using the <groovy> tag. Use Groovy to monitor tomcat/application status *.

64 Build/Monitor Scripts Invoke Groovy Scripts in Ant using the <groovy> tag. Use Groovy to monitor tomcat/application status *. *

65 Other Topics to Research DSLs-Powerful feature of Groovy to build specific languages for specific tasks. Web Application Frameworks like Grails could be useful for rapid prototyping of ideas. Developers with scripting/non-java background can get easier access to existing java code base.

66 Q/A

Groovy For Java Programmers

Groovy For Java Programmers Groovy For Java Programmers QCONSF 2010 Jeff Brown Core Grails Developer jeff.brown@springsource.com SpringSource - A Division Of VMware http://springsource.com/ Copyright 2010 SpringSource. Copying, publishing

More information

Groovy & Grails Scripting for Modern Web Applications. Rohit Nayak Talentica Software

Groovy & Grails Scripting for Modern Web Applications. Rohit Nayak Talentica Software Groovy & Grails Scripting for Modern Web Applications Rohit Nayak Talentica Software Agenda Demo: Quick intro to Grails Scripting, Web Applications and Grails/Groovy REST service in Grails Demo Internals

More information

Jussi Riihelä / Jussi Riihelä

Jussi Riihelä / Jussi Riihelä 28.4.2006 Jussi Riihelä jussi.riihela@nokia.com 1 2006-04-28 / Jussi Riihelä Content Basic facts and motivation Groovy features IDE support and runtime dependencies Criticism 2 2006-04-28 / Jussi Riihelä

More information

Beginning Groovy, Grails and Griffon. Vishal Layka Christopher M. Judd Joseph Faisal Nusairat Jim Shingler

Beginning Groovy, Grails and Griffon. Vishal Layka Christopher M. Judd Joseph Faisal Nusairat Jim Shingler Beginning Groovy, Grails and Griffon Vishal Layka Christopher M. Judd Joseph Faisal Nusairat Jim Shingler Contents J About the Authors About the Technical Reviewer Acknowledgments xv xvii xix Chapter 1:

More information

Web Frameworks MMIS 2 VU SS Denis Helic. March 10, KMI, TU Graz. Denis Helic (KMI, TU Graz) Web Frameworks March 10, / 18

Web Frameworks MMIS 2 VU SS Denis Helic. March 10, KMI, TU Graz. Denis Helic (KMI, TU Graz) Web Frameworks March 10, / 18 Web Frameworks MMIS 2 VU SS 2011-707.025 Denis Helic KMI, TU Graz March 10, 2011 Denis Helic (KMI, TU Graz) Web Frameworks March 10, 2011 1 / 18 Web Application Frameworks MVC Frameworks for Web applications

More information

Groovy and Grails in Google App Engine

Groovy and Grails in Google App Engine Groovy and Grails in Google App Engine Benefit from a Java-like dynamic language to be more productive on App Engine Guillaume Laforge Head of Groovy Development Guillaume Laforge Groovy Project Manager

More information

SpringSource Tool Suite M2

SpringSource Tool Suite M2 SpringSource Tool Suite 2.7.0.M2 - New and Noteworthy - Martin Lippert 2.7.0.M2 June 13, 2011 Updated for 2.7.0.M2 ENHANCEMENTS 2.7.0.M2 General Updates Memory Settings We raised the default memory settings

More information

This tutorial explains how you can use Gradle as a build automation tool for Java as well as Groovy projects.

This tutorial explains how you can use Gradle as a build automation tool for Java as well as Groovy projects. About the Tutorial Gradle is an open source, advanced general purpose build management system. It is built on ANT, Maven, and lvy repositories. It supports Groovy based Domain Specific Language (DSL) over

More information

Scripting without Scripts: A User-Friendly Integration of R, Python, Matlab and Groovy into KNIME

Scripting without Scripts: A User-Friendly Integration of R, Python, Matlab and Groovy into KNIME Scripting without Scripts: A User-Friendly Integration of R, Python, Matlab and Groovy into KNIME Felix Meyenhofer Technology Development Studio 3. March 2011 4th KNIME Users Group Meeting and Workshop

More information

Grails Seminar 11/12/09. Groovy And Grails. An Overview

Grails Seminar 11/12/09. Groovy And Grails. An Overview Grails Seminar 11/12/09 Groovy And Grails An Overview Groovy What Is Groovy? Groovy... Is A Dynamic Language For The Java Virtual Machine (JVM) Takes inspiration from Smalltalk, Python and Ruby (etc...)

More information

Mischa Kölliker. JavaLounge Zürich, 23. Juni 2009

Mischa Kölliker. JavaLounge Zürich, 23. Juni 2009 Mischa Kölliker Ueli Kistler JavaLounge Zürich, 23. Juni 2009 Basel Baden Bern Brugg Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart Wien & The RIA space What is Adobe

More information

Groovy. Extending Java with scripting capabilities. Last updated: 10 July 2017

Groovy. Extending Java with scripting capabilities. Last updated: 10 July 2017 Groovy Extending Java with scripting capabilities Last updated: 10 July 2017 Pepgo Limited, 71-75 Shelton Street, Covent Garden, London, WC2H 9JQ, United Kingdom Contents About Groovy... 3 Install Groovy...

More information

Grails Framework. Modern Web Applications written in Groovy CERN EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH. Eloy Reguero Fuentes.

Grails Framework. Modern Web Applications written in Groovy CERN EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH. Eloy Reguero Fuentes. CERN Grails Framework Modern Web Applications written in Groovy You Who knows what Groovy is? Who knows what Grails is? Who knows JAVA? Summary What is Grails What is Groovy Grails Architecture Grails

More information

SpringSource Tool Suite 2.7.1

SpringSource Tool Suite 2.7.1 SpringSource Tool Suite 2.7.1 - New and Noteworthy - Martin Lippert 2.7.1 July 12, 2011 Updated for 2.7.1.RELEASE ENHANCEMENTS 2.7.1 General Updates Spring Roo 1.1.5 STS now ships and works with the just

More information

Getting. Started with. smash. IBM WebSphere. Ron Lynn, Karl Bishop, Brett King

Getting. Started with. smash. IBM WebSphere. Ron Lynn, Karl Bishop, Brett King Getting Started with IBM WebSphere smash Ron Lynn, Karl Bishop, Brett King Contents Introduction 1 Situational Applications 1 Rapid Application Development 1 IBM WebSphere smash Development Process 2 Available

More information

Groovy A Language Introduction for Java Programmers

Groovy A Language Introduction for Java Programmers Groovy A Language Introduction for Java Programmers Eric Schreiner Managing Director Contecon Software GmbH Eric Schreiner Groovy: A Language Introduction for Java Programmers Slide 1 Other Groovy related

More information

Groovy, but without a cheesy presentation title...

Groovy, but without a cheesy presentation title... Groovy, but without a cheesy presentation title... Ken Rimple, Chariot Solutions! Emerging Technologies for the Enterprise 2009! All About Me...! Ken Rimple!Mentoring/Education Services lead for Chariot

More information

Groovy & Grails in Depth

Groovy & Grails in Depth Groovy & Grails in Depth Simplifying Java EE with Grails Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Speaker s qualifications Graeme

More information

Closing the Case for Groovy (and Ruby, and Python)

Closing the Case for Groovy (and Ruby, and Python) Closing the Case for Groovy (and Ruby, and Python) Dr Russel Winder Concertant LLP russel.winder@concertant.com 2007 Russel Winder 1 Aims and Objectives Convince people that dynamic typing is not a difficulty,

More information

Behaviour Driven Development with Java. Nikolay Vasilev 15 July 2011

Behaviour Driven Development with Java. Nikolay Vasilev 15 July 2011 Behaviour Driven Development with Java Nikolay Vasilev 15 July 2011 Content What BDD is? Jbehave JBehave and Selenium Jbehave Pros and Cons Questions and Answers References 2 BDD 3 Test-Driven Development

More information

Build Automation Kurt Christensen

Build Automation Kurt Christensen Build Automation Kurt Christensen Kurt Christensen Computer programmer (17 years) and software development coach (9 years) github.com/projectileboy Available for purchase at: kurt.j.christensen@gmail.com

More information

Banner Student. Banner Student: Communication Plan, Population Selection and Letter Generation. Description

Banner Student. Banner Student: Communication Plan, Population Selection and Letter Generation. Description Banner Student Banner Student: Communication Plan, Population Selection and Letter Generation A communication plan is a method of organizing and automating the process of distributing materials to persons.

More information

We are ready to serve Latest Testing Trends, Are you ready to learn? New Batch Details

We are ready to serve Latest Testing Trends, Are you ready to learn? New Batch Details We are ready to serve Latest Testing Trends, Are you ready to learn? START DATE : New Batch Details TIMINGS : DURATION : TYPE OF BATCH : FEE : FACULTY NAME : LAB TIMINGS : SOAP UI, SOA Testing, API Testing,

More information

Building Grails Applications with PostgreSQL. Brent Baxter and Ken Rimple PostgreSQL East - March 25, 2010

Building Grails Applications with PostgreSQL. Brent Baxter and Ken Rimple PostgreSQL East - March 25, 2010 Building Grails Applications with PostgreSQL Brent Baxter and Ken Rimple About Brent and Ken Brent Baxter: bbaxter@chariotsolutions.com Consultant and Applications Architect Grails, Java, and Spring developer

More information

Overview of the Ruby Language. By Ron Haley

Overview of the Ruby Language. By Ron Haley Overview of the Ruby Language By Ron Haley Outline Ruby About Ruby Installation Basics Ruby Conventions Arrays and Hashes Symbols Control Structures Regular Expressions Class vs. Module Blocks, Procs,

More information

March 26, Groovy Magic How Java Got Its Groove On

March 26, Groovy Magic How Java Got Its Groove On March 26, 2008 Groovy Magic How Java Got Its Groove On By Dan Sline Agenda What is Groovy? Groovy Fundamentals Integrating Groovy and Java Putting it all together About JPMorganChase HJUG Presentation

More information

Building a (resumable and extensible) DSL with Apache Groovy Jesse Glick CloudBees, Inc.

Building a (resumable and extensible) DSL with Apache Groovy Jesse Glick CloudBees, Inc. Building a (resumable and extensible) DSL with Apache Groovy Jesse Glick CloudBees, Inc. Introduction About Me Longtime Jenkins core contributor Primary developer on Jenkins Pipeline Meet Jenkins Pipeline

More information

Programming in Visual Basic with Microsoft Visual Studio 2010

Programming in Visual Basic with Microsoft Visual Studio 2010 Programming in Visual Basic with Microsoft Visual Studio 2010 Course 10550; 5 Days, Instructor-led Course Description This course teaches you Visual Basic language syntax, program structure, and implementation

More information

A Glance Over the Serverless Framework

A Glance Over the Serverless Framework A Glance Over the Serverless Framework Rafael Zotto Senior Software Architect, HP Inc. Short Bio Rafael Zotto Holds a master degree in Computer Science focused in high performance computing. Specialized

More information

CL_55244 JavaScript for Developers

CL_55244 JavaScript for Developers www.ked.com.mx Av. Revolución No. 374 Col. San Pedro de los Pinos, C.P. 03800, México, CDMX. Tel/Fax: 52785560 Por favor no imprimas este documento si no es necesario. About this course. This course is

More information

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led CENTER OF KNOWLEDGE, PATH TO SUCCESS Website: PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO 2010 Course: 10550A; Duration: 5 Days; Instructor-led WHAT YOU WILL LEARN This course teaches you

More information

Testing with Soap UI. Tomaš Maconko

Testing with Soap UI. Tomaš Maconko Testing with Soap UI Tomaš Maconko 1 Content What is Soap UI? What features does the Soap UI have? Usage in project context Pros and cons Soap UI alternatives 2 What is Soap UI? Open Source Testing Tool

More information

VIEW POINT. Choosing the right automation tool and framework is critical to project success. Harsh Bajaj, Technical Test Lead ECSIVS, Infosys

VIEW POINT. Choosing the right automation tool and framework is critical to project success. Harsh Bajaj, Technical Test Lead ECSIVS, Infosys VIEW POINT Choosing the right automation tool and framework is critical to project success Harsh Bajaj, Technical Test Lead ECSIVS, Infosys Introduction Organizations have become cognizant of the crucial

More information

Avoiding regressions in an agile development environment. At Yottaa

Avoiding regressions in an agile development environment. At Yottaa Avoiding regressions in an agile development environment At Yottaa Speaker Intro Studied Computer Science at Helsinki University Previously, Consulting Engineer at DEC Founder of Automature Developed middleware

More information

Ruby on Rails. SITC Workshop Series American University of Nigeria FALL 2017

Ruby on Rails. SITC Workshop Series American University of Nigeria FALL 2017 Ruby on Rails SITC Workshop Series American University of Nigeria FALL 2017 1 Evolution of Web Web 1.x Web 1.0: user interaction == server roundtrip Other than filling out form fields Every user interaction

More information

MySQL as a Document Store. Ted Wennmark

MySQL as a Document Store. Ted Wennmark MySQL as a Document Store Ted Wennmark ted.wennmark@oracle.com Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and

More information

Scala, Your Next Programming Language

Scala, Your Next Programming Language Scala, Your Next Programming Language (or if it is good enough for Twitter, it is good enough for me) WORLDCOMP 2011 By Dr. Mark C. Lewis Trinity University Disclaimer I am writing a Scala textbook that

More information

SpringSource Tool Suite 2.8.0

SpringSource Tool Suite 2.8.0 SpringSource Tool Suite 2.8.0 - New and Noteworthy - Martin Lippert 2.8.0.RELEASE October 18, 2011 Updated for 2.8.0.RELEASE ENHANCEMENTS 2.8.0 General Updates Eclipse Indigo SR1, including support for

More information

The Script Bowl Featuring Groovy, JRuby, Jython and Scala. Raghavan Rags N. Srinivas CTO, Technology Evangelism

The Script Bowl Featuring Groovy, JRuby, Jython and Scala. Raghavan Rags N. Srinivas CTO, Technology Evangelism The Script Bowl Featuring Groovy, JRuby, Jython and Scala Raghavan Rags N. Srinivas CTO, Technology Evangelism The Script Bowl: Groovy Style Guillaume Laforge VP Technology at G2One, Inc. Groovy Project

More information

Richard Mallion. Swift for Admins #TEAMSWIFT

Richard Mallion. Swift for Admins #TEAMSWIFT Richard Mallion Swift for Admins #TEAMSWIFT Apple Introduces Swift At the WWDC 2014 Keynote, Apple introduced Swift A new modern programming language It targets the frameworks for Cocoa and Cocoa Touch

More information

Groovy Primer Chris Dail Groovy Primer (March 2010)

Groovy Primer Chris Dail  Groovy Primer (March 2010) Groovy Primer Chris Dail http://chrisdail.com Twitter: @chrisdail What is Groovy? An agile dynamic language for the Java Platform Both dynamically and statically typed Functional programming influence

More information

UNIT -5. Java Server Page

UNIT -5. Java Server Page UNIT -5 Java Server Page INDEX Introduction Life cycle of JSP Relation of applet and servlet with JSP JSP Scripting Elements Difference between JSP and Servlet Simple JSP program List of Questions Few

More information

Gant as Ant and Maven Replacement

Gant as Ant and Maven Replacement Gant as Ant and Maven Replacement Dr Russel Winder Concertant LLP russel.winder@concertant.com russel@russel.org.uk Groovy and Grails User Group 2007 Russel Winder 1 Aims and Objectives Convince people

More information

Notes from a Short Introductory Lecture on Scala (Based on Programming in Scala, 2nd Ed.)

Notes from a Short Introductory Lecture on Scala (Based on Programming in Scala, 2nd Ed.) Notes from a Short Introductory Lecture on Scala (Based on Programming in Scala, 2nd Ed.) David Haraburda January 30, 2013 1 Introduction Scala is a multi-paradigm language that runs on the JVM (is totally

More information

Python where we can, C ++ where we must

Python where we can, C ++ where we must Python where we can, C ++ where we must Source: http://xkcd.com/353/ Guy K. Kloss Python where we can,c++ where we must 1/28 Python where we can, C ++ where we must Guy K. Kloss BarCamp Auckland 2007 15

More information

Implementation of F# language support in JetBrains Rider IDE

Implementation of F# language support in JetBrains Rider IDE SAINT-PETERSBURG STATE UNIVERSITY Software Engineering Evgeniy Auduchinok Implementation of F# language support in JetBrains Rider IDE Graduation Thesis Scientific supervisor: Senior lecturer Iakov Kirilenko

More information

Concepts in Programming Languages

Concepts in Programming Languages Concepts in Programming Languages Marcelo Fiore Computer Laboratory University of Cambridge 2012 2013 (Easter Term) 1 Practicalities Course web page: with lecture

More information

Quick Start ArcGIS Enterprise with Automation. Shannon Kalisky Mark Carlson Nikhil Shampur Cherry Lin

Quick Start ArcGIS Enterprise with Automation. Shannon Kalisky Mark Carlson Nikhil Shampur Cherry Lin Quick Start ArcGIS Enterprise with Automation Shannon Kalisky Mark Carlson Nikhil Shampur Cherry Lin Software installation is my favorite! I really love how complex and repetitive it can be especially

More information

Eclipse. JVM, main method and using Eclipse. Dr. Siobhán Drohan. Produced by: Department of Computing and Mathematics

Eclipse. JVM, main method and using Eclipse. Dr. Siobhán Drohan. Produced by: Department of Computing and Mathematics Eclipse JVM, main method and using Eclipse Produced by: Dr. Siobhán Drohan Department of Computing and Mathematics http://www.wit.ie/ Topics list Files in Java. Java Virtual Machine. main method. Eclipse

More information

Strategies for Rapid Web Prototyping. Ruby on Rails. Clemens H. Cap

Strategies for Rapid Web Prototyping. Ruby on Rails. Clemens H. Cap Strategies for Rapid Web Prototyping Ruby on Rails Strategies for Rapid Web Prototyping DRY: Don't repeat yourself Convention over Configuration Separation of Concern Templating MVC: Model View Controler

More information

The Grails Plugin System

The Grails Plugin System Grails Seminar 11/12/09 The Grails Plugin System Modular Application Development With Grails The Background Grails is designed to wire together different libraries and make them easy to use In this sense

More information

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory SCRIPTING Overview Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Reflection Bindings Serialization Performance, memory Rationale C++ isn't the best choice

More information

Six Things Groovy Can Do For You

Six Things Groovy Can Do For You Six Things Groovy Can Do For You By Alan Green, Senior Consultant Cirrus Technologies Pty. Ltd. Abstract Groovy is a scripting language for the Java Virtual Machine, due for a 1.0 release in late 2005.

More information

CSE373: Data Structure & Algorithms Lecture 23: Programming Languages. Aaron Bauer Winter 2014

CSE373: Data Structure & Algorithms Lecture 23: Programming Languages. Aaron Bauer Winter 2014 CSE373: Data Structure & Algorithms Lecture 23: Programming Languages Aaron Bauer Winter 2014 Choosing a Programming Language Most of the time you won t have a choice about what programming language to

More information

Using Scala for building DSL s

Using Scala for building DSL s Using Scala for building DSL s Abhijit Sharma Innovation Lab, BMC Software 1 What is a DSL? Domain Specific Language Appropriate abstraction level for domain - uses precise concepts and semantics of domain

More information

Java Applets, etc. Instructor: Dmitri A. Gusev. Fall Lecture 25, December 5, CS 502: Computers and Communications Technology

Java Applets, etc. Instructor: Dmitri A. Gusev. Fall Lecture 25, December 5, CS 502: Computers and Communications Technology Java Applets, etc. Instructor: Dmitri A. Gusev Fall 2007 CS 502: Computers and Communications Technology Lecture 25, December 5, 2007 CGI (Common Gateway Interface) CGI is a standard for handling forms'

More information

Programming in C# with Microsoft Visual Studio 2010

Programming in C# with Microsoft Visual Studio 2010 Programming in C# with Microsoft Visual Studio 2010 Course 10266; 5 Days, Instructor-led Course Description: The course focuses on C# program structure, language syntax, and implementation details with.net

More information

Chicago Java User Group August 4, Polyglot Web Development With Grails 3

Chicago Java User Group August 4, Polyglot Web Development With Grails 3 Chicago Java User Group August 4, 2016 Polyglot Web Development With Grails 3 Cool Before it was cool to be cool. Open Source Solutions for 23 Years OCI WOW Projects Satellites, Satellites, Satellites

More information

A guide to learning the popular JVM programming language, Groovy 2.x, and its ecosystem

A guide to learning the popular JVM programming language, Groovy 2.x, and its ecosystem Learning Groovy A guide to learning the popular JVM programming language, Groovy 2.x, and its ecosystem Adam L. Davis This book is for sale at http://leanpub.com/learninggroovy This version was published

More information

ChainBuilder Connect IDE Guide 02/04/2010

ChainBuilder Connect IDE Guide 02/04/2010 file://c:\cbdoc\ide\ideguide\index.html Page 1 of 2 ChainBuilder Connect 2.1 ChainBuilder Connect IDE Guide 02/04/2010 Copyright 2006-2010 Bostech Corporation file://c:\cbdoc\ide\ideguide\index.html Page

More information

User Plugins. About Plugins. Deploying Plugins

User Plugins. About Plugins. Deploying Plugins User Plugins About Plugins Artifactory Pro allows you to easily extend Artifactory's behavior with your own plugins written in Groovy. User plugins are used for running user's code in Artifactory. Plugins

More information

Adobe ColdFusion level 1 course content (3-day)

Adobe ColdFusion level 1 course content (3-day) http://www.multimediacentre.co.za Cape Town: 021 790 3684 Johannesburg: 011 083 8384 Adobe ColdFusion level 1 course content (3-day) Course Description: ColdFusion 9 Fundamentals is a 3-day course that

More information

About 1. Chapter 1: Getting started with cucumber 2. Remarks 2. Examples 3. A Cucumber feature 3. Pure Ruby Installation 4

About 1. Chapter 1: Getting started with cucumber 2. Remarks 2. Examples 3. A Cucumber feature 3. Pure Ruby Installation 4 cucumber #cucumber Table of Contents About 1 Chapter 1: Getting started with cucumber 2 Remarks 2 Examples 3 A Cucumber feature 3 Pure Ruby Installation 4 A Cucumber step definition in Ruby 4 Chapter 2:

More information

Why switch exist-db from Ant to Maven?

Why switch exist-db from Ant to Maven? exist-db Developers Meetup Monday, 29 th March 2011 @ Prague Why switch exist-db from Ant to Maven? adam@exist-db.org www.existsolutions.com Why move away from Ant? The Current Situation Lots of pain associated

More information

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management IKAN ALM Architecture Closing the Gap Enterprise-wide Application Lifecycle Management Table of contents IKAN ALM SERVER Architecture...4 IKAN ALM AGENT Architecture...6 Interaction between the IKAN ALM

More information

MD Link Integration MDI Solutions Limited

MD Link Integration MDI Solutions Limited MD Link Integration 2013 2016 MDI Solutions Limited Table of Contents THE MD LINK INTEGRATION STRATEGY...3 JAVA TECHNOLOGY FOR PORTABILITY, COMPATIBILITY AND SECURITY...3 LEVERAGE XML TECHNOLOGY FOR INDUSTRY

More information

Defining Classes and Methods

Defining Classes and Methods Walter Savitch Frank M. Carrano Defining Classes and Methods Chapter 5 Class and Method Definitions: Outline Class Files and Separate Compilation Instance Variables Methods The Keyword this Local Variables

More information

Supplementary Appendix A. Supplementary Appendix B. Health Information Exchange for Continuity of Maternal and Neonatal Care Supporting

Supplementary Appendix A. Supplementary Appendix B. Health Information Exchange for Continuity of Maternal and Neonatal Care Supporting Supplementary Appendix A The ModelGenerator is the main package of the XML Flat parser that contains a set of classes responsible for interpreting archetypes and transforming Flat XMLs to ISO 13606 EHR

More information

Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p.

Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p. Preface p. xiii Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p. 11 Creating the Deployment Descriptor p. 14 Deploying Servlets

More information

Introduction to Python

Introduction to Python Islamic University Of Gaza Faculty of Engineering Computer Engineering Department Lab 1 Introduction to Python Eng. Ibraheem Lubbad September 17, 2016 Introduction: Python is a high-level, object-oriented

More information

Client Usage. Client Usage. Assumptions. Usage. Hdfs.put( session ).file( localfile ).to( remotefile ).now() java -jar bin/shell.

Client Usage. Client Usage. Assumptions. Usage. Hdfs.put( session ).file( localfile ).to( remotefile ).now() java -jar bin/shell. Client Usage Client Usage Hadoop requires a client that can be used to interact remotely with the services provided by Hadoop cluster. This will also be true when using the Apache Knox Gateway to provide

More information

Topic I. Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003.

Topic I. Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003. Topic I Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003. Chapter 1 of Programming languages: Design and implementation (3RD EDITION)

More information

Technology in Action. Chapter Topics. Scope creep occurs when: 3/20/2013. Information Systems include all EXCEPT the following:

Technology in Action. Chapter Topics. Scope creep occurs when: 3/20/2013. Information Systems include all EXCEPT the following: Technology in Action Technology in Action Alan Evans Kendall Martin Mary Anne Poatsy Chapter 10 Behind the Scenes: Software Programming Ninth Edition Chapter Topics Understanding software programming Life

More information

When Modeling meets Productivity. Sven Efftinge - itemis

When Modeling meets Productivity. Sven Efftinge - itemis When Modeling meets Productivity Sven Efftinge - itemis I Eclipse JDT I GIT So what s the Problem? It s the Language not the Tooling! Level of Abstraction Reuse existing, proven technology and apply

More information

What s new with tooling for Spring, Grails and the Cloud

What s new with tooling for Spring, Grails and the Cloud What s new with tooling for Spring, Grails and the Cloud Andy Clement, Staff Engineer Martin Lippert, Staff Engineer Andrew Eisenberg, Senior Member of Technical Staff 2012 SpringOne 2GX. All rights reserved.

More information

Domain-Specific. Languages. Martin Fowler. AAddison-Wesley. Sydney Tokyo. With Rebecca Parsons

Domain-Specific. Languages. Martin Fowler. AAddison-Wesley. Sydney Tokyo. With Rebecca Parsons Domain-Specific Languages Martin Fowler With Rebecca Parsons AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Sydney Tokyo Singapore

More information

Database code in PL-SQL PL-SQL was used for the database code. It is ready to use on any Oracle platform, running under Linux, Windows or Solaris.

Database code in PL-SQL PL-SQL was used for the database code. It is ready to use on any Oracle platform, running under Linux, Windows or Solaris. Alkindi Software Technology Introduction Alkindi designed a state of the art collaborative filtering system to work well for both largeand small-scale systems. This document serves as an overview of how

More information

TypeScript. Types. CS144: Web Applications

TypeScript. Types. CS144: Web Applications TypeScript Superset of JavaScript (a.k.a. JavaScript++) to make it easier to program for largescale JavaScript projects New features: types, interfaces, decorators,... All additional TypeScript features

More information

Liferay Architecture

Liferay Architecture Liferay Architecture Understanding the inside of Liferay Jorge Ferrer Vice President Engineering Table of Contents Architecture Overview Services Transactions Indexing Workflow Cache Frameworks Secret

More information

SpringSource Tool Suites M3

SpringSource Tool Suites M3 SpringSource Tool Suites 3.0.0.M3 - New and Noteworthy - Martin Lippert 3.0.0.M3 July 9, 2012 Updated for 3.0.0.M3 ENHANCEMENTS 3.0.0.M3 General Updates Distribution based on Eclipse Juno (4.2.0) STS now

More information

#jenkinsconf. Jenkins user plugin. This time it's. Jenkins User Conference Israel. Shiran JFrog

#jenkinsconf. Jenkins user plugin. This time it's. Jenkins User Conference Israel. Shiran JFrog Jenkins user plugin This time it's Shiran Rubin @ShiranRU JFrog http://jfrog.com July 16, 2014 About me Groovy developer in JFrog. The home of We work with: But support many others. It's time to There's

More information

A Plea for Pluggable Programming Language Features

A Plea for Pluggable Programming Language Features A Plea for Pluggable Programming Language Features Bernhard G. Humm, Darmstadt University of Applied Sciences Ralf S. Engelschall, Capgemini sd&m Research, Germany 5 th International Conference on Evaluation

More information

"Charting the Course... MOC Programming in C# with Microsoft Visual Studio Course Summary

Charting the Course... MOC Programming in C# with Microsoft Visual Studio Course Summary Course Summary NOTE - The course delivery has been updated to Visual Studio 2013 and.net Framework 4.5! Description The course focuses on C# program structure, language syntax, and implementation details

More information

MS Access Part 1 (One Day Workshop) Khader Shaik

MS Access Part 1 (One Day Workshop) Khader Shaik MS Access Part 1 (One Day Workshop) Khader Shaik MS Access - Contents Overview of MS Access Basics of Access Working with Wizards 2 What is MS Access Database Management & Application development System

More information

A New Automated Approach to Cloud Population. Hoki Tam

A New Automated Approach to Cloud Population. Hoki Tam A New Automated Approach to Cloud Population by Hoki Tam B.S., Massachusetts Institute of Technology (2011) Submitted to the Department of Electrical Engineering and Computer Science in partial fulfillment

More information

Improve and Expand JavaServer Faces Technology with JBoss Seam

Improve and Expand JavaServer Faces Technology with JBoss Seam Improve and Expand JavaServer Faces Technology with JBoss Seam Michael Yuan Kito D. Mann Product Manager, Red Hat Author, JSF in Action http://www.michaelyuan.com/seam/ Principal Consultant Virtua, Inc.

More information

Contents. Chapter 1: Introducing Spring Persistence...1 Persistence...2 Spring as a de Facto Standard...4

Contents. Chapter 1: Introducing Spring Persistence...1 Persistence...2 Spring as a de Facto Standard...4 Contents Chapter 1: Introducing Spring Persistence...1 Persistence...2 Spring as a de Facto Standard...4 Spring and JavaBeans... 5 Inversion of Control and Dependency Injection... 10 Exploring Spring Design

More information

This plugin introduces a YAML project for Jenkins, which loads a declarative specification of the project from a checked in YAML file.

This plugin introduces a YAML project for Jenkins, which loads a declarative specification of the project from a checked in YAML file. YAML Project Plugin Plugin Information No information for the plugin 'yaml-project' is available. It may have been removed from distribution. YAML Project support for Jenkins plugin This plugin introduces

More information

Executing PowerShell Agent Commands

Executing PowerShell Agent Commands This chapter contains the following sections: Cisco UCS Director Orchestrator Workflow and PowerShell Command, page 1 Execute PowerShell Command Task, page 2 Execute Native PowerShell Command Task, page

More information

Query Language for AADLv2, Jérôme Hugues, ISAE Serban Gheorghe, Edgewater

Query Language for AADLv2, Jérôme Hugues, ISAE Serban Gheorghe, Edgewater Query Language for AADLv2, Jérôme Hugues, ISAE Serban Gheorghe, Edgewater Outline 1. Discussion from previous meetings 2. Defining elements for a DSL, inputs from the meta model 3. Defining elements for

More information

BEAProducts. ISV Partners Guide

BEAProducts. ISV Partners Guide BEAProducts ISV Partners Guide BEA WebLogic Server 9.0 Document Date: July 2005 Copyright Copyright 2005 BEA Systems, Inc. All Rights Reserved. Restricted Rights Legend This software and documentation

More information

What s new in Grails 2.0?

What s new in Grails 2.0? What s new in Grails 2.0? About me Jeff Brown Grails Core Developer SpringSource/VMware Engineer jbrown@vmware.com @jeffscottbrown 2 The Year in Grails 3 The Year in Grails Grails 1.3 Plugins in Dependency

More information

Contents. Contents... XI

Contents. Contents... XI Contents Preface... V Motivation for this Book... V Who Should Read this Book?...VI Outline to the Book Structure... VII Prerequisite Skills... VIII Acknowledgements... VIII About the Author... VIII Contents...

More information

WKA Studio for Beginners

WKA Studio for Beginners WKA Studio for Beginners The first and foremost, the WKA Studio app and its development are fundamentally different from conventional apps work and their developments using higher level programming languages

More information

<Insert Picture Here>

<Insert Picture Here> Oracle Forms Modernization with Oracle Application Express Marc Sewtz Software Development Manager Oracle Application Express Oracle USA Inc. 540 Madison Avenue,

More information

Scripting for the Java Platform. Christopher M. Judd. Judd Solutions, LLC. President/Consultant

Scripting for the Java Platform. Christopher M. Judd. Judd Solutions, LLC. President/Consultant Scripting for the Java Platform Christopher M. Judd President/Consultant Judd Solutions, LLC Christopher M. Judd President/Consultant of Judd Solutions Central Ohio Java User Group (COJUG) coordinator

More information

C++ Binary Dependency Management with Gradle. Hugh Greene

C++ Binary Dependency Management with Gradle. Hugh Greene C++ Binary Dependency Management with Gradle Hugh Greene Getting consistent versions of things needed to build your software and to use it 2 Why? Saves time Identical binaries confidence

More information

Eclipse Command Language

Eclipse Command Language Cracow, Poland Eclipse Day 2012, September 13 Bartosz Czerwiński bczerwinski@luxoft.com 2 Agenda DSL Scripting in Eclipse ECL Core Concepts Architecture Applicability Future Live Demo 3 DSL 4 Domain Specific

More information

Getting Started with Java. Atul Prakash

Getting Started with Java. Atul Prakash Getting Started with Java Atul Prakash Running Programs C++, Fortran, Pascal Python, PHP, Ruby, Perl Java is compiled into device-independent code and then interpreted Source code (.java) is compiled into

More information

Alter Package Schema Name Package Name Compile Debug Package Specification Body

Alter Package Schema Name Package Name Compile Debug Package Specification Body Alter Package Schema Name Package Name Compile Debug Package Specification Body Compiling PL/SQL Subprograms for Native Execution Debugging Stored Subprograms Let you modify package objects without recompiling

More information