This month we are going to try something new. We're going to have a 'round table' discussion, prompted by a series of open questions concerning JavaScript (the language) as well as the ecosystem.

The idea is that everyone has something to share, from their experience with a certain library/framework right through to their ideals and beliefs about building systems in JavaScript. Let's share our opinions/positions and get a good, friendly debate going.

No ticket required – you'll need only yourself and your opinions for this one :)

Note: if you're new to JavaScript, please feel welcome to come along. The perspective of beginners will be especially useful for this format.

This month we'll be playing a few more rounds of everyone's favourite programming
game Code Golf.

Code Golf is a group programming game where we compete against each other to come up
with the shortest possible solution to a series of trivial problems. In this session,
we'll be able to use some ES6 features
(those available in the v6.0.0 release of node).

All you need is your laptop, a text editor and a willingness to write code you feel
truly ashamed of.

Note: if you're new to JavaScript, please feel welcome to come along.
Code Golf is an especially fun way to learn and get involved.

We'll be hearing about Redux and
taking a dive into all things type systems and typing.

Session 1
Redux is a predictable state container for JavaScript apps. It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. Redux evolves the ideas of Flux, but avoids its complexity by taking cues from Elm.
– Sam Marshall

Session 2
JavaScript is a dynamically typed language, and that can be a real pain (Sorry, it's "" == 0).
In recent years, functional programming patterns have become increasingly popular in JavaScript, despite it not having the same static typing that most functional languages have. This talk takes a look through the underbelly of JavaScript's Type System, the common features of Types in Functional languages, and looks at strategies and tools for finding type errors in your JavaScript code.
– Jack Wearden

As always, everyone is welcome, regardless of your level of JavaScript.

Pizza & Drinks by DueCourse
The lovely people at DueCourse will be supplying drinks and pizza for this one.
If you love JavaScript, check them out, they're hiring.

Overview
Code & Conquer is a group coding game in which teams compete to capture squares
on a shared grid. The winning team is the team who, by the end of the game,
has captured the most squares. Once a team owns squares, they must protect them from
other teams attempting to steal them.

The game client has been improved so you don't need to waste any time with plumbing
code, and can instead focus on writing a winning strategy.

We haven't had a good Code Golf session since before Xmas, so this month Code Golf is back.
Since it's 2016, we'll be playing with our ES6 clubs.

Code Golf is a group programming game where we compete against each other to come up
with the shortest possible solution to a series of trivial problems. In this session,
we'll be able to use some ES6 features
(those available in the v6.0.0 release of node).

All you need is your laptop, a text editor and a willingness to write code you feel
truly ashamed of.

Note: if you're new to JavaScript, please feel welcome to come along.
Code Golf is an especially fun way to learn and get involved.

Important
This is a bring your laptop session – please have your code editor of choice, and
Node.js installed.

Overview
Code & Conquer is a group coding game in which teams compete to capture squares on a shared grid. The winning team is the team who, by the end of the game,
has captured the most squares. Once a team owns squares, they must protect them from other teams
attempting to steal them.

Playing
You'll be given a default game client (a small Node app), allowing you to play the game at human-scale
immediately. However, with 30 requests per minute, unless you're working efficiently at one
command every 2 seconds, you're going to need to reprogram the client to play better :)

As always, everyone is welcome, regardless of your level of JavaScript. Game sessions are a fun way to play around with code in a fun environment, or join a team and help with strategy :)

This month Code Golf is back. To keep it fresh we'll be playing with brand new ES6-looking
golf clubs.

Code Golf is a group programming game where you compete against everyone else to come up
with the shortest possible solution to a series of trivial problems. The difference this time
is that we'll be able to use some ES6 features
(those available in the latest node release).

All you need is your laptop, a text editor and a willingness to write code you feel
truly ashamed of.

Important
This is a bring your laptop session – please have your code editor of choice, and
Node.js installed.

Overview
The game starts with a square grid. The winning team is the team who, by the end of the game,
has captured the most squares. Once you own a square, you must protect it from other teams
attempting to steal it.

Gameplay
Using the default game client (a simple Node app), you send commands to the game server in real time to
play your particular strategy. You can send attack, defend and query commands.

attack: takes 1 health point off the specified cell. If you cause the cell's health to drop
to 0, you become the new owner and the cell's health is set to 120.

defend: adds 1 health point to the specified cell. A cell's health is capped at 120.
You can defend any cell on the grid, including cells you don't own.

query: retrieves the current state of the grid. Each cell has a state which shows:

The cell owner

The cell health

The cell bonus – some cells count for double or triple

Who has attacked and defended the cell since it was last owned

All cells are initially owned by the game, with a health of 60. You start with 30 requests,
which are replenished every 1 minute. attack and defend commands use 1 of your
30 requests, but query commands are free.

You'll be supplied with a default game client, allowing you to play the game at human-scale
immediately. However, with 30 requests per minute, unless you're working efficiently at one
command every 2 seconds, you're going to need to reprogram the client to play better :)

