• Sustainable Software Development for Agile Teams

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

    Almost every non-trivial software system suffers from the accumulation of technical debt and structural erosion. With every new release quality metrics and developer productivity go down, while it becomes more and more difficult to change or maintain the system. While agile processes have certainly helped to improve some aspects of software development they do not automatically improve technical quality or encourage software craftsmanship. This session first looks at the technical and social causes of this industry wide problem. From there the focus will shift to possible solutions involving organizational changes,  process improvements and tool-based fully automized control of quality metrics and architecture.

  • Modular Java Architecture.

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

    Modularity is coming to the Java platform! Java 9 will introduce the Jigsaw module system. OSGi is here today. But don’t wait to start designing modular software. Contrary to popular belief, you don't need a framework or a new runtime to start building modular software applications. You can start today. Learn how!

    In this presentation, we'll examine what it means to develop modular software on the Java platform. We'll examine the goals and benefits of modular software, and explore the patterns of modular architecture that help us develop modular software systems. With just a few easy steps, we'll see how to transform our software from a huge monolith to an extensible system of collaborating software modules. By examining an existing software system, we'll see first hand how we can increase software modularity with minimal disruption. You'll walk away not just with a much deeper understanding of the benefits of modular software, but also a migration roadmap for refactoring existing applications to increase their modularity. In other words, you'll see how to get ready today for the application platform of tomorrow.


  • Titan - A Highly Scalable, Distributed Big Graph Database

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

    When it comes to persisting data, first thing that naturally comes to a software engineer's mind is an SQL database. Even though SQL databases are the most widely used persistence technologies today, they often fail to excel when the data size grows exponentially. "Big Data" gave birth to many NoSQL databases that are designed to address scalability issues. However NoSQL databases introduced other problems, such as lack of transactional support, lack of relationships (joins) etc. This presentation focuses on a technology called Titan which provides the best of both worlds (SQL and NoSQL)


    Titan is a highly scalable distributed graph computing framework with a pluggable architecture for backend data stores. This plugin feature supports several NoSQL data stores like Cassandra, HBase, BerkeleyDB, Hazelcast, etc. with just a configuration change.Titan is proven to support hundreds of billions of vertices and edges in the graph and thousands of concurrent graph updates and retrievals. This presentation will start with basic concepts of GraphDBs and jump into different concepts of Titan with a range of examples. Also, there will be a section about achieving transactions and joins using Titan/Cassandra.


  • Concurrent Programming in Java 8 // Application Level Metrics

    Wednesday November, 12, 2014 11:00 PM

    NEJUG is finishing up the 2014 season with an Advanced Topics Double Feature. First up will we'll have Concurrent Programming in Java 8, followed after the break with our second presentation on Application Level Metrics.



    Concurrent Programming in Java 8, by Morgan Creighton

    Concurrent Programming is notoriously hard.  But is it difficult because humans aren't very smart, or because we often use the wrong abstractions to program concurrent systems?  Java 8 brings greater expressiveness to the language, and allows concurrent programs to be more readable and reasonable.  This talk introduces a few concurrent programming paradigms, and offers a deep dive into Deterministic Dataflow, which allows sequential algorithms to be systematically parallelized.  We'll learn how choosing the right abstraction in a functional language allows us to pare away extrinsic complexity, and make concurrent programming pleasant.


    Application Level Metrics, by Seckin Tozlu


    This presentation will introduce the concept of "Measure Anything, Measure Everything" and the technology that can be leveraged for its implementation in Java using statsD and its Java library, Graphite and Grafana. Following Etsy’s Measure Anything, Measure Everything mantra, we’ll show how to diagnose issues before they have a major negative impact on customers, encouraging developers to take ownership of their code by making trivial code changes to add application-level instrumentation. Application metrics are usually the hardest, yet most important, of the three metrics categories (which also include network & machines). They’re very specific to your business, and they change as your applications change. Their value is immense and we will show how they can be implemented easily and leveraged by all. We’ll discuss the impact of application-level metrics, the software used, custom implementations, their current shortcomings and the future of monitoring & alerting.

  • Stratus Openstack Cloud Product Architecture and Fault Tolerant KVM in the Cloud

    Wednesday October, 08, 2014 11:00 PM

    This month we're having a double-team from Stratus Technologies, with a distinct 45-minute talk in each half of the meeting.  First, Keith Meyer will present Stratus Openstack Cloud Product Architecture, focusing on the technical underpinnings, and some of the ways Stratus is making Cloud Technology both easier to manage and more highly available.  After the break, we'll look more closely at Cloud Workload Availability with Aaron Smith presenting Fault Tolerant KVM in the Cloud.


  • Building modern JavaScript applications with Ember.js

    Wednesday September, 10, 2014 11:00 PM

    This talk explores building modern JavaScript web applications with the Ember.js framework. It starts with a brief discussion on JavaScript's evolving role in web applications, then introduces the Ember framework at a high level, and concludes with some live coding examples.


  • Walking TDD

    Wednesday August, 13, 2014 11:00 PM

    Daniel will be presenting a NEJUG-formatted presentation of the same material he is planning for the upcoming New England Software Symposium (NFJS). From the session description:


    Didn't you hear the news? TDD is dead. Yet many developers rely on it for quality code. Come join the zombie apocalypse and learn and understand TDD, what sets it apart from unit testing after the fact, what to do when you need to update code, effective mocking, automatically generating test data and lots of it, leaving code alone and respecting your work, and more!


    This presentation will cover:

    • What is TDD?
    • Benefits of TDD
    • How to TDD
    • Mocking
    • The Great TDD Debate
    • Opinions of TDD from Industry Leaders
    • JVM Testing Tools
    • JVM Testing Languages
    • Testing Static Calls
    • Updating Code

  • Apache Solr

    Wednesday June, 11, 2014 11:00 PM

    The Apache Solr framework is an open source search platform written in Java.  This software stack is capable of quickly finding relevant information from your enterprise content sources (e.g. web sites, file shares, RDBMS repositories, email and social media) using simple keywords and filter queries.

    As Java developers, we are in an excellent position to harness the power of Apache Solr and build useful search-based applications.  This presentation will be divided into two parts.  The first part will introduce you to its most popular features including: full-text search, relevancy matching, hit highlighting, faceting, spell checking, rich document (e.g. MS Office, PDF) processing, and geospatial search. In addition, we will discuss the importance of a good extract, transform and load (ETL) process to the index population phase and review some best practices around the development of search-based applications.  The second part of the presentation will drill down into several of the features and provide a more in-depth discussion of how to properly implement them in order to enhance the search experience of your users.

  • Several Short Talks

    Wednesday May, 07, 2014 11:00 PM

    The upcoming NEJUG meeting on May 8 will sport a collection of 30 minute talks on a range of topics, as described below. This is a departure from our regular one Lightning Talk (about 10 minutes) plus a Main Presentation (of about 90 minutes). The evening's schedule is set up to cover a wide range of relevant and interesting topics for our members and we expect this format to become a regular once- or twice-a-year occurance.


    The first two talks, regarding Java 8, are set up to compliment each other, first with a broad overview and then with a focused review of the new time/date API. After the break, we will follow up on last month's CORS Lightning Talk with a more in-depth presentation, and then finish up with an advance discussion of how the functional language mechanism of monads can be applied to Java (including how Java significantly limits how much of the monad concept can be "imported").


    Java 8 - Six Months into the New World (by Kyle) - In March 2014, Java 8 was released to the world after more than 3 year of development. A number of exciting new features were added to the language and a few notable changes were made to the JVM that every Java developer will want to be aware of. In this presentation I'll guide you through what's new and will provide brief demonstrations of how Java 8 will enable you to write cleaner code that your colleagues and future self will appreciate.


    Java 8 - The New Date and Time API (by Sualeh) - We will briefly go over what is wrong in the current Java date and time support. Then we will clarify date and time concepts, and show how the new Java 8 Date and Time API makes working with dates and times much better.


    CORS (by Mahesh) - With  ever increasing demand for rich, distributed and dynamic content  by Web Applications, W3C concepts like CORS (Cross Origin Resource Sharing)  and Web Sockets are enabling such dynamic content access/delivery possible by applications.  Right off the shelf, most application servers and API do not provide necessary HTTP Filters for enabling CORS communications.  In this session we will look at  real world applications for CORS and how to enable CORS for your Java Enterprise Servers  for allowing  business applications/data/API accessible using CORS requests by Web Browsers.


    Monads in Java (by Morgan) - After explaining what monads are, this talk will explore what parts can be implemented within the Java language and how even that limited use can simplify several types of coding problems.

  • Software Architecture Patterns

    Wednesday April, 09, 2014 11:00 PM

    Just as developers use design patterns in software development, architects use well-defined architecture patterns to get a head start on defining the characteristics and shape of the architecture for a system. During this presentation I will explore some of the more common architecture patterns and use concrete real-world examples to demonstrate how the patterns work. I will also go over the pros and cons of each pattern and discuss how requirements and operational aspects can drive which patterns to use. Using the right architecture pattern for your system is critical, because as we all know, once in place the architecture is very hard to change. The architecture patterns I will cover in this presentation will include the layered architecture pattern, event-driven architecture pattern (EDA), pipes and filters architecture pattern, microkernel architecture pattern, service-oriented architecture pattern 9SOA), and finally the space-based architecture pattern.