• 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.

  • The Future of Real-time Big Data: Distributed In-Memory Data Grids

    Wednesday March, 12, 2014 11:00 PM

    High-velocity data stream computing means real-time tracking, aggregating and analyzing rapidly changing data streams originating from different sources and using disparate formats. This presentation (1)  describes several key business use cases and the requirements they introduce, (2) identifies distributed, in-memory data grids as the most flexible technology to satisfy these requirements, (3)  provides a vendor-neutral, detailed comparative analysis of several enabling technologies and platforms/software stacks built on top of them, and (4)  introduces and discusses the concept of Unified Big Data Processing.

  • Taming Text

    Wednesday January, 08, 2014 11:00 PM

    There is so much text in our lives, we are practically drowning in it. Fortunately, there are innovative tools and techniques for managing unstructured information that can throw the smart developer a much-needed lifeline. In this talk, based on the outline of the book Taming Text,  you will receive an introduction to a variety of Java-based open source tools that aide in the development of search and NLP applications. 


    In this presentation, you will be introduced to useful techniques like full-text search, proper name recognition, clustering, tagging, information extraction, and summarization. We wll explore real use cases as you systematically absorb the foundations upon which they are built. Discussed in a clear and concise style, avoiding jargon, we will explain the subject in terms understandable without a background in statistics or natural language processing. Examples are in Java, but the concepts can be applied in any language.


  • Apache Hadoop and Its Next Generation Compute Platform, YARN

    Wednesday November, 13, 2013 11:00 PM

    Apache Hadoop has become the defacto platform for big data processing. It composes mainly of two platforms (1) Hadoop Distirbuted File System - a distributed file system running on a cluster of commodity machines and (2) MapReduce - a programming model to perform large scale processing of data residing on HDFS. In this talk, I'll introduce Hadoop and its main components, what is in Hadoop that is revolutionizing data processing. I'll quickly explain how users write applications on top of Hadoop. I'll round it up with introductions to various Hadoop eco-system projects like Pig, Hive, HBase, etc.


    Secondly, Apache Hadoop MapReduce has undergone a revolution to emerge as Apache Hadoop YARN, a generic compute platform. This part of the talk will cover the details of Apache Hadoop YARN - architecture, applications and its real life usage. I'll conclude with how YARN is changing Hadoop to be a general purpose processing platform by enabling users to run batch, stream-processing, graph workloads, and more - all on same cluster resources.