This month we're having a panel debate about major themes in the JavaScript/web development
community. The panel will kick off the debate by sharing their thoughts, while members of
the audience can choose to join the panel if they have something to contribute.

We'll cover three main themes and then open it up to any additional random questions. The themes are:

Is tooling hurting us?
At this point we have a plethora of frameworks, libraries, compile-to-JS languages, etc. Do we need it all? Is it good or bad?

Flexibility vs. safety – do we need more control over typing?
Should we be encouraging tools and language features that bring in typing/type hints?

Is full stack JS a benefit?
Is there a reason why full stack JS is better than using a mix of other technologies?

We need some additional lightining debate topics. If you have a question, please tweet it @manc_js with the hashtag #askmancjs.

This month we're playing a few more rounds of JavaScript Code Golf. Code Golf is really
easy to play – we start with a simple problem and the winner is the one who can solve it in
the fewest [key]strokes.

All you need is your laptop, a text editor and a willingness to write code that you could never tell your mother about.

Temporary Venue Change
This month's event will be at Hyper Island. It's the same building as usual, but on the ground floor rather than the first. There'll be signs on the evening.

Chrome DevTools, Front to BackKatie will show us how to move away from alert / console.log debugging and begin using the power of the Chrome DevTools. Taking us through how to properly debug our code, optimise HTTP requests and profile performance, Katie will show off the power hiding under the hood of DevToos.

An Introduction to ES6
ECMAScript 6 was finalised recently and JavaScript is now officially getting a bunch of new features. Martin will take us through a series of the biggest changes coming and show us how to start using ES6 today.

John Kershaw will share his story of building Bristlr – the platform connecting those with beards to those who want to stroke beards. Bristlr is JS all the way down, and we'll hear about the various problems and tradeoffs involved in scaling it from a small probject to 1000s of daily users.

Richard McIntyre will tell us about a new BDD tool that he created whilst at BBC Sport called ShouldIT?. ShouldIT? improved the way their team wrote feature files and tested their project.

The session will be an introduction to the thinking behind the new React JavaScript library, open sourced by Facebook Engineering. It presents a fresh take on how to effectively build rich user interfaces, questioning and abandoning some of what is currently considered "best practice".

We'll take a look at how the library works, how it fits into a frontend web stack, and what makes it worth using. After brushing up on the theory, we'll see how it works in practice by building up a sample application.

2015 is almost upon us, but fear not, you have one final chance in 2014 to get
your JavaScript fix. This month we're playing Performance Golf.

If you're a MancJS regular, you've probably been to a Code Golf session once or
twice before – the game where we compete to create the smallest possible solutions
to simple problems (demonstrating beautifully who is able to abuse JS the most).

While Code Golf is fun, it's also not very useful. So, for this month's session
we've changed it up a bit. We're now competing to see who can create the most
time-efficient solutions instead – hence Performance Golf.

We'll start out with an example so everyone gets the idea, and then play 2 or 3
main games. You need only your laptop and a code editor, the rest is server-based.

This month Mark Kirschstein
will be introducing us to the the
Circuit Breaker
pattern. The Circuit Breaker pattern is a simple idea that helps us build robust, self healing
systems. We’ll be exploring it and seeing who can apply it to create the most resilient system.

Important: you'll need to bring your laptop for the practial part of this session. Please
make sure you have a code editor and
Node.js installed.

This month we're playing a few more rounds of JavaScript Code Golf. Don't worry, it's really
easy to play. We start with a simple problem and the winner is the one who can solve it in
the fewest [key]strokes.

The lovely folks at Capsule CRM are very kindly sponsoring the event again, so your awful code will now be pizza and beer powered.

Important: please don't forget to bring your laptop.

We have a limited number of spaces for this event, so you must get a free ticket if you're coming.

Katie Fenn will be sharing her
experience of building the open source stylesheet analysis tool Parker.

Jason Brown will take us through the production of a real world
iOS application for enterprise, using Cordova and AngularJS. Jason will touch on everything from testing and authentication to common pitfalls.

Following the talks, we'll retire to the pub to continue the 'conversation'.

Back in July 2013 (our 5th MancJS event) we ran something called Hack The Server. The idea was
to work through a set automated challenges in small teams, competing with everyone else to be the first to complete them.

Since it will have been exactly 1 year ago, we're brining it back for July's event. The challenges have been improved, the special roles
are back and we even have a few prizes from GitHub to give to the first three winning teams.

So bring your laptops and get ready to compete!

The awesome folks at Capsule CRM are very kindly sponsoring the event with pizza and beers.
A big thanks to TechHub too, who are letting us shift their office space around so we can fit everyone in on the night.

Unfortunately we have a limited number of spaces for this event, so you must get a free ticket if you want to come along.

Firstly the bad news: there will be no regular MancJS June event. The good news: normal service will be resumed in July with a new and improved "Hack The Server" event!

