• No July Meeting---Preparing for alien invasion

    Needs a location

    Captain Steven Hiller: Look, I really don't think they flew 90 billion light years to come down here and start a fight. Get all rowdy.

  • Intro to Quantum Computing Algorithms

    Microsoft Store @ Bellevue Square

    Presenter: Dan Muldrew I’ll first introduce quantum computation with a motivating analogy. Then explain some of the computational advantages of manipulating information at the quantum level, such as superposition and entanglement, compared to classical computation. Finally, I’ll talk about how proposed quantum languages, such as IBM Qiskit and Q#, are designed to take these features into account, within the context of Shor’s factoring algorithm (and potentially other algorithms as well), which essentially started the field. * For IBM Qiskit, here is an implementation of Shor’s algorithm: https://github.com/Qiskit/qiskit-tutorials/blob/master/community/awards/teach_me_quantum_2018/intro2qc/8.Shor's%20algorithm.ipynb * For Q#, we'll look at simpler algorithms. * I’ll run some of the algorithm implementations on a Raspberry Pi---which include a free copy of Mathematica * For those interested in a classic paper on quantum computing, here is one I'll be presenting the following night at the Papers We Love @ Seattle meetup: https://arxiv.org/pdf/quant-ph/0010034.pdf

  • Seven More Languages in Seven Weeks!!

    Microsoft Store @ Bellevue Square

    Group discussion. A follow-up to last month's fascinating discussion of the original book, this meeting focuses on the Seven More Languages in Seven Weeks, by Bruce A. Tate, et. al. Languages covered in this sequel are Lua, Factor, Elm, Elixir, Julia, miniKanren (?!), and Idris. We'll build on the previous month's theme, comparing language features and getting better understanding the landscape of programming languages out there, including what patterns you can bring home to your own work. If you'd like to do a mini-presentation on one of these languages, feel free to post a note on the discussion page for this meeting.

    1
  • Seven Languages in Seven Weeks!

    Microsoft Store @ Bellevue Square

    Group discussion of the book Seven Languages in Seven Weeks, by Bruce A. Tate. Languages covered are Ruby, Io, Prolog, Scala, Erlang, Clojure, and Haskell. What are the driving forces in each language's design? Why were these languages covered, and how are they positioned in the programming language ecosystem? How do they compare with others, or with your favorite language on features like expressiveness, run time, execution time, ease of concurrent & parallel execution, testing, verification, deployment, etc? (Comparison matrix?) Perhaps this will help you see new possibilities for patterns in those languages you use regularly. Reading the book beforehand is encouraged, but obviously not required. If you'd like to do a mini-presentation on one of these languages, feel free to post a note on the discussion page for this meeting.

  • Exploring the type system of ReasonML/OCaml

    Microsoft Store @ Bellevue Square

    Speaker: Zach Ploskey Description: ReasonML is a new syntax for the OCaml programming language. It is a statically typed functional programming language, designed to be approachable for JavaScript developers. It can compile to both JavaScript and native. It compiles extremely quickly, features practical and easy JavaScript and C interop, and has built-in support for JSX and building React applications. Reason shares with OCaml an advanced type system with many useful features. This talk will give a brief introduction to the syntax and explore some of the features of the type system such as parametric polymorphism, phantom types and GADTs. ReasonML main site: https://reasonml.github.io/ OCaml main site: https://ocaml.org/

    16
  • Understanding Git Internals

    Smartsheet Training Room

    Speaker: Rachel Singh Git can be hard, especially without a fundamental understanding of what the Git command is actually doing. This talk provides an in-depth look at the intent behind Git and offers pointers to navigate situations such as detached HEAD pointer, prevent local changes from being clobbered, determining best undo practices, local commit tree clean up and merge strategies. Topics covered will benefit development and deployment practices for both Git beginners and daily users.

    2
  • The Julia Programming Language

    Smartsheet: Olympus conf room, 20th floor

    Speaker: Elliot Saba, Sr. Research Engineer at Julia Computing Description: The Julia language defies the typical tradeoff of high performance against high-level features. Providing the best of both worlds through intelligent language design and modern compiler technology, Julia forms the foundation for a thriving ecosystem of packages for machine learning, data science, parallel/heterogenous computing, data visualization, scientific analysis and more. Elliot will give an overview of the Julia language and explain how it is able to give both a pleasant and productive programming experience while still achieving speeds competitive with best-in-class languages such as C/C++/Fortran.

    1
  • Currying in JavaScript & The Ballerina Programming Language

    Bellevue Place Bldg (sponsored by Smartsheet; 2nd floor conf room by Nova Eye Care, behind grand piano)

    Presenter #1: Scott McAllister Title: Currying: Making Your JavaScript Functionally Tasty Currying is a technique that has been part of mathematical functions for centuries, and is key component of functional programming. While currying is heavily used in functional languages like Haskell, it's not as prevalent in JavaScript. In this session we'll learn about the currying technique in JavaScript and how to take advantage of its benefits. Presenter #2: Ted Neward, Author and Conference Speaker on Java, JavaScript, C#, F#, Scala, and any other language he can get his hands on. Title #2: The Ballerina Programming Language Despite the frivolity implied by its name, Ballerina, like the dancers who bear the same name, is a graceful language with surprising elegance and strength inside a slender frame. Still (as of this writing) a self-described "work in progress", Ballerina is a language designed from the ground up for the world of Web 2.0, with built-in support for HTTP endpoints, JSON data types, and an input format--either textual or graphical--that makes it perfect for building platform clients and implementations. In this session, we will go over the Ballerina language and environment, and explore what a language "built for the Web" looks like. Ballerina home page: https://ballerina.io/ Ballerina spec: https://ballerina.io/res/Ballerina-Language-Specification-WD-2015-05-01.pdf Ted's websites: http://blogs.tedneward.com/ and http://www.newardassociates.com/

    2
  • (1) Microservices for cross-language development; (2) Probabilistic programming

    Bellevue Place Bldg (sponsored by Smartsheet; 2nd floor conf room by Nova Eye Care, behind grand piano)

    NOTE DATE CHANGE: Now scheduled for Nov 7th. Talk #1: Using microservices, containers, and serverless hosting for seamless cross-language development (including Machine Learning) Presenter: Jon Peck, Developer Advocate & Software Engineer at Algorithmia, Inc. When selecting components & modules, your decision should be based on quality, not implementation language -- but until recently, it wasn't easy to integrating code across many languages and host them all in a scalable environment. The rise of containerized microservices has changed all that. Learn about a paradigm for seamless composition of code between any set of languages and frameworks, and one live implementation which lets you host them all in a pay-per-second elastic environment. Bonus feature: a marketplace for Machine Learning services which allows you to use advanced ML with zero background (or local dependencies), or share your own ML models with other developers. Talk #2: Adding probabilistic programming languages to your data pipeline. Presenter: Jay Coskey Probabilistic programming languages separate the description of probabilistic models from statistical inference performed on them. Since these are key facets of Machine Learning (ML), probabilistic programming languages can play a significant role in ML. Generally, an Inference Engine helps dramatically shrink the (domain-specific) portion of the code that still needs to be written. DARPA sponsored an initiative from[masked] called the Probabilistic Programming for Advanced Machine Learning (PPAML). It had the goal of making ML apps easier and faster to write, and making the results more powerful and robust. Some of the most popular probabilistic programming languages and frameworks are Stan (C++), PyMC3 (Python), and Edward/InferPy (Python/Tensorflow).

    5
  • Correct and Efficient Code using Dependent Types and Gadts

    Bellevue Place Bldg (sponsored by Smartsheet; 2nd floor conf room by Nova Eye Care, behind grand piano)

    Presenter: Michael Kerekes, creator of the Mana programming language Dependently typed languages have two major novel features: (1) types are first class, and (2) types can depend on arbitrary values. First class types can be passed as parameters, returned from functions, and stored in data structures just like any other value. Types can be calculated from other types or normal values. These features allow almost any property of code to be checked statically at compile time, which in turn allows runtime checking of those properties to be removed. I have recently added dependent types to the Mana language and I will give a few examples of their use: * an efficient interpreter for an expression language. The strongly typed AST makes it possible to remove all runtime type checks. * length indexed lists that require no runtime bounds checks * a strongly typed implementation of printf that statically calculates it parameter types from the format string at compile time

    1