• Heavy Lifting in the Cloud with Spring Batch

    Wednesday April, 10, 2013 11:00 PM

    Spring Batch provides the ability to build scalable, mission critical applications for the bulk processing of data. The cloud provides processing power in bulk for use in almost any way needed. This talk will demonstrate how to bridge the two to provide cloud based scalability in batch processing.


  • Rocking the Gradle

    Wednesday March, 13, 2013 11:00 PM

    "This presentation introduces the audience to the power of Gradle through many real-world examples that are demonstrated. By the end of the presentation, you'll understand how Gradle helps to elegantly solve the challenges that we face in our daily builds. We'll go through such powerful concepts as: advantages of declarative over imperative build systems, convention over configuration without rigidity, the Gradle plugins, deep multi–project support, performance optimizations through partial builds and incrementalness, harvesting existing functionality through Ant and Maven integration, as well as migration strategies for migrating from these build tools. We will demonstrate many of the innovative goodies that come with Gradle out–of–the–box, like the Gradle Daemon, the Gradle Wrapper, easy administration of your build environment, building Android apps and libraries, Eclipse integration, and other new plugins."

  • Paddling in Deep Waters - Dealing with Large Codebases

    Wednesday February, 13, 2013 11:00 PM

    Do you feel like your project is under control?  Feel like you are trying to go against the current?  The problem with successful software projects is that they grow and gain complexity with time. This often means wasting time trying to figure out how to add features, getting others up to speed, and making sure that the code is not brittle. This can also result in delays shipping updates and bug fixes.  And worst of all, you might be the one asked to migrate or modularize such a project.

    Working with large codebases can be a nightmare. In this talk we discuss some of time the small steps that can be taken to help eliminate productivity waste and bring your code base under control.  We will discuss tips for thinking about when modularizing a project, and tips for gradually improving the architecture of a codebase. We will demonstrate some tools that we have used successfully in the past and discuss results from both talking to team members and analyzing code of multiple projects.  

  • Getting started developing with a PaaS

    Wednesday January, 09, 2013 11:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451
    Be the first to Vote!!

    A fast paced overview of the “*-as-a-Service” space, including infrastructure, platform, and software as services followed by a focused discussion of advanced topics in that space with an extended Q&A after the break.  The planned sub-topics include: standards (or their lack), portability vs. proprietary, how to choose between “*aaS” providers, tool support, business level considerations, impact on project management, and more!
    This two-hour presentation can serve both as an introduction to the “*-as-a-Service” space and as continuation of the NEJUG/GBC-ACM workshop of Sept 22, 2012 (also lead by Mark Prichard).
    Members are encouraged to visit http://www.cloudbees.com/signup and test drive their PaaS product for free.  Follow Mark’s excellent tutorials at http://blog.cloudbees.com/2012/07/getting-started-with-cloudbees-and.html and then come to the meeting with questions – it’s what he’s waiting for!

  • GC Tuning Recipes

    Wednesday November, 07, 2012 11:00 PM

    The session will cover various GC tuning techniques, in particular focus on tuning large scale JVM deployments.  Come to this session to learn about GC tuning recipe that can give you the best configuration for latency sensitive applications.  While predominantly most enterprise class Java workloads can fit into a scaled-out set of JVM instances of less than 4GB JVM heap, there are workloads in the in memory database space that require fairly large JVMs.  In this session we take a deep dive into the issues and the optimal tuning configurations for tuning large JVMs in the range of 4GB to 128GB.  In this session the GC tuning recipe shared is a refinement from 15 years of GC engagements and an adaptation in recent years for tuning some of the largest JVMs in the industry using plain HotSpot and CMS GC policy.  You should be able to walk away with the ability to commence a decent GC tuning exercise on your own.  The session does summarize the techniques and the necessary JVM options needed to accomplish this task.  Naturally when tuning large scale JVM platforms, the underlying hardware tuning cannot be ignored, hence the session will take detour from the traditional GC tuning talks out there and dive into how you optimally size a platform for enhanced memory consumption.

  • JRuby - The Best of Java and Ruby

    Wednesday October, 10, 2012 11:00 PM

    You hear people talking about Ruby as a major new language, and you are probably wondering whether to spend time in this new technology.  But did you know that JRuby is an implementation of the Ruby programming language on the JVM. It represents the exciting combination of the dynamism, expressiveness, and simplicity of Ruby with the depth, maturity, and power of the Java ecosystem.  Most significantly, JRuby gives you the ability to try the Ruby programming language while preserving your investment in Java and JVM technologies.


    This talk will go over some of the reasons to write code in JRuby, how to leverage existing Java libraries with JRuby, and some real-world advice on using it in production systems.  Come join us in October to expand your programming horizons and evaluate JRuby for suitability with your development projects.


  • Play 2.0: The power of Node.js on the JVM

    Wednesday September, 12, 2012 11:00 PM

    Play is a modern JVM web application framework that is lightweight, stateless and built from start for asynchronous programming.

    It is based on event-driven, non-blocking IO and provides type safety, even for templates and routes.


    The first part of the presentation will be an introduction to the framework and overview of its core concepts and features.

    Then In the second part the plan is to build and deploy a simple but real-world Play web application.


    Play exposes Java and Scala API, but in this talk only Java will be used.

  • High Performance Messaging

    Wednesday August, 08, 2012 11:00 PM

    If you need your messaging-based systems to be fast - really fast - then this is the session to attend. In this session I will introduce and demonstrate some relatively simple tips and tricks to get the best performance and throughput from your messaging system. Through live code demonstrations I will show the impact of both configuration and design changes using Spring, ActiveMQ, and RabbitMQ. So buckle up those seat belts - its going to be a fast ride.




    • Spring-based Messaging Performance Techniques
    • JMS Models and Performance: P2P and Pub/Sub
    • Messaging Standards and Performance: JMS vs. AMQP
    • Using Multiple Queues with Competing Consumers
    • Using Multiple Queues with a Single Consumer
    • Guaranteed Delivery and Performance

  • Usable Security - Tipniques and Practfalls (Tips and Techniques, Pitfalls and Practices)

    Wednesday June, 13, 2012 11:00 PM

    For a long time, computer security was mainly concerned with the design of various technical mechanisms for defending against adversaries, as well as with the underlying mathematical foundations such as cryptography primitives. However, the usability of such technical mechanisms was largely ignored, producing technical solutions that were theoretically sound but practically insecure because of their poor usability. More and more people agree that we need usable security systems - unusable secure systems are not used properly or at all, and thus only usable systems can provide effective security. However, there is less agreement about how to design systems that are both usable and secure. This talk will give an overview of the field of usable security with the focus on issues to avoid, techniques to use, and useful case studies. It aims to enable participants to both evaluate and produce high-quality work in usable security. We will start with a definition of usable security, and examples of how security has failed due to usability. We will then outline common approaches to and relevant design principles for security usability. Methods for improving security usability and methods for empirically establishing such improvement will be discussedl. Usability techniques successfully applied to security will be discussed, including usable design (with an emphasis on error handling), lab user studies, field user studies, and techniques for evaluating organizational cultures. Finally, we'll conclude with case studies illustrating how security and usability can be simultaneously improved, and how the principles and methods introduced in the previous part were applied. Topics that have received much attention will be highlighted, including authentication, access control and authorization, phishing defenses, and the utility of education of the user.

  • Solving Development Infrastructure Problems

    Wednesday May, 09, 2012 11:00 PM

    Let's face it development is fun but configuring environments and infrastructure takes all the fun out of programming.  How often have you spent days trying to figure out which settings for your NoSQL database, new library, source control service only to realize that the solution involved only typing the 5-10 characters in the correct sequence.  You are not alone!


    This session will go through a couple of different approaches to addressing common development infrastructure headaches.  We will start out with common problems encountered setting up your workstation involving issues with the IDE, Source Control System, Bug Tracking systems, environmental variables, build tools such as Maven, as well as a couple of other common problem areas.  Then we will talk about how developing in a virtualized world attempts to address these problems with virtual machines and cloud platforms as well as the new problems they create.  Finally, we will wrap up with the steps necessary to setup a NoSQL database.