Fortunately all is not lost if you still need your monthly dose of JS, as Late Rooms are hosting a special MancJS session with Remy Sharp on Tuesday June 10th. Remy is the creator of the well-known Full Frontal JavaScript conference as well as such things as jsbin.com.

Remy will talk about how JS Bin works behind the scenes, the business drivers that moved it from a PHP project to 100% node and some of the mistakes and lessons learned along the way.

Important

If you're attending, you must get a free ticket in order to get into the Late Rooms building on the night. This event is not at TechHub – please see Eventbrite for address details.

1: Sqwiggle: How we javascript
Luke will give an overview of Sqwiggle and its architecture, and then jump into how they use WebRTC for real-time video and communication.Luke Roberts

2: Introduction to Hoodie
Lewis and Caolan will introduce the Hoodie project, giving a quick demo of writing a Hoodie app and talking about the tools and methods that the Hoodie project uses to encourage new committers and foster a helpful and welcoming community.Caolan McMahon and Lewis Cowper

Naturally, we'll head to Port Street Beer House following the talks so we can continue the conversation over beer.

This month we're sticking with the talks and have 2 more interesting subejcts before we retire to the pub.

1: API benchmarks – why are they important, and how?
In this session we'll see how to benchmark APIs in order to know how they react to high volumes of traffic and how we, as developers, can be prepared when they need to scale.Matteo Figus

2: Introduction to building web based mobile apps using Apache Cordova
Chris will show us how to use the web technologies we know and love tolerate to build packaged native mobile applications using the Apache Cordova project.Chris Dell

Important: please bring your laptop and make sure you have NodeJS installed.

Session Details

Parsing computer languages is often seen as an arcane, complex art only practiced by Computer Science PhDs to write compilers. But actually, tools exists to make writing parsers for computer languages or data formats much easier. And they're useful for much more than compiling - syntax highlighters, code formatters and simple error checkers (eg lint tools) are not that hard to write.

The session will introduce Parsing Expression Grammars in JavaScript. Parsing Expression Grammars are not that much harder to write than regular expressions, but are much more powerful. They can even parse XHTML. Ash will start by showing us how to write a parser for a simple list syntax, and then with this as an example, everyone will pair up and have a go at writing a parser for JSON data. There will be a template project that already contains test cases for sample JSON strings, starting with simple examples and building up to the full syntax.

Don't worry if you don't consider yourself a JavaScript or regex ninja, a basic grasp will do, and we'll make sure everyone is well paired up.

This month we are going to be creating data visualisations using the D3.js library.
Ryan will demonstrate
how to create a simple visualisation using the core features of D3, then it will be
over to you to show off your creativity by making your own visualisation either
from scratch or amending one of the provided examples.

Some example data sets will be provided to experiment with, but feel free to bring your own data.

Important: please bring your laptop with you.

This month the lovely people at ao.com are sponsoring refreshments,
so please sign up if you're coming.

MancJS is nearly here again and this month we're going to play a few rounds of JavaScript golf.
Don't worry, it's really easy to play. We start with a simple problem and the winner is the one
who can solve it in the fewest [key]strokes.

We'll play about 4 x 20 minute rounds and work in pairs. To keep things fair, the pairs
will be randomised each round to keep the JS expertise flowing evenly :)

It's almost time for the 7th MancJS. Following on from the fun of our
Hack The Server session, we're going
to be competing against each other again. This time we're going to be writing
bots to play rock-paper-scissors against each other.

There'll be a few additional hands added to the game to allow for smarter strategies, but the goal
is to work out which strategies the other bots are playing in order to get the edge and win.

As a group we'll work through the koans together. This session will be especially useful to people who aren't too familiar with JavaScript and would like a gentler introduction to the language via testing.

If there's time, we'll also take a look at some real tests and see how easy it is to set up a test environment using node.

In a cunning attempt to top last month's generosity, TechHub are going to ply us with free pizza and booze again, so please sign up if you're coming.

Important: if you have a laptop, please bring it with you or this isn't going to work at all :)

This month we have a more hands-on event.

We'll get into pairs or small groups, and in the spirit of 'learn by doing', we'll all build the same basic web app. There are no rules. The idea is simply to focus on a specific element of the app (or all of it) that either you're best at, or want to learn about most within your pair/group.

Maybe you're more frontend and want to show us how you build a better experience. Maybe you're more backend and want to share how you architect/organise the app. Maybe you'd prefer to follow a process like TDD and show us how you use tests to guide you toward a feature. Maybe you want to show off the features of your favourite database. Whatever.

Afterwards we'll share our approaches, tools, ideas and allow everyone to learn from each other. It'll be a great way to see how we work in real life and allow us to take away some of the approaches and tools that we've not seen or used before.

The next MancJS event will be April 03rd at TechHub Manchester. Speaking of TechHub, they're awesome and they're going to supply us with free beer and pizza, so please sign up if you're coming so we have an idea of numbers.

The plan is to have 4 or 5 short lightning talks about anything JavaScript.
The agenda so far: