• Algebraic Databases

    Thursday October, 12, 2017 06:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    In this talk we describe a new algebraic approach to databases based on category theory, a branch of mathematics which has already revolutionized several areas of computer science (including functional programming) and which provides theoretical guidance missing from the relational, graph, XML and RDF data models.  In summary, we conceptualize a database schema as a category, and from this simple definition obtain a basis of operations sufficient to query data (providing an alternative to SQL), migrate data (providing an alternative to ETL tools such as Informatica), and integrate data (providing an alternative to integration tools such as Tamr).


    This project originated in the MIT math department in 2010 and has culminated in a Java-based open-source data manipulation tool, AQL, available at http://categoricaldata.net/aql.html, as well as a start-up company, Categorical Informatics, commercializing AQL with the support of the National Institute of Standards and Technology (NIST).  This project was briefly described in a NEJUG lightning talk in the Spring of 2016, and in this talk we expand on both the technical specifics from the previous talk and demonstrate additional progress that has been made toward making AQL industrial strength - including significant performance and expressivity improvements.  No knowledge of category theory is required to understand the talk.   

  • Kotlin and Java - Better Together

    Thursday September, 14, 2017 06:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    At Google I/O 2017, the Android team announced official first-class support for Kotlin. Kotlin, developed by JetBrains - the company behind the IntelliJ IDE, compiles to JVM bytecode. It has many characteristics that make it also a great fit for developing server-side applications, including Expressiveness, Scalability, Interoperability, Migration, Tooling, and Learning Curve.

    Kotlin is touted as being targeted at multiple platforms: JVM/Android, JavaScript, and Native (Linux, Mac OS, iOS).

    In this talk, we will dive into basic syntax fairly broadly though not in depth. Topics include:

    • Functions as expressions
    • Conditions as expressions
    • Nullable/non-nullable values and alternate idioms to ensure null safety
    • Type checks and automatic smart casts, safe casting
    • When-expressions ('when' improves on Java's 'switch' but can be an expression as well as a statement)
    • Ranges
    • Functional literals, aka lambda expressions -- time permitting
    • Closure
    • Classes and inheritance, Class properties; Visibility modifiers
    • Extensions to extend a class without having to inherit it

    My favorite features are Extensions, and Java Interoperability.Don't let only Google and Android developers have all the fun with Kotlin; find out for yourself what is all that jazz about Kotlin.

  • NFJS - Fall 2017

    Thursday August, 24, 2017 06:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    Meeting content is being refined, but will essentially be a "mashup" of Craig's two NFJS sessions: Essential Spring Boot and Extreme Spring Boot. Until we have a consolidated summary for the NEJUG presentation, here are the descriptions of his two NFJS sessions:

    Essential Spring Boot: In this session, you'll learn how to streamline your Spring development utilizing the four essential features of Spring Boot: auto-configuration, starter dependencies, the Actuator, and the Spring Boot CLI.

    Extreme Spring Boot: In this session, you'll learn how to take your Spring Boot skills to the next level, applying the latest features of Spring Boot. Topics may include Spring Boot DevTools, configuration properties and profiles, customizing the Actuator, and crafting your own starters and auto-configuration.

  • Serious Professional Development – Phase 1 of 3

    Thursday June, 08, 2017 06:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    There are many ways to structure knowledge, and many more ways to provide instruction. One of the simplest, oldest, and effective can be framed with three basic phases: (1) Know Where You Are, (2) Determine Where You Are Going, and (3) Plan How to Get There.

    In this meeting, Ron Peacetree will be kicking off a three-part presentation series, with Phase-2 sometime in the fall and Phase-3 early in the new year. We will be setting a foundation for the series this month with a highly interactive conversations about what we, the NEJUG membership, are actually experiencing in the workplace. 

    We will explore questions such as: 

    * What issues are we facing - personal, technical, managerial, cultural, etc?
    * What strategies are we using to address our “pain points”?
    * Where are we being successful, in both the large and small?

    Ron will guide the conversations, adding his own perspective where useful, but mostly drawing out and listening to our experiences. In this way, he will facilitate our collective sense of Knowing Where We Are. With that knowledge in hand, he will then develop the Phase-2 presentation to provide a clear and coherent vision of a place worth living in - a way of working and of managing our careers and personal growth that is worthy of our lives. In short, he will help us Determine Where We Are Going. Later, in Phase-3, he will discuss various strategies, techniques, and tools that will support an achievable Plan for How to Get There.

    After planning your work, you will be well prepared to take on Phase-4: Work Your Plan.

  • Career Management for Experienced Developers

    Thursday May, 11, 2017 06:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    Everyone who's been in the industry for a few jobs and years knows the basics about hunting down that next posistion. This month's meeting is designed to provide you with a set of tools, techniques, strategies and resources that go beyond the "Bring a copy of your own resume" and "Always dress nice, even in a casual dress office" basics. As you can see from the sub-topic bullets, you will be getting more than new-graduate advice.

    • Be Your Own Recruiter
    • Networking - Not Just Being a Meeting Regular
    • Joining a Start-Up, Despite Family & Mortgage Obligations
    • Pro-Active Job Searches
    • The Inside Perspective - What's Important to HR

    We will follow our "standard" panel format: a series of 10-15 minute presentations, each focusing on one of the above topics. After the break, we will have a panel discussion where the speakers can add to (and challenge) each other, followed by an extended Q&A.

  • Organizing Your Code Using a DSL for Architecture Description

    Thursday April, 13, 2017 06:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    The single best thing you can do for the long-term health, quality and maintainability of a non-trivial software system is to carefully manage and control the dependencies between its different elements and components by defining and enforcing an architectural blueprint over its lifetime. In the talk, we will introduce a domain specific language that was specifically developed for that purpose. You will be introduced to the key features of the language. Moreover, we will also have a look at some implementation details.

  • Concurrency then Lagom

    Thursday March, 09, 2017 06:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    This meeting will cover two distinct topics:

    Various Concurrency Topics, by Nermin Šerifovic

    This talk will first cover some CPU and thread fundamentals, including thread pools and effects of blocking operations. It will then explore a few immutability concepts, such as mutable state and immutable data structures. We will discover how referential transparency lends itself to easy parallelization. Lastly, we will take a look at common impediments towards writing performant concurrent code.

    Lagom - An Introduction, by Morgan Creighton

    Lagom, an open source reactive microservice platform, is the subject of this presentation. We will review the (abbreviated) history of microservices, what "reactive" systems are, and how the Lagom platform brings those together to provide a powerful way to  build applications.

  • Special Topics in Java 8 (Snow Date)

    Wednesday February, 15, 2017 06:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    This talk covers several issues related to the new functional changes in Java 8 and above. Topics will include:


    - Lazy Streams
    - Concurrency and parallel streams
    - Generics in the Java 8 API
    - Effective uses of "reduce"
    - Refactoring to Java 8

    If time allows, proper use of Optional, grouping and partitioning streams, downstream collectors, and features of the new Date-Time API will also be discussed.

  • ANTLR - Not Your Parent's Parser Generator

    Thursday January, 12, 2017 06:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    ANTLR (ANother Tool for Language Recognition) is a parser generator that is used in many tools and frameworks (Groovy, Hibernate, Clover, and more). Come learn about the the history of ANTLR, and how to start using ANTLR4 in your own Java projects.

    Do you remember Lex & Yacc from the “good old” C days? Perhaps you cut your parser-generator-teeth on Bison – or Frown, or Lemon, or PLY – or one of many others. Whatever you've used before, this meeting is the time to come up to speed on ANTLR. If you're like me, it's been many years since you've taken a serious look at grammars and parsing. In fact, the current trend is to develop so-called “DSL” libraries that make a carrier language read like different language – but that is all smoke and mirrors. A full DSL needs a parser, and a parser needs a parser generator.

    ANTLR is one of the more powerful generators available to the Java community. It's well grounded in theoretical computer science, is a mature tool with good IDE integration, and has a committed ecosystem. During this presentation, we will give a quick review of grammar specification, discuss lexical & parser technologies, and then go deeper into what differentiates ANTLR from the pack. Included in the presentation will be a review of working code and runtime demonstration of parsing in action – of an input source that you might find surprising, delightful, and (most importantly) useful in your day-to-day work.

  • Building VoltDB: A High-Performance Distributed Database in Java

    Thursday November, 10, 2016 06:00 PM Constant Contact Reservoir Place 1601 Trapelo Road Waltham MA 021451

    This talk will start with some of the initial research that led to VoltDB, and walk through the past 8-9 years of engineering challenges and decisions. One of the earliest decisions was choosing to build most of the system in Java; I'll explain why and what the pros and cons have been. The first public release of VoltDB was really radical in a number of ways. I’ll cover which ways it’s become more conventional, and what’s still "different" about it. Specific topics covered will include maintaining a low latency profile in the face of garbage collection, leveraging JNI and native code where appropriate, and running user procedure code safely in our process.