• 90 Minutes to a working Enterprise Application! or Development is more than just a fancy programming language!

    Wednesday September, 07, 2011 11:00 PM

    We have all heard use this language or that framework or this product and you can create the perfect enterprise application. After all these years do you still believe that? The truth is to produce a successful enterprise application we need to have a solid development language, frameworks, lightweight containers, monitoring through the application life cycle and infrastructure stack, plus plans to manage application performance. In short there is a lot we need to do after passing the first round of unit tests to create a sucessful enterprise application.

    This session will use a series of live demos to go through the entire Application Lifecycle to demonstrate often ignored steps to produce an enterprise application. The concepts covered in this presentation are applicable with most technologies; but for our purposes we will focus on Spring ROO & Grails, Hyperic for monitoring, Tomcat 7 for the container, Webtest for functional testing, Cobertura for code coverage, plus a few other technologies.


  • Functional Thinking

    Wednesday August, 10, 2011 11:00 PM

    Learning the syntax of a new language is easy, but learning to think under a different paradigm is hard.

    This session helps you transition from a Java writing imperative programmer to a functional programmer, using Java, Clojure and Scala for examples. This session takes common topics from imperative languages and looks at alternative ways of solving those problems in functional languages. As a Java developer, you know how to achieve code-reuse via mechanisms like inheritance and polymorphism. Code reuse is possible in functional langauges as well, using high-order functions, composition, and multi-methods. I take a variety of common practices in OOP languages and show the corresponding mechanisms in functional languages. Expect your mind to be bent, but you'll leave with a much better understanding of both the syntax and semantics of functional languages.

  • Multi-Topic Night - NEJUG Members presenting areas of their expertise

    Wednesday June, 08, 2011 11:00 PM

    This is the promised members presentation night we have been waiting for over the last year.In this meeting you will be able to cover 5 different topics from actual day to day practioners of their topics. We have seen time after time that some of the best presentations over the past 10 years have come from our very own members who use these technologies every day.

    Topics which will be covered include:

    • Hazelcast
    • Schema Crawler
    • The Strangler Pattern for incremental application migrations
    • Understanding Open Standards: Open Standards : OpenSocial, OpenID, OAuth, Oh my
    • BDD (Behavior Driven Development)

  • What Functional Purists don't want you to know about Scala

    Wednesday May, 11, 2011 11:00 PM

    Scala is a JVM programming language that blends object-oriented and functional concepts. We are all well familiar with the object-oriented aspect but lot of us seem to struggle when it comes to functional programming. Unfortunately, a large number of Scala talks and articles present functional programming in a way it just makes your brain hurt. You start believing only math-minded can truly comprehend it. Furthermore, you get an impression Scala is only a good fit for problems which need to be solved in a pure functional style. All of which is, fortunately, far from being true.

  • Android Mobile Application Development

    Wednesday April, 13, 2011 11:00 PM

    Android is a software stack for mobile devices that includes an operating system, middleware and key applications.

    Android is a mobile operating system running on the Linux kernel. It was initially developed by Android Inc., a firm later purchased by Google, and lately by the Open Handset Alliance. It allows developers to write managed code in the Java language, controlling the device via Google-developed Java libraries.

    The Android SDK provides the tools and APIs necessary to begin developing applications that run on Android-powered devices. Cool apps that surprise and delight mobile users built by developers like you are a huge part of the Android vision. Google has also participated in the Android Market by offering several applications for its services. These applications include Google Voice for the Google Voice service, Scoreboard for following sports, Sky Map for watching stars, Finance for their finance service, Maps Editor for their MyMaps service, Places Directory for their Local Search, Google Goggles that searches by image, and My Tracks, a jogging application. Android phones that include the 'Google Experience' also have Google Search, Google Calendar, Google Maps, Google Navigation and Gmail integrated. In this presentation we will explore many examples of android.

  • The Cloudy Future of Integration

    Wednesday March, 09, 2011 11:00 PM

    Applications are increasingly facing demands for horizontal scalability and cross-platform interoperability. NoSQL data stores are gaining momentum as a way to address the scalability challenges. Messaging systems, on the other hand, are by their very nature able to handle widely distributed deployment models, but for Java developers, the cross-platform challenge suggests we should look beyond JMS. Open protocols such as HTTP, SMTP, and AMQP are attractive language-neutral alternatives.

    In this session, you will learn how the Spring application platform is evolving to accommodate these trends. We'll explore the Spring Data APIs for working with a variety of NoSQL data stores, and we'll compare and contrast several open protocol options for both synchronous and asynchronous messaging via Spring Integration Gateways and Channel Adapters.


  • NoSQL Smackdown

    Wednesday February, 09, 2011 11:00 PM

    You've read that the relational model is old and busted, and there are newer, faster, web-scale ways to store your application's data. You've heard that NoSQL databases are the future! Well, what is all this NoSQL stuff about? Is it time to ditch Oracle, MySQL, and SQL Server in favor of the new guard? To be able to make that call, there's a lot you'll have to learn.

    In this session, we'll take a whirlwind tour of five representative non-relational data stores: Cassandra, MongoDB, Voldemort, Redis, and Neo4J. We'll learn the very different ways they represent data, and we'll see their unique strengths and weaknesses in various kinds of applications. Along the way, we'll learn why new technologies must be introduced to address today's scaling challenges, and what compromises we'll have to make if we want to abandon the databases of our youth. We'll review what ACID means, role-play a two-phase commit, and even talk a little bit about file system semantics. It's an exciting time to be storing and retrieving data, and the opportunity is now before us to learn things we could ignore just a few years ago. Come to this session for a solid introduction to a growing field.


  • Improving Code Quality

    Wednesday January, 12, 2011 11:00 PM

    Every time a new software project is launched everybody aims for a high-level of technical quality. But more often than not we see the code quality deteriorating over time and it becomes harder and harder to understand and maintain the code. On the other hand a reasonable level of technical quality can be easily achieved in any software project, if it is kept in mind as a goal from the beginning. Of course it is necessary to measure it on a regular base, ideally at least in the nightly build.


  • JVM Internals: Garbage Collection and VM Optimizations

    Wednesday November, 10, 2010 11:00 PM

    Doug's presentation will delve into three internal parts of Java

    - Class File Format and Byte Code

    - Garbage Collection

    - JIT Optimizations

    In the Class File Format and Byte Code section, the basic structure of the class file format will be explained with examples of Java files compiled to class files.

    Additionally, attendees will be introduced to tools for viewing and writing byte code.


  • The Enterprise Integration Cloud

    Wednesday October, 13, 2010 11:00 PM

    Traditional enterprise integration deployments are based on the "centralized server" physical deployment model. This deployment model all started with the success of big Relational Database Management Systems (RDBMS) for centralized management of data, extended into the application server tier with big Java EE Application Servers for centralized management of applications, and finally into the integration tier with big Business Process Management Server / Enterprise Services Bus Servers for centralized management of the integration tier.

    The cloud (whether it be private, public, or hybrid) allows for massively parallel, horizontal scale-out architectures. This is radically different from the centralized, vertical scale-up architectures that have evolved from the original success of big-RDBMS on physical hardware. In putting together its Cloud Application Platform, named vFabric, VMware has made two key acquisitions over the past year to enable Spring Applications deployed on tc Server to be scaled elastically within the cloud:

    • , an in-memory data fabric that goes well beyond typical caching of data allowing for fast read/write of globally distributed data across a heterogeneous environment; and
    • , a lightweight message broker, based on the AMQP standard, allowing for fast asynchronous, reliable messaging over the TCP protocol within a globally distributed, heterogeneous environment

    Spring Integration is an embedded message bus that runs within any Spring application context and an application integration framework that connects to other systems via adapters. It is built on the Core Spring programming model and provides a couple of key abstractions that can enable systems integrators even greater flexibility to continually evolve their solutions as technology and business requirements change:

    • Message: a payload can be any object, and header values are stored in a simple map

    • Message Channel: a portable abstraction over the messaging transport being used that allows the application developer to change between multiple channel adapters (i.e. JMS, AMQP, REST) as a matter of configuration, not code

    • Message Endpoint: delegate a received message to any Spring-managed object for handling

    • Message Store: a portable abstraction over the data store (i.e. RDBMS, Cache) being used to track a message as it passes through the loosely coupled messaging system

    In this discussion, we'll talk about the newest support for Caching and AMQP within Spring Integration and how application developers are building a new class of enterprise integration applications that are purpose-built for elastic scalability within the cloud.